ouisys-engine 5.0.133 → 5.0.134

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/moFlow.js CHANGED
@@ -1,2 +1,2 @@
1
- import{__awaiter as r,__generator as e,__read as t,__assign as n}from"tslib";import{createAsyncThunk as o,createSlice as a}from"@reduxjs/toolkit";import{S as i,L as c,F as s,N as d}from"./RemoteDataState-lcf8PfJd.js";import{searchToObject as u}from"./searchToObject.js";import{s as l}from"./storeMsisdn-Cjq8_qYH.js";import{t as v}from"./tracker-DaaILhEr.js";import{c as m}from"./cleanSearchParams-Dl7ZDlew.js";import{i as f}from"./strategySlice-BMNt18ck.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-DaAFvpKD.js";import"./api-geirVksI.js";var p=function(r){return r((function(r){return r.moFlow.currentState}))};function y(r){var e=r.msisdnEntry;return function(r){return r.type,e(r.result)}}var S=function(n){var o=n.window,a=n.slug,i=n.country,c=n.msisdn,s=n.device,d=n.offer,u=n.rockmanId,l=n.extraParamsQs,v=n.search;return r(void 0,void 0,void 0,(function(){var r,n,f,p,y,S,h;return e(this,(function(e){switch(e.label){case 0:return o.api_ajax_url?[4,fetch(o.api_ajax_url).then((function(r){return r.json()}))]:[3,2];case 1:return n=e.sent(),[3,3];case 2:n=null,e.label=3;case 3:return r=n,v=m(v),f={action:"trigger-message",slug:a,country:i,msisdn:c,device:s,offerId:d,rockman_id:u,page:encodeURIComponent(null===(h=null==o?void 0:o.location)||void 0===h?void 0:h.href),sam_g_token:o.reCaptchaToken||"",language_code:o.languageCode||"",partner_form_action:(null==r?void 0:r.form_action)?encodeURIComponent(null==r?void 0:r.form_action):"",antifraud_id:o.antifraud_id||"",antifraud_id_js_code:o.antifraud_id_js_code||"",antifraud_id_js_link:o.antifraud_id_js_link||""},p=Object.entries(f).filter((function(r){var e=t(r,2);return e[0],e[1]})).map((function(r){var e=t(r,2),n=e[0],o=e[1];return"".concat(n,"=").concat(o)})).join("&"),y=o.DEV_BASE_URL||"",S="".concat(y,"/tallyman/v1/?").concat(p).concat(v?"&".concat(v):"","&").concat(l),[2,fetch(S).then((function(r){return r.json()}))]}}))}))};function h(t,o,a,i){var c,s;return r(this,void 0,void 0,(function(){var r;return e(this,(function(e){return r=n(n({},o||{}),{offer:null===(s=null===(c=t.pac_analytics)||void 0===c?void 0:c.visitor)||void 0===s?void 0:s.offer}),[2,_(t,r,a,i)]}))}))}function _(t,o,a,i){var c;return r(this,void 0,void 0,(function(){var r,s,d,u,l,v,m,f,p,y,h;return e(this,(function(e){switch(e.label){case 0:return r=o.slug,s=o.country,d=o.device,u=o.offer,l=t.location.search.substr(1)||"",v=i?"&".concat(Object.keys(i).map((function(r){return"".concat(r,"=").concat(i[r])})).join("&")):"",m=(null===(c=a.match(/\d+/gi))||void 0===c?void 0:c.join(""))||"",f=t.pac_analytics.visitor.rockmanId,[4,S({window:t,slug:r,country:s,msisdn:m,device:d,offer:u,rockmanId:f,search:l,extraParamsQs:v})];case 1:if(!1===(p=e.sent()).success){if(y="ALREADY SUBSCRIBED"===p.message?"AlreadySubscribed":"InvalidMSISDN",h=new Error("".concat(y,":\n").concat(p.message)),null===p.error_code&&""!==p.error_code&&"40"===p.error_code)y="SalesCapReached";throw h.type=y,h.productUrl=p.product_url?p.product_url:"",console.error(h),h}return[2,n(n({},p),{keyword:p.displayKeyword})]}}))}))}var w={currentState:{type:"MSISDNEntry",result:i({keyword:"TEST OK",shortcode:"777"})}},b={currentState:{type:"MSISDNEntry",result:s({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},j={currentState:{type:"MSISDNEntry",result:d()}},I=function(r){var e=u(r);if(!e["mock-flow"])return j;switch(e["current-state"]){case"msisdn-entry-failure-state":return b;case"msisdn-entry-success-state":return w;default:return console.error("Mock Flow not supported"),j}}(window),g=o("moFlow/submitMSISDNAction",(function(t,o){var a=t.window,c=t.msisdn,s=t.extraParams,d=o.getState,u=o.rejectWithValue;return r(void 0,void 0,void 0,(function(){var r,t,o,m,f,p,y,S,_,w,b,j,I,g;return e(this,(function(e){switch(e.label){case 0:if(r=d(),!(null===(S=null===(y=null===(p=null==r?void 0:r.strategy)||void 0===p?void 0:p.currentState)||void 0===y?void 0:y.data)||void 0===S?void 0:S.config))return[2,u({errorType:"UnexpectedState"})];t=r.strategy.currentState.data.config,e.label=1;case 1:return e.trys.push([1,5,,6]),v.advancedInFlow("tallyman.v1-mo","msisdn-submitted",{msisdn:c}),[4,h(a,t,c,s)];case 2:return o=e.sent(),v.advancedInFlow("tallyman.v1-mo","msisdn-submission-success",{msisdn:c}),s&&s.storeMsisdn&&"true"===s.storeMsisdn?[4,l(c).then((function(r){r&&r.data&&r.data.success?v.customEvent("Flow","advance-auto","msisdn-stored-success"):v.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(r){v.customEvent("Flow","advance-auto","msisdn-stored-error",r)}))]:[3,4];case 3:e.sent(),e.label=4;case 4:return[2,{type:"MSISDNEntry",result:i(n({},o))}];case 5:switch(m=e.sent(),console.warn(m),f=void 0,m.type){case"AlreadySubscribed":f="AlreadySubscribed";break;case"InvalidMSISDN":f="InvalidMSISDN";break;case"SalesCapReached":f="SalesCapReached";break;default:f="UnknownError"}return v.recedeInFlow("tallyman.v1-mo","msisdn-submission-failure",{msisdn:c,errorType:f||"UnknownError"}),"SalesCapReached"===f&&(null===(w=null===(_=null==a?void 0:a.pac_analytics)||void 0===_?void 0:_.visitor)||void 0===w?void 0:w.capRedirectUrl)&&(v.customEvent("tallyman.v1-mo","redirect","chain-redirect",{redirect_url:null===(j=null===(b=null==a?void 0:a.pac_analytics)||void 0===b?void 0:b.visitor)||void 0===j?void 0:j.capRedirectUrl}),a.location.href=null===(g=null===(I=null==a?void 0:a.pac_analytics)||void 0===I?void 0:I.visitor)||void 0===g?void 0:g.capRedirectUrl),[2,u({errorType:f,productUrl:m.productUrl})];case 6:return[2]}}))}))})),k=o("moFlow/backToStartAction",(function(t,n){var o=n.dispatch,a=n.rejectWithValue;return r(void 0,void 0,void 0,(function(){return e(this,(function(r){try{v.recedeInFlow("tallyman.v1-mo","mo-state","requested to change phone number"),o(f())}catch(r){return console.warn(r),[2,a({errorType:"UnexpectedState"})]}return[2]}))}))})),E=a({name:"moFlow",initialState:I,reducers:{},extraReducers:function(r){r.addCase(g.pending,(function(r){r.currentState={type:"MSISDNEntry",result:c()}})).addCase(g.fulfilled,(function(r,e){r.currentState=e.payload})).addCase(g.rejected,(function(r,e){r.currentState={type:"MSISDNEntry",result:s(e.payload)}}))}}),M=E.reducer;E.actions;export{k as backToStartAction,y as moFlowMatch,M as moFlowReducer,g as submitMSISDNAction,p as useMoFlowState};
1
+ import{__awaiter as e,__generator as r,__read as t,__assign as n}from"tslib";import{createAsyncThunk as a,createSlice as i}from"@reduxjs/toolkit";import{S as o,L as s,F as c,N as d}from"./RemoteDataState-lcf8PfJd.js";import{searchToObject as u}from"./searchToObject.js";import{s as l}from"./storeMsisdn-Cjq8_qYH.js";import{t as v}from"./tracker-DaaILhEr.js";import{c as p}from"./cleanSearchParams-Dl7ZDlew.js";import{i as m}from"./strategySlice-BMNt18ck.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-DaAFvpKD.js";import"./api-geirVksI.js";var f=function(e){return e((function(e){return e.moFlow.currentState}))};function S(e){var r=e.msisdnEntry;return function(e){return e.type,r(e.result)}}var b=function(n){var a=n.window,i=n.slug,o=n.country,s=n.msisdn,c=n.device,d=n.offer,u=n.rockmanId,l=n.extraParamsQs,v=n.search;return e(void 0,void 0,void 0,(function(){var e,n,m,f,S,b,y;return r(this,(function(r){switch(r.label){case 0:return a.api_ajax_url?[4,fetch(a.api_ajax_url).then((function(e){return e.json()}))]:[3,2];case 1:return n=r.sent(),[3,3];case 2:n=null,r.label=3;case 3:return e=n,v=p(v),m={action:"trigger-message",slug:i,country:o,msisdn:s,device:c,offerId:d,rockman_id:u,page:encodeURIComponent(null===(y=null==a?void 0:a.location)||void 0===y?void 0:y.href),sam_g_token:a.reCaptchaToken||"",language_code:a.languageCode||"",partner_form_action:(null==e?void 0:e.form_action)?encodeURIComponent(null==e?void 0:e.form_action):"",antifraud_id:a.antifraud_id||"",antifraud_id_js_code:a.antifraud_id_js_code||"",antifraud_id_js_link:a.antifraud_id_js_link||""},f=Object.entries(m).filter((function(e){var r=t(e,2);return r[0],r[1]})).map((function(e){var r=t(e,2),n=r[0],a=r[1];return"".concat(n,"=").concat(a)})).join("&"),S=a.DEV_BASE_URL||"",b="".concat(S,"/tallyman/v1/?").concat(f).concat(v?"&".concat(v):"","&").concat(l),[2,fetch(b).then((function(e){return e.json()}))]}}))}))};function y(t,a,i,o){var s,c;return e(this,void 0,void 0,(function(){var e;return r(this,(function(r){return e=n(n({},a||{}),{offer:null===(c=null===(s=t.pac_analytics)||void 0===s?void 0:s.visitor)||void 0===c?void 0:c.offer}),[2,k(t,e,i,o)]}))}))}function k(t,a,i,o){var s;return e(this,void 0,void 0,(function(){var e,c,d,u,l,v,p,m,f,S,y;return r(this,(function(r){switch(r.label){case 0:return e=a.slug,c=a.country,d=a.device,u=a.offer,l=t.location.search.substr(1)||"",v=o?"&".concat(Object.keys(o).map((function(e){return"".concat(e,"=").concat(o[e])})).join("&")):"",p=(null===(s=i.match(/\d+/gi))||void 0===s?void 0:s.join(""))||"",m=t.pac_analytics.visitor.rockmanId,[4,b({window:t,slug:e,country:c,msisdn:p,device:d,offer:u,rockmanId:m,search:l,extraParamsQs:v})];case 1:if(!1===(f=r.sent()).success){if(S="ALREADY SUBSCRIBED"===f.message?"AlreadySubscribed":"InvalidMSISDN",y=new Error("".concat(S,":\n").concat(f.message)),null===f.error_code&&""!==f.error_code)switch(f.error_code){case"1":S="Success";break;case"2":S="Pending";break;case"10":S="AlreadySubscribed";break;case"11":S="BlacklistedMsisdn";break;case"12":S="DuplicatedRequest";break;case"21":S="ExpiredPin";break;case"22":S="InvalidPin";break;case"23":S="PinLimitExceeded";break;case"24":S="PinGenerationError";break;case"25":S="PinAlreadyUsed";break;case"31":S="InactiveOperator";break;case"32":S="InvalidMsisdn";break;case"33":S="InvalidSubscriptionId";break;case"34":S="NotEligibleMsisdn";break;case"35":S="ValidationIssue";break;case"36":S="InsufficientBalance";break;case"37":S="AntiFraudError";break;case"38":S="VasBlocked";break;case"39":S="AccountSuspended";break;case"40":S="SalesCapReached";break;case"50":S="SubscriptionApiFailure";break;case"75":S="ReSubscriptionBlocked";break;case"76":S="ReLeadBlocked";break;case"99":S="UnspecifiedError"}throw y.type=S,y.productUrl=f.product_url?f.product_url:"",console.error(y),y}return[2,n(n({},f),{keyword:f.displayKeyword})]}}))}))}var I={currentState:{type:"MSISDNEntry",result:o({keyword:"TEST OK",shortcode:"777"})}},h={currentState:{type:"MSISDNEntry",result:c({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},_={currentState:{type:"MSISDNEntry",result:d()}},w=function(e){var r=u(e);if(!r["mock-flow"])return _;switch(r["current-state"]){case"msisdn-entry-failure-state":return h;case"msisdn-entry-success-state":return I;default:return console.error("Mock Flow not supported"),_}}(window),E=a("moFlow/submitMSISDNAction",(function(t,a){var i=t.window,s=t.msisdn,c=t.extraParams,d=a.getState,u=a.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,t,a,p,m,f,S,b,k,I,h,_,w,E,g;return r(this,(function(r){switch(r.label){case 0:if(e=d(),!(null===(b=null===(S=null===(f=null==e?void 0:e.strategy)||void 0===f?void 0:f.currentState)||void 0===S?void 0:S.data)||void 0===b?void 0:b.config))return[2,u({errorType:"UnexpectedState"})];t=e.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),v.advancedInFlow("tallyman.v1-mo","msisdn-submitted",{msisdn:s}),[4,y(i,t,s,c)];case 2:return a=r.sent(),v.advancedInFlow("tallyman.v1-mo","msisdn-submission-success",{msisdn:s}),c&&c.storeMsisdn&&"true"===c.storeMsisdn?[4,l(s).then((function(e){e&&e.data&&e.data.success?v.customEvent("Flow","advance-auto","msisdn-stored-success"):v.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(e){v.customEvent("Flow","advance-auto","msisdn-stored-error",e)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return[2,{type:"MSISDNEntry",result:o(n({},a))}];case 5:return p=r.sent(),console.warn(p),m=null!==(k={AlreadySubscribed:"AlreadySubscribed",InvalidMSISDN:"InvalidMSISDN",SalesCapReached:"SalesCapReached",BlacklistedMsisdn:"BlacklistedMsisdn",DuplicatedRequest:"DuplicatedRequest",InactiveOperator:"InactiveOperator",InvalidSubscriptionId:"InvalidSubscriptionId",NotEligibleMsisdn:"NotEligibleMsisdn",ValidationIssue:"ValidationIssue",InsufficientBalance:"InsufficientBalance",AntiFraudError:"AntiFraudError",VasBlocked:"VasBlocked",AccountSuspended:"AccountSuspended",SubscriptionApiFailure:"SubscriptionApiFailure",ReSubscriptionBlocked:"ReSubscriptionBlocked",ReLeadBlocked:"ReLeadBlocked"}[p.type])&&void 0!==k?k:"UnknownError",v.recedeInFlow("tallyman.v1-mo","msisdn-submission-failure",{msisdn:s,errorType:m||"UnknownError"}),["SalesCapReached","AntiFraudError","BlacklistedMsisdn","VasBlocked","NotEligibleMsisdn"].includes(m)&&(null===(h=null===(I=null==i?void 0:i.pac_analytics)||void 0===I?void 0:I.visitor)||void 0===h?void 0:h.capRedirectUrl)&&(v.customEvent("tallyman.v1-mo","redirect","cap-redirect",{redirect_url:null===(w=null===(_=null==i?void 0:i.pac_analytics)||void 0===_?void 0:_.visitor)||void 0===w?void 0:w.capRedirectUrl,errorType:m}),i.location.href=null===(g=null===(E=null==i?void 0:i.pac_analytics)||void 0===E?void 0:E.visitor)||void 0===g?void 0:g.capRedirectUrl),[2,u({errorType:m,productUrl:p.productUrl})];case 6:return[2]}}))}))})),g=a("moFlow/backToStartAction",(function(t,n){var a=n.dispatch,i=n.rejectWithValue;return e(void 0,void 0,void 0,(function(){return r(this,(function(e){try{v.recedeInFlow("tallyman.v1-mo","mo-state","requested to change phone number"),a(m())}catch(e){return console.warn(e),[2,i({errorType:"UnexpectedState"})]}return[2]}))}))})),j=i({name:"moFlow",initialState:w,reducers:{},extraReducers:function(e){e.addCase(E.pending,(function(e){e.currentState={type:"MSISDNEntry",result:s()}})).addCase(E.fulfilled,(function(e,r){e.currentState=r.payload})).addCase(E.rejected,(function(e,r){e.currentState={type:"MSISDNEntry",result:c(r.payload)}}))}}),M=j.reducer;j.actions;export{g as backToStartAction,S as moFlowMatch,M as moFlowReducer,E as submitMSISDNAction,f as useMoFlowState};
2
2
  //# sourceMappingURL=moFlow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"moFlow.js","sources":["../src/flows/moFlow/hooks/useMoFlowState.ts","../src/flows/moFlow/match.ts","../src/flows/moFlow/api.ts","../src/flows/moFlow/main.ts","../src/flows/moFlow/moFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useMoFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.moFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport { MoFlowCurrentState, MSISDNEntryFailure, MSISDNEntrySuccess } from '../../sharedFlowTypes/MoTypes';\n\nfunction moFlowMatch<R>({\n msisdnEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n}): (state: MoFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n default:\n // TODO - this should be an error or something\n return msisdnEntry(state.result);\n }\n };\n}\n\nexport { moFlowMatch };\n","import { IGoogleReCaptcha, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\n\nconst getGoogleCaptcha = async (\n window: Window,\n country: string,\n slug: string,\n device: string,\n domain: string\n): Promise<IGoogleReCaptcha> => {\n const host = (window as Window).DEV_BASE_URL || '';\n\n return fetch(\n `${host}/tallyman/helper/?action=google-captcha-v3-config&country=${country}&slug=${slug}&device=${device}&domain=${domain}`\n ).then((x) => x.json());\n};\n\nconst triggerMessage = async ({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n extraParamsQs,\n search\n}: {\n window: Window;\n slug: string;\n country: string;\n msisdn: string;\n device: string;\n offer: string;\n rockmanId: string;\n search: string;\n extraParamsQs: string;\n}): Promise<IMSISDNSubmissionResult> => {\n // introduced https://www.notion.so/sammedia/CH-Agency-Bodkinco-Integration-ea1600ad175f451a9d351b6763ad7992\n const partnerAjaxResopnse: {\n form_action: string;\n } = window.api_ajax_url ? await fetch(window.api_ajax_url).then((x) => x.json()) : null;\n\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n const params = {\n action: 'trigger-message',\n slug,\n country,\n msisdn,\n device,\n offerId: offer,\n rockman_id: rockmanId,\n page: encodeURIComponent(window?.location?.href),\n sam_g_token: window.reCaptchaToken || '',\n language_code: window.languageCode || '',\n partner_form_action: partnerAjaxResopnse?.form_action ? encodeURIComponent(partnerAjaxResopnse?.form_action) : '',\n\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || ''\n };\n\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${search ? `&${search}` : ''}&${extraParamsQs}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nexport { getGoogleCaptcha, triggerMessage };\n","import { ICheckSubscriptionResult } from '../../common-types/ICheckSubscriptionResult';\nimport { IError } from '../../common-types/IError';\nimport { IConfig } from '../../common-types/Strategy';\nimport { checkSubscriptionByRockmanIdOnly } from '../../sharedApi/checkSubscriptionByRockmanIdOnly';\nimport { IGoogleReCaptcha, IKeywordShortcode, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\nimport { loop } from '../../utilities/helpers';\nimport loadScriptSrc from '../../utilities/loadScriptSrc';\nimport { getGoogleCaptcha, triggerMessage } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const config: any = { ...(maybeConfig || {}), offer: window.pac_analytics?.visitor?.offer };\n return submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams);\n}\n\nexport const getGoogleReCaptchaConfig = async ({\n window,\n slug,\n country,\n device\n}: IConfig & { window: Window }): Promise<IGoogleReCaptcha> => {\n const domain = window.location.hostname;\n const result: IGoogleReCaptcha = await getGoogleCaptcha(window, country, slug, device, domain);\n if (result.success === true) {\n const srcUrl = `https://www.google.com/recaptcha/api.js?render=${result.site_key}`;\n loadScriptSrc({ url: srcUrl, key: result.site_key, isRecaptcha: true });\n }\n return result;\n};\n\nexport async function submitMSISDNWithConfig(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const { slug, country, device, offer } = config;\n const search = window.location.search.substr(1) || '';\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || '';\n const { rockmanId } = window.pac_analytics.visitor;\n\n const result: IMSISDNSubmissionResult = await triggerMessage({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n search,\n extraParamsQs\n });\n\n if (result.success === false) {\n let type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMSISDN';\n const error = new Error(`${type}:\\n${result.message}`) as IError & { type: string; productUrl: string };\n if (result.error_code === null && result.error_code !== '') {\n switch (result.error_code) {\n case '40':\n type = 'SalesCapReached';\n break;\n default:\n break;\n }\n }\n\n error.type = type;\n error.productUrl = result.product_url ? result.product_url : '';\n\n console.error(error);\n throw error;\n } else {\n return { ...result, keyword: result.displayKeyword }; // based on discussion with Chanaka to avoid confusion in set up on bupper. Click2sms and mo will use display keyword\n }\n}\n\nexport async function moCheckSubscription(window: Window): Promise<string> {\n const { rockmanId } = window.pac_analytics.visitor;\n const check: () => Promise<ICheckSubscriptionResult> = () => checkSubscriptionByRockmanIdOnly({ window, rockmanId });\n\n const checkResult: ICheckSubscriptionResult = await loop(check, 60, (r) => r.success, 0);\n\n if (checkResult.success === true && checkResult.product_url && checkResult.product_url !== '') {\n window.location.href = checkResult.product_url;\n return checkResult.product_url;\n }\n const error = new Error(`${'SubscriptionFailed'}:\\n${checkResult.message}`) as IError & { type: string };\n error.type = 'SubscriptionFailed';\n throw error;\n}\n\n// export const formatSMSLink = (keywordAndShortcode: IKeywordShortcode) =>\n// !!window.pac_analytics.visitor['x-requested-with'] &&\n// window.pac_analytics.visitor['x-requested-with'] !== null &&\n// window.pac_analytics.visitor['x-requested-with'].indexOf('com.facebook') !== -1\n// ? `sms://${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`\n// : typeof navigator !== 'undefined' && (/iPhone/i.test(navigator.userAgent) || /Mac OS/i.test(navigator.userAgent))\n// ? `sms:${keywordAndShortcode.shortcode}&body=${keywordAndShortcode.keyword}`\n// : `sms:${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`;\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoTypes';\nimport { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport { identifyStrategy } from '../strategy';\nimport submitMSISDN from './main';\n\nexport const mockedMSISDNEntrySuccess: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n keyword: 'TEST OK',\n shortcode: '777'\n })\n }\n};\n\nexport const mockedMSISDNEntryFailure: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\nexport interface MoFlowState {\n currentState: {\n type: 'MSISDNEntry';\n result: RDS.RemoteDataState<any, any>; // Replace any with your specific error and data types\n };\n}\n\nconst defaultInitialState: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'msisdn-entry-failure-state':\n return mockedMSISDNEntryFailure;\n case 'msisdn-entry-success-state':\n return mockedMSISDNEntrySuccess;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}\n \n * Calls trigger-message api that returns a short code and key word\n * Sets completed stated\n */\nexport const submitMSISDNAction = createAsyncThunk<\n MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure;\n }\n>('moFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config } = state.strategy.currentState.data;\n\n try {\n // Start Trigger Message\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submitted', { msisdn });\n const keywordAndShortcode = await submitMSISDN(window, config, msisdn, extraParams);\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submission-success', { msisdn });\n // End Trigger Message\n\n // Start Store Msisdn\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End Store Msisdn\n\n return {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({ ...keywordAndShortcode })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: MSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n case 'SalesCapReached':\n errorType = 'SalesCapReached';\n break;\n default:\n errorType = 'UnknownError';\n }\n\n tracker.recedeInFlow('tallyman.v1-mo', 'msisdn-submission-failure', {\n msisdn,\n errorType: errorType || 'UnknownError'\n });\n\n if (errorType === 'SalesCapReached' && window?.pac_analytics?.visitor?.capRedirectUrl) {\n tracker.customEvent('tallyman.v1-mo', 'redirect', 'chain-redirect', {\n redirect_url: window?.pac_analytics?.visitor?.capRedirectUrl\n });\n window.location.href = window?.pac_analytics?.visitor?.capRedirectUrl;\n }\n\n return rejectWithValue({\n errorType,\n productUrl: ex.productUrl\n });\n }\n});\n\nexport const backToStartAction = createAsyncThunk<\n any,\n any,\n {\n rejectValue: any; // Type for rejectWithValue\n }\n>('moFlow/backToStartAction', async (_, { dispatch, rejectWithValue }) => {\n try {\n tracker.recedeInFlow('tallyman.v1-mo', 'mo-state', 'requested to change phone number');\n dispatch(identifyStrategy());\n } catch (ex) {\n console.warn(ex);\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n});\n\nconst moFlowSlice = createSlice({\n name: 'moFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading() };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: moFlowReducer, actions: moFlowActions } = moFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectMoFlowState = (state: any) => state.moFlow;\n"],"names":["useMoFlowState","useSelector","state","moFlow","currentState","moFlowMatch","_a","msisdnEntry","type","result","triggerMessage","window","slug","country","msisdn","device","offer","rockmanId","extraParamsQs","search","api_ajax_url","fetch","then","x","json","_b","_d","partnerAjaxResopnse","cleanSearchParams","params","action","offerId","rockman_id","page","encodeURIComponent","_c","location","href","sam_g_token","reCaptchaToken","language_code","languageCode","partner_form_action","form_action","antifraud_id","antifraud_id_js_code","antifraud_id_js_link","queryString","Object","entries","filter","__read","map","key","value","concat","join","host","DEV_BASE_URL","url","submitMSISDN","maybeConfig","internationalMSISDN","extraParams","config","pac_analytics","visitor","submitMSISDNWithConfig","substr","keys","k","match","sent","success","message","error","Error","error_code","productUrl","product_url","console","__assign","keyword","displayKeyword","mockedMSISDNEntrySuccess","RDS.Success","shortcode","mockedMSISDNEntryFailure","RDS.Failure","errorType","defaultInitialState","RDS.NothingYet","initialState","searchToObject","setInitialState","submitMSISDNAction","createAsyncThunk","getState","rejectWithValue","_e","strategy","data","tracker","advancedInFlow","keywordAndShortcode","_m","storeMsisdn","customEvent","catch","warn","ex_1","recedeInFlow","_g","_f","capRedirectUrl","redirect_url","_j","_h","_l","backToStartAction","_","dispatch","identifyStrategy","ex","moFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","moFlowReducer","reducer","actions"],"mappings":"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"}
1
+ {"version":3,"file":"moFlow.js","sources":["../src/flows/moFlow/hooks/useMoFlowState.ts","../src/flows/moFlow/match.ts","../src/flows/moFlow/api.ts","../src/flows/moFlow/main.ts","../src/flows/moFlow/moFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useMoFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.moFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport { MoFlowCurrentState, MSISDNEntryFailure, MSISDNEntrySuccess } from '../../sharedFlowTypes/MoTypes';\n\nfunction moFlowMatch<R>({\n msisdnEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n}): (state: MoFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n default:\n // TODO - this should be an error or something\n return msisdnEntry(state.result);\n }\n };\n}\n\nexport { moFlowMatch };\n","import { IGoogleReCaptcha, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\n\nconst getGoogleCaptcha = async (\n window: Window,\n country: string,\n slug: string,\n device: string,\n domain: string\n): Promise<IGoogleReCaptcha> => {\n const host = (window as Window).DEV_BASE_URL || '';\n\n return fetch(\n `${host}/tallyman/helper/?action=google-captcha-v3-config&country=${country}&slug=${slug}&device=${device}&domain=${domain}`\n ).then((x) => x.json());\n};\n\nconst triggerMessage = async ({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n extraParamsQs,\n search\n}: {\n window: Window;\n slug: string;\n country: string;\n msisdn: string;\n device: string;\n offer: string;\n rockmanId: string;\n search: string;\n extraParamsQs: string;\n}): Promise<IMSISDNSubmissionResult> => {\n // introduced https://www.notion.so/sammedia/CH-Agency-Bodkinco-Integration-ea1600ad175f451a9d351b6763ad7992\n const partnerAjaxResopnse: {\n form_action: string;\n } = window.api_ajax_url ? await fetch(window.api_ajax_url).then((x) => x.json()) : null;\n\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n const params = {\n action: 'trigger-message',\n slug,\n country,\n msisdn,\n device,\n offerId: offer,\n rockman_id: rockmanId,\n page: encodeURIComponent(window?.location?.href),\n sam_g_token: window.reCaptchaToken || '',\n language_code: window.languageCode || '',\n partner_form_action: partnerAjaxResopnse?.form_action ? encodeURIComponent(partnerAjaxResopnse?.form_action) : '',\n\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || ''\n };\n\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${search ? `&${search}` : ''}&${extraParamsQs}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nexport { getGoogleCaptcha, triggerMessage };\n","import { ICheckSubscriptionResult } from '../../common-types/ICheckSubscriptionResult';\nimport { IError } from '../../common-types/IError';\nimport { IConfig } from '../../common-types/Strategy';\nimport { checkSubscriptionByRockmanIdOnly } from '../../sharedApi/checkSubscriptionByRockmanIdOnly';\nimport { IGoogleReCaptcha, IKeywordShortcode, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\nimport { loop } from '../../utilities/helpers';\nimport loadScriptSrc from '../../utilities/loadScriptSrc';\nimport { getGoogleCaptcha, triggerMessage } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const config: any = { ...(maybeConfig || {}), offer: window.pac_analytics?.visitor?.offer };\n return submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams);\n}\n\nexport const getGoogleReCaptchaConfig = async ({\n window,\n slug,\n country,\n device\n}: IConfig & { window: Window }): Promise<IGoogleReCaptcha> => {\n const domain = window.location.hostname;\n const result: IGoogleReCaptcha = await getGoogleCaptcha(window, country, slug, device, domain);\n if (result.success === true) {\n const srcUrl = `https://www.google.com/recaptcha/api.js?render=${result.site_key}`;\n loadScriptSrc({ url: srcUrl, key: result.site_key, isRecaptcha: true });\n }\n return result;\n};\n\nexport async function submitMSISDNWithConfig(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const { slug, country, device, offer } = config;\n const search = window.location.search.substr(1) || '';\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || '';\n const { rockmanId } = window.pac_analytics.visitor;\n\n const result: IMSISDNSubmissionResult = await triggerMessage({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n search,\n extraParamsQs\n });\n\n if (result.success === false) {\n let type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMSISDN';\n const error = new Error(`${type}:\\n${result.message}`) as IError & { type: string; productUrl: string };\n if (result.error_code === null && result.error_code !== '') {\n switch (result.error_code) {\n case '1': // success\n type = 'Success';\n break;\n case '2': // pending\n type = 'Pending';\n break;\n case '10': // ALREADY SUBSCRIBED\n type = 'AlreadySubscribed';\n break;\n case '11': // blacklisted_msisdn\n type = 'BlacklistedMsisdn';\n break;\n case '12': // duplicated_request\n type = 'DuplicatedRequest';\n break;\n case '21': // expired_pin\n type = 'ExpiredPin';\n break;\n case '22': // invalid_pin\n type = 'InvalidPin';\n break;\n case '23': // pin_limit_exceeded\n type = 'PinLimitExceeded';\n break;\n case '24': // pin_generation_error\n type = 'PinGenerationError';\n break;\n case '25': // pin_already_used\n type = 'PinAlreadyUsed';\n break;\n case '31': // inactive_operator\n type = 'InactiveOperator';\n break;\n case '32': // invalid_msisdn\n type = 'InvalidMsisdn';\n break;\n case '33': // invalid_subscription_id\n type = 'InvalidSubscriptionId';\n break;\n case '34': // not_eligible_msisdn\n type = 'NotEligibleMsisdn';\n break;\n case '35': // validation_issue\n type = 'ValidationIssue';\n break;\n case '36': // insufficient_balance\n type = 'InsufficientBalance';\n break;\n case '37': // anti_fraud_error\n type = 'AntiFraudError';\n break;\n case '38': // vas_blocked\n type = 'VasBlocked';\n break;\n case '39': // account_suspended\n type = 'AccountSuspended';\n break;\n case '40': // sales cap reached\n type = 'SalesCapReached';\n break;\n case '50': // subscription_api_failure\n type = 'SubscriptionApiFailure';\n break;\n case '75': // re-subscription blocked\n type = 'ReSubscriptionBlocked';\n break;\n case '76': // re lead blocked\n type = 'ReLeadBlocked';\n break;\n case '99': // unspecified_error\n type = 'UnspecifiedError';\n break;\n default:\n // Handle any error codes not explicitly covered above\n break;\n }\n }\n\n error.type = type;\n error.productUrl = result.product_url ? result.product_url : '';\n\n console.error(error);\n throw error;\n } else {\n return { ...result, keyword: result.displayKeyword }; // based on discussion with Chanaka to avoid confusion in set up on bupper. Click2sms and mo will use display keyword\n }\n}\n\nexport async function moCheckSubscription(window: Window): Promise<string> {\n const { rockmanId } = window.pac_analytics.visitor;\n const check: () => Promise<ICheckSubscriptionResult> = () => checkSubscriptionByRockmanIdOnly({ window, rockmanId });\n\n const checkResult: ICheckSubscriptionResult = await loop(check, 60, (r) => r.success, 0);\n\n if (checkResult.success === true && checkResult.product_url && checkResult.product_url !== '') {\n window.location.href = checkResult.product_url;\n return checkResult.product_url;\n }\n const error = new Error(`${'SubscriptionFailed'}:\\n${checkResult.message}`) as IError & { type: string };\n error.type = 'SubscriptionFailed';\n throw error;\n}\n\n// export const formatSMSLink = (keywordAndShortcode: IKeywordShortcode) =>\n// !!window.pac_analytics.visitor['x-requested-with'] &&\n// window.pac_analytics.visitor['x-requested-with'] !== null &&\n// window.pac_analytics.visitor['x-requested-with'].indexOf('com.facebook') !== -1\n// ? `sms://${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`\n// : typeof navigator !== 'undefined' && (/iPhone/i.test(navigator.userAgent) || /Mac OS/i.test(navigator.userAgent))\n// ? `sms:${keywordAndShortcode.shortcode}&body=${keywordAndShortcode.keyword}`\n// : `sms:${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`;\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoTypes';\nimport { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport { identifyStrategy } from '../strategy';\nimport submitMSISDN from './main';\n\nexport const mockedMSISDNEntrySuccess: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n keyword: 'TEST OK',\n shortcode: '777'\n })\n }\n};\n\nexport const mockedMSISDNEntryFailure: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\nexport interface MoFlowState {\n currentState: {\n type: 'MSISDNEntry';\n result: RDS.RemoteDataState<any, any>; // Replace any with your specific error and data types\n };\n}\n\nconst defaultInitialState: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'msisdn-entry-failure-state':\n return mockedMSISDNEntryFailure;\n case 'msisdn-entry-success-state':\n return mockedMSISDNEntrySuccess;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}\n \n * Calls trigger-message api that returns a short code and key word\n * Sets completed stated\n */\nexport const submitMSISDNAction = createAsyncThunk<\n MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure;\n }\n>('moFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config } = state.strategy.currentState.data;\n\n try {\n // Start Trigger Message\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submitted', { msisdn });\n const keywordAndShortcode = await submitMSISDN(window, config, msisdn, extraParams);\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submission-success', { msisdn });\n // End Trigger Message\n\n // Start Store Msisdn\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End Store Msisdn\n\n return {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({ ...keywordAndShortcode })\n };\n } catch (ex) {\n console.warn(ex);\n const errorTypeMap: Record<string, MSISDNEntryErrorTypes> = {\n AlreadySubscribed: 'AlreadySubscribed',\n InvalidMSISDN: 'InvalidMSISDN',\n SalesCapReached: 'SalesCapReached',\n BlacklistedMsisdn: 'BlacklistedMsisdn',\n DuplicatedRequest: 'DuplicatedRequest',\n InactiveOperator: 'InactiveOperator',\n InvalidSubscriptionId: 'InvalidSubscriptionId',\n NotEligibleMsisdn: 'NotEligibleMsisdn',\n ValidationIssue: 'ValidationIssue',\n InsufficientBalance: 'InsufficientBalance',\n AntiFraudError: 'AntiFraudError',\n VasBlocked: 'VasBlocked',\n AccountSuspended: 'AccountSuspended',\n SubscriptionApiFailure: 'SubscriptionApiFailure',\n ReSubscriptionBlocked: 'ReSubscriptionBlocked',\n ReLeadBlocked: 'ReLeadBlocked'\n // If needed, add more error mappings here...\n };\n\n const errorType: MSISDNEntryErrorTypes = errorTypeMap[ex.type] ?? 'UnknownError';\n\n tracker.recedeInFlow('tallyman.v1-mo', 'msisdn-submission-failure', {\n msisdn,\n errorType: errorType || 'UnknownError'\n });\n\n // Define which error types should trigger a chain redirect\n const redirectErrorTypes: MSISDNEntryErrorTypes[] = [\n 'SalesCapReached',\n 'AntiFraudError',\n 'BlacklistedMsisdn',\n 'VasBlocked',\n 'NotEligibleMsisdn'\n ];\n\n if (redirectErrorTypes.includes(errorType) && window?.pac_analytics?.visitor?.capRedirectUrl) {\n tracker.customEvent('tallyman.v1-mo', 'redirect', 'cap-redirect', {\n redirect_url: window?.pac_analytics?.visitor?.capRedirectUrl,\n errorType\n });\n window.location.href = window?.pac_analytics?.visitor?.capRedirectUrl;\n }\n\n return rejectWithValue({\n errorType,\n productUrl: ex.productUrl\n });\n }\n});\n\nexport const backToStartAction = createAsyncThunk<\n any,\n any,\n {\n rejectValue: any; // Type for rejectWithValue\n }\n>('moFlow/backToStartAction', async (_, { dispatch, rejectWithValue }) => {\n try {\n tracker.recedeInFlow('tallyman.v1-mo', 'mo-state', 'requested to change phone number');\n dispatch(identifyStrategy());\n } catch (ex) {\n console.warn(ex);\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n});\n\nconst moFlowSlice = createSlice({\n name: 'moFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading() };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: moFlowReducer, actions: moFlowActions } = moFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectMoFlowState = (state: any) => state.moFlow;\n"],"names":["useMoFlowState","useSelector","state","moFlow","currentState","moFlowMatch","_a","msisdnEntry","type","result","triggerMessage","window","slug","country","msisdn","device","offer","rockmanId","extraParamsQs","search","api_ajax_url","fetch","then","x","json","_b","_d","partnerAjaxResopnse","cleanSearchParams","params","action","offerId","rockman_id","page","encodeURIComponent","_c","location","href","sam_g_token","reCaptchaToken","language_code","languageCode","partner_form_action","form_action","antifraud_id","antifraud_id_js_code","antifraud_id_js_link","queryString","Object","entries","filter","__read","map","key","value","concat","join","host","DEV_BASE_URL","url","submitMSISDN","maybeConfig","internationalMSISDN","extraParams","config","pac_analytics","visitor","submitMSISDNWithConfig","substr","keys","k","match","sent","success","message","error","Error","error_code","productUrl","product_url","console","__assign","keyword","displayKeyword","mockedMSISDNEntrySuccess","RDS.Success","shortcode","mockedMSISDNEntryFailure","RDS.Failure","errorType","defaultInitialState","RDS.NothingYet","initialState","searchToObject","setInitialState","submitMSISDNAction","createAsyncThunk","getState","rejectWithValue","_e","strategy","data","tracker","advancedInFlow","keywordAndShortcode","_o","storeMsisdn","customEvent","catch","warn","ex_1","_f","AlreadySubscribed","InvalidMSISDN","SalesCapReached","BlacklistedMsisdn","DuplicatedRequest","InactiveOperator","InvalidSubscriptionId","NotEligibleMsisdn","ValidationIssue","InsufficientBalance","AntiFraudError","VasBlocked","AccountSuspended","SubscriptionApiFailure","ReSubscriptionBlocked","ReLeadBlocked","recedeInFlow","includes","_g","_h","capRedirectUrl","redirect_url","_k","_j","_m","backToStartAction","_","dispatch","identifyStrategy","ex","moFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","moFlowReducer","reducer","actions"],"mappings":"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"}
@@ -8,7 +8,7 @@ declare type MoFlowCurrentState = MSISDNEntryState;
8
8
  interface MoFlowState {
9
9
  currentState: MoFlowCurrentState;
10
10
  }
11
- declare type MSISDNEntryErrorTypes = 'AlreadySubscribed' | 'UnknownError' | 'InvalidMSISDN' | 'SalesCapReached' | 'UnexpectedState';
11
+ declare type MSISDNEntryErrorTypes = 'AlreadySubscribed' | 'BlacklistedMsisdn' | 'DuplicatedRequest' | 'InvalidMSISDN' | 'InactiveOperator' | 'InvalidSubscriptionId' | 'NotEligibleMsisdn' | 'ValidationIssue' | 'InsufficientBalance' | 'AntiFraudError' | 'VasBlocked' | 'AccountSuspended' | 'SalesCapReached' | 'SubscriptionApiFailure' | 'ReSubscriptionBlocked' | 'ReLeadBlocked' | 'UnknownError' | 'UnexpectedState';
12
12
  declare type MSISDNEntryFailure = {
13
13
  errorType: MSISDNEntryErrorTypes;
14
14
  error?: any;
@@ -3,7 +3,7 @@ import { I as IStrategyNames } from './Strategy-N2e6pvR0.js';
3
3
  import { C as Click2smsFlowState } from './Click2smsTypes-BbhnGxiA.js';
4
4
  import { C as CreditCardFlowState } from './CreditCardTypes-BvAmIdgA.js';
5
5
  import { d as MoRedirFlowState } from './MoRedirTypes-CpTYupHS.js';
6
- import { d as MoFlowState } from './MoTypes-Bo8J7F_J.js';
6
+ import { d as MoFlowState } from './MoTypes-ClBP6qFV.js';
7
7
  import { O as OneClickFlowState } from './OneClickTypes-CgHVbYo3.js';
8
8
  import { f as PinFlowState } from './PinTypes-BYJgioCe.js';
9
9
  import { U as UssdFlowState } from './UssdTypes-C7QlIW11.js';
@@ -3,13 +3,13 @@ export { h as ICheckSubscriptionResult, f as IClick2smsConfig, i as IFetchResult
3
3
  import * as redux from 'redux';
4
4
  import * as _reduxjs_toolkit from '@reduxjs/toolkit';
5
5
  import * as _reduxjs_toolkit_dist_createAsyncThunk from '@reduxjs/toolkit/dist/createAsyncThunk';
6
- import { i as IHash } from './StrategyTypes-Dc8pyuEs.js';
6
+ import { i as IHash } from './StrategyTypes-DULFlgm8.js';
7
7
  import { useSelector } from 'react-redux';
8
8
  import { R as RemoteDataState } from './RemoteDataState-D1aFrz8W.js';
9
9
  import './Strategy-N2e6pvR0.js';
10
10
  import './CreditCardTypes-BvAmIdgA.js';
11
11
  import './MoRedirTypes-CpTYupHS.js';
12
- import './MoTypes-Bo8J7F_J.js';
12
+ import './MoTypes-ClBP6qFV.js';
13
13
  import './OneClickTypes-CgHVbYo3.js';
14
14
  import './PinTypes-BYJgioCe.js';
15
15
  import './UssdTypes-C7QlIW11.js';
@@ -1,5 +1,5 @@
1
- import { M as MSISDNEntryState, a as MSISDNEntryFailure, b as MSISDNEntrySuccess, c as MoFlowCurrentState } from './MoTypes-Bo8J7F_J.js';
2
- export { h as IGoogleReCaptcha, I as IKeywordShortcode, f as IMSISDNSubmissionResult, g as IMockMoFlowStates, e as MSISDNEntryErrorTypes, d as MoFlowState } from './MoTypes-Bo8J7F_J.js';
1
+ import { M as MSISDNEntryState, a as MSISDNEntryFailure, b as MSISDNEntrySuccess, c as MoFlowCurrentState } from './MoTypes-ClBP6qFV.js';
2
+ export { h as IGoogleReCaptcha, I as IKeywordShortcode, f as IMSISDNSubmissionResult, g as IMockMoFlowStates, e as MSISDNEntryErrorTypes, d as MoFlowState } from './MoTypes-ClBP6qFV.js';
3
3
  import { useSelector } from 'react-redux';
4
4
  import { R as RemoteDataState } from './RemoteDataState-D1aFrz8W.js';
5
5
  import * as _reduxjs_toolkit from '@reduxjs/toolkit';
@@ -1,7 +1,7 @@
1
1
  import { R as RemoteDataState } from './RemoteDataState-D1aFrz8W.js';
2
2
  export { a as RDS } from './RemoteDataState-D1aFrz8W.js';
3
- import { S as StrategyCurrentState, I as IDENTIFYMSISDNEntryFailure, a as IDENTIFYMSISDNEntrySuccess, P as PossibleTypes, C as ConfigDetails$1, b as StrategyState } from './StrategyTypes-Dc8pyuEs.js';
4
- export { R as ExtraStrategyData, H as HEResult, d as IConfig, s as IDENTIFYFailure, j as IDENTIFYMSISDNEntryErrorTypes, t as IDENTIFYSuccess, p as IDENTIFY_FLOW_HESuccess, o as IDENTIFY_OPERATOR_MSISDNEntrySuccess, m as IDETECTYOPERATOBYIPFailure, n as IDETECTYOPERATOBYIPSuccess, v as IDetectOperatorByIpPayload, f as IFlow, i as IHash, D as IIdentfyFlowByIPOperatorNextAction, A as IIdentfyFlowByMsisdnNextAction, B as IIdentfyFlowByOperatorNextAction, z as IIdentifyFlowByHePayload, y as IIdentifyFlowByIpOperatorPayload, c as IIdentifyResult, F as IIdenyifyFlowByMsisdnPayload, E as IIdenyifyFlowByMsisdnSumbitNextData, G as IIdenyifyStrategyPayload, M as IMockFlowParams, L as IMockFlows, T as IMockPinFlowStates, u as IOperatorSelectFlowIdentifyPayload, w as IOperatorSelectPayload, Q as IScriptHeaderEnrichmentFailure, N as IScriptHeaderEnrichmentSuccess, h as IStrategy, J as IStrategyCurrentState, K as IStrategyIDentifyUserResult, x as ISubmitMsisdnPayload, e as ISupportedFlows, k as IdentifyFlowOptionsResult, O as OPERATORSelectFailure, q as OPERATORSelectFlowIdentifyFailure, r as OPERATORSelectFlowIdentifySuccess, l as OPERATORSelectSuccess, U as RootState, g as StrategyConfig } from './StrategyTypes-Dc8pyuEs.js';
3
+ import { S as StrategyCurrentState, I as IDENTIFYMSISDNEntryFailure, a as IDENTIFYMSISDNEntrySuccess, P as PossibleTypes, C as ConfigDetails$1, b as StrategyState } from './StrategyTypes-DULFlgm8.js';
4
+ export { R as ExtraStrategyData, H as HEResult, d as IConfig, s as IDENTIFYFailure, j as IDENTIFYMSISDNEntryErrorTypes, t as IDENTIFYSuccess, p as IDENTIFY_FLOW_HESuccess, o as IDENTIFY_OPERATOR_MSISDNEntrySuccess, m as IDETECTYOPERATOBYIPFailure, n as IDETECTYOPERATOBYIPSuccess, v as IDetectOperatorByIpPayload, f as IFlow, i as IHash, D as IIdentfyFlowByIPOperatorNextAction, A as IIdentfyFlowByMsisdnNextAction, B as IIdentfyFlowByOperatorNextAction, z as IIdentifyFlowByHePayload, y as IIdentifyFlowByIpOperatorPayload, c as IIdentifyResult, F as IIdenyifyFlowByMsisdnPayload, E as IIdenyifyFlowByMsisdnSumbitNextData, G as IIdenyifyStrategyPayload, M as IMockFlowParams, L as IMockFlows, T as IMockPinFlowStates, u as IOperatorSelectFlowIdentifyPayload, w as IOperatorSelectPayload, Q as IScriptHeaderEnrichmentFailure, N as IScriptHeaderEnrichmentSuccess, h as IStrategy, J as IStrategyCurrentState, K as IStrategyIDentifyUserResult, x as ISubmitMsisdnPayload, e as ISupportedFlows, k as IdentifyFlowOptionsResult, O as OPERATORSelectFailure, q as OPERATORSelectFlowIdentifyFailure, r as OPERATORSelectFlowIdentifySuccess, l as OPERATORSelectSuccess, U as RootState, g as StrategyConfig } from './StrategyTypes-DULFlgm8.js';
5
5
  import { useSelector } from 'react-redux';
6
6
  import * as _reduxjs_toolkit from '@reduxjs/toolkit';
7
7
  import * as _reduxjs_toolkit_dist_createAsyncThunk from '@reduxjs/toolkit/dist/createAsyncThunk';
@@ -10,7 +10,7 @@ import * as redux from 'redux';
10
10
  import './Click2smsTypes-BbhnGxiA.js';
11
11
  import './CreditCardTypes-BvAmIdgA.js';
12
12
  import './MoRedirTypes-CpTYupHS.js';
13
- import './MoTypes-Bo8J7F_J.js';
13
+ import './MoTypes-ClBP6qFV.js';
14
14
  import './OneClickTypes-CgHVbYo3.js';
15
15
  import './PinTypes-BYJgioCe.js';
16
16
  import './UssdTypes-C7QlIW11.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ouisys-engine",
3
- "version": "5.0.133",
3
+ "version": "5.0.134",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "directories": "dist dev-tools",