ouisys-engine 5.1.15 → 5.1.17

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 (303) hide show
  1. package/dist/RemoteDataState-CwHLI23e.js +75 -0
  2. package/dist/RemoteDataState-CwHLI23e.js.map +1 -0
  3. package/dist/api-oPdBWsMC.js +65 -0
  4. package/dist/api-oPdBWsMC.js.map +1 -0
  5. package/dist/checkSubscriptionHander.js +140 -1
  6. package/dist/checkSubscriptionHander.js.map +1 -1
  7. package/dist/cleanSearchParams-B2jK3H1j.js +16 -0
  8. package/dist/cleanSearchParams-B2jK3H1j.js.map +1 -0
  9. package/dist/click2smsFlow.js +252 -1
  10. package/dist/click2smsFlow.js.map +1 -1
  11. package/dist/creditCardFlow.js +331 -1
  12. package/dist/creditCardFlow.js.map +1 -1
  13. package/dist/formatNumberToE164-oPCiETQk.js +476 -0
  14. package/dist/formatNumberToE164-oPCiETQk.js.map +1 -0
  15. package/dist/getConfig.js +13 -1
  16. package/dist/getConfig.js.map +1 -1
  17. package/dist/handleSubmitNumber.js +50 -1
  18. package/dist/handleSubmitNumber.js.map +1 -1
  19. package/dist/handleWaterfallRedirect-h5K2zX3N.js +21 -0
  20. package/dist/handleWaterfallRedirect-h5K2zX3N.js.map +1 -0
  21. package/dist/helpers-BIBpnXln.js +29 -0
  22. package/dist/helpers-BIBpnXln.js.map +1 -0
  23. package/dist/initTPay.js +98 -1
  24. package/dist/initTPay.js.map +1 -1
  25. package/dist/loadScriptInnerHtml-CstJVRED.js +30 -0
  26. package/dist/loadScriptInnerHtml-CstJVRED.js.map +1 -0
  27. package/dist/main-8gjJCdrT.js +448 -0
  28. package/dist/main-8gjJCdrT.js.map +1 -0
  29. package/dist/moFlow.js +322 -1
  30. package/dist/moFlow.js.map +1 -1
  31. package/dist/moRedirFlow.js +329 -1
  32. package/dist/moRedirFlow.js.map +1 -1
  33. package/dist/normaliseErrorCode-CBLYxW-a.js +44 -0
  34. package/dist/normaliseErrorCode-CBLYxW-a.js.map +1 -0
  35. package/dist/oneClickFlow.js +710 -1
  36. package/dist/oneClickFlow.js.map +1 -1
  37. package/dist/pinFlow.js +542 -1
  38. package/dist/pinFlow.js.map +1 -1
  39. package/dist/searchToObject.js +9 -1
  40. package/dist/searchToObject.js.map +1 -1
  41. package/dist/src/common-types/Either.d.ts +9 -0
  42. package/dist/src/common-types/Either.d.ts.map +1 -0
  43. package/dist/src/common-types/ICheckSubscriptionResult.d.ts +12 -0
  44. package/dist/src/common-types/ICheckSubscriptionResult.d.ts.map +1 -0
  45. package/dist/src/common-types/IError.d.ts +5 -0
  46. package/dist/src/common-types/IError.d.ts.map +1 -0
  47. package/dist/src/common-types/IHash.d.ts +4 -0
  48. package/dist/src/common-types/IHash.d.ts.map +1 -0
  49. package/dist/src/common-types/IOptInFlowName.d.ts +2 -0
  50. package/dist/src/common-types/IOptInFlowName.d.ts.map +1 -0
  51. package/dist/src/common-types/ITracker.d.ts +10 -0
  52. package/dist/src/common-types/ITracker.d.ts.map +1 -0
  53. package/dist/src/common-types/IVisitor.d.ts +51 -0
  54. package/dist/src/common-types/IVisitor.d.ts.map +1 -0
  55. package/dist/src/common-types/RemoteDataState.d.ts +39 -0
  56. package/dist/src/common-types/RemoteDataState.d.ts.map +1 -0
  57. package/dist/src/common-types/Strategy.d.ts +49 -0
  58. package/dist/src/common-types/Strategy.d.ts.map +1 -0
  59. package/dist/src/flows/click2smsFlow/api.d.ts +13 -0
  60. package/dist/src/flows/click2smsFlow/api.d.ts.map +1 -0
  61. package/dist/src/flows/click2smsFlow/click2smsFlowSlice.d.ts +18 -0
  62. package/dist/src/flows/click2smsFlow/click2smsFlowSlice.d.ts.map +1 -0
  63. package/dist/src/flows/click2smsFlow/hooks/useClick2smsFlowState.d.ts +3 -0
  64. package/dist/src/flows/click2smsFlow/hooks/useClick2smsFlowState.d.ts.map +1 -0
  65. package/dist/src/flows/click2smsFlow/hooks/useKeyWordShortCode.d.ts +4 -0
  66. package/dist/src/flows/click2smsFlow/hooks/useKeyWordShortCode.d.ts.map +1 -0
  67. package/dist/src/flows/click2smsFlow/index.d.ts +6 -0
  68. package/dist/src/flows/click2smsFlow/index.d.ts.map +1 -0
  69. package/dist/src/flows/click2smsFlow/main.d.ts +4 -0
  70. package/dist/src/flows/click2smsFlow/main.d.ts.map +1 -0
  71. package/dist/src/flows/click2smsFlow/match.d.ts +7 -0
  72. package/dist/src/flows/click2smsFlow/match.d.ts.map +1 -0
  73. package/dist/src/flows/creditCardFlow/api.d.ts +26 -0
  74. package/dist/src/flows/creditCardFlow/api.d.ts.map +1 -0
  75. package/dist/src/flows/creditCardFlow/creditCardFlowSlice.d.ts +26 -0
  76. package/dist/src/flows/creditCardFlow/creditCardFlowSlice.d.ts.map +1 -0
  77. package/dist/src/flows/creditCardFlow/hooks/useCreditCardFlowState.d.ts +3 -0
  78. package/dist/src/flows/creditCardFlow/hooks/useCreditCardFlowState.d.ts.map +1 -0
  79. package/dist/src/flows/creditCardFlow/index.d.ts +5 -0
  80. package/dist/src/flows/creditCardFlow/index.d.ts.map +1 -0
  81. package/dist/src/flows/creditCardFlow/main.d.ts +8 -0
  82. package/dist/src/flows/creditCardFlow/main.d.ts.map +1 -0
  83. package/dist/src/flows/creditCardFlow/match.d.ts +7 -0
  84. package/dist/src/flows/creditCardFlow/match.d.ts.map +1 -0
  85. package/dist/src/flows/moFlow/api.d.ts +15 -0
  86. package/dist/src/flows/moFlow/api.d.ts.map +1 -0
  87. package/dist/src/flows/moFlow/hooks/useMoFlowState.d.ts +3 -0
  88. package/dist/src/flows/moFlow/hooks/useMoFlowState.d.ts.map +1 -0
  89. package/dist/src/flows/moFlow/index.d.ts +5 -0
  90. package/dist/src/flows/moFlow/index.d.ts.map +1 -0
  91. package/dist/src/flows/moFlow/main.d.ts +13 -0
  92. package/dist/src/flows/moFlow/main.d.ts.map +1 -0
  93. package/dist/src/flows/moFlow/match.d.ts +7 -0
  94. package/dist/src/flows/moFlow/match.d.ts.map +1 -0
  95. package/dist/src/flows/moFlow/moFlowSlice.d.ts +47 -0
  96. package/dist/src/flows/moFlow/moFlowSlice.d.ts.map +1 -0
  97. package/dist/src/flows/moRedirFlow/api.d.ts +18 -0
  98. package/dist/src/flows/moRedirFlow/api.d.ts.map +1 -0
  99. package/dist/src/flows/moRedirFlow/hooks/useMoRedirFlowState.d.ts +3 -0
  100. package/dist/src/flows/moRedirFlow/hooks/useMoRedirFlowState.d.ts.map +1 -0
  101. package/dist/src/flows/moRedirFlow/index.d.ts +5 -0
  102. package/dist/src/flows/moRedirFlow/index.d.ts.map +1 -0
  103. package/dist/src/flows/moRedirFlow/main.d.ts +8 -0
  104. package/dist/src/flows/moRedirFlow/main.d.ts.map +1 -0
  105. package/dist/src/flows/moRedirFlow/match.d.ts +7 -0
  106. package/dist/src/flows/moRedirFlow/match.d.ts.map +1 -0
  107. package/dist/src/flows/moRedirFlow/moRedirFlowSlice.d.ts +38 -0
  108. package/dist/src/flows/moRedirFlow/moRedirFlowSlice.d.ts.map +1 -0
  109. package/dist/src/flows/oneClickFlow/api.d.ts +22 -0
  110. package/dist/src/flows/oneClickFlow/api.d.ts.map +1 -0
  111. package/dist/src/flows/oneClickFlow/hooks/useOneClickFlowState.d.ts +3 -0
  112. package/dist/src/flows/oneClickFlow/hooks/useOneClickFlowState.d.ts.map +1 -0
  113. package/dist/src/flows/oneClickFlow/index.d.ts +5 -0
  114. package/dist/src/flows/oneClickFlow/index.d.ts.map +1 -0
  115. package/dist/src/flows/oneClickFlow/main.d.ts +15 -0
  116. package/dist/src/flows/oneClickFlow/main.d.ts.map +1 -0
  117. package/dist/src/flows/oneClickFlow/match.d.ts +8 -0
  118. package/dist/src/flows/oneClickFlow/match.d.ts.map +1 -0
  119. package/dist/src/flows/oneClickFlow/oneClickFlowSlice.d.ts +45 -0
  120. package/dist/src/flows/oneClickFlow/oneClickFlowSlice.d.ts.map +1 -0
  121. package/dist/src/flows/pinFlow/IPinConstants.d.ts +3 -0
  122. package/dist/src/flows/pinFlow/IPinConstants.d.ts.map +1 -0
  123. package/dist/src/flows/pinFlow/api.d.ts +39 -0
  124. package/dist/src/flows/pinFlow/api.d.ts.map +1 -0
  125. package/dist/src/flows/pinFlow/hooks/usePinFlowState.d.ts +3 -0
  126. package/dist/src/flows/pinFlow/hooks/usePinFlowState.d.ts.map +1 -0
  127. package/dist/src/flows/pinFlow/index.d.ts +5 -0
  128. package/dist/src/flows/pinFlow/index.d.ts.map +1 -0
  129. package/dist/src/flows/pinFlow/main.d.ts +10 -0
  130. package/dist/src/flows/pinFlow/main.d.ts.map +1 -0
  131. package/dist/src/flows/pinFlow/match.d.ts +8 -0
  132. package/dist/src/flows/pinFlow/match.d.ts.map +1 -0
  133. package/dist/src/flows/pinFlow/pinFlowSlice.d.ts +60 -0
  134. package/dist/src/flows/pinFlow/pinFlowSlice.d.ts.map +1 -0
  135. package/dist/src/flows/strategy/api.d.ts +40 -0
  136. package/dist/src/flows/strategy/api.d.ts.map +1 -0
  137. package/dist/src/flows/strategy/hooks/useStrategyState.d.ts +3 -0
  138. package/dist/src/flows/strategy/hooks/useStrategyState.d.ts.map +1 -0
  139. package/dist/src/flows/strategy/index.d.ts +8 -0
  140. package/dist/src/flows/strategy/index.d.ts.map +1 -0
  141. package/dist/src/flows/strategy/main.d.ts +29 -0
  142. package/dist/src/flows/strategy/main.d.ts.map +1 -0
  143. package/dist/src/flows/strategy/match.d.ts +16 -0
  144. package/dist/src/flows/strategy/match.d.ts.map +1 -0
  145. package/dist/src/flows/strategy/mocks/index.d.ts +7 -0
  146. package/dist/src/flows/strategy/mocks/index.d.ts.map +1 -0
  147. package/dist/src/flows/strategy/strategies/askMobileNumber.d.ts +25 -0
  148. package/dist/src/flows/strategy/strategies/askMobileNumber.d.ts.map +1 -0
  149. package/dist/src/flows/strategy/strategies/askOperator.d.ts +14 -0
  150. package/dist/src/flows/strategy/strategies/askOperator.d.ts.map +1 -0
  151. package/dist/src/flows/strategy/strategies/callRedirectApi.d.ts +28 -0
  152. package/dist/src/flows/strategy/strategies/callRedirectApi.d.ts.map +1 -0
  153. package/dist/src/flows/strategy/strategies/detectOperatorByIp.d.ts +15 -0
  154. package/dist/src/flows/strategy/strategies/detectOperatorByIp.d.ts.map +1 -0
  155. package/dist/src/flows/strategy/strategies/headerEnrichment.d.ts +52 -0
  156. package/dist/src/flows/strategy/strategies/headerEnrichment.d.ts.map +1 -0
  157. package/dist/src/flows/strategy/strategies/injectHeaderEnrichmentScript.d.ts +11 -0
  158. package/dist/src/flows/strategy/strategies/injectHeaderEnrichmentScript.d.ts.map +1 -0
  159. package/dist/src/flows/strategy/strategySlice.d.ts +26 -0
  160. package/dist/src/flows/strategy/strategySlice.d.ts.map +1 -0
  161. package/dist/src/flows/ussdFlow/api.d.ts +4 -0
  162. package/dist/src/flows/ussdFlow/api.d.ts.map +1 -0
  163. package/dist/src/flows/ussdFlow/hooks/useUssdFlowState.d.ts +3 -0
  164. package/dist/src/flows/ussdFlow/hooks/useUssdFlowState.d.ts.map +1 -0
  165. package/dist/src/flows/ussdFlow/index.d.ts +5 -0
  166. package/dist/src/flows/ussdFlow/index.d.ts.map +1 -0
  167. package/dist/src/flows/ussdFlow/main.d.ts +10 -0
  168. package/dist/src/flows/ussdFlow/main.d.ts.map +1 -0
  169. package/dist/src/flows/ussdFlow/match.d.ts +7 -0
  170. package/dist/src/flows/ussdFlow/match.d.ts.map +1 -0
  171. package/dist/src/flows/ussdFlow/ussdFlowSlice.d.ts +38 -0
  172. package/dist/src/flows/ussdFlow/ussdFlowSlice.d.ts.map +1 -0
  173. package/dist/src/index.d.ts +2 -0
  174. package/dist/src/index.d.ts.map +1 -0
  175. package/dist/src/ips/tryGetIPRangeName.d.ts +3 -0
  176. package/dist/src/ips/tryGetIPRangeName.d.ts.map +1 -0
  177. package/dist/src/pacman/index.d.ts +7 -0
  178. package/dist/src/pacman/index.d.ts.map +1 -0
  179. package/dist/src/pacman/queryString.d.ts +4 -0
  180. package/dist/src/pacman/queryString.d.ts.map +1 -0
  181. package/dist/src/sharedApi/checkSubscription.d.ts +13 -0
  182. package/dist/src/sharedApi/checkSubscription.d.ts.map +1 -0
  183. package/dist/src/sharedApi/checkSubscriptionByRockmanIdOnly.d.ts +7 -0
  184. package/dist/src/sharedApi/checkSubscriptionByRockmanIdOnly.d.ts.map +1 -0
  185. package/dist/src/sharedApi/unblockUser.d.ts +13 -0
  186. package/dist/src/sharedApi/unblockUser.d.ts.map +1 -0
  187. package/dist/src/sharedFlowTypes/Click2smsTypes.d.ts +79 -0
  188. package/dist/src/sharedFlowTypes/Click2smsTypes.d.ts.map +1 -0
  189. package/dist/src/sharedFlowTypes/CreditCardTypes.d.ts +74 -0
  190. package/dist/src/sharedFlowTypes/CreditCardTypes.d.ts.map +1 -0
  191. package/dist/src/sharedFlowTypes/MoRedirTypes.d.ts +29 -0
  192. package/dist/src/sharedFlowTypes/MoRedirTypes.d.ts.map +1 -0
  193. package/dist/src/sharedFlowTypes/MoTypes.d.ts +45 -0
  194. package/dist/src/sharedFlowTypes/MoTypes.d.ts.map +1 -0
  195. package/dist/src/sharedFlowTypes/OneClickTypes.d.ts +78 -0
  196. package/dist/src/sharedFlowTypes/OneClickTypes.d.ts.map +1 -0
  197. package/dist/src/sharedFlowTypes/PinTypes.d.ts +135 -0
  198. package/dist/src/sharedFlowTypes/PinTypes.d.ts.map +1 -0
  199. package/dist/src/sharedFlowTypes/StrategyTypes.d.ts +285 -0
  200. package/dist/src/sharedFlowTypes/StrategyTypes.d.ts.map +1 -0
  201. package/dist/src/sharedFlowTypes/UssdTypes.d.ts +32 -0
  202. package/dist/src/sharedFlowTypes/UssdTypes.d.ts.map +1 -0
  203. package/dist/src/utilities/addEmpelloToken.d.ts +5 -0
  204. package/dist/src/utilities/addEmpelloToken.d.ts.map +1 -0
  205. package/dist/src/utilities/addUrlParamAndReload.d.ts +4 -0
  206. package/dist/src/utilities/addUrlParamAndReload.d.ts.map +1 -0
  207. package/dist/src/utilities/bupperizeCountry.d.ts +3 -0
  208. package/dist/src/utilities/bupperizeCountry.d.ts.map +1 -0
  209. package/dist/src/utilities/checkSubscriptionHander.d.ts +10 -0
  210. package/dist/src/utilities/checkSubscriptionHander.d.ts.map +1 -0
  211. package/dist/src/utilities/cleanSearchParams.d.ts +2 -0
  212. package/dist/src/utilities/cleanSearchParams.d.ts.map +1 -0
  213. package/dist/src/utilities/countryToPhoneCode.d.ts +2 -0
  214. package/dist/src/utilities/countryToPhoneCode.d.ts.map +1 -0
  215. package/dist/src/utilities/formatNumberToE164.d.ts +9 -0
  216. package/dist/src/utilities/formatNumberToE164.d.ts.map +1 -0
  217. package/dist/src/utilities/getConfig.d.ts +4 -0
  218. package/dist/src/utilities/getConfig.d.ts.map +1 -0
  219. package/dist/src/utilities/handleSubmitNumber.d.ts +24 -0
  220. package/dist/src/utilities/handleSubmitNumber.d.ts.map +1 -0
  221. package/dist/src/utilities/handleWaterfallRedirect.d.ts +2 -0
  222. package/dist/src/utilities/handleWaterfallRedirect.d.ts.map +1 -0
  223. package/dist/src/utilities/hasNumber.d.ts +2 -0
  224. package/dist/src/utilities/hasNumber.d.ts.map +1 -0
  225. package/dist/src/utilities/helpers.d.ts +6 -0
  226. package/dist/src/utilities/helpers.d.ts.map +1 -0
  227. package/dist/src/utilities/initTpay.d.ts +2 -0
  228. package/dist/src/utilities/initTpay.d.ts.map +1 -0
  229. package/dist/src/utilities/isCookieExists.d.ts +2 -0
  230. package/dist/src/utilities/isCookieExists.d.ts.map +1 -0
  231. package/dist/src/utilities/loadScriptInnerHtml.d.ts +3 -0
  232. package/dist/src/utilities/loadScriptInnerHtml.d.ts.map +1 -0
  233. package/dist/src/utilities/loadScriptSrc.d.ts +20 -0
  234. package/dist/src/utilities/loadScriptSrc.d.ts.map +1 -0
  235. package/dist/src/utilities/normaliseErrorCode.d.ts +8 -0
  236. package/dist/src/utilities/normaliseErrorCode.d.ts.map +1 -0
  237. package/dist/src/utilities/normalizePhoneNumber.d.ts +12 -0
  238. package/dist/src/utilities/normalizePhoneNumber.d.ts.map +1 -0
  239. package/dist/src/utilities/replaceUrlParam.d.ts +2 -0
  240. package/dist/src/utilities/replaceUrlParam.d.ts.map +1 -0
  241. package/dist/src/utilities/searchToObject.d.ts +3 -0
  242. package/dist/src/utilities/searchToObject.d.ts.map +1 -0
  243. package/dist/src/utilities/storeMsisdn.d.ts +4 -0
  244. package/dist/src/utilities/storeMsisdn.d.ts.map +1 -0
  245. package/dist/src/utilities/tracker.d.ts +2 -0
  246. package/dist/src/utilities/tracker.d.ts.map +1 -0
  247. package/dist/src/utilities/unblockUser.d.ts +7 -0
  248. package/dist/src/utilities/unblockUser.d.ts.map +1 -0
  249. package/dist/src/utilities/updateUrlWithParams.d.ts +2 -0
  250. package/dist/src/utilities/updateUrlWithParams.d.ts.map +1 -0
  251. package/dist/src/utilities/verifyAntifraudOnClick2Sms.d.ts +6 -0
  252. package/dist/src/utilities/verifyAntifraudOnClick2Sms.d.ts.map +1 -0
  253. package/dist/storeMsisdn-ChiBh8mI.js +58 -0
  254. package/dist/storeMsisdn-ChiBh8mI.js.map +1 -0
  255. package/dist/strategy.js +49 -1
  256. package/dist/strategy.js.map +1 -1
  257. package/dist/strategySlice-DEsw1xc-.js +1159 -0
  258. package/dist/strategySlice-DEsw1xc-.js.map +1 -0
  259. package/dist/tracker-B_zsMRN2.js +79 -0
  260. package/dist/tracker-B_zsMRN2.js.map +1 -0
  261. package/dist/tracker.js +4 -1
  262. package/dist/tracker.js.map +1 -1
  263. package/dist/types/{StrategyTypes-BlqY9peI.d.ts → StrategyTypes-LKeXDiPK.d.ts} +78 -2
  264. package/dist/types/click2smsFlow.d.ts +2 -2
  265. package/dist/types/oneClickFlow.d.ts +10 -2
  266. package/dist/types/searchToObject.d.ts +2 -2
  267. package/dist/types/strategy.d.ts +3 -3
  268. package/dist/unblockUser.js +107 -1
  269. package/dist/unblockUser.js.map +1 -1
  270. package/dist/updateUrlWithParams-ZaZt1BCf.js +15 -0
  271. package/dist/updateUrlWithParams-ZaZt1BCf.js.map +1 -0
  272. package/dist/ussdFlow.js +261 -1
  273. package/dist/ussdFlow.js.map +1 -1
  274. package/dist/verifyAntifraudOnClick2Sms.js +50 -1
  275. package/dist/verifyAntifraudOnClick2Sms.js.map +1 -1
  276. package/package.json +1 -1
  277. package/dist/RemoteDataState-lcf8PfJd.js +0 -2
  278. package/dist/RemoteDataState-lcf8PfJd.js.map +0 -1
  279. package/dist/api-geirVksI.js +0 -2
  280. package/dist/api-geirVksI.js.map +0 -1
  281. package/dist/cleanSearchParams-Dl7ZDlew.js +0 -2
  282. package/dist/cleanSearchParams-Dl7ZDlew.js.map +0 -1
  283. package/dist/formatNumberToE164-DaAFvpKD.js +0 -2
  284. package/dist/formatNumberToE164-DaAFvpKD.js.map +0 -1
  285. package/dist/handleWaterfallRedirect-DztqrthA.js +0 -2
  286. package/dist/handleWaterfallRedirect-DztqrthA.js.map +0 -1
  287. package/dist/helpers-CBmogWIZ.js +0 -2
  288. package/dist/helpers-CBmogWIZ.js.map +0 -1
  289. package/dist/loadScriptInnerHtml-B6v2-IGn.js +0 -2
  290. package/dist/loadScriptInnerHtml-B6v2-IGn.js.map +0 -1
  291. package/dist/main-CDmeQMF-.js +0 -2
  292. package/dist/main-CDmeQMF-.js.map +0 -1
  293. package/dist/normaliseErrorCode-CVpyJZ6_.js +0 -2
  294. package/dist/normaliseErrorCode-CVpyJZ6_.js.map +0 -1
  295. package/dist/storeMsisdn-Cjq8_qYH.js +0 -2
  296. package/dist/storeMsisdn-Cjq8_qYH.js.map +0 -1
  297. package/dist/strategySlice-BMNt18ck.js +0 -2
  298. package/dist/strategySlice-BMNt18ck.js.map +0 -1
  299. package/dist/tracker-DaaILhEr.js +0 -2
  300. package/dist/tracker-DaaILhEr.js.map +0 -1
  301. package/dist/types/OneClickTypes-BNg9Ru0u.d.ts +0 -71
  302. package/dist/updateUrlWithParams-C6-BX4TY.js +0 -2
  303. package/dist/updateUrlWithParams-C6-BX4TY.js.map +0 -1
@@ -1,2 +1,332 @@
1
- import{__awaiter as e,__generator as r,__assign as t}from"tslib";import{createAsyncThunk as a,createSlice as n}from"@reduxjs/toolkit";import{S as o,L as i,F as c,N as s}from"./RemoteDataState-lcf8PfJd.js";import{l as d}from"./loadScriptInnerHtml-B6v2-IGn.js";import{searchToObject as l}from"./searchToObject.js";import{t as u}from"./tracker-DaaILhEr.js";import"pacman-client";import"uuid";var v=function(a){var n=a.window,o=a.slug,i=a.country,c=a.msisdn,s=a.device,d=a.offer,l=a.rockmanId,u=a.ip_range_name,v=a.search,m=a.extraParamsQs,p=a.email,y=a.password;return e(void 0,void 0,void 0,(function(){var e,a,f,g,w,_;return r(this,(function(r){return e=new URLSearchParams(t(t(t(t(t(t({action:"redirect",slug:o,country:i,device:s,offerId:d.toString(),rockman_id:l,page:encodeURIComponent(n.location.href),network_type:u?"":"wifi"},v&&{search:v}),(null===(_=null===(w=null===(g=n.pac_analytics)||void 0===g?void 0:g.visitor)||void 0===w?void 0:w.page)||void 0===_?void 0:_.includes("agency"))&&{evinaTi:l}),n.securityProcessId&&{securityProcessId:n.securityProcessId}),n.languageCode&&{language_code:n.languageCode}),p&&y?{email:p,password:y}:{msisdn:c}),m&&{extraParams:m})).toString(),a=n.DEV_BASE_URL||"",f="".concat(a,"/tallyman/v1/?").concat(e),[2,fetch(f).then((function(e){return e.json()}))]}))}))},m=function(a){var n=a.window,o=a.userDetails,i=a.extraConfig;return e(void 0,void 0,void 0,(function(){var e,a,c,s,d,u,v,m,p,y,f,g,w,_;return r(this,(function(r){return e="cc_number"in o,a=n.DEV_BASE_URL_CREDIT_CARD||"",c="".concat(a,"/api/v1"),"/frontend/initiate-payment-generic",s=l(n),d={timezone:(new Date).getTimezoneOffset(),browserColorDepth:n.screen.colorDepth,browserLanguage:navigator.language,browserScreenHeight:n.screen.height,browserScreenWidth:n.screen.width,userAgent:navigator.userAgent,browserJavaEnabled:!!navigator.javaEnabled&&navigator.javaEnabled(),browserJavascriptEnabled:!0},u=(null==i?void 0:i.slug)||"",v=(null==s?void 0:s.d_country)||"",m=(null==s?void 0:s.d_currency)||"",p="",y=["cc_celerispay-xracademy50_099-","cc_celerispay-xracademy50_001-","cc_maxpay-xracademy50_001-","cc_ecardon-movio50_001-","cc_maxpay-movio50_001-","cc_maxpay-funbox50_001-","cc_maxpay-entertainu50_099-"],f=["sek","nok","gbp","dkk","usd","sar","cad","pln","aed"].some((function(e){return e===m.toLowerCase()})),y.some((function(e){return e===u.toLowerCase()}))&&m&&f&&(p="".concat(u.slice(0,-1),":").concat(m.toLowerCase(),"-").concat(v.toLowerCase())),g=t(t(t(t({rockman_id:null===(_=n.pac_analytics.visitor)||void 0===_?void 0:_.rockmanId,landing_page_url:n.location.href,service_id:e?null==i?void 0:i.serviceId:"2"},u?{slug:p||"".concat(u).concat(v.toLowerCase())}:{}),e?{}:{user_agent:n.navigator.userAgent,ip:n.pac_analytics.visitor.ip}),{browserFingerprint:d}),o),w={method:"POST",headers:new Headers({"Content-Type":"application/json"}),body:JSON.stringify(g)},[2,fetch("".concat(c).concat("/frontend/initiate-payment-generic"),w).then((function(e){return e.json()}))]}))}))};function p(t,a,n){var o,i,c,s,d;return e(this,void 0,void 0,(function(){var e,l,u,p,y,f,g,w,_,h,S,b;return r(this,(function(r){switch(r.label){case 0:return e=a.slug,l=a.country,u=a.device,p=a.serviceId,y=t.location.search.substr(1)||"",f=t.pac_analytics.visitor,g=f.rockmanId,w={serviceId:p,slug:e},(null===(c=null===(i=null===(o=null==t?void 0:t.pac_analytics)||void 0===o?void 0:o.visitor)||void 0===i?void 0:i.page)||void 0===c?void 0:c.includes("agency"))?[4,v({window:t,slug:e,country:l,device:u,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==n?void 0:n.email,password:null==n?void 0:n.password,search:y})]:[3,2];case 1:return h=r.sent(),[3,4];case 2:return[4,m({window:t,userDetails:n,extraConfig:w})];case 3:h=r.sent(),r.label=4;case 4:if(!1===(_=h).success)throw S="ALREADY SUBSCRIBED"===_.message?"AlreadySubscribed":_.message,(b=new Error("".concat(S,":\n").concat(_.message))).type=S,b.errorId=_.errorId,console.error(b),b;return[2,{gateway_url:_.gateway_url||_.redirect_url,method:_.redirect_url?"redirection":_.method,html:_.html}]}}))}))}var y={currentState:{type:"USER_DETAILS_ENTRY",result:o({gateway_url:"https://www.google.com",method:"jslink"})}},f={currentState:{type:"USER_DETAILS_ENTRY",result:c({errorType:"AlreadySubscribed",error:"Already Subscribed"})}},g={currentState:{type:"USER_DETAILS_ENTRY",result:s()}},w=function(e){var r=l(e);if(!r["mock-flow"])return g;switch(r["current-state"]){case"user-details-entry-failure-state":return f;case"user-details-entry-success-state":return y;default:return console.error("Mock Flow not supported"),g}}(window),_=a("creditCardFlow/submitUserDetailsAction",(function(t,a){var n=t.window,i=t.userDetails,c=a.getState,s=a.rejectWithValue;return e(void 0,void 0,void 0,(function(){var e,t,a,l,v,m,y,f,g,w,_;return r(this,(function(r){switch(r.label){case 0:if(e=c(),!(null===(_=null===(w=null===(g=null==e?void 0:e.strategy)||void 0===g?void 0:g.currentState)||void 0===w?void 0:w.data)||void 0===_?void 0:_.config))return[2,s({errorType:"UnexpectedState"})];t=e.strategy.currentState.data.config,r.label=1;case 1:return r.trys.push([1,3,,4]),u.advancedInFlow("tallyman.v1-credit-card","cc-form-submitted",{email:null==i?void 0:i.email}),[4,p(n,t,i)];case 2:return a=r.sent(),l=a.gateway_url,v=a.method,m=a.html,u.advancedInFlow("tallyman.v1-credit-card","cc-form-submission-success",{email:null==i?void 0:i.email,gateway_url:l}),"jslink"===v&&l&&(u.advancedInFlow("tallyman.v1-credit-card","load-script-start",{gateway_url:l}),function(e){var r=e.url,t=e.key,a=e.isRecaptcha,n=void 0!==a&&a,o=e.callBack,i=e.id,c=void 0===i?"":i,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),n&&(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),o&&o()}}({id:"ecardon-credit-card",url:l,callBack:function(){u.advancedInFlow("tallyman.v1-credit-card","load-script-success",{gateway_url:l})}})),"redirection"===v&&l&&(u.customEvent("Flow","advance-auto","redirect-success",{redirect_url:l}),n.location.href=l),"html"===v&&m&&u.advancedInFlow("tallyman.v1-credit-card","get-html-success"),[2,{type:"USER_DETAILS_ENTRY",result:o({gateway_url:l,method:v,html:m})}];case 3:switch(y=r.sent(),console.warn(y),f=void 0,y.type){case"AlreadySubscribed":f="AlreadySubscribed";break;case"InvalidUserDetails":f="InvalidUserDetails";break;default:f="UnknownError"}return u.recedeInFlow("tallyman.v1-credit-card","cc-form-submission-failure",{email:null==i?void 0:i.email,errorType:f||y.type,errorId:(null==y?void 0:y.errorId)||""}),[2,s({errorType:f,error:y.toString(),errorId:(null==y?void 0:y.errorId)||""})];case 4:return[2]}}))}))})),h=n({name:"creditCardFlow",initialState:w,reducers:{},extraReducers:function(e){e.addCase(_.pending,(function(e){e.currentState={type:"USER_DETAILS_ENTRY",result:i()}})).addCase(_.fulfilled,(function(e,r){e.currentState=r.payload})).addCase(_.rejected,(function(e,r){e.currentState={type:"USER_DETAILS_ENTRY",result:c(r.payload)}}))}}),S=h.reducer;h.actions;var b=function(e){return e((function(e){return e.creditCardFlow.currentState}))};function E(e){var r=e.userDetailsEntry;return function(e){return e.type,r(e.result)}}export{E as creditCardFlowMatch,S as creditCardFlowReducer,_ as submitUserDetailsAction,b as useCreditCardFlowState};
1
+ import { __awaiter, __generator, __assign } from 'tslib';
2
+ import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
3
+ import { S as Success, L as Loading, F as Failure, N as NothingYet } from './RemoteDataState-CwHLI23e.js';
4
+ import { l as loadScriptInnerHtml } from './loadScriptInnerHtml-CstJVRED.js';
5
+ import { searchToObject } from './searchToObject.js';
6
+ import { t as tracker } from './tracker-B_zsMRN2.js';
7
+ import 'pacman-client';
8
+ import 'uuid';
9
+
10
+ /**
11
+ * Loads a script from the specified URL and optionally executes a reCAPTCHA if the `isRecaptcha` flag is set.
12
+ *
13
+ * @param {Object} options - An object containing the following properties:
14
+ * - {string} url: The URL of the script to load.
15
+ * - {string} [key]: The reCAPTCHA key to use for execution. (Optional)
16
+ * - {boolean} [isRecaptcha]: Flag indicating whether to execute a reCAPTCHA. Defaults to false.
17
+ * - {function} [callBack]: A callback function to be called if there is an error loading the script. (Optional)
18
+ * - {string} [id]: The ID to assign to the injected script. Defaults to an empty string.
19
+ * @return {void}
20
+ */
21
+ var loadScriptSrc = function (_a) {
22
+ var url = _a.url, key = _a.key, _b = _a.isRecaptcha, isRecaptcha = _b === void 0 ? false : _b, callBack = _a.callBack, _c = _a.id, id = _c === void 0 ? '' : _c;
23
+ var script = document.createElement('script');
24
+ script.type = 'text/javascript';
25
+ script.src = url;
26
+ script.id = "injected_script_".concat(id);
27
+ var headElem = document.getElementsByTagName('head')[0];
28
+ headElem.insertBefore(script, headElem.firstChild);
29
+ if (isRecaptcha) {
30
+ script.onload = function () {
31
+ var scriptInner = "\n grecaptcha.ready(function() {\n grecaptcha.execute(\"".concat(key, "\", {action: 'submit'}).then(function(token) {\n // To be used by tallyman\n window.reCaptchaToken = token;\n console.log(\"-------\" + token);\n });\n });\n ");
32
+ loadScriptInnerHtml(scriptInner, true);
33
+ };
34
+ }
35
+ script.onerror = function () {
36
+ console.error('Error loading script', url);
37
+ if (callBack) {
38
+ callBack();
39
+ }
40
+ };
41
+ };
42
+
43
+ var redirect = function (_a) {
44
+ var window = _a.window, slug = _a.slug, country = _a.country, msisdn = _a.msisdn, device = _a.device, offer = _a.offer, rockmanId = _a.rockmanId, ip_range_name = _a.ip_range_name, search = _a.search, extraParamsQs = _a.extraParamsQs, email = _a.email, password = _a.password;
45
+ return __awaiter(void 0, void 0, void 0, function () {
46
+ var params, host, url;
47
+ var _b, _c, _d;
48
+ return __generator(this, function (_e) {
49
+ params = new URLSearchParams(__assign(__assign(__assign(__assign(__assign(__assign({ action: 'redirect', slug: slug, country: country, device: device, offerId: offer.toString(), rockman_id: rockmanId, page: encodeURIComponent(window.location.href), network_type: ip_range_name ? '' : 'wifi' }, (search && { search: search })), (((_d = (_c = (_b = window.pac_analytics) === null || _b === void 0 ? void 0 : _b.visitor) === null || _c === void 0 ? void 0 : _c.page) === null || _d === void 0 ? void 0 : _d.includes('agency')) && { evinaTi: rockmanId })), (window.securityProcessId && { securityProcessId: window.securityProcessId })), (window.languageCode && { language_code: window.languageCode })), (email && password ? { email: email, password: password } : { msisdn: msisdn })), (extraParamsQs && { extraParams: extraParamsQs }))).toString();
50
+ host = window.DEV_BASE_URL || '';
51
+ url = "".concat(host, "/tallyman/v1/?").concat(params);
52
+ return [2 /*return*/, fetch(url).then(function (x) { return x.json(); })];
53
+ });
54
+ });
55
+ };
56
+ var creditCardPayment = function (_a) {
57
+ var window = _a.window, userDetails = _a.userDetails, extraConfig = _a.extraConfig;
58
+ return __awaiter(void 0, void 0, void 0, function () {
59
+ var isMaxPay, host, apiBaseURL, apiPath, search, browserFingerprint, slug, country, currency, currencySlug, allowedCurrencies, localCurrencySupportedSlugs, isAllowedCurrency, isLocalCurrencySupported, commonDetails, requestOptions;
60
+ var _b;
61
+ return __generator(this, function (_c) {
62
+ isMaxPay = 'cc_number' in userDetails;
63
+ host = window.DEV_BASE_URL_CREDIT_CARD || '';
64
+ apiBaseURL = "".concat(host, "/api/v1");
65
+ apiPath = '/frontend/initiate-payment-generic';
66
+ search = searchToObject(window);
67
+ browserFingerprint = {
68
+ timezone: new Date().getTimezoneOffset(),
69
+ browserColorDepth: window.screen.colorDepth,
70
+ browserLanguage: navigator.language,
71
+ browserScreenHeight: window.screen.height,
72
+ browserScreenWidth: window.screen.width,
73
+ userAgent: navigator.userAgent,
74
+ browserJavaEnabled: navigator.javaEnabled ? navigator.javaEnabled() : false,
75
+ browserJavascriptEnabled: true
76
+ };
77
+ slug = (extraConfig === null || extraConfig === void 0 ? void 0 : extraConfig.slug) || '';
78
+ country = (search === null || search === void 0 ? void 0 : search.d_country) || '';
79
+ currency = (search === null || search === void 0 ? void 0 : search.d_currency) || '';
80
+ currencySlug = '';
81
+ allowedCurrencies = ['sek', 'nok', 'gbp', 'dkk', 'usd', 'sar', 'cad', 'pln', 'aed'];
82
+ localCurrencySupportedSlugs = [
83
+ 'cc_celerispay-xracademy50_099-',
84
+ 'cc_celerispay-xracademy50_001-',
85
+ 'cc_maxpay-xracademy50_001-',
86
+ 'cc_ecardon-movio50_001-',
87
+ 'cc_maxpay-movio50_001-',
88
+ 'cc_maxpay-funbox50_001-',
89
+ 'cc_maxpay-entertainu50_099-'
90
+ ];
91
+ isAllowedCurrency = allowedCurrencies.some(function (c) { return c === currency.toLowerCase(); });
92
+ isLocalCurrencySupported = localCurrencySupportedSlugs.some(function (s) { return s === slug.toLowerCase(); });
93
+ if (isLocalCurrencySupported && currency && isAllowedCurrency) {
94
+ currencySlug = "".concat(slug.slice(0, -1), ":").concat(currency.toLowerCase(), "-").concat(country.toLowerCase());
95
+ }
96
+ commonDetails = __assign(__assign(__assign(__assign({ rockman_id: (_b = window.pac_analytics.visitor) === null || _b === void 0 ? void 0 : _b.rockmanId, landing_page_url: window.location.href,
97
+ // Use conditional operation for service_id as it varies
98
+ service_id: isMaxPay ? extraConfig === null || extraConfig === void 0 ? void 0 : extraConfig.serviceId : '2' }, (slug ? { slug: currencySlug || "".concat(slug).concat(country.toLowerCase()) } : {})), (isMaxPay ? {} : { user_agent: window.navigator.userAgent, ip: window.pac_analytics.visitor.ip })), { browserFingerprint: browserFingerprint }), userDetails);
99
+ requestOptions = {
100
+ method: 'POST',
101
+ headers: new Headers({ 'Content-Type': 'application/json' }),
102
+ body: JSON.stringify(commonDetails)
103
+ };
104
+ return [2 /*return*/, fetch("".concat(apiBaseURL).concat(apiPath), requestOptions).then(function (response) { return response.json(); })];
105
+ });
106
+ });
107
+ };
108
+
109
+ function submitUserDetails(window, config, userDetails) {
110
+ var _a, _b, _c, _d, _e;
111
+ return __awaiter(this, void 0, void 0, function () {
112
+ var slug, country, device, serviceId, search, visitor, rockmanId, extraConfig, result, _f, type, error;
113
+ return __generator(this, function (_g) {
114
+ switch (_g.label) {
115
+ case 0:
116
+ slug = config.slug, country = config.country, device = config.device, serviceId = config.serviceId;
117
+ search = window.location.search.substr(1) || '';
118
+ visitor = window.pac_analytics.visitor;
119
+ rockmanId = visitor.rockmanId;
120
+ extraConfig = { serviceId: serviceId, slug: slug };
121
+ if (!((_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.pac_analytics) === null || _a === void 0 ? void 0 : _a.visitor) === null || _b === void 0 ? void 0 : _b.page) === null || _c === void 0 ? void 0 : _c.includes('agency'))) return [3 /*break*/, 2];
122
+ return [4 /*yield*/, redirect({
123
+ window: window,
124
+ slug: slug,
125
+ country: country,
126
+ device: device,
127
+ offer: (_e = (_d = window === null || window === void 0 ? void 0 : window.pac_analytics) === null || _d === void 0 ? void 0 : _d.visitor) === null || _e === void 0 ? void 0 : _e.offer,
128
+ rockmanId: rockmanId,
129
+ email: userDetails === null || userDetails === void 0 ? void 0 : userDetails.email,
130
+ password: userDetails === null || userDetails === void 0 ? void 0 : userDetails.password,
131
+ search: search
132
+ })];
133
+ case 1:
134
+ _f = _g.sent();
135
+ return [3 /*break*/, 4];
136
+ case 2: return [4 /*yield*/, creditCardPayment({ window: window, userDetails: userDetails, extraConfig: extraConfig })];
137
+ case 3:
138
+ _f = _g.sent();
139
+ _g.label = 4;
140
+ case 4:
141
+ result = _f;
142
+ if (result.success === false) {
143
+ type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : result.message;
144
+ error = new Error("".concat(type, ":\n").concat(result.message));
145
+ error.type = type;
146
+ error.errorId = result.errorId;
147
+ console.error(error);
148
+ throw error;
149
+ }
150
+ else {
151
+ return [2 /*return*/, {
152
+ gateway_url: result.gateway_url || result.redirect_url,
153
+ method: result.redirect_url ? 'redirection' : result.method,
154
+ html: result.html
155
+ }];
156
+ }
157
+ }
158
+ });
159
+ });
160
+ }
161
+
162
+ var mockedUserDetailsEntrySuccess = {
163
+ currentState: {
164
+ type: 'USER_DETAILS_ENTRY',
165
+ result: Success({
166
+ gateway_url: 'https://www.google.com',
167
+ method: 'jslink'
168
+ })
169
+ }
170
+ };
171
+ var mockedUserDetailsEntryFailure = {
172
+ currentState: {
173
+ type: 'USER_DETAILS_ENTRY',
174
+ result: Failure({
175
+ errorType: 'AlreadySubscribed',
176
+ error: 'Already Subscribed'
177
+ })
178
+ }
179
+ };
180
+ var defaultInitialState = {
181
+ currentState: {
182
+ type: 'USER_DETAILS_ENTRY',
183
+ result: NothingYet()
184
+ }
185
+ };
186
+ var setInitialState = function (window) {
187
+ var search = searchToObject(window);
188
+ if (search['mock-flow']) {
189
+ switch (search['current-state']) {
190
+ case 'user-details-entry-failure-state':
191
+ return mockedUserDetailsEntryFailure;
192
+ case 'user-details-entry-success-state':
193
+ return mockedUserDetailsEntrySuccess;
194
+ default:
195
+ console.error('Mock Flow not supported');
196
+ return defaultInitialState;
197
+ }
198
+ }
199
+ else {
200
+ return defaultInitialState;
201
+ }
202
+ };
203
+ var initialState = setInitialState(window);
204
+ /**
205
+ * submitUserDetailsAction
206
+ * @returns {type: ' 'pinFlow/submitUserDetailsAction', payload: {type: PossibleTypes, result: USERDETAILSEntryState}}
207
+
208
+ * Calls redirect or max api and returns a url
209
+ *
210
+ */
211
+ var submitUserDetailsAction = createAsyncThunk('creditCardFlow/submitUserDetailsAction', function (_a, _b) {
212
+ var window = _a.window, userDetails = _a.userDetails;
213
+ var getState = _b.getState, rejectWithValue = _b.rejectWithValue;
214
+ return __awaiter(void 0, void 0, void 0, function () {
215
+ var state, config, _c, gateway_url_1, method, html, ex_1, errorType;
216
+ var _d, _e, _f;
217
+ return __generator(this, function (_g) {
218
+ switch (_g.label) {
219
+ case 0:
220
+ state = getState();
221
+ if (!((_f = (_e = (_d = state === null || state === void 0 ? void 0 : state.strategy) === null || _d === void 0 ? void 0 : _d.currentState) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.config)) {
222
+ return [2 /*return*/, rejectWithValue({
223
+ errorType: 'UnexpectedState'
224
+ })];
225
+ }
226
+ config = state.strategy.currentState.data.config;
227
+ _g.label = 1;
228
+ case 1:
229
+ _g.trys.push([1, 3, , 4]);
230
+ // Start Credit Card API
231
+ tracker.advancedInFlow('tallyman.v1-credit-card', 'cc-form-submitted', { email: userDetails === null || userDetails === void 0 ? void 0 : userDetails.email });
232
+ return [4 /*yield*/, submitUserDetails(window, config, userDetails)];
233
+ case 2:
234
+ _c = _g.sent(), gateway_url_1 = _c.gateway_url, method = _c.method, html = _c.html;
235
+ tracker.advancedInFlow('tallyman.v1-credit-card', 'cc-form-submission-success', {
236
+ email: userDetails === null || userDetails === void 0 ? void 0 : userDetails.email,
237
+ gateway_url: gateway_url_1
238
+ });
239
+ // Start Credit Card API
240
+ if (method === 'jslink' && gateway_url_1) {
241
+ tracker.advancedInFlow('tallyman.v1-credit-card', 'load-script-start', { gateway_url: gateway_url_1 });
242
+ loadScriptSrc({
243
+ id: 'ecardon-credit-card',
244
+ url: gateway_url_1,
245
+ callBack: function () {
246
+ tracker.advancedInFlow('tallyman.v1-credit-card', 'load-script-success', { gateway_url: gateway_url_1 });
247
+ }
248
+ });
249
+ }
250
+ if (method === 'redirection' && gateway_url_1) {
251
+ tracker.customEvent('Flow', 'advance-auto', 'redirect-success', { redirect_url: gateway_url_1 });
252
+ window.location.href = gateway_url_1;
253
+ }
254
+ if (method === 'html' && html) {
255
+ tracker.advancedInFlow('tallyman.v1-credit-card', 'get-html-success');
256
+ }
257
+ return [2 /*return*/, {
258
+ type: 'USER_DETAILS_ENTRY',
259
+ result: Success({ gateway_url: gateway_url_1, method: method, html: html })
260
+ }];
261
+ case 3:
262
+ ex_1 = _g.sent();
263
+ console.warn(ex_1);
264
+ errorType = void 0;
265
+ switch (ex_1.type) {
266
+ case 'AlreadySubscribed':
267
+ errorType = 'AlreadySubscribed';
268
+ break;
269
+ case 'InvalidUserDetails':
270
+ errorType = 'InvalidUserDetails';
271
+ break;
272
+ default:
273
+ errorType = 'UnknownError';
274
+ }
275
+ tracker.recedeInFlow('tallyman.v1-credit-card', 'cc-form-submission-failure', {
276
+ email: userDetails === null || userDetails === void 0 ? void 0 : userDetails.email,
277
+ errorType: errorType || ex_1.type,
278
+ errorId: (ex_1 === null || ex_1 === void 0 ? void 0 : ex_1.errorId) || ''
279
+ });
280
+ return [2 /*return*/, rejectWithValue({
281
+ errorType: errorType,
282
+ error: ex_1.toString(),
283
+ errorId: (ex_1 === null || ex_1 === void 0 ? void 0 : ex_1.errorId) || ''
284
+ })];
285
+ case 4: return [2 /*return*/];
286
+ }
287
+ });
288
+ });
289
+ });
290
+ var creditCardFlowSlice = createSlice({
291
+ name: 'creditCardFlow',
292
+ initialState: initialState,
293
+ reducers: {},
294
+ extraReducers: function (builder) {
295
+ builder
296
+ .addCase(submitUserDetailsAction.pending, function (state) {
297
+ state.currentState = { type: 'USER_DETAILS_ENTRY', result: Loading() };
298
+ })
299
+ .addCase(submitUserDetailsAction.fulfilled, function (state, action) {
300
+ state.currentState = action.payload;
301
+ })
302
+ .addCase(submitUserDetailsAction.rejected, function (state, action) {
303
+ state.currentState = {
304
+ type: 'USER_DETAILS_ENTRY',
305
+ result: Failure(action.payload)
306
+ };
307
+ });
308
+ }
309
+ });
310
+ // Export reducers and actions
311
+ var creditCardFlowReducer = creditCardFlowSlice.reducer; creditCardFlowSlice.actions;
312
+
313
+ var useCreditCardFlowState = function (useSelector) {
314
+ var currentState = useSelector(function (state) { return state.creditCardFlow.currentState; });
315
+ return currentState;
316
+ };
317
+
318
+ function creditCardFlowMatch(_a) {
319
+ var userDetailsEntry = _a.userDetailsEntry;
320
+ return function (state) {
321
+ switch (state.type) {
322
+ case 'USER_DETAILS_ENTRY':
323
+ return userDetailsEntry(state.result);
324
+ default:
325
+ // TODO - this should be an error or something
326
+ return userDetailsEntry(state.result);
327
+ }
328
+ };
329
+ }
330
+
331
+ export { creditCardFlowMatch, creditCardFlowReducer, submitUserDetailsAction, useCreditCardFlowState };
2
332
  //# sourceMappingURL=creditCardFlow.js.map
@@ -1 +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\n/**\n * Loads a script from the specified URL and optionally executes a reCAPTCHA if the `isRecaptcha` flag is set.\n *\n * @param {Object} options - An object containing the following properties:\n * - {string} url: The URL of the script to load.\n * - {string} [key]: The reCAPTCHA key to use for execution. (Optional)\n * - {boolean} [isRecaptcha]: Flag indicating whether to execute a reCAPTCHA. Defaults to false.\n * - {function} [callBack]: A callback function to be called if there is an error loading the script. (Optional)\n * - {string} [id]: The ID to assign to the injected script. Defaults to an empty string.\n * @return {void}\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';\nimport { searchToObject } from '../../utilities/searchToObject';\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 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; slug: 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 = '/frontend/initiate-payment-generic';\n const search = searchToObject(window) as any;\n // Common userDetails properties\n\n const browserFingerprint = {\n timezone: new Date().getTimezoneOffset(),\n browserColorDepth: window.screen.colorDepth,\n browserLanguage: navigator.language,\n browserScreenHeight: window.screen.height,\n browserScreenWidth: window.screen.width,\n userAgent: navigator.userAgent,\n browserJavaEnabled: navigator.javaEnabled ? navigator.javaEnabled() : false,\n browserJavascriptEnabled: true\n };\n\n const slug = extraConfig?.slug || '';\n const country = search?.d_country || '';\n const currency = search?.d_currency || '';\n let currencySlug = '';\n const allowedCurrencies = ['sek', 'nok', 'gbp', 'dkk', 'usd', 'sar', 'cad', 'pln', 'aed'];\n const localCurrencySupportedSlugs = [\n 'cc_celerispay-xracademy50_099-',\n 'cc_celerispay-xracademy50_001-',\n 'cc_maxpay-xracademy50_001-',\n 'cc_ecardon-movio50_001-',\n 'cc_maxpay-movio50_001-',\n 'cc_maxpay-funbox50_001-',\n 'cc_maxpay-entertainu50_099-'\n ];\n const isAllowedCurrency = allowedCurrencies.some((c) => c === currency.toLowerCase());\n const isLocalCurrencySupported = localCurrencySupportedSlugs.some((s) => s === slug.toLowerCase());\n\n if (isLocalCurrencySupported && currency && isAllowedCurrency) {\n currencySlug = `${slug.slice(0, -1)}:${currency.toLowerCase()}-${country.toLowerCase()}`;\n }\n\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 ...(slug ? { slug: currencySlug || `${slug}${country.toLowerCase()}` } : {}),\n ...(isMaxPay ? {} : { user_agent: window.navigator.userAgent, ip: window.pac_analytics.visitor.ip }),\n browserFingerprint,\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 { IUserDetails, IUserDetailsEcardon, IUserDetailsSubmissionResult } 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 method: string;\n gateway_url?: string;\n html?: 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, slug };\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 error.errorId = result.errorId;\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 html: result.html\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 { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport loadScriptSrc from '../../utilities/loadScriptSrc';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { tracker } from '../../utilities/tracker';\nimport { submitUserDetails } from './main';\n\nconst 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\nconst 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\nconst defaultInitialState: CreditCardFlowState = {\n currentState: {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.NothingYet()\n }\n};\n\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'user-details-entry-failure-state':\n return mockedUserDetailsEntryFailure;\n case 'user-details-entry-success-state':\n return mockedUserDetailsEntrySuccess;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\ninterface 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 if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\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, html } = 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 if (method === 'html' && html) {\n tracker.advancedInFlow('tallyman.v1-credit-card', 'get-html-success');\n }\n return {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.Success<SubmitUserDetailsFailure, SubmitUserDetailsSuccess>({ gateway_url, method, html })\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 errorId: ex?.errorId || ''\n });\n\n return rejectWithValue({\n errorType,\n error: ex.toString(),\n errorId: ex?.errorId || ''\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","fetch","then","x","json","creditCardPayment","userDetails","extraConfig","isMaxPay","DEV_BASE_URL_CREDIT_CARD","apiBaseURL","searchToObject","browserFingerprint","timezone","Date","getTimezoneOffset","browserColorDepth","screen","colorDepth","browserLanguage","navigator","language","browserScreenHeight","height","browserScreenWidth","width","userAgent","browserJavaEnabled","javaEnabled","browserJavascriptEnabled","d_country","currency","d_currency","currencySlug","localCurrencySupportedSlugs","isAllowedCurrency","some","c","toLowerCase","s","slice","commonDetails","landing_page_url","service_id","serviceId","user_agent","ip","requestOptions","method","headers","Headers","body","JSON","stringify","response","submitUserDetails","config","substr","_e","_f","_g","result","success","type","message","error","Error","errorId","console","gateway_url","redirect_url","html","mockedUserDetailsEntrySuccess","currentState","RDS.Success","mockedUserDetailsEntryFailure","RDS.Failure","errorType","defaultInitialState","RDS.NothingYet","initialState","setInitialState","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","warn","ex_1","recedeInFlow","creditCardFlowSlice","createSlice","name","reducers","extraReducers","builder","addCase","pending","RDS.Loading","fulfilled","payload","rejected","creditCardFlowReducer","reducer","actions","useCreditCardFlowState","useSelector","creditCardFlow","creditCardFlowMatch","userDetailsEntry"],"mappings":"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"}
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\n/**\n * Loads a script from the specified URL and optionally executes a reCAPTCHA if the `isRecaptcha` flag is set.\n *\n * @param {Object} options - An object containing the following properties:\n * - {string} url: The URL of the script to load.\n * - {string} [key]: The reCAPTCHA key to use for execution. (Optional)\n * - {boolean} [isRecaptcha]: Flag indicating whether to execute a reCAPTCHA. Defaults to false.\n * - {function} [callBack]: A callback function to be called if there is an error loading the script. (Optional)\n * - {string} [id]: The ID to assign to the injected script. Defaults to an empty string.\n * @return {void}\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';\nimport { searchToObject } from '../../utilities/searchToObject';\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 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; slug: 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 = '/frontend/initiate-payment-generic';\n const search = searchToObject(window) as any;\n // Common userDetails properties\n\n const browserFingerprint = {\n timezone: new Date().getTimezoneOffset(),\n browserColorDepth: window.screen.colorDepth,\n browserLanguage: navigator.language,\n browserScreenHeight: window.screen.height,\n browserScreenWidth: window.screen.width,\n userAgent: navigator.userAgent,\n browserJavaEnabled: navigator.javaEnabled ? navigator.javaEnabled() : false,\n browserJavascriptEnabled: true\n };\n\n const slug = extraConfig?.slug || '';\n const country = search?.d_country || '';\n const currency = search?.d_currency || '';\n let currencySlug = '';\n const allowedCurrencies = ['sek', 'nok', 'gbp', 'dkk', 'usd', 'sar', 'cad', 'pln', 'aed'];\n const localCurrencySupportedSlugs = [\n 'cc_celerispay-xracademy50_099-',\n 'cc_celerispay-xracademy50_001-',\n 'cc_maxpay-xracademy50_001-',\n 'cc_ecardon-movio50_001-',\n 'cc_maxpay-movio50_001-',\n 'cc_maxpay-funbox50_001-',\n 'cc_maxpay-entertainu50_099-'\n ];\n const isAllowedCurrency = allowedCurrencies.some((c) => c === currency.toLowerCase());\n const isLocalCurrencySupported = localCurrencySupportedSlugs.some((s) => s === slug.toLowerCase());\n\n if (isLocalCurrencySupported && currency && isAllowedCurrency) {\n currencySlug = `${slug.slice(0, -1)}:${currency.toLowerCase()}-${country.toLowerCase()}`;\n }\n\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 ...(slug ? { slug: currencySlug || `${slug}${country.toLowerCase()}` } : {}),\n ...(isMaxPay ? {} : { user_agent: window.navigator.userAgent, ip: window.pac_analytics.visitor.ip }),\n browserFingerprint,\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 { IUserDetails, IUserDetailsEcardon, IUserDetailsSubmissionResult } 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 method: string;\n gateway_url?: string;\n html?: 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, slug };\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 error.errorId = result.errorId;\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 html: result.html\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 { IMockFlowParams, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport loadScriptSrc from '../../utilities/loadScriptSrc';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { tracker } from '../../utilities/tracker';\nimport { submitUserDetails } from './main';\n\nconst 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\nconst 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\nconst defaultInitialState: CreditCardFlowState = {\n currentState: {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.NothingYet()\n }\n};\n\nconst setInitialState = (window: Window) => {\n const search = searchToObject(window) as IMockFlowParams<any>;\n if (search['mock-flow']) {\n switch (search['current-state']) {\n case 'user-details-entry-failure-state':\n return mockedUserDetailsEntryFailure;\n case 'user-details-entry-success-state':\n return mockedUserDetailsEntrySuccess;\n default:\n console.error('Mock Flow not supported');\n return defaultInitialState;\n }\n } else {\n return defaultInitialState;\n }\n};\n\nconst initialState = setInitialState(window);\n\ninterface 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 if (!state?.strategy?.currentState?.data?.config) {\n return rejectWithValue({\n errorType: 'UnexpectedState'\n });\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, html } = 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 if (method === 'html' && html) {\n tracker.advancedInFlow('tallyman.v1-credit-card', 'get-html-success');\n }\n return {\n type: 'USER_DETAILS_ENTRY',\n result: RDS.Success<SubmitUserDetailsFailure, SubmitUserDetailsSuccess>({ gateway_url, method, html })\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 errorId: ex?.errorId || ''\n });\n\n return rejectWithValue({\n errorType,\n error: ex.toString(),\n errorId: ex?.errorId || ''\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":["RDS.Success","RDS.Failure","RDS.NothingYet","RDS.Loading"],"mappings":"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"}