ouisys-engine 4.6.2 → 4.7.0-alpha.1

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.
Files changed (222) hide show
  1. package/dist/RemoteDataState-CwHLI23e.js +75 -0
  2. package/dist/RemoteDataState-CwHLI23e.js.map +1 -0
  3. package/dist/bupperizeCountry-CCDIOHP6.js +4 -0
  4. package/dist/bupperizeCountry-CCDIOHP6.js.map +1 -0
  5. package/dist/checkSubscriptionByRockmanIdOnly-C89Ph9cV.js +27 -0
  6. package/dist/checkSubscriptionByRockmanIdOnly-C89Ph9cV.js.map +1 -0
  7. package/dist/checkSubscriptionHander.js +53 -0
  8. package/dist/checkSubscriptionHander.js.map +1 -0
  9. package/dist/click2smsFlow.js +246 -0
  10. package/dist/click2smsFlow.js.map +1 -0
  11. package/dist/creditCardFlow.js +248 -0
  12. package/dist/creditCardFlow.js.map +1 -0
  13. package/dist/getConfig.js +14 -0
  14. package/dist/getConfig.js.map +1 -0
  15. package/dist/handleClickChainFlow.js +32 -0
  16. package/dist/handleClickChainFlow.js.map +1 -0
  17. package/dist/handleSubmitNumber.js +65 -0
  18. package/dist/handleSubmitNumber.js.map +1 -0
  19. package/dist/helpers-J_h-ZgxH.js +29 -0
  20. package/dist/helpers-J_h-ZgxH.js.map +1 -0
  21. package/dist/loadScriptInnerHtml-DPcoY467.js +26 -0
  22. package/dist/loadScriptInnerHtml-DPcoY467.js.map +1 -0
  23. package/dist/moFlow.js +275 -0
  24. package/dist/moFlow.js.map +1 -0
  25. package/dist/moRedirFlow.js +225 -0
  26. package/dist/moRedirFlow.js.map +1 -0
  27. package/dist/oneClickFlow.js +464 -0
  28. package/dist/oneClickFlow.js.map +1 -0
  29. package/dist/pinFlow.js +697 -0
  30. package/dist/pinFlow.js.map +1 -0
  31. package/dist/searchToObject.js +19 -0
  32. package/dist/searchToObject.js.map +1 -0
  33. package/dist/storeMsisdn-ChiBh8mI.js +58 -0
  34. package/dist/storeMsisdn-ChiBh8mI.js.map +1 -0
  35. package/dist/strategy.js +50 -0
  36. package/dist/strategy.js.map +1 -0
  37. package/dist/strategySlice-bF74rxDK.js +842 -0
  38. package/dist/strategySlice-bF74rxDK.js.map +1 -0
  39. package/dist/tracker-B_zsMRN2.js +79 -0
  40. package/dist/tracker-B_zsMRN2.js.map +1 -0
  41. package/dist/tracker.js +5 -0
  42. package/dist/tracker.js.map +1 -0
  43. package/dist/tryGetIPRangeName-C69HEG5W.js +42 -0
  44. package/dist/tryGetIPRangeName-C69HEG5W.js.map +1 -0
  45. package/dist/types/CreditCardTypes-B-IT-l6I.d.ts +72 -0
  46. package/dist/types/IHash-0OgZ_1ij.d.ts +5 -0
  47. package/dist/types/MoRedirTypes-4tEJjT1g.d.ts +31 -0
  48. package/dist/types/MoTypes-D-UK92gs.d.ts +45 -0
  49. package/dist/types/OneClickTypes-DF0jodl-.d.ts +69 -0
  50. package/dist/types/PinTypes-BLJDBZe6.d.ts +128 -0
  51. package/dist/types/RemoteDataState-D1aFrz8W.d.ts +61 -0
  52. package/dist/types/StrategyTypes-BEIYqoJV.d.ts +325 -0
  53. package/dist/types/UssdTypes-C7QlIW11.d.ts +34 -0
  54. package/dist/types/checkSubscriptionHander.d.ts +8 -0
  55. package/dist/types/click2smsFlow.d.ts +37 -0
  56. package/dist/types/creditCardFlow.d.ts +37 -0
  57. package/dist/types/getConfig.d.ts +38 -0
  58. package/dist/types/handleClickChainFlow.d.ts +6 -0
  59. package/dist/types/handleSubmitNumber.d.ts +26 -0
  60. package/dist/types/moFlow.d.ts +70 -0
  61. package/dist/types/moRedirFlow.d.ts +82 -0
  62. package/dist/types/oneClickFlow.d.ts +56 -0
  63. package/dist/types/pinFlow.d.ts +179 -0
  64. package/dist/types/searchToObject.d.ts +3 -0
  65. package/dist/types/strategy.d.ts +86 -0
  66. package/dist/types/tracker.d.ts +5 -0
  67. package/dist/types/ussdFlow.d.ts +84 -0
  68. package/dist/ussdFlow.js +211 -0
  69. package/dist/ussdFlow.js.map +1 -0
  70. package/package.json +85 -9
  71. package/.babelrc +0 -30
  72. package/.browserslistrc +0 -6
  73. package/.eslintrc.js +0 -3
  74. package/.nvmrc +0 -1
  75. package/.prettierignore +0 -4
  76. package/dist/@types/react-tracker.d.js +0 -1
  77. package/dist/@types/redux-cli-logger.d.js +0 -1
  78. package/dist/@types/tiny-async-pool.d.js +0 -1
  79. package/dist/@types/window.d.js +0 -1
  80. package/dist/api/index.d.ts +0 -43
  81. package/dist/api/index.js +0 -1
  82. package/dist/common-types/AppThunk.d.ts +0 -13
  83. package/dist/common-types/AppThunk.js +0 -1
  84. package/dist/common-types/Either.d.ts +0 -8
  85. package/dist/common-types/Either.js +0 -1
  86. package/dist/common-types/IError.d.ts +0 -3
  87. package/dist/common-types/IError.js +0 -1
  88. package/dist/common-types/IOptInFlowName.d.ts +0 -1
  89. package/dist/common-types/IOptInFlowName.js +0 -1
  90. package/dist/common-types/ITracker.d.ts +0 -9
  91. package/dist/common-types/ITracker.js +0 -1
  92. package/dist/common-types/IVisitor.d.ts +0 -14
  93. package/dist/common-types/IVisitor.js +0 -1
  94. package/dist/common-types/RemoteDataState.d.ts +0 -38
  95. package/dist/common-types/RemoteDataState.js +0 -1
  96. package/dist/custom-hooks/useOneClickRedirectUrl.d.ts +0 -3
  97. package/dist/custom-hooks/useOneClickRedirectUrl.js +0 -1
  98. package/dist/custom-hooks/usePinEntryState.d.ts +0 -8
  99. package/dist/custom-hooks/usePinEntryState.js +0 -1
  100. package/dist/custom-hooks/useStrategyConfig.d.ts +0 -4
  101. package/dist/custom-hooks/useStrategyConfig.js +0 -1
  102. package/dist/flows/click2smsFlow.d.ts +0 -6
  103. package/dist/flows/click2smsFlow.js +0 -1
  104. package/dist/flows/creditCardFlow.d.ts +0 -6
  105. package/dist/flows/creditCardFlow.js +0 -1
  106. package/dist/flows/moFlow.d.ts +0 -6
  107. package/dist/flows/moFlow.js +0 -1
  108. package/dist/flows/moRedirFlow.d.ts +0 -6
  109. package/dist/flows/moRedirFlow.js +0 -1
  110. package/dist/flows/oneClickFlow.d.ts +0 -7
  111. package/dist/flows/oneClickFlow.js +0 -1
  112. package/dist/flows/pinFlow.d.ts +0 -7
  113. package/dist/flows/pinFlow.js +0 -1
  114. package/dist/flows/strategy.d.ts +0 -14
  115. package/dist/flows/strategy.js +0 -1
  116. package/dist/flows/ussdFlow.d.ts +0 -6
  117. package/dist/flows/ussdFlow.js +0 -1
  118. package/dist/index.d.ts +0 -0
  119. package/dist/index.js +0 -1
  120. package/dist/ips/tryGetIPRangeName.d.ts +0 -2
  121. package/dist/ips/tryGetIPRangeName.js +0 -1
  122. package/dist/jest.config.js +0 -194
  123. package/dist/pacman/index.d.ts +0 -6
  124. package/dist/pacman/index.js +0 -1
  125. package/dist/pacman/queryString.d.ts +0 -3
  126. package/dist/pacman/queryString.js +0 -1
  127. package/dist/reducers/click2smsFlow/Click2smsTypes.d.ts +0 -76
  128. package/dist/reducers/click2smsFlow/Click2smsTypes.js +0 -1
  129. package/dist/reducers/click2smsFlow/IClick2smsConstants.d.ts +0 -2
  130. package/dist/reducers/click2smsFlow/IClick2smsConstants.js +0 -1
  131. package/dist/reducers/click2smsFlow/index.d.ts +0 -5
  132. package/dist/reducers/click2smsFlow/index.js +0 -1
  133. package/dist/reducers/click2smsFlow/utils.d.ts +0 -4
  134. package/dist/reducers/click2smsFlow/utils.js +0 -1
  135. package/dist/reducers/creditCardFlow/CreditCardTypes.d.ts +0 -79
  136. package/dist/reducers/creditCardFlow/CreditCardTypes.js +0 -1
  137. package/dist/reducers/creditCardFlow/ICreditCardConstants.d.ts +0 -2
  138. package/dist/reducers/creditCardFlow/ICreditCardConstants.js +0 -1
  139. package/dist/reducers/creditCardFlow/index.d.ts +0 -5
  140. package/dist/reducers/creditCardFlow/index.js +0 -1
  141. package/dist/reducers/creditCardFlow/utils.d.ts +0 -8
  142. package/dist/reducers/creditCardFlow/utils.js +0 -1
  143. package/dist/reducers/moFlow/IMoConstants.d.ts +0 -2
  144. package/dist/reducers/moFlow/IMoConstants.js +0 -1
  145. package/dist/reducers/moFlow/MoTypes.d.ts +0 -88
  146. package/dist/reducers/moFlow/MoTypes.js +0 -1
  147. package/dist/reducers/moFlow/index.d.ts +0 -16
  148. package/dist/reducers/moFlow/index.js +0 -1
  149. package/dist/reducers/moFlow/utils.d.ts +0 -12
  150. package/dist/reducers/moFlow/utils.js +0 -1
  151. package/dist/reducers/moRedirFlow/IMoRedirConstants.d.ts +0 -2
  152. package/dist/reducers/moRedirFlow/IMoRedirConstants.js +0 -1
  153. package/dist/reducers/moRedirFlow/MoRedirTypes.d.ts +0 -64
  154. package/dist/reducers/moRedirFlow/MoRedirTypes.js +0 -1
  155. package/dist/reducers/moRedirFlow/index.d.ts +0 -14
  156. package/dist/reducers/moRedirFlow/index.js +0 -1
  157. package/dist/reducers/moRedirFlow/utils.d.ts +0 -10
  158. package/dist/reducers/moRedirFlow/utils.js +0 -1
  159. package/dist/reducers/oneClickFlow/IOneClickConstants.d.ts +0 -2
  160. package/dist/reducers/oneClickFlow/IOneClickConstants.js +0 -1
  161. package/dist/reducers/oneClickFlow/OneClickTypes.d.ts +0 -85
  162. package/dist/reducers/oneClickFlow/OneClickTypes.js +0 -1
  163. package/dist/reducers/oneClickFlow/index.d.ts +0 -13
  164. package/dist/reducers/oneClickFlow/index.js +0 -1
  165. package/dist/reducers/oneClickFlow/utils.d.ts +0 -16
  166. package/dist/reducers/oneClickFlow/utils.js +0 -1
  167. package/dist/reducers/pinFlow/IPinConstants.d.ts +0 -2
  168. package/dist/reducers/pinFlow/IPinConstants.js +0 -1
  169. package/dist/reducers/pinFlow/PinTypes.d.ts +0 -156
  170. package/dist/reducers/pinFlow/PinTypes.js +0 -1
  171. package/dist/reducers/pinFlow/index.d.ts +0 -19
  172. package/dist/reducers/pinFlow/index.js +0 -1
  173. package/dist/reducers/pinFlow/utils.d.ts +0 -11
  174. package/dist/reducers/pinFlow/utils.js +0 -1
  175. package/dist/reducers/strategy/IStategyActionContants.d.ts +0 -2
  176. package/dist/reducers/strategy/IStategyActionContants.js +0 -1
  177. package/dist/reducers/strategy/StrategyTypes.d.ts +0 -248
  178. package/dist/reducers/strategy/StrategyTypes.js +0 -1
  179. package/dist/reducers/strategy/index.d.ts +0 -13
  180. package/dist/reducers/strategy/index.js +0 -1
  181. package/dist/reducers/strategy/strategies/ask_mobile_number.d.ts +0 -15
  182. package/dist/reducers/strategy/strategies/ask_mobile_number.js +0 -1
  183. package/dist/reducers/strategy/strategies/ask_operator.d.ts +0 -5
  184. package/dist/reducers/strategy/strategies/ask_operator.js +0 -1
  185. package/dist/reducers/strategy/strategies/detect_operator_by_ip.d.ts +0 -10
  186. package/dist/reducers/strategy/strategies/detect_operator_by_ip.js +0 -1
  187. package/dist/reducers/strategy/strategies/header_enrichment.d.ts +0 -7
  188. package/dist/reducers/strategy/strategies/header_enrichment.js +0 -1
  189. package/dist/reducers/strategy/strategies/injectHeaderEnrichmentScript.d.ts +0 -7
  190. package/dist/reducers/strategy/strategies/injectHeaderEnrichmentScript.js +0 -1
  191. package/dist/reducers/strategy/utils.d.ts +0 -30
  192. package/dist/reducers/strategy/utils.js +0 -1
  193. package/dist/reducers/ussdFlow/IUssdConstants.d.ts +0 -2
  194. package/dist/reducers/ussdFlow/IUssdConstants.js +0 -1
  195. package/dist/reducers/ussdFlow/UssdTypes.d.ts +0 -77
  196. package/dist/reducers/ussdFlow/UssdTypes.js +0 -1
  197. package/dist/reducers/ussdFlow/index.d.ts +0 -14
  198. package/dist/reducers/ussdFlow/index.js +0 -1
  199. package/dist/reducers/ussdFlow/utils.d.ts +0 -11
  200. package/dist/reducers/ussdFlow/utils.js +0 -1
  201. package/dist/store/index.d.ts +0 -14
  202. package/dist/store/index.js +0 -1
  203. package/dist/store/reducers.d.ts +0 -20
  204. package/dist/store/reducers.js +0 -1
  205. package/dist/utilities/addEmpelloToken.d.ts +0 -4
  206. package/dist/utilities/addEmpelloToken.js +0 -1
  207. package/dist/utilities/handleSubmitNumber.d.ts +0 -21
  208. package/dist/utilities/handleSubmitNumber.js +0 -1
  209. package/dist/utilities/index.d.ts +0 -17
  210. package/dist/utilities/index.js +0 -1
  211. package/dist/utilities/loadScriptInnerHtml.d.ts +0 -2
  212. package/dist/utilities/loadScriptInnerHtml.js +0 -1
  213. package/dist/utilities/loadScriptSrc.d.ts +0 -8
  214. package/dist/utilities/loadScriptSrc.js +0 -1
  215. package/dist/utilities/replaceUrlParam.d.ts +0 -1
  216. package/dist/utilities/replaceUrlParam.js +0 -1
  217. package/dist/utilities/storeMsisdn.d.ts +0 -3
  218. package/dist/utilities/storeMsisdn.js +0 -1
  219. package/index.html +0 -49
  220. package/mockData/config.json +0 -28
  221. package/setupJest.js +0 -6
  222. package/tsconfig.json +0 -28
@@ -0,0 +1,75 @@
1
+ function match(_a) {
2
+ var nothingYet = _a.nothingYet, loading = _a.loading, failure = _a.failure, success = _a.success;
3
+ return function (model) {
4
+ switch (model.type) {
5
+ case 'NothingYet':
6
+ return nothingYet();
7
+ case 'Loading':
8
+ return loading();
9
+ case 'Failure':
10
+ return failure(model.error);
11
+ case 'Success':
12
+ return success(model.data);
13
+ default:
14
+ return nothingYet();
15
+ }
16
+ };
17
+ }
18
+ var NothingYet = function () { return ({
19
+ type: 'NothingYet'
20
+ }); };
21
+ var Loading = function () { return ({
22
+ type: 'Loading'
23
+ }); };
24
+ var Failure = function (error) { return ({
25
+ type: 'Failure',
26
+ error: error
27
+ }); };
28
+ var Success = function (data) { return ({
29
+ type: 'Success',
30
+ data: data
31
+ }); };
32
+ var IsNothingYet = function (s) { return s.type === 'NothingYet'; };
33
+ var IsLoading = function (s) { return s.type === 'Loading'; };
34
+ var IsFailure = function (s) { return s.type === 'Failure'; };
35
+ var IsSuccess = function (s) { return s.type === 'Success'; };
36
+ var WhenFailure = function (d, r) { return function (s) {
37
+ return s.type === 'Failure' ? r(s.error) : d;
38
+ }; };
39
+ var WhenLoading = function (d, r) { return function (s) {
40
+ return s.type === 'Loading' ? r() : d;
41
+ }; };
42
+ var WhenSuccess = function (d, r) { return function (s) {
43
+ return s.type === 'Success' ? r(s.data) : d;
44
+ }; };
45
+ var MatchFailure = function (_a) {
46
+ var failure = _a.failure, otherwise = _a.otherwise;
47
+ return function (s) { return (s.type === 'Failure' ? failure(s.error) : otherwise()); };
48
+ };
49
+ var MatchSuccess = function (_a) {
50
+ var success = _a.success, otherwise = _a.otherwise;
51
+ return function (s) {
52
+ return s.type === 'Success' ? success(s.data) : otherwise(s);
53
+ };
54
+ };
55
+
56
+ var RemoteDataState = /*#__PURE__*/Object.freeze({
57
+ __proto__: null,
58
+ Failure: Failure,
59
+ IsFailure: IsFailure,
60
+ IsLoading: IsLoading,
61
+ IsNothingYet: IsNothingYet,
62
+ IsSuccess: IsSuccess,
63
+ Loading: Loading,
64
+ MatchFailure: MatchFailure,
65
+ MatchSuccess: MatchSuccess,
66
+ NothingYet: NothingYet,
67
+ Success: Success,
68
+ WhenFailure: WhenFailure,
69
+ WhenLoading: WhenLoading,
70
+ WhenSuccess: WhenSuccess,
71
+ match: match
72
+ });
73
+
74
+ export { Failure as F, Loading as L, NothingYet as N, RemoteDataState as R, Success as S };
75
+ //# sourceMappingURL=RemoteDataState-CwHLI23e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteDataState-CwHLI23e.js","sources":["../src/common-types/RemoteDataState.ts"],"sourcesContent":["export type RemoteDataState<E, D> =\n | { type: 'NothingYet' }\n | { type: 'Loading' }\n | { type: 'Failure'; error: E }\n | { type: 'Success'; data: D };\n\nexport interface IMatcher<E, D, R> {\n nothingYet: (data?: D) => R;\n loading: () => R;\n failure: (error: E) => R;\n success: (data: D) => R;\n}\n\nexport interface ISuccessMatcher<E, D, R> {\n success: (data: D) => R;\n otherwise: (rds: RemoteDataState<E, D>) => R;\n}\n\nexport function match<E, D, R>({\n nothingYet,\n loading,\n failure,\n success\n}: IMatcher<E, D, R>): (model: RemoteDataState<E, D>) => R {\n return (model) => {\n switch (model.type) {\n case 'NothingYet':\n return nothingYet();\n case 'Loading':\n return loading();\n case 'Failure':\n return failure(model.error);\n case 'Success':\n return success(model.data);\n default:\n return nothingYet();\n }\n };\n}\n\nexport const NothingYet = <E, D>(): RemoteDataState<E, D> => ({\n type: 'NothingYet'\n});\n\nexport const Loading = <E, D>(): RemoteDataState<E, D> => ({\n type: 'Loading'\n});\n\nexport const Failure = <E, D>(error: E): RemoteDataState<E, D> => ({\n type: 'Failure',\n error\n});\n\nexport const Success = <E, D>(data: D): RemoteDataState<E, D> => ({\n type: 'Success',\n data\n});\n\nexport const IsNothingYet = <E, D>(s: RemoteDataState<E, D>) => s.type === 'NothingYet';\nexport const IsLoading = <E, D>(s: RemoteDataState<E, D>) => s.type === 'Loading';\nexport const IsFailure = <E, D>(s: RemoteDataState<E, D>) => s.type === 'Failure';\nexport const IsSuccess = <E, D>(s: RemoteDataState<E, D>) => s.type === 'Success';\n\nexport const WhenFailure = <E, D, R>(d: R, r: (err: E) => R) => (s: RemoteDataState<E, D>) =>\n s.type === 'Failure' ? r(s.error) : d;\n\nexport const WhenLoading = <D, R>(d: R, r: () => R) => (s: RemoteDataState<unknown, D>) =>\n s.type === 'Loading' ? r() : d;\n\nexport const WhenSuccess = <D, R>(d: R, r: (data: D) => R) => (s: RemoteDataState<unknown, D>) =>\n s.type === 'Success' ? r(s.data) : d;\n\nexport const MatchFailure = <E, D, R>({ failure, otherwise }: { otherwise: () => R; failure: (err: E) => R }) => (\n s: RemoteDataState<E, D>\n) => (s.type === 'Failure' ? failure(s.error) : otherwise());\n\nexport const MatchSuccess = <E, D, R>({ success, otherwise }: ISuccessMatcher<E, D, R>) => (s: RemoteDataState<E, D>) =>\n s.type === 'Success' ? success(s.data) : otherwise(s);\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ var bupperizeCountry = function (c) { return (c === 'gb' ? 'uk' : c); };
2
+
3
+ export { bupperizeCountry as b };
4
+ //# sourceMappingURL=bupperizeCountry-CCDIOHP6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bupperizeCountry-CCDIOHP6.js","sources":["../src/utilities/bupperizeCountry.ts"],"sourcesContent":["const bupperizeCountry = (c: string) => (c === 'gb' ? 'uk' : c);\nexport { bupperizeCountry };\n"],"names":[],"mappings":"AAAM,IAAA,gBAAgB,GAAG,UAAC,CAAS,IAAK,QAAC,CAAC,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,EAAtB;;;;"}
@@ -0,0 +1,27 @@
1
+ import { __awaiter, __generator } from 'tslib';
2
+
3
+ var checkSubscriptionByRockmanIdOnly = function (_a) {
4
+ var window = _a.window, rockmanId = _a.rockmanId;
5
+ return __awaiter(void 0, void 0, void 0, function () {
6
+ var host, params, urlParams, url, response;
7
+ return __generator(this, function (_b) {
8
+ switch (_b.label) {
9
+ case 0:
10
+ host = window.DEV_BASE_URL || '';
11
+ params = {
12
+ action: 'check-subscription',
13
+ rockman_id: rockmanId
14
+ };
15
+ urlParams = new URLSearchParams(params).toString();
16
+ url = "".concat(host, "/tallyman/v1/?").concat(urlParams);
17
+ return [4 /*yield*/, fetch(url)];
18
+ case 1:
19
+ response = _b.sent();
20
+ return [2 /*return*/, response.json()];
21
+ }
22
+ });
23
+ });
24
+ };
25
+
26
+ export { checkSubscriptionByRockmanIdOnly as c };
27
+ //# sourceMappingURL=checkSubscriptionByRockmanIdOnly-C89Ph9cV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkSubscriptionByRockmanIdOnly-C89Ph9cV.js","sources":["../src/sharedApi/checkSubscriptionByRockmanIdOnly.ts"],"sourcesContent":["import { ICheckSubscriptionResult } from '../common-types/ICheckSubscriptionResult';\n\nconst checkSubscriptionByRockmanIdOnly = async ({\n window,\n rockmanId\n}: {\n window: Window;\n rockmanId: string;\n}): Promise<ICheckSubscriptionResult> => {\n const host = (window as Window).DEV_BASE_URL || '';\n\n const params = {\n action: 'check-subscription',\n rockman_id: rockmanId\n };\n\n const urlParams = new URLSearchParams(params).toString();\n const url = `${host}/tallyman/v1/?${urlParams}`;\n\n const response = await fetch(url);\n return response.json();\n};\n\nexport { checkSubscriptionByRockmanIdOnly };\n"],"names":[],"mappings":";;AAEM,IAAA,gCAAgC,GAAG,UAAO,EAM/C,EAAA;QALC,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,SAAS,GAAA,EAAA,CAAA,SAAA,CAAA;;;;;;AAKH,oBAAA,IAAI,GAAI,MAAiB,CAAC,YAAY,IAAI,EAAE,CAAC;AAE7C,oBAAA,MAAM,GAAG;AACb,wBAAA,MAAM,EAAE,oBAAoB;AAC5B,wBAAA,UAAU,EAAE,SAAS;qBACtB,CAAC;oBAEI,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;AACnD,oBAAA,GAAG,GAAG,EAAG,CAAA,MAAA,CAAA,IAAI,EAAiB,gBAAA,CAAA,CAAA,MAAA,CAAA,SAAS,CAAE,CAAC;AAE/B,oBAAA,OAAA,CAAA,CAAA,YAAM,KAAK,CAAC,GAAG,CAAC,CAAA,CAAA;;AAA3B,oBAAA,QAAQ,GAAG,EAAgB,CAAA,IAAA,EAAA,CAAA;AACjC,oBAAA,OAAA,CAAA,CAAA,aAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;;;;;;;;"}
@@ -0,0 +1,53 @@
1
+ import { __awaiter, __generator, __assign } from 'tslib';
2
+ import { c as checkSubscriptionByRockmanIdOnly } from './checkSubscriptionByRockmanIdOnly-C89Ph9cV.js';
3
+ import { a as loop } from './helpers-J_h-ZgxH.js';
4
+ import { searchToObject } from './searchToObject.js';
5
+ import { t as tracker } from './tracker-B_zsMRN2.js';
6
+ import 'pacman-client';
7
+ import 'uuid';
8
+
9
+ function checkSubscriptionHander(_a) {
10
+ var window = _a.window, flow = _a.flow, action = _a.action, args = _a.args;
11
+ return __awaiter(this, void 0, void 0, function () {
12
+ var rockmanId, search, isMock, check, checkResult, error;
13
+ return __generator(this, function (_b) {
14
+ switch (_b.label) {
15
+ case 0:
16
+ rockmanId = window.pac_analytics.visitor.rockmanId;
17
+ search = searchToObject(window);
18
+ isMock = search['current-state'] === 'check-subscription-success-state';
19
+ if (isMock) {
20
+ // eslint-disable-next-line no-console
21
+ console.log('isMock is true');
22
+ }
23
+ check = function () {
24
+ return isMock
25
+ ? Promise.resolve({
26
+ success: true,
27
+ rockman_id: rockmanId,
28
+ product_url: '/product',
29
+ msisdn: '000'
30
+ })
31
+ : checkSubscriptionByRockmanIdOnly({ window: window, rockmanId: rockmanId });
32
+ };
33
+ return [4 /*yield*/, loop(check, 60, function (r) { return r.success; }, 0)];
34
+ case 1:
35
+ checkResult = _b.sent();
36
+ if (checkResult.success === true) {
37
+ // eslint-disable-next-line no-param-reassign
38
+ if (flow && action) {
39
+ tracker.advancedInFlow(flow, action, __assign(__assign({}, args), { url: checkResult.product_url }));
40
+ }
41
+ window.location.href = checkResult.product_url;
42
+ return [2 /*return*/, checkResult.product_url || null];
43
+ }
44
+ error = new Error("".concat('SubscriptionFailed', ":\n").concat(checkResult.message));
45
+ error.type = 'SubscriptionFailed';
46
+ throw error;
47
+ }
48
+ });
49
+ });
50
+ }
51
+
52
+ export { checkSubscriptionHander };
53
+ //# sourceMappingURL=checkSubscriptionHander.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkSubscriptionHander.js","sources":["../src/utilities/checkSubscriptionHander.ts"],"sourcesContent":["import { ICheckSubscriptionResult } from '../common-types/ICheckSubscriptionResult';\nimport { IError } from '../common-types/IError';\nimport { checkSubscriptionByRockmanIdOnly } from '../sharedApi/checkSubscriptionByRockmanIdOnly';\nimport { IMockFlowParams } from '../sharedFlowTypes/StrategyTypes';\nimport { loop } from './helpers';\nimport { searchToObject } from './searchToObject';\nimport { tracker } from './tracker';\n\nexport async function checkSubscriptionHander({\n window,\n flow,\n action,\n args\n}: {\n window: Window;\n flow?: string;\n action?: string;\n args?: any;\n}): Promise<string> {\n const { rockmanId } = window.pac_analytics.visitor;\n const search = searchToObject(window) as IMockFlowParams<any>;\n const isMock = search['current-state'] === 'check-subscription-success-state';\n if (isMock) {\n // eslint-disable-next-line no-console\n console.log('isMock is true');\n }\n const check: () => Promise<ICheckSubscriptionResult> = () =>\n isMock\n ? Promise.resolve({\n success: true,\n rockman_id: rockmanId,\n product_url: '/product',\n msisdn: '000'\n })\n : checkSubscriptionByRockmanIdOnly({ window, rockmanId });\n const checkResult: ICheckSubscriptionResult = await loop(check, 60, (r) => r.success, 0);\n\n if (checkResult.success === true) {\n // eslint-disable-next-line no-param-reassign\n if (flow && action) {\n tracker.advancedInFlow(flow, action, {\n ...args,\n url: checkResult.product_url\n });\n }\n window.location.href = checkResult.product_url;\n return checkResult.product_url || null;\n }\n const error = new Error(`${'SubscriptionFailed'}:\\n${checkResult.message}`) as IError & { type: string };\n error.type = 'SubscriptionFailed';\n throw error;\n}\n"],"names":[],"mappings":";;;;;;;;AAQM,SAAgB,uBAAuB,CAAC,EAU7C,EAAA;QATC,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;;;;;;AAOI,oBAAA,SAAS,GAAK,MAAM,CAAC,aAAa,CAAC,OAAO,UAAjC,CAAkC;AAC7C,oBAAA,MAAM,GAAG,cAAc,CAAC,MAAM,CAAyB,CAAC;AACxD,oBAAA,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,kCAAkC,CAAC;AAC9E,oBAAA,IAAI,MAAM,EAAE;;AAEV,wBAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC/B,qBAAA;AACK,oBAAA,KAAK,GAA4C,YAAA;AACrD,wBAAA,OAAA,MAAM;AACJ,8BAAE,OAAO,CAAC,OAAO,CAAC;AACd,gCAAA,OAAO,EAAE,IAAI;AACb,gCAAA,UAAU,EAAE,SAAS;AACrB,gCAAA,WAAW,EAAE,UAAU;AACvB,gCAAA,MAAM,EAAE,KAAK;6BACd,CAAC;8BACF,gCAAgC,CAAC,EAAE,MAAM,QAAA,EAAE,SAAS,EAAA,SAAA,EAAE,CAAC,CAAA;AAP3D,qBAO2D,CAAC;AAChB,oBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,UAAC,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,OAAO,CAAA,EAAA,EAAE,CAAC,CAAC,CAAA,CAAA;;AAAlF,oBAAA,WAAW,GAA6B,EAA0C,CAAA,IAAA,EAAA,CAAA;AAExF,oBAAA,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE;;wBAEhC,IAAI,IAAI,IAAI,MAAM,EAAE;AAClB,4BAAA,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAC9B,IAAI,CAAA,EAAA,EACP,GAAG,EAAE,WAAW,CAAC,WAAW,IAC5B,CAAC;AACJ,yBAAA;wBACD,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC,WAAW,CAAC;AAC/C,wBAAA,OAAA,CAAA,CAAA,aAAO,WAAW,CAAC,WAAW,IAAI,IAAI,CAAC,CAAA;AACxC,qBAAA;AACK,oBAAA,KAAK,GAAG,IAAI,KAAK,CAAC,EAAG,CAAA,MAAA,CAAA,oBAAoB,EAAM,KAAA,CAAA,CAAA,MAAA,CAAA,WAAW,CAAC,OAAO,CAAE,CAA8B,CAAC;AACzG,oBAAA,KAAK,CAAC,IAAI,GAAG,oBAAoB,CAAC;AAClC,oBAAA,MAAM,KAAK,CAAC;;;;AACb;;;;"}
@@ -0,0 +1,246 @@
1
+ import { __awaiter, __generator, __assign } from 'tslib';
2
+ import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
3
+ import { S as Success, L as Loading, F as Failure, N as NothingYet } from './RemoteDataState-CwHLI23e.js';
4
+ import { t as tracker } from './tracker-B_zsMRN2.js';
5
+ import 'pacman-client';
6
+ import 'uuid';
7
+
8
+ var oc2sms = function (_a) {
9
+ var window = _a.window, country = _a.country, slug = _a.slug, offer = _a.offer, rockmanId = _a.rockmanId, keyword = _a.keyword, operator = _a.operator, search = _a.search;
10
+ return __awaiter(void 0, void 0, void 0, function () {
11
+ var params, host, url;
12
+ return __generator(this, function (_b) {
13
+ params = new URLSearchParams(__assign(__assign(__assign({ action: 'oc2sms', country: country, slug: slug, offerId: offer.toString(), page: encodeURIComponent(window.location.href), device: 'smart', rockman_id: rockmanId }, (keyword && { keyword: keyword })), (operator && { operator: operator })), (search && { search: search }))).toString();
14
+ host = window.DEV_BASE_URL || '';
15
+ url = "".concat(host, "/tallyman/v1/?").concat(params);
16
+ return [2 /*return*/, fetch(url).then(function (x) { return x.json(); })];
17
+ });
18
+ });
19
+ };
20
+
21
+ function loadOnce(window, maybeConfig, operator, keyword, _shortcode) {
22
+ return __awaiter(this, void 0, void 0, function () {
23
+ var keywordFromConfig, shortcodeFromConfig, offer, config, country, slug, rockmanId, search, result;
24
+ return __generator(this, function (_a) {
25
+ switch (_a.label) {
26
+ case 0:
27
+ if (!!maybeConfig && maybeConfig.tag === 'keywordAndShortCode') {
28
+ keywordFromConfig = maybeConfig.keyword, shortcodeFromConfig = maybeConfig.shortcode;
29
+ return [2 /*return*/, __assign({ type: 'SingleSubmissionResult' }, { keyword: keywordFromConfig, shortcode: shortcodeFromConfig })];
30
+ }
31
+ offer = window.pac_analytics.visitor.offer;
32
+ config = __assign({ offer: window.pac_analytics.visitor.offer }, maybeConfig);
33
+ country = config.country, slug = config.slug;
34
+ rockmanId = window.pac_analytics.visitor.rockmanId;
35
+ search = window.location.search.substr(1) || '';
36
+ return [4 /*yield*/, oc2sms({
37
+ window: window,
38
+ country: country,
39
+ slug: slug,
40
+ offer: offer,
41
+ rockmanId: rockmanId,
42
+ keyword: keyword,
43
+ operator: operator,
44
+ search: search
45
+ })];
46
+ case 1:
47
+ result = _a.sent();
48
+ if (!result.success) {
49
+ throw result.message;
50
+ }
51
+ else {
52
+ return [2 /*return*/, __assign({ type: 'SingleSubmissionResult' }, {
53
+ keyword: "".concat(keyword || result.displayKeyword).concat(result.uid ? " ".concat(result.uid) : ''),
54
+ shortcode: result.shortcode
55
+ })];
56
+ }
57
+ }
58
+ });
59
+ });
60
+ }
61
+ function right(r) {
62
+ return { type: 'right', value: r };
63
+ }
64
+ function left(l) {
65
+ return { type: 'left', value: l };
66
+ }
67
+ function loadForMultipleOperators(window, maybeConfig, operators, keyword, shortcode) {
68
+ return __awaiter(this, void 0, void 0, function () {
69
+ var results, finalResults, arrResult_1;
70
+ var _this = this;
71
+ return __generator(this, function (_a) {
72
+ switch (_a.label) {
73
+ case 0:
74
+ results = Promise.all(operators.map(function (o) { return __awaiter(_this, void 0, void 0, function () {
75
+ var singleResult, error_1;
76
+ return __generator(this, function (_a) {
77
+ switch (_a.label) {
78
+ case 0:
79
+ _a.trys.push([0, 2, , 3]);
80
+ return [4 /*yield*/, loadOnce(window, maybeConfig, o, keyword)];
81
+ case 1:
82
+ singleResult = _a.sent();
83
+ return [2 /*return*/, right(__assign(__assign({}, singleResult), { operator: o }))];
84
+ case 2:
85
+ error_1 = _a.sent();
86
+ return [2 /*return*/, left(error_1)];
87
+ case 3: return [2 /*return*/];
88
+ }
89
+ });
90
+ }); }));
91
+ return [4 /*yield*/, Promise.resolve(results)];
92
+ case 1:
93
+ finalResults = _a.sent();
94
+ if (finalResults.every(function (r) { return r.type === 'left'; })) {
95
+ // no submission worked
96
+ throw finalResults[0].value;
97
+ }
98
+ else {
99
+ arrResult_1 = [];
100
+ finalResults.map(function (obj) {
101
+ if (obj.type === 'right') {
102
+ var r = obj.value;
103
+ arrResult_1.push({ keyword: r === null || r === void 0 ? void 0 : r.keyword, shortcode: r === null || r === void 0 ? void 0 : r.shortcode, operator: r === null || r === void 0 ? void 0 : r.operator });
104
+ }
105
+ return obj;
106
+ });
107
+ return [2 /*return*/, {
108
+ type: 'MultiOperatorSubmissionResult',
109
+ data: arrResult_1
110
+ }];
111
+ }
112
+ }
113
+ });
114
+ });
115
+ }
116
+ var load = function (window, maybeConfig, keyword, shortcode) { return __awaiter(void 0, void 0, void 0, function () {
117
+ return __generator(this, function (_a) {
118
+ if (!!maybeConfig && maybeConfig.tag === 'keywordAndShortCode') {
119
+ return [2 /*return*/, __assign({ type: 'SingleSubmissionResult' }, { keyword: maybeConfig.keyword, shortcode: maybeConfig.shortcode })];
120
+ }
121
+ if (!!maybeConfig && maybeConfig.tag === 'keyword') {
122
+ return [2 /*return*/, load1(window, maybeConfig, keyword)];
123
+ }
124
+ return [2 /*return*/, load1(window, maybeConfig, null)];
125
+ });
126
+ }); };
127
+ function load1(window, maybeConfig, keyword, shortcode) {
128
+ return __awaiter(this, void 0, void 0, function () {
129
+ var config, singleOperator;
130
+ return __generator(this, function (_a) {
131
+ config = __assign({ offer: window.pac_analytics.visitor.offer }, maybeConfig);
132
+ if (config.automaticallySubmitAllOperators === true && !!config.operators && config.operators.length > 0) {
133
+ return [2 /*return*/, loadForMultipleOperators(window, maybeConfig, config.operators, keyword)];
134
+ }
135
+ singleOperator = maybeConfig.operators && maybeConfig.operators.length > 0 ? maybeConfig.operators[0] : null;
136
+ return [2 /*return*/, loadOnce(window, maybeConfig, singleOperator, keyword)];
137
+ });
138
+ });
139
+ }
140
+
141
+ var initialState = {
142
+ currentState: {
143
+ type: 'LOAD_OC2SMS',
144
+ result: NothingYet()
145
+ }
146
+ };
147
+ /**
148
+ * loadOc2smsAction
149
+ * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}
150
+
151
+ * Calls oc2sms api that returns a keyword and short code
152
+ *
153
+ */
154
+ var loadOc2smsAction = createAsyncThunk('click2Flow/loadOc2smsAction', function (_a, _b) {
155
+ var window = _a.window;
156
+ var getState = _b.getState, rejectWithValue = _b.rejectWithValue;
157
+ return __awaiter(void 0, void 0, void 0, function () {
158
+ var state, maybeConfig, result, ex_1;
159
+ var _c, _d;
160
+ return __generator(this, function (_e) {
161
+ switch (_e.label) {
162
+ case 0:
163
+ state = getState();
164
+ maybeConfig = (_d = (_c = state.strategy.currentState) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.config;
165
+ _e.label = 1;
166
+ case 1:
167
+ _e.trys.push([1, 3, , 4]);
168
+ if (maybeConfig.tag === 'keywordAndShortCode') {
169
+ return [2 /*return*/, {
170
+ type: 'LOAD_OC2SMS',
171
+ result: Success(__assign({ type: 'SingleSubmissionResult' }, maybeConfig))
172
+ }];
173
+ }
174
+ // if ((!!maybeConfig && maybeConfig.tag !== 'keyword') || !maybeConfig) {
175
+ // Start Load Click 2sms
176
+ tracker.advancedInFlow('tallyman.v1-click2sms', 'load-click2sms');
177
+ return [4 /*yield*/, load(window, maybeConfig)];
178
+ case 2:
179
+ result = _e.sent();
180
+ tracker.advancedInFlow('tallyman.v1-click2sms', 'loaded-click2sms', result);
181
+ // End Load Click 2sms
182
+ return [2 /*return*/, {
183
+ type: 'LOAD_OC2SMS',
184
+ result: Success(result)
185
+ }];
186
+ case 3:
187
+ ex_1 = _e.sent();
188
+ console.warn(ex_1);
189
+ tracker.recedeInFlow('tallyman.v1-click2sms', 'load-click2sms-failure', ex_1.toString());
190
+ return [2 /*return*/, rejectWithValue(ex_1.toString())];
191
+ case 4: return [2 /*return*/];
192
+ }
193
+ });
194
+ });
195
+ });
196
+ var click2smsFlowSlice = createSlice({
197
+ name: 'click2smsFlow',
198
+ initialState: initialState,
199
+ reducers: {},
200
+ extraReducers: function (builder) {
201
+ builder
202
+ .addCase(loadOc2smsAction.pending, function (state) {
203
+ state.currentState = { type: 'LOAD_OC2SMS', result: Loading() };
204
+ })
205
+ .addCase(loadOc2smsAction.fulfilled, function (state, action) {
206
+ state.currentState = action.payload;
207
+ })
208
+ .addCase(loadOc2smsAction.rejected, function (state, action) {
209
+ state.currentState = {
210
+ type: 'LOAD_OC2SMS',
211
+ result: Failure(action.payload)
212
+ };
213
+ });
214
+ }
215
+ });
216
+ // Export reducers and actions
217
+ var click2smsFlowReducer = click2smsFlowSlice.reducer; click2smsFlowSlice.actions;
218
+
219
+ var useClick2smsFlowState = function (useSelector) {
220
+ var currentState = useSelector(function (state) { return state.click2smsFlow.currentState; });
221
+ return currentState;
222
+ };
223
+
224
+ var useKeyWordShortCode = function (useSelector) {
225
+ var _a;
226
+ var currentState = useSelector(function (state) { return state.click2smsFlow.currentState; });
227
+ // @ts-ignore
228
+ var data = (_a = currentState === null || currentState === void 0 ? void 0 : currentState.result) === null || _a === void 0 ? void 0 : _a.data;
229
+ return data;
230
+ };
231
+
232
+ function click2smsFlowMatch(_a) {
233
+ var load = _a.load;
234
+ return function (state) {
235
+ switch (state.type) {
236
+ case 'LOAD_OC2SMS':
237
+ return load(state.result);
238
+ default:
239
+ // TODO - this should be an error or something
240
+ return load(state.result);
241
+ }
242
+ };
243
+ }
244
+
245
+ export { click2smsFlowMatch, click2smsFlowReducer, loadOc2smsAction, useClick2smsFlowState, useKeyWordShortCode };
246
+ //# sourceMappingURL=click2smsFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"click2smsFlow.js","sources":["../src/flows/click2smsFlow/api.ts","../src/flows/click2smsFlow/main.ts","../src/flows/click2smsFlow/click2smsFlowSlice.ts","../src/flows/click2smsFlow/hooks/useClick2smsFlowState.ts","../src/flows/click2smsFlow/hooks/useKeyWordShortCode.ts","../src/flows/click2smsFlow/match.ts"],"sourcesContent":["import { IFetchResult } from '../../sharedFlowTypes/Click2smsTypes';\n\nconst oc2sms = async ({\n window,\n country,\n slug,\n offer,\n rockmanId,\n keyword,\n operator,\n search\n}: {\n window: Window;\n country: string;\n slug: string;\n offer: string;\n rockmanId: string;\n keyword: string;\n operator: string;\n search: string;\n}): Promise<IFetchResult> => {\n const params = new URLSearchParams({\n action: 'oc2sms',\n country,\n slug,\n offerId: offer.toString(),\n page: encodeURIComponent(window.location.href),\n device: 'smart',\n rockman_id: rockmanId,\n ...(keyword && { keyword }),\n ...(operator && { operator }),\n ...(search && { search })\n }).toString();\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${params}`;\n return fetch(url).then((x) => x.json());\n};\n\nexport { oc2sms };\n","import {\n IClick2smsConfig,\n IFetchResult,\n IKeywordShortcode,\n MultiOperatorSubmissionResult,\n SingleSubmissionResult\n} from '../../sharedFlowTypes/Click2smsTypes';\nimport { oc2sms } from './api';\n\nasync function loadOnce(\n window: Window,\n maybeConfig: IClick2smsConfig,\n operator?: string,\n keyword?: string,\n _shortcode?: string\n): Promise<SingleSubmissionResult> {\n if (!!maybeConfig && maybeConfig.tag === 'keywordAndShortCode') {\n const { keyword: keywordFromConfig, shortcode: shortcodeFromConfig } = maybeConfig;\n return {\n type: 'SingleSubmissionResult',\n ...({ keyword: keywordFromConfig, shortcode: shortcodeFromConfig } as IKeywordShortcode)\n };\n }\n const { offer } = window.pac_analytics.visitor;\n const config = { offer: window.pac_analytics.visitor.offer, ...maybeConfig };\n\n const { country, slug } = config;\n const { rockmanId } = window.pac_analytics.visitor;\n const search = window.location.search.substr(1) || '';\n\n const result: IFetchResult = await oc2sms({\n window,\n country,\n slug,\n offer,\n rockmanId,\n keyword,\n operator,\n search\n });\n if (!result.success) {\n throw result.message;\n } else {\n return {\n type: 'SingleSubmissionResult',\n ...{\n keyword: `${keyword || result.displayKeyword}${result.uid ? ` ${result.uid}` : ''}`,\n shortcode: result.shortcode\n }\n };\n }\n}\ntype Either<L, R> = { type: 'left'; value: L } | { type: 'right'; value: R };\nfunction right<L, R>(r: R) {\n return { type: 'right', value: r } as Either<L, R>;\n}\nfunction left<L, R>(l: L) {\n return { type: 'left', value: l } as Either<L, R>;\n}\n\nasync function loadForMultipleOperators(\n window: Window,\n maybeConfig: IClick2smsConfig,\n operators: string[],\n keyword?: string,\n shortcode?: string\n): Promise<MultiOperatorSubmissionResult> {\n const results = Promise.all(\n operators.map(async (o) => {\n try {\n const singleResult = await loadOnce(window, maybeConfig, o, keyword, shortcode);\n return right({ ...singleResult, operator: o });\n } catch (error) {\n return left(error);\n }\n })\n );\n\n const finalResults = await Promise.resolve(results);\n if (finalResults.every((r) => r.type === 'left')) {\n // no submission worked\n throw finalResults[0].value;\n } else {\n const arrResult: Array<IKeywordShortcode> = [];\n finalResults.map((obj) => {\n if (obj.type === 'right') {\n const r = obj.value as IKeywordShortcode;\n arrResult.push({ keyword: r?.keyword, shortcode: r?.shortcode, operator: r?.operator });\n }\n return obj;\n });\n\n return {\n type: 'MultiOperatorSubmissionResult',\n data: arrResult\n };\n }\n}\n\nexport const load = async (\n window: Window,\n maybeConfig: IClick2smsConfig,\n keyword?: string,\n shortcode?: string\n): Promise<SingleSubmissionResult | MultiOperatorSubmissionResult> => {\n if (!!maybeConfig && maybeConfig.tag === 'keywordAndShortCode') {\n return {\n type: 'SingleSubmissionResult',\n ...({ keyword: maybeConfig.keyword, shortcode: maybeConfig.shortcode } as IKeywordShortcode)\n };\n }\n if (!!maybeConfig && maybeConfig.tag === 'keyword') {\n return load1(window, maybeConfig, keyword, shortcode);\n }\n return load1(window, maybeConfig, null, null);\n};\n\nexport async function load1(\n window: Window,\n maybeConfig: IClick2smsConfig,\n keyword?: string,\n shortcode?: string\n): Promise<SingleSubmissionResult | MultiOperatorSubmissionResult> {\n const config = { offer: window.pac_analytics.visitor.offer, ...maybeConfig };\n\n if (config.automaticallySubmitAllOperators === true && !!config.operators && config.operators.length > 0) {\n return loadForMultipleOperators(window, maybeConfig, config.operators, keyword, shortcode);\n }\n const singleOperator = maybeConfig.operators && maybeConfig.operators.length > 0 ? maybeConfig.operators[0] : null;\n return loadOnce(window, maybeConfig, singleOperator, keyword, shortcode);\n}\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport { Click2smsFlowState, IClick2smsConfig, LOAD_OC2SMSState } from '../../sharedFlowTypes/Click2smsTypes';\nimport { IHash, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { tracker } from '../../utilities/tracker';\nimport { load } from './main';\n\nconst initialState: Click2smsFlowState = {\n currentState: {\n type: 'LOAD_OC2SMS',\n result: RDS.NothingYet()\n }\n};\n\ninterface LOAD_OC2SMSArgs {\n window: Window;\n extraParams?: IHash;\n}\n/**\n * loadOc2smsAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}\n \n * Calls oc2sms api that returns a keyword and short code\n *\n */\nexport const loadOc2smsAction = createAsyncThunk<\n LOAD_OC2SMSState,\n LOAD_OC2SMSArgs,\n {\n rejectValue: string;\n }\n // @ts-ignore\n>('click2Flow/loadOc2smsAction', async ({ window }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n\n const maybeConfig = (state.strategy.currentState?.data?.config as any) as IClick2smsConfig;\n\n try {\n if (maybeConfig.tag === 'keywordAndShortCode') {\n return {\n type: 'LOAD_OC2SMS',\n result: RDS.Success({\n type: 'SingleSubmissionResult',\n ...maybeConfig\n })\n };\n }\n // if ((!!maybeConfig && maybeConfig.tag !== 'keyword') || !maybeConfig) {\n\n // Start Load Click 2sms\n tracker.advancedInFlow('tallyman.v1-click2sms', 'load-click2sms');\n const result = await load(window, maybeConfig);\n tracker.advancedInFlow('tallyman.v1-click2sms', 'loaded-click2sms', result);\n // End Load Click 2sms\n return {\n type: 'LOAD_OC2SMS',\n result: RDS.Success(result)\n };\n } catch (ex) {\n console.warn(ex);\n tracker.recedeInFlow('tallyman.v1-click2sms', 'load-click2sms-failure', ex.toString());\n return rejectWithValue(ex.toString() as string);\n }\n});\n\nconst click2smsFlowSlice = createSlice({\n name: 'click2smsFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(loadOc2smsAction.pending, (state) => {\n state.currentState = { type: 'LOAD_OC2SMS', result: RDS.Loading() };\n })\n .addCase(loadOc2smsAction.fulfilled, (state, action: PayloadAction<LOAD_OC2SMSState>) => {\n state.currentState = action.payload;\n })\n .addCase(loadOc2smsAction.rejected, (state, action: PayloadAction<any>) => {\n state.currentState = {\n type: 'LOAD_OC2SMS',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: click2smsFlowReducer, actions: click2smsFlowActions } = click2smsFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectClick2smsRedirFlowState = (state: any) => state.click2smsFlow;\n","import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useClick2smsFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.click2smsFlow.currentState);\n return currentState;\n};\n","import { useSelector as IuseSelector } from 'react-redux';\nimport { IWithMultiKeywordShortcode } from '../../../sharedFlowTypes/Click2smsTypes';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useKeyWordShortCode = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.click2smsFlow.currentState);\n // @ts-ignore\n const data: IWithMultiKeywordShortcode = currentState?.result?.data;\n return data;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport { Click2smsFlowCurrentState, IWithMultiKeywordShortcode } from '../../sharedFlowTypes/Click2smsTypes';\n\nfunction click2smsFlowMatch<R>({\n load\n}: {\n load: (rds: RDS.RemoteDataState<string, IWithMultiKeywordShortcode>) => R;\n}): (state: Click2smsFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'LOAD_OC2SMS':\n return load(state.result);\n default:\n // TODO - this should be an error or something\n return load(state.result);\n }\n };\n}\n\nexport { click2smsFlowMatch };\n"],"names":["RDS.NothingYet","RDS.Success","RDS.Loading","RDS.Failure"],"mappings":"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"}