ouisys-engine 4.6.3 → 4.7.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/dist/RemoteDataState-lcf8PfJd.js +2 -0
  2. package/dist/RemoteDataState-lcf8PfJd.js.map +1 -0
  3. package/dist/bupperizeCountry-CEtt0MKz.js +2 -0
  4. package/dist/bupperizeCountry-CEtt0MKz.js.map +1 -0
  5. package/dist/checkSubscriptionByRockmanIdOnly-BwR1un1L.js +2 -0
  6. package/dist/checkSubscriptionByRockmanIdOnly-BwR1un1L.js.map +1 -0
  7. package/dist/checkSubscriptionHander.js +2 -0
  8. package/dist/checkSubscriptionHander.js.map +1 -0
  9. package/dist/click2smsFlow.js +2 -0
  10. package/dist/click2smsFlow.js.map +1 -0
  11. package/dist/creditCardFlow.js +2 -0
  12. package/dist/creditCardFlow.js.map +1 -0
  13. package/dist/getConfig.js +2 -0
  14. package/dist/getConfig.js.map +1 -0
  15. package/dist/handleClickChainFlow.js +2 -0
  16. package/dist/handleClickChainFlow.js.map +1 -0
  17. package/dist/handleSubmitNumber.js +2 -0
  18. package/dist/handleSubmitNumber.js.map +1 -0
  19. package/dist/helpers-xPhGBX-B.js +2 -0
  20. package/dist/helpers-xPhGBX-B.js.map +1 -0
  21. package/dist/loadScriptInnerHtml-BzQm-AFb.js +2 -0
  22. package/dist/loadScriptInnerHtml-BzQm-AFb.js.map +1 -0
  23. package/dist/moFlow.js +2 -0
  24. package/dist/moFlow.js.map +1 -0
  25. package/dist/moRedirFlow.js +2 -0
  26. package/dist/moRedirFlow.js.map +1 -0
  27. package/dist/oneClickFlow.js +2 -0
  28. package/dist/oneClickFlow.js.map +1 -0
  29. package/dist/pinFlow.js +2 -0
  30. package/dist/pinFlow.js.map +1 -0
  31. package/dist/searchToObject.js +2 -0
  32. package/dist/searchToObject.js.map +1 -0
  33. package/dist/storeMsisdn-Cjq8_qYH.js +2 -0
  34. package/dist/storeMsisdn-Cjq8_qYH.js.map +1 -0
  35. package/dist/strategy.js +2 -0
  36. package/dist/strategy.js.map +1 -0
  37. package/dist/strategySlice-CtjrhCrS.js +2 -0
  38. package/dist/strategySlice-CtjrhCrS.js.map +1 -0
  39. package/dist/tracker-DaaILhEr.js +2 -0
  40. package/dist/tracker-DaaILhEr.js.map +1 -0
  41. package/dist/tracker.js +2 -0
  42. package/dist/tracker.js.map +1 -0
  43. package/dist/tryGetIPRangeName-QW-9NgzE.js +2 -0
  44. package/dist/tryGetIPRangeName-QW-9NgzE.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 +2 -0
  69. package/dist/ussdFlow.js.map +1 -0
  70. package/package.json +83 -11
  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,2 @@
1
+ var e=function(){return{type:"NothingYet"}},t=function(){return{type:"Loading"}},n=function(e){return{type:"Failure",error:e}},r=function(e){return{type:"Success",data:e}},u=Object.freeze({__proto__:null,Failure:n,IsFailure:function(e){return"Failure"===e.type},IsLoading:function(e){return"Loading"===e.type},IsNothingYet:function(e){return"NothingYet"===e.type},IsSuccess:function(e){return"Success"===e.type},Loading:t,MatchFailure:function(e){var t=e.failure,n=e.otherwise;return function(e){return"Failure"===e.type?t(e.error):n()}},MatchSuccess:function(e){var t=e.success,n=e.otherwise;return function(e){return"Success"===e.type?t(e.data):n(e)}},NothingYet:e,Success:r,WhenFailure:function(e,t){return function(n){return"Failure"===n.type?t(n.error):e}},WhenLoading:function(e,t){return function(n){return"Loading"===n.type?t():e}},WhenSuccess:function(e,t){return function(n){return"Success"===n.type?t(n.data):e}},match:function(e){var t=e.nothingYet,n=e.loading,r=e.failure,u=e.success;return function(e){switch(e.type){case"NothingYet":default:return t();case"Loading":return n();case"Failure":return r(e.error);case"Success":return u(e.data)}}}});export{n as F,t as L,e as N,u as R,r as S};
2
+ //# sourceMappingURL=RemoteDataState-lcf8PfJd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteDataState-lcf8PfJd.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":["NothingYet","type","Loading","Failure","error","Success","data","s","_a","failure","otherwise","success","d","r","nothingYet","loading","model"],"mappings":"AAwCa,IAAAA,EAAa,WAAmC,MAAC,CAC5DC,KAAM,aACL,EAEUC,EAAU,WAAmC,MAAC,CACzDD,KAAM,UACL,EAEUE,EAAU,SAAOC,GAAoC,MAAC,CACjEH,KAAM,UACNG,MAAKA,EACJ,EAEUC,EAAU,SAAOC,GAAmC,MAAC,CAChEL,KAAM,UACNK,KAAIA,EACH,sDAIsB,SAAOC,GAA6B,MAAW,YAAXA,EAAEN,gBADtC,SAAOM,GAA6B,MAAW,YAAXA,EAAEN,mBADnC,SAAOM,GAA6B,MAAW,eAAXA,EAAEN,gBAGzC,SAAOM,GAA6B,MAAW,YAAXA,EAAEN,6BAWnC,SAAUO,OAAEC,EAAOD,EAAAC,QAAEC,EAASF,EAAAE,UAAuD,OAAA,SAC/GH,GACG,MAAY,YAAXA,EAAEN,KAAqBQ,EAAQF,EAAEH,OAASM,GAAY,CAFqD,eAIrF,SAAUF,OAAEG,EAAOH,EAAAG,QAAED,EAASF,EAAAE,UAAiC,OAAA,SAACH,GAC1F,MAAW,YAAXA,EAAEN,KAAqBU,EAAQJ,EAAED,MAAQI,EAAUH,GADsC,qCAbhE,SAAUK,EAAMC,GAAqB,OAAA,SAACN,GAC/D,MAAW,YAAXA,EAAEN,KAAqBY,EAAEN,EAAEH,OAASQ,CAApC,eAEyB,SAAOA,EAAMC,GAAe,OAAA,SAACN,GACtD,MAAW,YAAXA,EAAEN,KAAqBY,IAAMD,CAA7B,eAEyB,SAAOA,EAAMC,GAAsB,OAAA,SAACN,GAC7D,MAAW,YAAXA,EAAEN,KAAqBY,EAAEN,EAAED,MAAQM,CAAnC,SApDI,SAAyBJ,OAC7BM,EAAUN,EAAAM,WACVC,EAAOP,EAAAO,QACPN,EAAOD,EAAAC,QACPE,EAAOH,EAAAG,QAEP,OAAO,SAACK,GACN,OAAQA,EAAMf,MACZ,IAAK,aAQL,QACE,OAAOa,IAPT,IAAK,UACH,OAAOC,IACT,IAAK,UACH,OAAON,EAAQO,EAAMZ,OACvB,IAAK,UACH,OAAOO,EAAQK,EAAMV,MAI3B,CACF"}
@@ -0,0 +1,2 @@
1
+ var r=function(r){return"gb"===r?"uk":r};export{r as b};
2
+ //# sourceMappingURL=bupperizeCountry-CEtt0MKz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bupperizeCountry-CEtt0MKz.js","sources":["../src/utilities/bupperizeCountry.ts"],"sourcesContent":["const bupperizeCountry = (c: string) => (c === 'gb' ? 'uk' : c);\nexport { bupperizeCountry };\n"],"names":["bupperizeCountry","c"],"mappings":"AAAM,IAAAA,EAAmB,SAACC,GAAc,MAAO,OAANA,EAAa,KAAOA,CAArB"}
@@ -0,0 +1,2 @@
1
+ import{__awaiter as n,__generator as t}from"tslib";var r=function(r){var c=r.window,o=r.rockmanId;return n(void 0,void 0,void 0,(function(){var n,r,a;return t(this,(function(t){switch(t.label){case 0:return n=c.DEV_BASE_URL||"",r=new URLSearchParams({action:"check-subscription",rockman_id:o}).toString(),a="".concat(n,"/tallyman/v1/?").concat(r),[4,fetch(a)];case 1:return[2,t.sent().json()]}}))}))};export{r as c};
2
+ //# sourceMappingURL=checkSubscriptionByRockmanIdOnly-BwR1un1L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkSubscriptionByRockmanIdOnly-BwR1un1L.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":["checkSubscriptionByRockmanIdOnly","_a","window","rockmanId","host","DEV_BASE_URL","urlParams","URLSearchParams","action","rockman_id","toString","url","concat","fetch","_b","sent","json"],"mappings":"mDAEM,IAAAA,EAAmC,SAAOC,OAC9CC,EAAMD,EAAAC,OACNC,EAASF,EAAAE,gHAeQ,OAVXC,EAAQF,EAAkBG,cAAgB,GAO1CC,EAAY,IAAIC,gBALP,CACbC,OAAQ,qBACRC,WAAYN,IAGgCO,WACxCC,EAAM,GAAGC,OAAAR,EAAqB,kBAAAQ,OAAAN,GAEnB,CAAA,EAAMO,MAAMF,WAC7B,MAAA,CAAA,EADiBG,EAAgBC,OACjBC"}
@@ -0,0 +1,2 @@
1
+ import{__awaiter as r,__generator as o,__assign as c}from"tslib";import{c as t}from"./checkSubscriptionByRockmanIdOnly-BwR1un1L.js";import{a as s}from"./helpers-xPhGBX-B.js";import{searchToObject as i}from"./searchToObject.js";import{t as n}from"./tracker-DaaILhEr.js";import"pacman-client";import"uuid";function e(e){var u=e.window,a=e.flow,l=e.action,p=e.args;return r(this,void 0,void 0,(function(){var r,e,m,d,f;return o(this,(function(o){switch(o.label){case 0:return r=u.pac_analytics.visitor.rockmanId,e=i(u),(m="check-subscription-success-state"===e["current-state"])&&console.log("isMock is true"),[4,s((function(){return m?Promise.resolve({success:!0,rockman_id:r,product_url:"/product",msisdn:"000"}):t({window:u,rockmanId:r})}),60,(function(r){return r.success}),0)];case 1:if(!0===(d=o.sent()).success)return a&&l&&n.advancedInFlow(a,l,c(c({},p),{url:d.product_url})),u.location.href=d.product_url,[2,d.product_url||null];throw(f=new Error("".concat("SubscriptionFailed",":\n").concat(d.message))).type="SubscriptionFailed",f}}))}))}export{e as checkSubscriptionHander};
2
+ //# 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":["checkSubscriptionHander","_a","window","flow","action","args","rockmanId","pac_analytics","visitor","search","searchToObject","isMock","console","log","loop","Promise","resolve","success","rockman_id","product_url","msisdn","checkSubscriptionByRockmanIdOnly","r","checkResult","_b","sent","tracker","advancedInFlow","__assign","url","location","href","error","Error","concat","message","type"],"mappings":"gTAQM,SAAgBA,EAAwBC,OAC5CC,EAAMD,EAAAC,OACNC,EAAIF,EAAAE,KACJC,EAAMH,EAAAG,OACNC,EAAIJ,EAAAI,6GAuB0C,OAhBtCC,EAAcJ,EAAOK,cAAcC,kBACrCC,EAASC,EAAeR,IACxBS,EAAqC,qCAA5BF,EAAO,mBAGpBG,QAAQC,IAAI,kBAWgC,CAAA,EAAMC,GATG,WACrD,OAAAH,EACII,QAAQC,QAAQ,CACdC,SAAS,EACTC,WAAYZ,EACZa,YAAa,WACbC,OAAQ,QAEVC,EAAiC,CAAEnB,SAAQI,UAASA,GAPxD,GAQ8D,IAAI,SAACgB,GAAM,OAAAA,EAAEL,UAAS,WAEtF,IAA4B,KAFtBM,EAAwCC,EAA0CC,QAExER,QASd,OAPId,GAAQC,GACVsB,EAAQC,eAAexB,EAAMC,EAAMwB,EAAAA,EAAA,CAAA,EAC9BvB,GAAI,CACPwB,IAAKN,EAAYJ,eAGrBjB,EAAO4B,SAASC,KAAOR,EAAYJ,YACnC,CAAA,EAAOI,EAAYJ,aAAe,MAIpC,MAFMa,EAAQ,IAAIC,MAAM,GAAGC,OAAA,qBAA0B,OAAAA,OAAAX,EAAYY,WAC3DC,KAAO,qBACPJ,QACP"}
@@ -0,0 +1,2 @@
1
+ import{__awaiter as t,__generator as r,__assign as e}from"tslib";import{createAsyncThunk as o,createSlice as n}from"@reduxjs/toolkit";import{S as a,L as i,F as s,N as c}from"./RemoteDataState-lcf8PfJd.js";import{t as u}from"./tracker-DaaILhEr.js";import"pacman-client";import"uuid";var l=function(o){var n=o.window,a=o.country,i=o.slug,s=o.offer,c=o.rockmanId,u=o.keyword,l=o.operator,d=o.search;return t(void 0,void 0,void 0,(function(){var t,o,f;return r(this,(function(r){return t=new URLSearchParams(e(e(e({action:"oc2sms",country:a,slug:i,offerId:s.toString(),page:encodeURIComponent(n.location.href),device:"smart",rockman_id:c},u&&{keyword:u}),l&&{operator:l}),d&&{search:d})).toString(),o=n.DEV_BASE_URL||"",f="".concat(o,"/tallyman/v1/?").concat(t),[2,fetch(f).then((function(t){return t.json()}))]}))}))};function d(o,n,a,i,s){return t(this,void 0,void 0,(function(){var t,s,c,u,d,f,v,p,y;return r(this,(function(r){switch(r.label){case 0:return n&&"keywordAndShortCode"===n.tag?(t=n.keyword,s=n.shortcode,[2,e({type:"SingleSubmissionResult"},{keyword:t,shortcode:s})]):(c=o.pac_analytics.visitor.offer,u=e({offer:o.pac_analytics.visitor.offer},n),d=u.country,f=u.slug,v=o.pac_analytics.visitor.rockmanId,p=o.location.search.substr(1)||"",[4,l({window:o,country:d,slug:f,offer:c,rockmanId:v,keyword:i,operator:a,search:p})]);case 1:if((y=r.sent()).success)return[2,e({type:"SingleSubmissionResult"},{keyword:"".concat(i||y.displayKeyword).concat(y.uid?" ".concat(y.uid):""),shortcode:y.shortcode})];throw y.message}}))}))}function f(o,n,a,i,s){return t(this,void 0,void 0,(function(){var s,c,u,l=this;return r(this,(function(f){switch(f.label){case 0:return s=Promise.all(a.map((function(a){return t(l,void 0,void 0,(function(){var t,s;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,d(o,n,a,i)];case 1:return t=r.sent(),[2,(u=e(e({},t),{operator:a}),{type:"right",value:u})];case 2:return s=r.sent(),[2,(c=s,{type:"left",value:c})];case 3:return[2]}var c,u}))}))}))),[4,Promise.resolve(s)];case 1:if((c=f.sent()).every((function(t){return"left"===t.type})))throw c[0].value;return u=[],c.map((function(t){if("right"===t.type){var r=t.value;u.push({keyword:null==r?void 0:r.keyword,shortcode:null==r?void 0:r.shortcode,operator:null==r?void 0:r.operator})}return t})),[2,{type:"MultiOperatorSubmissionResult",data:u}]}}))}))}var v=function(o,n,a,i){return t(void 0,void 0,void 0,(function(){return r(this,(function(t){return n&&"keywordAndShortCode"===n.tag?[2,e({type:"SingleSubmissionResult"},{keyword:n.keyword,shortcode:n.shortcode})]:n&&"keyword"===n.tag?[2,p(o,n,a)]:[2,p(o,n,null)]}))}))};function p(o,n,a,i){return t(this,void 0,void 0,(function(){var t,i;return r(this,(function(r){return!0===(t=e({offer:o.pac_analytics.visitor.offer},n)).automaticallySubmitAllOperators&&t.operators&&t.operators.length>0?[2,f(o,n,t.operators,a)]:(i=n.operators&&n.operators.length>0?n.operators[0]:null,[2,d(o,n,i,a)])}))}))}var y={currentState:{type:"LOAD_OC2SMS",result:c()}},m=o("click2Flow/loadOc2smsAction",(function(o,n){var i=o.window,s=n.getState,c=n.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,o,n,l,d,f;return r(this,(function(r){switch(r.label){case 0:t=s(),o=null===(f=null===(d=t.strategy.currentState)||void 0===d?void 0:d.data)||void 0===f?void 0:f.config,r.label=1;case 1:return r.trys.push([1,3,,4]),"keywordAndShortCode"===o.tag?[2,{type:"LOAD_OC2SMS",result:a(e({type:"SingleSubmissionResult"},o))}]:(u.advancedInFlow("tallyman.v1-click2sms","load-click2sms"),[4,v(i,o)]);case 2:return n=r.sent(),u.advancedInFlow("tallyman.v1-click2sms","loaded-click2sms",n),[2,{type:"LOAD_OC2SMS",result:a(n)}];case 3:return l=r.sent(),console.warn(l),u.recedeInFlow("tallyman.v1-click2sms","load-click2sms-failure",l.toString()),[2,c(l.toString())];case 4:return[2]}}))}))})),h=n({name:"click2smsFlow",initialState:y,reducers:{},extraReducers:function(t){t.addCase(m.pending,(function(t){t.currentState={type:"LOAD_OC2SMS",result:i()}})).addCase(m.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(m.rejected,(function(t,r){t.currentState={type:"LOAD_OC2SMS",result:s(r.payload)}}))}}),S=h.reducer;h.actions;var w=function(t){return t((function(t){return t.click2smsFlow.currentState}))},k=function(t){var r,e=t((function(t){return t.click2smsFlow.currentState}));return null===(r=null==e?void 0:e.result)||void 0===r?void 0:r.data};function g(t){var r=t.load;return function(t){return t.type,r(t.result)}}export{g as click2smsFlowMatch,S as click2smsFlowReducer,m as loadOc2smsAction,w as useClick2smsFlowState,k as useKeyWordShortCode};
2
+ //# 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":["oc2sms","_a","window","country","slug","offer","rockmanId","keyword","operator","search","params","URLSearchParams","__assign","action","offerId","toString","page","encodeURIComponent","location","href","device","rockman_id","host","DEV_BASE_URL","url","concat","fetch","then","x","json","loadOnce","maybeConfig","_shortcode","tag","keywordFromConfig","shortcodeFromConfig","type","shortcode","pac_analytics","visitor","config","substr","result","sent","success","displayKeyword","uid","message","loadForMultipleOperators","operators","results","Promise","all","map","o","__awaiter","_this","singleResult","r","value","l","error_1","resolve","finalResults","every","arrResult_1","obj","push","data","load","load1","automaticallySubmitAllOperators","length","singleOperator","initialState","currentState","RDS.NothingYet","loadOc2smsAction","createAsyncThunk","_b","getState","rejectWithValue","state","_d","_c","strategy","RDS.Success","tracker","advancedInFlow","_e","console","warn","ex_1","recedeInFlow","click2smsFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","RDS.Failure","click2smsFlowReducer","reducer","actions","useClick2smsFlowState","useSelector","click2smsFlow","useKeyWordShortCode","click2smsFlowMatch"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{__awaiter as e,__generator as r,__assign as t}from"tslib";import{createAsyncThunk as n,createSlice as a}from"@reduxjs/toolkit";import{S as i,L as o,F as c,N as s}from"./RemoteDataState-lcf8PfJd.js";import{l as d}from"./loadScriptInnerHtml-BzQm-AFb.js";import{t as l}from"./tracker-DaaILhEr.js";import"pacman-client";import"uuid";var u=function(n){var a=n.window,i=n.slug,o=n.country,c=n.msisdn,s=n.device,d=n.offer,l=n.rockmanId,u=n.ip_range_name,v=n.search,m=n.extraParamsQs,f=n.email,p=n.password;return e(void 0,void 0,void 0,(function(){var e,n,y,g,_,w;return r(this,(function(r){return e=new URLSearchParams(t(t(t(t(t(t({action:"redirect",slug:i,country:o,device:s,offerId:d.toString(),rockman_id:l,page:encodeURIComponent(a.location.href),network_type:u?"":"wifi"},v&&{search:v}),(null===(w=null===(_=null===(g=a.pac_analytics)||void 0===g?void 0:g.visitor)||void 0===_?void 0:_.page)||void 0===w?void 0:w.includes("agency"))&&{evinaTi:l}),a.securityProcessId&&{securityProcessId:a.securityProcessId}),a.languageCode&&{language_code:a.languageCode}),f&&p?{email:f,password:p}:{msisdn:c}),m&&{extraParams:m})).toString(),n=a.DEV_BASE_URL||"",y="".concat(n,"/tallyman/v1/?").concat(e),i.includes("za-mtn-beyondvr-r7")?[2,{success:!0,rockman_id:l,redirect_url:y}]:[2,fetch(y).then((function(e){return e.json()}))]}))}))},v=function(n){var a=n.window,i=n.userDetails,o=n.extraConfig;return e(void 0,void 0,void 0,(function(){var e,n,c,s,d,l,u;return r(this,(function(r){return e="cc_number"in i,n=a.DEV_BASE_URL_CREDIT_CARD||"",c="".concat(n,"/api/v1"),s=e?"/maxpay/frontend/initiate-payment":"/ecardon/frontend/initiate-payment",d=t(t({rockman_id:null===(u=a.pac_analytics.visitor)||void 0===u?void 0:u.rockmanId,landing_page_url:a.location.href,service_id:e?null==o?void 0:o.serviceId:"2"},e?{}:{user_agent:a.navigator.userAgent,ip:a.pac_analytics.visitor.ip}),i),l={method:"POST",headers:new Headers({"Content-Type":"application/json"}),body:JSON.stringify(d)},[2,fetch("".concat(c).concat(s),l).then((function(e){return e.json()}))]}))}))};function m(t,n,a){var i,o,c,s,d;return e(this,void 0,void 0,(function(){var e,l,m,f,p,y,g,_,w,h,S,E;return r(this,(function(r){switch(r.label){case 0:return e=n.slug,l=n.country,m=n.device,f=n.serviceId,p=t.location.search.substr(1)||"",y=t.pac_analytics.visitor,g=y.rockmanId,_={serviceId:f},(null===(c=null===(o=null===(i=null==t?void 0:t.pac_analytics)||void 0===i?void 0:i.visitor)||void 0===o?void 0:o.page)||void 0===c?void 0:c.includes("agency"))?[4,u({window:t,slug:e,country:l,device:m,offer:null===(d=null===(s=null==t?void 0:t.pac_analytics)||void 0===s?void 0:s.visitor)||void 0===d?void 0:d.offer,rockmanId:g,email:null==a?void 0:a.email,password:null==a?void 0:a.password,search:p})]:[3,2];case 1:return h=r.sent(),[3,4];case 2:return[4,v({window:t,userDetails:a,extraConfig:_})];case 3:h=r.sent(),r.label=4;case 4:if(!1===(w=h).success)throw S="ALREADY SUBSCRIBED"===w.message?"AlreadySubscribed":w.message,(E=new Error("".concat(S,":\n").concat(w.message))).type=S,console.error(E),E;return[2,{gateway_url:w.gateway_url||w.redirect_url,method:w.redirect_url?"redirection":w.method}]}}))}))}var f={currentState:{type:"USER_DETAILS_ENTRY",result:s()}},p=n("creditCardFlow/submitUserDetailsAction",(function(t,n){var a=t.window,o=t.userDetails,c=n.getState,s=n.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,t,n,u,v,f,p;return r(this,(function(r){switch(r.label){case 0:e=c(),t=e.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,3,,4]),l.advancedInFlow("tallyman.v1-credit-card","cc-form-submitted",{email:null==o?void 0:o.email}),[4,m(a,t,o)];case 2:return n=r.sent(),u=n.gateway_url,v=n.method,l.advancedInFlow("tallyman.v1-credit-card","cc-form-submission-success",{email:null==o?void 0:o.email,gateway_url:u}),"jslink"===v&&u&&(l.advancedInFlow("tallyman.v1-credit-card","load-script-start",{gateway_url:u}),function(e){var r=e.url,t=e.key,n=e.isRecaptcha,a=void 0!==n&&n,i=e.callBack,o=e.id,c=void 0===o?"":o,s=document.createElement("script");s.type="text/javascript",s.src=r,s.id="injected_script_".concat(c);var l=document.getElementsByTagName("head")[0];l.insertBefore(s,l.firstChild),a&&(s.onload=function(){var e='\n grecaptcha.ready(function() {\n grecaptcha.execute("'.concat(t,'", {action: \'submit\'}).then(function(token) {\n // To be used by tallyman\n window.reCaptchaToken = token;\n console.log("-------" + token);\n });\n });\n ');d(e,!0)}),s.onerror=function(){console.error("Error loading script",r),i&&i()}}({id:"ecardon-credit-card",url:u,callBack:function(){l.advancedInFlow("tallyman.v1-credit-card","load-script-success",{gateway_url:u})}})),"redirection"===v&&u&&(l.customEvent("Flow","advance-auto","redirect-success",{redirect_url:u}),a.location.href=u),[2,{type:"USER_DETAILS_ENTRY",result:i({gateway_url:u,method:v})}];case 3:switch(f=r.sent(),console.warn(f),p=void 0,f.type){case"AlreadySubscribed":p="AlreadySubscribed";break;case"InvalidUserDetails":p="InvalidUserDetails";break;default:p="UnknownError"}return l.recedeInFlow("tallyman.v1-credit-card","cc-form-submission-failure",{email:null==o?void 0:o.email,errorType:p||f.type}),[2,s({errorType:p,error:f.toString()})];case 4:return[2]}}))}))})),y=a({name:"creditCardFlow",initialState:f,reducers:{},extraReducers:function(e){e.addCase(p.pending,(function(e){e.currentState={type:"USER_DETAILS_ENTRY",result:o()}})).addCase(p.fulfilled,(function(e,r){e.currentState=r.payload})).addCase(p.rejected,(function(e,r){e.currentState={type:"USER_DETAILS_ENTRY",result:c(r.payload)}}))}}),g=y.reducer;y.actions;var _=function(e){return e((function(e){return e.creditCardFlow.currentState}))};function w(e){var r=e.userDetailsEntry;return function(e){return e.type,r(e.result)}}export{w as creditCardFlowMatch,g as creditCardFlowReducer,p as submitUserDetailsAction,_ as useCreditCardFlowState};
2
+ //# sourceMappingURL=creditCardFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creditCardFlow.js","sources":["../src/utilities/loadScriptSrc.ts","../src/flows/creditCardFlow/api.ts","../src/flows/creditCardFlow/main.ts","../src/flows/creditCardFlow/creditCardFlowSlice.ts","../src/flows/creditCardFlow/hooks/useCreditCardFlowState.ts","../src/flows/creditCardFlow/match.ts"],"sourcesContent":["import { loadScriptInnerHtml } from './loadScriptInnerHtml';\n\nconst loadScriptSrc = ({\n url,\n key,\n isRecaptcha = false,\n callBack,\n id = ''\n}: {\n url: string;\n key?: string;\n isRecaptcha?: boolean;\n callBack?: () => void;\n id?: string;\n}) => {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = url;\n script.id = `injected_script_${id}`;\n const headElem = document.getElementsByTagName('head')[0];\n headElem.insertBefore(script, headElem.firstChild);\n\n if (isRecaptcha) {\n script.onload = () => {\n const scriptInner = `\n grecaptcha.ready(function() {\n grecaptcha.execute(\"${key}\", {action: 'submit'}).then(function(token) {\n // To be used by tallyman\n window.reCaptchaToken = token;\n console.log(\"-------\" + token);\n });\n });\n `;\n loadScriptInnerHtml(scriptInner, true);\n };\n }\n\n script.onerror = () => {\n console.error('Error loading script', url);\n if (callBack) {\n callBack();\n }\n };\n};\n\nexport default loadScriptSrc;\n","import { IUserDetails, IUserDetailsEcardon, IUserDetailsSubmissionResult } from '../../sharedFlowTypes/CreditCardTypes';\nimport { IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoRedirTypes';\n\nconst redirect = async ({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n ip_range_name,\n search,\n extraParamsQs,\n email,\n password\n}: {\n window: Window;\n slug: string;\n country: string;\n msisdn?: string;\n device: string;\n offer: string;\n rockmanId: string;\n ip_range_name?: string;\n search: string;\n extraParamsQs?: string;\n email?: string;\n password?: string;\n}): Promise<IMSISDNSubmissionResult> => {\n const params = new URLSearchParams({\n action: 'redirect',\n slug,\n country,\n device,\n offerId: offer.toString(),\n rockman_id: rockmanId,\n page: encodeURIComponent(window.location.href),\n network_type: ip_range_name ? '' : 'wifi',\n ...(search && { search }),\n ...(window.pac_analytics?.visitor?.page?.includes('agency') && { evinaTi: rockmanId }),\n ...(window.securityProcessId && { securityProcessId: window.securityProcessId }),\n ...(window.languageCode && { language_code: window.languageCode }),\n ...(email && password ? { email, password } : { msisdn }),\n ...(extraParamsQs && { extraParams: extraParamsQs })\n }).toString();\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${params}`;\n\n if (slug.includes('za-mtn-beyondvr-r7')) {\n return {\n success: true,\n rockman_id: rockmanId,\n redirect_url: url\n };\n }\n\n return fetch(url).then((x) => x.json());\n};\n\nconst creditCardPayment = async ({\n window,\n userDetails,\n extraConfig\n}: {\n window: Window;\n userDetails: IUserDetails | IUserDetailsEcardon;\n extraConfig?: { serviceId: string };\n}): Promise<IUserDetailsSubmissionResult> => {\n const isMaxPay = 'cc_number' in userDetails;\n const host = window.DEV_BASE_URL_CREDIT_CARD || '';\n const apiBaseURL = `${host}/api/v1`;\n const apiPath = isMaxPay ? '/maxpay/frontend/initiate-payment' : '/ecardon/frontend/initiate-payment';\n\n // Common userDetails properties\n const commonDetails = {\n rockman_id: window.pac_analytics.visitor?.rockmanId,\n landing_page_url: window.location.href,\n // Use conditional operation for service_id as it varies\n service_id: isMaxPay ? extraConfig?.serviceId : '2',\n ...(isMaxPay ? {} : { user_agent: window.navigator.userAgent, ip: window.pac_analytics.visitor.ip }),\n ...userDetails\n };\n\n const requestOptions = {\n method: 'POST',\n headers: new Headers({ 'Content-Type': 'application/json' }),\n body: JSON.stringify(commonDetails)\n };\n\n return fetch(`${apiBaseURL}${apiPath}`, requestOptions).then((response) => response.json());\n};\n\nexport { redirect, creditCardPayment };\n","import { IError } from '../../common-types/IError';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n CreditCardFlowState,\n IUserDetails,\n IUserDetailsEcardon,\n IUserDetailsSubmissionResult,\n SubmitUserDetailsFailure,\n SubmitUserDetailsSuccess\n} from '../../sharedFlowTypes/CreditCardTypes';\nimport { IConfig } from '../../sharedFlowTypes/StrategyTypes';\nimport { creditCardPayment, redirect } from './api';\n\nexport async function submitUserDetails(\n window: Window,\n config: IConfig,\n userDetails: IUserDetails | IUserDetailsEcardon\n): Promise<{\n gateway_url: string;\n method: string;\n}> {\n const { slug, country, device, serviceId } = config;\n const search = window.location.search.substr(1) || '';\n const { visitor } = window.pac_analytics;\n\n const { rockmanId } = visitor;\n const extraConfig = { serviceId };\n const result: IUserDetailsSubmissionResult = window?.pac_analytics?.visitor?.page?.includes('agency')\n ? await redirect({\n window,\n slug,\n country,\n device,\n offer: window?.pac_analytics?.visitor?.offer,\n rockmanId,\n email: userDetails?.email,\n password: userDetails?.password,\n search\n })\n : await creditCardPayment({ window, userDetails, extraConfig });\n\n if (result.success === false) {\n const type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : result.message;\n const error = new Error(`${type}:\\n${result.message}`) as IError & { type: string };\n error.type = type;\n console.error(error);\n throw error;\n } else {\n return {\n gateway_url: result.gateway_url || result.redirect_url,\n method: result.redirect_url ? 'redirection' : result.method\n };\n }\n}\n\nexport const mockedUserDetailsEntrySuccess: CreditCardFlowState = {\n currentState: {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.Success<SubmitUserDetailsFailure, SubmitUserDetailsSuccess>({\n gateway_url: 'https://www.google.com',\n method: 'jslink'\n })\n }\n};\n\nexport const mockedUserDetailsEntryFailure: CreditCardFlowState = {\n currentState: {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.Failure<SubmitUserDetailsFailure, SubmitUserDetailsSuccess>({\n errorType: 'AlreadySubscribed',\n error: 'Already Subscribed'\n })\n }\n};\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n CreditCardFlowState,\n IUserDetails,\n IUserDetailsEcardon,\n SubmitUserDetailsErrorTypes,\n SubmitUserDetailsFailure,\n SubmitUserDetailsSuccess,\n USERDETAILSEntryState\n} from '../../sharedFlowTypes/CreditCardTypes';\nimport { RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport loadScriptSrc from '../../utilities/loadScriptSrc';\nimport { tracker } from '../../utilities/tracker';\nimport { submitUserDetails } from './main';\n\nconst initialState: CreditCardFlowState = {\n currentState: {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.NothingYet()\n }\n};\n\ninterface SubmitUserDetailsArgs {\n window: Window;\n userDetails: IUserDetails | IUserDetailsEcardon;\n}\n/**\n * submitUserDetailsAction\n * @returns {type: ' 'pinFlow/submitUserDetailsAction', payload: {type: PossibleTypes, result: USERDETAILSEntryState}}\n \n * Calls redirect or max api and returns a url\n * \n */\nexport const submitUserDetailsAction = createAsyncThunk<\n USERDETAILSEntryState,\n SubmitUserDetailsArgs,\n {\n rejectValue: SubmitUserDetailsFailure;\n }\n>('creditCardFlow/submitUserDetailsAction', async ({ window, userDetails }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n\n const { config } = state.strategy.currentState.data;\n\n try {\n // Start Credit Card API\n tracker.advancedInFlow('tallyman.v1-credit-card', 'cc-form-submitted', { email: userDetails?.email });\n const { gateway_url, method } = await submitUserDetails(window, config, userDetails);\n tracker.advancedInFlow('tallyman.v1-credit-card', 'cc-form-submission-success', {\n email: userDetails?.email,\n gateway_url\n });\n // Start Credit Card API\n\n if (method === 'jslink' && gateway_url) {\n tracker.advancedInFlow('tallyman.v1-credit-card', 'load-script-start', { gateway_url });\n loadScriptSrc({\n id: 'ecardon-credit-card',\n url: gateway_url,\n callBack: () => {\n tracker.advancedInFlow('tallyman.v1-credit-card', 'load-script-success', { gateway_url });\n }\n });\n }\n\n if (method === 'redirection' && gateway_url) {\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: gateway_url });\n window.location.href = gateway_url;\n }\n\n return {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.Success<SubmitUserDetailsFailure, SubmitUserDetailsSuccess>({ gateway_url, method })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: SubmitUserDetailsErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidUserDetails':\n errorType = 'InvalidUserDetails';\n break;\n default:\n errorType = 'UnknownError';\n }\n\n tracker.recedeInFlow('tallyman.v1-credit-card', 'cc-form-submission-failure', {\n email: userDetails?.email,\n errorType: errorType || ex.type\n });\n\n return rejectWithValue({\n errorType,\n error: ex.toString()\n });\n }\n});\n\nconst creditCardFlowSlice = createSlice({\n name: 'creditCardFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(submitUserDetailsAction.pending, (state) => {\n state.currentState = { type: 'USER_DETAILS_ENTRY', result: RDS.Loading() };\n })\n .addCase(submitUserDetailsAction.fulfilled, (state, action: PayloadAction<USERDETAILSEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitUserDetailsAction.rejected, (state, action: PayloadAction<SubmitUserDetailsFailure>) => {\n state.currentState = {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: creditCardFlowReducer, actions: creditCardFlowActions } = creditCardFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectCreditCardFlowState = (state: any) => state.creditCardFlow;\n","import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useCreditCardFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.creditCardFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n CreditCardFlowCurrentState,\n SubmitUserDetailsFailure,\n SubmitUserDetailsSuccess\n} from '../../sharedFlowTypes/CreditCardTypes';\n\nfunction creditCardFlowMatch<R>({\n userDetailsEntry\n}: {\n userDetailsEntry: (rds: RDS.RemoteDataState<SubmitUserDetailsFailure, SubmitUserDetailsSuccess>) => R;\n}): (state: CreditCardFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'USER_DETAILS_ENTRY':\n return userDetailsEntry(state.result);\n default:\n // TODO - this should be an error or something\n return userDetailsEntry(state.result);\n }\n };\n}\n\nexport { creditCardFlowMatch };\n"],"names":["redirect","_a","window","slug","country","msisdn","device","offer","rockmanId","ip_range_name","search","extraParamsQs","email","password","params","URLSearchParams","__assign","action","offerId","toString","rockman_id","page","encodeURIComponent","location","href","network_type","_d","_c","_b","pac_analytics","visitor","includes","evinaTi","securityProcessId","languageCode","language_code","extraParams","host","DEV_BASE_URL","url","concat","success","redirect_url","fetch","then","x","json","creditCardPayment","userDetails","extraConfig","isMaxPay","DEV_BASE_URL_CREDIT_CARD","apiBaseURL","apiPath","commonDetails","landing_page_url","service_id","serviceId","user_agent","navigator","userAgent","ip","requestOptions","method","headers","Headers","body","JSON","stringify","response","submitUserDetails","config","substr","_e","_f","_g","result","type","message","error","Error","console","gateway_url","initialState","currentState","RDS.NothingYet","submitUserDetailsAction","createAsyncThunk","getState","rejectWithValue","state","strategy","data","tracker","advancedInFlow","sent","gateway_url_1","key","isRecaptcha","callBack","id","script","document","createElement","src","headElem","getElementsByTagName","insertBefore","firstChild","onload","scriptInner","loadScriptInnerHtml","onerror","loadScriptSrc","customEvent","RDS.Success","warn","ex_1","errorType","recedeInFlow","creditCardFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","RDS.Failure","creditCardFlowReducer","reducer","actions","useCreditCardFlowState","useSelector","creditCardFlow","creditCardFlowMatch","userDetailsEntry"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ var n={};function r(r){n=r}function t(){return n}export{t as getConfig,r as setConfig};
2
+ //# sourceMappingURL=getConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getConfig.js","sources":["../src/utilities/getConfig.ts"],"sourcesContent":["import { IStrategy } from '../common-types/Strategy';\n\n// Function to set the configuration within your library\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nlet config: IStrategy = {};\n\nexport function setConfig(userConfig: IStrategy) {\n config = userConfig;\n}\n\n// Function to get the current configuration\nexport function getConfig(): IStrategy {\n return config;\n}\n"],"names":["config","setConfig","userConfig","getConfig"],"mappings":"AAKA,IAAIA,EAAoB,CAAA,EAElB,SAAUC,EAAUC,GACxBF,EAASE,CACX,UAGgBC,IACd,OAAOH,CACT"}
@@ -0,0 +1,2 @@
1
+ import{checkSubscriptionHander as r}from"./checkSubscriptionHander.js";import{t}from"./tracker-DaaILhEr.js";import"tslib";import"./checkSubscriptionByRockmanIdOnly-BwR1un1L.js";import"./helpers-xPhGBX-B.js";import"./searchToObject.js";import"pacman-client";import"uuid";var c=function(c){var i=c.window,e=c.trackState;if(void 0!==i){var o=i.pac_analytics.visitor.chainRedirectUrl||null;r({window:i}).then((function(r){o?(t.customEvent(e,"redirect","chain-redirect",{redirect_url:o}),i.location.replace(o)):(t.customEvent(e,"redirect","product-redirect",{redirect_url:r}),i.location.replace(r))})).catch((function(r){throw r}))}};export{c as handleClickChainFlow};
2
+ //# sourceMappingURL=handleClickChainFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleClickChainFlow.js","sources":["../src/utilities/handleClickChainFlow.ts"],"sourcesContent":["import { checkSubscriptionHander } from './checkSubscriptionHander';\nimport { tracker } from './tracker';\n\nexport const handleClickChainFlow = ({ window, trackState }: { window: Window; trackState: string }) => {\n if (typeof window !== 'undefined') {\n const chainRedirectUrl = window.pac_analytics.visitor.chainRedirectUrl || null;\n checkSubscriptionHander({ window })\n .then((productUrl) => {\n if (chainRedirectUrl) {\n tracker.customEvent(trackState, 'redirect', 'chain-redirect', { redirect_url: chainRedirectUrl });\n window.location.replace(chainRedirectUrl);\n } else {\n tracker.customEvent(trackState, 'redirect', 'product-redirect', { redirect_url: productUrl });\n window.location.replace(productUrl);\n }\n })\n .catch((err) => {\n throw err;\n });\n }\n};\n"],"names":["handleClickChainFlow","_a","window","trackState","chainRedirectUrl_1","pac_analytics","visitor","chainRedirectUrl","checkSubscriptionHander","then","productUrl","tracker","customEvent","redirect_url","location","replace","catch","err"],"mappings":"8QAGO,IAAMA,EAAuB,SAACC,OAAEC,EAAMD,EAAAC,OAAEC,EAAUF,EAAAE,WACvD,QAAsB,IAAXD,EAAwB,CACjC,IAAME,EAAmBF,EAAOG,cAAcC,QAAQC,kBAAoB,KAC1EC,EAAwB,CAAEN,OAAMA,IAC7BO,MAAK,SAACC,GACDN,GACFO,EAAQC,YAAYT,EAAY,WAAY,iBAAkB,CAAEU,aAAcT,IAC9EF,EAAOY,SAASC,QAAQX,KAExBO,EAAQC,YAAYT,EAAY,WAAY,mBAAoB,CAAEU,aAAcH,IAChFR,EAAOY,SAASC,QAAQL,GAE5B,IACCM,OAAM,SAACC,GACN,MAAMA,CACR,GACH,CACH"}
@@ -0,0 +1,2 @@
1
+ import n from"awesome-phonenumber";import{searchToObject as e}from"./searchToObject.js";import"tslib";var o=function(e){var o=e.msisdnValue,i=e.dispatch,s=e.submitMSISDNAction,t=e.isHeaderEnrichmentSuccess,r=e.setMsisdnValue,c=e.isHeaderEnrichmentAutoSubmit;if(console.log("handleAutoSubmitMsisdn",o),o&&o.length>3&&(!t||!0===t&&!0===c)){var a=new n("+".concat(o),process.env.country.toUpperCase());console.log("pn",a),a.isValid()?i(s({window:window,msisdn:o})):(r(a.getCountryCode()+o),i(s({window:window,msisdn:a.getCountryCode()+o})))}},i=function(o){var i=o.window,s=o.isHeaderEnrichmentSuccess,t=o.setInternationalNumber,r=o.onEnd,c=o.internationalNumber,a=new n("+".concat(c),process.env.country.toUpperCase()),d=a.getCountryCode(),u=s?"mobile_data":"wifi",m=e(i);if(!0!==s||"kw"!==process.env.country||""===c||a.isValid())if(!0===s&&"true"===(null==m?void 0:m.success)&&"1"===m["msisdn-alias"]){if(null==m?void 0:m.msisdn)r(m.msisdn,{network_type:u,"skip-validation":"1"})}else void 0!==i&&function(n,e){return void 0!==n&&null!==document.cookie.match(new RegExp("^(.*;)?\\s*".concat(e,"\\s*=\\s*[^;]+(.*)?$")))}(i,"OMEU")&&"es"===process.env.country?r("1",{network_type:u,"skip-validation":"1"}):c&&("ci"===process.env.country?r(c.match(/\d+/gi).join(""),{network_type:u}):r(c.match(/\d+/gi).join("")));else t(d+c),r((d+c).match(/\d+/gi).join(""))};export{o as handleAutoSubmitMsisdn,i as handleFormSubmit};
2
+ //# sourceMappingURL=handleSubmitNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleSubmitNumber.js","sources":["../src/utilities/isCookieExists.ts","../src/utilities/handleSubmitNumber.ts"],"sourcesContent":["export const isCookieExists = (window: Window, cookieName: string) =>\n typeof window !== 'undefined' &&\n document.cookie.match(new RegExp(`^(.*;)?\\\\s*${cookieName}\\\\s*=\\\\s*[^;]+(.*)?$`)) !== null;\n","import { Dispatch } from '@reduxjs/toolkit';\nimport PhoneNumber from 'awesome-phonenumber';\nimport { isCookieExists } from './isCookieExists';\nimport { searchToObject } from './searchToObject';\n\nexport const handleAutoSubmitMsisdn = ({\n msisdnValue,\n dispatch,\n submitMSISDNAction,\n isHeaderEnrichmentSuccess,\n setMsisdnValue,\n isHeaderEnrichmentAutoSubmit\n}: {\n window: Window;\n msisdnValue: string;\n dispatch: Dispatch;\n submitMSISDNAction: ({ window, msisdn }: { window: Window; msisdn: string }) => any;\n isHeaderEnrichmentSuccess: boolean;\n setMsisdnValue: (msisdnValue: string) => void;\n isHeaderEnrichmentAutoSubmit?: boolean;\n}) => {\n //\n // eslint-disable-next-line no-console\n console.log('handleAutoSubmitMsisdn', msisdnValue);\n if (\n msisdnValue &&\n msisdnValue.length > 3 &&\n (!isHeaderEnrichmentSuccess || (isHeaderEnrichmentSuccess === true && isHeaderEnrichmentAutoSubmit === true))\n ) {\n const pn = new PhoneNumber(`+${msisdnValue}`, process.env.country.toUpperCase());\n // eslint-disable-next-line no-console\n console.log('pn', pn);\n if (pn.isValid()) {\n dispatch(submitMSISDNAction({ window, msisdn: msisdnValue }));\n } else {\n setMsisdnValue(pn.getCountryCode() + msisdnValue);\n dispatch(submitMSISDNAction({ window, msisdn: pn.getCountryCode() + msisdnValue }));\n }\n }\n};\n\nexport const handleFormSubmit = ({\n window,\n isHeaderEnrichmentSuccess,\n setInternationalNumber,\n onEnd,\n internationalNumber\n}: {\n window: Window;\n isHeaderEnrichmentSuccess: boolean;\n country: string;\n setInternationalNumber: (msisdn: string) => void;\n onEnd: (msisdn: string, extraParams?: { [key: string]: string }) => void;\n internationalNumber: string;\n}) => {\n const pn = new PhoneNumber(`+${internationalNumber}`, process.env.country.toUpperCase());\n\n const countryCode = pn.getCountryCode();\n const networkType = isHeaderEnrichmentSuccess ? 'mobile_data' : 'wifi';\n const searchObj = searchToObject(window) as any;\n\n if (\n isHeaderEnrichmentSuccess === true &&\n process.env.country === 'kw' &&\n internationalNumber !== '' &&\n !pn.isValid()\n ) {\n setInternationalNumber(countryCode + internationalNumber);\n const newNumber = countryCode + internationalNumber;\n\n onEnd(newNumber.match(/\\d+/gi).join(''));\n } else if (isHeaderEnrichmentSuccess === true && searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') {\n // Special case Digital Virgo sents encrypted msisdn we dont need to validate is\n if (searchObj?.msisdn) {\n const encryptedMsisdn = searchObj.msisdn;\n onEnd(encryptedMsisdn, { network_type: networkType, 'skip-validation': '1' });\n }\n } else if (typeof window !== 'undefined' && isCookieExists(window, 'OMEU') && process.env.country === 'es') {\n onEnd('1', { network_type: networkType, 'skip-validation': '1' });\n } else if (internationalNumber) {\n if (process.env.country === 'ci') {\n onEnd(internationalNumber.match(/\\d+/gi).join(''), { network_type: networkType });\n } else {\n onEnd(internationalNumber.match(/\\d+/gi).join(''));\n }\n }\n};\n"],"names":["handleAutoSubmitMsisdn","_a","msisdnValue","dispatch","submitMSISDNAction","isHeaderEnrichmentSuccess","setMsisdnValue","isHeaderEnrichmentAutoSubmit","console","log","length","pn","PhoneNumber","concat","process","env","country","toUpperCase","isValid","window","msisdn","getCountryCode","handleFormSubmit","setInternationalNumber","onEnd","internationalNumber","countryCode","networkType","searchObj","searchToObject","success","network_type","cookieName","document","cookie","match","RegExp","isCookieExists","join"],"mappings":"sGAAO,ICKMA,EAAyB,SAACC,GACrC,IAAAC,EAAWD,EAAAC,YACXC,EAAQF,EAAAE,SACRC,EAAkBH,EAAAG,mBAClBC,8BACAC,EAAcL,EAAAK,eACdC,EAA4BN,EAAAM,6BAa5B,GADAC,QAAQC,IAAI,yBAA0BP,GAEpCA,GACAA,EAAYQ,OAAS,KACnBL,IAA4D,IAA9BA,IAAuE,IAAjCE,GACtE,CACA,IAAMI,EAAK,IAAIC,EAAY,IAAAC,OAAIX,GAAeY,QAAQC,IAAIC,QAAQC,eAElET,QAAQC,IAAI,KAAME,GACdA,EAAGO,UACLf,EAASC,EAAmB,CAAEe,OAAMA,OAAEC,OAAQlB,MAE9CI,EAAeK,EAAGU,iBAAmBnB,GACrCC,EAASC,EAAmB,CAAEe,OAAMA,OAAEC,OAAQT,EAAGU,iBAAmBnB,KAEvE,CACH,EAEaoB,EAAmB,SAACrB,GAC/B,IAAAkB,EAAMlB,EAAAkB,OACNd,EAAyBJ,EAAAI,0BACzBkB,EAAsBtB,EAAAsB,uBACtBC,EAAKvB,EAAAuB,MACLC,EAAmBxB,EAAAwB,oBASbd,EAAK,IAAIC,EAAY,IAAAC,OAAIY,GAAuBX,QAAQC,IAAIC,QAAQC,eAEpES,EAAcf,EAAGU,iBACjBM,EAActB,EAA4B,cAAgB,OAC1DuB,EAAYC,EAAeV,GAEjC,IACgC,IAA9Bd,GACwB,OAAxBS,QAAQC,IAAIC,SACY,KAAxBS,GACCd,EAAGO,UAMC,IAAkC,IAA9Bb,GAA6D,UAAvBuB,aAAA,EAAAA,EAAWE,UAAoD,MAA9BF,EAAU,gBAAyB,CAEnH,GAAIA,eAAAA,EAAWR,OAEbI,EADwBI,EAAUR,OACX,CAAEW,aAAcJ,EAAa,kBAAmB,KAE1E,WAA4B,IAAXR,GD7EU,SAACA,EAAgBa,GAC7C,YAAkB,IAAXb,GAC+E,OAAtFc,SAASC,OAAOC,MAAM,IAAIC,OAAO,cAAAvB,OAAcmB,EAAU,yBADzD,CC4E4CK,CAAelB,EAAQ,SAAmC,OAAxBL,QAAQC,IAAIC,QACxFQ,EAAM,IAAK,CAAEO,aAAcJ,EAAa,kBAAmB,MAClDF,IACmB,OAAxBX,QAAQC,IAAIC,QACdQ,EAAMC,EAAoBU,MAAM,SAASG,KAAK,IAAK,CAAEP,aAAcJ,IAEnEH,EAAMC,EAAoBU,MAAM,SAASG,KAAK,WAhBhDf,EAAuBG,EAAcD,GAGrCD,GAFkBE,EAAcD,GAEhBU,MAAM,SAASG,KAAK,IAgBxC"}
@@ -0,0 +1,2 @@
1
+ import{__awaiter as t,__generator as r}from"tslib";var e=function(n,u,i,o){return t(void 0,void 0,void 0,(function(){var t;return r(this,(function(r){switch(r.label){case 0:return[4,n()];case 1:return t=r.sent(),i(t)||o>=u?[2,t]:[4,(a=1e3,new Promise((function(t){return setTimeout((function(){return t()}),a)})))];case 2:return r.sent(),[2,e(n,u,i,o+1)]}var a}))}))};function n(t){return{type:"right",value:t}}function u(t){return{type:"left",value:t}}export{e as a,u as l,n as r};
2
+ //# sourceMappingURL=helpers-xPhGBX-B.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers-xPhGBX-B.js","sources":["../src/utilities/helpers.ts"],"sourcesContent":["import Either from '../common-types/Either';\n\nexport const wait = (ms: number) => new Promise<void>((resolve) => setTimeout(() => resolve(), ms));\n\nexport const loop = async <_I extends Record<string, unknown>, R extends Record<string, unknown>>(\n f: () => Promise<R>,\n max: number,\n stop: (r: R) => boolean,\n i: number\n): Promise<R> => {\n const r = await f();\n if (stop(r) || i >= max) {\n return r;\n }\n await wait(1000);\n return loop(f, max, stop, i + 1);\n};\n\nexport function right<L, R>(r: R) {\n return { type: 'right', value: r } as Either<L, R>;\n}\nexport function left<L, R>(l: L) {\n return { type: 'left', value: l } as Either<L, R>;\n}\n"],"names":["loop","f","max","stop","i","__awaiter","r","_a","sent","ms","Promise","resolve","setTimeout","right","type","value","left","l"],"mappings":"mDAEO,IAEMA,EAAO,SAClBC,EACAC,EACAC,EACAC,GAAS,OAAAC,OAAA,OAAA,OAAA,GAAA,mEAEC,MAAM,CAAA,EAAAJ,YAChB,OADMK,EAAIC,EAASC,OACfL,EAAKG,IAAMF,GAAKF,EAClB,CAAA,EAAOI,GAET,CAAA,GAZmBG,EAYR,IAZuB,IAAIC,SAAc,SAACC,GAAY,OAAAC,YAAW,WAAM,OAAAD,GAAS,GAAEF,EAA5B,aAajE,OADAF,EAAAC,OACA,CAAA,EAAOR,EAAKC,EAAGC,EAAKC,EAAMC,EAAI,IAbZ,IAACK,OAcnB,EAEI,SAAUI,EAAYP,GAC1B,MAAO,CAAEQ,KAAM,QAASC,MAAOT,EACjC,CACM,SAAUU,EAAWC,GACzB,MAAO,CAAEH,KAAM,OAAQC,MAAOE,EAChC"}
@@ -0,0 +1,2 @@
1
+ var e=function(e,t){var n=document.createElement("script");if(n.type="text/javascript",n.innerHTML=e,n.id="agency_mt2"===window.gateway?"EvinaPinTrigger":"",t)document.getElementsByTagName("body")[0].appendChild(n);else{var a=document.getElementsByTagName("head")[0];a.insertBefore(n,a.firstChild),setTimeout((function(){if("agency_mt2"===window.gateway&&void 0!==typeof window.evina_dcb){console.log("Ev ready");var e=new Event("DCBProtectRun");"undefined"!=typeof window&&document.dispatchEvent(e)}}),0)}};export{e as l};
2
+ //# sourceMappingURL=loadScriptInnerHtml-BzQm-AFb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadScriptInnerHtml-BzQm-AFb.js","sources":["../src/utilities/loadScriptInnerHtml.ts"],"sourcesContent":["const loadScriptInnerHtml = (innerHTML: string, isBody?: boolean) => {\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.innerHTML = innerHTML;\n script.id = window.gateway === 'agency_mt2' ? 'EvinaPinTrigger' : '';\n if (isBody) {\n document.getElementsByTagName('body')[0].appendChild(script);\n } else {\n const headElem = document.getElementsByTagName('head')[0];\n headElem.insertBefore(script, headElem.firstChild);\n\n setTimeout(() => {\n if (window.gateway === 'agency_mt2' && typeof window.evina_dcb !== undefined) {\n // eslint-disable-next-line no-console\n console.log('Ev ready');\n const event = new Event('DCBProtectRun');\n if (typeof window !== 'undefined') {\n document.dispatchEvent(event);\n }\n }\n }, 0);\n }\n};\n\nexport { loadScriptInnerHtml };\n"],"names":["loadScriptInnerHtml","innerHTML","isBody","script","document","createElement","type","id","window","gateway","getElementsByTagName","appendChild","headElem","insertBefore","firstChild","setTimeout","undefined","evina_dcb","console","log","event_1","Event","dispatchEvent"],"mappings":"AAAA,IAAMA,EAAsB,SAACC,EAAmBC,GAC9C,IAAMC,EAASC,SAASC,cAAc,UAItC,GAHAF,EAAOG,KAAO,kBACdH,EAAOF,UAAYA,EACnBE,EAAOI,GAAwB,eAAnBC,OAAOC,QAA2B,kBAAoB,GAC9DP,EACFE,SAASM,qBAAqB,QAAQ,GAAGC,YAAYR,OAChD,CACL,IAAMS,EAAWR,SAASM,qBAAqB,QAAQ,GACvDE,EAASC,aAAaV,EAAQS,EAASE,YAEvCC,YAAW,WACT,GAAuB,eAAnBP,OAAOC,cAAwDO,WAArBR,OAAOS,UAAyB,CAE5EC,QAAQC,IAAI,YACZ,IAAMC,EAAQ,IAAIC,MAAM,iBACF,oBAAXb,QACTJ,SAASkB,cAAcF,EAE1B,CACF,GAAE,EACJ,CACH"}
package/dist/moFlow.js ADDED
@@ -0,0 +1,2 @@
1
+ import{__awaiter as t,__generator as n,__read as r,__assign as e}from"tslib";import{createAsyncThunk as o,createSlice as a}from"@reduxjs/toolkit";import{S as c,N as s,L as i,F as u}from"./RemoteDataState-lcf8PfJd.js";import{s as d}from"./storeMsisdn-Cjq8_qYH.js";import{t as l}from"./tracker-DaaILhEr.js";import{c as m}from"./checkSubscriptionByRockmanIdOnly-BwR1un1L.js";import{a as f}from"./helpers-xPhGBX-B.js";import"pacman-client";import"uuid";var v=function(t){return t((function(t){return t.moFlow.currentState}))};function p(t){var n=t.msisdnEntry;return function(t){return t.type,n(t.result)}}var y=function(e){var o=e.window,a=e.slug,c=e.country,s=e.msisdn,i=e.device,u=e.offer,d=e.rockmanId,l=e.extraParamsQs;return t(void 0,void 0,void 0,(function(){var t,e,m,f,v,p,y;return n(this,(function(n){switch(n.label){case 0:return o.api_ajax_url?[4,fetch(o.api_ajax_url).then((function(t){return t.json()}))]:[3,2];case 1:return e=n.sent(),[3,3];case 2:e=null,n.label=3;case 3:return t=e,m={action:"trigger-message",slug:a,country:c,msisdn:s,device:i,offerId:u,rockman_id:d,page:encodeURIComponent(null===(y=null==o?void 0:o.location)||void 0===y?void 0:y.href),sam_g_token:o.reCaptchaToken||"",antifraud_id:o.antifraud_id||"",language_code:o.languageCode||"",partner_form_action:(null==t?void 0:t.form_action)?encodeURIComponent(null==t?void 0:t.form_action):""},f=Object.entries(m).filter((function(t){var n=r(t,2);return n[0],n[1]})).map((function(t){var n=r(t,2),e=n[0],o=n[1];return"".concat(e,"=").concat(o)})).join("&"),v=o.DEV_BASE_URL||"",p="".concat(v,"/tallyman/v1/?").concat(f,"&").concat(l),[2,fetch(p).then((function(t){return t.json()}))]}}))}))};function S(r,o,a,c){var s,i;return t(this,void 0,void 0,(function(){var t;return n(this,(function(n){return t=e(e({},o||{}),{offer:null===(i=null===(s=r.pac_analytics)||void 0===s?void 0:s.visitor)||void 0===i?void 0:i.offer}),[2,h(r,t,a,c)]}))}))}function h(r,o,a,c){var s;return t(this,void 0,void 0,(function(){var t,i,u,d,l,m,f,v,p,S,h;return n(this,(function(n){switch(n.label){case 0:return t=o.slug,i=o.country,u=o.device,d=o.offer,l=r.location.search.substr(1)||"",m=c?"&".concat(Object.keys(c).map((function(t){return"".concat(t,"=").concat(c[t])})).join("&")):"",f=(null===(s=a.match(/\d+/gi))||void 0===s?void 0:s.join(""))||"",v=r.pac_analytics.visitor.rockmanId,[4,y({window:r,slug:t,country:i,msisdn:f,device:u,offer:d,rockmanId:v,search:l,extraParamsQs:m})];case 1:if(!1===(p=n.sent()).success)throw S="ALREADY SUBSCRIBED"===p.message?"AlreadySubscribed":"InvalidMSISDN",(h=new Error("".concat(S,":\n").concat(p.message))).type=S,h.productUrl=p.product_url?p.product_url:"",console.error(h),h;return[2,e(e({},p),{keyword:p.displayKeyword})]}}))}))}var w={currentState:{type:"MSISDNEntry",result:s()}},b=o("moFlow/submitMSISDNAction",(function(r,o){var a=r.window,s=r.msisdn,i=r.extraParams,u=o.getState,v=o.rejectWithValue;return t(void 0,void 0,void 0,(function(){var r,o,p,y,h;return n(this,(function(w){switch(w.label){case 0:r=u(),o=r.strategy.currentState.data.config,w.label=1;case 1:return w.trys.push([1,5,,6]),l.advancedInFlow("tallyman.v1-mo","msisdn-submitted",{msisdn:s}),[4,S(a,o,s,i)];case 2:return p=w.sent(),l.advancedInFlow("tallyman.v1-mo","msisdn-submission-success",{msisdn:s}),i&&i.storeMsisdn&&"true"===i.storeMsisdn?[4,d(s).then((function(t){t&&t.data&&t.data.success?l.customEvent("Flow","advance-auto","msisdn-stored-success"):l.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(t){l.customEvent("Flow","advance-auto","msisdn-stored-error",t)}))]:[3,4];case 3:w.sent(),w.label=4;case 4:return function(r){return t(this,void 0,void 0,(function(){var t,e,o;return n(this,(function(n){switch(n.label){case 0:return t=r.pac_analytics.visitor.rockmanId,[4,f((function(){return m({window:r,rockmanId:t})}),60,(function(t){return t.success}),0)];case 1:if(!0===(e=n.sent()).success&&e.product_url&&""!==e.product_url)return r.location.href=e.product_url,[2,e.product_url];throw(o=new Error("".concat("SubscriptionFailed",":\n").concat(e.message))).type="SubscriptionFailed",o}}))}))}(a).then((function(t){l.advancedInFlow("tallyman.v1-mo","sale",{msisdn:s}),setTimeout((function(){a.location.href=t}),1e3)})),[2,{type:"MSISDNEntry",result:c(e({},p))}];case 5:switch(y=w.sent(),console.warn(y),h=void 0,y.type){case"AlreadySubscribed":h="AlreadySubscribed";break;case"InvalidMSISDN":h="InvalidMSISDN";break;default:h="UnknownError"}return l.recedeInFlow("tallyman.v1-mo","msisdn-submission-failure",{msisdn:s,errorType:h||"UnknownError"}),[2,v({errorType:h,productUrl:y.productUrl})];case 6:return[2]}}))}))})),I=a({name:"moFlow",initialState:w,reducers:{backToStartAction:function(t){l.recedeInFlow("tallyman.v1-mo","mo-state","requested to change phone number"),t.currentState={type:"MSISDNEntry",result:s()}}},extraReducers:function(t){t.addCase(b.pending,(function(t){t.currentState={type:"MSISDNEntry",result:i()}})).addCase(b.fulfilled,(function(t,n){t.currentState=n.payload})).addCase(b.rejected,(function(t,n){t.currentState={type:"MSISDNEntry",result:u(n.payload)}}))}}),_=I.reducer,g=I.actions.backToStartAction;export{g as backToStartAction,p as moFlowMatch,_ as moFlowReducer,b as submitMSISDNAction,v as useMoFlowState};
2
+ //# sourceMappingURL=moFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moFlow.js","sources":["../src/flows/moFlow/hooks/useMoFlowState.ts","../src/flows/moFlow/match.ts","../src/flows/moFlow/api.ts","../src/flows/moFlow/main.ts","../src/flows/moFlow/moFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useMoFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.moFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport { MoFlowCurrentState, MSISDNEntryFailure, MSISDNEntrySuccess } from '../../sharedFlowTypes/MoTypes';\n\nfunction moFlowMatch<R>({\n msisdnEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n}): (state: MoFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n default:\n // TODO - this should be an error or something\n return msisdnEntry(state.result);\n }\n };\n}\n\nexport { moFlowMatch };\n","import { IGoogleReCaptcha, IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoTypes';\n\nconst getGoogleCaptcha = async (\n window: Window,\n country: string,\n slug: string,\n device: string,\n domain: string\n): Promise<IGoogleReCaptcha> => {\n const host = (window as Window).DEV_BASE_URL || '';\n\n return fetch(\n `${host}/tallyman/helper/?action=google-captcha-v3-config&country=${country}&slug=${slug}&device=${device}&domain=${domain}`\n ).then((x) => x.json());\n};\n\nconst triggerMessage = async ({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n extraParamsQs\n}: {\n window: Window;\n slug: string;\n country: string;\n msisdn: string;\n device: string;\n offer: string;\n rockmanId: string;\n search: string;\n extraParamsQs: string;\n}): Promise<IMSISDNSubmissionResult> => {\n // introduced https://www.notion.so/sammedia/CH-Agency-Bodkinco-Integration-ea1600ad175f451a9d351b6763ad7992\n const partnerAjaxResopnse: {\n form_action: string;\n } = window.api_ajax_url ? await fetch(window.api_ajax_url).then((x) => x.json()) : null;\n\n const params = {\n action: 'trigger-message',\n slug,\n country,\n msisdn,\n device,\n offerId: offer,\n rockman_id: rockmanId,\n page: encodeURIComponent(window?.location?.href),\n sam_g_token: window.reCaptchaToken || '',\n antifraud_id: window.antifraud_id || '',\n language_code: window.languageCode || '',\n partner_form_action: partnerAjaxResopnse?.form_action ? encodeURIComponent(partnerAjaxResopnse?.form_action) : ''\n };\n\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}&${extraParamsQs}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nexport { getGoogleCaptcha, triggerMessage };\n","import { ICheckSubscriptionResult } from '../../common-types/ICheckSubscriptionResult';\nimport { IError } from '../../common-types/IError';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport { IConfig } from '../../common-types/Strategy';\nimport { checkSubscriptionByRockmanIdOnly } from '../../sharedApi/checkSubscriptionByRockmanIdOnly';\nimport {\n IGoogleReCaptcha,\n IKeywordShortcode,\n IMSISDNSubmissionResult,\n MoFlowState,\n MSISDNEntryFailure,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoTypes';\nimport { loop } from '../../utilities/helpers';\nimport loadScriptSrc from '../../utilities/loadScriptSrc';\nimport { getGoogleCaptcha, triggerMessage } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const config: any = { ...(maybeConfig || {}), offer: window.pac_analytics?.visitor?.offer };\n return submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams);\n}\n\nexport const getGoogleReCaptchaConfig = async ({\n window,\n slug,\n country,\n device\n}: IConfig & { window: Window }): Promise<IGoogleReCaptcha> => {\n const domain = window.location.hostname;\n const result: IGoogleReCaptcha = await getGoogleCaptcha(window, country, slug, device, domain);\n if (result.success === true) {\n const srcUrl = `https://www.google.com/recaptcha/api.js?render=${result.site_key}`;\n loadScriptSrc({ url: srcUrl, key: result.site_key, isRecaptcha: true });\n }\n return result;\n};\n\nexport async function submitMSISDNWithConfig(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<IKeywordShortcode> {\n const { slug, country, device, offer } = config;\n const search = window.location.search.substr(1) || '';\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n const msisdn = internationalMSISDN.match(/\\d+/gi)?.join('') || '';\n const { rockmanId } = window.pac_analytics.visitor;\n\n const result: IMSISDNSubmissionResult = await triggerMessage({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n search,\n extraParamsQs\n });\n\n if (result.success === false) {\n const type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMSISDN';\n const error = new Error(`${type}:\\n${result.message}`) as IError & { type: string; productUrl: string };\n error.type = type;\n error.productUrl = result.product_url ? result.product_url : '';\n\n console.error(error);\n throw error;\n } else {\n return { ...result, keyword: result.displayKeyword }; // based on discussion with Chanaka to avoid confusion in set up on bupper. Click2sms and mo will use display keyword\n }\n}\n\nexport async function moCheckSubscription(window: Window): Promise<string> {\n const { rockmanId } = window.pac_analytics.visitor;\n const check: () => Promise<ICheckSubscriptionResult> = () => checkSubscriptionByRockmanIdOnly({ window, rockmanId });\n\n const checkResult: ICheckSubscriptionResult = await loop(check, 60, (r) => r.success, 0);\n\n if (checkResult.success === true && checkResult.product_url && checkResult.product_url !== '') {\n window.location.href = checkResult.product_url;\n return checkResult.product_url;\n }\n const error = new Error(`${'SubscriptionFailed'}:\\n${checkResult.message}`) as IError & { type: string };\n error.type = 'SubscriptionFailed';\n throw error;\n}\n\n// export const formatSMSLink = (keywordAndShortcode: IKeywordShortcode) =>\n// !!window.pac_analytics.visitor['x-requested-with'] &&\n// window.pac_analytics.visitor['x-requested-with'] !== null &&\n// window.pac_analytics.visitor['x-requested-with'].indexOf('com.facebook') !== -1\n// ? `sms://${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`\n// : typeof navigator !== 'undefined' && (/iPhone/i.test(navigator.userAgent) || /Mac OS/i.test(navigator.userAgent))\n// ? `sms:${keywordAndShortcode.shortcode}&body=${keywordAndShortcode.keyword}`\n// : `sms:${keywordAndShortcode.shortcode}?body=${keywordAndShortcode.keyword}`;\n\nexport const mockedMSISDNEntrySuccess: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n keyword: 'TEST OK',\n shortcode: '777'\n })\n }\n};\n\nexport const mockedMSISDNEntryFailure: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoTypes';\nimport { RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport submitMSISDN, { moCheckSubscription } from './main';\n\nexport interface MoFlowState {\n currentState: {\n type: 'MSISDNEntry';\n result: RDS.RemoteDataState<any, any>; // Replace any with your specific error and data types\n };\n}\n\nconst initialState: MoFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}\n \n * Calls trigger-message api that returns a short code and key word\n * Sets completed stated\n */\nexport const submitMSISDNAction = createAsyncThunk<\n MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure;\n }\n>('moFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n\n const { config } = state.strategy.currentState.data;\n\n try {\n // Start Trigger Message\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submitted', { msisdn });\n const keywordAndShortcode = await submitMSISDN(window, config, msisdn, extraParams);\n tracker.advancedInFlow('tallyman.v1-mo', 'msisdn-submission-success', { msisdn });\n // End Trigger Message\n\n // Start Store Msisdn\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End Store Msisdn\n\n // Check For Subscription by rockman id and redirect to product url\n moCheckSubscription(window).then((product_url) => {\n tracker.advancedInFlow('tallyman.v1-mo', 'sale', { msisdn });\n setTimeout(() => {\n window.location.href = product_url;\n }, 1000);\n });\n\n return {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({ ...keywordAndShortcode })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: MSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n default:\n errorType = 'UnknownError';\n }\n\n tracker.recedeInFlow('tallyman.v1-mo', 'msisdn-submission-failure', {\n msisdn,\n errorType: errorType || 'UnknownError'\n });\n\n return rejectWithValue({\n errorType,\n productUrl: ex.productUrl\n });\n }\n});\n\nconst moFlowSlice = createSlice({\n name: 'moFlow',\n initialState,\n reducers: {\n backToStartAction(state) {\n tracker.recedeInFlow('tallyman.v1-mo', 'mo-state', 'requested to change phone number');\n\n // TODO GO BACK TO IDENTIFY BY MSISDN BASED ON STRATEGY\n state.currentState = { type: 'MSISDNEntry', result: RDS.NothingYet() };\n }\n },\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading() };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: moFlowReducer, actions: moFlowActions } = moFlowSlice;\nexport const { backToStartAction } = moFlowActions;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectMoFlowState = (state: any) => state.moFlow;\n"],"names":["useMoFlowState","useSelector","state","moFlow","currentState","moFlowMatch","_a","msisdnEntry","type","result","triggerMessage","window","slug","country","msisdn","device","offer","rockmanId","extraParamsQs","api_ajax_url","fetch","then","x","json","_b","_d","partnerAjaxResopnse","params","action","offerId","rockman_id","page","encodeURIComponent","_c","location","href","sam_g_token","reCaptchaToken","antifraud_id","language_code","languageCode","partner_form_action","form_action","queryString","Object","entries","filter","__read","map","key","value","concat","join","host","DEV_BASE_URL","url","submitMSISDN","maybeConfig","internationalMSISDN","extraParams","config","pac_analytics","visitor","submitMSISDNWithConfig","search","substr","keys","k","match","sent","success","message","error","Error","productUrl","product_url","console","__assign","keyword","displayKeyword","initialState","RDS.NothingYet","submitMSISDNAction","createAsyncThunk","getState","rejectWithValue","strategy","data","tracker","advancedInFlow","keywordAndShortcode","storeMsisdn","customEvent","catch","loop","checkSubscriptionByRockmanIdOnly","r","checkResult","moCheckSubscription","setTimeout","RDS.Success","warn","ex_1","errorType","recedeInFlow","moFlowSlice","createSlice","name","reducers","backToStartAction","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","RDS.Failure","moFlowReducer","reducer","actions"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{__awaiter as e,__generator as r,__assign as t}from"tslib";import{createAsyncThunk as n,createSlice as a}from"@reduxjs/toolkit";import{S as s,N as o,L as i,F as c}from"./RemoteDataState-lcf8PfJd.js";import{s as u}from"./storeMsisdn-Cjq8_qYH.js";import{t as d}from"./tracker-DaaILhEr.js";import{t as l}from"./tryGetIPRangeName-QW-9NgzE.js";import"pacman-client";import"uuid";var m=function(e){return e((function(e){return e.moRedirFlow.currentState}))};function f(e){var r=e.msisdnEntry;return function(e){return e.type,r(e.result)}}var v=function(n){var a=n.window,s=n.slug,o=n.country,i=n.msisdn,c=n.device,u=n.offer,d=n.rockmanId,l=n.ip_range_name,m=n.search,f=n.extraParamsQs,v=n.email,y=n.password;return e(void 0,void 0,void 0,(function(){var e,n,S,p,w,g;return r(this,(function(r){return e=new URLSearchParams(t(t(t(t(t(t({action:"redirect",slug:s,country:o,device:c,offerId:u.toString(),rockman_id:d,page:encodeURIComponent(a.location.href),network_type:l?"":"wifi"},m&&{search:m}),(null===(g=null===(w=null===(p=a.pac_analytics)||void 0===p?void 0:p.visitor)||void 0===w?void 0:w.page)||void 0===g?void 0:g.includes("agency"))&&{evinaTi:d}),a.securityProcessId&&{securityProcessId:a.securityProcessId}),a.languageCode&&{language_code:a.languageCode}),v&&y?{email:v,password:y}:{msisdn:i}),f&&{extraParams:f})).toString(),n=a.DEV_BASE_URL||"",S="".concat(n,"/tallyman/v1/?").concat(e),s.includes("za-mtn-beyondvr-r7")?[2,{success:!0,rockman_id:d,redirect_url:S}]:[2,fetch(S).then((function(e){return e.json()}))]}))}))};function y(n,a,s,o){return e(this,void 0,void 0,(function(){var e;return r(this,(function(r){return e=t({offer:n.pac_analytics.visitor.offer},a||{}),[2,S(n,e,s,o)]}))}))}function S(t,n,a,s){return e(this,void 0,void 0,(function(){var e,o,i,c,u,d,m,f,y,S,p,w,g;return r(this,(function(r){switch(r.label){case 0:return e=n.slug,o=n.country,i=n.device,c=n.offer,u=t.location.search.substr(1)||"",d=s?"&".concat(Object.keys(s).map((function(e){return"".concat(e,"=").concat(s[e])})).join("&")):"",m=a.match(/\d+/gi).join(""),f=t.pac_analytics.visitor,y=f.rockmanId,"ci"!==o?[3,2]:[4,l(f)];case 1:return S=r.sent(),[3,3];case 2:S=null,r.label=3;case 3:return[4,v({window:t,slug:e,country:o,msisdn:m,device:i,offer:c,rockmanId:y,ip_range_name:S,search:u,extraParamsQs:d})];case 4:if(!1===(p=r.sent()).success)throw w="ALREADY SUBSCRIBED"===p.message?"AlreadySubscribed":"InvalidMSISDN",(g=new Error("".concat(w,":\n").concat(p.message))).type=w,console.error(g),g;return[2,p.redirect_url]}}))}))}var p={currentState:{type:"MSISDNEntry",result:o()}},w=n("moRedirFlow/submitMSISDNAction",(function(t,n){var a=t.window,o=t.msisdn,i=t.extraParams,c=n.getState,l=n.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,t,n,m,f;return r(this,(function(r){switch(r.label){case 0:e=c(),t=e.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,5,,6]),d.advancedInFlow("tallyman.v1-mo-redir","msisdn-submitted",{msisdn:o}),[4,y(a,t,o,i)];case 2:return n=r.sent(),d.advancedInFlow("tallyman.v1-mo-redir","msisdn-submission-success",{msisdn:o}),i&&i.storeMsisdn&&"true"===i.storeMsisdn?[4,u(o).then((function(e){e&&e.data&&e.data.success?d.customEvent("Flow","advance-auto","msisdn-stored-success"):d.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(e){d.customEvent("Flow","advance-auto","msisdn-stored-error",e)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return[2,{type:"MSISDNEntry",result:s({href:n})}];case 5:switch(m=r.sent(),console.warn(m),f=void 0,m.type){case"AlreadySubscribed":f="AlreadySubscribed";break;case"InvalidMSISDN":f="InvalidMSISDN";break;default:f="UnknownError"}return d.recedeInFlow("tallyman.v1-mo-redir","msisdn-submission-failure",{msisdn:o,errorType:"UnknownError"}),[2,l({errorType:f,productUrl:m.productUrl})];case 6:return[2]}}))}))})),g=a({name:"moRedirFlow",initialState:p,reducers:{backToStartAction:function(e){d.recedeInFlow("tallyman.v1-mo-redir","mo-redir-state","requested to change phone number"),e.currentState={type:"MSISDNEntry",result:o()}}},extraReducers:function(e){e.addCase(w.pending,(function(e){e.currentState={type:"MSISDNEntry",result:i()}})).addCase(w.fulfilled,(function(e,r){e.currentState=r.payload})).addCase(w.rejected,(function(e,r){e.currentState={type:"MSISDNEntry",result:c(r.payload)}}))}}),h=g.reducer,I=g.actions.backToStartAction;export{I as backToStartAction,f as moRedirFlowMatch,h as moRedirFlowReducer,w as submitMSISDNAction,m as useMoRedirFlowState};
2
+ //# sourceMappingURL=moRedirFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moRedirFlow.js","sources":["../src/flows/moRedirFlow/hooks/useMoRedirFlowState.ts","../src/flows/moRedirFlow/match.ts","../src/flows/moRedirFlow/api.ts","../src/flows/moRedirFlow/main.ts","../src/flows/moRedirFlow/moRedirFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useMoRedirFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.moRedirFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport { MoRedirFlowCurrentState, MSISDNEntryFailure, MSISDNEntrySuccess } from '../../sharedFlowTypes/MoRedirTypes';\n\nfunction moRedirFlowMatch<R>({\n msisdnEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n}): (state: MoRedirFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n default:\n // TODO - this should be an error or something\n return msisdnEntry(state.result);\n }\n };\n}\n\nexport { moRedirFlowMatch };\n","import { IMSISDNSubmissionResult } from '../../sharedFlowTypes/MoRedirTypes';\n\nconst redirect = async ({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n ip_range_name,\n search,\n extraParamsQs,\n email,\n password\n}: {\n window: Window;\n slug: string;\n country: string;\n msisdn?: string;\n device: string;\n offer: string;\n rockmanId: string;\n ip_range_name?: string;\n search: string;\n extraParamsQs?: string;\n email?: string;\n password?: string;\n}): Promise<IMSISDNSubmissionResult> => {\n const params = new URLSearchParams({\n action: 'redirect',\n slug,\n country,\n device,\n offerId: offer.toString(),\n rockman_id: rockmanId,\n page: encodeURIComponent(window.location.href),\n network_type: ip_range_name ? '' : 'wifi',\n ...(search && { search }),\n ...(window.pac_analytics?.visitor?.page?.includes('agency') && { evinaTi: rockmanId }),\n ...(window.securityProcessId && { securityProcessId: window.securityProcessId }),\n ...(window.languageCode && { language_code: window.languageCode }),\n ...(email && password ? { email, password } : { msisdn }),\n ...(extraParamsQs && { extraParams: extraParamsQs })\n }).toString();\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${params}`;\n\n if (slug.includes('za-mtn-beyondvr-r7')) {\n return {\n success: true,\n rockman_id: rockmanId,\n redirect_url: url\n };\n }\n\n return fetch(url).then((x) => x.json());\n};\n\nexport { redirect };\n","import { IError } from '../../common-types/IError';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport tryGetIPRangeName from '../../ips/tryGetIPRangeName';\nimport {\n IMSISDNSubmissionResult,\n MoRedirFlowState,\n MSISDNEntryFailure,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoRedirTypes';\nimport { IConfig } from '../../sharedFlowTypes/StrategyTypes';\nimport { redirect } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<string> {\n const config: IConfig = { offer: window.pac_analytics.visitor.offer, ...(maybeConfig || {}) };\n return submitMSISDNWithConfig(window, config, internationalMSISDN, extraParams);\n}\n\nexport async function submitMSISDNWithConfig(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: { [key: string]: string }\n): Promise<string> {\n const { slug, country, device, offer } = config;\n const search = window.location.search.substr(1) || '';\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n const msisdn = internationalMSISDN.match(/\\d+/gi).join('');\n const { visitor } = window.pac_analytics;\n const { rockmanId } = visitor;\n\n const ip_range_name = country === 'ci' ? await tryGetIPRangeName(visitor) : null;\n const result: IMSISDNSubmissionResult = await redirect({\n window,\n slug,\n country,\n msisdn,\n device,\n offer,\n rockmanId,\n ip_range_name,\n search,\n extraParamsQs\n });\n\n if (result.success === false) {\n const type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMSISDN';\n const error = new Error(`${type}:\\n${result.message}`) as IError & { type: string };\n error.type = type;\n console.error(error);\n throw error;\n } else {\n return result.redirect_url;\n }\n}\n\nexport const mockedMSISDNEntrySuccess: MoRedirFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({\n href: '/product'\n })\n }\n};\n\nexport const mockedMSISDNEntryFailure: MoRedirFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.Failure<MSISDNEntryFailure, MSISDNEntrySuccess>({\n errorType: 'InvalidMSISDN',\n error: 'Invalid Mobile Number'\n })\n }\n};\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n MoRedirFlowState,\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n MSISDNEntryState,\n MSISDNEntrySuccess\n} from '../../sharedFlowTypes/MoRedirTypes';\nimport { RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport submitMSISDN from './main';\n\nconst initialState: MoRedirFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes, result: MSISDNEntryState}}\n \n * Calls redirec api that returns a redirect url\n * Sets completed stated\n */\nexport const submitMSISDNAction = createAsyncThunk<\n MSISDNEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure;\n }\n>('moRedirFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n\n const { config } = state.strategy.currentState.data;\n\n try {\n // Start Redirect Api Call\n tracker.advancedInFlow('tallyman.v1-mo-redir', 'msisdn-submitted', { msisdn });\n const href = await submitMSISDN(window, config, msisdn, extraParams);\n tracker.advancedInFlow('tallyman.v1-mo-redir', 'msisdn-submission-success', { msisdn });\n // End Redirect Api Call\n\n // Start Store Msisdn\n // if storeMsisdn is true, encrypt msisdn and save it in cookie, localStorage, and zürch\n if (extraParams && extraParams.storeMsisdn && extraParams.storeMsisdn === 'true') {\n await storeMsisdn(msisdn)\n .then((data: any) => {\n if (data && data.data && data.data.success) {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-success');\n } else {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-failed');\n }\n })\n .catch((error) => {\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-stored-error', error);\n });\n }\n // End Store Msisdn\n\n return {\n type: 'MSISDNEntry',\n result: RDS.Success<MSISDNEntryFailure, MSISDNEntrySuccess>({ href })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: MSISDNEntryErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidMSISDN':\n errorType = 'InvalidMSISDN';\n break;\n default:\n errorType = 'UnknownError';\n }\n\n tracker.recedeInFlow('tallyman.v1-mo-redir', 'msisdn-submission-failure', {\n msisdn,\n errorType: 'UnknownError'\n });\n\n return rejectWithValue({\n errorType,\n productUrl: ex.productUrl\n });\n }\n});\n\nconst moRedirFlowSlice = createSlice({\n name: 'moRedirFlow',\n initialState,\n reducers: {\n backToStartAction(state) {\n tracker.recedeInFlow('tallyman.v1-mo-redir', 'mo-redir-state', 'requested to change phone number');\n\n // TODO GO BACK TO IDENTIFY BY MSISDN BASED ON STRATEGY\n state.currentState = { type: 'MSISDNEntry', result: RDS.NothingYet() };\n }\n },\n extraReducers: (builder) => {\n builder\n .addCase(submitMSISDNAction.pending, (state) => {\n state.currentState = { type: 'MSISDNEntry', result: RDS.Loading() };\n })\n .addCase(submitMSISDNAction.fulfilled, (state, action: PayloadAction<MSISDNEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitMSISDNAction.rejected, (state, action: PayloadAction<MSISDNEntryFailure>) => {\n state.currentState = {\n type: 'MSISDNEntry',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: moRedirFlowReducer, actions: moRedirFlowActions } = moRedirFlowSlice;\nexport const { backToStartAction } = moRedirFlowActions;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectMoRedirFlowState = (state: any) => state.moRedirFlow;\n"],"names":["useMoRedirFlowState","useSelector","state","moRedirFlow","currentState","moRedirFlowMatch","_a","msisdnEntry","type","result","redirect","window","slug","country","msisdn","device","offer","rockmanId","ip_range_name","search","extraParamsQs","email","password","params","URLSearchParams","__assign","action","offerId","toString","rockman_id","page","encodeURIComponent","location","href","network_type","_d","_c","_b","pac_analytics","visitor","includes","evinaTi","securityProcessId","languageCode","language_code","extraParams","host","DEV_BASE_URL","url","concat","success","redirect_url","fetch","then","x","json","submitMSISDN","maybeConfig","internationalMSISDN","config","submitMSISDNWithConfig","substr","Object","keys","map","k","join","match","tryGetIPRangeName","sent","message","error","Error","console","initialState","RDS.NothingYet","submitMSISDNAction","createAsyncThunk","getState","rejectWithValue","strategy","data","tracker","advancedInFlow","storeMsisdn","customEvent","catch","RDS.Success","warn","ex_1","errorType","recedeInFlow","productUrl","moRedirFlowSlice","createSlice","name","reducers","backToStartAction","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","RDS.Failure","moRedirFlowReducer","reducer","actions"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{__awaiter as r,__generator as t,__read as e,__assign as n}from"tslib";import{createAsyncThunk as c,createSlice as o}from"@reduxjs/toolkit";import{S as a,L as i,F as u,N as s}from"./RemoteDataState-lcf8PfJd.js";import{u as l,t as d}from"./tracker-DaaILhEr.js";import{b as f}from"./bupperizeCountry-CEtt0MKz.js";import{l as p}from"./loadScriptInnerHtml-BzQm-AFb.js";import{searchToObject as v}from"./searchToObject.js";import"pacman-client";import"uuid";var m=function(r){return r((function(r){return r.oneClickFlow.currentState}))};function y(r){var t=r.getRedirectUrl,e=r.subscribe;return function(r){switch(r.type){case"GET_REDIRECT_URL":default:return t(r.result);case"SUBCRIBE_AJAX":return e(r.result)}}}function _(e){var n=e.currentRedirectUrl,c=e.country;return r(this,void 0,void 0,(function(){var r;return t(this,(function(t){switch(t.label){case 0:return"pe"!==c.toLowerCase()?[3,3]:[4,new Promise((function(r){var t=setInterval((function(){window.Empello&&(clearInterval(t),r())}),100)}))];case 1:return t.sent(),"undefined"!=typeof window&&window.Empello?[4,new Promise((function(r){var t;null===(t=window.Empello)||void 0===t||t.getToken((function(t){r(t)}))}))]:[3,3];case 2:return r=t.sent(),[2,l(n,"empello_token",r)];case 3:return[2,n]}}))}))}var w=function(r){var t=r,e="ouisys_callback_function".concat(Math.floor(1e4*Math.random()));return new Promise((function(n,c){window[e]=function(r){n(r)},t+=-1===t.indexOf("?")?"?":"&",t+="jsonp=".concat(e);var o=document.createElement("script");o.src=t,o.id=e,document.body.appendChild(o),o.onerror=function(){c(new Error("JSONP request to ".concat(r," failed")))}}))},E=function(n){var c=n.window,o=n.maybeConfig,a=n.extraParams;return r(void 0,void 0,void 0,(function(){var r,n,i,u,s,l,d,m,y,_,E,h,b,g,U,S,k;return t(this,(function(t){switch(t.label){case 0:if(void 0!==c)return[3,1];throw"javascript: console.error('SSR'); void 6";case 1:return r=o.country,n=o.slug,i=o.queryString,u=o.apiAction,s="de-ads.tallymans.com",l=void 0!==c&&c.tid?c.tid:"",d=c.pac_analytics.visitor.offer,m=c.location.search.substr(1),y=(m&&m.length>0?[m]:[]).concat((i||[]).map((function(r){var t=e(r,2),n=t[0],c=t[1];return"".concat(n,"=").concat(c)}))).join("&"),Object.keys(a).forEach((function(r,t){y.length>0&&(y+="&"),y="".concat(function(r,t,e){void 0===e&&(e="");var n=new RegExp("\\b(".concat(t,"=).*?(&|#|$)"));if(r.search(n)>=0)return r.replace(n,"$1".concat(e,"$2"));var c=r.replace(/[?#]$/,"");return"".concat(c+t,"=").concat(e,"&")}(y,r,a[r])).concat(1===t?"&":"")})),_=c.pac_analytics.visitor.rockmanId,"identify-user"!==u?[3,3]:(h=c.DEV_BASE_URL||"",g="".concat(h,"/tallyman/v1/?action=identify-user&country=").concat(f(r),"&slug=").concat(n,"&device=").concat("smart","&offerId=").concat(d,"&rockman_id=").concat(_,"&sam_evina_tid=").concat(l,"&").concat(y),[4,w(g)]);case 2:if(!1===(E=t.sent()).success)throw(S=new Error("Error in getRedirectUrl() identify-user action:\n".concat(E.message))).type="NotOn3g",S;return[2,{subscription_url:E.subscription_url||E.redirect_url,action:function(){return R(E.subscription_url)}}];case 3:return"he"!==u?[3,5]:(h=c.DEV_BASE_URL||"",g="".concat(h,"/tallyman/v1/?action=he&country=").concat(f(r),"&slug=").concat(n,"&device=").concat("smart","&offerId=").concat(d,"&rockman_id=").concat(_,"&sam_evina_tid=").concat(l,"&").concat(y),[4,fetch(g).then((function(r){return r.json()}))]);case 4:if(!1===(U=t.sent()).success)throw(S=new Error("Error in getRedirectUrl() identify-user action:\n".concat(U.message))).type="NotOn3g",S;return p(U.source),[2,{redirect_url:U.redirectUrlWithReplacedUniqid}];case 5:if("om"===r.toLowerCase()){if("false"===(b=v(c)).success)throw(S=new Error("Error in getRedirectUrl() identify-user")).type="NotOn3g",S;return[2,{redirect_url:b.redirect_url||b.url}]}return g="https://".concat(s,"/tallyman/v1/?action=redirect&country=").concat(f(r),"&slug=").concat(n,"&device=").concat("smart","&offerId=").concat(d,"&rockman_id=").concat(_,"&page=").concat(encodeURIComponent(null===(k=null==c?void 0:c.location)||void 0===k?void 0:k.href),"&sam_evina_tid=").concat(l,"&").concat(y),[4,fetch(g).then((function(r){return r.json()}))];case 6:if(!1===(U=t.sent()).success)throw(S=new Error("Error in getRedirectUrl() identify-user action:\n".concat(U.message))).type="NotOn3g",S;return[2,{redirect_url:U.redirect_url}];case 7:return[2]}}))}))},R=function(e,n){return r(void 0,void 0,void 0,(function(){var r,c,o,a,i;return t(this,(function(t){switch(t.label){case 0:return r="undefined"!=typeof window&&window.tid?window.tid:"",c=n?"&".concat(Object.keys(n).map((function(r){return"".concat(r,"=").concat(n[r])})).join("&")):"",o="undefined"!=typeof window&&!0===window.shouldBlock?"&is-clean-traffic=false":"&is-clean-traffic=true",[4,fetch("".concat(e,"&sam_evina_tid=").concat(r).concat(o).concat(c)).then((function(r){return r.json()}))];case 1:if(!1===(a=t.sent()).success)throw(i=new Error("Error in subscribe() one-click-subscribe action:\n".concat(a.message))).type="ALREADY SUBSCRIBED"===a.message?"AlreadySubscribed":"SubscriptionError",i.productUrl=a.product_url?a.product_url:"",i;return[2,a.product_url||a.redirect_url]}}))}))},h=function(n,c,o){return r(void 0,void 0,void 0,(function(){var r,a,i,u,s,l,d,p,v,m;return t(this,(function(t){return void 0===n?[2,"javascript: console.error('SSR'); void 6"]:(r=c.country,a=c.slug,i=c.queryString,u=n.pac_analytics.visitor.offer,s=n.location.search.substr(1),l=(s&&s.length>0?[s]:[]).concat((i||[]).map((function(r){var t=e(r,2),n=t[0],c=t[1];return"".concat(n,"=").concat(c)}))).join("&"),d=o?"&".concat(Object.keys(o).map((function(r){return"".concat(r,"=").concat(o[r])})).join("&")):"",p=n.location.href.split("/")[3].split("?")[0],v=void 0!==n&&n.tid?n.tid:"",m=n.DEV_BASE_URL_BUPPER||"",[2,"".concat(m,"/").concat(f(r),"/").concat(a,"?offer=").concat(u,"&atmobirun=1&rockman_id=").concat(n.pac_analytics.visitor.rockmanId,"&redirPixels=").concat(n.location.host,"&sam_evina_tid=").concat(v,"&x-xcid=").concat(p).concat(d,"&").concat(l)])}))}))},b={currentState:{type:"GET_REDIRECT_URL",result:s()}},g=c("oneClickFlow/getRedirectUrlAction",(function(e,c){var o=e.window,i=e.isGetRedirectBupperWay,u=e.extraParams,l=e.autoRedirect,f=c.getState,p=c.rejectWithValue;return r(void 0,void 0,void 0,(function(){var r,e,c,v,m,y,w,R,b,g,U;return t(this,(function(t){switch(t.label){case 0:r=f(),e=r.strategy.currentState.data,c=e.config,v=e.subscription_url,m=e.redirect_url,y=e.operator,t.label=1;case 1:return t.trys.push([1,8,,9]),!0!==i?[3,4]:[4,h(o,c,n(n({},y&&{operator:y}),u))];case 2:return[4,_({currentRedirectUrl:t.sent(),country:c.country})];case 3:return w=t.sent(),d.customEvent("Flow","advance-auto","redirect-success",{redirect_url:w}),!0!==o.isAutoFraudScreener?!0===l?(d.advancedInFlow("tallyman.v1-one-click","click-redirect-url",{redirect_url:w}),setTimeout((function(){o.location.href=w}),0),[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:w})}]):[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:w})}]:(R=setInterval((function(){o.isEvinaSessionChecked&&(clearInterval(R),d.advancedInFlow("tallyman.v1-one-click","click-redirect-url",{redirect_url:w}),setTimeout((function(){o.location.href=w}),0))}),100),[3,7]);case 4:return v&&null!=v?[2,{type:"SUBCRIBE_AJAX",result:s()}]:m?(d.customEvent("Flow","advance-auto","redirect-success",{redirect_url:m}),[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:m})}]):(d.advancedInFlow("tallyman.v1-one-click","get-redirect-url"),[4,E({window:o,maybeConfig:c,extraParams:n(n({},y&&{operator:y}),u)})]);case 5:return b=t.sent().redirect_url,d.advancedInFlow("tallyman.v1-one-click","get-redirect-url-success"),[4,_({currentRedirectUrl:b,country:c.country})];case 6:if(g=t.sent(),d.customEvent("Flow","advance-auto","redirect-success",{updated_redirect_url:g}),!0!==l&&!0!==o.isAutoFraudScreener)return[2,{type:"GET_REDIRECT_URL",result:a({redirectUrl:g})}];d.advancedInFlow("tallyman.v1-one-click","click-redirect-url",{updated_redirect_url:g}),setTimeout((function(){o.location.href=g}),0),t.label=7;case 7:return[3,9];case 8:return U=t.sent(),console.warn(U),d.recedeInFlow("tallyman.v1-one-click","get-redirect-url-failure",{errorType:"UnknownError"}),[2,p({errorType:"UnknownError",error:U.toString()})];case 9:return[2]}}))}))})),U=c("oneClickFlow/subscribeUrlAction",(function(e,n){var c=e.window,o=e.autoRedirect,i=e.extraParams,u=n.getState,s=n.rejectWithValue;return r(void 0,void 0,void 0,(function(){var r,e,n,l;return t(this,(function(t){switch(t.label){case 0:r=u(),e=r.strategy.currentState.data.subscription_url,t.label=1;case 1:return t.trys.push([1,4,,5]),d.advancedInFlow("tallyman.v1-one-click","click-subscribe"),[4,R(e,i)];case 2:return[4,t.sent()];case 3:return n=t.sent(),d.advancedInFlow("tallyman.v1-one-click","click-subscribe-success",{product_url:n}),!0===o&&(d.customEvent("Flow","advance-auto","click-product-url",{product_url:n}),c.location.href=n),[2,{type:"SUBCRIBE_AJAX",result:a({productUrl:n})}];case 4:return l=t.sent(),console.warn(l),d.recedeInFlow("tallyman.v1-one-click","click-subscribe-failure",{error:l.toString()}),[2,s({errorType:"UnknownError",error:l.toString(),productUrl:l.productUrl})];case 5:return[2]}}))}))})),S=o({name:"oneClickFlow",initialState:b,reducers:{},extraReducers:function(r){r.addCase(g.pending,(function(r){r.currentState={type:"GET_REDIRECT_URL",result:i()}})).addCase(g.fulfilled,(function(r,t){r.currentState=t.payload})).addCase(g.rejected,(function(r,t){r.currentState={type:"GET_REDIRECT_URL",result:u(t.payload)}})).addCase(U.pending,(function(r){r.currentState={type:"SUBCRIBE_AJAX",result:i()}})).addCase(U.fulfilled,(function(r,t){r.currentState=t.payload})).addCase(U.rejected,(function(r,t){r.currentState={type:"SUBCRIBE_AJAX",result:u(t.payload)}}))}}),k=S.reducer;S.actions;export{g as getRedirectUrlAction,y as oneClickFlowMatch,k as oneClickFlowReducer,U as subscribeUrlAction,m as useOneClickFlowState};
2
+ //# sourceMappingURL=oneClickFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oneClickFlow.js","sources":["../src/flows/oneClickFlow/hooks/useOneClickFlowState.ts","../src/flows/oneClickFlow/match.ts","../src/utilities/addEmpelloToken.ts","../src/utilities/replaceUrlParam.ts","../src/flows/oneClickFlow/main.ts","../src/flows/oneClickFlow/oneClickFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useOneClickFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.oneClickFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n IGETREDIRECTURLFailure,\n IGETREDIRECTURLSuccess,\n OneClickFlowCurrentState,\n SubscribeFailure,\n SubscribeSuccess\n} from '../../sharedFlowTypes/OneClickTypes';\n\nfunction oneClickFlowMatch<R>({\n getRedirectUrl,\n subscribe\n}: {\n getRedirectUrl: (rds: RDS.RemoteDataState<IGETREDIRECTURLFailure, IGETREDIRECTURLSuccess>) => R;\n subscribe?: (rds: RDS.RemoteDataState<SubscribeFailure, SubscribeSuccess>) => R;\n}): (state: OneClickFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'GET_REDIRECT_URL':\n return getRedirectUrl(state.result);\n case 'SUBCRIBE_AJAX':\n return subscribe(state.result);\n default:\n // TODO - this should be an error or something\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return getRedirectUrl(state.result);\n }\n };\n}\n\nexport { oneClickFlowMatch };\n","import { updateUrlParameter } from '../pacman/queryString';\n\nexport async function addEmpelloToken({\n currentRedirectUrl,\n country\n}: {\n currentRedirectUrl: string;\n country: string;\n}) {\n if (country.toLowerCase() === 'pe') {\n // Empello script is added on server\n\n await new Promise<void>((resolve) => {\n // check if empello script is loaded and available\n const checkEmpelloAvailability = setInterval(() => {\n if (window.Empello) {\n clearInterval((checkEmpelloAvailability as unknown) as number);\n resolve();\n }\n }, 100);\n });\n if (typeof window !== 'undefined' && window.Empello) {\n // call getToken function from empello\n const token = await new Promise<string>((resolve) => {\n window.Empello?.getToken((empelloToken: string) => {\n resolve(empelloToken);\n });\n });\n\n const url = updateUrlParameter(currentRedirectUrl, 'empello_token', token);\n return url;\n }\n }\n\n return currentRedirectUrl;\n}\n","export const replaceUrlParam = (url: string, paramName: string, paramValue = '') => {\n const pattern = new RegExp(`\\\\b(${paramName}=).*?(&|#|$)`);\n if (url.search(pattern) >= 0) {\n return url.replace(pattern, `$1${paramValue}$2`);\n }\n const newUrl = url.replace(/[?#]$/, '');\n return `${newUrl + paramName}=${paramValue}&`;\n};\n","import { IError } from '../../common-types/IError';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n IIDentifyUserResult,\n ILinkExtraParams,\n ISubscribeResult,\n OneClickFlowState\n} from '../../sharedFlowTypes/OneClickTypes';\nimport { IConfig } from '../../sharedFlowTypes/StrategyTypes';\nimport { bupperizeCountry } from '../../utilities/bupperizeCountry';\nimport { loadScriptInnerHtml } from '../../utilities/loadScriptInnerHtml';\nimport { replaceUrlParam } from '../../utilities/replaceUrlParam';\nimport { searchToObject } from '../../utilities/searchToObject';\n\nexport const additionalQueryString = `msisdnSubmitted=Y&legalCheckbox=Y&incentivizedCheckbox=Y&op_confirmCheckbox=N`;\n\nconst fetchJsonp: <T>(_url: string) => Promise<T> = (_url: string) => {\n let url = _url;\n const ouisys_callback_function = `ouisys_callback_function${Math.floor(Math.random() * 10000)}`;\n return new Promise((resolve, reject) => {\n // @ts-ignore\n window[ouisys_callback_function] = (arg) => {\n resolve(arg);\n };\n\n url += url.indexOf('?') === -1 ? '?' : '&';\n url += `jsonp=${ouisys_callback_function}`;\n const script = document.createElement('script');\n script.src = url;\n script.id = ouisys_callback_function;\n document.body.appendChild(script);\n\n // Caught if got 404/500\n script.onerror = () => {\n reject(new Error(`JSONP request to ${_url} failed`));\n };\n });\n};\n\nexport const getRedirectUrl = async ({\n window,\n maybeConfig,\n extraParams\n}: {\n window: Window;\n maybeConfig: IConfig;\n extraParams?: ILinkExtraParams;\n}): Promise<{\n subscription_url?: string;\n redirect_url?: string;\n action?: () => Promise<string>;\n}> => {\n if (typeof window === 'undefined') {\n // eslint-disable-next-line no-throw-literal, no-script-url\n throw \"javascript: console.error('SSR'); void 6\";\n } else {\n const { country, slug, queryString, apiAction } = maybeConfig;\n const customDomain = 'de-ads.tallymans.com';\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const { offer } = window.pac_analytics.visitor;\n const s = window.location.search.substr(1);\n // @ts-ignore\n let search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(([k, v]) => `${k}=${v}`)).join('&');\n\n Object.keys(extraParams).forEach((element, index) => {\n // Check if search already has query parameters\n if (search.length > 0) {\n // If there are existing parameters, add '&' before appending the new one\n search += '&';\n }\n search = `${replaceUrlParam(search, element, extraParams[element])}${index === 1 ? '&' : ''}`;\n });\n const { rockmanId } = window.pac_analytics.visitor;\n\n if (apiAction === 'identify-user') {\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?action=identify-user&country=${bupperizeCountry(\n country\n )}&slug=${slug}&device=${'smart'}&offerId=${offer}&rockman_id=${rockmanId}&sam_evina_tid=${evinaTid}&${search}`;\n const result = await fetchJsonp<IIDentifyUserResult>(url);\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return {\n subscription_url: result.subscription_url || result.redirect_url,\n action: () => subscribe(result.subscription_url)\n };\n }\n } else if (apiAction === 'he') {\n const host = (window as Window).DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?action=he&country=${bupperizeCountry(\n country\n )}&slug=${slug}&device=${'smart'}&offerId=${offer}&rockman_id=${rockmanId}&sam_evina_tid=${evinaTid}&${search}`;\n const result = await fetch(url).then((x) => x.json());\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n loadScriptInnerHtml(result.source);\n return { redirect_url: result.redirectUrlWithReplacedUniqid };\n }\n } else {\n if (country.toLowerCase() === 'om') {\n const searchObj = searchToObject(window) as {\n redirect_url: string;\n url: string;\n msisdn: string;\n success: 'true' | 'false';\n };\n if (searchObj.success === 'false') {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return { redirect_url: searchObj.redirect_url || searchObj.url };\n }\n }\n const url = `https://${customDomain}/tallyman/v1/?action=redirect&country=${bupperizeCountry(\n country\n )}&slug=${slug}&device=${'smart'}&offerId=${offer}&rockman_id=${rockmanId}&page=${encodeURIComponent(\n window?.location?.href\n )}&sam_evina_tid=${evinaTid}&${search}`;\n const result = await fetch(url).then((x) => x.json());\n\n if (result.success === false) {\n const identifyError = new Error(`Error in getRedirectUrl() identify-user action:\\n${result.message}`) as IError;\n identifyError.type = 'NotOn3g';\n throw identifyError;\n } else {\n return { redirect_url: result.redirect_url };\n }\n }\n }\n};\n\nexport const subscribe: (url: string, extraParams?: IHash) => Promise<string> = async (\n url: string,\n extraParams?: IHash\n) => {\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n\n const isCleanTraffic =\n typeof window !== 'undefined' && window.shouldBlock === true ? '&is-clean-traffic=false' : '&is-clean-traffic=true';\n\n const result: ISubscribeResult = await fetch(\n `${url}&sam_evina_tid=${evinaTid}${isCleanTraffic}${extraParamsQs}`\n ).then((x) => x.json());\n\n if (result.success === false) {\n const subscribeError = new Error(`Error in subscribe() one-click-subscribe action:\\n${result.message}`) as {\n productUrl: string;\n } & IError;\n subscribeError.type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'SubscriptionError';\n subscribeError.productUrl = result.product_url ? result.product_url : '';\n throw subscribeError;\n } else {\n return result.product_url || result.redirect_url;\n }\n};\n\nexport const getRedirectUrlBupperWay = async (\n window: Window,\n maybeConfig: IConfig,\n extraParams?: ILinkExtraParams\n): Promise<string> => {\n if (typeof window === 'undefined') {\n // eslint-disable-next-line no-script-url\n return \"javascript: console.error('SSR'); void 6\";\n }\n const { country, slug, queryString } = maybeConfig;\n const { offer } = window.pac_analytics.visitor;\n const s = window.location.search.substr(1);\n // @ts-ignore\n const search = (!!s && s.length > 0 ? [s] : []).concat((queryString || []).map(([k, v]) => `${k}=${v}`)).join('&');\n const extraParamsQs = !extraParams\n ? ''\n : `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n\n // one click flow must use http not https\n const xcid = window.location.href.split('/')[3].split('?')[0];\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const host = (window as Window).DEV_BASE_URL_BUPPER || '';\n return `${host}/${bupperizeCountry(country)}/${slug}?offer=${offer}&atmobirun=1&rockman_id=${\n window.pac_analytics.visitor.rockmanId\n }&redirPixels=${window.location.host}&sam_evina_tid=${evinaTid}&x-xcid=${xcid}${extraParamsQs}&${search}`;\n};\n\nexport const mockedRedirectUrlSuccessState: OneClickFlowState = {\n currentState: {\n type: 'GET_REDIRECT_URL',\n // @ts-ignore\n result: RDS.Success<IGETREDIRECTURLFailure, IGETREDIRECTURLSuccess>({ redirectUrl: '/product' })\n }\n};\n\nexport const mockedSubscribeAjaxState: OneClickFlowState = {\n currentState: {\n type: 'SUBCRIBE_AJAX',\n // @ts-ignore\n result: RDS.NothingYet()\n }\n};\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IHash } from '../../common-types/IHash';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n AJAXSUBSCRIBEState,\n GETREDIRECTUrlState,\n IGETREDIRECTURLFailure,\n OneClickFlowState,\n SubscribeFailure\n} from '../../sharedFlowTypes/OneClickTypes';\nimport { RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { addEmpelloToken } from '../../utilities/addEmpelloToken';\nimport { tracker } from '../../utilities/tracker';\nimport { getRedirectUrl, getRedirectUrlBupperWay, subscribe } from './main';\n\nconst initialState: OneClickFlowState = {\n currentState: {\n type: 'GET_REDIRECT_URL',\n result: RDS.NothingYet()\n }\n};\n\ninterface GetRedirectUrlArgs {\n window: Window;\n extraParams?: IHash;\n autoRedirect?: boolean;\n isGetRedirectBupperWay?: boolean;\n ignoreUrlParams?: boolean;\n}\n/**\n * getRedirectUrlAction\n * @returns {type: ' 'oneClickFlow/getRedirectUrlAction', payload: {type: PossibleTypes, result: GETREDIRECTUrlState}}\n \n * Calls redirect api to get a redirect url for the user to be redirected to\n * Can also create a bupper redirect url\n */\nexport const getRedirectUrlAction = createAsyncThunk<\n GETREDIRECTUrlState,\n GetRedirectUrlArgs,\n {\n rejectValue: IGETREDIRECTURLFailure;\n }\n>(\n 'oneClickFlow/getRedirectUrlAction',\n // @ts-ignore\n async ({ window, isGetRedirectBupperWay, extraParams, autoRedirect }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n\n const { config, subscription_url, redirect_url, operator } = state.strategy.currentState.data;\n try {\n if (isGetRedirectBupperWay === true) {\n const redirectUrl = await getRedirectUrlBupperWay(window, config, {\n ...(operator && { operator }),\n ...extraParams\n });\n\n // add empellow token for specific country\n const updatedRedirectUrl = await addEmpelloToken({\n currentRedirectUrl: redirectUrl,\n country: config.country\n });\n\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: updatedRedirectUrl });\n if (window.isAutoFraudScreener === true) {\n // Wait for Evina to Check Fraud First\n const timer = setInterval(() => {\n if (window.isEvinaSessionChecked) {\n clearInterval(timer);\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-redirect-url', {\n redirect_url: updatedRedirectUrl\n });\n setTimeout(() => {\n window.location.href = updatedRedirectUrl;\n }, 0);\n }\n }, 100);\n } else if (autoRedirect === true) {\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-redirect-url', { redirect_url: updatedRedirectUrl });\n setTimeout(() => {\n window.location.href = updatedRedirectUrl;\n }, 0);\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updatedRedirectUrl\n })\n };\n } else {\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updatedRedirectUrl\n })\n };\n }\n } else {\n if (subscription_url && subscription_url != null) {\n return {\n type: 'SUBCRIBE_AJAX',\n result: RDS.NothingYet()\n };\n }\n if (redirect_url) {\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url });\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: redirect_url\n })\n };\n }\n\n tracker.advancedInFlow('tallyman.v1-one-click', 'get-redirect-url');\n const { redirect_url: newRedirectUrl } = await getRedirectUrl({\n window,\n maybeConfig: config,\n extraParams: {\n ...(operator && { operator }),\n ...extraParams\n }\n });\n tracker.advancedInFlow('tallyman.v1-one-click', 'get-redirect-url-success');\n\n // add empellow token for specific country\n const updated_redirect_url = await addEmpelloToken({\n currentRedirectUrl: newRedirectUrl,\n country: config.country\n });\n\n tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { updated_redirect_url });\n\n if (autoRedirect === true || window.isAutoFraudScreener === true) {\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-redirect-url', { updated_redirect_url });\n\n setTimeout(() => {\n // eslint-disable-next-line camelcase\n window.location.href = updated_redirect_url;\n }, 0);\n } else {\n return {\n type: 'GET_REDIRECT_URL',\n result: RDS.Success({\n redirectUrl: updated_redirect_url\n })\n };\n }\n }\n } catch (ex) {\n console.warn(ex);\n tracker.recedeInFlow('tallyman.v1-one-click', 'get-redirect-url-failure', {\n errorType: 'UnknownError'\n });\n return rejectWithValue({\n errorType: 'UnknownError',\n error: ex.toString()\n });\n }\n }\n);\n\n/**\n * subscribeUrlAction\n * @returns {type: ' 'oneClickFlow/submitMSISDNAction', payload: {type: PossibleTypes.MO, result: PINEntryState}}\n \n * Calls oneclick subscripe api to subscribe the user\n * Returns a product url\n */\ninterface OneClickSubscribeArgs {\n window: Window;\n autoRedirect?: boolean;\n extraParams?: IHash;\n}\nexport const subscribeUrlAction = createAsyncThunk<\n AJAXSUBSCRIBEState,\n OneClickSubscribeArgs,\n {\n rejectValue: SubscribeFailure;\n }\n>('oneClickFlow/subscribeUrlAction', async ({ window, autoRedirect, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n\n const { subscription_url } = state.strategy.currentState.data;\n try {\n // Start Call to Subscribe ajax\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-subscribe');\n const product_url = await await subscribe(subscription_url, extraParams);\n tracker.advancedInFlow('tallyman.v1-one-click', 'click-subscribe-success', { product_url });\n // End Call to Subscribe ajax\n\n if (autoRedirect === true) {\n tracker.customEvent('Flow', 'advance-auto', 'click-product-url', { product_url });\n window.location.href = product_url;\n }\n return {\n type: 'SUBCRIBE_AJAX',\n result: RDS.Success({\n productUrl: product_url\n })\n };\n } catch (ex) {\n console.warn(ex);\n\n tracker.recedeInFlow('tallyman.v1-one-click', 'click-subscribe-failure', { error: ex.toString() });\n\n return rejectWithValue({\n errorType: 'UnknownError',\n error: ex.toString(),\n productUrl: ex.productUrl\n });\n }\n});\n\nconst oneClickFlowSlice = createSlice({\n name: 'oneClickFlow',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(getRedirectUrlAction.pending, (state) => {\n state.currentState = { type: 'GET_REDIRECT_URL', result: RDS.Loading() };\n })\n .addCase(getRedirectUrlAction.fulfilled, (state, action: PayloadAction<GETREDIRECTUrlState>) => {\n state.currentState = action.payload;\n })\n .addCase(getRedirectUrlAction.rejected, (state, action: PayloadAction<IGETREDIRECTURLFailure>) => {\n state.currentState = {\n type: 'GET_REDIRECT_URL',\n result: RDS.Failure(action.payload)\n };\n })\n .addCase(subscribeUrlAction.pending, (state) => {\n state.currentState = { type: 'SUBCRIBE_AJAX', result: RDS.Loading() };\n })\n .addCase(subscribeUrlAction.fulfilled, (state, action: PayloadAction<AJAXSUBSCRIBEState>) => {\n state.currentState = action.payload;\n })\n .addCase(subscribeUrlAction.rejected, (state, action: PayloadAction<SubscribeFailure>) => {\n state.currentState = {\n type: 'SUBCRIBE_AJAX',\n result: RDS.Failure(action.payload)\n };\n });\n }\n});\n\n// Export reducers and actions\nexport const { reducer: oneClickFlowReducer, actions: oneClickFlowActions } = oneClickFlowSlice;\n\n// If you have selectors or thunks related to this slice, export them as named exports as well\nexport const selectOneClickFlowState = (state: any) => state.oneClickFlow;\n"],"names":["useOneClickFlowState","useSelector","state","oneClickFlow","currentState","oneClickFlowMatch","_a","getRedirectUrl","subscribe","type","result","addEmpelloToken","currentRedirectUrl","country","toLowerCase","Promise","resolve","checkEmpelloAvailability","setInterval","window","Empello","clearInterval","_b","sent","getToken","empelloToken","token","updateUrlParameter","fetchJsonp","_url","url","ouisys_callback_function","concat","Math","floor","random","reject","arg","indexOf","script","document","createElement","src","id","body","appendChild","onerror","Error","maybeConfig","extraParams","slug","queryString","apiAction","customDomain","evinaTid","tid","offer","pac_analytics","visitor","s","location","search","substr","search_1","length","map","__read","k","v","join","Object","keys","forEach","element","index","paramName","paramValue","pattern","RegExp","replace","newUrl","replaceUrlParam","rockmanId","host","DEV_BASE_URL","bupperizeCountry","result_1","_c","success","identifyError","message","subscription_url","redirect_url","action","fetch","then","x","json","loadScriptInnerHtml","source","redirectUrlWithReplacedUniqid","searchObj","searchToObject","encodeURIComponent","href","__awaiter","extraParamsQs","isCleanTraffic","shouldBlock","subscribeError","productUrl","product_url","getRedirectUrlBupperWay","xcid","split","DEV_BASE_URL_BUPPER","initialState","RDS.NothingYet","getRedirectUrlAction","createAsyncThunk","isGetRedirectBupperWay","autoRedirect","getState","rejectWithValue","strategy","data","config","operator","_d","updatedRedirectUrl_1","tracker","customEvent","isAutoFraudScreener","advancedInFlow","setTimeout","RDS.Success","redirectUrl","timer_1","isEvinaSessionChecked","__assign","newRedirectUrl","updated_redirect_url_1","updated_redirect_url","console","warn","ex_1","recedeInFlow","errorType","error","toString","subscribeUrlAction","ex_2","oneClickFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","RDS.Failure","oneClickFlowReducer","reducer","actions"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{__awaiter as t,__generator as r,__read as e,__assign as n}from"tslib";import{createAsyncThunk as i,createSlice as a}from"@reduxjs/toolkit";import o from"awesome-phonenumber";import{N as c,S as s,L as u,F as d}from"./RemoteDataState-lcf8PfJd.js";import{c as l,P as p}from"./strategySlice-CtjrhCrS.js";import{s as v}from"./storeMsisdn-Cjq8_qYH.js";import{t as f}from"./tracker-DaaILhEr.js";import{b as m}from"./bupperizeCountry-CEtt0MKz.js";import{l as y,r as S,a as w}from"./helpers-xPhGBX-B.js";import{l as h}from"./loadScriptInnerHtml-BzQm-AFb.js";import{searchToObject as I}from"./searchToObject.js";import"./getConfig.js";import"./tryGetIPRangeName-QW-9NgzE.js";import"pacman-client";import"uuid";var b=function(t){return t((function(t){return t.pinFlow.currentState}))};function g(t){var r=t.msisdnEntry,e=t.pinEntry;return function(t){switch(t.type){case"MSISDNEntry":return r(t.result);case"PINEntry":return e(t.result,t.data);default:throw new Error("Invalid State")}}}var _=function(t){return"be"===t?"undefined"!=typeof window&&!0===window.shouldBlock?"&is-clean-traffic=false":"&is-clean-traffic=true":""},E=function(n){var i=n.window,a=n.country,o=n.slug,c=n.device,s=n.offer,u=n.msisdn,d=n.rockmanId,l=n.extraParams,p=n.search,v=n.uniqid,f=n.evinaTid;return t(void 0,void 0,void 0,(function(){var t,n,m,y,S,w,h;return r(this,(function(r){return t=_(a),n="&".concat(Object.keys(l).map((function(t){return"".concat(t,"=").concat(l[t])})).join("&")),m={action:"trigger-pin",country:a,slug:o,device:c,offerId:s,msisdn:u,rockman_id:d,sam_evina_tid:f,page:encodeURIComponent(null===(h=null==i?void 0:i.location)||void 0===h?void 0:h.href),language_code:i.languageCode||"",antifraud_id:i.antifraud_id||"",partner_transaction_id:i.partner_transaction_id||"",partner_timestamp:i.partner_timestamp||"",partner_cid:i.partner_cid||"",uniqid:v||""},y=Object.entries(m).filter((function(t){var r=e(t,2);return r[0],r[1]})).map((function(t){var r=e(t,2),n=r[0],i=r[1];return"".concat(n,"=").concat(i)})).join("&"),S=i.DEV_BASE_URL||"",w="".concat(S,"/tallyman/v1/?").concat(y).concat(t).concat(n,"&").concat(p),[2,fetch(w).then((function(t){return t.json()}))]}))}))},k=function(n){var i=n.window,a=n.country,o=n.slug,c=n.device,s=n.offer,u=n.rockmanId,d=n.pin,l=n.extraParams,p=n.uniqid,v=n.evinaTid;return t(void 0,void 0,void 0,(function(){var t,n,f,y,S,w,h;return r(this,(function(r){return t=_(a),n="&".concat(Object.keys(l).map((function(t){return"".concat(t,"=").concat(l[t])})).join("&")),f={action:"verify-pin",country:m(a),slug:o,device:c,offerId:s,rockman_id:u,pin:d,page:encodeURIComponent(null===(h=null==i?void 0:i.location)||void 0===h?void 0:h.href),language_code:i.languageCode||"",antifraud_id:i.antifraud_id||"",ClickID:i.antifraud_click_id||"",partner_cid:i.partner_cid||"",sam_evina_tid:v,uniqid:p},y=Object.entries(f).filter((function(t){var r=e(t,2);return r[0],r[1]})).map((function(t){var r=e(t,2),n=r[0],i=r[1];return"".concat(n,"=").concat(i)})).join("&"),S=i.DEV_BASE_URL||"",w="".concat(S,"/tallyman/v1/?").concat(y).concat(t).concat(n),[2,fetch(w).then((function(t){return t.json()}))]}))}))},U=function(e){var i=e.window,a=e.country,o=e.slug,c=e.device,s=e.offer,u=e.rockmanId,d=e.operator,l=e.uniqid;return t(void 0,void 0,void 0,(function(){var t,e,p,v,f;return r(this,(function(r){return t=i.location.href,e=i.pac_analytics.visitor.ip,p=new URLSearchParams(n(n({action:"mcp-shield",country:a,slug:o,device:c,offerId:s.toString(),rockman_id:u,client_lpu:t},d&&{operator:d}),l&&{uniqid:l})),e&&p.append("client_ip",e),v=i.DEV_BASE_URL||"",f="".concat(v,"/tallyman/v1/?").concat(p.toString()),[2,fetch(f).then((function(t){return t.json()}))]}))}))};function N(e,i,a,o){return t(this,void 0,void 0,(function(){var t;return r(this,(function(r){return!0===(t=n({offer:e.pac_analytics.visitor.offer},i||{})).automaticallySubmitAllOperators&&t.operators&&t.operators.length>0?[2,A(e,t,a,t.operators,o)]:[2,j(e,t,a,o)]}))}))}var D="";function j(e,n,i,a){return t(this,void 0,void 0,(function(){var t,o,c,s,u,d,l,p,v,f,m,y,S,w,b,g,_,k;return r(this,(function(r){switch(r.label){case 0:if(!i)throw(t=new Error("Error in submitMSISDN() trigger-pin action")).type="InvalidMSISDN",t;return o=a||{},c=!1,"true"===(null==(s=I(e))?void 0:s.success)&&"1"===s["msisdn-alias"]&&(o["skip-validation"]="1"),"1"===o["skip-validation"]&&(c=!0),u=c?i:i.match(/\d+/gi).join(""),d=e.pac_analytics.visitor.rockmanId,l=n.slug,p=n.country,v=n.device,f=n.offer,m=-1===e.location.search.indexOf("redirect-back=1")&&e.location.search.substr(1)||"",y=D&&""!==D?"&mcpUniqid=".concat(D):"",S=void 0!==e&&e.tid?e.tid:"",[4,E({window:e,country:p,slug:l,device:v,offer:f,msisdn:u,rockmanId:d,extraParams:o,search:m,uniqid:y,evinaTid:S})];case 1:if(!1!==(w=r.sent()).success)return[3,2];switch(b=new Error("Error in submitMSISDN() trigger-pin action:\n".concat(w.message)),w.message){case"ALREADY SUBSCRIBED":b.type="AlreadySubscribed";break;case"INVALID MSISDN":b.type="InvalidMSISDN";break;default:b.type=null}throw b.productUrl=w.product_url?w.product_url:"",console.error(b),b;case 2:if(e.operator=w.operator,g={kw:{kw_viva:"kw_viva"},k2:{k2_viva:"k2_viva"},bh:{bh_viva:"bh_viva"}},!(p&&w.operator&&(g[p.toLowerCase()]&&g[p.toLowerCase()][w.operator.toLowerCase()]||"iq"===p.toLowerCase()))||e.isCallBlockApi||e.Empello)return[3,6];r.label=3;case 3:return r.trys.push([3,5,,6]),[4,U({window:e,country:p,slug:l,device:v,offer:f,rockmanId:d,operator:w.operator,uniqid:y})];case 4:return!1===(_=r.sent()).success?console.warn(_.message):(h(_.source),D=_.uniqid),[3,6];case 5:return k=r.sent(),console.warn(k),[3,6];case 6:return w.javascript&&h(w.javascript),[2,{type:"SingleMSISDNSubmissionResult",pin:w.pin,uniqidResult:D,operator:w.operator,redirectUrl:null==w?void 0:w.redirect_to_url}]}}))}))}function A(e,i,a,o,c){return t(this,void 0,void 0,(function(){var s,u,d=this;return r(this,(function(l){switch(l.label){case 0:return[4,Promise.all(o.map((function(o){return t(d,void 0,void 0,(function(){var t,s;return r(this,(function(r){switch(r.label){case 0:return r.trys.push([0,2,,3]),[4,j(e,i,a,n(n({},c),{operator:o}))];case 1:return t=r.sent(),[2,S(n(n({},t),{operator:o}))];case 2:return s=r.sent(),[2,y(s)];case 3:return[2]}}))}))})))];case 1:if(s=l.sent(),u=s.find((function(t){var r;return"left"===t.type&&"AlreadySubscribed"===(null===(r=t.value)||void 0===r?void 0:r.type)})),s.every((function(t){return"left"===t.type})))throw s[0].value;if(u)throw u.value;return[2,{type:"MultiOperatorMSISDNSubmissionResult"}]}}))}))}function C(n,i,a,o){return t(this,void 0,void 0,(function(){var c,s,u,d,l,p,v,f,y,S,h,b,g,_,E,U;return r(this,(function(N){switch(N.label){case 0:if(n.hostCountry&&n.hostSlug&&(a.country=n.hostCountry,a.slug=n.hostSlug),c=a.slug,s=a.country,u=a.device,d=n.pac_analytics.visitor.offer,l=o||{},"true"===(null==(p=I(n))?void 0:p.success)&&"1"===p["msisdn-alias"]&&(l["skip-validation"]="1"),v=n.pac_analytics.visitor.rockmanId,!i)throw(f=new Error("Error in submitMSISDN() verify-pin action:\n Pin Cannot Be Empty")).type="InvalidPIN",f;return y=""!==D?"&mcpUniqid=".concat(D):"",S=void 0!==n&&n.tid?n.tid:"",[4,k({window:n,country:s,slug:c,device:u,offer:d,rockmanId:v,pin:i,extraParams:l,uniqid:y,evinaTid:S})];case 1:if(!1!==(h=N.sent()).success)return[3,2];throw b={"pin does not match":"InvalidPIN","mcp blocked":"SessionBlocked"}[h.message],(E=new Error("Error in submitMSISDN() verify-pin action:\n".concat(b))).type=b||"InvalidPIN",E;case 2:return!0!==h.async?[3,4]:h.product_url&&""!==h.product_url&&"es"===(null==s?void 0:s.toLowerCase())?[2,{gatewayRedirectUrl:h.product_url}]:(g=function(){return function(n){var i=n.window,a=n.country,o=n.slug,c=n.device,s=n.offer,u=n.rockmanId;return t(void 0,void 0,void 0,(function(){var t,n,d,l;return r(this,(function(r){return t={action:"check-subscription",country:m(a),slug:o,device:c,offerId:s,rockman_id:u},n=Object.entries(t).filter((function(t){var r=e(t,2);return r[0],null!=r[1]})).map((function(t){var r=e(t,2),n=r[0],i=r[1];return"".concat(n,"=").concat(encodeURIComponent(i))})).join("&"),d=i.DEV_BASE_URL||"",l="".concat(d,"/tallyman/v1/?").concat(n),[2,fetch(l).then((function(t){return t.json()}))]}))}))}({window:n,country:s,slug:c,device:u,offer:d,rockmanId:v,extraParams:o})},[4,w(g,100,(function(t){return t.success}),0)]);case 3:if(!0===(_=N.sent()).success)return U="ALREADY SUBSCRIBED"===h.message,[2,{productUrl:_.product_url||null,isAlreadySubscribed:U}];throw(E=new Error("Error in submitMSISDN() verify-pin action:\n".concat(_.message))).type="InvalidPIN",E;case 4:return U="ALREADY SUBSCRIBED"===h.message,[2,{productUrl:h.product_url||null,isAlreadySubscribed:U}]}}))}))}var M={currentState:{type:"MSISDNEntry",result:c()}},R=i("pinFlow/submitMSISDNAction",(function(e,i){var a=e.window,o=e.msisdn,s=e.extraParams,u=i.getState,d=i.dispatch,m=i.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,e,i,y,S,w,h,I,b,g,_,E;return r(this,(function(r){switch(r.label){case 0:t=u(),e=t.strategy.currentState.data,i=e.config,y=e.isHeaderEnrichmentSuccess,S=null===(E=t.pinFlow)||void 0===E?void 0:E.currentState,r.label=1;case 1:return r.trys.push([1,5,,6]),"ps"===(null==i?void 0:i.country.toLowerCase())&&(null==i?void 0:i.slug.includes("shemaroo"))&&"+970"===F(null==i?void 0:i.country,o)&&(o=o.replace("970","972")),f.advancedInFlow("tallyman.v1-pin","msisdn-submitted",{msisdn:o}),[4,N(a,i,o)];case 2:return w=r.sent(),f.advancedInFlow("tallyman.v1-pin","msisdn-submission-success",{msisdn:o}),"SingleMSISDNSubmissionResult"===w.type&&w.redirectUrl&&(f.advancedInFlow("tallyman.v1-pin","msisdn-submission-success",{msisdn:o}),f.customEvent("Flow","advance-auto","msisdn-redirect",{redirectUrl:w.redirectUrl}),a.location.href=w.redirectUrl),s&&s.storeMsisdn&&"true"===s.storeMsisdn?[4,v(o).then((function(t){t&&t.data&&t.data.success?f.customEvent("Flow","advance-auto","msisdn-stored-success"):f.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(t){f.customEvent("Flow","advance-auto","msisdn-stored-error",t)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return h="SingleMSISDNSubmissionResult"===w.type?w.operator:"",I={SA_MOBILY:6,SA_STC:4,SA_ZAIN:4},b=new Event("onPinPage"),null==a||a.dispatchEvent(b),[2,n(n({},S),{type:"PINEntry",result:c(),data:{actualPIN:"SingleMSISDNSubmissionResult"===w.type?w.pin:null,msisdn:o,operator:h,pinMaxLength:""!==h&&I[h]?I[h]:null,isHeaderEnrichmentSuccess:y}})];case 5:switch(g=r.sent(),console.warn(g),_=void 0,g.type){case"AlreadySubscribed":_="AlreadySubscribed";break;case"InvalidMSISDN":_="InvalidMSISDN";break;default:_="UnknownError"}return f.recedeInFlow("tallyman.v1-pin","msisdn-submission-failure",{msisdn:o,errorType:_,error:g.toString()}),y&&d(l({type:p.PIN,data:{isHeaderEnrichmentSuccess:y}})),[2,m({errorType:_,error:g.toString(),productUrl:g.productUrl})];case 6:return[2]}}))}))})),P=i("pinFlow/submitPinAction",(function(e,i){var a=e.window,o=e.msisdn,c=e.pin,u=e.extraParams,d=i.getState,l=i.rejectWithValue;return t(void 0,void 0,void 0,(function(){var t,e,i,p,m,y,S;return r(this,(function(r){switch(r.label){case 0:t=d(),e=t.strategy.currentState.data.config,i=null===(S=t.pinFlow)||void 0===S?void 0:S.currentState,r.label=1;case 1:return r.trys.push([1,5,,6]),f.advancedInFlow("tallyman.v1-pin","pin-submitted",{msisdn:o,pin:c}),[4,C(a,c,e,u)];case 2:return p=r.sent(),f.advancedInFlow("tallyman.v1-pin","pin-submission-success",{msisdn:o,pin:c,finalUrl:p.productUrl}),p.gatewayRedirectUrl&&""!==p.gatewayRedirectUrl&&(f.advancedInFlow("tallyman.v1-pin","gateway-redirect",{msisdn:o,pin:c,gatewayRedirectUrl:p.gatewayRedirectUrl}),a.location.href=p.gatewayRedirectUrl),u&&u.storeMsisdn&&"true"===u.storeMsisdn?[4,v(o).then((function(t){t&&t.data&&t.data.success?f.customEvent("Flow","advance-auto","msisdn-stored-success"):f.customEvent("Flow","advance-auto","msisdn-stored-failed")})).catch((function(t){f.customEvent("Flow","advance-auto","msisdn-stored-error",t)}))]:[3,4];case 3:r.sent(),r.label=4;case 4:return[2,n(n({},i),{type:"PINEntry",result:s({finalUrl:p.productUrl,isAlreadySubscribed:p.isAlreadySubscribed||!1})})];case 5:switch(m=r.sent(),console.warn(m),y=void 0,m.type){case"AlreadySubscribed":y="AlreadySubscribed";break;case"InvalidPIN":y="InvalidPIN";break;case"SessionBlocked":y="SessionBlocked";break;default:y="UnknownError"}return f.recedeInFlow("tallyman.v1-pin","pin-submission-failure",{msisdn:o,pin:c,error:m.toString(),errorType:y}),setTimeout((function(){m.productUrl&&(a.location.href=m.productUrl)}),0),[2,l({errorType:y,productUrl:m.productUrl})];case 6:return[2]}}))}))})),F=function(t,r){var e=new o(r,t.toUpperCase());return t&&r?"+".concat(e.getCountryCode()):""},L=a({name:"pinFlow",initialState:M,reducers:{backToStartAction:function(t){f.recedeInFlow("tallyman.v1-pin","pin-state","requested to change phone number"),t.currentState={type:"MSISDNEntry",result:c()}}},extraReducers:function(t){t.addCase(R.pending,(function(t){t.currentState={type:"MSISDNEntry",result:u()}})).addCase(R.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(R.rejected,(function(t,r){t.currentState={type:"MSISDNEntry",result:d(r.payload)}})).addCase(P.pending,(function(t){t.currentState={type:"PINEntry",result:u()}})).addCase(P.fulfilled,(function(t,r){t.currentState=r.payload})).addCase(P.rejected,(function(t,r){t.currentState={type:"PINEntry",result:d(r.payload)}}))}}),B=L.reducer,q=L.actions.backToStartAction;export{q as backToStartAction,g as pinFlowMatch,B as pinFlowReducer,R as submitMSISDNAction,P as submitPinAction,b as usePinFlowState};
2
+ //# sourceMappingURL=pinFlow.js.map