ouisys-engine 4.7.0-alpha.1 → 4.7.0-alpha.11
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/RemoteDataState-lcf8PfJd.js +2 -0
- package/dist/{RemoteDataState-CwHLI23e.js.map → RemoteDataState-lcf8PfJd.js.map} +1 -1
- package/dist/bupperizeCountry-CEtt0MKz.js +2 -0
- package/dist/bupperizeCountry-CEtt0MKz.js.map +1 -0
- package/dist/checkSubscriptionByRockmanIdOnly-BwR1un1L.js +2 -0
- package/dist/{checkSubscriptionByRockmanIdOnly-C89Ph9cV.js.map → checkSubscriptionByRockmanIdOnly-BwR1un1L.js.map} +1 -1
- package/dist/checkSubscriptionHander.js +1 -52
- package/dist/checkSubscriptionHander.js.map +1 -1
- package/dist/click2smsFlow.js +1 -245
- package/dist/click2smsFlow.js.map +1 -1
- package/dist/creditCardFlow.js +1 -247
- package/dist/creditCardFlow.js.map +1 -1
- package/dist/getConfig.js +1 -13
- package/dist/getConfig.js.map +1 -1
- package/dist/handleClickChainFlow.js +1 -31
- package/dist/handleClickChainFlow.js.map +1 -1
- package/dist/handleSubmitNumber.js +1 -64
- package/dist/handleSubmitNumber.js.map +1 -1
- package/dist/helpers-xPhGBX-B.js +2 -0
- package/dist/helpers-xPhGBX-B.js.map +1 -0
- package/dist/loadScriptInnerHtml-BzQm-AFb.js +2 -0
- package/dist/loadScriptInnerHtml-BzQm-AFb.js.map +1 -0
- package/dist/loadScriptSrc-Da4autZd.js +2 -0
- package/dist/loadScriptSrc-Da4autZd.js.map +1 -0
- package/dist/moFlow.js +1 -274
- package/dist/moFlow.js.map +1 -1
- package/dist/moRedirFlow.js +1 -224
- package/dist/moRedirFlow.js.map +1 -1
- package/dist/oneClickFlow.js +1 -463
- package/dist/oneClickFlow.js.map +1 -1
- package/dist/pinFlow.js +1 -696
- package/dist/pinFlow.js.map +1 -1
- package/dist/searchToObject.js +1 -18
- package/dist/searchToObject.js.map +1 -1
- package/dist/storeMsisdn-Cjq8_qYH.js +2 -0
- package/dist/{storeMsisdn-ChiBh8mI.js.map → storeMsisdn-Cjq8_qYH.js.map} +1 -1
- package/dist/strategy.js +1 -49
- package/dist/strategy.js.map +1 -1
- package/dist/strategySlice-Dw14E22-.js +2 -0
- package/dist/strategySlice-Dw14E22-.js.map +1 -0
- package/dist/tracker-DaaILhEr.js +2 -0
- package/dist/tracker-DaaILhEr.js.map +1 -0
- package/dist/tracker.js +1 -4
- package/dist/tracker.js.map +1 -1
- package/dist/tryGetIPRangeName-QW-9NgzE.js +2 -0
- package/dist/tryGetIPRangeName-QW-9NgzE.js.map +1 -0
- package/dist/types/{OneClickTypes-DF0jodl-.d.ts → OneClickTypes-DjOesaHp.d.ts} +1 -1
- package/dist/types/{StrategyTypes-BEIYqoJV.d.ts → StrategyTypes-CbOgk0N4.d.ts} +3 -2
- package/dist/types/click2smsFlow.d.ts +3 -3
- package/dist/types/handleSubmitNumber.d.ts +3 -3
- package/dist/types/oneClickFlow.d.ts +2 -2
- package/dist/types/strategy.d.ts +12 -4
- package/dist/ussdFlow.js +1 -210
- package/dist/ussdFlow.js.map +1 -1
- package/package.json +6 -6
- package/dist/RemoteDataState-CwHLI23e.js +0 -75
- package/dist/bupperizeCountry-CCDIOHP6.js +0 -4
- package/dist/bupperizeCountry-CCDIOHP6.js.map +0 -1
- package/dist/checkSubscriptionByRockmanIdOnly-C89Ph9cV.js +0 -27
- package/dist/helpers-J_h-ZgxH.js +0 -29
- package/dist/helpers-J_h-ZgxH.js.map +0 -1
- package/dist/loadScriptInnerHtml-DPcoY467.js +0 -26
- package/dist/loadScriptInnerHtml-DPcoY467.js.map +0 -1
- package/dist/storeMsisdn-ChiBh8mI.js +0 -58
- package/dist/strategySlice-bF74rxDK.js +0 -842
- package/dist/strategySlice-bF74rxDK.js.map +0 -1
- package/dist/tracker-B_zsMRN2.js +0 -79
- package/dist/tracker-B_zsMRN2.js.map +0 -1
- package/dist/tryGetIPRangeName-C69HEG5W.js +0 -42
- package/dist/tryGetIPRangeName-C69HEG5W.js.map +0 -1
package/dist/moFlow.js
CHANGED
|
@@ -1,275 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
|
|
3
|
-
import { S as Success, N as NothingYet, L as Loading, F as Failure } from './RemoteDataState-CwHLI23e.js';
|
|
4
|
-
import { s as storeMsisdn } from './storeMsisdn-ChiBh8mI.js';
|
|
5
|
-
import { t as tracker } from './tracker-B_zsMRN2.js';
|
|
6
|
-
import { c as checkSubscriptionByRockmanIdOnly } from './checkSubscriptionByRockmanIdOnly-C89Ph9cV.js';
|
|
7
|
-
import { a as loop } from './helpers-J_h-ZgxH.js';
|
|
8
|
-
import 'pacman-client';
|
|
9
|
-
import 'uuid';
|
|
10
|
-
|
|
11
|
-
var useMoFlowState = function (useSelector) {
|
|
12
|
-
var currentState = useSelector(function (state) { return state.moFlow.currentState; });
|
|
13
|
-
return currentState;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
function moFlowMatch(_a) {
|
|
17
|
-
var msisdnEntry = _a.msisdnEntry;
|
|
18
|
-
return function (state) {
|
|
19
|
-
switch (state.type) {
|
|
20
|
-
case 'MSISDNEntry':
|
|
21
|
-
return msisdnEntry(state.result);
|
|
22
|
-
default:
|
|
23
|
-
// TODO - this should be an error or something
|
|
24
|
-
return msisdnEntry(state.result);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
var triggerMessage = function (_a) {
|
|
30
|
-
var window = _a.window, slug = _a.slug, country = _a.country, msisdn = _a.msisdn, device = _a.device, offer = _a.offer, rockmanId = _a.rockmanId, extraParamsQs = _a.extraParamsQs;
|
|
31
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
32
|
-
var partnerAjaxResopnse, _b, params, queryString, host, url;
|
|
33
|
-
var _c;
|
|
34
|
-
return __generator(this, function (_d) {
|
|
35
|
-
switch (_d.label) {
|
|
36
|
-
case 0:
|
|
37
|
-
if (!window.api_ajax_url) return [3 /*break*/, 2];
|
|
38
|
-
return [4 /*yield*/, fetch(window.api_ajax_url).then(function (x) { return x.json(); })];
|
|
39
|
-
case 1:
|
|
40
|
-
_b = _d.sent();
|
|
41
|
-
return [3 /*break*/, 3];
|
|
42
|
-
case 2:
|
|
43
|
-
_b = null;
|
|
44
|
-
_d.label = 3;
|
|
45
|
-
case 3:
|
|
46
|
-
partnerAjaxResopnse = _b;
|
|
47
|
-
params = {
|
|
48
|
-
action: 'trigger-message',
|
|
49
|
-
slug: slug,
|
|
50
|
-
country: country,
|
|
51
|
-
msisdn: msisdn,
|
|
52
|
-
device: device,
|
|
53
|
-
offerId: offer,
|
|
54
|
-
rockman_id: rockmanId,
|
|
55
|
-
page: encodeURIComponent((_c = window === null || window === void 0 ? void 0 : window.location) === null || _c === void 0 ? void 0 : _c.href),
|
|
56
|
-
sam_g_token: window.reCaptchaToken || '',
|
|
57
|
-
antifraud_id: window.antifraud_id || '',
|
|
58
|
-
language_code: window.languageCode || '',
|
|
59
|
-
partner_form_action: (partnerAjaxResopnse === null || partnerAjaxResopnse === void 0 ? void 0 : partnerAjaxResopnse.form_action) ? encodeURIComponent(partnerAjaxResopnse === null || partnerAjaxResopnse === void 0 ? void 0 : partnerAjaxResopnse.form_action) : ''
|
|
60
|
-
};
|
|
61
|
-
queryString = Object.entries(params)
|
|
62
|
-
.filter(function (_a) {
|
|
63
|
-
var _b = __read(_a, 2); _b[0]; var value = _b[1];
|
|
64
|
-
return value;
|
|
65
|
-
})
|
|
66
|
-
.map(function (_a) {
|
|
67
|
-
var _b = __read(_a, 2), key = _b[0], value = _b[1];
|
|
68
|
-
return "".concat(key, "=").concat(value);
|
|
69
|
-
})
|
|
70
|
-
.join('&');
|
|
71
|
-
host = window.DEV_BASE_URL || '';
|
|
72
|
-
url = "".concat(host, "/tallyman/v1/?").concat(queryString, "&").concat(extraParamsQs);
|
|
73
|
-
return [2 /*return*/, fetch(url).then(function (x) { return x.json(); })];
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
function submitMSISDN(window, maybeConfig, internationalMSISDN, extraParams) {
|
|
80
|
-
var _a, _b;
|
|
81
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
82
|
-
var config;
|
|
83
|
-
return __generator(this, function (_c) {
|
|
84
|
-
config = __assign(__assign({}, (maybeConfig || {})), { offer: (_b = (_a = window.pac_analytics) === null || _a === void 0 ? void 0 : _a.visitor) === null || _b === void 0 ? void 0 : _b.offer });
|
|
85
|
-
return [2 /*return*/, submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams)];
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
function submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams) {
|
|
90
|
-
var _a;
|
|
91
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
92
|
-
var slug, country, device, offer, search, extraParamsQs, msisdn, rockmanId, result, type, error;
|
|
93
|
-
return __generator(this, function (_b) {
|
|
94
|
-
switch (_b.label) {
|
|
95
|
-
case 0:
|
|
96
|
-
slug = config.slug, country = config.country, device = config.device, offer = config.offer;
|
|
97
|
-
search = window.location.search.substr(1) || '';
|
|
98
|
-
extraParamsQs = !extraParams
|
|
99
|
-
? ''
|
|
100
|
-
: "&".concat(Object.keys(extraParams)
|
|
101
|
-
.map(function (k) { return "".concat(k, "=").concat(extraParams[k]); })
|
|
102
|
-
.join('&'));
|
|
103
|
-
msisdn = ((_a = internationalMSISDN.match(/\d+/gi)) === null || _a === void 0 ? void 0 : _a.join('')) || '';
|
|
104
|
-
rockmanId = window.pac_analytics.visitor.rockmanId;
|
|
105
|
-
return [4 /*yield*/, triggerMessage({
|
|
106
|
-
window: window,
|
|
107
|
-
slug: slug,
|
|
108
|
-
country: country,
|
|
109
|
-
msisdn: msisdn,
|
|
110
|
-
device: device,
|
|
111
|
-
offer: offer,
|
|
112
|
-
rockmanId: rockmanId,
|
|
113
|
-
search: search,
|
|
114
|
-
extraParamsQs: extraParamsQs
|
|
115
|
-
})];
|
|
116
|
-
case 1:
|
|
117
|
-
result = _b.sent();
|
|
118
|
-
if (result.success === false) {
|
|
119
|
-
type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMSISDN';
|
|
120
|
-
error = new Error("".concat(type, ":\n").concat(result.message));
|
|
121
|
-
error.type = type;
|
|
122
|
-
error.productUrl = result.product_url ? result.product_url : '';
|
|
123
|
-
console.error(error);
|
|
124
|
-
throw error;
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
return [2 /*return*/, __assign(__assign({}, result), { keyword: result.displayKeyword })]; // based on discussion with Chanaka to avoid confusion in set up on bupper. Click2sms and mo will use display keyword
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
function moCheckSubscription(window) {
|
|
134
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
135
|
-
var rockmanId, check, checkResult, error;
|
|
136
|
-
return __generator(this, function (_a) {
|
|
137
|
-
switch (_a.label) {
|
|
138
|
-
case 0:
|
|
139
|
-
rockmanId = window.pac_analytics.visitor.rockmanId;
|
|
140
|
-
check = function () { return checkSubscriptionByRockmanIdOnly({ window: window, rockmanId: rockmanId }); };
|
|
141
|
-
return [4 /*yield*/, loop(check, 60, function (r) { return r.success; }, 0)];
|
|
142
|
-
case 1:
|
|
143
|
-
checkResult = _a.sent();
|
|
144
|
-
if (checkResult.success === true && checkResult.product_url && checkResult.product_url !== '') {
|
|
145
|
-
window.location.href = checkResult.product_url;
|
|
146
|
-
return [2 /*return*/, checkResult.product_url];
|
|
147
|
-
}
|
|
148
|
-
error = new Error("".concat('SubscriptionFailed', ":\n").concat(checkResult.message));
|
|
149
|
-
error.type = 'SubscriptionFailed';
|
|
150
|
-
throw error;
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
var initialState = {
|
|
157
|
-
currentState: {
|
|
158
|
-
type: 'MSISDNEntry',
|
|
159
|
-
result: NothingYet()
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
/**
|
|
163
|
-
* submitMSISDNAction
|
|
164
|
-
* @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}
|
|
165
|
-
|
|
166
|
-
* Calls trigger-message api that returns a short code and key word
|
|
167
|
-
* Sets completed stated
|
|
168
|
-
*/
|
|
169
|
-
var submitMSISDNAction = createAsyncThunk('moFlow/submitMSISDNAction', function (_a, _b) {
|
|
170
|
-
var window = _a.window, msisdn = _a.msisdn, extraParams = _a.extraParams;
|
|
171
|
-
var getState = _b.getState, rejectWithValue = _b.rejectWithValue;
|
|
172
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
173
|
-
var state, config, keywordAndShortcode, ex_1, errorType;
|
|
174
|
-
return __generator(this, function (_c) {
|
|
175
|
-
switch (_c.label) {
|
|
176
|
-
case 0:
|
|
177
|
-
state = getState();
|
|
178
|
-
config = state.strategy.currentState.data.config;
|
|
179
|
-
_c.label = 1;
|
|
180
|
-
case 1:
|
|
181
|
-
_c.trys.push([1, 5, , 6]);
|
|
182
|
-
// Start Trigger Message
|
|
183
|
-
tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submitted', { msisdn: msisdn });
|
|
184
|
-
return [4 /*yield*/, submitMSISDN(window, config, msisdn, extraParams)];
|
|
185
|
-
case 2:
|
|
186
|
-
keywordAndShortcode = _c.sent();
|
|
187
|
-
tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submission-success', { msisdn: msisdn });
|
|
188
|
-
if (!(extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true')) return [3 /*break*/, 4];
|
|
189
|
-
return [4 /*yield*/, storeMsisdn(msisdn)
|
|
190
|
-
.then(function (data) {
|
|
191
|
-
if (data && data.data && data.data.success) {
|
|
192
|
-
tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');
|
|
196
|
-
}
|
|
197
|
-
})
|
|
198
|
-
.catch(function (error) {
|
|
199
|
-
tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);
|
|
200
|
-
})];
|
|
201
|
-
case 3:
|
|
202
|
-
_c.sent();
|
|
203
|
-
_c.label = 4;
|
|
204
|
-
case 4:
|
|
205
|
-
// End Store Msisdn
|
|
206
|
-
// Check For Subscription by rockman id and redirect to product url
|
|
207
|
-
moCheckSubscription(window).then(function (product_url) {
|
|
208
|
-
tracker.advancedInFlow('tallyman.v1-mo', 'sale', { msisdn: msisdn });
|
|
209
|
-
setTimeout(function () {
|
|
210
|
-
window.location.href = product_url;
|
|
211
|
-
}, 1000);
|
|
212
|
-
});
|
|
213
|
-
return [2 /*return*/, {
|
|
214
|
-
type: 'MSISDNEntry',
|
|
215
|
-
result: Success(__assign({}, keywordAndShortcode))
|
|
216
|
-
}];
|
|
217
|
-
case 5:
|
|
218
|
-
ex_1 = _c.sent();
|
|
219
|
-
console.warn(ex_1);
|
|
220
|
-
errorType = void 0;
|
|
221
|
-
switch (ex_1.type) {
|
|
222
|
-
case 'AlreadySubscribed':
|
|
223
|
-
errorType = 'AlreadySubscribed';
|
|
224
|
-
break;
|
|
225
|
-
case 'InvalidMSISDN':
|
|
226
|
-
errorType = 'InvalidMSISDN';
|
|
227
|
-
break;
|
|
228
|
-
default:
|
|
229
|
-
errorType = 'UnknownError';
|
|
230
|
-
}
|
|
231
|
-
tracker.recedeInFlow('tallyman.v1-mo', 'msisdn-submission-failure', {
|
|
232
|
-
msisdn: msisdn,
|
|
233
|
-
errorType: errorType || 'UnknownError'
|
|
234
|
-
});
|
|
235
|
-
return [2 /*return*/, rejectWithValue({
|
|
236
|
-
errorType: errorType,
|
|
237
|
-
productUrl: ex_1.productUrl
|
|
238
|
-
})];
|
|
239
|
-
case 6: return [2 /*return*/];
|
|
240
|
-
}
|
|
241
|
-
});
|
|
242
|
-
});
|
|
243
|
-
});
|
|
244
|
-
var moFlowSlice = createSlice({
|
|
245
|
-
name: 'moFlow',
|
|
246
|
-
initialState: initialState,
|
|
247
|
-
reducers: {
|
|
248
|
-
backToStartAction: function (state) {
|
|
249
|
-
tracker.recedeInFlow('tallyman.v1-mo', 'mo-state', 'requested to change phone number');
|
|
250
|
-
// TODO GO BACK TO IDENTIFY BY MSISDN BASED ON STRATEGY
|
|
251
|
-
state.currentState = { type: 'MSISDNEntry', result: NothingYet() };
|
|
252
|
-
}
|
|
253
|
-
},
|
|
254
|
-
extraReducers: function (builder) {
|
|
255
|
-
builder
|
|
256
|
-
.addCase(submitMSISDNAction.pending, function (state) {
|
|
257
|
-
state.currentState = { type: 'MSISDNEntry', result: Loading() };
|
|
258
|
-
})
|
|
259
|
-
.addCase(submitMSISDNAction.fulfilled, function (state, action) {
|
|
260
|
-
state.currentState = action.payload;
|
|
261
|
-
})
|
|
262
|
-
.addCase(submitMSISDNAction.rejected, function (state, action) {
|
|
263
|
-
state.currentState = {
|
|
264
|
-
type: 'MSISDNEntry',
|
|
265
|
-
result: Failure(action.payload)
|
|
266
|
-
};
|
|
267
|
-
});
|
|
268
|
-
}
|
|
269
|
-
});
|
|
270
|
-
// Export reducers and actions
|
|
271
|
-
var moFlowReducer = moFlowSlice.reducer, moFlowActions = moFlowSlice.actions;
|
|
272
|
-
var backToStartAction = moFlowActions.backToStartAction;
|
|
273
|
-
|
|
274
|
-
export { backToStartAction, moFlowMatch, moFlowReducer, submitMSISDNAction, useMoFlowState };
|
|
1
|
+
import{__awaiter as t,__generator as r,__read as e,__assign as n}from"tslib";import{createAsyncThunk as o,createSlice as a}from"@reduxjs/toolkit";import{S as c,N as s,L as i,F as u}from"./RemoteDataState-lcf8PfJd.js";import{searchToObject as d}from"./searchToObject.js";import{s as l}from"./storeMsisdn-Cjq8_qYH.js";import{t as m}from"./tracker-DaaILhEr.js";import{c as f}from"./checkSubscriptionByRockmanIdOnly-BwR1un1L.js";import{a as v}from"./helpers-xPhGBX-B.js";import"pacman-client";import"uuid";var p=function(t){return t((function(t){return t.moFlow.currentState}))};function y(t){var r=t.msisdnEntry;return function(t){return t.type,r(t.result)}}var S=function(n){var o=n.window,a=n.slug,c=n.country,s=n.msisdn,i=n.device,u=n.offer,d=n.rockmanId,l=n.extraParamsQs;return t(void 0,void 0,void 0,(function(){var t,n,m,f,v,p,y;return r(this,(function(r){switch(r.label){case 0:return o.api_ajax_url?[4,fetch(o.api_ajax_url).then((function(t){return t.json()}))]:[3,2];case 1:return n=r.sent(),[3,3];case 2:n=null,r.label=3;case 3:return t=n,m={action:"trigger-message",slug:a,country:c,msisdn:s,device:i,offerId:u,rockman_id:d,page:encodeURIComponent(null===(y=null==o?void 0:o.location)||void 0===y?void 0:y.href),sam_g_token:o.reCaptchaToken||"",antifraud_id:o.antifraud_id||"",language_code:o.languageCode||"",partner_form_action:(null==t?void 0:t.form_action)?encodeURIComponent(null==t?void 0:t.form_action):""},f=Object.entries(m).filter((function(t){var r=e(t,2);return r[0],r[1]})).map((function(t){var r=e(t,2),n=r[0],o=r[1];return"".concat(n,"=").concat(o)})).join("&"),v=o.DEV_BASE_URL||"",p="".concat(v,"/tallyman/v1/?").concat(f,"&").concat(l),[2,fetch(p).then((function(t){return t.json()}))]}}))}))};function w(e,o,a,c){var s,i;return t(this,void 0,void 0,(function(){var t;return r(this,(function(r){return t=n(n({},o||{}),{offer:null===(i=null===(s=e.pac_analytics)||void 0===s?void 0:s.visitor)||void 0===i?void 0:i.offer}),[2,h(e,t,a,c)]}))}))}function h(e,o,a,c){var s;return t(this,void 0,void 0,(function(){var t,i,u,d,l,m,f,v,p,y,w;return r(this,(function(r){switch(r.label){case 0:return t=o.slug,i=o.country,u=o.device,d=o.offer,l=e.location.search.substr(1)||"",m=c?"&".concat(Object.keys(c).map((function(t){return"".concat(t,"=").concat(c[t])})).join("&")):"",f=(null===(s=a.match(/\d+/gi))||void 0===s?void 0:s.join(""))||"",v=e.pac_analytics.visitor.rockmanId,[4,S({window:e,slug:t,country:i,msisdn:f,device:u,offer:d,rockmanId:v,search:l,extraParamsQs:m})];case 1:if(!1===(p=r.sent()).success)throw y="ALREADY SUBSCRIBED"===p.message?"AlreadySubscribed":"InvalidMSISDN",(w=new Error("".concat(y,":\n").concat(p.message))).type=y,w.productUrl=p.product_url?p.product_url:"",console.error(w),w;return[2,n(n({},p),{keyword:p.displayKeyword})]}}))}))}var b={currentState:{type:"MSISDNEntry",result:c({keyword:"TEST OK",shortcode:"777"})}},I={currentState:{type:"MSISDNEntry",result:u({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},_={currentState:{type:"MSISDNEntry",result:s()}},g=function(t){var r=d(t);if(!r["mock-flow"])return _;switch(r["current-state"]){case"msisdn-entry-failure-state":return I;case"msisdn-entry-success-state":return b;default:return console.error("Mock Flow not supported"),_}}(window),k=o("moFlow/submitMSISDNAction",(function(e,o){var a=e.window,s=e.msisdn,i=e.extraParams,u=o.getState,d=o.rejectWithValue;return t(void 0,void 0,void 0,(function(){var e,o,p,y,S,h,b,I;return r(this,(function(_){switch(_.label){case 0:if(e=u(),!(null===(I=null===(b=null===(h=null==e?void 0:e.strategy)||void 0===h?void 0:h.currentState)||void 0===b?void 0:b.data)||void 0===I?void 0:I.config))return[2,d({errorType:"UnexpectedState"})];o=e.strategy.currentState.data.config,_.label=1;case 1:return _.trys.push([1,5,,6]),m.advancedInFlow("tallyman.v1-mo","msisdn-submitted",{msisdn:s}),[4,w(a,o,s,i)];case 2:return p=_.sent(),m.advancedInFlow("tallyman.v1-mo","msisdn-submission-success",{msisdn:s}),i&&i.storeMsisdn&&"true"===i.storeMsisdn?[4,l(s).then((function(t){t&&t.data&&t.data.success?m.customEvent("Flow","advance-auto","msisdn-stored-success"):m.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(t){m.customEvent("Flow","advance-auto","msisdn-stored-error",t)}))]:[3,4];case 3:_.sent(),_.label=4;case 4:return function(e){return t(this,void 0,void 0,(function(){var t,n,o;return r(this,(function(r){switch(r.label){case 0:return t=e.pac_analytics.visitor.rockmanId,[4,v((function(){return f({window:e,rockmanId:t})}),60,(function(t){return t.success}),0)];case 1:if(!0===(n=r.sent()).success&&n.product_url&&""!==n.product_url)return e.location.href=n.product_url,[2,n.product_url];throw(o=new Error("".concat("SubscriptionFailed",":\n").concat(n.message))).type="SubscriptionFailed",o}}))}))}(a).then((function(t){m.advancedInFlow("tallyman.v1-mo","sale",{msisdn:s}),setTimeout((function(){a.location.href=t}),1e3)})),[2,{type:"MSISDNEntry",result:c(n({},p))}];case 5:switch(y=_.sent(),console.warn(y),S=void 0,y.type){case"AlreadySubscribed":S="AlreadySubscribed";break;case"InvalidMSISDN":S="InvalidMSISDN";break;default:S="UnknownError"}return m.recedeInFlow("tallyman.v1-mo","msisdn-submission-failure",{msisdn:s,errorType:S||"UnknownError"}),[2,d({errorType:S,productUrl:y.productUrl})];case 6:return[2]}}))}))})),E=a({name:"moFlow",initialState:g,reducers:{backToStartAction:function(t){m.recedeInFlow("tallyman.v1-mo","mo-state","requested to change phone number"),t.currentState={type:"MSISDNEntry",result:s()}}},extraReducers:function(t){t.addCase(k.pending,(function(t){t.currentState={type:"MSISDNEntry",result:i()}})).addCase(k.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(k.rejected,(function(t,r){t.currentState={type:"MSISDNEntry",result:u(r.payload)}}))}}),j=E.reducer,M=E.actions.backToStartAction;export{M as backToStartAction,y as moFlowMatch,j as moFlowReducer,k as submitMSISDNAction,p as useMoFlowState};
|
|
275
2
|
//# sourceMappingURL=moFlow.js.map
|
package/dist/moFlow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moFlow.js","sources":["../src/flows/moFlow/hooks/useMoFlowState.ts","../src/flows/moFlow/match.ts","../src/flows/moFlow/api.ts","../src/flows/moFlow/main.ts","../src/flows/moFlow/moFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useMoFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.moFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport { MoFlowCurrentState, MSISDNEntryFailure, MSISDNEntrySuccess } from '../../sharedFlowTypes/MoTypes';\n\nfunction moFlowMatch<R>({\n msisdnEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n}): (state: MoFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n default:\n // TODO - this should be an error or something\n return msisdnEntry(state.result);\n }\n };\n}\n\nexport { moFlowMatch };\n","import { IGoogleReCaptcha, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\n\nconst getGoogleCaptcha = async (\n window: Window,\n country: string,\n slug: string,\n device: string,\n domain: string\n): Promise<IGoogleReCaptcha> => {\n const host = (window as Window).DEV_BASE_URL || '';\n\n return fetch(\n `${host}/tallyman/helper/?action=google-captcha-v3-config&country=${country}&slug=${slug}&device=${device}&domain=${domain}`\n ).then((x) => x.json());\n};\n\nconst triggerMessage = async ({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n extraParamsQs\n}: {\n window: Window;\n slug: string;\n country: string;\n msisdn: string;\n device: string;\n offer: string;\n rockmanId: string;\n search: string;\n extraParamsQs: string;\n}): Promise<IMSISDNSubmissionResult> => {\n // introduced https://www.notion.so/sammedia/CH-Agency-Bodkinco-Integration-ea1600ad175f451a9d351b6763ad7992\n const partnerAjaxResopnse: {\n form_action: string;\n } = window.api_ajax_url ? await fetch(window.api_ajax_url).then((x) => x.json()) : null;\n\n const params = {\n action: 'trigger-message',\n slug,\n country,\n msisdn,\n device,\n offerId: offer,\n rockman_id: rockmanId,\n page: encodeURIComponent(window?.location?.href),\n sam_g_token: window.reCaptchaToken || '',\n antifraud_id: window.antifraud_id || '',\n language_code: window.languageCode || '',\n partner_form_action: partnerAjaxResopnse?.form_action ? encodeURIComponent(partnerAjaxResopnse?.form_action) : ''\n };\n\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}&${extraParamsQs}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nexport { getGoogleCaptcha, triggerMessage };\n","import { ICheckSubscriptionResult } from '../../common-types/ICheckSubscriptionResult';\nimport { IError } from '../../common-types/IError';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport { IConfig } from '../../common-types/Strategy';\nimport { checkSubscriptionByRockmanIdOnly } from '../../sharedApi/checkSubscriptionByRockmanIdOnly';\nimport {\n IGoogleReCaptcha,\n IKeywordShortcode,\n IMSISDNSubmissionResult,\n MoFlowState,\n MSISDNEntryFailure,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoTypes';\nimport { loop } from '../../utilities/helpers';\nimport loadScriptSrc from '../../utilities/loadScriptSrc';\nimport { getGoogleCaptcha, triggerMessage } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const config: any = { ...(maybeConfig || {}), offer: window.pac_analytics?.visitor?.offer };\n return submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams);\n}\n\nexport const getGoogleReCaptchaConfig = async ({\n window,\n slug,\n country,\n device\n}: IConfig & { window: Window }): Promise<IGoogleReCaptcha> => {\n const domain = window.location.hostname;\n const result: IGoogleReCaptcha = await getGoogleCaptcha(window, country, slug, device, domain);\n if (result.success === true) {\n const srcUrl = `https://www.google.com/recaptcha/api.js?render=${result.site_key}`;\n loadScriptSrc({ url: srcUrl, key: result.site_key, isRecaptcha: true });\n }\n return result;\n};\n\nexport async function submitMSISDNWithConfig(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const { slug, country, device, offer } = config;\n const search = window.location.search.substr(1) || '';\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || '';\n const { rockmanId } = window.pac_analytics.visitor;\n\n const result: IMSISDNSubmissionResult = await triggerMessage({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n search,\n extraParamsQs\n });\n\n if (result.success === false) {\n const type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMSISDN';\n const error = new Error(`${type}:\\n${result.message}`) as IError & { type: string; productUrl: string };\n error.type = type;\n error.productUrl = result.product_url ? result.product_url : '';\n\n console.error(error);\n throw error;\n } else {\n return { ...result, keyword: result.displayKeyword }; // based on discussion with Chanaka to avoid confusion in set up on bupper. Click2sms and mo will use display keyword\n }\n}\n\nexport async function moCheckSubscription(window: Window): Promise<string> {\n const { rockmanId } = window.pac_analytics.visitor;\n const check: () => Promise<ICheckSubscriptionResult> = () => checkSubscriptionByRockmanIdOnly({ window, rockmanId });\n\n const checkResult: ICheckSubscriptionResult = await loop(check, 60, (r) => r.success, 0);\n\n if (checkResult.success === true && checkResult.product_url && checkResult.product_url !== '') {\n window.location.href = checkResult.product_url;\n return checkResult.product_url;\n }\n const error = new Error(`${'SubscriptionFailed'}:\\n${checkResult.message}`) as IError & { type: string };\n error.type = 'SubscriptionFailed';\n throw error;\n}\n\n// export const formatSMSLink = (keywordAndShortcode: IKeywordShortcode) =>\n// !!window.pac_analytics.visitor['x-requested-with'] &&\n// window.pac_analytics.visitor['x-requested-with'] !== null &&\n// window.pac_analytics.visitor['x-requested-with'].indexOf('com.facebook') !== -1\n// ? `sms://${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`\n// : typeof navigator !== 'undefined' && (/iPhone/i.test(navigator.userAgent) || /Mac OS/i.test(navigator.userAgent))\n// ? `sms:${keywordAndShortcode.shortcode}&body=${keywordAndShortcode.keyword}`\n// : `sms:${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`;\n\nexport const mockedMSISDNEntrySuccess: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n keyword: 'TEST OK',\n shortcode: '777'\n })\n }\n};\n\nexport const mockedMSISDNEntryFailure: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoTypes';\nimport { RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport submitMSISDN, { moCheckSubscription } from './main';\n\nexport interface MoFlowState {\n currentState: {\n type: 'MSISDNEntry';\n result: RDS.RemoteDataState<any, any>; // Replace any with your specific error and data types\n };\n}\n\nconst initialState: MoFlowState = {\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 trigger-message api that returns a short code and key word\n * Sets completed stated\n */\nexport const submitMSISDNAction = createAsyncThunk<\n MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure;\n }\n>('moFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n\n const { config } = state.strategy.currentState.data;\n\n try {\n // Start Trigger Message\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submitted', { msisdn });\n const keywordAndShortcode = await submitMSISDN(window, config, msisdn, extraParams);\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submission-success', { msisdn });\n // End Trigger Message\n\n // Start Store Msisdn\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End Store Msisdn\n\n // Check For Subscription by rockman id and redirect to product url\n moCheckSubscription(window).then((product_url) => {\n tracker.advancedInFlow('tallyman.v1-mo', 'sale', { msisdn });\n setTimeout(() => {\n window.location.href = product_url;\n }, 1000);\n });\n\n return {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({ ...keywordAndShortcode })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: MSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n default:\n errorType = 'UnknownError';\n }\n\n tracker.recedeInFlow('tallyman.v1-mo', 'msisdn-submission-failure', {\n msisdn,\n errorType: errorType || 'UnknownError'\n });\n\n return rejectWithValue({\n errorType,\n productUrl: ex.productUrl\n });\n }\n});\n\nconst moFlowSlice = createSlice({\n name: 'moFlow',\n initialState,\n reducers: {\n backToStartAction(state) {\n tracker.recedeInFlow('tallyman.v1-mo', 'mo-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: moFlowReducer, actions: moFlowActions } = moFlowSlice;\nexport const { backToStartAction } = moFlowActions;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectMoFlowState = (state: any) => state.moFlow;\n"],"names":["RDS.NothingYet","RDS.Success","RDS.Loading","RDS.Failure"],"mappings":";;;;;;;;;;AAGO,IAAM,cAAc,GAAG,UAAC,WAAgC,EAAA;AAC7D,IAAA,IAAM,YAAY,GAAG,WAAW,CAAC,UAAC,KAAgB,EAAK,EAAA,OAAA,KAAK,CAAC,MAAM,CAAC,YAAY,CAAzB,EAAyB,CAAC,CAAC;AAClF,IAAA,OAAO,YAAY,CAAC;AACtB;;ACHA,SAAS,WAAW,CAAI,EAIvB,EAAA;AAHC,IAAA,IAAA,WAAW,GAAA,EAAA,CAAA,WAAA,CAAA;AAIX,IAAA,OAAO,UAAC,KAAK,EAAA;QACX,QAAQ,KAAK,CAAC,IAAI;AAChB,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACnC,YAAA;;AAEE,gBAAA,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpC,SAAA;AACH,KAAC,CAAC;AACJ;;ACDA,IAAM,cAAc,GAAG,UAAO,EAmB7B,EAAA;QAlBC,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,aAAa,GAAA,EAAA,CAAA,aAAA,CAAA;;;;;;;yBAeT,MAAM,CAAC,YAAY,EAAnB,OAAmB,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;oBAAG,OAAM,CAAA,CAAA,YAAA,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,CAAC,IAAI,EAAE,CAAR,EAAQ,CAAC,CAAA,CAAA;;AAAtD,oBAAA,EAAA,GAAA,SAAsD,CAAA;;;AAAG,oBAAA,EAAA,GAAA,IAAI,CAAA;;;AAFjF,oBAAA,mBAAmB,GAE8D,EAAA,CAAA;AAEjF,oBAAA,MAAM,GAAG;AACb,wBAAA,MAAM,EAAE,iBAAiB;AACzB,wBAAA,IAAI,EAAA,IAAA;AACJ,wBAAA,OAAO,EAAA,OAAA;AACP,wBAAA,MAAM,EAAA,MAAA;AACN,wBAAA,MAAM,EAAA,MAAA;AACN,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,UAAU,EAAE,SAAS;AACrB,wBAAA,IAAI,EAAE,kBAAkB,CAAC,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC;AAChD,wBAAA,WAAW,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE;AACxC,wBAAA,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;AACvC,wBAAA,aAAa,EAAE,MAAM,CAAC,YAAY,IAAI,EAAE;wBACxC,mBAAmB,EAAE,CAAA,mBAAmB,KAAnB,IAAA,IAAA,mBAAmB,uBAAnB,mBAAmB,CAAE,WAAW,IAAG,kBAAkB,CAAC,mBAAmB,KAAnB,IAAA,IAAA,mBAAmB,KAAnB,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,mBAAmB,CAAE,WAAW,CAAC,GAAG,EAAE;qBAClH,CAAC;AAEI,oBAAA,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;yBACvC,MAAM,CAAC,UAAC,EAAU,EAAA;AAAV,wBAAA,IAAA,EAAA,GAAA,aAAU,CAAT,CAAC,EAAA,CAAA,CAAA,CAAA,CAAA,KAAE,KAAK,GAAA,EAAA,CAAA,CAAA,EAAA;AAAM,wBAAA,OAAA,KAAK,CAAA;AAAL,qBAAK,CAAC;yBAC7B,GAAG,CAAC,UAAC,EAAY,EAAA;AAAZ,wBAAA,IAAA,EAAA,GAAA,aAAY,EAAX,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AAAM,wBAAA,OAAA,EAAG,CAAA,MAAA,CAAA,GAAG,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,KAAK,CAAE,CAAA;AAAjB,qBAAiB,CAAC;yBACxC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEP,oBAAA,IAAI,GAAI,MAAiB,CAAC,YAAY,IAAI,EAAE,CAAC;oBAC7C,GAAG,GAAG,UAAG,IAAI,EAAA,gBAAA,CAAA,CAAA,MAAA,CAAiB,WAAW,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,aAAa,CAAE,CAAC;AAEnE,oBAAA,OAAA,CAAA,CAAA,aAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,CAAC,IAAI,EAAE,CAAR,EAAQ,CAAC,CAAC,CAAA;;;;CACzC;;AChDa,SAAgB,YAAY,CACxC,MAAc,EACd,WAAoB,EACpB,mBAA2B,EAC3B,WAAuC,EAAA;;;;;AAEjC,YAAA,MAAM,0BAAc,WAAW,IAAI,EAAE,MAAG,KAAK,EAAE,MAAA,CAAA,EAAA,GAAA,MAAM,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,GAAE,CAAC;YAC5F,OAAO,CAAA,CAAA,aAAA,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAA;;;AACjF,CAAA;AAiBK,SAAgB,sBAAsB,CAC1C,MAAc,EACd,MAAe,EACf,mBAA2B,EAC3B,WAAuC,EAAA;;;;;;;AAE/B,oBAAA,IAAI,GAA6B,MAAM,CAAA,IAAnC,EAAE,OAAO,GAAoB,MAAM,CAA1B,OAAA,EAAE,MAAM,GAAY,MAAM,CAAlB,MAAA,EAAE,KAAK,GAAK,MAAM,MAAX,CAAY;AAC1C,oBAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAChD,aAAa,GAAG,CAAC,WAAW;AAChC,0BAAE,EAAE;AACJ,0BAAE,GAAI,CAAA,MAAA,CAAA,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AACzB,6BAAA,GAAG,CAAC,UAAC,CAAC,EAAA,EAAK,OAAA,EAAG,CAAA,MAAA,CAAA,CAAC,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,WAAW,CAAC,CAAC,CAAC,CAAE,CAAA,EAAA,CAAC;AACpC,6BAAA,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC;AACb,oBAAA,MAAM,GAAG,CAAA,CAAA,EAAA,GAAA,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,EAAE,CAAC,KAAI,EAAE,CAAC;AAC1D,oBAAA,SAAS,GAAK,MAAM,CAAC,aAAa,CAAC,OAAO,UAAjC,CAAkC;AAEX,oBAAA,OAAA,CAAA,CAAA,YAAM,cAAc,CAAC;AAC3D,4BAAA,MAAM,EAAA,MAAA;AACN,4BAAA,IAAI,EAAA,IAAA;AACJ,4BAAA,OAAO,EAAA,OAAA;AACP,4BAAA,MAAM,EAAA,MAAA;AACN,4BAAA,MAAM,EAAA,MAAA;AACN,4BAAA,KAAK,EAAA,KAAA;AACL,4BAAA,SAAS,EAAA,SAAA;AACT,4BAAA,MAAM,EAAA,MAAA;AACN,4BAAA,aAAa,EAAA,aAAA;AACd,yBAAA,CAAC,CAAA,CAAA;;AAVI,oBAAA,MAAM,GAA4B,EAUtC,CAAA,IAAA,EAAA,CAAA;AAEF,oBAAA,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;AACtB,wBAAA,IAAI,GAAG,MAAM,CAAC,OAAO,KAAK,oBAAoB,GAAG,mBAAmB,GAAG,eAAe,CAAC;AACvF,wBAAA,KAAK,GAAG,IAAI,KAAK,CAAC,EAAG,CAAA,MAAA,CAAA,IAAI,EAAM,KAAA,CAAA,CAAA,MAAA,CAAA,MAAM,CAAC,OAAO,CAAE,CAAkD,CAAC;AACxG,wBAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;AAClB,wBAAA,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;AAEhE,wBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrB,wBAAA,MAAM,KAAK,CAAC;AACb,qBAAA;AAAM,yBAAA;wBACL,OAAY,CAAA,CAAA,aAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,MAAM,KAAE,OAAO,EAAE,MAAM,CAAC,cAAc,EAAG,CAAA,CAAA,CAAA;AACtD,qBAAA;;;;AACF,CAAA;AAEK,SAAgB,mBAAmB,CAAC,MAAc,EAAA;;;;;;AAC9C,oBAAA,SAAS,GAAK,MAAM,CAAC,aAAa,CAAC,OAAO,UAAjC,CAAkC;AAC7C,oBAAA,KAAK,GAA4C,YAAA,EAAM,OAAA,gCAAgC,CAAC,EAAE,MAAM,EAAA,MAAA,EAAE,SAAS,EAAA,SAAA,EAAE,CAAC,CAAA,EAAA,CAAC;AAEvE,oBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,UAAC,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,OAAO,CAAA,EAAA,EAAE,CAAC,CAAC,CAAA,CAAA;;AAAlF,oBAAA,WAAW,GAA6B,EAA0C,CAAA,IAAA,EAAA,CAAA;AAExF,oBAAA,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,IAAI,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,KAAK,EAAE,EAAE;wBAC7F,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC,WAAW,CAAC;wBAC/C,OAAO,CAAA,CAAA,aAAA,WAAW,CAAC,WAAW,CAAC,CAAA;AAChC,qBAAA;AACK,oBAAA,KAAK,GAAG,IAAI,KAAK,CAAC,EAAG,CAAA,MAAA,CAAA,oBAAoB,EAAM,KAAA,CAAA,CAAA,MAAA,CAAA,WAAW,CAAC,OAAO,CAAE,CAA8B,CAAC;AACzG,oBAAA,KAAK,CAAC,IAAI,GAAG,oBAAoB,CAAC;AAClC,oBAAA,MAAM,KAAK,CAAC;;;;AACb;;AC3ED,IAAM,YAAY,GAAgB;AAChC,IAAA,YAAY,EAAE;AACZ,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,MAAM,EAAEA,UAAc,EAAE;AACzB,KAAA;CACF,CAAC;AAOF;;;;;;AAMG;AACU,IAAA,kBAAkB,GAAG,gBAAgB,CAMhD,2BAA2B,EAAE,UAAO,EAA+B,EAAE,EAA6B,EAAA;AAA5D,IAAA,IAAA,MAAM,YAAA,EAAE,MAAM,GAAA,EAAA,CAAA,MAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAA,CAAA;QAAM,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,eAAe,GAAA,EAAA,CAAA,eAAA,CAAA;;;;;;oBAC1F,KAAK,GAAc,QAAQ,EAAE,CAAC;oBAE5B,MAAM,GAAK,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAA,MAArC,CAAsC;;;;;AAIlD,oBAAA,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAA,MAAA,EAAE,CAAC,CAAC;oBAC7C,OAAM,CAAA,CAAA,YAAA,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA,CAAA;;AAA7E,oBAAA,mBAAmB,GAAG,EAAuD,CAAA,IAAA,EAAA,CAAA;AACnF,oBAAA,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,EAAE,MAAM,EAAA,MAAA,EAAE,CAAC,CAAC;AAK9E,oBAAA,IAAA,EAAA,WAAW,IAAI,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,KAAK,MAAM,CAAA,EAA5E,OAA4E,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;oBAC9E,OAAM,CAAA,CAAA,YAAA,WAAW,CAAC,MAAM,CAAC;6BACtB,IAAI,CAAC,UAAC,IAAS,EAAA;4BACd,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gCAC1C,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,uBAAuB,CAAC,CAAC;AACtE,6BAAA;AAAM,iCAAA;gCACL,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,sBAAsB,CAAC,CAAC;AACrE,6BAAA;AACH,yBAAC,CAAC;6BACD,KAAK,CAAC,UAAC,KAAK,EAAA;4BACX,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;AAC5E,yBAAC,CAAC,CAAA,CAAA;;AAVJ,oBAAA,EAAA,CAAA,IAAA,EAUI,CAAC;;;;;AAKP,oBAAA,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,WAAW,EAAA;AAC3C,wBAAA,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAA,MAAA,EAAE,CAAC,CAAC;AAC7D,wBAAA,UAAU,CAAC,YAAA;AACT,4BAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;yBACpC,EAAE,IAAI,CAAC,CAAC;AACX,qBAAC,CAAC,CAAC;oBAEH,OAAO,CAAA,CAAA,aAAA;AACL,4BAAA,IAAI,EAAE,aAAa;AACnB,4BAAA,MAAM,EAAEC,OAAW,CAAA,QAAA,CAAA,EAAA,EAA8C,mBAAmB,CAAG,CAAA;yBACxF,CAAC,CAAA;;;AAEF,oBAAA,OAAO,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC;AACb,oBAAA,SAAS,SAAuB,CAAC;oBACrC,QAAQ,IAAE,CAAC,IAAI;AACb,wBAAA,KAAK,mBAAmB;4BACtB,SAAS,GAAG,mBAAmB,CAAC;4BAChC,MAAM;AACR,wBAAA,KAAK,eAAe;4BAClB,SAAS,GAAG,eAAe,CAAC;4BAC5B,MAAM;AACR,wBAAA;4BACE,SAAS,GAAG,cAAc,CAAC;AAC9B,qBAAA;AAED,oBAAA,OAAO,CAAC,YAAY,CAAC,gBAAgB,EAAE,2BAA2B,EAAE;AAClE,wBAAA,MAAM,EAAA,MAAA;wBACN,SAAS,EAAE,SAAS,IAAI,cAAc;AACvC,qBAAA,CAAC,CAAC;AAEH,oBAAA,OAAA,CAAA,CAAA,aAAO,eAAe,CAAC;AACrB,4BAAA,SAAS,EAAA,SAAA;4BACT,UAAU,EAAE,IAAE,CAAC,UAAU;AAC1B,yBAAA,CAAC,CAAC,CAAA;;;;;AAEN,CAAA,EAAE;AAEH,IAAM,WAAW,GAAG,WAAW,CAAC;AAC9B,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,YAAY,EAAA,YAAA;AACZ,IAAA,QAAQ,EAAE;AACR,QAAA,iBAAiB,YAAC,KAAK,EAAA;YACrB,OAAO,CAAC,YAAY,CAAC,gBAAgB,EAAE,UAAU,EAAE,kCAAkC,CAAC,CAAC;;AAGvF,YAAA,KAAK,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAED,UAAc,EAAE,EAAE,CAAC;SACxE;AACF,KAAA;IACD,aAAa,EAAE,UAAC,OAAO,EAAA;QACrB,OAAO;AACJ,aAAA,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,UAAC,KAAK,EAAA;AACzC,YAAA,KAAK,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAEE,OAAW,EAAE,EAAE,CAAC;AACtE,SAAC,CAAC;aACD,OAAO,CAAC,kBAAkB,CAAC,SAAS,EAAE,UAAC,KAAK,EAAE,MAAuC,EAAA;AACpF,YAAA,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;AACtC,SAAC,CAAC;aACD,OAAO,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAC,KAAK,EAAE,MAAyC,EAAA;YACrF,KAAK,CAAC,YAAY,GAAG;AACnB,gBAAA,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAEC,OAAW,CAAC,MAAM,CAAC,OAAO,CAAC;aACpC,CAAC;AACJ,SAAC,CAAC,CAAC;KACN;AACF,CAAA,CAAC,CAAC;AAEH;AACwB,IAAA,aAAa,GAA6B,WAAW,CAAxC,OAAA,CAAA,CAAW,aAAa,GAAK,WAAW,CAAA,QAAC;AAC/D,IAAA,iBAAiB,GAAK,aAAa;;;;"}
|
|
1
|
+
{"version":3,"file":"moFlow.js","sources":["../src/flows/moFlow/hooks/useMoFlowState.ts","../src/flows/moFlow/match.ts","../src/flows/moFlow/api.ts","../src/flows/moFlow/main.ts","../src/flows/moFlow/moFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useMoFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.moFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport { MoFlowCurrentState, MSISDNEntryFailure, MSISDNEntrySuccess } from '../../sharedFlowTypes/MoTypes';\n\nfunction moFlowMatch<R>({\n msisdnEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n}): (state: MoFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n default:\n // TODO - this should be an error or something\n return msisdnEntry(state.result);\n }\n };\n}\n\nexport { moFlowMatch };\n","import { IGoogleReCaptcha, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\n\nconst getGoogleCaptcha = async (\n window: Window,\n country: string,\n slug: string,\n device: string,\n domain: string\n): Promise<IGoogleReCaptcha> => {\n const host = (window as Window).DEV_BASE_URL || '';\n\n return fetch(\n `${host}/tallyman/helper/?action=google-captcha-v3-config&country=${country}&slug=${slug}&device=${device}&domain=${domain}`\n ).then((x) => x.json());\n};\n\nconst triggerMessage = async ({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n extraParamsQs\n}: {\n window: Window;\n slug: string;\n country: string;\n msisdn: string;\n device: string;\n offer: string;\n rockmanId: string;\n search: string;\n extraParamsQs: string;\n}): Promise<IMSISDNSubmissionResult> => {\n // introduced https://www.notion.so/sammedia/CH-Agency-Bodkinco-Integration-ea1600ad175f451a9d351b6763ad7992\n const partnerAjaxResopnse: {\n form_action: string;\n } = window.api_ajax_url ? await fetch(window.api_ajax_url).then((x) => x.json()) : null;\n\n const params = {\n action: 'trigger-message',\n slug,\n country,\n msisdn,\n device,\n offerId: offer,\n rockman_id: rockmanId,\n page: encodeURIComponent(window?.location?.href),\n sam_g_token: window.reCaptchaToken || '',\n antifraud_id: window.antifraud_id || '',\n language_code: window.languageCode || '',\n partner_form_action: partnerAjaxResopnse?.form_action ? encodeURIComponent(partnerAjaxResopnse?.form_action) : ''\n };\n\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}&${extraParamsQs}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nexport { getGoogleCaptcha, triggerMessage };\n","import { ICheckSubscriptionResult } from '../../common-types/ICheckSubscriptionResult';\nimport { IError } from '../../common-types/IError';\nimport { IConfig } from '../../common-types/Strategy';\nimport { checkSubscriptionByRockmanIdOnly } from '../../sharedApi/checkSubscriptionByRockmanIdOnly';\nimport { IGoogleReCaptcha, IKeywordShortcode, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\nimport { loop } from '../../utilities/helpers';\nimport loadScriptSrc from '../../utilities/loadScriptSrc';\nimport { getGoogleCaptcha, triggerMessage } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const config: any = { ...(maybeConfig || {}), offer: window.pac_analytics?.visitor?.offer };\n return submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams);\n}\n\nexport const getGoogleReCaptchaConfig = async ({\n window,\n slug,\n country,\n device\n}: IConfig & { window: Window }): Promise<IGoogleReCaptcha> => {\n const domain = window.location.hostname;\n const result: IGoogleReCaptcha = await getGoogleCaptcha(window, country, slug, device, domain);\n if (result.success === true) {\n const srcUrl = `https://www.google.com/recaptcha/api.js?render=${result.site_key}`;\n loadScriptSrc({ url: srcUrl, key: result.site_key, isRecaptcha: true });\n }\n return result;\n};\n\nexport async function submitMSISDNWithConfig(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const { slug, country, device, offer } = config;\n const search = window.location.search.substr(1) || '';\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || '';\n const { rockmanId } = window.pac_analytics.visitor;\n\n const result: IMSISDNSubmissionResult = await triggerMessage({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n search,\n extraParamsQs\n });\n\n if (result.success === false) {\n const type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMSISDN';\n const error = new Error(`${type}:\\n${result.message}`) as IError & { type: string; productUrl: string };\n error.type = type;\n error.productUrl = result.product_url ? result.product_url : '';\n\n console.error(error);\n throw error;\n } else {\n return { ...result, keyword: result.displayKeyword }; // based on discussion with Chanaka to avoid confusion in set up on bupper. Click2sms and mo will use display keyword\n }\n}\n\nexport async function moCheckSubscription(window: Window): Promise<string> {\n const { rockmanId } = window.pac_analytics.visitor;\n const check: () => Promise<ICheckSubscriptionResult> = () => checkSubscriptionByRockmanIdOnly({ window, rockmanId });\n\n const checkResult: ICheckSubscriptionResult = await loop(check, 60, (r) => r.success, 0);\n\n if (checkResult.success === true && checkResult.product_url && checkResult.product_url !== '') {\n window.location.href = checkResult.product_url;\n return checkResult.product_url;\n }\n const error = new Error(`${'SubscriptionFailed'}:\\n${checkResult.message}`) as IError & { type: string };\n error.type = 'SubscriptionFailed';\n throw error;\n}\n\n// export const formatSMSLink = (keywordAndShortcode: IKeywordShortcode) =>\n// !!window.pac_analytics.visitor['x-requested-with'] &&\n// window.pac_analytics.visitor['x-requested-with'] !== null &&\n// window.pac_analytics.visitor['x-requested-with'].indexOf('com.facebook') !== -1\n// ? `sms://${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`\n// : typeof navigator !== 'undefined' && (/iPhone/i.test(navigator.userAgent) || /Mac OS/i.test(navigator.userAgent))\n// ? `sms:${keywordAndShortcode.shortcode}&body=${keywordAndShortcode.keyword}`\n// : `sms:${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`;\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoTypes';\nimport { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport submitMSISDN, { moCheckSubscription } from './main';\n\nexport const mockedMSISDNEntrySuccess: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n keyword: 'TEST OK',\n shortcode: '777'\n })\n }\n};\n\nexport const mockedMSISDNEntryFailure: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\nexport interface MoFlowState {\n currentState: {\n type: 'MSISDNEntry';\n result: RDS.RemoteDataState<any, any>; // Replace any with your specific error and data types\n };\n}\n\nconst defaultInitialState: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'msisdn-entry-failure-state':\n return mockedMSISDNEntryFailure;\n case 'msisdn-entry-success-state':\n return mockedMSISDNEntrySuccess;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}\n \n * Calls trigger-message api that returns a short code and key word\n * Sets completed stated\n */\nexport const submitMSISDNAction = createAsyncThunk<\n MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure;\n }\n>('moFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n const { config } = state.strategy.currentState.data;\n\n try {\n // Start Trigger Message\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submitted', { msisdn });\n const keywordAndShortcode = await submitMSISDN(window, config, msisdn, extraParams);\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submission-success', { msisdn });\n // End Trigger Message\n\n // Start Store Msisdn\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End Store Msisdn\n\n // Check For Subscription by rockman id and redirect to product url\n moCheckSubscription(window).then((product_url) => {\n tracker.advancedInFlow('tallyman.v1-mo', 'sale', { msisdn });\n setTimeout(() => {\n window.location.href = product_url;\n }, 1000);\n });\n\n return {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({ ...keywordAndShortcode })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: MSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n default:\n errorType = 'UnknownError';\n }\n\n tracker.recedeInFlow('tallyman.v1-mo', 'msisdn-submission-failure', {\n msisdn,\n errorType: errorType || 'UnknownError'\n });\n\n return rejectWithValue({\n errorType,\n productUrl: ex.productUrl\n });\n }\n});\n\nconst moFlowSlice = createSlice({\n name: 'moFlow',\n initialState,\n reducers: {\n backToStartAction(state) {\n tracker.recedeInFlow('tallyman.v1-mo', 'mo-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: moFlowReducer, actions: moFlowActions } = moFlowSlice;\nexport const { backToStartAction } = moFlowActions;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectMoFlowState = (state: any) => state.moFlow;\n"],"names":["useMoFlowState","useSelector","state","moFlow","currentState","moFlowMatch","_a","msisdnEntry","type","result","triggerMessage","window","slug","country","msisdn","device","offer","rockmanId","extraParamsQs","api_ajax_url","fetch","then","x","json","_b","_d","partnerAjaxResopnse","params","action","offerId","rockman_id","page","encodeURIComponent","_c","location","href","sam_g_token","reCaptchaToken","antifraud_id","language_code","languageCode","partner_form_action","form_action","queryString","Object","entries","filter","__read","map","key","value","concat","join","host","DEV_BASE_URL","url","submitMSISDN","maybeConfig","internationalMSISDN","extraParams","config","pac_analytics","visitor","submitMSISDNWithConfig","search","substr","keys","k","match","sent","success","message","error","Error","productUrl","product_url","console","__assign","keyword","displayKeyword","mockedMSISDNEntrySuccess","RDS.Success","shortcode","mockedMSISDNEntryFailure","RDS.Failure","errorType","defaultInitialState","RDS.NothingYet","initialState","searchToObject","setInitialState","submitMSISDNAction","createAsyncThunk","getState","rejectWithValue","_e","strategy","data","tracker","advancedInFlow","keywordAndShortcode","_f","storeMsisdn","customEvent","catch","loop","checkSubscriptionByRockmanIdOnly","r","checkResult","moCheckSubscription","setTimeout","warn","ex_1","recedeInFlow","moFlowSlice","createSlice","name","reducers","backToStartAction","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","moFlowReducer","reducer","actions"],"mappings":"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"}
|
package/dist/moRedirFlow.js
CHANGED
|
@@ -1,225 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
|
|
3
|
-
import { S as Success, N as NothingYet, L as Loading, F as Failure } from './RemoteDataState-CwHLI23e.js';
|
|
4
|
-
import { s as storeMsisdn } from './storeMsisdn-ChiBh8mI.js';
|
|
5
|
-
import { t as tracker } from './tracker-B_zsMRN2.js';
|
|
6
|
-
import { t as tryGetIPRangeName } from './tryGetIPRangeName-C69HEG5W.js';
|
|
7
|
-
import 'pacman-client';
|
|
8
|
-
import 'uuid';
|
|
9
|
-
|
|
10
|
-
var useMoRedirFlowState = function (useSelector) {
|
|
11
|
-
var currentState = useSelector(function (state) { return state.moRedirFlow.currentState; });
|
|
12
|
-
return currentState;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
function moRedirFlowMatch(_a) {
|
|
16
|
-
var msisdnEntry = _a.msisdnEntry;
|
|
17
|
-
return function (state) {
|
|
18
|
-
switch (state.type) {
|
|
19
|
-
case 'MSISDNEntry':
|
|
20
|
-
return msisdnEntry(state.result);
|
|
21
|
-
default:
|
|
22
|
-
// TODO - this should be an error or something
|
|
23
|
-
return msisdnEntry(state.result);
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
var redirect = function (_a) {
|
|
29
|
-
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;
|
|
30
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
31
|
-
var params, host, url;
|
|
32
|
-
var _b, _c, _d;
|
|
33
|
-
return __generator(this, function (_e) {
|
|
34
|
-
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();
|
|
35
|
-
host = window.DEV_BASE_URL || '';
|
|
36
|
-
url = "".concat(host, "/tallyman/v1/?").concat(params);
|
|
37
|
-
if (slug.includes('za-mtn-beyondvr-r7')) {
|
|
38
|
-
return [2 /*return*/, {
|
|
39
|
-
success: true,
|
|
40
|
-
rockman_id: rockmanId,
|
|
41
|
-
redirect_url: url
|
|
42
|
-
}];
|
|
43
|
-
}
|
|
44
|
-
return [2 /*return*/, fetch(url).then(function (x) { return x.json(); })];
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
function submitMSISDN(window, maybeConfig, internationalMSISDN, extraParams) {
|
|
50
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
51
|
-
var config;
|
|
52
|
-
return __generator(this, function (_a) {
|
|
53
|
-
config = __assign({ offer: window.pac_analytics.visitor.offer }, (maybeConfig || {}));
|
|
54
|
-
return [2 /*return*/, submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams)];
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
function submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams) {
|
|
59
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
60
|
-
var slug, country, device, offer, search, extraParamsQs, msisdn, visitor, rockmanId, ip_range_name, _a, result, type, error;
|
|
61
|
-
return __generator(this, function (_b) {
|
|
62
|
-
switch (_b.label) {
|
|
63
|
-
case 0:
|
|
64
|
-
slug = config.slug, country = config.country, device = config.device, offer = config.offer;
|
|
65
|
-
search = window.location.search.substr(1) || '';
|
|
66
|
-
extraParamsQs = !extraParams
|
|
67
|
-
? ''
|
|
68
|
-
: "&".concat(Object.keys(extraParams)
|
|
69
|
-
.map(function (k) { return "".concat(k, "=").concat(extraParams[k]); })
|
|
70
|
-
.join('&'));
|
|
71
|
-
msisdn = internationalMSISDN.match(/\d+/gi).join('');
|
|
72
|
-
visitor = window.pac_analytics.visitor;
|
|
73
|
-
rockmanId = visitor.rockmanId;
|
|
74
|
-
if (!(country === 'ci')) return [3 /*break*/, 2];
|
|
75
|
-
return [4 /*yield*/, tryGetIPRangeName(visitor)];
|
|
76
|
-
case 1:
|
|
77
|
-
_a = _b.sent();
|
|
78
|
-
return [3 /*break*/, 3];
|
|
79
|
-
case 2:
|
|
80
|
-
_a = null;
|
|
81
|
-
_b.label = 3;
|
|
82
|
-
case 3:
|
|
83
|
-
ip_range_name = _a;
|
|
84
|
-
return [4 /*yield*/, redirect({
|
|
85
|
-
window: window,
|
|
86
|
-
slug: slug,
|
|
87
|
-
country: country,
|
|
88
|
-
msisdn: msisdn,
|
|
89
|
-
device: device,
|
|
90
|
-
offer: offer,
|
|
91
|
-
rockmanId: rockmanId,
|
|
92
|
-
ip_range_name: ip_range_name,
|
|
93
|
-
search: search,
|
|
94
|
-
extraParamsQs: extraParamsQs
|
|
95
|
-
})];
|
|
96
|
-
case 4:
|
|
97
|
-
result = _b.sent();
|
|
98
|
-
if (result.success === false) {
|
|
99
|
-
type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMSISDN';
|
|
100
|
-
error = new Error("".concat(type, ":\n").concat(result.message));
|
|
101
|
-
error.type = type;
|
|
102
|
-
console.error(error);
|
|
103
|
-
throw error;
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
return [2 /*return*/, result.redirect_url];
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
var initialState = {
|
|
114
|
-
currentState: {
|
|
115
|
-
type: 'MSISDNEntry',
|
|
116
|
-
result: NothingYet()
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
|
-
/**
|
|
120
|
-
* submitMSISDNAction
|
|
121
|
-
* @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}
|
|
122
|
-
|
|
123
|
-
* Calls redirec api that returns a redirect url
|
|
124
|
-
* Sets completed stated
|
|
125
|
-
*/
|
|
126
|
-
var submitMSISDNAction = createAsyncThunk('moRedirFlow/submitMSISDNAction', function (_a, _b) {
|
|
127
|
-
var window = _a.window, msisdn = _a.msisdn, extraParams = _a.extraParams;
|
|
128
|
-
var getState = _b.getState, rejectWithValue = _b.rejectWithValue;
|
|
129
|
-
return __awaiter(void 0, void 0, void 0, function () {
|
|
130
|
-
var state, config, href, ex_1, errorType;
|
|
131
|
-
return __generator(this, function (_c) {
|
|
132
|
-
switch (_c.label) {
|
|
133
|
-
case 0:
|
|
134
|
-
state = getState();
|
|
135
|
-
config = state.strategy.currentState.data.config;
|
|
136
|
-
_c.label = 1;
|
|
137
|
-
case 1:
|
|
138
|
-
_c.trys.push([1, 5, , 6]);
|
|
139
|
-
// Start Redirect Api Call
|
|
140
|
-
tracker.advancedInFlow('tallyman.v1-mo-redir', 'msisdn-submitted', { msisdn: msisdn });
|
|
141
|
-
return [4 /*yield*/, submitMSISDN(window, config, msisdn, extraParams)];
|
|
142
|
-
case 2:
|
|
143
|
-
href = _c.sent();
|
|
144
|
-
tracker.advancedInFlow('tallyman.v1-mo-redir', 'msisdn-submission-success', { msisdn: msisdn });
|
|
145
|
-
if (!(extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true')) return [3 /*break*/, 4];
|
|
146
|
-
return [4 /*yield*/, storeMsisdn(msisdn)
|
|
147
|
-
.then(function (data) {
|
|
148
|
-
if (data && data.data && data.data.success) {
|
|
149
|
-
tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');
|
|
153
|
-
}
|
|
154
|
-
})
|
|
155
|
-
.catch(function (error) {
|
|
156
|
-
tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);
|
|
157
|
-
})];
|
|
158
|
-
case 3:
|
|
159
|
-
_c.sent();
|
|
160
|
-
_c.label = 4;
|
|
161
|
-
case 4:
|
|
162
|
-
// End Store Msisdn
|
|
163
|
-
return [2 /*return*/, {
|
|
164
|
-
type: 'MSISDNEntry',
|
|
165
|
-
result: Success({ href: href })
|
|
166
|
-
}];
|
|
167
|
-
case 5:
|
|
168
|
-
ex_1 = _c.sent();
|
|
169
|
-
console.warn(ex_1);
|
|
170
|
-
errorType = void 0;
|
|
171
|
-
switch (ex_1.type) {
|
|
172
|
-
case 'AlreadySubscribed':
|
|
173
|
-
errorType = 'AlreadySubscribed';
|
|
174
|
-
break;
|
|
175
|
-
case 'InvalidMSISDN':
|
|
176
|
-
errorType = 'InvalidMSISDN';
|
|
177
|
-
break;
|
|
178
|
-
default:
|
|
179
|
-
errorType = 'UnknownError';
|
|
180
|
-
}
|
|
181
|
-
tracker.recedeInFlow('tallyman.v1-mo-redir', 'msisdn-submission-failure', {
|
|
182
|
-
msisdn: msisdn,
|
|
183
|
-
errorType: 'UnknownError'
|
|
184
|
-
});
|
|
185
|
-
return [2 /*return*/, rejectWithValue({
|
|
186
|
-
errorType: errorType,
|
|
187
|
-
productUrl: ex_1.productUrl
|
|
188
|
-
})];
|
|
189
|
-
case 6: return [2 /*return*/];
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
|
-
var moRedirFlowSlice = createSlice({
|
|
195
|
-
name: 'moRedirFlow',
|
|
196
|
-
initialState: initialState,
|
|
197
|
-
reducers: {
|
|
198
|
-
backToStartAction: function (state) {
|
|
199
|
-
tracker.recedeInFlow('tallyman.v1-mo-redir', 'mo-redir-state', 'requested to change phone number');
|
|
200
|
-
// TODO GO BACK TO IDENTIFY BY MSISDN BASED ON STRATEGY
|
|
201
|
-
state.currentState = { type: 'MSISDNEntry', result: NothingYet() };
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
extraReducers: function (builder) {
|
|
205
|
-
builder
|
|
206
|
-
.addCase(submitMSISDNAction.pending, function (state) {
|
|
207
|
-
state.currentState = { type: 'MSISDNEntry', result: Loading() };
|
|
208
|
-
})
|
|
209
|
-
.addCase(submitMSISDNAction.fulfilled, function (state, action) {
|
|
210
|
-
state.currentState = action.payload;
|
|
211
|
-
})
|
|
212
|
-
.addCase(submitMSISDNAction.rejected, function (state, action) {
|
|
213
|
-
state.currentState = {
|
|
214
|
-
type: 'MSISDNEntry',
|
|
215
|
-
result: Failure(action.payload)
|
|
216
|
-
};
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
// Export reducers and actions
|
|
221
|
-
var moRedirFlowReducer = moRedirFlowSlice.reducer, moRedirFlowActions = moRedirFlowSlice.actions;
|
|
222
|
-
var backToStartAction = moRedirFlowActions.backToStartAction;
|
|
223
|
-
|
|
224
|
-
export { backToStartAction, moRedirFlowMatch, moRedirFlowReducer, submitMSISDNAction, useMoRedirFlowState };
|
|
1
|
+
import{__awaiter as e,__generator as r,__assign as t}from"tslib";import{createAsyncThunk as n,createSlice as a}from"@reduxjs/toolkit";import{S as o,N as s,L as i,F as c}from"./RemoteDataState-lcf8PfJd.js";import{searchToObject as u}from"./searchToObject.js";import{s as d}from"./storeMsisdn-Cjq8_qYH.js";import{t as l}from"./tracker-DaaILhEr.js";import{t as m}from"./tryGetIPRangeName-QW-9NgzE.js";import"pacman-client";import"uuid";var f=function(e){return e((function(e){return e.moRedirFlow.currentState}))};function v(e){var r=e.msisdnEntry;return function(e){return e.type,r(e.result)}}var y=function(n){var a=n.window,o=n.slug,s=n.country,i=n.msisdn,c=n.device,u=n.offer,d=n.rockmanId,l=n.ip_range_name,m=n.search,f=n.extraParamsQs,v=n.email,y=n.password;return e(void 0,void 0,void 0,(function(){var e,n,S,p,w,I;return r(this,(function(r){return e=new URLSearchParams(t(t(t(t(t(t({action:"redirect",slug:o,country:s,device:c,offerId:u.toString(),rockman_id:d,page:encodeURIComponent(a.location.href),network_type:l?"":"wifi"},m&&{search:m}),(null===(I=null===(w=null===(p=a.pac_analytics)||void 0===p?void 0:p.visitor)||void 0===w?void 0:w.page)||void 0===I?void 0:I.includes("agency"))&&{evinaTi:d}),a.securityProcessId&&{securityProcessId:a.securityProcessId}),a.languageCode&&{language_code:a.languageCode}),v&&y?{email:v,password:y}:{msisdn:i}),f&&{extraParams:f})).toString(),n=a.DEV_BASE_URL||"",S="".concat(n,"/tallyman/v1/?").concat(e),o.includes("za-mtn-beyondvr-r7")?[2,{success:!0,rockman_id:d,redirect_url:S}]:[2,fetch(S).then((function(e){return e.json()}))]}))}))};function S(n,a,o,s){return e(this,void 0,void 0,(function(){var e;return r(this,(function(r){return e=t({offer:n.pac_analytics.visitor.offer},a||{}),[2,p(n,e,o,s)]}))}))}function p(t,n,a,o){return e(this,void 0,void 0,(function(){var e,s,i,c,u,d,l,f,v,S,p,w,I;return r(this,(function(r){switch(r.label){case 0:return e=n.slug,s=n.country,i=n.device,c=n.offer,u=t.location.search.substr(1)||"",d=o?"&".concat(Object.keys(o).map((function(e){return"".concat(e,"=").concat(o[e])})).join("&")):"",l=a.match(/\d+/gi).join(""),f=t.pac_analytics.visitor,v=f.rockmanId,"ci"!==s?[3,2]:[4,m(f)];case 1:return S=r.sent(),[3,3];case 2:S=null,r.label=3;case 3:return[4,y({window:t,slug:e,country:s,msisdn:l,device:i,offer:c,rockmanId:v,ip_range_name:S,search:u,extraParamsQs:d})];case 4:if(!1===(p=r.sent()).success)throw w="ALREADY SUBSCRIBED"===p.message?"AlreadySubscribed":"InvalidMSISDN",(I=new Error("".concat(w,":\n").concat(p.message))).type=w,console.error(I),I;return[2,p.redirect_url]}}))}))}var w={currentState:{type:"MSISDNEntry",result:o({href:"/product"})}},I={currentState:{type:"MSISDNEntry",result:c({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},h={currentState:{type:"MSISDNEntry",result:s()}},g=function(e){var r=u(e);if(!r["mock-flow"])return h;switch(r["current-state"]){case"msisdn-entry-failure-state":return I;case"msisdn-entry-success-state":return w;default:return console.error("Mock Flow not supported"),h}}(window),b=n("moRedirFlow/submitMSISDNAction",(function(t,n){var a=t.window,s=t.msisdn,i=t.extraParams,c=n.getState,u=n.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,t,n,m,f,v,y,p;return r(this,(function(r){switch(r.label){case 0:if(e=c(),!(null===(p=null===(y=null===(v=null==e?void 0:e.strategy)||void 0===v?void 0:v.currentState)||void 0===y?void 0:y.data)||void 0===p?void 0:p.config))return[2,u({errorType:"UnexpectedState"})];t=e.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),l.advancedInFlow("tallyman.v1-mo-redir","msisdn-submitted",{msisdn:s}),[4,S(a,t,s,i)];case 2:return n=r.sent(),l.advancedInFlow("tallyman.v1-mo-redir","msisdn-submission-success",{msisdn:s}),i&&i.storeMsisdn&&"true"===i.storeMsisdn?[4,d(s).then((function(e){e&&e.data&&e.data.success?l.customEvent("Flow","advance-auto","msisdn-stored-success"):l.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(e){l.customEvent("Flow","advance-auto","msisdn-stored-error",e)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return[2,{type:"MSISDNEntry",result:o({href:n})}];case 5:switch(m=r.sent(),console.warn(m),f=void 0,m.type){case"AlreadySubscribed":f="AlreadySubscribed";break;case"InvalidMSISDN":f="InvalidMSISDN";break;default:f="UnknownError"}return l.recedeInFlow("tallyman.v1-mo-redir","msisdn-submission-failure",{msisdn:s,errorType:"UnknownError"}),[2,u({errorType:f,productUrl:m.productUrl})];case 6:return[2]}}))}))})),E=a({name:"moRedirFlow",initialState:g,reducers:{backToStartAction:function(e){l.recedeInFlow("tallyman.v1-mo-redir","mo-redir-state","requested to change phone number"),e.currentState={type:"MSISDNEntry",result:s()}}},extraReducers:function(e){e.addCase(b.pending,(function(e){e.currentState={type:"MSISDNEntry",result:i()}})).addCase(b.fulfilled,(function(e,r){e.currentState=r.payload})).addCase(b.rejected,(function(e,r){e.currentState={type:"MSISDNEntry",result:c(r.payload)}}))}}),k=E.reducer,M=E.actions.backToStartAction;export{M as backToStartAction,v as moRedirFlowMatch,k as moRedirFlowReducer,b as submitMSISDNAction,f as useMoRedirFlowState};
|
|
225
2
|
//# sourceMappingURL=moRedirFlow.js.map
|