ouisys-engine 5.1.26 → 5.1.27

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 CHANGED
@@ -7,7 +7,7 @@ import { searchToObject } from './searchToObject.js';
7
7
  import { s as storeMsisdn } from './storeMsisdn-ChiBh8mI.js';
8
8
  import { t as tracker } from './tracker-B_zsMRN2.js';
9
9
  import { c as cleanSearchParams } from './cleanSearchParams-B2jK3H1j.js';
10
- import { i as identifyStrategy } from './strategySlice-BcZRZ0xO.js';
10
+ import { i as identifyStrategy } from './strategySlice-BYJ-hvjQ.js';
11
11
  import 'pacman-client';
12
12
  import 'uuid';
13
13
  import './getConfig.js';
@@ -6,7 +6,7 @@ import { searchToObject } from './searchToObject.js';
6
6
  import { s as storeMsisdn } from './storeMsisdn-ChiBh8mI.js';
7
7
  import { t as tracker } from './tracker-B_zsMRN2.js';
8
8
  import { u as updateUrlWithParams } from './updateUrlWithParams-ZaZt1BCf.js';
9
- import { t as tryGetIPRangeName, i as identifyStrategy } from './strategySlice-BcZRZ0xO.js';
9
+ import { t as tryGetIPRangeName, i as identifyStrategy } from './strategySlice-BYJ-hvjQ.js';
10
10
  import { c as cleanSearchParams } from './cleanSearchParams-B2jK3H1j.js';
11
11
  import 'pacman-client';
12
12
  import 'uuid';
@@ -3,7 +3,7 @@ import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
3
3
  import { S as Success, N as NothingYet, L as Loading, F as Failure } from './RemoteDataState-CwHLI23e.js';
4
4
  import { u as updateUrlParameter, t as tracker } from './tracker-B_zsMRN2.js';
5
5
  import { searchToObject } from './searchToObject.js';
6
- import { c as setStrategyExtraData, f as flowMapping } from './strategySlice-BcZRZ0xO.js';
6
+ import { c as setStrategyExtraData, f as flowMapping } from './strategySlice-BYJ-hvjQ.js';
7
7
  import { b as bupperizeCountry } from './api-oPdBWsMC.js';
8
8
  import { l as loadScriptInnerHtml } from './loadScriptInnerHtml-CstJVRED.js';
9
9
  import { c as cleanSearchParams } from './cleanSearchParams-B2jK3H1j.js';
package/dist/pinFlow.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { __awaiter, __generator, __assign } from 'tslib';
2
2
  import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
3
3
  import { N as NothingYet, L as Loading, S as Success, F as Failure } from './RemoteDataState-CwHLI23e.js';
4
- import { i as identifyStrategy, c as setStrategyExtraData, P as PossibleTypes } from './strategySlice-BcZRZ0xO.js';
4
+ import { i as identifyStrategy, c as setStrategyExtraData, P as PossibleTypes } from './strategySlice-BYJ-hvjQ.js';
5
5
  import { h as handleResolveRedirect } from './handleResolveRedirect-5Hkm5YXF.js';
6
6
  import { r as redirectErrorTypes, g as getErrorCode } from './normaliseErrorCode-CseFd8jz.js';
7
7
  import { searchToObject } from './searchToObject.js';
@@ -20,7 +20,7 @@ export declare function determineFlowByOperatorFromIp({ window, configs }: {
20
20
  export declare function getOperators({ configs }: {
21
21
  configs: IStrategy;
22
22
  }): Array<string>;
23
- export declare const getHeaderEnrichmentResult: () => Promise<HEResult>;
23
+ export declare const getHeaderEnrichmentResult: (operator?: string) => Promise<HEResult>;
24
24
  export declare const subscribe: (_url: string) => Promise<string>;
25
25
  export declare function mockConfig({ configs, flow }: {
26
26
  configs: IStrategy;
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../src/flows/strategy/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAmB,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAK/G,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,eAAe,EAAE,aAAa,CAS9D,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,eAAe,EAAE,cAAc,CAQvE,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,eAAe,mBAAkC,CAAC;AAEhG,wBAAsB,oBAAoB,CAAC,EACzC,MAAM,EACN,mBAAmB,EACnB,OAAO,EACR,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,SAAS,CAAC;CACpB,GAAG,OAAO,CAAC,KAAK,CAAC,CAoDjB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAW9G;AAED,wBAAsB,6BAA6B,CAAC,EAClD,MAAM,EACN,OAAO,EACR,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,CAAC;CACpB,GAAG,OAAO,CAAC,KAAK,CAAC,CAOjB;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAI/E;AAED,eAAO,MAAM,yBAAyB,QAAa,QAAQ,QAAQ,CAqDlE,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAQ5C,CAAC;AAGb,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAS3F"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../src/flows/strategy/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAmB,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAK/G,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,eAAe,EAAE,aAAa,CAS9D,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,eAAe,EAAE,cAAc,CAQvE,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,eAAe,mBAAkC,CAAC;AAEhG,wBAAsB,oBAAoB,CAAC,EACzC,MAAM,EACN,mBAAmB,EACnB,OAAO,EACR,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,SAAS,CAAC;CACpB,GAAG,OAAO,CAAC,KAAK,CAAC,CAoDjB;AAED,wBAAgB,uBAAuB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAW9G;AAED,wBAAsB,6BAA6B,CAAC,EAClD,MAAM,EACN,OAAO,EACR,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,CAAC;CACpB,GAAG,OAAO,CAAC,KAAK,CAAC,CAOjB;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAI/E;AAED,eAAO,MAAM,yBAAyB,cAAqB,MAAM,KAAG,QAAQ,QAAQ,CAwDnF,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAQ5C,CAAC;AAGb,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAS3F"}
package/dist/strategy.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { R as RDS } from './RemoteDataState-CwHLI23e.js';
2
- import { P as PossibleTypes } from './strategySlice-BcZRZ0xO.js';
3
- export { i as identifyStrategy, a as selectOperatorAction, b as strategyReducer, s as submitMSISDNAction } from './strategySlice-BcZRZ0xO.js';
2
+ import { P as PossibleTypes } from './strategySlice-BYJ-hvjQ.js';
3
+ export { i as identifyStrategy, a as selectOperatorAction, b as strategyReducer, s as submitMSISDNAction } from './strategySlice-BYJ-hvjQ.js';
4
4
  import 'tslib';
5
5
  import '@reduxjs/toolkit';
6
6
  import './searchToObject.js';
@@ -186,8 +186,8 @@ function getOperators(_a) {
186
186
  var operators = Object.keys(operatorsConfig);
187
187
  return operators;
188
188
  }
189
- var getHeaderEnrichmentResult = function () { return __awaiter(void 0, void 0, void 0, function () {
190
- var searchObj, responseUrl, raw, newUrl_1, urlParams_1, locParams, msisdn_1, operator_1, newUrl, urlParams, msisdn, operator;
189
+ var getHeaderEnrichmentResult = function (operator) { return __awaiter(void 0, void 0, void 0, function () {
190
+ var searchObj, responseUrl, raw, newUrl_1, urlParams_1, locParams, msisdn_1, operatorResult_1, newUrl, urlParams, msisdn, operatorResult;
191
191
  var _a, _b, _c, _d;
192
192
  return __generator(this, function (_e) {
193
193
  if (typeof window === 'undefined') {
@@ -206,13 +206,16 @@ var getHeaderEnrichmentResult = function () { return __awaiter(void 0, void 0, v
206
206
  urlParams_1 = new URLSearchParams(newUrl_1.search);
207
207
  locParams = new URLSearchParams(window.location.search);
208
208
  msisdn_1 = urlParams_1.get('msisdn') || searchObj.msisdn;
209
- operator_1 = urlParams_1.get('operator') || searchObj.operator || locParams.get('operator') || '';
209
+ operatorResult_1 = operator || urlParams_1.get('operator') || searchObj.operator || locParams.get('operator') || '';
210
210
  if (msisdn_1) {
211
211
  msisdn_1 = formatNumberToE164(msisdn_1, (_b = (_a = window === null || window === void 0 ? void 0 : window.pac_analytics) === null || _a === void 0 ? void 0 : _a.visitor) === null || _b === void 0 ? void 0 : _b.country);
212
212
  }
213
+ if (operatorResult_1 !== '') {
214
+ newUrl_1.searchParams.set('operator', operatorResult_1);
215
+ }
213
216
  return [2 /*return*/, {
214
217
  msisdn: msisdn_1 || '',
215
- operator: operator_1 || '',
218
+ operator: operatorResult_1 || '',
216
219
  subscription_url: searchObj.subscription_url ? newUrl_1.href : undefined,
217
220
  redirect_url: searchObj.redirect_url ? raw : undefined
218
221
  }];
@@ -221,13 +224,13 @@ var getHeaderEnrichmentResult = function () { return __awaiter(void 0, void 0, v
221
224
  newUrl = new URL(window.location.href);
222
225
  urlParams = new URLSearchParams(newUrl.search);
223
226
  msisdn = urlParams.get('msisdn') || searchObj.msisdn;
224
- operator = urlParams.get('operator') || searchObj.operator;
227
+ operatorResult = urlParams.get('operator') || searchObj.operator;
225
228
  if (msisdn) {
226
229
  msisdn = formatNumberToE164(msisdn, (_d = (_c = window === null || window === void 0 ? void 0 : window.pac_analytics) === null || _c === void 0 ? void 0 : _c.visitor) === null || _d === void 0 ? void 0 : _d.country);
227
230
  }
228
231
  return [2 /*return*/, {
229
232
  msisdn: msisdn || '',
230
- operator: operator || ''
233
+ operator: operatorResult || ''
231
234
  }];
232
235
  });
233
236
  }); };
@@ -658,7 +661,7 @@ var handleHeaderEnrichment = function () { return __awaiter(void 0, void 0, void
658
661
  event_1 = getTrackerEventName(flowType);
659
662
  tracker.sendOptInFlowEvent(event_1);
660
663
  if (!(flowType === 'oneClick')) return [3 /*break*/, 7];
661
- return [4 /*yield*/, getHeaderEnrichmentResult()];
664
+ return [4 /*yield*/, getHeaderEnrichmentResult(operator && operator !== '' ? operator : null)];
662
665
  case 6:
663
666
  heResult = _o.sent();
664
667
  subscription_url = (heResult === null || heResult === void 0 ? void 0 : heResult.subscription_url) || null;
@@ -1159,4 +1162,4 @@ var strategySlice = createSlice({
1159
1162
  var strategyReducer = strategySlice.reducer;
1160
1163
 
1161
1164
  export { PossibleTypes as P, selectOperatorAction as a, strategyReducer as b, setStrategyExtraData as c, flowMapping as f, identifyStrategy as i, submitMSISDNAction as s, tryGetIPRangeName as t };
1162
- //# sourceMappingURL=strategySlice-BcZRZ0xO.js.map
1165
+ //# sourceMappingURL=strategySlice-BYJ-hvjQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategySlice-BYJ-hvjQ.js","sources":["../../src/sharedFlowTypes/StrategyTypes.ts","../../src/ips/tryGetIPRangeName.ts","../../src/flows/strategy/main.ts","../../src/flows/strategy/strategies/askMobileNumber.ts","../../src/flows/strategy/strategies/askOperator.ts","../../src/flows/strategy/strategies/callRedirectApi.ts","../../src/flows/strategy/strategies/detectOperatorByIp.ts","../../src/flows/strategy/strategies/headerEnrichment.ts","../../src/flows/strategy/strategies/injectHeaderEnrichmentScript.ts","../../src/flows/strategy/strategySlice.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable camelcase */\nimport * as RDS from '../common-types/RemoteDataState';\nimport { IStrategyNames } from '../common-types/Strategy';\nimport { Click2smsFlowState } from './Click2smsTypes';\nimport { CreditCardFlowState } from './CreditCardTypes';\nimport { MoRedirFlowState } from './MoRedirTypes';\nimport { MoFlowState } from './MoTypes';\nimport { OneClickFlowState } from './OneClickTypes';\nimport { PinFlowState } from './PinTypes';\nimport { UssdFlowState } from './UssdTypes';\n\nexport type IIdentifyResult = {\n operator: string;\n flow?: string;\n success: boolean;\n rockman_id?: string;\n message?: string;\n};\n\nexport interface HEResult {\n msisdn: string;\n operator: string;\n subscription_url?: string;\n redirect_url?: string;\n}\n\nexport type ConfigDetails = {\n host: string;\n slug: string;\n country: string;\n device?: 'smart' | 'feature';\n queryString?: Array<[string, string]>;\n automaticallySubmitAllOperators?: boolean;\n operators?: string[];\n service: string;\n offer?: string;\n};\n\nexport type IConfig = {\n offer?: string;\n slug?: string;\n country?: string;\n host?: string;\n device?: 'smart' | 'feature';\n automaticallySubmitAllOperators?: boolean;\n operators?: string[];\n service?: string;\n serviceId?: string;\n queryString?: any;\n apiAction?: any;\n};\n\nexport type ISupportedFlows = 'pin' | 'mo' | 'oneClick' | 'click2sms' | 'moRedir' | 'ussd' | 'creditCard';\nexport type IFlow = {\n flow: ISupportedFlows;\n flowOnWifi?: ISupportedFlows;\n operator?: string;\n flowConfig: ConfigDetails;\n default?: IFlow;\n rockman_id?: string;\n};\n\nexport type StrategyConfig = {\n operators: {\n [key: string]: IFlow;\n };\n default: IFlow;\n isUseMsisdnPrefix?: boolean;\n};\n// export type IStrategy = IPinStrategy | IMoStrategy;\n\nexport type IStrategy = {\n strategy: IStrategyNames;\n country: string;\n strategyConfigs: StrategyConfig;\n};\n\nexport interface IHash {\n [key: string]: string;\n}\n\nexport type IDENTIFYMSISDNEntryErrorTypes = 'AlreadySubscribed' | 'UnknownError' | 'InvalidMSISDN';\n\nexport type IDENTIFYMSISDNEntryFailure = {\n errorType: IDENTIFYMSISDNEntryErrorTypes;\n error: unknown;\n};\n\nexport type IdentifyFlowOptionsResult = {\n config: IConfig;\n nextAction?: unknown;\n msisdn?: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n rockman_id?: string;\n isHeaderEnrichmentSuccess?: boolean;\n autoRedirect?: boolean;\n isUseMsisdnPrefix?: boolean;\n};\n\nexport type IDENTIFYMSISDNEntrySuccess = {};\nexport type OPERATORSelectFailure = {};\nexport type OPERATORSelectSuccess = IdentifyFlowOptionsResult;\n\nexport type IDETECTYOPERATOBYIPFailure = {};\nexport type IDETECTYOPERATOBYIPSuccess = IdentifyFlowOptionsResult;\n\nexport type IDENTIFY_OPERATOR_MSISDNEntrySuccess = IdentifyFlowOptionsResult;\n\nexport type IDENTIFY_FLOW_HESuccess = IdentifyFlowOptionsResult;\n\nexport type OPERATORSelectFlowIdentifyFailure = {};\nexport type OPERATORSelectFlowIdentifySuccess = {\n operators: Array<string>;\n msisdn?: string;\n nextAction: 'selectOperator';\n};\nexport type IDENTIFYFailure = {};\n\nexport type IDENTIFYSuccess = {};\n\nexport type IOperatorSelectFlowIdentifyPayload = {\n type: 'IDENTIFY_FLOW_BY_OPERATOR_SELECT';\n result: RDS.RemoteDataState<OPERATORSelectFlowIdentifyFailure, OPERATORSelectFlowIdentifySuccess>;\n};\n\n// export type IIdentifyByIPPayload= {\n// type:\"IDENTIFY_FLOW_BY_IP\"\n// result: RDS.RemoteDataState<IDENTIFYBYIPFailure, IDENTIFYBYIPSuccess>;\n// }\n\nexport type IDetectOperatorByIpPayload = {\n type: 'DETECT_OPERATOR_BY_IP';\n result: RDS.RemoteDataState<IDETECTYOPERATOBYIPFailure, IDETECTYOPERATOBYIPSuccess>;\n};\n\nexport enum PossibleTypes {\n IDENTIFY_STRATEGY = 'IDENTIFY_STRATEGY',\n IDENTIFY_FLOW_BY_MSISDN = 'IDENTIFY_FLOW_BY_MSISDN',\n IDENTIFY_FLOW_BY_OPERATOR_SELECT = 'IDENTIFY_FLOW_BY_OPERATOR_SELECT',\n PIN = 'PIN',\n MO = 'MO',\n MO_REDIR = 'MO_REDIR',\n ONE_CLICK = 'ONE_CLICK',\n CLICK2SMS = 'CLICK2SMS',\n USSD = 'USSD',\n TPAY_HE = 'TPAY_HE',\n CREDIT_CARD = 'CREDIT_CARD'\n}\n\nexport type IOperatorSelectPayload = {\n type: PossibleTypes;\n result: OPERATORSelectSuccess;\n};\n\nexport type ISubmitMsisdnPayload = {\n type: PossibleTypes;\n result: IDENTIFY_OPERATOR_MSISDNEntrySuccess;\n};\n\nexport type IIdentifyFlowByIpOperatorPayload = {\n type: PossibleTypes;\n result: IDENTIFY_OPERATOR_MSISDNEntrySuccess;\n};\n\nexport type IIdentifyFlowByHePayload = {\n type: PossibleTypes;\n result: IDENTIFY_FLOW_HESuccess;\n};\n\nexport type IIdentfyFlowByMsisdnNextAction = 'submitMSISDNAction' | 'loadOc2sms';\nexport type IIdentfyFlowByOperatorNextAction = 'submitMSISDNAction' | 'loadOc2sms';\nexport type IIdentfyFlowByIPOperatorNextAction = 'getRedirectUrlAction' | 'submitMSISDNAction';\n\nexport type IIdenyifyFlowByMsisdnSumbitNextData = {\n nextAction: IIdentfyFlowByMsisdnNextAction;\n msisdn?: string;\n operator?: string;\n};\n\nexport type IIdenyifyFlowByMsisdnPayload = {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n data: IIdenyifyFlowByMsisdnSumbitNextData;\n};\n\nexport type IIdenyifyStrategyPayload = {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n data: IIdenyifyFlowByMsisdnSumbitNextData;\n};\n\nexport type IStrategyCurrentState =\n | {\n type: 'IDENTIFY_STRATEGY';\n result: RDS.RemoteDataState<IDENTIFYFailure, IDENTIFYSuccess>;\n }\n | {\n type: 'IDENTIFY_FLOW_BY_OPERATOR_SELECT';\n result: OPERATORSelectFlowIdentifySuccess;\n }\n | {\n type: 'DETECT_OPERATOR_BY_IP';\n result: RDS.RemoteDataState<IDETECTYOPERATOBYIPFailure, IDETECTYOPERATOBYIPSuccess>;\n }\n | {\n type: 'HE_IDENTIFY';\n result: RDS.RemoteDataState<IDENTIFYFailure, IDENTIFYSuccess>;\n }\n | {\n type: 'OPERATOR_SELECT';\n result: RDS.RemoteDataState<OPERATORSelectFailure, OPERATORSelectSuccess>;\n config: IConfig;\n }\n | {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n nextData: IIdenyifyFlowByMsisdnSumbitNextData;\n }\n | {\n type: 'PIN';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'MO';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'USSD';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'MO_REDIR';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'ONE_CLICK';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'CLICK2SMS';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'TPAY_HE';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'CREDIT_CARD';\n result: IdentifyFlowOptionsResult;\n };\n\nexport type IStrategyIDentifyUserResult =\n | {\n success: 'true';\n rockman_id: string;\n msisdn: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n 'redirect-back'?: string;\n 'msisdn-alias'?: string;\n }\n | {\n success: 'false';\n rockman_id: string;\n message: string;\n 'redirect-back'?: string;\n };\n\nexport type IMockFlows = 'pin' | 'mo' | 'oneclick' | 'click2sms' | 'moredir' | 'ussd' | 'tpay' | 'creditcard';\n\nexport interface IMockFlowParams<T> {\n 'mock-flow': IMockFlows;\n 'current-state': T;\n 'show-pin-entry': '1' | '0';\n 'show-thank-you': '1' | '0';\n 'show-chain-link': '1' | '0';\n operator: string;\n msisdn?: string;\n 'subscription-url'?: string;\n show_custom_error?: string;\n product_url?: string;\n ui_show_default_flow?: '1' | '0';\n ui_show_pin_entry?: '1' | '0';\n ui_error_message?: string;\n}\n\nexport interface IScriptHeaderEnrichmentSuccess extends CustomEvent {\n detail: {\n msisdn: string;\n operator_code: string;\n subscription_url: boolean;\n encrypted_msisdn: boolean;\n };\n}\n\nexport interface IScriptHeaderEnrichmentFailure extends CustomEvent {\n detail: {\n encrypted_msisdn: boolean;\n error_details: {\n error: any;\n stack: any;\n };\n };\n}\n\nexport interface ExtraStrategyData {\n isHeaderEnrichmentSuccess?: boolean;\n config?: ConfigDetails;\n msisdn?: string;\n rockman_id?: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n operators?: string[];\n strategy?: string;\n defaultConfig?: IFlow;\n defaultFlowType?: ISupportedFlows;\n skipRedirectCall?: boolean;\n apn?: string;\n}\nexport interface StrategyState {\n currentState: StrategyCurrentState;\n}\n\nexport interface StrategyCurrentState {\n type: PossibleTypes;\n result: RDS.RemoteDataState<any, any>;\n data?: ExtraStrategyData;\n}\n\nexport type IMockPinFlowStates = 'msisdn-state' | 'pin-state' | 'completed-state' | 'msisdn-failure-state';\n\nexport interface RootState {\n strategy?: StrategyState;\n pinFlow?: PinFlowState;\n moFlow?: MoFlowState;\n moRedirFlow?: MoRedirFlowState;\n click2smsFlow?: Click2smsFlowState;\n oneClickFlow?: OneClickFlowState;\n ussdFlow?: UssdFlowState;\n creditCardFlow?: CreditCardFlowState;\n}\n","/* 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","import { IError } from '../../common-types/IError';\nimport { IOptInFlowName } from '../../common-types/IOptInFlowName';\nimport { IStrategy, ISupportedFlows } from '../../common-types/Strategy';\nimport tryGetIPRangeName from '../../ips/tryGetIPRangeName';\nimport { HEResult, IConfig, IFlow, IIdentifyResult, PossibleTypes } from '../../sharedFlowTypes/StrategyTypes';\nimport { formatNumberToE164 } from '../../utilities/formatNumberToE164';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { identify } from './api';\n\nexport const flowMapping: Record<ISupportedFlows, PossibleTypes> = {\n mo: PossibleTypes.MO,\n pin: PossibleTypes.PIN,\n oneClick: PossibleTypes.ONE_CLICK,\n moRedir: PossibleTypes.MO_REDIR,\n click2sms: PossibleTypes.CLICK2SMS,\n ussd: PossibleTypes.USSD,\n tpayHe: PossibleTypes.TPAY_HE,\n creditCard: PossibleTypes.CREDIT_CARD\n};\n\n// @ts-ignore\nexport const trackerEventMapping: Record<ISupportedFlows, IOptInFlowName> = {\n mo: 'Msisdn to sms',\n pin: 'Pin',\n oneClick: '3G click',\n moRedir: 'Redirect',\n click2sms: 'Click to sms',\n tpayHe: 'Pin',\n ussd: 'Msisdn to sms'\n};\n\nexport const getTrackerEventName = (flowType: ISupportedFlows) => trackerEventMapping[flowType];\n\nexport async function determineFlowByMsidn({\n window,\n internationalMSISDN,\n configs\n}: {\n window: Window;\n internationalMSISDN: string;\n configs: IStrategy;\n}): Promise<IFlow> {\n if (!internationalMSISDN) {\n const submissionError = new Error(`Error in determineFlowByMsidn() identify action`) as IError;\n submissionError.type = 'SEInvalidMSISDN';\n throw submissionError;\n }\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || ''; // tallyman API expects international msisdn without unknown special character\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const config = defaultFlowConfig.flowConfig;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n\n const indentifyFlow = async (): Promise<IIdentifyResult> => {\n const { slug, country, device } = config;\n const { rockmanId } = window.pac_analytics.visitor;\n const { offer } = window.pac_analytics.visitor;\n const flowOperatorResult: IIdentifyResult = await identify({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId\n });\n return flowOperatorResult;\n };\n const theResult = await indentifyFlow();\n\n const flow = operatorsConfig[theResult.operator] ? operatorsConfig[theResult.operator] : null;\n const cannotDetect =\n theResult.success === false && theResult.message === 'Operator could not be found for the given MSISDN';\n const hlrError =\n theResult.success === false && theResult.message?.indexOf('HLR did not find the operator for given MSISDN') !== -1;\n\n if (cannotDetect || hlrError) {\n const submissionError = new Error(`Error in determineFlowByMsidn() identify action`) as IError & { msisdn: string };\n submissionError.type = 'FlowDetectFailed';\n submissionError.msisdn = msisdn;\n throw submissionError;\n } else if (flow !== null) {\n const flowObj = { operator: theResult.operator, default: defaultFlowConfig, ...flow };\n // @ts-ignore\n return flowObj;\n } else if (flow === null) {\n const flowObj = { operator: theResult.operator, ...defaultFlowConfig };\n // @ts-ignore\n return flowObj;\n } else {\n const submissionError = new Error(`Error in determineFlowByMsidn() identify action`) as IError;\n submissionError.type = 'SEInvalidMSISDN';\n throw submissionError;\n }\n}\n\nexport function determineFlowByOperator({ configs, operator }: { configs: IStrategy; operator: string }): IFlow {\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n\n const flowObj = {\n operator: operator?.toUpperCase(),\n default: defaultFlowConfig,\n ...operatorsConfig[operator?.toUpperCase()]\n };\n // @ts-ignore\n return flowObj;\n}\n\nexport async function determineFlowByOperatorFromIp({\n window,\n configs\n}: {\n window: Window;\n configs: IStrategy;\n}): Promise<IFlow> {\n const operator = await tryGetIPRangeName(window.pac_analytics.visitor);\n const flowObj = determineFlowByOperator({\n configs,\n operator: operator && operator.includes('_') ? operator.toUpperCase() : ''\n });\n return flowObj;\n}\n\nexport function getOperators({ configs }: { configs: IStrategy }): Array<string> {\n const operatorsConfig = configs?.strategyConfigs?.operators;\n const operators = Object.keys(operatorsConfig);\n return operators;\n}\n\nexport const getHeaderEnrichmentResult = async (operator?: string): Promise<HEResult> => {\n if (typeof window === 'undefined') {\n throw new Error('This function can only be run in a browser environment.');\n }\n\n const searchObj = searchToObject(window) as any; // Assumes the implementation of searchToObject\n if (searchObj.success === 'false') {\n throw new Error(`Error in getRedirectUrl() identify-user action:\\n${searchObj.message || 'NotOn3g'}`);\n }\n const responseUrl = searchObj.subscription_url || searchObj.redirect_url;\n\n if (responseUrl) {\n // Decode and parse\n const raw = window.atob(responseUrl);\n const newUrl = new URL(raw);\n\n // Enforce HTTPS\n newUrl.protocol = 'https:';\n\n const urlParams = new URLSearchParams(newUrl.search);\n const locParams = new URLSearchParams(window.location.search);\n\n let msisdn = urlParams.get('msisdn') || searchObj.msisdn;\n // Try decoded URL → searchObj → location.search for operator\n const operatorResult =\n operator || urlParams.get('operator') || searchObj.operator || locParams.get('operator') || '';\n\n if (msisdn) {\n msisdn = formatNumberToE164(msisdn, window?.pac_analytics?.visitor?.country);\n }\n if (operatorResult !== '') {\n newUrl.searchParams.set('operator', operatorResult);\n }\n return {\n msisdn: msisdn || '',\n operator: operatorResult || '',\n subscription_url: searchObj.subscription_url ? newUrl.href : undefined,\n redirect_url: searchObj.redirect_url ? raw : undefined\n };\n }\n console.error('No URL provided for redirection in the url params');\n\n const newUrl = new URL(window.location.href);\n const urlParams = new URLSearchParams(newUrl.search);\n\n let msisdn = urlParams.get('msisdn') || searchObj.msisdn;\n const operatorResult = urlParams.get('operator') || searchObj.operator;\n\n if (msisdn) {\n msisdn = formatNumberToE164(msisdn, window?.pac_analytics?.visitor?.country);\n }\n\n return {\n msisdn: msisdn || '',\n operator: operatorResult || ''\n };\n};\n\nexport const subscribe: (_url: string) => Promise<string> = async (_url: string) =>\n // const result:ISubscribeResult = await fetch(url + \"&operator=kw_viva\").then((x)=>x.json())\n\n // if(false === result.success){\n // const subscribeError = new Error(`Error in subscribe() one-click-subscribe action:\\n${result.message}`) as IError & {type:string;}\n // subscribeError['type'] = \"SubscriptionError\";\n // throw subscribeError\n // }else{\n '/product';\n// }\n\nexport function mockConfig({ configs, flow }: { configs: IStrategy; flow: string }): IConfig {\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n const opArr = Object.keys(operatorsConfig);\n const r = opArr.filter((o) => operatorsConfig[o].flow === flow);\n const operator = r[0];\n const flowObj = { offer: '1', operator, default: defaultFlowConfig, ...operatorsConfig[operator] };\n\n return flowObj;\n}\n\n// export const mockedPinFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.PIN,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('pin')\n// }\n// }\n// };\n\n// export const mockedMoFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.MO,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('mo')\n// }\n// }\n// };\n\n// export const mockedUssdFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.USSD,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('ussd')\n// }\n// }\n// };\n\n// export const mockedMoRdirFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.MO_REDIR,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('moRedir')\n// }\n// }\n// };\n\n// export const mockedClick2smsFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.CLICK2SMS,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('click2sms')\n// }\n// }\n// };\n\n// export const mockedOneClickFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.ONE_CLICK,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('oneClick')\n// }\n// }\n// };\n\n// export const mockedCreditCardFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.CREDIT_CARD,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('creditCard')\n// }\n// }\n// };\n// export const mockedMOFlow : State = { type: \"MO\", result:moFlow(mockTracker, mockConfig(\"mo\"))}\n// export const mockedOneClickFlow : State = { type: \"ONECLICK\", result:oneClickFlow(mockTracker, mockConfig(\"oneClick\"), {\"testextraparams\":\"1\"})}\n// export const mockedClick2smsFlow : State = { type: \"CLICK2SMS\", result:click2smsFlow(mockTracker, mockConfig(\"click2sms\"))}\n// export const mockedMORedirFlow : State = { type: \"MOREDIR\", result:moRedirFlow(mockTracker, mockConfig(\"moRedir\"))}\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport * as RDS from '../../../common-types/RemoteDataState';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\n\nimport {\n IDENTIFYMSISDNEntryErrorTypes,\n ISupportedFlows,\n PossibleTypes,\n StrategyCurrentState\n} from '../../../sharedFlowTypes/StrategyTypes';\nimport { determineFlowByMsidn, flowMapping, getTrackerEventName } from '../main';\n\nexport const askMobileNumber = (): StrategyCurrentState => ({\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.NothingYet()\n});\n\nexport const submitMSISDNAction = createAsyncThunk(\n 'strategy/submitMSISDNAction',\n async (\n {\n window,\n msisdn\n }: {\n window: Window;\n msisdn: string;\n isHeSuccess?: boolean;\n },\n { rejectWithValue }\n ) => {\n try {\n const configs = getConfig();\n const flowObj = await determineFlowByMsidn({ window, internationalMSISDN: msisdn, configs });\n const flowType = flowObj?.flow;\n const event = getTrackerEventName(flowType);\n const defaultConfig = configs?.strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow as ISupportedFlows;\n\n if (!flowMapping[flowType]) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n tracker.sendOptInFlowEvent(event);\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n msisdn\n }\n };\n } catch (ex) {\n let errorType: IDENTIFYMSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'SEAlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'SEInvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n default:\n errorType = 'UnknownError';\n }\n return rejectWithValue({\n errorType,\n error: ex,\n productUrl: ex.productUrl\n });\n }\n }\n);\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport * as RDS from '../../../common-types/RemoteDataState';\n\nimport { PossibleTypes, StrategyCurrentState } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperator, flowMapping, getOperators, getTrackerEventName } from '../main';\n\nexport const askOperator = (): StrategyCurrentState => {\n const configs = getConfig();\n const operators = getOperators({ configs });\n return {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.NothingYet(),\n data: {\n operators\n }\n };\n};\n\nexport const selectOperatorAction = createAsyncThunk(\n 'strategy/selectOperatorAction',\n async (\n {\n operator\n }: {\n operator: string;\n },\n { rejectWithValue }\n ) => {\n try {\n const configs = getConfig();\n\n const flowObj = determineFlowByOperator({\n configs,\n operator\n });\n\n const flowType = flowObj.flow;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator\n }\n };\n } catch (ex) {\n const errorType = 'UnkownError';\n return rejectWithValue({\n errorType,\n error: ex.toString()\n });\n }\n }\n);\n","import * as RDS from '../../../common-types/RemoteDataState';\n\nimport { ISupportedFlows } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { getRedirectUrl } from '../api';\nimport { flowMapping, getTrackerEventName } from '../main';\n\nconst callRedirectApi = async () => {\n const configs = getConfig();\n const defaultConfig = configs?.strategyConfigs.default;\n const defaultFlowType = defaultConfig.flow as ISupportedFlows;\n const { slug, country, device } = defaultConfig.flowConfig;\n const { rockmanId } = window.pac_analytics.visitor;\n const { offer } = window.pac_analytics.visitor;\n try {\n const result = await getRedirectUrl({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId\n });\n\n if (result.success === false) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n\n // OPERATOR NOT KNOWN\n\n // const operator = result?.operator && result?.operator !== 'unknown' ? result?.operator : null;\n\n if (result?.payload?.network_type === 'data') {\n // const flowObj = await determineFlowByOperator({\n // operator,\n // configs\n // });\n // const flowType = flowObj.flow || defaultFlowType;\n const event = getTrackerEventName('oneClick');\n tracker.sendOptInFlowEvent(event);\n return {\n type: flowMapping.oneClick,\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n redirect_url: result.redirect_url || null\n }\n };\n }\n if (result?.payload?.network_type === 'wifi') {\n // const flowObj = await determineFlowByOperator({\n // operator,\n // configs\n // });\n // const flowType = flowObj.flow || defaultFlowType;\n const event = getTrackerEventName('moRedir');\n tracker.sendOptInFlowEvent(event);\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n redirect_url: result.redirect_url || null,\n skipRedirectCall: true\n }\n };\n }\n\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n redirect_url: result.redirect_url || null,\n skipRedirectCall: true\n }\n };\n } catch (ex) {\n console.error('error', ex);\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n};\n\nexport { callRedirectApi };\n","import * as RDS from '../../../common-types/RemoteDataState';\nimport { IStrategyNames, ISupportedFlows } from '../../../common-types/Strategy';\n\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperatorFromIp, flowMapping, getTrackerEventName } from '../main';\nimport { askMobileNumber } from './askMobileNumber';\nimport { askOperator } from './askOperator';\n\nconst detectOperatorByIp = async (strategy?: IStrategyNames) => {\n try {\n const configs = getConfig();\n\n const flowObj = await determineFlowByOperatorFromIp({\n window,\n configs\n });\n const defaultConfig = configs?.strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow as ISupportedFlows;\n\n if (\n !flowObj.flow &&\n (strategy === 'all-flows-detect-operator-by-ip-or-ask-mobile-number' ||\n strategy === 'all-flows-ask-mobile-number')\n ) {\n return askMobileNumber();\n }\n\n if (!flowObj.flow && strategy === 'all-flows-detect-operator-by-ip-or-ask-operator') {\n return askOperator();\n }\n\n const flowType = flowObj.flow;\n if (!flowMapping[flowType]) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n strategy\n }\n };\n }\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n strategy,\n defaultConfig,\n defaultFlowType\n }\n };\n } catch (ex) {\n console.error('error', ex);\n }\n};\n\nexport { detectOperatorByIp };\n","import IVisitor from '../../../common-types/IVisitor';\nimport * as RDS from '../../../common-types/RemoteDataState';\nimport { IStrategy } from '../../../common-types/Strategy';\n\nimport { ISupportedFlows } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { searchToObject } from '../../../utilities/searchToObject';\nimport { tracker } from '../../../utilities/tracker';\nimport {\n determineFlowByMsidn,\n determineFlowByOperator,\n flowMapping,\n getHeaderEnrichmentResult,\n getTrackerEventName\n} from '../main';\n\nconst resolveOperator = async (\n visitor: IVisitor,\n search: any,\n configs: IStrategy,\n msisdn: string\n): Promise<string | null> => {\n const firstSync = search?.operator ?? visitor?.heMsisdnDecryptedByApiResult?.operator;\n if (firstSync) return firstSync;\n\n const flow = await determineFlowByMsidn({\n window,\n configs,\n internationalMSISDN: msisdn\n });\n\n return flow?.operator ?? null;\n};\nconst handleHeaderEnrichment = async () => {\n const configs = getConfig();\n const defaultConfig = configs?.strategyConfigs.default;\n const defaultFlowType = defaultConfig.flow as ISupportedFlows;\n\n try {\n const visitor = (window.pac_analytics?.visitor ?? {}) as any;\n\n const search = searchToObject(window) as { operator: string; msisdn: string };\n\n const candidates: (string | undefined)[] = [\n search?.msisdn,\n visitor.heMsisdnDecryptedByApiResult?.msisdn,\n visitor.heMsisdnResult?.msisdn\n ];\n\n const msisdn = candidates.find((s) => !!s) ?? null;\n const isHeaderEnrichmentSuccess = msisdn !== null;\n\n const operator = msisdn ? await resolveOperator(visitor, search, configs, msisdn) : null;\n\n if (isHeaderEnrichmentSuccess) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn,\n operator\n });\n } else {\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure');\n }\n if (operator === null) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n\n if (configs.strategy === 'pin-header-enrichment' && isHeaderEnrichmentSuccess) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator,\n msisdn,\n isHeaderEnrichmentSuccess\n }\n };\n }\n\n if (window?.pac_analytics?.visitor?.heMsisdnDecryptedByApiResult?.isContentBlocked) {\n window.isContentBlocked = true;\n tracker.customEvent('Flow', 'recede-auto', 'content-blocked', {\n errorType: 'ContentBlocked',\n error: 'ContentBlocked',\n message: 'ContentBlocked',\n ...window?.pac_analytics?.visitor?.heMsisdnDecryptedByApiResult\n });\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator\n }\n };\n }\n let subscription_url = null;\n let redirect_url = null;\n const flowObj = await determineFlowByOperator({\n operator,\n configs\n });\n const flowType = flowObj.flow || defaultFlowType;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n if (flowType === 'oneClick') {\n const heResult = await getHeaderEnrichmentResult(operator && operator !== '' ? operator : null);\n\n subscription_url = heResult?.subscription_url || null;\n redirect_url = heResult?.redirect_url || null;\n }\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n subscription_url: subscription_url || null,\n redirect_url: redirect_url || null,\n isHeaderEnrichmentSuccess,\n msisdn,\n apn: visitor?.heMsisdnResult?.apn\n }\n };\n } catch (ex) {\n console.error('error', ex);\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n};\n\nexport { handleHeaderEnrichment };\n","/* eslint-disable func-names */\nimport * as RDS from '../../../common-types/RemoteDataState';\nimport {\n IConfig,\n IFlow,\n IScriptHeaderEnrichmentFailure,\n IScriptHeaderEnrichmentSuccess,\n ISupportedFlows,\n PossibleTypes\n} from '../../../sharedFlowTypes/StrategyTypes';\nimport { formatNumberToE164 } from '../../../utilities/formatNumberToE164';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperator, flowMapping, getTrackerEventName } from '../main';\n\n/**\n * Creates a response object with the given parameters.\n *\n * @param {string} msisdn - The MSISDN (Mobile Station International Subscriber Directory Number).\n * @param {IConfig} config - The configuration object.\n * @param {string | null} operator - The operator (default: null).\n * @return {object} The response that sets the state.\n */\nconst createResponseObject = (config: IConfig, flow?: ISupportedFlows) => ({\n type: flowMapping[flow] || PossibleTypes.PIN,\n result: RDS.NothingYet(),\n data: {\n config\n }\n});\n\n/**\n * Injects header enrichment script based on the provided window object.\n *\n * @param {Window} window - The window object containing analytics visitor details.\n * @return {Promise} A promise that resolves based on specific events or timeouts.\n */\nconst injectHeaderEnrichmentScript = async ({ window }: { window: Window }) => {\n const configs = getConfig();\n const enableScriptTimer = configs?.enableScriptTimer;\n const { strategyConfigs } = configs;\n const config = strategyConfigs?.default?.flowConfig;\n\n return new Promise((resolve) => {\n try {\n let heMsisdn = window?.pac_analytics?.visitor?.heMsisdn;\n const country = window?.pac_analytics?.visitor?.country;\n\n if (heMsisdn && country) {\n heMsisdn = formatNumberToE164(heMsisdn, country);\n }\n\n let msisdnDetected = false;\n let timerExpired = false;\n let timerId: string | number | NodeJS.Timeout;\n\n if (enableScriptTimer) {\n timerId = setTimeout(() => {\n if (!msisdnDetected) {\n timerExpired = true;\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: '3 second timer expired'\n });\n\n window.isPrelanderClicked = true;\n resolve({\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n });\n }\n }, 3000);\n }\n\n const onSuccess = (event: Event) => {\n const { detail } = event as IScriptHeaderEnrichmentSuccess;\n heMsisdn = detail?.msisdn;\n if (detail?.msisdn && !detail?.encrypted_msisdn) {\n heMsisdn = formatNumberToE164(detail.msisdn, country);\n window.msisdn = heMsisdn;\n } else {\n window.msisdn = detail?.msisdn;\n window.is_encrypted_msisdn = detail?.encrypted_msisdn;\n }\n\n if (enableScriptTimer) {\n if (!timerExpired) {\n msisdnDetected = true;\n clearTimeout(timerId);\n\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn: heMsisdn\n });\n const flowObj = determineFlowByOperator({\n configs: getConfig(),\n operator: detail?.operator_code\n });\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(headerEnrichmentScript(flowObj, heMsisdn, detail?.operator_code, true));\n }\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn: heMsisdn,\n operator: detail?.operator_code\n });\n const flowObj = determineFlowByOperator({\n configs: getConfig(),\n operator: detail?.operator_code\n });\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(headerEnrichmentScript(flowObj, heMsisdn, detail?.operator_code, true));\n }\n };\n\n const onFail = (event: Event) => {\n const { detail } = event as IScriptHeaderEnrichmentFailure;\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', detail?.error_details);\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(createResponseObject(config, strategyConfigs?.default.flow as ISupportedFlows));\n };\n\n window.addEventListener('he-success', onSuccess);\n window.addEventListener('he-fail', onFail);\n\n if (!window?.heScriptUrl) {\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: 'Error he script url not set'\n });\n window.dispatchEvent(new Event('he-fail'));\n return;\n }\n window.addEventListener('error', (event) => {\n console.error('Global error:', event?.error);\n tracker.customEvent('Flow', 'recede-auto', 'global-error', {\n errorMessage: event?.error?.message,\n errorStack: event?.error?.stack\n });\n });\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.id = 'he-js-link';\n script.src = `${window.heScriptUrl}`; // URL Comes from server\n script.referrerPolicy = 'origin';\n document.head.appendChild(script);\n\n script.onerror = (error: any) => {\n console.error('Error loading Header Enrichment script.');\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: 'Error loading Header Enrichment script',\n errorMessage: error.message\n });\n window.dispatchEvent(new Event('he-fail'));\n };\n } catch (err) {\n console.error('Error in header enrichment:', err);\n resolve(createResponseObject(config, strategyConfigs?.default.flow as ISupportedFlows));\n }\n });\n};\n\nconst headerEnrichmentScript = (\n flowObj: IFlow,\n msisdn: string | null = null,\n operator: string | null = null,\n isHeaderEnrichmentSuccess: boolean\n) => {\n const defaultConfig = getConfig().strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow;\n const flowType = flowObj.flow || flowObj.default?.flow;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n if (!flowObj.flow) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator,\n msisdn,\n isHeaderEnrichmentSuccess\n }\n };\n }\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n isHeaderEnrichmentSuccess\n }\n };\n};\n\nexport { injectHeaderEnrichmentScript };\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport { searchToObject } from '../../utilities/searchToObject';\n\nimport {\n IMockFlowParams,\n IMockPinFlowStates,\n ISupportedFlows,\n PossibleTypes,\n RootState,\n StrategyCurrentState,\n StrategyState\n} from '../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../utilities/getConfig';\nimport { determineFlowByOperator, flowMapping } from './main';\nimport { askMobileNumber, submitMSISDNAction } from './strategies/askMobileNumber';\nimport { askOperator, selectOperatorAction } from './strategies/askOperator';\n\nimport { tracker } from '../../utilities/tracker';\nimport { callRedirectApi } from './strategies/callRedirectApi';\nimport { detectOperatorByIp } from './strategies/detectOperatorByIp';\nimport { handleHeaderEnrichment } from './strategies/headerEnrichment';\nimport { injectHeaderEnrichmentScript } from './strategies/injectHeaderEnrichmentScript';\n\nwindow.tracker = tracker;\nconst initialState: StrategyState = {\n currentState: {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.NothingYet(),\n data: undefined\n }\n};\n\nconst mockStrategyStateByUrlParam = (): StrategyCurrentState => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n\n if (search['mock-flow'] !== undefined) {\n if (search.operator !== undefined) {\n window.operator = search.operator;\n }\n\n switch (search['mock-flow']) {\n case 'pin':\n return {\n type: PossibleTypes.PIN,\n result: RDS.Success({})\n };\n\n case 'mo':\n return {\n type: PossibleTypes.MO,\n result: RDS.Success({})\n };\n case 'moredir':\n return {\n type: PossibleTypes.MO_REDIR,\n result: RDS.Success({})\n };\n case 'oneclick':\n return {\n type: PossibleTypes.ONE_CLICK,\n result: RDS.Success({}),\n data: {\n subscription_url: search['subscription-url']\n }\n };\n case 'click2sms':\n return {\n type: PossibleTypes.CLICK2SMS,\n result: RDS.Success({})\n };\n case 'ussd':\n return {\n type: PossibleTypes.USSD,\n result: RDS.Success({})\n };\n case 'creditcard':\n return {\n type: PossibleTypes.CREDIT_CARD,\n result: RDS.Success({})\n };\n default:\n throw new Error('(mockStrategyStateByUrlParam) Strategy Mock Flow not supported');\n }\n }\n};\n\n/**\n * Identify Strategy\n * @returns {type: 'strategy/identifyStrategy', payload: {type: PossibleTypes.MO, result: IdentifyFlowOptionsResult}}\n * - Add type\n * - Makes a decision on which strategy to use in order to identify the flow\n * - Strategy could be asking user's phone number, selecting an operator etc\n * - all with the intension of getting the flow and its configuration\n * - Flows are usually tied to an operator in the pages config.json\n * - But they could also be single flows\n *\n */\n\nexport const identifyStrategy = createAsyncThunk('strategy/identifyStrategy', async () => {\n const configs = getConfig();\n const { strategy, strategyConfigs } = configs;\n // const { isUseMsisdnPrefix } = strategyConfigs;\n const search = searchToObject(window) as IMockFlowParams<IMockPinFlowStates>;\n if (search['mock-flow'] !== undefined) {\n return mockStrategyStateByUrlParam();\n }\n if (search.ui_show_default_flow === '1') {\n const flow = strategyConfigs?.default.flow as ISupportedFlows;\n const config = strategyConfigs?.default?.flowConfig;\n return {\n type: flowMapping[flow],\n result: RDS.NothingYet(),\n data: {\n config\n }\n };\n }\n if (\n (search['show-pin-entry'] && search['show-pin-entry'] === '1') ||\n (search['show-thank-you'] && search['show-thank-you'] === '1') ||\n (search.show_custom_error && search.show_custom_error === '1')\n ) {\n const flowObj = determineFlowByOperator({\n configs,\n operator: search.operator\n });\n const strategyResult: StrategyCurrentState = {\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: flowObj?.flowConfig || strategyConfigs?.default?.flowConfig\n }\n };\n return strategyResult;\n }\n\n if (strategy.includes('ask-operator')) {\n return askOperator();\n }\n if (strategy.includes('detect-operator-by-ip')) {\n return detectOperatorByIp(strategy);\n }\n if (strategy?.includes('ask-mobile-number')) {\n return askMobileNumber();\n }\n\n if (strategy?.includes('detect-operator-by-redirect-api')) {\n return callRedirectApi();\n }\n\n if (strategy?.includes('header-enrichment') && strategy !== 'header-enrichment-script') {\n const n = await handleHeaderEnrichment();\n // @ts-ignore\n return n;\n }\n\n switch (strategy) {\n // REOVING THIS AS IT INJECTS UNUSED CODE\n case 'header-enrichment-script':\n // eslint-disable-next-line no-return-await\n return injectHeaderEnrichmentScript({\n window\n });\n case 'pin': {\n tracker.sendOptInFlowEvent('Pin');\n return {\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n }\n case 'mo':\n tracker.sendOptInFlowEvent('Msisdn to sms');\n return {\n type: PossibleTypes.MO,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'mo-redir':\n return {\n type: PossibleTypes.MO_REDIR,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'one-click':\n tracker.sendOptInFlowEvent('Redirect');\n return {\n type: PossibleTypes.ONE_CLICK,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'click2sms':\n tracker.sendOptInFlowEvent('Click to sms');\n return {\n type: PossibleTypes.CLICK2SMS,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'ussd':\n tracker.sendOptInFlowEvent('USSD');\n return {\n type: PossibleTypes.USSD,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'credit-card':\n // @ts-ignore\n tracker.sendOptInFlowEvent('Credit card');\n return {\n type: PossibleTypes.CREDIT_CARD,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n default:\n throw new Error('Strategy not supported');\n }\n});\n\nexport const setStrategyExtraData = createAsyncThunk(\n 'strategy/setStrategyExtraData',\n async ({ type, data }: { type: PossibleTypes; data: any }) => ({\n type,\n result: RDS.NothingYet(),\n data\n })\n);\n\nexport const strategySlice = createSlice({\n name: 'strategy',\n initialState,\n reducers: {\n // Define synchronous reducers as needed\n },\n extraReducers: (builder) => {\n // @ts-ignore\n builder\n .addCase(identifyStrategy.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.Loading()\n };\n })\n // @ts-ignore\n .addCase(identifyStrategy.fulfilled, (state, action: PayloadAction<StrategyCurrentState>) => {\n state.currentState = action.payload;\n })\n .addCase(identifyStrategy.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.Failure(action.error.message)\n };\n })\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.Loading()\n };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<StrategyCurrentState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.Failure(action.payload)\n };\n })\n .addCase(setStrategyExtraData.fulfilled, (state, action) => {\n state.currentState = action.payload;\n })\n .addCase(selectOperatorAction.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.Loading()\n };\n })\n .addCase(selectOperatorAction.fulfilled, (state, action: PayloadAction<any>) => {\n state.currentState = action.payload;\n })\n .addCase(selectOperatorAction.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\nexport const selectStrategyState = (state: RootState) => state.strategy;\nexport const strategyReducer = strategySlice.reducer;\n"],"names":["RDS.NothingYet","RDS.Success","RDS.Loading","RDS.Failure"],"mappings":"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"}
package/dist/ussdFlow.js CHANGED
@@ -5,7 +5,7 @@ import { checkSubscriptionHander } from './checkSubscriptionHander.js';
5
5
  import { searchToObject } from './searchToObject.js';
6
6
  import { s as storeMsisdn } from './storeMsisdn-ChiBh8mI.js';
7
7
  import { t as tracker } from './tracker-B_zsMRN2.js';
8
- import { i as identifyStrategy } from './strategySlice-BcZRZ0xO.js';
8
+ import { i as identifyStrategy } from './strategySlice-BYJ-hvjQ.js';
9
9
  import './handleResolveRedirect-5Hkm5YXF.js';
10
10
  import './helpers-BIBpnXln.js';
11
11
  import './updateUrlWithParams-ZaZt1BCf.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ouisys-engine",
3
- "version": "5.1.26",
3
+ "version": "5.1.27",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "directories": "dist dev-tools",
@@ -1 +0,0 @@
1
- {"version":3,"file":"strategySlice-BcZRZ0xO.js","sources":["../../src/sharedFlowTypes/StrategyTypes.ts","../../src/ips/tryGetIPRangeName.ts","../../src/flows/strategy/main.ts","../../src/flows/strategy/strategies/askMobileNumber.ts","../../src/flows/strategy/strategies/askOperator.ts","../../src/flows/strategy/strategies/callRedirectApi.ts","../../src/flows/strategy/strategies/detectOperatorByIp.ts","../../src/flows/strategy/strategies/headerEnrichment.ts","../../src/flows/strategy/strategies/injectHeaderEnrichmentScript.ts","../../src/flows/strategy/strategySlice.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable camelcase */\nimport * as RDS from '../common-types/RemoteDataState';\nimport { IStrategyNames } from '../common-types/Strategy';\nimport { Click2smsFlowState } from './Click2smsTypes';\nimport { CreditCardFlowState } from './CreditCardTypes';\nimport { MoRedirFlowState } from './MoRedirTypes';\nimport { MoFlowState } from './MoTypes';\nimport { OneClickFlowState } from './OneClickTypes';\nimport { PinFlowState } from './PinTypes';\nimport { UssdFlowState } from './UssdTypes';\n\nexport type IIdentifyResult = {\n operator: string;\n flow?: string;\n success: boolean;\n rockman_id?: string;\n message?: string;\n};\n\nexport interface HEResult {\n msisdn: string;\n operator: string;\n subscription_url?: string;\n redirect_url?: string;\n}\n\nexport type ConfigDetails = {\n host: string;\n slug: string;\n country: string;\n device?: 'smart' | 'feature';\n queryString?: Array<[string, string]>;\n automaticallySubmitAllOperators?: boolean;\n operators?: string[];\n service: string;\n offer?: string;\n};\n\nexport type IConfig = {\n offer?: string;\n slug?: string;\n country?: string;\n host?: string;\n device?: 'smart' | 'feature';\n automaticallySubmitAllOperators?: boolean;\n operators?: string[];\n service?: string;\n serviceId?: string;\n queryString?: any;\n apiAction?: any;\n};\n\nexport type ISupportedFlows = 'pin' | 'mo' | 'oneClick' | 'click2sms' | 'moRedir' | 'ussd' | 'creditCard';\nexport type IFlow = {\n flow: ISupportedFlows;\n flowOnWifi?: ISupportedFlows;\n operator?: string;\n flowConfig: ConfigDetails;\n default?: IFlow;\n rockman_id?: string;\n};\n\nexport type StrategyConfig = {\n operators: {\n [key: string]: IFlow;\n };\n default: IFlow;\n isUseMsisdnPrefix?: boolean;\n};\n// export type IStrategy = IPinStrategy | IMoStrategy;\n\nexport type IStrategy = {\n strategy: IStrategyNames;\n country: string;\n strategyConfigs: StrategyConfig;\n};\n\nexport interface IHash {\n [key: string]: string;\n}\n\nexport type IDENTIFYMSISDNEntryErrorTypes = 'AlreadySubscribed' | 'UnknownError' | 'InvalidMSISDN';\n\nexport type IDENTIFYMSISDNEntryFailure = {\n errorType: IDENTIFYMSISDNEntryErrorTypes;\n error: unknown;\n};\n\nexport type IdentifyFlowOptionsResult = {\n config: IConfig;\n nextAction?: unknown;\n msisdn?: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n rockman_id?: string;\n isHeaderEnrichmentSuccess?: boolean;\n autoRedirect?: boolean;\n isUseMsisdnPrefix?: boolean;\n};\n\nexport type IDENTIFYMSISDNEntrySuccess = {};\nexport type OPERATORSelectFailure = {};\nexport type OPERATORSelectSuccess = IdentifyFlowOptionsResult;\n\nexport type IDETECTYOPERATOBYIPFailure = {};\nexport type IDETECTYOPERATOBYIPSuccess = IdentifyFlowOptionsResult;\n\nexport type IDENTIFY_OPERATOR_MSISDNEntrySuccess = IdentifyFlowOptionsResult;\n\nexport type IDENTIFY_FLOW_HESuccess = IdentifyFlowOptionsResult;\n\nexport type OPERATORSelectFlowIdentifyFailure = {};\nexport type OPERATORSelectFlowIdentifySuccess = {\n operators: Array<string>;\n msisdn?: string;\n nextAction: 'selectOperator';\n};\nexport type IDENTIFYFailure = {};\n\nexport type IDENTIFYSuccess = {};\n\nexport type IOperatorSelectFlowIdentifyPayload = {\n type: 'IDENTIFY_FLOW_BY_OPERATOR_SELECT';\n result: RDS.RemoteDataState<OPERATORSelectFlowIdentifyFailure, OPERATORSelectFlowIdentifySuccess>;\n};\n\n// export type IIdentifyByIPPayload= {\n// type:\"IDENTIFY_FLOW_BY_IP\"\n// result: RDS.RemoteDataState<IDENTIFYBYIPFailure, IDENTIFYBYIPSuccess>;\n// }\n\nexport type IDetectOperatorByIpPayload = {\n type: 'DETECT_OPERATOR_BY_IP';\n result: RDS.RemoteDataState<IDETECTYOPERATOBYIPFailure, IDETECTYOPERATOBYIPSuccess>;\n};\n\nexport enum PossibleTypes {\n IDENTIFY_STRATEGY = 'IDENTIFY_STRATEGY',\n IDENTIFY_FLOW_BY_MSISDN = 'IDENTIFY_FLOW_BY_MSISDN',\n IDENTIFY_FLOW_BY_OPERATOR_SELECT = 'IDENTIFY_FLOW_BY_OPERATOR_SELECT',\n PIN = 'PIN',\n MO = 'MO',\n MO_REDIR = 'MO_REDIR',\n ONE_CLICK = 'ONE_CLICK',\n CLICK2SMS = 'CLICK2SMS',\n USSD = 'USSD',\n TPAY_HE = 'TPAY_HE',\n CREDIT_CARD = 'CREDIT_CARD'\n}\n\nexport type IOperatorSelectPayload = {\n type: PossibleTypes;\n result: OPERATORSelectSuccess;\n};\n\nexport type ISubmitMsisdnPayload = {\n type: PossibleTypes;\n result: IDENTIFY_OPERATOR_MSISDNEntrySuccess;\n};\n\nexport type IIdentifyFlowByIpOperatorPayload = {\n type: PossibleTypes;\n result: IDENTIFY_OPERATOR_MSISDNEntrySuccess;\n};\n\nexport type IIdentifyFlowByHePayload = {\n type: PossibleTypes;\n result: IDENTIFY_FLOW_HESuccess;\n};\n\nexport type IIdentfyFlowByMsisdnNextAction = 'submitMSISDNAction' | 'loadOc2sms';\nexport type IIdentfyFlowByOperatorNextAction = 'submitMSISDNAction' | 'loadOc2sms';\nexport type IIdentfyFlowByIPOperatorNextAction = 'getRedirectUrlAction' | 'submitMSISDNAction';\n\nexport type IIdenyifyFlowByMsisdnSumbitNextData = {\n nextAction: IIdentfyFlowByMsisdnNextAction;\n msisdn?: string;\n operator?: string;\n};\n\nexport type IIdenyifyFlowByMsisdnPayload = {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n data: IIdenyifyFlowByMsisdnSumbitNextData;\n};\n\nexport type IIdenyifyStrategyPayload = {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n data: IIdenyifyFlowByMsisdnSumbitNextData;\n};\n\nexport type IStrategyCurrentState =\n | {\n type: 'IDENTIFY_STRATEGY';\n result: RDS.RemoteDataState<IDENTIFYFailure, IDENTIFYSuccess>;\n }\n | {\n type: 'IDENTIFY_FLOW_BY_OPERATOR_SELECT';\n result: OPERATORSelectFlowIdentifySuccess;\n }\n | {\n type: 'DETECT_OPERATOR_BY_IP';\n result: RDS.RemoteDataState<IDETECTYOPERATOBYIPFailure, IDETECTYOPERATOBYIPSuccess>;\n }\n | {\n type: 'HE_IDENTIFY';\n result: RDS.RemoteDataState<IDENTIFYFailure, IDENTIFYSuccess>;\n }\n | {\n type: 'OPERATOR_SELECT';\n result: RDS.RemoteDataState<OPERATORSelectFailure, OPERATORSelectSuccess>;\n config: IConfig;\n }\n | {\n type: 'IDENTIFY_FLOW_BY_MSISDN';\n result: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>;\n nextData: IIdenyifyFlowByMsisdnSumbitNextData;\n }\n | {\n type: 'PIN';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'MO';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'USSD';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'MO_REDIR';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'ONE_CLICK';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'CLICK2SMS';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'TPAY_HE';\n result: IdentifyFlowOptionsResult;\n }\n | {\n type: 'CREDIT_CARD';\n result: IdentifyFlowOptionsResult;\n };\n\nexport type IStrategyIDentifyUserResult =\n | {\n success: 'true';\n rockman_id: string;\n msisdn: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n 'redirect-back'?: string;\n 'msisdn-alias'?: string;\n }\n | {\n success: 'false';\n rockman_id: string;\n message: string;\n 'redirect-back'?: string;\n };\n\nexport type IMockFlows = 'pin' | 'mo' | 'oneclick' | 'click2sms' | 'moredir' | 'ussd' | 'tpay' | 'creditcard';\n\nexport interface IMockFlowParams<T> {\n 'mock-flow': IMockFlows;\n 'current-state': T;\n 'show-pin-entry': '1' | '0';\n 'show-thank-you': '1' | '0';\n 'show-chain-link': '1' | '0';\n operator: string;\n msisdn?: string;\n 'subscription-url'?: string;\n show_custom_error?: string;\n product_url?: string;\n ui_show_default_flow?: '1' | '0';\n ui_show_pin_entry?: '1' | '0';\n ui_error_message?: string;\n}\n\nexport interface IScriptHeaderEnrichmentSuccess extends CustomEvent {\n detail: {\n msisdn: string;\n operator_code: string;\n subscription_url: boolean;\n encrypted_msisdn: boolean;\n };\n}\n\nexport interface IScriptHeaderEnrichmentFailure extends CustomEvent {\n detail: {\n encrypted_msisdn: boolean;\n error_details: {\n error: any;\n stack: any;\n };\n };\n}\n\nexport interface ExtraStrategyData {\n isHeaderEnrichmentSuccess?: boolean;\n config?: ConfigDetails;\n msisdn?: string;\n rockman_id?: string;\n operator?: string;\n subscription_url?: string;\n redirect_url?: string;\n operators?: string[];\n strategy?: string;\n defaultConfig?: IFlow;\n defaultFlowType?: ISupportedFlows;\n skipRedirectCall?: boolean;\n apn?: string;\n}\nexport interface StrategyState {\n currentState: StrategyCurrentState;\n}\n\nexport interface StrategyCurrentState {\n type: PossibleTypes;\n result: RDS.RemoteDataState<any, any>;\n data?: ExtraStrategyData;\n}\n\nexport type IMockPinFlowStates = 'msisdn-state' | 'pin-state' | 'completed-state' | 'msisdn-failure-state';\n\nexport interface RootState {\n strategy?: StrategyState;\n pinFlow?: PinFlowState;\n moFlow?: MoFlowState;\n moRedirFlow?: MoRedirFlowState;\n click2smsFlow?: Click2smsFlowState;\n oneClickFlow?: OneClickFlowState;\n ussdFlow?: UssdFlowState;\n creditCardFlow?: CreditCardFlowState;\n}\n","/* 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","import { IError } from '../../common-types/IError';\nimport { IOptInFlowName } from '../../common-types/IOptInFlowName';\nimport { IStrategy, ISupportedFlows } from '../../common-types/Strategy';\nimport tryGetIPRangeName from '../../ips/tryGetIPRangeName';\nimport { HEResult, IConfig, IFlow, IIdentifyResult, PossibleTypes } from '../../sharedFlowTypes/StrategyTypes';\nimport { formatNumberToE164 } from '../../utilities/formatNumberToE164';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { identify } from './api';\n\nexport const flowMapping: Record<ISupportedFlows, PossibleTypes> = {\n mo: PossibleTypes.MO,\n pin: PossibleTypes.PIN,\n oneClick: PossibleTypes.ONE_CLICK,\n moRedir: PossibleTypes.MO_REDIR,\n click2sms: PossibleTypes.CLICK2SMS,\n ussd: PossibleTypes.USSD,\n tpayHe: PossibleTypes.TPAY_HE,\n creditCard: PossibleTypes.CREDIT_CARD\n};\n\n// @ts-ignore\nexport const trackerEventMapping: Record<ISupportedFlows, IOptInFlowName> = {\n mo: 'Msisdn to sms',\n pin: 'Pin',\n oneClick: '3G click',\n moRedir: 'Redirect',\n click2sms: 'Click to sms',\n tpayHe: 'Pin',\n ussd: 'Msisdn to sms'\n};\n\nexport const getTrackerEventName = (flowType: ISupportedFlows) => trackerEventMapping[flowType];\n\nexport async function determineFlowByMsidn({\n window,\n internationalMSISDN,\n configs\n}: {\n window: Window;\n internationalMSISDN: string;\n configs: IStrategy;\n}): Promise<IFlow> {\n if (!internationalMSISDN) {\n const submissionError = new Error(`Error in determineFlowByMsidn() identify action`) as IError;\n submissionError.type = 'SEInvalidMSISDN';\n throw submissionError;\n }\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || ''; // tallyman API expects international msisdn without unknown special character\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const config = defaultFlowConfig.flowConfig;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n\n const indentifyFlow = async (): Promise<IIdentifyResult> => {\n const { slug, country, device } = config;\n const { rockmanId } = window.pac_analytics.visitor;\n const { offer } = window.pac_analytics.visitor;\n const flowOperatorResult: IIdentifyResult = await identify({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId\n });\n return flowOperatorResult;\n };\n const theResult = await indentifyFlow();\n\n const flow = operatorsConfig[theResult.operator] ? operatorsConfig[theResult.operator] : null;\n const cannotDetect =\n theResult.success === false && theResult.message === 'Operator could not be found for the given MSISDN';\n const hlrError =\n theResult.success === false && theResult.message?.indexOf('HLR did not find the operator for given MSISDN') !== -1;\n\n if (cannotDetect || hlrError) {\n const submissionError = new Error(`Error in determineFlowByMsidn() identify action`) as IError & { msisdn: string };\n submissionError.type = 'FlowDetectFailed';\n submissionError.msisdn = msisdn;\n throw submissionError;\n } else if (flow !== null) {\n const flowObj = { operator: theResult.operator, default: defaultFlowConfig, ...flow };\n // @ts-ignore\n return flowObj;\n } else if (flow === null) {\n const flowObj = { operator: theResult.operator, ...defaultFlowConfig };\n // @ts-ignore\n return flowObj;\n } else {\n const submissionError = new Error(`Error in determineFlowByMsidn() identify action`) as IError;\n submissionError.type = 'SEInvalidMSISDN';\n throw submissionError;\n }\n}\n\nexport function determineFlowByOperator({ configs, operator }: { configs: IStrategy; operator: string }): IFlow {\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n\n const flowObj = {\n operator: operator?.toUpperCase(),\n default: defaultFlowConfig,\n ...operatorsConfig[operator?.toUpperCase()]\n };\n // @ts-ignore\n return flowObj;\n}\n\nexport async function determineFlowByOperatorFromIp({\n window,\n configs\n}: {\n window: Window;\n configs: IStrategy;\n}): Promise<IFlow> {\n const operator = await tryGetIPRangeName(window.pac_analytics.visitor);\n const flowObj = determineFlowByOperator({\n configs,\n operator: operator && operator.includes('_') ? operator.toUpperCase() : ''\n });\n return flowObj;\n}\n\nexport function getOperators({ configs }: { configs: IStrategy }): Array<string> {\n const operatorsConfig = configs?.strategyConfigs?.operators;\n const operators = Object.keys(operatorsConfig);\n return operators;\n}\n\nexport const getHeaderEnrichmentResult = async (): Promise<HEResult> => {\n if (typeof window === 'undefined') {\n throw new Error('This function can only be run in a browser environment.');\n }\n\n const searchObj = searchToObject(window) as any; // Assumes the implementation of searchToObject\n if (searchObj.success === 'false') {\n throw new Error(`Error in getRedirectUrl() identify-user action:\\n${searchObj.message || 'NotOn3g'}`);\n }\n const responseUrl = searchObj.subscription_url || searchObj.redirect_url;\n\n if (responseUrl) {\n // Decode and parse\n const raw = window.atob(responseUrl);\n const newUrl = new URL(raw);\n\n // Enforce HTTPS\n newUrl.protocol = 'https:';\n\n const urlParams = new URLSearchParams(newUrl.search);\n const locParams = new URLSearchParams(window.location.search);\n\n let msisdn = urlParams.get('msisdn') || searchObj.msisdn;\n // Try decoded URL → searchObj → location.search for operator\n const operator = urlParams.get('operator') || searchObj.operator || locParams.get('operator') || '';\n\n if (msisdn) {\n msisdn = formatNumberToE164(msisdn, window?.pac_analytics?.visitor?.country);\n }\n\n return {\n msisdn: msisdn || '',\n operator: operator || '',\n subscription_url: searchObj.subscription_url ? newUrl.href : undefined,\n redirect_url: searchObj.redirect_url ? raw : undefined\n };\n }\n console.error('No URL provided for redirection in the url params');\n\n const newUrl = new URL(window.location.href);\n const urlParams = new URLSearchParams(newUrl.search);\n\n let msisdn = urlParams.get('msisdn') || searchObj.msisdn;\n const operator = urlParams.get('operator') || searchObj.operator;\n\n if (msisdn) {\n msisdn = formatNumberToE164(msisdn, window?.pac_analytics?.visitor?.country);\n }\n\n return {\n msisdn: msisdn || '',\n operator: operator || ''\n };\n};\n\nexport const subscribe: (_url: string) => Promise<string> = async (_url: string) =>\n // const result:ISubscribeResult = await fetch(url + \"&operator=kw_viva\").then((x)=>x.json())\n\n // if(false === result.success){\n // const subscribeError = new Error(`Error in subscribe() one-click-subscribe action:\\n${result.message}`) as IError & {type:string;}\n // subscribeError['type'] = \"SubscriptionError\";\n // throw subscribeError\n // }else{\n '/product';\n// }\n\nexport function mockConfig({ configs, flow }: { configs: IStrategy; flow: string }): IConfig {\n const defaultFlowConfig = configs?.strategyConfigs?.default;\n const operatorsConfig = configs?.strategyConfigs?.operators;\n const opArr = Object.keys(operatorsConfig);\n const r = opArr.filter((o) => operatorsConfig[o].flow === flow);\n const operator = r[0];\n const flowObj = { offer: '1', operator, default: defaultFlowConfig, ...operatorsConfig[operator] };\n\n return flowObj;\n}\n\n// export const mockedPinFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.PIN,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('pin')\n// }\n// }\n// };\n\n// export const mockedMoFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.MO,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('mo')\n// }\n// }\n// };\n\n// export const mockedUssdFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.USSD,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('ussd')\n// }\n// }\n// };\n\n// export const mockedMoRdirFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.MO_REDIR,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('moRedir')\n// }\n// }\n// };\n\n// export const mockedClick2smsFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.CLICK2SMS,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('click2sms')\n// }\n// }\n// };\n\n// export const mockedOneClickFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.ONE_CLICK,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('oneClick')\n// }\n// }\n// };\n\n// export const mockedCreditCardFlow: StrategyState = {\n// currentState: {\n// type: PossibleTypes.CREDIT_CARD,\n// result: RDS.NothingYet(),\n// data: {\n// config: mockConfig('creditCard')\n// }\n// }\n// };\n// export const mockedMOFlow : State = { type: \"MO\", result:moFlow(mockTracker, mockConfig(\"mo\"))}\n// export const mockedOneClickFlow : State = { type: \"ONECLICK\", result:oneClickFlow(mockTracker, mockConfig(\"oneClick\"), {\"testextraparams\":\"1\"})}\n// export const mockedClick2smsFlow : State = { type: \"CLICK2SMS\", result:click2smsFlow(mockTracker, mockConfig(\"click2sms\"))}\n// export const mockedMORedirFlow : State = { type: \"MOREDIR\", result:moRedirFlow(mockTracker, mockConfig(\"moRedir\"))}\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport * as RDS from '../../../common-types/RemoteDataState';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\n\nimport {\n IDENTIFYMSISDNEntryErrorTypes,\n ISupportedFlows,\n PossibleTypes,\n StrategyCurrentState\n} from '../../../sharedFlowTypes/StrategyTypes';\nimport { determineFlowByMsidn, flowMapping, getTrackerEventName } from '../main';\n\nexport const askMobileNumber = (): StrategyCurrentState => ({\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.NothingYet()\n});\n\nexport const submitMSISDNAction = createAsyncThunk(\n 'strategy/submitMSISDNAction',\n async (\n {\n window,\n msisdn\n }: {\n window: Window;\n msisdn: string;\n isHeSuccess?: boolean;\n },\n { rejectWithValue }\n ) => {\n try {\n const configs = getConfig();\n const flowObj = await determineFlowByMsidn({ window, internationalMSISDN: msisdn, configs });\n const flowType = flowObj?.flow;\n const event = getTrackerEventName(flowType);\n const defaultConfig = configs?.strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow as ISupportedFlows;\n\n if (!flowMapping[flowType]) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n tracker.sendOptInFlowEvent(event);\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n msisdn\n }\n };\n } catch (ex) {\n let errorType: IDENTIFYMSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'SEAlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'SEInvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n default:\n errorType = 'UnknownError';\n }\n return rejectWithValue({\n errorType,\n error: ex,\n productUrl: ex.productUrl\n });\n }\n }\n);\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport * as RDS from '../../../common-types/RemoteDataState';\n\nimport { PossibleTypes, StrategyCurrentState } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperator, flowMapping, getOperators, getTrackerEventName } from '../main';\n\nexport const askOperator = (): StrategyCurrentState => {\n const configs = getConfig();\n const operators = getOperators({ configs });\n return {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.NothingYet(),\n data: {\n operators\n }\n };\n};\n\nexport const selectOperatorAction = createAsyncThunk(\n 'strategy/selectOperatorAction',\n async (\n {\n operator\n }: {\n operator: string;\n },\n { rejectWithValue }\n ) => {\n try {\n const configs = getConfig();\n\n const flowObj = determineFlowByOperator({\n configs,\n operator\n });\n\n const flowType = flowObj.flow;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator\n }\n };\n } catch (ex) {\n const errorType = 'UnkownError';\n return rejectWithValue({\n errorType,\n error: ex.toString()\n });\n }\n }\n);\n","import * as RDS from '../../../common-types/RemoteDataState';\n\nimport { ISupportedFlows } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { getRedirectUrl } from '../api';\nimport { flowMapping, getTrackerEventName } from '../main';\n\nconst callRedirectApi = async () => {\n const configs = getConfig();\n const defaultConfig = configs?.strategyConfigs.default;\n const defaultFlowType = defaultConfig.flow as ISupportedFlows;\n const { slug, country, device } = defaultConfig.flowConfig;\n const { rockmanId } = window.pac_analytics.visitor;\n const { offer } = window.pac_analytics.visitor;\n try {\n const result = await getRedirectUrl({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId\n });\n\n if (result.success === false) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n\n // OPERATOR NOT KNOWN\n\n // const operator = result?.operator && result?.operator !== 'unknown' ? result?.operator : null;\n\n if (result?.payload?.network_type === 'data') {\n // const flowObj = await determineFlowByOperator({\n // operator,\n // configs\n // });\n // const flowType = flowObj.flow || defaultFlowType;\n const event = getTrackerEventName('oneClick');\n tracker.sendOptInFlowEvent(event);\n return {\n type: flowMapping.oneClick,\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n redirect_url: result.redirect_url || null\n }\n };\n }\n if (result?.payload?.network_type === 'wifi') {\n // const flowObj = await determineFlowByOperator({\n // operator,\n // configs\n // });\n // const flowType = flowObj.flow || defaultFlowType;\n const event = getTrackerEventName('moRedir');\n tracker.sendOptInFlowEvent(event);\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n redirect_url: result.redirect_url || null,\n skipRedirectCall: true\n }\n };\n }\n\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n redirect_url: result.redirect_url || null,\n skipRedirectCall: true\n }\n };\n } catch (ex) {\n console.error('error', ex);\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n};\n\nexport { callRedirectApi };\n","import * as RDS from '../../../common-types/RemoteDataState';\nimport { IStrategyNames, ISupportedFlows } from '../../../common-types/Strategy';\n\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperatorFromIp, flowMapping, getTrackerEventName } from '../main';\nimport { askMobileNumber } from './askMobileNumber';\nimport { askOperator } from './askOperator';\n\nconst detectOperatorByIp = async (strategy?: IStrategyNames) => {\n try {\n const configs = getConfig();\n\n const flowObj = await determineFlowByOperatorFromIp({\n window,\n configs\n });\n const defaultConfig = configs?.strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow as ISupportedFlows;\n\n if (\n !flowObj.flow &&\n (strategy === 'all-flows-detect-operator-by-ip-or-ask-mobile-number' ||\n strategy === 'all-flows-ask-mobile-number')\n ) {\n return askMobileNumber();\n }\n\n if (!flowObj.flow && strategy === 'all-flows-detect-operator-by-ip-or-ask-operator') {\n return askOperator();\n }\n\n const flowType = flowObj.flow;\n if (!flowMapping[flowType]) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n strategy\n }\n };\n }\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n strategy,\n defaultConfig,\n defaultFlowType\n }\n };\n } catch (ex) {\n console.error('error', ex);\n }\n};\n\nexport { detectOperatorByIp };\n","import IVisitor from '../../../common-types/IVisitor';\nimport * as RDS from '../../../common-types/RemoteDataState';\nimport { IStrategy } from '../../../common-types/Strategy';\n\nimport { ISupportedFlows } from '../../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { searchToObject } from '../../../utilities/searchToObject';\nimport { tracker } from '../../../utilities/tracker';\nimport {\n determineFlowByMsidn,\n determineFlowByOperator,\n flowMapping,\n getHeaderEnrichmentResult,\n getTrackerEventName\n} from '../main';\n\nconst resolveOperator = async (\n visitor: IVisitor,\n search: any,\n configs: IStrategy,\n msisdn: string\n): Promise<string | null> => {\n const firstSync = search?.operator ?? visitor?.heMsisdnDecryptedByApiResult?.operator;\n if (firstSync) return firstSync;\n\n const flow = await determineFlowByMsidn({\n window,\n configs,\n internationalMSISDN: msisdn\n });\n\n return flow?.operator ?? null;\n};\nconst handleHeaderEnrichment = async () => {\n const configs = getConfig();\n const defaultConfig = configs?.strategyConfigs.default;\n const defaultFlowType = defaultConfig.flow as ISupportedFlows;\n\n try {\n const visitor = (window.pac_analytics?.visitor ?? {}) as any;\n\n const search = searchToObject(window) as { operator: string; msisdn: string };\n\n const candidates: (string | undefined)[] = [\n search?.msisdn,\n visitor.heMsisdnDecryptedByApiResult?.msisdn,\n visitor.heMsisdnResult?.msisdn\n ];\n\n const msisdn = candidates.find((s) => !!s) ?? null;\n const isHeaderEnrichmentSuccess = msisdn !== null;\n\n const operator = msisdn ? await resolveOperator(visitor, search, configs, msisdn) : null;\n\n if (isHeaderEnrichmentSuccess) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn,\n operator\n });\n } else {\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure');\n }\n if (operator === null) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n\n if (configs.strategy === 'pin-header-enrichment' && isHeaderEnrichmentSuccess) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator,\n msisdn,\n isHeaderEnrichmentSuccess\n }\n };\n }\n\n if (window?.pac_analytics?.visitor?.heMsisdnDecryptedByApiResult?.isContentBlocked) {\n window.isContentBlocked = true;\n tracker.customEvent('Flow', 'recede-auto', 'content-blocked', {\n errorType: 'ContentBlocked',\n error: 'ContentBlocked',\n message: 'ContentBlocked',\n ...window?.pac_analytics?.visitor?.heMsisdnDecryptedByApiResult\n });\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator\n }\n };\n }\n let subscription_url = null;\n let redirect_url = null;\n const flowObj = await determineFlowByOperator({\n operator,\n configs\n });\n const flowType = flowObj.flow || defaultFlowType;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n if (flowType === 'oneClick') {\n const heResult = await getHeaderEnrichmentResult();\n\n subscription_url = heResult?.subscription_url || null;\n redirect_url = heResult?.redirect_url || null;\n }\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n subscription_url: subscription_url || null,\n redirect_url: redirect_url || null,\n isHeaderEnrichmentSuccess,\n msisdn,\n apn: visitor?.heMsisdnResult?.apn\n }\n };\n } catch (ex) {\n console.error('error', ex);\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig\n }\n };\n }\n};\n\nexport { handleHeaderEnrichment };\n","/* eslint-disable func-names */\nimport * as RDS from '../../../common-types/RemoteDataState';\nimport {\n IConfig,\n IFlow,\n IScriptHeaderEnrichmentFailure,\n IScriptHeaderEnrichmentSuccess,\n ISupportedFlows,\n PossibleTypes\n} from '../../../sharedFlowTypes/StrategyTypes';\nimport { formatNumberToE164 } from '../../../utilities/formatNumberToE164';\nimport { getConfig } from '../../../utilities/getConfig';\nimport { tracker } from '../../../utilities/tracker';\nimport { determineFlowByOperator, flowMapping, getTrackerEventName } from '../main';\n\n/**\n * Creates a response object with the given parameters.\n *\n * @param {string} msisdn - The MSISDN (Mobile Station International Subscriber Directory Number).\n * @param {IConfig} config - The configuration object.\n * @param {string | null} operator - The operator (default: null).\n * @return {object} The response that sets the state.\n */\nconst createResponseObject = (config: IConfig, flow?: ISupportedFlows) => ({\n type: flowMapping[flow] || PossibleTypes.PIN,\n result: RDS.NothingYet(),\n data: {\n config\n }\n});\n\n/**\n * Injects header enrichment script based on the provided window object.\n *\n * @param {Window} window - The window object containing analytics visitor details.\n * @return {Promise} A promise that resolves based on specific events or timeouts.\n */\nconst injectHeaderEnrichmentScript = async ({ window }: { window: Window }) => {\n const configs = getConfig();\n const enableScriptTimer = configs?.enableScriptTimer;\n const { strategyConfigs } = configs;\n const config = strategyConfigs?.default?.flowConfig;\n\n return new Promise((resolve) => {\n try {\n let heMsisdn = window?.pac_analytics?.visitor?.heMsisdn;\n const country = window?.pac_analytics?.visitor?.country;\n\n if (heMsisdn && country) {\n heMsisdn = formatNumberToE164(heMsisdn, country);\n }\n\n let msisdnDetected = false;\n let timerExpired = false;\n let timerId: string | number | NodeJS.Timeout;\n\n if (enableScriptTimer) {\n timerId = setTimeout(() => {\n if (!msisdnDetected) {\n timerExpired = true;\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: '3 second timer expired'\n });\n\n window.isPrelanderClicked = true;\n resolve({\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig\n }\n });\n }\n }, 3000);\n }\n\n const onSuccess = (event: Event) => {\n const { detail } = event as IScriptHeaderEnrichmentSuccess;\n heMsisdn = detail?.msisdn;\n if (detail?.msisdn && !detail?.encrypted_msisdn) {\n heMsisdn = formatNumberToE164(detail.msisdn, country);\n window.msisdn = heMsisdn;\n } else {\n window.msisdn = detail?.msisdn;\n window.is_encrypted_msisdn = detail?.encrypted_msisdn;\n }\n\n if (enableScriptTimer) {\n if (!timerExpired) {\n msisdnDetected = true;\n clearTimeout(timerId);\n\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn: heMsisdn\n });\n const flowObj = determineFlowByOperator({\n configs: getConfig(),\n operator: detail?.operator_code\n });\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(headerEnrichmentScript(flowObj, heMsisdn, detail?.operator_code, true));\n }\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-detected', {\n msisdn: heMsisdn,\n operator: detail?.operator_code\n });\n const flowObj = determineFlowByOperator({\n configs: getConfig(),\n operator: detail?.operator_code\n });\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(headerEnrichmentScript(flowObj, heMsisdn, detail?.operator_code, true));\n }\n };\n\n const onFail = (event: Event) => {\n const { detail } = event as IScriptHeaderEnrichmentFailure;\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', detail?.error_details);\n window.removeEventListener('he-success', onSuccess);\n window.removeEventListener('he-fail', onFail);\n resolve(createResponseObject(config, strategyConfigs?.default.flow as ISupportedFlows));\n };\n\n window.addEventListener('he-success', onSuccess);\n window.addEventListener('he-fail', onFail);\n\n if (!window?.heScriptUrl) {\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: 'Error he script url not set'\n });\n window.dispatchEvent(new Event('he-fail'));\n return;\n }\n window.addEventListener('error', (event) => {\n console.error('Global error:', event?.error);\n tracker.customEvent('Flow', 'recede-auto', 'global-error', {\n errorMessage: event?.error?.message,\n errorStack: event?.error?.stack\n });\n });\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.id = 'he-js-link';\n script.src = `${window.heScriptUrl}`; // URL Comes from server\n script.referrerPolicy = 'origin';\n document.head.appendChild(script);\n\n script.onerror = (error: any) => {\n console.error('Error loading Header Enrichment script.');\n tracker.customEvent('Flow', 'recede-auto', 'msisdn-detection-failure', {\n errorType: 'Error loading Header Enrichment script',\n errorMessage: error.message\n });\n window.dispatchEvent(new Event('he-fail'));\n };\n } catch (err) {\n console.error('Error in header enrichment:', err);\n resolve(createResponseObject(config, strategyConfigs?.default.flow as ISupportedFlows));\n }\n });\n};\n\nconst headerEnrichmentScript = (\n flowObj: IFlow,\n msisdn: string | null = null,\n operator: string | null = null,\n isHeaderEnrichmentSuccess: boolean\n) => {\n const defaultConfig = getConfig().strategyConfigs?.default;\n const defaultFlowType = defaultConfig?.flow;\n const flowType = flowObj.flow || flowObj.default?.flow;\n const event = getTrackerEventName(flowType);\n\n tracker.sendOptInFlowEvent(event);\n\n if (!flowObj.flow) {\n return {\n type: flowMapping[defaultFlowType],\n result: RDS.NothingYet(),\n data: {\n config: defaultConfig?.flowConfig,\n operator,\n msisdn,\n isHeaderEnrichmentSuccess\n }\n };\n }\n\n return {\n type: flowMapping[flowType],\n result: RDS.NothingYet(),\n data: {\n config: flowObj.flowConfig,\n operator: flowObj.operator,\n isHeaderEnrichmentSuccess\n }\n };\n};\n\nexport { injectHeaderEnrichmentScript };\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport { searchToObject } from '../../utilities/searchToObject';\n\nimport {\n IMockFlowParams,\n IMockPinFlowStates,\n ISupportedFlows,\n PossibleTypes,\n RootState,\n StrategyCurrentState,\n StrategyState\n} from '../../sharedFlowTypes/StrategyTypes';\nimport { getConfig } from '../../utilities/getConfig';\nimport { determineFlowByOperator, flowMapping } from './main';\nimport { askMobileNumber, submitMSISDNAction } from './strategies/askMobileNumber';\nimport { askOperator, selectOperatorAction } from './strategies/askOperator';\n\nimport { tracker } from '../../utilities/tracker';\nimport { callRedirectApi } from './strategies/callRedirectApi';\nimport { detectOperatorByIp } from './strategies/detectOperatorByIp';\nimport { handleHeaderEnrichment } from './strategies/headerEnrichment';\nimport { injectHeaderEnrichmentScript } from './strategies/injectHeaderEnrichmentScript';\n\nwindow.tracker = tracker;\nconst initialState: StrategyState = {\n currentState: {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.NothingYet(),\n data: undefined\n }\n};\n\nconst mockStrategyStateByUrlParam = (): StrategyCurrentState => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n\n if (search['mock-flow'] !== undefined) {\n if (search.operator !== undefined) {\n window.operator = search.operator;\n }\n\n switch (search['mock-flow']) {\n case 'pin':\n return {\n type: PossibleTypes.PIN,\n result: RDS.Success({})\n };\n\n case 'mo':\n return {\n type: PossibleTypes.MO,\n result: RDS.Success({})\n };\n case 'moredir':\n return {\n type: PossibleTypes.MO_REDIR,\n result: RDS.Success({})\n };\n case 'oneclick':\n return {\n type: PossibleTypes.ONE_CLICK,\n result: RDS.Success({}),\n data: {\n subscription_url: search['subscription-url']\n }\n };\n case 'click2sms':\n return {\n type: PossibleTypes.CLICK2SMS,\n result: RDS.Success({})\n };\n case 'ussd':\n return {\n type: PossibleTypes.USSD,\n result: RDS.Success({})\n };\n case 'creditcard':\n return {\n type: PossibleTypes.CREDIT_CARD,\n result: RDS.Success({})\n };\n default:\n throw new Error('(mockStrategyStateByUrlParam) Strategy Mock Flow not supported');\n }\n }\n};\n\n/**\n * Identify Strategy\n * @returns {type: 'strategy/identifyStrategy', payload: {type: PossibleTypes.MO, result: IdentifyFlowOptionsResult}}\n * - Add type\n * - Makes a decision on which strategy to use in order to identify the flow\n * - Strategy could be asking user's phone number, selecting an operator etc\n * - all with the intension of getting the flow and its configuration\n * - Flows are usually tied to an operator in the pages config.json\n * - But they could also be single flows\n *\n */\n\nexport const identifyStrategy = createAsyncThunk('strategy/identifyStrategy', async () => {\n const configs = getConfig();\n const { strategy, strategyConfigs } = configs;\n // const { isUseMsisdnPrefix } = strategyConfigs;\n const search = searchToObject(window) as IMockFlowParams<IMockPinFlowStates>;\n if (search['mock-flow'] !== undefined) {\n return mockStrategyStateByUrlParam();\n }\n if (search.ui_show_default_flow === '1') {\n const flow = strategyConfigs?.default.flow as ISupportedFlows;\n const config = strategyConfigs?.default?.flowConfig;\n return {\n type: flowMapping[flow],\n result: RDS.NothingYet(),\n data: {\n config\n }\n };\n }\n if (\n (search['show-pin-entry'] && search['show-pin-entry'] === '1') ||\n (search['show-thank-you'] && search['show-thank-you'] === '1') ||\n (search.show_custom_error && search.show_custom_error === '1')\n ) {\n const flowObj = determineFlowByOperator({\n configs,\n operator: search.operator\n });\n const strategyResult: StrategyCurrentState = {\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: flowObj?.flowConfig || strategyConfigs?.default?.flowConfig\n }\n };\n return strategyResult;\n }\n\n if (strategy.includes('ask-operator')) {\n return askOperator();\n }\n if (strategy.includes('detect-operator-by-ip')) {\n return detectOperatorByIp(strategy);\n }\n if (strategy?.includes('ask-mobile-number')) {\n return askMobileNumber();\n }\n\n if (strategy?.includes('detect-operator-by-redirect-api')) {\n return callRedirectApi();\n }\n\n if (strategy?.includes('header-enrichment') && strategy !== 'header-enrichment-script') {\n const n = await handleHeaderEnrichment();\n // @ts-ignore\n return n;\n }\n\n switch (strategy) {\n // REOVING THIS AS IT INJECTS UNUSED CODE\n case 'header-enrichment-script':\n // eslint-disable-next-line no-return-await\n return injectHeaderEnrichmentScript({\n window\n });\n case 'pin': {\n tracker.sendOptInFlowEvent('Pin');\n return {\n type: PossibleTypes.PIN,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n }\n case 'mo':\n tracker.sendOptInFlowEvent('Msisdn to sms');\n return {\n type: PossibleTypes.MO,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'mo-redir':\n return {\n type: PossibleTypes.MO_REDIR,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'one-click':\n tracker.sendOptInFlowEvent('Redirect');\n return {\n type: PossibleTypes.ONE_CLICK,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'click2sms':\n tracker.sendOptInFlowEvent('Click to sms');\n return {\n type: PossibleTypes.CLICK2SMS,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'ussd':\n tracker.sendOptInFlowEvent('USSD');\n return {\n type: PossibleTypes.USSD,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n case 'credit-card':\n // @ts-ignore\n tracker.sendOptInFlowEvent('Credit card');\n return {\n type: PossibleTypes.CREDIT_CARD,\n result: RDS.Success({}),\n data: {\n config: strategyConfigs?.default?.flowConfig,\n strategy\n }\n };\n default:\n throw new Error('Strategy not supported');\n }\n});\n\nexport const setStrategyExtraData = createAsyncThunk(\n 'strategy/setStrategyExtraData',\n async ({ type, data }: { type: PossibleTypes; data: any }) => ({\n type,\n result: RDS.NothingYet(),\n data\n })\n);\n\nexport const strategySlice = createSlice({\n name: 'strategy',\n initialState,\n reducers: {\n // Define synchronous reducers as needed\n },\n extraReducers: (builder) => {\n // @ts-ignore\n builder\n .addCase(identifyStrategy.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.Loading()\n };\n })\n // @ts-ignore\n .addCase(identifyStrategy.fulfilled, (state, action: PayloadAction<StrategyCurrentState>) => {\n state.currentState = action.payload;\n })\n .addCase(identifyStrategy.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_STRATEGY,\n result: RDS.Failure(action.error.message)\n };\n })\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.Loading()\n };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<StrategyCurrentState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_MSISDN,\n result: RDS.Failure(action.payload)\n };\n })\n .addCase(setStrategyExtraData.fulfilled, (state, action) => {\n state.currentState = action.payload;\n })\n .addCase(selectOperatorAction.pending, (state) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.Loading()\n };\n })\n .addCase(selectOperatorAction.fulfilled, (state, action: PayloadAction<any>) => {\n state.currentState = action.payload;\n })\n .addCase(selectOperatorAction.rejected, (state, action) => {\n state.currentState = {\n type: PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT,\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\nexport const selectStrategyState = (state: RootState) => state.strategy;\nexport const strategyReducer = strategySlice.reducer;\n"],"names":["RDS.NothingYet","RDS.Success","RDS.Loading","RDS.Failure"],"mappings":"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"}