ouisys-engine 5.0.3 → 5.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/RemoteDataState-lcf8PfJd.js +2 -0
- package/dist/RemoteDataState-lcf8PfJd.js.map +1 -0
- 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-BwR1un1L.js.map +1 -0
- package/dist/checkSubscriptionHander.js +2 -0
- package/dist/checkSubscriptionHander.js.map +1 -0
- package/dist/click2smsFlow.js +2 -0
- package/dist/click2smsFlow.js.map +1 -0
- package/dist/creditCardFlow.js +2 -0
- package/dist/creditCardFlow.js.map +1 -0
- package/dist/getConfig.js +2 -0
- package/dist/getConfig.js.map +1 -0
- package/dist/handleClickChainFlow.js +2 -0
- package/dist/handleClickChainFlow.js.map +1 -0
- package/dist/handleSubmitNumber.js +2 -0
- package/dist/handleSubmitNumber.js.map +1 -0
- 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 +2 -0
- package/dist/moFlow.js.map +1 -0
- package/dist/moRedirFlow.js +2 -0
- package/dist/moRedirFlow.js.map +1 -0
- package/dist/oneClickFlow.js +2 -0
- package/dist/oneClickFlow.js.map +1 -0
- package/dist/pinFlow.js +2 -0
- package/dist/pinFlow.js.map +1 -0
- package/dist/searchToObject.js +2 -0
- package/dist/searchToObject.js.map +1 -0
- package/dist/storeMsisdn-Cjq8_qYH.js +2 -0
- package/dist/storeMsisdn-Cjq8_qYH.js.map +1 -0
- package/dist/strategy.js +2 -0
- package/dist/strategy.js.map +1 -0
- 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 +2 -0
- package/dist/tracker.js.map +1 -0
- package/dist/tryGetIPRangeName-QW-9NgzE.js +2 -0
- package/dist/tryGetIPRangeName-QW-9NgzE.js.map +1 -0
- package/dist/types/CreditCardTypes-B-IT-l6I.d.ts +72 -0
- package/dist/types/IHash-0OgZ_1ij.d.ts +5 -0
- package/dist/types/MoRedirTypes-4tEJjT1g.d.ts +31 -0
- package/dist/types/MoTypes-D-UK92gs.d.ts +45 -0
- package/dist/types/OneClickTypes-DjOesaHp.d.ts +69 -0
- package/dist/types/PinTypes-BLJDBZe6.d.ts +128 -0
- package/dist/types/RemoteDataState-D1aFrz8W.d.ts +61 -0
- package/dist/types/StrategyTypes-CbOgk0N4.d.ts +326 -0
- package/dist/types/UssdTypes-C7QlIW11.d.ts +34 -0
- package/dist/types/checkSubscriptionHander.d.ts +8 -0
- package/dist/types/click2smsFlow.d.ts +37 -0
- package/dist/types/creditCardFlow.d.ts +37 -0
- package/dist/types/getConfig.d.ts +38 -0
- package/dist/types/handleClickChainFlow.d.ts +6 -0
- package/dist/types/handleSubmitNumber.d.ts +26 -0
- package/dist/types/moFlow.d.ts +70 -0
- package/dist/types/moRedirFlow.d.ts +82 -0
- package/dist/types/oneClickFlow.d.ts +56 -0
- package/dist/types/pinFlow.d.ts +179 -0
- package/dist/types/searchToObject.d.ts +3 -0
- package/dist/types/strategy.d.ts +94 -0
- package/dist/types/tracker.d.ts +5 -0
- package/dist/types/ussdFlow.d.ts +84 -0
- package/dist/ussdFlow.js +2 -0
- package/dist/ussdFlow.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { M as MSISDNEntryState, a as MSISDNEntryFailure, b as MSISDNEntrySuccess, c as UssdFlowCurrentState, d as MSISDNEntryErrorTypes } from './UssdTypes-C7QlIW11.js';
|
|
2
|
+
export { I as IKeywordShortcode, e as IMSISDNSubmissionResult, f as IMockUssdFlowStates, U as UssdFlowState } from './UssdTypes-C7QlIW11.js';
|
|
3
|
+
import { useSelector } from 'react-redux';
|
|
4
|
+
import { R as RemoteDataState } from './RemoteDataState-D1aFrz8W.js';
|
|
5
|
+
import * as _reduxjs_toolkit from '@reduxjs/toolkit';
|
|
6
|
+
import * as redux from 'redux';
|
|
7
|
+
import { I as IHash } from './IHash-0OgZ_1ij.js';
|
|
8
|
+
|
|
9
|
+
declare const useUssdFlowState: (useSelector: typeof useSelector) => MSISDNEntryState;
|
|
10
|
+
|
|
11
|
+
declare function ussdFlowMatch<R>({ msisdnEntry }: {
|
|
12
|
+
msisdnEntry: (rds: RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;
|
|
13
|
+
}): (state: UssdFlowCurrentState) => R;
|
|
14
|
+
|
|
15
|
+
interface SubmitMSISDNArgs {
|
|
16
|
+
window: Window;
|
|
17
|
+
msisdn: string;
|
|
18
|
+
extraParams?: IHash;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* submitMSISDNAction
|
|
22
|
+
* @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}
|
|
23
|
+
|
|
24
|
+
* Calls ussd api that open ussd prompt on mobile
|
|
25
|
+
*
|
|
26
|
+
*/
|
|
27
|
+
declare const submitMSISDNAction: _reduxjs_toolkit.AsyncThunk<MSISDNEntryState, SubmitMSISDNArgs, {
|
|
28
|
+
rejectValue: MSISDNEntryFailure;
|
|
29
|
+
state?: unknown;
|
|
30
|
+
dispatch?: redux.Dispatch<redux.UnknownAction>;
|
|
31
|
+
extra?: unknown;
|
|
32
|
+
serializedErrorType?: unknown;
|
|
33
|
+
pendingMeta?: unknown;
|
|
34
|
+
fulfilledMeta?: unknown;
|
|
35
|
+
rejectedMeta?: unknown;
|
|
36
|
+
}>;
|
|
37
|
+
declare const ussdFlowReducer: redux.Reducer<{
|
|
38
|
+
currentState: {
|
|
39
|
+
type: "MSISDNEntry";
|
|
40
|
+
result: {
|
|
41
|
+
type: "NothingYet";
|
|
42
|
+
} | {
|
|
43
|
+
type: "Loading";
|
|
44
|
+
} | {
|
|
45
|
+
type: "Failure";
|
|
46
|
+
error: {
|
|
47
|
+
errorType: MSISDNEntryErrorTypes;
|
|
48
|
+
error?: any;
|
|
49
|
+
productUrl?: string;
|
|
50
|
+
};
|
|
51
|
+
} | {
|
|
52
|
+
type: "Success";
|
|
53
|
+
data: {
|
|
54
|
+
keyword: string;
|
|
55
|
+
shortcode: string;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
}, redux.UnknownAction, {
|
|
60
|
+
currentState: {
|
|
61
|
+
type: "MSISDNEntry";
|
|
62
|
+
result: {
|
|
63
|
+
type: "NothingYet";
|
|
64
|
+
} | {
|
|
65
|
+
type: "Loading";
|
|
66
|
+
} | {
|
|
67
|
+
type: "Failure";
|
|
68
|
+
error: {
|
|
69
|
+
errorType: MSISDNEntryErrorTypes;
|
|
70
|
+
error?: any;
|
|
71
|
+
productUrl?: string;
|
|
72
|
+
};
|
|
73
|
+
} | {
|
|
74
|
+
type: "Success";
|
|
75
|
+
data: {
|
|
76
|
+
keyword: string;
|
|
77
|
+
shortcode: string;
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
}>;
|
|
82
|
+
declare const backToStartAction: _reduxjs_toolkit.ActionCreatorWithoutPayload<"ussdFlow/backToStartAction">;
|
|
83
|
+
|
|
84
|
+
export { MSISDNEntryErrorTypes, MSISDNEntryFailure, MSISDNEntryState, MSISDNEntrySuccess, UssdFlowCurrentState, backToStartAction, submitMSISDNAction, useUssdFlowState, ussdFlowMatch, ussdFlowReducer };
|
package/dist/ussdFlow.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{__awaiter as t,__generator as r,__assign as e,__read as n}from"tslib";import{createAsyncThunk as s,createSlice as a}from"@reduxjs/toolkit";import{S as o,N as c,L as i,F as u}from"./RemoteDataState-lcf8PfJd.js";import{checkSubscriptionHander as d}from"./checkSubscriptionHander.js";import{searchToObject as l}from"./searchToObject.js";import{s as m}from"./storeMsisdn-Cjq8_qYH.js";import{t as f}from"./tracker-DaaILhEr.js";import"./checkSubscriptionByRockmanIdOnly-BwR1un1L.js";import"./helpers-xPhGBX-B.js";import"pacman-client";import"uuid";var S=function(t){return t((function(t){return t.ussdFlow.currentState}))};function p(t){var r=t.msisdnEntry;return function(t){return t.type,r(t.result)}}var v=function(s,a,o,c,i,u,d,l,m){return t(void 0,void 0,void 0,(function(){var t,f,S;return r(this,(function(r){return t=new URLSearchParams(e({action:"ussd",slug:a,country:o,msisdn:c,device:i,offerId:u.toString(),rockman_id:d},l&&{search:l})),m&&m.split("&").forEach((function(r){var e=n(r.split("="),2),s=e[0],a=e[1];s&&t.append(s,a)})),f=s.DEV_BASE_URL||"",S="".concat(f,"/tallyman/v1/?").concat(t.toString()),[2,fetch(S).then((function(t){return t.json()}))]}))}))};function y(n,s,a,o){return t(this,void 0,void 0,(function(){var t;return r(this,(function(r){return t=e({offer:n.pac_analytics.visitor.offer},s||{}),[2,w(n,t,a,o)]}))}))}function w(e,n,s,a){return t(this,void 0,void 0,(function(){var t,o,c,i,u,d,l,m,f,S,p;return r(this,(function(r){switch(r.label){case 0:return t=n.slug,o=n.country,c=n.device,i=n.offer,u=e.location.search.substr(1)||"",d=a?"&".concat(Object.keys(a).map((function(t){return"".concat(t,"=").concat(a[t])})).join("&")):"",l=s.match(/\d+/gi).join(""),m=e.pac_analytics.visitor.rockmanId,[4,v(e,t,o,l,c,i,m,u,d)];case 1:if(!1===(f=r.sent()).success)throw S="ALREADY SUBSCRIBED"===f.message?"AlreadySubscribed":"InvalidMSISDN",(p=new Error("".concat(S,":\n").concat(f.message))).type=S,console.error(p),p;return[2,f]}}))}))}var h={currentState:{type:"MSISDNEntry",result:o({keyword:"TEST OK",shortcode:"777"})}},b={currentState:{type:"MSISDNEntry",result:u({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},I={currentState:{type:"MSISDNEntry",result:c()}},E=function(t){var r=l(t);if(!r["mock-flow"])return I;switch(r["current-state"]){case"msisdn-entry-failure-state":return b;case"msisdn-entry-success-state":return h;default:return console.error("Mock Flow not supported"),I}}(window),k=s("ussdFlow/submitMSISDNAction",(function(n,s){var a=n.window,c=n.msisdn,i=n.extraParams,u=s.getState,l=s.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,n,s,S,p;return r(this,(function(r){switch(r.label){case 0:t=u(),n=t.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),f.advancedInFlow("tallyman.v1-ussd","msisdn-submitted",{msisdn:c}),[4,y(a,n,c,i)];case 2:return s=r.sent(),f.advancedInFlow("tallyman.v1-ussd","msisdn-submission-success",{msisdn:c}),i&&i.storeMsisdn&&"true"===i.storeMsisdn?[4,m(c).then((function(t){t&&t.data&&t.data.success?f.customEvent("Flow","advance-auto","msisdn-stored-success"):f.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(t){f.customEvent("Flow","advance-auto","msisdn-stored-error",t)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return d({window:a,flow:"tallyman.v1-ussd",action:"sale",args:{msisdn:c}}),[2,{type:"MSISDNEntry",result:o(e({},s))}];case 5:switch(S=r.sent(),console.warn(S),p=void 0,S.type){case"AlreadySubscribed":p="AlreadySubscribed";break;case"InvalidMSISDN":p="InvalidMSISDN";break;default:p="UnknownError"}return f.recedeInFlow("tallyman.v1-ussd","msisdn-submission-failure",{msisdn:c,errorType:p||"UnknownError"}),[2,l({errorType:p,productUrl:S.productUrl})];case 6:return[2]}}))}))})),M=a({name:"ussdFlow",initialState:E,reducers:{backToStartAction:function(t){f.recedeInFlow("tallyman.v1-ussd","ussd-state","requested to change phone number"),t.currentState={type:"MSISDNEntry",result:c()}}},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)}}))}}),D=M.reducer,j=M.actions.backToStartAction;export{j as backToStartAction,k as submitMSISDNAction,S as useUssdFlowState,p as ussdFlowMatch,D as ussdFlowReducer};
|
|
2
|
+
//# sourceMappingURL=ussdFlow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ussdFlow.js","sources":["../src/flows/ussdFlow/hooks/useUssdFlowState.ts","../src/flows/ussdFlow/match.ts","../src/flows/ussdFlow/api.ts","../src/flows/ussdFlow/main.ts","../src/flows/ussdFlow/ussdFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useUssdFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.ussdFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport { MSISDNEntryFailure, MSISDNEntrySuccess, UssdFlowCurrentState } from '../../sharedFlowTypes/UssdTypes';\n\nfunction ussdFlowMatch<R>({\n msisdnEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n}): (state: UssdFlowCurrentState) => 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 { ussdFlowMatch };\n","import { IMSISDNSubmissionResult } from '../../sharedFlowTypes/UssdTypes';\n\nconst ussd = async (\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 const params = new URLSearchParams({\n action: 'ussd',\n slug,\n country,\n msisdn,\n device,\n offerId: offer.toString(),\n rockman_id: rockmanId,\n ...(search && { search })\n });\n\n if (extraParamsQs) {\n extraParamsQs.split('&').forEach((param) => {\n const [key, value] = param.split('=');\n if (key) params.append(key, value);\n });\n }\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${params.toString()}`;\n return fetch(url).then((response) => response.json());\n};\n\nexport { ussd };\n","import { IError } from '../../common-types/IError';\nimport { IConfig } from '../../sharedFlowTypes/StrategyTypes';\nimport { IKeywordShortcode, IMSISDNSubmissionResult } from '../../sharedFlowTypes/UssdTypes';\nimport { ussd } 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: 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<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 const result: IMSISDNSubmissionResult = await ussd(\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 };\n error.type = type;\n console.error(error);\n throw error;\n } else {\n return result;\n }\n}\n\nexport const formatSMSLink = (keywordAndShortcode: IKeywordShortcode) =>\n // @ts-ignore\n // eslint-disable-next-line no-nested-ternary\n !!window.pac_analytics.visitor['x-requested-with'] &&\n // @ts-ignore\n window.pac_analytics.visitor['x-requested-with'] !== null &&\n // @ts-ignore\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 { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport {\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess,\n UssdFlowState\n} from '../../sharedFlowTypes/UssdTypes';\nimport { checkSubscriptionHander } from '../../utilities/checkSubscriptionHander';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport submitMSISDN from './main';\n\nconst mockedMSISDNEntrySuccess: UssdFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n keyword: 'TEST OK',\n shortcode: '777'\n })\n }\n};\n\nconst mockedMSISDNEntryFailure: UssdFlowState = {\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: UssdFlowState = {\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 ussd api that open ussd prompt on mobile\n *\n */\nexport const submitMSISDNAction = createAsyncThunk<\n MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure;\n }\n>('ussdFlow/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 Ussd Api Call\n tracker.advancedInFlow('tallyman.v1-ussd', 'msisdn-submitted', { msisdn });\n const keywordAndShortcode = await submitMSISDN(window, config, msisdn, extraParams);\n tracker.advancedInFlow('tallyman.v1-ussd', 'msisdn-submission-success', { msisdn });\n // End Ussd 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 // Check For Subscription by rockman id and redirect to product url\n checkSubscriptionHander({\n window,\n flow: 'tallyman.v1-ussd',\n action: 'sale',\n args: {\n msisdn\n }\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-ussd', '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 ussdFlowSlice = createSlice({\n name: 'ussdFlow',\n initialState,\n reducers: {\n backToStartAction(state) {\n tracker.recedeInFlow('tallyman.v1-ussd', 'ussd-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: ussdFlowReducer, actions: ussdFlowActions } = ussdFlowSlice;\nexport const { backToStartAction } = ussdFlowActions;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectUssdFlowState = (state: any) => state.ussdFlow;\n"],"names":["useUssdFlowState","useSelector","state","ussdFlow","currentState","ussdFlowMatch","_a","msisdnEntry","type","result","ussd","window","slug","country","msisdn","device","offer","rockmanId","search","extraParamsQs","__awaiter","params","URLSearchParams","action","offerId","toString","rockman_id","split","forEach","param","__read","key","value","append","host","DEV_BASE_URL","url","concat","fetch","then","response","json","submitMSISDN","maybeConfig","internationalMSISDN","extraParams","config","pac_analytics","visitor","submitMSISDNWithConfig","location","substr","Object","keys","map","k","join","match","sent","success","message","error","Error","console","mockedMSISDNEntrySuccess","RDS.Success","keyword","shortcode","mockedMSISDNEntryFailure","RDS.Failure","errorType","defaultInitialState","RDS.NothingYet","initialState","searchToObject","setInitialState","submitMSISDNAction","createAsyncThunk","_b","getState","rejectWithValue","strategy","data","tracker","advancedInFlow","keywordAndShortcode","_c","storeMsisdn","customEvent","catch","checkSubscriptionHander","flow","args","__assign","warn","ex_1","recedeInFlow","productUrl","ussdFlowSlice","createSlice","name","reducers","backToStartAction","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","ussdFlowReducer","reducer","actions"],"mappings":"qiBAGO,IAAMA,EAAmB,SAACC,GAE/B,OADqBA,GAAY,SAACC,GAAqB,OAAAA,EAAMC,SAASC,YAAf,GAEzD,ECHA,SAASC,EAAiBC,GACxB,IAAAC,EAAWD,EAAAC,YAIX,OAAO,SAACL,GAMF,OALIA,EAAMM,KAKHD,EAAYL,EAAMO,OAE/B,CACF,CCfA,IAAMC,EAAO,SACXC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAAqB,OAAAC,OAAA,OAAA,OAAA,GAAA,gDAqBrB,OAnBMC,EAAS,IAAIC,mBACjBC,OAAQ,OACRX,KAAIA,EACJC,QAAOA,EACPC,OAAMA,EACNC,OAAMA,EACNS,QAASR,EAAMS,WACfC,WAAYT,GACRC,GAAU,CAAEA,YAGdC,GACFA,EAAcQ,MAAM,KAAKC,SAAQ,SAACC,GAC1B,IAAAvB,EAAAwB,EAAeD,EAAMF,MAAM,KAAI,GAA9BI,EAAGzB,EAAA,GAAE0B,OACRD,GAAKV,EAAOY,OAAOF,EAAKC,EAC9B,IAEIE,EAAQvB,EAAkBwB,cAAgB,GAC1CC,EAAM,UAAGF,EAAI,kBAAAG,OAAiBhB,EAAOI,YAC3C,CAAA,EAAOa,MAAMF,GAAKG,MAAK,SAACC,GAAa,OAAAA,EAASC,MAAT,UACtC,EC5Ba,SAAgBC,EAC5B/B,EACAgC,EACAC,EACAC,4EAGA,OADMC,KAAoB9B,MAAOL,EAAOoC,cAAcC,QAAQhC,OAAW2B,GAAe,CAAA,GACjF,CAAA,EAAAM,EAAuBtC,EAAQmC,EAAQF,EAAqBC,SACpE,CAEK,SAAgBI,EACpBtC,EACAmC,EACAF,EACAC,uHAWwC,OAThCjC,EAAiCkC,EAAMlC,KAAjCC,EAA2BiC,EAApBjC,QAAEE,EAAkB+B,EAAZ/B,OAAEC,EAAU8B,QACnC5B,EAASP,EAAOuC,SAAShC,OAAOiC,OAAO,IAAM,GAC7ChC,EAAiB0B,EAEnB,IAAIR,OAAAe,OAAOC,KAAKR,GACbS,KAAI,SAACC,GAAM,MAAA,GAAGlB,OAAAkB,EAAK,KAAAlB,OAAAQ,EAAYU,GAAI,IACnCC,KAAK,MAHR,GAIE1C,EAAS8B,EAAoBa,MAAM,SAASD,KAAK,IAC/CvC,EAAcN,EAAOoC,cAAcC,kBACG,CAAA,EAAAtC,EAC5CC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,WAGF,IAAuB,KAZjBV,EAAkCH,EAUvCoD,QAEUC,QAKT,MAJMnD,EAA0B,uBAAnBC,EAAOmD,QAAmC,oBAAsB,iBACvEC,EAAQ,IAAIC,MAAM,GAAGzB,OAAA7B,EAAU,OAAA6B,OAAA5B,EAAOmD,WACtCpD,KAAOA,EACbuD,QAAQF,MAAMA,GACRA,EAEN,MAAA,CAAA,EAAOpD,SAEV,CClCD,IAAMuD,EAA0C,CAC9C5D,aAAc,CACZI,KAAM,cACNC,OAAQwD,EAAoD,CAC1DC,QAAS,UACTC,UAAW,UAKXC,EAA0C,CAC9ChE,aAAc,CACZI,KAAM,cACNC,OAAQ4D,EAAoD,CAC1DC,UAAW,gBACXT,MAAO,4BAKPU,EAAqC,CACzCnE,aAAc,CACZI,KAAM,cACNC,OAAQ+D,MAqBNC,EAjBkB,SAAC9D,GACvB,IAAMO,EAASwD,EAAe/D,GAC9B,IAAIO,EAAO,aAWT,OAAOqD,EAVP,OAAQrD,EAAO,kBACb,IAAK,6BACH,OAAOkD,EACT,IAAK,6BACH,OAAOJ,EACT,QAEE,OADAD,QAAQF,MAAM,2BACPU,EAKf,CAEqBI,CAAgBhE,QAcxBiE,EAAqBC,EAMhC,+BAA+B,SAAOvE,EAAiCwE,GAA/B,IAAAnE,WAAQG,EAAMR,EAAAQ,OAAE+B,EAAWvC,EAAAuC,YAAMkC,EAAQD,EAAAC,SAAEC,EAAeF,EAAAE,0HAC5F9E,EAAmB6E,IAEjBjC,EAAW5C,EAAM+E,SAAS7E,aAAa8E,KAAIpC,wBAKrB,6BAD5BqC,EAAQC,eAAe,mBAAoB,mBAAoB,CAAEtE,OAAMA,IACrC,CAAA,EAAA4B,EAAa/B,EAAQmC,EAAQhC,EAAQ+B,WAMnE,OANEwC,EAAsBC,EAAuD5B,OACnFyB,EAAQC,eAAe,mBAAoB,4BAA6B,CAAEtE,OAAMA,IAK5E+B,GAAeA,EAAY0C,aAA2C,SAA5B1C,EAAY0C,YAClD,CAAA,EAAAA,EAAYzE,GACfyB,MAAK,SAAC2C,GACDA,GAAQA,EAAKA,MAAQA,EAAKA,KAAKvB,QACjCwB,EAAQK,YAAY,OAAQ,eAAgB,yBAE5CL,EAAQK,YAAY,OAAQ,eAAgB,uBAEhD,IACCC,OAAM,SAAC5B,GACNsB,EAAQK,YAAY,OAAQ,eAAgB,sBAAuB3B,EACpE,KAX2E,CAAA,EAAA,UAC9EyB,EAAA5B,wBAwBF,OATAgC,EAAwB,CACtB/E,OAAMA,EACNgF,KAAM,mBACNpE,OAAQ,OACRqE,KAAM,CACJ9E,OAAMA,KAIH,CAAA,EAAA,CACLN,KAAM,cACNC,OAAQwD,EAAW4B,EAAA,CAAA,EAA8CR,aAKnE,kBAFAtB,QAAQ+B,KAAKC,GACTzB,SACIyB,EAAGvF,MACT,IAAK,oBACH8D,EAAY,oBACZ,MACF,IAAK,gBACHA,EAAY,gBACZ,MACF,QACEA,EAAY,eAQhB,OALAa,EAAQa,aAAa,mBAAoB,4BAA6B,CACpElF,OAAMA,EACNwD,UAAWA,GAAa,iBAG1B,CAAA,EAAOU,EAAgB,CACrBV,UAASA,EACT2B,WAAYF,EAAGE,qCAGpB,IAEKC,EAAgBC,EAAY,CAChCC,KAAM,WACN3B,aAAYA,EACZ4B,SAAU,CACRC,2BAAkBpG,GAChBiF,EAAQa,aAAa,mBAAoB,aAAc,oCAGvD9F,EAAME,aAAe,CAAEI,KAAM,cAAeC,OAAQ+D,IACrD,GAEH+B,cAAe,SAACC,GACdA,EACGC,QAAQ7B,EAAmB8B,SAAS,SAACxG,GACpCA,EAAME,aAAe,CAAEI,KAAM,cAAeC,OAAQkG,IACtD,IACCF,QAAQ7B,EAAmBgC,WAAW,SAAC1G,EAAOqB,GAC7CrB,EAAME,aAAemB,EAAOsF,OAC9B,IACCJ,QAAQ7B,EAAmBkC,UAAU,SAAC5G,EAAOqB,GAC5CrB,EAAME,aAAe,CACnBI,KAAM,cACNC,OAAQ4D,EAAY9C,EAAOsF,SAE/B,GACH,IAIqBE,EAA8Cb,EAA/Bc,QACxBV,EADuDJ,EAAae"}
|