ouisys-engine 4.7.0-alpha.1 → 4.7.0-alpha.4

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.
Files changed (61) hide show
  1. package/dist/RemoteDataState-lcf8PfJd.js +2 -0
  2. package/dist/{RemoteDataState-CwHLI23e.js.map → RemoteDataState-lcf8PfJd.js.map} +1 -1
  3. package/dist/bupperizeCountry-CEtt0MKz.js +2 -0
  4. package/dist/bupperizeCountry-CEtt0MKz.js.map +1 -0
  5. package/dist/checkSubscriptionByRockmanIdOnly-BwR1un1L.js +2 -0
  6. package/dist/{checkSubscriptionByRockmanIdOnly-C89Ph9cV.js.map → checkSubscriptionByRockmanIdOnly-BwR1un1L.js.map} +1 -1
  7. package/dist/checkSubscriptionHander.js +1 -52
  8. package/dist/checkSubscriptionHander.js.map +1 -1
  9. package/dist/click2smsFlow.js +1 -245
  10. package/dist/click2smsFlow.js.map +1 -1
  11. package/dist/creditCardFlow.js +1 -247
  12. package/dist/creditCardFlow.js.map +1 -1
  13. package/dist/getConfig.js +1 -13
  14. package/dist/getConfig.js.map +1 -1
  15. package/dist/handleClickChainFlow.js +1 -31
  16. package/dist/handleClickChainFlow.js.map +1 -1
  17. package/dist/handleSubmitNumber.js +1 -64
  18. package/dist/handleSubmitNumber.js.map +1 -1
  19. package/dist/helpers-xPhGBX-B.js +2 -0
  20. package/dist/helpers-xPhGBX-B.js.map +1 -0
  21. package/dist/loadScriptInnerHtml-BzQm-AFb.js +2 -0
  22. package/dist/loadScriptInnerHtml-BzQm-AFb.js.map +1 -0
  23. package/dist/moFlow.js +1 -274
  24. package/dist/moFlow.js.map +1 -1
  25. package/dist/moRedirFlow.js +1 -224
  26. package/dist/moRedirFlow.js.map +1 -1
  27. package/dist/oneClickFlow.js +1 -463
  28. package/dist/oneClickFlow.js.map +1 -1
  29. package/dist/pinFlow.js +1 -696
  30. package/dist/pinFlow.js.map +1 -1
  31. package/dist/searchToObject.js +1 -18
  32. package/dist/searchToObject.js.map +1 -1
  33. package/dist/storeMsisdn-Cjq8_qYH.js +2 -0
  34. package/dist/{storeMsisdn-ChiBh8mI.js.map → storeMsisdn-Cjq8_qYH.js.map} +1 -1
  35. package/dist/strategy.js +1 -49
  36. package/dist/strategy.js.map +1 -1
  37. package/dist/strategySlice-CtjrhCrS.js +2 -0
  38. package/dist/{strategySlice-bF74rxDK.js.map → strategySlice-CtjrhCrS.js.map} +1 -1
  39. package/dist/tracker-DaaILhEr.js +2 -0
  40. package/dist/tracker-DaaILhEr.js.map +1 -0
  41. package/dist/tracker.js +1 -4
  42. package/dist/tracker.js.map +1 -1
  43. package/dist/tryGetIPRangeName-QW-9NgzE.js +2 -0
  44. package/dist/tryGetIPRangeName-QW-9NgzE.js.map +1 -0
  45. package/dist/ussdFlow.js +1 -210
  46. package/dist/ussdFlow.js.map +1 -1
  47. package/package.json +2 -6
  48. package/dist/RemoteDataState-CwHLI23e.js +0 -75
  49. package/dist/bupperizeCountry-CCDIOHP6.js +0 -4
  50. package/dist/bupperizeCountry-CCDIOHP6.js.map +0 -1
  51. package/dist/checkSubscriptionByRockmanIdOnly-C89Ph9cV.js +0 -27
  52. package/dist/helpers-J_h-ZgxH.js +0 -29
  53. package/dist/helpers-J_h-ZgxH.js.map +0 -1
  54. package/dist/loadScriptInnerHtml-DPcoY467.js +0 -26
  55. package/dist/loadScriptInnerHtml-DPcoY467.js.map +0 -1
  56. package/dist/storeMsisdn-ChiBh8mI.js +0 -58
  57. package/dist/strategySlice-bF74rxDK.js +0 -842
  58. package/dist/tracker-B_zsMRN2.js +0 -79
  59. package/dist/tracker-B_zsMRN2.js.map +0 -1
  60. package/dist/tryGetIPRangeName-C69HEG5W.js +0 -42
  61. package/dist/tryGetIPRangeName-C69HEG5W.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"moRedirFlow.js","sources":["../src/flows/moRedirFlow/hooks/useMoRedirFlowState.ts","../src/flows/moRedirFlow/match.ts","../src/flows/moRedirFlow/api.ts","../src/flows/moRedirFlow/main.ts","../src/flows/moRedirFlow/moRedirFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useMoRedirFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.moRedirFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport { MoRedirFlowCurrentState, MSISDNEntryFailure, MSISDNEntrySuccess } from '../../sharedFlowTypes/MoRedirTypes';\n\nfunction moRedirFlowMatch<R>({\n msisdnEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n}): (state: MoRedirFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n default:\n // TODO - this should be an error or something\n return msisdnEntry(state.result);\n }\n };\n}\n\nexport { moRedirFlowMatch };\n","import { IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoRedirTypes';\n\nconst redirect = async ({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n ip_range_name,\n search,\n extraParamsQs,\n email,\n password\n}: {\n window: Window;\n slug: string;\n country: string;\n msisdn?: string;\n device: string;\n offer: string;\n rockmanId: string;\n ip_range_name?: string;\n search: string;\n extraParamsQs?: string;\n email?: string;\n password?: string;\n}): Promise<IMSISDNSubmissionResult> => {\n const params = new URLSearchParams({\n action: 'redirect',\n slug,\n country,\n device,\n offerId: offer.toString(),\n rockman_id: rockmanId,\n page: encodeURIComponent(window.location.href),\n network_type: ip_range_name ? '' : 'wifi',\n ...(search && { search }),\n ...(window.pac_analytics?.visitor?.page?.includes('agency') && { evinaTi: rockmanId }),\n ...(window.securityProcessId && { securityProcessId: window.securityProcessId }),\n ...(window.languageCode && { language_code: window.languageCode }),\n ...(email && password ? { email, password } : { msisdn }),\n ...(extraParamsQs && { extraParams: extraParamsQs })\n }).toString();\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${params}`;\n\n if (slug.includes('za-mtn-beyondvr-r7')) {\n return {\n success: true,\n rockman_id: rockmanId,\n redirect_url: url\n };\n }\n\n return fetch(url).then((x) => x.json());\n};\n\nexport { redirect };\n","import { IError } from '../../common-types/IError';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport tryGetIPRangeName from '../../ips/tryGetIPRangeName';\nimport {\n IMSISDNSubmissionResult,\n MoRedirFlowState,\n MSISDNEntryFailure,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoRedirTypes';\nimport { IConfig } from '../../sharedFlowTypes/StrategyTypes';\nimport { redirect } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<string> {\n const config: IConfig = { offer: window.pac_analytics.visitor.offer, ...(maybeConfig || {}) };\n return submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams);\n}\n\nexport async function submitMSISDNWithConfig(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<string> {\n const { slug, country, device, offer } = config;\n const search = window.location.search.substr(1) || '';\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n const msisdn = internationalMSISDN.match(/\\d+/gi).join('');\n const { visitor } = window.pac_analytics;\n const { rockmanId } = visitor;\n\n const ip_range_name = country === 'ci' ? await tryGetIPRangeName(visitor) : null;\n const result: IMSISDNSubmissionResult = await redirect({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n ip_range_name,\n search,\n extraParamsQs\n });\n\n if (result.success === false) {\n const type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMSISDN';\n const error = new Error(`${type}:\\n${result.message}`) as IError & { type: string };\n error.type = type;\n console.error(error);\n throw error;\n } else {\n return result.redirect_url;\n }\n}\n\nexport const mockedMSISDNEntrySuccess: MoRedirFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n href: '/product'\n })\n }\n};\n\nexport const mockedMSISDNEntryFailure: MoRedirFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n MoRedirFlowState,\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoRedirTypes';\nimport { RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport submitMSISDN from './main';\n\nconst initialState: MoRedirFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}\n \n * Calls redirec api that returns a redirect url\n * Sets completed stated\n */\nexport const submitMSISDNAction = createAsyncThunk<\n MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure;\n }\n>('moRedirFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n\n const { config } = state.strategy.currentState.data;\n\n try {\n // Start Redirect Api Call\n tracker.advancedInFlow('tallyman.v1-mo-redir', 'msisdn-submitted', { msisdn });\n const href = await submitMSISDN(window, config, msisdn, extraParams);\n tracker.advancedInFlow('tallyman.v1-mo-redir', 'msisdn-submission-success', { msisdn });\n // End Redirect Api Call\n\n // Start Store Msisdn\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End Store Msisdn\n\n return {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({ href })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: MSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n default:\n errorType = 'UnknownError';\n }\n\n tracker.recedeInFlow('tallyman.v1-mo-redir', 'msisdn-submission-failure', {\n msisdn,\n errorType: 'UnknownError'\n });\n\n return rejectWithValue({\n errorType,\n productUrl: ex.productUrl\n });\n }\n});\n\nconst moRedirFlowSlice = createSlice({\n name: 'moRedirFlow',\n initialState,\n reducers: {\n backToStartAction(state) {\n tracker.recedeInFlow('tallyman.v1-mo-redir', 'mo-redir-state', 'requested to change phone number');\n\n // TODO GO BACK TO IDENTIFY BY MSISDN BASED ON STRATEGY\n state.currentState = { type: 'MSISDNEntry', result: RDS.NothingYet() };\n }\n },\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading() };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: moRedirFlowReducer, actions: moRedirFlowActions } = moRedirFlowSlice;\nexport const { backToStartAction } = moRedirFlowActions;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectMoRedirFlowState = (state: any) => state.moRedirFlow;\n"],"names":["RDS.NothingYet","RDS.Success","RDS.Loading","RDS.Failure"],"mappings":"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"}
1
+ {"version":3,"file":"moRedirFlow.js","sources":["../src/flows/moRedirFlow/hooks/useMoRedirFlowState.ts","../src/flows/moRedirFlow/match.ts","../src/flows/moRedirFlow/api.ts","../src/flows/moRedirFlow/main.ts","../src/flows/moRedirFlow/moRedirFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useMoRedirFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.moRedirFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport { MoRedirFlowCurrentState, MSISDNEntryFailure, MSISDNEntrySuccess } from '../../sharedFlowTypes/MoRedirTypes';\n\nfunction moRedirFlowMatch<R>({\n msisdnEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n}): (state: MoRedirFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n default:\n // TODO - this should be an error or something\n return msisdnEntry(state.result);\n }\n };\n}\n\nexport { moRedirFlowMatch };\n","import { IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoRedirTypes';\n\nconst redirect = async ({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n ip_range_name,\n search,\n extraParamsQs,\n email,\n password\n}: {\n window: Window;\n slug: string;\n country: string;\n msisdn?: string;\n device: string;\n offer: string;\n rockmanId: string;\n ip_range_name?: string;\n search: string;\n extraParamsQs?: string;\n email?: string;\n password?: string;\n}): Promise<IMSISDNSubmissionResult> => {\n const params = new URLSearchParams({\n action: 'redirect',\n slug,\n country,\n device,\n offerId: offer.toString(),\n rockman_id: rockmanId,\n page: encodeURIComponent(window.location.href),\n network_type: ip_range_name ? '' : 'wifi',\n ...(search && { search }),\n ...(window.pac_analytics?.visitor?.page?.includes('agency') && { evinaTi: rockmanId }),\n ...(window.securityProcessId && { securityProcessId: window.securityProcessId }),\n ...(window.languageCode && { language_code: window.languageCode }),\n ...(email && password ? { email, password } : { msisdn }),\n ...(extraParamsQs && { extraParams: extraParamsQs })\n }).toString();\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${params}`;\n\n if (slug.includes('za-mtn-beyondvr-r7')) {\n return {\n success: true,\n rockman_id: rockmanId,\n redirect_url: url\n };\n }\n\n return fetch(url).then((x) => x.json());\n};\n\nexport { redirect };\n","import { IError } from '../../common-types/IError';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport tryGetIPRangeName from '../../ips/tryGetIPRangeName';\nimport {\n IMSISDNSubmissionResult,\n MoRedirFlowState,\n MSISDNEntryFailure,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoRedirTypes';\nimport { IConfig } from '../../sharedFlowTypes/StrategyTypes';\nimport { redirect } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<string> {\n const config: IConfig = { offer: window.pac_analytics.visitor.offer, ...(maybeConfig || {}) };\n return submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams);\n}\n\nexport async function submitMSISDNWithConfig(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<string> {\n const { slug, country, device, offer } = config;\n const search = window.location.search.substr(1) || '';\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n const msisdn = internationalMSISDN.match(/\\d+/gi).join('');\n const { visitor } = window.pac_analytics;\n const { rockmanId } = visitor;\n\n const ip_range_name = country === 'ci' ? await tryGetIPRangeName(visitor) : null;\n const result: IMSISDNSubmissionResult = await redirect({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n ip_range_name,\n search,\n extraParamsQs\n });\n\n if (result.success === false) {\n const type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMSISDN';\n const error = new Error(`${type}:\\n${result.message}`) as IError & { type: string };\n error.type = type;\n console.error(error);\n throw error;\n } else {\n return result.redirect_url;\n }\n}\n\nexport const mockedMSISDNEntrySuccess: MoRedirFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n href: '/product'\n })\n }\n};\n\nexport const mockedMSISDNEntryFailure: MoRedirFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n MoRedirFlowState,\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoRedirTypes';\nimport { RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport submitMSISDN from './main';\n\nconst initialState: MoRedirFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}\n \n * Calls redirec api that returns a redirect url\n * Sets completed stated\n */\nexport const submitMSISDNAction = createAsyncThunk<\n MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure;\n }\n>('moRedirFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n\n const { config } = state.strategy.currentState.data;\n\n try {\n // Start Redirect Api Call\n tracker.advancedInFlow('tallyman.v1-mo-redir', 'msisdn-submitted', { msisdn });\n const href = await submitMSISDN(window, config, msisdn, extraParams);\n tracker.advancedInFlow('tallyman.v1-mo-redir', 'msisdn-submission-success', { msisdn });\n // End Redirect Api Call\n\n // Start Store Msisdn\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End Store Msisdn\n\n return {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({ href })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: MSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n default:\n errorType = 'UnknownError';\n }\n\n tracker.recedeInFlow('tallyman.v1-mo-redir', 'msisdn-submission-failure', {\n msisdn,\n errorType: 'UnknownError'\n });\n\n return rejectWithValue({\n errorType,\n productUrl: ex.productUrl\n });\n }\n});\n\nconst moRedirFlowSlice = createSlice({\n name: 'moRedirFlow',\n initialState,\n reducers: {\n backToStartAction(state) {\n tracker.recedeInFlow('tallyman.v1-mo-redir', 'mo-redir-state', 'requested to change phone number');\n\n // TODO GO BACK TO IDENTIFY BY MSISDN BASED ON STRATEGY\n state.currentState = { type: 'MSISDNEntry', result: RDS.NothingYet() };\n }\n },\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading() };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: moRedirFlowReducer, actions: moRedirFlowActions } = moRedirFlowSlice;\nexport const { backToStartAction } = moRedirFlowActions;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectMoRedirFlowState = (state: any) => state.moRedirFlow;\n"],"names":["useMoRedirFlowState","useSelector","state","moRedirFlow","currentState","moRedirFlowMatch","_a","msisdnEntry","type","result","redirect","window","slug","country","msisdn","device","offer","rockmanId","ip_range_name","search","extraParamsQs","email","password","params","URLSearchParams","__assign","action","offerId","toString","rockman_id","page","encodeURIComponent","location","href","network_type","_d","_c","_b","pac_analytics","visitor","includes","evinaTi","securityProcessId","languageCode","language_code","extraParams","host","DEV_BASE_URL","url","concat","success","redirect_url","fetch","then","x","json","submitMSISDN","maybeConfig","internationalMSISDN","config","submitMSISDNWithConfig","substr","Object","keys","map","k","join","match","tryGetIPRangeName","sent","message","error","Error","console","initialState","RDS.NothingYet","submitMSISDNAction","createAsyncThunk","getState","rejectWithValue","strategy","data","tracker","advancedInFlow","storeMsisdn","customEvent","catch","RDS.Success","warn","ex_1","errorType","recedeInFlow","productUrl","moRedirFlowSlice","createSlice","name","reducers","backToStartAction","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","RDS.Failure","moRedirFlowReducer","reducer","actions"],"mappings":"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"}
@@ -1,464 +1,2 @@
1
- import { __awaiter, __generator, __read, __assign } from 'tslib';
2
- import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
3
- import { S as Success, L as Loading, F as Failure, N as NothingYet } from './RemoteDataState-CwHLI23e.js';
4
- import { u as updateUrlParameter, t as tracker } from './tracker-B_zsMRN2.js';
5
- import { b as bupperizeCountry } from './bupperizeCountry-CCDIOHP6.js';
6
- import { l as loadScriptInnerHtml } from './loadScriptInnerHtml-DPcoY467.js';
7
- import { searchToObject } from './searchToObject.js';
8
- import 'pacman-client';
9
- import 'uuid';
10
-
11
- var useOneClickFlowState = function (useSelector) {
12
- var currentState = useSelector(function (state) { return state.oneClickFlow.currentState; });
13
- return currentState;
14
- };
15
-
16
- function oneClickFlowMatch(_a) {
17
- var getRedirectUrl = _a.getRedirectUrl, subscribe = _a.subscribe;
18
- return function (state) {
19
- switch (state.type) {
20
- case 'GET_REDIRECT_URL':
21
- return getRedirectUrl(state.result);
22
- case 'SUBCRIBE_AJAX':
23
- return subscribe(state.result);
24
- default:
25
- // TODO - this should be an error or something
26
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
27
- // @ts-ignore
28
- return getRedirectUrl(state.result);
29
- }
30
- };
31
- }
32
-
33
- function addEmpelloToken(_a) {
34
- var currentRedirectUrl = _a.currentRedirectUrl, country = _a.country;
35
- return __awaiter(this, void 0, void 0, function () {
36
- var token, url;
37
- return __generator(this, function (_b) {
38
- switch (_b.label) {
39
- case 0:
40
- if (!(country.toLowerCase() === 'pe')) return [3 /*break*/, 3];
41
- // Empello script is added on server
42
- return [4 /*yield*/, new Promise(function (resolve) {
43
- // check if empello script is loaded and available
44
- var checkEmpelloAvailability = setInterval(function () {
45
- if (window.Empello) {
46
- clearInterval(checkEmpelloAvailability);
47
- resolve();
48
- }
49
- }, 100);
50
- })];
51
- case 1:
52
- // Empello script is added on server
53
- _b.sent();
54
- if (!(typeof window !== 'undefined' && window.Empello)) return [3 /*break*/, 3];
55
- return [4 /*yield*/, new Promise(function (resolve) {
56
- var _a;
57
- (_a = window.Empello) === null || _a === void 0 ? void 0 : _a.getToken(function (empelloToken) {
58
- resolve(empelloToken);
59
- });
60
- })];
61
- case 2:
62
- token = _b.sent();
63
- url = updateUrlParameter(currentRedirectUrl, 'empello_token', token);
64
- return [2 /*return*/, url];
65
- case 3: return [2 /*return*/, currentRedirectUrl];
66
- }
67
- });
68
- });
69
- }
70
-
71
- var replaceUrlParam = function (url, paramName, paramValue) {
72
- if (paramValue === void 0) { paramValue = ''; }
73
- var pattern = new RegExp("\\b(".concat(paramName, "=).*?(&|#|$)"));
74
- if (url.search(pattern) >= 0) {
75
- return url.replace(pattern, "$1".concat(paramValue, "$2"));
76
- }
77
- var newUrl = url.replace(/[?#]$/, '');
78
- return "".concat(newUrl + paramName, "=").concat(paramValue, "&");
79
- };
80
-
81
- var fetchJsonp = function (_url) {
82
- var url = _url;
83
- var ouisys_callback_function = "ouisys_callback_function".concat(Math.floor(Math.random() * 10000));
84
- return new Promise(function (resolve, reject) {
85
- // @ts-ignore
86
- window[ouisys_callback_function] = function (arg) {
87
- resolve(arg);
88
- };
89
- url += url.indexOf('?') === -1 ? '?' : '&';
90
- url += "jsonp=".concat(ouisys_callback_function);
91
- var script = document.createElement('script');
92
- script.src = url;
93
- script.id = ouisys_callback_function;
94
- document.body.appendChild(script);
95
- // Caught if got 404/500
96
- script.onerror = function () {
97
- reject(new Error("JSONP request to ".concat(_url, " failed")));
98
- };
99
- });
100
- };
101
- var getRedirectUrl = function (_a) {
102
- var window = _a.window, maybeConfig = _a.maybeConfig, extraParams = _a.extraParams;
103
- return __awaiter(void 0, void 0, void 0, function () {
104
- var country, slug, queryString, apiAction, customDomain, evinaTid, offer, s, search_1, rockmanId, host, url, result_1, identifyError, host, url, result, identifyError, searchObj, identifyError, url, result, identifyError;
105
- var _b;
106
- return __generator(this, function (_c) {
107
- switch (_c.label) {
108
- case 0:
109
- if (!(typeof window === 'undefined')) return [3 /*break*/, 1];
110
- // eslint-disable-next-line no-throw-literal, no-script-url
111
- throw "javascript: console.error('SSR'); void 6";
112
- case 1:
113
- country = maybeConfig.country, slug = maybeConfig.slug, queryString = maybeConfig.queryString, apiAction = maybeConfig.apiAction;
114
- customDomain = 'de-ads.tallymans.com';
115
- evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';
116
- offer = window.pac_analytics.visitor.offer;
117
- s = window.location.search.substr(1);
118
- search_1 = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(function (_a) {
119
- var _b = __read(_a, 2), k = _b[0], v = _b[1];
120
- return "".concat(k, "=").concat(v);
121
- })).join('&');
122
- Object.keys(extraParams).forEach(function (element, index) {
123
- // Check if search already has query parameters
124
- if (search_1.length > 0) {
125
- // If there are existing parameters, add '&' before appending the new one
126
- search_1 += '&';
127
- }
128
- search_1 = "".concat(replaceUrlParam(search_1, element, extraParams[element])).concat(index === 1 ? '&' : '');
129
- });
130
- rockmanId = window.pac_analytics.visitor.rockmanId;
131
- if (!(apiAction === 'identify-user')) return [3 /*break*/, 3];
132
- host = window.DEV_BASE_URL || '';
133
- url = "".concat(host, "/tallyman/v1/?action=identify-user&country=").concat(bupperizeCountry(country), "&slug=").concat(slug, "&device=").concat('smart', "&offerId=").concat(offer, "&rockman_id=").concat(rockmanId, "&sam_evina_tid=").concat(evinaTid, "&").concat(search_1);
134
- return [4 /*yield*/, fetchJsonp(url)];
135
- case 2:
136
- result_1 = _c.sent();
137
- if (result_1.success === false) {
138
- identifyError = new Error("Error in getRedirectUrl() identify-user action:\n".concat(result_1.message));
139
- identifyError.type = 'NotOn3g';
140
- throw identifyError;
141
- }
142
- else {
143
- return [2 /*return*/, {
144
- subscription_url: result_1.subscription_url || result_1.redirect_url,
145
- action: function () { return subscribe(result_1.subscription_url); }
146
- }];
147
- }
148
- case 3:
149
- if (!(apiAction === 'he')) return [3 /*break*/, 5];
150
- host = window.DEV_BASE_URL || '';
151
- url = "".concat(host, "/tallyman/v1/?action=he&country=").concat(bupperizeCountry(country), "&slug=").concat(slug, "&device=").concat('smart', "&offerId=").concat(offer, "&rockman_id=").concat(rockmanId, "&sam_evina_tid=").concat(evinaTid, "&").concat(search_1);
152
- return [4 /*yield*/, fetch(url).then(function (x) { return x.json(); })];
153
- case 4:
154
- result = _c.sent();
155
- if (result.success === false) {
156
- identifyError = new Error("Error in getRedirectUrl() identify-user action:\n".concat(result.message));
157
- identifyError.type = 'NotOn3g';
158
- throw identifyError;
159
- }
160
- else {
161
- loadScriptInnerHtml(result.source);
162
- return [2 /*return*/, { redirect_url: result.redirectUrlWithReplacedUniqid }];
163
- }
164
- case 5:
165
- if (country.toLowerCase() === 'om') {
166
- searchObj = searchToObject(window);
167
- if (searchObj.success === 'false') {
168
- identifyError = new Error("Error in getRedirectUrl() identify-user");
169
- identifyError.type = 'NotOn3g';
170
- throw identifyError;
171
- }
172
- else {
173
- return [2 /*return*/, { redirect_url: searchObj.redirect_url || searchObj.url }];
174
- }
175
- }
176
- url = "https://".concat(customDomain, "/tallyman/v1/?action=redirect&country=").concat(bupperizeCountry(country), "&slug=").concat(slug, "&device=").concat('smart', "&offerId=").concat(offer, "&rockman_id=").concat(rockmanId, "&page=").concat(encodeURIComponent((_b = window === null || window === void 0 ? void 0 : window.location) === null || _b === void 0 ? void 0 : _b.href), "&sam_evina_tid=").concat(evinaTid, "&").concat(search_1);
177
- return [4 /*yield*/, fetch(url).then(function (x) { return x.json(); })];
178
- case 6:
179
- result = _c.sent();
180
- if (result.success === false) {
181
- identifyError = new Error("Error in getRedirectUrl() identify-user action:\n".concat(result.message));
182
- identifyError.type = 'NotOn3g';
183
- throw identifyError;
184
- }
185
- else {
186
- return [2 /*return*/, { redirect_url: result.redirect_url }];
187
- }
188
- case 7: return [2 /*return*/];
189
- }
190
- });
191
- });
192
- };
193
- var subscribe = function (url, extraParams) { return __awaiter(void 0, void 0, void 0, function () {
194
- var evinaTid, extraParamsQs, isCleanTraffic, result, subscribeError;
195
- return __generator(this, function (_a) {
196
- switch (_a.label) {
197
- case 0:
198
- evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';
199
- extraParamsQs = !extraParams
200
- ? ''
201
- : "&".concat(Object.keys(extraParams)
202
- .map(function (k) { return "".concat(k, "=").concat(extraParams[k]); })
203
- .join('&'));
204
- isCleanTraffic = typeof window !== 'undefined' && window.shouldBlock === true ? '&is-clean-traffic=false' : '&is-clean-traffic=true';
205
- return [4 /*yield*/, fetch("".concat(url, "&sam_evina_tid=").concat(evinaTid).concat(isCleanTraffic).concat(extraParamsQs)).then(function (x) { return x.json(); })];
206
- case 1:
207
- result = _a.sent();
208
- if (result.success === false) {
209
- subscribeError = new Error("Error in subscribe() one-click-subscribe action:\n".concat(result.message));
210
- subscribeError.type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'SubscriptionError';
211
- subscribeError.productUrl = result.product_url ? result.product_url : '';
212
- throw subscribeError;
213
- }
214
- else {
215
- return [2 /*return*/, result.product_url || result.redirect_url];
216
- }
217
- }
218
- });
219
- }); };
220
- var getRedirectUrlBupperWay = function (window, maybeConfig, extraParams) { return __awaiter(void 0, void 0, void 0, function () {
221
- var country, slug, queryString, offer, s, search, extraParamsQs, xcid, evinaTid, host;
222
- return __generator(this, function (_a) {
223
- if (typeof window === 'undefined') {
224
- // eslint-disable-next-line no-script-url
225
- return [2 /*return*/, "javascript: console.error('SSR'); void 6"];
226
- }
227
- country = maybeConfig.country, slug = maybeConfig.slug, queryString = maybeConfig.queryString;
228
- offer = window.pac_analytics.visitor.offer;
229
- s = window.location.search.substr(1);
230
- search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(function (_a) {
231
- var _b = __read(_a, 2), k = _b[0], v = _b[1];
232
- return "".concat(k, "=").concat(v);
233
- })).join('&');
234
- extraParamsQs = !extraParams
235
- ? ''
236
- : "&".concat(Object.keys(extraParams)
237
- .map(function (k) { return "".concat(k, "=").concat(extraParams[k]); })
238
- .join('&'));
239
- xcid = window.location.href.split('/')[3].split('?')[0];
240
- evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';
241
- host = window.DEV_BASE_URL_BUPPER || '';
242
- return [2 /*return*/, "".concat(host, "/").concat(bupperizeCountry(country), "/").concat(slug, "?offer=").concat(offer, "&atmobirun=1&rockman_id=").concat(window.pac_analytics.visitor.rockmanId, "&redirPixels=").concat(window.location.host, "&sam_evina_tid=").concat(evinaTid, "&x-xcid=").concat(xcid).concat(extraParamsQs, "&").concat(search)];
243
- });
244
- }); };
245
-
246
- var initialState = {
247
- currentState: {
248
- type: 'GET_REDIRECT_URL',
249
- result: NothingYet()
250
- }
251
- };
252
- /**
253
- * getRedirectUrlAction
254
- * @returns {type: ' 'oneClickFlow/getRedirectUrlAction', payload: {type: PossibleTypes, result: GETREDIRECTUrlState}}
255
-
256
- * Calls redirect api to get a redirect url for the user to be redirected to
257
- * Can also create a bupper redirect url
258
- */
259
- var getRedirectUrlAction = createAsyncThunk('oneClickFlow/getRedirectUrlAction',
260
- // @ts-ignore
261
- function (_a, _b) {
262
- var window = _a.window, isGetRedirectBupperWay = _a.isGetRedirectBupperWay, extraParams = _a.extraParams, autoRedirect = _a.autoRedirect;
263
- var getState = _b.getState, rejectWithValue = _b.rejectWithValue;
264
- return __awaiter(void 0, void 0, void 0, function () {
265
- var state, _c, config, subscription_url, redirect_url, operator, redirectUrl, updatedRedirectUrl_1, timer_1, newRedirectUrl, updated_redirect_url_1, ex_1;
266
- return __generator(this, function (_d) {
267
- switch (_d.label) {
268
- case 0:
269
- state = getState();
270
- _c = state.strategy.currentState.data, config = _c.config, subscription_url = _c.subscription_url, redirect_url = _c.redirect_url, operator = _c.operator;
271
- _d.label = 1;
272
- case 1:
273
- _d.trys.push([1, 8, , 9]);
274
- if (!(isGetRedirectBupperWay === true)) return [3 /*break*/, 4];
275
- return [4 /*yield*/, getRedirectUrlBupperWay(window, config, __assign(__assign({}, (operator && { operator: operator })), extraParams))];
276
- case 2:
277
- redirectUrl = _d.sent();
278
- return [4 /*yield*/, addEmpelloToken({
279
- currentRedirectUrl: redirectUrl,
280
- country: config.country
281
- })];
282
- case 3:
283
- updatedRedirectUrl_1 = _d.sent();
284
- tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: updatedRedirectUrl_1 });
285
- if (window.isAutoFraudScreener === true) {
286
- timer_1 = setInterval(function () {
287
- if (window.isEvinaSessionChecked) {
288
- clearInterval(timer_1);
289
- tracker.advancedInFlow('tallyman.v1-one-click', 'click-redirect-url', {
290
- redirect_url: updatedRedirectUrl_1
291
- });
292
- setTimeout(function () {
293
- window.location.href = updatedRedirectUrl_1;
294
- }, 0);
295
- }
296
- }, 100);
297
- }
298
- else if (autoRedirect === true) {
299
- tracker.advancedInFlow('tallyman.v1-one-click', 'click-redirect-url', { redirect_url: updatedRedirectUrl_1 });
300
- setTimeout(function () {
301
- window.location.href = updatedRedirectUrl_1;
302
- }, 0);
303
- return [2 /*return*/, {
304
- type: 'GET_REDIRECT_URL',
305
- result: Success({
306
- redirectUrl: updatedRedirectUrl_1
307
- })
308
- }];
309
- }
310
- else {
311
- return [2 /*return*/, {
312
- type: 'GET_REDIRECT_URL',
313
- result: Success({
314
- redirectUrl: updatedRedirectUrl_1
315
- })
316
- }];
317
- }
318
- return [3 /*break*/, 7];
319
- case 4:
320
- if (subscription_url && subscription_url != null) {
321
- return [2 /*return*/, {
322
- type: 'SUBCRIBE_AJAX',
323
- result: NothingYet()
324
- }];
325
- }
326
- if (redirect_url) {
327
- tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: redirect_url });
328
- return [2 /*return*/, {
329
- type: 'GET_REDIRECT_URL',
330
- result: Success({
331
- redirectUrl: redirect_url
332
- })
333
- }];
334
- }
335
- tracker.advancedInFlow('tallyman.v1-one-click', 'get-redirect-url');
336
- return [4 /*yield*/, getRedirectUrl({
337
- window: window,
338
- maybeConfig: config,
339
- extraParams: __assign(__assign({}, (operator && { operator: operator })), extraParams)
340
- })];
341
- case 5:
342
- newRedirectUrl = (_d.sent()).redirect_url;
343
- tracker.advancedInFlow('tallyman.v1-one-click', 'get-redirect-url-success');
344
- return [4 /*yield*/, addEmpelloToken({
345
- currentRedirectUrl: newRedirectUrl,
346
- country: config.country
347
- })];
348
- case 6:
349
- updated_redirect_url_1 = _d.sent();
350
- tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { updated_redirect_url: updated_redirect_url_1 });
351
- if (autoRedirect === true || window.isAutoFraudScreener === true) {
352
- tracker.advancedInFlow('tallyman.v1-one-click', 'click-redirect-url', { updated_redirect_url: updated_redirect_url_1 });
353
- setTimeout(function () {
354
- // eslint-disable-next-line camelcase
355
- window.location.href = updated_redirect_url_1;
356
- }, 0);
357
- }
358
- else {
359
- return [2 /*return*/, {
360
- type: 'GET_REDIRECT_URL',
361
- result: Success({
362
- redirectUrl: updated_redirect_url_1
363
- })
364
- }];
365
- }
366
- _d.label = 7;
367
- case 7: return [3 /*break*/, 9];
368
- case 8:
369
- ex_1 = _d.sent();
370
- console.warn(ex_1);
371
- tracker.recedeInFlow('tallyman.v1-one-click', 'get-redirect-url-failure', {
372
- errorType: 'UnknownError'
373
- });
374
- return [2 /*return*/, rejectWithValue({
375
- errorType: 'UnknownError',
376
- error: ex_1.toString()
377
- })];
378
- case 9: return [2 /*return*/];
379
- }
380
- });
381
- });
382
- });
383
- var subscribeUrlAction = createAsyncThunk('oneClickFlow/subscribeUrlAction', function (_a, _b) {
384
- var window = _a.window, autoRedirect = _a.autoRedirect, extraParams = _a.extraParams;
385
- var getState = _b.getState, rejectWithValue = _b.rejectWithValue;
386
- return __awaiter(void 0, void 0, void 0, function () {
387
- var state, subscription_url, product_url, ex_2;
388
- return __generator(this, function (_c) {
389
- switch (_c.label) {
390
- case 0:
391
- state = getState();
392
- subscription_url = state.strategy.currentState.data.subscription_url;
393
- _c.label = 1;
394
- case 1:
395
- _c.trys.push([1, 4, , 5]);
396
- // Start Call to Subscribe ajax
397
- tracker.advancedInFlow('tallyman.v1-one-click', 'click-subscribe');
398
- return [4 /*yield*/, subscribe(subscription_url, extraParams)];
399
- case 2: return [4 /*yield*/, _c.sent()];
400
- case 3:
401
- product_url = _c.sent();
402
- tracker.advancedInFlow('tallyman.v1-one-click', 'click-subscribe-success', { product_url: product_url });
403
- // End Call to Subscribe ajax
404
- if (autoRedirect === true) {
405
- tracker.customEvent('Flow', 'advance-auto', 'click-product-url', { product_url: product_url });
406
- window.location.href = product_url;
407
- }
408
- return [2 /*return*/, {
409
- type: 'SUBCRIBE_AJAX',
410
- result: Success({
411
- productUrl: product_url
412
- })
413
- }];
414
- case 4:
415
- ex_2 = _c.sent();
416
- console.warn(ex_2);
417
- tracker.recedeInFlow('tallyman.v1-one-click', 'click-subscribe-failure', { error: ex_2.toString() });
418
- return [2 /*return*/, rejectWithValue({
419
- errorType: 'UnknownError',
420
- error: ex_2.toString(),
421
- productUrl: ex_2.productUrl
422
- })];
423
- case 5: return [2 /*return*/];
424
- }
425
- });
426
- });
427
- });
428
- var oneClickFlowSlice = createSlice({
429
- name: 'oneClickFlow',
430
- initialState: initialState,
431
- reducers: {},
432
- extraReducers: function (builder) {
433
- builder
434
- .addCase(getRedirectUrlAction.pending, function (state) {
435
- state.currentState = { type: 'GET_REDIRECT_URL', result: Loading() };
436
- })
437
- .addCase(getRedirectUrlAction.fulfilled, function (state, action) {
438
- state.currentState = action.payload;
439
- })
440
- .addCase(getRedirectUrlAction.rejected, function (state, action) {
441
- state.currentState = {
442
- type: 'GET_REDIRECT_URL',
443
- result: Failure(action.payload)
444
- };
445
- })
446
- .addCase(subscribeUrlAction.pending, function (state) {
447
- state.currentState = { type: 'SUBCRIBE_AJAX', result: Loading() };
448
- })
449
- .addCase(subscribeUrlAction.fulfilled, function (state, action) {
450
- state.currentState = action.payload;
451
- })
452
- .addCase(subscribeUrlAction.rejected, function (state, action) {
453
- state.currentState = {
454
- type: 'SUBCRIBE_AJAX',
455
- result: Failure(action.payload)
456
- };
457
- });
458
- }
459
- });
460
- // Export reducers and actions
461
- var oneClickFlowReducer = oneClickFlowSlice.reducer; oneClickFlowSlice.actions;
462
-
463
- export { getRedirectUrlAction, oneClickFlowMatch, oneClickFlowReducer, subscribeUrlAction, useOneClickFlowState };
1
+ import{__awaiter as r,__generator as t,__read as e,__assign as n}from"tslib";import{createAsyncThunk as c,createSlice as o}from"@reduxjs/toolkit";import{S as a,L as i,F as u,N as s}from"./RemoteDataState-lcf8PfJd.js";import{u as l,t as d}from"./tracker-DaaILhEr.js";import{b as f}from"./bupperizeCountry-CEtt0MKz.js";import{l as p}from"./loadScriptInnerHtml-BzQm-AFb.js";import{searchToObject as v}from"./searchToObject.js";import"pacman-client";import"uuid";var m=function(r){return r((function(r){return r.oneClickFlow.currentState}))};function y(r){var t=r.getRedirectUrl,e=r.subscribe;return function(r){switch(r.type){case"GET_REDIRECT_URL":default:return t(r.result);case"SUBCRIBE_AJAX":return e(r.result)}}}function _(e){var n=e.currentRedirectUrl,c=e.country;return r(this,void 0,void 0,(function(){var r;return t(this,(function(t){switch(t.label){case 0:return"pe"!==c.toLowerCase()?[3,3]:[4,new Promise((function(r){var t=setInterval((function(){window.Empello&&(clearInterval(t),r())}),100)}))];case 1:return t.sent(),"undefined"!=typeof window&&window.Empello?[4,new Promise((function(r){var t;null===(t=window.Empello)||void 0===t||t.getToken((function(t){r(t)}))}))]:[3,3];case 2:return r=t.sent(),[2,l(n,"empello_token",r)];case 3:return[2,n]}}))}))}var w=function(r){var t=r,e="ouisys_callback_function".concat(Math.floor(1e4*Math.random()));return new Promise((function(n,c){window[e]=function(r){n(r)},t+=-1===t.indexOf("?")?"?":"&",t+="jsonp=".concat(e);var o=document.createElement("script");o.src=t,o.id=e,document.body.appendChild(o),o.onerror=function(){c(new Error("JSONP request to ".concat(r," failed")))}}))},E=function(n){var c=n.window,o=n.maybeConfig,a=n.extraParams;return r(void 0,void 0,void 0,(function(){var r,n,i,u,s,l,d,m,y,_,E,h,b,g,U,S,k;return t(this,(function(t){switch(t.label){case 0:if(void 0!==c)return[3,1];throw"javascript: console.error('SSR'); void 6";case 1:return r=o.country,n=o.slug,i=o.queryString,u=o.apiAction,s="de-ads.tallymans.com",l=void 0!==c&&c.tid?c.tid:"",d=c.pac_analytics.visitor.offer,m=c.location.search.substr(1),y=(m&&m.length>0?[m]:[]).concat((i||[]).map((function(r){var t=e(r,2),n=t[0],c=t[1];return"".concat(n,"=").concat(c)}))).join("&"),Object.keys(a).forEach((function(r,t){y.length>0&&(y+="&"),y="".concat(function(r,t,e){void 0===e&&(e="");var n=new RegExp("\\b(".concat(t,"=).*?(&|#|$)"));if(r.search(n)>=0)return r.replace(n,"$1".concat(e,"$2"));var c=r.replace(/[?#]$/,"");return"".concat(c+t,"=").concat(e,"&")}(y,r,a[r])).concat(1===t?"&":"")})),_=c.pac_analytics.visitor.rockmanId,"identify-user"!==u?[3,3]:(h=c.DEV_BASE_URL||"",g="".concat(h,"/tallyman/v1/?action=identify-user&country=").concat(f(r),"&slug=").concat(n,"&device=").concat("smart","&offerId=").concat(d,"&rockman_id=").concat(_,"&sam_evina_tid=").concat(l,"&").concat(y),[4,w(g)]);case 2:if(!1===(E=t.sent()).success)throw(S=new Error("Error in getRedirectUrl() identify-user action:\n".concat(E.message))).type="NotOn3g",S;return[2,{subscription_url:E.subscription_url||E.redirect_url,action:function(){return R(E.subscription_url)}}];case 3:return"he"!==u?[3,5]:(h=c.DEV_BASE_URL||"",g="".concat(h,"/tallyman/v1/?action=he&country=").concat(f(r),"&slug=").concat(n,"&device=").concat("smart","&offerId=").concat(d,"&rockman_id=").concat(_,"&sam_evina_tid=").concat(l,"&").concat(y),[4,fetch(g).then((function(r){return r.json()}))]);case 4:if(!1===(U=t.sent()).success)throw(S=new Error("Error in getRedirectUrl() identify-user action:\n".concat(U.message))).type="NotOn3g",S;return p(U.source),[2,{redirect_url:U.redirectUrlWithReplacedUniqid}];case 5:if("om"===r.toLowerCase()){if("false"===(b=v(c)).success)throw(S=new Error("Error in getRedirectUrl() identify-user")).type="NotOn3g",S;return[2,{redirect_url:b.redirect_url||b.url}]}return g="https://".concat(s,"/tallyman/v1/?action=redirect&country=").concat(f(r),"&slug=").concat(n,"&device=").concat("smart","&offerId=").concat(d,"&rockman_id=").concat(_,"&page=").concat(encodeURIComponent(null===(k=null==c?void 0:c.location)||void 0===k?void 0:k.href),"&sam_evina_tid=").concat(l,"&").concat(y),[4,fetch(g).then((function(r){return r.json()}))];case 6:if(!1===(U=t.sent()).success)throw(S=new Error("Error in getRedirectUrl() identify-user action:\n".concat(U.message))).type="NotOn3g",S;return[2,{redirect_url:U.redirect_url}];case 7:return[2]}}))}))},R=function(e,n){return r(void 0,void 0,void 0,(function(){var r,c,o,a,i;return t(this,(function(t){switch(t.label){case 0:return r="undefined"!=typeof window&&window.tid?window.tid:"",c=n?"&".concat(Object.keys(n).map((function(r){return"".concat(r,"=").concat(n[r])})).join("&")):"",o="undefined"!=typeof window&&!0===window.shouldBlock?"&is-clean-traffic=false":"&is-clean-traffic=true",[4,fetch("".concat(e,"&sam_evina_tid=").concat(r).concat(o).concat(c)).then((function(r){return r.json()}))];case 1:if(!1===(a=t.sent()).success)throw(i=new Error("Error in subscribe() one-click-subscribe action:\n".concat(a.message))).type="ALREADY SUBSCRIBED"===a.message?"AlreadySubscribed":"SubscriptionError",i.productUrl=a.product_url?a.product_url:"",i;return[2,a.product_url||a.redirect_url]}}))}))},h=function(n,c,o){return r(void 0,void 0,void 0,(function(){var r,a,i,u,s,l,d,p,v,m;return t(this,(function(t){return void 0===n?[2,"javascript: console.error('SSR'); void 6"]:(r=c.country,a=c.slug,i=c.queryString,u=n.pac_analytics.visitor.offer,s=n.location.search.substr(1),l=(s&&s.length>0?[s]:[]).concat((i||[]).map((function(r){var t=e(r,2),n=t[0],c=t[1];return"".concat(n,"=").concat(c)}))).join("&"),d=o?"&".concat(Object.keys(o).map((function(r){return"".concat(r,"=").concat(o[r])})).join("&")):"",p=n.location.href.split("/")[3].split("?")[0],v=void 0!==n&&n.tid?n.tid:"",m=n.DEV_BASE_URL_BUPPER||"",[2,"".concat(m,"/").concat(f(r),"/").concat(a,"?offer=").concat(u,"&atmobirun=1&rockman_id=").concat(n.pac_analytics.visitor.rockmanId,"&redirPixels=").concat(n.location.host,"&sam_evina_tid=").concat(v,"&x-xcid=").concat(p).concat(d,"&").concat(l)])}))}))},b={currentState:{type:"GET_REDIRECT_URL",result:s()}},g=c("oneClickFlow/getRedirectUrlAction",(function(e,c){var o=e.window,i=e.isGetRedirectBupperWay,u=e.extraParams,l=e.autoRedirect,f=c.getState,p=c.rejectWithValue;return r(void 0,void 0,void 0,(function(){var r,e,c,v,m,y,w,R,b,g,U;return t(this,(function(t){switch(t.label){case 0:r=f(),e=r.strategy.currentState.data,c=e.config,v=e.subscription_url,m=e.redirect_url,y=e.operator,t.label=1;case 1:return t.trys.push([1,8,,9]),!0!==i?[3,4]:[4,h(o,c,n(n({},y&&{operator:y}),u))];case 2:return[4,_({currentRedirectUrl:t.sent(),country:c.country})];case 3:return w=t.sent(),d.customEvent("Flow","advance-auto","redirect-success",{redirect_url:w}),!0!==o.isAutoFraudScreener?!0===l?(d.advancedInFlow("tallyman.v1-one-click","click-redirect-url",{redirect_url:w}),setTimeout((function(){o.location.href=w}),0),[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:w})}]):[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:w})}]:(R=setInterval((function(){o.isEvinaSessionChecked&&(clearInterval(R),d.advancedInFlow("tallyman.v1-one-click","click-redirect-url",{redirect_url:w}),setTimeout((function(){o.location.href=w}),0))}),100),[3,7]);case 4:return v&&null!=v?[2,{type:"SUBCRIBE_AJAX",result:s()}]:m?(d.customEvent("Flow","advance-auto","redirect-success",{redirect_url:m}),[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:m})}]):(d.advancedInFlow("tallyman.v1-one-click","get-redirect-url"),[4,E({window:o,maybeConfig:c,extraParams:n(n({},y&&{operator:y}),u)})]);case 5:return b=t.sent().redirect_url,d.advancedInFlow("tallyman.v1-one-click","get-redirect-url-success"),[4,_({currentRedirectUrl:b,country:c.country})];case 6:if(g=t.sent(),d.customEvent("Flow","advance-auto","redirect-success",{updated_redirect_url:g}),!0!==l&&!0!==o.isAutoFraudScreener)return[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:g})}];d.advancedInFlow("tallyman.v1-one-click","click-redirect-url",{updated_redirect_url:g}),setTimeout((function(){o.location.href=g}),0),t.label=7;case 7:return[3,9];case 8:return U=t.sent(),console.warn(U),d.recedeInFlow("tallyman.v1-one-click","get-redirect-url-failure",{errorType:"UnknownError"}),[2,p({errorType:"UnknownError",error:U.toString()})];case 9:return[2]}}))}))})),U=c("oneClickFlow/subscribeUrlAction",(function(e,n){var c=e.window,o=e.autoRedirect,i=e.extraParams,u=n.getState,s=n.rejectWithValue;return r(void 0,void 0,void 0,(function(){var r,e,n,l;return t(this,(function(t){switch(t.label){case 0:r=u(),e=r.strategy.currentState.data.subscription_url,t.label=1;case 1:return t.trys.push([1,4,,5]),d.advancedInFlow("tallyman.v1-one-click","click-subscribe"),[4,R(e,i)];case 2:return[4,t.sent()];case 3:return n=t.sent(),d.advancedInFlow("tallyman.v1-one-click","click-subscribe-success",{product_url:n}),!0===o&&(d.customEvent("Flow","advance-auto","click-product-url",{product_url:n}),c.location.href=n),[2,{type:"SUBCRIBE_AJAX",result:a({productUrl:n})}];case 4:return l=t.sent(),console.warn(l),d.recedeInFlow("tallyman.v1-one-click","click-subscribe-failure",{error:l.toString()}),[2,s({errorType:"UnknownError",error:l.toString(),productUrl:l.productUrl})];case 5:return[2]}}))}))})),S=o({name:"oneClickFlow",initialState:b,reducers:{},extraReducers:function(r){r.addCase(g.pending,(function(r){r.currentState={type:"GET_REDIRECT_URL",result:i()}})).addCase(g.fulfilled,(function(r,t){r.currentState=t.payload})).addCase(g.rejected,(function(r,t){r.currentState={type:"GET_REDIRECT_URL",result:u(t.payload)}})).addCase(U.pending,(function(r){r.currentState={type:"SUBCRIBE_AJAX",result:i()}})).addCase(U.fulfilled,(function(r,t){r.currentState=t.payload})).addCase(U.rejected,(function(r,t){r.currentState={type:"SUBCRIBE_AJAX",result:u(t.payload)}}))}}),k=S.reducer;S.actions;export{g as getRedirectUrlAction,y as oneClickFlowMatch,k as oneClickFlowReducer,U as subscribeUrlAction,m as useOneClickFlowState};
464
2
  //# sourceMappingURL=oneClickFlow.js.map