ouisys-engine 4.6.3 → 4.7.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/dist/RemoteDataState-CwHLI23e.js +75 -0
  2. package/dist/RemoteDataState-CwHLI23e.js.map +1 -0
  3. package/dist/bupperizeCountry-CCDIOHP6.js +4 -0
  4. package/dist/bupperizeCountry-CCDIOHP6.js.map +1 -0
  5. package/dist/checkSubscriptionByRockmanIdOnly-C89Ph9cV.js +27 -0
  6. package/dist/checkSubscriptionByRockmanIdOnly-C89Ph9cV.js.map +1 -0
  7. package/dist/checkSubscriptionHander.js +53 -0
  8. package/dist/checkSubscriptionHander.js.map +1 -0
  9. package/dist/click2smsFlow.js +246 -0
  10. package/dist/click2smsFlow.js.map +1 -0
  11. package/dist/creditCardFlow.js +248 -0
  12. package/dist/creditCardFlow.js.map +1 -0
  13. package/dist/getConfig.js +14 -0
  14. package/dist/getConfig.js.map +1 -0
  15. package/dist/handleClickChainFlow.js +32 -0
  16. package/dist/handleClickChainFlow.js.map +1 -0
  17. package/dist/handleSubmitNumber.js +65 -0
  18. package/dist/handleSubmitNumber.js.map +1 -0
  19. package/dist/helpers-J_h-ZgxH.js +29 -0
  20. package/dist/helpers-J_h-ZgxH.js.map +1 -0
  21. package/dist/loadScriptInnerHtml-DPcoY467.js +26 -0
  22. package/dist/loadScriptInnerHtml-DPcoY467.js.map +1 -0
  23. package/dist/moFlow.js +275 -0
  24. package/dist/moFlow.js.map +1 -0
  25. package/dist/moRedirFlow.js +225 -0
  26. package/dist/moRedirFlow.js.map +1 -0
  27. package/dist/oneClickFlow.js +464 -0
  28. package/dist/oneClickFlow.js.map +1 -0
  29. package/dist/pinFlow.js +697 -0
  30. package/dist/pinFlow.js.map +1 -0
  31. package/dist/searchToObject.js +19 -0
  32. package/dist/searchToObject.js.map +1 -0
  33. package/dist/storeMsisdn-ChiBh8mI.js +58 -0
  34. package/dist/storeMsisdn-ChiBh8mI.js.map +1 -0
  35. package/dist/strategy.js +50 -0
  36. package/dist/strategy.js.map +1 -0
  37. package/dist/strategySlice-bF74rxDK.js +842 -0
  38. package/dist/strategySlice-bF74rxDK.js.map +1 -0
  39. package/dist/tracker-B_zsMRN2.js +79 -0
  40. package/dist/tracker-B_zsMRN2.js.map +1 -0
  41. package/dist/tracker.js +5 -0
  42. package/dist/tracker.js.map +1 -0
  43. package/dist/tryGetIPRangeName-C69HEG5W.js +42 -0
  44. package/dist/tryGetIPRangeName-C69HEG5W.js.map +1 -0
  45. package/dist/types/CreditCardTypes-B-IT-l6I.d.ts +72 -0
  46. package/dist/types/IHash-0OgZ_1ij.d.ts +5 -0
  47. package/dist/types/MoRedirTypes-4tEJjT1g.d.ts +31 -0
  48. package/dist/types/MoTypes-D-UK92gs.d.ts +45 -0
  49. package/dist/types/OneClickTypes-DF0jodl-.d.ts +69 -0
  50. package/dist/types/PinTypes-BLJDBZe6.d.ts +128 -0
  51. package/dist/types/RemoteDataState-D1aFrz8W.d.ts +61 -0
  52. package/dist/types/StrategyTypes-BEIYqoJV.d.ts +325 -0
  53. package/dist/types/UssdTypes-C7QlIW11.d.ts +34 -0
  54. package/dist/types/checkSubscriptionHander.d.ts +8 -0
  55. package/dist/types/click2smsFlow.d.ts +37 -0
  56. package/dist/types/creditCardFlow.d.ts +37 -0
  57. package/dist/types/getConfig.d.ts +38 -0
  58. package/dist/types/handleClickChainFlow.d.ts +6 -0
  59. package/dist/types/handleSubmitNumber.d.ts +26 -0
  60. package/dist/types/moFlow.d.ts +70 -0
  61. package/dist/types/moRedirFlow.d.ts +82 -0
  62. package/dist/types/oneClickFlow.d.ts +56 -0
  63. package/dist/types/pinFlow.d.ts +179 -0
  64. package/dist/types/searchToObject.d.ts +3 -0
  65. package/dist/types/strategy.d.ts +86 -0
  66. package/dist/types/tracker.d.ts +5 -0
  67. package/dist/types/ussdFlow.d.ts +84 -0
  68. package/dist/ussdFlow.js +211 -0
  69. package/dist/ussdFlow.js.map +1 -0
  70. package/package.json +85 -9
  71. package/.babelrc +0 -30
  72. package/.browserslistrc +0 -6
  73. package/.eslintrc.js +0 -3
  74. package/.nvmrc +0 -1
  75. package/.prettierignore +0 -4
  76. package/dist/@types/react-tracker.d.js +0 -1
  77. package/dist/@types/redux-cli-logger.d.js +0 -1
  78. package/dist/@types/tiny-async-pool.d.js +0 -1
  79. package/dist/@types/window.d.js +0 -1
  80. package/dist/api/index.d.ts +0 -43
  81. package/dist/api/index.js +0 -1
  82. package/dist/common-types/AppThunk.d.ts +0 -13
  83. package/dist/common-types/AppThunk.js +0 -1
  84. package/dist/common-types/Either.d.ts +0 -8
  85. package/dist/common-types/Either.js +0 -1
  86. package/dist/common-types/IError.d.ts +0 -3
  87. package/dist/common-types/IError.js +0 -1
  88. package/dist/common-types/IOptInFlowName.d.ts +0 -1
  89. package/dist/common-types/IOptInFlowName.js +0 -1
  90. package/dist/common-types/ITracker.d.ts +0 -9
  91. package/dist/common-types/ITracker.js +0 -1
  92. package/dist/common-types/IVisitor.d.ts +0 -14
  93. package/dist/common-types/IVisitor.js +0 -1
  94. package/dist/common-types/RemoteDataState.d.ts +0 -38
  95. package/dist/common-types/RemoteDataState.js +0 -1
  96. package/dist/custom-hooks/useOneClickRedirectUrl.d.ts +0 -3
  97. package/dist/custom-hooks/useOneClickRedirectUrl.js +0 -1
  98. package/dist/custom-hooks/usePinEntryState.d.ts +0 -8
  99. package/dist/custom-hooks/usePinEntryState.js +0 -1
  100. package/dist/custom-hooks/useStrategyConfig.d.ts +0 -4
  101. package/dist/custom-hooks/useStrategyConfig.js +0 -1
  102. package/dist/flows/click2smsFlow.d.ts +0 -6
  103. package/dist/flows/click2smsFlow.js +0 -1
  104. package/dist/flows/creditCardFlow.d.ts +0 -6
  105. package/dist/flows/creditCardFlow.js +0 -1
  106. package/dist/flows/moFlow.d.ts +0 -6
  107. package/dist/flows/moFlow.js +0 -1
  108. package/dist/flows/moRedirFlow.d.ts +0 -6
  109. package/dist/flows/moRedirFlow.js +0 -1
  110. package/dist/flows/oneClickFlow.d.ts +0 -7
  111. package/dist/flows/oneClickFlow.js +0 -1
  112. package/dist/flows/pinFlow.d.ts +0 -7
  113. package/dist/flows/pinFlow.js +0 -1
  114. package/dist/flows/strategy.d.ts +0 -14
  115. package/dist/flows/strategy.js +0 -1
  116. package/dist/flows/ussdFlow.d.ts +0 -6
  117. package/dist/flows/ussdFlow.js +0 -1
  118. package/dist/index.d.ts +0 -0
  119. package/dist/index.js +0 -1
  120. package/dist/ips/tryGetIPRangeName.d.ts +0 -2
  121. package/dist/ips/tryGetIPRangeName.js +0 -1
  122. package/dist/jest.config.js +0 -194
  123. package/dist/pacman/index.d.ts +0 -6
  124. package/dist/pacman/index.js +0 -1
  125. package/dist/pacman/queryString.d.ts +0 -3
  126. package/dist/pacman/queryString.js +0 -1
  127. package/dist/reducers/click2smsFlow/Click2smsTypes.d.ts +0 -76
  128. package/dist/reducers/click2smsFlow/Click2smsTypes.js +0 -1
  129. package/dist/reducers/click2smsFlow/IClick2smsConstants.d.ts +0 -2
  130. package/dist/reducers/click2smsFlow/IClick2smsConstants.js +0 -1
  131. package/dist/reducers/click2smsFlow/index.d.ts +0 -5
  132. package/dist/reducers/click2smsFlow/index.js +0 -1
  133. package/dist/reducers/click2smsFlow/utils.d.ts +0 -4
  134. package/dist/reducers/click2smsFlow/utils.js +0 -1
  135. package/dist/reducers/creditCardFlow/CreditCardTypes.d.ts +0 -79
  136. package/dist/reducers/creditCardFlow/CreditCardTypes.js +0 -1
  137. package/dist/reducers/creditCardFlow/ICreditCardConstants.d.ts +0 -2
  138. package/dist/reducers/creditCardFlow/ICreditCardConstants.js +0 -1
  139. package/dist/reducers/creditCardFlow/index.d.ts +0 -5
  140. package/dist/reducers/creditCardFlow/index.js +0 -1
  141. package/dist/reducers/creditCardFlow/utils.d.ts +0 -8
  142. package/dist/reducers/creditCardFlow/utils.js +0 -1
  143. package/dist/reducers/moFlow/IMoConstants.d.ts +0 -2
  144. package/dist/reducers/moFlow/IMoConstants.js +0 -1
  145. package/dist/reducers/moFlow/MoTypes.d.ts +0 -88
  146. package/dist/reducers/moFlow/MoTypes.js +0 -1
  147. package/dist/reducers/moFlow/index.d.ts +0 -16
  148. package/dist/reducers/moFlow/index.js +0 -1
  149. package/dist/reducers/moFlow/utils.d.ts +0 -12
  150. package/dist/reducers/moFlow/utils.js +0 -1
  151. package/dist/reducers/moRedirFlow/IMoRedirConstants.d.ts +0 -2
  152. package/dist/reducers/moRedirFlow/IMoRedirConstants.js +0 -1
  153. package/dist/reducers/moRedirFlow/MoRedirTypes.d.ts +0 -64
  154. package/dist/reducers/moRedirFlow/MoRedirTypes.js +0 -1
  155. package/dist/reducers/moRedirFlow/index.d.ts +0 -14
  156. package/dist/reducers/moRedirFlow/index.js +0 -1
  157. package/dist/reducers/moRedirFlow/utils.d.ts +0 -10
  158. package/dist/reducers/moRedirFlow/utils.js +0 -1
  159. package/dist/reducers/oneClickFlow/IOneClickConstants.d.ts +0 -2
  160. package/dist/reducers/oneClickFlow/IOneClickConstants.js +0 -1
  161. package/dist/reducers/oneClickFlow/OneClickTypes.d.ts +0 -85
  162. package/dist/reducers/oneClickFlow/OneClickTypes.js +0 -1
  163. package/dist/reducers/oneClickFlow/index.d.ts +0 -13
  164. package/dist/reducers/oneClickFlow/index.js +0 -1
  165. package/dist/reducers/oneClickFlow/utils.d.ts +0 -16
  166. package/dist/reducers/oneClickFlow/utils.js +0 -1
  167. package/dist/reducers/pinFlow/IPinConstants.d.ts +0 -2
  168. package/dist/reducers/pinFlow/IPinConstants.js +0 -1
  169. package/dist/reducers/pinFlow/PinTypes.d.ts +0 -156
  170. package/dist/reducers/pinFlow/PinTypes.js +0 -1
  171. package/dist/reducers/pinFlow/index.d.ts +0 -19
  172. package/dist/reducers/pinFlow/index.js +0 -1
  173. package/dist/reducers/pinFlow/utils.d.ts +0 -11
  174. package/dist/reducers/pinFlow/utils.js +0 -1
  175. package/dist/reducers/strategy/IStategyActionContants.d.ts +0 -2
  176. package/dist/reducers/strategy/IStategyActionContants.js +0 -1
  177. package/dist/reducers/strategy/StrategyTypes.d.ts +0 -248
  178. package/dist/reducers/strategy/StrategyTypes.js +0 -1
  179. package/dist/reducers/strategy/index.d.ts +0 -13
  180. package/dist/reducers/strategy/index.js +0 -1
  181. package/dist/reducers/strategy/strategies/ask_mobile_number.d.ts +0 -15
  182. package/dist/reducers/strategy/strategies/ask_mobile_number.js +0 -1
  183. package/dist/reducers/strategy/strategies/ask_operator.d.ts +0 -5
  184. package/dist/reducers/strategy/strategies/ask_operator.js +0 -1
  185. package/dist/reducers/strategy/strategies/detect_operator_by_ip.d.ts +0 -10
  186. package/dist/reducers/strategy/strategies/detect_operator_by_ip.js +0 -1
  187. package/dist/reducers/strategy/strategies/header_enrichment.d.ts +0 -7
  188. package/dist/reducers/strategy/strategies/header_enrichment.js +0 -1
  189. package/dist/reducers/strategy/strategies/injectHeaderEnrichmentScript.d.ts +0 -7
  190. package/dist/reducers/strategy/strategies/injectHeaderEnrichmentScript.js +0 -1
  191. package/dist/reducers/strategy/utils.d.ts +0 -30
  192. package/dist/reducers/strategy/utils.js +0 -1
  193. package/dist/reducers/ussdFlow/IUssdConstants.d.ts +0 -2
  194. package/dist/reducers/ussdFlow/IUssdConstants.js +0 -1
  195. package/dist/reducers/ussdFlow/UssdTypes.d.ts +0 -77
  196. package/dist/reducers/ussdFlow/UssdTypes.js +0 -1
  197. package/dist/reducers/ussdFlow/index.d.ts +0 -14
  198. package/dist/reducers/ussdFlow/index.js +0 -1
  199. package/dist/reducers/ussdFlow/utils.d.ts +0 -11
  200. package/dist/reducers/ussdFlow/utils.js +0 -1
  201. package/dist/store/index.d.ts +0 -14
  202. package/dist/store/index.js +0 -1
  203. package/dist/store/reducers.d.ts +0 -20
  204. package/dist/store/reducers.js +0 -1
  205. package/dist/utilities/addEmpelloToken.d.ts +0 -4
  206. package/dist/utilities/addEmpelloToken.js +0 -1
  207. package/dist/utilities/handleSubmitNumber.d.ts +0 -21
  208. package/dist/utilities/handleSubmitNumber.js +0 -1
  209. package/dist/utilities/index.d.ts +0 -17
  210. package/dist/utilities/index.js +0 -1
  211. package/dist/utilities/loadScriptInnerHtml.d.ts +0 -2
  212. package/dist/utilities/loadScriptInnerHtml.js +0 -1
  213. package/dist/utilities/loadScriptSrc.d.ts +0 -8
  214. package/dist/utilities/loadScriptSrc.js +0 -1
  215. package/dist/utilities/replaceUrlParam.d.ts +0 -1
  216. package/dist/utilities/replaceUrlParam.js +0 -1
  217. package/dist/utilities/storeMsisdn.d.ts +0 -3
  218. package/dist/utilities/storeMsisdn.js +0 -1
  219. package/index.html +0 -49
  220. package/mockData/config.json +0 -28
  221. package/setupJest.js +0 -6
  222. package/tsconfig.json +0 -28
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pinFlow.js","sources":["../src/flows/pinFlow/hooks/usePinFlowState.ts","../src/flows/pinFlow/match.ts","../src/sharedApi/checkSubscription.ts","../src/flows/pinFlow/api.ts","../src/flows/pinFlow/main.ts","../src/flows/pinFlow/pinFlowSlice.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const usePinFlowState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.pinFlow.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n IMsisdnSumbitNextData,\n MSISDNEntryFailure,\n MSISDNEntrySuccess,\n PINEntryFailure,\n PINEntrySuccess,\n PinFlowCurrentState\n} from '../../sharedFlowTypes/PinTypes';\n\nfunction pinFlowMatch<R>({\n msisdnEntry,\n pinEntry\n}: {\n msisdnEntry: (rds: RDS.RemoteDataState<MSISDNEntryFailure, MSISDNEntrySuccess>) => R;\n pinEntry: (rds: RDS.RemoteDataState<PINEntryFailure, PINEntrySuccess>, nextData: IMsisdnSumbitNextData) => R;\n}): (state: PinFlowCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case 'MSISDNEntry':\n return msisdnEntry(state.result);\n case 'PINEntry':\n return pinEntry(state.result, state.data);\n default:\n throw new Error('Invalid State');\n }\n };\n}\n\nexport { pinFlowMatch };\n","import { ICheckSubscriptionResult } from '../common-types/ICheckSubscriptionResult';\nimport { IHash } from '../common-types/IHash';\nimport { bupperizeCountry } from '../utilities/bupperizeCountry';\n\nconst checkSubscription = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n extraParams?: IHash; // Marked as optional if currently unused\n}): Promise<ICheckSubscriptionResult> => {\n const params = {\n action: 'check-subscription',\n country: bupperizeCountry(country),\n slug,\n device,\n offerId: offer,\n rockman_id: rockmanId\n };\n\n const queryString = Object.entries(params)\n .filter(([_, value]) => value !== undefined && value !== null)\n .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)\n .join('&');\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}`;\n return fetch(url).then((response) => response.json());\n};\n\nexport { checkSubscription };\n","import { IHash, IMcpShieldResult, IMSISDNSubmissionResult, IPINSubmissionResult } from '../../sharedFlowTypes/PinTypes';\nimport { bupperizeCountry } from '../../utilities/bupperizeCountry';\n\nconst checkIsCleanTraffic = (country: string): string => {\n if (country === 'be') {\n if (typeof window !== 'undefined' && window.shouldBlock === true) {\n return '&is-clean-traffic=false';\n }\n return '&is-clean-traffic=true';\n }\n return '';\n};\nconst triggerPin = async ({\n window,\n country,\n slug,\n device,\n offer,\n msisdn,\n rockmanId,\n extraParams,\n search,\n uniqid,\n evinaTid\n}: {\n window?: Window;\n country: string;\n slug: string;\n device: 'smart' | 'feature';\n offer: string;\n msisdn: string;\n rockmanId: string;\n extraParams: IHash;\n search: string;\n uniqid?: string;\n evinaTid?: string;\n}): Promise<IMSISDNSubmissionResult> => {\n const cleanTrafficString = checkIsCleanTraffic(country);\n const extraParamsQs = `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n\n // Base parameters object\n const params = {\n action: 'trigger-pin',\n country,\n slug,\n device,\n offerId: offer,\n msisdn,\n rockman_id: rockmanId,\n sam_evina_tid: evinaTid,\n page: encodeURIComponent(window?.location?.href),\n language_code: window.languageCode || '',\n antifraud_id: window.antifraud_id || '',\n partner_transaction_id: window.partner_transaction_id || '',\n partner_timestamp: window.partner_timestamp || '',\n partner_cid: window.partner_cid || '',\n uniqid: uniqid || ''\n };\n\n // Convert params object to query string\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${cleanTrafficString}${extraParamsQs}&${search}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nconst verifyPin = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n pin,\n extraParams,\n uniqid,\n evinaTid\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n pin: string;\n extraParams: IHash;\n uniqid: string;\n evinaTid: string;\n}): Promise<IPINSubmissionResult> => {\n const cleanTrafficString = checkIsCleanTraffic(country);\n const extraParamsQs = `&${Object.keys(extraParams)\n .map((k) => `${k}=${extraParams[k]}`)\n .join('&')}`;\n\n // Base parameters object\n const params = {\n action: 'verify-pin',\n country: bupperizeCountry(country),\n slug,\n device,\n offerId: offer,\n rockman_id: rockmanId,\n pin,\n page: encodeURIComponent(window?.location?.href),\n language_code: window.languageCode || '',\n antifraud_id: window.antifraud_id || '',\n ClickID: window.antifraud_click_id || '',\n partner_cid: window.partner_cid || '',\n sam_evina_tid: evinaTid,\n uniqid\n };\n\n // Convert params object to query string\n const queryString = Object.entries(params)\n .filter(([_, value]) => value)\n .map(([key, value]) => `${key}=${value}`)\n .join('&');\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${queryString}${cleanTrafficString}${extraParamsQs}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nconst mcpShield = async ({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n operator,\n uniqid\n}: {\n window: Window;\n country: string;\n slug: string;\n device: string;\n offer: string;\n rockmanId: string;\n operator?: string;\n uniqid?: string;\n}): Promise<IMcpShieldResult> => {\n const pageUrl = window.location.href;\n const ipAdd = window.pac_analytics.visitor.ip;\n\n const params = new URLSearchParams({\n action: 'mcp-shield',\n country,\n slug,\n device,\n offerId: offer.toString(),\n rockman_id: rockmanId,\n client_lpu: pageUrl,\n ...(operator && { operator }),\n ...(uniqid && { uniqid })\n });\n\n // Conditionally add client_ip if it exists\n if (ipAdd) {\n params.append('client_ip', ipAdd);\n }\n\n const host = window.DEV_BASE_URL || '';\n const url = `${host}/tallyman/v1/?${params.toString()}`;\n\n return fetch(url).then((x) => x.json());\n};\n\nexport { triggerPin, verifyPin, mcpShield };\n","import { ICheckSubscriptionResult } from '../../common-types/ICheckSubscriptionResult';\nimport { IError } from '../../common-types/IError';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport { checkSubscription } from '../../sharedApi/checkSubscription';\nimport {\n IHash,\n IMcpShieldResult,\n IMSISDNSubmissionResult,\n IPINSubmissionResult,\n MSISDNEntryFailure,\n MSISDNEntrySuccess,\n MultiOperatorMSISDNSubmissionResult,\n PINEntryFailure,\n PINEntrySuccess,\n PinFlowState,\n SingleMSISDNSubmissionResult\n} from '../../sharedFlowTypes/PinTypes';\nimport { IConfig, IStrategyIDentifyUserResult } from '../../sharedFlowTypes/StrategyTypes';\nimport { left, loop, right } from '../../utilities/helpers';\nimport { loadScriptInnerHtml } from '../../utilities/loadScriptInnerHtml';\nimport { searchToObject } from '../../utilities/searchToObject';\nimport { mcpShield, triggerPin, verifyPin } from './api';\n\nexport default async function submitMSISDN(\n window: Window,\n maybeConfig: IConfig,\n internationalMSISDN: string,\n extraParams?: IHash\n): Promise<SingleMSISDNSubmissionResult | MultiOperatorMSISDNSubmissionResult> {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const config: IConfig = { offer: window.pac_analytics.visitor.offer, ...(maybeConfig || {}) };\n if (config.automaticallySubmitAllOperators === true && !!config.operators && config.operators.length > 0) {\n return submitMSISDNForMultipleOperators(window, config, internationalMSISDN, config.operators, extraParams);\n }\n return submitMSISDNOnce(window, config, internationalMSISDN, extraParams);\n}\n\nlet uniqidResult = '';\n// eslint-disable-next-line consistent-return\nexport async function loadMcpShield(window: Window, config: IConfig): Promise<IMcpShieldResult> {\n if (config) {\n const { slug, country, device } = config;\n\n const { offer } = window.pac_analytics.visitor;\n const { rockmanId } = window.pac_analytics.visitor;\n\n try {\n const mcpShieldResult: IMcpShieldResult = await mcpShield({ window, country, slug, device, offer, rockmanId });\n if (mcpShieldResult.success === false) {\n console.warn(mcpShieldResult.message);\n } else {\n loadScriptInnerHtml(mcpShieldResult.source);\n uniqidResult = mcpShieldResult.uniqid;\n return mcpShieldResult;\n }\n } catch (err) {\n console.warn(err);\n }\n }\n}\n\nasync function submitMSISDNOnce(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n extraParams?: IHash\n): Promise<SingleMSISDNSubmissionResult> {\n if (!internationalMSISDN) {\n const submissionError = new Error(`Error in submitMSISDN() trigger-pin action`) as IError & { type: string };\n submissionError.type = 'InvalidMSISDN';\n throw submissionError;\n }\n const newExtraParams = extraParams || {};\n let isSkipValidation = false;\n const searchObj = searchToObject(window) as IStrategyIDentifyUserResult;\n if (searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') {\n // Search param is set to 1 for header enrichment when the msisdn is masked\n newExtraParams['skip-validation'] = '1';\n }\n\n if (newExtraParams['skip-validation'] === '1') {\n isSkipValidation = true;\n }\n\n const msisdn = isSkipValidation ? internationalMSISDN : internationalMSISDN.match(/\\d+/gi).join(''); // tallyman API expects international msisdn without any special character\n const { rockmanId } = window.pac_analytics.visitor;\n\n const { slug, country, device, offer } = config;\n\n const search = window.location.search.indexOf('redirect-back=1') === -1 ? window.location.search.substr(1) || '' : '';\n\n const uniqid = !!uniqidResult && uniqidResult !== '' ? `&mcpUniqid=${uniqidResult}` : '';\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const result: IMSISDNSubmissionResult = await triggerPin({\n window,\n country,\n slug,\n device,\n offer,\n msisdn,\n rockmanId,\n extraParams: newExtraParams,\n search,\n uniqid,\n evinaTid\n });\n if (result.success === false) {\n const error = new Error(`Error in submitMSISDN() trigger-pin action:\\n${result.message}`) as IError & {\n type: string;\n productUrl: string;\n };\n switch (result.message) {\n case 'ALREADY SUBSCRIBED':\n error.type = 'AlreadySubscribed';\n break;\n case 'INVALID MSISDN':\n error.type = 'InvalidMSISDN';\n break;\n default:\n error.type = null;\n }\n // error.type = result.message === 'ALREADY SUBSCRIBED' ? 'AlreadySubscribed' : 'InvalidMSISDN';\n error.productUrl = result.product_url ? result.product_url : '';\n console.error(error);\n throw error;\n } else {\n window.operator = result.operator; // currently used on server for KW_STC if present dont call empello for Shemaroo\n const codesWithMcpShied: { [key: string]: { [key: string]: string } } = {\n kw: {\n kw_viva: 'kw_viva'\n },\n k2: {\n k2_viva: 'k2_viva'\n },\n bh: {\n bh_viva: 'bh_viva'\n }\n };\n if (\n country &&\n result.operator &&\n ((codesWithMcpShied[country.toLowerCase()] &&\n codesWithMcpShied[country.toLowerCase()][result.operator.toLowerCase()]) ||\n country.toLowerCase() === 'iq') &&\n !window.isCallBlockApi &&\n !window.Empello // set on server https://www.notion.so/sammedia/KW-Agency-Shemaroo-STC-integration-1a114991683d4af79eb01a4d96789f30\n ) {\n try {\n const mcpShieldResult: IMcpShieldResult = await mcpShield({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n operator: result.operator,\n uniqid\n });\n if (mcpShieldResult.success === false) {\n console.warn(mcpShieldResult.message);\n } else {\n loadScriptInnerHtml(mcpShieldResult.source);\n uniqidResult = mcpShieldResult.uniqid;\n }\n } catch (err) {\n console.warn(err);\n }\n }\n\n if (result.javascript) {\n loadScriptInnerHtml(result.javascript);\n }\n return {\n type: 'SingleMSISDNSubmissionResult',\n pin: result.pin,\n uniqidResult,\n operator: result.operator,\n redirectUrl: result?.redirect_to_url // For pin redirect empello\n };\n }\n}\n\nasync function submitMSISDNForMultipleOperators(\n window: Window,\n config: IConfig,\n internationalMSISDN: string,\n operators: string[],\n extraParams?: IHash\n): Promise<MultiOperatorMSISDNSubmissionResult> {\n const results = await Promise.all(\n operators.map(async (o) => {\n try {\n const singleResult = await submitMSISDNOnce(window, config, internationalMSISDN, {\n ...extraParams,\n operator: o\n });\n return right({ ...singleResult, operator: o });\n } catch (error) {\n return left(error);\n }\n })\n );\n\n const alreadySubscribed = results.find((r: any) => r.type === 'left' && r.value?.type === 'AlreadySubscribed');\n\n if (results.every((r) => r.type === 'left')) {\n // no submission worked\n throw results[0].value;\n } else if (alreadySubscribed) {\n throw alreadySubscribed.value;\n } else {\n return {\n type: 'MultiOperatorMSISDNSubmissionResult'\n };\n }\n}\n\nexport async function submitPIN(\n window: Window,\n pin: string,\n config: IConfig,\n extraParams: IHash\n): Promise<{ productUrl?: string; isAlreadySubscribed?: boolean; gatewayRedirectUrl?: string }> {\n if (window.hostCountry && window.hostSlug) {\n config.country = window.hostCountry;\n config.slug = window.hostSlug;\n }\n const { slug, country, device } = config;\n const { offer } = window.pac_analytics.visitor;\n\n const newExtraParams = extraParams || {};\n const searchObj = searchToObject(window) as any;\n if (searchObj?.success === 'true' && searchObj['msisdn-alias'] === '1') {\n newExtraParams['skip-validation'] = '1';\n }\n\n const { rockmanId } = window.pac_analytics.visitor;\n\n if (!pin) {\n const emptyPinError = new Error(`Error in submitMSISDN() verify-pin action:\\n Pin Cannot Be Empty`) as IError & {\n type: string;\n };\n emptyPinError.type = 'InvalidPIN';\n throw emptyPinError;\n }\n const uniqid = uniqidResult !== '' ? `&mcpUniqid=${uniqidResult}` : '';\n const evinaTid = typeof window !== 'undefined' && window.tid ? window.tid : '';\n\n const pinResult: IPINSubmissionResult = await verifyPin({\n window,\n country,\n slug,\n device,\n offer,\n rockmanId,\n pin,\n extraParams: newExtraParams,\n uniqid,\n evinaTid\n });\n if (pinResult.success === false) {\n const pinErrorTypeMap: { [key: string]: string } = {\n 'pin does not match': 'InvalidPIN',\n 'mcp blocked': 'SessionBlocked'\n };\n const errorMessage = pinErrorTypeMap[pinResult.message as string];\n const pinError = new Error(`Error in submitMSISDN() verify-pin action:\\n${errorMessage}`) as IError & {\n type: string;\n };\n pinError.type = errorMessage || 'InvalidPIN';\n throw pinError;\n } else if (pinResult.async === true) {\n // Needed for ES https://www.notion.so/sammedia/ES-OnMobile-Movistar-Direct-Ouisys-Integration-XR-Academy-ca60b176b0ea40a7b170e5d9e7deb491\n if (pinResult.product_url && pinResult.product_url !== '' && country?.toLowerCase() === 'es') {\n return { gatewayRedirectUrl: pinResult.product_url };\n }\n const check: () => Promise<ICheckSubscriptionResult> = () =>\n checkSubscription({ window, country, slug, device, offer, rockmanId, extraParams });\n\n const checkResult: ICheckSubscriptionResult = await loop(check, 100, (r) => r.success, 0);\n if (checkResult.success === true) {\n const isAlreadySubscribed = pinResult.message === 'ALREADY SUBSCRIBED';\n return { productUrl: checkResult.product_url || null, isAlreadySubscribed };\n }\n const pinError = new Error(`Error in submitMSISDN() verify-pin action:\\n${checkResult.message}`) as IError & {\n type: string;\n };\n pinError.type = 'InvalidPIN';\n throw pinError;\n } else {\n const isAlreadySubscribed = pinResult.message === 'ALREADY SUBSCRIBED';\n return { productUrl: pinResult.product_url || null, isAlreadySubscribed };\n }\n}\n\nexport const mockedPINState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.NothingYet<PINEntryFailure, PINEntrySuccess>(),\n data: {\n actualPIN: '',\n msisdn: '',\n operator: '',\n pinMaxLength: 4\n }\n }\n};\n\nexport const mockedCompletedState: PinFlowState = {\n currentState: {\n type: 'PINEntry',\n result: RDS.Success<PINEntryFailure, PINEntrySuccess>({ finalUrl: '/product' }),\n data: {\n actualPIN: '',\n msisdn: '',\n operator: '',\n pinMaxLength: 4\n }\n }\n};\nexport const mockedMSISDNEntryFailure: PinFlowState = {\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 PhoneNumber from 'awesome-phonenumber';\nimport * as RDS from '../../common-types/RemoteDataState';\nimport {\n IHash,\n MSISDNEntryErrorTypes,\n MSISDNEntryFailure,\n PINEntryErrorTypes,\n PINEntryFailure,\n PINEntryState,\n PINEntrySuccess,\n PinFlowState\n} from '../../sharedFlowTypes/PinTypes';\nimport { PossibleTypes, RootState } from '../../sharedFlowTypes/StrategyTypes';\nimport { storeMsisdn } from '../../utilities/storeMsisdn';\nimport { tracker } from '../../utilities/tracker';\nimport { setStrategyExtraData } from '../strategy/strategySlice';\nimport submitMSISDN, { submitPIN } from './main';\n\n// Define the initial state\nconst initialState: PinFlowState = {\n currentState: {\n type: 'MSISDNEntry',\n result: RDS.NothingYet()\n }\n};\n\n/**\n * submitMSISDNAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: PossibleTypes.MO, result: PINEntryState}}\n \n * Calls trigger-pin api that sends a pin to the user\n * Sets state to show pin entry\n */\ninterface SubmitMSISDNArgs {\n window: Window;\n msisdn: string;\n extraParams?: IHash;\n}\nexport const submitMSISDNAction = createAsyncThunk<\n PINEntryState,\n SubmitMSISDNArgs,\n {\n rejectValue: MSISDNEntryFailure; // Type for rejectWithValue\n }\n>('pinFlow/submitMSISDNAction', async ({ window, msisdn, extraParams }, { getState, dispatch, rejectWithValue }) => {\n const state: RootState = getState();\n\n const { config, isHeaderEnrichmentSuccess } = state.strategy.currentState.data;\n const pinFlowCurrentState = state.pinFlow?.currentState;\n try {\n /**\n * Palestine calling code is +970\n * But there was a request to have it as +972 only for gateway shemaroo\n */\n // Start PS Calling code temp fix\n if (config?.country.toLowerCase() === 'ps' && config?.slug.includes('shemaroo')) {\n const prefix = getInputValuePrefix(config?.country, msisdn);\n if (prefix === '+970') {\n msisdn = msisdn.replace('970', '972');\n }\n }\n // END PS Calling code temp fix\n\n // Start Trigger Pin\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submitted', { msisdn });\n\n const msisdnSubmissionResult = await submitMSISDN(window, config, msisdn);\n\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submission-success', { msisdn });\n // End Trigger Pin\n\n /**\n * Some flows require us to redirect to a url after trigger pin to check for fraud\n * The url will then do some processing and return back to ouisys with\n * extra param in the url that will tell us to show pin entry step or error\n */\n\n // Start Pin Redirect\n if (msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' && msisdnSubmissionResult.redirectUrl) {\n tracker.advancedInFlow('tallyman.v1-pin', 'msisdn-submission-success', { msisdn });\n tracker.customEvent('Flow', 'advance-auto', 'msisdn-redirect', {\n redirectUrl: msisdnSubmissionResult.redirectUrl\n });\n window.location.href = msisdnSubmissionResult.redirectUrl;\n }\n // End Pin Redirect\n\n // Start handle store msisdn\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 handle store msisdn\n\n const operator: string =\n msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' ? msisdnSubmissionResult.operator : '';\n\n const pinMaxLengthByOp: { [key: string]: number } = {\n SA_MOBILY: 6,\n SA_STC: 4,\n SA_ZAIN: 4\n };\n\n /**\n * onPinPage\n * some scripts on the server need to be injected on pin page/view\n * This event will be handled on server\n */\n const pinPageEvent = new Event('onPinPage');\n window?.dispatchEvent(pinPageEvent);\n\n return {\n ...pinFlowCurrentState,\n type: 'PINEntry',\n result: RDS.NothingYet(),\n data: {\n actualPIN: msisdnSubmissionResult.type === 'SingleMSISDNSubmissionResult' ? msisdnSubmissionResult.pin : null,\n msisdn,\n operator,\n pinMaxLength: operator !== '' && pinMaxLengthByOp[operator] ? pinMaxLengthByOp[operator] : null,\n isHeaderEnrichmentSuccess\n }\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-pin', 'msisdn-submission-failure', {\n msisdn,\n errorType,\n error: ex.toString()\n });\n\n if (isHeaderEnrichmentSuccess) {\n dispatch(\n setStrategyExtraData({\n type: PossibleTypes.PIN,\n data: {\n isHeaderEnrichmentSuccess\n }\n })\n );\n }\n\n return rejectWithValue({\n errorType,\n error: ex.toString(),\n productUrl: ex.productUrl\n });\n }\n});\n\n/**\n * submitPinAction\n * @returns {type: ' 'pinFlow/submitMSISDNAction', payload: {type: 'PINEntry', result: RDS.NothingYet()}}\n \n * Calls verify-pin api that check if the user enters a valid pin\n * Sets state to show thank you page if pin is valid\n */\ninterface SubmitPINArgs {\n window: Window;\n msisdn: string;\n pin: string;\n extraParams?: IHash;\n}\nexport const submitPinAction = createAsyncThunk<\n PINEntryState,\n SubmitPINArgs,\n {\n rejectValue: PINEntryFailure; // Type for rejectWithValue\n }\n>('pinFlow/submitPinAction', async ({ window, msisdn, pin, extraParams }, { getState, rejectWithValue }) => {\n const state: RootState = getState();\n\n const { config } = state.strategy.currentState.data;\n const pinFlowCurrentState = state.pinFlow?.currentState;\n try {\n tracker.advancedInFlow('tallyman.v1-pin', 'pin-submitted', { msisdn, pin });\n const result = await submitPIN(window, pin, config, extraParams);\n tracker.advancedInFlow('tallyman.v1-pin', 'pin-submission-success', {\n msisdn,\n pin,\n finalUrl: result.productUrl\n });\n\n /**\n * Gateway redirect\n * Value returned in this case is actually the gateway url instead of the product url\n * More details on this ticket:\n * https://www.notion.so/sammedia/ES-OnMobile-Movistar-Direct-Ouisys-Integration-XR-Academy-ca60b176b0ea40a7b170e5d9e7deb491\n */\n // Start Gateway redirect\n if (result.gatewayRedirectUrl && result.gatewayRedirectUrl !== '') {\n tracker.advancedInFlow('tallyman.v1-pin', 'gateway-redirect', {\n msisdn,\n pin,\n gatewayRedirectUrl: result.gatewayRedirectUrl\n });\n window.location.href = result.gatewayRedirectUrl;\n }\n // End Gateway redirect\n\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 ...pinFlowCurrentState,\n type: 'PINEntry',\n result: RDS.Success<PINEntryFailure, PINEntrySuccess>({\n finalUrl: result.productUrl,\n isAlreadySubscribed: result.isAlreadySubscribed || false\n })\n };\n } catch (ex) {\n console.warn(ex);\n let errorType: PINEntryErrorTypes;\n switch (ex.type) {\n case 'AlreadySubscribed':\n errorType = 'AlreadySubscribed';\n break;\n case 'InvalidPIN':\n errorType = 'InvalidPIN';\n break;\n case 'SessionBlocked':\n errorType = 'SessionBlocked';\n break;\n default:\n errorType = 'UnknownError';\n }\n tracker.recedeInFlow('tallyman.v1-pin', 'pin-submission-failure', {\n msisdn,\n pin,\n error: ex.toString(),\n errorType\n });\n // Redirect to the product url if returned in the exception\n setTimeout(() => {\n if (ex.productUrl) {\n window.location.href = ex.productUrl;\n }\n }, 0);\n\n return rejectWithValue({\n errorType,\n productUrl: ex.productUrl\n });\n }\n});\n\nconst getInputValuePrefix = (country: string, international: string) => {\n // @ts-ignore\n const pn = new PhoneNumber(international, country.toUpperCase());\n return country && international ? `+${pn.getCountryCode()}` : '';\n};\n\n// Define your slice\nconst pinFlowSlice = createSlice({\n name: 'pinFlow',\n initialState,\n reducers: {\n backToStartAction(state) {\n tracker.recedeInFlow('tallyman.v1-pin', 'pin-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<PINEntryState>) => {\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 .addCase(submitPinAction.pending, (state) => {\n state.currentState = { type: 'PINEntry', result: RDS.Loading() };\n })\n .addCase(submitPinAction.fulfilled, (state, action: PayloadAction<PINEntryState>) => {\n state.currentState = action.payload;\n })\n .addCase(submitPinAction.rejected, (state, action: PayloadAction<PINEntryFailure>) => {\n state.currentState = { type: 'PINEntry', result: RDS.Failure(action.payload) };\n });\n }\n});\n\nexport const { reducer: pinFlowReducer, actions: pinFlowActions } = pinFlowSlice;\nexport const { backToStartAction } = pinFlowActions;\n\nexport const selectPinFlowState = (state: any) => state.pinFlow;\n"],"names":["RDS.NothingYet","RDS.Success","RDS.Loading","RDS.Failure"],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { __assign } from 'tslib';
2
+
3
+ var searchToObject = function (window) {
4
+ if (typeof window !== 'undefined') {
5
+ return window.location.search
6
+ .substring(1)
7
+ .split('&')
8
+ .filter(function (x) { return !!x && x.length > 0; })
9
+ .map(function (kv) { return kv.split('='); })
10
+ .reduce(function (a, b) {
11
+ var _a;
12
+ return (__assign(__assign({}, a), (_a = {}, _a[b[0]] = b[1], _a)));
13
+ }, {});
14
+ }
15
+ return {};
16
+ };
17
+
18
+ export { searchToObject };
19
+ //# sourceMappingURL=searchToObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchToObject.js","sources":["../src/utilities/searchToObject.ts"],"sourcesContent":["export const searchToObject = (window: Window) => {\n if (typeof window !== 'undefined') {\n return window.location.search\n .substring(1)\n .split('&')\n .filter((x) => !!x && x.length > 0)\n .map((kv) => kv.split('='))\n .reduce((a, b) => ({ ...a, [b[0]]: b[1] }), {});\n }\n return {};\n};\n"],"names":[],"mappings":";;AAAO,IAAM,cAAc,GAAG,UAAC,MAAc,EAAA;AAC3C,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM;aAC1B,SAAS,CAAC,CAAC,CAAC;aACZ,KAAK,CAAC,GAAG,CAAC;AACV,aAAA,MAAM,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA,EAAA,CAAC;AAClC,aAAA,GAAG,CAAC,UAAC,EAAE,EAAA,EAAK,OAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,EAAA,CAAC;AAC1B,aAAA,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA;;AAAK,YAAA,QAAM,QAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAC,CAAG,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA,GAAG,CAAC,CAAC,CAAC,CAAC,EAAG,EAAA,EAAA,EAAA;SAAA,EAAE,EAAE,CAAC,CAAC;AACnD,KAAA;AACD,IAAA,OAAO,EAAE,CAAC;AACZ;;;;"}
@@ -0,0 +1,58 @@
1
+ import { __awaiter, __generator } from 'tslib';
2
+
3
+ var setCookie = function (name, value, daysToExpire, path) {
4
+ if (path === void 0) { path = '/'; }
5
+ var cookieString = "".concat(name, "=").concat(encodeURIComponent(value));
6
+ if (daysToExpire) {
7
+ var date = new Date();
8
+ date.setTime(date.getTime() + daysToExpire * 24 * 60 * 60 * 1000);
9
+ cookieString += "; expires=".concat(date.toUTCString());
10
+ }
11
+ cookieString += "; path=".concat(path);
12
+ document.cookie = cookieString;
13
+ };
14
+ function storeMsisdn(msisdn) {
15
+ return __awaiter(this, void 0, void 0, function () {
16
+ var encryptedMsisdn, response, error_1;
17
+ return __generator(this, function (_a) {
18
+ switch (_a.label) {
19
+ case 0:
20
+ if (!(typeof window !== 'undefined')) return [3 /*break*/, 5];
21
+ encryptedMsisdn = window.btoa(msisdn);
22
+ setCookie('_uuid', encryptedMsisdn, 365, '/');
23
+ localStorage.setItem('_uuid', encryptedMsisdn);
24
+ // if window.msisdnCookieUrl is not declared
25
+ if (!window.msisdnCookieUrl) {
26
+ return [2 /*return*/, {
27
+ data: {
28
+ success: true,
29
+ message: 'MSISDN saved on cookies and localStorage'
30
+ }
31
+ }];
32
+ }
33
+ _a.label = 1;
34
+ case 1:
35
+ _a.trys.push([1, 3, , 4]);
36
+ return [4 /*yield*/, fetch(window.msisdnCookieUrl, {
37
+ mode: 'cors',
38
+ method: 'POST',
39
+ credentials: 'include',
40
+ headers: { 'Content-Type': 'application/json' },
41
+ body: JSON.stringify({ _uuid: encryptedMsisdn })
42
+ })];
43
+ case 2:
44
+ response = _a.sent();
45
+ return [2 /*return*/, response.json()];
46
+ case 3:
47
+ error_1 = _a.sent();
48
+ return [2 /*return*/, error_1.message];
49
+ case 4: return [3 /*break*/, 6];
50
+ case 5: return [2 /*return*/, 'Window object is not available'];
51
+ case 6: return [2 /*return*/];
52
+ }
53
+ });
54
+ });
55
+ }
56
+
57
+ export { storeMsisdn as s };
58
+ //# sourceMappingURL=storeMsisdn-ChiBh8mI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storeMsisdn-ChiBh8mI.js","sources":["../src/utilities/storeMsisdn.ts"],"sourcesContent":["export const setCookie = (name: string, value: string, daysToExpire: number, path = '/') => {\n let cookieString = `${name}=${encodeURIComponent(value)}`;\n if (daysToExpire) {\n const date = new Date();\n date.setTime(date.getTime() + daysToExpire * 24 * 60 * 60 * 1000);\n cookieString += `; expires=${date.toUTCString()}`;\n }\n cookieString += `; path=${path}`;\n document.cookie = cookieString;\n};\n\nexport const getCookie = (name: string) => {\n const cookieValue = document.cookie.match(`(^|;)\\\\s*${name}\\\\s*=\\\\s*([^;]+)`);\n return cookieValue ? decodeURIComponent(cookieValue?.pop() || '') : '';\n};\n\nexport async function storeMsisdn(msisdn: string): Promise<any> {\n if (typeof window !== 'undefined') {\n // save msisdn in cookie & localStorage\n const encryptedMsisdn = window.btoa(msisdn);\n setCookie('_uuid', encryptedMsisdn, 365, '/');\n localStorage.setItem('_uuid', encryptedMsisdn);\n\n // if window.msisdnCookieUrl is not declared\n if (!(window as any).msisdnCookieUrl) {\n return {\n data: {\n success: true,\n message: 'MSISDN saved on cookies and localStorage'\n }\n };\n }\n\n /*\n ENDPOINT window.msisdnCookieUrl\n GET Return _uuid if available\n POST Save _uuid but body is required `{ \"_uuid\": \"string\" }`\n DELETE Clear the _uuid\n */\n try {\n const response = await fetch((window as any).msisdnCookieUrl, {\n mode: 'cors',\n method: 'POST',\n credentials: 'include',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ _uuid: encryptedMsisdn })\n });\n\n return response.json();\n } catch (error) {\n return error.message;\n }\n } else {\n return 'Window object is not available';\n }\n}\n"],"names":[],"mappings":";;AAAO,IAAM,SAAS,GAAG,UAAC,IAAY,EAAE,KAAa,EAAE,YAAoB,EAAE,IAAU,EAAA;AAAV,IAAA,IAAA,IAAA,KAAA,KAAA,CAAA,EAAA,EAAA,IAAU,GAAA,GAAA,CAAA,EAAA;IACrF,IAAI,YAAY,GAAG,EAAA,CAAA,MAAA,CAAG,IAAI,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,kBAAkB,CAAC,KAAK,CAAC,CAAE,CAAC;AAC1D,IAAA,IAAI,YAAY,EAAE;AAChB,QAAA,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAClE,QAAA,YAAY,IAAI,YAAa,CAAA,MAAA,CAAA,IAAI,CAAC,WAAW,EAAE,CAAE,CAAC;AACnD,KAAA;AACD,IAAA,YAAY,IAAI,SAAA,CAAA,MAAA,CAAU,IAAI,CAAE,CAAC;AACjC,IAAA,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC;AACjC,CAAC,CAAC;AAOI,SAAgB,WAAW,CAAC,MAAc,EAAA;;;;;;AAC1C,oBAAA,IAAA,EAAA,OAAO,MAAM,KAAK,WAAW,CAAA,EAA7B,OAA6B,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;AAEzB,oBAAA,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC5C,SAAS,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9C,oBAAA,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;;AAG/C,oBAAA,IAAI,CAAE,MAAc,CAAC,eAAe,EAAE;wBACpC,OAAO,CAAA,CAAA,aAAA;AACL,gCAAA,IAAI,EAAE;AACJ,oCAAA,OAAO,EAAE,IAAI;AACb,oCAAA,OAAO,EAAE,0CAA0C;AACpD,iCAAA;6BACF,CAAC,CAAA;AACH,qBAAA;;;;AASkB,oBAAA,OAAA,CAAA,CAAA,YAAM,KAAK,CAAE,MAAc,CAAC,eAAe,EAAE;AAC5D,4BAAA,IAAI,EAAE,MAAM;AACZ,4BAAA,MAAM,EAAE,MAAM;AACd,4BAAA,WAAW,EAAE,SAAS;AACtB,4BAAA,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;4BAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;AACjD,yBAAA,CAAC,CAAA,CAAA;;AANI,oBAAA,QAAQ,GAAG,EAMf,CAAA,IAAA,EAAA,CAAA;AAEF,oBAAA,OAAA,CAAA,CAAA,aAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;;;oBAEvB,OAAO,CAAA,CAAA,aAAA,OAAK,CAAC,OAAO,CAAC,CAAA;;AAGvB,gBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAO,gCAAgC,CAAC,CAAA;;;;;AAE3C;;;;"}
@@ -0,0 +1,50 @@
1
+ export { R as RDS } from './RemoteDataState-CwHLI23e.js';
2
+ import { P as PossibleTypes } from './strategySlice-bF74rxDK.js';
3
+ export { i as identifyStrategy, a as selectOperatorAction, b as strategyReducer, s as submitMSISDNAction } from './strategySlice-bF74rxDK.js';
4
+ import 'tslib';
5
+ import '@reduxjs/toolkit';
6
+ import './searchToObject.js';
7
+ import './getConfig.js';
8
+ import 'awesome-phonenumber';
9
+ import './tryGetIPRangeName-C69HEG5W.js';
10
+ import './tracker-B_zsMRN2.js';
11
+ import 'pacman-client';
12
+ import 'uuid';
13
+
14
+ var useStrategyState = function (useSelector) {
15
+ var currentState = useSelector(function (state) { return state.strategy.currentState; });
16
+ return currentState;
17
+ };
18
+
19
+ function strategy(_a) {
20
+ var identifyInitialState = _a.identifyInitialState, identifyFlowByOperatorSelect = _a.identifyFlowByOperatorSelect, identifyFlowByMsisdn = _a.identifyFlowByMsisdn, pinFlow = _a.pinFlow, moFlow = _a.moFlow, moRedirFlow = _a.moRedirFlow, oneClickFlow = _a.oneClickFlow, click2smsFlow = _a.click2smsFlow, ussdFlow = _a.ussdFlow, creditCardFlow = _a.creditCardFlow;
21
+ return function (state) {
22
+ switch (state.type) {
23
+ case PossibleTypes.IDENTIFY_STRATEGY:
24
+ return identifyInitialState();
25
+ case PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT:
26
+ return identifyFlowByOperatorSelect();
27
+ case PossibleTypes.IDENTIFY_FLOW_BY_MSISDN:
28
+ return identifyFlowByMsisdn(state.result);
29
+ case PossibleTypes.PIN:
30
+ return pinFlow();
31
+ case PossibleTypes.MO:
32
+ return moFlow();
33
+ case PossibleTypes.MO_REDIR:
34
+ return moRedirFlow();
35
+ case PossibleTypes.ONE_CLICK:
36
+ return oneClickFlow();
37
+ case PossibleTypes.CLICK2SMS:
38
+ return click2smsFlow();
39
+ case PossibleTypes.USSD:
40
+ return ussdFlow();
41
+ case PossibleTypes.CREDIT_CARD:
42
+ return creditCardFlow();
43
+ default:
44
+ throw new Error("Unexpected state type: ".concat(state.type));
45
+ }
46
+ };
47
+ }
48
+
49
+ export { PossibleTypes, strategy, useStrategyState };
50
+ //# sourceMappingURL=strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.js","sources":["../src/flows/strategy/hooks/useStrategyState.ts","../src/flows/strategy/match.ts"],"sourcesContent":["import { useSelector as IuseSelector } from 'react-redux';\nimport { RootState } from '../../../sharedFlowTypes/StrategyTypes';\n\nexport const useStrategyState = (useSelector: typeof IuseSelector) => {\n const currentState = useSelector((state: RootState) => state.strategy.currentState);\n return currentState;\n};\n","import * as RDS from '../../common-types/RemoteDataState';\nimport {\n IDENTIFYMSISDNEntryFailure,\n IDENTIFYMSISDNEntrySuccess,\n PossibleTypes,\n StrategyCurrentState\n} from '../../sharedFlowTypes/StrategyTypes';\n\nfunction strategy<R>({\n identifyInitialState,\n identifyFlowByOperatorSelect,\n identifyFlowByMsisdn,\n pinFlow,\n moFlow,\n moRedirFlow,\n oneClickFlow,\n click2smsFlow,\n ussdFlow,\n creditCardFlow\n}: {\n identifyInitialState: () => R;\n identifyFlowByOperatorSelect?: () => R;\n identifyFlowByMsisdn?: (rds: RDS.RemoteDataState<IDENTIFYMSISDNEntryFailure, IDENTIFYMSISDNEntrySuccess>) => R;\n pinFlow?: () => R;\n moFlow?: () => R;\n moRedirFlow?: () => R;\n oneClickFlow?: () => R;\n click2smsFlow?: () => R;\n ussdFlow?: () => R;\n creditCardFlow?: () => R;\n}): (state: StrategyCurrentState) => R {\n return (state) => {\n switch (state.type) {\n case PossibleTypes.IDENTIFY_STRATEGY:\n return identifyInitialState();\n case PossibleTypes.IDENTIFY_FLOW_BY_OPERATOR_SELECT:\n return identifyFlowByOperatorSelect();\n case PossibleTypes.IDENTIFY_FLOW_BY_MSISDN:\n return identifyFlowByMsisdn(state.result);\n case PossibleTypes.PIN:\n return pinFlow();\n case PossibleTypes.MO:\n return moFlow();\n case PossibleTypes.MO_REDIR:\n return moRedirFlow();\n case PossibleTypes.ONE_CLICK:\n return oneClickFlow();\n case PossibleTypes.CLICK2SMS:\n return click2smsFlow();\n case PossibleTypes.USSD:\n return ussdFlow();\n case PossibleTypes.CREDIT_CARD:\n return creditCardFlow();\n default:\n throw new Error(`Unexpected state type: ${state.type}`);\n }\n };\n}\n\nexport { strategy };\n"],"names":[],"mappings":";;;;;;;;;;;;;AAGO,IAAM,gBAAgB,GAAG,UAAC,WAAgC,EAAA;AAC/D,IAAA,IAAM,YAAY,GAAG,WAAW,CAAC,UAAC,KAAgB,EAAK,EAAA,OAAA,KAAK,CAAC,QAAQ,CAAC,YAAY,CAA3B,EAA2B,CAAC,CAAC;AACpF,IAAA,OAAO,YAAY,CAAC;AACtB;;ACEA,SAAS,QAAQ,CAAI,EAsBpB,EAAA;QArBC,oBAAoB,GAAA,EAAA,CAAA,oBAAA,EACpB,4BAA4B,GAAA,EAAA,CAAA,4BAAA,EAC5B,oBAAoB,GAAA,EAAA,CAAA,oBAAA,EACpB,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,WAAW,GAAA,EAAA,CAAA,WAAA,EACX,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,aAAa,GAAA,EAAA,CAAA,aAAA,EACb,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,cAAc,GAAA,EAAA,CAAA,cAAA,CAAA;AAad,IAAA,OAAO,UAAC,KAAK,EAAA;QACX,QAAQ,KAAK,CAAC,IAAI;YAChB,KAAK,aAAa,CAAC,iBAAiB;gBAClC,OAAO,oBAAoB,EAAE,CAAC;YAChC,KAAK,aAAa,CAAC,gCAAgC;gBACjD,OAAO,4BAA4B,EAAE,CAAC;YACxC,KAAK,aAAa,CAAC,uBAAuB;AACxC,gBAAA,OAAO,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5C,KAAK,aAAa,CAAC,GAAG;gBACpB,OAAO,OAAO,EAAE,CAAC;YACnB,KAAK,aAAa,CAAC,EAAE;gBACnB,OAAO,MAAM,EAAE,CAAC;YAClB,KAAK,aAAa,CAAC,QAAQ;gBACzB,OAAO,WAAW,EAAE,CAAC;YACvB,KAAK,aAAa,CAAC,SAAS;gBAC1B,OAAO,YAAY,EAAE,CAAC;YACxB,KAAK,aAAa,CAAC,SAAS;gBAC1B,OAAO,aAAa,EAAE,CAAC;YACzB,KAAK,aAAa,CAAC,IAAI;gBACrB,OAAO,QAAQ,EAAE,CAAC;YACpB,KAAK,aAAa,CAAC,WAAW;gBAC5B,OAAO,cAAc,EAAE,CAAC;AAC1B,YAAA;gBACE,MAAM,IAAI,KAAK,CAAC,yBAAA,CAAA,MAAA,CAA0B,KAAK,CAAC,IAAI,CAAE,CAAC,CAAC;AAC3D,SAAA;AACH,KAAC,CAAC;AACJ;;;;"}