ouisys-engine 5.0.79 → 5.0.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/moFlow.js +1 -1
- package/dist/moFlow.js.map +1 -1
- package/dist/moRedirFlow.js +1 -1
- package/dist/moRedirFlow.js.map +1 -1
- package/dist/pinFlow.js +1 -1
- package/dist/pinFlow.js.map +1 -1
- package/dist/strategy.js +1 -1
- package/dist/strategy.js.map +1 -1
- package/dist/strategySlice-CwiREA17.js +2 -0
- package/dist/{strategySlice-DSbBbPs_.js.map → strategySlice-CwiREA17.js.map} +1 -1
- package/dist/types/{MoRedirTypes-4tEJjT1g.d.ts → MoRedirTypes-CpTYupHS.d.ts} +1 -1
- package/dist/types/{PinTypes-DZyJBV0L.d.ts → PinTypes-CIvqv7K_.d.ts} +1 -1
- package/dist/types/{StrategyTypes-BCzdZy0z.d.ts → StrategyTypes-B-Uu1ERs.d.ts} +2 -2
- package/dist/types/click2smsFlow.d.ts +3 -3
- package/dist/types/moFlow.d.ts +16 -31
- package/dist/types/moRedirFlow.d.ts +13 -46
- package/dist/types/pinFlow.d.ts +13 -128
- package/dist/types/strategy.d.ts +4 -4
- package/dist/types/ussdFlow.d.ts +13 -48
- package/dist/ussdFlow.js +1 -1
- package/dist/ussdFlow.js.map +1 -1
- package/package.json +1 -1
- package/dist/strategySlice-DSbBbPs_.js +0 -2
- package/dist/tryGetIPRangeName-QW-9NgzE.js +0 -2
- package/dist/tryGetIPRangeName-QW-9NgzE.js.map +0 -1
package/dist/types/pinFlow.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as PinFlowCurrentState, M as MSISDNEntryFailure, a as MSISDNEntrySuccess, b as PINEntryFailure, c as PINEntrySuccess, I as IMsisdnSumbitNextData, d as PINEntryState, e as
|
|
2
|
-
export { E as ExtraData, n as IBackToStartPayload, o as IConfig, p as IMSISDNSubmissionResult, s as IMcpShieldResult, t as IMockPinFlowStates, k as IMsisdnSubmitErrorPayload, j as IMsisnSubmitActionPayload, q as IPINSubmissionResult, m as IPinErrorPayload, l as IPinSubmitPayload,
|
|
1
|
+
import { P as PinFlowCurrentState, M as MSISDNEntryFailure, a as MSISDNEntrySuccess, b as PINEntryFailure, c as PINEntrySuccess, I as IMsisdnSumbitNextData, d as PINEntryState, e as PinFlowState, f as IHash } from './PinTypes-CIvqv7K_.js';
|
|
2
|
+
export { E as ExtraData, n as IBackToStartPayload, o as IConfig, p as IMSISDNSubmissionResult, s as IMcpShieldResult, t as IMockPinFlowStates, k as IMsisdnSubmitErrorPayload, j as IMsisnSubmitActionPayload, q as IPINSubmissionResult, m as IPinErrorPayload, l as IPinSubmitPayload, h as MSISDNEntryErrorTypes, g as MSISDNEntryState, r as MultiOperatorMSISDNSubmissionResult, i as PINEntryErrorTypes, S as SingleMSISDNSubmissionResult } from './PinTypes-CIvqv7K_.js';
|
|
3
3
|
import { useSelector } from 'react-redux';
|
|
4
4
|
import { R as RemoteDataState } from './RemoteDataState-D1aFrz8W.js';
|
|
5
5
|
import * as _reduxjs_toolkit from '@reduxjs/toolkit';
|
|
@@ -57,131 +57,16 @@ declare const submitPinAction: _reduxjs_toolkit.AsyncThunk<PINEntryState, Submit
|
|
|
57
57
|
fulfilledMeta?: unknown;
|
|
58
58
|
rejectedMeta?: unknown;
|
|
59
59
|
}>;
|
|
60
|
-
declare const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
error: {
|
|
70
|
-
errorType: string;
|
|
71
|
-
message?: string;
|
|
72
|
-
error?: any;
|
|
73
|
-
productUrl?: string;
|
|
74
|
-
};
|
|
75
|
-
} | {
|
|
76
|
-
type: "Success";
|
|
77
|
-
data: {
|
|
78
|
-
[x: string]: unknown;
|
|
79
|
-
};
|
|
80
|
-
};
|
|
81
|
-
data?: {
|
|
82
|
-
actualPIN: string;
|
|
83
|
-
msisdn: string;
|
|
84
|
-
operator: string;
|
|
85
|
-
pinMaxLength: number;
|
|
86
|
-
userType?: string;
|
|
87
|
-
};
|
|
88
|
-
} | {
|
|
89
|
-
type: "PINEntry";
|
|
90
|
-
result: {
|
|
91
|
-
type: "NothingYet";
|
|
92
|
-
} | {
|
|
93
|
-
type: "Loading";
|
|
94
|
-
} | {
|
|
95
|
-
type: "Failure";
|
|
96
|
-
error: {
|
|
97
|
-
errorType: PINEntryErrorTypes;
|
|
98
|
-
message?: string;
|
|
99
|
-
error?: {
|
|
100
|
-
name: string;
|
|
101
|
-
message: string;
|
|
102
|
-
stack?: string;
|
|
103
|
-
};
|
|
104
|
-
productUrl?: string;
|
|
105
|
-
};
|
|
106
|
-
} | {
|
|
107
|
-
type: "Success";
|
|
108
|
-
data: {
|
|
109
|
-
finalUrl: string;
|
|
110
|
-
msisdn?: string;
|
|
111
|
-
isAlreadySubscribed?: boolean;
|
|
112
|
-
};
|
|
113
|
-
};
|
|
114
|
-
data?: {
|
|
115
|
-
actualPIN: string;
|
|
116
|
-
msisdn: string;
|
|
117
|
-
operator: string;
|
|
118
|
-
pinMaxLength: number;
|
|
119
|
-
userType?: string;
|
|
120
|
-
};
|
|
121
|
-
};
|
|
122
|
-
}, redux.UnknownAction, {
|
|
123
|
-
currentState: {
|
|
124
|
-
type: "MSISDNEntry";
|
|
125
|
-
result: {
|
|
126
|
-
type: "NothingYet";
|
|
127
|
-
} | {
|
|
128
|
-
type: "Loading";
|
|
129
|
-
} | {
|
|
130
|
-
type: "Failure";
|
|
131
|
-
error: {
|
|
132
|
-
errorType: string;
|
|
133
|
-
message?: string;
|
|
134
|
-
error?: any;
|
|
135
|
-
productUrl?: string;
|
|
136
|
-
};
|
|
137
|
-
} | {
|
|
138
|
-
type: "Success";
|
|
139
|
-
data: {
|
|
140
|
-
[x: string]: unknown;
|
|
141
|
-
};
|
|
142
|
-
};
|
|
143
|
-
data?: {
|
|
144
|
-
actualPIN: string;
|
|
145
|
-
msisdn: string;
|
|
146
|
-
operator: string;
|
|
147
|
-
pinMaxLength: number;
|
|
148
|
-
userType?: string;
|
|
149
|
-
};
|
|
150
|
-
} | {
|
|
151
|
-
type: "PINEntry";
|
|
152
|
-
result: {
|
|
153
|
-
type: "NothingYet";
|
|
154
|
-
} | {
|
|
155
|
-
type: "Loading";
|
|
156
|
-
} | {
|
|
157
|
-
type: "Failure";
|
|
158
|
-
error: {
|
|
159
|
-
errorType: PINEntryErrorTypes;
|
|
160
|
-
message?: string;
|
|
161
|
-
error?: {
|
|
162
|
-
name: string;
|
|
163
|
-
message: string;
|
|
164
|
-
stack?: string;
|
|
165
|
-
};
|
|
166
|
-
productUrl?: string;
|
|
167
|
-
};
|
|
168
|
-
} | {
|
|
169
|
-
type: "Success";
|
|
170
|
-
data: {
|
|
171
|
-
finalUrl: string;
|
|
172
|
-
msisdn?: string;
|
|
173
|
-
isAlreadySubscribed?: boolean;
|
|
174
|
-
};
|
|
175
|
-
};
|
|
176
|
-
data?: {
|
|
177
|
-
actualPIN: string;
|
|
178
|
-
msisdn: string;
|
|
179
|
-
operator: string;
|
|
180
|
-
pinMaxLength: number;
|
|
181
|
-
userType?: string;
|
|
182
|
-
};
|
|
183
|
-
};
|
|
60
|
+
declare const backToStartAction: _reduxjs_toolkit.AsyncThunk<any, any, {
|
|
61
|
+
rejectValue: any;
|
|
62
|
+
state?: unknown;
|
|
63
|
+
dispatch?: redux.Dispatch<redux.UnknownAction>;
|
|
64
|
+
extra?: unknown;
|
|
65
|
+
serializedErrorType?: unknown;
|
|
66
|
+
pendingMeta?: unknown;
|
|
67
|
+
fulfilledMeta?: unknown;
|
|
68
|
+
rejectedMeta?: unknown;
|
|
184
69
|
}>;
|
|
185
|
-
declare const
|
|
70
|
+
declare const pinFlowReducer: redux.Reducer<PinFlowState, redux.UnknownAction, PinFlowState>;
|
|
186
71
|
|
|
187
|
-
export { IHash, IMsisdnSumbitNextData, MSISDNEntryFailure, MSISDNEntrySuccess,
|
|
72
|
+
export { IHash, IMsisdnSumbitNextData, MSISDNEntryFailure, MSISDNEntrySuccess, PINEntryFailure, PINEntryState, PINEntrySuccess, PinFlowCurrentState, PinFlowState, backToStartAction, pinFlowMatch, pinFlowReducer, submitMSISDNAction, submitPinAction, usePinFlowState };
|
package/dist/types/strategy.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { R as RemoteDataState } from './RemoteDataState-D1aFrz8W.js';
|
|
2
2
|
export { a as RDS } from './RemoteDataState-D1aFrz8W.js';
|
|
3
|
-
import { S as StrategyCurrentState, I as IDENTIFYMSISDNEntryFailure, a as IDENTIFYMSISDNEntrySuccess, P as PossibleTypes, C as ConfigDetails$1, b as StrategyState } from './StrategyTypes-
|
|
4
|
-
export { Q as ExtraStrategyData, H as HEResult, d as IConfig, s as IDENTIFYFailure, j as IDENTIFYMSISDNEntryErrorTypes, t as IDENTIFYSuccess, p as IDENTIFY_FLOW_HESuccess, o as IDENTIFY_OPERATOR_MSISDNEntrySuccess, m as IDETECTYOPERATOBYIPFailure, n as IDETECTYOPERATOBYIPSuccess, v as IDetectOperatorByIpPayload, f as IFlow, i as IHash, D as IIdentfyFlowByIPOperatorNextAction, A as IIdentfyFlowByMsisdnNextAction, B as IIdentfyFlowByOperatorNextAction, z as IIdentifyFlowByHePayload, y as IIdentifyFlowByIpOperatorPayload, c as IIdentifyResult, F as IIdenyifyFlowByMsisdnPayload, E as IIdenyifyFlowByMsisdnSumbitNextData, G as IIdenyifyStrategyPayload, M as IMockFlowParams, L as IMockFlows, R as IMockPinFlowStates, u as IOperatorSelectFlowIdentifyPayload, w as IOperatorSelectPayload, N as IScriptHeaderEnrichmentSuccess, h as IStrategy, J as IStrategyCurrentState, K as IStrategyIDentifyUserResult, x as ISubmitMsisdnPayload, e as ISupportedFlows, k as IdentifyFlowOptionsResult, O as OPERATORSelectFailure, q as OPERATORSelectFlowIdentifyFailure, r as OPERATORSelectFlowIdentifySuccess, l as OPERATORSelectSuccess, T as RootState, g as StrategyConfig } from './StrategyTypes-
|
|
3
|
+
import { S as StrategyCurrentState, I as IDENTIFYMSISDNEntryFailure, a as IDENTIFYMSISDNEntrySuccess, P as PossibleTypes, C as ConfigDetails$1, b as StrategyState } from './StrategyTypes-B-Uu1ERs.js';
|
|
4
|
+
export { Q as ExtraStrategyData, H as HEResult, d as IConfig, s as IDENTIFYFailure, j as IDENTIFYMSISDNEntryErrorTypes, t as IDENTIFYSuccess, p as IDENTIFY_FLOW_HESuccess, o as IDENTIFY_OPERATOR_MSISDNEntrySuccess, m as IDETECTYOPERATOBYIPFailure, n as IDETECTYOPERATOBYIPSuccess, v as IDetectOperatorByIpPayload, f as IFlow, i as IHash, D as IIdentfyFlowByIPOperatorNextAction, A as IIdentfyFlowByMsisdnNextAction, B as IIdentfyFlowByOperatorNextAction, z as IIdentifyFlowByHePayload, y as IIdentifyFlowByIpOperatorPayload, c as IIdentifyResult, F as IIdenyifyFlowByMsisdnPayload, E as IIdenyifyFlowByMsisdnSumbitNextData, G as IIdenyifyStrategyPayload, M as IMockFlowParams, L as IMockFlows, R as IMockPinFlowStates, u as IOperatorSelectFlowIdentifyPayload, w as IOperatorSelectPayload, N as IScriptHeaderEnrichmentSuccess, h as IStrategy, J as IStrategyCurrentState, K as IStrategyIDentifyUserResult, x as ISubmitMsisdnPayload, e as ISupportedFlows, k as IdentifyFlowOptionsResult, O as OPERATORSelectFailure, q as OPERATORSelectFlowIdentifyFailure, r as OPERATORSelectFlowIdentifySuccess, l as OPERATORSelectSuccess, T as RootState, g as StrategyConfig } from './StrategyTypes-B-Uu1ERs.js';
|
|
5
5
|
import { useSelector } from 'react-redux';
|
|
6
6
|
import * as _reduxjs_toolkit from '@reduxjs/toolkit';
|
|
7
7
|
import * as _reduxjs_toolkit_dist_createAsyncThunk from '@reduxjs/toolkit/dist/createAsyncThunk';
|
|
@@ -9,10 +9,10 @@ import { C as ConfigDetails } from './Strategy-BMpqb_fA.js';
|
|
|
9
9
|
import * as redux from 'redux';
|
|
10
10
|
import './Click2smsTypes-BbhnGxiA.js';
|
|
11
11
|
import './CreditCardTypes-CyluWBTE.js';
|
|
12
|
-
import './MoRedirTypes-
|
|
12
|
+
import './MoRedirTypes-CpTYupHS.js';
|
|
13
13
|
import './MoTypes-D-UK92gs.js';
|
|
14
14
|
import './OneClickTypes-CgHVbYo3.js';
|
|
15
|
-
import './PinTypes-
|
|
15
|
+
import './PinTypes-CIvqv7K_.js';
|
|
16
16
|
import './UssdTypes-C7QlIW11.js';
|
|
17
17
|
|
|
18
18
|
declare const useStrategyState: (useSelector: typeof useSelector) => StrategyCurrentState;
|
package/dist/types/ussdFlow.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { M as MSISDNEntryState, a as MSISDNEntryFailure, b as MSISDNEntrySuccess, c as UssdFlowCurrentState,
|
|
2
|
-
export { I as IKeywordShortcode, e as IMSISDNSubmissionResult, f as IMockUssdFlowStates,
|
|
1
|
+
import { M as MSISDNEntryState, a as MSISDNEntryFailure, b as MSISDNEntrySuccess, c as UssdFlowCurrentState, U as UssdFlowState } from './UssdTypes-C7QlIW11.js';
|
|
2
|
+
export { I as IKeywordShortcode, e as IMSISDNSubmissionResult, f as IMockUssdFlowStates, d as MSISDNEntryErrorTypes } from './UssdTypes-C7QlIW11.js';
|
|
3
3
|
import { useSelector } from 'react-redux';
|
|
4
4
|
import { R as RemoteDataState } from './RemoteDataState-D1aFrz8W.js';
|
|
5
5
|
import * as _reduxjs_toolkit from '@reduxjs/toolkit';
|
|
@@ -34,51 +34,16 @@ declare const submitMSISDNAction: _reduxjs_toolkit.AsyncThunk<MSISDNEntryState,
|
|
|
34
34
|
fulfilledMeta?: unknown;
|
|
35
35
|
rejectedMeta?: unknown;
|
|
36
36
|
}>;
|
|
37
|
-
declare const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
};
|
|
37
|
+
declare const backToStartAction: _reduxjs_toolkit.AsyncThunk<any, any, {
|
|
38
|
+
rejectValue: any;
|
|
39
|
+
state?: unknown;
|
|
40
|
+
dispatch?: redux.Dispatch<redux.UnknownAction>;
|
|
41
|
+
extra?: unknown;
|
|
42
|
+
serializedErrorType?: unknown;
|
|
43
|
+
pendingMeta?: unknown;
|
|
44
|
+
fulfilledMeta?: unknown;
|
|
45
|
+
rejectedMeta?: unknown;
|
|
81
46
|
}>;
|
|
82
|
-
declare const
|
|
47
|
+
declare const ussdFlowReducer: redux.Reducer<UssdFlowState, redux.UnknownAction, UssdFlowState>;
|
|
83
48
|
|
|
84
|
-
export {
|
|
49
|
+
export { MSISDNEntryFailure, MSISDNEntryState, MSISDNEntrySuccess, UssdFlowCurrentState, UssdFlowState, backToStartAction, submitMSISDNAction, useUssdFlowState, ussdFlowMatch, ussdFlowReducer };
|
package/dist/ussdFlow.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter as t,__generator as r,__assign as e,__read as n}from"tslib";import{createAsyncThunk as s,createSlice as
|
|
1
|
+
import{__awaiter as t,__generator as r,__assign as e,__read as n}from"tslib";import{createAsyncThunk as s,createSlice as o}from"@reduxjs/toolkit";import{S as a,L as i,F as c,N 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{i as v}from"./strategySlice-CwiREA17.js";import"./helpers-xPhGBX-B.js";import"pacman-client";import"uuid";import"./getConfig.js";import"./formatNumberToE164-Bd0VHMHJ.js";var p=function(t){return t((function(t){return t.ussdFlow.currentState}))};function S(t){var r=t.msisdnEntry;return function(t){return t.type,r(t.result)}}var y=function(s,o,a,i,c,u,d,l,m){return t(void 0,void 0,void 0,(function(){var t,f,v;return r(this,(function(r){return t=new URLSearchParams(e({action:"ussd",slug:o,country:a,msisdn:i,device:c,offerId:u.toString(),rockman_id:d},l&&{search:l})),m&&m.split("&").forEach((function(r){var e=n(r.split("="),2),s=e[0],o=e[1];s&&t.append(s,o)})),f=s.DEV_BASE_URL||"",v="".concat(f,"/tallyman/v1/?").concat(t.toString()),[2,fetch(v).then((function(t){return t.json()}))]}))}))};function h(n,s,o,a){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,o,a)]}))}))}function w(e,n,s,o){return t(this,void 0,void 0,(function(){var t,a,i,c,u,d,l,m,f,v,p;return r(this,(function(r){switch(r.label){case 0:return t=n.slug,a=n.country,i=n.device,c=n.offer,u=e.location.search.substr(1)||"",d=o?"&".concat(Object.keys(o).map((function(t){return"".concat(t,"=").concat(o[t])})).join("&")):"",l=s.match(/\d+/gi).join(""),m=e.pac_analytics.visitor.rockmanId,[4,y(e,t,a,l,i,c,m,u,d)];case 1:if(!1===(f=r.sent()).success)throw v="ALREADY SUBSCRIBED"===f.message?"AlreadySubscribed":"InvalidMSISDN",(p=new Error("".concat(v,":\n").concat(f.message))).type=v,console.error(p),p;return[2,f]}}))}))}var b={currentState:{type:"MSISDNEntry",result:a({keyword:"TEST OK",shortcode:"777"})}},I={currentState:{type:"MSISDNEntry",result:c({errorType:"InvalidMSISDN",error:"Invalid Mobile Number"})}},E={currentState:{type:"MSISDNEntry",result:u()}},j=function(t){var r=l(t);if(!r["mock-flow"])return E;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"),E}}(window),g=s("ussdFlow/submitMSISDNAction",(function(n,s){var o=n.window,i=n.msisdn,c=n.extraParams,u=s.getState,l=s.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,n,s,v,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:i}),[4,h(o,n,i,c)];case 2:return s=r.sent(),f.advancedInFlow("tallyman.v1-ussd","msisdn-submission-success",{msisdn:i}),c&&c.storeMsisdn&&"true"===c.storeMsisdn?[4,m(i).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:o,flow:"tallyman.v1-ussd",action:"sale",args:{msisdn:i}}),[2,{type:"MSISDNEntry",result:a(e({},s))}];case 5:switch(v=r.sent(),console.warn(v),p=void 0,v.type){case"AlreadySubscribed":p="AlreadySubscribed";break;case"InvalidMSISDN":p="InvalidMSISDN";break;default:p="UnknownError"}return f.recedeInFlow("tallyman.v1-ussd","msisdn-submission-failure",{msisdn:i,errorType:p||"UnknownError"}),[2,l({errorType:p,productUrl:v.productUrl})];case 6:return[2]}}))}))})),M=s("moRedirFlow/backToStartAction",(function(e,n){var s=n.dispatch,o=n.rejectWithValue;return t(void 0,void 0,void 0,(function(){return r(this,(function(t){try{f.recedeInFlow("tallyman.v1-ussd","ussd-state","requested to change phone number"),s(v())}catch(t){return console.warn(t),[2,o({errorType:"UnexpectedState"})]}return[2]}))}))})),D=o({name:"ussdFlow",initialState:j,reducers:{},extraReducers:function(t){t.addCase(g.pending,(function(t){t.currentState={type:"MSISDNEntry",result:i()}})).addCase(g.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(g.rejected,(function(t,r){t.currentState={type:"MSISDNEntry",result:c(r.payload)}}))}}),k=D.reducer;D.actions;export{M as backToStartAction,g as submitMSISDNAction,p as useUssdFlowState,S as ussdFlowMatch,k as ussdFlowReducer};
|
|
2
2
|
//# sourceMappingURL=ussdFlow.js.map
|
package/dist/ussdFlow.js.map
CHANGED
|
@@ -1 +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":"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"}
|
|
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 { identifyStrategy } from '../strategy';\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\nexport const backToStartAction = createAsyncThunk<\n any,\n any,\n {\n rejectValue: any; // Type for rejectWithValue\n }\n>('moRedirFlow/backToStartAction', async (_, { dispatch, rejectWithValue }) => {\n try {\n tracker.recedeInFlow('tallyman.v1-ussd', 'ussd-state', 'requested to change phone number');\n dispatch(identifyStrategy());\n } catch (ex) {\n console.warn(ex);\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\n }\n});\n\nconst ussdFlowSlice = createSlice({\n name: 'ussdFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading() };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: ussdFlowReducer, actions: ussdFlowActions } = ussdFlowSlice;\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","backToStartAction","_","dispatch","identifyStrategy","ex","ussdFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","ussdFlowReducer","reducer","actions"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{__awaiter as e,__generator as t,__assign as r}from"tslib";import{createAsyncThunk as o,createSlice as n}from"@reduxjs/toolkit";import{N as i,S as a,L as s,F as l}from"./RemoteDataState-lcf8PfJd.js";import{searchToObject as d}from"./searchToObject.js";import{getConfig as u}from"./getConfig.js";import{t as c}from"./tryGetIPRangeName-QW-9NgzE.js";import{f}from"./formatNumberToE164-Bd0VHMHJ.js";import{t as v}from"./tracker-DaaILhEr.js";var p;!function(e){e.IDENTIFY_STRATEGY="IDENTIFY_STRATEGY",e.IDENTIFY_FLOW_BY_MSISDN="IDENTIFY_FLOW_BY_MSISDN",e.IDENTIFY_FLOW_BY_OPERATOR_SELECT="IDENTIFY_FLOW_BY_OPERATOR_SELECT",e.PIN="PIN",e.MO="MO",e.MO_REDIR="MO_REDIR",e.ONE_CLICK="ONE_CLICK",e.CLICK2SMS="CLICK2SMS",e.USSD="USSD",e.TPAY_HE="TPAY_HE",e.CREDIT_CARD="CREDIT_CARD"}(p||(p={}));var w=function(r){var o=r.window,n=r.slug,i=r.country,a=r.msisdn,s=r.device,l=r.offer,d=r.rockmanId;return e(void 0,void 0,void 0,(function(){var e,r,u,c,f;return t(this,(function(t){switch(t.label){case 0:return e=o.languageCode||"",r=encodeURIComponent(o.location.href),u=o.DEV_BASE_URL||"",c=new URLSearchParams({action:"identify",slug:n,country:i,msisdn:a,device:s,offerId:l,rockman_id:d,page:r,language_code:e}).toString(),f="".concat(u,"/tallyman/v1/?").concat(c),[4,fetch(f)];case 1:return[2,t.sent().json()]}}))}))},m={mo:p.MO,pin:p.PIN,oneClick:p.ONE_CLICK,moRedir:p.MO_REDIR,click2sms:p.CLICK2SMS,ussd:p.USSD,tpayHe:p.TPAY_HE,creditCard:p.CREDIT_CARD},g={mo:"Msisdn to sms",pin:"Pin",oneClick:"3G click",moRedir:"Redirect",click2sms:"Click to sms",tpayHe:"Pin",ussd:"Msisdn to sms"},y=function(e){return g[e]};function E(o){var n,i,a,s,l=o.window,d=o.internationalMSISDN,u=o.configs;return e(this,void 0,void 0,(function(){var o,c,f,v,p,m,g,y,E,S,I=this;return t(this,(function(C){switch(C.label){case 0:if(!d)throw(S=new Error("Error in submitMSISDN() identify action")).type="SEInvalidMSISDN",S;return o=(null===(n=d.match(/\d+/gi))||void 0===n?void 0:n.join(""))||"",c=null===(i=null==u?void 0:u.strategyConfigs)||void 0===i?void 0:i.default,f=c.flowConfig,v=null===(a=null==u?void 0:u.strategyConfigs)||void 0===a?void 0:a.operators,p=function(){return e(I,void 0,void 0,(function(){var e,r,n,i,a;return t(this,(function(t){switch(t.label){case 0:return e=f.slug,r=f.country,n=f.device,i=l.pac_analytics.visitor.rockmanId,a=l.pac_analytics.visitor.offer,[4,w({window:l,slug:e,country:r,msisdn:o,device:n,offer:a,rockmanId:i})];case 1:return[2,t.sent()]}}))}))},[4,p()];case 1:if(m=C.sent(),g=v[m.operator]?v[m.operator]:null,y=!1===m.success&&"Operator could not be found for the given MSISDN"===m.message,E=!1===m.success&&-1!==(null===(s=m.message)||void 0===s?void 0:s.indexOf("HLR did not find the operator for given MSISDN")),y||E)throw(S=new Error("Error in submitMSISDN() identify action")).type="FlowDetectFailed",S.msisdn=o,S;if(null!==g)return[2,r({operator:m.operator,default:c},g)];if(null===g)return[2,r({operator:m.operator},c)];throw(S=new Error("Error in submitMSISDN() identify action")).type="SEInvalidMSISDN",S}}))}))}function S(e){var t,o,n=e.configs,i=e.operator,a=null===(t=null==n?void 0:n.strategyConfigs)||void 0===t?void 0:t.default,s=null===(o=null==n?void 0:n.strategyConfigs)||void 0===o?void 0:o.operators;return r({operator:null==i?void 0:i.toUpperCase(),default:a},s[null==i?void 0:i.toUpperCase()])}function I(r){var o=r.window,n=r.configs;return e(this,void 0,void 0,(function(){var e;return t(this,(function(t){switch(t.label){case 0:return[4,c(o.pac_analytics.visitor)];case 1:return e=t.sent(),[2,S({configs:n,operator:e&&e.includes("_")?e.toUpperCase():""})]}}))}))}var C=function(){return{type:p.IDENTIFY_FLOW_BY_MSISDN,result:i()}},h=o("strategy/submitMSISDNAction",(function(r,o){var n=r.window,a=r.msisdn,s=o.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,r,o,l,d,c,f,p,w;return t(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),e=u(),[4,E({window:n,internationalMSISDN:a,configs:e})];case 1:return r=t.sent(),o=null==r?void 0:r.flow,l=y(o),d=null===(w=null==e?void 0:e.strategyConfigs)||void 0===w?void 0:w.default,c=null==d?void 0:d.flow,m[o]?(v.sendOptInFlowEvent(l),[2,{type:m[o],result:i(),data:{config:r.flowConfig,operator:r.operator,msisdn:a}}]):[2,{type:m[c],result:i(),data:{config:null==d?void 0:d.flowConfig}}];case 2:switch(f=t.sent(),p=void 0,f.type){case"SEAlreadySubscribed":p="AlreadySubscribed";break;case"SEInvalidMSISDN":p="InvalidMSISDN";break;default:p="UnknownError"}return[2,s({errorType:p,error:f,productUrl:f.productUrl})];case 3:return[2]}}))}))})),_=function(){var e=function(e){var t,r=e.configs,o=null===(t=null==r?void 0:r.strategyConfigs)||void 0===t?void 0:t.operators;return Object.keys(o)}({configs:u()});return{type:p.IDENTIFY_FLOW_BY_OPERATOR_SELECT,result:i(),data:{operators:e}}},D=o("strategy/selectOperatorAction",(function(r,o){var n=r.operator,a=o.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,r,o,s;return t(this,(function(t){try{return e=u(),r=S({configs:e,operator:n}),o=r.flow,s=y(o),v.sendOptInFlowEvent(s),[2,{type:m[o],result:i(),data:{config:r.flowConfig,operator:r.operator}}]}catch(e){return"UnkownError",[2,a({errorType:"UnkownError",error:e.toString()})]}return[2]}))}))})),T=function(r){return e(void 0,void 0,void 0,(function(){var e,o,n,a,s,l,d,c;return t(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),e=u(),[4,I({window:window,configs:e})];case 1:return o=t.sent(),n=null===(c=null==e?void 0:e.strategyConfigs)||void 0===c?void 0:c.default,a=null==n?void 0:n.flow,o.flow||"all-flows-detect-operator-by-ip-or-ask-mobile-number"!==r?o.flow||"all-flows-detect-operator-by-ip-or-ask-operator"!==r?(s=o.flow,m[s]?(l=y(s),v.sendOptInFlowEvent(l),[2,{type:m[s],result:i(),data:{config:o.flowConfig,operator:o.operator}}]):[2,{type:m[a],result:i(),data:{config:null==n?void 0:n.flowConfig}}]):[2,_()]:[2,C()];case 2:return d=t.sent(),console.error("error",d),[3,3];case 3:return[2]}}))}))},O=function(e){return{type:p.PIN,result:i(),data:{config:e}}},N=function(r){var o=r.window;return e(void 0,void 0,void 0,(function(){var e,r,n,i,s;return t(this,(function(t){return e=u(),r=null==e?void 0:e.enableScriptTimer,n=e.strategyConfigs,i=null===(s=null==n?void 0:n.default)||void 0===s?void 0:s.flowConfig,[2,new Promise((function(e){var t,s,l,d;try{var c=null===(s=null===(t=null==o?void 0:o.pac_analytics)||void 0===t?void 0:t.visitor)||void 0===s?void 0:s.heMsisdn,w=null===(d=null===(l=null==o?void 0:o.pac_analytics)||void 0===l?void 0:l.visitor)||void 0===d?void 0:d.country;c&&w&&(c=f(c,w));var m,g=!1,y=!1;r&&(m=setTimeout((function(){var t;g||(y=!0,v.customEvent("Flow","recede-auto","msisdn-detection-failure",{errorType:"3 second timer expired"}),o.isPrelanderClicked=!0,e({type:p.PIN,result:a({}),data:{config:null===(t=null==n?void 0:n.default)||void 0===t?void 0:t.flowConfig}}))}),3e3));var E=function(t){var n=t.detail;if((null==n?void 0:n.msisdn)&&(c=f(n.msisdn,w),o.msisdn=c),r){if(!y){g=!0,clearTimeout(m),v.customEvent("Flow","advance-auto","msisdn-detected",{msisdn:c});var i=S({configs:u(),operator:null==n?void 0:n.operator_code});o.removeEventListener("he-success",E),o.removeEventListener("he-fail",I),e(R(i,c,null==n?void 0:n.operator_code,!0))}}else{v.customEvent("Flow","advance-auto","msisdn-detected",{msisdn:c,operator:null==n?void 0:n.operator_code});i=S({configs:u(),operator:null==n?void 0:n.operator_code});o.removeEventListener("he-success",E),o.removeEventListener("he-fail",I),e(R(i,c,null==n?void 0:n.operator_code,!0))}},I=function(){o.removeEventListener("he-success",E),o.removeEventListener("he-fail",I),e(O(i))};if(o.addEventListener("he-success",E),o.addEventListener("he-fail",I),!(null==o?void 0:o.heScriptUrl))return v.customEvent("Flow","recede-auto","msisdn-detection-failure",{errorType:"Error he script url not set"}),void o.dispatchEvent(new Event("he-fail"));var C=document.createElement("script");C.type="text/javascript",C.id="he-js-link",C.src="".concat(o.heScriptUrl),C.referrerPolicy="origin",document.head.appendChild(C),C.onerror=function(){console.error("Error loading Header Enrichment script."),v.customEvent("Flow","recede-auto","msisdn-detection-failure",{errorType:"Error loading Header Enrichment script."}),o.dispatchEvent(new Event("he-fail"))}}catch(t){console.error("Error in header enrichment:",t),e(O(i))}}))]}))}))},R=function(e,t,r,o){var n,a;void 0===t&&(t=null),void 0===r&&(r=null);var s=null===(n=u().strategyConfigs)||void 0===n?void 0:n.default,l=null==s?void 0:s.flow,d=e.flow||(null===(a=e.default)||void 0===a?void 0:a.flow),c=y(d);return v.sendOptInFlowEvent(c),e.flow?{type:m[d],result:i(),data:{config:e.flowConfig,operator:e.operator,isHeaderEnrichmentSuccess:o}}:{type:m[l],result:i(),data:{config:null==s?void 0:s.flowConfig,operator:r,msisdn:t,isHeaderEnrichmentSuccess:o}}},F={currentState:{type:p.IDENTIFY_STRATEGY,result:i(),data:void 0}},b=function(){var e=d(window);if(void 0!==e["mock-flow"])switch(void 0!==e.operator&&(window.operator=e.operator),e["mock-flow"]){case"pin":return{type:p.PIN,result:a({})};case"mo":return{type:p.MO,result:a({})};case"moredir":return{type:p.MO_REDIR,result:a({})};case"oneclick":return{type:p.ONE_CLICK,result:a({}),data:{subscription_url:e["subscription-url"]}};case"click2sms":return{type:p.CLICK2SMS,result:a({})};case"ussd":return{type:p.USSD,result:a({})};case"creditcard":return{type:p.CREDIT_CARD,result:a({})};default:throw new Error("(mockStrategyStateByUrlParam) Strategy Mock Flow not supported")}},L=o("strategy/identifyStrategy",(function(){return e(void 0,void 0,void 0,(function(){var r,o,n,s,l,c,w,g,E,I,h,D,O;return t(this,(function(R){switch(R.label){case 0:return r=u(),o=r.strategy,n=r.strategyConfigs,void 0!==(s=d(window))["mock-flow"]?[2,b()]:s["show-pin-entry"]&&"1"===s["show-pin-entry"]||s["show-thank-you"]&&"1"===s["show-thank-you"]?(l=S({configs:r,operator:s.operator}),[2,{type:p.PIN,result:a({}),data:{config:(null==l?void 0:l.flowConfig)||(null===(c=null==n?void 0:n.default)||void 0===c?void 0:c.flowConfig)}}]):o.includes("ask-operator")?[2,_()]:o.includes("detect-operator-by-ip")?[2,T(o)]:(null==o?void 0:o.includes("ask-mobile-number"))?[2,C()]:(null==o?void 0:o.includes("header-enrichment"))&&"header-enrichment-script"!==o?[4,e(void 0,void 0,void 0,(function(){var r,o,n,a,s,l,c,p,w,g,E,I;return t(this,(function(C){switch(C.label){case 0:r=u(),o=null==r?void 0:r.strategyConfigs.default,n=o.flow,C.label=1;case 1:return C.trys.push([1,5,,6]),a=d(window),(s=(null==a?void 0:a.msisdn)&&""!==(null==a?void 0:a.msisdn))&&v.customEvent("Flow","advance-auto","msisdn-detected",{msisdn:null==a?void 0:a.msisdn,operator:null==a?void 0:a.operator}),(null==a?void 0:a.operator)?"pin-header-enrichment"===r.strategy&&s?[2,{type:m[n],result:i(),data:{config:null==o?void 0:o.flowConfig,operator:(null==a?void 0:a.operator)||null,msisdn:(null==a?void 0:a.msisdn)||null,isHeaderEnrichmentSuccess:s}}]:(l=null,c=null,[4,S({operator:null==a?void 0:a.operator,configs:r})]):[2,{type:m[n],result:i(),data:{config:null==o?void 0:o.flowConfig}}];case 2:return p=C.sent(),w=p.flow||n,g=y(w),v.sendOptInFlowEvent(g),"oneClick"!==w?[3,4]:[4,e(void 0,void 0,void 0,(function(){var e,r,o,n,i,a,s,l,u;return t(this,(function(t){if("undefined"==typeof window)throw new Error("This function can only be run in a browser environment.");if("false"===(e=d(window)).success)throw new Error("Error in getRedirectUrl() identify-user action:\n".concat(e.message||"NotOn3g"));if(!(r=e.subscription_url||e.redirect_url))throw new Error("No URL provided for redirection");return o=window.atob(r),n=new URL(o),i=new URLSearchParams(n.search),a=i.get("msisdn")||e.msisdn,s=i.get("operator")||e.operator,a&&(a=f(a,null===(u=null===(l=null===window||void 0===window?void 0:window.pac_analytics)||void 0===l?void 0:l.visitor)||void 0===u?void 0:u.country)),[2,{msisdn:a||"",operator:s||"",subscription_url:e.subscription_url?o:void 0,redirect_url:e.redirect_url?o:void 0}]}))}))];case 3:E=C.sent(),l=(null==E?void 0:E.subscription_url)||null,c=(null==E?void 0:E.redirect_url)||null,C.label=4;case 4:return[2,{type:m[w],result:i(),data:{config:p.flowConfig,operator:p.operator,subscription_url:l||null,redirect_url:c||null,isHeaderEnrichmentSuccess:s}}];case 5:return I=C.sent(),console.error("error",I),[2,{type:m[n],result:i(),data:{config:null==o?void 0:o.flowConfig}}];case 6:return[2]}}))}))]:[3,2];case 1:return[2,R.sent()];case 2:switch(o){case"header-enrichment-script":return[2,N({window:window})];case"pin":return v.sendOptInFlowEvent("Pin"),[2,{type:p.PIN,result:a({}),data:{config:null===(w=null==n?void 0:n.default)||void 0===w?void 0:w.flowConfig}}];case"mo":return v.sendOptInFlowEvent("Msisdn to sms"),[2,{type:p.MO,result:a({}),data:{config:null===(g=null==n?void 0:n.default)||void 0===g?void 0:g.flowConfig}}];case"mo-redir":return[2,{type:p.MO_REDIR,result:a({}),data:{config:null===(E=null==n?void 0:n.default)||void 0===E?void 0:E.flowConfig}}];case"one-click":return v.sendOptInFlowEvent("Redirect"),[2,{type:p.ONE_CLICK,result:a({}),data:{config:null===(I=null==n?void 0:n.default)||void 0===I?void 0:I.flowConfig}}];case"click2sms":return v.sendOptInFlowEvent("Click to sms"),[2,{type:p.CLICK2SMS,result:a({}),data:{config:null===(h=null==n?void 0:n.default)||void 0===h?void 0:h.flowConfig}}];case"ussd":return v.sendOptInFlowEvent("USSD"),[2,{type:p.USSD,result:a({}),data:{config:null===(D=null==n?void 0:n.default)||void 0===D?void 0:D.flowConfig}}];case"credit-card":return v.sendOptInFlowEvent("Credit card"),[2,{type:p.CREDIT_CARD,result:a({}),data:{config:null===(O=null==n?void 0:n.default)||void 0===O?void 0:O.flowConfig}}];default:throw new Error("Strategy not supported")}}}))}))})),k=o("strategy/setStrategyExtraData",(function(r){var o=r.type,n=r.data;return e(void 0,void 0,void 0,(function(){return t(this,(function(e){return[2,{type:o,result:i(),data:n}]}))}))})),M=n({name:"strategy",initialState:F,reducers:{},extraReducers:function(e){e.addCase(L.pending,(function(e){e.currentState={type:p.IDENTIFY_STRATEGY,result:s()}})).addCase(L.fulfilled,(function(e,t){e.currentState=t.payload})).addCase(L.rejected,(function(e,t){e.currentState={type:p.IDENTIFY_STRATEGY,result:l(t.error.message)}})).addCase(h.pending,(function(e){e.currentState={type:p.IDENTIFY_FLOW_BY_MSISDN,result:s()}})).addCase(h.fulfilled,(function(e,t){e.currentState=t.payload})).addCase(h.rejected,(function(e,t){e.currentState={type:p.IDENTIFY_FLOW_BY_MSISDN,result:l(t.payload)}})).addCase(k.fulfilled,(function(e,t){e.currentState=t.payload})).addCase(D.pending,(function(e){e.currentState={type:p.IDENTIFY_FLOW_BY_OPERATOR_SELECT,result:s()}})).addCase(D.fulfilled,(function(e,t){e.currentState=t.payload})).addCase(D.rejected,(function(e,t){e.currentState={type:p.IDENTIFY_FLOW_BY_OPERATOR_SELECT,result:l(t.payload)}}))}}).reducer;export{p as P,D as a,M as b,k as c,L as i,h as s};
|
|
2
|
-
//# sourceMappingURL=strategySlice-DSbBbPs_.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{__awaiter as n,__generator as e}from"tslib";import{q as o}from"./tracker-DaaILhEr.js";function t(t){return n(this,void 0,void 0,(function(){var n,r,i,a,c;return e(this,(function(e){switch(e.label){case 0:if(n=o(window.location.href,"mock-ip")||process.env.mock_ip,console.log("mockip",n),t.ip||"undefined"==typeof window)return[3,5];e.label=1;case 1:return e.trys.push([1,3,,4]),r=window.location.host,i=window.DEV_BASE_URL_IP||r,[4,fetch("https://".concat(i,"/api/v1/ip").concat(n?"?mock-ip=".concat(n):"")).then((function(n){return n.json()}))];case 2:return a=e.sent(),t.ip=a.ip,t.ip_range_name=a.ip_range_name,[2,a.ip_range_name];case 3:return c=e.sent(),console.warn("IP Lookup failed",c),[2,""];case 4:return[3,6];case 5:return[2,t.ip_range_name||""];case 6:return[2]}}))}))}export{t};
|
|
2
|
-
//# sourceMappingURL=tryGetIPRangeName-QW-9NgzE.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tryGetIPRangeName-QW-9NgzE.js","sources":["../src/ips/tryGetIPRangeName.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport { IVisitor } from '../common-types/IVisitor';\nimport queryString from '../pacman/queryString';\n\n// eslint-disable-next-line consistent-return\nexport default async function tryGetIPRangeName(visitor: IVisitor): Promise<string> {\n const mockip = queryString(window.location.href, 'mock-ip') || process.env.mock_ip;\n // eslint-disable-next-line no-console\n console.log('mockip', mockip);\n if (!visitor.ip && typeof window !== 'undefined') {\n try {\n const { host } = window.location;\n const newHost = window.DEV_BASE_URL_IP || host;\n const res = await fetch(`https://${newHost}/api/v1/ip${mockip ? `?mock-ip=${mockip}` : ''}`).then((x) =>\n x.json()\n );\n // return isIPInRange('37.200.146.28')\n visitor.ip = res.ip;\n visitor.ip_range_name = res.ip_range_name;\n return res.ip_range_name;\n } catch (ex) {\n console.warn('IP Lookup failed', ex);\n return '';\n }\n } else {\n return visitor.ip_range_name || '';\n }\n}\n"],"names":["tryGetIPRangeName","visitor","mockip","queryString","window","location","href","process","env","mock_ip","console","log","ip","host","newHost","DEV_BASE_URL_IP","fetch","concat","then","x","json","res","_a","sent","ip_range_name","warn","ex_1"],"mappings":"6FAK8B,SAAAA,EAAkBC,8GACxCC,EAASC,EAAYC,OAAOC,SAASC,KAAM,YAAcC,QAAQC,IAAIC,QAE3EC,QAAQC,IAAI,SAAUT,GACjBD,EAAQW,IAAwB,oBAAXR,OAAtB,MAA4C,CAAA,EAAA,oBAIhC,6BAFJS,EAAST,OAAOC,cAClBS,EAAUV,OAAOW,iBAAmBF,EACxB,CAAA,EAAAG,MAAM,WAAWC,OAAAH,uBAAoBZ,EAAS,YAAYe,OAAAf,GAAW,KAAMgB,MAAK,SAACC,GACjG,OAAAA,EAAEC,MAAM,YAKV,OANMC,EAAMC,EAEXC,OAEDtB,EAAQW,GAAKS,EAAIT,GACjBX,EAAQuB,cAAgBH,EAAIG,cACrB,CAAA,EAAAH,EAAIG,sBAGX,kBADAd,QAAQe,KAAK,mBAAoBC,GACjC,CAAA,EAAO,uBAGT,KAAA,EAAA,MAAA,CAAA,EAAOzB,EAAQuB,eAAiB,2BAEnC"}
|