@spreeloop/orange_money 1.0.0

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 (333) hide show
  1. package/.eslintrc.js +47 -0
  2. package/.prettierrc +6 -0
  3. package/README.md +192 -0
  4. package/babel.config.js +3 -0
  5. package/dist/logging/index.d.ts +2 -0
  6. package/dist/logging/index.d.ts.map +1 -0
  7. package/dist/logging/index.js +18 -0
  8. package/dist/logging/index.js.map +1 -0
  9. package/dist/logging/src/log_level.d.ts +24 -0
  10. package/dist/logging/src/log_level.d.ts.map +1 -0
  11. package/dist/logging/src/log_level.js +34 -0
  12. package/dist/logging/src/log_level.js.map +1 -0
  13. package/dist/logging/src/logging.d.ts +50 -0
  14. package/dist/logging/src/logging.d.ts.map +1 -0
  15. package/dist/logging/src/logging.js +87 -0
  16. package/dist/logging/src/logging.js.map +1 -0
  17. package/dist/logging/src/printer.d.ts +10 -0
  18. package/dist/logging/src/printer.d.ts.map +1 -0
  19. package/dist/logging/src/printer.js +3 -0
  20. package/dist/logging/src/printer.js.map +1 -0
  21. package/dist/main.js +3 -0
  22. package/dist/main.js.LICENSE.txt +1 -0
  23. package/dist/main.js.map +1 -0
  24. package/dist/orange_money/index.d.ts +2 -0
  25. package/dist/orange_money/index.d.ts.map +1 -0
  26. package/dist/orange_money/index.js +18 -0
  27. package/dist/orange_money/index.js.map +1 -0
  28. package/dist/orange_money/src/common/utils/https.d.ts +77 -0
  29. package/dist/orange_money/src/common/utils/https.d.ts.map +1 -0
  30. package/dist/orange_money/src/common/utils/https.js +240 -0
  31. package/dist/orange_money/src/common/utils/https.js.map +1 -0
  32. package/dist/orange_money/src/common/utils/https.spec.d.ts +2 -0
  33. package/dist/orange_money/src/common/utils/https.spec.d.ts.map +1 -0
  34. package/dist/orange_money/src/common/utils/https.spec.js +77 -0
  35. package/dist/orange_money/src/common/utils/https.spec.js.map +1 -0
  36. package/dist/orange_money/src/common/utils/logging_interface.d.ts +23 -0
  37. package/dist/orange_money/src/common/utils/logging_interface.d.ts.map +1 -0
  38. package/dist/orange_money/src/common/utils/logging_interface.js +3 -0
  39. package/dist/orange_money/src/common/utils/logging_interface.js.map +1 -0
  40. package/dist/orange_money/src/common/utils/operation_response.d.ts +16 -0
  41. package/dist/orange_money/src/common/utils/operation_response.d.ts.map +1 -0
  42. package/dist/orange_money/src/common/utils/operation_response.js +3 -0
  43. package/dist/orange_money/src/common/utils/operation_response.js.map +1 -0
  44. package/dist/orange_money/src/common/utils/utils.d.ts +6 -0
  45. package/dist/orange_money/src/common/utils/utils.d.ts.map +1 -0
  46. package/dist/orange_money/src/common/utils/utils.js +10 -0
  47. package/dist/orange_money/src/common/utils/utils.js.map +1 -0
  48. package/dist/orange_money/src/constants.d.ts +95 -0
  49. package/dist/orange_money/src/constants.d.ts.map +1 -0
  50. package/dist/orange_money/src/constants.js +111 -0
  51. package/dist/orange_money/src/constants.js.map +1 -0
  52. package/dist/orange_money/src/disbursements/implementations/disbursement_service.d.ts +63 -0
  53. package/dist/orange_money/src/disbursements/implementations/disbursement_service.d.ts.map +1 -0
  54. package/dist/orange_money/src/disbursements/implementations/disbursement_service.js +84 -0
  55. package/dist/orange_money/src/disbursements/implementations/disbursement_service.js.map +1 -0
  56. package/dist/orange_money/src/disbursements/implementations/src/live.d.ts +40 -0
  57. package/dist/orange_money/src/disbursements/implementations/src/live.d.ts.map +1 -0
  58. package/dist/orange_money/src/disbursements/implementations/src/live.js +61 -0
  59. package/dist/orange_money/src/disbursements/implementations/src/live.js.map +1 -0
  60. package/dist/orange_money/src/disbursements/implementations/src/sandbox.d.ts +40 -0
  61. package/dist/orange_money/src/disbursements/implementations/src/sandbox.d.ts.map +1 -0
  62. package/dist/orange_money/src/disbursements/implementations/src/sandbox.js +110 -0
  63. package/dist/orange_money/src/disbursements/implementations/src/sandbox.js.map +1 -0
  64. package/dist/orange_money/src/disbursements/operations/create_access_token.d.ts +28 -0
  65. package/dist/orange_money/src/disbursements/operations/create_access_token.d.ts.map +1 -0
  66. package/dist/orange_money/src/disbursements/operations/create_access_token.js +45 -0
  67. package/dist/orange_money/src/disbursements/operations/create_access_token.js.map +1 -0
  68. package/dist/orange_money/src/disbursements/operations/create_access_token.spec.d.ts +2 -0
  69. package/dist/orange_money/src/disbursements/operations/create_access_token.spec.d.ts.map +1 -0
  70. package/dist/orange_money/src/disbursements/operations/create_access_token.spec.js +106 -0
  71. package/dist/orange_money/src/disbursements/operations/create_access_token.spec.js.map +1 -0
  72. package/dist/orange_money/src/disbursements/operations/get_transfer_status.d.ts +114 -0
  73. package/dist/orange_money/src/disbursements/operations/get_transfer_status.d.ts.map +1 -0
  74. package/dist/orange_money/src/disbursements/operations/get_transfer_status.js +128 -0
  75. package/dist/orange_money/src/disbursements/operations/get_transfer_status.js.map +1 -0
  76. package/dist/orange_money/src/disbursements/operations/get_transfer_status.spec.d.ts +2 -0
  77. package/dist/orange_money/src/disbursements/operations/get_transfer_status.spec.d.ts.map +1 -0
  78. package/dist/orange_money/src/disbursements/operations/get_transfer_status.spec.js +148 -0
  79. package/dist/orange_money/src/disbursements/operations/get_transfer_status.spec.js.map +1 -0
  80. package/dist/orange_money/src/disbursements/operations/transfer.d.ts +45 -0
  81. package/dist/orange_money/src/disbursements/operations/transfer.d.ts.map +1 -0
  82. package/dist/orange_money/src/disbursements/operations/transfer.js +74 -0
  83. package/dist/orange_money/src/disbursements/operations/transfer.js.map +1 -0
  84. package/dist/orange_money/src/disbursements/operations/transfer.spec.d.ts +2 -0
  85. package/dist/orange_money/src/disbursements/operations/transfer.spec.d.ts.map +1 -0
  86. package/dist/orange_money/src/disbursements/operations/transfer.spec.js +178 -0
  87. package/dist/orange_money/src/disbursements/operations/transfer.spec.js.map +1 -0
  88. package/dist/orange_money/src/disbursements/routes/routes.d.ts +38 -0
  89. package/dist/orange_money/src/disbursements/routes/routes.d.ts.map +1 -0
  90. package/dist/orange_money/src/disbursements/routes/routes.js +53 -0
  91. package/dist/orange_money/src/disbursements/routes/routes.js.map +1 -0
  92. package/dist/orange_money/src/disbursements/utils/constants.d.ts +5 -0
  93. package/dist/orange_money/src/disbursements/utils/constants.d.ts.map +1 -0
  94. package/dist/orange_money/src/disbursements/utils/constants.js +9 -0
  95. package/dist/orange_money/src/disbursements/utils/constants.js.map +1 -0
  96. package/dist/orange_money/src/disbursements/utils/https.d.ts +74 -0
  97. package/dist/orange_money/src/disbursements/utils/https.d.ts.map +1 -0
  98. package/dist/orange_money/src/disbursements/utils/https.js +206 -0
  99. package/dist/orange_money/src/disbursements/utils/https.js.map +1 -0
  100. package/dist/orange_money/src/disbursements/utils/https.spec.d.ts +2 -0
  101. package/dist/orange_money/src/disbursements/utils/https.spec.d.ts.map +1 -0
  102. package/dist/orange_money/src/disbursements/utils/https.spec.js +77 -0
  103. package/dist/orange_money/src/disbursements/utils/https.spec.js.map +1 -0
  104. package/dist/orange_money/src/disbursements/utils/regex.d.ts +9 -0
  105. package/dist/orange_money/src/disbursements/utils/regex.d.ts.map +1 -0
  106. package/dist/orange_money/src/disbursements/utils/regex.js +12 -0
  107. package/dist/orange_money/src/disbursements/utils/regex.js.map +1 -0
  108. package/dist/orange_money/src/disbursements/utils/regex.spec.d.ts +2 -0
  109. package/dist/orange_money/src/disbursements/utils/regex.spec.d.ts.map +1 -0
  110. package/dist/orange_money/src/disbursements/utils/regex.spec.js +32 -0
  111. package/dist/orange_money/src/disbursements/utils/regex.spec.js.map +1 -0
  112. package/dist/orange_money/src/disbursements/utils/status.d.ts +53 -0
  113. package/dist/orange_money/src/disbursements/utils/status.d.ts.map +1 -0
  114. package/dist/orange_money/src/disbursements/utils/status.js +58 -0
  115. package/dist/orange_money/src/disbursements/utils/status.js.map +1 -0
  116. package/dist/orange_money/src/disbursements/utils/utils.d.ts +9 -0
  117. package/dist/orange_money/src/disbursements/utils/utils.d.ts.map +1 -0
  118. package/dist/orange_money/src/disbursements/utils/utils.js +26 -0
  119. package/dist/orange_money/src/disbursements/utils/utils.js.map +1 -0
  120. package/dist/orange_money/src/disbursements/utils/utils.spec.d.ts +2 -0
  121. package/dist/orange_money/src/disbursements/utils/utils.spec.d.ts.map +1 -0
  122. package/dist/orange_money/src/disbursements/utils/utils.spec.js +43 -0
  123. package/dist/orange_money/src/disbursements/utils/utils.spec.js.map +1 -0
  124. package/dist/orange_money/src/index.d.ts +8 -0
  125. package/dist/orange_money/src/index.d.ts.map +1 -0
  126. package/dist/orange_money/src/index.js +21 -0
  127. package/dist/orange_money/src/index.js.map +1 -0
  128. package/dist/orange_money/src/orange_money/orange_money.d.ts +58 -0
  129. package/dist/orange_money/src/orange_money/orange_money.d.ts.map +1 -0
  130. package/dist/orange_money/src/orange_money/orange_money.js +33 -0
  131. package/dist/orange_money/src/orange_money/orange_money.js.map +1 -0
  132. package/dist/orange_money/src/orange_money/orange_money_fake/fake_result.d.ts +7 -0
  133. package/dist/orange_money/src/orange_money/orange_money_fake/fake_result.d.ts.map +1 -0
  134. package/dist/orange_money/src/orange_money/orange_money_fake/fake_result.js +16 -0
  135. package/dist/orange_money/src/orange_money/orange_money_fake/fake_result.js.map +1 -0
  136. package/dist/orange_money/src/orange_money/orange_money_fake/orange_money_fake_payment.d.ts +29 -0
  137. package/dist/orange_money/src/orange_money/orange_money_fake/orange_money_fake_payment.d.ts.map +1 -0
  138. package/dist/orange_money/src/orange_money/orange_money_fake/orange_money_fake_payment.js +67 -0
  139. package/dist/orange_money/src/orange_money/orange_money_fake/orange_money_fake_payment.js.map +1 -0
  140. package/dist/orange_money/src/orange_money/orange_money_fake/orange_money_fake_payment.spec.d.ts +2 -0
  141. package/dist/orange_money/src/orange_money/orange_money_fake/orange_money_fake_payment.spec.d.ts.map +1 -0
  142. package/dist/orange_money/src/orange_money/orange_money_fake/orange_money_fake_payment.spec.js +51 -0
  143. package/dist/orange_money/src/orange_money/orange_money_fake/orange_money_fake_payment.spec.js.map +1 -0
  144. package/dist/orange_money/src/orange_money/orange_money_live/mobile_platfom/mobile_platform.d.ts +105 -0
  145. package/dist/orange_money/src/orange_money/orange_money_live/mobile_platfom/mobile_platform.d.ts.map +1 -0
  146. package/dist/orange_money/src/orange_money/orange_money_live/mobile_platfom/mobile_platform.js +459 -0
  147. package/dist/orange_money/src/orange_money/orange_money_live/mobile_platfom/mobile_platform.js.map +1 -0
  148. package/dist/orange_money/src/orange_money/orange_money_live/mobile_platfom/mobile_platform.spec.d.ts +2 -0
  149. package/dist/orange_money/src/orange_money/orange_money_live/mobile_platfom/mobile_platform.spec.d.ts.map +1 -0
  150. package/dist/orange_money/src/orange_money/orange_money_live/mobile_platfom/mobile_platform.spec.js +497 -0
  151. package/dist/orange_money/src/orange_money/orange_money_live/mobile_platfom/mobile_platform.spec.js.map +1 -0
  152. package/dist/orange_money/src/orange_money/orange_money_live/orange_money_live_payment.d.ts +26 -0
  153. package/dist/orange_money/src/orange_money/orange_money_live/orange_money_live_payment.d.ts.map +1 -0
  154. package/dist/orange_money/src/orange_money/orange_money_live/orange_money_live_payment.js +26 -0
  155. package/dist/orange_money/src/orange_money/orange_money_live/orange_money_live_payment.js.map +1 -0
  156. package/dist/orange_money/src/payments/implementations/fake.d.ts +33 -0
  157. package/dist/orange_money/src/payments/implementations/fake.d.ts.map +1 -0
  158. package/dist/orange_money/src/payments/implementations/fake.js +110 -0
  159. package/dist/orange_money/src/payments/implementations/fake.js.map +1 -0
  160. package/dist/orange_money/src/payments/implementations/live.d.ts +45 -0
  161. package/dist/orange_money/src/payments/implementations/live.d.ts.map +1 -0
  162. package/dist/orange_money/src/payments/implementations/live.js +69 -0
  163. package/dist/orange_money/src/payments/implementations/live.js.map +1 -0
  164. package/dist/orange_money/src/payments/implementations/payment_service.d.ts +44 -0
  165. package/dist/orange_money/src/payments/implementations/payment_service.d.ts.map +1 -0
  166. package/dist/orange_money/src/payments/implementations/payment_service.js +44 -0
  167. package/dist/orange_money/src/payments/implementations/payment_service.js.map +1 -0
  168. package/dist/orange_money/src/payments/implementations/src/fake.d.ts +31 -0
  169. package/dist/orange_money/src/payments/implementations/src/fake.d.ts.map +1 -0
  170. package/dist/orange_money/src/payments/implementations/src/fake.js +62 -0
  171. package/dist/orange_money/src/payments/implementations/src/fake.js.map +1 -0
  172. package/dist/orange_money/src/payments/implementations/src/live.d.ts +29 -0
  173. package/dist/orange_money/src/payments/implementations/src/live.d.ts.map +1 -0
  174. package/dist/orange_money/src/payments/implementations/src/live.js +44 -0
  175. package/dist/orange_money/src/payments/implementations/src/live.js.map +1 -0
  176. package/dist/orange_money/src/payments/operations/create_access_token.d.ts +19 -0
  177. package/dist/orange_money/src/payments/operations/create_access_token.d.ts.map +1 -0
  178. package/dist/orange_money/src/payments/operations/create_access_token.js +51 -0
  179. package/dist/orange_money/src/payments/operations/create_access_token.js.map +1 -0
  180. package/dist/orange_money/src/payments/operations/create_access_token.spec.d.ts +2 -0
  181. package/dist/orange_money/src/payments/operations/create_access_token.spec.d.ts.map +1 -0
  182. package/dist/orange_money/src/payments/operations/create_access_token.spec.js +70 -0
  183. package/dist/orange_money/src/payments/operations/create_access_token.spec.js.map +1 -0
  184. package/dist/orange_money/src/payments/operations/create_pay_token.d.ts +12 -0
  185. package/dist/orange_money/src/payments/operations/create_pay_token.d.ts.map +1 -0
  186. package/dist/orange_money/src/payments/operations/create_pay_token.js +62 -0
  187. package/dist/orange_money/src/payments/operations/create_pay_token.js.map +1 -0
  188. package/dist/orange_money/src/payments/operations/create_pay_token.spec.d.ts +2 -0
  189. package/dist/orange_money/src/payments/operations/create_pay_token.spec.d.ts.map +1 -0
  190. package/dist/orange_money/src/payments/operations/create_pay_token.spec.js +91 -0
  191. package/dist/orange_money/src/payments/operations/create_pay_token.spec.js.map +1 -0
  192. package/dist/orange_money/src/payments/operations/get_access_token.d.ts +11 -0
  193. package/dist/orange_money/src/payments/operations/get_access_token.d.ts.map +1 -0
  194. package/dist/orange_money/src/payments/operations/get_access_token.js +47 -0
  195. package/dist/orange_money/src/payments/operations/get_access_token.js.map +1 -0
  196. package/dist/orange_money/src/payments/operations/get_access_token.spec.d.ts +2 -0
  197. package/dist/orange_money/src/payments/operations/get_access_token.spec.d.ts.map +1 -0
  198. package/dist/orange_money/src/payments/operations/get_access_token.spec.js +75 -0
  199. package/dist/orange_money/src/payments/operations/get_access_token.spec.js.map +1 -0
  200. package/dist/orange_money/src/payments/operations/get_pay_token.d.ts +12 -0
  201. package/dist/orange_money/src/payments/operations/get_pay_token.d.ts.map +1 -0
  202. package/dist/orange_money/src/payments/operations/get_pay_token.js +43 -0
  203. package/dist/orange_money/src/payments/operations/get_pay_token.js.map +1 -0
  204. package/dist/orange_money/src/payments/operations/get_pay_token.spec.d.ts +2 -0
  205. package/dist/orange_money/src/payments/operations/get_pay_token.spec.d.ts.map +1 -0
  206. package/dist/orange_money/src/payments/operations/get_pay_token.spec.js +75 -0
  207. package/dist/orange_money/src/payments/operations/get_pay_token.spec.js.map +1 -0
  208. package/dist/orange_money/src/payments/operations/get_payment_status.d.ts +23 -0
  209. package/dist/orange_money/src/payments/operations/get_payment_status.d.ts.map +1 -0
  210. package/dist/orange_money/src/payments/operations/get_payment_status.js +51 -0
  211. package/dist/orange_money/src/payments/operations/get_payment_status.js.map +1 -0
  212. package/dist/orange_money/src/payments/operations/get_payment_status.spec.d.ts +2 -0
  213. package/dist/orange_money/src/payments/operations/get_payment_status.spec.d.ts.map +1 -0
  214. package/dist/orange_money/src/payments/operations/get_payment_status.spec.js +102 -0
  215. package/dist/orange_money/src/payments/operations/get_payment_status.spec.js.map +1 -0
  216. package/dist/orange_money/src/payments/operations/initialize_om_payment.d.ts +22 -0
  217. package/dist/orange_money/src/payments/operations/initialize_om_payment.d.ts.map +1 -0
  218. package/dist/orange_money/src/payments/operations/initialize_om_payment.js +124 -0
  219. package/dist/orange_money/src/payments/operations/initialize_om_payment.js.map +1 -0
  220. package/dist/orange_money/src/payments/operations/initialize_om_payment.spec.d.ts +2 -0
  221. package/dist/orange_money/src/payments/operations/initialize_om_payment.spec.d.ts.map +1 -0
  222. package/dist/orange_money/src/payments/operations/initialize_om_payment.spec.js +246 -0
  223. package/dist/orange_money/src/payments/operations/initialize_om_payment.spec.js.map +1 -0
  224. package/dist/orange_money/src/payments/operations/payment.d.ts +21 -0
  225. package/dist/orange_money/src/payments/operations/payment.d.ts.map +1 -0
  226. package/dist/orange_money/src/payments/operations/payment.js +204 -0
  227. package/dist/orange_money/src/payments/operations/payment.js.map +1 -0
  228. package/dist/orange_money/src/payments/operations/payment.spec.d.ts +2 -0
  229. package/dist/orange_money/src/payments/operations/payment.spec.d.ts.map +1 -0
  230. package/dist/orange_money/src/payments/operations/payment.spec.js +282 -0
  231. package/dist/orange_money/src/payments/operations/payment.spec.js.map +1 -0
  232. package/dist/orange_money/src/payments/payments.d.ts +57 -0
  233. package/dist/orange_money/src/payments/payments.d.ts.map +1 -0
  234. package/dist/orange_money/src/payments/payments.js +36 -0
  235. package/dist/orange_money/src/payments/payments.js.map +1 -0
  236. package/dist/orange_money/src/payments/routes/routes.d.ts +48 -0
  237. package/dist/orange_money/src/payments/routes/routes.d.ts.map +1 -0
  238. package/dist/orange_money/src/payments/routes/routes.js +61 -0
  239. package/dist/orange_money/src/payments/routes/routes.js.map +1 -0
  240. package/dist/orange_money/src/payments/utils/constants.d.ts +100 -0
  241. package/dist/orange_money/src/payments/utils/constants.d.ts.map +1 -0
  242. package/dist/orange_money/src/payments/utils/constants.js +117 -0
  243. package/dist/orange_money/src/payments/utils/constants.js.map +1 -0
  244. package/dist/orange_money/src/payments/utils/https.d.ts +43 -0
  245. package/dist/orange_money/src/payments/utils/https.d.ts.map +1 -0
  246. package/dist/orange_money/src/payments/utils/https.js +137 -0
  247. package/dist/orange_money/src/payments/utils/https.js.map +1 -0
  248. package/dist/orange_money/src/payments/utils/joi_schema.d.ts +71 -0
  249. package/dist/orange_money/src/payments/utils/joi_schema.d.ts.map +1 -0
  250. package/dist/orange_money/src/payments/utils/joi_schema.js +44 -0
  251. package/dist/orange_money/src/payments/utils/joi_schema.js.map +1 -0
  252. package/dist/orange_money/src/payments/utils/logging_interface.d.ts +23 -0
  253. package/dist/orange_money/src/payments/utils/logging_interface.d.ts.map +1 -0
  254. package/dist/orange_money/src/payments/utils/logging_interface.js +3 -0
  255. package/dist/orange_money/src/payments/utils/logging_interface.js.map +1 -0
  256. package/dist/orange_money/src/payments/utils/request_model.d.ts +75 -0
  257. package/dist/orange_money/src/payments/utils/request_model.d.ts.map +1 -0
  258. package/dist/orange_money/src/payments/utils/request_model.js +3 -0
  259. package/dist/orange_money/src/payments/utils/request_model.js.map +1 -0
  260. package/dist/orange_money/src/payments/utils/utils.d.ts +15 -0
  261. package/dist/orange_money/src/payments/utils/utils.d.ts.map +1 -0
  262. package/dist/orange_money/src/payments/utils/utils.js +27 -0
  263. package/dist/orange_money/src/payments/utils/utils.js.map +1 -0
  264. package/dist/orange_money/src/payments/utils/utils.spec.d.ts +2 -0
  265. package/dist/orange_money/src/payments/utils/utils.spec.d.ts.map +1 -0
  266. package/dist/orange_money/src/payments/utils/utils.spec.js +17 -0
  267. package/dist/orange_money/src/payments/utils/utils.spec.js.map +1 -0
  268. package/dist/orange_money/src/utils/logging_interface.d.ts +23 -0
  269. package/dist/orange_money/src/utils/logging_interface.d.ts.map +1 -0
  270. package/dist/orange_money/src/utils/logging_interface.js +3 -0
  271. package/dist/orange_money/src/utils/logging_interface.js.map +1 -0
  272. package/dist/orange_money/src/utils/requests_responses.d.ts +118 -0
  273. package/dist/orange_money/src/utils/requests_responses.d.ts.map +1 -0
  274. package/dist/orange_money/src/utils/requests_responses.js +31 -0
  275. package/dist/orange_money/src/utils/requests_responses.js.map +1 -0
  276. package/dist/orange_money/src/utils/resquest_params.d.ts +222 -0
  277. package/dist/orange_money/src/utils/resquest_params.d.ts.map +1 -0
  278. package/dist/orange_money/src/utils/resquest_params.js +57 -0
  279. package/dist/orange_money/src/utils/resquest_params.js.map +1 -0
  280. package/dist/orange_money/src/utils/utils.d.ts +65 -0
  281. package/dist/orange_money/src/utils/utils.d.ts.map +1 -0
  282. package/dist/orange_money/src/utils/utils.js +199 -0
  283. package/dist/orange_money/src/utils/utils.js.map +1 -0
  284. package/dist/orange_money/src/utils/utils.spec.d.ts +2 -0
  285. package/dist/orange_money/src/utils/utils.spec.d.ts.map +1 -0
  286. package/dist/orange_money/src/utils/utils.spec.js +17 -0
  287. package/dist/orange_money/src/utils/utils.spec.js.map +1 -0
  288. package/index.spec.ts +9 -0
  289. package/index.ts +1 -0
  290. package/jest.before-test.ts +3 -0
  291. package/jest.config.ts +54 -0
  292. package/package.json +52 -0
  293. package/src/disbursements/implementations/disbursement_service.ts +133 -0
  294. package/src/disbursements/implementations/src/live.ts +79 -0
  295. package/src/disbursements/implementations/src/sandbox.ts +124 -0
  296. package/src/disbursements/operations/create_access_token.spec.ts +87 -0
  297. package/src/disbursements/operations/create_access_token.ts +83 -0
  298. package/src/disbursements/operations/get_transfer_status.spec.ts +132 -0
  299. package/src/disbursements/operations/get_transfer_status.ts +265 -0
  300. package/src/disbursements/operations/transfer.spec.ts +158 -0
  301. package/src/disbursements/operations/transfer.ts +125 -0
  302. package/src/disbursements/routes/routes.ts +54 -0
  303. package/src/disbursements/utils/constants.ts +4 -0
  304. package/src/disbursements/utils/regex.spec.ts +39 -0
  305. package/src/disbursements/utils/regex.ts +10 -0
  306. package/src/disbursements/utils/status.ts +62 -0
  307. package/src/disbursements/utils/utils.spec.ts +42 -0
  308. package/src/disbursements/utils/utils.ts +24 -0
  309. package/src/index.ts +9 -0
  310. package/src/payments/implementations/fake.ts +133 -0
  311. package/src/payments/implementations/live.ts +87 -0
  312. package/src/payments/operations/get_access_token.spec.ts +60 -0
  313. package/src/payments/operations/get_access_token.ts +77 -0
  314. package/src/payments/operations/get_pay_token.spec.ts +65 -0
  315. package/src/payments/operations/get_pay_token.ts +66 -0
  316. package/src/payments/operations/get_payment_status.spec.ts +82 -0
  317. package/src/payments/operations/get_payment_status.ts +78 -0
  318. package/src/payments/operations/initialize_om_payment.spec.ts +234 -0
  319. package/src/payments/operations/initialize_om_payment.ts +191 -0
  320. package/src/payments/payments.ts +86 -0
  321. package/src/payments/routes/routes.ts +61 -0
  322. package/src/payments/utils/constants.ts +120 -0
  323. package/src/payments/utils/joi_schema.ts +117 -0
  324. package/src/payments/utils/request_model.ts +103 -0
  325. package/src/payments/utils/utils.ts +31 -0
  326. package/src/utils/https.spec.ts +101 -0
  327. package/src/utils/https.ts +266 -0
  328. package/src/utils/logging_interface.ts +25 -0
  329. package/src/utils/operation_response.ts +17 -0
  330. package/src/utils/utils.ts +5 -0
  331. package/tsconfig.build.json +4 -0
  332. package/tsconfig.dev.json +4 -0
  333. package/tsconfig.json +27 -0
package/dist/main.js ADDED
@@ -0,0 +1,3 @@
1
+ /*! For license information please see main.js.LICENSE.txt */
2
+ (()=>{"use strict";var t,e={n:t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r},d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},r={};function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,e,r){return e&&n(t.prototype,e),r&&n(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function a(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}e.r(r),e.d(r,{LanguageSupported:()=>c,OrangeMoneyErrorType:()=>u,OrangeMoneyPayment:()=>mt,OrangeMoneyPaymentType:()=>b,OrangePaymentStatus:()=>i}),function(t){t.keyAuthorization="Authorization",t.keyGrantType="grant_type",t.keyContentType="Content-Type",t.keyXAuthToken="X-AUTH-TOKEN",t.keyMerchantKey="merchant_key",t.keyCurrency="currency",t.keyOrderId="order_id",t.keyReturnUrl="return_url",t.keyCancelUrl="cancel_url",t.keyWebNotifyUrl="notif_url",t.keyLang="lang",t.keyReference="reference",t.keyAmount="amount",t.keyPayToken="pay_token",t.keySubscriberMsisdn="subscriberMsisdn",t.keyChannelUserMsisdn="channelUserMsisdn",t.keyDescription="description",t.keyMobileOrderId="orderId",t.keyPin="pin",t.keyMobilePayToken="payToken",t.keyMobileNotifUrl="notifUrl"}(t||(t={}));var i,u,c,s=o((function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}));a(s,"typeJson","application/json"),a(s,"TypeWwwFrom","application/x-www-form-urlencoded"),a(s,"basic","Basic "),a(s,"authorization","AUTHORIZATION"),a(s,"bearer","Bearer "),a(s,"grantType","grant_type"),a(s,"clientCredentials","client_credentials"),a(s,"xAuthToken","X-AUTH-TOKEN"),function(t){t.PENDING_PAYMENT="PENDING",t.CANCELLED_PAYMENT="CANCELLED",t.INITIATE_PAYMENT="INITIATED",t.SUCCESSFULL_MOBILE_PAYMENT="SUCCESSFULL",t.SUCCESS_WEB_PAYMENT="SUCCESS",t.FAILED_PAYMENT="FAILED",t.EXPIRED_PAYMENT="EXPIRED"}(i||(i={})),function(t){t.insufficientFunds="Insufficient fund",t.invalidOrangeMoneyNumber="Invalid orange money number",t.invalidData="Invalid data provided",t.failToInitiateThePayment="Failed to initiate the payment",t.failToGenerateAccessToken="Failed to generate the access token",t.failToCheckPaymentStatus="Failed to check the status of payment",t.failToGeneratePayToken="Failed to generate payToken"}(u||(u={})),function(t){t.en="en",t.fr="fr"}(c||(c={}));const l=require("axios");var f=e.n(l);const h=require("base64url");var p=e.n(h);const y=require("https");function d(t){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},d(t)}function v(){v=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var o=e&&e.prototype instanceof f?e:f,a=Object.create(o.prototype),i=new P(n||[]);return a._invoke=function(t,e,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var u=E(i,r);if(u){if(u===l)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===l)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(t,r,i),a}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var l={};function f(){}function h(){}function p(){}var y={};u(y,o,(function(){return this}));var g=Object.getPrototypeOf,m=g&&g(g(O([])));m&&m!==e&&r.call(m,o)&&(y=m);var b=p.prototype=f.prototype=Object.create(y);function w(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function k(t,e){function n(o,a,i,u){var c=s(t[o],t,a);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==d(f)&&r.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,i,u)}),(function(t){n("throw",t,i,u)})):e.resolve(f).then((function(t){l.value=t,i(l)}),(function(t){return n("throw",t,i,u)}))}u(c.arg)}var o;this._invoke=function(t,r){function a(){return new e((function(e,o){n(t,r,e,o)}))}return o=o?o.then(a,a):a()}}function E(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,E(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=s(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,l;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function x(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function T(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function P(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(x,this),this.reset(!0)}function O(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,a=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return a.next=a}}return{next:L}}function L(){return{value:void 0,done:!0}}return h.prototype=p,u(b,"constructor",p),u(p,"constructor",h),h.displayName=u(p,i,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===h||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,u(t,i,"GeneratorFunction")),t.prototype=Object.create(b),t},t.awrap=function(t){return{__await:t}},w(k.prototype),u(k.prototype,a,(function(){return this})),t.AsyncIterator=k,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new k(c(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},w(b),u(b,i,"Generator"),u(b,o,(function(){return this})),u(b,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=[];for(var r in t)e.push(r);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},t.values=O,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(T),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return i.type="throw",i.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,l):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),l},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),T(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;T(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:O(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function g(t,e,r,n,o,a,i){try{var u=t[a](i),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function m(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){g(a,n,o,i,u,"next",t)}function u(t){g(a,n,o,i,u,"throw",t)}i(void 0)}))}}var b,w=function(t,e){return p()("".concat(t,":").concat(e))};function k(t){return E.apply(this,arguments)}function E(){return(E=m(v().mark((function t(e){var r,n,o,a,i,u,c,s;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.data,n=e.route,o=e.headers,a=e.logger,t.prev=1,i=new y.Agent({rejectUnauthorized:!1}),t.next=5,f()({method:"post",url:n,headers:o,data:r,httpsAgent:i});case 5:return u=t.sent,a.info("Request on the route ".concat(n," completed successfully with status ").concat(u.status," and data : ").concat(JSON.stringify(u.data))),t.abrupt("return",{data:u.data,status:u.status});case 10:if(t.prev=10,t.t0=t.catch(1),!f().isAxiosError(t.t0)){t.next=23;break}if(c=t.t0,!(s=c.response)){t.next=18;break}return a.warn("The POST request was made on the router ".concat(n," and the server responded with a status code ").concat(s.status," with data response: ").concat(JSON.stringify(s.data))),t.abrupt("return",{status:s.status,error:s.data});case 18:if(!c.request){t.next=21;break}return a.warn("The POST request was made on the router ".concat(n," but no response was received. config data: ").concat(c.config.data)),t.abrupt("return",{status:0,error:c.config.data});case 21:return a.warn("The POST request was made on the router ".concat(n," but Something happened in setting up the request that triggered an Error. Error message: ").concat(c.message)),t.abrupt("return",{status:404,error:c.message});case 23:return a.warn("[Axios] failed to send post request on the route: ".concat(n,"\n error: ").concat(t.t0)),t.abrupt("return",{status:404,error:t.t0});case 25:case"end":return t.stop()}}),t,null,[[1,10]])})))).apply(this,arguments)}function x(t){return T.apply(this,arguments)}function T(){return(T=m(v().mark((function t(e){var r,n,o,a,i,u,c,s;return v().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.data,n=e.route,o=e.headers,a=e.logger,t.prev=1,i=new y.Agent({rejectUnauthorized:!1}),t.next=5,f()({method:"get",url:n,headers:o,data:r,httpsAgent:i});case 5:return u=t.sent,a.info("Request on the route ".concat(n," completed successfully with status ").concat(u.status," and data : ").concat(JSON.stringify(u.data))),t.abrupt("return",{status:u.status,data:u.data});case 10:if(t.prev=10,t.t0=t.catch(1),!f().isAxiosError(t.t0)){t.next=23;break}if(c=t.t0,!(s=c.response)){t.next=18;break}return a.warn("The GET request was made on the router ".concat(n," and the server responded with a status code ").concat(s.status," with data response: ").concat(s.data)),t.abrupt("return",{status:s.status,error:s.data});case 18:if(!c.request){t.next=21;break}return a.warn("The GET request was made on the router ".concat(n," but no response was received. config data: ").concat(c.config.data)),t.abrupt("return",{status:0,error:c.config.data});case 21:return a.warn("The GET request was made on the router ".concat(n," but Something happened in setting up the request that triggered an Error. Error message: ").concat(c.message)),t.abrupt("return",{status:404,error:c.message});case 23:return a.warn("[Axios] failed to send post request on the route: ".concat(n,"\n error: ").concat(t.t0)),t.abrupt("return",{status:404,error:t.t0});case 25:case"end":return t.stop()}}),t,null,[[1,10]])})))).apply(this,arguments)}function P(t){var e=[];for(var r in t)if({}.hasOwnProperty.call(t,r)){var n=encodeURIComponent(r),o=encodeURIComponent(t[r]);e.push(n+"="+o)}return e.join("&")}!function(t){t[t.live=0]="live",t[t.fake=1]="fake"}(b||(b={}));var O=function(t){return 201===t||200===t||202===t};function L(t){return L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},L(t)}function N(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function S(){S=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var o=e&&e.prototype instanceof f?e:f,a=Object.create(o.prototype),i=new x(n||[]);return a._invoke=function(t,e,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var u=w(i,r);if(u){if(u===l)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===l)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(t,r,i),a}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var l={};function f(){}function h(){}function p(){}var y={};u(y,o,(function(){return this}));var d=Object.getPrototypeOf,v=d&&d(d(T([])));v&&v!==e&&r.call(v,o)&&(y=v);var g=p.prototype=f.prototype=Object.create(y);function m(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){function n(o,a,i,u){var c=s(t[o],t,a);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==L(f)&&r.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,i,u)}),(function(t){n("throw",t,i,u)})):e.resolve(f).then((function(t){l.value=t,i(l)}),(function(t){return n("throw",t,i,u)}))}u(c.arg)}var o;this._invoke=function(t,r){function a(){return new e((function(e,o){n(t,r,e,o)}))}return o=o?o.then(a,a):a()}}function w(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,w(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=s(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,l;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function x(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function T(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,a=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return a.next=a}}return{next:P}}function P(){return{value:void 0,done:!0}}return h.prototype=p,u(g,"constructor",p),u(p,"constructor",h),h.displayName=u(p,i,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===h||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,u(t,i,"GeneratorFunction")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},m(b.prototype),u(b.prototype,a,(function(){return this})),t.AsyncIterator=b,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new b(c(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},m(g),u(g,i,"Generator"),u(g,o,(function(){return this})),u(g,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=[];for(var r in t)e.push(r);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},t.values=T,x.prototype={constructor:x,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return i.type="throw",i.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,l):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),l},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:T(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function _(t,e,r,n,o,a,i){try{var u=t[a](i),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function I(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){_(a,n,o,i,u,"next",t)}function u(t){_(a,n,o,i,u,"throw",t)}i(void 0)}))}}function A(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var U={initLivePayment:function(t,e){var r=null!=e?e:"1.0.2";return"".concat(t,"/omcoreapis/").concat(r,"/mp/pay")},getPaymentStatusUrl:function(t){var e,r=null!==(e=t.mobileOmVersion)&&void 0!==e?e:"1.0.2";return"".concat(t.liveRoute,"/omcoreapis/").concat(r,"/mp/paymentstatus/").concat(t.payToken)},mobilePayTokenUrl:function(t,e){var r=null!=e?e:"1.0.2";return"".concat(t,"/omcoreapis/").concat(r,"/mp/init")},mobileAccessTokenEndPoint:function(t){return"".concat(t,"/token")}},j=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.logger=e}var e,r,n,o;return e=t,r=[{key:"initializeMobilePayment",value:(o=I(S().mark((function t(e){var r,n,o,a,i,c,s,l,f,h,p,y,d;return S().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.apiPassword,n=e.apiUserName,o=e.mobileEndPointURL,a=e.xAuthToken,i=e.transactionId,c=e.amount,s=e.userPhoneNumber,l=e.notifUrl,f=e.pinCode,h=e.receiverPhoneNumber,r&&n&&a&&c&&i&&s&&o&&f&&h){t.next=13;break}return this.logger.error("Initialization failed. Invalid data provided. ",JSON.stringify(e)),t.abrupt("return",{orangeMoneyError:u.invalidData});case 13:return t.next=15,C({apiPassword:r,apiUserName:n,mobileEndPointURL:o,logger:this.logger});case 15:if(p=t.sent){t.next=18;break}return t.abrupt("return",{orangeMoneyError:u.failToGenerateAccessToken});case 18:return y=p.accessToken,t.next=21,M({mobileOmVersion:e.orangeMoneyVersion,xAuthToken:a,accessToken:y,urlRoute:o,logger:this.logger});case 21:if(d=t.sent){t.next=24;break}return t.abrupt("return",{orangeMoneyError:u.failToGeneratePayToken});case 24:return t.abrupt("return",G({mobileOmVersion:e.orangeMoneyVersion,urlRoute:o,transactionId:i,amount:c,xAuthToken:a,userPhoneNumber:s,notifUrl:l,description:e.description,pinCode:f,receiverPhoneNumber:h,payToken:d.payToken,accessToken:y,logger:this.logger}));case 25:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"checkMobilePaymentStatus",value:(n=I(S().mark((function t(e){var r,n,o,a,i,c;return S().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.apiPassword,n=e.apiUserName,o=e.statusEndPointUrl,a=e.xAuthToken,i=e.payToken,r&&n&&o&&a&&i){t.next=8;break}return this.logger.error(" Failed to check the status failed. Invalid data provided. ",JSON.stringify(e)),t.abrupt("return",{orangeMoneyError:u.invalidData});case 8:return t.next=10,R({mobileOmVersion:e.mobileOmVersion,xAuthToken:a,paytoken:i,apiUserName:n,apiPassword:r,mobileEndPointURL:o,logger:this.logger});case 10:return c=t.sent,t.abrupt("return",c);case 12:case"end":return t.stop()}}),t,this)}))),function(t){return n.apply(this,arguments)})}],r&&A(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),t}(),R=function(){var e=I(S().mark((function e(r){var n,o,a,i,c,l,f,h,p,y,d,v,g;return S().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=r.apiPassword,a=r.apiUserName,i=r.mobileEndPointURL,c=r.xAuthToken,l=r.paytoken,f=r.mobileOmVersion,h=r.logger,e.next=3,C({apiPassword:o,apiUserName:a,mobileEndPointURL:i,logger:h});case 3:if(p=e.sent){e.next=6;break}return e.abrupt("return",{orangeMoneyError:u.failToGenerateAccessToken});case 6:return N(n={},t.keyAuthorization,"Bearer ".concat(p.accessToken)),N(n,t.keyContentType,s.typeJson),N(n,t.keyXAuthToken,c),y=n,d=U.getPaymentStatusUrl({liveRoute:i,payToken:l,mobileOmVersion:f}),h.info("Checks the payment status with data: \nheaders: ".concat(JSON.stringify(y),"\nroute: ").concat(d)),e.next=11,x({headers:y,route:d,logger:h});case 11:if(v=e.sent,g=v.data,void 0!==O(v.status)&&void 0!==g){e.next=16;break}return h.error("Request failed to get the payment status. Request Status ".concat(v.status,", data:").concat(v.data)),e.abrupt("return",{orangeMoneyError:u.failToCheckPaymentStatus});case 16:return h.info("Status successful retrieve with result: ".concat(g)),e.abrupt("return",{status:g.data.status});case 18:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),C=function(){var e=I(S().mark((function e(r){var n,o,a,i,u,c,l,f,h,p,y,d;return S().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=r.mobileEndPointURL,a=r.apiUserName,i=r.apiPassword,u=r.logger,c=w(a,i),l="Basic ".concat(c),f=N({},t.keyGrantType,"client_credentials"),h=U.mobileAccessTokenEndPoint(o),N(n={},t.keyAuthorization,l),N(n,t.keyContentType,s.TypeWwwFrom),p=n,u.info("Generates the access token with data: \nheaders: ".concat(JSON.stringify(p),"\ndata: ").concat(JSON.stringify(P(f)),"\nroute: ").concat(h)),e.next=9,k({headers:p,data:P(f),route:h,logger:u});case 9:if(y=e.sent,O(y.status)&&void 0!==y.data){e.next=13;break}return u.error("Request failed to generate the access token.Request status ".concat(y.status," and data: ").concat(y.data)),e.abrupt("return");case 13:return d=y.data,e.abrupt("return",{accessToken:d.access_token});case 15:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),M=function(){var e=I(S().mark((function e(r){var n,o,a,i;return S().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return N(n={},t.keyAuthorization,"Bearer ".concat(r.accessToken)),N(n,t.keyContentType,s.typeJson),N(n,t.keyXAuthToken,r.xAuthToken),o=n,r.logger.info("Generates the paytoken token with data: \nheaders: ".concat(JSON.stringify(o),"\nroute: ").concat(U.mobilePayTokenUrl(r.urlRoute,r.mobileOmVersion))),e.next=4,k({headers:o,logger:r.logger,route:U.mobilePayTokenUrl(r.urlRoute,r.mobileOmVersion)});case 4:if(a=e.sent,O(a.status)&&void 0!==a.data){e.next=8;break}return r.logger.error("Request failed to generate the payToken.Request status ".concat(a.status," data ").concat(a.data)),e.abrupt("return");case 8:return i=a.data,e.abrupt("return",{payToken:i.data.payToken});case 10:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();function G(t){return F.apply(this,arguments)}function F(){return(F=I(S().mark((function e(r){var n,o,a,c,l,f,h,p,y,d;return S().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return N(n={},t.keyAuthorization,"Bearer ".concat(r.accessToken)),N(n,t.keyContentType,s.typeJson),N(n,t.keyXAuthToken,r.xAuthToken),f=n,N(l={},t.keySubscriberMsisdn,r.userPhoneNumber),N(l,t.keyChannelUserMsisdn,r.receiverPhoneNumber),N(l,t.keyAmount,r.amount),N(l,t.keyDescription,null!==(o=r.description)&&void 0!==o?o:""),N(l,t.keyMobileOrderId,r.transactionId),N(l,t.keyPin,r.pinCode),N(l,t.keyMobilePayToken,r.payToken),N(l,t.keyMobileNotifUrl,null!==(a=r.notifUrl)&&void 0!==a?a:""),N(l,t.keyReturnUrl,null!==(c=r.notifUrl)&&void 0!==c?c:""),h=l,r.logger.info("Initiate the ORANGE MONEY Payment with data: \nheaders: ".concat(JSON.stringify(f),"\ndata: ").concat(JSON.stringify(h),"\nroute: ").concat(U.initLivePayment(r.urlRoute,r.mobileOmVersion))),e.next=5,k({logger:r.logger,headers:f,data:h,route:U.initLivePayment(r.urlRoute,r.mobileOmVersion)});case 5:if(417!==(p=e.sent).status){e.next=15;break}if("Beneficiaire introuvable"!==(y=p.error).data.inittxnmessage){e.next=11;break}return r.logger.error("Orange money Initialization failed with status ".concat(p.status,", Raison: ").concat(y.data.inittxnmessage)),e.abrupt("return",{orangeMoneyError:u.invalidOrangeMoneyNumber});case 11:if("Le solde du compte du payeur est insuffisant"!==y.data.inittxnmessage){e.next=14;break}return r.logger.error("Orange money Initialization failed with status ".concat(p.status,", Raison: ").concat(y.data.inittxnmessage)),e.abrupt("return",{orangeMoneyError:u.insufficientFunds});case 14:return e.abrupt("return",{orangeMoneyError:u.failToInitiateThePayment});case 15:if(O(p.status)&&void 0!==p.data){e.next=18;break}return r.logger.error("Orange money Initialization failed with status ".concat(p.status,", and error data: ").concat(p.error)),e.abrupt("return",{orangeMoneyError:u.failToInitiateThePayment});case 18:return d=p.data,e.abrupt("return",{status:i.PENDING_PAYMENT,payToken:d.data.payToken});case 20:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function z(t){return z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},z(t)}function J(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function q(){q=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var o=e&&e.prototype instanceof f?e:f,a=Object.create(o.prototype),i=new x(n||[]);return a._invoke=function(t,e,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var u=w(i,r);if(u){if(u===l)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===l)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(t,r,i),a}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var l={};function f(){}function h(){}function p(){}var y={};u(y,o,(function(){return this}));var d=Object.getPrototypeOf,v=d&&d(d(T([])));v&&v!==e&&r.call(v,o)&&(y=v);var g=p.prototype=f.prototype=Object.create(y);function m(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){function n(o,a,i,u){var c=s(t[o],t,a);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==z(f)&&r.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,i,u)}),(function(t){n("throw",t,i,u)})):e.resolve(f).then((function(t){l.value=t,i(l)}),(function(t){return n("throw",t,i,u)}))}u(c.arg)}var o;this._invoke=function(t,r){function a(){return new e((function(e,o){n(t,r,e,o)}))}return o=o?o.then(a,a):a()}}function w(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,w(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=s(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,l;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function x(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function T(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,a=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return a.next=a}}return{next:P}}function P(){return{value:void 0,done:!0}}return h.prototype=p,u(g,"constructor",p),u(p,"constructor",h),h.displayName=u(p,i,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===h||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,u(t,i,"GeneratorFunction")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},m(b.prototype),u(b.prototype,a,(function(){return this})),t.AsyncIterator=b,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new b(c(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},m(g),u(g,i,"Generator"),u(g,o,(function(){return this})),u(g,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=[];for(var r in t)e.push(r);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},t.values=T,x.prototype={constructor:x,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return i.type="throw",i.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,l):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),l},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:T(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function D(t,e,r,n,o,a,i){try{var u=t[a](i),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function Y(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){D(a,n,o,i,u,"next",t)}function u(t){D(a,n,o,i,u,"throw",t)}i(void 0)}))}}function W(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var B={liveRoute:"https://api.orange.com",initLivePayment:function(t){return"".concat(this.liveRoute,"/orange-money-webpay/").concat(t,"/v1/webpayment")},webAccessTokenEndPoint:function(t){var e=null!=t?t:"v3";return"".concat(this.liveRoute,"/oauth/").concat(e,"/token")},getPaymentStatusUrl:function(t){return"".concat(this.liveRoute,"/orange-money-webpay/").concat(t,"/v1/transactionstatus")}},V=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.logger=e}var e,r,n,o;return e=t,r=[{key:"initializeWebPayment",value:(o=Y(q().mark((function t(e){var r,n,o,a,i,u,c,s,l,f,h,p,y;return q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.language,n=e.authorization,o=e.countryCode,a=e.transactionId,i=e.amount,u=e.notifUrl,c=e.currency,s=e.reference,l=e.merchantKey,f=e.returnUrl,h=e.cancelUrl,r&&o&&i&&a&&u&&n&&c&&s&&l&&f&&h){t.next=14;break}return this.logger.error("Initialization failed. Invalid data provided. ",JSON.stringify(e)),t.abrupt("return",{message:"Initialization failed. Invalid data provided. ".concat(JSON.stringify(e)),status:404,data:e});case 14:return t.next=16,X({authorization:n,weOmVersion:e.weOmVersion,logger:this.logger});case 16:if((p=t.sent).accessToken){t.next=19;break}return t.abrupt("return",p);case 19:return y=p,t.abrupt("return",H({language:r,accessToken:y.accessToken,countryCode:o,transactionId:a,amount:i,notifUrl:u,currency:c,reference:s,merchantKey:l,returnUrl:f,cancelUrl:h,logger:this.logger}));case 21:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"checkWebPaymentStatus",value:(n=Y(q().mark((function t(e){var r,n,o,a,i;return q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.transactionId,n=e.amount,o=e.payToken,a=e.authorization,i=e.countryCode,n&&r&&a&&r&&o&&i){t.next=8;break}return this.logger.error("Failed to check the status: Invalid data provider"+JSON.stringify(e)),t.abrupt("return");case 8:return t.abrupt("return",K({payToken:o,transactionId:r,authorization:a,amount:n,countryCode:i,weOmVersion:e.weOmVersion,logger:this.logger}));case 9:case"end":return t.stop()}}),t,this)}))),function(t){return n.apply(this,arguments)})}],r&&W(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),t}(),K=function(){var e=Y(q().mark((function e(r){var n,o,a,i,u,c,l,f,h,p,y,d,v,g,m;return q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=r.authorization,i=r.weOmVersion,u=r.transactionId,c=r.amount,l=r.payToken,f=r.countryCode,(h=r.logger).log("Initiates the check of payment status"),e.next=4,X({authorization:a,weOmVersion:i,logger:h});case 4:if((p=e.sent).accessToken){e.next=7;break}return e.abrupt("return");case 7:return J(n={},t.keyAuthorization,"Bearer ".concat(p.accessToken)),J(n,t.keyContentType,s.typeJson),y=n,J(o={},t.keyOrderId,u),J(o,t.keyAmount,c),J(o,t.keyPayToken,l),d=o,v=B.getPaymentStatusUrl(f),h.info("Gets the payment status with data: \nheaders: ".concat(JSON.stringify(y),"\ndata: ").concat(JSON.stringify(d),"\nroute: ").concat(v)),e.next=13,x({headers:y,data:d,route:v,logger:h});case 13:if(g=e.sent,O(g.status)){e.next=17;break}return h.error("Failed to get the status of payment. Request status ".concat(g.status,", data ").concat(g.data)),e.abrupt("return");case 17:return m=g.data,e.abrupt("return",m.status);case 19:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),X=function(){var e=Y(q().mark((function e(r){var n,o,a,i,u,c,l,f;return q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=r.authorization,a=r.weOmVersion,i=r.logger,u=J({},t.keyGrantType,"client_credentials"),J(n={},t.keyAuthorization,o),J(n,t.keyContentType,s.TypeWwwFrom),c=n,i.info("Generates the access token with data: \nheaders: ".concat(JSON.stringify(c),"\ndata: ").concat(JSON.stringify(P(u)),"\nroute: ").concat(B.webAccessTokenEndPoint(a))),e.next=6,k({headers:c,data:P(u),route:B.webAccessTokenEndPoint(a),logger:i});case 6:if(l=e.sent,O(l.status)){e.next=10;break}return i.error("Request failed to generate the access token.Request status ".concat(l.status," and data: ").concat(l.data)),e.abrupt("return",{message:"Request failed to generate the accessToken",status:l.status,data:l.data});case 10:return f=l.data,e.abrupt("return",{accessToken:f.access_token});case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),H=function(){var e=Y(q().mark((function e(r){var n,o,a,u,c,l;return q().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return J(n={},t.keyAuthorization,"Bearer ".concat(r.accessToken)),J(n,t.keyContentType,s.typeJson),a=n,J(o={},t.keyLang,r.language),J(o,t.keyCurrency,r.currency),J(o,t.keyMerchantKey,r.merchantKey),J(o,t.keyOrderId,r.transactionId),J(o,t.keyAmount,r.amount),J(o,t.keyReturnUrl,r.returnUrl),J(o,t.keyCancelUrl,r.cancelUrl),J(o,t.keyWebNotifyUrl,r.notifUrl),J(o,t.keyReference,r.reference),u=o,r.logger.info("Initiate the ORANGE MONEY Payment with data: \nheaders: ".concat(JSON.stringify(a),"\ndata: ").concat(JSON.stringify(u),"\nroute: ").concat(B.initLivePayment(r.countryCode))),e.next=5,k({headers:a,data:u,route:B.initLivePayment(r.countryCode),logger:r.logger});case 5:if(c=e.sent,O(c.status)){e.next=9;break}return r.logger.error("Orange money Initialization failed with status ".concat(c.status,", data ").concat(c.data)),e.abrupt("return",{message:"Initialization failed",status:c.status,data:c.data});case 9:return l=c.data,e.abrupt("return",{status:i.INITIATE_PAYMENT,payToken:l.pay_token,paymentUrl:l.payment_url});case 11:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();function Z(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function Q(t,e,r){return e&&Z(t.prototype,e),r&&Z(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function $(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var tt=Q((function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),$(this,"initializeMobilePayment",new j(this.logger).initializeMobilePayment),$(this,"initializeWebPayment",new V(this.logger).initializeWebPayment),$(this,"checkWebPaymentStatus",new V(this.logger).checkWebPaymentStatus),$(this,"checkMobilePaymentStatus",new j(this.logger).checkMobilePaymentStatus),this.logger=e})),et={status:i.PENDING_PAYMENT,payToken:"MP220806C74C8F5787A9C4F79AED"},rt={status:i.INITIATE_PAYMENT,payToken:"MP220806C74C8F5787A9C4F79AED",paymentUrl:"https://send.com/test"},nt=i.SUCCESS_WEB_PAYMENT,ot=i.SUCCESSFULL_MOBILE_PAYMENT;function at(t){return at="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},at(t)}function it(){it=function(){return t};var t={},e=Object.prototype,r=e.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},o=n.iterator||"@@iterator",a=n.asyncIterator||"@@asyncIterator",i=n.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,r){return t[e]=r}}function c(t,e,r,n){var o=e&&e.prototype instanceof f?e:f,a=Object.create(o.prototype),i=new x(n||[]);return a._invoke=function(t,e,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var u=w(i,r);if(u){if(u===l)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var c=s(t,e,r);if("normal"===c.type){if(n=r.done?"completed":"suspendedYield",c.arg===l)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n="completed",r.method="throw",r.arg=c.arg)}}}(t,r,i),a}function s(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var l={};function f(){}function h(){}function p(){}var y={};u(y,o,(function(){return this}));var d=Object.getPrototypeOf,v=d&&d(d(T([])));v&&v!==e&&r.call(v,o)&&(y=v);var g=p.prototype=f.prototype=Object.create(y);function m(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){function n(o,a,i,u){var c=s(t[o],t,a);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==at(f)&&r.call(f,"__await")?e.resolve(f.__await).then((function(t){n("next",t,i,u)}),(function(t){n("throw",t,i,u)})):e.resolve(f).then((function(t){l.value=t,i(l)}),(function(t){return n("throw",t,i,u)}))}u(c.arg)}var o;this._invoke=function(t,r){function a(){return new e((function(e,o){n(t,r,e,o)}))}return o=o?o.then(a,a):a()}}function w(t,e){var r=t.iterator[e.method];if(void 0===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,w(t,e),"throw"===e.method))return l;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return l}var n=s(r,t.iterator,e.arg);if("throw"===n.type)return e.method="throw",e.arg=n.arg,e.delegate=null,l;var o=n.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,l):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,l)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function E(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function x(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function T(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,a=function e(){for(;++n<t.length;)if(r.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=void 0,e.done=!0,e};return a.next=a}}return{next:P}}function P(){return{value:void 0,done:!0}}return h.prototype=p,u(g,"constructor",p),u(p,"constructor",h),h.displayName=u(p,i,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===h||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,p):(t.__proto__=p,u(t,i,"GeneratorFunction")),t.prototype=Object.create(g),t},t.awrap=function(t){return{__await:t}},m(b.prototype),u(b.prototype,a,(function(){return this})),t.AsyncIterator=b,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new b(c(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},m(g),u(g,i,"Generator"),u(g,o,(function(){return this})),u(g,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=[];for(var r in t)e.push(r);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},t.values=T,x.prototype={constructor:x,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!t)for(var e in this)"t"===e.charAt(0)&&r.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(r,n){return i.type="throw",i.arg=t,e.next=r,n&&(e.method="next",e.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=e&&e<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=e,a?(this.method="next",this.next=a.finallyLoc,l):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),l},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),E(r),l}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:T(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=void 0),l}},t}function ut(t,e,r,n,o,a,i){try{var u=t[a](i),c=u.value}catch(t){return void r(t)}u.done?e(c):Promise.resolve(c).then(n,o)}function ct(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function i(t){ut(a,n,o,i,u,"next",t)}function u(t){ut(a,n,o,i,u,"throw",t)}i(void 0)}))}}function st(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}var lt,ft,ht=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.logger=e}var e,r,n,o,a,i;return e=t,r=[{key:"checkMobilePaymentStatus",value:(i=ct(it().mark((function t(e){var r,n,o,a,i;return it().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.apiPassword,n=e.apiUserName,o=e.statusEndPointUrl,a=e.xAuthToken,i=e.payToken,r&&n&&o&&a&&i){t.next=8;break}return this.logger.error(" Failed to check the status. Invalid data provided: ",JSON.stringify(e)),t.abrupt("return",{errorCode:u.invalidData});case 8:return t.abrupt("return",{status:ot});case 9:case"end":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)})},{key:"checkWebPaymentStatus",value:(a=ct(it().mark((function t(e){var r,n,o,a,i;return it().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.transactionId,n=e.amount,o=e.payToken,a=e.authorization,i=e.countryCode,n&&r&&a&&o&&i){t.next=8;break}return this.logger.error("Failed to check the status. Invalid data provider: "+JSON.stringify(e)),t.abrupt("return");case 8:return t.abrupt("return",nt);case 9:case"end":return t.stop()}}),t,this)}))),function(t){return a.apply(this,arguments)})},{key:"initializeMobilePayment",value:(o=ct(it().mark((function t(e){var r,n,o,a,i,c,s,l,f,h;return it().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.apiPassword,n=e.apiUserName,o=e.mobileEndPointURL,a=e.xAuthToken,i=e.transactionId,c=e.amount,s=e.userPhoneNumber,l=e.notifUrl,f=e.pinCode,h=e.receiverPhoneNumber,r&&n&&a&&c&&i&&s&&o&&l&&f&&h){t.next=13;break}return this.logger.error("Initialization failed. Invalid data provided. ",JSON.stringify(e)),t.abrupt("return",{orangeMoneyError:u.invalidData});case 13:return t.abrupt("return",et);case 14:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)})},{key:"initializeWebPayment",value:(n=ct(it().mark((function t(e){var r,n,o,a,i,u,c,s,l,f,h;return it().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=e.language,n=e.authorization,o=e.countryCode,a=e.transactionId,i=e.amount,u=e.notifUrl,c=e.currency,s=e.reference,l=e.merchantKey,f=e.returnUrl,h=e.cancelUrl,r&&o&&i&&a&&u&&n&&c&&s&&l&&f&&h){t.next=13;break}return t.abrupt("return",{message:"Initialization failed. Invalid data provided. ".concat(JSON.stringify(e)),status:404,data:e});case 13:return t.abrupt("return",rt);case 14:case"end":return t.stop()}}),t)}))),function(t){return n.apply(this,arguments)})}],r&&st(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),t}();function pt(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function yt(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function dt(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}!function(t){t[t.DEBUG=0]="DEBUG",t[t.INFO=1]="INFO",t[t.WARN=2]="WARN",t[t.ERROR=3]="ERROR",t[t.SILENT=4]="SILENT"}(ft||(ft={})),pt(lt={},ft.DEBUG,"DEBUG"),pt(lt,ft.INFO,"INFO"),pt(lt,ft.WARN,"WARN"),pt(lt,ft.ERROR,"ERROR"),pt(lt,ft.SILENT,"SILENT");var vt=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.name=e}var e,r;return e=t,r=[{key:"print",value:function(e){if(!(e.level<t.level))switch(t.printer({name:this.name,level:e.level,message:e.message}),e.level){case ft.DEBUG:console.log(e.message);break;case ft.INFO:console.info(e.message);break;case ft.ERROR:console.error(e.message);break;case ft.WARN:console.warn(e.message)}}},{key:"log",value:function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];this.print({level:ft.DEBUG,message:e.join("\n")})}},{key:"info",value:function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];this.print({level:ft.INFO,message:e.join("\n")})}},{key:"warn",value:function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];this.print({level:ft.WARN,message:e.join("\n")})}},{key:"error",value:function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];this.print({level:ft.ERROR,message:e.join("\n")})}}],r&&yt(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),t}();function gt(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}dt(vt,"level",ft.DEBUG),dt(vt,"printer",(function(){}));var mt=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}var e,r;return e=t,r=[{key:"createPayment",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new vt;switch(t){case b.live:return new tt(e);case b.fake:return new ht(e);default:return new tt(e)}}}],null&&gt(e.prototype,null),r&&gt(e,r),Object.defineProperty(e,"prototype",{writable:!1}),t}();module.exports=r})();
3
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","mappings":"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","sources":["webpack://@spreeloop/orange_money/webpack/bootstrap","webpack://@spreeloop/orange_money/./src/constants.ts","webpack://@spreeloop/orange_money/webpack/runtime/compat get default export","webpack://@spreeloop/orange_money/webpack/runtime/define property getters","webpack://@spreeloop/orange_money/webpack/runtime/hasOwnProperty shorthand","webpack://@spreeloop/orange_money/webpack/runtime/make namespace object","webpack://@spreeloop/orange_money/./src/utils/resquest_params.ts","webpack://@spreeloop/orange_money/external commonjs \"axios\"","webpack://@spreeloop/orange_money/external commonjs \"base64url\"","webpack://@spreeloop/orange_money/external node-commonjs \"https\"","webpack://@spreeloop/orange_money/./src/utils/utils.ts","webpack://@spreeloop/orange_money/./src/orange_money/orange_money_live/mobile_platfom/mobile_platform.ts","webpack://@spreeloop/orange_money/./src/orange_money/orange_money_live/web_platfom/web_platform.ts","webpack://@spreeloop/orange_money/./src/orange_money/orange_money_live/orange_money_live_payment.ts","webpack://@spreeloop/orange_money/./src/orange_money/orange_money_fake/fake_result.ts","webpack://@spreeloop/orange_money/./src/orange_money/orange_money_fake/orange_money_fake_payment.ts","webpack://@spreeloop/orange_money/../logging/src/log_level.ts","webpack://@spreeloop/orange_money/../logging/src/logging.ts","webpack://@spreeloop/orange_money/./src/orange_money/orange_money.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","export enum ApiKey {\n keyAuthorization = 'Authorization',\n keyGrantType = 'grant_type',\n keyContentType = 'Content-Type',\n keyXAuthToken = 'X-AUTH-TOKEN',\n keyMerchantKey = 'merchant_key',\n keyCurrency = 'currency',\n keyOrderId = 'order_id',\n keyReturnUrl = 'return_url',\n keyCancelUrl = 'cancel_url',\n keyWebNotifyUrl = 'notif_url',\n keyLang = 'lang',\n keyReference = 'reference',\n keyAmount = 'amount',\n keyPayToken = 'pay_token',\n keySubscriberMsisdn = 'subscriberMsisdn',\n keyChannelUserMsisdn = 'channelUserMsisdn',\n keyDescription = 'description',\n keyMobileOrderId = 'orderId',\n keyPin = 'pin',\n keyMobilePayToken = 'payToken',\n keyMobileNotifUrl = 'notifUrl',\n}\n\n/**\n * Contains request fields.\n */\nexport class ConstantRequestField {\n // The content type field.\n public static readonly typeJson = 'application/json';\n\n // The url encode form.\n public static readonly TypeWwwFrom = 'application/x-www-form-urlencoded';\n\n // The basic authorization field.\n public static readonly basic = 'Basic ';\n\n // The authorization field.\n public static readonly authorization = 'AUTHORIZATION';\n\n // The bearer field.\n public static readonly bearer = 'Bearer ';\n\n // The grant type field.\n public static readonly grantType = 'grant_type';\n\n // The client credentials field.\n public static readonly clientCredentials = 'client_credentials';\n\n // The X-AUTH-TOKEN field.\n public static readonly xAuthToken = 'X-AUTH-TOKEN';\n}\n\n/**\n * The status of payment request.\n */\nexport enum OrangePaymentStatus {\n /**\n * User has clicked on “Confirmed”, transaction\n * is in progress on Orange system.\n */\n PENDING_PAYMENT = 'PENDING',\n\n /**\n * The user canceled the payment.\n */\n CANCELLED_PAYMENT = 'CANCELLED',\n\n /**\n * Waiting for user entry.\n * Specially fpr web.\n */\n INITIATE_PAYMENT = 'INITIATED',\n\n /**\n * Payment is done for mobile.\n */\n SUCCESSFULL_MOBILE_PAYMENT = 'SUCCESSFULL',\n\n /**\n * Payment is done for web.\n */\n SUCCESS_WEB_PAYMENT = 'SUCCESS',\n\n /**\n * Payment has failed.\n * On web, the status can failed when user press to confirm payment too\n * late or when user enter a wrong validation code.\n * On mobile, it may fail when the user does not have a mooney orange wallet\n * or the account balance is insufficient.\n */\n FAILED_PAYMENT = 'FAILED',\n\n /**\n * User has clicked on “Confirmed” too late (after token’s validity), or the\n * delay token timeout has expired.\n * Note that the minimum token expiration time is 7 min.\n */\n EXPIRED_PAYMENT = 'EXPIRED',\n}\n\nexport enum OrangeMoneyErrorType {\n insufficientFunds = 'Insufficient fund',\n invalidOrangeMoneyNumber = 'Invalid orange money number',\n invalidData = 'Invalid data provided',\n failToInitiateThePayment = 'Failed to initiate the payment',\n failToGenerateAccessToken = 'Failed to generate the access token',\n failToCheckPaymentStatus = 'Failed to check the status of payment',\n failToGeneratePayToken = 'Failed to generate payToken',\n}\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export enum LanguageSupported {\n en = 'en',\n fr = 'fr',\n}\n\nexport type MobileInitializationParams = {\n /**\n * the http end point on which the request will be sent, example https://apiw.orange.cm.\n */\n mobileEndPointURL?: string;\n /**\n * The channelUser api username.\n */\n apiUserName?: string;\n /**\n * The ChannelUser api password.\n */\n apiPassword?: string;\n /**\n * The x-auth-token.\n */\n xAuthToken?: string;\n /**\n * The phone number of the user making the payment.\n */\n userPhoneNumber?: string;\n /**\n * The phone number of the user receiving the payment.\n */\n receiverPhoneNumber?: string;\n /**\n * Unique identifier of the customer transaction.\n */\n transactionId?: string;\n /**\n * The amount of the transaction.\n */\n amount?: string;\n /**\n * The Pin code of the ChannelUser.\n */\n pinCode?: string;\n /**\n * An http endpoint able to receive a post request with the following json body.\n * {\n * ”payToken” : ”payToken”,\n * ”status” : status”,\n * ”message” : ”message”\n * }\n */\n notifUrl?: string;\n /**\n * The mobile orange money version apply for payment request.The default orange money version is\n * 1.0.2: https://apiw.orange.cm/omcoreapis/1.0.2/mp/pay\n */\n orangeMoneyVersion?: string;\n /**\n * The payment description.\n */\n description?: string;\n};\n\nexport type WebInitializationParams = {\n /**\n * The encode to base64 of api username and api password.\n */\n authorization?: string;\n /**\n * The channelUser secret code.\n */\n merchantKey?: string;\n /**\n * The currency to apply to the amount.\n */\n currency?: string;\n /**\n * The user language (en or fr)\n */\n language?: LanguageSupported;\n /**\n * An http url called when the user validates the payment.\n */\n returnUrl?: string;\n /**\n * An http url called when the user cancels the payment.\n */\n cancelUrl?: string;\n /**\n * Unique identifier of the customer transaction.\n */\n transactionId?: string;\n /**\n * The amount of the transaction.\n */\n amount?: string;\n /**\n * An http endpoint able to receive a post request with the following json body\n * {\n * ”payToken” : ”payToken”,\n * ”status” : status”,\n * ”message” : ”message”\n * }\n */\n notifUrl?: string;\n /**\n * The web orange money version apply for generate an access token request.The default orange money version\n * is v3. Use case: https://apiw.orange.cm/oauth/v3/token\n */\n weOmVersion?: string;\n /**\n * the payment reference. usually it takes as value the name of the channel.\n */\n reference?: string;\n /**\n * the channel country code.\n * example: 'cm' for cameroon, 'ci' for Ivory coast\n */\n countryCode?: string;\n};\n\nexport type MobileParamsForCheckStatus = {\n /**\n * The http end point on which the request will be sent,\n * example https://apiw.orange.cm.\n */\n statusEndPointUrl?: string;\n /**\n * unique identifier used to obtain payment status.\n */\n payToken?: string;\n /**\n * The x-auth-token.\n */\n xAuthToken?: string;\n /**\n * The mobile orange money version apply for payment request.The default orange money version used is\n * 1.0.2.\n */\n mobileOmVersion?: string;\n\n /**\n * The channelUser api username.\n */\n apiUserName?: string;\n /**\n * The ChannelUser api password.\n */\n apiPassword?: string;\n};\n\nexport type WebParamsForCheckStatus = {\n /**\n * The unique identifier used to obtain payment status.\n */\n payToken?: string;\n /**\n * The amount of the transaction.\n */\n amount?: string;\n /**\n * Unique identifier of the customer transaction.\n */\n transactionId?: string;\n /**\n * The encode to base64 of api username and api password.\n */\n authorization?: string;\n\n /**\n * Country code of the country where the request will be executed.\n * example: 'cm' for cameroon, 'ci' for Ivory coast\n */\n countryCode?: string;\n /**\n * The web orange money version apply for generate an access token request.The default orange money version\n * is v3. Use case: https://apiw.orange.cm/oauth/v3/token\n */\n weOmVersion?: string;\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"axios\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"base64url\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"https\");","import * as axios from 'axios';\nimport base64url from 'base64url';\nimport * as https from 'https';\nimport { LoggerInterface } from './logging_interface';\n\n// Encode to base64\nexport const encodeToBase64 = (\n apiUsername: string,\n apiPassword: string\n): string => {\n return base64url(`${apiUsername}:${apiPassword}`);\n};\n\nexport enum OrangeMoneyPaymentType {\n live,\n fake,\n}\n\nexport type RequestResponse<T> =\n | {\n data: T;\n status: number; // status of request.\n error?: undefined;\n }\n | {\n data?: undefined;\n status: number; // status of request.\n error: T | unknown;\n };\n\n/**\n * Posts an http request to the given route.\n * @param {Record<string, string | undefined> | string} data The data to be posted.\n * @param {string} route The end point url.\n * @param {Record<string, string>} headers The type content of request.\n * @return {Promise<unknown | undefined>} The server response.\n */\nexport async function postRequest<T = Record<string, string | undefined>>({\n data,\n route,\n headers,\n logger,\n}: {\n data?: Record<string, string | undefined> | string;\n route: string;\n headers?: Record<string, string>;\n logger: LoggerInterface;\n}): Promise<RequestResponse<T>> {\n try {\n const agent = new https.Agent({\n rejectUnauthorized: false,\n });\n const response = await axios.default({\n method: 'post',\n url: route,\n headers: headers,\n data: data,\n httpsAgent: agent,\n });\n logger.info(\n `Request on the route ${route} completed successfully with status ${\n response.status\n } and data : ${JSON.stringify(response.data)}`\n );\n return { data: response.data, status: response.status };\n } catch (err) {\n if (axios.default.isAxiosError(err)) {\n const error: axios.AxiosError = err;\n const response = error.response;\n if (response) {\n // The request was made and the server responded with a status code\n // that falls out of the range of 2xx\n logger.warn(\n `The POST request was made on the router ${route} and the server responded with a status code ${\n response.status\n } with data response: ${JSON.stringify(response.data)}`\n );\n return { status: response.status, error: response.data };\n }\n if (error.request) {\n // The request was made but no response was received\n // `error.request` is an instance of XMLHttpRequest in the browser and an instance of\n // http.ClientRequest in node.js\n logger.warn(\n `The POST request was made on the router ${route} but no response was received. config data: ${error.config.data}`\n );\n return { status: 0, error: error.config.data };\n }\n\n logger.warn(\n `The POST request was made on the router ${route} but Something happened in setting up the request that triggered an Error. Error message: ${error.message}`\n );\n return { status: 404, error: error.message };\n }\n logger.warn(\n `[Axios] failed to send post request on the route: ${route}\\n error: ${err}`\n );\n return { status: 404, error: err };\n }\n}\n\n/**\n * Gets an http request to the given route.\n * @param {Record<string, string | undefined> | string} data The data to be posted.\n * @param {string} route The end point url.\n * @param {Record<string, string>} headers The type content of request.\n * @return {Promise<unknown | undefined>} The server response.\n */\nexport async function getRequest<T = Record<string, string | undefined>>({\n data,\n route,\n headers,\n logger,\n}: {\n data?: Record<string, string | undefined> | string;\n route: string;\n headers?: Record<string, string>;\n logger: LoggerInterface;\n}): Promise<RequestResponse<T>> {\n try {\n const agent = new https.Agent({\n rejectUnauthorized: false,\n });\n const response = await axios.default({\n method: 'get',\n url: route,\n headers: headers,\n data: data,\n httpsAgent: agent,\n });\n logger.info(\n `Request on the route ${route} completed successfully with status ${\n response.status\n } and data : ${JSON.stringify(response.data)}`\n );\n return { status: response.status, data: response.data };\n } catch (err) {\n if (axios.default.isAxiosError(err)) {\n const error: axios.AxiosError = err;\n const response = error.response;\n if (response) {\n // The request was made and the server responded with a status code\n // that falls out of the range of 2xx\n logger.warn(\n `The GET request was made on the router ${route} and the server responded with a status code ${response.status} with data response: ${response.data}`\n );\n\n return { status: response.status, error: response.data };\n }\n if (error.request) {\n // The request was made but no response was received\n // `error.request` is an instance of XMLHttpRequest in the browser and an instance of\n // http.ClientRequest in node.js\n logger.warn(\n `The GET request was made on the router ${route} but no response was received. config data: ${error.config.data}`\n );\n return { status: 0, error: error.config.data };\n }\n\n logger.warn(\n `The GET request was made on the router ${route} but Something happened in setting up the request that triggered an Error. Error message: ${error.message}`\n );\n return { status: 404, error: error.message };\n }\n logger.warn(\n `[Axios] failed to send post request on the route: ${route}\\n error: ${err}`\n );\n return { status: 404, error: err };\n }\n}\n\n/**\n * Encode the body of the request.\n * @param {Record<string, string>} bodyRequest the body request.\n * @return {string} the encoded body request result.\n */\nexport function encodeTheBodyOfRequest(\n bodyRequest: Record<string, string>\n): string {\n const formBody = [];\n for (const key in bodyRequest) {\n if ({}.hasOwnProperty.call(bodyRequest, key)) {\n const encodedKey = encodeURIComponent(key);\n const encodedValue = encodeURIComponent(bodyRequest[key]);\n formBody.push(encodedKey + '=' + encodedValue);\n }\n }\n return formBody.join('&');\n}\n\n/**\n * Checks if the code is valid http successful response.\n * @param {num} code .\n * @return {boolean} true if the code is valid.\n */\nexport const isValidHttpSuccessfulStatus = (code: number): boolean =>\n code === 201 || code === 200 || code === 202;\n","import {\n AccessTokenResponse,\n MobilePayTokenResponse,\n MobilePaymentCheckStatusResponse,\n MobilePaymentInitializationResponse,\n ProviderAccessTokenRequestResponse,\n ProviderPayTokenRequestResponse,\n ProviderPaymentRequestResponse,\n} from '../../../utils/requests_responses';\nimport {\n MobileInitializationParams,\n MobileParamsForCheckStatus,\n} from '../../../utils/resquest_params';\nimport {\n encodeTheBodyOfRequest,\n encodeToBase64,\n getRequest,\n isValidHttpSuccessfulStatus,\n postRequest,\n} from '../../../utils/utils';\nimport {\n ApiKey,\n ConstantRequestField,\n OrangeMoneyErrorType,\n OrangePaymentStatus,\n} from '../../../constants';\nimport { LoggerInterface } from '../../../utils/logging_interface';\n\nconst routes = {\n initLivePayment(liveRoute: string, mobileOmVersion?: string) {\n const version = mobileOmVersion ?? '1.0.2';\n return `${liveRoute}/omcoreapis/${version}/mp/pay`;\n },\n\n getPaymentStatusUrl(params: {\n liveRoute: string;\n mobileOmVersion?: string;\n payToken: string;\n }) {\n const version = params.mobileOmVersion ?? '1.0.2';\n return `${params.liveRoute}/omcoreapis/${version}/mp/paymentstatus/${params.payToken}`;\n },\n\n mobilePayTokenUrl(liveRoute: string, mobileOmVersion?: string) {\n const version = mobileOmVersion ?? '1.0.2';\n\n return `${liveRoute}/omcoreapis/${version}/mp/init`;\n },\n\n mobileAccessTokenEndPoint(liveRoute: string) {\n return `${liveRoute}/token`;\n },\n};\n\n/**\n * The orange money mobile payment.\n */\nexport class MobilePayment {\n /**\n * Constructs a new MobilePayment Payment.\n * @param {LoggerInterface} logger\n */\n constructor(public readonly logger: LoggerInterface) {}\n\n /**\n * Enter point to initiate the orange money mobile payment.\n * @param {MobileInitializationParams} mobileInitParams the necessary parameters to initialize the mobile payment.\n * @return {MobilePaymentInitializationResponse} the response of initialization.\n *\n **/\n async initializeMobilePayment(\n mobileInitParams: MobileInitializationParams\n ): Promise<MobilePaymentInitializationResponse> {\n const apiPassword = mobileInitParams.apiPassword;\n const apiUserName = mobileInitParams.apiUserName;\n const mobileEndPointURL = mobileInitParams.mobileEndPointURL;\n const xAuthToken = mobileInitParams.xAuthToken;\n const transactionId = mobileInitParams.transactionId;\n const amount = mobileInitParams.amount;\n const userPhoneNumber = mobileInitParams.userPhoneNumber;\n const notifUrl = mobileInitParams.notifUrl;\n const pinCode = mobileInitParams.pinCode;\n const receiverPhoneNumber = mobileInitParams.receiverPhoneNumber;\n\n if (\n !(\n apiPassword &&\n apiUserName &&\n xAuthToken &&\n amount &&\n transactionId &&\n userPhoneNumber &&\n mobileEndPointURL &&\n pinCode &&\n receiverPhoneNumber\n )\n ) {\n this.logger.error(\n 'Initialization failed. Invalid data provided. ',\n JSON.stringify(mobileInitParams)\n );\n\n return {\n orangeMoneyError: OrangeMoneyErrorType.invalidData,\n };\n }\n // Generate access token before initialise the payment.\n const result = await generateAccessToken({\n apiPassword: apiPassword,\n apiUserName: apiUserName,\n mobileEndPointURL: mobileEndPointURL,\n logger: this.logger,\n });\n if (!result) {\n return {\n orangeMoneyError: OrangeMoneyErrorType.failToGenerateAccessToken,\n };\n }\n\n // Generates the pay-token.\n const accessToken = result.accessToken as string;\n const payTokenResult = await generatePayToken({\n mobileOmVersion: mobileInitParams.orangeMoneyVersion,\n xAuthToken: xAuthToken,\n accessToken: accessToken,\n urlRoute: mobileEndPointURL,\n logger: this.logger,\n });\n\n if (!payTokenResult) {\n return {\n orangeMoneyError: OrangeMoneyErrorType.failToGeneratePayToken,\n };\n }\n\n // Initiates the payment.\n return initiateMobilePayment({\n mobileOmVersion: mobileInitParams.orangeMoneyVersion,\n urlRoute: mobileEndPointURL,\n transactionId: transactionId,\n amount: amount,\n xAuthToken: xAuthToken,\n userPhoneNumber: userPhoneNumber,\n notifUrl: notifUrl,\n description: mobileInitParams.description,\n pinCode: pinCode,\n receiverPhoneNumber: receiverPhoneNumber,\n payToken: payTokenResult.payToken,\n accessToken: accessToken,\n logger: this.logger,\n });\n }\n\n /**\n * Gets The mobile orange money payment status.\n * @param {MobileParamsForCheckStatus} checkStatusParams the necessary parameters to get the mobile payment status.\n * @return {string} the response who contains the payment state.\n */\n async checkMobilePaymentStatus(\n checkStatusParams: MobileParamsForCheckStatus\n ): Promise<MobilePaymentCheckStatusResponse> {\n const apiPassword = checkStatusParams.apiPassword;\n const apiUserName = checkStatusParams.apiUserName;\n const mobileEndPointURL = checkStatusParams.statusEndPointUrl;\n const xAuthToken = checkStatusParams.xAuthToken;\n const paytoken = checkStatusParams.payToken;\n\n if (\n !(\n apiPassword &&\n apiUserName &&\n mobileEndPointURL &&\n xAuthToken &&\n paytoken\n )\n ) {\n this.logger.error(\n ' Failed to check the status failed. Invalid data provided. ',\n JSON.stringify(checkStatusParams)\n );\n\n return {\n orangeMoneyError: OrangeMoneyErrorType.invalidData,\n };\n }\n\n const result = await checkPaymentStatus({\n mobileOmVersion: checkStatusParams.mobileOmVersion,\n xAuthToken: xAuthToken,\n paytoken: paytoken,\n apiUserName: apiUserName,\n apiPassword: apiPassword,\n mobileEndPointURL: mobileEndPointURL,\n logger: this.logger,\n });\n\n return result;\n }\n}\n\nconst checkPaymentStatus = async ({\n apiPassword,\n apiUserName,\n mobileEndPointURL,\n xAuthToken,\n paytoken,\n mobileOmVersion,\n logger,\n}: {\n mobileEndPointURL: string;\n apiUserName: string;\n apiPassword: string;\n xAuthToken: string;\n paytoken: string;\n mobileOmVersion?: string;\n logger: LoggerInterface;\n}): Promise<MobilePaymentCheckStatusResponse> => {\n const accessTokenResult = await generateAccessToken({\n apiPassword: apiPassword,\n apiUserName: apiUserName,\n mobileEndPointURL: mobileEndPointURL,\n logger: logger,\n });\n if (!accessTokenResult) {\n return {\n orangeMoneyError: OrangeMoneyErrorType.failToGenerateAccessToken,\n };\n }\n\n const headers = {\n [ApiKey.keyAuthorization]: `Bearer ${accessTokenResult.accessToken}`,\n [ApiKey.keyContentType]: ConstantRequestField.typeJson,\n [ApiKey.keyXAuthToken]: xAuthToken,\n };\n const enPointURL = routes.getPaymentStatusUrl({\n liveRoute: mobileEndPointURL,\n payToken: paytoken,\n mobileOmVersion: mobileOmVersion,\n });\n\n logger.info(\n `Checks the payment status with data: \\nheaders: ${JSON.stringify(\n headers\n )}\\nroute: ${enPointURL}`\n );\n const response = await getRequest<ProviderPaymentRequestResponse>({\n headers: headers,\n route: enPointURL,\n logger: logger,\n });\n const result = response.data;\n\n if (\n isValidHttpSuccessfulStatus(response.status) === undefined ||\n result === undefined\n ) {\n logger.error(\n `Request failed to get the payment status. Request Status ${response.status}, data:${response.data}`\n );\n return {\n orangeMoneyError: OrangeMoneyErrorType.failToCheckPaymentStatus,\n };\n }\n\n logger.info(`Status successful retrieve with result: ${result}`);\n return { status: result.data.status };\n};\n\nconst generateAccessToken = async ({\n mobileEndPointURL,\n apiUserName,\n apiPassword,\n logger,\n}: {\n mobileEndPointURL: string;\n apiUserName: string;\n apiPassword: string;\n logger: LoggerInterface;\n}): Promise<AccessTokenResponse | undefined> => {\n // Encode api_user and api_password to base 64.\n const encodeToBase64UserAndPassword = encodeToBase64(\n apiUserName,\n apiPassword\n );\n const authorization = `Basic ${encodeToBase64UserAndPassword}`;\n const bodyRequest: Record<string, string> = {\n [ApiKey.keyGrantType]: 'client_credentials',\n };\n const endPoint = routes.mobileAccessTokenEndPoint(mobileEndPointURL);\n const options = {\n [ApiKey.keyAuthorization]: authorization,\n [ApiKey.keyContentType]: ConstantRequestField.TypeWwwFrom,\n };\n\n logger.info(\n `Generates the access token with data: \\nheaders: ${JSON.stringify(\n options\n )}\\ndata: ${JSON.stringify(\n encodeTheBodyOfRequest(bodyRequest)\n )}\\nroute: ${endPoint}`\n );\n const response = await postRequest<ProviderAccessTokenRequestResponse>({\n headers: options,\n data: encodeTheBodyOfRequest(bodyRequest),\n route: endPoint,\n logger: logger,\n });\n if (\n !isValidHttpSuccessfulStatus(response.status) ||\n response.data === undefined\n ) {\n logger.error(\n `Request failed to generate the access token.Request status ${response.status} and data: ${response.data}`\n );\n return;\n }\n const data = response.data;\n return {\n accessToken: data.access_token,\n };\n};\n\n/**\n * Generates the payToken useful to get the payment status.\n * @param {Record<string, string>} params the essential information needed for mobile request.\n */\nconst generatePayToken = async (params: {\n mobileOmVersion?: string;\n xAuthToken: string;\n accessToken: string;\n urlRoute: string;\n logger: LoggerInterface;\n}): Promise<MobilePayTokenResponse | undefined> => {\n const headers = {\n [ApiKey.keyAuthorization]: `Bearer ${params.accessToken}`,\n [ApiKey.keyContentType]: ConstantRequestField.typeJson,\n [ApiKey.keyXAuthToken]: params.xAuthToken,\n };\n params.logger.info(\n `Generates the paytoken token with data: \\nheaders: ${JSON.stringify(\n headers\n )}\\nroute: ${routes.mobilePayTokenUrl(\n params.urlRoute,\n params.mobileOmVersion\n )}`\n );\n const response = await postRequest<ProviderPayTokenRequestResponse>({\n headers: headers,\n logger: params.logger,\n route: routes.mobilePayTokenUrl(params.urlRoute, params.mobileOmVersion),\n });\n if (\n !isValidHttpSuccessfulStatus(response.status) ||\n response.data === undefined\n ) {\n params.logger.error(\n `Request failed to generate the payToken.Request status ${response.status} data ${response.data}`\n );\n\n return;\n }\n const result = response.data;\n\n return {\n payToken: result.data.payToken,\n };\n};\n\n/**\n * Initialize the payment.\n * @param {Record<string, unknown>} params Required parameter.\n */\nasync function initiateMobilePayment(params: {\n mobileOmVersion?: string;\n urlRoute: string;\n transactionId: string;\n amount: string;\n xAuthToken: string;\n userPhoneNumber: string;\n notifUrl: string | undefined;\n description: string | undefined;\n pinCode: string;\n receiverPhoneNumber: string;\n payToken: string;\n accessToken: string;\n logger: LoggerInterface;\n}): Promise<MobilePaymentInitializationResponse> {\n const headers = {\n [ApiKey.keyAuthorization]: `Bearer ${params.accessToken}`,\n [ApiKey.keyContentType]: ConstantRequestField.typeJson,\n [ApiKey.keyXAuthToken]: params.xAuthToken,\n };\n const body = {\n [ApiKey.keySubscriberMsisdn]: params.userPhoneNumber,\n [ApiKey.keyChannelUserMsisdn]: params.receiverPhoneNumber,\n [ApiKey.keyAmount]: params.amount,\n [ApiKey.keyDescription]: params.description ?? '',\n [ApiKey.keyMobileOrderId]: params.transactionId,\n [ApiKey.keyPin]: params.pinCode,\n [ApiKey.keyMobilePayToken]: params.payToken,\n [ApiKey.keyMobileNotifUrl]: params.notifUrl ?? '',\n [ApiKey.keyReturnUrl]: params.notifUrl ?? '',\n };\n\n params.logger.info(\n `Initiate the ORANGE MONEY Payment with data: \\nheaders: ${JSON.stringify(\n headers\n )}\\ndata: ${JSON.stringify(body)}\\nroute: ${routes.initLivePayment(\n params.urlRoute,\n params.mobileOmVersion\n )}`\n );\n const response = await postRequest<ProviderPaymentRequestResponse>({\n logger: params.logger,\n headers: headers,\n data: body,\n route: routes.initLivePayment(params.urlRoute, params.mobileOmVersion),\n });\n if (response.status === 417) {\n const result = response.error as ProviderPaymentRequestResponse;\n if (result.data.inittxnmessage === 'Beneficiaire introuvable') {\n params.logger.error(\n `Orange money Initialization failed with status ${response.status}, Raison: ${result.data.inittxnmessage}`\n );\n return {\n orangeMoneyError: OrangeMoneyErrorType.invalidOrangeMoneyNumber,\n };\n }\n if (\n result.data.inittxnmessage ===\n 'Le solde du compte du payeur est insuffisant'\n ) {\n params.logger.error(\n `Orange money Initialization failed with status ${response.status}, Raison: ${result.data.inittxnmessage}`\n );\n return {\n orangeMoneyError: OrangeMoneyErrorType.insufficientFunds,\n };\n }\n return {\n orangeMoneyError: OrangeMoneyErrorType.failToInitiateThePayment,\n };\n }\n\n if (\n !isValidHttpSuccessfulStatus(response.status) ||\n response.data === undefined\n ) {\n params.logger.error(\n `Orange money Initialization failed with status ${response.status}, and error data: ${response.error}`\n );\n\n return {\n orangeMoneyError: OrangeMoneyErrorType.failToInitiateThePayment,\n };\n }\n const result = response.data;\n\n return {\n status: OrangePaymentStatus.PENDING_PAYMENT,\n payToken: result.data.payToken,\n };\n}\n\n/**\n * Objects exported for testing.\n */\nexport const exportedForMobileTesting = {\n generateAccessToken,\n generatePayToken,\n initiateMobilePayment,\n checkPaymentStatus,\n};\n","import {\n AccessTokenResponse,\n ErrorResponse,\n PaymentInitializationResponse,\n} from '../../../utils/requests_responses';\nimport {\n LanguageSupported,\n WebInitializationParams,\n WebParamsForCheckStatus,\n} from '../../../utils/resquest_params';\nimport {\n encodeTheBodyOfRequest,\n getRequest,\n isValidHttpSuccessfulStatus,\n postRequest,\n} from '../../../utils/utils';\nimport {\n ApiKey,\n ConstantRequestField,\n OrangePaymentStatus,\n} from '../../../constants';\nimport { LoggerInterface } from '../../../utils/logging_interface';\n\nconst routes = {\n // Web orange money default url.\n liveRoute: 'https://api.orange.com',\n\n initLivePayment(countryCode: string) {\n return `${this.liveRoute}/orange-money-webpay/${countryCode}/v1/webpayment`;\n },\n\n webAccessTokenEndPoint(weOmVersion?: string) {\n const version = weOmVersion ?? 'v3';\n return `${this.liveRoute}/oauth/${version}/token`;\n },\n\n getPaymentStatusUrl(countryCode: string) {\n return `${this.liveRoute}/orange-money-webpay/${countryCode}/v1/transactionstatus`;\n },\n};\n\n/**\n * The orange money web payment.\n */\nexport class WebPayment {\n /**\n * Constructs a new MobilePayment Payment.\n * @param {LoggerInterface} logger\n */\n constructor(public readonly logger: LoggerInterface) {}\n\n /**\n * Enters point to initiate the orange money web payment.\n * @param {WebInitializationParams} webInitParams the necessary parameters to initialize the web payment.\n * @return {PaymentInitializationResponse | ErrorResponse} the response of initialization.\n *\n **/\n async initializeWebPayment(\n webInitParams: WebInitializationParams\n ): Promise<PaymentInitializationResponse | ErrorResponse> {\n const language = webInitParams.language;\n const authorization = webInitParams.authorization;\n const countryCode = webInitParams.countryCode;\n const transactionId = webInitParams.transactionId;\n const amount = webInitParams.amount;\n const notifUrl = webInitParams.notifUrl;\n const currency = webInitParams.currency;\n const reference = webInitParams.reference;\n const merchantKey = webInitParams.merchantKey;\n const returnUrl = webInitParams.returnUrl;\n const cancelUrl = webInitParams.cancelUrl;\n\n if (\n !(\n language &&\n countryCode &&\n amount &&\n transactionId &&\n notifUrl &&\n authorization &&\n currency &&\n reference &&\n merchantKey &&\n returnUrl &&\n cancelUrl\n )\n ) {\n this.logger.error(\n 'Initialization failed. Invalid data provided. ',\n JSON.stringify(webInitParams)\n );\n return {\n message: `Initialization failed. Invalid data provided. ${JSON.stringify(\n webInitParams\n )}`,\n status: 404,\n data: webInitParams,\n };\n }\n // Generates access token before initialize the payment.\n const accessTokenRequest: Record<string, unknown> =\n await generateAccessToken({\n authorization: authorization,\n weOmVersion: webInitParams.weOmVersion,\n logger: this.logger,\n });\n if (!accessTokenRequest.accessToken) {\n return accessTokenRequest as ErrorResponse;\n }\n\n // Initiate the payment.\n const accessTokenConvert = accessTokenRequest as AccessTokenResponse;\n return initiateWebPayment({\n language: language,\n accessToken: accessTokenConvert.accessToken,\n countryCode: countryCode,\n transactionId: transactionId,\n amount: amount,\n notifUrl: notifUrl,\n currency: currency,\n reference: reference,\n merchantKey: merchantKey,\n returnUrl: returnUrl,\n cancelUrl: cancelUrl,\n logger: this.logger,\n });\n }\n\n /**\n * Gets The web orange money payment status.\n * @param {WebParamsForCheckStatus} checkStatusParams the necessary parameters to get the web payment status.\n * @return {string} the response who contains the payment state.\n */\n async checkWebPaymentStatus(\n checkStatusParams: WebParamsForCheckStatus\n ): Promise<OrangePaymentStatus | undefined> {\n const transactionId = checkStatusParams.transactionId;\n const amount = checkStatusParams.amount;\n const paytoken = checkStatusParams.payToken;\n const authorization = checkStatusParams.authorization;\n const countryCode = checkStatusParams.countryCode;\n\n if (\n !(\n amount &&\n transactionId &&\n authorization &&\n transactionId &&\n paytoken &&\n countryCode\n )\n ) {\n this.logger.error(\n 'Failed to check the status: Invalid data provider' +\n JSON.stringify(checkStatusParams)\n );\n return;\n }\n\n return checkPaymentStatus({\n payToken: paytoken,\n transactionId: transactionId,\n authorization: authorization,\n amount: amount,\n countryCode: countryCode,\n weOmVersion: checkStatusParams.weOmVersion,\n logger: this.logger,\n });\n }\n}\n\nconst checkPaymentStatus = async ({\n authorization,\n weOmVersion,\n transactionId,\n amount,\n payToken,\n countryCode,\n logger,\n}: {\n authorization: string;\n weOmVersion?: string;\n transactionId: string;\n amount: string;\n payToken: string;\n countryCode: string;\n logger: LoggerInterface;\n}): Promise<OrangePaymentStatus | undefined> => {\n logger.log('Initiates the check of payment status');\n // Generates the access token.\n const accessTokenRequest: Record<string, unknown> = await generateAccessToken(\n {\n authorization: authorization,\n weOmVersion: weOmVersion,\n logger: logger,\n }\n );\n if (!accessTokenRequest.accessToken) {\n return;\n }\n const headers = {\n [ApiKey.keyAuthorization]: `Bearer ${accessTokenRequest.accessToken}`,\n [ApiKey.keyContentType]: ConstantRequestField.typeJson,\n };\n const body = {\n [ApiKey.keyOrderId]: transactionId,\n [ApiKey.keyAmount]: amount,\n [ApiKey.keyPayToken]: payToken,\n };\n const enPointURL = routes.getPaymentStatusUrl(countryCode);\n\n logger.info(\n `Gets the payment status with data: \\nheaders: ${JSON.stringify(\n headers\n )}\\ndata: ${JSON.stringify(body)}\\nroute: ${enPointURL}`\n );\n const response = await getRequest({\n headers: headers,\n data: body,\n route: enPointURL,\n logger: logger,\n });\n if (!isValidHttpSuccessfulStatus(response.status)) {\n logger.error(\n `Failed to get the status of payment. Request status ${response.status}, data ${response.data}`\n );\n return;\n }\n const data = response.data as Record<string, unknown>;\n return data.status as OrangePaymentStatus;\n};\n\nconst generateAccessToken = async ({\n authorization,\n weOmVersion,\n logger,\n}: {\n authorization: string;\n weOmVersion?: string;\n logger: LoggerInterface;\n}): Promise<AccessTokenResponse | ErrorResponse> => {\n const bodyRequest: Record<string, string> = {\n [ApiKey.keyGrantType]: 'client_credentials',\n };\n const options = {\n [ApiKey.keyAuthorization]: authorization,\n [ApiKey.keyContentType]: ConstantRequestField.TypeWwwFrom,\n };\n logger.info(\n `Generates the access token with data: \\nheaders: ${JSON.stringify(\n options\n )}\\ndata: ${JSON.stringify(\n encodeTheBodyOfRequest(bodyRequest)\n )}\\nroute: ${routes.webAccessTokenEndPoint(weOmVersion)}`\n );\n const response = await postRequest({\n headers: options,\n data: encodeTheBodyOfRequest(bodyRequest),\n route: routes.webAccessTokenEndPoint(weOmVersion),\n logger: logger,\n });\n if (!isValidHttpSuccessfulStatus(response.status)) {\n logger.error(\n `Request failed to generate the access token.Request status ${response.status} and data: ${response.data}`\n );\n return {\n message: 'Request failed to generate the accessToken',\n status: response.status,\n data: response.data,\n };\n }\n const data = response.data as Record<string, unknown>;\n return {\n accessToken: data.access_token as string,\n };\n};\n\nconst initiateWebPayment = async (params: {\n language: LanguageSupported;\n accessToken: string;\n countryCode: string;\n transactionId: string;\n amount: string;\n notifUrl: string;\n currency: string;\n reference: string;\n merchantKey: string;\n returnUrl: string;\n cancelUrl: string;\n logger: LoggerInterface;\n}): Promise<PaymentInitializationResponse | ErrorResponse> => {\n const headers = {\n [ApiKey.keyAuthorization]: `Bearer ${params.accessToken}`,\n [ApiKey.keyContentType]: ConstantRequestField.typeJson,\n };\n\n const body = {\n [ApiKey.keyLang]: params.language as string,\n [ApiKey.keyCurrency]: params.currency,\n [ApiKey.keyMerchantKey]: params.merchantKey,\n [ApiKey.keyOrderId]: params.transactionId,\n [ApiKey.keyAmount]: params.amount,\n [ApiKey.keyReturnUrl]: params.returnUrl,\n [ApiKey.keyCancelUrl]: params.cancelUrl,\n [ApiKey.keyWebNotifyUrl]: params.notifUrl,\n [ApiKey.keyReference]: params.reference,\n };\n params.logger.info(\n `Initiate the ORANGE MONEY Payment with data: \\nheaders: ${JSON.stringify(\n headers\n )}\\ndata: ${JSON.stringify(body)}\\nroute: ${routes.initLivePayment(\n params.countryCode\n )}`\n );\n const response = await postRequest({\n headers: headers,\n data: body,\n route: routes.initLivePayment(params.countryCode),\n logger: params.logger,\n });\n if (!isValidHttpSuccessfulStatus(response.status)) {\n params.logger.error(\n `Orange money Initialization failed with status ${response.status}, data ${response.data}`\n );\n return {\n message: 'Initialization failed',\n status: response.status,\n data: response.data,\n };\n }\n const data = response.data as Record<string, unknown>;\n\n return {\n status: OrangePaymentStatus.INITIATE_PAYMENT,\n payToken: data.pay_token as string,\n paymentUrl: data.payment_url as string,\n };\n};\n\n/**\n * Objects exported for testing.\n */\nexport const exportedForWebTesting = {\n generateAccessToken,\n initiateWebPayment,\n checkPaymentStatus,\n};\n","import { OrangeMoneyFunctions } from '../orange_money';\nimport { MobilePayment } from './mobile_platfom/mobile_platform';\nimport { WebPayment } from './web_platfom/web_platform';\nimport { LoggerInterface } from '../../utils/logging_interface';\n\n/**\n * Implement the orange money live payment.\n */\nexport class OrangeMoneyPaymentLive implements OrangeMoneyFunctions {\n /**\n * Constructs a new OrangeMoneyPaymentLive Payment.\n * @param {LoggerInterface} logger\n */\n constructor(public readonly logger: LoggerInterface) {}\n\n // Initialization of mobile orange money payment.\n initializeMobilePayment = new MobilePayment(this.logger)\n .initializeMobilePayment;\n\n // Initialization of web orange money payment.\n initializeWebPayment = new WebPayment(this.logger).initializeWebPayment;\n\n // Gets the web payment status.\n checkWebPaymentStatus = new WebPayment(this.logger).checkWebPaymentStatus;\n\n // Gets the mobile payment status.\n checkMobilePaymentStatus = new MobilePayment(this.logger)\n .checkMobilePaymentStatus;\n}\n","import {\n PaymentInitializationResponse,\n MobilePaymentInitializationResponse,\n} from '../../utils/requests_responses';\nimport { OrangePaymentStatus } from '../../constants';\n\nexport const mobileInitializationSuccess: MobilePaymentInitializationResponse =\n {\n status: OrangePaymentStatus.PENDING_PAYMENT,\n payToken: 'MP220806C74C8F5787A9C4F79AED',\n };\n\nexport const webInitializationSuccess: PaymentInitializationResponse = {\n status: OrangePaymentStatus.INITIATE_PAYMENT,\n payToken: 'MP220806C74C8F5787A9C4F79AED',\n paymentUrl: 'https://send.com/test',\n};\n\nexport const webCheckPaymentSuccess: OrangePaymentStatus =\n OrangePaymentStatus.SUCCESS_WEB_PAYMENT;\n\nexport const mobileCheckPaymentSuccess: OrangePaymentStatus =\n OrangePaymentStatus.SUCCESSFULL_MOBILE_PAYMENT;\n","import {\n MobileInitializationParams,\n WebInitializationParams,\n MobileParamsForCheckStatus,\n WebParamsForCheckStatus,\n} from '../../utils/resquest_params';\nimport {\n ErrorResponse,\n MobilePaymentCheckStatusResponse,\n MobilePaymentInitializationResponse,\n PaymentInitializationResponse,\n} from '../../utils/requests_responses';\nimport {\n mobileCheckPaymentSuccess,\n mobileInitializationSuccess,\n webCheckPaymentSuccess,\n webInitializationSuccess,\n} from './fake_result';\nimport { OrangeMoneyFunctions } from '../orange_money';\nimport { OrangeMoneyErrorType, OrangePaymentStatus } from '../../constants';\nimport { LoggerInterface } from '../../utils/logging_interface';\n\n/**\n * Implement the orange money fake payment.\n */\nexport class OrangeMoneyPaymentFake implements OrangeMoneyFunctions {\n /**\n * Constructs a new OrangeMoneyPaymentFake Payment.\n * @param {LoggerInterface} logger\n */\n constructor(public readonly logger: LoggerInterface) {}\n\n /**\n * Gets The mobile orange money payment status.\n * @param {MobileParamsForCheckStatus} checkStatusParams the necessary parameters to get the mobile payment status.\n * @return {string} the response who contains the payment state.\n */\n async checkMobilePaymentStatus(\n checkStatusParams: MobileParamsForCheckStatus\n ): Promise<MobilePaymentCheckStatusResponse> {\n const apiPassword = checkStatusParams.apiPassword;\n const apiUserName = checkStatusParams.apiUserName;\n const mobileEndPointURL = checkStatusParams.statusEndPointUrl;\n const xAuthToken = checkStatusParams.xAuthToken;\n const paytoken = checkStatusParams.payToken;\n\n if (\n !(\n apiPassword &&\n apiUserName &&\n mobileEndPointURL &&\n xAuthToken &&\n paytoken\n )\n ) {\n this.logger.error(\n ' Failed to check the status. Invalid data provided: ',\n JSON.stringify(checkStatusParams)\n );\n\n return { errorCode: OrangeMoneyErrorType.invalidData };\n }\n return { status: mobileCheckPaymentSuccess };\n }\n\n /**\n * Gets The web orange money payment status.\n * @param {WebParamsForCheckStatus} checkStatusParams the necessary parameters to get the web payment status.\n * @return {string} the response who contains the payment state.\n */\n async checkWebPaymentStatus(\n checkStatusParams: WebParamsForCheckStatus\n ): Promise<OrangePaymentStatus | undefined> {\n const transactionId = checkStatusParams.transactionId;\n const amount = checkStatusParams.amount;\n const paytoken = checkStatusParams.payToken;\n const authorization = checkStatusParams.authorization;\n const countryCode = checkStatusParams.countryCode;\n\n if (\n !(amount && transactionId && authorization && paytoken && countryCode)\n ) {\n this.logger.error(\n 'Failed to check the status. Invalid data provider: ' +\n JSON.stringify(checkStatusParams)\n );\n return;\n }\n return webCheckPaymentSuccess;\n }\n\n /**\n * Enter point to initiate the orange money mobile payment.\n * @param {MobileInitializationParams} mobileInitParams the necessary parameters to initialize the mobile payment.\n * @return {MobilePaymentInitializationResponse} the response of initialization.\n *\n **/\n async initializeMobilePayment(\n mobileInitParams: MobileInitializationParams\n ): Promise<MobilePaymentInitializationResponse> {\n const apiPassword = mobileInitParams.apiPassword;\n const apiUserName = mobileInitParams.apiUserName;\n const mobileEndPointURL = mobileInitParams.mobileEndPointURL;\n const xAuthToken = mobileInitParams.xAuthToken;\n const transactionId = mobileInitParams.transactionId;\n const amount = mobileInitParams.amount;\n const userPhoneNumber = mobileInitParams.userPhoneNumber;\n const notifUrl = mobileInitParams.notifUrl;\n const pinCode = mobileInitParams.pinCode;\n const receiverPhoneNumber = mobileInitParams.receiverPhoneNumber;\n\n if (\n !(\n apiPassword &&\n apiUserName &&\n xAuthToken &&\n amount &&\n transactionId &&\n userPhoneNumber &&\n mobileEndPointURL &&\n notifUrl &&\n pinCode &&\n receiverPhoneNumber\n )\n ) {\n this.logger.error(\n 'Initialization failed. Invalid data provided. ',\n JSON.stringify(mobileInitParams)\n );\n\n return {\n orangeMoneyError: OrangeMoneyErrorType.invalidData,\n };\n }\n return mobileInitializationSuccess;\n }\n\n /**\n * Enters point to initiate the orange money web payment.\n * @param {WebInitializationParams} webInitParams the necessary parameters to initialize the web payment.\n * @return {PaymentInitializationResponse | ErrorResponse} the response of initialization.\n *\n **/\n async initializeWebPayment(\n webInitParams: WebInitializationParams\n ): Promise<PaymentInitializationResponse | ErrorResponse> {\n const language = webInitParams.language;\n const authorization = webInitParams.authorization;\n const countryCode = webInitParams.countryCode;\n const transactionId = webInitParams.transactionId;\n const amount = webInitParams.amount;\n const notifUrl = webInitParams.notifUrl;\n const currency = webInitParams.currency;\n const reference = webInitParams.reference;\n const merchantKey = webInitParams.merchantKey;\n const returnUrl = webInitParams.returnUrl;\n const cancelUrl = webInitParams.cancelUrl;\n\n if (\n !(\n language &&\n countryCode &&\n amount &&\n transactionId &&\n notifUrl &&\n authorization &&\n currency &&\n reference &&\n merchantKey &&\n returnUrl &&\n cancelUrl\n )\n ) {\n return {\n message: `Initialization failed. Invalid data provided. ${JSON.stringify(\n webInitParams\n )}`,\n status: 404,\n data: webInitParams,\n };\n }\n return webInitializationSuccess;\n }\n}\n","export enum LogLevel {\n /**\n * Development verbose information.\n */\n DEBUG,\n /**\n * Significant messages.\n */\n INFO,\n /**\n * Really important stuff.\n */\n WARN,\n /**\n * General purpose error.\n */\n ERROR,\n /**\n * Disable the logging system.\n */\n SILENT,\n}\n\nexport const LevelName: Record<LogLevel, string> = {\n [LogLevel.DEBUG]: 'DEBUG',\n [LogLevel.INFO]: 'INFO',\n [LogLevel.WARN]: 'WARN',\n [LogLevel.ERROR]: 'ERROR',\n [LogLevel.SILENT]: 'SILENT',\n};\n","import { LogLevel } from './log_level';\nimport { LogPrinter } from './printer';\n\n/**\n * The main class of our logging system.\n */\nexport class Logger {\n /**\n * The lowest log level to use.\n * Use LogLevel.SILENT to disable printing.\n */\n static level: LogLevel = LogLevel.DEBUG;\n\n /**\n * A variable that contains a printer configuration that will be\n * called for debugging some message to the output.\n */\n static printer: LogPrinter = () => {\n return;\n };\n\n /**\n * Constructs a new [Logger] implementation.\n * @param {string} name\n */\n constructor(private name: string = '') {}\n\n /**\n * Sends a print message to a registered printer.\n * @param {Object} props\n * @return {void}\n */\n private print(props: { level: LogLevel; message: string }): void {\n if (props.level < Logger.level) {\n return;\n }\n\n Logger.printer({\n name: this.name,\n level: props.level,\n message: props.message,\n });\n switch (props.level) {\n case LogLevel.DEBUG:\n console.log(props.message);\n break;\n case LogLevel.INFO:\n console.info(props.message);\n break;\n case LogLevel.ERROR:\n console.error(props.message);\n break;\n case LogLevel.WARN:\n console.warn(props.message);\n break;\n }\n }\n\n /**\n * Log a debug level message.\n * @param {string[]} args\n */\n log(...args: string[]): void {\n this.print({ level: LogLevel.DEBUG, message: args.join('\\n') });\n }\n /**\n * Log an info level message.\n * @param {string[]} args\n */\n info(...args: string[]): void {\n this.print({ level: LogLevel.INFO, message: args.join('\\n') });\n }\n /**\n * Log a waning level message.\n * @param {string[]} args\n */\n warn(...args: string[]): void {\n this.print({ level: LogLevel.WARN, message: args.join('\\n') });\n }\n /**\n * Log an error level message.\n * @param {string[]} args\n */\n error(...args: string[]): void {\n this.print({ level: LogLevel.ERROR, message: args.join('\\n') });\n }\n}\n","import {\n MobileInitializationParams,\n WebInitializationParams,\n MobileParamsForCheckStatus,\n WebParamsForCheckStatus,\n} from '../utils/resquest_params';\nimport {\n ErrorResponse,\n MobilePaymentCheckStatusResponse,\n MobilePaymentInitializationResponse,\n PaymentInitializationResponse,\n} from '../utils/requests_responses';\nimport { OrangeMoneyPaymentLive } from './orange_money_live/orange_money_live_payment';\nimport { OrangeMoneyPaymentFake } from './orange_money_fake/orange_money_fake_payment';\nimport { OrangeMoneyPaymentType } from '../utils/utils';\nimport { OrangePaymentStatus } from '../constants';\nimport { Logger } from '@spreeloop-core/logging';\nimport { LoggerInterface } from '../utils/logging_interface';\n\nexport interface OrangeMoneyFunctions {\n /**\n * Enter point to initiate the orange money payment.\n * @param {String} webInitParams.authorization the encode to base64 of api username and api password.\n * @param {String} webInitParams.language the user language to use.\n * @param {String} webInitParams.countryCode the channel country code.\n * @param {String} webInitParams.merchantKey the channelUser secret code.\n * @param {String} webInitParams.currency the currency to apply to the amount.\n * @param {String} webInitParams.transactionId Unique identifier of the customer transaction.\n * @param {String} webInitParams.amount The amount of the transaction.\n * @param {String} webInitParams.returnUrl An http url called when the user validates the payment.\n * @param {String} webInitParams.cancelUrl An http url called when the user cancels the payment.\n * @param {String} webInitParams.notifUrl An http endpoint able to receive a post request.\n * @param {String} webInitParams.reference the payment reference. usually it takes as value the name of the channel. An http endpoint able to receive a post request.\n * @param {String} webInitParams.weOmVersion The web orange money version apply for generate an access token request.The default orange money version\n * is v3: https://apiw.orange.cm/oauth/v3/token\n * @param {String} webInitParams.reference the payment reference. usually it takes as value the name of the channel.\n **/\n initializeWebPayment(\n webInitParams: WebInitializationParams\n ): Promise<PaymentInitializationResponse | ErrorResponse>;\n\n /**\n * Enter point to initiate the mobile orange money payment.\n *\n * @param {String} mobileInitParams.mobileEndPointURL the http end point on which the request will be sent, example https://apiw.orange.cm.\n * @param {String} mobileInitParams.apiUserName channelUser api username.\n * @param {String} mobileInitParams.apiPassword channelUser api password.\n * @param {String} mobileInitParams.xAuthToken the x-auth-token.\n * @param {String} mobileInitParams.description the payment description.\n * @param {String} mobileInitParams.userPhoneNumber The phone number of the user making the payment.\n * @param {String} mobileInitParams.receiverPhoneNumber The phone number of the user receiving the payment.\n * @param {String} mobileInitParams.transactionId Unique identifier of the customer transaction.\n * @param {String} mobileInitParams.amount The amount of the transaction.\n * @param {String} mobileInitParams.pinCode The Pin code of the ChannelUser.\n * @param {String} mobileInitParams.notifUrl An http endpoint able to receive a post request.\n * @param {String} mobileInitParams.omVersion the mobile orange money version apply for payment request.The default orange money version\n * is 1.0.2: https://apiw.orange.cm/omcoreapis/1.0.2/mp/pay\n **/\n initializeMobilePayment(\n mobileInitParams: MobileInitializationParams\n ): Promise<MobilePaymentInitializationResponse>;\n\n /**\n * Gets The orange mobile money payment status.\n * NB: much of this information has been sent to you by the orange money service.\n * @param {String} checkStatusParams.statusEndpointUrl the http end point on which the request will be sent,\n * example: https://apiw.orange.cm.\n * @param {String} checkStatusParams.payToken unique identifier used to obtain payment status.\n * @param {String} checkStatusParams.xAuthToken The x-auth-token.\n * @param {String} checkStatusParams.apiUserName channelUser api username.\n * @param {String} checkStatusParams.apiPassword channelUser api password.\n * @param {String} checkStatusParams.mobileOmVersion The mobile orange money version apply for\n * payment request.The default orange money version used is 1.0.2. channelUser api password.\n */\n checkMobilePaymentStatus(\n checkStatusParams: MobileParamsForCheckStatus\n ): Promise<MobilePaymentCheckStatusResponse>;\n\n /**\n * Gets The orange money web payment status.\n *\n * @param {String} checkStatusParams.payToken unique identifier used to obtain payment status.\n * @param {String} checkStatusParams.countryCode country code of the country where the request will be executed.\n * @param {String} checkStatusParams.amount The amount of the transaction.\n * @param {String} checkStatusParams.orderId Unique identifier of the customer transaction.\n * @param {String} checkStatusParams.authorization the encode to base64 of api username and api password.\n * @param {String} checkStatusParams.weOmVersion The web orange money version apply for generate an access token request.The default orange money version\n * is v3. Use case: https://apiw.orange.cm/oauth/v3/token\n * @return {OrangePaymentStatus | undefined} return the orange money payment status when the\n * request are successful and undefined otherwise.\n */\n checkWebPaymentStatus(\n checkStatusParams: WebParamsForCheckStatus\n ): Promise<OrangePaymentStatus | undefined>;\n}\n\n/**\n * Creates a orange money payment.\n */\nexport class OrangeMoneyPayment {\n /**\n * Returns the corresponding function orange money payment implementation.\n * @param {OrangeMoneyPaymentType} orangeMoneyPaymentType The type of function orange money payment used.\n * @param {LoggerInterface} logger The logger implementation to use.\n * @return {OrangeMoneyPayment} The corresponding interface to called for make orange money payment orange money.\n */\n static createPayment(\n orangeMoneyPaymentType: OrangeMoneyPaymentType,\n logger: LoggerInterface = new Logger()\n ): OrangeMoneyFunctions {\n switch (orangeMoneyPaymentType) {\n case OrangeMoneyPaymentType.live:\n return new OrangeMoneyPaymentLive(logger);\n case OrangeMoneyPaymentType.fake:\n return new OrangeMoneyPaymentFake(logger);\n default:\n return new OrangeMoneyPaymentLive(logger);\n }\n }\n}\n"],"names":["ApiKey","__webpack_require__","module","getter","__esModule","d","a","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","OrangePaymentStatus","OrangeMoneyErrorType","LanguageSupported","ConstantRequestField","require","i","OrangeMoneyPaymentType","encodeToBase64","apiUsername","apiPassword","base64url","postRequest","data","route","headers","logger","agent","https","rejectUnauthorized","axios","method","url","httpsAgent","response","info","status","JSON","stringify","error","warn","request","config","message","getRequest","encodeTheBodyOfRequest","bodyRequest","formBody","encodedKey","encodeURIComponent","encodedValue","push","join","isValidHttpSuccessfulStatus","code","routes","initLivePayment","liveRoute","mobileOmVersion","version","getPaymentStatusUrl","params","payToken","mobilePayTokenUrl","mobileAccessTokenEndPoint","MobilePayment","mobileInitParams","apiUserName","mobileEndPointURL","xAuthToken","transactionId","amount","userPhoneNumber","notifUrl","pinCode","receiverPhoneNumber","this","orangeMoneyError","invalidData","generateAccessToken","result","failToGenerateAccessToken","accessToken","generatePayToken","orangeMoneyVersion","urlRoute","payTokenResult","failToGeneratePayToken","initiateMobilePayment","description","checkStatusParams","statusEndPointUrl","paytoken","checkPaymentStatus","accessTokenResult","keyAuthorization","keyContentType","typeJson","keyXAuthToken","enPointURL","undefined","failToCheckPaymentStatus","encodeToBase64UserAndPassword","authorization","keyGrantType","endPoint","TypeWwwFrom","options","access_token","keySubscriberMsisdn","keyChannelUserMsisdn","keyAmount","keyDescription","keyMobileOrderId","keyPin","keyMobilePayToken","keyMobileNotifUrl","keyReturnUrl","body","inittxnmessage","invalidOrangeMoneyNumber","insufficientFunds","failToInitiateThePayment","PENDING_PAYMENT","countryCode","webAccessTokenEndPoint","weOmVersion","WebPayment","webInitParams","language","currency","reference","merchantKey","returnUrl","cancelUrl","accessTokenRequest","accessTokenConvert","initiateWebPayment","log","keyOrderId","keyPayToken","keyLang","keyCurrency","keyMerchantKey","keyCancelUrl","keyWebNotifyUrl","keyReference","INITIATE_PAYMENT","pay_token","paymentUrl","payment_url","OrangeMoneyPaymentLive","initializeMobilePayment","initializeWebPayment","checkWebPaymentStatus","checkMobilePaymentStatus","mobileInitializationSuccess","webInitializationSuccess","webCheckPaymentSuccess","SUCCESS_WEB_PAYMENT","mobileCheckPaymentSuccess","SUCCESSFULL_MOBILE_PAYMENT","LogLevel","OrangeMoneyPaymentFake","errorCode","DEBUG","INFO","WARN","ERROR","SILENT","Logger","name","props","level","printer","console","args","print","OrangeMoneyPayment","orangeMoneyPaymentType","live","fake"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ export * from './src/index';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./src/index"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B"}
@@ -0,0 +1,77 @@
1
+ import { LoggerInterface } from './logging_interface';
2
+ export declare enum RequestStatusCode {
3
+ unauthorized = 401,
4
+ expectationFailed = 417
5
+ }
6
+ export declare type RequestResponse<T> = {
7
+ response?: {
8
+ data: T;
9
+ status: number;
10
+ };
11
+ error?: unknown;
12
+ };
13
+ /**
14
+ * Posts an http request to the given route.
15
+ * @param {Record<string, string | undefined> | string} data The data to be posted.
16
+ * @param {string} route The end point url.
17
+ * @param {Record<string, string>} headers The type content of request.
18
+ * @param {LoggerInterface} logger The logger to use when posting data.
19
+ * @return {Promise<unknown | undefined>} The server response.
20
+ */
21
+ export declare function postRequest<T>({ data, route, headers, logger, rejectUnauthorized, }: {
22
+ data?: Record<string, unknown> | string | null;
23
+ route: string;
24
+ logger: LoggerInterface;
25
+ headers?: Record<string, string>;
26
+ rejectUnauthorized?: boolean;
27
+ }): Promise<RequestResponse<T>>;
28
+ /**
29
+ * Gets an http request to the given route.
30
+ * @param {Record<string, string | undefined> | string} data The data to be posted.
31
+ * @param {string} route The end point url.
32
+ * @param {Record<string, string>} headers The type content of request.
33
+ * @param {LoggerInterface} logger The logger to use when getting data.
34
+ * @return {Promise<unknown | undefined>} The server response.
35
+ */
36
+ export declare function getRequest<T>({ data, route, headers, logger, rejectUnauthorized, }: {
37
+ data?: Record<string, string | undefined> | string;
38
+ route: string;
39
+ headers?: Record<string, string>;
40
+ logger: LoggerInterface;
41
+ rejectUnauthorized?: boolean;
42
+ }): Promise<RequestResponse<T>>;
43
+ /**
44
+ * Parses an Axios error and returns a modified error object.
45
+ *
46
+ * @param {unknown} error - The error object to be parsed.
47
+ * @return {unknown} The modified error object.
48
+ */
49
+ export declare function parseAxiosError(error: unknown): unknown;
50
+ /**
51
+ * Generates a hash using the given key and secret.
52
+ *
53
+ * @param {string} key - The key to be hashed.
54
+ * @param {string} secret - The secret to be hashed.
55
+ * @return {string} - The generated hash.
56
+ */
57
+ export declare function hash(key: string, secret: string): string;
58
+ /**
59
+ * Encode the body of the request.
60
+ * @param {Record<string, string>} bodyRequest the body request.
61
+ * @return {string} the encoded body request result.
62
+ */
63
+ export declare function encodeTheBodyOfRequest(bodyRequest: Record<string, string>): string;
64
+ export declare const encodeToBase64: (apiUsername: string, apiPassword: string) => string;
65
+ /**
66
+ * Encode the data to w3 x form encoded url.
67
+ * @param {Record<string, string>} data the data to encode.
68
+ * @return {string} the encoded value.
69
+ */
70
+ export declare function encodeDataToXFormUrl(data: Record<string, string>): string;
71
+ /**
72
+ * Checks if the code is a successful code response.
73
+ * @param {num} code .
74
+ * @return {boolean} true if the code is valid.
75
+ */
76
+ export declare const isSuccessfulCodeResponse: (code: number) => boolean;
77
+ //# sourceMappingURL=https.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"https.d.ts","sourceRoot":"","sources":["../../../../../src/common/utils/https.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,oBAAY,iBAAiB;IAC3B,YAAY,MAAM;IAClB,iBAAiB,MAAM;CACxB;AAED,oBAAY,eAAe,CAAC,CAAC,IAAI;IAC/B,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,CAAC,CAAC;QACR,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,EACnC,IAAI,EACJ,KAAK,EACL,OAAO,EACP,MAAM,EACN,kBAAyB,GAC1B,EAAE;IACD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAmD9B;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAAE,EAClC,IAAI,EACJ,KAAK,EACL,OAAO,EACP,MAAM,EACN,kBAAyB,GAC1B,EAAE;IACD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,EAAE,eAAe,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAmD9B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA2BvD;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,MAAM,CAUR;AAGD,eAAO,MAAM,cAAc,gBACZ,MAAM,eACN,MAAM,KAClB,MAEF,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAUzE;AAED;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,SAAU,MAAM,KAAG,OAC7B,CAAC"}