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.
@@ -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 PINEntryErrorTypes, f as IHash } from './PinTypes-DZyJBV0L.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, i as MSISDNEntryErrorTypes, g as MSISDNEntryState, r as MultiOperatorMSISDNSubmissionResult, h as PinFlowState, S as SingleMSISDNSubmissionResult } from './PinTypes-DZyJBV0L.js';
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 pinFlowReducer: redux.Reducer<{
61
- currentState: {
62
- type: "MSISDNEntry";
63
- result: {
64
- type: "NothingYet";
65
- } | {
66
- type: "Loading";
67
- } | {
68
- type: "Failure";
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 backToStartAction: _reduxjs_toolkit.ActionCreatorWithoutPayload<"pinFlow/backToStartAction">;
70
+ declare const pinFlowReducer: redux.Reducer<PinFlowState, redux.UnknownAction, PinFlowState>;
186
71
 
187
- export { IHash, IMsisdnSumbitNextData, MSISDNEntryFailure, MSISDNEntrySuccess, PINEntryErrorTypes, PINEntryFailure, PINEntryState, PINEntrySuccess, PinFlowCurrentState, backToStartAction, pinFlowMatch, pinFlowReducer, submitMSISDNAction, submitPinAction, usePinFlowState };
72
+ export { IHash, IMsisdnSumbitNextData, MSISDNEntryFailure, MSISDNEntrySuccess, PINEntryFailure, PINEntryState, PINEntrySuccess, PinFlowCurrentState, PinFlowState, backToStartAction, pinFlowMatch, pinFlowReducer, submitMSISDNAction, submitPinAction, usePinFlowState };
@@ -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-BCzdZy0z.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-BCzdZy0z.js';
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-4tEJjT1g.js';
12
+ import './MoRedirTypes-CpTYupHS.js';
13
13
  import './MoTypes-D-UK92gs.js';
14
14
  import './OneClickTypes-CgHVbYo3.js';
15
- import './PinTypes-DZyJBV0L.js';
15
+ import './PinTypes-CIvqv7K_.js';
16
16
  import './UssdTypes-C7QlIW11.js';
17
17
 
18
18
  declare const useStrategyState: (useSelector: typeof useSelector) => StrategyCurrentState;
@@ -1,5 +1,5 @@
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';
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 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
- };
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 backToStartAction: _reduxjs_toolkit.ActionCreatorWithoutPayload<"ussdFlow/backToStartAction">;
47
+ declare const ussdFlowReducer: redux.Reducer<UssdFlowState, redux.UnknownAction, UssdFlowState>;
83
48
 
84
- export { MSISDNEntryErrorTypes, MSISDNEntryFailure, MSISDNEntryState, MSISDNEntrySuccess, UssdFlowCurrentState, backToStartAction, submitMSISDNAction, useUssdFlowState, ussdFlowMatch, ussdFlowReducer };
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 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"./helpers-xPhGBX-B.js";import"pacman-client";import"uuid";var S=function(t){return t((function(t){return t.ussdFlow.currentState}))};function v(t){var r=t.msisdnEntry;return function(t){return t.type,r(t.result)}}var p=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,v;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,p(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",(v=new Error("".concat(S,":\n").concat(f.message))).type=S,console.error(v),v;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),M=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,v;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),v=void 0,S.type){case"AlreadySubscribed":v="AlreadySubscribed";break;case"InvalidMSISDN":v="InvalidMSISDN";break;default:v="UnknownError"}return f.recedeInFlow("tallyman.v1-ussd","msisdn-submission-failure",{msisdn:c,errorType:v||"UnknownError"}),[2,l({errorType:v,productUrl:S.productUrl})];case 6:return[2]}}))}))})),D=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(M.pending,(function(t){t.currentState={type:"MSISDNEntry",result:i()}})).addCase(M.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(M.rejected,(function(t,r){t.currentState={type:"MSISDNEntry",result:u(r.payload)}}))}}),k=D.reducer,j=D.actions.backToStartAction;export{j as backToStartAction,M as submitMSISDNAction,S as useUssdFlowState,v as ussdFlowMatch,k as ussdFlowReducer};
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
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "ouisys-engine",
3
- "version": "5.0.79",
3
+ "version": "5.0.80",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "directories": "dist dev-tools",
@@ -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"}