ouisys-engine 5.1.8 → 5.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import{__awaiter as r,__generator as t,__assign as i}from"tslib";import{l as o}from"./helpers-CBmogWIZ.js";import{searchToObject as c}from"./searchToObject.js";import{t as e}from"./tracker-DaaILhEr.js";import{u as n}from"./updateUrlWithParams-C6-BX4TY.js";import"pacman-client";import"uuid";function a(a){var s,u,l,d,v=a.window,m=a.flow,h=a.action,p=a.args,f=a.extraParams,_=void 0===f?{}:f,w=a.isRedirectToChainAndProduct,k=void 0!==w&&w,b=a.isShowThankYou,y=void 0!==b&&b;return r(this,void 0,void 0,(function(){var a,f,w,b,E,j,R,S,U,g,P;return t(this,(function(T){switch(T.label){case 0:return a=v.pac_analytics.visitor.rockmanId,m&&h&&e.advancedInFlow(m,h,i({},p)),f=c(v),(w="check-subscription-success-state"===f["current-state"])&&(console.log("isMock is true"),(b=f["show-chain-link"])&&"1"===b&&(v.pac_analytics.visitor.chainRedirectUrl="/chain-url")),E=function(){return w?Promise.resolve({success:!0,rockman_id:a,product_url:"/product",msisdn:"000"}):function(i){var o=i.window,c=i.rockmanId;return r(void 0,void 0,void 0,(function(){var r,i,e;return t(this,(function(t){switch(t.label){case 0:return r=o.DEV_BASE_URL||"",i=new URLSearchParams({action:"check-subscription",rockman_id:c}).toString(),e="".concat(r,"/tallyman/v1/?").concat(i),[4,fetch(e)];case 1:return[2,t.sent().json()]}}))}))}({window:v,rockmanId:a})},[4,o(E,60,(function(r){return r.success}),0)];case 1:if(!0===(j=T.sent()).success){if(R=j.product_url,y)return S=n(v.location.href,{rockman_id:a,ui_show_tq:"1","show-thank-you":1,product_url:R}),setTimeout((function(){e.customEvent(m,"show-thank-you","thank-you-page",{thankYou:S}),v.location.replace(S)}),3e3),[2,S];if(null===(u=null===(s=null==v?void 0:v.pac_analytics)||void 0===s?void 0:s.visitor)||void 0===u?void 0:u.chainRedirectUrl){if(U=null===(d=null===(l=null==v?void 0:v.pac_analytics)||void 0===l?void 0:l.visitor)||void 0===d?void 0:d.chainRedirectUrl,g=n(U,_),k)return e.customEvent(m,"redirect","chain-redirect",{redirect_url:g}),v.open(g,"_blank"),R&&""!==R&&setTimeout((function(){e.customEvent(m,"redirect","product-redirect",{redirect_url:R}),v.location.replace(R)}),3e3),[2];e.customEvent(m,"redirect","chain-redirect",{redirect_url:g}),v.location.replace(g)}else R&&""!==R&&(e.customEvent(m,"redirect","product-redirect",{redirect_url:R}),v.location.replace(R));return[2,R||null]}throw(P=new Error("".concat("SubscriptionFailed",":\n").concat(j.message))).type="SubscriptionFailed",P}}))}))}export{a as checkSubscriptionHander};
1
+ import{__awaiter as r,__generator as t,__assign as i}from"tslib";import{l as o}from"./helpers-CBmogWIZ.js";import{searchToObject as c}from"./searchToObject.js";import{t as e}from"./tracker-DaaILhEr.js";import{u as n}from"./updateUrlWithParams-C6-BX4TY.js";import"pacman-client";import"uuid";function a(a){var s,u,d,l,v=a.window,m=a.flow,h=a.action,p=a.args,f=a.extraParams,_=void 0===f?{}:f,w=a.isRedirectToChainAndProduct,k=void 0!==w&&w,b=a.isShowThankYou,y=void 0!==b&&b;return r(this,void 0,void 0,(function(){var a,f,w,b,E,j,R,S,U,g,P;return t(this,(function(T){switch(T.label){case 0:return a=v.pac_analytics.visitor.rockmanId,m&&h&&e.advancedInFlow(m,h,i({},p)),f=c(v),(w="check-subscription-success-state"===f["current-state"])&&(console.log("isMock is true"),(b=f["show-chain-link"])&&"1"===b&&(v.pac_analytics.visitor.chainRedirectUrl="/chain-url")),E=function(){return w?Promise.resolve({success:!0,rockman_id:a,product_url:"/product",msisdn:"000"}):function(i){var o=i.window,c=i.rockmanId;return r(void 0,void 0,void 0,(function(){var r,i,e;return t(this,(function(t){switch(t.label){case 0:return r=o.DEV_BASE_URL||"",i=new URLSearchParams({action:"check-subscription",rockman_id:c}).toString(),e="".concat(r,"/tallyman/v1/?").concat(i),[4,fetch(e)];case 1:return[2,t.sent().json()]}}))}))}({window:v,rockmanId:a})},[4,o(E,60,(function(r){return r.success}),0)];case 1:if(!0===(j=T.sent()).success){if(R=j.product_url,y)return S=n(v.location.href,{rockman_id:a,ui_show_tq:"1","show-thank-you":1,product_url:R}),setTimeout((function(){e.customEvent(m,"show-thank-you","thank-you-page",{thankYou:S}),v.location.replace(S)}),3e3),[2,S];if(null===(u=null===(s=null==v?void 0:v.pac_analytics)||void 0===s?void 0:s.visitor)||void 0===u?void 0:u.chainRedirectUrl){if(U=null===(l=null===(d=null==v?void 0:v.pac_analytics)||void 0===d?void 0:d.visitor)||void 0===l?void 0:l.chainRedirectUrl,g=n(U,_),k)return e.customEvent(m,"redirect","chain-redirect",{redirect_url:g}),v.open(g,"_blank"),R&&""!==R&&setTimeout((function(){e.customEvent(m,"redirect","product-redirect",{redirect_url:R}),v.location.replace(R)}),3e3),[2];e.customEvent(m,"redirect","chain-redirect",{redirect_url:g}),v.location.replace(g)}else R&&""!==R&&(e.customEvent(m,"redirect","product-redirect",{redirect_url:R}),v.location.replace(R));return[2,R||null]}throw(P=new Error("".concat("SubscriptionFailed",":\n").concat(j.message))).type="SubscriptionFailed",P}}))}))}export{a as checkSubscriptionHander};
2
2
  //# sourceMappingURL=checkSubscriptionHander.js.map
@@ -1,2 +1,2 @@
1
- import{__awaiter as t,__generator as r,__assign as o}from"tslib";import{createAsyncThunk as e,createSlice as n}from"@reduxjs/toolkit";import{S as i,L as a,F as u,N as c}from"./RemoteDataState-lcf8PfJd.js";import{t as s}from"./tracker-DaaILhEr.js";import{c as l}from"./cleanSearchParams-Dl7ZDlew.js";import"pacman-client";import"uuid";var d=function(e){var n=e.window,i=e.country,a=e.slug,u=e.offer,c=e.rockmanId,s=e.keyword,d=e.operator,v=e.search;return t(void 0,void 0,void 0,(function(){var t,e,f,p,y,m,h;return r(this,(function(r){return v=l(v),t=new URLSearchParams(o(o({action:"oc2sms",country:i,slug:a,offerId:u.toString(),page:encodeURIComponent(n.location.href),device:"smart",rockman_id:c,ip_address:(null===(y=null===(p=null==n?void 0:n.pac_analytics)||void 0===p?void 0:p.visitor)||void 0===y?void 0:y.ip)||"",ip_range_operator:(null===(h=null===(m=null==n?void 0:n.pac_analytics)||void 0===m?void 0:m.visitor)||void 0===h?void 0:h.ipRangeOperator)||""},s&&{keyword:s}),d&&{operator:d})).toString(),e=n.DEV_BASE_URL||"",f="".concat(e,"/tallyman/v1/?").concat(t).concat(v?"&".concat(v):""),[2,fetch(f).then((function(t){return t.json()}))]}))}))};function v(e,n,i,a,u){return t(this,void 0,void 0,(function(){var t,u,c,s,l,v,f,p,y;return r(this,(function(r){switch(r.label){case 0:return n&&"keywordAndShortCode"===n.tag?(t=n.keyword,u=n.shortcode,[2,o({type:"SingleSubmissionResult"},{keyword:t,shortcode:u})]):(c=e.pac_analytics.visitor.offer,s=o({offer:e.pac_analytics.visitor.offer},n),l=s.country,v=s.slug,f=e.pac_analytics.visitor.rockmanId,p=e.location.search.substr(1)||"",[4,d({window:e,country:l,slug:v,offer:c,rockmanId:f,keyword:a,operator:i,search:p})]);case 1:if((y=r.sent()).success)return[2,o({type:"SingleSubmissionResult"},{keyword:"".concat(a||y.displayKeyword).concat(y.uid?" ".concat(y.uid):""),shortcode:y.shortcode})];throw y.message}}))}))}function f(e,n,i,a,u){return t(this,void 0,void 0,(function(){var u,c,s,l=this;return r(this,(function(d){switch(d.label){case 0:return u=Promise.all(i.map((function(i){return t(l,void 0,void 0,(function(){var t,u;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,v(e,n,i,a)];case 1:return t=r.sent(),[2,(s=o(o({},t),{operator:i}),{type:"right",value:s})];case 2:return u=r.sent(),[2,(c=u,{type:"left",value:c})];case 3:return[2]}var c,s}))}))}))),[4,Promise.resolve(u)];case 1:if((c=d.sent()).every((function(t){return"left"===t.type})))throw c[0].value;return s=[],c.map((function(t){if("right"===t.type){var r=t.value;s.push({keyword:null==r?void 0:r.keyword,shortcode:null==r?void 0:r.shortcode,operator:null==r?void 0:r.operator})}return t})),[2,{type:"MultiOperatorSubmissionResult",data:s}]}}))}))}var p=function(e,n,i,a){return t(void 0,void 0,void 0,(function(){return r(this,(function(t){return n&&"keywordAndShortCode"===n.tag?[2,o({type:"SingleSubmissionResult"},{keyword:n.keyword,shortcode:n.shortcode})]:n&&"keyword"===n.tag?[2,y(e,n,i)]:[2,y(e,n,null)]}))}))};function y(e,n,i,a){return t(this,void 0,void 0,(function(){var t,a;return r(this,(function(r){return!0===(t=o({offer:e.pac_analytics.visitor.offer},n)).automaticallySubmitAllOperators&&t.operators&&t.operators.length>0?[2,f(e,n,t.operators,i)]:(a=n.operators&&n.operators.length>0?n.operators[0]:null,[2,v(e,n,a,i)])}))}))}var m={currentState:{type:"LOAD_OC2SMS",result:c()}},h=e("click2Flow/loadOc2smsAction",(function(e,n){var a=e.window,u=n.getState,c=n.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,e,n,l,d,v,f,y,m;return r(this,(function(r){switch(r.label){case 0:if(t=u(),!(null===(f=null===(v=null===(d=null==t?void 0:t.strategy)||void 0===d?void 0:d.currentState)||void 0===v?void 0:v.data)||void 0===f?void 0:f.config))return[2,c("UnexpectedState")];e=null===(m=null===(y=t.strategy.currentState)||void 0===y?void 0:y.data)||void 0===m?void 0:m.config,r.label=1;case 1:return r.trys.push([1,3,,4]),"keywordAndShortCode"===e.tag?[2,{type:"LOAD_OC2SMS",result:i(o({type:"SingleSubmissionResult"},e))}]:(s.customEvent("Flow","advance-auto","load-click2sms"),[4,p(a,e)]);case 2:return n=r.sent(),s.customEvent("Flow","advance-auto","loaded-click2sms",n),[2,{type:"LOAD_OC2SMS",result:i(n)}];case 3:return l=r.sent(),console.warn(l),s.customEvent("Flow","advance-auto","load-click2sms-failure",l.toString()),[2,c(l.toString())];case 4:return[2]}}))}))})),S=n({name:"click2smsFlow",initialState:m,reducers:{},extraReducers:function(t){t.addCase(h.pending,(function(t){t.currentState={type:"LOAD_OC2SMS",result:a()}})).addCase(h.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(h.rejected,(function(t,r){t.currentState={type:"LOAD_OC2SMS",result:u(r.payload)}}))}}),w=S.reducer;S.actions;var g=function(t){return t((function(t){return t.click2smsFlow.currentState}))},k=function(t){var r,o=t((function(t){return t.click2smsFlow.currentState}));return null===(r=null==o?void 0:o.result)||void 0===r?void 0:r.data};function _(t){var r=t.load;return function(t){return t.type,r(t.result)}}export{_ as click2smsFlowMatch,w as click2smsFlowReducer,h as loadOc2smsAction,g as useClick2smsFlowState,k as useKeyWordShortCode};
1
+ import{__awaiter as t,__generator as r,__assign as o}from"tslib";import{createAsyncThunk as e,createSlice as n}from"@reduxjs/toolkit";import{S as i,L as a,F as c,N as u}from"./RemoteDataState-lcf8PfJd.js";import{t as s}from"./tracker-DaaILhEr.js";import{c as l}from"./cleanSearchParams-Dl7ZDlew.js";import"pacman-client";import"uuid";var d=function(e){var n=e.window,i=e.country,a=e.slug,c=e.offer,u=e.rockmanId,s=e.keyword,d=e.operator,v=e.search;return t(void 0,void 0,void 0,(function(){var t,e,f,p,y,m,h;return r(this,(function(r){return v=l(v),t=new URLSearchParams(o(o({action:"oc2sms",country:i,slug:a,offerId:c.toString(),page:encodeURIComponent(n.location.href),device:"smart",rockman_id:u,ip_address:(null===(y=null===(p=null==n?void 0:n.pac_analytics)||void 0===p?void 0:p.visitor)||void 0===y?void 0:y.ip)||"",ip_range_operator:(null===(h=null===(m=null==n?void 0:n.pac_analytics)||void 0===m?void 0:m.visitor)||void 0===h?void 0:h.ipRangeOperator)||""},s&&{keyword:s}),d&&{operator:d})).toString(),e=n.DEV_BASE_URL||"",f="".concat(e,"/tallyman/v1/?").concat(t).concat(v?"&".concat(v):""),[2,fetch(f).then((function(t){return t.json()}))]}))}))};function v(e,n,i,a,c){return t(this,void 0,void 0,(function(){var t,c,u,s,l,v,f,p,y;return r(this,(function(r){switch(r.label){case 0:return n&&"keywordAndShortCode"===n.tag?(t=n.keyword,c=n.shortcode,[2,o({type:"SingleSubmissionResult"},{keyword:t,shortcode:c})]):(u=e.pac_analytics.visitor.offer,s=o({offer:e.pac_analytics.visitor.offer},n),l=s.country,v=s.slug,f=e.pac_analytics.visitor.rockmanId,p=e.location.search.substr(1)||"",[4,d({window:e,country:l,slug:v,offer:u,rockmanId:f,keyword:a,operator:i,search:p})]);case 1:if((y=r.sent()).success)return[2,o({type:"SingleSubmissionResult"},{keyword:"".concat(a||y.displayKeyword).concat(y.uid?" ".concat(y.uid):""),shortcode:y.shortcode})];throw y.message}}))}))}function f(e,n,i,a,c){return t(this,void 0,void 0,(function(){var c,u,s,l=this;return r(this,(function(d){switch(d.label){case 0:return c=Promise.all(i.map((function(i){return t(l,void 0,void 0,(function(){var t,c;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,v(e,n,i,a)];case 1:return t=r.sent(),[2,(s=o(o({},t),{operator:i}),{type:"right",value:s})];case 2:return c=r.sent(),[2,(u=c,{type:"left",value:u})];case 3:return[2]}var u,s}))}))}))),[4,Promise.resolve(c)];case 1:if((u=d.sent()).every((function(t){return"left"===t.type})))throw u[0].value;return s=[],u.map((function(t){if("right"===t.type){var r=t.value;s.push({keyword:null==r?void 0:r.keyword,shortcode:null==r?void 0:r.shortcode,operator:null==r?void 0:r.operator})}return t})),[2,{type:"MultiOperatorSubmissionResult",data:s}]}}))}))}var p=function(e,n,i,a){return t(void 0,void 0,void 0,(function(){return r(this,(function(t){return n&&"keywordAndShortCode"===n.tag?[2,o({type:"SingleSubmissionResult"},{keyword:n.keyword,shortcode:n.shortcode})]:n&&"keyword"===n.tag?[2,y(e,n,i)]:[2,y(e,n,null)]}))}))};function y(e,n,i,a){return t(this,void 0,void 0,(function(){var t,a;return r(this,(function(r){return!0===(t=o({offer:e.pac_analytics.visitor.offer},n)).automaticallySubmitAllOperators&&t.operators&&t.operators.length>0?[2,f(e,n,t.operators,i)]:(a=n.operators&&n.operators.length>0?n.operators[0]:null,[2,v(e,n,a,i)])}))}))}var m={currentState:{type:"LOAD_OC2SMS",result:u()}},h=e("click2Flow/loadOc2smsAction",(function(e,n){var a=e.window,c=n.getState,u=n.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,e,n,l,d,v,f,y,m;return r(this,(function(r){switch(r.label){case 0:if(t=c(),!(null===(f=null===(v=null===(d=null==t?void 0:t.strategy)||void 0===d?void 0:d.currentState)||void 0===v?void 0:v.data)||void 0===f?void 0:f.config))return[2,u("UnexpectedState")];e=null===(m=null===(y=t.strategy.currentState)||void 0===y?void 0:y.data)||void 0===m?void 0:m.config,r.label=1;case 1:return r.trys.push([1,3,,4]),"keywordAndShortCode"===e.tag?[2,{type:"LOAD_OC2SMS",result:i(o({type:"SingleSubmissionResult"},e))}]:(s.customEvent("Flow","advance-auto","load-click2sms"),[4,p(a,e)]);case 2:return n=r.sent(),s.customEvent("Flow","advance-auto","loaded-click2sms",n),[2,{type:"LOAD_OC2SMS",result:i(n)}];case 3:return l=r.sent(),console.warn(l),s.customEvent("Flow","advance-auto","load-click2sms-failure",l.toString()),[2,u(l.toString())];case 4:return[2]}}))}))})),S=n({name:"click2smsFlow",initialState:m,reducers:{},extraReducers:function(t){t.addCase(h.pending,(function(t){t.currentState={type:"LOAD_OC2SMS",result:a()}})).addCase(h.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(h.rejected,(function(t,r){t.currentState={type:"LOAD_OC2SMS",result:c(r.payload)}}))}}),w=S.reducer;S.actions;var g=function(t){return t((function(t){return t.click2smsFlow.currentState}))},k=function(t){var r,o=t((function(t){return t.click2smsFlow.currentState}));return null===(r=null==o?void 0:o.result)||void 0===r?void 0:r.data};function _(t){var r=t.load;return function(t){return t.type,r(t.result)}}export{_ as click2smsFlowMatch,w as click2smsFlowReducer,h as loadOc2smsAction,g as useClick2smsFlowState,k as useKeyWordShortCode};
2
2
  //# sourceMappingURL=click2smsFlow.js.map
@@ -0,0 +1,2 @@
1
+ var n=function(n){!function(n){try{return new URL(n),!0}catch(n){return!1}}(n)?window.location.href="/api/v1/resolve-wfl?token=".concat(n):window.location.href=n};export{n as h};
2
+ //# sourceMappingURL=handleWaterfallRedirect-DztqrthA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleWaterfallRedirect-DztqrthA.js","sources":["../src/utilities/handleWaterfallRedirect.ts"],"sourcesContent":["const isUrl = (value: string): boolean => {\n try {\n // eslint-disable-next-line no-new\n new URL(value);\n return true;\n } catch {\n return false;\n }\n};\n\nexport const handleWaterfallRedirect = (url: string) => {\n if (isUrl(url)) {\n window.location.href = url;\n } else {\n window.location.href = `/api/v1/resolve-wfl?token=${url}`;\n }\n};\n"],"names":["handleWaterfallRedirect","url","value","URL","_a","isUrl","window","location","href","concat"],"mappings":"AAAA,IAUaA,EAA0B,SAACC,IAV1B,SAACC,GACb,IAGE,OADA,IAAIC,IAAID,IACD,CACR,CAAC,MAAME,GACN,OAAO,CACR,CACH,CAGMC,CAAMJ,GAGRK,OAAOC,SAASC,KAAO,6BAA6BC,OAAAR,GAFpDK,OAAOC,SAASC,KAAOP,CAI3B"}
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{n as d,r as l}from"./normaliseErrorCode-CVpyJZ6_.js";import{searchToObject as m}from"./searchToObject.js";import{s as v}from"./storeMsisdn-Cjq8_qYH.js";import{t as f}from"./tracker-DaaILhEr.js";import{c as p}from"./cleanSearchParams-Dl7ZDlew.js";import{i as y}from"./strategySlice-BMNt18ck.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-DaAFvpKD.js";import"./api-geirVksI.js";var S=function(t){return t((function(t){return t.moFlow.currentState}))};function _(t){var r=t.msisdnEntry;return function(t){return t.type,r(t.result)}}var w=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,f,y,S,_;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=p(m),v={action:"trigger-message",slug:a,country:i,msisdn:s,device:c,offerId:u,rockman_id:d,page:encodeURIComponent(null===(_=null==o?void 0:o.location)||void 0===_?void 0:_.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||""},f=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(f).concat(m?"&".concat(m):"","&").concat(l),o.MOCK_TRIGGER_MESSAGE_RESPONSE?[2,o.MOCK_TRIGGER_MESSAGE_RESPONSE]:[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,j(e,t,a,i)]}))}))}function j(e,o,a,i){var s,c;return t(this,void 0,void 0,(function(){var t,u,l,m,v,f,p,y,S,_,h,j;return r(this,(function(r){switch(r.label){case 0:return t=o.slug,u=o.country,l=o.device,m=o.offer,v=e.location.search.substr(1)||"",f=i?"&".concat(Object.keys(i).map((function(t){return"".concat(t,"=").concat(i[t])})).join("&")):"",p=(null===(s=a.match(/\d+/gi))||void 0===s?void 0:s.join(""))||"",y=e.pac_analytics.visitor.rockmanId,[4,w({window:e,slug:t,country:u,msisdn:p,device:l,offer:m,rockmanId:y,search:v,extraParamsQs:f})];case 1:if(!1===(S=r.sent()).success)throw _="ALREADY SUBSCRIBED"===S.message?"AlreadySubscribed":"InvalidMsisdn",h=S.error_code?d(S.error_code):_,j=new Error("".concat(h,":\n").concat(S.message)),Object.assign(j,{type:h,productUrl:null!==(c=S.product_url)&&void 0!==c?c:""}),j;return[2,n(n({},S),{keyword:S.displayKeyword})]}}))}))}var E={currentState:{type:"MSISDNEntry",result:i({keyword:"TEST OK",shortcode:"777"})}},g={currentState:{type:"MSISDNEntry",result:c({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},b={currentState:{type:"MSISDNEntry",result:u()}},I=function(t){var r=m(t);if(!r["mock-flow"])return b;switch(r["current-state"]){case"msisdn-entry-failure-state":return g;case"msisdn-entry-success-state":return E;default:return console.error("Mock Flow not supported"),b}}(window),M=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,m,p,y,S,_,w,j,E,g,b,I;return r(this,(function(r){switch(r.label){case 0:if(t=u(),!(null===(_=null===(S=null===(y=null==t?void 0:t.strategy)||void 0===y?void 0:y.currentState)||void 0===S?void 0:S.data)||void 0===_?void 0:_.config))return[2,d({errorType:"UnexpectedState"})];e=t.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),f.advancedInFlow("tallyman.v1-mo","msisdn-submitted",{msisdn:s}),[4,h(a,e,s,c)];case 2:return o=r.sent(),f.advancedInFlow("tallyman.v1-mo","msisdn-submission-success",{msisdn:s}),c&&c.storeMsisdn&&"true"===c.storeMsisdn?[4,v(s).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[2,{type:"MSISDNEntry",result:i(n({},o))}];case 5:return m=r.sent(),console.warn(m),p=m.type,f.recedeInFlow("tallyman.v1-mo","msisdn-submission-failure",{msisdn:s,errorType:p}),l.includes(p)&&(null===(j=null===(w=null==a?void 0:a.pac_analytics)||void 0===w?void 0:w.visitor)||void 0===j?void 0:j.waterfallRedirectUrl)&&(f.customEvent("tallyman.v1-mo","redirect","waterfall-redirect",{redirect_url:null===(g=null===(E=null==a?void 0:a.pac_analytics)||void 0===E?void 0:E.visitor)||void 0===g?void 0:g.waterfallRedirectUrl,errorType:p}),a.location.href=null===(I=null===(b=null==a?void 0:a.pac_analytics)||void 0===b?void 0:b.visitor)||void 0===I?void 0:I.waterfallRedirectUrl),[2,d({errorType:p,productUrl:m.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{f.recedeInFlow("tallyman.v1-mo","mo-state","requested to change phone number"),o(y())}catch(t){return console.warn(t),[2,a({errorType:"UnexpectedState"})]}return[2]}))}))})),R=a({name:"moFlow",initialState:I,reducers:{},extraReducers:function(t){t.addCase(M.pending,(function(t){t.currentState={type:"MSISDNEntry",result:s()}})).addCase(M.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(M.rejected,(function(t,r){t.currentState={type:"MSISDNEntry",result:c(r.payload)}}))}}),T=R.reducer;R.actions;export{k as backToStartAction,_ as moFlowMatch,T as moFlowReducer,M as submitMSISDNAction,S 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{h as d}from"./handleWaterfallRedirect-DztqrthA.js";import{n as l,r as m}from"./normaliseErrorCode-CVpyJZ6_.js";import{searchToObject as v}from"./searchToObject.js";import{s as f}from"./storeMsisdn-Cjq8_qYH.js";import{t as p}from"./tracker-DaaILhEr.js";import{c as y}from"./cleanSearchParams-Dl7ZDlew.js";import{i as S}from"./strategySlice-BMNt18ck.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-DaAFvpKD.js";import"./api-geirVksI.js";var _=function(t){return t((function(t){return t.moFlow.currentState}))};function h(t){var r=t.msisdnEntry;return function(t){return t.type,r(t.result)}}var w=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,f,p,S,_;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=y(m),v={action:"trigger-message",slug:a,country:i,msisdn:s,device:c,offerId:u,rockman_id:d,page:encodeURIComponent(null===(_=null==o?void 0:o.location)||void 0===_?void 0:_.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||""},f=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("&"),p=o.DEV_BASE_URL||"",S="".concat(p,"/tallyman/v1/?").concat(f).concat(m?"&".concat(m):"","&").concat(l),o.MOCK_TRIGGER_MESSAGE_RESPONSE?[2,o.MOCK_TRIGGER_MESSAGE_RESPONSE]:[2,fetch(S).then((function(t){return t.json()}))]}}))}))};function j(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,E(e,t,a,i)]}))}))}function E(e,o,a,i){var s,c;return t(this,void 0,void 0,(function(){var t,u,d,m,v,f,p,y,S,_,h,j;return r(this,(function(r){switch(r.label){case 0:return t=o.slug,u=o.country,d=o.device,m=o.offer,v=e.location.search.substr(1)||"",f=i?"&".concat(Object.keys(i).map((function(t){return"".concat(t,"=").concat(i[t])})).join("&")):"",p=(null===(s=a.match(/\d+/gi))||void 0===s?void 0:s.join(""))||"",y=e.pac_analytics.visitor.rockmanId,[4,w({window:e,slug:t,country:u,msisdn:p,device:d,offer:m,rockmanId:y,search:v,extraParamsQs:f})];case 1:if(!1===(S=r.sent()).success)throw _="ALREADY SUBSCRIBED"===S.message?"AlreadySubscribed":"InvalidMsisdn",h=S.error_code?l(S.error_code):_,j=new Error("".concat(h,":\n").concat(S.message)),Object.assign(j,{type:h,productUrl:null!==(c=S.product_url)&&void 0!==c?c:""}),j;return[2,n(n({},S),{keyword:S.displayKeyword})]}}))}))}var g={currentState:{type:"MSISDNEntry",result:i({keyword:"TEST OK",shortcode:"777"})}},I={currentState:{type:"MSISDNEntry",result:c({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},b={currentState:{type:"MSISDNEntry",result:u()}},M=function(t){var r=v(t);if(!r["mock-flow"])return b;switch(r["current-state"]){case"msisdn-entry-failure-state":return I;case"msisdn-entry-success-state":return g;default:return console.error("Mock Flow not supported"),b}}(window),R=o("moFlow/submitMSISDNAction",(function(e,o){var a=e.window,s=e.msisdn,c=e.extraParams,u=o.getState,l=o.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,e,o,v,y,S,_,h,w,E,g,I,b,M;return r(this,(function(r){switch(r.label){case 0:if(t=u(),!(null===(h=null===(_=null===(S=null==t?void 0:t.strategy)||void 0===S?void 0:S.currentState)||void 0===_?void 0:_.data)||void 0===h?void 0:h.config))return[2,l({errorType:"UnexpectedState"})];e=t.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),p.advancedInFlow("tallyman.v1-mo","msisdn-submitted",{msisdn:s}),[4,j(a,e,s,c)];case 2:return o=r.sent(),p.advancedInFlow("tallyman.v1-mo","msisdn-submission-success",{msisdn:s}),c&&c.storeMsisdn&&"true"===c.storeMsisdn?[4,f(s).then((function(t){t&&t.data&&t.data.success?p.customEvent("Flow","advance-auto","msisdn-stored-success"):p.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(t){p.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:return v=r.sent(),console.warn(v),y=v.type,p.recedeInFlow("tallyman.v1-mo","msisdn-submission-failure",{msisdn:s,errorType:y}),m.includes(y)&&(null===(E=null===(w=null==a?void 0:a.pac_analytics)||void 0===w?void 0:w.visitor)||void 0===E?void 0:E.waterfallRedirectUrl)&&(p.customEvent("tallyman.v1-mo","redirect","waterfall-redirect",{redirect_url:null===(I=null===(g=null==a?void 0:a.pac_analytics)||void 0===g?void 0:g.visitor)||void 0===I?void 0:I.waterfallRedirectUrl,errorType:y}),d(null===(M=null===(b=null==a?void 0:a.pac_analytics)||void 0===b?void 0:b.visitor)||void 0===M?void 0:M.waterfallRedirectUrl)),[2,l({errorType:y,productUrl:v.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{p.recedeInFlow("tallyman.v1-mo","mo-state","requested to change phone number"),o(S())}catch(t){return console.warn(t),[2,a({errorType:"UnexpectedState"})]}return[2]}))}))})),T=a({name:"moFlow",initialState:M,reducers:{},extraReducers:function(t){t.addCase(R.pending,(function(t){t.currentState={type:"MSISDNEntry",result:s()}})).addCase(R.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(R.rejected,(function(t,r){t.currentState={type:"MSISDNEntry",result:c(r.payload)}}))}}),F=T.reducer;T.actions;export{k as backToStartAction,h as moFlowMatch,F as moFlowReducer,R as submitMSISDNAction,_ as useMoFlowState};
2
2
  //# sourceMappingURL=moFlow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"moFlow.js","sources":["../src/flows/moFlow/hooks/useMoFlowState.ts","../src/flows/moFlow/match.ts","../src/flows/moFlow/api.ts","../src/flows/moFlow/main.ts","../src/flows/moFlow/moFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useMoFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.moFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport { MoFlowCurrentState, MSISDNEntryFailure, MSISDNEntrySuccess } from '../../sharedFlowTypes/MoTypes';\n\nfunction moFlowMatch<R>({\n msisdnEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n}): (state: MoFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n default:\n // TODO - this should be an error or something\n return msisdnEntry(state.result);\n }\n };\n}\n\nexport { moFlowMatch };\n","import { IGoogleReCaptcha, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\n\nconst getGoogleCaptcha = async (\n window: Window,\n country: string,\n slug: string,\n device: string,\n domain: string\n): Promise<IGoogleReCaptcha> => {\n const host = (window as Window).DEV_BASE_URL || '';\n\n return fetch(\n `${host}/tallyman/helper/?action=google-captcha-v3-config&country=${country}&slug=${slug}&device=${device}&domain=${domain}`\n ).then((x) => x.json());\n};\n\nconst triggerMessage = async ({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n extraParamsQs,\n search\n}: {\n window: Window;\n slug: string;\n country: string;\n msisdn: string;\n device: string;\n offer: string;\n rockmanId: string;\n search: string;\n extraParamsQs: string;\n}): Promise<IMSISDNSubmissionResult> => {\n // introduced https://www.notion.so/sammedia/CH-Agency-Bodkinco-Integration-ea1600ad175f451a9d351b6763ad7992\n const partnerAjaxResopnse: {\n form_action: string;\n } = window.api_ajax_url ? await fetch(window.api_ajax_url).then((x) => x.json()) : null;\n\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n const params = {\n action: 'trigger-message',\n slug,\n country,\n msisdn,\n device,\n offerId: offer,\n rockman_id: rockmanId,\n page: encodeURIComponent(window?.location?.href),\n sam_g_token: window.reCaptchaToken || '',\n language_code: window.languageCode || '',\n partner_form_action: partnerAjaxResopnse?.form_action ? encodeURIComponent(partnerAjaxResopnse?.form_action) : '',\n\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || ''\n };\n\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${search ? `&${search}` : ''}&${extraParamsQs}`;\n\n if (window.MOCK_TRIGGER_MESSAGE_RESPONSE) {\n return window.MOCK_TRIGGER_MESSAGE_RESPONSE;\n }\n return fetch(url).then((x) => x.json());\n};\n\nexport { getGoogleCaptcha, triggerMessage };\n","import { ICheckSubscriptionResult } from '../../common-types/ICheckSubscriptionResult';\nimport { IError } from '../../common-types/IError';\nimport { IConfig } from '../../common-types/Strategy';\nimport { checkSubscriptionByRockmanIdOnly } from '../../sharedApi/checkSubscriptionByRockmanIdOnly';\nimport { IGoogleReCaptcha, IKeywordShortcode, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\nimport { loop } from '../../utilities/helpers';\nimport loadScriptSrc from '../../utilities/loadScriptSrc';\nimport { normaliseErrorCode } from '../../utilities/normaliseErrorCode';\nimport { getGoogleCaptcha, triggerMessage } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const config: any = { ...(maybeConfig || {}), offer: window.pac_analytics?.visitor?.offer };\n return submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams);\n}\n\nexport const getGoogleReCaptchaConfig = async ({\n window,\n slug,\n country,\n device\n}: IConfig & { window: Window }): Promise<IGoogleReCaptcha> => {\n const domain = window.location.hostname;\n const result: IGoogleReCaptcha = await getGoogleCaptcha(window, country, slug, device, domain);\n if (result.success === true) {\n const srcUrl = `https://www.google.com/recaptcha/api.js?render=${result.site_key}`;\n loadScriptSrc({ url: srcUrl, key: result.site_key, isRecaptcha: true });\n }\n return result;\n};\n\nexport async function submitMSISDNWithConfig(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const { slug, country, device, offer } = config;\n const search = window.location.search.substr(1) || '';\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || '';\n const { rockmanId } = window.pac_analytics.visitor;\n\n const result: IMSISDNSubmissionResult = await triggerMessage({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n search,\n extraParamsQs\n });\n\n if (result.success === false) {\n // pick a default based on message, then override with error_code if available\n const defaultType = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMsisdn';\n\n const type = result.error_code ? normaliseErrorCode(result.error_code) : defaultType;\n\n // build, augment, log and throw\n const error = new Error(`${type}:\\n${result.message}`) as IError & {\n type: string;\n productUrl: string;\n };\n\n Object.assign(error, {\n type,\n productUrl: result.product_url ?? ''\n });\n\n throw error;\n } else {\n return { ...result, keyword: result.displayKeyword }; // based on discussion with Chanaka to avoid confusion in set up on bupper. Click2sms and mo will use display keyword\n }\n}\n\nexport async function moCheckSubscription(window: Window): Promise<string> {\n const { rockmanId } = window.pac_analytics.visitor;\n const check: () => Promise<ICheckSubscriptionResult> = () => checkSubscriptionByRockmanIdOnly({ window, rockmanId });\n\n const checkResult: ICheckSubscriptionResult = await loop(check, 60, (r) => r.success, 0);\n\n if (checkResult.success === true && checkResult.product_url && checkResult.product_url !== '') {\n window.location.href = checkResult.product_url;\n return checkResult.product_url;\n }\n const error = new Error(`${'SubscriptionFailed'}:\\n${checkResult.message}`) as IError & { type: string };\n error.type = 'SubscriptionFailed';\n throw error;\n}\n\n// export const formatSMSLink = (keywordAndShortcode: IKeywordShortcode) =>\n// !!window.pac_analytics.visitor['x-requested-with'] &&\n// window.pac_analytics.visitor['x-requested-with'] !== null &&\n// window.pac_analytics.visitor['x-requested-with'].indexOf('com.facebook') !== -1\n// ? `sms://${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`\n// : typeof navigator !== 'undefined' && (/iPhone/i.test(navigator.userAgent) || /Mac OS/i.test(navigator.userAgent))\n// ? `sms:${keywordAndShortcode.shortcode}&body=${keywordAndShortcode.keyword}`\n// : `sms:${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`;\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoTypes';\nimport { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { redirectErrorTypes } from '../../utilities/normaliseErrorCode';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport { identifyStrategy } from '../strategy';\nimport submitMSISDN from './main';\n\nexport const mockedMSISDNEntrySuccess: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n keyword: 'TEST OK',\n shortcode: '777'\n })\n }\n};\n\nexport const mockedMSISDNEntryFailure: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\nexport interface MoFlowState {\n currentState: {\n type: 'MSISDNEntry';\n result: RDS.RemoteDataState<any, any>; // Replace any with your specific error and data types\n };\n}\n\nconst defaultInitialState: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\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 'msisdn-entry-failure-state':\n return mockedMSISDNEntryFailure;\n case 'msisdn-entry-success-state':\n return mockedMSISDNEntrySuccess;\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 SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}\n \n * Calls trigger-message api that returns a short code and key word\n * Sets completed stated\n */\nexport const submitMSISDNAction = createAsyncThunk<\n MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure;\n }\n>('moFlow/submitMSISDNAction', async ({ window, msisdn, 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 { config } = state.strategy.currentState.data;\n\n try {\n // Start Trigger Message\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submitted', { msisdn });\n const keywordAndShortcode = await submitMSISDN(window, config, msisdn, extraParams);\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submission-success', { msisdn });\n // End Trigger Message\n\n // Start Store Msisdn\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End Store Msisdn\n\n return {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({ ...keywordAndShortcode })\n };\n } catch (ex) {\n console.warn(ex);\n\n const errorType = ex.type as MSISDNEntryErrorTypes;\n\n tracker.recedeInFlow('tallyman.v1-mo', 'msisdn-submission-failure', {\n msisdn,\n errorType\n });\n\n if (redirectErrorTypes.includes(errorType) && window?.pac_analytics?.visitor?.waterfallRedirectUrl) {\n tracker.customEvent('tallyman.v1-mo', 'redirect', 'waterfall-redirect', {\n redirect_url: window?.pac_analytics?.visitor?.waterfallRedirectUrl,\n errorType\n });\n window.location.href = window?.pac_analytics?.visitor?.waterfallRedirectUrl;\n }\n return rejectWithValue({\n errorType,\n productUrl: ex.productUrl\n });\n }\n});\n\nexport const backToStartAction = createAsyncThunk<\n any,\n any,\n {\n rejectValue: any; // Type for rejectWithValue\n }\n>('moFlow/backToStartAction', async (_, { dispatch, rejectWithValue }) => {\n try {\n tracker.recedeInFlow('tallyman.v1-mo', 'mo-state', 'requested to change phone number');\n dispatch(identifyStrategy());\n } catch (ex) {\n console.warn(ex);\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n});\n\nconst moFlowSlice = createSlice({\n name: 'moFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading() };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: moFlowReducer, actions: moFlowActions } = moFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectMoFlowState = (state: any) => state.moFlow;\n"],"names":["useMoFlowState","useSelector","state","moFlow","currentState","moFlowMatch","_a","msisdnEntry","type","result","triggerMessage","window","slug","country","msisdn","device","offer","rockmanId","extraParamsQs","search","api_ajax_url","fetch","then","x","json","_b","_d","partnerAjaxResopnse","cleanSearchParams","params","action","offerId","rockman_id","page","encodeURIComponent","_c","location","href","sam_g_token","reCaptchaToken","language_code","languageCode","partner_form_action","form_action","antifraud_id","antifraud_id_js_code","antifraud_id_js_link","queryString","Object","entries","filter","__read","map","key","value","concat","join","host","DEV_BASE_URL","url","MOCK_TRIGGER_MESSAGE_RESPONSE","submitMSISDN","maybeConfig","internationalMSISDN","extraParams","config","pac_analytics","visitor","submitMSISDNWithConfig","substr","keys","k","match","sent","success","defaultType","message","error_code","normaliseErrorCode","error","Error","assign","productUrl","product_url","__assign","keyword","displayKeyword","mockedMSISDNEntrySuccess","RDS.Success","shortcode","mockedMSISDNEntryFailure","RDS.Failure","errorType","defaultInitialState","RDS.NothingYet","initialState","searchToObject","console","setInitialState","submitMSISDNAction","createAsyncThunk","getState","rejectWithValue","_e","strategy","data","tracker","advancedInFlow","keywordAndShortcode","_m","storeMsisdn","customEvent","catch","warn","ex_1","recedeInFlow","redirectErrorTypes","includes","_f","_g","waterfallRedirectUrl","redirect_url","_j","_h","_l","backToStartAction","_","dispatch","identifyStrategy","ex","moFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","moFlowReducer","reducer","actions"],"mappings":"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"}
1
+ {"version":3,"file":"moFlow.js","sources":["../src/flows/moFlow/hooks/useMoFlowState.ts","../src/flows/moFlow/match.ts","../src/flows/moFlow/api.ts","../src/flows/moFlow/main.ts","../src/flows/moFlow/moFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useMoFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.moFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport { MoFlowCurrentState, MSISDNEntryFailure, MSISDNEntrySuccess } from '../../sharedFlowTypes/MoTypes';\n\nfunction moFlowMatch<R>({\n msisdnEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n}): (state: MoFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n default:\n // TODO - this should be an error or something\n return msisdnEntry(state.result);\n }\n };\n}\n\nexport { moFlowMatch };\n","import { IGoogleReCaptcha, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\n\nconst getGoogleCaptcha = async (\n window: Window,\n country: string,\n slug: string,\n device: string,\n domain: string\n): Promise<IGoogleReCaptcha> => {\n const host = (window as Window).DEV_BASE_URL || '';\n\n return fetch(\n `${host}/tallyman/helper/?action=google-captcha-v3-config&country=${country}&slug=${slug}&device=${device}&domain=${domain}`\n ).then((x) => x.json());\n};\n\nconst triggerMessage = async ({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n extraParamsQs,\n search\n}: {\n window: Window;\n slug: string;\n country: string;\n msisdn: string;\n device: string;\n offer: string;\n rockmanId: string;\n search: string;\n extraParamsQs: string;\n}): Promise<IMSISDNSubmissionResult> => {\n // introduced https://www.notion.so/sammedia/CH-Agency-Bodkinco-Integration-ea1600ad175f451a9d351b6763ad7992\n const partnerAjaxResopnse: {\n form_action: string;\n } = window.api_ajax_url ? await fetch(window.api_ajax_url).then((x) => x.json()) : null;\n\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n const params = {\n action: 'trigger-message',\n slug,\n country,\n msisdn,\n device,\n offerId: offer,\n rockman_id: rockmanId,\n page: encodeURIComponent(window?.location?.href),\n sam_g_token: window.reCaptchaToken || '',\n language_code: window.languageCode || '',\n partner_form_action: partnerAjaxResopnse?.form_action ? encodeURIComponent(partnerAjaxResopnse?.form_action) : '',\n\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || ''\n };\n\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${search ? `&${search}` : ''}&${extraParamsQs}`;\n\n if (window.MOCK_TRIGGER_MESSAGE_RESPONSE) {\n return window.MOCK_TRIGGER_MESSAGE_RESPONSE;\n }\n return fetch(url).then((x) => x.json());\n};\n\nexport { getGoogleCaptcha, triggerMessage };\n","import { ICheckSubscriptionResult } from '../../common-types/ICheckSubscriptionResult';\nimport { IError } from '../../common-types/IError';\nimport { IConfig } from '../../common-types/Strategy';\nimport { checkSubscriptionByRockmanIdOnly } from '../../sharedApi/checkSubscriptionByRockmanIdOnly';\nimport { IGoogleReCaptcha, IKeywordShortcode, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\nimport { loop } from '../../utilities/helpers';\nimport loadScriptSrc from '../../utilities/loadScriptSrc';\nimport { normaliseErrorCode } from '../../utilities/normaliseErrorCode';\nimport { getGoogleCaptcha, triggerMessage } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const config: any = { ...(maybeConfig || {}), offer: window.pac_analytics?.visitor?.offer };\n return submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams);\n}\n\nexport const getGoogleReCaptchaConfig = async ({\n window,\n slug,\n country,\n device\n}: IConfig & { window: Window }): Promise<IGoogleReCaptcha> => {\n const domain = window.location.hostname;\n const result: IGoogleReCaptcha = await getGoogleCaptcha(window, country, slug, device, domain);\n if (result.success === true) {\n const srcUrl = `https://www.google.com/recaptcha/api.js?render=${result.site_key}`;\n loadScriptSrc({ url: srcUrl, key: result.site_key, isRecaptcha: true });\n }\n return result;\n};\n\nexport async function submitMSISDNWithConfig(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const { slug, country, device, offer } = config;\n const search = window.location.search.substr(1) || '';\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || '';\n const { rockmanId } = window.pac_analytics.visitor;\n\n const result: IMSISDNSubmissionResult = await triggerMessage({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n search,\n extraParamsQs\n });\n\n if (result.success === false) {\n // pick a default based on message, then override with error_code if available\n const defaultType = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMsisdn';\n\n const type = result.error_code ? normaliseErrorCode(result.error_code) : defaultType;\n\n // build, augment, log and throw\n const error = new Error(`${type}:\\n${result.message}`) as IError & {\n type: string;\n productUrl: string;\n };\n\n Object.assign(error, {\n type,\n productUrl: result.product_url ?? ''\n });\n\n throw error;\n } else {\n return { ...result, keyword: result.displayKeyword }; // based on discussion with Chanaka to avoid confusion in set up on bupper. Click2sms and mo will use display keyword\n }\n}\n\nexport async function moCheckSubscription(window: Window): Promise<string> {\n const { rockmanId } = window.pac_analytics.visitor;\n const check: () => Promise<ICheckSubscriptionResult> = () => checkSubscriptionByRockmanIdOnly({ window, rockmanId });\n\n const checkResult: ICheckSubscriptionResult = await loop(check, 60, (r) => r.success, 0);\n\n if (checkResult.success === true && checkResult.product_url && checkResult.product_url !== '') {\n window.location.href = checkResult.product_url;\n return checkResult.product_url;\n }\n const error = new Error(`${'SubscriptionFailed'}:\\n${checkResult.message}`) as IError & { type: string };\n error.type = 'SubscriptionFailed';\n throw error;\n}\n\n// export const formatSMSLink = (keywordAndShortcode: IKeywordShortcode) =>\n// !!window.pac_analytics.visitor['x-requested-with'] &&\n// window.pac_analytics.visitor['x-requested-with'] !== null &&\n// window.pac_analytics.visitor['x-requested-with'].indexOf('com.facebook') !== -1\n// ? `sms://${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`\n// : typeof navigator !== 'undefined' && (/iPhone/i.test(navigator.userAgent) || /Mac OS/i.test(navigator.userAgent))\n// ? `sms:${keywordAndShortcode.shortcode}&body=${keywordAndShortcode.keyword}`\n// : `sms:${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`;\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoTypes';\nimport { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { handleWaterfallRedirect } from '../../utilities/handleWaterfallRedirect';\nimport { redirectErrorTypes } from '../../utilities/normaliseErrorCode';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport { identifyStrategy } from '../strategy';\nimport submitMSISDN from './main';\n\nexport const mockedMSISDNEntrySuccess: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n keyword: 'TEST OK',\n shortcode: '777'\n })\n }\n};\n\nexport const mockedMSISDNEntryFailure: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\nexport interface MoFlowState {\n currentState: {\n type: 'MSISDNEntry';\n result: RDS.RemoteDataState<any, any>; // Replace any with your specific error and data types\n };\n}\n\nconst defaultInitialState: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\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 'msisdn-entry-failure-state':\n return mockedMSISDNEntryFailure;\n case 'msisdn-entry-success-state':\n return mockedMSISDNEntrySuccess;\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 SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}\n \n * Calls trigger-message api that returns a short code and key word\n * Sets completed stated\n */\nexport const submitMSISDNAction = createAsyncThunk<\n MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure;\n }\n>('moFlow/submitMSISDNAction', async ({ window, msisdn, 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 { config } = state.strategy.currentState.data;\n\n try {\n // Start Trigger Message\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submitted', { msisdn });\n const keywordAndShortcode = await submitMSISDN(window, config, msisdn, extraParams);\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submission-success', { msisdn });\n // End Trigger Message\n\n // Start Store Msisdn\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End Store Msisdn\n\n return {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({ ...keywordAndShortcode })\n };\n } catch (ex) {\n console.warn(ex);\n\n const errorType = ex.type as MSISDNEntryErrorTypes;\n\n tracker.recedeInFlow('tallyman.v1-mo', 'msisdn-submission-failure', {\n msisdn,\n errorType\n });\n\n if (redirectErrorTypes.includes(errorType) && window?.pac_analytics?.visitor?.waterfallRedirectUrl) {\n tracker.customEvent('tallyman.v1-mo', 'redirect', 'waterfall-redirect', {\n redirect_url: window?.pac_analytics?.visitor?.waterfallRedirectUrl,\n errorType\n });\n handleWaterfallRedirect(window?.pac_analytics?.visitor?.waterfallRedirectUrl);\n }\n return rejectWithValue({\n errorType,\n productUrl: ex.productUrl\n });\n }\n});\n\nexport const backToStartAction = createAsyncThunk<\n any,\n any,\n {\n rejectValue: any; // Type for rejectWithValue\n }\n>('moFlow/backToStartAction', async (_, { dispatch, rejectWithValue }) => {\n try {\n tracker.recedeInFlow('tallyman.v1-mo', 'mo-state', 'requested to change phone number');\n dispatch(identifyStrategy());\n } catch (ex) {\n console.warn(ex);\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n});\n\nconst moFlowSlice = createSlice({\n name: 'moFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading() };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: moFlowReducer, actions: moFlowActions } = moFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectMoFlowState = (state: any) => state.moFlow;\n"],"names":["useMoFlowState","useSelector","state","moFlow","currentState","moFlowMatch","_a","msisdnEntry","type","result","triggerMessage","window","slug","country","msisdn","device","offer","rockmanId","extraParamsQs","search","api_ajax_url","fetch","then","x","json","_b","_d","partnerAjaxResopnse","cleanSearchParams","params","action","offerId","rockman_id","page","encodeURIComponent","_c","location","href","sam_g_token","reCaptchaToken","language_code","languageCode","partner_form_action","form_action","antifraud_id","antifraud_id_js_code","antifraud_id_js_link","queryString","Object","entries","filter","__read","map","key","value","concat","join","host","DEV_BASE_URL","url","MOCK_TRIGGER_MESSAGE_RESPONSE","submitMSISDN","maybeConfig","internationalMSISDN","extraParams","config","pac_analytics","visitor","submitMSISDNWithConfig","substr","keys","k","match","sent","success","defaultType","message","error_code","normaliseErrorCode","error","Error","assign","productUrl","product_url","__assign","keyword","displayKeyword","mockedMSISDNEntrySuccess","RDS.Success","shortcode","mockedMSISDNEntryFailure","RDS.Failure","errorType","defaultInitialState","RDS.NothingYet","initialState","searchToObject","console","setInitialState","submitMSISDNAction","createAsyncThunk","getState","rejectWithValue","_e","strategy","data","tracker","advancedInFlow","keywordAndShortcode","_m","storeMsisdn","customEvent","catch","warn","ex_1","recedeInFlow","redirectErrorTypes","includes","_f","_g","waterfallRedirectUrl","redirect_url","_j","_h","handleWaterfallRedirect","_l","_k","backToStartAction","_","dispatch","identifyStrategy","ex","moFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","moFlowReducer","reducer","actions"],"mappings":"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"}
package/dist/pinFlow.js CHANGED
@@ -1,2 +1,2 @@
1
- import{__awaiter as e,__generator as t,__assign as r}from"tslib";import{createAsyncThunk as n,createSlice as i}from"@reduxjs/toolkit";import{N as o,L as a,S as s,F as l}from"./RemoteDataState-lcf8PfJd.js";import{i as d,c as u,P as c}from"./strategySlice-BMNt18ck.js";import{r as v}from"./normaliseErrorCode-CVpyJZ6_.js";import{searchToObject as p}from"./searchToObject.js";import{s as m}from"./storeMsisdn-Cjq8_qYH.js";import{t as y}from"./tracker-DaaILhEr.js";import{s as w,a as f}from"./main-CDmeQMF-.js";import"./getConfig.js";import"./formatNumberToE164-DaAFvpKD.js";import"./api-geirVksI.js";import"pacman-client";import"uuid";import"./helpers-CBmogWIZ.js";import"./loadScriptInnerHtml-B6v2-IGn.js";import"./cleanSearchParams-Dl7ZDlew.js";var S=function(e){return e((function(e){return e.pinFlow.currentState}))};function g(e){var t=e.msisdnEntry,r=e.pinEntry;return function(e){switch(e.type){case"MSISDNEntry":return t(e.result);case"PINEntry":return r(e.result,e.data);default:throw new Error("Invalid State")}}}var h={currentState:{type:"PINEntry",result:o(),data:{actualPIN:"",msisdn:"",operator:"",pinMaxLength:4}}},I={currentState:{type:"PINEntry",result:s({finalUrl:"/product"}),data:{actualPIN:"",msisdn:"",operator:"",pinMaxLength:4}}},b={currentState:{type:"MSISDNEntry",result:l({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},E={currentState:{type:"MSISDNEntry",result:o()}},N=function(e){var t,r=p(e),n=new Event("onPinPage"),i=r.ui_show_pin_entry&&"1"===r.ui_show_pin_entry||r["show-pin-entry"]&&"1"===r["show-pin-entry"],a=r["show-thank-you"]&&"1"===r["show-thank-you"],d="1"===(null==r?void 0:r.show_custom_error),u=(null!==(t=null==r?void 0:r.ui_error_message)&&void 0!==t?t:"").replace(/\+/g,"%20"),c=decodeURIComponent(u),v={currentState:{type:"MSISDNEntry",result:l({errorType:{"This mobile number is blacklisted":"BlacklistedNumber"}[c]||"SomethingWentWrong",error:c})}},m={currentState:{type:"PINEntry",result:s({finalUrl:(null==r?void 0:r.product_url)||""}),data:{msisdn:(null==r?void 0:r.msisdn)||"",operator:(null==r?void 0:r.operator)||""}}},y={currentState:{type:"PINEntry",result:o(),data:{msisdn:(null==r?void 0:r.msisdn)||"",operator:(null==r?void 0:r.operator)||""}}};if(i)return null==e||e.dispatchEvent(n),y;if(a)return m;if(d)return v;if(!r["mock-flow"])return E;switch(r["current-state"]){case"msisdn-failure-state":return b;case"pin-state":return null==e||e.dispatchEvent(n),h;case"completed-state":return I;default:return console.error("Mock Flow not supported"),E}}(window),U=n("pinFlow/submitMSISDNAction",(function(n,i){var s=n.window,l=n.msisdn,d=n.extraParams,f=i.getState,S=i.dispatch,g=i.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,n,i,h,I,b,E,N,U,P,_,F,M,C,k,j,R,D,x,A,L,B,W,H,q,J,V;return t(this,(function(t){switch(t.label){case 0:if(e=f(),!(null===(D=null===(R=null===(j=null==e?void 0:e.strategy)||void 0===j?void 0:j.currentState)||void 0===R?void 0:R.data)||void 0===D?void 0:D.config))return[2,g({errorType:"UnexpectedState"})];n=e.strategy.currentState.data,i=n.config,h=n.isHeaderEnrichmentSuccess,I=null===(x=e.pinFlow)||void 0===x?void 0:x.currentState,b=p(s),t.label=1;case 1:return t.trys.push([1,7,,8]),"ps"===(null==i?void 0:i.country.toLowerCase())&&(null==i?void 0:i.slug.includes("shemaroo"))&&"+970"===T(null==i?void 0:i.country,l)&&(l=l.replace("970","972")),"tpay"!==(null==(E=null===(L=null===(A=null==s?void 0:s.pac_analytics)||void 0===A?void 0:A.visitor)||void 0===L?void 0:L.genericJsLinkResult)?void 0:E.gateway)||(null==b?void 0:b.ui_show_pin_entry)?[3,3]:(y.advancedInFlow("tallyman.v1-pin","msisdn-submitted",{msisdn:l}),[4,w(s,i,l)]);case 2:if(t.sent(),s.msisdn=l,s.callConfirm)try{return s.callConfirm(),[2,r(r({},I),{type:"MSISDNEntry",result:a()})]}catch(e){return N="Confirm function failed",y.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:l,errorType:"TPayConfirmError",error:(null==e?void 0:e.toString())||"Error calling window.callConfirm function",message:e.message}),[2,g({errorType:"TPayConfirmError",error:N,message:N})]}return U="Confirm function not found",y.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:l,errorType:"TPayConfirmError",error:U,message:U}),[2,g({errorType:"TPayConfirmError",error:U,message:U})];case 3:return y.advancedInFlow("tallyman.v1-pin","msisdn-submitted",{msisdn:l}),[4,w(s,i,l)];case 4:return P=t.sent(),y.advancedInFlow("tallyman.v1-pin","msisdn-submission-success",{msisdn:l}),"SingleMSISDNSubmissionResult"===P.type&&P.redirectUrl?(y.advancedInFlow("tallyman.v1-pin","msisdn-submission-success",{msisdn:l}),y.customEvent("Flow","advance-auto","msisdn-redirect",{redirectUrl:P.redirectUrl}),s.location.href=P.redirectUrl,[2]):d&&d.storeMsisdn&&"true"===d.storeMsisdn?[4,m(l).then((function(e){e&&e.data&&e.data.success?y.customEvent("Flow","advance-auto","msisdn-stored-success"):y.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(e){y.customEvent("Flow","advance-auto","msisdn-stored-error",e)}))]:[3,6];case 5:t.sent(),t.label=6;case 6:return _="SingleMSISDNSubmissionResult"===(null==P?void 0:P.type)?null==P?void 0:P.operator:"",F={SA_MOBILY:6,SA_STC:4,SA_ZAIN:4},M=new Event("onPinPage"),null==s||s.dispatchEvent(M),[2,r(r({},I),{type:"PINEntry",result:o(),data:r({actualPIN:"SingleMSISDNSubmissionResult"===P.type?P.pin:null,msisdn:l,operator:_,pinMaxLength:""!==_&&F[_]?F[_]:null,isHeaderEnrichmentSuccess:h},"SingleMSISDNSubmissionResult"===P.type&&(null==P?void 0:P.userType)?{userType:P.userType}:{})})];case 7:return C=t.sent(),console.warn(C),k=C.type,y.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:l,errorType:k,error:C.toString(),message:C.message,productUrl:C.productUrl}),h&&S(u({type:c.PIN,data:{isHeaderEnrichmentSuccess:!1,config:i}})),v.includes(k)&&(null===(W=null===(B=null==s?void 0:s.pac_analytics)||void 0===B?void 0:B.visitor)||void 0===W?void 0:W.waterfallRedirectUrl)&&(y.customEvent("tallyman.v1-pin","redirect","waterfall-redirect",{redirect_url:null===(q=null===(H=null==s?void 0:s.pac_analytics)||void 0===H?void 0:H.visitor)||void 0===q?void 0:q.waterfallRedirectUrl,errorType:k}),s.location.href=null===(V=null===(J=null==s?void 0:s.pac_analytics)||void 0===J?void 0:J.visitor)||void 0===V?void 0:V.waterfallRedirectUrl),[2,g({errorType:k,error:C.toString(),message:C.message,productUrl:C.productUrl})];case 8:return[2]}}))}))})),P=n("pinFlow/submitPinAction",(function(n,i){var o=n.window,a=n.msisdn,l=n.pin,d=n.extraParams,u=i.getState,c=i.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,n,i,v,p,w,S,g,h,I;return t(this,(function(t){switch(t.label){case 0:if(e=u(),!(null===(h=null===(g=null===(S=null==e?void 0:e.strategy)||void 0===S?void 0:S.currentState)||void 0===g?void 0:g.data)||void 0===h?void 0:h.config))return[2,c({errorType:"UnexpectedState"})];n=e.strategy.currentState.data.config,i=null===(I=e.pinFlow)||void 0===I?void 0:I.currentState,t.label=1;case 1:return t.trys.push([1,5,,6]),y.advancedInFlow("tallyman.v1-pin","pin-submitted",{msisdn:a,pin:l}),[4,f(o,l,n,d)];case 2:return v=t.sent(),y.advancedInFlow("tallyman.v1-pin","pin-submission-success",{msisdn:a,pin:l,finalUrl:v.productUrl}),v.gatewayRedirectUrl&&""!==v.gatewayRedirectUrl&&(y.advancedInFlow("tallyman.v1-pin","gateway-redirect",{msisdn:a,pin:l,gatewayRedirectUrl:v.gatewayRedirectUrl}),o.location.href=v.gatewayRedirectUrl),d&&d.storeMsisdn&&"true"===d.storeMsisdn?[4,m(a).then((function(e){e&&e.data&&e.data.success?y.customEvent("Flow","advance-auto","msisdn-stored-success"):y.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(e){y.customEvent("Flow","advance-auto","msisdn-stored-error",e)}))]:[3,4];case 3:t.sent(),t.label=4;case 4:return[2,r(r({},i),{type:"PINEntry",result:s({finalUrl:v.productUrl,isAlreadySubscribed:v.isAlreadySubscribed||!1})})];case 5:switch(p=t.sent(),console.warn(p),w=void 0,p.type){case"AlreadySubscribed":w="AlreadySubscribed";break;case"InvalidPIN":w="InvalidPIN";break;case"SessionBlocked":w="SessionBlocked";break;case"ExpiredPIN":w="ExpiredPIN";break;case"InsufficientBalance":w="InsufficientBalance";break;case"DuplicatedRequest":w="DuplicatedRequest";break;default:w="UnknownError"}return y.recedeInFlow("tallyman.v1-pin","pin-submission-failure",{msisdn:a,pin:l,errorType:w,error:p.toString(),message:p.message,productUrl:p.productUrl}),setTimeout((function(){p.productUrl&&(o.location.href=p.productUrl)}),0),[2,c({errorType:w,error:p.toString(),message:p.message,productUrl:p.productUrl})];case 6:return[2]}}))}))})),_=n("pinFlow/backToStartAction",(function(r,n){var i=n.getState,a=n.dispatch,s=n.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,r,n,l;return t(this,(function(t){try{if(y.recedeInFlow("tallyman.v1-pin","pin-state","requested to change phone number"),e=i(),!(null===(l=null===(n=null===(r=null==e?void 0:e.strategy)||void 0===r?void 0:r.currentState)||void 0===n?void 0:n.data)||void 0===l?void 0:l.config))return[2,s({errorType:"UnexpectedState"})];if("pin"===e.strategy.currentState.data.strategy)return[2,{type:"MSISDNEntry",result:o()}];a(d())}catch(e){return console.warn(e),[2,s({errorType:"UnexpectedState"})]}return[2]}))}))})),F={PS:"970"},T=function(e,t){if(!e||!t)return"";var r=e.toUpperCase(),n=F[r];return n?"+".concat(n):(console.error("Country code not found for",e),"")},M=i({name:"pinFlow",initialState:N,reducers:{},extraReducers:function(e){e.addCase(U.pending,(function(e){var t,r,n,i,o,s,l;e.currentState={type:(null===(r=null===(t=null===window||void 0===window?void 0:window.location)||void 0===t?void 0:t.search)||void 0===r?void 0:r.includes("ui_show_pin_entry"))||(null===(i=null===(n=null===window||void 0===window?void 0:window.location)||void 0===n?void 0:n.search)||void 0===i?void 0:i.includes("show-pin-entry"))&&"tpay"===(null===(l=null===(s=null===(o=null===window||void 0===window?void 0:window.pac_analytics)||void 0===o?void 0:o.visitor)||void 0===s?void 0:s.genericJsLinkResult)||void 0===l?void 0:l.gateway)?"PINEntry":"MSISDNEntry",result:a(),data:e.currentState.data}})).addCase(U.fulfilled,(function(e,t){e.currentState=t.payload})).addCase(U.rejected,(function(e,t){var r,n,i,o,a,s,d;e.currentState={type:(null===(n=null===(r=null===window||void 0===window?void 0:window.location)||void 0===r?void 0:r.search)||void 0===n?void 0:n.includes("ui_show_pin_entry"))||(null===(o=null===(i=null===window||void 0===window?void 0:window.location)||void 0===i?void 0:i.search)||void 0===o?void 0:o.includes("show-pin-entry"))&&"tpay"===(null===(d=null===(s=null===(a=null===window||void 0===window?void 0:window.pac_analytics)||void 0===a?void 0:a.visitor)||void 0===s?void 0:s.genericJsLinkResult)||void 0===d?void 0:d.gateway)?"PINEntry":"MSISDNEntry",result:l(t.payload),data:e.currentState.data}})).addCase(P.pending,(function(e){e.currentState={type:"PINEntry",result:a(),data:e.currentState.data}})).addCase(P.fulfilled,(function(e,t){e.currentState=t.payload})).addCase(P.rejected,(function(e,t){e.currentState={type:"PINEntry",result:l(t.payload),data:e.currentState.data}})).addCase(_.fulfilled,(function(e,t){e.currentState=t.payload}))}}),C=M.reducer;M.actions;export{_ as backToStartAction,g as pinFlowMatch,C as pinFlowReducer,U as submitMSISDNAction,P as submitPinAction,S as usePinFlowState};
1
+ import{__awaiter as e,__generator as t,__assign as r}from"tslib";import{createAsyncThunk as n,createSlice as i}from"@reduxjs/toolkit";import{N as o,L as a,S as s,F as l}from"./RemoteDataState-lcf8PfJd.js";import{i as d,c as u,P as c}from"./strategySlice-BMNt18ck.js";import{h as v}from"./handleWaterfallRedirect-DztqrthA.js";import{r as p}from"./normaliseErrorCode-CVpyJZ6_.js";import{searchToObject as m}from"./searchToObject.js";import{s as y}from"./storeMsisdn-Cjq8_qYH.js";import{t as w}from"./tracker-DaaILhEr.js";import{s as f,a as S}from"./main-CDmeQMF-.js";import"./getConfig.js";import"./formatNumberToE164-DaAFvpKD.js";import"./api-geirVksI.js";import"pacman-client";import"uuid";import"./helpers-CBmogWIZ.js";import"./loadScriptInnerHtml-B6v2-IGn.js";import"./cleanSearchParams-Dl7ZDlew.js";var g=function(e){return e((function(e){return e.pinFlow.currentState}))};function h(e){var t=e.msisdnEntry,r=e.pinEntry;return function(e){switch(e.type){case"MSISDNEntry":return t(e.result);case"PINEntry":return r(e.result,e.data);default:throw new Error("Invalid State")}}}var I={currentState:{type:"PINEntry",result:o(),data:{actualPIN:"",msisdn:"",operator:"",pinMaxLength:4}}},b={currentState:{type:"PINEntry",result:s({finalUrl:"/product"}),data:{actualPIN:"",msisdn:"",operator:"",pinMaxLength:4}}},E={currentState:{type:"MSISDNEntry",result:l({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},N={currentState:{type:"MSISDNEntry",result:o()}},U=function(e){var t,r=m(e),n=new Event("onPinPage"),i=r.ui_show_pin_entry&&"1"===r.ui_show_pin_entry||r["show-pin-entry"]&&"1"===r["show-pin-entry"],a=r["show-thank-you"]&&"1"===r["show-thank-you"],d="1"===(null==r?void 0:r.show_custom_error),u=(null!==(t=null==r?void 0:r.ui_error_message)&&void 0!==t?t:"").replace(/\+/g,"%20"),c=decodeURIComponent(u),v={currentState:{type:"MSISDNEntry",result:l({errorType:{"This mobile number is blacklisted":"BlacklistedNumber"}[c]||"SomethingWentWrong",error:c})}},p={currentState:{type:"PINEntry",result:s({finalUrl:(null==r?void 0:r.product_url)||""}),data:{msisdn:(null==r?void 0:r.msisdn)||"",operator:(null==r?void 0:r.operator)||""}}},y={currentState:{type:"PINEntry",result:o(),data:{msisdn:(null==r?void 0:r.msisdn)||"",operator:(null==r?void 0:r.operator)||""}}};if(i)return null==e||e.dispatchEvent(n),y;if(a)return p;if(d)return v;if(!r["mock-flow"])return N;switch(r["current-state"]){case"msisdn-failure-state":return E;case"pin-state":return null==e||e.dispatchEvent(n),I;case"completed-state":return b;default:return console.error("Mock Flow not supported"),N}}(window),P=n("pinFlow/submitMSISDNAction",(function(n,i){var s=n.window,l=n.msisdn,d=n.extraParams,S=i.getState,g=i.dispatch,h=i.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,n,i,I,b,E,N,U,P,_,F,T,C,j,k,R,D,x,A,L,B,W,H,q,J,V,O;return t(this,(function(t){switch(t.label){case 0:if(e=S(),!(null===(x=null===(D=null===(R=null==e?void 0:e.strategy)||void 0===R?void 0:R.currentState)||void 0===D?void 0:D.data)||void 0===x?void 0:x.config))return[2,h({errorType:"UnexpectedState"})];n=e.strategy.currentState.data,i=n.config,I=n.isHeaderEnrichmentSuccess,b=null===(A=e.pinFlow)||void 0===A?void 0:A.currentState,E=m(s),t.label=1;case 1:return t.trys.push([1,7,,8]),"ps"===(null==i?void 0:i.country.toLowerCase())&&(null==i?void 0:i.slug.includes("shemaroo"))&&"+970"===M(null==i?void 0:i.country,l)&&(l=l.replace("970","972")),"tpay"!==(null==(N=null===(B=null===(L=null==s?void 0:s.pac_analytics)||void 0===L?void 0:L.visitor)||void 0===B?void 0:B.genericJsLinkResult)?void 0:N.gateway)||(null==E?void 0:E.ui_show_pin_entry)?[3,3]:(w.advancedInFlow("tallyman.v1-pin","msisdn-submitted",{msisdn:l}),[4,f(s,i,l)]);case 2:if(t.sent(),s.msisdn=l,s.callConfirm)try{return s.callConfirm(),[2,r(r({},b),{type:"MSISDNEntry",result:a()})]}catch(e){return U="Confirm function failed",w.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:l,errorType:"TPayConfirmError",error:(null==e?void 0:e.toString())||"Error calling window.callConfirm function",message:e.message}),[2,h({errorType:"TPayConfirmError",error:U,message:U})]}return P="Confirm function not found",w.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:l,errorType:"TPayConfirmError",error:P,message:P}),[2,h({errorType:"TPayConfirmError",error:P,message:P})];case 3:return w.advancedInFlow("tallyman.v1-pin","msisdn-submitted",{msisdn:l}),[4,f(s,i,l)];case 4:return _=t.sent(),w.advancedInFlow("tallyman.v1-pin","msisdn-submission-success",{msisdn:l}),"SingleMSISDNSubmissionResult"===_.type&&_.redirectUrl?(w.advancedInFlow("tallyman.v1-pin","msisdn-submission-success",{msisdn:l}),w.customEvent("Flow","advance-auto","msisdn-redirect",{redirectUrl:_.redirectUrl}),s.location.href=_.redirectUrl,[2]):d&&d.storeMsisdn&&"true"===d.storeMsisdn?[4,y(l).then((function(e){e&&e.data&&e.data.success?w.customEvent("Flow","advance-auto","msisdn-stored-success"):w.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(e){w.customEvent("Flow","advance-auto","msisdn-stored-error",e)}))]:[3,6];case 5:t.sent(),t.label=6;case 6:return F="SingleMSISDNSubmissionResult"===(null==_?void 0:_.type)?null==_?void 0:_.operator:"",T={SA_MOBILY:6,SA_STC:4,SA_ZAIN:4},C=new Event("onPinPage"),null==s||s.dispatchEvent(C),[2,r(r({},b),{type:"PINEntry",result:o(),data:r({actualPIN:"SingleMSISDNSubmissionResult"===_.type?_.pin:null,msisdn:l,operator:F,pinMaxLength:""!==F&&T[F]?T[F]:null,isHeaderEnrichmentSuccess:I},"SingleMSISDNSubmissionResult"===_.type&&(null==_?void 0:_.userType)?{userType:_.userType}:{})})];case 7:return j=t.sent(),console.warn(j),k=j.type,w.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:l,errorType:k,error:j.toString(),message:j.message,productUrl:j.productUrl}),I&&g(u({type:c.PIN,data:{isHeaderEnrichmentSuccess:!1,config:i}})),p.includes(k)&&(null===(H=null===(W=null==s?void 0:s.pac_analytics)||void 0===W?void 0:W.visitor)||void 0===H?void 0:H.waterfallRedirectUrl)&&(w.customEvent("tallyman.v1-pin","redirect","waterfall-redirect",{redirect_url:null===(J=null===(q=null==s?void 0:s.pac_analytics)||void 0===q?void 0:q.visitor)||void 0===J?void 0:J.waterfallRedirectUrl,errorType:k}),v(null===(O=null===(V=null==s?void 0:s.pac_analytics)||void 0===V?void 0:V.visitor)||void 0===O?void 0:O.waterfallRedirectUrl)),[2,h({errorType:k,error:j.toString(),message:j.message,productUrl:j.productUrl})];case 8:return[2]}}))}))})),_=n("pinFlow/submitPinAction",(function(n,i){var o=n.window,a=n.msisdn,l=n.pin,d=n.extraParams,u=i.getState,c=i.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,n,i,v,p,m,f,g,h,I;return t(this,(function(t){switch(t.label){case 0:if(e=u(),!(null===(h=null===(g=null===(f=null==e?void 0:e.strategy)||void 0===f?void 0:f.currentState)||void 0===g?void 0:g.data)||void 0===h?void 0:h.config))return[2,c({errorType:"UnexpectedState"})];n=e.strategy.currentState.data.config,i=null===(I=e.pinFlow)||void 0===I?void 0:I.currentState,t.label=1;case 1:return t.trys.push([1,5,,6]),w.advancedInFlow("tallyman.v1-pin","pin-submitted",{msisdn:a,pin:l}),[4,S(o,l,n,d)];case 2:return v=t.sent(),w.advancedInFlow("tallyman.v1-pin","pin-submission-success",{msisdn:a,pin:l,finalUrl:v.productUrl}),v.gatewayRedirectUrl&&""!==v.gatewayRedirectUrl&&(w.advancedInFlow("tallyman.v1-pin","gateway-redirect",{msisdn:a,pin:l,gatewayRedirectUrl:v.gatewayRedirectUrl}),o.location.href=v.gatewayRedirectUrl),d&&d.storeMsisdn&&"true"===d.storeMsisdn?[4,y(a).then((function(e){e&&e.data&&e.data.success?w.customEvent("Flow","advance-auto","msisdn-stored-success"):w.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(e){w.customEvent("Flow","advance-auto","msisdn-stored-error",e)}))]:[3,4];case 3:t.sent(),t.label=4;case 4:return[2,r(r({},i),{type:"PINEntry",result:s({finalUrl:v.productUrl,isAlreadySubscribed:v.isAlreadySubscribed||!1})})];case 5:switch(p=t.sent(),console.warn(p),m=void 0,p.type){case"AlreadySubscribed":m="AlreadySubscribed";break;case"InvalidPIN":m="InvalidPIN";break;case"SessionBlocked":m="SessionBlocked";break;case"ExpiredPIN":m="ExpiredPIN";break;case"InsufficientBalance":m="InsufficientBalance";break;case"DuplicatedRequest":m="DuplicatedRequest";break;default:m="UnknownError"}return w.recedeInFlow("tallyman.v1-pin","pin-submission-failure",{msisdn:a,pin:l,errorType:m,error:p.toString(),message:p.message,productUrl:p.productUrl}),setTimeout((function(){p.productUrl&&(o.location.href=p.productUrl)}),0),[2,c({errorType:m,error:p.toString(),message:p.message,productUrl:p.productUrl})];case 6:return[2]}}))}))})),F=n("pinFlow/backToStartAction",(function(r,n){var i=n.getState,a=n.dispatch,s=n.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,r,n,l;return t(this,(function(t){try{if(w.recedeInFlow("tallyman.v1-pin","pin-state","requested to change phone number"),e=i(),!(null===(l=null===(n=null===(r=null==e?void 0:e.strategy)||void 0===r?void 0:r.currentState)||void 0===n?void 0:n.data)||void 0===l?void 0:l.config))return[2,s({errorType:"UnexpectedState"})];if("pin"===e.strategy.currentState.data.strategy)return[2,{type:"MSISDNEntry",result:o()}];a(d())}catch(e){return console.warn(e),[2,s({errorType:"UnexpectedState"})]}return[2]}))}))})),T={PS:"970"},M=function(e,t){if(!e||!t)return"";var r=e.toUpperCase(),n=T[r];return n?"+".concat(n):(console.error("Country code not found for",e),"")},C=i({name:"pinFlow",initialState:U,reducers:{},extraReducers:function(e){e.addCase(P.pending,(function(e){var t,r,n,i,o,s,l;e.currentState={type:(null===(r=null===(t=null===window||void 0===window?void 0:window.location)||void 0===t?void 0:t.search)||void 0===r?void 0:r.includes("ui_show_pin_entry"))||(null===(i=null===(n=null===window||void 0===window?void 0:window.location)||void 0===n?void 0:n.search)||void 0===i?void 0:i.includes("show-pin-entry"))&&"tpay"===(null===(l=null===(s=null===(o=null===window||void 0===window?void 0:window.pac_analytics)||void 0===o?void 0:o.visitor)||void 0===s?void 0:s.genericJsLinkResult)||void 0===l?void 0:l.gateway)?"PINEntry":"MSISDNEntry",result:a(),data:e.currentState.data}})).addCase(P.fulfilled,(function(e,t){e.currentState=t.payload})).addCase(P.rejected,(function(e,t){var r,n,i,o,a,s,d;e.currentState={type:(null===(n=null===(r=null===window||void 0===window?void 0:window.location)||void 0===r?void 0:r.search)||void 0===n?void 0:n.includes("ui_show_pin_entry"))||(null===(o=null===(i=null===window||void 0===window?void 0:window.location)||void 0===i?void 0:i.search)||void 0===o?void 0:o.includes("show-pin-entry"))&&"tpay"===(null===(d=null===(s=null===(a=null===window||void 0===window?void 0:window.pac_analytics)||void 0===a?void 0:a.visitor)||void 0===s?void 0:s.genericJsLinkResult)||void 0===d?void 0:d.gateway)?"PINEntry":"MSISDNEntry",result:l(t.payload),data:e.currentState.data}})).addCase(_.pending,(function(e){e.currentState={type:"PINEntry",result:a(),data:e.currentState.data}})).addCase(_.fulfilled,(function(e,t){e.currentState=t.payload})).addCase(_.rejected,(function(e,t){e.currentState={type:"PINEntry",result:l(t.payload),data:e.currentState.data}})).addCase(F.fulfilled,(function(e,t){e.currentState=t.payload}))}}),j=C.reducer;C.actions;export{F as backToStartAction,h as pinFlowMatch,j as pinFlowReducer,P as submitMSISDNAction,_ as submitPinAction,g as usePinFlowState};
2
2
  //# sourceMappingURL=pinFlow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pinFlow.js","sources":["../src/flows/pinFlow/hooks/usePinFlowState.ts","../src/flows/pinFlow/match.ts","../src/flows/pinFlow/pinFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const usePinFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.pinFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n IMsisdnSumbitNextData,\n MSISDNEntryFailure,\n MSISDNEntrySuccess,\n PINEntryFailure,\n PINEntrySuccess,\n PinFlowCurrentState\n} from '../../sharedFlowTypes/PinTypes';\n\nfunction pinFlowMatch<R>({\n msisdnEntry,\n pinEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n pinEntry: (rds: RDS.RemoteDataState<PINEntryFailure, PINEntrySuccess>, nextData: IMsisdnSumbitNextData) => R;\n}): (state: PinFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n case 'PINEntry':\n return pinEntry(state.result, state.data);\n default:\n throw new Error('Invalid State');\n }\n };\n}\n\nexport { pinFlowMatch };\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n IHash,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess,\n PINEntryErrorTypes,\n PINEntryFailure,\n PINEntryState,\n PINEntrySuccess,\n PinFlowState\n} from '../../sharedFlowTypes/PinTypes';\nimport { IMockFlowParams, PossibleTypes, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { ErrorType, redirectErrorTypes } from '../../utilities/normaliseErrorCode';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport { identifyStrategy, setStrategyExtraData } from '../strategy/strategySlice';\nimport submitMSISDN, { submitPIN } from './main';\n\nconst mockedPINState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.NothingYet<PINEntryFailure, PINEntrySuccess>(),\n data: {\n actualPIN: '',\n msisdn: '',\n operator: '',\n pinMaxLength: 4\n }\n }\n};\n\nconst mockedCompletedState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.Success<PINEntryFailure, PINEntrySuccess>({ finalUrl: '/product' }),\n data: {\n actualPIN: '',\n msisdn: '',\n operator: '',\n pinMaxLength: 4\n }\n }\n};\n\nconst mockedMSISDNEntryFailure: PinFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\n\n// Define the initial state\nconst defaultInitialState: PinFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\n/**\n * Sets the initial state of the pin flow based on the search parameters in the URL or the default state.\n *\n * @param {Window} window - The window object.\n * @return {PinFlowState} The initial state of the pin flow.\n */\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n const pinPageEvent = new Event('onPinPage');\n const isPinEntryStep =\n (search.ui_show_pin_entry && search.ui_show_pin_entry === '1') ||\n (search['show-pin-entry'] && search['show-pin-entry'] === '1');\n const isShowThankYouStep = search['show-thank-you'] && search['show-thank-you'] === '1';\n const isShowCustomError = search?.show_custom_error === '1';\n\n const rawParam = search?.ui_error_message ?? '';\n const normalizedParam = rawParam.replace(/\\+/g, '%20');\n const errorMsg = decodeURIComponent(normalizedParam);\n const mapParamError: { [key: string]: ErrorType } = {\n 'This mobile number is blacklisted': 'BlacklistedNumber'\n };\n\n const msisdnError: PinFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: mapParamError[errorMsg] || 'SomethingWentWrong',\n error: errorMsg\n })\n }\n };\n\n const thankYouState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.Success<PINEntryFailure, PINEntrySuccess>({\n finalUrl: search?.product_url || ''\n }),\n // @ts-ignore\n data: {\n msisdn: search?.msisdn || '',\n operator: search?.operator || ''\n }\n }\n };\n\n const initalPinEntryState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.NothingYet(),\n // @ts-ignore\n data: {\n msisdn: search?.msisdn || '',\n operator: search?.operator || ''\n }\n }\n };\n if (isPinEntryStep) {\n // Needed for shemroo the handler is injected on server\n window?.dispatchEvent(pinPageEvent);\n return initalPinEntryState;\n }\n if (isShowThankYouStep) {\n return thankYouState;\n }\n if (isShowCustomError) {\n return msisdnError;\n }\n\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'msisdn-failure-state':\n return mockedMSISDNEntryFailure;\n case 'pin-state':\n // Needed for shemroo the handler is injected on server\n window?.dispatchEvent(pinPageEvent);\n return mockedPINState;\n case 'completed-state':\n return mockedCompletedState;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes.MO, result: PINEntryState}}\n \n * Calls trigger-pin api that sends a pin to the user\n * Sets state to show pin entry\n */\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\nexport const submitMSISDNAction = createAsyncThunk<\n PINEntryState | MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure; // Type for rejectWithValue\n }\n>('pinFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, dispatch, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config, isHeaderEnrichmentSuccess } = state.strategy.currentState.data;\n const pinFlowCurrentState = state.pinFlow?.currentState;\n const searchObj = searchToObject(window) as { ui_show_pin_entry: string };\n\n try {\n /**\n * Palestine calling code is +970\n * But there was a request to have it as +972 only for gateway shemaroo\n */\n // Start PS Calling code temp fix\n if (config?.country.toLowerCase() === 'ps' && config?.slug.includes('shemaroo')) {\n const prefix = getInputValuePrefix(config?.country, msisdn);\n if (prefix === '+970') {\n msisdn = msisdn.replace('970', '972');\n }\n }\n // END PS Calling code temp fix\n\n const jsLinkResult = window?.pac_analytics?.visitor?.genericJsLinkResult;\n\n // If the flow is TPAY the above trigger pin will only do tracking on the backend and not actually request a pin from gateway\n // The code below handles that request\n if (jsLinkResult?.gateway === 'tpay' && !searchObj?.ui_show_pin_entry) {\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submitted', { msisdn });\n await submitMSISDN(window, config, msisdn); // trigger pin call requested here by Adrian for BE tracking\n window.msisdn = msisdn;\n if (window.callConfirm) {\n try {\n window.callConfirm();\n return {\n ...pinFlowCurrentState,\n type: 'MSISDNEntry',\n result: RDS.Loading()\n };\n } catch (ex) {\n // Catch any unexpected errors\n const errorMsg = 'Confirm function failed';\n tracker.recedeInFlow('tallyman.v1-pin', 'msisdn-submission-failure', {\n msisdn,\n errorType: 'TPayConfirmError',\n error: ex?.toString() || 'Error calling window.callConfirm function',\n message: ex.message\n });\n return rejectWithValue({\n errorType: 'TPayConfirmError',\n error: errorMsg,\n message: errorMsg\n });\n }\n }\n // Catch any unexpected errors\n const errorMsg = 'Confirm function not found';\n tracker.recedeInFlow('tallyman.v1-pin', 'msisdn-submission-failure', {\n msisdn,\n errorType: 'TPayConfirmError',\n error: errorMsg,\n message: errorMsg\n });\n return rejectWithValue({\n errorType: 'TPayConfirmError',\n error: errorMsg,\n message: errorMsg\n });\n\n // END TPAY TRIGGER PIN\n }\n\n // Start Trigger Pin\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submitted', { msisdn });\n const msisdnSubmissionResult = await submitMSISDN(window, config, msisdn);\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submission-success', { msisdn });\n // End Trigger Pin\n\n /**\n * Some flows require us to redirect to a url after trigger pin to check for fraud\n * The url will then do some processing and return back to ouisys with\n * extra param in the url that will tell us to show pin entry step or error\n */\n\n // Start Pin Redirect\n if (msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' && msisdnSubmissionResult.redirectUrl) {\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submission-success', { msisdn });\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-redirect', {\n redirectUrl: msisdnSubmissionResult.redirectUrl\n });\n window.location.href = msisdnSubmissionResult.redirectUrl;\n return;\n }\n // End Pin Redirect\n\n // Start handle store msisdn\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End handle store msisdn\n\n const operator: string =\n msisdnSubmissionResult?.type === 'SingleMSISDNSubmissionResult' ? msisdnSubmissionResult?.operator : '';\n\n const pinMaxLengthByOp: { [key: string]: number } = {\n SA_MOBILY: 6,\n SA_STC: 4,\n SA_ZAIN: 4\n };\n\n /**\n * onPinPage\n * some scripts on the server need to be injected on pin page/view\n * This event will be handled on server\n */\n const pinPageEvent = new Event('onPinPage');\n window?.dispatchEvent(pinPageEvent);\n\n return {\n ...pinFlowCurrentState,\n type: 'PINEntry',\n result: RDS.NothingYet(),\n data: {\n actualPIN: msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' ? msisdnSubmissionResult.pin : null,\n msisdn,\n operator,\n pinMaxLength: operator !== '' && pinMaxLengthByOp[operator] ? pinMaxLengthByOp[operator] : null,\n isHeaderEnrichmentSuccess,\n ...(msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' && msisdnSubmissionResult?.userType\n ? { userType: msisdnSubmissionResult.userType }\n : {})\n }\n };\n // END NORMAL TRIGGER PIN\n } catch (ex) {\n console.warn(ex);\n const errorType = ex.type;\n\n tracker.recedeInFlow('tallyman.v1-pin', 'msisdn-submission-failure', {\n msisdn,\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n\n if (isHeaderEnrichmentSuccess) {\n dispatch(\n setStrategyExtraData({\n type: PossibleTypes.PIN,\n data: {\n isHeaderEnrichmentSuccess: false,\n config\n }\n })\n );\n }\n\n if (redirectErrorTypes.includes(errorType) && window?.pac_analytics?.visitor?.waterfallRedirectUrl) {\n tracker.customEvent('tallyman.v1-pin', 'redirect', 'waterfall-redirect', {\n redirect_url: window?.pac_analytics?.visitor?.waterfallRedirectUrl,\n errorType\n });\n window.location.href = window?.pac_analytics?.visitor?.waterfallRedirectUrl;\n }\n\n return rejectWithValue({\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n }\n});\n\n/**\n * submitPinAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: 'PINEntry', result: RDS.NothingYet()}}\n \n * Calls verify-pin api that check if the user enters a valid pin\n * Sets state to show thank you page if pin is valid\n */\ninterface SubmitPINArgs {\n window: Window;\n msisdn: string;\n pin: string;\n extraParams?: IHash;\n}\n\nexport const submitPinAction = createAsyncThunk<\n PINEntryState,\n SubmitPINArgs,\n {\n rejectValue: PINEntryFailure; // Type for rejectWithValue\n }\n>('pinFlow/submitPinAction', async ({ window, msisdn, pin, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config } = state.strategy.currentState.data;\n const pinFlowCurrentState = state.pinFlow?.currentState;\n try {\n tracker.advancedInFlow('tallyman.v1-pin', 'pin-submitted', { msisdn, pin });\n const result = await submitPIN(window, pin, config, extraParams);\n tracker.advancedInFlow('tallyman.v1-pin', 'pin-submission-success', {\n msisdn,\n pin,\n finalUrl: result.productUrl\n });\n\n /**\n * Gateway redirect\n * Value returned in this case is actually the gateway url instead of the product url\n * More details on this ticket:\n * https://www.notion.so/sammedia/ES-OnMobile-Movistar-Direct-Ouisys-Integration-XR-Academy-ca60b176b0ea40a7b170e5d9e7deb491\n */\n // Start Gateway redirect\n if (result.gatewayRedirectUrl && result.gatewayRedirectUrl !== '') {\n tracker.advancedInFlow('tallyman.v1-pin', 'gateway-redirect', {\n msisdn,\n pin,\n gatewayRedirectUrl: result.gatewayRedirectUrl\n });\n window.location.href = result.gatewayRedirectUrl;\n }\n // End Gateway redirect\n\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End store msisdn\n\n return {\n ...pinFlowCurrentState,\n type: 'PINEntry',\n result: RDS.Success<PINEntryFailure, PINEntrySuccess>({\n finalUrl: result.productUrl,\n isAlreadySubscribed: result.isAlreadySubscribed || false\n })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: PINEntryErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidPIN':\n errorType = 'InvalidPIN';\n break;\n case 'SessionBlocked':\n errorType = 'SessionBlocked';\n break;\n case 'ExpiredPIN':\n errorType = 'ExpiredPIN';\n break;\n case 'InsufficientBalance':\n errorType = 'InsufficientBalance';\n break;\n case 'DuplicatedRequest':\n errorType = 'DuplicatedRequest';\n break;\n default:\n errorType = 'UnknownError';\n break;\n }\n tracker.recedeInFlow('tallyman.v1-pin', 'pin-submission-failure', {\n msisdn,\n pin,\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n // Redirect to the product url if returned in the exception\n setTimeout(() => {\n if (ex.productUrl) {\n window.location.href = ex.productUrl;\n }\n }, 0);\n\n return rejectWithValue({\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n }\n});\n\nexport const backToStartAction = createAsyncThunk<\n any,\n any,\n {\n rejectValue: any; // Type for rejectWithValue\n }\n>('pinFlow/backToStartAction', async (_, { getState, dispatch, rejectWithValue }) => {\n try {\n tracker.recedeInFlow('tallyman.v1-pin', 'pin-state', 'requested to change phone number');\n const state: RootState = getState();\n\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { strategy } = state.strategy.currentState.data;\n if (strategy === 'pin') {\n return {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n };\n }\n dispatch(identifyStrategy());\n } catch (ex) {\n console.warn(ex);\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n});\n\ntype CountryCodeMap = { [country: string]: string };\n\nconst countryCodes: CountryCodeMap = {\n PS: '970'\n // Add other countries and codes here\n};\n\nconst getInputValuePrefix = (country: string, international: string): string => {\n if (!country || !international) return '';\n\n // Convert the country to uppercase and retrieve the country code\n const normalizedCountry = country.toUpperCase();\n const countryCode = countryCodes[normalizedCountry];\n\n // Check if the country code exists in the mapping\n if (!countryCode) {\n console.error('Country code not found for', country);\n return '';\n }\n\n return `+${countryCode}`;\n};\n\n// Define your slice\nconst pinFlowSlice = createSlice({\n name: 'pinFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n // @ts-ignore\n state.currentState = {\n type:\n window?.location?.search?.includes('ui_show_pin_entry') ||\n (window?.location?.search?.includes('show-pin-entry') &&\n window?.pac_analytics?.visitor?.genericJsLinkResult?.gateway === 'tpay')\n ? 'PINEntry'\n : 'MSISDNEntry',\n result: RDS.Loading(),\n data: state.currentState.data\n };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<PINEntryState | MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n // @ts-ignore\n state.currentState = {\n type:\n window?.location?.search?.includes('ui_show_pin_entry') ||\n (window?.location?.search?.includes('show-pin-entry') &&\n window?.pac_analytics?.visitor?.genericJsLinkResult?.gateway === 'tpay')\n ? 'PINEntry'\n : 'MSISDNEntry',\n result: RDS.Failure(action.payload),\n data: state.currentState.data\n };\n })\n .addCase(submitPinAction.pending, (state) => {\n state.currentState = { type: 'PINEntry', result: RDS.Loading(), data: state.currentState.data };\n })\n .addCase(submitPinAction.fulfilled, (state, action: PayloadAction<PINEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitPinAction.rejected, (state, action: PayloadAction<PINEntryFailure>) => {\n state.currentState = { type: 'PINEntry', result: RDS.Failure(action.payload), data: state.currentState.data };\n })\n .addCase(backToStartAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n });\n }\n});\n\nexport const { reducer: pinFlowReducer, actions: pinFlowActions } = pinFlowSlice;\n\nexport const selectPinFlowState = (state: any) => state.pinFlow;\n"],"names":["usePinFlowState","useSelector","state","pinFlow","currentState","pinFlowMatch","_a","msisdnEntry","pinEntry","type","result","data","Error","mockedPINState","RDS.NothingYet","actualPIN","msisdn","operator","pinMaxLength","mockedCompletedState","RDS.Success","finalUrl","mockedMSISDNEntryFailure","RDS.Failure","errorType","error","defaultInitialState","initialState","window","search","searchToObject","pinPageEvent","Event","isPinEntryStep","ui_show_pin_entry","isShowThankYouStep","isShowCustomError","show_custom_error","normalizedParam","ui_error_message","replace","errorMsg","decodeURIComponent","msisdnError","thankYouState","product_url","initalPinEntryState","dispatchEvent","console","setInitialState","submitMSISDNAction","createAsyncThunk","_b","extraParams","getState","dispatch","rejectWithValue","_f","_d","strategy","_e","config","_c","isHeaderEnrichmentSuccess","pinFlowCurrentState","_g","searchObj","country","toLowerCase","slug","includes","getInputValuePrefix","jsLinkResult","_j","_h","pac_analytics","visitor","genericJsLinkResult","gateway","tracker","advancedInFlow","submitMSISDN","_r","sent","callConfirm","__assign","RDS.Loading","ex","errorMsg_1","recedeInFlow","toString","message","msisdnSubmissionResult","redirectUrl","customEvent","location","href","storeMsisdn","then","success","catch","pinMaxLengthByOp","SA_MOBILY","SA_STC","SA_ZAIN","pin","userType","warn","ex_1","productUrl","setStrategyExtraData","PossibleTypes","PIN","redirectErrorTypes","_k","_l","waterfallRedirectUrl","redirect_url","_o","_m","_q","submitPinAction","submitPIN","gatewayRedirectUrl","isAlreadySubscribed","ex_2","setTimeout","backToStartAction","_","identifyStrategy","countryCodes","PS","international","normalizedCountry","toUpperCase","countryCode","concat","pinFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","fulfilled","action","payload","rejected","pinFlowReducer","reducer","actions"],"mappings":"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"}
1
+ {"version":3,"file":"pinFlow.js","sources":["../src/flows/pinFlow/hooks/usePinFlowState.ts","../src/flows/pinFlow/match.ts","../src/flows/pinFlow/pinFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const usePinFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.pinFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n IMsisdnSumbitNextData,\n MSISDNEntryFailure,\n MSISDNEntrySuccess,\n PINEntryFailure,\n PINEntrySuccess,\n PinFlowCurrentState\n} from '../../sharedFlowTypes/PinTypes';\n\nfunction pinFlowMatch<R>({\n msisdnEntry,\n pinEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n pinEntry: (rds: RDS.RemoteDataState<PINEntryFailure, PINEntrySuccess>, nextData: IMsisdnSumbitNextData) => R;\n}): (state: PinFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n case 'PINEntry':\n return pinEntry(state.result, state.data);\n default:\n throw new Error('Invalid State');\n }\n };\n}\n\nexport { pinFlowMatch };\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n IHash,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess,\n PINEntryErrorTypes,\n PINEntryFailure,\n PINEntryState,\n PINEntrySuccess,\n PinFlowState\n} from '../../sharedFlowTypes/PinTypes';\nimport { IMockFlowParams, PossibleTypes, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { handleWaterfallRedirect } from '../../utilities/handleWaterfallRedirect';\nimport { ErrorType, redirectErrorTypes } from '../../utilities/normaliseErrorCode';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport { identifyStrategy, setStrategyExtraData } from '../strategy/strategySlice';\nimport submitMSISDN, { submitPIN } from './main';\n\nconst mockedPINState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.NothingYet<PINEntryFailure, PINEntrySuccess>(),\n data: {\n actualPIN: '',\n msisdn: '',\n operator: '',\n pinMaxLength: 4\n }\n }\n};\n\nconst mockedCompletedState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.Success<PINEntryFailure, PINEntrySuccess>({ finalUrl: '/product' }),\n data: {\n actualPIN: '',\n msisdn: '',\n operator: '',\n pinMaxLength: 4\n }\n }\n};\n\nconst mockedMSISDNEntryFailure: PinFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\n\n// Define the initial state\nconst defaultInitialState: PinFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\n/**\n * Sets the initial state of the pin flow based on the search parameters in the URL or the default state.\n *\n * @param {Window} window - The window object.\n * @return {PinFlowState} The initial state of the pin flow.\n */\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n const pinPageEvent = new Event('onPinPage');\n const isPinEntryStep =\n (search.ui_show_pin_entry && search.ui_show_pin_entry === '1') ||\n (search['show-pin-entry'] && search['show-pin-entry'] === '1');\n const isShowThankYouStep = search['show-thank-you'] && search['show-thank-you'] === '1';\n const isShowCustomError = search?.show_custom_error === '1';\n\n const rawParam = search?.ui_error_message ?? '';\n const normalizedParam = rawParam.replace(/\\+/g, '%20');\n const errorMsg = decodeURIComponent(normalizedParam);\n const mapParamError: { [key: string]: ErrorType } = {\n 'This mobile number is blacklisted': 'BlacklistedNumber'\n };\n\n const msisdnError: PinFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: mapParamError[errorMsg] || 'SomethingWentWrong',\n error: errorMsg\n })\n }\n };\n\n const thankYouState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.Success<PINEntryFailure, PINEntrySuccess>({\n finalUrl: search?.product_url || ''\n }),\n // @ts-ignore\n data: {\n msisdn: search?.msisdn || '',\n operator: search?.operator || ''\n }\n }\n };\n\n const initalPinEntryState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.NothingYet(),\n // @ts-ignore\n data: {\n msisdn: search?.msisdn || '',\n operator: search?.operator || ''\n }\n }\n };\n if (isPinEntryStep) {\n // Needed for shemroo the handler is injected on server\n window?.dispatchEvent(pinPageEvent);\n return initalPinEntryState;\n }\n if (isShowThankYouStep) {\n return thankYouState;\n }\n if (isShowCustomError) {\n return msisdnError;\n }\n\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'msisdn-failure-state':\n return mockedMSISDNEntryFailure;\n case 'pin-state':\n // Needed for shemroo the handler is injected on server\n window?.dispatchEvent(pinPageEvent);\n return mockedPINState;\n case 'completed-state':\n return mockedCompletedState;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes.MO, result: PINEntryState}}\n \n * Calls trigger-pin api that sends a pin to the user\n * Sets state to show pin entry\n */\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\nexport const submitMSISDNAction = createAsyncThunk<\n PINEntryState | MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure; // Type for rejectWithValue\n }\n>('pinFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, dispatch, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config, isHeaderEnrichmentSuccess } = state.strategy.currentState.data;\n const pinFlowCurrentState = state.pinFlow?.currentState;\n const searchObj = searchToObject(window) as { ui_show_pin_entry: string };\n\n try {\n /**\n * Palestine calling code is +970\n * But there was a request to have it as +972 only for gateway shemaroo\n */\n // Start PS Calling code temp fix\n if (config?.country.toLowerCase() === 'ps' && config?.slug.includes('shemaroo')) {\n const prefix = getInputValuePrefix(config?.country, msisdn);\n if (prefix === '+970') {\n msisdn = msisdn.replace('970', '972');\n }\n }\n // END PS Calling code temp fix\n\n const jsLinkResult = window?.pac_analytics?.visitor?.genericJsLinkResult;\n\n // If the flow is TPAY the above trigger pin will only do tracking on the backend and not actually request a pin from gateway\n // The code below handles that request\n if (jsLinkResult?.gateway === 'tpay' && !searchObj?.ui_show_pin_entry) {\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submitted', { msisdn });\n await submitMSISDN(window, config, msisdn); // trigger pin call requested here by Adrian for BE tracking\n window.msisdn = msisdn;\n if (window.callConfirm) {\n try {\n window.callConfirm();\n return {\n ...pinFlowCurrentState,\n type: 'MSISDNEntry',\n result: RDS.Loading()\n };\n } catch (ex) {\n // Catch any unexpected errors\n const errorMsg = 'Confirm function failed';\n tracker.recedeInFlow('tallyman.v1-pin', 'msisdn-submission-failure', {\n msisdn,\n errorType: 'TPayConfirmError',\n error: ex?.toString() || 'Error calling window.callConfirm function',\n message: ex.message\n });\n return rejectWithValue({\n errorType: 'TPayConfirmError',\n error: errorMsg,\n message: errorMsg\n });\n }\n }\n // Catch any unexpected errors\n const errorMsg = 'Confirm function not found';\n tracker.recedeInFlow('tallyman.v1-pin', 'msisdn-submission-failure', {\n msisdn,\n errorType: 'TPayConfirmError',\n error: errorMsg,\n message: errorMsg\n });\n return rejectWithValue({\n errorType: 'TPayConfirmError',\n error: errorMsg,\n message: errorMsg\n });\n\n // END TPAY TRIGGER PIN\n }\n\n // Start Trigger Pin\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submitted', { msisdn });\n const msisdnSubmissionResult = await submitMSISDN(window, config, msisdn);\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submission-success', { msisdn });\n // End Trigger Pin\n\n /**\n * Some flows require us to redirect to a url after trigger pin to check for fraud\n * The url will then do some processing and return back to ouisys with\n * extra param in the url that will tell us to show pin entry step or error\n */\n\n // Start Pin Redirect\n if (msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' && msisdnSubmissionResult.redirectUrl) {\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submission-success', { msisdn });\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-redirect', {\n redirectUrl: msisdnSubmissionResult.redirectUrl\n });\n window.location.href = msisdnSubmissionResult.redirectUrl;\n return;\n }\n // End Pin Redirect\n\n // Start handle store msisdn\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End handle store msisdn\n\n const operator: string =\n msisdnSubmissionResult?.type === 'SingleMSISDNSubmissionResult' ? msisdnSubmissionResult?.operator : '';\n\n const pinMaxLengthByOp: { [key: string]: number } = {\n SA_MOBILY: 6,\n SA_STC: 4,\n SA_ZAIN: 4\n };\n\n /**\n * onPinPage\n * some scripts on the server need to be injected on pin page/view\n * This event will be handled on server\n */\n const pinPageEvent = new Event('onPinPage');\n window?.dispatchEvent(pinPageEvent);\n\n return {\n ...pinFlowCurrentState,\n type: 'PINEntry',\n result: RDS.NothingYet(),\n data: {\n actualPIN: msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' ? msisdnSubmissionResult.pin : null,\n msisdn,\n operator,\n pinMaxLength: operator !== '' && pinMaxLengthByOp[operator] ? pinMaxLengthByOp[operator] : null,\n isHeaderEnrichmentSuccess,\n ...(msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' && msisdnSubmissionResult?.userType\n ? { userType: msisdnSubmissionResult.userType }\n : {})\n }\n };\n // END NORMAL TRIGGER PIN\n } catch (ex) {\n console.warn(ex);\n const errorType = ex.type;\n\n tracker.recedeInFlow('tallyman.v1-pin', 'msisdn-submission-failure', {\n msisdn,\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n\n if (isHeaderEnrichmentSuccess) {\n dispatch(\n setStrategyExtraData({\n type: PossibleTypes.PIN,\n data: {\n isHeaderEnrichmentSuccess: false,\n config\n }\n })\n );\n }\n\n if (redirectErrorTypes.includes(errorType) && window?.pac_analytics?.visitor?.waterfallRedirectUrl) {\n tracker.customEvent('tallyman.v1-pin', 'redirect', 'waterfall-redirect', {\n redirect_url: window?.pac_analytics?.visitor?.waterfallRedirectUrl,\n errorType\n });\n handleWaterfallRedirect(window?.pac_analytics?.visitor?.waterfallRedirectUrl);\n }\n\n return rejectWithValue({\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n }\n});\n\n/**\n * submitPinAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: 'PINEntry', result: RDS.NothingYet()}}\n \n * Calls verify-pin api that check if the user enters a valid pin\n * Sets state to show thank you page if pin is valid\n */\ninterface SubmitPINArgs {\n window: Window;\n msisdn: string;\n pin: string;\n extraParams?: IHash;\n}\n\nexport const submitPinAction = createAsyncThunk<\n PINEntryState,\n SubmitPINArgs,\n {\n rejectValue: PINEntryFailure; // Type for rejectWithValue\n }\n>('pinFlow/submitPinAction', async ({ window, msisdn, pin, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config } = state.strategy.currentState.data;\n const pinFlowCurrentState = state.pinFlow?.currentState;\n try {\n tracker.advancedInFlow('tallyman.v1-pin', 'pin-submitted', { msisdn, pin });\n const result = await submitPIN(window, pin, config, extraParams);\n tracker.advancedInFlow('tallyman.v1-pin', 'pin-submission-success', {\n msisdn,\n pin,\n finalUrl: result.productUrl\n });\n\n /**\n * Gateway redirect\n * Value returned in this case is actually the gateway url instead of the product url\n * More details on this ticket:\n * https://www.notion.so/sammedia/ES-OnMobile-Movistar-Direct-Ouisys-Integration-XR-Academy-ca60b176b0ea40a7b170e5d9e7deb491\n */\n // Start Gateway redirect\n if (result.gatewayRedirectUrl && result.gatewayRedirectUrl !== '') {\n tracker.advancedInFlow('tallyman.v1-pin', 'gateway-redirect', {\n msisdn,\n pin,\n gatewayRedirectUrl: result.gatewayRedirectUrl\n });\n window.location.href = result.gatewayRedirectUrl;\n }\n // End Gateway redirect\n\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End store msisdn\n\n return {\n ...pinFlowCurrentState,\n type: 'PINEntry',\n result: RDS.Success<PINEntryFailure, PINEntrySuccess>({\n finalUrl: result.productUrl,\n isAlreadySubscribed: result.isAlreadySubscribed || false\n })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: PINEntryErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidPIN':\n errorType = 'InvalidPIN';\n break;\n case 'SessionBlocked':\n errorType = 'SessionBlocked';\n break;\n case 'ExpiredPIN':\n errorType = 'ExpiredPIN';\n break;\n case 'InsufficientBalance':\n errorType = 'InsufficientBalance';\n break;\n case 'DuplicatedRequest':\n errorType = 'DuplicatedRequest';\n break;\n default:\n errorType = 'UnknownError';\n break;\n }\n tracker.recedeInFlow('tallyman.v1-pin', 'pin-submission-failure', {\n msisdn,\n pin,\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n // Redirect to the product url if returned in the exception\n setTimeout(() => {\n if (ex.productUrl) {\n window.location.href = ex.productUrl;\n }\n }, 0);\n\n return rejectWithValue({\n errorType,\n error: ex.toString(),\n message: ex.message,\n productUrl: ex.productUrl\n });\n }\n});\n\nexport const backToStartAction = createAsyncThunk<\n any,\n any,\n {\n rejectValue: any; // Type for rejectWithValue\n }\n>('pinFlow/backToStartAction', async (_, { getState, dispatch, rejectWithValue }) => {\n try {\n tracker.recedeInFlow('tallyman.v1-pin', 'pin-state', 'requested to change phone number');\n const state: RootState = getState();\n\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { strategy } = state.strategy.currentState.data;\n if (strategy === 'pin') {\n return {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n };\n }\n dispatch(identifyStrategy());\n } catch (ex) {\n console.warn(ex);\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n});\n\ntype CountryCodeMap = { [country: string]: string };\n\nconst countryCodes: CountryCodeMap = {\n PS: '970'\n // Add other countries and codes here\n};\n\nconst getInputValuePrefix = (country: string, international: string): string => {\n if (!country || !international) return '';\n\n // Convert the country to uppercase and retrieve the country code\n const normalizedCountry = country.toUpperCase();\n const countryCode = countryCodes[normalizedCountry];\n\n // Check if the country code exists in the mapping\n if (!countryCode) {\n console.error('Country code not found for', country);\n return '';\n }\n\n return `+${countryCode}`;\n};\n\n// Define your slice\nconst pinFlowSlice = createSlice({\n name: 'pinFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n // @ts-ignore\n state.currentState = {\n type:\n window?.location?.search?.includes('ui_show_pin_entry') ||\n (window?.location?.search?.includes('show-pin-entry') &&\n window?.pac_analytics?.visitor?.genericJsLinkResult?.gateway === 'tpay')\n ? 'PINEntry'\n : 'MSISDNEntry',\n result: RDS.Loading(),\n data: state.currentState.data\n };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<PINEntryState | MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n // @ts-ignore\n state.currentState = {\n type:\n window?.location?.search?.includes('ui_show_pin_entry') ||\n (window?.location?.search?.includes('show-pin-entry') &&\n window?.pac_analytics?.visitor?.genericJsLinkResult?.gateway === 'tpay')\n ? 'PINEntry'\n : 'MSISDNEntry',\n result: RDS.Failure(action.payload),\n data: state.currentState.data\n };\n })\n .addCase(submitPinAction.pending, (state) => {\n state.currentState = { type: 'PINEntry', result: RDS.Loading(), data: state.currentState.data };\n })\n .addCase(submitPinAction.fulfilled, (state, action: PayloadAction<PINEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitPinAction.rejected, (state, action: PayloadAction<PINEntryFailure>) => {\n state.currentState = { type: 'PINEntry', result: RDS.Failure(action.payload), data: state.currentState.data };\n })\n .addCase(backToStartAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n });\n }\n});\n\nexport const { reducer: pinFlowReducer, actions: pinFlowActions } = pinFlowSlice;\n\nexport const selectPinFlowState = (state: any) => state.pinFlow;\n"],"names":["usePinFlowState","useSelector","state","pinFlow","currentState","pinFlowMatch","_a","msisdnEntry","pinEntry","type","result","data","Error","mockedPINState","RDS.NothingYet","actualPIN","msisdn","operator","pinMaxLength","mockedCompletedState","RDS.Success","finalUrl","mockedMSISDNEntryFailure","RDS.Failure","errorType","error","defaultInitialState","initialState","window","search","searchToObject","pinPageEvent","Event","isPinEntryStep","ui_show_pin_entry","isShowThankYouStep","isShowCustomError","show_custom_error","normalizedParam","ui_error_message","replace","errorMsg","decodeURIComponent","msisdnError","thankYouState","product_url","initalPinEntryState","dispatchEvent","console","setInitialState","submitMSISDNAction","createAsyncThunk","_b","extraParams","getState","dispatch","rejectWithValue","_f","_d","strategy","_e","config","_c","isHeaderEnrichmentSuccess","pinFlowCurrentState","_g","searchObj","country","toLowerCase","slug","includes","getInputValuePrefix","jsLinkResult","_j","_h","pac_analytics","visitor","genericJsLinkResult","gateway","tracker","advancedInFlow","submitMSISDN","_r","sent","callConfirm","__assign","RDS.Loading","ex","errorMsg_1","recedeInFlow","toString","message","msisdnSubmissionResult","redirectUrl","customEvent","location","href","storeMsisdn","then","success","catch","pinMaxLengthByOp","SA_MOBILY","SA_STC","SA_ZAIN","pin","userType","warn","ex_1","productUrl","setStrategyExtraData","PossibleTypes","PIN","redirectErrorTypes","_k","_l","waterfallRedirectUrl","redirect_url","_o","_m","handleWaterfallRedirect","_q","_p","submitPinAction","submitPIN","gatewayRedirectUrl","isAlreadySubscribed","ex_2","setTimeout","backToStartAction","_","identifyStrategy","countryCodes","PS","international","normalizedCountry","toUpperCase","countryCode","concat","pinFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","fulfilled","action","payload","rejected","pinFlowReducer","reducer","actions"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ouisys-engine",
3
- "version": "5.1.8",
3
+ "version": "5.1.10",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "directories": "dist dev-tools",