ouisys-engine 5.1.12 → 5.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import{__awaiter as r,__generator as t,__assign as i}from"tslib";import{l as o}from"./helpers-CBmogWIZ.js";import{searchToObject as c}from"./searchToObject.js";import{t as e}from"./tracker-DaaILhEr.js";import{u as n}from"./updateUrlWithParams-C6-BX4TY.js";import"pacman-client";import"uuid";function a(a){var s,u,d,l,m=a.window,p=a.flow,v=a.action,h=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,R,U,j,S,g,I,P;return t(this,(function(T){switch(T.label){case 0:return a=m.pac_analytics.visitor.rockmanId,p&&v&&e.advancedInFlow(p,v,i({},h)),f=c(m),w="check-subscription-success-state"===f["current-state"],b=f.product_url||"/product",w&&(console.log("isMock is true"),(E=f["show-chain-link"])&&"1"===E&&(m.pac_analytics.visitor.chainRedirectUrl="/chain-url")),R=function(){return w?Promise.resolve({success:!0,rockman_id:a,product_url:b,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:m,rockmanId:a})},[4,o(R,60,(function(r){return r.success}),0)];case 1:if(!0===(U=T.sent()).success){if(j=decodeURIComponent(U.product_url),y)return S=n(m.location.href,{rockman_id:a,ui_show_tq:"1","show-thank-you":1,product_url:j}),setTimeout((function(){e.customEvent(p,"show-thank-you","thank-you-page",{thankYou:S}),m.location.replace(S)}),3e3),[2,S];if(null===(u=null===(s=null==m?void 0:m.pac_analytics)||void 0===s?void 0:s.visitor)||void 0===u?void 0:u.chainRedirectUrl){if(g=null===(l=null===(d=null==m?void 0:m.pac_analytics)||void 0===d?void 0:d.visitor)||void 0===l?void 0:l.chainRedirectUrl,I=n(g,_),k)return e.customEvent(p,"redirect","chain-redirect",{redirect_url:I}),m.open(I,"_blank"),j&&""!==j&&setTimeout((function(){e.customEvent(p,"redirect","product-redirect",{redirect_url:j}),m.location.replace(j)}),3e3),[2];e.customEvent(p,"redirect","chain-redirect",{redirect_url:I}),m.location.replace(I)}else j&&""!==j&&(e.customEvent(p,"redirect","product-redirect",{redirect_url:j}),m.location.replace(j));return[2,j||null]}throw(P=new Error("".concat("SubscriptionFailed",":\n").concat(U.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 e}from"./searchToObject.js";import{t as c}from"./tracker-DaaILhEr.js";import{u as n}from"./updateUrlWithParams-C6-BX4TY.js";import"pacman-client";import"uuid";function a(r){var t=s(r).replace(/^\/+/,"");if(!/^https?:\/\//i.test(t))throw new Error("Decoded string is not an absolute URL: ".concat(t))}function s(r){var t;do{t=r;try{r=decodeURIComponent(r)}catch(r){break}}while(r!==t);return r}function u(u){var d,l,h,v,m=u.window,p=u.flow,f=u.action,w=u.args,_=u.extraParams,k=void 0===_?{}:_,b=u.isRedirectToChainAndProduct,y=void 0!==b&&b,E=u.isShowThankYou,R=void 0!==E&&E;return r(this,void 0,void 0,(function(){var u,_,b,E,U,g,j,S,I,P,T,F;return t(this,(function(L){switch(L.label){case 0:return u=m.pac_analytics.visitor.rockmanId,p&&f&&c.advancedInFlow(p,f,i({},w)),_=e(m),b="check-subscription-success-state"===_["current-state"],E=_.product_url||"/product",b&&(console.log("isMock is true"),(U=_["show-chain-link"])&&"1"===U&&(m.pac_analytics.visitor.chainRedirectUrl="/chain-url")),g=function(){return b?Promise.resolve({success:!0,rockman_id:u,product_url:E,msisdn:"000"}):function(i){var o=i.window,e=i.rockmanId;return r(void 0,void 0,void 0,(function(){var r,i,c;return t(this,(function(t){switch(t.label){case 0:return r=o.DEV_BASE_URL||"",i=new URLSearchParams({action:"check-subscription",rockman_id:e}).toString(),c="".concat(r,"/tallyman/v1/?").concat(i),[4,fetch(c)];case 1:return[2,t.sent().json()]}}))}))}({window:m,rockmanId:u})},[4,o(g,60,(function(r){return r.success}),0)];case 1:if(!0===(j=L.sent()).success){if(S=s(j.product_url),R)return I=n(m.location.href,{rockman_id:u,ui_show_tq:"1","show-thank-you":1,product_url:S}),setTimeout((function(){c.customEvent(p,"show-thank-you","thank-you-page",{thankYou:I}),a(I)}),3e3),[2,I];if(null===(l=null===(d=null==m?void 0:m.pac_analytics)||void 0===d?void 0:d.visitor)||void 0===l?void 0:l.chainRedirectUrl){if(P=null===(v=null===(h=null==m?void 0:m.pac_analytics)||void 0===h?void 0:h.visitor)||void 0===v?void 0:v.chainRedirectUrl,T=n(P,k),y)return c.customEvent(p,"redirect","chain-redirect",{redirect_url:T}),m.open(T,"_blank"),S&&""!==S&&setTimeout((function(){c.customEvent(p,"redirect","product-redirect",{redirect_url:S}),a(S)}),3e3),[2];c.customEvent(p,"redirect","chain-redirect",{redirect_url:T}),a(T)}else S&&""!==S&&(c.customEvent(p,"redirect","product-redirect",{redirect_url:S}),a(S));return[2,S||null]}throw(F=new Error("".concat("SubscriptionFailed",":\n").concat(j.message))).type="SubscriptionFailed",F}}))}))}export{u as checkSubscriptionHander};
2
2
  //# sourceMappingURL=checkSubscriptionHander.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkSubscriptionHander.js","sources":["../src/utilities/checkSubscriptionHander.ts","../src/sharedApi/checkSubscriptionByRockmanIdOnly.ts"],"sourcesContent":["import { ICheckSubscriptionResult } from '../common-types/ICheckSubscriptionResult';\nimport { IError } from '../common-types/IError';\nimport { checkSubscriptionByRockmanIdOnly } from '../sharedApi/checkSubscriptionByRockmanIdOnly';\nimport { IMockFlowParams } from '../sharedFlowTypes/StrategyTypes';\nimport { loop } from './helpers';\nimport { searchToObject } from './searchToObject';\nimport { tracker } from './tracker';\nimport { updateUrlWithParams } from './updateUrlWithParams';\n\nexport async function checkSubscriptionHander({\n window,\n flow,\n action,\n args,\n extraParams = {},\n isRedirectToChainAndProduct = false,\n isShowThankYou = false\n}: {\n window: Window;\n flow?: string;\n action?: string;\n args?: any;\n extraParams?: any;\n isRedirectToChainAndProduct?: boolean;\n isShowThankYou?: boolean;\n}): Promise<string> {\n const { rockmanId } = window.pac_analytics.visitor;\n if (flow && action) {\n tracker.advancedInFlow(flow, action, {\n ...args\n });\n }\n const search = searchToObject(window) as IMockFlowParams<any>;\n const isMock = search['current-state'] === 'check-subscription-success-state';\n const mockProductUrl = search.product_url || '/product';\n if (isMock) {\n // eslint-disable-next-line no-console\n console.log('isMock is true');\n const mockChain = search['show-chain-link'];\n if (mockChain && mockChain === '1') {\n window.pac_analytics.visitor.chainRedirectUrl = '/chain-url';\n }\n }\n const check: () => Promise<ICheckSubscriptionResult> = () =>\n isMock\n ? Promise.resolve({\n success: true,\n rockman_id: rockmanId,\n product_url: mockProductUrl,\n msisdn: '000'\n })\n : checkSubscriptionByRockmanIdOnly({ window, rockmanId });\n const checkResult: ICheckSubscriptionResult = await loop(check, 60, (r) => r.success, 0);\n\n if (checkResult.success === true) {\n const productUrl = decodeURIComponent(checkResult.product_url);\n // if (flow && action) {\n // tracker.advancedInFlow(flow, action, {\n // ...args,\n // url: checkResult.product_url\n // });\n // }\n if (isShowThankYou) {\n const thankYou = updateUrlWithParams(window.location.href, {\n rockman_id: rockmanId,\n ui_show_tq: '1', // New param\n 'show-thank-you': 1, // backward compatibility\n product_url: productUrl\n });\n setTimeout(() => {\n tracker.customEvent(flow, 'show-thank-you', 'thank-you-page', { thankYou });\n\n window.location.replace(thankYou);\n }, 3000);\n\n return thankYou;\n }\n if (window?.pac_analytics?.visitor?.chainRedirectUrl) {\n const chainLink = window?.pac_analytics?.visitor?.chainRedirectUrl;\n const updatedChainLink = updateUrlWithParams(chainLink, extraParams);\n if (isRedirectToChainAndProduct) {\n tracker.customEvent(flow, 'redirect', 'chain-redirect', { redirect_url: updatedChainLink });\n window.open(\n updatedChainLink,\n '_blank' // <- This is what makes it open in a new window.\n );\n if (productUrl && productUrl !== '') {\n setTimeout(() => {\n tracker.customEvent(flow, 'redirect', 'product-redirect', { redirect_url: productUrl });\n window.location.replace(productUrl);\n }, 3000);\n }\n return;\n }\n\n tracker.customEvent(flow, 'redirect', 'chain-redirect', { redirect_url: updatedChainLink });\n window.location.replace(updatedChainLink);\n } else if (productUrl && productUrl !== '') {\n tracker.customEvent(flow, 'redirect', 'product-redirect', { redirect_url: productUrl });\n window.location.replace(productUrl);\n }\n\n return productUrl || null;\n }\n const error = new Error(`${'SubscriptionFailed'}:\\n${checkResult.message}`) as IError & { type: string };\n error.type = 'SubscriptionFailed';\n throw error;\n}\n","import { ICheckSubscriptionResult } from '../common-types/ICheckSubscriptionResult';\n\nconst checkSubscriptionByRockmanIdOnly = async ({\n window,\n rockmanId\n}: {\n window: Window;\n rockmanId: string;\n}): Promise<ICheckSubscriptionResult> => {\n const host = (window as Window).DEV_BASE_URL || '';\n\n const params = {\n action: 'check-subscription',\n rockman_id: rockmanId\n };\n\n const urlParams = new URLSearchParams(params).toString();\n const url = `${host}/tallyman/v1/?${urlParams}`;\n\n const response = await fetch(url);\n return response.json();\n};\n\nexport { checkSubscriptionByRockmanIdOnly };\n"],"names":["checkSubscriptionHander","_a","window","flow","action","args","_f","extraParams","_g","isRedirectToChainAndProduct","_h","isShowThankYou","rockmanId","pac_analytics","visitor","tracker","advancedInFlow","__assign","search","searchToObject","isMock","mockProductUrl","product_url","console","log","mockChain","chainRedirectUrl","check","Promise","resolve","success","rockman_id","msisdn","host","DEV_BASE_URL","urlParams","URLSearchParams","toString","url","concat","fetch","_b","sent","json","checkSubscriptionByRockmanIdOnly","loop","r","checkResult","_j","productUrl_1","decodeURIComponent","thankYou_1","updateUrlWithParams","location","href","ui_show_tq","setTimeout","customEvent","thankYou","replace","_c","chainLink","_e","_d","updatedChainLink","redirect_url","open","error","Error","message","type"],"mappings":"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"}
1
+ {"version":3,"file":"checkSubscriptionHander.js","sources":["../src/utilities/checkSubscriptionHander.ts","../src/sharedApi/checkSubscriptionByRockmanIdOnly.ts"],"sourcesContent":["import { ICheckSubscriptionResult } from '../common-types/ICheckSubscriptionResult';\nimport { IError } from '../common-types/IError';\nimport { checkSubscriptionByRockmanIdOnly } from '../sharedApi/checkSubscriptionByRockmanIdOnly';\nimport { loop } from './helpers';\nimport { searchToObject } from './searchToObject';\nimport { tracker } from './tracker';\nimport { updateUrlWithParams } from './updateUrlWithParams';\n\nfunction redirect(rawUrl: string) {\n const target = fullyDecode(rawUrl).replace(/^\\/+/, ''); // drop leading /\n if (!/^https?:\\/\\//i.test(target)) {\n throw new Error(`Decoded string is not an absolute URL: ${target}`);\n }\n // window.location.replace(target); // or: window.location.href = target\n}\nfunction fullyDecode(s: string): string {\n let prev;\n do {\n prev = s;\n try {\n s = decodeURIComponent(s);\n } catch {\n break;\n } // stop if it’s no longer valid UTF-8\n } while (s !== prev);\n return s;\n}\nexport async function checkSubscriptionHander({\n window,\n flow,\n action,\n args,\n extraParams = {},\n isRedirectToChainAndProduct = false,\n isShowThankYou = false\n}: {\n window: Window;\n flow?: string;\n action?: string;\n args?: any;\n extraParams?: any;\n isRedirectToChainAndProduct?: boolean;\n isShowThankYou?: boolean;\n}): Promise<string> {\n const { rockmanId } = window.pac_analytics.visitor;\n if (flow && action) {\n tracker.advancedInFlow(flow, action, {\n ...args\n });\n }\n const search = searchToObject(window);\n const isMock = search['current-state'] === 'check-subscription-success-state';\n const mockProductUrl = search.product_url || '/product';\n if (isMock) {\n // eslint-disable-next-line no-console\n console.log('isMock is true');\n const mockChain = search['show-chain-link'];\n if (mockChain && mockChain === '1') {\n window.pac_analytics.visitor.chainRedirectUrl = '/chain-url';\n }\n }\n const check: () => Promise<ICheckSubscriptionResult> = () =>\n isMock\n ? Promise.resolve({\n success: true,\n rockman_id: rockmanId,\n product_url: mockProductUrl,\n msisdn: '000'\n })\n : checkSubscriptionByRockmanIdOnly({ window, rockmanId });\n const checkResult: ICheckSubscriptionResult = await loop(check, 60, (r) => r.success, 0);\n\n if (checkResult.success === true) {\n const productUrl = fullyDecode(checkResult.product_url);\n // if (flow && action) {\n // tracker.advancedInFlow(flow, action, {\n // ...args,\n // url: checkResult.product_url\n // });\n // }\n if (isShowThankYou) {\n const thankYou = updateUrlWithParams(window.location.href, {\n rockman_id: rockmanId,\n ui_show_tq: '1', // New param\n 'show-thank-you': 1, // backward compatibility\n product_url: productUrl\n });\n setTimeout(() => {\n tracker.customEvent(flow, 'show-thank-you', 'thank-you-page', { thankYou });\n\n redirect(thankYou);\n }, 3000);\n\n return thankYou;\n }\n if (window?.pac_analytics?.visitor?.chainRedirectUrl) {\n const chainLink = window?.pac_analytics?.visitor?.chainRedirectUrl;\n const updatedChainLink = updateUrlWithParams(chainLink, extraParams);\n if (isRedirectToChainAndProduct) {\n tracker.customEvent(flow, 'redirect', 'chain-redirect', { redirect_url: updatedChainLink });\n window.open(\n updatedChainLink,\n '_blank' // <- This is what makes it open in a new window.\n );\n if (productUrl && productUrl !== '') {\n setTimeout(() => {\n tracker.customEvent(flow, 'redirect', 'product-redirect', { redirect_url: productUrl });\n redirect(productUrl);\n }, 3000);\n }\n return;\n }\n\n tracker.customEvent(flow, 'redirect', 'chain-redirect', { redirect_url: updatedChainLink });\n redirect(updatedChainLink);\n } else if (productUrl && productUrl !== '') {\n tracker.customEvent(flow, 'redirect', 'product-redirect', { redirect_url: productUrl });\n redirect(productUrl);\n }\n\n return productUrl || null;\n }\n const error = new Error(`${'SubscriptionFailed'}:\\n${checkResult.message}`) as IError & { type: string };\n error.type = 'SubscriptionFailed';\n throw error;\n}\n","import { ICheckSubscriptionResult } from '../common-types/ICheckSubscriptionResult';\n\nconst checkSubscriptionByRockmanIdOnly = async ({\n window,\n rockmanId\n}: {\n window: Window;\n rockmanId: string;\n}): Promise<ICheckSubscriptionResult> => {\n const host = (window as Window).DEV_BASE_URL || '';\n\n const params = {\n action: 'check-subscription',\n rockman_id: rockmanId\n };\n\n const urlParams = new URLSearchParams(params).toString();\n const url = `${host}/tallyman/v1/?${urlParams}`;\n\n const response = await fetch(url);\n return response.json();\n};\n\nexport { checkSubscriptionByRockmanIdOnly };\n"],"names":["redirect","rawUrl","target","fullyDecode","replace","test","Error","s","prev","decodeURIComponent","_a","checkSubscriptionHander","window","flow","action","args","_f","extraParams","_g","isRedirectToChainAndProduct","_h","isShowThankYou","rockmanId","pac_analytics","visitor","tracker","advancedInFlow","__assign","search","searchToObject","isMock","mockProductUrl","product_url","console","log","mockChain","chainRedirectUrl","check","Promise","resolve","success","rockman_id","msisdn","host","DEV_BASE_URL","urlParams","URLSearchParams","toString","url","concat","fetch","_b","sent","json","checkSubscriptionByRockmanIdOnly","loop","r","checkResult","_j","productUrl_1","thankYou_1","updateUrlWithParams","location","href","ui_show_tq","setTimeout","customEvent","thankYou","_c","chainLink","_e","_d","updatedChainLink","redirect_url","open","error","message","type"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{f as i}from"./formatNumberToE164-DaAFvpKD.js";import{searchToObject as n}from"./searchToObject.js";import"tslib";var o=function(i){var n=i.msisdnValue,o=i.dispatch,s=i.submitMSISDNAction,e=i.isHeaderEnrichmentSuccess,t=i.isHeaderEnrichmentAutoSubmit,d=void 0!==t&&t;(n&&n.length>3&&!e||!0===e&&!0===d)&&o(s({window:window,msisdn:n}))},s=function(o){var s,e,t,d,r,l=o.window,a=o.isHeaderEnrichmentSuccess,c=o.setInternationalNumber,m=o.onEnd,u=o.internationalNumber,v=a?"mobile_data":"wifi",p=n(l);if(a&&"1"!==p["msisdn-alias"]){var h=i((null===(e=null===(s=null==p?void 0:p.msisdn)||void 0===s?void 0:s.match(/\d+/gi))||void 0===e?void 0:e.join(""))||(null===(d=null===(t=null==l?void 0:l.msisdn)||void 0===t?void 0:t.match(/\d+/gi))||void 0===d?void 0:d.join("")),process.env.country);u||c(h),m(h||(null===(r=null==u?void 0:u.match(/\d+/gi))||void 0===r?void 0:r.join("")))}else if(!0===a&&"true"===(null==p?void 0:p.success)&&"1"===p["msisdn-alias"]){if(null==p?void 0:p.msisdn)m(p.msisdn,{network_type:v,"skip-validation":"1"})}else void 0!==l&&function(i,n){return void 0!==i&&null!==document.cookie.match(new RegExp("^(.*;)?\\s*".concat(n,"\\s*=\\s*[^;]+(.*)?$")))}(l,"OMEU")&&"es"===process.env.country?m("1",{network_type:v,"skip-validation":"1"}):u&&("ci"===process.env.country?m(u.match(/\d+/gi).join(""),{network_type:v}):m(u.match(/\d+/gi).join("")))};export{o as handleAutoSubmitMsisdn,s as handleFormSubmit};
1
+ import{f as i}from"./formatNumberToE164-DaAFvpKD.js";import{searchToObject as n}from"./searchToObject.js";var o=function(i){var n=i.msisdnValue,o=i.dispatch,s=i.submitMSISDNAction,e=i.isHeaderEnrichmentSuccess,t=i.isHeaderEnrichmentAutoSubmit,d=void 0!==t&&t;(n&&n.length>3&&!e||!0===e&&!0===d)&&o(s({window:window,msisdn:n}))},s=function(o){var s,e,t,d,r,a=o.window,c=o.isHeaderEnrichmentSuccess,l=o.setInternationalNumber,u=o.onEnd,m=o.internationalNumber,v=c?"mobile_data":"wifi",p=n(a);if(c&&"1"!==p["msisdn-alias"]){var h=i((null===(e=null===(s=null==p?void 0:p.msisdn)||void 0===s?void 0:s.match(/\d+/gi))||void 0===e?void 0:e.join(""))||(null===(d=null===(t=null==a?void 0:a.msisdn)||void 0===t?void 0:t.match(/\d+/gi))||void 0===d?void 0:d.join("")),process.env.country);m||l(h),u(h||(null===(r=null==m?void 0:m.match(/\d+/gi))||void 0===r?void 0:r.join("")))}else if(!0===c&&"true"===(null==p?void 0:p.success)&&"1"===p["msisdn-alias"]){if(null==p?void 0:p.msisdn)u(p.msisdn,{network_type:v,"skip-validation":"1"})}else void 0!==a&&function(i,n){return void 0!==i&&null!==document.cookie.match(new RegExp("^(.*;)?\\s*".concat(n,"\\s*=\\s*[^;]+(.*)?$")))}(a,"OMEU")&&"es"===process.env.country?u("1",{network_type:v,"skip-validation":"1"}):m&&("ci"===process.env.country?u(m.match(/\d+/gi).join(""),{network_type:v}):u(m.match(/\d+/gi).join("")))};export{o as handleAutoSubmitMsisdn,s as handleFormSubmit};
2
2
  //# sourceMappingURL=handleSubmitNumber.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handleSubmitNumber.js","sources":["../src/utilities/isCookieExists.ts","../src/utilities/handleSubmitNumber.ts"],"sourcesContent":["export const isCookieExists = (window: Window, cookieName: string) =>\n typeof window !== 'undefined' &&\n document.cookie.match(new RegExp(`^(.*;)?\\\\s*${cookieName}\\\\s*=\\\\s*[^;]+(.*)?$`)) !== null;\n","import { Dispatch } from '@reduxjs/toolkit';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { formatNumberToE164 } from './formatNumberToE164';\nimport { isCookieExists } from './isCookieExists';\nimport { searchToObject } from './searchToObject';\n\nexport const handleAutoSubmitMsisdn = ({\n msisdnValue,\n dispatch,\n submitMSISDNAction,\n isHeaderEnrichmentSuccess,\n isHeaderEnrichmentAutoSubmit = false\n}: {\n window: Window;\n msisdnValue: string;\n dispatch: Dispatch;\n submitMSISDNAction: ({ window, msisdn }: { window: Window; msisdn: string }) => any;\n isHeaderEnrichmentSuccess: boolean;\n isHeaderEnrichmentAutoSubmit?: boolean;\n}) => {\n if (\n (msisdnValue && msisdnValue.length > 3 && !isHeaderEnrichmentSuccess) ||\n (isHeaderEnrichmentSuccess === true && isHeaderEnrichmentAutoSubmit === true)\n ) {\n dispatch(submitMSISDNAction({ window, msisdn: msisdnValue }));\n }\n};\n\nexport const handleFormSubmit = ({\n window,\n isHeaderEnrichmentSuccess,\n setInternationalNumber,\n onEnd,\n internationalNumber\n}: {\n window: Window;\n isHeaderEnrichmentSuccess: boolean;\n country: string;\n setInternationalNumber: React.Dispatch<React.SetStateAction<string>>;\n onEnd: (msisdn: string, extraParams?: { [key: string]: string }) => void;\n internationalNumber: string;\n isValid?: boolean;\n}) => {\n const networkType = isHeaderEnrichmentSuccess ? 'mobile_data' : 'wifi';\n const searchObj = searchToObject(window) as any;\n if (isHeaderEnrichmentSuccess && searchObj['msisdn-alias'] !== '1') {\n const msisdnFromSearch = formatNumberToE164(\n searchObj?.msisdn?.match(/\\d+/gi)?.join('') || window?.msisdn?.match(/\\d+/gi)?.join(''),\n process.env.country\n );\n if (!internationalNumber) {\n setInternationalNumber(msisdnFromSearch);\n }\n // @ts-ignore\n onEnd(msisdnFromSearch || internationalNumber?.match(/\\d+/gi)?.join(''));\n } else if (isHeaderEnrichmentSuccess === true && searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') {\n // Special case Digital Virgo sents encrypted msisdn we dont need to validate is\n if (searchObj?.msisdn) {\n const encryptedMsisdn = searchObj.msisdn;\n onEnd(encryptedMsisdn, { network_type: networkType, 'skip-validation': '1' });\n }\n } else if (typeof window !== 'undefined' && isCookieExists(window, 'OMEU') && process.env.country === 'es') {\n onEnd('1', { network_type: networkType, 'skip-validation': '1' });\n } else if (internationalNumber) {\n if (process.env.country === 'ci') {\n onEnd(internationalNumber.match(/\\d+/gi).join(''), { network_type: networkType });\n } else {\n onEnd(internationalNumber.match(/\\d+/gi).join(''));\n }\n }\n};\n"],"names":["handleAutoSubmitMsisdn","_a","msisdnValue","dispatch","submitMSISDNAction","isHeaderEnrichmentSuccess","_b","isHeaderEnrichmentAutoSubmit","length","window","msisdn","handleFormSubmit","setInternationalNumber","onEnd","internationalNumber","networkType","searchObj","searchToObject","msisdnFromSearch","formatNumberToE164","match","join","_e","_d","process","env","country","_f","success","network_type","cookieName","document","cookie","RegExp","concat","isCookieExists"],"mappings":"wHAAO,ICMMA,EAAyB,SAACC,GACrC,IAAAC,gBACAC,EAAQF,EAAAE,SACRC,EAAkBH,EAAAG,mBAClBC,EAAyBJ,EAAAI,0BACzBC,EAAoCL,EAAAM,6BAApCA,OAA4B,IAAAD,GAAQA,GAUjCJ,GAAeA,EAAYM,OAAS,IAAMH,IACZ,IAA9BA,IAAuE,IAAjCE,IAEvCJ,EAASC,EAAmB,CAAEK,OAAMA,OAAEC,OAAQR,IAElD,EAEaS,EAAmB,SAACV,iBAC/BQ,EAAMR,EAAAQ,OACNJ,EAAyBJ,EAAAI,0BACzBO,EAAsBX,EAAAW,uBACtBC,EAAKZ,EAAAY,MACLC,EAAmBb,EAAAa,oBAUbC,EAAcV,EAA4B,cAAgB,OAC1DW,EAAYC,EAAeR,GACjC,GAAIJ,GAA2D,MAA9BW,EAAU,gBAAyB,CAClE,IAAME,EAAmBC,aACN,QAAjBb,EAAAU,aAAA,EAAAA,EAAWN,cAAM,IAAAJ,OAAA,EAAAA,EAAEc,MAAM,+BAAUC,KAAK,OAAqC,QAA9BC,EAAgB,UAAhBb,aAAM,EAANA,EAAQC,cAAQ,IAAAa,OAAA,EAAAA,EAAAH,MAAM,gBAAQ,IAAAE,OAAA,EAAAA,EAAED,KAAK,KACpFG,QAAQC,IAAIC,SAETZ,GACHF,EAAuBM,GAGzBL,EAAMK,IAAyD,QAArCS,EAAAb,eAAAA,EAAqBM,MAAM,gBAAU,IAAAO,OAAA,EAAAA,EAAAN,KAAK,KACrE,MAAM,IAAkC,IAA9BhB,GAA6D,UAAvBW,aAAA,EAAAA,EAAWY,UAAoD,MAA9BZ,EAAU,gBAAyB,CAEnH,GAAIA,eAAAA,EAAWN,OAEbG,EADwBG,EAAUN,OACX,CAAEmB,aAAcd,EAAa,kBAAmB,KAE1E,WAA4B,IAAXN,GD7DU,SAACA,EAAgBqB,GAC7C,YAAkB,IAAXrB,GAC+E,OAAtFsB,SAASC,OAAOZ,MAAM,IAAIa,OAAO,cAAAC,OAAcJ,EAAU,yBADzD,CC4D4CK,CAAe1B,EAAQ,SAAmC,OAAxBe,QAAQC,IAAIC,QACxFb,EAAM,IAAK,CAAEgB,aAAcd,EAAa,kBAAmB,MAClDD,IACmB,OAAxBU,QAAQC,IAAIC,QACdb,EAAMC,EAAoBM,MAAM,SAASC,KAAK,IAAK,CAAEQ,aAAcd,IAEnEF,EAAMC,EAAoBM,MAAM,SAASC,KAAK,KAGpD"}
1
+ {"version":3,"file":"handleSubmitNumber.js","sources":["../src/utilities/isCookieExists.ts","../src/utilities/handleSubmitNumber.ts"],"sourcesContent":["export const isCookieExists = (window: Window, cookieName: string) =>\n typeof window !== 'undefined' &&\n document.cookie.match(new RegExp(`^(.*;)?\\\\s*${cookieName}\\\\s*=\\\\s*[^;]+(.*)?$`)) !== null;\n","import { Dispatch } from '@reduxjs/toolkit';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { formatNumberToE164 } from './formatNumberToE164';\nimport { isCookieExists } from './isCookieExists';\nimport { searchToObject } from './searchToObject';\n\nexport const handleAutoSubmitMsisdn = ({\n msisdnValue,\n dispatch,\n submitMSISDNAction,\n isHeaderEnrichmentSuccess,\n isHeaderEnrichmentAutoSubmit = false\n}: {\n window: Window;\n msisdnValue: string;\n dispatch: Dispatch;\n submitMSISDNAction: ({ window, msisdn }: { window: Window; msisdn: string }) => any;\n isHeaderEnrichmentSuccess: boolean;\n isHeaderEnrichmentAutoSubmit?: boolean;\n}) => {\n if (\n (msisdnValue && msisdnValue.length > 3 && !isHeaderEnrichmentSuccess) ||\n (isHeaderEnrichmentSuccess === true && isHeaderEnrichmentAutoSubmit === true)\n ) {\n dispatch(submitMSISDNAction({ window, msisdn: msisdnValue }));\n }\n};\n\nexport const handleFormSubmit = ({\n window,\n isHeaderEnrichmentSuccess,\n setInternationalNumber,\n onEnd,\n internationalNumber\n}: {\n window: Window;\n isHeaderEnrichmentSuccess: boolean;\n country: string;\n setInternationalNumber: React.Dispatch<React.SetStateAction<string>>;\n onEnd: (msisdn: string, extraParams?: { [key: string]: string }) => void;\n internationalNumber: string;\n isValid?: boolean;\n}) => {\n const networkType = isHeaderEnrichmentSuccess ? 'mobile_data' : 'wifi';\n const searchObj = searchToObject(window) as any;\n if (isHeaderEnrichmentSuccess && searchObj['msisdn-alias'] !== '1') {\n const msisdnFromSearch = formatNumberToE164(\n searchObj?.msisdn?.match(/\\d+/gi)?.join('') || window?.msisdn?.match(/\\d+/gi)?.join(''),\n process.env.country\n );\n if (!internationalNumber) {\n setInternationalNumber(msisdnFromSearch);\n }\n // @ts-ignore\n onEnd(msisdnFromSearch || internationalNumber?.match(/\\d+/gi)?.join(''));\n } else if (isHeaderEnrichmentSuccess === true && searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') {\n // Special case Digital Virgo sents encrypted msisdn we dont need to validate is\n if (searchObj?.msisdn) {\n const encryptedMsisdn = searchObj.msisdn;\n onEnd(encryptedMsisdn, { network_type: networkType, 'skip-validation': '1' });\n }\n } else if (typeof window !== 'undefined' && isCookieExists(window, 'OMEU') && process.env.country === 'es') {\n onEnd('1', { network_type: networkType, 'skip-validation': '1' });\n } else if (internationalNumber) {\n if (process.env.country === 'ci') {\n onEnd(internationalNumber.match(/\\d+/gi).join(''), { network_type: networkType });\n } else {\n onEnd(internationalNumber.match(/\\d+/gi).join(''));\n }\n }\n};\n"],"names":["handleAutoSubmitMsisdn","_a","msisdnValue","dispatch","submitMSISDNAction","isHeaderEnrichmentSuccess","_b","isHeaderEnrichmentAutoSubmit","length","window","msisdn","handleFormSubmit","setInternationalNumber","onEnd","internationalNumber","networkType","searchObj","searchToObject","msisdnFromSearch","formatNumberToE164","match","join","_e","_d","process","env","country","_f","success","network_type","cookieName","document","cookie","RegExp","concat","isCookieExists"],"mappings":"0GAAO,ICMMA,EAAyB,SAACC,GACrC,IAAAC,gBACAC,EAAQF,EAAAE,SACRC,EAAkBH,EAAAG,mBAClBC,EAAyBJ,EAAAI,0BACzBC,EAAoCL,EAAAM,6BAApCA,OAA4B,IAAAD,GAAQA,GAUjCJ,GAAeA,EAAYM,OAAS,IAAMH,IACZ,IAA9BA,IAAuE,IAAjCE,IAEvCJ,EAASC,EAAmB,CAAEK,OAAMA,OAAEC,OAAQR,IAElD,EAEaS,EAAmB,SAACV,iBAC/BQ,EAAMR,EAAAQ,OACNJ,EAAyBJ,EAAAI,0BACzBO,EAAsBX,EAAAW,uBACtBC,EAAKZ,EAAAY,MACLC,EAAmBb,EAAAa,oBAUbC,EAAcV,EAA4B,cAAgB,OAC1DW,EAAYC,EAAeR,GACjC,GAAIJ,GAA2D,MAA9BW,EAAU,gBAAyB,CAClE,IAAME,EAAmBC,aACN,QAAjBb,EAAAU,aAAA,EAAAA,EAAWN,cAAM,IAAAJ,OAAA,EAAAA,EAAEc,MAAM,+BAAUC,KAAK,OAAqC,QAA9BC,EAAgB,UAAhBb,aAAM,EAANA,EAAQC,cAAQ,IAAAa,OAAA,EAAAA,EAAAH,MAAM,gBAAQ,IAAAE,OAAA,EAAAA,EAAED,KAAK,KACpFG,QAAQC,IAAIC,SAETZ,GACHF,EAAuBM,GAGzBL,EAAMK,IAAyD,QAArCS,EAAAb,eAAAA,EAAqBM,MAAM,gBAAU,IAAAO,OAAA,EAAAA,EAAAN,KAAK,KACrE,MAAM,IAAkC,IAA9BhB,GAA6D,UAAvBW,aAAA,EAAAA,EAAWY,UAAoD,MAA9BZ,EAAU,gBAAyB,CAEnH,GAAIA,eAAAA,EAAWN,OAEbG,EADwBG,EAAUN,OACX,CAAEmB,aAAcd,EAAa,kBAAmB,KAE1E,WAA4B,IAAXN,GD7DU,SAACA,EAAgBqB,GAC7C,YAAkB,IAAXrB,GAC+E,OAAtFsB,SAASC,OAAOZ,MAAM,IAAIa,OAAO,cAAAC,OAAcJ,EAAU,yBADzD,CC4D4CK,CAAe1B,EAAQ,SAAmC,OAAxBe,QAAQC,IAAIC,QACxFb,EAAM,IAAK,CAAEgB,aAAcd,EAAa,kBAAmB,MAClDD,IACmB,OAAxBU,QAAQC,IAAIC,QACdb,EAAMC,EAAoBM,MAAM,SAASC,KAAK,IAAK,CAAEQ,aAAcd,IAEnEF,EAAMC,EAAoBM,MAAM,SAASC,KAAK,KAGpD"}
package/dist/moFlow.js CHANGED
@@ -1,2 +1,2 @@
1
- import{__awaiter as t,__generator as r,__read as e,__assign as n}from"tslib";import{createAsyncThunk as o,createSlice as a}from"@reduxjs/toolkit";import{S as i,L as s,F as c,N as u}from"./RemoteDataState-lcf8PfJd.js";import{h as d}from"./handleWaterfallRedirect-DztqrthA.js";import{n as l,r as m}from"./normaliseErrorCode-CVpyJZ6_.js";import{searchToObject as v}from"./searchToObject.js";import{s as f}from"./storeMsisdn-Cjq8_qYH.js";import{t as p}from"./tracker-DaaILhEr.js";import{c as y}from"./cleanSearchParams-Dl7ZDlew.js";import{i as S}from"./strategySlice-BMNt18ck.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-DaAFvpKD.js";import"./api-geirVksI.js";var _=function(t){return t((function(t){return t.moFlow.currentState}))};function h(t){var r=t.msisdnEntry;return function(t){return t.type,r(t.result)}}var w=function(n){var o=n.window,a=n.slug,i=n.country,s=n.msisdn,c=n.device,u=n.offer,d=n.rockmanId,l=n.extraParamsQs,m=n.search;return t(void 0,void 0,void 0,(function(){var t,n,v,f,p,S,_;return r(this,(function(r){switch(r.label){case 0:return o.api_ajax_url?[4,fetch(o.api_ajax_url).then((function(t){return t.json()}))]:[3,2];case 1:return n=r.sent(),[3,3];case 2:n=null,r.label=3;case 3:return t=n,m=y(m),v={action:"trigger-message",slug:a,country:i,msisdn:s,device:c,offerId:u,rockman_id:d,page:encodeURIComponent(null===(_=null==o?void 0:o.location)||void 0===_?void 0:_.href),sam_g_token:o.reCaptchaToken||"",language_code:o.languageCode||"",partner_form_action:(null==t?void 0:t.form_action)?encodeURIComponent(null==t?void 0:t.form_action):"",antifraud_id:o.antifraud_id||"",antifraud_id_js_code:o.antifraud_id_js_code||"",antifraud_id_js_link:o.antifraud_id_js_link||""},f=Object.entries(v).filter((function(t){var r=e(t,2);return r[0],r[1]})).map((function(t){var r=e(t,2),n=r[0],o=r[1];return"".concat(n,"=").concat(o)})).join("&"),p=o.DEV_BASE_URL||"",S="".concat(p,"/tallyman/v1/?").concat(f).concat(m?"&".concat(m):"","&").concat(l),o.MOCK_TRIGGER_MESSAGE_RESPONSE?[2,o.MOCK_TRIGGER_MESSAGE_RESPONSE]:[2,fetch(S).then((function(t){return t.json()}))]}}))}))};function j(e,o,a,i){var s,c;return t(this,void 0,void 0,(function(){var t;return r(this,(function(r){return t=n(n({},o||{}),{offer:null===(c=null===(s=e.pac_analytics)||void 0===s?void 0:s.visitor)||void 0===c?void 0:c.offer}),[2,E(e,t,a,i)]}))}))}function E(e,o,a,i){var s,c;return t(this,void 0,void 0,(function(){var t,u,d,m,v,f,p,y,S,_,h,j;return r(this,(function(r){switch(r.label){case 0:return t=o.slug,u=o.country,d=o.device,m=o.offer,v=e.location.search.substr(1)||"",f=i?"&".concat(Object.keys(i).map((function(t){return"".concat(t,"=").concat(i[t])})).join("&")):"",p=(null===(s=a.match(/\d+/gi))||void 0===s?void 0:s.join(""))||"",y=e.pac_analytics.visitor.rockmanId,[4,w({window:e,slug:t,country:u,msisdn:p,device:d,offer:m,rockmanId:y,search:v,extraParamsQs:f})];case 1:if(!1===(S=r.sent()).success)throw _="ALREADY SUBSCRIBED"===S.message?"AlreadySubscribed":"InvalidMsisdn",h=S.error_code?l(S.error_code):_,j=new Error("".concat(h,":\n").concat(S.message)),Object.assign(j,{type:h,productUrl:null!==(c=S.product_url)&&void 0!==c?c:""}),j;return[2,n(n({},S),{keyword:S.displayKeyword})]}}))}))}var g={currentState:{type:"MSISDNEntry",result:i({keyword:"TEST OK",shortcode:"777"})}},I={currentState:{type:"MSISDNEntry",result:c({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},b={currentState:{type:"MSISDNEntry",result:u()}},M=function(t){var r=v(t);if(!r["mock-flow"])return b;switch(r["current-state"]){case"msisdn-entry-failure-state":return I;case"msisdn-entry-success-state":return g;default:return console.error("Mock Flow not supported"),b}}(window),R=o("moFlow/submitMSISDNAction",(function(e,o){var a=e.window,s=e.msisdn,c=e.extraParams,u=o.getState,l=o.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,e,o,v,y,S,_,h,w,E,g,I,b,M;return r(this,(function(r){switch(r.label){case 0:if(t=u(),!(null===(h=null===(_=null===(S=null==t?void 0:t.strategy)||void 0===S?void 0:S.currentState)||void 0===_?void 0:_.data)||void 0===h?void 0:h.config))return[2,l({errorType:"UnexpectedState"})];e=t.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),p.advancedInFlow("tallyman.v1-mo","msisdn-submitted",{msisdn:s}),[4,j(a,e,s,c)];case 2:return o=r.sent(),p.advancedInFlow("tallyman.v1-mo","msisdn-submission-success",{msisdn:s}),c&&c.storeMsisdn&&"true"===c.storeMsisdn?[4,f(s).then((function(t){t&&t.data&&t.data.success?p.customEvent("Flow","advance-auto","msisdn-stored-success"):p.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(t){p.customEvent("Flow","advance-auto","msisdn-stored-error",t)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return[2,{type:"MSISDNEntry",result:i(n({},o))}];case 5:return v=r.sent(),console.warn(v),y=v.type,p.recedeInFlow("tallyman.v1-mo","msisdn-submission-failure",{msisdn:s,errorType:y}),m.includes(y)&&(null===(E=null===(w=null==a?void 0:a.pac_analytics)||void 0===w?void 0:w.visitor)||void 0===E?void 0:E.waterfallRedirectUrl)&&(p.customEvent("tallyman.v1-mo","redirect","waterfall-redirect",{redirect_url:null===(I=null===(g=null==a?void 0:a.pac_analytics)||void 0===g?void 0:g.visitor)||void 0===I?void 0:I.waterfallRedirectUrl,errorType:y}),d(null===(M=null===(b=null==a?void 0:a.pac_analytics)||void 0===b?void 0:b.visitor)||void 0===M?void 0:M.waterfallRedirectUrl)),[2,l({errorType:y,productUrl:v.productUrl})];case 6:return[2]}}))}))})),k=o("moFlow/backToStartAction",(function(e,n){var o=n.dispatch,a=n.rejectWithValue;return t(void 0,void 0,void 0,(function(){return r(this,(function(t){try{p.recedeInFlow("tallyman.v1-mo","mo-state","requested to change phone number"),o(S())}catch(t){return console.warn(t),[2,a({errorType:"UnexpectedState"})]}return[2]}))}))})),T=a({name:"moFlow",initialState:M,reducers:{},extraReducers:function(t){t.addCase(R.pending,(function(t){t.currentState={type:"MSISDNEntry",result:s()}})).addCase(R.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(R.rejected,(function(t,r){t.currentState={type:"MSISDNEntry",result:c(r.payload)}}))}}),F=T.reducer;T.actions;export{k as backToStartAction,h as moFlowMatch,F as moFlowReducer,R as submitMSISDNAction,_ as useMoFlowState};
1
+ import{__awaiter as t,__generator as r,__read as e,__assign as n}from"tslib";import{createAsyncThunk as o,createSlice as a}from"@reduxjs/toolkit";import{S as i,L as s,F as c,N as u}from"./RemoteDataState-lcf8PfJd.js";import{h as d}from"./handleWaterfallRedirect-DztqrthA.js";import{n as l,r as m}from"./normaliseErrorCode-CVpyJZ6_.js";import{searchToObject as v}from"./searchToObject.js";import{s as f}from"./storeMsisdn-Cjq8_qYH.js";import{t as p}from"./tracker-DaaILhEr.js";import{c as y}from"./cleanSearchParams-Dl7ZDlew.js";import{i as S}from"./strategySlice-BMNt18ck.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-DaAFvpKD.js";import"./api-geirVksI.js";var _=function(t){return t((function(t){return t.moFlow.currentState}))};function h(t){var r=t.msisdnEntry;return function(t){return t.type,r(t.result)}}var w=function(n){var o=n.window,a=n.slug,i=n.country,s=n.msisdn,c=n.device,u=n.offer,d=n.rockmanId,l=n.extraParamsQs,m=n.search;return t(void 0,void 0,void 0,(function(){var t,n,v,f,p,S,_;return r(this,(function(r){switch(r.label){case 0:return o.api_ajax_url?[4,fetch(o.api_ajax_url).then((function(t){return t.json()}))]:[3,2];case 1:return n=r.sent(),[3,3];case 2:n=null,r.label=3;case 3:return t=n,m=y(m),v={action:"trigger-message",slug:a,country:i,msisdn:s,device:c,offerId:u,rockman_id:d,page:encodeURIComponent(null===(_=null==o?void 0:o.location)||void 0===_?void 0:_.href),sam_g_token:o.reCaptchaToken||"",language_code:o.languageCode||"",partner_form_action:(null==t?void 0:t.form_action)?encodeURIComponent(null==t?void 0:t.form_action):"",antifraud_id:o.antifraud_id||"",antifraud_id_js_code:o.antifraud_id_js_code||"",antifraud_id_js_link:o.antifraud_id_js_link||""},f=Object.entries(v).filter((function(t){var r=e(t,2);return r[0],r[1]})).map((function(t){var r=e(t,2),n=r[0],o=r[1];return"".concat(n,"=").concat(o)})).join("&"),p=o.DEV_BASE_URL||"",S="".concat(p,"/tallyman/v1/?").concat(f).concat(m?"&".concat(m):"","&").concat(l),o.MOCK_TRIGGER_MESSAGE_RESPONSE?[2,o.MOCK_TRIGGER_MESSAGE_RESPONSE]:[2,fetch(S).then((function(t){return t.json()}))]}}))}))};function j(e,o,a,i){var s,c;return t(this,void 0,void 0,(function(){var t;return r(this,(function(r){return t=n(n({},o||{}),{offer:null===(c=null===(s=e.pac_analytics)||void 0===s?void 0:s.visitor)||void 0===c?void 0:c.offer}),[2,E(e,t,a,i)]}))}))}function E(e,o,a,i){var s,c;return t(this,void 0,void 0,(function(){var t,u,d,m,v,f,p,y,S,_,h,j;return r(this,(function(r){switch(r.label){case 0:return t=o.slug,u=o.country,d=o.device,m=o.offer,v=e.location.search.substr(1)||"",f=i?"&".concat(Object.keys(i).map((function(t){return"".concat(t,"=").concat(i[t])})).join("&")):"",p=(null===(s=a.match(/\d+/gi))||void 0===s?void 0:s.join(""))||"",y=e.pac_analytics.visitor.rockmanId,[4,w({window:e,slug:t,country:u,msisdn:p,device:d,offer:m,rockmanId:y,search:v,extraParamsQs:f})];case 1:if(!1===(S=r.sent()).success)throw _="ALREADY SUBSCRIBED"===S.message?"AlreadySubscribed":"InvalidMsisdn",h=S.error_code?l(S.error_code):_,j=new Error("".concat(h,":\n").concat(S.message)),Object.assign(j,{type:h,productUrl:null!==(c=S.product_url)&&void 0!==c?c:""}),j;return[2,n(n({},S),{keyword:S.displayKeyword})]}}))}))}var g={currentState:{type:"MSISDNEntry",result:i({keyword:"TEST OK",shortcode:"777"})}},b={currentState:{type:"MSISDNEntry",result:c({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},I={currentState:{type:"MSISDNEntry",result:u()}},M=function(t){var r=v(t);if(!r["mock-flow"])return I;switch(r["current-state"]){case"msisdn-entry-failure-state":return b;case"msisdn-entry-success-state":case"check-subscription-success-state":return g;default:return console.error("Mock Flow not supported"),I}}(window),k=o("moFlow/submitMSISDNAction",(function(e,o){var a=e.window,s=e.msisdn,c=e.extraParams,u=o.getState,l=o.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,e,o,v,y,S,_,h,w,E,g,b,I,M;return r(this,(function(r){switch(r.label){case 0:if(t=u(),!(null===(h=null===(_=null===(S=null==t?void 0:t.strategy)||void 0===S?void 0:S.currentState)||void 0===_?void 0:_.data)||void 0===h?void 0:h.config))return[2,l({errorType:"UnexpectedState"})];e=t.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),p.advancedInFlow("tallyman.v1-mo","msisdn-submitted",{msisdn:s}),[4,j(a,e,s,c)];case 2:return o=r.sent(),p.advancedInFlow("tallyman.v1-mo","msisdn-submission-success",{msisdn:s}),c&&c.storeMsisdn&&"true"===c.storeMsisdn?[4,f(s).then((function(t){t&&t.data&&t.data.success?p.customEvent("Flow","advance-auto","msisdn-stored-success"):p.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(t){p.customEvent("Flow","advance-auto","msisdn-stored-error",t)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return[2,{type:"MSISDNEntry",result:i(n({},o))}];case 5:return v=r.sent(),console.warn(v),y=v.type,p.recedeInFlow("tallyman.v1-mo","msisdn-submission-failure",{msisdn:s,errorType:y}),m.includes(y)&&(null===(E=null===(w=null==a?void 0:a.pac_analytics)||void 0===w?void 0:w.visitor)||void 0===E?void 0:E.waterfallRedirectUrl)&&(p.customEvent("tallyman.v1-mo","redirect","waterfall-redirect",{redirect_url:null===(b=null===(g=null==a?void 0:a.pac_analytics)||void 0===g?void 0:g.visitor)||void 0===b?void 0:b.waterfallRedirectUrl,errorType:y}),d(null===(M=null===(I=null==a?void 0:a.pac_analytics)||void 0===I?void 0:I.visitor)||void 0===M?void 0:M.waterfallRedirectUrl)),[2,l({errorType:y,productUrl:v.productUrl})];case 6:return[2]}}))}))})),R=o("moFlow/backToStartAction",(function(e,n){var o=n.dispatch,a=n.rejectWithValue;return t(void 0,void 0,void 0,(function(){return r(this,(function(t){try{p.recedeInFlow("tallyman.v1-mo","mo-state","requested to change phone number"),o(S())}catch(t){return console.warn(t),[2,a({errorType:"UnexpectedState"})]}return[2]}))}))})),T=a({name:"moFlow",initialState:M,reducers:{},extraReducers:function(t){t.addCase(k.pending,(function(t){t.currentState={type:"MSISDNEntry",result:s()}})).addCase(k.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(k.rejected,(function(t,r){t.currentState={type:"MSISDNEntry",result:c(r.payload)}}))}}),F=T.reducer;T.actions;export{R as backToStartAction,h as moFlowMatch,F as moFlowReducer,k as submitMSISDNAction,_ as useMoFlowState};
2
2
  //# sourceMappingURL=moFlow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"moFlow.js","sources":["../src/flows/moFlow/hooks/useMoFlowState.ts","../src/flows/moFlow/match.ts","../src/flows/moFlow/api.ts","../src/flows/moFlow/main.ts","../src/flows/moFlow/moFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useMoFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.moFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport { MoFlowCurrentState, MSISDNEntryFailure, MSISDNEntrySuccess } from '../../sharedFlowTypes/MoTypes';\n\nfunction moFlowMatch<R>({\n msisdnEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n}): (state: MoFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n default:\n // TODO - this should be an error or something\n return msisdnEntry(state.result);\n }\n };\n}\n\nexport { moFlowMatch };\n","import { IGoogleReCaptcha, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\n\nconst getGoogleCaptcha = async (\n window: Window,\n country: string,\n slug: string,\n device: string,\n domain: string\n): Promise<IGoogleReCaptcha> => {\n const host = (window as Window).DEV_BASE_URL || '';\n\n return fetch(\n `${host}/tallyman/helper/?action=google-captcha-v3-config&country=${country}&slug=${slug}&device=${device}&domain=${domain}`\n ).then((x) => x.json());\n};\n\nconst triggerMessage = async ({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n extraParamsQs,\n search\n}: {\n window: Window;\n slug: string;\n country: string;\n msisdn: string;\n device: string;\n offer: string;\n rockmanId: string;\n search: string;\n extraParamsQs: string;\n}): Promise<IMSISDNSubmissionResult> => {\n // introduced https://www.notion.so/sammedia/CH-Agency-Bodkinco-Integration-ea1600ad175f451a9d351b6763ad7992\n const partnerAjaxResopnse: {\n form_action: string;\n } = window.api_ajax_url ? await fetch(window.api_ajax_url).then((x) => x.json()) : null;\n\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n const params = {\n action: 'trigger-message',\n slug,\n country,\n msisdn,\n device,\n offerId: offer,\n rockman_id: rockmanId,\n page: encodeURIComponent(window?.location?.href),\n sam_g_token: window.reCaptchaToken || '',\n language_code: window.languageCode || '',\n partner_form_action: partnerAjaxResopnse?.form_action ? encodeURIComponent(partnerAjaxResopnse?.form_action) : '',\n\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || ''\n };\n\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${search ? `&${search}` : ''}&${extraParamsQs}`;\n\n if (window.MOCK_TRIGGER_MESSAGE_RESPONSE) {\n return window.MOCK_TRIGGER_MESSAGE_RESPONSE;\n }\n return fetch(url).then((x) => x.json());\n};\n\nexport { getGoogleCaptcha, triggerMessage };\n","import { ICheckSubscriptionResult } from '../../common-types/ICheckSubscriptionResult';\nimport { IError } from '../../common-types/IError';\nimport { IConfig } from '../../common-types/Strategy';\nimport { checkSubscriptionByRockmanIdOnly } from '../../sharedApi/checkSubscriptionByRockmanIdOnly';\nimport { IGoogleReCaptcha, IKeywordShortcode, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\nimport { loop } from '../../utilities/helpers';\nimport loadScriptSrc from '../../utilities/loadScriptSrc';\nimport { normaliseErrorCode } from '../../utilities/normaliseErrorCode';\nimport { getGoogleCaptcha, triggerMessage } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const config: any = { ...(maybeConfig || {}), offer: window.pac_analytics?.visitor?.offer };\n return submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams);\n}\n\nexport const getGoogleReCaptchaConfig = async ({\n window,\n slug,\n country,\n device\n}: IConfig & { window: Window }): Promise<IGoogleReCaptcha> => {\n const domain = window.location.hostname;\n const result: IGoogleReCaptcha = await getGoogleCaptcha(window, country, slug, device, domain);\n if (result.success === true) {\n const srcUrl = `https://www.google.com/recaptcha/api.js?render=${result.site_key}`;\n loadScriptSrc({ url: srcUrl, key: result.site_key, isRecaptcha: true });\n }\n return result;\n};\n\nexport async function submitMSISDNWithConfig(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const { slug, country, device, offer } = config;\n const search = window.location.search.substr(1) || '';\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || '';\n const { rockmanId } = window.pac_analytics.visitor;\n\n const result: IMSISDNSubmissionResult = await triggerMessage({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n search,\n extraParamsQs\n });\n\n if (result.success === false) {\n // pick a default based on message, then override with error_code if available\n const defaultType = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMsisdn';\n\n const type = result.error_code ? normaliseErrorCode(result.error_code) : defaultType;\n\n // build, augment, log and throw\n const error = new Error(`${type}:\\n${result.message}`) as IError & {\n type: string;\n productUrl: string;\n };\n\n Object.assign(error, {\n type,\n productUrl: result.product_url ?? ''\n });\n\n throw error;\n } else {\n return { ...result, keyword: result.displayKeyword }; // based on discussion with Chanaka to avoid confusion in set up on bupper. Click2sms and mo will use display keyword\n }\n}\n\nexport async function moCheckSubscription(window: Window): Promise<string> {\n const { rockmanId } = window.pac_analytics.visitor;\n const check: () => Promise<ICheckSubscriptionResult> = () => checkSubscriptionByRockmanIdOnly({ window, rockmanId });\n\n const checkResult: ICheckSubscriptionResult = await loop(check, 60, (r) => r.success, 0);\n\n if (checkResult.success === true && checkResult.product_url && checkResult.product_url !== '') {\n window.location.href = decodeURIComponent(checkResult.product_url);\n return checkResult.product_url;\n }\n const error = new Error(`${'SubscriptionFailed'}:\\n${checkResult.message}`) as IError & { type: string };\n error.type = 'SubscriptionFailed';\n throw error;\n}\n\n// export const formatSMSLink = (keywordAndShortcode: IKeywordShortcode) =>\n// !!window.pac_analytics.visitor['x-requested-with'] &&\n// window.pac_analytics.visitor['x-requested-with'] !== null &&\n// window.pac_analytics.visitor['x-requested-with'].indexOf('com.facebook') !== -1\n// ? `sms://${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`\n// : typeof navigator !== 'undefined' && (/iPhone/i.test(navigator.userAgent) || /Mac OS/i.test(navigator.userAgent))\n// ? `sms:${keywordAndShortcode.shortcode}&body=${keywordAndShortcode.keyword}`\n// : `sms:${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`;\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoTypes';\nimport { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { handleWaterfallRedirect } from '../../utilities/handleWaterfallRedirect';\nimport { redirectErrorTypes } from '../../utilities/normaliseErrorCode';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport { identifyStrategy } from '../strategy';\nimport submitMSISDN from './main';\n\nexport const mockedMSISDNEntrySuccess: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n keyword: 'TEST OK',\n shortcode: '777'\n })\n }\n};\n\nexport const mockedMSISDNEntryFailure: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\nexport interface MoFlowState {\n currentState: {\n type: 'MSISDNEntry';\n result: RDS.RemoteDataState<any, any>; // Replace any with your specific error and data types\n };\n}\n\nconst defaultInitialState: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'msisdn-entry-failure-state':\n return mockedMSISDNEntryFailure;\n case 'msisdn-entry-success-state':\n return mockedMSISDNEntrySuccess;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}\n \n * Calls trigger-message api that returns a short code and key word\n * Sets completed stated\n */\nexport const submitMSISDNAction = createAsyncThunk<\n MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure;\n }\n>('moFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config } = state.strategy.currentState.data;\n\n try {\n // Start Trigger Message\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submitted', { msisdn });\n const keywordAndShortcode = await submitMSISDN(window, config, msisdn, extraParams);\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submission-success', { msisdn });\n // End Trigger Message\n\n // Start Store Msisdn\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End Store Msisdn\n\n return {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({ ...keywordAndShortcode })\n };\n } catch (ex) {\n console.warn(ex);\n\n const errorType = ex.type as MSISDNEntryErrorTypes;\n\n tracker.recedeInFlow('tallyman.v1-mo', 'msisdn-submission-failure', {\n msisdn,\n errorType\n });\n\n if (redirectErrorTypes.includes(errorType) && window?.pac_analytics?.visitor?.waterfallRedirectUrl) {\n tracker.customEvent('tallyman.v1-mo', 'redirect', 'waterfall-redirect', {\n redirect_url: window?.pac_analytics?.visitor?.waterfallRedirectUrl,\n errorType\n });\n handleWaterfallRedirect(window?.pac_analytics?.visitor?.waterfallRedirectUrl);\n }\n return rejectWithValue({\n errorType,\n productUrl: ex.productUrl\n });\n }\n});\n\nexport const backToStartAction = createAsyncThunk<\n any,\n any,\n {\n rejectValue: any; // Type for rejectWithValue\n }\n>('moFlow/backToStartAction', async (_, { dispatch, rejectWithValue }) => {\n try {\n tracker.recedeInFlow('tallyman.v1-mo', 'mo-state', 'requested to change phone number');\n dispatch(identifyStrategy());\n } catch (ex) {\n console.warn(ex);\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n});\n\nconst moFlowSlice = createSlice({\n name: 'moFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading() };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: moFlowReducer, actions: moFlowActions } = moFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectMoFlowState = (state: any) => state.moFlow;\n"],"names":["useMoFlowState","useSelector","state","moFlow","currentState","moFlowMatch","_a","msisdnEntry","type","result","triggerMessage","window","slug","country","msisdn","device","offer","rockmanId","extraParamsQs","search","api_ajax_url","fetch","then","x","json","_b","_d","partnerAjaxResopnse","cleanSearchParams","params","action","offerId","rockman_id","page","encodeURIComponent","_c","location","href","sam_g_token","reCaptchaToken","language_code","languageCode","partner_form_action","form_action","antifraud_id","antifraud_id_js_code","antifraud_id_js_link","queryString","Object","entries","filter","__read","map","key","value","concat","join","host","DEV_BASE_URL","url","MOCK_TRIGGER_MESSAGE_RESPONSE","submitMSISDN","maybeConfig","internationalMSISDN","extraParams","config","pac_analytics","visitor","submitMSISDNWithConfig","substr","keys","k","match","sent","success","defaultType","message","error_code","normaliseErrorCode","error","Error","assign","productUrl","product_url","__assign","keyword","displayKeyword","mockedMSISDNEntrySuccess","RDS.Success","shortcode","mockedMSISDNEntryFailure","RDS.Failure","errorType","defaultInitialState","RDS.NothingYet","initialState","searchToObject","console","setInitialState","submitMSISDNAction","createAsyncThunk","getState","rejectWithValue","_e","strategy","data","tracker","advancedInFlow","keywordAndShortcode","_m","storeMsisdn","customEvent","catch","warn","ex_1","recedeInFlow","redirectErrorTypes","includes","_f","_g","waterfallRedirectUrl","redirect_url","_j","_h","handleWaterfallRedirect","_l","_k","backToStartAction","_","dispatch","identifyStrategy","ex","moFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","moFlowReducer","reducer","actions"],"mappings":"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"}
1
+ {"version":3,"file":"moFlow.js","sources":["../src/flows/moFlow/hooks/useMoFlowState.ts","../src/flows/moFlow/match.ts","../src/flows/moFlow/api.ts","../src/flows/moFlow/main.ts","../src/flows/moFlow/moFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useMoFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.moFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport { MoFlowCurrentState, MSISDNEntryFailure, MSISDNEntrySuccess } from '../../sharedFlowTypes/MoTypes';\n\nfunction moFlowMatch<R>({\n msisdnEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n}): (state: MoFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n default:\n // TODO - this should be an error or something\n return msisdnEntry(state.result);\n }\n };\n}\n\nexport { moFlowMatch };\n","import { IGoogleReCaptcha, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\n\nconst getGoogleCaptcha = async (\n window: Window,\n country: string,\n slug: string,\n device: string,\n domain: string\n): Promise<IGoogleReCaptcha> => {\n const host = (window as Window).DEV_BASE_URL || '';\n\n return fetch(\n `${host}/tallyman/helper/?action=google-captcha-v3-config&country=${country}&slug=${slug}&device=${device}&domain=${domain}`\n ).then((x) => x.json());\n};\n\nconst triggerMessage = async ({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n extraParamsQs,\n search\n}: {\n window: Window;\n slug: string;\n country: string;\n msisdn: string;\n device: string;\n offer: string;\n rockmanId: string;\n search: string;\n extraParamsQs: string;\n}): Promise<IMSISDNSubmissionResult> => {\n // introduced https://www.notion.so/sammedia/CH-Agency-Bodkinco-Integration-ea1600ad175f451a9d351b6763ad7992\n const partnerAjaxResopnse: {\n form_action: string;\n } = window.api_ajax_url ? await fetch(window.api_ajax_url).then((x) => x.json()) : null;\n\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n const params = {\n action: 'trigger-message',\n slug,\n country,\n msisdn,\n device,\n offerId: offer,\n rockman_id: rockmanId,\n page: encodeURIComponent(window?.location?.href),\n sam_g_token: window.reCaptchaToken || '',\n language_code: window.languageCode || '',\n partner_form_action: partnerAjaxResopnse?.form_action ? encodeURIComponent(partnerAjaxResopnse?.form_action) : '',\n\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || ''\n };\n\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${search ? `&${search}` : ''}&${extraParamsQs}`;\n\n if (window.MOCK_TRIGGER_MESSAGE_RESPONSE) {\n return window.MOCK_TRIGGER_MESSAGE_RESPONSE;\n }\n return fetch(url).then((x) => x.json());\n};\n\nexport { getGoogleCaptcha, triggerMessage };\n","import { ICheckSubscriptionResult } from '../../common-types/ICheckSubscriptionResult';\nimport { IError } from '../../common-types/IError';\nimport { IConfig } from '../../common-types/Strategy';\nimport { checkSubscriptionByRockmanIdOnly } from '../../sharedApi/checkSubscriptionByRockmanIdOnly';\nimport { IGoogleReCaptcha, IKeywordShortcode, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\nimport { loop } from '../../utilities/helpers';\nimport loadScriptSrc from '../../utilities/loadScriptSrc';\nimport { normaliseErrorCode } from '../../utilities/normaliseErrorCode';\nimport { getGoogleCaptcha, triggerMessage } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const config: any = { ...(maybeConfig || {}), offer: window.pac_analytics?.visitor?.offer };\n return submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams);\n}\n\nexport const getGoogleReCaptchaConfig = async ({\n window,\n slug,\n country,\n device\n}: IConfig & { window: Window }): Promise<IGoogleReCaptcha> => {\n const domain = window.location.hostname;\n const result: IGoogleReCaptcha = await getGoogleCaptcha(window, country, slug, device, domain);\n if (result.success === true) {\n const srcUrl = `https://www.google.com/recaptcha/api.js?render=${result.site_key}`;\n loadScriptSrc({ url: srcUrl, key: result.site_key, isRecaptcha: true });\n }\n return result;\n};\n\nexport async function submitMSISDNWithConfig(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const { slug, country, device, offer } = config;\n const search = window.location.search.substr(1) || '';\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || '';\n const { rockmanId } = window.pac_analytics.visitor;\n\n const result: IMSISDNSubmissionResult = await triggerMessage({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n search,\n extraParamsQs\n });\n\n if (result.success === false) {\n // pick a default based on message, then override with error_code if available\n const defaultType = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMsisdn';\n\n const type = result.error_code ? normaliseErrorCode(result.error_code) : defaultType;\n\n // build, augment, log and throw\n const error = new Error(`${type}:\\n${result.message}`) as IError & {\n type: string;\n productUrl: string;\n };\n\n Object.assign(error, {\n type,\n productUrl: result.product_url ?? ''\n });\n\n throw error;\n } else {\n return { ...result, keyword: result.displayKeyword }; // based on discussion with Chanaka to avoid confusion in set up on bupper. Click2sms and mo will use display keyword\n }\n}\n\nexport async function moCheckSubscription(window: Window): Promise<string> {\n const { rockmanId } = window.pac_analytics.visitor;\n const check: () => Promise<ICheckSubscriptionResult> = () => checkSubscriptionByRockmanIdOnly({ window, rockmanId });\n\n const checkResult: ICheckSubscriptionResult = await loop(check, 60, (r) => r.success, 0);\n\n if (checkResult.success === true && checkResult.product_url && checkResult.product_url !== '') {\n window.location.href = decodeURIComponent(checkResult.product_url);\n return checkResult.product_url;\n }\n const error = new Error(`${'SubscriptionFailed'}:\\n${checkResult.message}`) as IError & { type: string };\n error.type = 'SubscriptionFailed';\n throw error;\n}\n\n// export const formatSMSLink = (keywordAndShortcode: IKeywordShortcode) =>\n// !!window.pac_analytics.visitor['x-requested-with'] &&\n// window.pac_analytics.visitor['x-requested-with'] !== null &&\n// window.pac_analytics.visitor['x-requested-with'].indexOf('com.facebook') !== -1\n// ? `sms://${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`\n// : typeof navigator !== 'undefined' && (/iPhone/i.test(navigator.userAgent) || /Mac OS/i.test(navigator.userAgent))\n// ? `sms:${keywordAndShortcode.shortcode}&body=${keywordAndShortcode.keyword}`\n// : `sms:${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`;\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoTypes';\nimport { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { handleWaterfallRedirect } from '../../utilities/handleWaterfallRedirect';\nimport { redirectErrorTypes } from '../../utilities/normaliseErrorCode';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport { identifyStrategy } from '../strategy';\nimport submitMSISDN from './main';\n\nexport const mockedMSISDNEntrySuccess: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n keyword: 'TEST OK',\n shortcode: '777'\n })\n }\n};\n\nexport const mockedMSISDNEntryFailure: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\nexport interface MoFlowState {\n currentState: {\n type: 'MSISDNEntry';\n result: RDS.RemoteDataState<any, any>; // Replace any with your specific error and data types\n };\n}\n\nconst defaultInitialState: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'msisdn-entry-failure-state':\n return mockedMSISDNEntryFailure;\n case 'msisdn-entry-success-state':\n return mockedMSISDNEntrySuccess;\n case 'check-subscription-success-state':\n return mockedMSISDNEntrySuccess;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}\n \n * Calls trigger-message api that returns a short code and key word\n * Sets completed stated\n */\nexport const submitMSISDNAction = createAsyncThunk<\n MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure;\n }\n>('moFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config } = state.strategy.currentState.data;\n\n try {\n // Start Trigger Message\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submitted', { msisdn });\n const keywordAndShortcode = await submitMSISDN(window, config, msisdn, extraParams);\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submission-success', { msisdn });\n // End Trigger Message\n\n // Start Store Msisdn\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End Store Msisdn\n\n return {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({ ...keywordAndShortcode })\n };\n } catch (ex) {\n console.warn(ex);\n\n const errorType = ex.type as MSISDNEntryErrorTypes;\n\n tracker.recedeInFlow('tallyman.v1-mo', 'msisdn-submission-failure', {\n msisdn,\n errorType\n });\n\n if (redirectErrorTypes.includes(errorType) && window?.pac_analytics?.visitor?.waterfallRedirectUrl) {\n tracker.customEvent('tallyman.v1-mo', 'redirect', 'waterfall-redirect', {\n redirect_url: window?.pac_analytics?.visitor?.waterfallRedirectUrl,\n errorType\n });\n handleWaterfallRedirect(window?.pac_analytics?.visitor?.waterfallRedirectUrl);\n }\n return rejectWithValue({\n errorType,\n productUrl: ex.productUrl\n });\n }\n});\n\nexport const backToStartAction = createAsyncThunk<\n any,\n any,\n {\n rejectValue: any; // Type for rejectWithValue\n }\n>('moFlow/backToStartAction', async (_, { dispatch, rejectWithValue }) => {\n try {\n tracker.recedeInFlow('tallyman.v1-mo', 'mo-state', 'requested to change phone number');\n dispatch(identifyStrategy());\n } catch (ex) {\n console.warn(ex);\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n});\n\nconst moFlowSlice = createSlice({\n name: 'moFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading() };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: moFlowReducer, actions: moFlowActions } = moFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectMoFlowState = (state: any) => state.moFlow;\n"],"names":["useMoFlowState","useSelector","state","moFlow","currentState","moFlowMatch","_a","msisdnEntry","type","result","triggerMessage","window","slug","country","msisdn","device","offer","rockmanId","extraParamsQs","search","api_ajax_url","fetch","then","x","json","_b","_d","partnerAjaxResopnse","cleanSearchParams","params","action","offerId","rockman_id","page","encodeURIComponent","_c","location","href","sam_g_token","reCaptchaToken","language_code","languageCode","partner_form_action","form_action","antifraud_id","antifraud_id_js_code","antifraud_id_js_link","queryString","Object","entries","filter","__read","map","key","value","concat","join","host","DEV_BASE_URL","url","MOCK_TRIGGER_MESSAGE_RESPONSE","submitMSISDN","maybeConfig","internationalMSISDN","extraParams","config","pac_analytics","visitor","submitMSISDNWithConfig","substr","keys","k","match","sent","success","defaultType","message","error_code","normaliseErrorCode","error","Error","assign","productUrl","product_url","__assign","keyword","displayKeyword","mockedMSISDNEntrySuccess","RDS.Success","shortcode","mockedMSISDNEntryFailure","RDS.Failure","errorType","defaultInitialState","RDS.NothingYet","initialState","searchToObject","console","setInitialState","submitMSISDNAction","createAsyncThunk","getState","rejectWithValue","_e","strategy","data","tracker","advancedInFlow","keywordAndShortcode","_m","storeMsisdn","customEvent","catch","warn","ex_1","recedeInFlow","redirectErrorTypes","includes","_f","_g","waterfallRedirectUrl","redirect_url","_j","_h","handleWaterfallRedirect","_l","_k","backToStartAction","_","dispatch","identifyStrategy","ex","moFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","moFlowReducer","reducer","actions"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{__assign as r}from"tslib";var t=function(t){return void 0!==t?t.location.search.substring(1).split("&").filter((function(r){return!!r&&r.length>0})).map((function(r){return r.split("=")})).reduce((function(t,n){var i;return r(r({},t),((i={})[n[0]]=n[1],i))}),{}):{}};export{t as searchToObject};
1
+ function r(r){if(!r||!r.location||!r.location.search)return{};var e=new URL(r.location.href).searchParams;return Object.fromEntries(e.entries())}export{r as searchToObject};
2
2
  //# sourceMappingURL=searchToObject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"searchToObject.js","sources":["../src/utilities/searchToObject.ts"],"sourcesContent":["export const searchToObject = (window: Window) => {\n if (typeof window !== 'undefined') {\n return window.location.search\n .substring(1)\n .split('&')\n .filter((x) => !!x && x.length > 0)\n .map((kv) => kv.split('='))\n .reduce((a, b) => ({ ...a, [b[0]]: b[1] }), {});\n }\n return {};\n};\n"],"names":["searchToObject","window","location","search","substring","split","filter","x","length","map","kv","reduce","a","b","__assign","_a"],"mappings":"iCAAO,IAAMA,EAAiB,SAACC,GAC7B,YAAsB,IAAXA,EACFA,EAAOC,SAASC,OACpBC,UAAU,GACVC,MAAM,KACNC,QAAO,SAACC,GAAM,QAAEA,GAAKA,EAAEC,OAAS,KAChCC,KAAI,SAACC,GAAO,OAAAA,EAAGL,MAAM,QACrBM,QAAO,SAACC,EAAGC,SAAM,OAAMC,EAAAA,EAAA,CAAA,EAAAF,KAAIG,EAAA,CAAA,GAAAF,EAAE,IAAKA,EAAE,GAAKE,GAAA,GAAE,CAAE,GAE3C,EACT"}
1
+ {"version":3,"file":"searchToObject.js","sources":["../src/utilities/searchToObject.ts"],"sourcesContent":["import { IMockFlowParams, IStrategyIDentifyUserResult } from '../sharedFlowTypes/StrategyTypes';\n\n// utils/searchToObject.ts\nexport function searchToObject(win: Window): IMockFlowParams<any> | IStrategyIDentifyUserResult | any {\n if (!win || !win.location || !win.location.search) return {};\n\n // URLSearchParams automatically decodes percent-encoding\n const params = new URL(win.location.href).searchParams;\n\n // Object.fromEntries turns the iterable into a plain object\n return Object.fromEntries(params.entries());\n}\n"],"names":["searchToObject","win","location","search","params","URL","href","searchParams","Object","fromEntries","entries"],"mappings":"AAGM,SAAUA,EAAeC,GAC7B,IAAKA,IAAQA,EAAIC,WAAaD,EAAIC,SAASC,OAAQ,MAAO,GAG1D,IAAMC,EAAS,IAAIC,IAAIJ,EAAIC,SAASI,MAAMC,aAG1C,OAAOC,OAAOC,YAAYL,EAAOM,UACnC"}
@@ -68,4 +68,4 @@ declare type ISubscribeResult = {
68
68
  };
69
69
  declare type IMockOneClickFlowStates = 'redirect-url-success-state' | 'subscribe-ajax-state';
70
70
 
71
- export type { AJAXSUBSCRIBEState as A, GETREDIRECTUrlState as G, IGETREDIRECTURLFailure as I, OneClickFlowState as O, SubscribeFailure as S, OneClickFlowCurrentState as a, IGETREDIRECTURLSuccess as b, SubscribeSuccess as c, SubscribeUserErrorTypes as d, ILinkExtraParams as e, IIDentifyUserResult as f, IHEResult as g, ISubscribeResult as h, IMockOneClickFlowStates as i };
71
+ export type { AJAXSUBSCRIBEState as A, GETREDIRECTUrlState as G, IGETREDIRECTURLFailure as I, OneClickFlowCurrentState as O, SubscribeFailure as S, IGETREDIRECTURLSuccess as a, SubscribeSuccess as b, OneClickFlowState as c, SubscribeUserErrorTypes as d, ILinkExtraParams as e, IIDentifyUserResult as f, IHEResult as g, ISubscribeResult as h, IMockOneClickFlowStates as i };
@@ -4,9 +4,9 @@ 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
6
  import { d as MoFlowState } from './MoTypes-DgYUj5Qm.js';
7
- import { O as OneClickFlowState } from './OneClickTypes-CgHVbYo3.js';
7
+ import { c as OneClickFlowState } from './OneClickTypes-BNg9Ru0u.js';
8
8
  import { f as PinFlowState } from './PinTypes-MlcXDSIr.js';
9
- import { U as UssdFlowState } from './UssdTypes-C7QlIW11.js';
9
+ import { c as UssdFlowState } from './UssdTypes-BSsSF8E9.js';
10
10
 
11
11
  declare type IIdentifyResult = {
12
12
  operator: string;
@@ -31,4 +31,4 @@ declare type IMSISDNSubmissionResult = {
31
31
  };
32
32
  declare type IMockUssdFlowStates = 'msisdn-entry-success-state' | 'msisdn-entry-failure-state';
33
33
 
34
- export type { IKeywordShortcode as I, MSISDNEntryState as M, UssdFlowState as U, MSISDNEntryFailure as a, MSISDNEntrySuccess as b, UssdFlowCurrentState as c, MSISDNEntryErrorTypes as d, IMSISDNSubmissionResult as e, IMockUssdFlowStates as f };
34
+ export type { IKeywordShortcode as I, MSISDNEntryState as M, UssdFlowCurrentState as U, MSISDNEntryFailure as a, MSISDNEntrySuccess as b, UssdFlowState as c, MSISDNEntryErrorTypes as d, IMSISDNSubmissionResult as e, IMockUssdFlowStates as f };
@@ -3,7 +3,7 @@ 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-BAs3St_c.js';
6
+ import { i as IHash } from './StrategyTypes-BlqY9peI.js';
7
7
  import { useSelector } from 'react-redux';
8
8
  import { R as RemoteDataState } from './RemoteDataState-D1aFrz8W.js';
9
9
  import './Strategy-N2e6pvR0.js';
@@ -11,9 +11,9 @@ import './CreditCardTypes-BvAmIdgA.js';
11
11
  import './MoRedirTypes-CpTYupHS.js';
12
12
  import './MoTypes-DgYUj5Qm.js';
13
13
  import './normaliseErrorCode-DY03EaiP.js';
14
- import './OneClickTypes-CgHVbYo3.js';
14
+ import './OneClickTypes-BNg9Ru0u.js';
15
15
  import './PinTypes-MlcXDSIr.js';
16
- import './UssdTypes-C7QlIW11.js';
16
+ import './UssdTypes-BSsSF8E9.js';
17
17
 
18
18
  interface LOAD_OC2SMSArgs {
19
19
  window: Window;
@@ -1,5 +1,5 @@
1
- import { a as OneClickFlowCurrentState, I as IGETREDIRECTURLFailure, b as IGETREDIRECTURLSuccess, S as SubscribeFailure, c as SubscribeSuccess, G as GETREDIRECTUrlState, A as AJAXSUBSCRIBEState, O as OneClickFlowState } from './OneClickTypes-CgHVbYo3.js';
2
- export { g as IHEResult, f as IIDentifyUserResult, e as ILinkExtraParams, i as IMockOneClickFlowStates, h as ISubscribeResult, d as SubscribeUserErrorTypes } from './OneClickTypes-CgHVbYo3.js';
1
+ import { O as OneClickFlowCurrentState, I as IGETREDIRECTURLFailure, a as IGETREDIRECTURLSuccess, S as SubscribeFailure, b as SubscribeSuccess, G as GETREDIRECTUrlState, A as AJAXSUBSCRIBEState, c as OneClickFlowState } from './OneClickTypes-BNg9Ru0u.js';
2
+ export { g as IHEResult, f as IIDentifyUserResult, e as ILinkExtraParams, i as IMockOneClickFlowStates, h as ISubscribeResult, d as SubscribeUserErrorTypes } from './OneClickTypes-BNg9Ru0u.js';
3
3
  import { useSelector } from 'react-redux';
4
4
  import { R as RemoteDataState } from './RemoteDataState-D1aFrz8W.js';
5
5
  import * as redux from 'redux';
@@ -1,3 +1,15 @@
1
- declare const searchToObject: (window: Window) => {};
1
+ import { M as IMockFlowParams, K as IStrategyIDentifyUserResult } from './StrategyTypes-BlqY9peI.js';
2
+ import './RemoteDataState-D1aFrz8W.js';
3
+ import './Strategy-N2e6pvR0.js';
4
+ import './Click2smsTypes-BbhnGxiA.js';
5
+ import './CreditCardTypes-BvAmIdgA.js';
6
+ import './MoRedirTypes-CpTYupHS.js';
7
+ import './MoTypes-DgYUj5Qm.js';
8
+ import './normaliseErrorCode-DY03EaiP.js';
9
+ import './OneClickTypes-BNg9Ru0u.js';
10
+ import './PinTypes-MlcXDSIr.js';
11
+ import './UssdTypes-BSsSF8E9.js';
12
+
13
+ declare function searchToObject(win: Window): IMockFlowParams<any> | IStrategyIDentifyUserResult | any;
2
14
 
3
15
  export { searchToObject };
@@ -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-BAs3St_c.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-BAs3St_c.js';
3
+ import { S as StrategyCurrentState, I as IDENTIFYMSISDNEntryFailure, a as IDENTIFYMSISDNEntrySuccess, P as PossibleTypes, C as ConfigDetails$1, b as StrategyState } from './StrategyTypes-BlqY9peI.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-BlqY9peI.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';
@@ -12,9 +12,9 @@ import './CreditCardTypes-BvAmIdgA.js';
12
12
  import './MoRedirTypes-CpTYupHS.js';
13
13
  import './MoTypes-DgYUj5Qm.js';
14
14
  import './normaliseErrorCode-DY03EaiP.js';
15
- import './OneClickTypes-CgHVbYo3.js';
15
+ import './OneClickTypes-BNg9Ru0u.js';
16
16
  import './PinTypes-MlcXDSIr.js';
17
- import './UssdTypes-C7QlIW11.js';
17
+ import './UssdTypes-BSsSF8E9.js';
18
18
 
19
19
  declare const useStrategyState: (useSelector: typeof useSelector) => StrategyCurrentState;
20
20
 
@@ -1,5 +1,5 @@
1
- import { M as MSISDNEntryState, a as MSISDNEntryFailure, b as MSISDNEntrySuccess, c as UssdFlowCurrentState, U as UssdFlowState } from './UssdTypes-C7QlIW11.js';
2
- export { I as IKeywordShortcode, e as IMSISDNSubmissionResult, f as IMockUssdFlowStates, d as MSISDNEntryErrorTypes } from './UssdTypes-C7QlIW11.js';
1
+ import { M as MSISDNEntryState, a as MSISDNEntryFailure, b as MSISDNEntrySuccess, U as UssdFlowCurrentState, c as UssdFlowState } from './UssdTypes-BSsSF8E9.js';
2
+ export { I as IKeywordShortcode, e as IMSISDNSubmissionResult, f as IMockUssdFlowStates, d as MSISDNEntryErrorTypes } from './UssdTypes-BSsSF8E9.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';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ouisys-engine",
3
- "version": "5.1.12",
3
+ "version": "5.1.14",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "directories": "dist dev-tools",