ouisys-engine 5.1.23 → 5.1.24
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 +1 -1
- package/dist/moRedirFlow.js +1 -1
- package/dist/oneClickFlow.js +3 -1
- package/dist/oneClickFlow.js.map +1 -1
- package/dist/pinFlow.js +1 -1
- package/dist/src/flows/strategy/main.d.ts.map +1 -1
- package/dist/src/flows/strategy/strategies/headerEnrichment.d.ts.map +1 -1
- package/dist/src/utilities/addEmpelloToken.d.ts.map +1 -1
- package/dist/strategy.js +2 -2
- package/dist/{strategySlice-DEsw1xc-.js → strategySlice-C_5V7fUf.js} +3 -1
- package/dist/strategySlice-C_5V7fUf.js.map +1 -0
- package/dist/ussdFlow.js +1 -1
- package/package.json +1 -1
- package/dist/strategySlice-DEsw1xc-.js.map +0 -1
package/dist/moFlow.js
CHANGED
|
@@ -7,7 +7,7 @@ import { searchToObject } from './searchToObject.js';
|
|
|
7
7
|
import { s as storeMsisdn } from './storeMsisdn-ChiBh8mI.js';
|
|
8
8
|
import { t as tracker } from './tracker-B_zsMRN2.js';
|
|
9
9
|
import { c as cleanSearchParams } from './cleanSearchParams-B2jK3H1j.js';
|
|
10
|
-
import { i as identifyStrategy } from './strategySlice-
|
|
10
|
+
import { i as identifyStrategy } from './strategySlice-C_5V7fUf.js';
|
|
11
11
|
import 'pacman-client';
|
|
12
12
|
import 'uuid';
|
|
13
13
|
import './getConfig.js';
|
package/dist/moRedirFlow.js
CHANGED
|
@@ -6,7 +6,7 @@ import { searchToObject } from './searchToObject.js';
|
|
|
6
6
|
import { s as storeMsisdn } from './storeMsisdn-ChiBh8mI.js';
|
|
7
7
|
import { t as tracker } from './tracker-B_zsMRN2.js';
|
|
8
8
|
import { u as updateUrlWithParams } from './updateUrlWithParams-ZaZt1BCf.js';
|
|
9
|
-
import { t as tryGetIPRangeName, i as identifyStrategy } from './strategySlice-
|
|
9
|
+
import { t as tryGetIPRangeName, i as identifyStrategy } from './strategySlice-C_5V7fUf.js';
|
|
10
10
|
import { c as cleanSearchParams } from './cleanSearchParams-B2jK3H1j.js';
|
|
11
11
|
import 'pacman-client';
|
|
12
12
|
import 'uuid';
|
package/dist/oneClickFlow.js
CHANGED
|
@@ -3,7 +3,7 @@ import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
|
|
|
3
3
|
import { S as Success, N as NothingYet, L as Loading, F as Failure } from './RemoteDataState-CwHLI23e.js';
|
|
4
4
|
import { u as updateUrlParameter, t as tracker } from './tracker-B_zsMRN2.js';
|
|
5
5
|
import { searchToObject } from './searchToObject.js';
|
|
6
|
-
import { c as setStrategyExtraData, f as flowMapping } from './strategySlice-
|
|
6
|
+
import { c as setStrategyExtraData, f as flowMapping } from './strategySlice-C_5V7fUf.js';
|
|
7
7
|
import { b as bupperizeCountry } from './api-oPdBWsMC.js';
|
|
8
8
|
import { l as loadScriptInnerHtml } from './loadScriptInnerHtml-CstJVRED.js';
|
|
9
9
|
import { c as cleanSearchParams } from './cleanSearchParams-B2jK3H1j.js';
|
|
@@ -47,6 +47,8 @@ function addEmpelloToken(_a) {
|
|
|
47
47
|
return [4 /*yield*/, new Promise(function (resolve) {
|
|
48
48
|
// check if empello script is loaded and available
|
|
49
49
|
var checkEmpelloAvailability = setInterval(function () {
|
|
50
|
+
// @ts-ignore
|
|
51
|
+
// eslint-disable-next-line no-console
|
|
50
52
|
console.log('checkEmpAvailability');
|
|
51
53
|
if (window.Empello) {
|
|
52
54
|
clearInterval(checkEmpelloAvailability);
|
package/dist/oneClickFlow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oneClickFlow.js","sources":["../../src/flows/oneClickFlow/hooks/useOneClickFlowState.ts","../../src/flows/oneClickFlow/match.ts","../../src/utilities/addEmpelloToken.ts","../../src/utilities/replaceUrlParam.ts","../../src/flows/oneClickFlow/api.ts","../../src/flows/oneClickFlow/main.ts","../../src/flows/oneClickFlow/oneClickFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useOneClickFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.oneClickFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n IGETREDIRECTURLFailure,\n IGETREDIRECTURLSuccess,\n OneClickFlowCurrentState,\n SubscribeFailure,\n SubscribeSuccess\n} from '../../sharedFlowTypes/OneClickTypes';\n\nfunction oneClickFlowMatch<R>({\n getRedirectUrl,\n subscribe\n}: {\n getRedirectUrl: (rds: RDS.RemoteDataState<IGETREDIRECTURLFailure, IGETREDIRECTURLSuccess>) => R;\n subscribe?: (rds: RDS.RemoteDataState<SubscribeFailure, SubscribeSuccess>) => R;\n}): (state: OneClickFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'GET_REDIRECT_URL':\n return getRedirectUrl(state.result);\n case 'SUBCRIBE_AJAX':\n return subscribe(state.result);\n default:\n // TODO - this should be an error or something\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return getRedirectUrl(state.result);\n }\n };\n}\n\nexport { oneClickFlowMatch };\n","import { updateUrlParameter } from '../pacman/queryString';\n\nexport async function addEmpelloToken({\n currentRedirectUrl,\n country\n}: {\n currentRedirectUrl: string;\n country: string;\n}) {\n if (country.toLowerCase() === 'pe' && window?.pac_analytics?.visitor?.ip_range_name?.toLowerCase()?.includes('pe')) {\n // Empello script is added on server\n\n await new Promise<void>((resolve) => {\n // check if empello script is loaded and available\n const checkEmpelloAvailability = setInterval(() => {\n console.log('checkEmpAvailability');\n if (window.Empello) {\n clearInterval((checkEmpelloAvailability as unknown) as number);\n resolve();\n }\n }, 10);\n });\n if (typeof window !== 'undefined' && window.Empello) {\n // call getToken function from empello\n const token = await new Promise<string>((resolve) => {\n window.Empello?.getToken((empelloToken: string) => {\n resolve(empelloToken);\n });\n });\n\n const url = updateUrlParameter(currentRedirectUrl, 'empello_token', token);\n return url;\n }\n }\n\n return currentRedirectUrl;\n}\n","export const replaceUrlParam = (url: string, paramName: string, paramValue = '') => {\n const pattern = new RegExp(`\\\\b(${paramName}=).*?(&|#|$)`);\n if (url.search(pattern) >= 0) {\n return url.replace(pattern, `$1${paramValue}$2`);\n }\n const newUrl = url.replace(/[?#]$/, '');\n return `${newUrl + paramName}=${paramValue}&`;\n};\n","import { IHash } from '../../common-types/IHash';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport const getRedirectAPI = () => {};\n\nconst getUrlWithParams = (baseURL: string, params: IHash) => {\n const queryParams = new URLSearchParams(params).toString();\n return `${baseURL}&${queryParams}`;\n};\n\nexport const oneClickSubscribeByUrlFromParams = async ({\n window,\n extraParams,\n search,\n url\n}: {\n window: Window;\n extraParams?: IHash;\n search: string;\n url: string;\n}) => {\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n const evinaTid = window?.tid || '';\n const isCleanTraffic = window?.shouldBlock ? 'false' : 'true';\n\n const extraParamsQs = Object.entries(extraParams || {})\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\n .join('&');\n\n try {\n const resultUrl = getUrlWithParams(url, {\n sam_evina_tid: evinaTid,\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n 'is-clean-traffic': isCleanTraffic,\n ...Object.fromEntries(new URLSearchParams(extraParamsQs))\n });\n\n const response = await fetch(`${resultUrl}${search ? `&${search}` : ''}`);\n const result = await response.json();\n return result;\n } catch (error) {\n console.error('Error fetching subscription:', error);\n throw error; // Rethrow or handle error as needed\n }\n};\n\nexport const oneClickSubscribe = async ({\n window,\n country,\n slug,\n device,\n offer,\n msisdn,\n operator,\n rockmanId,\n extraParams,\n search,\n evinaTid\n}: {\n window?: Window;\n country: string;\n slug: string;\n device: 'smart' | 'feature';\n offer: string;\n msisdn: string;\n operator: string;\n rockmanId: string;\n extraParams: IHash;\n search: string;\n evinaTid?: string;\n}): Promise<any> => {\n const extraParamsQs = `&${Object.keys(extraParams)\n .map((k) => (extraParams[k] ? `${k}=${extraParams[k]}` : ''))\n .filter(Boolean)\n .join('&')}`;\n\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n\n // Base parameters object\n const params = {\n action: 'one-click-subscribe',\n country,\n slug,\n device,\n offerId: offer,\n msisdn,\n operator,\n rockman_id: rockmanId,\n sam_evina_tid: evinaTid,\n page: encodeURIComponent(window?.location?.href),\n language_code: window.languageCode || '',\n partner_transaction_id: window.partner_transaction_id || '',\n partner_timestamp: window.partner_timestamp || '',\n partner_cid: window.partner_cid || '',\n\n antifraud_id: window.antifraud_id || '',\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n zain_antifraud_id: window.zain_antifraud_id || '',\n korek_antifraud_id: window.korek_antifraud_id || ''\n };\n\n // Convert params object to query string\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${extraParamsQs}${search ? `&${search}` : ''}`;\n\n return fetch(url).then((x) => x.json());\n};\n","import { IError } from '../../common-types/IError';\nimport {\n IIDentifyUserResult,\n ILinkExtraParams,\n ISubscribeParams,\n ISubscribeResult\n} from '../../sharedFlowTypes/OneClickTypes';\nimport { IConfig } from '../../sharedFlowTypes/StrategyTypes';\nimport { bupperizeCountry } from '../../utilities/bupperizeCountry';\nimport { loadScriptInnerHtml } from '../../utilities/loadScriptInnerHtml';\nimport { replaceUrlParam } from '../../utilities/replaceUrlParam';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { oneClickSubscribe, oneClickSubscribeByUrlFromParams } from './api';\n\nexport const additionalQueryString = `msisdnSubmitted=Y&legalCheckbox=Y&incentivizedCheckbox=Y&op_confirmCheckbox=N`;\n\nconst fetchJsonp: <T>(_url: string) => Promise<T> = (_url: string) => {\n let url = _url;\n const ouisys_callback_function = `ouisys_callback_function${Math.floor(Math.random() * 10000)}`;\n return new Promise((resolve, reject) => {\n // @ts-ignore\n window[ouisys_callback_function] = (arg) => {\n resolve(arg);\n };\n\n url += url.indexOf('?') === -1 ? '?' : '&';\n url += `jsonp=${ouisys_callback_function}`;\n const script = document.createElement('script');\n script.src = url;\n script.id = ouisys_callback_function;\n document.body.appendChild(script);\n\n // Caught if got 404/500\n script.onerror = () => {\n reject(new Error(`JSONP request to ${_url} failed`));\n };\n });\n};\n\nexport const getRedirectUrl = async ({\n window,\n maybeConfig,\n extraParams\n}: {\n window: Window;\n maybeConfig: IConfig;\n extraParams?: ILinkExtraParams;\n}): Promise<{\n subscription_url?: string;\n redirect_url?: string;\n action?: () => Promise<string>;\n}> => {\n if (typeof window === 'undefined') {\n // eslint-disable-next-line no-throw-literal, no-script-url\n throw \"javascript: console.error('SSR'); void 6\";\n } else {\n const { country, slug, queryString, apiAction } = maybeConfig;\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const { offer } = window.pac_analytics.visitor;\n const s = window.location.search.substr(1);\n // @ts-ignore\n let search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(([k, v]) => `${k}=${v}`)).join('&');\n\n Object.keys(extraParams).forEach((element, index) => {\n // Check if search already has query parameters\n if (search.length > 0) {\n // If there are existing parameters, add '&' before appending the new one\n search += '&';\n }\n search = `${replaceUrlParam(search, element, extraParams[element])}${index === 1 ? '&' : ''}`;\n });\n\n const { rockmanId } = window.pac_analytics.visitor;\n\n if (apiAction === 'identify-user') {\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?action=identify-user&country=${bupperizeCountry(\n country\n )}&slug=${slug}&device=${'smart'}&offerId=${offer}&rockman_id=${rockmanId}&sam_evina_tid=${evinaTid}&${search}`;\n const result = await fetchJsonp<IIDentifyUserResult>(url);\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return {\n subscription_url: result.subscription_url || result.redirect_url,\n action: () => subscribe({ url: result.subscription_url, config: maybeConfig })\n };\n }\n } else if (apiAction === 'he') {\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?action=he&country=${bupperizeCountry(\n country\n )}&slug=${slug}&device=${'smart'}&offerId=${offer}&rockman_id=${rockmanId}&sam_evina_tid=${evinaTid}&${search}`;\n const result = await fetch(url).then((x) => x.json());\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n loadScriptInnerHtml(result.source);\n return { redirect_url: result.redirectUrlWithReplacedUniqid };\n }\n } else {\n if (country.toLowerCase() === 'om') {\n const searchObj = searchToObject(window) as {\n redirect_url: string;\n url: string;\n msisdn: string;\n success: 'true' | 'false';\n };\n if (searchObj.success === 'false') {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return { redirect_url: searchObj.redirect_url || searchObj.url };\n }\n }\n const host = (window as Window).DEV_BASE_URL || '';\n\n const params = new URLSearchParams({\n action: 'redirect',\n device: 'smart',\n slug,\n offerId: offer,\n country: bupperizeCountry(country),\n rockman_id: rockmanId,\n sam_evina_tid: evinaTid,\n ...(window?.location?.href && { page: encodeURIComponent(window?.location?.href) }),\n ...(window?.pac_analytics?.visitor?.ip && { ip_address: window?.pac_analytics?.visitor?.ip }),\n ...(window?.pac_analytics?.visitor?.ipRangeOperator && {\n ip_range_operator: window?.pac_analytics?.visitor?.ipRangeOperator\n }),\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n zain_antifraud_id: window.zain_antifraud_id || '',\n korek_antifraud_id: window.korek_antifraud_id || ''\n });\n\n const url = `${host}/tallyman/v1/?${params.toString()}${search ? `&${search}` : ''}`;\n const result = await fetch(url).then((x) => x.json());\n\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return { redirect_url: result.redirect_url };\n }\n }\n }\n};\n\nexport const subscribe = async ({ url, config: maybeConfig, msisdn, operator, extraParams }: ISubscribeParams) => {\n let result: ISubscribeResult = null;\n\n if (url && url !== '') {\n const { queryString } = maybeConfig;\n const s = window.location.search.substr(1);\n // @ts-ignore\n const search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(([k, v]) => `${k}=${v}`)).join('&');\n\n await oneClickSubscribeByUrlFromParams({\n window,\n extraParams,\n search,\n url\n });\n } else {\n const config: IConfig = { offer: window.pac_analytics.visitor.offer, ...(maybeConfig || {}) };\n const newExtraParams = extraParams || {};\n const isSkipValidation = window?.pac_analytics?.visitor?.heMsisdnDecryptedByApiResult?.validateMsisdn === false;\n // @ts-ignore\n if (isSkipValidation) {\n // Search param is set to 1 for header enrichment when the msisdn is masked\n newExtraParams['skip-validation'] = '1';\n }\n\n const { rockmanId } = window.pac_analytics.visitor;\n\n const { slug, country, device, offer } = config;\n\n const search = window.location.search.substr(1) || '';\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n result = await oneClickSubscribe({\n window,\n country,\n slug,\n device,\n offer,\n msisdn,\n operator,\n rockmanId,\n extraParams: newExtraParams,\n search,\n evinaTid\n });\n }\n\n if (result.success === false) {\n const subscribeError = new Error(`Error in subscribe() one-click-subscribe action:\\n${result.message}`) as {\n productUrl: string;\n } & IError;\n subscribeError.type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'SubscriptionError';\n subscribeError.productUrl = result.product_url ? result.product_url : '';\n subscribeError.message = result.message;\n throw subscribeError;\n } else {\n return result.product_url || result.redirect_url;\n }\n};\n\nexport const getRedirectUrlBupperWay = async (\n window: Window,\n maybeConfig: IConfig,\n extraParams?: ILinkExtraParams\n): Promise<string> => {\n if (typeof window === 'undefined') {\n // eslint-disable-next-line no-script-url\n return \"javascript: console.error('SSR'); void 6\";\n }\n const { country, slug, queryString } = maybeConfig;\n const { offer } = window.pac_analytics.visitor;\n const s = window.location.search.substr(1);\n // @ts-ignore\n const search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(([k, v]) => `${k}=${v}`)).join('&');\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n\n // one click flow must use http not https\n const xcid = window.location.href.split('/')[3].split('?')[0];\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const baseHostBupper = window?.pac_analytics?.visitor?.bupperRedirectHost\n ? window.atob(window?.pac_analytics?.visitor?.bupperRedirectHost)\n : null;\n const host = baseHostBupper || (window as Window).DEV_BASE_URL_BUPPER || '';\n\n return `${host}/${bupperizeCountry(country)}/${slug}?offer=${offer}&atmobirun=1&rockman_id=${\n window.pac_analytics.visitor.rockmanId\n }&redirPixels=${window.location.host}&sam_evina_tid=${evinaTid}&x-xcid=${xcid}${extraParamsQs}&${search}`;\n};\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n AJAXSUBSCRIBEState,\n GETREDIRECTUrlState,\n IGETREDIRECTURLFailure,\n OneClickFlowState,\n SubscribeFailure\n} from '../../sharedFlowTypes/OneClickTypes';\nimport { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { addEmpelloToken } from '../../utilities/addEmpelloToken';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { tracker } from '../../utilities/tracker';\nimport { flowMapping } from '../strategy/main';\nimport { setStrategyExtraData } from '../strategy/strategySlice';\nimport { getRedirectUrl, getRedirectUrlBupperWay, subscribe } from './main';\n\nexport const mockedRedirectUrlSuccessState: OneClickFlowState = {\n currentState: {\n type: 'GET_REDIRECT_URL',\n // @ts-ignore\n result: RDS.Success<IGETREDIRECTURLFailure, IGETREDIRECTURLSuccess>({ redirectUrl: '/product' })\n }\n};\n\nexport const mockedSubscribeAjaxState: OneClickFlowState = {\n currentState: {\n type: 'SUBCRIBE_AJAX',\n // @ts-ignore\n result: RDS.NothingYet()\n }\n};\n\nconst defaultInitialState: OneClickFlowState = {\n currentState: {\n type: 'GET_REDIRECT_URL',\n result: RDS.NothingYet()\n }\n};\n\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'redirect-url-success-state':\n return mockedRedirectUrlSuccessState;\n case 'subscribe-ajax-state':\n return mockedSubscribeAjaxState;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\ninterface GetRedirectUrlArgs {\n window: Window;\n extraParams?: IHash;\n autoRedirect?: boolean;\n isGetRedirectBupperWay?: boolean;\n ignoreUrlParams?: boolean;\n}\n/**\n * getRedirectUrlAction\n * @returns {type: ' 'oneClickFlow/getRedirectUrlAction', payload: {type: PossibleTypes, result: GETREDIRECTUrlState}}\n \n * Calls redirect api to get a redirect url for the user to be redirected to\n * Can also create a bupper redirect url\n */\nexport const getRedirectUrlAction = createAsyncThunk<\n GETREDIRECTUrlState,\n GetRedirectUrlArgs,\n {\n rejectValue: IGETREDIRECTURLFailure;\n }\n>(\n 'oneClickFlow/getRedirectUrlAction',\n // @ts-ignore\n async ({ window, isGetRedirectBupperWay, extraParams, autoRedirect }, { getState, dispatch, rejectWithValue }) => {\n const state: RootState = getState();\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n return initialState.currentState;\n }\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n\n const {\n config,\n subscription_url,\n redirect_url,\n operator,\n strategy,\n defaultConfig,\n defaultFlowType\n } = state.strategy.currentState.data;\n const visitor = (window.pac_analytics?.visitor ?? {}) as any;\n\n try {\n if (isGetRedirectBupperWay === true) {\n tracker.customEvent('Flow', 'advance-auto', 'get-redirect-url');\n const redirectUrl = await getRedirectUrlBupperWay(window, config, {\n ...(operator && { operator }),\n ...extraParams\n });\n\n // add empellow token for specific country\n const updatedRedirectUrl = await addEmpelloToken({\n currentRedirectUrl: redirectUrl,\n country: config.country\n });\n\n tracker.customEvent('Flow', 'advance-auto', 'get-redirect-url-success', {\n redirect_url: updatedRedirectUrl\n });\n\n if (window.isAutoFraudScreener === true) {\n // Wait for Evina to Check Fraud First\n const timer = setInterval(() => {\n if (window.isEvinaSessionChecked) {\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: updatedRedirectUrl });\n\n clearInterval(timer);\n setTimeout(() => {\n window.location.href = updatedRedirectUrl;\n }, 0);\n }\n }, 100);\n } else if (autoRedirect === true) {\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: updatedRedirectUrl });\n setTimeout(() => {\n window.location.href = updatedRedirectUrl;\n }, 0);\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updatedRedirectUrl\n })\n };\n } else {\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updatedRedirectUrl\n })\n };\n }\n } else {\n const candidates: (string | undefined)[] = [\n visitor.heMsisdnDecryptedByApiResult?.msisdn,\n visitor.heMsisdnResult?.msisdn\n ];\n\n const msisdn = candidates.find((s) => !!s) ?? null;\n if ((subscription_url && subscription_url != null) || msisdn) {\n return {\n type: 'SUBCRIBE_AJAX',\n result: RDS.NothingYet()\n };\n }\n if (redirect_url) {\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: redirect_url\n })\n };\n }\n\n tracker.customEvent('Flow', 'advance-auto', 'get-redirect-url');\n const { redirect_url: newRedirectUrl } = await getRedirectUrl({\n window,\n maybeConfig: config,\n extraParams: {\n ...(operator && { operator }),\n ...extraParams\n }\n });\n tracker.customEvent('Flow', 'advance-auto', 'get-redirect-url-success', {\n redirect_url: newRedirectUrl\n });\n\n // add empellow token for specific country\n const updated_redirect_url = newRedirectUrl\n ? await addEmpelloToken({\n currentRedirectUrl: newRedirectUrl,\n country: config.country\n })\n : null;\n\n if (updated_redirect_url) {\n if (autoRedirect === true || (window.isAutoFraudScreener === true && updated_redirect_url)) {\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: updated_redirect_url });\n\n setTimeout(() => {\n // eslint-disable-next-line camelcase\n window.location.href = updated_redirect_url;\n }, 0);\n } else {\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updated_redirect_url\n })\n };\n }\n } else {\n tracker.recedeInFlow('tallyman.v1-one-click', 'get-redirect-url-failure', {\n errorType: 'UnknownError'\n });\n\n if (strategy !== 'one-click') {\n dispatch(\n setStrategyExtraData({\n type: flowMapping[defaultFlowType],\n data: {\n config: defaultConfig.flowConfig\n }\n })\n );\n }\n\n return rejectWithValue({\n errorType: 'UnknownError',\n message: 'Could not get rediredt url',\n error: 'Could not get rediredt url'\n });\n }\n }\n } catch (ex) {\n console.warn(ex);\n tracker.recedeInFlow('tallyman.v1-one-click', 'get-redirect-url-failure', {\n errorType: 'UnknownError'\n });\n if (strategy !== 'one-click') {\n dispatch(\n setStrategyExtraData({\n type: flowMapping[defaultFlowType],\n data: {\n config: defaultConfig.flowConfig\n }\n })\n );\n }\n return rejectWithValue({\n errorType: 'UnknownError',\n message: ex.message,\n error: ex.toString()\n });\n }\n }\n);\n\n/**\n * subscribeUrlAction\n * @returns {type: ' 'oneClickFlow/submitMSISDNAction', payload: {type: PossibleTypes.MO, result: PINEntryState}}\n \n * Calls oneclick subscripe api to subscribe the user\n * Returns a product url\n */\ninterface OneClickSubscribeArgs {\n window: Window;\n autoRedirect?: boolean;\n extraParams?: IHash;\n}\nexport const subscribeUrlAction = createAsyncThunk<\n AJAXSUBSCRIBEState,\n OneClickSubscribeArgs,\n {\n rejectValue: SubscribeFailure;\n }\n>('oneClickFlow/subscribeUrlAction', async ({ window, autoRedirect, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { subscription_url, config, msisdn, operator, apn } = state.strategy.currentState.data;\n try {\n // Start Call to Subscribe ajax\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-subscribe', {\n msisdn,\n operator,\n extraParams,\n subscription_url\n });\n const product_url = await subscribe({\n url: subscription_url,\n config,\n extraParams: { ...extraParams, apn },\n msisdn,\n operator\n });\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-subscribe-success', { product_url });\n // End Call to Subscribe ajax\n\n if (autoRedirect === true) {\n tracker.customEvent('Flow', 'advance-auto', 'click-product-url', { product_url });\n window.location.href = product_url;\n }\n return {\n type: 'SUBCRIBE_AJAX',\n result: RDS.Success({\n productUrl: product_url\n })\n };\n } catch (ex) {\n console.warn(ex);\n\n tracker.recedeInFlow('tallyman.v1-one-click', 'click-subscribe-failure', { error: ex.toString() });\n\n return rejectWithValue({\n errorType: 'UnknownError',\n error: ex.toString(),\n productUrl: ex.productUrl,\n message: ex.message || ''\n });\n }\n});\n\nconst oneClickFlowSlice = createSlice({\n name: 'oneClickFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(getRedirectUrlAction.pending, (state) => {\n state.currentState = { type: 'GET_REDIRECT_URL', result: RDS.Loading() };\n })\n .addCase(getRedirectUrlAction.fulfilled, (state, action: PayloadAction<GETREDIRECTUrlState>) => {\n state.currentState = action.payload;\n })\n .addCase(getRedirectUrlAction.rejected, (state, action: PayloadAction<IGETREDIRECTURLFailure>) => {\n state.currentState = {\n type: 'GET_REDIRECT_URL',\n result: RDS.Failure(action.payload)\n };\n })\n .addCase(subscribeUrlAction.pending, (state) => {\n state.currentState = { type: 'SUBCRIBE_AJAX', result: RDS.Loading() };\n })\n .addCase(subscribeUrlAction.fulfilled, (state, action: PayloadAction<AJAXSUBSCRIBEState>) => {\n state.currentState = action.payload;\n })\n .addCase(subscribeUrlAction.rejected, (state, action: PayloadAction<SubscribeFailure>) => {\n state.currentState = {\n type: 'SUBCRIBE_AJAX',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: oneClickFlowReducer, actions: oneClickFlowActions } = oneClickFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectOneClickFlowState = (state: any) => state.oneClickFlow;\n"],"names":["RDS.Success","RDS.NothingYet","RDS.Loading","RDS.Failure"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oneClickFlow.js","sources":["../../src/flows/oneClickFlow/hooks/useOneClickFlowState.ts","../../src/flows/oneClickFlow/match.ts","../../src/utilities/addEmpelloToken.ts","../../src/utilities/replaceUrlParam.ts","../../src/flows/oneClickFlow/api.ts","../../src/flows/oneClickFlow/main.ts","../../src/flows/oneClickFlow/oneClickFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useOneClickFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.oneClickFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n IGETREDIRECTURLFailure,\n IGETREDIRECTURLSuccess,\n OneClickFlowCurrentState,\n SubscribeFailure,\n SubscribeSuccess\n} from '../../sharedFlowTypes/OneClickTypes';\n\nfunction oneClickFlowMatch<R>({\n getRedirectUrl,\n subscribe\n}: {\n getRedirectUrl: (rds: RDS.RemoteDataState<IGETREDIRECTURLFailure, IGETREDIRECTURLSuccess>) => R;\n subscribe?: (rds: RDS.RemoteDataState<SubscribeFailure, SubscribeSuccess>) => R;\n}): (state: OneClickFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'GET_REDIRECT_URL':\n return getRedirectUrl(state.result);\n case 'SUBCRIBE_AJAX':\n return subscribe(state.result);\n default:\n // TODO - this should be an error or something\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return getRedirectUrl(state.result);\n }\n };\n}\n\nexport { oneClickFlowMatch };\n","import { updateUrlParameter } from '../pacman/queryString';\n\nexport async function addEmpelloToken({\n currentRedirectUrl,\n country\n}: {\n currentRedirectUrl: string;\n country: string;\n}) {\n if (country.toLowerCase() === 'pe' && window?.pac_analytics?.visitor?.ip_range_name?.toLowerCase()?.includes('pe')) {\n // Empello script is added on server\n\n await new Promise<void>((resolve) => {\n // check if empello script is loaded and available\n const checkEmpelloAvailability = setInterval(() => {\n // @ts-ignore\n // eslint-disable-next-line no-console\n console.log('checkEmpAvailability');\n if (window.Empello) {\n clearInterval((checkEmpelloAvailability as unknown) as number);\n resolve();\n }\n }, 10);\n });\n if (typeof window !== 'undefined' && window.Empello) {\n // call getToken function from empello\n const token = await new Promise<string>((resolve) => {\n window.Empello?.getToken((empelloToken: string) => {\n resolve(empelloToken);\n });\n });\n\n const url = updateUrlParameter(currentRedirectUrl, 'empello_token', token);\n return url;\n }\n }\n\n return currentRedirectUrl;\n}\n","export const replaceUrlParam = (url: string, paramName: string, paramValue = '') => {\n const pattern = new RegExp(`\\\\b(${paramName}=).*?(&|#|$)`);\n if (url.search(pattern) >= 0) {\n return url.replace(pattern, `$1${paramValue}$2`);\n }\n const newUrl = url.replace(/[?#]$/, '');\n return `${newUrl + paramName}=${paramValue}&`;\n};\n","import { IHash } from '../../common-types/IHash';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport const getRedirectAPI = () => {};\n\nconst getUrlWithParams = (baseURL: string, params: IHash) => {\n const queryParams = new URLSearchParams(params).toString();\n return `${baseURL}&${queryParams}`;\n};\n\nexport const oneClickSubscribeByUrlFromParams = async ({\n window,\n extraParams,\n search,\n url\n}: {\n window: Window;\n extraParams?: IHash;\n search: string;\n url: string;\n}) => {\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n const evinaTid = window?.tid || '';\n const isCleanTraffic = window?.shouldBlock ? 'false' : 'true';\n\n const extraParamsQs = Object.entries(extraParams || {})\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\n .join('&');\n\n try {\n const resultUrl = getUrlWithParams(url, {\n sam_evina_tid: evinaTid,\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n 'is-clean-traffic': isCleanTraffic,\n ...Object.fromEntries(new URLSearchParams(extraParamsQs))\n });\n\n const response = await fetch(`${resultUrl}${search ? `&${search}` : ''}`);\n const result = await response.json();\n return result;\n } catch (error) {\n console.error('Error fetching subscription:', error);\n throw error; // Rethrow or handle error as needed\n }\n};\n\nexport const oneClickSubscribe = async ({\n window,\n country,\n slug,\n device,\n offer,\n msisdn,\n operator,\n rockmanId,\n extraParams,\n search,\n evinaTid\n}: {\n window?: Window;\n country: string;\n slug: string;\n device: 'smart' | 'feature';\n offer: string;\n msisdn: string;\n operator: string;\n rockmanId: string;\n extraParams: IHash;\n search: string;\n evinaTid?: string;\n}): Promise<any> => {\n const extraParamsQs = `&${Object.keys(extraParams)\n .map((k) => (extraParams[k] ? `${k}=${extraParams[k]}` : ''))\n .filter(Boolean)\n .join('&')}`;\n\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n\n // Base parameters object\n const params = {\n action: 'one-click-subscribe',\n country,\n slug,\n device,\n offerId: offer,\n msisdn,\n operator,\n rockman_id: rockmanId,\n sam_evina_tid: evinaTid,\n page: encodeURIComponent(window?.location?.href),\n language_code: window.languageCode || '',\n partner_transaction_id: window.partner_transaction_id || '',\n partner_timestamp: window.partner_timestamp || '',\n partner_cid: window.partner_cid || '',\n\n antifraud_id: window.antifraud_id || '',\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n zain_antifraud_id: window.zain_antifraud_id || '',\n korek_antifraud_id: window.korek_antifraud_id || ''\n };\n\n // Convert params object to query string\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${extraParamsQs}${search ? `&${search}` : ''}`;\n\n return fetch(url).then((x) => x.json());\n};\n","import { IError } from '../../common-types/IError';\nimport {\n IIDentifyUserResult,\n ILinkExtraParams,\n ISubscribeParams,\n ISubscribeResult\n} from '../../sharedFlowTypes/OneClickTypes';\nimport { IConfig } from '../../sharedFlowTypes/StrategyTypes';\nimport { bupperizeCountry } from '../../utilities/bupperizeCountry';\nimport { loadScriptInnerHtml } from '../../utilities/loadScriptInnerHtml';\nimport { replaceUrlParam } from '../../utilities/replaceUrlParam';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { oneClickSubscribe, oneClickSubscribeByUrlFromParams } from './api';\n\nexport const additionalQueryString = `msisdnSubmitted=Y&legalCheckbox=Y&incentivizedCheckbox=Y&op_confirmCheckbox=N`;\n\nconst fetchJsonp: <T>(_url: string) => Promise<T> = (_url: string) => {\n let url = _url;\n const ouisys_callback_function = `ouisys_callback_function${Math.floor(Math.random() * 10000)}`;\n return new Promise((resolve, reject) => {\n // @ts-ignore\n window[ouisys_callback_function] = (arg) => {\n resolve(arg);\n };\n\n url += url.indexOf('?') === -1 ? '?' : '&';\n url += `jsonp=${ouisys_callback_function}`;\n const script = document.createElement('script');\n script.src = url;\n script.id = ouisys_callback_function;\n document.body.appendChild(script);\n\n // Caught if got 404/500\n script.onerror = () => {\n reject(new Error(`JSONP request to ${_url} failed`));\n };\n });\n};\n\nexport const getRedirectUrl = async ({\n window,\n maybeConfig,\n extraParams\n}: {\n window: Window;\n maybeConfig: IConfig;\n extraParams?: ILinkExtraParams;\n}): Promise<{\n subscription_url?: string;\n redirect_url?: string;\n action?: () => Promise<string>;\n}> => {\n if (typeof window === 'undefined') {\n // eslint-disable-next-line no-throw-literal, no-script-url\n throw \"javascript: console.error('SSR'); void 6\";\n } else {\n const { country, slug, queryString, apiAction } = maybeConfig;\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const { offer } = window.pac_analytics.visitor;\n const s = window.location.search.substr(1);\n // @ts-ignore\n let search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(([k, v]) => `${k}=${v}`)).join('&');\n\n Object.keys(extraParams).forEach((element, index) => {\n // Check if search already has query parameters\n if (search.length > 0) {\n // If there are existing parameters, add '&' before appending the new one\n search += '&';\n }\n search = `${replaceUrlParam(search, element, extraParams[element])}${index === 1 ? '&' : ''}`;\n });\n\n const { rockmanId } = window.pac_analytics.visitor;\n\n if (apiAction === 'identify-user') {\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?action=identify-user&country=${bupperizeCountry(\n country\n )}&slug=${slug}&device=${'smart'}&offerId=${offer}&rockman_id=${rockmanId}&sam_evina_tid=${evinaTid}&${search}`;\n const result = await fetchJsonp<IIDentifyUserResult>(url);\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return {\n subscription_url: result.subscription_url || result.redirect_url,\n action: () => subscribe({ url: result.subscription_url, config: maybeConfig })\n };\n }\n } else if (apiAction === 'he') {\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?action=he&country=${bupperizeCountry(\n country\n )}&slug=${slug}&device=${'smart'}&offerId=${offer}&rockman_id=${rockmanId}&sam_evina_tid=${evinaTid}&${search}`;\n const result = await fetch(url).then((x) => x.json());\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n loadScriptInnerHtml(result.source);\n return { redirect_url: result.redirectUrlWithReplacedUniqid };\n }\n } else {\n if (country.toLowerCase() === 'om') {\n const searchObj = searchToObject(window) as {\n redirect_url: string;\n url: string;\n msisdn: string;\n success: 'true' | 'false';\n };\n if (searchObj.success === 'false') {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return { redirect_url: searchObj.redirect_url || searchObj.url };\n }\n }\n const host = (window as Window).DEV_BASE_URL || '';\n\n const params = new URLSearchParams({\n action: 'redirect',\n device: 'smart',\n slug,\n offerId: offer,\n country: bupperizeCountry(country),\n rockman_id: rockmanId,\n sam_evina_tid: evinaTid,\n ...(window?.location?.href && { page: encodeURIComponent(window?.location?.href) }),\n ...(window?.pac_analytics?.visitor?.ip && { ip_address: window?.pac_analytics?.visitor?.ip }),\n ...(window?.pac_analytics?.visitor?.ipRangeOperator && {\n ip_range_operator: window?.pac_analytics?.visitor?.ipRangeOperator\n }),\n antifraud_id: window.antifraud_id || '',\n // More specific antifraud IDs will eventuallly replace antifraud_id\n // https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25\n antifraud_id_js_code: window.antifraud_id_js_code || '',\n antifraud_id_js_link: window.antifraud_id_js_link || '',\n zain_antifraud_id: window.zain_antifraud_id || '',\n korek_antifraud_id: window.korek_antifraud_id || ''\n });\n\n const url = `${host}/tallyman/v1/?${params.toString()}${search ? `&${search}` : ''}`;\n const result = await fetch(url).then((x) => x.json());\n\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return { redirect_url: result.redirect_url };\n }\n }\n }\n};\n\nexport const subscribe = async ({ url, config: maybeConfig, msisdn, operator, extraParams }: ISubscribeParams) => {\n let result: ISubscribeResult = null;\n\n if (url && url !== '') {\n const { queryString } = maybeConfig;\n const s = window.location.search.substr(1);\n // @ts-ignore\n const search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(([k, v]) => `${k}=${v}`)).join('&');\n\n await oneClickSubscribeByUrlFromParams({\n window,\n extraParams,\n search,\n url\n });\n } else {\n const config: IConfig = { offer: window.pac_analytics.visitor.offer, ...(maybeConfig || {}) };\n const newExtraParams = extraParams || {};\n const isSkipValidation = window?.pac_analytics?.visitor?.heMsisdnDecryptedByApiResult?.validateMsisdn === false;\n // @ts-ignore\n if (isSkipValidation) {\n // Search param is set to 1 for header enrichment when the msisdn is masked\n newExtraParams['skip-validation'] = '1';\n }\n\n const { rockmanId } = window.pac_analytics.visitor;\n\n const { slug, country, device, offer } = config;\n\n const search = window.location.search.substr(1) || '';\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n result = await oneClickSubscribe({\n window,\n country,\n slug,\n device,\n offer,\n msisdn,\n operator,\n rockmanId,\n extraParams: newExtraParams,\n search,\n evinaTid\n });\n }\n\n if (result.success === false) {\n const subscribeError = new Error(`Error in subscribe() one-click-subscribe action:\\n${result.message}`) as {\n productUrl: string;\n } & IError;\n subscribeError.type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'SubscriptionError';\n subscribeError.productUrl = result.product_url ? result.product_url : '';\n subscribeError.message = result.message;\n throw subscribeError;\n } else {\n return result.product_url || result.redirect_url;\n }\n};\n\nexport const getRedirectUrlBupperWay = async (\n window: Window,\n maybeConfig: IConfig,\n extraParams?: ILinkExtraParams\n): Promise<string> => {\n if (typeof window === 'undefined') {\n // eslint-disable-next-line no-script-url\n return \"javascript: console.error('SSR'); void 6\";\n }\n const { country, slug, queryString } = maybeConfig;\n const { offer } = window.pac_analytics.visitor;\n const s = window.location.search.substr(1);\n // @ts-ignore\n const search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(([k, v]) => `${k}=${v}`)).join('&');\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n\n // one click flow must use http not https\n const xcid = window.location.href.split('/')[3].split('?')[0];\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const baseHostBupper = window?.pac_analytics?.visitor?.bupperRedirectHost\n ? window.atob(window?.pac_analytics?.visitor?.bupperRedirectHost)\n : null;\n const host = baseHostBupper || (window as Window).DEV_BASE_URL_BUPPER || '';\n\n return `${host}/${bupperizeCountry(country)}/${slug}?offer=${offer}&atmobirun=1&rockman_id=${\n window.pac_analytics.visitor.rockmanId\n }&redirPixels=${window.location.host}&sam_evina_tid=${evinaTid}&x-xcid=${xcid}${extraParamsQs}&${search}`;\n};\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n AJAXSUBSCRIBEState,\n GETREDIRECTUrlState,\n IGETREDIRECTURLFailure,\n OneClickFlowState,\n SubscribeFailure\n} from '../../sharedFlowTypes/OneClickTypes';\nimport { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { addEmpelloToken } from '../../utilities/addEmpelloToken';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { tracker } from '../../utilities/tracker';\nimport { flowMapping } from '../strategy/main';\nimport { setStrategyExtraData } from '../strategy/strategySlice';\nimport { getRedirectUrl, getRedirectUrlBupperWay, subscribe } from './main';\n\nexport const mockedRedirectUrlSuccessState: OneClickFlowState = {\n currentState: {\n type: 'GET_REDIRECT_URL',\n // @ts-ignore\n result: RDS.Success<IGETREDIRECTURLFailure, IGETREDIRECTURLSuccess>({ redirectUrl: '/product' })\n }\n};\n\nexport const mockedSubscribeAjaxState: OneClickFlowState = {\n currentState: {\n type: 'SUBCRIBE_AJAX',\n // @ts-ignore\n result: RDS.NothingYet()\n }\n};\n\nconst defaultInitialState: OneClickFlowState = {\n currentState: {\n type: 'GET_REDIRECT_URL',\n result: RDS.NothingYet()\n }\n};\n\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'redirect-url-success-state':\n return mockedRedirectUrlSuccessState;\n case 'subscribe-ajax-state':\n return mockedSubscribeAjaxState;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\ninterface GetRedirectUrlArgs {\n window: Window;\n extraParams?: IHash;\n autoRedirect?: boolean;\n isGetRedirectBupperWay?: boolean;\n ignoreUrlParams?: boolean;\n}\n/**\n * getRedirectUrlAction\n * @returns {type: ' 'oneClickFlow/getRedirectUrlAction', payload: {type: PossibleTypes, result: GETREDIRECTUrlState}}\n \n * Calls redirect api to get a redirect url for the user to be redirected to\n * Can also create a bupper redirect url\n */\nexport const getRedirectUrlAction = createAsyncThunk<\n GETREDIRECTUrlState,\n GetRedirectUrlArgs,\n {\n rejectValue: IGETREDIRECTURLFailure;\n }\n>(\n 'oneClickFlow/getRedirectUrlAction',\n // @ts-ignore\n async ({ window, isGetRedirectBupperWay, extraParams, autoRedirect }, { getState, dispatch, rejectWithValue }) => {\n const state: RootState = getState();\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n return initialState.currentState;\n }\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n\n const {\n config,\n subscription_url,\n redirect_url,\n operator,\n strategy,\n defaultConfig,\n defaultFlowType\n } = state.strategy.currentState.data;\n const visitor = (window.pac_analytics?.visitor ?? {}) as any;\n\n try {\n if (isGetRedirectBupperWay === true) {\n tracker.customEvent('Flow', 'advance-auto', 'get-redirect-url');\n const redirectUrl = await getRedirectUrlBupperWay(window, config, {\n ...(operator && { operator }),\n ...extraParams\n });\n\n // add empellow token for specific country\n const updatedRedirectUrl = await addEmpelloToken({\n currentRedirectUrl: redirectUrl,\n country: config.country\n });\n\n tracker.customEvent('Flow', 'advance-auto', 'get-redirect-url-success', {\n redirect_url: updatedRedirectUrl\n });\n\n if (window.isAutoFraudScreener === true) {\n // Wait for Evina to Check Fraud First\n const timer = setInterval(() => {\n if (window.isEvinaSessionChecked) {\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: updatedRedirectUrl });\n\n clearInterval(timer);\n setTimeout(() => {\n window.location.href = updatedRedirectUrl;\n }, 0);\n }\n }, 100);\n } else if (autoRedirect === true) {\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: updatedRedirectUrl });\n setTimeout(() => {\n window.location.href = updatedRedirectUrl;\n }, 0);\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updatedRedirectUrl\n })\n };\n } else {\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updatedRedirectUrl\n })\n };\n }\n } else {\n const candidates: (string | undefined)[] = [\n visitor.heMsisdnDecryptedByApiResult?.msisdn,\n visitor.heMsisdnResult?.msisdn\n ];\n\n const msisdn = candidates.find((s) => !!s) ?? null;\n if ((subscription_url && subscription_url != null) || msisdn) {\n return {\n type: 'SUBCRIBE_AJAX',\n result: RDS.NothingYet()\n };\n }\n if (redirect_url) {\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: redirect_url\n })\n };\n }\n\n tracker.customEvent('Flow', 'advance-auto', 'get-redirect-url');\n const { redirect_url: newRedirectUrl } = await getRedirectUrl({\n window,\n maybeConfig: config,\n extraParams: {\n ...(operator && { operator }),\n ...extraParams\n }\n });\n tracker.customEvent('Flow', 'advance-auto', 'get-redirect-url-success', {\n redirect_url: newRedirectUrl\n });\n\n // add empellow token for specific country\n const updated_redirect_url = newRedirectUrl\n ? await addEmpelloToken({\n currentRedirectUrl: newRedirectUrl,\n country: config.country\n })\n : null;\n\n if (updated_redirect_url) {\n if (autoRedirect === true || (window.isAutoFraudScreener === true && updated_redirect_url)) {\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: updated_redirect_url });\n\n setTimeout(() => {\n // eslint-disable-next-line camelcase\n window.location.href = updated_redirect_url;\n }, 0);\n } else {\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updated_redirect_url\n })\n };\n }\n } else {\n tracker.recedeInFlow('tallyman.v1-one-click', 'get-redirect-url-failure', {\n errorType: 'UnknownError'\n });\n\n if (strategy !== 'one-click') {\n dispatch(\n setStrategyExtraData({\n type: flowMapping[defaultFlowType],\n data: {\n config: defaultConfig.flowConfig\n }\n })\n );\n }\n\n return rejectWithValue({\n errorType: 'UnknownError',\n message: 'Could not get rediredt url',\n error: 'Could not get rediredt url'\n });\n }\n }\n } catch (ex) {\n console.warn(ex);\n tracker.recedeInFlow('tallyman.v1-one-click', 'get-redirect-url-failure', {\n errorType: 'UnknownError'\n });\n if (strategy !== 'one-click') {\n dispatch(\n setStrategyExtraData({\n type: flowMapping[defaultFlowType],\n data: {\n config: defaultConfig.flowConfig\n }\n })\n );\n }\n return rejectWithValue({\n errorType: 'UnknownError',\n message: ex.message,\n error: ex.toString()\n });\n }\n }\n);\n\n/**\n * subscribeUrlAction\n * @returns {type: ' 'oneClickFlow/submitMSISDNAction', payload: {type: PossibleTypes.MO, result: PINEntryState}}\n \n * Calls oneclick subscripe api to subscribe the user\n * Returns a product url\n */\ninterface OneClickSubscribeArgs {\n window: Window;\n autoRedirect?: boolean;\n extraParams?: IHash;\n}\nexport const subscribeUrlAction = createAsyncThunk<\n AJAXSUBSCRIBEState,\n OneClickSubscribeArgs,\n {\n rejectValue: SubscribeFailure;\n }\n>('oneClickFlow/subscribeUrlAction', async ({ window, autoRedirect, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { subscription_url, config, msisdn, operator, apn } = state.strategy.currentState.data;\n try {\n // Start Call to Subscribe ajax\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-subscribe', {\n msisdn,\n operator,\n extraParams,\n subscription_url\n });\n const product_url = await subscribe({\n url: subscription_url,\n config,\n extraParams: { ...extraParams, apn },\n msisdn,\n operator\n });\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-subscribe-success', { product_url });\n // End Call to Subscribe ajax\n\n if (autoRedirect === true) {\n tracker.customEvent('Flow', 'advance-auto', 'click-product-url', { product_url });\n window.location.href = product_url;\n }\n return {\n type: 'SUBCRIBE_AJAX',\n result: RDS.Success({\n productUrl: product_url\n })\n };\n } catch (ex) {\n console.warn(ex);\n\n tracker.recedeInFlow('tallyman.v1-one-click', 'click-subscribe-failure', { error: ex.toString() });\n\n return rejectWithValue({\n errorType: 'UnknownError',\n error: ex.toString(),\n productUrl: ex.productUrl,\n message: ex.message || ''\n });\n }\n});\n\nconst oneClickFlowSlice = createSlice({\n name: 'oneClickFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(getRedirectUrlAction.pending, (state) => {\n state.currentState = { type: 'GET_REDIRECT_URL', result: RDS.Loading() };\n })\n .addCase(getRedirectUrlAction.fulfilled, (state, action: PayloadAction<GETREDIRECTUrlState>) => {\n state.currentState = action.payload;\n })\n .addCase(getRedirectUrlAction.rejected, (state, action: PayloadAction<IGETREDIRECTURLFailure>) => {\n state.currentState = {\n type: 'GET_REDIRECT_URL',\n result: RDS.Failure(action.payload)\n };\n })\n .addCase(subscribeUrlAction.pending, (state) => {\n state.currentState = { type: 'SUBCRIBE_AJAX', result: RDS.Loading() };\n })\n .addCase(subscribeUrlAction.fulfilled, (state, action: PayloadAction<AJAXSUBSCRIBEState>) => {\n state.currentState = action.payload;\n })\n .addCase(subscribeUrlAction.rejected, (state, action: PayloadAction<SubscribeFailure>) => {\n state.currentState = {\n type: 'SUBCRIBE_AJAX',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: oneClickFlowReducer, actions: oneClickFlowActions } = oneClickFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectOneClickFlowState = (state: any) => state.oneClickFlow;\n"],"names":["RDS.Success","RDS.NothingYet","RDS.Loading","RDS.Failure"],"mappings":"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"}
|
package/dist/pinFlow.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __awaiter, __generator, __assign } from 'tslib';
|
|
2
2
|
import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
|
|
3
3
|
import { N as NothingYet, L as Loading, S as Success, F as Failure } from './RemoteDataState-CwHLI23e.js';
|
|
4
|
-
import { i as identifyStrategy, c as setStrategyExtraData, P as PossibleTypes } from './strategySlice-
|
|
4
|
+
import { i as identifyStrategy, c as setStrategyExtraData, P as PossibleTypes } from './strategySlice-C_5V7fUf.js';
|
|
5
5
|
import { h as handleResolveRedirect } from './handleResolveRedirect-5Hkm5YXF.js';
|
|
6
6
|
import { r as redirectErrorTypes, g as getErrorCode } from './normaliseErrorCode-CseFd8jz.js';
|
|
7
7
|
import { searchToObject } from './searchToObject.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../src/flows/strategy/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAmB,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAK/G,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,eAAe,EAAE,aAAa,CAS9D,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,eAAe,EAAE,cAAc,CAQvE,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,eAAe,mBAAkC,CAAC;AAEhG,wBAAsB,oBAAoB,CAAC,EACzC,MAAM,EACN,mBAAmB,EACnB,OAAO,EACR,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,SAAS,CAAC;CACpB,GAAG,OAAO,CAAC,KAAK,CAAC,CAoDjB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAW9G;AAED,wBAAsB,6BAA6B,CAAC,EAClD,MAAM,EACN,OAAO,EACR,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,CAAC;CACpB,GAAG,OAAO,CAAC,KAAK,CAAC,CAOjB;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAI/E;AAED,eAAO,MAAM,yBAAyB,QAAa,QAAQ,QAAQ,
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../src/flows/strategy/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAmB,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAK/G,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,eAAe,EAAE,aAAa,CAS9D,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,eAAe,EAAE,cAAc,CAQvE,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,eAAe,mBAAkC,CAAC;AAEhG,wBAAsB,oBAAoB,CAAC,EACzC,MAAM,EACN,mBAAmB,EACnB,OAAO,EACR,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,SAAS,CAAC;CACpB,GAAG,OAAO,CAAC,KAAK,CAAC,CAoDjB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAW9G;AAED,wBAAsB,6BAA6B,CAAC,EAClD,MAAM,EACN,OAAO,EACR,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,CAAC;CACpB,GAAG,OAAO,CAAC,KAAK,CAAC,CAOjB;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAI/E;AAED,eAAO,MAAM,yBAAyB,QAAa,QAAQ,QAAQ,CAgDlE,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAQ5C,CAAC;AAGb,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAS3F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headerEnrichment.d.ts","sourceRoot":"","sources":["../../../../src/flows/strategy/strategies/headerEnrichment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,uCAAuC,CAAC;AAgC7D,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"headerEnrichment.d.ts","sourceRoot":"","sources":["../../../../src/flows/strategy/strategies/headerEnrichment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,uCAAuC,CAAC;AAgC7D,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6G3B,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addEmpelloToken.d.ts","sourceRoot":"","sources":["../../../src/utilities/addEmpelloToken.ts"],"names":[],"mappings":"AAEA,wBAAsB,eAAe,CAAC,EACpC,kBAAkB,EAClB,OAAO,EACR,EAAE;IACD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,
|
|
1
|
+
{"version":3,"file":"addEmpelloToken.d.ts","sourceRoot":"","sources":["../../../src/utilities/addEmpelloToken.ts"],"names":[],"mappings":"AAEA,wBAAsB,eAAe,CAAC,EACpC,kBAAkB,EAClB,OAAO,EACR,EAAE;IACD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,mBA8BA"}
|
package/dist/strategy.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { R as RDS } from './RemoteDataState-CwHLI23e.js';
|
|
2
|
-
import { P as PossibleTypes } from './strategySlice-
|
|
3
|
-
export { i as identifyStrategy, a as selectOperatorAction, b as strategyReducer, s as submitMSISDNAction } from './strategySlice-
|
|
2
|
+
import { P as PossibleTypes } from './strategySlice-C_5V7fUf.js';
|
|
3
|
+
export { i as identifyStrategy, a as selectOperatorAction, b as strategyReducer, s as submitMSISDNAction } from './strategySlice-C_5V7fUf.js';
|
|
4
4
|
import 'tslib';
|
|
5
5
|
import '@reduxjs/toolkit';
|
|
6
6
|
import './searchToObject.js';
|
|
@@ -201,6 +201,8 @@ var getHeaderEnrichmentResult = function () { return __awaiter(void 0, void 0, v
|
|
|
201
201
|
if (responseUrl) {
|
|
202
202
|
decodedUrl = window.atob(responseUrl);
|
|
203
203
|
newUrl_1 = new URL(decodedUrl);
|
|
204
|
+
// Enforce HTTPS
|
|
205
|
+
newUrl_1.protocol = 'https:';
|
|
204
206
|
urlParams_1 = new URLSearchParams(newUrl_1.search);
|
|
205
207
|
msisdn_1 = urlParams_1.get('msisdn') || searchObj.msisdn;
|
|
206
208
|
operator_1 = urlParams_1.get('operator') || searchObj.operator;
|
|
@@ -1156,4 +1158,4 @@ var strategySlice = createSlice({
|
|
|
1156
1158
|
var strategyReducer = strategySlice.reducer;
|
|
1157
1159
|
|
|
1158
1160
|
export { PossibleTypes as P, selectOperatorAction as a, strategyReducer as b, setStrategyExtraData as c, flowMapping as f, identifyStrategy as i, submitMSISDNAction as s, tryGetIPRangeName as t };
|
|
1159
|
-
//# sourceMappingURL=strategySlice-
|
|
1161
|
+
//# sourceMappingURL=strategySlice-C_5V7fUf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategySlice-C_5V7fUf.js","sources":["../../src/sharedFlowTypes/StrategyTypes.ts","../../src/ips/tryGetIPRangeName.ts","../../src/flows/strategy/main.ts","../../src/flows/strategy/strategies/askMobileNumber.ts","../../src/flows/strategy/strategies/askOperator.ts","../../src/flows/strategy/strategies/callRedirectApi.ts","../../src/flows/strategy/strategies/detectOperatorByIp.ts","../../src/flows/strategy/strategies/headerEnrichment.ts","../../src/flows/strategy/strategies/injectHeaderEnrichmentScript.ts","../../src/flows/strategy/strategySlice.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable camelcase */\nimport * as RDS from '../common-types/RemoteDataState';\nimport { IStrategyNames } from '../common-types/Strategy';\nimport { Click2smsFlowState } from './Click2smsTypes';\nimport { CreditCardFlowState } from './CreditCardTypes';\nimport { MoRedirFlowState } from './MoRedirTypes';\nimport { MoFlowState } from './MoTypes';\nimport { OneClickFlowState } from './OneClickTypes';\nimport { PinFlowState } from './PinTypes';\nimport { UssdFlowState } from './UssdTypes';\n\nexport type IIdentifyResult = {\n operator: string;\n flow?: string;\n success: boolean;\n rockman_id?: string;\n message?: string;\n};\n\nexport interface HEResult {\n msisdn: string;\n operator: string;\n subscription_url?: string;\n redirect_url?: string;\n}\n\nexport type ConfigDetails = {\n host: string;\n slug: string;\n country: string;\n device?: 'smart' | 'feature';\n queryString?: Array<[string, string]>;\n automaticallySubmitAllOperators?: boolean;\n operators?: string[];\n service: string;\n offer?: string;\n};\n\nexport type IConfig = {\n offer?: string;\n slug?: string;\n country?: string;\n host?: string;\n device?: 'smart' | 'feature';\n automaticallySubmitAllOperators?: boolean;\n operators?: string[];\n service?: string;\n serviceId?: string;\n queryString?: any;\n apiAction?: any;\n};\n\nexport type ISupportedFlows = 'pin' | 'mo' | 'oneClick' | 'click2sms' | 'moRedir' | 'ussd' | 'creditCard';\nexport type IFlow = {\n flow: ISupportedFlows;\n flowOnWifi?: ISupportedFlows;\n operator?: string;\n flowConfig: ConfigDetails;\n default?: IFlow;\n rockman_id?: string;\n};\n\nexport type StrategyConfig = {\n operators: {\n [key: string]: IFlow;\n };\n default: IFlow;\n isUseMsisdnPrefix?: boolean;\n};\n// export type IStrategy = IPinStrategy | IMoStrategy;\n\nexport type IStrategy = {\n strategy: IStrategyNames;\n country: string;\n strategyConfigs: StrategyConfig;\n};\n\nexport interface IHash {\n [key: string]: string;\n}\n\nexport type IDENTIFYMSISDNEntryErrorTypes = 'AlreadySubscribed' | 'UnknownError' | 'InvalidMSISDN';\n\nexport type IDENTIFYMSISDNEntryFailure = {\n errorType: IDENTIFYMSISDNEntryErrorTypes;\n error: unknown;\n};\n\nexport type IdentifyFlowOptionsResult = {\n config: IConfig;\n nextAction?: unknown;\n msisdn?: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n rockman_id?: string;\n isHeaderEnrichmentSuccess?: boolean;\n autoRedirect?: boolean;\n isUseMsisdnPrefix?: boolean;\n};\n\nexport type IDENTIFYMSISDNEntrySuccess = {};\nexport type OPERATORSelectFailure = {};\nexport type OPERATORSelectSuccess = IdentifyFlowOptionsResult;\n\nexport type IDETECTYOPERATOBYIPFailure = {};\nexport type IDETECTYOPERATOBYIPSuccess = IdentifyFlowOptionsResult;\n\nexport type IDENTIFY_OPERATOR_MSISDNEntrySuccess = IdentifyFlowOptionsResult;\n\nexport type IDENTIFY_FLOW_HESuccess = IdentifyFlowOptionsResult;\n\nexport type OPERATORSelectFlowIdentifyFailure = {};\nexport type OPERATORSelectFlowIdentifySuccess = {\n operators: Array<string>;\n msisdn?: string;\n nextAction: 'selectOperator';\n};\nexport type IDENTIFYFailure = {};\n\nexport type IDENTIFYSuccess = {};\n\nexport type IOperatorSelectFlowIdentifyPayload = {\n type: 'IDENTIFY_FLOW_BY_OPERATOR_SELECT';\n result: RDS.RemoteDataState<OPERATORSelectFlowIdentifyFailure, OPERATORSelectFlowIdentifySuccess>;\n};\n\n// export type IIdentifyByIPPayload= {\n// type:\"IDENTIFY_FLOW_BY_IP\"\n// result: RDS.RemoteDataState<IDENTIFYBYIPFailure, IDENTIFYBYIPSuccess>;\n// }\n\nexport type IDetectOperatorByIpPayload = {\n type: 'DETECT_OPERATOR_BY_IP';\n result: RDS.RemoteDataState<IDETECTYOPERATOBYIPFailure, IDETECTYOPERATOBYIPSuccess>;\n};\n\nexport enum PossibleTypes {\n IDENTIFY_STRATEGY = 'IDENTIFY_STRATEGY',\n IDENTIFY_FLOW_BY_MSISDN = 'IDENTIFY_FLOW_BY_MSISDN',\n IDENTIFY_FLOW_BY_OPERATOR_SELECT = 'IDENTIFY_FLOW_BY_OPERATOR_SELECT',\n PIN = 'PIN',\n MO = 'MO',\n MO_REDIR = 'MO_REDIR',\n ONE_CLICK = 'ONE_CLICK',\n CLICK2SMS = 'CLICK2SMS',\n USSD = 'USSD',\n TPAY_HE = 'TPAY_HE',\n CREDIT_CARD = 'CREDIT_CARD'\n}\n\nexport type IOperatorSelectPayload = {\n type: PossibleTypes;\n result: OPERATORSelectSuccess;\n};\n\nexport type ISubmitMsisdnPayload = {\n type: PossibleTypes;\n result: IDENTIFY_OPERATOR_MSISDNEntrySuccess;\n};\n\nexport type IIdentifyFlowByIpOperatorPayload = {\n type: PossibleTypes;\n result: IDENTIFY_OPERATOR_MSISDNEntrySuccess;\n};\n\nexport type IIdentifyFlowByHePayload = {\n type: PossibleTypes;\n result: IDENTIFY_FLOW_HESuccess;\n};\n\nexport type IIdentfyFlowByMsisdnNextAction = 'submitMSISDNAction' | 'loadOc2sms';\nexport type IIdentfyFlowByOperatorNextAction = 'submitMSISDNAction' | 'loadOc2sms';\nexport type IIdentfyFlowByIPOperatorNextAction = 'getRedirectUrlAction' | 'submitMSISDNAction';\n\nexport type IIdenyifyFlowByMsisdnSumbitNextData = {\n nextAction: IIdentfyFlowByMsisdnNextAction;\n msisdn?: string;\n operator?: string;\n};\n\nexport type IIdenyifyFlowByMsisdnPayload = {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n data: IIdenyifyFlowByMsisdnSumbitNextData;\n};\n\nexport type IIdenyifyStrategyPayload = {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n data: IIdenyifyFlowByMsisdnSumbitNextData;\n};\n\nexport type IStrategyCurrentState =\n | {\n type: 'IDENTIFY_STRATEGY';\n result: RDS.RemoteDataState<IDENTIFYFailure, IDENTIFYSuccess>;\n }\n | {\n type: 'IDENTIFY_FLOW_BY_OPERATOR_SELECT';\n result: OPERATORSelectFlowIdentifySuccess;\n }\n | {\n type: 'DETECT_OPERATOR_BY_IP';\n result: RDS.RemoteDataState<IDETECTYOPERATOBYIPFailure, IDETECTYOPERATOBYIPSuccess>;\n }\n | {\n type: 'HE_IDENTIFY';\n result: RDS.RemoteDataState<IDENTIFYFailure, IDENTIFYSuccess>;\n }\n | {\n type: 'OPERATOR_SELECT';\n result: RDS.RemoteDataState<OPERATORSelectFailure, OPERATORSelectSuccess>;\n config: IConfig;\n }\n | {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n nextData: IIdenyifyFlowByMsisdnSumbitNextData;\n }\n | {\n type: 'PIN';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'MO';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'USSD';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'MO_REDIR';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'ONE_CLICK';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'CLICK2SMS';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'TPAY_HE';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'CREDIT_CARD';\n result: IdentifyFlowOptionsResult;\n };\n\nexport type IStrategyIDentifyUserResult =\n | {\n success: 'true';\n rockman_id: string;\n msisdn: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n 'redirect-back'?: string;\n 'msisdn-alias'?: string;\n }\n | {\n success: 'false';\n rockman_id: string;\n message: string;\n 'redirect-back'?: string;\n };\n\nexport type IMockFlows = 'pin' | 'mo' | 'oneclick' | 'click2sms' | 'moredir' | 'ussd' | 'tpay' | 'creditcard';\n\nexport interface IMockFlowParams<T> {\n 'mock-flow': IMockFlows;\n 'current-state': T;\n 'show-pin-entry': '1' | '0';\n 'show-thank-you': '1' | '0';\n 'show-chain-link': '1' | '0';\n operator: string;\n msisdn?: string;\n 'subscription-url'?: string;\n show_custom_error?: string;\n product_url?: string;\n ui_show_default_flow?: '1' | '0';\n ui_show_pin_entry?: '1' | '0';\n ui_error_message?: string;\n}\n\nexport interface IScriptHeaderEnrichmentSuccess extends CustomEvent {\n detail: {\n msisdn: string;\n operator_code: string;\n subscription_url: boolean;\n encrypted_msisdn: boolean;\n };\n}\n\nexport interface IScriptHeaderEnrichmentFailure extends CustomEvent {\n detail: {\n encrypted_msisdn: boolean;\n error_details: {\n error: any;\n stack: any;\n };\n };\n}\n\nexport interface ExtraStrategyData {\n isHeaderEnrichmentSuccess?: boolean;\n config?: ConfigDetails;\n msisdn?: string;\n rockman_id?: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n operators?: string[];\n strategy?: string;\n defaultConfig?: IFlow;\n defaultFlowType?: ISupportedFlows;\n skipRedirectCall?: boolean;\n apn?: string;\n}\nexport interface StrategyState {\n currentState: StrategyCurrentState;\n}\n\nexport interface StrategyCurrentState {\n type: PossibleTypes;\n result: RDS.RemoteDataState<any, any>;\n data?: ExtraStrategyData;\n}\n\nexport type IMockPinFlowStates = 'msisdn-state' | 'pin-state' | 'completed-state' | 'msisdn-failure-state';\n\nexport interface RootState {\n strategy?: StrategyState;\n pinFlow?: PinFlowState;\n moFlow?: MoFlowState;\n moRedirFlow?: MoRedirFlowState;\n click2smsFlow?: Click2smsFlowState;\n oneClickFlow?: OneClickFlowState;\n ussdFlow?: UssdFlowState;\n creditCardFlow?: CreditCardFlowState;\n}\n","/* eslint-disable no-param-reassign */\nimport { IVisitor } from '../common-types/IVisitor';\nimport queryString from '../pacman/queryString';\n\n// eslint-disable-next-line consistent-return\nexport default async function tryGetIPRangeName(visitor: IVisitor): Promise<string> {\n const mockip = queryString(window.location.href, 'mock-ip') || process.env.mock_ip;\n // eslint-disable-next-line no-console\n console.log('mockip', mockip);\n if (!visitor.ip && typeof window !== 'undefined') {\n try {\n const { host } = window.location;\n const newHost = window.DEV_BASE_URL_IP || host;\n const res = await fetch(`https://${newHost}/api/v1/ip${mockip ? `?mock-ip=${mockip}` : ''}`).then((x) =>\n x.json()\n );\n // return isIPInRange('37.200.146.28')\n visitor.ip = res.ip;\n visitor.ip_range_name = res.ip_range_name;\n return res.ip_range_name;\n } catch (ex) {\n console.warn('IP Lookup failed', ex);\n return '';\n }\n } else {\n return visitor.ip_range_name || '';\n }\n}\n","import { IError } from '../../common-types/IError';\nimport { IOptInFlowName } from '../../common-types/IOptInFlowName';\nimport { IStrategy, ISupportedFlows } from '../../common-types/Strategy';\nimport tryGetIPRangeName from '../../ips/tryGetIPRangeName';\nimport { HEResult, IConfig, IFlow, IIdentifyResult, PossibleTypes } from '../../sharedFlowTypes/StrategyTypes';\nimport { formatNumberToE164 } from '../../utilities/formatNumberToE164';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { identify } from './api';\n\nexport const flowMapping: Record<ISupportedFlows, PossibleTypes> = {\n mo: PossibleTypes.MO,\n pin: PossibleTypes.PIN,\n oneClick: PossibleTypes.ONE_CLICK,\n moRedir: PossibleTypes.MO_REDIR,\n click2sms: PossibleTypes.CLICK2SMS,\n ussd: PossibleTypes.USSD,\n tpayHe: PossibleTypes.TPAY_HE,\n creditCard: PossibleTypes.CREDIT_CARD\n};\n\n// @ts-ignore\nexport const trackerEventMapping: Record<ISupportedFlows, IOptInFlowName> = {\n mo: 'Msisdn to sms',\n pin: 'Pin',\n oneClick: '3G click',\n moRedir: 'Redirect',\n click2sms: 'Click to sms',\n tpayHe: 'Pin',\n ussd: 'Msisdn to sms'\n};\n\nexport const getTrackerEventName = (flowType: ISupportedFlows) => trackerEventMapping[flowType];\n\nexport async function determineFlowByMsidn({\n window,\n internationalMSISDN,\n configs\n}: {\n window: Window;\n internationalMSISDN: string;\n configs: IStrategy;\n}): Promise<IFlow> {\n if (!internationalMSISDN) {\n const submissionError = new Error(`Error in determineFlowByMsidn() identify action`) as IError;\n submissionError.type = 'SEInvalidMSISDN';\n throw submissionError;\n }\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || ''; // tallyman API expects international msisdn without unknown special character\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const config = defaultFlowConfig.flowConfig;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n\n const indentifyFlow = async (): Promise<IIdentifyResult> => {\n const { slug, country, device } = config;\n const { rockmanId } = window.pac_analytics.visitor;\n const { offer } = window.pac_analytics.visitor;\n const flowOperatorResult: IIdentifyResult = await identify({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId\n });\n return flowOperatorResult;\n };\n const theResult = await indentifyFlow();\n\n const flow = operatorsConfig[theResult.operator] ? operatorsConfig[theResult.operator] : null;\n const cannotDetect =\n theResult.success === false && theResult.message === 'Operator could not be found for the given MSISDN';\n const hlrError =\n theResult.success === false && theResult.message?.indexOf('HLR did not find the operator for given MSISDN') !== -1;\n\n if (cannotDetect || hlrError) {\n const submissionError = new Error(`Error in determineFlowByMsidn() identify action`) as IError & { msisdn: string };\n submissionError.type = 'FlowDetectFailed';\n submissionError.msisdn = msisdn;\n throw submissionError;\n } else if (flow !== null) {\n const flowObj = { operator: theResult.operator, default: defaultFlowConfig, ...flow };\n // @ts-ignore\n return flowObj;\n } else if (flow === null) {\n const flowObj = { operator: theResult.operator, ...defaultFlowConfig };\n // @ts-ignore\n return flowObj;\n } else {\n const submissionError = new Error(`Error in determineFlowByMsidn() identify action`) as IError;\n submissionError.type = 'SEInvalidMSISDN';\n throw submissionError;\n }\n}\n\nexport function determineFlowByOperator({ configs, operator }: { configs: IStrategy; operator: string }): IFlow {\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n\n const flowObj = {\n operator: operator?.toUpperCase(),\n default: defaultFlowConfig,\n ...operatorsConfig[operator?.toUpperCase()]\n };\n // @ts-ignore\n return flowObj;\n}\n\nexport async function determineFlowByOperatorFromIp({\n window,\n configs\n}: {\n window: Window;\n configs: IStrategy;\n}): Promise<IFlow> {\n const operator = await tryGetIPRangeName(window.pac_analytics.visitor);\n const flowObj = determineFlowByOperator({\n configs,\n operator: operator && operator.includes('_') ? operator.toUpperCase() : ''\n });\n return flowObj;\n}\n\nexport function getOperators({ configs }: { configs: IStrategy }): Array<string> {\n const operatorsConfig = configs?.strategyConfigs?.operators;\n const operators = Object.keys(operatorsConfig);\n return operators;\n}\n\nexport const getHeaderEnrichmentResult = async (): Promise<HEResult> => {\n if (typeof window === 'undefined') {\n throw new Error('This function can only be run in a browser environment.');\n }\n\n const searchObj = searchToObject(window) as any; // Assumes the implementation of searchToObject\n if (searchObj.success === 'false') {\n throw new Error(`Error in getRedirectUrl() identify-user action:\\n${searchObj.message || 'NotOn3g'}`);\n }\n const responseUrl = searchObj.subscription_url || searchObj.redirect_url;\n\n if (responseUrl) {\n const decodedUrl = window.atob(responseUrl);\n const newUrl = new URL(decodedUrl);\n // Enforce HTTPS\n newUrl.protocol = 'https:';\n const urlParams = new URLSearchParams(newUrl.search);\n\n let msisdn = urlParams.get('msisdn') || searchObj.msisdn;\n const operator = urlParams.get('operator') || searchObj.operator;\n\n if (msisdn) {\n msisdn = formatNumberToE164(msisdn, window?.pac_analytics?.visitor?.country);\n }\n\n return {\n msisdn: msisdn || '',\n operator: operator || '',\n subscription_url: searchObj.subscription_url ? decodedUrl : undefined,\n redirect_url: searchObj.redirect_url ? decodedUrl : undefined\n };\n }\n console.error('No URL provided for redirection in the url params');\n\n const newUrl = new URL(window.location.href);\n const urlParams = new URLSearchParams(newUrl.search);\n\n let msisdn = urlParams.get('msisdn') || searchObj.msisdn;\n const operator = urlParams.get('operator') || searchObj.operator;\n\n if (msisdn) {\n msisdn = formatNumberToE164(msisdn, window?.pac_analytics?.visitor?.country);\n }\n\n return {\n msisdn: msisdn || '',\n operator: operator || ''\n };\n};\n\nexport const subscribe: (_url: string) => Promise<string> = async (_url: string) =>\n // const result:ISubscribeResult = await fetch(url + \"&operator=kw_viva\").then((x)=>x.json())\n\n // if(false === result.success){\n // const subscribeError = new Error(`Error in subscribe() one-click-subscribe action:\\n${result.message}`) as IError & {type:string;}\n // subscribeError['type'] = \"SubscriptionError\";\n // throw subscribeError\n // }else{\n '/product';\n// }\n\nexport function mockConfig({ configs, flow }: { configs: IStrategy; flow: string }): IConfig {\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n const opArr = Object.keys(operatorsConfig);\n const r = opArr.filter((o) => operatorsConfig[o].flow === flow);\n const operator = r[0];\n const flowObj = { offer: '1', operator, default: defaultFlowConfig, ...operatorsConfig[operator] };\n\n return flowObj;\n}\n\n// export const mockedPinFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.PIN,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('pin')\n// }\n// }\n// };\n\n// export const mockedMoFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.MO,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('mo')\n// }\n// }\n// };\n\n// export const mockedUssdFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.USSD,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('ussd')\n// }\n// }\n// };\n\n// export const mockedMoRdirFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.MO_REDIR,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('moRedir')\n// }\n// }\n// };\n\n// export const mockedClick2smsFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.CLICK2SMS,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('click2sms')\n// }\n// }\n// };\n\n// export const mockedOneClickFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.ONE_CLICK,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('oneClick')\n// }\n// }\n// };\n\n// export const mockedCreditCardFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.CREDIT_CARD,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('creditCard')\n// }\n// }\n// };\n// export const mockedMOFlow : State = { type: \"MO\", result:moFlow(mockTracker, mockConfig(\"mo\"))}\n// export const mockedOneClickFlow : State = { type: \"ONECLICK\", result:oneClickFlow(mockTracker, mockConfig(\"oneClick\"), {\"testextraparams\":\"1\"})}\n// export const mockedClick2smsFlow : State = { type: \"CLICK2SMS\", result:click2smsFlow(mockTracker, mockConfig(\"click2sms\"))}\n// export const mockedMORedirFlow : State = { type: \"MOREDIR\", result:moRedirFlow(mockTracker, mockConfig(\"moRedir\"))}\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport * as RDS from '../../../common-types/RemoteDataState';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\n\nimport {\n IDENTIFYMSISDNEntryErrorTypes,\n ISupportedFlows,\n PossibleTypes,\n StrategyCurrentState\n} from '../../../sharedFlowTypes/StrategyTypes';\nimport { determineFlowByMsidn, flowMapping, getTrackerEventName } from '../main';\n\nexport const askMobileNumber = (): StrategyCurrentState => ({\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.NothingYet()\n});\n\nexport const submitMSISDNAction = createAsyncThunk(\n 'strategy/submitMSISDNAction',\n async (\n {\n window,\n msisdn\n }: {\n window: Window;\n msisdn: string;\n isHeSuccess?: boolean;\n },\n { rejectWithValue }\n ) => {\n try {\n const configs = getConfig();\n const flowObj = await determineFlowByMsidn({ window, internationalMSISDN: msisdn, configs });\n const flowType = flowObj?.flow;\n const event = getTrackerEventName(flowType);\n const defaultConfig = configs?.strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow as ISupportedFlows;\n\n if (!flowMapping[flowType]) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n tracker.sendOptInFlowEvent(event);\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n msisdn\n }\n };\n } catch (ex) {\n let errorType: IDENTIFYMSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'SEAlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'SEInvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n default:\n errorType = 'UnknownError';\n }\n return rejectWithValue({\n errorType,\n error: ex,\n productUrl: ex.productUrl\n });\n }\n }\n);\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport * as RDS from '../../../common-types/RemoteDataState';\n\nimport { PossibleTypes, StrategyCurrentState } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperator, flowMapping, getOperators, getTrackerEventName } from '../main';\n\nexport const askOperator = (): StrategyCurrentState => {\n const configs = getConfig();\n const operators = getOperators({ configs });\n return {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.NothingYet(),\n data: {\n operators\n }\n };\n};\n\nexport const selectOperatorAction = createAsyncThunk(\n 'strategy/selectOperatorAction',\n async (\n {\n operator\n }: {\n operator: string;\n },\n { rejectWithValue }\n ) => {\n try {\n const configs = getConfig();\n\n const flowObj = determineFlowByOperator({\n configs,\n operator\n });\n\n const flowType = flowObj.flow;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator\n }\n };\n } catch (ex) {\n const errorType = 'UnkownError';\n return rejectWithValue({\n errorType,\n error: ex.toString()\n });\n }\n }\n);\n","import * as RDS from '../../../common-types/RemoteDataState';\n\nimport { ISupportedFlows } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { getRedirectUrl } from '../api';\nimport { flowMapping, getTrackerEventName } from '../main';\n\nconst callRedirectApi = async () => {\n const configs = getConfig();\n const defaultConfig = configs?.strategyConfigs.default;\n const defaultFlowType = defaultConfig.flow as ISupportedFlows;\n const { slug, country, device } = defaultConfig.flowConfig;\n const { rockmanId } = window.pac_analytics.visitor;\n const { offer } = window.pac_analytics.visitor;\n try {\n const result = await getRedirectUrl({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId\n });\n\n if (result.success === false) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n\n // OPERATOR NOT KNOWN\n\n // const operator = result?.operator && result?.operator !== 'unknown' ? result?.operator : null;\n\n if (result?.payload?.network_type === 'data') {\n // const flowObj = await determineFlowByOperator({\n // operator,\n // configs\n // });\n // const flowType = flowObj.flow || defaultFlowType;\n const event = getTrackerEventName('oneClick');\n tracker.sendOptInFlowEvent(event);\n return {\n type: flowMapping.oneClick,\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n redirect_url: result.redirect_url || null\n }\n };\n }\n if (result?.payload?.network_type === 'wifi') {\n // const flowObj = await determineFlowByOperator({\n // operator,\n // configs\n // });\n // const flowType = flowObj.flow || defaultFlowType;\n const event = getTrackerEventName('moRedir');\n tracker.sendOptInFlowEvent(event);\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n redirect_url: result.redirect_url || null,\n skipRedirectCall: true\n }\n };\n }\n\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n redirect_url: result.redirect_url || null,\n skipRedirectCall: true\n }\n };\n } catch (ex) {\n console.error('error', ex);\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n};\n\nexport { callRedirectApi };\n","import * as RDS from '../../../common-types/RemoteDataState';\nimport { IStrategyNames, ISupportedFlows } from '../../../common-types/Strategy';\n\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperatorFromIp, flowMapping, getTrackerEventName } from '../main';\nimport { askMobileNumber } from './askMobileNumber';\nimport { askOperator } from './askOperator';\n\nconst detectOperatorByIp = async (strategy?: IStrategyNames) => {\n try {\n const configs = getConfig();\n\n const flowObj = await determineFlowByOperatorFromIp({\n window,\n configs\n });\n const defaultConfig = configs?.strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow as ISupportedFlows;\n\n if (\n !flowObj.flow &&\n (strategy === 'all-flows-detect-operator-by-ip-or-ask-mobile-number' ||\n strategy === 'all-flows-ask-mobile-number')\n ) {\n return askMobileNumber();\n }\n\n if (!flowObj.flow && strategy === 'all-flows-detect-operator-by-ip-or-ask-operator') {\n return askOperator();\n }\n\n const flowType = flowObj.flow;\n if (!flowMapping[flowType]) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n strategy\n }\n };\n }\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n strategy,\n defaultConfig,\n defaultFlowType\n }\n };\n } catch (ex) {\n console.error('error', ex);\n }\n};\n\nexport { detectOperatorByIp };\n","import IVisitor from '../../../common-types/IVisitor';\nimport * as RDS from '../../../common-types/RemoteDataState';\nimport { IStrategy } from '../../../common-types/Strategy';\n\nimport { ISupportedFlows } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { searchToObject } from '../../../utilities/searchToObject';\nimport { tracker } from '../../../utilities/tracker';\nimport {\n determineFlowByMsidn,\n determineFlowByOperator,\n flowMapping,\n getHeaderEnrichmentResult,\n getTrackerEventName\n} from '../main';\n\nconst resolveOperator = async (\n visitor: IVisitor,\n search: any,\n configs: IStrategy,\n msisdn: string\n): Promise<string | null> => {\n const firstSync = search?.operator ?? visitor?.heMsisdnDecryptedByApiResult?.operator;\n if (firstSync) return firstSync;\n\n const flow = await determineFlowByMsidn({\n window,\n configs,\n internationalMSISDN: msisdn\n });\n\n return flow?.operator ?? null;\n};\nconst handleHeaderEnrichment = async () => {\n const configs = getConfig();\n const defaultConfig = configs?.strategyConfigs.default;\n const defaultFlowType = defaultConfig.flow as ISupportedFlows;\n\n try {\n const visitor = (window.pac_analytics?.visitor ?? {}) as any;\n\n const search = searchToObject(window) as { operator: string; msisdn: string };\n\n const candidates: (string | undefined)[] = [\n search?.msisdn,\n visitor.heMsisdnDecryptedByApiResult?.msisdn,\n visitor.heMsisdnResult?.msisdn\n ];\n\n const msisdn = candidates.find((s) => !!s) ?? null;\n const isHeaderEnrichmentSuccess = msisdn !== null;\n\n const operator = msisdn ? await resolveOperator(visitor, search, configs, msisdn) : null;\n\n if (isHeaderEnrichmentSuccess) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn,\n operator\n });\n } else {\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure');\n }\n if (operator === null) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n\n if (configs.strategy === 'pin-header-enrichment' && isHeaderEnrichmentSuccess) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator,\n msisdn,\n isHeaderEnrichmentSuccess\n }\n };\n }\n\n if (window?.pac_analytics?.visitor?.heMsisdnDecryptedByApiResult?.isContentBlocked) {\n window.isContentBlocked = true;\n tracker.customEvent('Flow', 'recede-auto', 'content-blocked', {\n errorType: 'ContentBlocked',\n error: 'ContentBlocked',\n message: 'ContentBlocked',\n ...window?.pac_analytics?.visitor?.heMsisdnDecryptedByApiResult\n });\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator\n }\n };\n }\n let subscription_url = null;\n let redirect_url = null;\n const flowObj = await determineFlowByOperator({\n operator,\n configs\n });\n const flowType = flowObj.flow || defaultFlowType;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n if (flowType === 'oneClick') {\n const heResult = await getHeaderEnrichmentResult();\n\n subscription_url = heResult?.subscription_url || null;\n redirect_url = heResult?.redirect_url || null;\n }\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n subscription_url: subscription_url || null,\n redirect_url: redirect_url || null,\n isHeaderEnrichmentSuccess,\n msisdn,\n apn: visitor?.heMsisdnResult?.apn\n }\n };\n } catch (ex) {\n console.error('error', ex);\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n};\n\nexport { handleHeaderEnrichment };\n","/* eslint-disable func-names */\nimport * as RDS from '../../../common-types/RemoteDataState';\nimport {\n IConfig,\n IFlow,\n IScriptHeaderEnrichmentFailure,\n IScriptHeaderEnrichmentSuccess,\n ISupportedFlows,\n PossibleTypes\n} from '../../../sharedFlowTypes/StrategyTypes';\nimport { formatNumberToE164 } from '../../../utilities/formatNumberToE164';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperator, flowMapping, getTrackerEventName } from '../main';\n\n/**\n * Creates a response object with the given parameters.\n *\n * @param {string} msisdn - The MSISDN (Mobile Station International Subscriber Directory Number).\n * @param {IConfig} config - The configuration object.\n * @param {string | null} operator - The operator (default: null).\n * @return {object} The response that sets the state.\n */\nconst createResponseObject = (config: IConfig, flow?: ISupportedFlows) => ({\n type: flowMapping[flow] || PossibleTypes.PIN,\n result: RDS.NothingYet(),\n data: {\n config\n }\n});\n\n/**\n * Injects header enrichment script based on the provided window object.\n *\n * @param {Window} window - The window object containing analytics visitor details.\n * @return {Promise} A promise that resolves based on specific events or timeouts.\n */\nconst injectHeaderEnrichmentScript = async ({ window }: { window: Window }) => {\n const configs = getConfig();\n const enableScriptTimer = configs?.enableScriptTimer;\n const { strategyConfigs } = configs;\n const config = strategyConfigs?.default?.flowConfig;\n\n return new Promise((resolve) => {\n try {\n let heMsisdn = window?.pac_analytics?.visitor?.heMsisdn;\n const country = window?.pac_analytics?.visitor?.country;\n\n if (heMsisdn && country) {\n heMsisdn = formatNumberToE164(heMsisdn, country);\n }\n\n let msisdnDetected = false;\n let timerExpired = false;\n let timerId: string | number | NodeJS.Timeout;\n\n if (enableScriptTimer) {\n timerId = setTimeout(() => {\n if (!msisdnDetected) {\n timerExpired = true;\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: '3 second timer expired'\n });\n\n window.isPrelanderClicked = true;\n resolve({\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n });\n }\n }, 3000);\n }\n\n const onSuccess = (event: Event) => {\n const { detail } = event as IScriptHeaderEnrichmentSuccess;\n heMsisdn = detail?.msisdn;\n if (detail?.msisdn && !detail?.encrypted_msisdn) {\n heMsisdn = formatNumberToE164(detail.msisdn, country);\n window.msisdn = heMsisdn;\n } else {\n window.msisdn = detail?.msisdn;\n window.is_encrypted_msisdn = detail?.encrypted_msisdn;\n }\n\n if (enableScriptTimer) {\n if (!timerExpired) {\n msisdnDetected = true;\n clearTimeout(timerId);\n\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn: heMsisdn\n });\n const flowObj = determineFlowByOperator({\n configs: getConfig(),\n operator: detail?.operator_code\n });\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(headerEnrichmentScript(flowObj, heMsisdn, detail?.operator_code, true));\n }\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn: heMsisdn,\n operator: detail?.operator_code\n });\n const flowObj = determineFlowByOperator({\n configs: getConfig(),\n operator: detail?.operator_code\n });\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(headerEnrichmentScript(flowObj, heMsisdn, detail?.operator_code, true));\n }\n };\n\n const onFail = (event: Event) => {\n const { detail } = event as IScriptHeaderEnrichmentFailure;\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', detail?.error_details);\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(createResponseObject(config, strategyConfigs?.default.flow as ISupportedFlows));\n };\n\n window.addEventListener('he-success', onSuccess);\n window.addEventListener('he-fail', onFail);\n\n if (!window?.heScriptUrl) {\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: 'Error he script url not set'\n });\n window.dispatchEvent(new Event('he-fail'));\n return;\n }\n window.addEventListener('error', (event) => {\n console.error('Global error:', event?.error);\n tracker.customEvent('Flow', 'recede-auto', 'global-error', {\n errorMessage: event?.error?.message,\n errorStack: event?.error?.stack\n });\n });\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.id = 'he-js-link';\n script.src = `${window.heScriptUrl}`; // URL Comes from server\n script.referrerPolicy = 'origin';\n document.head.appendChild(script);\n\n script.onerror = (error: any) => {\n console.error('Error loading Header Enrichment script.');\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: 'Error loading Header Enrichment script',\n errorMessage: error.message\n });\n window.dispatchEvent(new Event('he-fail'));\n };\n } catch (err) {\n console.error('Error in header enrichment:', err);\n resolve(createResponseObject(config, strategyConfigs?.default.flow as ISupportedFlows));\n }\n });\n};\n\nconst headerEnrichmentScript = (\n flowObj: IFlow,\n msisdn: string | null = null,\n operator: string | null = null,\n isHeaderEnrichmentSuccess: boolean\n) => {\n const defaultConfig = getConfig().strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow;\n const flowType = flowObj.flow || flowObj.default?.flow;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n if (!flowObj.flow) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator,\n msisdn,\n isHeaderEnrichmentSuccess\n }\n };\n }\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n isHeaderEnrichmentSuccess\n }\n };\n};\n\nexport { injectHeaderEnrichmentScript };\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport { searchToObject } from '../../utilities/searchToObject';\n\nimport {\n IMockFlowParams,\n IMockPinFlowStates,\n ISupportedFlows,\n PossibleTypes,\n RootState,\n StrategyCurrentState,\n StrategyState\n} from '../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../utilities/getConfig';\nimport { determineFlowByOperator, flowMapping } from './main';\nimport { askMobileNumber, submitMSISDNAction } from './strategies/askMobileNumber';\nimport { askOperator, selectOperatorAction } from './strategies/askOperator';\n\nimport { tracker } from '../../utilities/tracker';\nimport { callRedirectApi } from './strategies/callRedirectApi';\nimport { detectOperatorByIp } from './strategies/detectOperatorByIp';\nimport { handleHeaderEnrichment } from './strategies/headerEnrichment';\nimport { injectHeaderEnrichmentScript } from './strategies/injectHeaderEnrichmentScript';\n\nwindow.tracker = tracker;\nconst initialState: StrategyState = {\n currentState: {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.NothingYet(),\n data: undefined\n }\n};\n\nconst mockStrategyStateByUrlParam = (): StrategyCurrentState => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n\n if (search['mock-flow'] !== undefined) {\n if (search.operator !== undefined) {\n window.operator = search.operator;\n }\n\n switch (search['mock-flow']) {\n case 'pin':\n return {\n type: PossibleTypes.PIN,\n result: RDS.Success({})\n };\n\n case 'mo':\n return {\n type: PossibleTypes.MO,\n result: RDS.Success({})\n };\n case 'moredir':\n return {\n type: PossibleTypes.MO_REDIR,\n result: RDS.Success({})\n };\n case 'oneclick':\n return {\n type: PossibleTypes.ONE_CLICK,\n result: RDS.Success({}),\n data: {\n subscription_url: search['subscription-url']\n }\n };\n case 'click2sms':\n return {\n type: PossibleTypes.CLICK2SMS,\n result: RDS.Success({})\n };\n case 'ussd':\n return {\n type: PossibleTypes.USSD,\n result: RDS.Success({})\n };\n case 'creditcard':\n return {\n type: PossibleTypes.CREDIT_CARD,\n result: RDS.Success({})\n };\n default:\n throw new Error('(mockStrategyStateByUrlParam) Strategy Mock Flow not supported');\n }\n }\n};\n\n/**\n * Identify Strategy\n * @returns {type: 'strategy/identifyStrategy', payload: {type: PossibleTypes.MO, result: IdentifyFlowOptionsResult}}\n * - Add type\n * - Makes a decision on which strategy to use in order to identify the flow\n * - Strategy could be asking user's phone number, selecting an operator etc\n * - all with the intension of getting the flow and its configuration\n * - Flows are usually tied to an operator in the pages config.json\n * - But they could also be single flows\n *\n */\n\nexport const identifyStrategy = createAsyncThunk('strategy/identifyStrategy', async () => {\n const configs = getConfig();\n const { strategy, strategyConfigs } = configs;\n // const { isUseMsisdnPrefix } = strategyConfigs;\n const search = searchToObject(window) as IMockFlowParams<IMockPinFlowStates>;\n if (search['mock-flow'] !== undefined) {\n return mockStrategyStateByUrlParam();\n }\n if (search.ui_show_default_flow === '1') {\n const flow = strategyConfigs?.default.flow as ISupportedFlows;\n const config = strategyConfigs?.default?.flowConfig;\n return {\n type: flowMapping[flow],\n result: RDS.NothingYet(),\n data: {\n config\n }\n };\n }\n if (\n (search['show-pin-entry'] && search['show-pin-entry'] === '1') ||\n (search['show-thank-you'] && search['show-thank-you'] === '1') ||\n (search.show_custom_error && search.show_custom_error === '1')\n ) {\n const flowObj = determineFlowByOperator({\n configs,\n operator: search.operator\n });\n const strategyResult: StrategyCurrentState = {\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: flowObj?.flowConfig || strategyConfigs?.default?.flowConfig\n }\n };\n return strategyResult;\n }\n\n if (strategy.includes('ask-operator')) {\n return askOperator();\n }\n if (strategy.includes('detect-operator-by-ip')) {\n return detectOperatorByIp(strategy);\n }\n if (strategy?.includes('ask-mobile-number')) {\n return askMobileNumber();\n }\n\n if (strategy?.includes('detect-operator-by-redirect-api')) {\n return callRedirectApi();\n }\n\n if (strategy?.includes('header-enrichment') && strategy !== 'header-enrichment-script') {\n const n = await handleHeaderEnrichment();\n // @ts-ignore\n return n;\n }\n\n switch (strategy) {\n // REOVING THIS AS IT INJECTS UNUSED CODE\n case 'header-enrichment-script':\n // eslint-disable-next-line no-return-await\n return injectHeaderEnrichmentScript({\n window\n });\n case 'pin': {\n tracker.sendOptInFlowEvent('Pin');\n return {\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n }\n case 'mo':\n tracker.sendOptInFlowEvent('Msisdn to sms');\n return {\n type: PossibleTypes.MO,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'mo-redir':\n return {\n type: PossibleTypes.MO_REDIR,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'one-click':\n tracker.sendOptInFlowEvent('Redirect');\n return {\n type: PossibleTypes.ONE_CLICK,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'click2sms':\n tracker.sendOptInFlowEvent('Click to sms');\n return {\n type: PossibleTypes.CLICK2SMS,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'ussd':\n tracker.sendOptInFlowEvent('USSD');\n return {\n type: PossibleTypes.USSD,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'credit-card':\n // @ts-ignore\n tracker.sendOptInFlowEvent('Credit card');\n return {\n type: PossibleTypes.CREDIT_CARD,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n default:\n throw new Error('Strategy not supported');\n }\n});\n\nexport const setStrategyExtraData = createAsyncThunk(\n 'strategy/setStrategyExtraData',\n async ({ type, data }: { type: PossibleTypes; data: any }) => ({\n type,\n result: RDS.NothingYet(),\n data\n })\n);\n\nexport const strategySlice = createSlice({\n name: 'strategy',\n initialState,\n reducers: {\n // Define synchronous reducers as needed\n },\n extraReducers: (builder) => {\n // @ts-ignore\n builder\n .addCase(identifyStrategy.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.Loading()\n };\n })\n // @ts-ignore\n .addCase(identifyStrategy.fulfilled, (state, action: PayloadAction<StrategyCurrentState>) => {\n state.currentState = action.payload;\n })\n .addCase(identifyStrategy.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.Failure(action.error.message)\n };\n })\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.Loading()\n };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<StrategyCurrentState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.Failure(action.payload)\n };\n })\n .addCase(setStrategyExtraData.fulfilled, (state, action) => {\n state.currentState = action.payload;\n })\n .addCase(selectOperatorAction.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.Loading()\n };\n })\n .addCase(selectOperatorAction.fulfilled, (state, action: PayloadAction<any>) => {\n state.currentState = action.payload;\n })\n .addCase(selectOperatorAction.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\nexport const selectStrategyState = (state: RootState) => state.strategy;\nexport const strategyReducer = strategySlice.reducer;\n"],"names":["RDS.NothingYet","RDS.Success","RDS.Loading","RDS.Failure"],"mappings":"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"}
|
package/dist/ussdFlow.js
CHANGED
|
@@ -5,7 +5,7 @@ import { checkSubscriptionHander } from './checkSubscriptionHander.js';
|
|
|
5
5
|
import { searchToObject } from './searchToObject.js';
|
|
6
6
|
import { s as storeMsisdn } from './storeMsisdn-ChiBh8mI.js';
|
|
7
7
|
import { t as tracker } from './tracker-B_zsMRN2.js';
|
|
8
|
-
import { i as identifyStrategy } from './strategySlice-
|
|
8
|
+
import { i as identifyStrategy } from './strategySlice-C_5V7fUf.js';
|
|
9
9
|
import './handleResolveRedirect-5Hkm5YXF.js';
|
|
10
10
|
import './helpers-BIBpnXln.js';
|
|
11
11
|
import './updateUrlWithParams-ZaZt1BCf.js';
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"strategySlice-DEsw1xc-.js","sources":["../../src/sharedFlowTypes/StrategyTypes.ts","../../src/ips/tryGetIPRangeName.ts","../../src/flows/strategy/main.ts","../../src/flows/strategy/strategies/askMobileNumber.ts","../../src/flows/strategy/strategies/askOperator.ts","../../src/flows/strategy/strategies/callRedirectApi.ts","../../src/flows/strategy/strategies/detectOperatorByIp.ts","../../src/flows/strategy/strategies/headerEnrichment.ts","../../src/flows/strategy/strategies/injectHeaderEnrichmentScript.ts","../../src/flows/strategy/strategySlice.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable camelcase */\nimport * as RDS from '../common-types/RemoteDataState';\nimport { IStrategyNames } from '../common-types/Strategy';\nimport { Click2smsFlowState } from './Click2smsTypes';\nimport { CreditCardFlowState } from './CreditCardTypes';\nimport { MoRedirFlowState } from './MoRedirTypes';\nimport { MoFlowState } from './MoTypes';\nimport { OneClickFlowState } from './OneClickTypes';\nimport { PinFlowState } from './PinTypes';\nimport { UssdFlowState } from './UssdTypes';\n\nexport type IIdentifyResult = {\n operator: string;\n flow?: string;\n success: boolean;\n rockman_id?: string;\n message?: string;\n};\n\nexport interface HEResult {\n msisdn: string;\n operator: string;\n subscription_url?: string;\n redirect_url?: string;\n}\n\nexport type ConfigDetails = {\n host: string;\n slug: string;\n country: string;\n device?: 'smart' | 'feature';\n queryString?: Array<[string, string]>;\n automaticallySubmitAllOperators?: boolean;\n operators?: string[];\n service: string;\n offer?: string;\n};\n\nexport type IConfig = {\n offer?: string;\n slug?: string;\n country?: string;\n host?: string;\n device?: 'smart' | 'feature';\n automaticallySubmitAllOperators?: boolean;\n operators?: string[];\n service?: string;\n serviceId?: string;\n queryString?: any;\n apiAction?: any;\n};\n\nexport type ISupportedFlows = 'pin' | 'mo' | 'oneClick' | 'click2sms' | 'moRedir' | 'ussd' | 'creditCard';\nexport type IFlow = {\n flow: ISupportedFlows;\n flowOnWifi?: ISupportedFlows;\n operator?: string;\n flowConfig: ConfigDetails;\n default?: IFlow;\n rockman_id?: string;\n};\n\nexport type StrategyConfig = {\n operators: {\n [key: string]: IFlow;\n };\n default: IFlow;\n isUseMsisdnPrefix?: boolean;\n};\n// export type IStrategy = IPinStrategy | IMoStrategy;\n\nexport type IStrategy = {\n strategy: IStrategyNames;\n country: string;\n strategyConfigs: StrategyConfig;\n};\n\nexport interface IHash {\n [key: string]: string;\n}\n\nexport type IDENTIFYMSISDNEntryErrorTypes = 'AlreadySubscribed' | 'UnknownError' | 'InvalidMSISDN';\n\nexport type IDENTIFYMSISDNEntryFailure = {\n errorType: IDENTIFYMSISDNEntryErrorTypes;\n error: unknown;\n};\n\nexport type IdentifyFlowOptionsResult = {\n config: IConfig;\n nextAction?: unknown;\n msisdn?: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n rockman_id?: string;\n isHeaderEnrichmentSuccess?: boolean;\n autoRedirect?: boolean;\n isUseMsisdnPrefix?: boolean;\n};\n\nexport type IDENTIFYMSISDNEntrySuccess = {};\nexport type OPERATORSelectFailure = {};\nexport type OPERATORSelectSuccess = IdentifyFlowOptionsResult;\n\nexport type IDETECTYOPERATOBYIPFailure = {};\nexport type IDETECTYOPERATOBYIPSuccess = IdentifyFlowOptionsResult;\n\nexport type IDENTIFY_OPERATOR_MSISDNEntrySuccess = IdentifyFlowOptionsResult;\n\nexport type IDENTIFY_FLOW_HESuccess = IdentifyFlowOptionsResult;\n\nexport type OPERATORSelectFlowIdentifyFailure = {};\nexport type OPERATORSelectFlowIdentifySuccess = {\n operators: Array<string>;\n msisdn?: string;\n nextAction: 'selectOperator';\n};\nexport type IDENTIFYFailure = {};\n\nexport type IDENTIFYSuccess = {};\n\nexport type IOperatorSelectFlowIdentifyPayload = {\n type: 'IDENTIFY_FLOW_BY_OPERATOR_SELECT';\n result: RDS.RemoteDataState<OPERATORSelectFlowIdentifyFailure, OPERATORSelectFlowIdentifySuccess>;\n};\n\n// export type IIdentifyByIPPayload= {\n// type:\"IDENTIFY_FLOW_BY_IP\"\n// result: RDS.RemoteDataState<IDENTIFYBYIPFailure, IDENTIFYBYIPSuccess>;\n// }\n\nexport type IDetectOperatorByIpPayload = {\n type: 'DETECT_OPERATOR_BY_IP';\n result: RDS.RemoteDataState<IDETECTYOPERATOBYIPFailure, IDETECTYOPERATOBYIPSuccess>;\n};\n\nexport enum PossibleTypes {\n IDENTIFY_STRATEGY = 'IDENTIFY_STRATEGY',\n IDENTIFY_FLOW_BY_MSISDN = 'IDENTIFY_FLOW_BY_MSISDN',\n IDENTIFY_FLOW_BY_OPERATOR_SELECT = 'IDENTIFY_FLOW_BY_OPERATOR_SELECT',\n PIN = 'PIN',\n MO = 'MO',\n MO_REDIR = 'MO_REDIR',\n ONE_CLICK = 'ONE_CLICK',\n CLICK2SMS = 'CLICK2SMS',\n USSD = 'USSD',\n TPAY_HE = 'TPAY_HE',\n CREDIT_CARD = 'CREDIT_CARD'\n}\n\nexport type IOperatorSelectPayload = {\n type: PossibleTypes;\n result: OPERATORSelectSuccess;\n};\n\nexport type ISubmitMsisdnPayload = {\n type: PossibleTypes;\n result: IDENTIFY_OPERATOR_MSISDNEntrySuccess;\n};\n\nexport type IIdentifyFlowByIpOperatorPayload = {\n type: PossibleTypes;\n result: IDENTIFY_OPERATOR_MSISDNEntrySuccess;\n};\n\nexport type IIdentifyFlowByHePayload = {\n type: PossibleTypes;\n result: IDENTIFY_FLOW_HESuccess;\n};\n\nexport type IIdentfyFlowByMsisdnNextAction = 'submitMSISDNAction' | 'loadOc2sms';\nexport type IIdentfyFlowByOperatorNextAction = 'submitMSISDNAction' | 'loadOc2sms';\nexport type IIdentfyFlowByIPOperatorNextAction = 'getRedirectUrlAction' | 'submitMSISDNAction';\n\nexport type IIdenyifyFlowByMsisdnSumbitNextData = {\n nextAction: IIdentfyFlowByMsisdnNextAction;\n msisdn?: string;\n operator?: string;\n};\n\nexport type IIdenyifyFlowByMsisdnPayload = {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n data: IIdenyifyFlowByMsisdnSumbitNextData;\n};\n\nexport type IIdenyifyStrategyPayload = {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n data: IIdenyifyFlowByMsisdnSumbitNextData;\n};\n\nexport type IStrategyCurrentState =\n | {\n type: 'IDENTIFY_STRATEGY';\n result: RDS.RemoteDataState<IDENTIFYFailure, IDENTIFYSuccess>;\n }\n | {\n type: 'IDENTIFY_FLOW_BY_OPERATOR_SELECT';\n result: OPERATORSelectFlowIdentifySuccess;\n }\n | {\n type: 'DETECT_OPERATOR_BY_IP';\n result: RDS.RemoteDataState<IDETECTYOPERATOBYIPFailure, IDETECTYOPERATOBYIPSuccess>;\n }\n | {\n type: 'HE_IDENTIFY';\n result: RDS.RemoteDataState<IDENTIFYFailure, IDENTIFYSuccess>;\n }\n | {\n type: 'OPERATOR_SELECT';\n result: RDS.RemoteDataState<OPERATORSelectFailure, OPERATORSelectSuccess>;\n config: IConfig;\n }\n | {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n nextData: IIdenyifyFlowByMsisdnSumbitNextData;\n }\n | {\n type: 'PIN';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'MO';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'USSD';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'MO_REDIR';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'ONE_CLICK';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'CLICK2SMS';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'TPAY_HE';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'CREDIT_CARD';\n result: IdentifyFlowOptionsResult;\n };\n\nexport type IStrategyIDentifyUserResult =\n | {\n success: 'true';\n rockman_id: string;\n msisdn: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n 'redirect-back'?: string;\n 'msisdn-alias'?: string;\n }\n | {\n success: 'false';\n rockman_id: string;\n message: string;\n 'redirect-back'?: string;\n };\n\nexport type IMockFlows = 'pin' | 'mo' | 'oneclick' | 'click2sms' | 'moredir' | 'ussd' | 'tpay' | 'creditcard';\n\nexport interface IMockFlowParams<T> {\n 'mock-flow': IMockFlows;\n 'current-state': T;\n 'show-pin-entry': '1' | '0';\n 'show-thank-you': '1' | '0';\n 'show-chain-link': '1' | '0';\n operator: string;\n msisdn?: string;\n 'subscription-url'?: string;\n show_custom_error?: string;\n product_url?: string;\n ui_show_default_flow?: '1' | '0';\n ui_show_pin_entry?: '1' | '0';\n ui_error_message?: string;\n}\n\nexport interface IScriptHeaderEnrichmentSuccess extends CustomEvent {\n detail: {\n msisdn: string;\n operator_code: string;\n subscription_url: boolean;\n encrypted_msisdn: boolean;\n };\n}\n\nexport interface IScriptHeaderEnrichmentFailure extends CustomEvent {\n detail: {\n encrypted_msisdn: boolean;\n error_details: {\n error: any;\n stack: any;\n };\n };\n}\n\nexport interface ExtraStrategyData {\n isHeaderEnrichmentSuccess?: boolean;\n config?: ConfigDetails;\n msisdn?: string;\n rockman_id?: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n operators?: string[];\n strategy?: string;\n defaultConfig?: IFlow;\n defaultFlowType?: ISupportedFlows;\n skipRedirectCall?: boolean;\n apn?: string;\n}\nexport interface StrategyState {\n currentState: StrategyCurrentState;\n}\n\nexport interface StrategyCurrentState {\n type: PossibleTypes;\n result: RDS.RemoteDataState<any, any>;\n data?: ExtraStrategyData;\n}\n\nexport type IMockPinFlowStates = 'msisdn-state' | 'pin-state' | 'completed-state' | 'msisdn-failure-state';\n\nexport interface RootState {\n strategy?: StrategyState;\n pinFlow?: PinFlowState;\n moFlow?: MoFlowState;\n moRedirFlow?: MoRedirFlowState;\n click2smsFlow?: Click2smsFlowState;\n oneClickFlow?: OneClickFlowState;\n ussdFlow?: UssdFlowState;\n creditCardFlow?: CreditCardFlowState;\n}\n","/* eslint-disable no-param-reassign */\nimport { IVisitor } from '../common-types/IVisitor';\nimport queryString from '../pacman/queryString';\n\n// eslint-disable-next-line consistent-return\nexport default async function tryGetIPRangeName(visitor: IVisitor): Promise<string> {\n const mockip = queryString(window.location.href, 'mock-ip') || process.env.mock_ip;\n // eslint-disable-next-line no-console\n console.log('mockip', mockip);\n if (!visitor.ip && typeof window !== 'undefined') {\n try {\n const { host } = window.location;\n const newHost = window.DEV_BASE_URL_IP || host;\n const res = await fetch(`https://${newHost}/api/v1/ip${mockip ? `?mock-ip=${mockip}` : ''}`).then((x) =>\n x.json()\n );\n // return isIPInRange('37.200.146.28')\n visitor.ip = res.ip;\n visitor.ip_range_name = res.ip_range_name;\n return res.ip_range_name;\n } catch (ex) {\n console.warn('IP Lookup failed', ex);\n return '';\n }\n } else {\n return visitor.ip_range_name || '';\n }\n}\n","import { IError } from '../../common-types/IError';\nimport { IOptInFlowName } from '../../common-types/IOptInFlowName';\nimport { IStrategy, ISupportedFlows } from '../../common-types/Strategy';\nimport tryGetIPRangeName from '../../ips/tryGetIPRangeName';\nimport { HEResult, IConfig, IFlow, IIdentifyResult, PossibleTypes } from '../../sharedFlowTypes/StrategyTypes';\nimport { formatNumberToE164 } from '../../utilities/formatNumberToE164';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { identify } from './api';\n\nexport const flowMapping: Record<ISupportedFlows, PossibleTypes> = {\n mo: PossibleTypes.MO,\n pin: PossibleTypes.PIN,\n oneClick: PossibleTypes.ONE_CLICK,\n moRedir: PossibleTypes.MO_REDIR,\n click2sms: PossibleTypes.CLICK2SMS,\n ussd: PossibleTypes.USSD,\n tpayHe: PossibleTypes.TPAY_HE,\n creditCard: PossibleTypes.CREDIT_CARD\n};\n\n// @ts-ignore\nexport const trackerEventMapping: Record<ISupportedFlows, IOptInFlowName> = {\n mo: 'Msisdn to sms',\n pin: 'Pin',\n oneClick: '3G click',\n moRedir: 'Redirect',\n click2sms: 'Click to sms',\n tpayHe: 'Pin',\n ussd: 'Msisdn to sms'\n};\n\nexport const getTrackerEventName = (flowType: ISupportedFlows) => trackerEventMapping[flowType];\n\nexport async function determineFlowByMsidn({\n window,\n internationalMSISDN,\n configs\n}: {\n window: Window;\n internationalMSISDN: string;\n configs: IStrategy;\n}): Promise<IFlow> {\n if (!internationalMSISDN) {\n const submissionError = new Error(`Error in determineFlowByMsidn() identify action`) as IError;\n submissionError.type = 'SEInvalidMSISDN';\n throw submissionError;\n }\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || ''; // tallyman API expects international msisdn without unknown special character\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const config = defaultFlowConfig.flowConfig;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n\n const indentifyFlow = async (): Promise<IIdentifyResult> => {\n const { slug, country, device } = config;\n const { rockmanId } = window.pac_analytics.visitor;\n const { offer } = window.pac_analytics.visitor;\n const flowOperatorResult: IIdentifyResult = await identify({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId\n });\n return flowOperatorResult;\n };\n const theResult = await indentifyFlow();\n\n const flow = operatorsConfig[theResult.operator] ? operatorsConfig[theResult.operator] : null;\n const cannotDetect =\n theResult.success === false && theResult.message === 'Operator could not be found for the given MSISDN';\n const hlrError =\n theResult.success === false && theResult.message?.indexOf('HLR did not find the operator for given MSISDN') !== -1;\n\n if (cannotDetect || hlrError) {\n const submissionError = new Error(`Error in determineFlowByMsidn() identify action`) as IError & { msisdn: string };\n submissionError.type = 'FlowDetectFailed';\n submissionError.msisdn = msisdn;\n throw submissionError;\n } else if (flow !== null) {\n const flowObj = { operator: theResult.operator, default: defaultFlowConfig, ...flow };\n // @ts-ignore\n return flowObj;\n } else if (flow === null) {\n const flowObj = { operator: theResult.operator, ...defaultFlowConfig };\n // @ts-ignore\n return flowObj;\n } else {\n const submissionError = new Error(`Error in determineFlowByMsidn() identify action`) as IError;\n submissionError.type = 'SEInvalidMSISDN';\n throw submissionError;\n }\n}\n\nexport function determineFlowByOperator({ configs, operator }: { configs: IStrategy; operator: string }): IFlow {\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n\n const flowObj = {\n operator: operator?.toUpperCase(),\n default: defaultFlowConfig,\n ...operatorsConfig[operator?.toUpperCase()]\n };\n // @ts-ignore\n return flowObj;\n}\n\nexport async function determineFlowByOperatorFromIp({\n window,\n configs\n}: {\n window: Window;\n configs: IStrategy;\n}): Promise<IFlow> {\n const operator = await tryGetIPRangeName(window.pac_analytics.visitor);\n const flowObj = determineFlowByOperator({\n configs,\n operator: operator && operator.includes('_') ? operator.toUpperCase() : ''\n });\n return flowObj;\n}\n\nexport function getOperators({ configs }: { configs: IStrategy }): Array<string> {\n const operatorsConfig = configs?.strategyConfigs?.operators;\n const operators = Object.keys(operatorsConfig);\n return operators;\n}\n\nexport const getHeaderEnrichmentResult = async (): Promise<HEResult> => {\n if (typeof window === 'undefined') {\n throw new Error('This function can only be run in a browser environment.');\n }\n\n const searchObj = searchToObject(window) as any; // Assumes the implementation of searchToObject\n if (searchObj.success === 'false') {\n throw new Error(`Error in getRedirectUrl() identify-user action:\\n${searchObj.message || 'NotOn3g'}`);\n }\n const responseUrl = searchObj.subscription_url || searchObj.redirect_url;\n\n if (responseUrl) {\n const decodedUrl = window.atob(responseUrl);\n const newUrl = new URL(decodedUrl);\n const urlParams = new URLSearchParams(newUrl.search);\n\n let msisdn = urlParams.get('msisdn') || searchObj.msisdn;\n const operator = urlParams.get('operator') || searchObj.operator;\n\n if (msisdn) {\n msisdn = formatNumberToE164(msisdn, window?.pac_analytics?.visitor?.country);\n }\n\n return {\n msisdn: msisdn || '',\n operator: operator || '',\n subscription_url: searchObj.subscription_url ? decodedUrl : undefined,\n redirect_url: searchObj.redirect_url ? decodedUrl : undefined\n };\n }\n console.error('No URL provided for redirection in the url params');\n\n const newUrl = new URL(window.location.href);\n const urlParams = new URLSearchParams(newUrl.search);\n\n let msisdn = urlParams.get('msisdn') || searchObj.msisdn;\n const operator = urlParams.get('operator') || searchObj.operator;\n\n if (msisdn) {\n msisdn = formatNumberToE164(msisdn, window?.pac_analytics?.visitor?.country);\n }\n\n return {\n msisdn: msisdn || '',\n operator: operator || ''\n };\n};\n\nexport const subscribe: (_url: string) => Promise<string> = async (_url: string) =>\n // const result:ISubscribeResult = await fetch(url + \"&operator=kw_viva\").then((x)=>x.json())\n\n // if(false === result.success){\n // const subscribeError = new Error(`Error in subscribe() one-click-subscribe action:\\n${result.message}`) as IError & {type:string;}\n // subscribeError['type'] = \"SubscriptionError\";\n // throw subscribeError\n // }else{\n '/product';\n// }\n\nexport function mockConfig({ configs, flow }: { configs: IStrategy; flow: string }): IConfig {\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n const opArr = Object.keys(operatorsConfig);\n const r = opArr.filter((o) => operatorsConfig[o].flow === flow);\n const operator = r[0];\n const flowObj = { offer: '1', operator, default: defaultFlowConfig, ...operatorsConfig[operator] };\n\n return flowObj;\n}\n\n// export const mockedPinFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.PIN,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('pin')\n// }\n// }\n// };\n\n// export const mockedMoFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.MO,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('mo')\n// }\n// }\n// };\n\n// export const mockedUssdFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.USSD,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('ussd')\n// }\n// }\n// };\n\n// export const mockedMoRdirFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.MO_REDIR,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('moRedir')\n// }\n// }\n// };\n\n// export const mockedClick2smsFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.CLICK2SMS,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('click2sms')\n// }\n// }\n// };\n\n// export const mockedOneClickFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.ONE_CLICK,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('oneClick')\n// }\n// }\n// };\n\n// export const mockedCreditCardFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.CREDIT_CARD,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('creditCard')\n// }\n// }\n// };\n// export const mockedMOFlow : State = { type: \"MO\", result:moFlow(mockTracker, mockConfig(\"mo\"))}\n// export const mockedOneClickFlow : State = { type: \"ONECLICK\", result:oneClickFlow(mockTracker, mockConfig(\"oneClick\"), {\"testextraparams\":\"1\"})}\n// export const mockedClick2smsFlow : State = { type: \"CLICK2SMS\", result:click2smsFlow(mockTracker, mockConfig(\"click2sms\"))}\n// export const mockedMORedirFlow : State = { type: \"MOREDIR\", result:moRedirFlow(mockTracker, mockConfig(\"moRedir\"))}\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport * as RDS from '../../../common-types/RemoteDataState';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\n\nimport {\n IDENTIFYMSISDNEntryErrorTypes,\n ISupportedFlows,\n PossibleTypes,\n StrategyCurrentState\n} from '../../../sharedFlowTypes/StrategyTypes';\nimport { determineFlowByMsidn, flowMapping, getTrackerEventName } from '../main';\n\nexport const askMobileNumber = (): StrategyCurrentState => ({\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.NothingYet()\n});\n\nexport const submitMSISDNAction = createAsyncThunk(\n 'strategy/submitMSISDNAction',\n async (\n {\n window,\n msisdn\n }: {\n window: Window;\n msisdn: string;\n isHeSuccess?: boolean;\n },\n { rejectWithValue }\n ) => {\n try {\n const configs = getConfig();\n const flowObj = await determineFlowByMsidn({ window, internationalMSISDN: msisdn, configs });\n const flowType = flowObj?.flow;\n const event = getTrackerEventName(flowType);\n const defaultConfig = configs?.strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow as ISupportedFlows;\n\n if (!flowMapping[flowType]) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n tracker.sendOptInFlowEvent(event);\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n msisdn\n }\n };\n } catch (ex) {\n let errorType: IDENTIFYMSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'SEAlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'SEInvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n default:\n errorType = 'UnknownError';\n }\n return rejectWithValue({\n errorType,\n error: ex,\n productUrl: ex.productUrl\n });\n }\n }\n);\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport * as RDS from '../../../common-types/RemoteDataState';\n\nimport { PossibleTypes, StrategyCurrentState } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperator, flowMapping, getOperators, getTrackerEventName } from '../main';\n\nexport const askOperator = (): StrategyCurrentState => {\n const configs = getConfig();\n const operators = getOperators({ configs });\n return {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.NothingYet(),\n data: {\n operators\n }\n };\n};\n\nexport const selectOperatorAction = createAsyncThunk(\n 'strategy/selectOperatorAction',\n async (\n {\n operator\n }: {\n operator: string;\n },\n { rejectWithValue }\n ) => {\n try {\n const configs = getConfig();\n\n const flowObj = determineFlowByOperator({\n configs,\n operator\n });\n\n const flowType = flowObj.flow;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator\n }\n };\n } catch (ex) {\n const errorType = 'UnkownError';\n return rejectWithValue({\n errorType,\n error: ex.toString()\n });\n }\n }\n);\n","import * as RDS from '../../../common-types/RemoteDataState';\n\nimport { ISupportedFlows } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { getRedirectUrl } from '../api';\nimport { flowMapping, getTrackerEventName } from '../main';\n\nconst callRedirectApi = async () => {\n const configs = getConfig();\n const defaultConfig = configs?.strategyConfigs.default;\n const defaultFlowType = defaultConfig.flow as ISupportedFlows;\n const { slug, country, device } = defaultConfig.flowConfig;\n const { rockmanId } = window.pac_analytics.visitor;\n const { offer } = window.pac_analytics.visitor;\n try {\n const result = await getRedirectUrl({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId\n });\n\n if (result.success === false) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n\n // OPERATOR NOT KNOWN\n\n // const operator = result?.operator && result?.operator !== 'unknown' ? result?.operator : null;\n\n if (result?.payload?.network_type === 'data') {\n // const flowObj = await determineFlowByOperator({\n // operator,\n // configs\n // });\n // const flowType = flowObj.flow || defaultFlowType;\n const event = getTrackerEventName('oneClick');\n tracker.sendOptInFlowEvent(event);\n return {\n type: flowMapping.oneClick,\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n redirect_url: result.redirect_url || null\n }\n };\n }\n if (result?.payload?.network_type === 'wifi') {\n // const flowObj = await determineFlowByOperator({\n // operator,\n // configs\n // });\n // const flowType = flowObj.flow || defaultFlowType;\n const event = getTrackerEventName('moRedir');\n tracker.sendOptInFlowEvent(event);\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n redirect_url: result.redirect_url || null,\n skipRedirectCall: true\n }\n };\n }\n\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n redirect_url: result.redirect_url || null,\n skipRedirectCall: true\n }\n };\n } catch (ex) {\n console.error('error', ex);\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n};\n\nexport { callRedirectApi };\n","import * as RDS from '../../../common-types/RemoteDataState';\nimport { IStrategyNames, ISupportedFlows } from '../../../common-types/Strategy';\n\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperatorFromIp, flowMapping, getTrackerEventName } from '../main';\nimport { askMobileNumber } from './askMobileNumber';\nimport { askOperator } from './askOperator';\n\nconst detectOperatorByIp = async (strategy?: IStrategyNames) => {\n try {\n const configs = getConfig();\n\n const flowObj = await determineFlowByOperatorFromIp({\n window,\n configs\n });\n const defaultConfig = configs?.strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow as ISupportedFlows;\n\n if (\n !flowObj.flow &&\n (strategy === 'all-flows-detect-operator-by-ip-or-ask-mobile-number' ||\n strategy === 'all-flows-ask-mobile-number')\n ) {\n return askMobileNumber();\n }\n\n if (!flowObj.flow && strategy === 'all-flows-detect-operator-by-ip-or-ask-operator') {\n return askOperator();\n }\n\n const flowType = flowObj.flow;\n if (!flowMapping[flowType]) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n strategy\n }\n };\n }\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n strategy,\n defaultConfig,\n defaultFlowType\n }\n };\n } catch (ex) {\n console.error('error', ex);\n }\n};\n\nexport { detectOperatorByIp };\n","import IVisitor from '../../../common-types/IVisitor';\nimport * as RDS from '../../../common-types/RemoteDataState';\nimport { IStrategy } from '../../../common-types/Strategy';\n\nimport { ISupportedFlows } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { searchToObject } from '../../../utilities/searchToObject';\nimport { tracker } from '../../../utilities/tracker';\nimport {\n determineFlowByMsidn,\n determineFlowByOperator,\n flowMapping,\n getHeaderEnrichmentResult,\n getTrackerEventName\n} from '../main';\n\nconst resolveOperator = async (\n visitor: IVisitor,\n search: any,\n configs: IStrategy,\n msisdn: string\n): Promise<string | null> => {\n const firstSync = search?.operator ?? visitor?.heMsisdnDecryptedByApiResult?.operator;\n if (firstSync) return firstSync;\n\n const flow = await determineFlowByMsidn({\n window,\n configs,\n internationalMSISDN: msisdn\n });\n\n return flow?.operator ?? null;\n};\nconst handleHeaderEnrichment = async () => {\n const configs = getConfig();\n const defaultConfig = configs?.strategyConfigs.default;\n const defaultFlowType = defaultConfig.flow as ISupportedFlows;\n\n try {\n const visitor = (window.pac_analytics?.visitor ?? {}) as any;\n\n const search = searchToObject(window) as { operator: string; msisdn: string };\n\n const candidates: (string | undefined)[] = [\n search?.msisdn,\n visitor.heMsisdnDecryptedByApiResult?.msisdn,\n visitor.heMsisdnResult?.msisdn\n ];\n\n const msisdn = candidates.find((s) => !!s) ?? null;\n const isHeaderEnrichmentSuccess = msisdn !== null;\n\n const operator = msisdn ? await resolveOperator(visitor, search, configs, msisdn) : null;\n if (isHeaderEnrichmentSuccess) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn,\n operator\n });\n } else {\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure');\n }\n if (operator === null) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n\n if (configs.strategy === 'pin-header-enrichment' && isHeaderEnrichmentSuccess) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator,\n msisdn,\n isHeaderEnrichmentSuccess\n }\n };\n }\n\n if (window?.pac_analytics?.visitor?.heMsisdnDecryptedByApiResult?.isContentBlocked) {\n window.isContentBlocked = true;\n tracker.customEvent('Flow', 'recede-auto', 'content-blocked', {\n errorType: 'ContentBlocked',\n error: 'ContentBlocked',\n message: 'ContentBlocked',\n ...window?.pac_analytics?.visitor?.heMsisdnDecryptedByApiResult\n });\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator\n }\n };\n }\n let subscription_url = null;\n let redirect_url = null;\n const flowObj = await determineFlowByOperator({\n operator,\n configs\n });\n const flowType = flowObj.flow || defaultFlowType;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n if (flowType === 'oneClick') {\n const heResult = await getHeaderEnrichmentResult();\n subscription_url = heResult?.subscription_url || null;\n redirect_url = heResult?.redirect_url || null;\n }\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n subscription_url: subscription_url || null,\n redirect_url: redirect_url || null,\n isHeaderEnrichmentSuccess,\n msisdn,\n apn: visitor?.heMsisdnResult?.apn\n }\n };\n } catch (ex) {\n console.error('error', ex);\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n};\n\nexport { handleHeaderEnrichment };\n","/* eslint-disable func-names */\nimport * as RDS from '../../../common-types/RemoteDataState';\nimport {\n IConfig,\n IFlow,\n IScriptHeaderEnrichmentFailure,\n IScriptHeaderEnrichmentSuccess,\n ISupportedFlows,\n PossibleTypes\n} from '../../../sharedFlowTypes/StrategyTypes';\nimport { formatNumberToE164 } from '../../../utilities/formatNumberToE164';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperator, flowMapping, getTrackerEventName } from '../main';\n\n/**\n * Creates a response object with the given parameters.\n *\n * @param {string} msisdn - The MSISDN (Mobile Station International Subscriber Directory Number).\n * @param {IConfig} config - The configuration object.\n * @param {string | null} operator - The operator (default: null).\n * @return {object} The response that sets the state.\n */\nconst createResponseObject = (config: IConfig, flow?: ISupportedFlows) => ({\n type: flowMapping[flow] || PossibleTypes.PIN,\n result: RDS.NothingYet(),\n data: {\n config\n }\n});\n\n/**\n * Injects header enrichment script based on the provided window object.\n *\n * @param {Window} window - The window object containing analytics visitor details.\n * @return {Promise} A promise that resolves based on specific events or timeouts.\n */\nconst injectHeaderEnrichmentScript = async ({ window }: { window: Window }) => {\n const configs = getConfig();\n const enableScriptTimer = configs?.enableScriptTimer;\n const { strategyConfigs } = configs;\n const config = strategyConfigs?.default?.flowConfig;\n\n return new Promise((resolve) => {\n try {\n let heMsisdn = window?.pac_analytics?.visitor?.heMsisdn;\n const country = window?.pac_analytics?.visitor?.country;\n\n if (heMsisdn && country) {\n heMsisdn = formatNumberToE164(heMsisdn, country);\n }\n\n let msisdnDetected = false;\n let timerExpired = false;\n let timerId: string | number | NodeJS.Timeout;\n\n if (enableScriptTimer) {\n timerId = setTimeout(() => {\n if (!msisdnDetected) {\n timerExpired = true;\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: '3 second timer expired'\n });\n\n window.isPrelanderClicked = true;\n resolve({\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n });\n }\n }, 3000);\n }\n\n const onSuccess = (event: Event) => {\n const { detail } = event as IScriptHeaderEnrichmentSuccess;\n heMsisdn = detail?.msisdn;\n if (detail?.msisdn && !detail?.encrypted_msisdn) {\n heMsisdn = formatNumberToE164(detail.msisdn, country);\n window.msisdn = heMsisdn;\n } else {\n window.msisdn = detail?.msisdn;\n window.is_encrypted_msisdn = detail?.encrypted_msisdn;\n }\n\n if (enableScriptTimer) {\n if (!timerExpired) {\n msisdnDetected = true;\n clearTimeout(timerId);\n\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn: heMsisdn\n });\n const flowObj = determineFlowByOperator({\n configs: getConfig(),\n operator: detail?.operator_code\n });\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(headerEnrichmentScript(flowObj, heMsisdn, detail?.operator_code, true));\n }\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn: heMsisdn,\n operator: detail?.operator_code\n });\n const flowObj = determineFlowByOperator({\n configs: getConfig(),\n operator: detail?.operator_code\n });\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(headerEnrichmentScript(flowObj, heMsisdn, detail?.operator_code, true));\n }\n };\n\n const onFail = (event: Event) => {\n const { detail } = event as IScriptHeaderEnrichmentFailure;\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', detail?.error_details);\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(createResponseObject(config, strategyConfigs?.default.flow as ISupportedFlows));\n };\n\n window.addEventListener('he-success', onSuccess);\n window.addEventListener('he-fail', onFail);\n\n if (!window?.heScriptUrl) {\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: 'Error he script url not set'\n });\n window.dispatchEvent(new Event('he-fail'));\n return;\n }\n window.addEventListener('error', (event) => {\n console.error('Global error:', event?.error);\n tracker.customEvent('Flow', 'recede-auto', 'global-error', {\n errorMessage: event?.error?.message,\n errorStack: event?.error?.stack\n });\n });\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.id = 'he-js-link';\n script.src = `${window.heScriptUrl}`; // URL Comes from server\n script.referrerPolicy = 'origin';\n document.head.appendChild(script);\n\n script.onerror = (error: any) => {\n console.error('Error loading Header Enrichment script.');\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: 'Error loading Header Enrichment script',\n errorMessage: error.message\n });\n window.dispatchEvent(new Event('he-fail'));\n };\n } catch (err) {\n console.error('Error in header enrichment:', err);\n resolve(createResponseObject(config, strategyConfigs?.default.flow as ISupportedFlows));\n }\n });\n};\n\nconst headerEnrichmentScript = (\n flowObj: IFlow,\n msisdn: string | null = null,\n operator: string | null = null,\n isHeaderEnrichmentSuccess: boolean\n) => {\n const defaultConfig = getConfig().strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow;\n const flowType = flowObj.flow || flowObj.default?.flow;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n if (!flowObj.flow) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator,\n msisdn,\n isHeaderEnrichmentSuccess\n }\n };\n }\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n isHeaderEnrichmentSuccess\n }\n };\n};\n\nexport { injectHeaderEnrichmentScript };\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport { searchToObject } from '../../utilities/searchToObject';\n\nimport {\n IMockFlowParams,\n IMockPinFlowStates,\n ISupportedFlows,\n PossibleTypes,\n RootState,\n StrategyCurrentState,\n StrategyState\n} from '../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../utilities/getConfig';\nimport { determineFlowByOperator, flowMapping } from './main';\nimport { askMobileNumber, submitMSISDNAction } from './strategies/askMobileNumber';\nimport { askOperator, selectOperatorAction } from './strategies/askOperator';\n\nimport { tracker } from '../../utilities/tracker';\nimport { callRedirectApi } from './strategies/callRedirectApi';\nimport { detectOperatorByIp } from './strategies/detectOperatorByIp';\nimport { handleHeaderEnrichment } from './strategies/headerEnrichment';\nimport { injectHeaderEnrichmentScript } from './strategies/injectHeaderEnrichmentScript';\n\nwindow.tracker = tracker;\nconst initialState: StrategyState = {\n currentState: {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.NothingYet(),\n data: undefined\n }\n};\n\nconst mockStrategyStateByUrlParam = (): StrategyCurrentState => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n\n if (search['mock-flow'] !== undefined) {\n if (search.operator !== undefined) {\n window.operator = search.operator;\n }\n\n switch (search['mock-flow']) {\n case 'pin':\n return {\n type: PossibleTypes.PIN,\n result: RDS.Success({})\n };\n\n case 'mo':\n return {\n type: PossibleTypes.MO,\n result: RDS.Success({})\n };\n case 'moredir':\n return {\n type: PossibleTypes.MO_REDIR,\n result: RDS.Success({})\n };\n case 'oneclick':\n return {\n type: PossibleTypes.ONE_CLICK,\n result: RDS.Success({}),\n data: {\n subscription_url: search['subscription-url']\n }\n };\n case 'click2sms':\n return {\n type: PossibleTypes.CLICK2SMS,\n result: RDS.Success({})\n };\n case 'ussd':\n return {\n type: PossibleTypes.USSD,\n result: RDS.Success({})\n };\n case 'creditcard':\n return {\n type: PossibleTypes.CREDIT_CARD,\n result: RDS.Success({})\n };\n default:\n throw new Error('(mockStrategyStateByUrlParam) Strategy Mock Flow not supported');\n }\n }\n};\n\n/**\n * Identify Strategy\n * @returns {type: 'strategy/identifyStrategy', payload: {type: PossibleTypes.MO, result: IdentifyFlowOptionsResult}}\n * - Add type\n * - Makes a decision on which strategy to use in order to identify the flow\n * - Strategy could be asking user's phone number, selecting an operator etc\n * - all with the intension of getting the flow and its configuration\n * - Flows are usually tied to an operator in the pages config.json\n * - But they could also be single flows\n *\n */\n\nexport const identifyStrategy = createAsyncThunk('strategy/identifyStrategy', async () => {\n const configs = getConfig();\n const { strategy, strategyConfigs } = configs;\n // const { isUseMsisdnPrefix } = strategyConfigs;\n const search = searchToObject(window) as IMockFlowParams<IMockPinFlowStates>;\n if (search['mock-flow'] !== undefined) {\n return mockStrategyStateByUrlParam();\n }\n if (search.ui_show_default_flow === '1') {\n const flow = strategyConfigs?.default.flow as ISupportedFlows;\n const config = strategyConfigs?.default?.flowConfig;\n return {\n type: flowMapping[flow],\n result: RDS.NothingYet(),\n data: {\n config\n }\n };\n }\n if (\n (search['show-pin-entry'] && search['show-pin-entry'] === '1') ||\n (search['show-thank-you'] && search['show-thank-you'] === '1') ||\n (search.show_custom_error && search.show_custom_error === '1')\n ) {\n const flowObj = determineFlowByOperator({\n configs,\n operator: search.operator\n });\n const strategyResult: StrategyCurrentState = {\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: flowObj?.flowConfig || strategyConfigs?.default?.flowConfig\n }\n };\n return strategyResult;\n }\n\n if (strategy.includes('ask-operator')) {\n return askOperator();\n }\n if (strategy.includes('detect-operator-by-ip')) {\n return detectOperatorByIp(strategy);\n }\n if (strategy?.includes('ask-mobile-number')) {\n return askMobileNumber();\n }\n\n if (strategy?.includes('detect-operator-by-redirect-api')) {\n return callRedirectApi();\n }\n\n if (strategy?.includes('header-enrichment') && strategy !== 'header-enrichment-script') {\n const n = await handleHeaderEnrichment();\n // @ts-ignore\n return n;\n }\n\n switch (strategy) {\n // REOVING THIS AS IT INJECTS UNUSED CODE\n case 'header-enrichment-script':\n // eslint-disable-next-line no-return-await\n return injectHeaderEnrichmentScript({\n window\n });\n case 'pin': {\n tracker.sendOptInFlowEvent('Pin');\n return {\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n }\n case 'mo':\n tracker.sendOptInFlowEvent('Msisdn to sms');\n return {\n type: PossibleTypes.MO,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'mo-redir':\n return {\n type: PossibleTypes.MO_REDIR,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'one-click':\n tracker.sendOptInFlowEvent('Redirect');\n return {\n type: PossibleTypes.ONE_CLICK,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'click2sms':\n tracker.sendOptInFlowEvent('Click to sms');\n return {\n type: PossibleTypes.CLICK2SMS,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'ussd':\n tracker.sendOptInFlowEvent('USSD');\n return {\n type: PossibleTypes.USSD,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'credit-card':\n // @ts-ignore\n tracker.sendOptInFlowEvent('Credit card');\n return {\n type: PossibleTypes.CREDIT_CARD,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n default:\n throw new Error('Strategy not supported');\n }\n});\n\nexport const setStrategyExtraData = createAsyncThunk(\n 'strategy/setStrategyExtraData',\n async ({ type, data }: { type: PossibleTypes; data: any }) => ({\n type,\n result: RDS.NothingYet(),\n data\n })\n);\n\nexport const strategySlice = createSlice({\n name: 'strategy',\n initialState,\n reducers: {\n // Define synchronous reducers as needed\n },\n extraReducers: (builder) => {\n // @ts-ignore\n builder\n .addCase(identifyStrategy.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.Loading()\n };\n })\n // @ts-ignore\n .addCase(identifyStrategy.fulfilled, (state, action: PayloadAction<StrategyCurrentState>) => {\n state.currentState = action.payload;\n })\n .addCase(identifyStrategy.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.Failure(action.error.message)\n };\n })\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.Loading()\n };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<StrategyCurrentState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.Failure(action.payload)\n };\n })\n .addCase(setStrategyExtraData.fulfilled, (state, action) => {\n state.currentState = action.payload;\n })\n .addCase(selectOperatorAction.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.Loading()\n };\n })\n .addCase(selectOperatorAction.fulfilled, (state, action: PayloadAction<any>) => {\n state.currentState = action.payload;\n })\n .addCase(selectOperatorAction.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\nexport const selectStrategyState = (state: RootState) => state.strategy;\nexport const strategyReducer = strategySlice.reducer;\n"],"names":["RDS.NothingYet","RDS.Success","RDS.Loading","RDS.Failure"],"mappings":"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"}
|