ouisys-engine 5.1.80 → 5.1.82
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/checkSubscriptionHander.js +1 -1
- package/dist/creditCardFlow.js +7 -42
- package/dist/creditCardFlow.js.map +1 -1
- package/dist/{handleResolveRedirect-5Hkm5YXF.js → handleResolveRedirect-BXznqdbX.js} +5 -5
- package/dist/handleResolveRedirect-BXznqdbX.js.map +1 -0
- package/dist/loadScriptInnerHtml-R8P4RRyg.js +15 -0
- package/dist/loadScriptInnerHtml-R8P4RRyg.js.map +1 -0
- package/dist/moFlow.js +1 -1
- package/dist/moRedirFlow.js +3 -4
- package/dist/moRedirFlow.js.map +1 -1
- package/dist/oneClickFlow.js +1 -1
- package/dist/pinFlow.js +2 -2
- package/dist/src/flows/creditCardFlow/api.d.ts.map +1 -1
- package/dist/src/flows/creditCardFlow/main.d.ts.map +1 -1
- package/dist/src/flows/moRedirFlow/api.d.ts.map +1 -1
- package/dist/src/utilities/loadScriptInnerHtml.d.ts.map +1 -1
- package/dist/ussdFlow.js +1 -1
- package/package.json +1 -1
- package/dist/handleResolveRedirect-5Hkm5YXF.js.map +0 -1
- package/dist/loadScriptInnerHtml-CstJVRED.js +0 -30
- package/dist/loadScriptInnerHtml-CstJVRED.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __awaiter, __generator, __assign } from 'tslib';
|
|
2
|
-
import { h as handleResolveRedirect } from './handleResolveRedirect-
|
|
2
|
+
import { h as handleResolveRedirect } from './handleResolveRedirect-BXznqdbX.js';
|
|
3
3
|
import { a as loop } from './helpers-J_h-ZgxH.js';
|
|
4
4
|
import { searchToObject } from './searchToObject.js';
|
|
5
5
|
import { t as tracker } from './tracker-Dch6_0Q2.js';
|
package/dist/creditCardFlow.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 { S as Success, L as Loading, F as Failure, N as NothingYet } from './RemoteDataState-CwHLI23e.js';
|
|
4
|
-
import { l as loadScriptInnerHtml } from './loadScriptInnerHtml-
|
|
4
|
+
import { l as loadScriptInnerHtml } from './loadScriptInnerHtml-R8P4RRyg.js';
|
|
5
5
|
import { searchToObject } from './searchToObject.js';
|
|
6
6
|
import { t as tracker } from './tracker-Dch6_0Q2.js';
|
|
7
7
|
import 'pacman-client';
|
|
@@ -40,19 +40,6 @@ var loadScriptSrc = function (_a) {
|
|
|
40
40
|
};
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
-
var redirect = function (_a) {
|
|
44
|
-
var window = _a.window, slug = _a.slug, country = _a.country, msisdn = _a.msisdn, device = _a.device, offer = _a.offer, rockmanId = _a.rockmanId, ip_range_name = _a.ip_range_name, search = _a.search, extraParamsQs = _a.extraParamsQs, email = _a.email, password = _a.password;
|
|
45
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
46
|
-
var params, host, url;
|
|
47
|
-
var _b, _c, _d;
|
|
48
|
-
return __generator(this, function (_e) {
|
|
49
|
-
params = new URLSearchParams(__assign(__assign(__assign(__assign(__assign(__assign({ action: 'redirect', slug: slug, country: country, device: device, offerId: offer.toString(), rockman_id: rockmanId, page: encodeURIComponent(window.location.href), network_type: ip_range_name ? '' : 'wifi' }, (search && { search: search })), (((_d = (_c = (_b = window.pac_analytics) === null || _b === void 0 ? void 0 : _b.visitor) === null || _c === void 0 ? void 0 : _c.page) === null || _d === void 0 ? void 0 : _d.includes('agency')) && { evinaTi: rockmanId })), (window.securityProcessId && { securityProcessId: window.securityProcessId })), (window.languageCode && { language_code: window.languageCode })), (email && password ? { email: email, password: password } : { msisdn: msisdn })), (extraParamsQs && { extraParams: extraParamsQs }))).toString();
|
|
50
|
-
host = window.DEV_BASE_URL || '';
|
|
51
|
-
url = "".concat(host, "/tallyman/v1/?").concat(params);
|
|
52
|
-
return [2 /*return*/, fetch(url).then(function (x) { return x.json(); })];
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
};
|
|
56
43
|
var creditCardPayment = function (_a) {
|
|
57
44
|
var window = _a.window, userDetails = _a.userDetails, extraConfig = _a.extraConfig;
|
|
58
45
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -107,38 +94,16 @@ var creditCardPayment = function (_a) {
|
|
|
107
94
|
};
|
|
108
95
|
|
|
109
96
|
function submitUserDetails(window, config, userDetails) {
|
|
110
|
-
var _a, _b, _c, _d, _e;
|
|
111
97
|
return __awaiter(this, void 0, void 0, function () {
|
|
112
|
-
var slug,
|
|
113
|
-
return __generator(this, function (
|
|
114
|
-
switch (
|
|
98
|
+
var slug, serviceId, extraConfig, result, type, error;
|
|
99
|
+
return __generator(this, function (_a) {
|
|
100
|
+
switch (_a.label) {
|
|
115
101
|
case 0:
|
|
116
|
-
slug = config.slug,
|
|
117
|
-
search = window.location.search.substr(1) || '';
|
|
118
|
-
visitor = window.pac_analytics.visitor;
|
|
119
|
-
rockmanId = visitor.rockmanId;
|
|
102
|
+
slug = config.slug, serviceId = config.serviceId;
|
|
120
103
|
extraConfig = { serviceId: serviceId, slug: slug };
|
|
121
|
-
|
|
122
|
-
return [4 /*yield*/, redirect({
|
|
123
|
-
window: window,
|
|
124
|
-
slug: slug,
|
|
125
|
-
country: country,
|
|
126
|
-
device: device,
|
|
127
|
-
offer: (_e = (_d = window === null || window === void 0 ? void 0 : window.pac_analytics) === null || _d === void 0 ? void 0 : _d.visitor) === null || _e === void 0 ? void 0 : _e.offer,
|
|
128
|
-
rockmanId: rockmanId,
|
|
129
|
-
email: userDetails === null || userDetails === void 0 ? void 0 : userDetails.email,
|
|
130
|
-
password: userDetails === null || userDetails === void 0 ? void 0 : userDetails.password,
|
|
131
|
-
search: search
|
|
132
|
-
})];
|
|
104
|
+
return [4 /*yield*/, creditCardPayment({ window: window, userDetails: userDetails, extraConfig: extraConfig })];
|
|
133
105
|
case 1:
|
|
134
|
-
|
|
135
|
-
return [3 /*break*/, 4];
|
|
136
|
-
case 2: return [4 /*yield*/, creditCardPayment({ window: window, userDetails: userDetails, extraConfig: extraConfig })];
|
|
137
|
-
case 3:
|
|
138
|
-
_f = _g.sent();
|
|
139
|
-
_g.label = 4;
|
|
140
|
-
case 4:
|
|
141
|
-
result = _f;
|
|
106
|
+
result = _a.sent();
|
|
142
107
|
if (result.success === false) {
|
|
143
108
|
type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : result.message;
|
|
144
109
|
error = new Error("".concat(type, ":\n").concat(result.message));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creditCardFlow.js","sources":["../../src/utilities/loadScriptSrc.ts","../../src/flows/creditCardFlow/api.ts","../../src/flows/creditCardFlow/main.ts","../../src/flows/creditCardFlow/creditCardFlowSlice.ts","../../src/flows/creditCardFlow/hooks/useCreditCardFlowState.ts","../../src/flows/creditCardFlow/match.ts"],"sourcesContent":["import { loadScriptInnerHtml } from './loadScriptInnerHtml';\n\n/**\n * Loads a script from the specified URL and optionally executes a reCAPTCHA if the `isRecaptcha` flag is set.\n *\n * @param {Object} options - An object containing the following properties:\n * - {string} url: The URL of the script to load.\n * - {string} [key]: The reCAPTCHA key to use for execution. (Optional)\n * - {boolean} [isRecaptcha]: Flag indicating whether to execute a reCAPTCHA. Defaults to false.\n * - {function} [callBack]: A callback function to be called if there is an error loading the script. (Optional)\n * - {string} [id]: The ID to assign to the injected script. Defaults to an empty string.\n * @return {void}\n */\nconst loadScriptSrc = ({\n url,\n key,\n isRecaptcha = false,\n callBack,\n id = ''\n}: {\n url: string;\n key?: string;\n isRecaptcha?: boolean;\n callBack?: () => void;\n id?: string;\n}) => {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = url;\n script.id = `injected_script_${id}`;\n const headElem = document.getElementsByTagName('head')[0];\n headElem.insertBefore(script, headElem.firstChild);\n\n if (isRecaptcha) {\n script.onload = () => {\n const scriptInner = `\n grecaptcha.ready(function() {\n grecaptcha.execute(\"${key}\", {action: 'submit'}).then(function(token) {\n // To be used by tallyman\n window.reCaptchaToken = token;\n console.log(\"-------\" + token);\n });\n });\n `;\n loadScriptInnerHtml(scriptInner, true);\n };\n }\n\n script.onerror = () => {\n console.error('Error loading script', url);\n if (callBack) {\n callBack();\n }\n };\n};\n\nexport default loadScriptSrc;\n","import { IUserDetails, IUserDetailsEcardon, IUserDetailsSubmissionResult } from '../../sharedFlowTypes/CreditCardTypes';\nimport { IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoRedirTypes';\nimport { searchToObject } from '../../utilities/searchToObject';\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 return fetch(url).then((x) => x.json());\n};\n\nconst creditCardPayment = async ({\n window,\n userDetails,\n extraConfig\n}: {\n window: Window;\n userDetails: IUserDetails | IUserDetailsEcardon;\n extraConfig?: { serviceId: string; slug: string };\n}): Promise<IUserDetailsSubmissionResult> => {\n const isMaxPay = 'cc_number' in userDetails;\n const host = window.DEV_BASE_URL_CREDIT_CARD || '';\n const apiBaseURL = `${host}/api/v1`;\n const apiPath = '/frontend/initiate-payment-generic';\n const search = searchToObject(window) as any;\n // Common userDetails properties\n\n const browserFingerprint = {\n timezone: new Date().getTimezoneOffset(),\n browserColorDepth: window.screen.colorDepth,\n browserLanguage: navigator.language,\n browserScreenHeight: window.screen.height,\n browserScreenWidth: window.screen.width,\n userAgent: navigator.userAgent,\n browserJavaEnabled: navigator.javaEnabled ? navigator.javaEnabled() : false,\n browserJavascriptEnabled: true\n };\n\n const slug = extraConfig?.slug || '';\n const country = search?.d_country || '';\n const currency = search?.d_currency || '';\n let currencySlug = '';\n const allowedCurrencies = ['sek', 'nok', 'gbp', 'dkk', 'usd', 'sar', 'cad', 'pln', 'aed'];\n const localCurrencySupportedSlugs = [\n 'cc_celerispay-xracademy50_099-',\n 'cc_celerispay-xracademy50_001-',\n 'cc_maxpay-xracademy50_001-',\n 'cc_ecardon-movio50_001-',\n 'cc_maxpay-movio50_001-',\n 'cc_maxpay-funbox50_001-',\n 'cc_maxpay-entertainu50_099-'\n ];\n const isAllowedCurrency = allowedCurrencies.some((c) => c === currency.toLowerCase());\n const isLocalCurrencySupported = localCurrencySupportedSlugs.some((s) => s === slug.toLowerCase());\n\n if (isLocalCurrencySupported && currency && isAllowedCurrency) {\n currencySlug = `${slug.slice(0, -1)}:${currency.toLowerCase()}-${country.toLowerCase()}`;\n }\n\n const commonDetails = {\n rockman_id: window.pac_analytics.visitor?.rockmanId,\n landing_page_url: window.location.href,\n // Use conditional operation for service_id as it varies\n service_id: isMaxPay ? extraConfig?.serviceId : '2',\n ...(slug ? { slug: currencySlug || `${slug}${country.toLowerCase()}` } : {}),\n ...(isMaxPay ? {} : { user_agent: window.navigator.userAgent, ip: window.pac_analytics.visitor.ip }),\n browserFingerprint,\n is_preauth: search?.is_preauth === '1' ? 1 : 0,\n ...userDetails\n };\n\n const requestOptions = {\n method: 'POST',\n headers: new Headers({ 'Content-Type': 'application/json' }),\n body: JSON.stringify(commonDetails)\n };\n\n return fetch(`${apiBaseURL}${apiPath}`, requestOptions).then((response) => response.json());\n};\n\nexport { redirect, creditCardPayment };\n","import { IError } from '../../common-types/IError';\nimport { IUserDetails, IUserDetailsEcardon, IUserDetailsSubmissionResult } from '../../sharedFlowTypes/CreditCardTypes';\nimport { IConfig } from '../../sharedFlowTypes/StrategyTypes';\nimport { creditCardPayment, redirect } from './api';\n\nexport async function submitUserDetails(\n window: Window,\n config: IConfig,\n userDetails: IUserDetails | IUserDetailsEcardon\n): Promise<{\n method: string;\n gateway_url?: string;\n html?: string;\n}> {\n const { slug, country, device, serviceId } = config;\n const search = window.location.search.substr(1) || '';\n const { visitor } = window.pac_analytics;\n\n const { rockmanId } = visitor;\n const extraConfig = { serviceId, slug };\n const result: IUserDetailsSubmissionResult = window?.pac_analytics?.visitor?.page?.includes('agency')\n ? await redirect({\n window,\n slug,\n country,\n device,\n offer: window?.pac_analytics?.visitor?.offer,\n rockmanId,\n email: userDetails?.email,\n password: userDetails?.password,\n search\n })\n : await creditCardPayment({ window, userDetails, extraConfig });\n\n if (result.success === false) {\n const type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : result.message;\n const error = new Error(`${type}:\\n${result.message}`) as IError & { type: string };\n error.type = type;\n error.errorId = result.errorId;\n console.error(error);\n throw error;\n } else {\n return {\n gateway_url: result.gateway_url || result.redirect_url,\n method: result.redirect_url ? 'redirection' : result.method,\n html: result.html\n };\n }\n}\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n CreditCardFlowState,\n IUserDetails,\n IUserDetailsEcardon,\n SubmitUserDetailsErrorTypes,\n SubmitUserDetailsFailure,\n SubmitUserDetailsSuccess,\n USERDETAILSEntryState\n} from '../../sharedFlowTypes/CreditCardTypes';\nimport { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport loadScriptSrc from '../../utilities/loadScriptSrc';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { tracker } from '../../utilities/tracker';\nimport { submitUserDetails } from './main';\n\nconst mockedUserDetailsEntrySuccess: CreditCardFlowState = {\n currentState: {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.Success<SubmitUserDetailsFailure, SubmitUserDetailsSuccess>({\n gateway_url: 'https://www.google.com',\n method: 'jslink'\n })\n }\n};\n\nconst mockedUserDetailsEntryFailure: CreditCardFlowState = {\n currentState: {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.Failure<SubmitUserDetailsFailure, SubmitUserDetailsSuccess>({\n errorType: 'AlreadySubscribed',\n error: 'Already Subscribed'\n })\n }\n};\n\nconst defaultInitialState: CreditCardFlowState = {\n currentState: {\n type: 'USER_DETAILS_ENTRY',\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 'user-details-entry-failure-state':\n return mockedUserDetailsEntryFailure;\n case 'user-details-entry-success-state':\n return mockedUserDetailsEntrySuccess;\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 SubmitUserDetailsArgs {\n window: Window;\n userDetails: IUserDetails | IUserDetailsEcardon;\n}\n/**\n * submitUserDetailsAction\n * @returns {type: ' 'pinFlow/submitUserDetailsAction', payload: {type: PossibleTypes, result: USERDETAILSEntryState}}\n \n * Calls redirect or max api and returns a url\n * \n */\nexport const submitUserDetailsAction = createAsyncThunk<\n USERDETAILSEntryState,\n SubmitUserDetailsArgs,\n {\n rejectValue: SubmitUserDetailsFailure;\n }\n>('creditCardFlow/submitUserDetailsAction', async ({ window, userDetails }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config } = state.strategy.currentState.data;\n\n try {\n // Start Credit Card API\n tracker.advancedInFlow('tallyman.v1-credit-card', 'cc-form-submitted', { email: userDetails?.email });\n const { gateway_url, method, html } = await submitUserDetails(window, config, userDetails);\n tracker.advancedInFlow('tallyman.v1-credit-card', 'cc-form-submission-success', {\n email: userDetails?.email,\n gateway_url\n });\n // Start Credit Card API\n\n if (method === 'jslink' && gateway_url) {\n tracker.advancedInFlow('tallyman.v1-credit-card', 'load-script-start', { gateway_url });\n loadScriptSrc({\n id: 'ecardon-credit-card',\n url: gateway_url,\n callBack: () => {\n tracker.advancedInFlow('tallyman.v1-credit-card', 'load-script-success', { gateway_url });\n }\n });\n }\n\n if (method === 'redirection' && gateway_url) {\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: gateway_url });\n window.location.href = gateway_url;\n }\n\n if (method === 'html' && html) {\n tracker.advancedInFlow('tallyman.v1-credit-card', 'get-html-success');\n }\n return {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.Success<SubmitUserDetailsFailure, SubmitUserDetailsSuccess>({ gateway_url, method, html })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: SubmitUserDetailsErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidUserDetails':\n errorType = 'InvalidUserDetails';\n break;\n default:\n errorType = 'UnknownError';\n }\n\n tracker.recedeInFlow('tallyman.v1-credit-card', 'cc-form-submission-failure', {\n email: userDetails?.email,\n errorType: errorType || ex.type,\n errorId: ex?.errorId || ''\n });\n\n return rejectWithValue({\n errorType,\n error: ex.toString(),\n errorId: ex?.errorId || ''\n });\n }\n});\n\nconst creditCardFlowSlice = createSlice({\n name: 'creditCardFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitUserDetailsAction.pending, (state) => {\n state.currentState = { type: 'USER_DETAILS_ENTRY', result: RDS.Loading() };\n })\n .addCase(submitUserDetailsAction.fulfilled, (state, action: PayloadAction<USERDETAILSEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitUserDetailsAction.rejected, (state, action: PayloadAction<SubmitUserDetailsFailure>) => {\n state.currentState = {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: creditCardFlowReducer, actions: creditCardFlowActions } = creditCardFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectCreditCardFlowState = (state: any) => state.creditCardFlow;\n","import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useCreditCardFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.creditCardFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n CreditCardFlowCurrentState,\n SubmitUserDetailsFailure,\n SubmitUserDetailsSuccess\n} from '../../sharedFlowTypes/CreditCardTypes';\n\nfunction creditCardFlowMatch<R>({\n userDetailsEntry\n}: {\n userDetailsEntry: (rds: RDS.RemoteDataState<SubmitUserDetailsFailure, SubmitUserDetailsSuccess>) => R;\n}): (state: CreditCardFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'USER_DETAILS_ENTRY':\n return userDetailsEntry(state.result);\n default:\n // TODO - this should be an error or something\n return userDetailsEntry(state.result);\n }\n };\n}\n\nexport { creditCardFlowMatch };\n"],"names":["RDS.Success","RDS.Failure","RDS.NothingYet","RDS.Loading"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"creditCardFlow.js","sources":["../../src/utilities/loadScriptSrc.ts","../../src/flows/creditCardFlow/api.ts","../../src/flows/creditCardFlow/main.ts","../../src/flows/creditCardFlow/creditCardFlowSlice.ts","../../src/flows/creditCardFlow/hooks/useCreditCardFlowState.ts","../../src/flows/creditCardFlow/match.ts"],"sourcesContent":["import { loadScriptInnerHtml } from './loadScriptInnerHtml';\n\n/**\n * Loads a script from the specified URL and optionally executes a reCAPTCHA if the `isRecaptcha` flag is set.\n *\n * @param {Object} options - An object containing the following properties:\n * - {string} url: The URL of the script to load.\n * - {string} [key]: The reCAPTCHA key to use for execution. (Optional)\n * - {boolean} [isRecaptcha]: Flag indicating whether to execute a reCAPTCHA. Defaults to false.\n * - {function} [callBack]: A callback function to be called if there is an error loading the script. (Optional)\n * - {string} [id]: The ID to assign to the injected script. Defaults to an empty string.\n * @return {void}\n */\nconst loadScriptSrc = ({\n url,\n key,\n isRecaptcha = false,\n callBack,\n id = ''\n}: {\n url: string;\n key?: string;\n isRecaptcha?: boolean;\n callBack?: () => void;\n id?: string;\n}) => {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = url;\n script.id = `injected_script_${id}`;\n const headElem = document.getElementsByTagName('head')[0];\n headElem.insertBefore(script, headElem.firstChild);\n\n if (isRecaptcha) {\n script.onload = () => {\n const scriptInner = `\n grecaptcha.ready(function() {\n grecaptcha.execute(\"${key}\", {action: 'submit'}).then(function(token) {\n // To be used by tallyman\n window.reCaptchaToken = token;\n console.log(\"-------\" + token);\n });\n });\n `;\n loadScriptInnerHtml(scriptInner, true);\n };\n }\n\n script.onerror = () => {\n console.error('Error loading script', url);\n if (callBack) {\n callBack();\n }\n };\n};\n\nexport default loadScriptSrc;\n","import { IUserDetails, IUserDetailsEcardon, IUserDetailsSubmissionResult } from '../../sharedFlowTypes/CreditCardTypes';\nimport { IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoRedirTypes';\nimport { searchToObject } from '../../utilities/searchToObject';\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.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 return fetch(url).then((x) => x.json());\n};\n\nconst creditCardPayment = async ({\n window,\n userDetails,\n extraConfig\n}: {\n window: Window;\n userDetails: IUserDetails | IUserDetailsEcardon;\n extraConfig?: { serviceId: string; slug: string };\n}): Promise<IUserDetailsSubmissionResult> => {\n const isMaxPay = 'cc_number' in userDetails;\n const host = window.DEV_BASE_URL_CREDIT_CARD || '';\n const apiBaseURL = `${host}/api/v1`;\n const apiPath = '/frontend/initiate-payment-generic';\n const search = searchToObject(window) as any;\n // Common userDetails properties\n\n const browserFingerprint = {\n timezone: new Date().getTimezoneOffset(),\n browserColorDepth: window.screen.colorDepth,\n browserLanguage: navigator.language,\n browserScreenHeight: window.screen.height,\n browserScreenWidth: window.screen.width,\n userAgent: navigator.userAgent,\n browserJavaEnabled: navigator.javaEnabled ? navigator.javaEnabled() : false,\n browserJavascriptEnabled: true\n };\n\n const slug = extraConfig?.slug || '';\n const country = search?.d_country || '';\n const currency = search?.d_currency || '';\n let currencySlug = '';\n const allowedCurrencies = ['sek', 'nok', 'gbp', 'dkk', 'usd', 'sar', 'cad', 'pln', 'aed'];\n const localCurrencySupportedSlugs = [\n 'cc_celerispay-xracademy50_099-',\n 'cc_celerispay-xracademy50_001-',\n 'cc_maxpay-xracademy50_001-',\n 'cc_ecardon-movio50_001-',\n 'cc_maxpay-movio50_001-',\n 'cc_maxpay-funbox50_001-',\n 'cc_maxpay-entertainu50_099-'\n ];\n const isAllowedCurrency = allowedCurrencies.some((c) => c === currency.toLowerCase());\n const isLocalCurrencySupported = localCurrencySupportedSlugs.some((s) => s === slug.toLowerCase());\n\n if (isLocalCurrencySupported && currency && isAllowedCurrency) {\n currencySlug = `${slug.slice(0, -1)}:${currency.toLowerCase()}-${country.toLowerCase()}`;\n }\n\n const commonDetails = {\n rockman_id: window.pac_analytics.visitor?.rockmanId,\n landing_page_url: window.location.href,\n // Use conditional operation for service_id as it varies\n service_id: isMaxPay ? extraConfig?.serviceId : '2',\n ...(slug ? { slug: currencySlug || `${slug}${country.toLowerCase()}` } : {}),\n ...(isMaxPay ? {} : { user_agent: window.navigator.userAgent, ip: window.pac_analytics.visitor.ip }),\n browserFingerprint,\n is_preauth: search?.is_preauth === '1' ? 1 : 0,\n ...userDetails\n };\n\n const requestOptions = {\n method: 'POST',\n headers: new Headers({ 'Content-Type': 'application/json' }),\n body: JSON.stringify(commonDetails)\n };\n\n return fetch(`${apiBaseURL}${apiPath}`, requestOptions).then((response) => response.json());\n};\n\nexport { redirect, creditCardPayment };\n","import { IError } from '../../common-types/IError';\nimport { IUserDetails, IUserDetailsEcardon, IUserDetailsSubmissionResult } from '../../sharedFlowTypes/CreditCardTypes';\nimport { IConfig } from '../../sharedFlowTypes/StrategyTypes';\nimport { creditCardPayment } from './api';\n\nexport async function submitUserDetails(\n window: Window,\n config: IConfig,\n userDetails: IUserDetails | IUserDetailsEcardon\n): Promise<{\n method: string;\n gateway_url?: string;\n html?: string;\n}> {\n const { slug, serviceId } = config;\n const extraConfig = { serviceId, slug };\n const result: IUserDetailsSubmissionResult = await creditCardPayment({ window, userDetails, extraConfig });\n\n if (result.success === false) {\n const type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : result.message;\n const error = new Error(`${type}:\\n${result.message}`) as IError & { type: string };\n error.type = type;\n error.errorId = result.errorId;\n console.error(error);\n throw error;\n } else {\n return {\n gateway_url: result.gateway_url || result.redirect_url,\n method: result.redirect_url ? 'redirection' : result.method,\n html: result.html\n };\n }\n}\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n CreditCardFlowState,\n IUserDetails,\n IUserDetailsEcardon,\n SubmitUserDetailsErrorTypes,\n SubmitUserDetailsFailure,\n SubmitUserDetailsSuccess,\n USERDETAILSEntryState\n} from '../../sharedFlowTypes/CreditCardTypes';\nimport { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport loadScriptSrc from '../../utilities/loadScriptSrc';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { tracker } from '../../utilities/tracker';\nimport { submitUserDetails } from './main';\n\nconst mockedUserDetailsEntrySuccess: CreditCardFlowState = {\n currentState: {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.Success<SubmitUserDetailsFailure, SubmitUserDetailsSuccess>({\n gateway_url: 'https://www.google.com',\n method: 'jslink'\n })\n }\n};\n\nconst mockedUserDetailsEntryFailure: CreditCardFlowState = {\n currentState: {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.Failure<SubmitUserDetailsFailure, SubmitUserDetailsSuccess>({\n errorType: 'AlreadySubscribed',\n error: 'Already Subscribed'\n })\n }\n};\n\nconst defaultInitialState: CreditCardFlowState = {\n currentState: {\n type: 'USER_DETAILS_ENTRY',\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 'user-details-entry-failure-state':\n return mockedUserDetailsEntryFailure;\n case 'user-details-entry-success-state':\n return mockedUserDetailsEntrySuccess;\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 SubmitUserDetailsArgs {\n window: Window;\n userDetails: IUserDetails | IUserDetailsEcardon;\n}\n/**\n * submitUserDetailsAction\n * @returns {type: ' 'pinFlow/submitUserDetailsAction', payload: {type: PossibleTypes, result: USERDETAILSEntryState}}\n \n * Calls redirect or max api and returns a url\n * \n */\nexport const submitUserDetailsAction = createAsyncThunk<\n USERDETAILSEntryState,\n SubmitUserDetailsArgs,\n {\n rejectValue: SubmitUserDetailsFailure;\n }\n>('creditCardFlow/submitUserDetailsAction', async ({ window, userDetails }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config } = state.strategy.currentState.data;\n\n try {\n // Start Credit Card API\n tracker.advancedInFlow('tallyman.v1-credit-card', 'cc-form-submitted', { email: userDetails?.email });\n const { gateway_url, method, html } = await submitUserDetails(window, config, userDetails);\n tracker.advancedInFlow('tallyman.v1-credit-card', 'cc-form-submission-success', {\n email: userDetails?.email,\n gateway_url\n });\n // Start Credit Card API\n\n if (method === 'jslink' && gateway_url) {\n tracker.advancedInFlow('tallyman.v1-credit-card', 'load-script-start', { gateway_url });\n loadScriptSrc({\n id: 'ecardon-credit-card',\n url: gateway_url,\n callBack: () => {\n tracker.advancedInFlow('tallyman.v1-credit-card', 'load-script-success', { gateway_url });\n }\n });\n }\n\n if (method === 'redirection' && gateway_url) {\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: gateway_url });\n window.location.href = gateway_url;\n }\n\n if (method === 'html' && html) {\n tracker.advancedInFlow('tallyman.v1-credit-card', 'get-html-success');\n }\n return {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.Success<SubmitUserDetailsFailure, SubmitUserDetailsSuccess>({ gateway_url, method, html })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: SubmitUserDetailsErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidUserDetails':\n errorType = 'InvalidUserDetails';\n break;\n default:\n errorType = 'UnknownError';\n }\n\n tracker.recedeInFlow('tallyman.v1-credit-card', 'cc-form-submission-failure', {\n email: userDetails?.email,\n errorType: errorType || ex.type,\n errorId: ex?.errorId || ''\n });\n\n return rejectWithValue({\n errorType,\n error: ex.toString(),\n errorId: ex?.errorId || ''\n });\n }\n});\n\nconst creditCardFlowSlice = createSlice({\n name: 'creditCardFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitUserDetailsAction.pending, (state) => {\n state.currentState = { type: 'USER_DETAILS_ENTRY', result: RDS.Loading() };\n })\n .addCase(submitUserDetailsAction.fulfilled, (state, action: PayloadAction<USERDETAILSEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitUserDetailsAction.rejected, (state, action: PayloadAction<SubmitUserDetailsFailure>) => {\n state.currentState = {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: creditCardFlowReducer, actions: creditCardFlowActions } = creditCardFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectCreditCardFlowState = (state: any) => state.creditCardFlow;\n","import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useCreditCardFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.creditCardFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n CreditCardFlowCurrentState,\n SubmitUserDetailsFailure,\n SubmitUserDetailsSuccess\n} from '../../sharedFlowTypes/CreditCardTypes';\n\nfunction creditCardFlowMatch<R>({\n userDetailsEntry\n}: {\n userDetailsEntry: (rds: RDS.RemoteDataState<SubmitUserDetailsFailure, SubmitUserDetailsSuccess>) => R;\n}): (state: CreditCardFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'USER_DETAILS_ENTRY':\n return userDetailsEntry(state.result);\n default:\n // TODO - this should be an error or something\n return userDetailsEntry(state.result);\n }\n };\n}\n\nexport { creditCardFlowMatch };\n"],"names":["RDS.Success","RDS.Failure","RDS.NothingYet","RDS.Loading"],"mappings":"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"}
|
|
@@ -28,10 +28,10 @@ var handleResolveRedirect = function (url) {
|
|
|
28
28
|
try {
|
|
29
29
|
if (isSlashFirst(url)) {
|
|
30
30
|
var target = fullyDecode(url);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
window.location.href = target;
|
|
31
|
+
// A slash-first value that decodes to an absolute URL → follow it.
|
|
32
|
+
// Otherwise it's a same-origin relative path → navigate directly
|
|
33
|
+
// (do NOT treat it as an encrypted resolve-wfl token).
|
|
34
|
+
window.location.href = /^https?:\/\//i.test(target) ? target : url;
|
|
35
35
|
}
|
|
36
36
|
else if (isUrl(url)) {
|
|
37
37
|
window.location.href = url;
|
|
@@ -47,4 +47,4 @@ var handleResolveRedirect = function (url) {
|
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
export { handleResolveRedirect as h };
|
|
50
|
-
//# sourceMappingURL=handleResolveRedirect-
|
|
50
|
+
//# sourceMappingURL=handleResolveRedirect-BXznqdbX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleResolveRedirect-BXznqdbX.js","sources":["../../src/utilities/handleResolveRedirect.ts"],"sourcesContent":["const isUrl = (value: string): boolean => {\n try {\n // eslint-disable-next-line no-new\n new URL(value);\n return true;\n } catch {\n return false;\n }\n};\n\nfunction isSlashFirst(str: string): boolean {\n return str.startsWith('/');\n}\nfunction fullyDecode(s: string): string {\n let prev;\n do {\n prev = s;\n try {\n s = decodeURIComponent(s);\n } catch {\n break;\n } // stop if it’s no longer valid UTF-8\n } while (s !== prev);\n return s;\n}\n\nexport const handleResolveRedirect = (url: string) => {\n try {\n if (isSlashFirst(url)) {\n const target = fullyDecode(url);\n // A slash-first value that decodes to an absolute URL → follow it.\n // Otherwise it's a same-origin relative path → navigate directly\n // (do NOT treat it as an encrypted resolve-wfl token).\n window.location.href = /^https?:\\/\\//i.test(target) ? target : url;\n } else if (isUrl(url)) {\n window.location.href = url;\n } else {\n window.location.href = `/api/v1/resolve-wfl?token=${url}`;\n }\n } catch (e) {\n console.error(e);\n window.location.href = `/api/v1/resolve-wfl?token=${url}`;\n }\n};\n"],"names":[],"mappings":"AAAA,IAAM,KAAK,GAAG,UAAC,KAAa,EAAA;IAC1B,IAAI;;AAEF,QAAA,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;AACf,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;IAAC,OAAM,EAAA,EAAA;AACN,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;AACH,CAAC,CAAC;AAEF,SAAS,YAAY,CAAC,GAAW,EAAA;AAC/B,IAAA,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AACD,SAAS,WAAW,CAAC,CAAS,EAAA;AAC5B,IAAA,IAAI,IAAI,CAAC;IACT,GAAG;QACD,IAAI,GAAG,CAAC,CAAC;QACT,IAAI;AACF,YAAA,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC3B,SAAA;QAAC,OAAM,EAAA,EAAA;YACN,MAAM;AACP,SAAA;KACF,QAAQ,CAAC,KAAK,IAAI,EAAE;AACrB,IAAA,OAAO,CAAC,CAAC;AACX,CAAC;AAEM,IAAM,qBAAqB,GAAG,UAAC,GAAW,EAAA;IAC/C,IAAI;AACF,QAAA,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE;AACrB,YAAA,IAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;;;;AAIhC,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC;AACpE,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;AACrB,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;AAC5B,SAAA;AAAM,aAAA;YACL,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,4BAA6B,CAAA,MAAA,CAAA,GAAG,CAAE,CAAC;AAC3D,SAAA;AACF,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,4BAA6B,CAAA,MAAA,CAAA,GAAG,CAAE,CAAC;AAC3D,KAAA;AACH;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var loadScriptInnerHtml = function (innerHTML, isBody) {
|
|
2
|
+
var script = document.createElement('script');
|
|
3
|
+
script.type = 'text/javascript';
|
|
4
|
+
script.innerHTML = innerHTML;
|
|
5
|
+
if (isBody) {
|
|
6
|
+
document.getElementsByTagName('body')[0].appendChild(script);
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
var headElem = document.getElementsByTagName('head')[0];
|
|
10
|
+
headElem.insertBefore(script, headElem.firstChild);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { loadScriptInnerHtml as l };
|
|
15
|
+
//# sourceMappingURL=loadScriptInnerHtml-R8P4RRyg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadScriptInnerHtml-R8P4RRyg.js","sources":["../../src/utilities/loadScriptInnerHtml.ts"],"sourcesContent":["const loadScriptInnerHtml = (innerHTML: string, isBody?: boolean) => {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.innerHTML = innerHTML;\n if (isBody) {\n document.getElementsByTagName('body')[0].appendChild(script);\n } else {\n const headElem = document.getElementsByTagName('head')[0];\n headElem.insertBefore(script, headElem.firstChild);\n }\n};\n\nexport { loadScriptInnerHtml };\n"],"names":[],"mappings":"AAAA,IAAM,mBAAmB,GAAG,UAAC,SAAiB,EAAE,MAAgB,EAAA;IAC9D,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,IAAA,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC;AAChC,IAAA,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;AAC7B,IAAA,IAAI,MAAM,EAAE;AACV,QAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9D,KAAA;AAAM,SAAA;QACL,IAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;AACpD,KAAA;AACH;;;;"}
|
package/dist/moFlow.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __awaiter, __generator, __read, __assign } from 'tslib';
|
|
2
2
|
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
|
-
import { h as handleResolveRedirect } from './handleResolveRedirect-
|
|
4
|
+
import { h as handleResolveRedirect } from './handleResolveRedirect-BXznqdbX.js';
|
|
5
5
|
import { n as normaliseErrorCode, r as redirectErrorTypes, g as getErrorCode } from './normaliseErrorCode-C5lIBmuQ.js';
|
|
6
6
|
import { searchToObject } from './searchToObject.js';
|
|
7
7
|
import { s as storeMsisdn } from './storeMsisdn-ChiBh8mI.js';
|
package/dist/moRedirFlow.js
CHANGED
|
@@ -62,8 +62,7 @@ var redirect = function (_a) {
|
|
|
62
62
|
var window = _a.window, slug = _a.slug, country = _a.country, msisdn = _a.msisdn, device = _a.device, offer = _a.offer, rockmanId = _a.rockmanId, ip_range_name = _a.ip_range_name, search = _a.search, extraParams = _a.extraParams, email = _a.email, password = _a.password;
|
|
63
63
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
64
64
|
var extraParamsQs, evinaTid, params, host, url;
|
|
65
|
-
|
|
66
|
-
return __generator(this, function (_e) {
|
|
65
|
+
return __generator(this, function (_b) {
|
|
67
66
|
// Remove conflicting params from url
|
|
68
67
|
search = cleanSearchParams(search);
|
|
69
68
|
extraParamsQs = "&".concat(Object.keys(extraParams)
|
|
@@ -71,10 +70,10 @@ var redirect = function (_a) {
|
|
|
71
70
|
.filter(Boolean)
|
|
72
71
|
.join('&'));
|
|
73
72
|
evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';
|
|
74
|
-
params = new URLSearchParams(__assign(__assign(__assign(
|
|
73
|
+
params = new URLSearchParams(__assign(__assign(__assign({ action: 'redirect', slug: slug, country: country, device: device, offerId: offer.toString(), rockman_id: rockmanId, page: encodeURIComponent(window.location.href), sam_evina_tid: evinaTid, antifraud_id: window.antifraud_id || '',
|
|
75
74
|
// More specific antifraud IDs will eventuallly replace antifraud_id
|
|
76
75
|
// https://www.notion.so/sammedia/KW-Agency-Globocom-KW-ENTERTAINMENT-STORE-GAMESOLUTELY-GLING-Landing-Page-Test-a9841b14218b42709ffb1a2d41428275?d=f2a8d09b1e8c4fd4bdab69ab5dda1f25
|
|
77
|
-
antifraud_id_js_code: window.antifraud_id_js_code || '', antifraud_id_js_link: window.antifraud_id_js_link || '', network_type: ip_range_name ? '' : 'wifi', ip_address: window.pac_analytics.visitor.ip || '', ip_range_operator: window.pac_analytics.visitor.ipRangeOperator || '' }, (
|
|
76
|
+
antifraud_id_js_code: window.antifraud_id_js_code || '', antifraud_id_js_link: window.antifraud_id_js_link || '', network_type: ip_range_name ? '' : 'wifi', ip_address: window.pac_analytics.visitor.ip || '', ip_range_operator: window.pac_analytics.visitor.ipRangeOperator || '' }, (window.securityProcessId && { securityProcessId: window.securityProcessId })), (window.languageCode && { language_code: window.languageCode })), (email && password ? { email: email, password: password } : { msisdn: msisdn }))).toString();
|
|
78
77
|
host = window.DEV_BASE_URL || '';
|
|
79
78
|
url = "".concat(host, "/tallyman/v1/?").concat(params).concat(extraParamsQs).concat(search ? "&".concat(search) : '');
|
|
80
79
|
if (slug.includes('za-mtn-beyondvr-r7')) {
|
package/dist/moRedirFlow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moRedirFlow.js","sources":["../../src/flows/moRedirFlow/hooks/useMoRedirFlowState.ts","../../src/flows/moRedirFlow/match.ts","../../src/utilities/normalizePhoneNumber.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 { countryToPhoneCode } from './countryToPhoneCode';\n\n/**\n * Normalizes a phone number by:\n * 1. Stripping non-digits.\n * 2. Removing the known country code if provided (and present).\n * 3. Ensuring the result has a leading '0'.\n *\n * @param phoneNumber The user-input phone number (e.g. \"+971501234567\").\n * @param isoCountry (optional) ISO country code (e.g. \"AE\", \"PK\").\n * @returns The normalized phone number with a leading '0'.\n */\nexport const normalizePhoneNumber = (phoneNumber: string, isoCountry?: string): string => {\n // 1. Remove non-digit characters\n let cleanedNumber = phoneNumber.replace(/\\D/g, '');\n\n // 2. If a specific country is given, try removing *that* country code\n if (isoCountry && countryToPhoneCode[isoCountry]) {\n const countryCode = countryToPhoneCode[isoCountry];\n if (cleanedNumber.startsWith(countryCode)) {\n cleanedNumber = cleanedNumber.substring(countryCode.length);\n }\n } else {\n // (Optional) Fallback behavior if no valid isoCountry is passed:\n // e.g., check all known codes OR just do nothing special\n // For demonstration, we do nothing special:\n }\n\n // 3. Add leading zero if it’s not already present\n if (!cleanedNumber.startsWith('0') && cleanedNumber.length > 0) {\n cleanedNumber = `0${cleanedNumber}`;\n }\n\n return cleanedNumber;\n};\n","import { IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoRedirTypes';\nimport { IHash } from '../../sharedFlowTypes/StrategyTypes';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\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 extraParams,\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 extraParams: IHash;\n email?: string;\n password?: string;\n}): Promise<IMSISDNSubmissionResult> => {\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n const extraParamsQs = `&${Object.keys(extraParams)\n .map((k) => (extraParams[k] ? `${k}=${extraParams[k]}` : ''))\n .filter(Boolean)\n .join('&')}`;\n\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\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 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 network_type: ip_range_name ? '' : 'wifi',\n ip_address: window.pac_analytics.visitor.ip || '',\n ip_range_operator: window.pac_analytics.visitor.ipRangeOperator || '',\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 }).toString();\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${params}${extraParamsQs}${search ? `&${search}` : ''}`;\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 tryGetIPRangeName from '../../ips/tryGetIPRangeName';\nimport { IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoRedirTypes';\nimport { IConfig, IStrategyIDentifyUserResult } from '../../sharedFlowTypes/StrategyTypes';\nimport { searchToObject } from '../../utilities/searchToObject';\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\n const newExtraParams = extraParams || {};\n let isSkipValidation = false;\n const searchObj = searchToObject(window) as IStrategyIDentifyUserResult;\n if ((searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') || window.is_encrypted_msisdn === true) {\n // Search param is set to 1 for header enrichment when the msisdn is masked\n newExtraParams.encrypted_msisdn = '1';\n }\n\n if (newExtraParams.encrypted_msisdn === '1') {\n isSkipValidation = true;\n }\n const msisdn = isSkipValidation ? internationalMSISDN || window.msisdn : internationalMSISDN.match(/\\d+/gi).join(''); // tallyman API expects international msisdn without any special character\n\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 extraParams: newExtraParams\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","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 { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { normalizePhoneNumber } from '../../utilities/normalizePhoneNumber';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport { updateUrlWithParams } from '../../utilities/updateUrlWithParams';\nimport { identifyStrategy } from '../strategy';\nimport submitMSISDN from './main';\n\nconst mockedMSISDNEntrySuccess: MoRedirFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n href: '/product'\n })\n }\n};\n\nconst 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\nconst defaultInitialState: MoRedirFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'msisdn-entry-failure-state':\n return mockedMSISDNEntryFailure;\n case 'msisdn-entry-success-state':\n return mockedMSISDNEntrySuccess;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}\n \n * Calls 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 if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config, skipRedirectCall, redirect_url } = state.strategy.currentState.data;\n try {\n window.isBackToStart = false;\n // Start Redirect Api Call\n tracker.advancedInFlow('tallyman.v1-mo-redir', 'msisdn-submitted', { msisdn });\n const href =\n skipRedirectCall && redirect_url\n ? updateUrlWithParams(redirect_url, { msisdn: normalizePhoneNumber(msisdn, config?.country?.toUpperCase()) })\n : 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\nexport const backToStartAction = createAsyncThunk<\n any,\n any,\n {\n rejectValue: any; // Type for rejectWithValue\n }\n>('moRedirFlow/backToStartAction', async (_, { dispatch, rejectWithValue }) => {\n try {\n tracker.recedeInFlow('tallyman.v1-mo-redir', 'mo-redir-state', 'requested to change phone number');\n dispatch(identifyStrategy());\n } catch (ex) {\n console.warn(ex);\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n});\n\nconst moRedirFlowSlice = createSlice({\n name: 'moRedirFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading() };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload)\n };\n })\n .addCase(backToStartAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action?.payload || {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: moRedirFlowReducer, actions: moRedirFlowActions } = moRedirFlowSlice;\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.Success","RDS.Failure","RDS.NothingYet","RDS.Loading"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"moRedirFlow.js","sources":["../../src/flows/moRedirFlow/hooks/useMoRedirFlowState.ts","../../src/flows/moRedirFlow/match.ts","../../src/utilities/normalizePhoneNumber.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 { countryToPhoneCode } from './countryToPhoneCode';\n\n/**\n * Normalizes a phone number by:\n * 1. Stripping non-digits.\n * 2. Removing the known country code if provided (and present).\n * 3. Ensuring the result has a leading '0'.\n *\n * @param phoneNumber The user-input phone number (e.g. \"+971501234567\").\n * @param isoCountry (optional) ISO country code (e.g. \"AE\", \"PK\").\n * @returns The normalized phone number with a leading '0'.\n */\nexport const normalizePhoneNumber = (phoneNumber: string, isoCountry?: string): string => {\n // 1. Remove non-digit characters\n let cleanedNumber = phoneNumber.replace(/\\D/g, '');\n\n // 2. If a specific country is given, try removing *that* country code\n if (isoCountry && countryToPhoneCode[isoCountry]) {\n const countryCode = countryToPhoneCode[isoCountry];\n if (cleanedNumber.startsWith(countryCode)) {\n cleanedNumber = cleanedNumber.substring(countryCode.length);\n }\n } else {\n // (Optional) Fallback behavior if no valid isoCountry is passed:\n // e.g., check all known codes OR just do nothing special\n // For demonstration, we do nothing special:\n }\n\n // 3. Add leading zero if it’s not already present\n if (!cleanedNumber.startsWith('0') && cleanedNumber.length > 0) {\n cleanedNumber = `0${cleanedNumber}`;\n }\n\n return cleanedNumber;\n};\n","import { IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoRedirTypes';\nimport { IHash } from '../../sharedFlowTypes/StrategyTypes';\nimport { cleanSearchParams } from '../../utilities/cleanSearchParams';\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 extraParams,\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 extraParams: IHash;\n email?: string;\n password?: string;\n}): Promise<IMSISDNSubmissionResult> => {\n // Remove conflicting params from url\n search = cleanSearchParams(search);\n const extraParamsQs = `&${Object.keys(extraParams)\n .map((k) => (extraParams[k] ? `${k}=${extraParams[k]}` : ''))\n .filter(Boolean)\n .join('&')}`;\n\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\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 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 network_type: ip_range_name ? '' : 'wifi',\n ip_address: window.pac_analytics.visitor.ip || '',\n ip_range_operator: window.pac_analytics.visitor.ipRangeOperator || '',\n ...(window.securityProcessId && { securityProcessId: window.securityProcessId }),\n ...(window.languageCode && { language_code: window.languageCode }),\n ...(email && password ? { email, password } : { msisdn })\n }).toString();\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${params}${extraParamsQs}${search ? `&${search}` : ''}`;\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 tryGetIPRangeName from '../../ips/tryGetIPRangeName';\nimport { IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoRedirTypes';\nimport { IConfig, IStrategyIDentifyUserResult } from '../../sharedFlowTypes/StrategyTypes';\nimport { searchToObject } from '../../utilities/searchToObject';\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\n const newExtraParams = extraParams || {};\n let isSkipValidation = false;\n const searchObj = searchToObject(window) as IStrategyIDentifyUserResult;\n if ((searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') || window.is_encrypted_msisdn === true) {\n // Search param is set to 1 for header enrichment when the msisdn is masked\n newExtraParams.encrypted_msisdn = '1';\n }\n\n if (newExtraParams.encrypted_msisdn === '1') {\n isSkipValidation = true;\n }\n const msisdn = isSkipValidation ? internationalMSISDN || window.msisdn : internationalMSISDN.match(/\\d+/gi).join(''); // tallyman API expects international msisdn without any special character\n\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 extraParams: newExtraParams\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","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 { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { normalizePhoneNumber } from '../../utilities/normalizePhoneNumber';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport { updateUrlWithParams } from '../../utilities/updateUrlWithParams';\nimport { identifyStrategy } from '../strategy';\nimport submitMSISDN from './main';\n\nconst mockedMSISDNEntrySuccess: MoRedirFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n href: '/product'\n })\n }\n};\n\nconst 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\nconst defaultInitialState: MoRedirFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'msisdn-entry-failure-state':\n return mockedMSISDNEntryFailure;\n case 'msisdn-entry-success-state':\n return mockedMSISDNEntrySuccess;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}\n \n * Calls 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 if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config, skipRedirectCall, redirect_url } = state.strategy.currentState.data;\n try {\n window.isBackToStart = false;\n // Start Redirect Api Call\n tracker.advancedInFlow('tallyman.v1-mo-redir', 'msisdn-submitted', { msisdn });\n const href =\n skipRedirectCall && redirect_url\n ? updateUrlWithParams(redirect_url, { msisdn: normalizePhoneNumber(msisdn, config?.country?.toUpperCase()) })\n : 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\nexport const backToStartAction = createAsyncThunk<\n any,\n any,\n {\n rejectValue: any; // Type for rejectWithValue\n }\n>('moRedirFlow/backToStartAction', async (_, { dispatch, rejectWithValue }) => {\n try {\n tracker.recedeInFlow('tallyman.v1-mo-redir', 'mo-redir-state', 'requested to change phone number');\n dispatch(identifyStrategy());\n } catch (ex) {\n console.warn(ex);\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n});\n\nconst moRedirFlowSlice = createSlice({\n name: 'moRedirFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading() };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload)\n };\n })\n .addCase(backToStartAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action?.payload || {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: moRedirFlowReducer, actions: moRedirFlowActions } = moRedirFlowSlice;\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.Success","RDS.Failure","RDS.NothingYet","RDS.Loading"],"mappings":"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"}
|
package/dist/oneClickFlow.js
CHANGED
|
@@ -5,7 +5,7 @@ import { u as updateUrlParameter, t as tracker } from './tracker-Dch6_0Q2.js';
|
|
|
5
5
|
import { searchToObject } from './searchToObject.js';
|
|
6
6
|
import { c as setStrategyExtraData, f as flowMapping } from './strategySlice-DFQ-MT7F.js';
|
|
7
7
|
import { b as bupperizeCountry } from './api-N0Lsjul5.js';
|
|
8
|
-
import { l as loadScriptInnerHtml } from './loadScriptInnerHtml-
|
|
8
|
+
import { l as loadScriptInnerHtml } from './loadScriptInnerHtml-R8P4RRyg.js';
|
|
9
9
|
import { n as normaliseErrorCode } from './normaliseErrorCode-C5lIBmuQ.js';
|
|
10
10
|
import { c as cleanSearchParams } from './cleanSearchParams-B2jK3H1j.js';
|
|
11
11
|
import 'pacman-client';
|
package/dist/pinFlow.js
CHANGED
|
@@ -2,14 +2,14 @@ import { __awaiter, __generator, __read, __assign } from 'tslib';
|
|
|
2
2
|
import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
|
|
3
3
|
import { L as Loading, N as NothingYet, S as Success, F as Failure } from './RemoteDataState-CwHLI23e.js';
|
|
4
4
|
import { i as identifyStrategy, c as setStrategyExtraData, P as PossibleTypes } from './strategySlice-DFQ-MT7F.js';
|
|
5
|
-
import { h as handleResolveRedirect } from './handleResolveRedirect-
|
|
5
|
+
import { h as handleResolveRedirect } from './handleResolveRedirect-BXznqdbX.js';
|
|
6
6
|
import { n as normaliseErrorCode, r as redirectErrorTypes, g as getErrorCode } from './normaliseErrorCode-C5lIBmuQ.js';
|
|
7
7
|
import { searchToObject } from './searchToObject.js';
|
|
8
8
|
import { s as storeMsisdn } from './storeMsisdn-ChiBh8mI.js';
|
|
9
9
|
import { t as tracker } from './tracker-Dch6_0Q2.js';
|
|
10
10
|
import { b as bupperizeCountry } from './api-N0Lsjul5.js';
|
|
11
11
|
import { l as left, r as right, a as loop } from './helpers-J_h-ZgxH.js';
|
|
12
|
-
import { l as loadScriptInnerHtml } from './loadScriptInnerHtml-
|
|
12
|
+
import { l as loadScriptInnerHtml } from './loadScriptInnerHtml-R8P4RRyg.js';
|
|
13
13
|
import { c as cleanSearchParams } from './cleanSearchParams-B2jK3H1j.js';
|
|
14
14
|
import './getConfig.js';
|
|
15
15
|
import './formatNumberToE164-oPCiETQk.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/flows/creditCardFlow/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACxH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAG7E,QAAA,MAAM,QAAQ;YAcJ,MAAM;UACR,MAAM;aACH,MAAM;aACN,MAAM;YACP,MAAM;WACP,MAAM;eACF,MAAM;oBACD,MAAM;YACd,MAAM;oBACE,MAAM;YACd,MAAM;eACH,MAAM;MACf,QAAQ,uBAAuB,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/flows/creditCardFlow/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACxH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAG7E,QAAA,MAAM,QAAQ;YAcJ,MAAM;UACR,MAAM;aACH,MAAM;aACN,MAAM;YACP,MAAM;WACP,MAAM;eACF,MAAM;oBACD,MAAM;YACd,MAAM;oBACE,MAAM;YACd,MAAM;eACH,MAAM;MACf,QAAQ,uBAAuB,CAqBlC,CAAC;AAEF,QAAA,MAAM,iBAAiB;YAKb,MAAM;iBACD,YAAY,GAAG,mBAAmB;;mBACpB,MAAM;cAAQ,MAAM;;MAC7C,QAAQ,4BAA4B,CA2DvC,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../src/flows/creditCardFlow/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAgC,MAAM,uCAAuC,CAAC;AACxH,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAG9D,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,YAAY,GAAG,mBAAmB,GAC9C,OAAO,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../src/flows/creditCardFlow/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAgC,MAAM,uCAAuC,CAAC;AACxH,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAG9D,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,YAAY,GAAG,mBAAmB,GAC9C,OAAO,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CAmBD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/flows/moRedirFlow/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAG5D,QAAA,MAAM,QAAQ;YAcJ,MAAM;UACR,MAAM;aACH,MAAM;aACN,MAAM;YACP,MAAM;WACP,MAAM;eACF,MAAM;oBACD,MAAM;YACd,MAAM;iBACD,KAAK;YACV,MAAM;eACH,MAAM;MACf,QAAQ,uBAAuB,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/flows/moRedirFlow/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAG5D,QAAA,MAAM,QAAQ;YAcJ,MAAM;UACR,MAAM;aACH,MAAM;aACN,MAAM;YACP,MAAM;WACP,MAAM;eACF,MAAM;oBACD,MAAM;YACd,MAAM;iBACD,KAAK;YACV,MAAM;eACH,MAAM;MACf,QAAQ,uBAAuB,CA4ClC,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadScriptInnerHtml.d.ts","sourceRoot":"","sources":["../../../src/utilities/loadScriptInnerHtml.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB,cAAe,MAAM,WAAW,OAAO,
|
|
1
|
+
{"version":3,"file":"loadScriptInnerHtml.d.ts","sourceRoot":"","sources":["../../../src/utilities/loadScriptInnerHtml.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB,cAAe,MAAM,WAAW,OAAO,SAU/D,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
package/dist/ussdFlow.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-Dch6_0Q2.js';
|
|
8
8
|
import { i as identifyStrategy } from './strategySlice-DFQ-MT7F.js';
|
|
9
|
-
import './handleResolveRedirect-
|
|
9
|
+
import './handleResolveRedirect-BXznqdbX.js';
|
|
10
10
|
import './helpers-J_h-ZgxH.js';
|
|
11
11
|
import './updateUrlWithParams-ZaZt1BCf.js';
|
|
12
12
|
import 'pacman-client';
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"handleResolveRedirect-5Hkm5YXF.js","sources":["../../src/utilities/handleResolveRedirect.ts"],"sourcesContent":["const isUrl = (value: string): boolean => {\n try {\n // eslint-disable-next-line no-new\n new URL(value);\n return true;\n } catch {\n return false;\n }\n};\n\nfunction isSlashFirst(str: string): boolean {\n return str.startsWith('/');\n}\nfunction fullyDecode(s: string): string {\n let prev;\n do {\n prev = s;\n try {\n s = decodeURIComponent(s);\n } catch {\n break;\n } // stop if it’s no longer valid UTF-8\n } while (s !== prev);\n return s;\n}\n\nexport const handleResolveRedirect = (url: string) => {\n try {\n if (isSlashFirst(url)) {\n const target = fullyDecode(url);\n if (!/^https?:\\/\\//i.test(target)) {\n throw new Error(`Decoded string is not an absolute URL: ${target}`);\n }\n window.location.href = target;\n } else if (isUrl(url)) {\n window.location.href = url;\n } else {\n window.location.href = `/api/v1/resolve-wfl?token=${url}`;\n }\n } catch (e) {\n console.error(e);\n window.location.href = `/api/v1/resolve-wfl?token=${url}`;\n }\n};\n"],"names":[],"mappings":"AAAA,IAAM,KAAK,GAAG,UAAC,KAAa,EAAA;IAC1B,IAAI;;AAEF,QAAA,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;AACf,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;IAAC,OAAM,EAAA,EAAA;AACN,QAAA,OAAO,KAAK,CAAC;AACd,KAAA;AACH,CAAC,CAAC;AAEF,SAAS,YAAY,CAAC,GAAW,EAAA;AAC/B,IAAA,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AACD,SAAS,WAAW,CAAC,CAAS,EAAA;AAC5B,IAAA,IAAI,IAAI,CAAC;IACT,GAAG;QACD,IAAI,GAAG,CAAC,CAAC;QACT,IAAI;AACF,YAAA,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAC3B,SAAA;QAAC,OAAM,EAAA,EAAA;YACN,MAAM;AACP,SAAA;KACF,QAAQ,CAAC,KAAK,IAAI,EAAE;AACrB,IAAA,OAAO,CAAC,CAAC;AACX,CAAC;AAEM,IAAM,qBAAqB,GAAG,UAAC,GAAW,EAAA;IAC/C,IAAI;AACF,QAAA,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE;AACrB,YAAA,IAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACjC,gBAAA,MAAM,IAAI,KAAK,CAAC,iDAA0C,MAAM,CAAE,CAAC,CAAC;AACrE,aAAA;AACD,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC;AAC/B,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;AACrB,YAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;AAC5B,SAAA;AAAM,aAAA;YACL,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,4BAA6B,CAAA,MAAA,CAAA,GAAG,CAAE,CAAC;AAC3D,SAAA;AACF,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,4BAA6B,CAAA,MAAA,CAAA,GAAG,CAAE,CAAC;AAC3D,KAAA;AACH;;;;"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
var loadScriptInnerHtml = function (innerHTML, isBody) {
|
|
2
|
-
var script = document.createElement('script');
|
|
3
|
-
script.type = 'text/javascript';
|
|
4
|
-
script.innerHTML = innerHTML;
|
|
5
|
-
script.id = window.gateway === 'agency_mt2' ? 'EvinaPinTrigger' : '';
|
|
6
|
-
if (isBody) {
|
|
7
|
-
document.getElementsByTagName('body')[0].appendChild(script);
|
|
8
|
-
}
|
|
9
|
-
else {
|
|
10
|
-
var headElem = document.getElementsByTagName('head')[0];
|
|
11
|
-
headElem.insertBefore(script, headElem.firstChild);
|
|
12
|
-
setTimeout(function () {
|
|
13
|
-
var _a, _b, _c, _d, _e;
|
|
14
|
-
// intech agency dcbprotect run added
|
|
15
|
-
if (((window.gateway === 'agency_mt2' || ((_c = (_b = (_a = window.pac_analytics) === null || _a === void 0 ? void 0 : _a.visitor) === null || _b === void 0 ? void 0 : _b.defaultScenario) === null || _c === void 0 ? void 0 : _c.includes('mt2'))) &&
|
|
16
|
-
typeof window.evina_dcb !== undefined) ||
|
|
17
|
-
((_e = (_d = window.pac_analytics) === null || _d === void 0 ? void 0 : _d.visitor) === null || _e === void 0 ? void 0 : _e.defaultScenario) === 'agency-intech-kw-acronis-zain-ooredoo') {
|
|
18
|
-
// eslint-disable-next-line no-console
|
|
19
|
-
console.log('Ev ready');
|
|
20
|
-
var event_1 = new Event('DCBProtectRun');
|
|
21
|
-
if (typeof window !== 'undefined') {
|
|
22
|
-
document.dispatchEvent(event_1);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}, 0);
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export { loadScriptInnerHtml as l };
|
|
30
|
-
//# sourceMappingURL=loadScriptInnerHtml-CstJVRED.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loadScriptInnerHtml-CstJVRED.js","sources":["../../src/utilities/loadScriptInnerHtml.ts"],"sourcesContent":["const loadScriptInnerHtml = (innerHTML: string, isBody?: boolean) => {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.innerHTML = innerHTML;\n script.id = window.gateway === 'agency_mt2' ? 'EvinaPinTrigger' : '';\n if (isBody) {\n document.getElementsByTagName('body')[0].appendChild(script);\n } else {\n const headElem = document.getElementsByTagName('head')[0];\n headElem.insertBefore(script, headElem.firstChild);\n\n setTimeout(() => {\n // intech agency dcbprotect run added\n if (\n ((window.gateway === 'agency_mt2' || window.pac_analytics?.visitor?.defaultScenario?.includes('mt2')) &&\n typeof window.evina_dcb !== undefined) ||\n window.pac_analytics?.visitor?.defaultScenario === 'agency-intech-kw-acronis-zain-ooredoo'\n ) {\n // eslint-disable-next-line no-console\n console.log('Ev ready');\n const event = new Event('DCBProtectRun');\n if (typeof window !== 'undefined') {\n document.dispatchEvent(event);\n }\n }\n }, 0);\n }\n};\n\nexport { loadScriptInnerHtml };\n"],"names":[],"mappings":"AAAA,IAAM,mBAAmB,GAAG,UAAC,SAAiB,EAAE,MAAgB,EAAA;IAC9D,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,IAAA,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC;AAChC,IAAA,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;AAC7B,IAAA,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,KAAK,YAAY,GAAG,iBAAiB,GAAG,EAAE,CAAC;AACrE,IAAA,IAAI,MAAM,EAAE;AACV,QAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC9D,KAAA;AAAM,SAAA;QACL,IAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;AAEnD,QAAA,UAAU,CAAC,YAAA;;;YAET,IACE,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,YAAY,KAAI,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;AAClG,gBAAA,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS;gBACvC,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,eAAe,MAAK,uCAAuC,EAC1F;;AAEA,gBAAA,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACxB,gBAAA,IAAM,OAAK,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;AACzC,gBAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,oBAAA,QAAQ,CAAC,aAAa,CAAC,OAAK,CAAC,CAAC;AAC/B,iBAAA;AACF,aAAA;SACF,EAAE,CAAC,CAAC,CAAC;AACP,KAAA;AACH;;;;"}
|