ouisys-engine 5.1.1 → 5.1.3

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{a as o}from"./helpers-xPhGBX-B.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};
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};
2
2
  //# sourceMappingURL=checkSubscriptionHander.js.map
@@ -1,2 +1,2 @@
1
- import{__awaiter as t,__generator as r}from"tslib";var e=function(n,u,i,o){return t(void 0,void 0,void 0,(function(){var t;return r(this,(function(r){switch(r.label){case 0:return[4,n()];case 1:return t=r.sent(),i(t)||o>=u?[2,t]:[4,(a=1e3,new Promise((function(t){return setTimeout((function(){return t()}),a)})))];case 2:return r.sent(),[2,e(n,u,i,o+1)]}var a}))}))};function n(t){return{type:"right",value:t}}function u(t){return{type:"left",value:t}}export{e as a,u as l,n as r};
2
- //# sourceMappingURL=helpers-xPhGBX-B.js.map
1
+ import{__awaiter as t,__generator as r}from"tslib";var e=function(n,u,i,o){return t(void 0,void 0,void 0,(function(){var t;return r(this,(function(r){switch(r.label){case 0:return[4,n()];case 1:return t=r.sent(),i(t)||o>=u?[2,t]:[4,(a=1e3,new Promise((function(t){return setTimeout((function(){return t()}),a)})))];case 2:return r.sent(),[2,e(n,u,i,o+1)]}var a}))}))};function n(t){return{type:"right",value:t}}function u(t){return{type:"left",value:t}}export{u as a,e as l,n as r};
2
+ //# sourceMappingURL=helpers-CBmogWIZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers-xPhGBX-B.js","sources":["../src/utilities/helpers.ts"],"sourcesContent":["import Either from '../common-types/Either';\n\nexport const wait = (ms: number) => new Promise<void>((resolve) => setTimeout(() => resolve(), ms));\n\nexport const loop = async <_I extends Record<string, unknown>, R extends Record<string, unknown>>(\n f: () => Promise<R>,\n max: number,\n stop: (r: R) => boolean,\n i: number\n): Promise<R> => {\n const r = await f();\n if (stop(r) || i >= max) {\n return r;\n }\n await wait(1000);\n return loop(f, max, stop, i + 1);\n};\n\nexport function right<L, R>(r: R) {\n return { type: 'right', value: r } as Either<L, R>;\n}\nexport function left<L, R>(l: L) {\n return { type: 'left', value: l } as Either<L, R>;\n}\n"],"names":["loop","f","max","stop","i","__awaiter","r","_a","sent","ms","Promise","resolve","setTimeout","right","type","value","left","l"],"mappings":"mDAEO,IAEMA,EAAO,SAClBC,EACAC,EACAC,EACAC,GAAS,OAAAC,OAAA,OAAA,OAAA,GAAA,mEAEC,MAAM,CAAA,EAAAJ,YAChB,OADMK,EAAIC,EAASC,OACfL,EAAKG,IAAMF,GAAKF,EAClB,CAAA,EAAOI,GAET,CAAA,GAZmBG,EAYR,IAZuB,IAAIC,SAAc,SAACC,GAAY,OAAAC,YAAW,WAAM,OAAAD,GAAS,GAAEF,EAA5B,aAajE,OADAF,EAAAC,OACA,CAAA,EAAOR,EAAKC,EAAGC,EAAKC,EAAMC,EAAI,IAbZ,IAACK,OAcnB,EAEI,SAAUI,EAAYP,GAC1B,MAAO,CAAEQ,KAAM,QAASC,MAAOT,EACjC,CACM,SAAUU,EAAWC,GACzB,MAAO,CAAEH,KAAM,OAAQC,MAAOE,EAChC"}
1
+ {"version":3,"file":"helpers-CBmogWIZ.js","sources":["../src/utilities/helpers.ts"],"sourcesContent":["import Either from '../common-types/Either';\n\nexport const wait = (ms: number) => new Promise<void>((resolve) => setTimeout(() => resolve(), ms));\n\nexport const loop = async <_I extends Record<string, unknown>, R extends Record<string, unknown>>(\n f: () => Promise<R>,\n max: number,\n stop: (r: R) => boolean,\n i: number\n): Promise<R> => {\n const r = await f();\n if (stop(r) || i >= max) {\n return r;\n }\n await wait(1000);\n return loop(f, max, stop, i + 1);\n};\n\nexport function right<L, R>(r: R) {\n return { type: 'right', value: r } as Either<L, R>;\n}\nexport function left<L, R>(l: L) {\n return { type: 'left', value: l } as Either<L, R>;\n}\n"],"names":["loop","f","max","stop","i","__awaiter","r","_a","sent","ms","Promise","resolve","setTimeout","right","type","value","left","l"],"mappings":"mDAEO,IAEMA,EAAO,SAClBC,EACAC,EACAC,EACAC,GAAS,OAAAC,OAAA,OAAA,OAAA,GAAA,mEAEC,MAAM,CAAA,EAAAJ,YAChB,OADMK,EAAIC,EAASC,OACfL,EAAKG,IAAMF,GAAKF,EAClB,CAAA,EAAOI,GAET,CAAA,GAZmBG,EAYR,IAZuB,IAAIC,SAAc,SAACC,GAAY,OAAAC,YAAW,WAAM,OAAAD,GAAS,GAAEF,EAA5B,aAajE,OADAF,EAAAC,OACA,CAAA,EAAOR,EAAKC,EAAGC,EAAKC,EAAMC,EAAI,IAbZ,IAACK,OAcnB,EAEI,SAAUI,EAAYP,GAC1B,MAAO,CAAEQ,KAAM,QAASC,MAAOT,EACjC,CACM,SAAUU,EAAWC,GACzB,MAAO,CAAEH,KAAM,OAAQC,MAAOE,EAChC"}
package/dist/initTPay.js CHANGED
@@ -1,2 +1,2 @@
1
- import{__awaiter as o,__generator as i}from"tslib";import{i as n}from"./api-geirVksI.js";import{getConfig as d}from"./getConfig.js";var r=function(r){return o(void 0,void 0,void 0,(function(){var o,e,l,t,a,v,u,w,c,s,p,f,m,g,y,_,C,h,x,S,b,j,k,E;return i(this,(function(i){switch(i.label){case 0:if(o=null===(c=null===(w=null===window||void 0===window?void 0:window.pac_analytics)||void 0===w?void 0:w.visitor)||void 0===c?void 0:c.genericJsLinkResult,"undefined"==typeof window||"tpay"!==(null==o?void 0:o.gateway))return[3,5];e=d(),l=e.strategyConfigs,t=null===(s=null==l?void 0:l.default)||void 0===s?void 0:s.flowConfig,i.label=1;case 1:return i.trys.push([1,3,,4]),a=null===(p=null==r?void 0:r.match(/\d+/gi))||void 0===p?void 0:p.join(""),[4,n({window:window,slug:null==t?void 0:t.slug,country:null==t?void 0:t.country,msisdn:a,device:"smart",offer:null===(m=null===(f=null===window||void 0===window?void 0:window.pac_analytics)||void 0===f?void 0:f.visitor)||void 0===m?void 0:m.offer,rockmanId:null===(y=null===(g=null===window||void 0===window?void 0:window.pac_analytics)||void 0===g?void 0:g.visitor)||void 0===y?void 0:y.rockmanId})];case 2:return(v=i.sent()).operator&&(window.operatorCode=null===(x=null===(h=null===(C=null===(_=null==o?void 0:o.extra_data)||void 0===_?void 0:_.operator_mccmnc_mapping)||void 0===C?void 0:C[v.operator])||void 0===h?void 0:h.code)||void 0===x?void 0:x.toString(),window.operatorSuffix=null===(j=null===(b=null===(S=null==o?void 0:o.extra_data)||void 0===S?void 0:S.operator_mccmnc_mapping)||void 0===b?void 0:b[v.operator])||void 0===j?void 0:j.operator_suffix),console.log("operatorCode",window.operatorCode),console.log("operatorSuffix",window.operatorSuffix),(null===(k=window.TPay.HeaderEnrichment)||void 0===k?void 0:k.enriched())?null===(E=window.TPay.HeaderEnrichment)||void 0===E||E.operatorCode():window.TPay.HeaderEnrichment.init({operatorCode:window.operatorCode}),[2,!0];case 3:return u=i.sent(),console.warn(u),[2,!1];case 4:return[3,6];case 5:return console.log("Not tpay"),[2,!1];case 6:return[2]}}))}))};export{r as initTPay};
1
+ import{__awaiter as o,__generator as i}from"tslib";import{s as n}from"./main-rB39lw_a.js";import{i as r}from"./api-geirVksI.js";import{getConfig as d}from"./getConfig.js";import{t as e}from"./tracker-DaaILhEr.js";import"./helpers-CBmogWIZ.js";import"./loadScriptInnerHtml-B6v2-IGn.js";import"./normaliseErrorCode-CcFWuZeI.js";import"./searchToObject.js";import"./cleanSearchParams-Dl7ZDlew.js";import"pacman-client";import"uuid";var l=function(l){return o(void 0,void 0,void 0,(function(){var o,t,a,u,v,s,c,w,m,p,f,g,y,h,C,_,j,b,x,E,S,T,P,H,k,I,N,F;return i(this,(function(i){switch(i.label){case 0:if(o=null===(p=null===(m=null===window||void 0===window?void 0:window.pac_analytics)||void 0===m?void 0:m.visitor)||void 0===p?void 0:p.genericJsLinkResult,"undefined"==typeof window||"tpay"!==(null==o?void 0:o.gateway))return[3,6];t=d(),a=t.strategyConfigs,u=null===(f=null==a?void 0:a.default)||void 0===f?void 0:f.flowConfig,i.label=1;case 1:if(i.trys.push([1,4,,5]),(!l||(null==l?void 0:l.length)<=2)&&(null===(g=window.TPay.HeaderEnrichment)||void 0===g?void 0:g.enriched())){if(v=null===(y=window.TPay.HeaderEnrichment)||void 0===y?void 0:y.msisdn(),e.advancedInFlow("tallyman.v1-pin","msisdn-submitted",{msisdn:v}),n(window,u,v,{"skip-validation":"1"}),window.msisdn=v,window.operatorCode=null===(h=window.TPay.HeaderEnrichment)||void 0===h?void 0:h.operatorCode(),window.operatorSuffix=function(o,i,n){var r,d;if(void 0===n&&(n=null),!o||"object"!=typeof o)return n;var e=Number(i);return null!==(d=null===(r=Object.values(o).find((function(o){return Number(o.code)===e})))||void 0===r?void 0:r.operator_suffix)&&void 0!==d?d:n}(null===(C=null==o?void 0:o.extra_data)||void 0===C?void 0:C.operator_mccmnc_mapping,null===(_=window.TPay.HeaderEnrichment)||void 0===_?void 0:_.operatorCode()),window.callConfirm)try{window.callConfirm()}catch(o){e.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:v,errorType:"TPayConfirmError",error:(null==o?void 0:o.toString())||"Error calling window.callConfirm function",message:o.message})}return[2,!0]}return s=null===(j=null==l?void 0:l.match(/\d+/gi))||void 0===j?void 0:j.join(""),l||(null==l?void 0:l.length)>2?[4,r({window:window,slug:null==u?void 0:u.slug,country:null==u?void 0:u.country,msisdn:s,device:"smart",offer:null===(x=null===(b=null===window||void 0===window?void 0:window.pac_analytics)||void 0===b?void 0:b.visitor)||void 0===x?void 0:x.offer,rockmanId:null===(S=null===(E=null===window||void 0===window?void 0:window.pac_analytics)||void 0===E?void 0:E.visitor)||void 0===S?void 0:S.rockmanId})]:[3,3];case 2:(c=i.sent()).operator&&(window.operatorCode=null===(k=null===(H=null===(P=null===(T=null==o?void 0:o.extra_data)||void 0===T?void 0:T.operator_mccmnc_mapping)||void 0===P?void 0:P[c.operator])||void 0===H?void 0:H.code)||void 0===k?void 0:k.toString(),window.operatorSuffix=null===(F=null===(N=null===(I=null==o?void 0:o.extra_data)||void 0===I?void 0:I.operator_mccmnc_mapping)||void 0===N?void 0:N[c.operator])||void 0===F?void 0:F.operator_suffix),console.log("operatorCode",window.operatorCode),console.log("operatorSuffix",window.operatorSuffix),window.TPay.HeaderEnrichment.init({operatorCode:window.operatorCode}),i.label=3;case 3:return[2,!0];case 4:return w=i.sent(),console.warn(w),[2,!1];case 5:return[3,7];case 6:return console.log("Not tpay"),[2,!1];case 7:return[2]}}))}))};export{l as initTPay};
2
2
  //# sourceMappingURL=initTPay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"initTPay.js","sources":["../src/utilities/initTpay.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport { identify } from '../flows/strategy/api';\nimport { getConfig } from './getConfig';\n\nexport const initTPay = async (internationalNumber: string): Promise<boolean> => {\n const jsLinkResult = window?.pac_analytics?.visitor?.genericJsLinkResult;\n\n if (typeof window !== 'undefined' && jsLinkResult?.gateway === 'tpay') {\n const configs = getConfig();\n const { strategyConfigs } = configs;\n const config = strategyConfigs?.default?.flowConfig;\n\n try {\n const intlPhone = internationalNumber?.match(/\\d+/gi)?.join('');\n const identifyResult = await identify({\n window,\n slug: config?.slug,\n country: config?.country,\n msisdn: intlPhone,\n device: 'smart',\n offer: window?.pac_analytics?.visitor?.offer,\n rockmanId: window?.pac_analytics?.visitor?.rockmanId\n });\n\n if (identifyResult.operator) {\n window.operatorCode = jsLinkResult?.extra_data?.operator_mccmnc_mapping?.[\n identifyResult.operator\n ]?.code?.toString();\n window.operatorSuffix =\n jsLinkResult?.extra_data?.operator_mccmnc_mapping?.[identifyResult.operator]?.operator_suffix;\n }\n console.log('operatorCode', window.operatorCode);\n console.log('operatorSuffix', window.operatorSuffix);\n\n if (!window.TPay.HeaderEnrichment?.enriched()) {\n window.TPay.HeaderEnrichment.init({ operatorCode: window.operatorCode });\n } else {\n window.TPay.HeaderEnrichment?.operatorCode();\n }\n return true;\n } catch (err) {\n console.warn(err);\n return false;\n }\n } else {\n console.log('Not tpay');\n return false;\n }\n};\n"],"names":["initTPay","internationalNumber","__awaiter","jsLinkResult","_b","_a","window","pac_analytics","visitor","genericJsLinkResult","gateway","configs","getConfig","strategyConfigs","config","_c","default","flowConfig","intlPhone","_d","match","join","identify","slug","country","msisdn","device","offer","_f","_e","rockmanId","_h","_g","identifyResult","_t","sent","operator","operatorCode","_m","_l","_k","_j","extra_data","operator_mccmnc_mapping","code","toString","operatorSuffix","_q","_o","operator_suffix","console","log","_r","TPay","HeaderEnrichment","enriched","_s","init","warn","err_1"],"mappings":"oIAIO,IAAMA,EAAW,SAAOC,GAA2B,OAAAC,OAAA,OAAA,OAAA,GAAA,iHAGpD,GAFEC,EAA6C,QAA9BC,EAAqB,QAArBC,SAAAC,aAAM,IAANA,YAAM,EAANA,OAAQC,qBAAa,IAAAF,OAAA,EAAAA,EAAEG,eAAO,IAAAJ,OAAA,EAAAA,EAAEK,oBAE/B,oBAAXH,QAAoD,UAA1BH,aAAY,EAAZA,EAAcO,SAA/C,MAAiE,CAAA,EAAA,GAC7DC,EAAUC,IACRC,EAAoBF,EAAOE,gBAC7BC,EAAmC,QAA1BC,EAAAF,aAAA,EAAAA,EAAiBG,eAAS,IAAAD,OAAA,EAAAA,EAAAE,4BAIhB,6BADjBC,EAA+C,QAAnCC,EAAAlB,eAAAA,EAAqBmB,MAAM,gBAAQ,IAAAD,OAAA,EAAAA,EAAEE,KAAK,IACrC,CAAA,EAAMC,EAAS,CACpChB,OAAMA,OACNiB,KAAMT,aAAA,EAAAA,EAAQS,KACdC,QAASV,aAAA,EAAAA,EAAQU,QACjBC,OAAQP,EACRQ,OAAQ,QACRC,cAAOC,EAAuB,QAAvBC,EAAA,OAAAvB,aAAA,IAAAA,YAAA,EAAAA,OAAQC,qBAAe,IAAAsB,OAAA,EAAAA,EAAArB,8BAASmB,MACvCG,kBAAWC,EAAuB,QAAvBC,EAAA,OAAA1B,aAAA,IAAAA,YAAA,EAAAA,OAAQC,qBAAe,IAAAyB,OAAA,EAAAA,EAAAxB,8BAASsB,oBAkB7C,OAzBMG,EAAiBC,EAQrBC,QAEiBC,WACjB9B,OAAO+B,aAEA,QAFeC,EAErB,QAFqBC,EACpB,QADoBC,EAA0B,QAA1BC,EAAAtC,aAAY,EAAZA,EAAcuC,kBAAY,IAAAD,OAAA,EAAAA,EAAAE,+BAC9C,IAAAH,OAAA,EAAAA,EAAAP,EAAeG,iBAChB,IAAAG,OAAA,EAAAA,EAAEK,YAAI,IAAAN,OAAA,EAAAA,EAAEO,WACTvC,OAAOwC,eACuE,QAA5EC,YAA0B,QAA1BC,EAAA7C,aAAY,EAAZA,EAAcuC,kBAAY,IAAAM,OAAA,EAAAA,EAAAL,8CAA0BV,EAAeG,iBAAS,IAAAW,OAAA,EAAAA,EAAEE,iBAElFC,QAAQC,IAAI,eAAgB7C,OAAO+B,cACnCa,QAAQC,IAAI,iBAAkB7C,OAAOwC,iBAEF,QAA9BM,EAAA9C,OAAO+C,KAAKC,wBAAkB,IAAAF,OAAA,EAAAA,EAAAG,YAGH,QAA9BC,EAAAlD,OAAO+C,KAAKC,wBAAkB,IAAAE,GAAAA,EAAAnB,eAF9B/B,OAAO+C,KAAKC,iBAAiBG,KAAK,CAAEpB,aAAc/B,OAAO+B,eAI3D,CAAA,GAAO,UAGP,kBADAa,QAAQQ,KAAKC,GACb,CAAA,GAAO,6BAIT,OADAT,QAAQC,IAAI,YACZ,CAAA,GAAO"}
1
+ {"version":3,"file":"initTPay.js","sources":["../src/utilities/initTpay.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport submitMSISDN from '../flows/pinFlow/main';\nimport { identify } from '../flows/strategy/api';\nimport { getConfig } from './getConfig';\nimport { tracker } from './tracker';\n\ninterface OperatorEntry {\n code: number; // MCC/MNC\n operator_suffix: string;\n}\n\ntype OperatorDict = Record<string, OperatorEntry>;\n\nfunction getSuffixByCode(\n data: OperatorDict | undefined | null,\n code: number | string,\n fallback: string | null = null\n): string | null {\n if (!data || typeof data !== 'object') return fallback;\n\n const target = Number(code);\n\n return Object.values(data).find((item: OperatorEntry) => Number(item.code) === target)?.operator_suffix ?? fallback;\n}\nexport const initTPay = async (internationalNumber?: string): Promise<boolean> => {\n const jsLinkResult = window?.pac_analytics?.visitor?.genericJsLinkResult;\n\n if (typeof window !== 'undefined' && jsLinkResult?.gateway === 'tpay') {\n const configs = getConfig();\n const { strategyConfigs } = configs;\n const config = strategyConfigs?.default?.flowConfig;\n\n try {\n if ((!internationalNumber || internationalNumber?.length <= 2) && window.TPay.HeaderEnrichment?.enriched()) {\n const msisdn = window.TPay.HeaderEnrichment?.msisdn();\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submitted', { msisdn });\n // trigger pin call requested here by Adrian for BE tracking\n submitMSISDN(window, config, msisdn, {\n 'skip-validation': '1' // According to doc msisdn might be encrypted\n });\n window.msisdn = msisdn;\n window.operatorCode = window.TPay.HeaderEnrichment?.operatorCode() as number;\n window.operatorSuffix = getSuffixByCode(\n jsLinkResult?.extra_data?.operator_mccmnc_mapping,\n window.TPay.HeaderEnrichment?.operatorCode()\n );\n if (window.callConfirm) {\n try {\n window.callConfirm();\n } catch (ex) {\n // Catch any unexpected errors\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 }\n }\n return true;\n }\n const intlPhone = internationalNumber?.match(/\\d+/gi)?.join('');\n\n if (internationalNumber || internationalNumber?.length > 2) {\n const identifyResult = await identify({\n window,\n slug: config?.slug,\n country: config?.country,\n msisdn: intlPhone,\n device: 'smart',\n offer: window?.pac_analytics?.visitor?.offer,\n rockmanId: window?.pac_analytics?.visitor?.rockmanId\n });\n\n if (identifyResult.operator) {\n window.operatorCode = jsLinkResult?.extra_data?.operator_mccmnc_mapping?.[\n identifyResult.operator\n ]?.code?.toString();\n window.operatorSuffix =\n jsLinkResult?.extra_data?.operator_mccmnc_mapping?.[identifyResult.operator]?.operator_suffix;\n }\n console.log('operatorCode', window.operatorCode);\n console.log('operatorSuffix', window.operatorSuffix);\n\n window.TPay.HeaderEnrichment.init({ operatorCode: window.operatorCode });\n }\n return true;\n } catch (err) {\n console.warn(err);\n return false;\n }\n } else {\n console.log('Not tpay');\n return false;\n }\n};\n"],"names":["initTPay","internationalNumber","__awaiter","jsLinkResult","_b","_a","window","pac_analytics","visitor","genericJsLinkResult","gateway","configs","getConfig","strategyConfigs","config","_c","default","flowConfig","length","_d","TPay","HeaderEnrichment","enriched","msisdn","_e","tracker","advancedInFlow","submitMSISDN","operatorCode","_f","operatorSuffix","data","code","fallback","target","Number","Object","values","find","item","operator_suffix","getSuffixByCode","_g","extra_data","operator_mccmnc_mapping","_h","callConfirm","ex","recedeInFlow","errorType","error","toString","message","intlPhone","_j","match","join","identify","slug","country","device","offer","_l","_k","rockmanId","_o","_m","identifyResult","_w","sent","operator","_s","_r","_q","_p","_v","_t","console","log","init","warn","err_1"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{__awaiter as n,__generator as r,__read as e,__assign as i}from"tslib";import{b as t}from"./api-geirVksI.js";import{a,r as o,l as c}from"./helpers-CBmogWIZ.js";import{l as s}from"./loadScriptInnerHtml-B6v2-IGn.js";import{n as u}from"./normaliseErrorCode-CcFWuZeI.js";import{searchToObject as d}from"./searchToObject.js";import{c as l}from"./cleanSearchParams-Dl7ZDlew.js";var f=function(n){return"be"===n?"undefined"!=typeof window&&!0===window.shouldBlock?"&is-clean-traffic=false":"&is-clean-traffic=true":""},v=function(i){var t=i.window,a=i.country,o=i.slug,c=i.device,s=i.offer,u=i.msisdn,d=i.rockmanId,v=i.extraParams,p=i.search,_=i.uniqid,m=i.evinaTid;return n(void 0,void 0,void 0,(function(){var n,i,g,h,y,k,w;return r(this,(function(r){return n=f(a),i="&".concat(Object.keys(v).map((function(n){return v[n]?"".concat(n,"=").concat(v[n]):""})).filter(Boolean).join("&")),p=l(p),g={action:"trigger-pin",country:a,slug:o,device:c,offerId:s,msisdn:u,rockman_id:d,sam_evina_tid:m,page:encodeURIComponent(null===(w=null==t?void 0:t.location)||void 0===w?void 0:w.href),language_code:t.languageCode||"",partner_transaction_id:t.partner_transaction_id||"",partner_timestamp:t.partner_timestamp||"",partner_cid:t.partner_cid||"",uniqid:_||"",antifraud_id:t.antifraud_id||"",antifraud_id_js_code:t.antifraud_id_js_code||"",antifraud_id_js_link:t.antifraud_id_js_link||"",zain_antifraud_id:t.zain_antifraud_id||"",korek_antifraud_id:t.korek_antifraud_id||"",ip_address:t.pac_analytics.visitor.ip||"",ip_range_operator:t.pac_analytics.visitor.ipRangeOperator||""},h=Object.entries(g).filter((function(n){var r=e(n,2);return r[0],r[1]})).map((function(n){var r=e(n,2),i=r[0],t=r[1];return"".concat(i,"=").concat(t)})).join("&"),y=t.DEV_BASE_URL||"",k="".concat(y,"/tallyman/v1/?").concat(h).concat(n).concat(i).concat(p?"&".concat(p):""),[2,fetch(k).then((function(n){return n.json()}))]}))}))},p=function(i){var a=i.window,o=i.country,c=i.slug,s=i.device,u=i.offer,d=i.rockmanId,v=i.pin,p=i.extraParams,_=i.uniqid,m=i.evinaTid,g=i.search;return n(void 0,void 0,void 0,(function(){var n,i,h,y,k,w,b;return r(this,(function(r){return n=f(o),i="&".concat(Object.keys(p).map((function(n){return"".concat(n,"=").concat(p[n])})).join("&")),g=l(g),h={action:"verify-pin",country:t(o),slug:c,device:s,offerId:u,rockman_id:d,pin:v,page:encodeURIComponent(null===(b=null==a?void 0:a.location)||void 0===b?void 0:b.href),language_code:a.languageCode||"",ClickID:a.antifraud_click_id||"",partner_cid:a.partner_cid||"",sam_evina_tid:m,uniqid:_,antifraud_id:a.antifraud_id||"",antifraud_id_js_code:a.antifraud_id_js_code||"",antifraud_id_js_link:a.antifraud_id_js_link||"",zain_antifraud_id:a.zain_antifraud_id||"",korek_antifraud_id:a.korek_antifraud_id||""},y=Object.entries(h).filter((function(n){var r=e(n,2);return r[0],r[1]})).map((function(n){var r=e(n,2),i=r[0],t=r[1];return"".concat(i,"=").concat(t)})).join("&"),k=a.DEV_BASE_URL||"",w="".concat(k,"/tallyman/v1/?").concat(y).concat(n).concat(i).concat(g?"&".concat(g):""),[2,fetch(w).then((function(n){return n.json()}))]}))}))},_=function(e){var t=e.window,a=e.country,o=e.slug,c=e.device,s=e.offer,u=e.rockmanId,d=e.operator,l=e.uniqid;return n(void 0,void 0,void 0,(function(){var n,e,f,v,p;return r(this,(function(r){return n=t.location.href,e=t.pac_analytics.visitor.ip,f=new URLSearchParams(i(i({action:"mcp-shield",country:a,slug:o,device:c,offerId:s.toString(),rockman_id:u,client_lpu:n},d&&{operator:d}),l&&{uniqid:l})),e&&f.append("client_ip",e),v=t.DEV_BASE_URL||"",p="".concat(v,"/tallyman/v1/?").concat(f.toString()),[2,fetch(p).then((function(n){return n.json()}))]}))}))};function m(e,t,a,o){return n(this,void 0,void 0,(function(){var n;return r(this,(function(r){return!0===(n=i({offer:e.pac_analytics.visitor.offer},t||{})).automaticallySubmitAllOperators&&n.operators&&n.operators.length>0?[2,y(e,n,a,n.operators,o)]:[2,h(e,n,a,o)]}))}))}var g="";function h(e,t,a,o){var c;return n(this,void 0,void 0,(function(){var n,l,f,p,m,h,y,k,w,b,S,I,j,E,D,R,C,B,A,U;return r(this,(function(r){switch(r.label){case 0:if(!a)throw(n=new Error("Error in submitMSISDN() trigger-pin action")).type="InvalidMSISDN",n;return l=o||{},f=!1,("true"===(null==(p=d(e))?void 0:p.success)&&"1"===p["msisdn-alias"]||!0===e.skip_validation)&&(l["skip-validation"]="1"),"1"===l["skip-validation"]&&(f=!0),m=f?a||e.msisdn:a.match(/\d+/gi).join(""),h=e.pac_analytics.visitor.rockmanId,y=t.slug,k=t.country,w=t.device,b=t.offer,S=e.location.search.substr(1)||"",I=g&&""!==g?"&mcpUniqid=".concat(g):"",j=void 0!==e&&e.tid?e.tid:"",[4,v({window:e,country:k,slug:y,device:w,offer:b,msisdn:m,rockmanId:h,extraParams:l,search:S,uniqid:I,evinaTid:j})];case 1:if(!0===(E=r.sent()).isContentBlocked&&(e.isContentBlocked=!0),!1!==E.success)return[3,2];throw D=E.message.includes("ALREADY SUBSCRIBED")?"AlreadySubscribed":/invalid/i.test(E.message)?"InvalidMsisdn":E.message.includes("duplicated_request")?"DuplicatedRequest":null,R=E.error_code?u(E.error_code):D,C=new Error("Error in submitMSISDN() trigger-pin action:\n".concat(E.message)),Object.assign(C,{type:R,message:E.message,productUrl:null!==(c=E.product_url)&&void 0!==c?c:""}),C;case 2:if(e.operator=E.operator,B={kw:{kw_viva:"kw_viva"},k2:{k2_viva:"k2_viva"},bh:{bh_viva:"bh_viva"}},!(k&&E.operator&&(B[k.toLowerCase()]&&B[k.toLowerCase()][E.operator.toLowerCase()]||"iq"===k.toLowerCase()))||e.isCallBlockApi||e.Empello)return[3,6];r.label=3;case 3:return r.trys.push([3,5,,6]),[4,_({window:e,country:k,slug:y,device:w,offer:b,rockmanId:h,operator:E.operator,uniqid:I})];case 4:return!1===(A=r.sent()).success?console.warn(A.message):(s(A.source),g=A.uniqid),[3,6];case 5:return U=r.sent(),console.warn(U),[3,6];case 6:return E.javascript&&s(E.javascript),[2,i({type:"SingleMSISDNSubmissionResult",pin:E.pin,uniqidResult:g,operator:E.operator,redirectUrl:null==E?void 0:E.redirect_to_url},(null==E?void 0:E.userType)?{userType:null==E?void 0:E.userType}:{})]}}))}))}function y(e,t,c,s,u){return n(this,void 0,void 0,(function(){var d,l,f=this;return r(this,(function(v){switch(v.label){case 0:return[4,Promise.all(s.map((function(s){return n(f,void 0,void 0,(function(){var n,d;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,h(e,t,c,i(i({},u),{operator:s}))];case 1:return n=r.sent(),[2,o(i(i({},n),{operator:s}))];case 2:return d=r.sent(),[2,a(d)];case 3:return[2]}}))}))})))];case 1:if(d=v.sent(),l=d.find((function(n){var r;return"left"===n.type&&"AlreadySubscribed"===(null===(r=n.value)||void 0===r?void 0:r.type)})),d.every((function(n){return"left"===n.type})))throw d[0].value;if(l)throw l.value;return[2,{type:"MultiOperatorMSISDNSubmissionResult"}]}}))}))}function k(i,a,o,s){return n(this,void 0,void 0,(function(){var u,l,f,v,_,m,h,y,k,w,b,S,I,j,E,D,R;return r(this,(function(C){switch(C.label){case 0:if(i.hostCountry&&i.hostSlug&&(o.country=i.hostCountry,o.slug=i.hostSlug),u=o.slug,l=o.country,f=o.device,v=i.pac_analytics.visitor.offer,_=s||{},"true"===(null==(m=d(i))?void 0:m.success)&&"1"===m["msisdn-alias"]&&(_["skip-validation"]="1"),h=i.pac_analytics.visitor.rockmanId,!a)throw(y=new Error("Error in submitMSISDN() verify-pin action:\n Pin Cannot Be Empty")).type="InvalidPIN",y;return k=""!==g?"&mcpUniqid=".concat(g):"",w=void 0!==i&&i.tid?i.tid:"",b=i.location.search.substr(1)||"",[4,p({window:i,country:l,slug:u,device:f,offer:v,rockmanId:h,pin:a,extraParams:_,uniqid:k,evinaTid:w,search:b})];case 1:if(!1!==(S=C.sent()).success)return[3,2];switch(I=void 0,!0){case S.message.includes("pin does not match"):I="InvalidPIN";break;case S.message.includes("mcp blocked"):I="SessionBlocked";break;case S.message.includes("expired_pin"):I="ExpiredPIN";break;case S.message.includes("insufficient_balance"):I="InsufficientBalance";break;case S.message.includes("duplicated_request"):I="DuplicatedRequest";break;case S.message.includes("ALREADY SUBSCRIBED"):I="AlreadySubscribed";break;default:I="InvalidPIN"}throw(D=new Error("Error in submitMSISDN() verify-pin action:\n".concat(S.message))).type=I,console.error(D),D;case 2:return!0!==S.async?[3,4]:S.product_url&&""!==S.product_url&&"es"===(null==l?void 0:l.toLowerCase())?[2,{gatewayRedirectUrl:S.product_url}]:(j=function(){return function(i){var a=i.window,o=i.country,c=i.slug,s=i.device,u=i.offer,d=i.rockmanId;return n(void 0,void 0,void 0,(function(){var n,i,l,f;return r(this,(function(r){return n={action:"check-subscription",country:t(o),slug:c,device:s,offerId:u,rockman_id:d},i=Object.entries(n).filter((function(n){var r=e(n,2);return r[0],null!=r[1]})).map((function(n){var r=e(n,2),i=r[0],t=r[1];return"".concat(i,"=").concat(encodeURIComponent(t))})).join("&"),l=a.DEV_BASE_URL||"",f="".concat(l,"/tallyman/v1/?").concat(i),[2,fetch(f).then((function(n){return n.json()}))]}))}))}({window:i,country:l,slug:u,device:f,offer:v,rockmanId:h,extraParams:s})},[4,c(j,100,(function(n){return n.success||"invalid_pin"===n.message}),0)]);case 3:if(!0===(E=C.sent()).success)return R="ALREADY SUBSCRIBED"===S.message,[2,{productUrl:E.product_url||null,isAlreadySubscribed:R}];throw(D=new Error("Error in submitMSISDN() verify-pin action:\n".concat(E.message))).type="InvalidPIN",D.message=E.message,D;case 4:return R="ALREADY SUBSCRIBED"===S.message,[2,{productUrl:S.product_url||null,isAlreadySubscribed:R}]}}))}))}export{k as a,m as s};
2
+ //# sourceMappingURL=main-rB39lw_a.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main-rB39lw_a.js","sources":["../src/sharedApi/checkSubscription.ts","../src/flows/pinFlow/api.ts","../src/flows/pinFlow/main.ts"],"sourcesContent":["import { ICheckSubscriptionResult } from '../common-types/ICheckSubscriptionResult';\nimport { IHash } from '../common-types/IHash';\nimport { bupperizeCountry } from '../utilities/bupperizeCountry';\n\nconst checkSubscription = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n extraParams?: IHash; // Marked as optional if currently unused\n}): Promise<ICheckSubscriptionResult> => {\n const params = {\n action: 'check-subscription',\n country: bupperizeCountry(country),\n slug,\n device,\n offerId: offer,\n rockman_id: rockmanId\n };\n\n const queryString = Object.entries(params)\n .filter(([_, value]) => value !== undefined && value !== null)\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\n .join('&');\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}`;\n return fetch(url).then((response) => response.json());\n};\n\nexport { checkSubscription };\n","import { IHash, IMcpShieldResult, IMSISDNSubmissionResult, IPINSubmissionResult } from '../../sharedFlowTypes/PinTypes';\nimport { bupperizeCountry } from '../../utilities/bupperizeCountry';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\n\nconst checkIsCleanTraffic = (country: string): string => {\n if (country === 'be') {\n if (typeof window !== 'undefined' && window.shouldBlock === true) {\n return '&is-clean-traffic=false';\n }\n return '&is-clean-traffic=true';\n }\n return '';\n};\nconst triggerPin = async ({\n window,\n country,\n slug,\n device,\n offer,\n msisdn,\n rockmanId,\n extraParams,\n search,\n uniqid,\n evinaTid\n}: {\n window?: Window;\n country: string;\n slug: string;\n device: 'smart' | 'feature';\n offer: string;\n msisdn: string;\n rockmanId: string;\n extraParams: IHash;\n search: string;\n uniqid?: string;\n evinaTid?: string;\n}): Promise<IMSISDNSubmissionResult> => {\n const cleanTrafficString = checkIsCleanTraffic(country);\n const extraParamsQs = `&${Object.keys(extraParams)\n .map((k) => (extraParams[k] ? `${k}=${extraParams[k]}` : ''))\n .filter(Boolean)\n .join('&')}`;\n\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n\n // Base parameters object\n const params = {\n action: 'trigger-pin',\n country,\n slug,\n device,\n offerId: offer,\n msisdn,\n rockman_id: rockmanId,\n sam_evina_tid: evinaTid,\n page: encodeURIComponent(window?.location?.href),\n language_code: window.languageCode || '',\n partner_transaction_id: window.partner_transaction_id || '',\n partner_timestamp: window.partner_timestamp || '',\n partner_cid: window.partner_cid || '',\n uniqid: uniqid || '',\n\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n zain_antifraud_id: window.zain_antifraud_id || '',\n korek_antifraud_id: window.korek_antifraud_id || '',\n\n ip_address: window.pac_analytics.visitor.ip || '',\n ip_range_operator: window.pac_analytics.visitor.ipRangeOperator || ''\n };\n\n // Convert params object to query string\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${cleanTrafficString}${extraParamsQs}${search ? `&${search}` : ''}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nconst verifyPin = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n pin,\n extraParams,\n uniqid,\n evinaTid,\n search\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n pin: string;\n extraParams: IHash;\n uniqid: string;\n evinaTid: string;\n search: string;\n}): Promise<IPINSubmissionResult> => {\n const cleanTrafficString = checkIsCleanTraffic(country);\n const extraParamsQs = `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n // Base parameters object\n const params = {\n action: 'verify-pin',\n country: bupperizeCountry(country),\n slug,\n device,\n offerId: offer,\n rockman_id: rockmanId,\n pin,\n page: encodeURIComponent(window?.location?.href),\n language_code: window.languageCode || '',\n ClickID: window.antifraud_click_id || '',\n partner_cid: window.partner_cid || '',\n sam_evina_tid: evinaTid,\n uniqid,\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id: window.antifraud_id || '',\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n zain_antifraud_id: window.zain_antifraud_id || '',\n korek_antifraud_id: window.korek_antifraud_id || ''\n };\n\n // Convert params object to query string\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${cleanTrafficString}${extraParamsQs}${search ? `&${search}` : ''}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nconst mcpShield = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n operator,\n uniqid\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n operator?: string;\n uniqid?: string;\n}): Promise<IMcpShieldResult> => {\n const pageUrl = window.location.href;\n const ipAdd = window.pac_analytics.visitor.ip;\n\n const params = new URLSearchParams({\n action: 'mcp-shield',\n country,\n slug,\n device,\n offerId: offer.toString(),\n rockman_id: rockmanId,\n client_lpu: pageUrl,\n ...(operator && { operator }),\n ...(uniqid && { uniqid })\n });\n\n // Conditionally add client_ip if it exists\n if (ipAdd) {\n params.append('client_ip', ipAdd);\n }\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${params.toString()}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nexport { triggerPin, verifyPin, mcpShield };\n","import { ICheckSubscriptionResult } from '../../common-types/ICheckSubscriptionResult';\nimport { IError } from '../../common-types/IError';\nimport { checkSubscription } from '../../sharedApi/checkSubscription';\nimport {\n IHash,\n IMcpShieldResult,\n IMSISDNSubmissionResult,\n IPINSubmissionResult,\n MultiOperatorMSISDNSubmissionResult,\n SingleMSISDNSubmissionResult\n} from '../../sharedFlowTypes/PinTypes';\nimport { IConfig, IStrategyIDentifyUserResult } from '../../sharedFlowTypes/StrategyTypes';\nimport { left, loop, right } from '../../utilities/helpers';\nimport { loadScriptInnerHtml } from '../../utilities/loadScriptInnerHtml';\nimport { normaliseErrorCode } from '../../utilities/normaliseErrorCode';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { mcpShield, triggerPin, verifyPin } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: IHash\n): Promise<SingleMSISDNSubmissionResult | MultiOperatorMSISDNSubmissionResult> {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const config: IConfig = { offer: window.pac_analytics.visitor.offer, ...(maybeConfig || {}) };\n if (config.automaticallySubmitAllOperators === true && !!config.operators && config.operators.length > 0) {\n return submitMSISDNForMultipleOperators(window, config, internationalMSISDN, config.operators, extraParams);\n }\n return submitMSISDNOnce(window, config, internationalMSISDN, extraParams);\n}\n\nlet uniqidResult = '';\n// eslint-disable-next-line consistent-return\nexport async function loadMcpShield(window: Window, config: IConfig): Promise<IMcpShieldResult> {\n if (config) {\n const { slug, country, device } = config;\n\n const { offer } = window.pac_analytics.visitor;\n const { rockmanId } = window.pac_analytics.visitor;\n\n try {\n const mcpShieldResult: IMcpShieldResult = await mcpShield({ window, country, slug, device, offer, rockmanId });\n if (mcpShieldResult.success === false) {\n console.warn(mcpShieldResult.message);\n } else {\n loadScriptInnerHtml(mcpShieldResult.source);\n uniqidResult = mcpShieldResult.uniqid;\n return mcpShieldResult;\n }\n } catch (err) {\n console.warn(err);\n }\n }\n}\n\nasync function submitMSISDNOnce(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: IHash\n): Promise<SingleMSISDNSubmissionResult> {\n if (!internationalMSISDN) {\n const submissionError = new Error(`Error in submitMSISDN() trigger-pin action`) as IError & { type: string };\n submissionError.type = 'InvalidMSISDN';\n throw submissionError;\n }\n const newExtraParams = extraParams || {};\n let isSkipValidation = false;\n const searchObj = searchToObject(window) as IStrategyIDentifyUserResult;\n // @ts-ignore\n if ((searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') || window.skip_validation === true) {\n // Search param is set to 1 for header enrichment when the msisdn is masked\n newExtraParams['skip-validation'] = '1';\n }\n\n if (newExtraParams['skip-validation'] === '1') {\n isSkipValidation = true;\n }\n\n const msisdn = isSkipValidation ? internationalMSISDN || window.msisdn : internationalMSISDN.match(/\\d+/gi).join(''); // tallyman API expects international msisdn without any special character\n const { rockmanId } = window.pac_analytics.visitor;\n\n const { slug, country, device, offer } = config;\n\n const search = window.location.search.substr(1) || '';\n const uniqid = !!uniqidResult && uniqidResult !== '' ? `&mcpUniqid=${uniqidResult}` : '';\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const result: IMSISDNSubmissionResult = await triggerPin({\n window,\n country,\n slug,\n device,\n offer,\n msisdn,\n rockmanId,\n extraParams: newExtraParams,\n search,\n uniqid,\n evinaTid\n });\n\n if (result.isContentBlocked === true) {\n window.isContentBlocked = true;\n }\n if (result.success === false) {\n // derive a default type from the message\n const defaultType: string | null = result.message.includes('ALREADY SUBSCRIBED')\n ? 'AlreadySubscribed'\n : /invalid/i.test(result.message)\n ? 'InvalidMsisdn'\n : result.message.includes('duplicated_request')\n ? 'DuplicatedRequest'\n : null;\n\n // prefer an explicit error_code mapping when available\n const type = result.error_code ? normaliseErrorCode(result.error_code) : defaultType;\n\n // build and annotate the Error\n const error = new Error(`Error in submitMSISDN() trigger-pin action:\\n${result.message}`) as IError & {\n type: string | null;\n productUrl: string;\n };\n\n Object.assign(error, {\n type,\n message: result.message,\n productUrl: result.product_url ?? ''\n });\n\n throw error;\n } else {\n window.operator = result.operator; // currently used on server for KW_STC if present dont call empello for Shemaroo\n const codesWithMcpShied: { [key: string]: { [key: string]: string } } = {\n kw: {\n kw_viva: 'kw_viva'\n },\n k2: {\n k2_viva: 'k2_viva'\n },\n bh: {\n bh_viva: 'bh_viva'\n }\n };\n if (\n country &&\n result.operator &&\n ((codesWithMcpShied[country.toLowerCase()] &&\n codesWithMcpShied[country.toLowerCase()][result.operator.toLowerCase()]) ||\n country.toLowerCase() === 'iq') &&\n !window.isCallBlockApi &&\n !window.Empello // set on server https://www.notion.so/sammedia/KW-Agency-Shemaroo-STC-integration-1a114991683d4af79eb01a4d96789f30\n ) {\n try {\n const mcpShieldResult: IMcpShieldResult = await mcpShield({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n operator: result.operator,\n uniqid\n });\n if (mcpShieldResult.success === false) {\n console.warn(mcpShieldResult.message);\n } else {\n loadScriptInnerHtml(mcpShieldResult.source);\n uniqidResult = mcpShieldResult.uniqid;\n }\n } catch (err) {\n console.warn(err);\n }\n }\n\n if (result.javascript) {\n loadScriptInnerHtml(result.javascript);\n }\n\n return {\n type: 'SingleMSISDNSubmissionResult',\n pin: result.pin,\n uniqidResult,\n operator: result.operator,\n redirectUrl: result?.redirect_to_url, // For pin redirect empello\n ...(result?.userType ? { userType: result?.userType } : {}) // For Peru user plan if prepaid or postpaid\n };\n }\n}\n\nasync function submitMSISDNForMultipleOperators(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n operators: string[],\n extraParams?: IHash\n): Promise<MultiOperatorMSISDNSubmissionResult> {\n const results = await Promise.all(\n operators.map(async (o) => {\n try {\n const singleResult = await submitMSISDNOnce(window, config, internationalMSISDN, {\n ...extraParams,\n operator: o\n });\n return right({ ...singleResult, operator: o });\n } catch (error) {\n return left(error);\n }\n })\n );\n\n const alreadySubscribed = results.find((r: any) => r.type === 'left' && r.value?.type === 'AlreadySubscribed');\n\n if (results.every((r) => r.type === 'left')) {\n // no submission worked\n throw results[0].value;\n } else if (alreadySubscribed) {\n throw alreadySubscribed.value;\n } else {\n return {\n type: 'MultiOperatorMSISDNSubmissionResult'\n };\n }\n}\n\nexport async function submitPIN(\n window: Window,\n pin: string,\n config: IConfig,\n extraParams: IHash\n): Promise<{ productUrl?: string; isAlreadySubscribed?: boolean; gatewayRedirectUrl?: string }> {\n if (window.hostCountry && window.hostSlug) {\n config.country = window.hostCountry;\n config.slug = window.hostSlug;\n }\n const { slug, country, device } = config;\n const { offer } = window.pac_analytics.visitor;\n\n const newExtraParams = extraParams || {};\n const searchObj = searchToObject(window) as any;\n if (searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') {\n newExtraParams['skip-validation'] = '1';\n }\n\n const { rockmanId } = window.pac_analytics.visitor;\n\n if (!pin) {\n const emptyPinError = new Error(`Error in submitMSISDN() verify-pin action:\\n Pin Cannot Be Empty`) as IError & {\n type: string;\n };\n emptyPinError.type = 'InvalidPIN';\n throw emptyPinError;\n }\n const uniqid = uniqidResult !== '' ? `&mcpUniqid=${uniqidResult}` : '';\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n const search = window.location.search.substr(1) || '';\n\n const pinResult: IPINSubmissionResult = await verifyPin({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n pin,\n extraParams: newExtraParams,\n uniqid,\n evinaTid,\n search\n });\n if (pinResult.success === false) {\n let errorType: string;\n\n switch (true) {\n case pinResult.message.includes('pin does not match'):\n errorType = 'InvalidPIN';\n break;\n case pinResult.message.includes('mcp blocked'):\n errorType = 'SessionBlocked';\n break;\n case pinResult.message.includes('expired_pin'):\n errorType = 'ExpiredPIN';\n break;\n case pinResult.message.includes('insufficient_balance'):\n errorType = 'InsufficientBalance';\n break;\n case pinResult.message.includes('duplicated_request'):\n errorType = 'DuplicatedRequest';\n break;\n case pinResult.message.includes('ALREADY SUBSCRIBED'):\n errorType = 'AlreadySubscribed';\n break;\n default:\n errorType = 'InvalidPIN';\n }\n\n const pinError = new Error(`Error in submitMSISDN() verify-pin action:\\n${pinResult.message}`) as IError & {\n type: string;\n };\n pinError.type = errorType;\n console.error(pinError);\n throw pinError;\n } else if (pinResult.async === true) {\n // Needed for ES https://www.notion.so/sammedia/ES-OnMobile-Movistar-Direct-Ouisys-Integration-XR-Academy-ca60b176b0ea40a7b170e5d9e7deb491\n if (pinResult.product_url && pinResult.product_url !== '' && country?.toLowerCase() === 'es') {\n return { gatewayRedirectUrl: pinResult.product_url };\n }\n const check: () => Promise<ICheckSubscriptionResult> = () =>\n checkSubscription({ window, country, slug, device, offer, rockmanId, extraParams });\n\n const checkResult: ICheckSubscriptionResult = await loop(\n check,\n 100,\n (r) => r.success || r.message === 'invalid_pin',\n 0\n );\n if (checkResult.success === true) {\n const isAlreadySubscribed = pinResult.message === 'ALREADY SUBSCRIBED';\n return { productUrl: checkResult.product_url || null, isAlreadySubscribed };\n }\n const pinError = new Error(`Error in submitMSISDN() verify-pin action:\\n${checkResult.message}`) as IError & {\n type: string;\n };\n pinError.type = 'InvalidPIN';\n\n pinError.message = checkResult.message;\n\n throw pinError;\n } else {\n const isAlreadySubscribed = pinResult.message === 'ALREADY SUBSCRIBED';\n return { productUrl: pinResult.product_url || null, isAlreadySubscribed };\n }\n}\n"],"names":["checkIsCleanTraffic","country","window","shouldBlock","triggerPin","_a","slug","device","offer","msisdn","rockmanId","extraParams","search","uniqid","evinaTid","cleanTrafficString","extraParamsQs","concat","Object","keys","map","k","filter","Boolean","join","cleanSearchParams","params","action","offerId","rockman_id","sam_evina_tid","page","encodeURIComponent","_b","location","href","language_code","languageCode","partner_transaction_id","partner_timestamp","partner_cid","antifraud_id","antifraud_id_js_code","antifraud_id_js_link","zain_antifraud_id","korek_antifraud_id","ip_address","pac_analytics","visitor","ip","ip_range_operator","ipRangeOperator","queryString","entries","__read","key","value","host","DEV_BASE_URL","url","fetch","then","x","json","verifyPin","pin","bupperizeCountry","ClickID","antifraud_click_id","mcpShield","operator","pageUrl","ipAdd","URLSearchParams","__assign","toString","client_lpu","append","submitMSISDN","maybeConfig","internationalMSISDN","config","automaticallySubmitAllOperators","operators","length","submitMSISDNForMultipleOperators","submitMSISDNOnce","uniqidResult","submissionError","Error","type","newExtraParams","isSkipValidation","searchObj","searchToObject","success","skip_validation","match","substr","tid","result","sent","isContentBlocked","defaultType","message","includes","test","error_code","normaliseErrorCode","error","assign","productUrl","product_url","codesWithMcpShied","kw","kw_viva","k2","k2_viva","bh","bh_viva","toLowerCase","isCallBlockApi","Empello","mcpShieldResult","console","warn","loadScriptInnerHtml","source","err_2","javascript","redirectUrl","redirect_to_url","userType","Promise","all","o","__awaiter","_this","singleResult","right","left","error_1","results","alreadySubscribed","find","r","every","submitPIN","hostCountry","hostSlug","emptyPinError","pinResult","errorType","pinError","async","gatewayRedirectUrl","check","response","checkSubscription","loop","checkResult","isAlreadySubscribed"],"mappings":"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"}
package/dist/pinFlow.js CHANGED
@@ -1,2 +1,2 @@
1
- import{__awaiter as e,__generator as r,__read as n,__assign as t}from"tslib";import{createAsyncThunk as i,createSlice as a}from"@reduxjs/toolkit";import{N as o,L as s,S as c,F as d}from"./RemoteDataState-lcf8PfJd.js";import{i as u,c as l,P as v}from"./strategySlice-BMNt18ck.js";import{n as p,r as f}from"./normaliseErrorCode-CcFWuZeI.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{b as S}from"./api-geirVksI.js";import{l as _,r as g,a as h}from"./helpers-xPhGBX-B.js";import{l as I}from"./loadScriptInnerHtml-B6v2-IGn.js";import{c as b}from"./cleanSearchParams-Dl7ZDlew.js";import"./getConfig.js";import"./formatNumberToE164-DaAFvpKD.js";import"pacman-client";import"uuid";var E=function(e){return e((function(e){return e.pinFlow.currentState}))};function k(e){var r=e.msisdnEntry,n=e.pinEntry;return function(e){switch(e.type){case"MSISDNEntry":return r(e.result);case"PINEntry":return n(e.result,e.data);default:throw new Error("Invalid State")}}}var U=function(e){return"be"===e?"undefined"!=typeof window&&!0===window.shouldBlock?"&is-clean-traffic=false":"&is-clean-traffic=true":""},N=function(t){var i=t.window,a=t.country,o=t.slug,s=t.device,c=t.offer,d=t.msisdn,u=t.rockmanId,l=t.extraParams,v=t.search,p=t.uniqid,f=t.evinaTid;return e(void 0,void 0,void 0,(function(){var e,t,m,y,w,S,_;return r(this,(function(r){return e=U(a),t="&".concat(Object.keys(l).map((function(e){return l[e]?"".concat(e,"=").concat(l[e]):""})).filter(Boolean).join("&")),v=b(v),m={action:"trigger-pin",country:a,slug:o,device:s,offerId:c,msisdn:d,rockman_id:u,sam_evina_tid:f,page:encodeURIComponent(null===(_=null==i?void 0:i.location)||void 0===_?void 0:_.href),language_code:i.languageCode||"",partner_transaction_id:i.partner_transaction_id||"",partner_timestamp:i.partner_timestamp||"",partner_cid:i.partner_cid||"",uniqid:p||"",antifraud_id:i.antifraud_id||"",antifraud_id_js_code:i.antifraud_id_js_code||"",antifraud_id_js_link:i.antifraud_id_js_link||"",zain_antifraud_id:i.zain_antifraud_id||"",korek_antifraud_id:i.korek_antifraud_id||"",ip_address:i.pac_analytics.visitor.ip||"",ip_range_operator:i.pac_analytics.visitor.ipRangeOperator||""},y=Object.entries(m).filter((function(e){var r=n(e,2);return r[0],r[1]})).map((function(e){var r=n(e,2),t=r[0],i=r[1];return"".concat(t,"=").concat(i)})).join("&"),w=i.DEV_BASE_URL||"",S="".concat(w,"/tallyman/v1/?").concat(y).concat(e).concat(t).concat(v?"&".concat(v):""),[2,fetch(S).then((function(e){return e.json()}))]}))}))},P=function(t){var i=t.window,a=t.country,o=t.slug,s=t.device,c=t.offer,d=t.rockmanId,u=t.pin,l=t.extraParams,v=t.uniqid,p=t.evinaTid,f=t.search;return e(void 0,void 0,void 0,(function(){var e,t,m,y,w,_,g;return r(this,(function(r){return e=U(a),t="&".concat(Object.keys(l).map((function(e){return"".concat(e,"=").concat(l[e])})).join("&")),f=b(f),m={action:"verify-pin",country:S(a),slug:o,device:s,offerId:c,rockman_id:d,pin:u,page:encodeURIComponent(null===(g=null==i?void 0:i.location)||void 0===g?void 0:g.href),language_code:i.languageCode||"",ClickID:i.antifraud_click_id||"",partner_cid:i.partner_cid||"",sam_evina_tid:p,uniqid:v,antifraud_id:i.antifraud_id||"",antifraud_id_js_code:i.antifraud_id_js_code||"",antifraud_id_js_link:i.antifraud_id_js_link||"",zain_antifraud_id:i.zain_antifraud_id||"",korek_antifraud_id:i.korek_antifraud_id||""},y=Object.entries(m).filter((function(e){var r=n(e,2);return r[0],r[1]})).map((function(e){var r=n(e,2),t=r[0],i=r[1];return"".concat(t,"=").concat(i)})).join("&"),w=i.DEV_BASE_URL||"",_="".concat(w,"/tallyman/v1/?").concat(y).concat(e).concat(t).concat(f?"&".concat(f):""),[2,fetch(_).then((function(e){return e.json()}))]}))}))},j=function(n){var i=n.window,a=n.country,o=n.slug,s=n.device,c=n.offer,d=n.rockmanId,u=n.operator,l=n.uniqid;return e(void 0,void 0,void 0,(function(){var e,n,v,p,f;return r(this,(function(r){return e=i.location.href,n=i.pac_analytics.visitor.ip,v=new URLSearchParams(t(t({action:"mcp-shield",country:a,slug:o,device:s,offerId:c.toString(),rockman_id:d,client_lpu:e},u&&{operator:u}),l&&{uniqid:l})),n&&v.append("client_ip",n),p=i.DEV_BASE_URL||"",f="".concat(p,"/tallyman/v1/?").concat(v.toString()),[2,fetch(f).then((function(e){return e.json()}))]}))}))};function C(n,i,a,o){return e(this,void 0,void 0,(function(){var e;return r(this,(function(r){return!0===(e=t({offer:n.pac_analytics.visitor.offer},i||{})).automaticallySubmitAllOperators&&e.operators&&e.operators.length>0?[2,M(n,e,a,e.operators,o)]:[2,D(n,e,a,o)]}))}))}var R="";function D(n,i,a,o){var s;return e(this,void 0,void 0,(function(){var e,c,d,u,l,v,f,y,w,S,_,g,h,b,E,k,U,P,C,D;return r(this,(function(r){switch(r.label){case 0:if(!a)throw(e=new Error("Error in submitMSISDN() trigger-pin action")).type="InvalidMSISDN",e;return c=o||{},d=!1,("true"===(null==(u=m(n))?void 0:u.success)&&"1"===u["msisdn-alias"]||!0===n.skip_validation)&&(c["skip-validation"]="1"),"1"===c["skip-validation"]&&(d=!0),l=d?a||n.msisdn:a.match(/\d+/gi).join(""),v=n.pac_analytics.visitor.rockmanId,f=i.slug,y=i.country,w=i.device,S=i.offer,_=n.location.search.substr(1)||"",g=R&&""!==R?"&mcpUniqid=".concat(R):"",h=void 0!==n&&n.tid?n.tid:"",[4,N({window:n,country:y,slug:f,device:w,offer:S,msisdn:l,rockmanId:v,extraParams:c,search:_,uniqid:g,evinaTid:h})];case 1:if(!0===(b=r.sent()).isContentBlocked&&(n.isContentBlocked=!0),!1!==b.success)return[3,2];throw E=b.message.includes("ALREADY SUBSCRIBED")?"AlreadySubscribed":/invalid/i.test(b.message)?"InvalidMsisdn":b.message.includes("duplicated_request")?"DuplicatedRequest":null,k=b.error_code?p(b.error_code):E,U=new Error("Error in submitMSISDN() trigger-pin action:\n".concat(b.message)),Object.assign(U,{type:k,message:b.message,productUrl:null!==(s=b.product_url)&&void 0!==s?s:""}),U;case 2:if(n.operator=b.operator,P={kw:{kw_viva:"kw_viva"},k2:{k2_viva:"k2_viva"},bh:{bh_viva:"bh_viva"}},!(y&&b.operator&&(P[y.toLowerCase()]&&P[y.toLowerCase()][b.operator.toLowerCase()]||"iq"===y.toLowerCase()))||n.isCallBlockApi||n.Empello)return[3,6];r.label=3;case 3:return r.trys.push([3,5,,6]),[4,j({window:n,country:y,slug:f,device:w,offer:S,rockmanId:v,operator:b.operator,uniqid:g})];case 4:return!1===(C=r.sent()).success?console.warn(C.message):(I(C.source),R=C.uniqid),[3,6];case 5:return D=r.sent(),console.warn(D),[3,6];case 6:return b.javascript&&I(b.javascript),[2,t({type:"SingleMSISDNSubmissionResult",pin:b.pin,uniqidResult:R,operator:b.operator,redirectUrl:null==b?void 0:b.redirect_to_url},(null==b?void 0:b.userType)?{userType:null==b?void 0:b.userType}:{})]}}))}))}function M(n,i,a,o,s){return e(this,void 0,void 0,(function(){var c,d,u=this;return r(this,(function(l){switch(l.label){case 0:return[4,Promise.all(o.map((function(o){return e(u,void 0,void 0,(function(){var e,c;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,D(n,i,a,t(t({},s),{operator:o}))];case 1:return e=r.sent(),[2,g(t(t({},e),{operator:o}))];case 2:return c=r.sent(),[2,_(c)];case 3:return[2]}}))}))})))];case 1:if(c=l.sent(),d=c.find((function(e){var r;return"left"===e.type&&"AlreadySubscribed"===(null===(r=e.value)||void 0===r?void 0:r.type)})),c.every((function(e){return"left"===e.type})))throw c[0].value;if(d)throw d.value;return[2,{type:"MultiOperatorMSISDNSubmissionResult"}]}}))}))}function T(t,i,a,o){return e(this,void 0,void 0,(function(){var s,c,d,u,l,v,p,f,y,w,_,g,I,b,E,k,U;return r(this,(function(N){switch(N.label){case 0:if(t.hostCountry&&t.hostSlug&&(a.country=t.hostCountry,a.slug=t.hostSlug),s=a.slug,c=a.country,d=a.device,u=t.pac_analytics.visitor.offer,l=o||{},"true"===(null==(v=m(t))?void 0:v.success)&&"1"===v["msisdn-alias"]&&(l["skip-validation"]="1"),p=t.pac_analytics.visitor.rockmanId,!i)throw(f=new Error("Error in submitMSISDN() verify-pin action:\n Pin Cannot Be Empty")).type="InvalidPIN",f;return y=""!==R?"&mcpUniqid=".concat(R):"",w=void 0!==t&&t.tid?t.tid:"",_=t.location.search.substr(1)||"",[4,P({window:t,country:c,slug:s,device:d,offer:u,rockmanId:p,pin:i,extraParams:l,uniqid:y,evinaTid:w,search:_})];case 1:if(!1!==(g=N.sent()).success)return[3,2];switch(I=void 0,!0){case g.message.includes("pin does not match"):I="InvalidPIN";break;case g.message.includes("mcp blocked"):I="SessionBlocked";break;case g.message.includes("expired_pin"):I="ExpiredPIN";break;case g.message.includes("insufficient_balance"):I="InsufficientBalance";break;case g.message.includes("duplicated_request"):I="DuplicatedRequest";break;case g.message.includes("ALREADY SUBSCRIBED"):I="AlreadySubscribed";break;default:I="InvalidPIN"}throw(k=new Error("Error in submitMSISDN() verify-pin action:\n".concat(g.message))).type=I,console.error(k),k;case 2:return!0!==g.async?[3,4]:g.product_url&&""!==g.product_url&&"es"===(null==c?void 0:c.toLowerCase())?[2,{gatewayRedirectUrl:g.product_url}]:(b=function(){return function(t){var i=t.window,a=t.country,o=t.slug,s=t.device,c=t.offer,d=t.rockmanId;return e(void 0,void 0,void 0,(function(){var e,t,u,l;return r(this,(function(r){return e={action:"check-subscription",country:S(a),slug:o,device:s,offerId:c,rockman_id:d},t=Object.entries(e).filter((function(e){var r=n(e,2);return r[0],null!=r[1]})).map((function(e){var r=n(e,2),t=r[0],i=r[1];return"".concat(t,"=").concat(encodeURIComponent(i))})).join("&"),u=i.DEV_BASE_URL||"",l="".concat(u,"/tallyman/v1/?").concat(t),[2,fetch(l).then((function(e){return e.json()}))]}))}))}({window:t,country:c,slug:s,device:d,offer:u,rockmanId:p,extraParams:o})},[4,h(b,100,(function(e){return e.success||"invalid_pin"===e.message}),0)]);case 3:if(!0===(E=N.sent()).success)return U="ALREADY SUBSCRIBED"===g.message,[2,{productUrl:E.product_url||null,isAlreadySubscribed:U}];throw(k=new Error("Error in submitMSISDN() verify-pin action:\n".concat(E.message))).type="InvalidPIN",k.message=E.message,k;case 4:return U="ALREADY SUBSCRIBED"===g.message,[2,{productUrl:g.product_url||null,isAlreadySubscribed:U}]}}))}))}var F={currentState:{type:"PINEntry",result:o(),data:{actualPIN:"",msisdn:"",operator:"",pinMaxLength:4}}},A={currentState:{type:"PINEntry",result:c({finalUrl:"/product"}),data:{actualPIN:"",msisdn:"",operator:"",pinMaxLength:4}}},B={currentState:{type:"MSISDNEntry",result:d({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},L={currentState:{type:"MSISDNEntry",result:o()}},q=function(e){var r,n=m(e),t=new Event("onPinPage"),i=n.ui_show_pin_entry&&"1"===n.ui_show_pin_entry||n["show-pin-entry"]&&"1"===n["show-pin-entry"],a=n["show-thank-you"]&&"1"===n["show-thank-you"],s="1"===(null==n?void 0:n.show_custom_error),u=(null!==(r=null==n?void 0:n.ui_error_message)&&void 0!==r?r:"").replace(/\+/g,"%20"),l=decodeURIComponent(u),v={currentState:{type:"MSISDNEntry",result:d({errorType:{"This mobile number is blacklisted":"BlacklistedNumber"}[l]||"SomethingWentWrong",error:l})}},p={currentState:{type:"PINEntry",result:c({finalUrl:(null==n?void 0:n.product_url)||""}),data:{msisdn:(null==n?void 0:n.msisdn)||"",operator:(null==n?void 0:n.operator)||""}}},f={currentState:{type:"PINEntry",result:o(),data:{msisdn:(null==n?void 0:n.msisdn)||"",operator:(null==n?void 0:n.operator)||""}}};if(i)return null==e||e.dispatchEvent(t),f;if(a)return p;if(s)return v;if(!n["mock-flow"])return L;switch(n["current-state"]){case"msisdn-failure-state":return B;case"pin-state":return null==e||e.dispatchEvent(t),F;case"completed-state":return A;default:return console.error("Mock Flow not supported"),L}}(window),x=i("pinFlow/submitMSISDNAction",(function(n,i){var a=n.window,c=n.msisdn,d=n.extraParams,u=i.getState,p=i.dispatch,S=i.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,n,i,_,g,h,I,b,E,k,U,N,P,j,R,D,M,T,F,A,B,L,q,x,O,V,W;return r(this,(function(r){switch(r.label){case 0:if(e=u(),!(null===(T=null===(M=null===(D=null==e?void 0:e.strategy)||void 0===D?void 0:D.currentState)||void 0===M?void 0:M.data)||void 0===T?void 0:T.config))return[2,S({errorType:"UnexpectedState"})];n=e.strategy.currentState.data,i=n.config,_=n.isHeaderEnrichmentSuccess,g=null===(F=e.pinFlow)||void 0===F?void 0:F.currentState,h=m(a),r.label=1;case 1:return r.trys.push([1,7,,8]),"ps"===(null==i?void 0:i.country.toLowerCase())&&(null==i?void 0:i.slug.includes("shemaroo"))&&"+970"===Y(null==i?void 0:i.country,c)&&(c=c.replace("970","972")),"tpay"!==(null==(I=null===(B=null===(A=null==a?void 0:a.pac_analytics)||void 0===A?void 0:A.visitor)||void 0===B?void 0:B.genericJsLinkResult)?void 0:I.gateway)||(null==h?void 0:h.ui_show_pin_entry)?[3,3]:(w.advancedInFlow("tallyman.v1-pin","msisdn-submitted",{msisdn:c}),[4,C(a,i,c)]);case 2:if(r.sent(),a.msisdn=c,a.callConfirm)try{return a.callConfirm(),[2,t(t({},g),{type:"MSISDNEntry",result:s()})]}catch(e){return b="Confirm function failed",w.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:c,errorType:"TPayConfirmError",error:(null==e?void 0:e.toString())||"Error calling window.callConfirm function",message:e.message}),[2,S({errorType:"TPayConfirmError",error:b,message:b})]}return E="Confirm function not found",w.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:c,errorType:"TPayConfirmError",error:E,message:E}),[2,S({errorType:"TPayConfirmError",error:E,message:E})];case 3:return w.advancedInFlow("tallyman.v1-pin","msisdn-submitted",{msisdn:c}),[4,C(a,i,c)];case 4:return k=r.sent(),w.advancedInFlow("tallyman.v1-pin","msisdn-submission-success",{msisdn:c}),"SingleMSISDNSubmissionResult"===k.type&&k.redirectUrl?(w.advancedInFlow("tallyman.v1-pin","msisdn-submission-success",{msisdn:c}),w.customEvent("Flow","advance-auto","msisdn-redirect",{redirectUrl:k.redirectUrl}),a.location.href=k.redirectUrl,[2]):d&&d.storeMsisdn&&"true"===d.storeMsisdn?[4,y(c).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:r.sent(),r.label=6;case 6:return U="SingleMSISDNSubmissionResult"===(null==k?void 0:k.type)?null==k?void 0:k.operator:"",N={SA_MOBILY:6,SA_STC:4,SA_ZAIN:4},P=new Event("onPinPage"),null==a||a.dispatchEvent(P),[2,t(t({},g),{type:"PINEntry",result:o(),data:t({actualPIN:"SingleMSISDNSubmissionResult"===k.type?k.pin:null,msisdn:c,operator:U,pinMaxLength:""!==U&&N[U]?N[U]:null,isHeaderEnrichmentSuccess:_},"SingleMSISDNSubmissionResult"===k.type&&(null==k?void 0:k.userType)?{userType:k.userType}:{})})];case 7:return j=r.sent(),console.warn(j),R=j.type,w.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:c,errorType:R,error:j.toString(),message:j.message,productUrl:j.productUrl}),_&&p(l({type:v.PIN,data:{isHeaderEnrichmentSuccess:!1,config:i}})),f.includes(R)&&(null===(q=null===(L=null==a?void 0:a.pac_analytics)||void 0===L?void 0:L.visitor)||void 0===q?void 0:q.waterFallRedirectUrl)&&(w.customEvent("tallyman.v1-pin","redirect","waterfall-redirect",{redirect_url:null===(O=null===(x=null==a?void 0:a.pac_analytics)||void 0===x?void 0:x.visitor)||void 0===O?void 0:O.waterFallRedirectUrl,errorType:R}),a.location.href=null===(W=null===(V=null==a?void 0:a.pac_analytics)||void 0===V?void 0:V.visitor)||void 0===W?void 0:W.waterFallRedirectUrl),[2,S({errorType:R,error:j.toString(),message:j.message,productUrl:j.productUrl})];case 8:return[2]}}))}))})),O=i("pinFlow/submitPinAction",(function(n,i){var a=n.window,o=n.msisdn,s=n.pin,d=n.extraParams,u=i.getState,l=i.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,n,i,v,p,f,m,S,_,g;return r(this,(function(r){switch(r.label){case 0:if(e=u(),!(null===(_=null===(S=null===(m=null==e?void 0:e.strategy)||void 0===m?void 0:m.currentState)||void 0===S?void 0:S.data)||void 0===_?void 0:_.config))return[2,l({errorType:"UnexpectedState"})];n=e.strategy.currentState.data.config,i=null===(g=e.pinFlow)||void 0===g?void 0:g.currentState,r.label=1;case 1:return r.trys.push([1,5,,6]),w.advancedInFlow("tallyman.v1-pin","pin-submitted",{msisdn:o,pin:s}),[4,T(a,s,n,d)];case 2:return v=r.sent(),w.advancedInFlow("tallyman.v1-pin","pin-submission-success",{msisdn:o,pin:s,finalUrl:v.productUrl}),v.gatewayRedirectUrl&&""!==v.gatewayRedirectUrl&&(w.advancedInFlow("tallyman.v1-pin","gateway-redirect",{msisdn:o,pin:s,gatewayRedirectUrl:v.gatewayRedirectUrl}),a.location.href=v.gatewayRedirectUrl),d&&d.storeMsisdn&&"true"===d.storeMsisdn?[4,y(o).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:r.sent(),r.label=4;case 4:return[2,t(t({},i),{type:"PINEntry",result:c({finalUrl:v.productUrl,isAlreadySubscribed:v.isAlreadySubscribed||!1})})];case 5:switch(p=r.sent(),console.warn(p),f=void 0,p.type){case"AlreadySubscribed":f="AlreadySubscribed";break;case"InvalidPIN":f="InvalidPIN";break;case"SessionBlocked":f="SessionBlocked";break;case"ExpiredPIN":f="ExpiredPIN";break;case"InsufficientBalance":f="InsufficientBalance";break;case"DuplicatedRequest":f="DuplicatedRequest";break;default:f="UnknownError"}return w.recedeInFlow("tallyman.v1-pin","pin-submission-failure",{msisdn:o,pin:s,errorType:f,error:p.toString(),message:p.message,productUrl:p.productUrl}),setTimeout((function(){p.productUrl&&(a.location.href=p.productUrl)}),0),[2,l({errorType:f,error:p.toString(),message:p.message,productUrl:p.productUrl})];case 6:return[2]}}))}))})),V=i("pinFlow/backToStartAction",(function(n,t){var i=t.getState,a=t.dispatch,s=t.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,n,t,c;return r(this,(function(r){try{if(w.recedeInFlow("tallyman.v1-pin","pin-state","requested to change phone number"),e=i(),!(null===(c=null===(t=null===(n=null==e?void 0:e.strategy)||void 0===n?void 0:n.currentState)||void 0===t?void 0:t.data)||void 0===c?void 0:c.config))return[2,s({errorType:"UnexpectedState"})];if("pin"===e.strategy.currentState.data.strategy)return[2,{type:"MSISDNEntry",result:o()}];a(u())}catch(e){return console.warn(e),[2,s({errorType:"UnexpectedState"})]}return[2]}))}))})),W={PS:"970"},Y=function(e,r){if(!e||!r)return"";var n=e.toUpperCase(),t=W[n];return t?"+".concat(t):(console.error("Country code not found for",e),"")},z=a({name:"pinFlow",initialState:q,reducers:{},extraReducers:function(e){e.addCase(x.pending,(function(e){var r,n,t,i,a,o,c;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===(i=null===(t=null===window||void 0===window?void 0:window.location)||void 0===t?void 0:t.search)||void 0===i?void 0:i.includes("show-pin-entry"))&&"tpay"===(null===(c=null===(o=null===(a=null===window||void 0===window?void 0:window.pac_analytics)||void 0===a?void 0:a.visitor)||void 0===o?void 0:o.genericJsLinkResult)||void 0===c?void 0:c.gateway)?"PINEntry":"MSISDNEntry",result:s(),data:e.currentState.data}})).addCase(x.fulfilled,(function(e,r){e.currentState=r.payload})).addCase(x.rejected,(function(e,r){var n,t,i,a,o,s,c;e.currentState={type:(null===(t=null===(n=null===window||void 0===window?void 0:window.location)||void 0===n?void 0:n.search)||void 0===t?void 0:t.includes("ui_show_pin_entry"))||(null===(a=null===(i=null===window||void 0===window?void 0:window.location)||void 0===i?void 0:i.search)||void 0===a?void 0:a.includes("show-pin-entry"))&&"tpay"===(null===(c=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===c?void 0:c.gateway)?"PINEntry":"MSISDNEntry",result:d(r.payload),data:e.currentState.data}})).addCase(O.pending,(function(e){e.currentState={type:"PINEntry",result:s(),data:e.currentState.data}})).addCase(O.fulfilled,(function(e,r){e.currentState=r.payload})).addCase(O.rejected,(function(e,r){e.currentState={type:"PINEntry",result:d(r.payload),data:e.currentState.data}})).addCase(V.fulfilled,(function(e,r){e.currentState=r.payload}))}}),H=z.reducer;z.actions;export{V as backToStartAction,k as pinFlowMatch,H as pinFlowReducer,x as submitMSISDNAction,O as submitPinAction,E 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{r as v}from"./normaliseErrorCode-CcFWuZeI.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-rB39lw_a.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 F="SingleMSISDNSubmissionResult"===(null==P?void 0:P.type)?null==P?void 0:P.operator:"",_={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:F,pinMaxLength:""!==F&&_[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]}}))}))})),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(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]}))}))})),_={PS:"970"},T=function(e,t){if(!e||!t)return"";var r=e.toUpperCase(),n=_[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(F.fulfilled,(function(e,t){e.currentState=t.payload}))}}),C=M.reducer;M.actions;export{F as backToStartAction,g as pinFlowMatch,C as pinFlowReducer,U as submitMSISDNAction,P as submitPinAction,S as usePinFlowState};
2
2
  //# sourceMappingURL=pinFlow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pinFlow.js","sources":["../src/flows/pinFlow/hooks/usePinFlowState.ts","../src/flows/pinFlow/match.ts","../src/sharedApi/checkSubscription.ts","../src/flows/pinFlow/api.ts","../src/flows/pinFlow/main.ts","../src/flows/pinFlow/pinFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const usePinFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.pinFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n IMsisdnSumbitNextData,\n MSISDNEntryFailure,\n MSISDNEntrySuccess,\n PINEntryFailure,\n PINEntrySuccess,\n PinFlowCurrentState\n} from '../../sharedFlowTypes/PinTypes';\n\nfunction pinFlowMatch<R>({\n msisdnEntry,\n pinEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n pinEntry: (rds: RDS.RemoteDataState<PINEntryFailure, PINEntrySuccess>, nextData: IMsisdnSumbitNextData) => R;\n}): (state: PinFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n case 'PINEntry':\n return pinEntry(state.result, state.data);\n default:\n throw new Error('Invalid State');\n }\n };\n}\n\nexport { pinFlowMatch };\n","import { ICheckSubscriptionResult } from '../common-types/ICheckSubscriptionResult';\nimport { IHash } from '../common-types/IHash';\nimport { bupperizeCountry } from '../utilities/bupperizeCountry';\n\nconst checkSubscription = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n extraParams?: IHash; // Marked as optional if currently unused\n}): Promise<ICheckSubscriptionResult> => {\n const params = {\n action: 'check-subscription',\n country: bupperizeCountry(country),\n slug,\n device,\n offerId: offer,\n rockman_id: rockmanId\n };\n\n const queryString = Object.entries(params)\n .filter(([_, value]) => value !== undefined && value !== null)\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\n .join('&');\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}`;\n return fetch(url).then((response) => response.json());\n};\n\nexport { checkSubscription };\n","import { IHash, IMcpShieldResult, IMSISDNSubmissionResult, IPINSubmissionResult } from '../../sharedFlowTypes/PinTypes';\nimport { bupperizeCountry } from '../../utilities/bupperizeCountry';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\n\nconst checkIsCleanTraffic = (country: string): string => {\n if (country === 'be') {\n if (typeof window !== 'undefined' && window.shouldBlock === true) {\n return '&is-clean-traffic=false';\n }\n return '&is-clean-traffic=true';\n }\n return '';\n};\nconst triggerPin = async ({\n window,\n country,\n slug,\n device,\n offer,\n msisdn,\n rockmanId,\n extraParams,\n search,\n uniqid,\n evinaTid\n}: {\n window?: Window;\n country: string;\n slug: string;\n device: 'smart' | 'feature';\n offer: string;\n msisdn: string;\n rockmanId: string;\n extraParams: IHash;\n search: string;\n uniqid?: string;\n evinaTid?: string;\n}): Promise<IMSISDNSubmissionResult> => {\n const cleanTrafficString = checkIsCleanTraffic(country);\n const extraParamsQs = `&${Object.keys(extraParams)\n .map((k) => (extraParams[k] ? `${k}=${extraParams[k]}` : ''))\n .filter(Boolean)\n .join('&')}`;\n\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n\n // Base parameters object\n const params = {\n action: 'trigger-pin',\n country,\n slug,\n device,\n offerId: offer,\n msisdn,\n rockman_id: rockmanId,\n sam_evina_tid: evinaTid,\n page: encodeURIComponent(window?.location?.href),\n language_code: window.languageCode || '',\n partner_transaction_id: window.partner_transaction_id || '',\n partner_timestamp: window.partner_timestamp || '',\n partner_cid: window.partner_cid || '',\n uniqid: uniqid || '',\n\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n zain_antifraud_id: window.zain_antifraud_id || '',\n korek_antifraud_id: window.korek_antifraud_id || '',\n\n ip_address: window.pac_analytics.visitor.ip || '',\n ip_range_operator: window.pac_analytics.visitor.ipRangeOperator || ''\n };\n\n // Convert params object to query string\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${cleanTrafficString}${extraParamsQs}${search ? `&${search}` : ''}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nconst verifyPin = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n pin,\n extraParams,\n uniqid,\n evinaTid,\n search\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n pin: string;\n extraParams: IHash;\n uniqid: string;\n evinaTid: string;\n search: string;\n}): Promise<IPINSubmissionResult> => {\n const cleanTrafficString = checkIsCleanTraffic(country);\n const extraParamsQs = `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n // Base parameters object\n const params = {\n action: 'verify-pin',\n country: bupperizeCountry(country),\n slug,\n device,\n offerId: offer,\n rockman_id: rockmanId,\n pin,\n page: encodeURIComponent(window?.location?.href),\n language_code: window.languageCode || '',\n ClickID: window.antifraud_click_id || '',\n partner_cid: window.partner_cid || '',\n sam_evina_tid: evinaTid,\n uniqid,\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id: window.antifraud_id || '',\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n zain_antifraud_id: window.zain_antifraud_id || '',\n korek_antifraud_id: window.korek_antifraud_id || ''\n };\n\n // Convert params object to query string\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${cleanTrafficString}${extraParamsQs}${search ? `&${search}` : ''}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nconst mcpShield = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n operator,\n uniqid\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n operator?: string;\n uniqid?: string;\n}): Promise<IMcpShieldResult> => {\n const pageUrl = window.location.href;\n const ipAdd = window.pac_analytics.visitor.ip;\n\n const params = new URLSearchParams({\n action: 'mcp-shield',\n country,\n slug,\n device,\n offerId: offer.toString(),\n rockman_id: rockmanId,\n client_lpu: pageUrl,\n ...(operator && { operator }),\n ...(uniqid && { uniqid })\n });\n\n // Conditionally add client_ip if it exists\n if (ipAdd) {\n params.append('client_ip', ipAdd);\n }\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${params.toString()}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nexport { triggerPin, verifyPin, mcpShield };\n","import { ICheckSubscriptionResult } from '../../common-types/ICheckSubscriptionResult';\nimport { IError } from '../../common-types/IError';\nimport { checkSubscription } from '../../sharedApi/checkSubscription';\nimport {\n IHash,\n IMcpShieldResult,\n IMSISDNSubmissionResult,\n IPINSubmissionResult,\n MultiOperatorMSISDNSubmissionResult,\n SingleMSISDNSubmissionResult\n} from '../../sharedFlowTypes/PinTypes';\nimport { IConfig, IStrategyIDentifyUserResult } from '../../sharedFlowTypes/StrategyTypes';\nimport { left, loop, right } from '../../utilities/helpers';\nimport { loadScriptInnerHtml } from '../../utilities/loadScriptInnerHtml';\nimport { normaliseErrorCode } from '../../utilities/normaliseErrorCode';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { mcpShield, triggerPin, verifyPin } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: IHash\n): Promise<SingleMSISDNSubmissionResult | MultiOperatorMSISDNSubmissionResult> {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const config: IConfig = { offer: window.pac_analytics.visitor.offer, ...(maybeConfig || {}) };\n if (config.automaticallySubmitAllOperators === true && !!config.operators && config.operators.length > 0) {\n return submitMSISDNForMultipleOperators(window, config, internationalMSISDN, config.operators, extraParams);\n }\n return submitMSISDNOnce(window, config, internationalMSISDN, extraParams);\n}\n\nlet uniqidResult = '';\n// eslint-disable-next-line consistent-return\nexport async function loadMcpShield(window: Window, config: IConfig): Promise<IMcpShieldResult> {\n if (config) {\n const { slug, country, device } = config;\n\n const { offer } = window.pac_analytics.visitor;\n const { rockmanId } = window.pac_analytics.visitor;\n\n try {\n const mcpShieldResult: IMcpShieldResult = await mcpShield({ window, country, slug, device, offer, rockmanId });\n if (mcpShieldResult.success === false) {\n console.warn(mcpShieldResult.message);\n } else {\n loadScriptInnerHtml(mcpShieldResult.source);\n uniqidResult = mcpShieldResult.uniqid;\n return mcpShieldResult;\n }\n } catch (err) {\n console.warn(err);\n }\n }\n}\n\nasync function submitMSISDNOnce(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: IHash\n): Promise<SingleMSISDNSubmissionResult> {\n if (!internationalMSISDN) {\n const submissionError = new Error(`Error in submitMSISDN() trigger-pin action`) as IError & { type: string };\n submissionError.type = 'InvalidMSISDN';\n throw submissionError;\n }\n const newExtraParams = extraParams || {};\n let isSkipValidation = false;\n const searchObj = searchToObject(window) as IStrategyIDentifyUserResult;\n // @ts-ignore\n if ((searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') || window.skip_validation === true) {\n // Search param is set to 1 for header enrichment when the msisdn is masked\n newExtraParams['skip-validation'] = '1';\n }\n\n if (newExtraParams['skip-validation'] === '1') {\n isSkipValidation = true;\n }\n\n const msisdn = isSkipValidation ? internationalMSISDN || window.msisdn : internationalMSISDN.match(/\\d+/gi).join(''); // tallyman API expects international msisdn without any special character\n const { rockmanId } = window.pac_analytics.visitor;\n\n const { slug, country, device, offer } = config;\n\n const search = window.location.search.substr(1) || '';\n const uniqid = !!uniqidResult && uniqidResult !== '' ? `&mcpUniqid=${uniqidResult}` : '';\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const result: IMSISDNSubmissionResult = await triggerPin({\n window,\n country,\n slug,\n device,\n offer,\n msisdn,\n rockmanId,\n extraParams: newExtraParams,\n search,\n uniqid,\n evinaTid\n });\n\n if (result.isContentBlocked === true) {\n window.isContentBlocked = true;\n }\n if (result.success === false) {\n // derive a default type from the message\n const defaultType: string | null = result.message.includes('ALREADY SUBSCRIBED')\n ? 'AlreadySubscribed'\n : /invalid/i.test(result.message)\n ? 'InvalidMsisdn'\n : result.message.includes('duplicated_request')\n ? 'DuplicatedRequest'\n : null;\n\n // prefer an explicit error_code mapping when available\n const type = result.error_code ? normaliseErrorCode(result.error_code) : defaultType;\n\n // build and annotate the Error\n const error = new Error(`Error in submitMSISDN() trigger-pin action:\\n${result.message}`) as IError & {\n type: string | null;\n productUrl: string;\n };\n\n Object.assign(error, {\n type,\n message: result.message,\n productUrl: result.product_url ?? ''\n });\n\n throw error;\n } else {\n window.operator = result.operator; // currently used on server for KW_STC if present dont call empello for Shemaroo\n const codesWithMcpShied: { [key: string]: { [key: string]: string } } = {\n kw: {\n kw_viva: 'kw_viva'\n },\n k2: {\n k2_viva: 'k2_viva'\n },\n bh: {\n bh_viva: 'bh_viva'\n }\n };\n if (\n country &&\n result.operator &&\n ((codesWithMcpShied[country.toLowerCase()] &&\n codesWithMcpShied[country.toLowerCase()][result.operator.toLowerCase()]) ||\n country.toLowerCase() === 'iq') &&\n !window.isCallBlockApi &&\n !window.Empello // set on server https://www.notion.so/sammedia/KW-Agency-Shemaroo-STC-integration-1a114991683d4af79eb01a4d96789f30\n ) {\n try {\n const mcpShieldResult: IMcpShieldResult = await mcpShield({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n operator: result.operator,\n uniqid\n });\n if (mcpShieldResult.success === false) {\n console.warn(mcpShieldResult.message);\n } else {\n loadScriptInnerHtml(mcpShieldResult.source);\n uniqidResult = mcpShieldResult.uniqid;\n }\n } catch (err) {\n console.warn(err);\n }\n }\n\n if (result.javascript) {\n loadScriptInnerHtml(result.javascript);\n }\n\n return {\n type: 'SingleMSISDNSubmissionResult',\n pin: result.pin,\n uniqidResult,\n operator: result.operator,\n redirectUrl: result?.redirect_to_url, // For pin redirect empello\n ...(result?.userType ? { userType: result?.userType } : {}) // For Peru user plan if prepaid or postpaid\n };\n }\n}\n\nasync function submitMSISDNForMultipleOperators(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n operators: string[],\n extraParams?: IHash\n): Promise<MultiOperatorMSISDNSubmissionResult> {\n const results = await Promise.all(\n operators.map(async (o) => {\n try {\n const singleResult = await submitMSISDNOnce(window, config, internationalMSISDN, {\n ...extraParams,\n operator: o\n });\n return right({ ...singleResult, operator: o });\n } catch (error) {\n return left(error);\n }\n })\n );\n\n const alreadySubscribed = results.find((r: any) => r.type === 'left' && r.value?.type === 'AlreadySubscribed');\n\n if (results.every((r) => r.type === 'left')) {\n // no submission worked\n throw results[0].value;\n } else if (alreadySubscribed) {\n throw alreadySubscribed.value;\n } else {\n return {\n type: 'MultiOperatorMSISDNSubmissionResult'\n };\n }\n}\n\nexport async function submitPIN(\n window: Window,\n pin: string,\n config: IConfig,\n extraParams: IHash\n): Promise<{ productUrl?: string; isAlreadySubscribed?: boolean; gatewayRedirectUrl?: string }> {\n if (window.hostCountry && window.hostSlug) {\n config.country = window.hostCountry;\n config.slug = window.hostSlug;\n }\n const { slug, country, device } = config;\n const { offer } = window.pac_analytics.visitor;\n\n const newExtraParams = extraParams || {};\n const searchObj = searchToObject(window) as any;\n if (searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') {\n newExtraParams['skip-validation'] = '1';\n }\n\n const { rockmanId } = window.pac_analytics.visitor;\n\n if (!pin) {\n const emptyPinError = new Error(`Error in submitMSISDN() verify-pin action:\\n Pin Cannot Be Empty`) as IError & {\n type: string;\n };\n emptyPinError.type = 'InvalidPIN';\n throw emptyPinError;\n }\n const uniqid = uniqidResult !== '' ? `&mcpUniqid=${uniqidResult}` : '';\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n const search = window.location.search.substr(1) || '';\n\n const pinResult: IPINSubmissionResult = await verifyPin({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n pin,\n extraParams: newExtraParams,\n uniqid,\n evinaTid,\n search\n });\n if (pinResult.success === false) {\n let errorType: string;\n\n switch (true) {\n case pinResult.message.includes('pin does not match'):\n errorType = 'InvalidPIN';\n break;\n case pinResult.message.includes('mcp blocked'):\n errorType = 'SessionBlocked';\n break;\n case pinResult.message.includes('expired_pin'):\n errorType = 'ExpiredPIN';\n break;\n case pinResult.message.includes('insufficient_balance'):\n errorType = 'InsufficientBalance';\n break;\n case pinResult.message.includes('duplicated_request'):\n errorType = 'DuplicatedRequest';\n break;\n case pinResult.message.includes('ALREADY SUBSCRIBED'):\n errorType = 'AlreadySubscribed';\n break;\n default:\n errorType = 'InvalidPIN';\n }\n\n const pinError = new Error(`Error in submitMSISDN() verify-pin action:\\n${pinResult.message}`) as IError & {\n type: string;\n };\n pinError.type = errorType;\n console.error(pinError);\n throw pinError;\n } else if (pinResult.async === true) {\n // Needed for ES https://www.notion.so/sammedia/ES-OnMobile-Movistar-Direct-Ouisys-Integration-XR-Academy-ca60b176b0ea40a7b170e5d9e7deb491\n if (pinResult.product_url && pinResult.product_url !== '' && country?.toLowerCase() === 'es') {\n return { gatewayRedirectUrl: pinResult.product_url };\n }\n const check: () => Promise<ICheckSubscriptionResult> = () =>\n checkSubscription({ window, country, slug, device, offer, rockmanId, extraParams });\n\n const checkResult: ICheckSubscriptionResult = await loop(\n check,\n 100,\n (r) => r.success || r.message === 'invalid_pin',\n 0\n );\n if (checkResult.success === true) {\n const isAlreadySubscribed = pinResult.message === 'ALREADY SUBSCRIBED';\n return { productUrl: checkResult.product_url || null, isAlreadySubscribed };\n }\n const pinError = new Error(`Error in submitMSISDN() verify-pin action:\\n${checkResult.message}`) as IError & {\n type: string;\n };\n pinError.type = 'InvalidPIN';\n\n pinError.message = checkResult.message;\n\n throw pinError;\n } else {\n const isAlreadySubscribed = pinResult.message === 'ALREADY SUBSCRIBED';\n return { productUrl: pinResult.product_url || null, isAlreadySubscribed };\n }\n}\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n IHash,\n 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","checkIsCleanTraffic","country","window","shouldBlock","triggerPin","slug","device","offer","msisdn","rockmanId","extraParams","search","uniqid","evinaTid","cleanTrafficString","extraParamsQs","concat","Object","keys","map","k","filter","Boolean","join","cleanSearchParams","params","action","offerId","rockman_id","sam_evina_tid","page","encodeURIComponent","_b","location","href","language_code","languageCode","partner_transaction_id","partner_timestamp","partner_cid","antifraud_id","antifraud_id_js_code","antifraud_id_js_link","zain_antifraud_id","korek_antifraud_id","ip_address","pac_analytics","visitor","ip","ip_range_operator","ipRangeOperator","queryString","entries","__read","key","value","host","DEV_BASE_URL","url","fetch","then","x","json","verifyPin","pin","bupperizeCountry","ClickID","antifraud_click_id","mcpShield","operator","pageUrl","ipAdd","URLSearchParams","__assign","toString","client_lpu","append","submitMSISDN","maybeConfig","internationalMSISDN","config","automaticallySubmitAllOperators","operators","length","submitMSISDNForMultipleOperators","submitMSISDNOnce","uniqidResult","submissionError","newExtraParams","isSkipValidation","searchObj","searchToObject","success","skip_validation","match","substr","tid","sent","isContentBlocked","defaultType","message","includes","test","error_code","normaliseErrorCode","error","assign","productUrl","product_url","codesWithMcpShied","kw","kw_viva","k2","k2_viva","bh","bh_viva","toLowerCase","isCallBlockApi","Empello","mcpShieldResult","console","warn","loadScriptInnerHtml","source","err_2","javascript","redirectUrl","redirect_to_url","userType","Promise","all","o","__awaiter","_this","singleResult","right","left","error_1","results","alreadySubscribed","find","r","every","submitPIN","hostCountry","hostSlug","emptyPinError","pinResult","errorType","pinError","async","gatewayRedirectUrl","check","response","checkSubscription","loop","checkResult","isAlreadySubscribed","mockedPINState","RDS.NothingYet","actualPIN","pinMaxLength","mockedCompletedState","RDS.Success","finalUrl","mockedMSISDNEntryFailure","RDS.Failure","defaultInitialState","initialState","pinPageEvent","Event","isPinEntryStep","ui_show_pin_entry","isShowThankYouStep","isShowCustomError","show_custom_error","normalizedParam","ui_error_message","replace","errorMsg","decodeURIComponent","msisdnError","thankYouState","initalPinEntryState","dispatchEvent","setInitialState","submitMSISDNAction","createAsyncThunk","getState","dispatch","rejectWithValue","_f","_d","strategy","_e","_c","isHeaderEnrichmentSuccess","pinFlowCurrentState","_g","getInputValuePrefix","jsLinkResult","_j","_h","genericJsLinkResult","gateway","tracker","advancedInFlow","_r","callConfirm","RDS.Loading","ex","errorMsg_1","recedeInFlow","msisdnSubmissionResult","customEvent","storeMsisdn","catch","pinMaxLengthByOp","SA_MOBILY","SA_STC","SA_ZAIN","ex_1","setStrategyExtraData","PossibleTypes","PIN","redirectErrorTypes","_k","_l","waterFallRedirectUrl","redirect_url","_o","_m","_q","submitPinAction","ex_2","setTimeout","backToStartAction","_","identifyStrategy","countryCodes","PS","international","normalizedCountry","toUpperCase","countryCode","pinFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","fulfilled","payload","rejected","pinFlowReducer","reducer","actions"],"mappings":"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"}
1
+ {"version":3,"file":"pinFlow.js","sources":["../src/flows/pinFlow/hooks/usePinFlowState.ts","../src/flows/pinFlow/match.ts","../src/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,3 +1,3 @@
1
- declare const initTPay: (internationalNumber: string) => Promise<boolean>;
1
+ declare const initTPay: (internationalNumber?: string) => Promise<boolean>;
2
2
 
3
3
  export { initTPay };
package/dist/ussdFlow.js CHANGED
@@ -1,2 +1,2 @@
1
- import{__awaiter as t,__generator as r,__assign as e,__read as n}from"tslib";import{createAsyncThunk as s,createSlice as o}from"@reduxjs/toolkit";import{S as a,L as i,F as c,N as u}from"./RemoteDataState-lcf8PfJd.js";import{checkSubscriptionHander as d}from"./checkSubscriptionHander.js";import{searchToObject as l}from"./searchToObject.js";import{s as m}from"./storeMsisdn-Cjq8_qYH.js";import{t as f}from"./tracker-DaaILhEr.js";import{i as p}from"./strategySlice-BMNt18ck.js";import"./helpers-xPhGBX-B.js";import"./updateUrlWithParams-C6-BX4TY.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-DaAFvpKD.js";import"./api-geirVksI.js";var v=function(t){return t((function(t){return t.ussdFlow.currentState}))};function S(t){var r=t.msisdnEntry;return function(t){return t.type,r(t.result)}}var y=function(s,o,a,i,c,u,d,l,m){return t(void 0,void 0,void 0,(function(){var t,f,p;return r(this,(function(r){return t=new URLSearchParams(e({action:"ussd",slug:o,country:a,msisdn:i,device:c,offerId:u.toString(),rockman_id:d},l&&{search:l})),m&&m.split("&").forEach((function(r){var e=n(r.split("="),2),s=e[0],o=e[1];s&&t.append(s,o)})),f=s.DEV_BASE_URL||"",p="".concat(f,"/tallyman/v1/?").concat(t.toString()),[2,fetch(p).then((function(t){return t.json()}))]}))}))};function h(n,s,o,a){return t(this,void 0,void 0,(function(){var t;return r(this,(function(r){return t=e({offer:n.pac_analytics.visitor.offer},s||{}),[2,w(n,t,o,a)]}))}))}function w(e,n,s,o){return t(this,void 0,void 0,(function(){var t,a,i,c,u,d,l,m,f,p,v;return r(this,(function(r){switch(r.label){case 0:return t=n.slug,a=n.country,i=n.device,c=n.offer,u=e.location.search.substr(1)||"",d=o?"&".concat(Object.keys(o).map((function(t){return"".concat(t,"=").concat(o[t])})).join("&")):"",l=s.match(/\d+/gi).join(""),m=e.pac_analytics.visitor.rockmanId,[4,y(e,t,a,l,i,c,m,u,d)];case 1:if(!1===(f=r.sent()).success)throw p="ALREADY SUBSCRIBED"===f.message?"AlreadySubscribed":"InvalidMSISDN",(v=new Error("".concat(p,":\n").concat(f.message))).type=p,console.error(v),v;return[2,f]}}))}))}var b={currentState:{type:"MSISDNEntry",result:a({keyword:"TEST OK",shortcode:"777"})}},I={currentState:{type:"MSISDNEntry",result:c({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},j={currentState:{type:"MSISDNEntry",result:u()}},E=function(t){var r=l(t);if(!r["mock-flow"])return j;switch(r["current-state"]){case"msisdn-entry-failure-state":return I;case"msisdn-entry-success-state":return b;default:return console.error("Mock Flow not supported"),j}}(window),g=s("ussdFlow/submitMSISDNAction",(function(n,s){var o=n.window,i=n.msisdn,c=n.extraParams,u=s.getState,l=s.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,n,s,p,v;return r(this,(function(r){switch(r.label){case 0:t=u(),n=t.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),f.advancedInFlow("tallyman.v1-ussd","msisdn-submitted",{msisdn:i}),[4,h(o,n,i,c)];case 2:return s=r.sent(),f.advancedInFlow("tallyman.v1-ussd","msisdn-submission-success",{msisdn:i}),c&&c.storeMsisdn&&"true"===c.storeMsisdn?[4,m(i).then((function(t){t&&t.data&&t.data.success?f.customEvent("Flow","advance-auto","msisdn-stored-success"):f.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(t){f.customEvent("Flow","advance-auto","msisdn-stored-error",t)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return d({window:o,flow:"tallyman.v1-ussd",action:"sale",args:{msisdn:i}}),[2,{type:"MSISDNEntry",result:a(e({},s))}];case 5:switch(p=r.sent(),console.warn(p),v=void 0,p.type){case"AlreadySubscribed":v="AlreadySubscribed";break;case"InvalidMSISDN":v="InvalidMSISDN";break;default:v="UnknownError"}return f.recedeInFlow("tallyman.v1-ussd","msisdn-submission-failure",{msisdn:i,errorType:v||"UnknownError"}),[2,l({errorType:v,productUrl:p.productUrl})];case 6:return[2]}}))}))})),M=s("moRedirFlow/backToStartAction",(function(e,n){var s=n.dispatch,o=n.rejectWithValue;return t(void 0,void 0,void 0,(function(){return r(this,(function(t){try{f.recedeInFlow("tallyman.v1-ussd","ussd-state","requested to change phone number"),s(p())}catch(t){return console.warn(t),[2,o({errorType:"UnexpectedState"})]}return[2]}))}))})),D=o({name:"ussdFlow",initialState:E,reducers:{},extraReducers:function(t){t.addCase(g.pending,(function(t){t.currentState={type:"MSISDNEntry",result:i()}})).addCase(g.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(g.rejected,(function(t,r){t.currentState={type:"MSISDNEntry",result:c(r.payload)}}))}}),k=D.reducer;D.actions;export{M as backToStartAction,g as submitMSISDNAction,v as useUssdFlowState,S as ussdFlowMatch,k as ussdFlowReducer};
1
+ import{__awaiter as t,__generator as r,__assign as e,__read as n}from"tslib";import{createAsyncThunk as s,createSlice as o}from"@reduxjs/toolkit";import{S as a,L as i,F as c,N as u}from"./RemoteDataState-lcf8PfJd.js";import{checkSubscriptionHander as d}from"./checkSubscriptionHander.js";import{searchToObject as l}from"./searchToObject.js";import{s as m}from"./storeMsisdn-Cjq8_qYH.js";import{t as f}from"./tracker-DaaILhEr.js";import{i as p}from"./strategySlice-BMNt18ck.js";import"./helpers-CBmogWIZ.js";import"./updateUrlWithParams-C6-BX4TY.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-DaAFvpKD.js";import"./api-geirVksI.js";var v=function(t){return t((function(t){return t.ussdFlow.currentState}))};function S(t){var r=t.msisdnEntry;return function(t){return t.type,r(t.result)}}var y=function(s,o,a,i,c,u,d,l,m){return t(void 0,void 0,void 0,(function(){var t,f,p;return r(this,(function(r){return t=new URLSearchParams(e({action:"ussd",slug:o,country:a,msisdn:i,device:c,offerId:u.toString(),rockman_id:d},l&&{search:l})),m&&m.split("&").forEach((function(r){var e=n(r.split("="),2),s=e[0],o=e[1];s&&t.append(s,o)})),f=s.DEV_BASE_URL||"",p="".concat(f,"/tallyman/v1/?").concat(t.toString()),[2,fetch(p).then((function(t){return t.json()}))]}))}))};function h(n,s,o,a){return t(this,void 0,void 0,(function(){var t;return r(this,(function(r){return t=e({offer:n.pac_analytics.visitor.offer},s||{}),[2,w(n,t,o,a)]}))}))}function w(e,n,s,o){return t(this,void 0,void 0,(function(){var t,a,i,c,u,d,l,m,f,p,v;return r(this,(function(r){switch(r.label){case 0:return t=n.slug,a=n.country,i=n.device,c=n.offer,u=e.location.search.substr(1)||"",d=o?"&".concat(Object.keys(o).map((function(t){return"".concat(t,"=").concat(o[t])})).join("&")):"",l=s.match(/\d+/gi).join(""),m=e.pac_analytics.visitor.rockmanId,[4,y(e,t,a,l,i,c,m,u,d)];case 1:if(!1===(f=r.sent()).success)throw p="ALREADY SUBSCRIBED"===f.message?"AlreadySubscribed":"InvalidMSISDN",(v=new Error("".concat(p,":\n").concat(f.message))).type=p,console.error(v),v;return[2,f]}}))}))}var b={currentState:{type:"MSISDNEntry",result:a({keyword:"TEST OK",shortcode:"777"})}},I={currentState:{type:"MSISDNEntry",result:c({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},j={currentState:{type:"MSISDNEntry",result:u()}},E=function(t){var r=l(t);if(!r["mock-flow"])return j;switch(r["current-state"]){case"msisdn-entry-failure-state":return I;case"msisdn-entry-success-state":return b;default:return console.error("Mock Flow not supported"),j}}(window),g=s("ussdFlow/submitMSISDNAction",(function(n,s){var o=n.window,i=n.msisdn,c=n.extraParams,u=s.getState,l=s.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,n,s,p,v;return r(this,(function(r){switch(r.label){case 0:t=u(),n=t.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),f.advancedInFlow("tallyman.v1-ussd","msisdn-submitted",{msisdn:i}),[4,h(o,n,i,c)];case 2:return s=r.sent(),f.advancedInFlow("tallyman.v1-ussd","msisdn-submission-success",{msisdn:i}),c&&c.storeMsisdn&&"true"===c.storeMsisdn?[4,m(i).then((function(t){t&&t.data&&t.data.success?f.customEvent("Flow","advance-auto","msisdn-stored-success"):f.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(t){f.customEvent("Flow","advance-auto","msisdn-stored-error",t)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return d({window:o,flow:"tallyman.v1-ussd",action:"sale",args:{msisdn:i}}),[2,{type:"MSISDNEntry",result:a(e({},s))}];case 5:switch(p=r.sent(),console.warn(p),v=void 0,p.type){case"AlreadySubscribed":v="AlreadySubscribed";break;case"InvalidMSISDN":v="InvalidMSISDN";break;default:v="UnknownError"}return f.recedeInFlow("tallyman.v1-ussd","msisdn-submission-failure",{msisdn:i,errorType:v||"UnknownError"}),[2,l({errorType:v,productUrl:p.productUrl})];case 6:return[2]}}))}))})),M=s("moRedirFlow/backToStartAction",(function(e,n){var s=n.dispatch,o=n.rejectWithValue;return t(void 0,void 0,void 0,(function(){return r(this,(function(t){try{f.recedeInFlow("tallyman.v1-ussd","ussd-state","requested to change phone number"),s(p())}catch(t){return console.warn(t),[2,o({errorType:"UnexpectedState"})]}return[2]}))}))})),D=o({name:"ussdFlow",initialState:E,reducers:{},extraReducers:function(t){t.addCase(g.pending,(function(t){t.currentState={type:"MSISDNEntry",result:i()}})).addCase(g.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(g.rejected,(function(t,r){t.currentState={type:"MSISDNEntry",result:c(r.payload)}}))}}),k=D.reducer;D.actions;export{M as backToStartAction,g as submitMSISDNAction,v as useUssdFlowState,S as ussdFlowMatch,k as ussdFlowReducer};
2
2
  //# sourceMappingURL=ussdFlow.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ouisys-engine",
3
- "version": "5.1.1",
3
+ "version": "5.1.3",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "directories": "dist dev-tools",