@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
@@ -0,0 +1,57 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.joiMobileStatusCheckValidatorParams = exports.provideInitializationBodySchema = exports.LanguageSupported = void 0;
27
+ const Joi = __importStar(require("joi"));
28
+ var LanguageSupported;
29
+ (function (LanguageSupported) {
30
+ LanguageSupported["en"] = "en";
31
+ LanguageSupported["fr"] = "fr";
32
+ })(LanguageSupported = exports.LanguageSupported || (exports.LanguageSupported = {}));
33
+ exports.provideInitializationBodySchema = {
34
+ subscriberMsisdn: Joi.string()
35
+ .required()
36
+ .pattern(/^(69\d{7}$|65[5-9]\d{6}$)/)
37
+ .message('Invalid orange number. Format of valid number: 699947943 '),
38
+ channelUserMsisdn: Joi.string()
39
+ .required()
40
+ .pattern(/^(69\d{7}$|65[5-9]\d{6}$)/)
41
+ .message('Invalid orange number. Format of valid number: 699947943'),
42
+ amount: Joi.string().required(),
43
+ payToken: Joi.string().required(),
44
+ pin: Joi.string().max(4).required(),
45
+ notifUrl: Joi.string().allow('').default(''),
46
+ orangeMoneyVersion: Joi.string(),
47
+ description: Joi.string().allow('').max(125).default('payment'),
48
+ orderId: Joi.string().max(20).required(),
49
+ };
50
+ exports.joiMobileStatusCheckValidatorParams = Joi.object({
51
+ xAuthToken: Joi.string().required(),
52
+ payToken: Joi.string().required(),
53
+ apiUserName: Joi.string().required(),
54
+ apiPassword: Joi.string().required(),
55
+ mobileOmVersion: Joi.string(),
56
+ });
57
+ //# sourceMappingURL=resquest_params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resquest_params.js","sourceRoot":"","sources":["../../../../src/utils/resquest_params.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA2B;AAE3B,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,8BAAS,CAAA;IACT,8BAAS,CAAA;AACX,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B;AAoGY,QAAA,+BAA+B,GAAG;IAC7C,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE;SAC3B,QAAQ,EAAE;SACV,OAAO,CAAC,2BAA2B,CAAC;SACpC,OAAO,CAAC,2DAA2D,CAAC;IACvE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE;SAC5B,QAAQ,EAAE;SACV,OAAO,CAAC,2BAA2B,CAAC;SACpC,OAAO,CAAC,0DAA0D,CAAC;IACtE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE;IAChC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/D,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CACzC,CAAC;AAEW,QAAA,mCAAmC,GAC9C,GAAG,CAAC,MAAM,CAA6B;IACrC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE;CAC9B,CAAC,CAAC"}
@@ -0,0 +1,65 @@
1
+ import Joi from 'joi';
2
+ import { LoggerInterface } from './logging_interface';
3
+ export declare const encodeToBase64: (apiUsername: string, apiPassword: string) => string;
4
+ export declare type RequestResponse<T> = {
5
+ data: T;
6
+ status: number;
7
+ error?: undefined;
8
+ } | {
9
+ data?: undefined;
10
+ status: number;
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
+ * @return {Promise<unknown | undefined>} The server response.
19
+ */
20
+ export declare function postRequest<T, R = Record<string, unknown>>({ data, route, headers, logger, bodySchema, }: {
21
+ data?: Record<string, unknown> | string;
22
+ route: string;
23
+ headers?: Record<string, string>;
24
+ logger: LoggerInterface;
25
+ bodySchema?: Joi.PartialSchemaMap<R>;
26
+ }): Promise<RequestResponse<T>>;
27
+ /**
28
+ * Gets an http request to the given route.
29
+ * @param {Record<string, string | undefined> | string} data The data to be posted.
30
+ * @param {string} route The end point url.
31
+ * @param {Record<string, string>} headers The type content of request.
32
+ * @return {Promise<unknown | undefined>} The server response.
33
+ */
34
+ export declare function getRequest<T = Record<string, string | undefined>>({ data, route, headers, logger, }: {
35
+ data?: Record<string, string | undefined> | string;
36
+ route: string;
37
+ headers?: Record<string, string>;
38
+ logger: LoggerInterface;
39
+ }): Promise<RequestResponse<T>>;
40
+ /**
41
+ * Encode the body of the request.
42
+ * @param {Record<string, string>} bodyRequest the body request.
43
+ * @return {string} the encoded body request result.
44
+ */
45
+ export declare function encodeTheBodyOfRequest(bodyRequest: Record<string, string>): string;
46
+ /**
47
+ * Checks if the code is valid http successful response.
48
+ * @param {num} code .
49
+ * @return {boolean} true if the code is valid.
50
+ */
51
+ export declare const isValidHttpSuccessfulStatus: (code: number) => boolean;
52
+ /**
53
+ * Checks if the data is valid type.
54
+ * @param {Record<string, unknown>} data .
55
+ * @param {Joi.PartialSchemaMap<T>} schema .
56
+ * @return {Record<string, unknown>}
57
+ */
58
+ export declare function validateData<T>(data: unknown, schema: Joi.PartialSchemaMap<T>): {
59
+ isValidData: true;
60
+ data: T;
61
+ } | {
62
+ isValidData: false;
63
+ message: string;
64
+ };
65
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/utils.ts"],"names":[],"mappings":"AAGA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,eAAO,MAAM,cAAc,gBACZ,MAAM,eACN,MAAM,KAClB,MAEF,CAAC;AAEF,oBAAY,eAAe,CAAC,CAAC,IACzB;IACE,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,GACD;IACE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAEN;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAChE,IAAI,EACJ,KAAK,EACL,OAAO,EACP,MAAM,EACN,UAAU,GACX,EAAE;IACD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;CACtC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAoE9B;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EACvE,IAAI,EACJ,KAAK,EACL,OAAO,EACP,MAAM,GACP,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;CACzB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAsD9B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,MAAM,CAUR;AAED;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,SAAU,MAAM,KAAG,OACb,CAAC;AAE/C;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAC9B;IAAE,WAAW,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,WAAW,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAmB1E"}
@@ -0,0 +1,199 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.validateData = exports.isValidHttpSuccessfulStatus = exports.encodeTheBodyOfRequest = exports.getRequest = exports.postRequest = exports.encodeToBase64 = void 0;
30
+ const axios = __importStar(require("axios"));
31
+ const base64url_1 = __importDefault(require("base64url"));
32
+ const https = __importStar(require("https"));
33
+ const joi_1 = __importDefault(require("joi"));
34
+ // Encode to base64
35
+ const encodeToBase64 = (apiUsername, apiPassword) => {
36
+ return (0, base64url_1.default)(`${apiUsername}:${apiPassword}`);
37
+ };
38
+ exports.encodeToBase64 = encodeToBase64;
39
+ /**
40
+ * Posts an http request to the given route.
41
+ * @param {Record<string, string | undefined> | string} data The data to be posted.
42
+ * @param {string} route The end point url.
43
+ * @param {Record<string, string>} headers The type content of request.
44
+ * @return {Promise<unknown | undefined>} The server response.
45
+ */
46
+ async function postRequest({ data, route, headers, logger, bodySchema, }) {
47
+ var _a, _b;
48
+ try {
49
+ const agent = new https.Agent({
50
+ rejectUnauthorized: false,
51
+ });
52
+ let body = data;
53
+ if (bodySchema && data) {
54
+ const validData = validateData(data, bodySchema);
55
+ if (!validData.isValidData) {
56
+ return {
57
+ error: validData.message,
58
+ status: 400,
59
+ };
60
+ }
61
+ body = validData.data;
62
+ }
63
+ const response = await axios.default({
64
+ method: 'post',
65
+ url: route,
66
+ headers: headers,
67
+ data: body,
68
+ httpsAgent: agent,
69
+ });
70
+ logger.info(`Request on the route ${route} completed successfully with status ${response.status} and data : ${JSON.stringify(response.data)}`);
71
+ return { data: response.data, status: response.status };
72
+ }
73
+ catch (err) {
74
+ if (axios.default.isAxiosError(err)) {
75
+ const error = err;
76
+ const response = error.response;
77
+ if (response) {
78
+ // The request was made and the server responded with a status code
79
+ // that falls out of the range of 2xx
80
+ logger.warn(`The POST request was made on the router ${route} and the server responded with a status code ${response.status} with data response: ${JSON.stringify(response.data)}`);
81
+ return {
82
+ status: response.status,
83
+ error: response.data,
84
+ };
85
+ }
86
+ if (error.request) {
87
+ // The request was made but no response was received
88
+ // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
89
+ // http.ClientRequest in node.js
90
+ logger.warn(`The POST request was made on the router ${route} but no response was received. config data: ${(_a = error.config) === null || _a === void 0 ? void 0 : _a.data}`);
91
+ return { status: 0, error: (_b = error.config) === null || _b === void 0 ? void 0 : _b.data };
92
+ }
93
+ logger.warn(`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}`);
94
+ return { status: 404, error: error.message };
95
+ }
96
+ logger.warn(`[Axios] failed to send post request on the route: ${route}\n error: ${err}`);
97
+ return { status: 404, error: err };
98
+ }
99
+ }
100
+ exports.postRequest = postRequest;
101
+ /**
102
+ * Gets an http request to the given route.
103
+ * @param {Record<string, string | undefined> | string} data The data to be posted.
104
+ * @param {string} route The end point url.
105
+ * @param {Record<string, string>} headers The type content of request.
106
+ * @return {Promise<unknown | undefined>} The server response.
107
+ */
108
+ async function getRequest({ data, route, headers, logger, }) {
109
+ var _a, _b;
110
+ try {
111
+ const agent = new https.Agent({
112
+ rejectUnauthorized: false,
113
+ });
114
+ const response = await axios.default({
115
+ method: 'get',
116
+ url: route,
117
+ headers: headers,
118
+ data: data,
119
+ httpsAgent: agent,
120
+ });
121
+ logger.info(`Request on the route ${route} completed successfully with status ${response.status} and data : ${JSON.stringify(response.data)}`);
122
+ return { status: response.status, data: response.data };
123
+ }
124
+ catch (err) {
125
+ if (axios.default.isAxiosError(err)) {
126
+ const error = err;
127
+ const response = error.response;
128
+ if (response) {
129
+ // The request was made and the server responded with a status code
130
+ // that falls out of the range of 2xx
131
+ logger.warn(`The GET request was made on the router ${route} and the server responded with a status code ${response.status} with data response: ${response.data}`);
132
+ return {
133
+ status: response.status,
134
+ error: response.data,
135
+ };
136
+ }
137
+ if (error.request) {
138
+ // The request was made but no response was received
139
+ // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
140
+ // http.ClientRequest in node.js
141
+ logger.warn(`The GET request was made on the router ${route} but no response was received. config data: ${(_a = error.config) === null || _a === void 0 ? void 0 : _a.data}`);
142
+ return { status: 0, error: (_b = error.config) === null || _b === void 0 ? void 0 : _b.data };
143
+ }
144
+ logger.warn(`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}`);
145
+ return { status: 404, error: error.message };
146
+ }
147
+ logger.warn(`[Axios] failed to send post request on the route: ${route}\n error: ${err}`);
148
+ return { status: 404, error: err };
149
+ }
150
+ }
151
+ exports.getRequest = getRequest;
152
+ /**
153
+ * Encode the body of the request.
154
+ * @param {Record<string, string>} bodyRequest the body request.
155
+ * @return {string} the encoded body request result.
156
+ */
157
+ function encodeTheBodyOfRequest(bodyRequest) {
158
+ const formBody = [];
159
+ for (const key in bodyRequest) {
160
+ if ({}.hasOwnProperty.call(bodyRequest, key)) {
161
+ const encodedKey = encodeURIComponent(key);
162
+ const encodedValue = encodeURIComponent(bodyRequest[key]);
163
+ formBody.push(encodedKey + '=' + encodedValue);
164
+ }
165
+ }
166
+ return formBody.join('&');
167
+ }
168
+ exports.encodeTheBodyOfRequest = encodeTheBodyOfRequest;
169
+ /**
170
+ * Checks if the code is valid http successful response.
171
+ * @param {num} code .
172
+ * @return {boolean} true if the code is valid.
173
+ */
174
+ const isValidHttpSuccessfulStatus = (code) => code === 201 || code === 200 || code === 202;
175
+ exports.isValidHttpSuccessfulStatus = isValidHttpSuccessfulStatus;
176
+ /**
177
+ * Checks if the data is valid type.
178
+ * @param {Record<string, unknown>} data .
179
+ * @param {Joi.PartialSchemaMap<T>} schema .
180
+ * @return {Record<string, unknown>}
181
+ */
182
+ function validateData(data, schema) {
183
+ const { error, value } = joi_1.default.object(schema).validate(data, {
184
+ abortEarly: false,
185
+ convert: false,
186
+ });
187
+ if (error) {
188
+ return {
189
+ isValidData: false,
190
+ message: JSON.stringify(error.details.map((e) => e.message), null, ' '),
191
+ };
192
+ }
193
+ return {
194
+ isValidData: true,
195
+ data: value,
196
+ };
197
+ }
198
+ exports.validateData = validateData;
199
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/utils/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.spec.d.ts","sourceRoot":"","sources":["../../../../src/utils/utils.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("./utils");
4
+ describe('Test the utils function', () => {
5
+ it('Generate the base 64 encoding', async () => {
6
+ const value = (0, utils_1.encodeToBase64)('123', '123');
7
+ expect(value).toEqual('MTIzOjEyMw');
8
+ });
9
+ it('encode the body request', async () => {
10
+ const body = {
11
+ amount: '123',
12
+ };
13
+ const value = (0, utils_1.encodeTheBodyOfRequest)(body);
14
+ expect(value).toEqual('amount=123');
15
+ });
16
+ });
17
+ //# sourceMappingURL=utils.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.spec.js","sourceRoot":"","sources":["../../../../src/utils/utils.spec.ts"],"names":[],"mappings":";;AAAA,mCAAiE;AAEjE,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,KAAK,GAAG,IAAA,sBAAc,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,KAAK;SACd,CAAC;QACF,MAAM,KAAK,GAAG,IAAA,8BAAsB,EAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/index.spec.ts ADDED
@@ -0,0 +1,9 @@
1
+ import * as index from './index';
2
+
3
+ // Ensure that we import all exported functions,
4
+ // in order to have more accurate code coverage stats.
5
+ describe('Import all functions', () => {
6
+ it('ensures that the index is defined', () => {
7
+ expect(index).toBeDefined();
8
+ });
9
+ });
package/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './src/index';
@@ -0,0 +1,3 @@
1
+ afterEach(() => {
2
+ jest.restoreAllMocks();
3
+ });
package/jest.config.ts ADDED
@@ -0,0 +1,54 @@
1
+ import type { Config } from 'jest';
2
+
3
+ /*
4
+ * For a detailed explanation regarding each configuration property and type check, visit:
5
+ * https://jestjs.io/docs/configuration
6
+ */
7
+ const jestConfig: Config = {
8
+ // An array of glob patterns indicating a set of files for which coverage information should be collected
9
+ collectCoverageFrom: ['src/**/*.{js,ts}', '!src/**/*.d.ts'],
10
+
11
+ // The directory where Jest should output its coverage files
12
+ coverageDirectory: 'coverage',
13
+
14
+ // An array of directory names to be searched recursively up from the requiring module's location
15
+ moduleDirectories: ['<rootDir>', 'node_modules'],
16
+
17
+ // An alternative API to setting the NODE_PATH env variable,
18
+ // modulePaths is an array of absolute paths to additional locations to search when resolving modules.
19
+ modulePaths: ['<rootDir>/node_modules'],
20
+
21
+ // An array of file extensions your modules use
22
+ // Module file extensions for importing
23
+ moduleFileExtensions: ['ts', 'js'],
24
+
25
+ // Automatically reset mock state before every test
26
+ resetMocks: true,
27
+
28
+ // The test environment that will be used for testing
29
+ testEnvironment: 'node',
30
+
31
+ moduleNameMapper: {
32
+ '@spreeloop-core/logging': '<rootDir>../logging',
33
+ },
34
+
35
+ // A list of paths to modules that run some code to configure or set up the testing framework
36
+ // before each test file in the suite is executed.
37
+ setupFilesAfterEnv: ['<rootDir>/jest.before-test.ts'],
38
+
39
+ // The glob patterns Jest uses to detect test files
40
+ testMatch: ['<rootDir>/**/*.spec.{js,ts}'],
41
+
42
+ // A transformer is a module that provides a synchronous function for transforming source files.
43
+ transform: {
44
+ '^.+\\.ts$': 'babel-jest',
45
+ },
46
+
47
+ // Those file will not be transformed
48
+ transformIgnorePatterns: [],
49
+
50
+ // Indicates whether each individual test should be reported during the run
51
+ verbose: true,
52
+ };
53
+
54
+ export default jestConfig;
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@spreeloop/orange_money",
3
+ "version": "1.0.0",
4
+ "description": "A orange money api integration package",
5
+ "git repository": "https://github.com/spreeloop/core-ts/orange_money",
6
+ "author": "Spreeloop",
7
+ "scripts": {
8
+ "lint": "eslint --max-warnings=0 --ext .js,.ts .",
9
+ "test": "jest",
10
+ "coverage": "jest --coverage"
11
+ },
12
+ "main": "dist/index.js",
13
+ "license": "MIT",
14
+ "types": "dist/index.d.ts",
15
+ "type": "commonjs",
16
+ "test command": "jest",
17
+ "keywords": [
18
+ "orange money",
19
+ "y-note",
20
+ "nodejs"
21
+ ],
22
+ "devDependencies": {
23
+ "@babel/core": "^7.19.0",
24
+ "@babel/preset-env": "^7.19.0",
25
+ "@babel/preset-typescript": "^7.18.6",
26
+ "@types/request": "^2.48.8",
27
+ "@typescript-eslint/eslint-plugin": "^5.30.0",
28
+ "@typescript-eslint/parser": "^5.30.3",
29
+ "babel-jest": "^29.7.0",
30
+ "@types/jest": "^29.5.11",
31
+ "jest": "^29.7.0",
32
+ "ts-jest": "^29.1.1",
33
+ "codecov": "^3.8.3",
34
+ "eslint": "^8.19.0",
35
+ "eslint-config-google": "^0.14.0",
36
+ "eslint-config-prettier": "^8.5.0",
37
+ "eslint-import-resolver-custom-alias": "^1.3.0",
38
+ "eslint-plugin-import": "^2.26.0",
39
+ "eslint-plugin-prettier": "^4.0.0",
40
+ "eslint-plugin-standard": "^5.0.0",
41
+ "eslint-plugin-vue": "^9.1.1",
42
+ "prettier": "^2.6.0",
43
+ "ts-node": "^10.4.0",
44
+ "tslib": "^2.4.0",
45
+ "typescript": "^4.7.4"
46
+ },
47
+ "dependencies": {
48
+ "axios": "^1.6.2",
49
+ "base64url": "^3.0.1",
50
+ "joi": "^17.9.2"
51
+ }
52
+ }
@@ -0,0 +1,133 @@
1
+ import Joi from 'joi';
2
+ import { DisbursementXTargetEnvironmentType } from '../utils/constants';
3
+ import { LoggerInterface } from '../../utils/logging_interface';
4
+ import { merchantPhoneNumberRegex } from '../utils/regex';
5
+ import { CreateAccessTokenResponse } from '../operations/create_access_token';
6
+ import { TransferRequest, TransferResponse } from '../operations/transfer';
7
+ import {
8
+ GetTransferStatusRequest,
9
+ GetTransferStatusResponse,
10
+ } from '../operations/get_transfer_status';
11
+ import { DisbursementLive } from './src/live';
12
+ import { DisbursementFake } from './src/sandbox';
13
+
14
+ /**
15
+ * Interface for DisbursementServiceConfig.
16
+ */
17
+ export interface DisbursementServiceConfig {
18
+ clientId: string;
19
+ clientSecret: string;
20
+ customerKey: string;
21
+ customerSecret: string;
22
+ channelUserMsisdn: string;
23
+ pin: string;
24
+ environment: DisbursementXTargetEnvironmentType;
25
+ logger: LoggerInterface;
26
+ }
27
+
28
+ /**
29
+ * Joi schema for DisbursementServiceConfigSchema.
30
+ */
31
+ export const DisbursementServiceConfigSchema =
32
+ Joi.object<DisbursementServiceConfig>({
33
+ clientId: Joi.string().required().messages({
34
+ 'string.base': '"clientId" should be a type of \'text\'',
35
+ 'string.empty': '"clientId" cannot be an empty field',
36
+ 'any.required': '"clientId" is a required field',
37
+ }),
38
+ clientSecret: Joi.string().required().messages({
39
+ 'string.base': '"clientSecret" should be a type of \'text\'',
40
+ 'string.empty': '"clientSecret" cannot be an empty field',
41
+ 'any.required': '"clientSecret" is a required field',
42
+ }),
43
+ customerKey: Joi.string().required().messages({
44
+ 'string.base': '"customerKey" should be a type of \'text\'',
45
+ 'string.empty': '"customerKey" cannot be an empty field',
46
+ 'any.required': '"customerKey" is a required field',
47
+ }),
48
+ customerSecret: Joi.string().required().messages({
49
+ 'string.base': '"customerSecret" should be a type of \'text\'',
50
+ 'string.empty': '"customerSecret" cannot be an empty field',
51
+ 'any.required': '"customerSecret" is a required field',
52
+ }),
53
+ channelUserMsisdn: Joi.string()
54
+ .pattern(merchantPhoneNumberRegex)
55
+ .required()
56
+ .messages({
57
+ 'string.base': '"channelUserMsisdn" should be a type of \'text\'',
58
+ 'string.empty': '"channelUserMsisdn" cannot be an empty field',
59
+ 'any.required': '"channelUserMsisdn" is a required field',
60
+ }),
61
+ pin: Joi.string().required().messages({
62
+ 'string.base': '"pin" should be a type of \'text\'',
63
+ 'string.empty': '"pin" cannot be an empty field',
64
+ 'any.required': '"pin" is a required field',
65
+ }),
66
+ environment: Joi.string()
67
+ .valid(...Object.values(DisbursementXTargetEnvironmentType))
68
+ .required()
69
+ .messages({
70
+ 'string.base': '"environment" should be a type of \'text\'',
71
+ 'string.empty': '"environment" cannot be an empty field',
72
+ 'any.required': '"environment" is a required field',
73
+ }),
74
+ logger: Joi.object().required().messages({
75
+ 'string.base': '"logger" should be a type of \'object\'',
76
+ 'string.empty': '"logger" cannot be an empty field',
77
+ 'any.required': '"logger" is a required field',
78
+ }),
79
+ });
80
+
81
+ /**
82
+ * Orange Money API Disbursement.
83
+ * @class
84
+ */
85
+ export interface DisbursementInterface {
86
+ /**
87
+ * Creates an access token.
88
+ *
89
+ * @return {Promise<CreateAccessTokenResponse>} The method response containing a string and a token.
90
+ */
91
+ createAccessToken(): Promise<CreateAccessTokenResponse>;
92
+
93
+ /**
94
+ * Transfers the specified amount of money from one account to another.
95
+ *
96
+ * @param {TransferRequest} params - The parameters for the transfer.
97
+ * @return {Promise<TransferResponse>} - The response from the transfer method.
98
+ */
99
+ transfer(params: TransferRequest): Promise<TransferResponse>;
100
+
101
+ /**
102
+ * Retrieves the status of a transfer.
103
+ *
104
+ * @param {GetTransferStatusRequest} params - The parameters for retrieving the transfer status.
105
+ * @return {Promise<GetTransferStatusResponse>} - The method response containing the status and transfer status response.
106
+ */
107
+ getTransferStatus(
108
+ params: GetTransferStatusRequest
109
+ ): Promise<GetTransferStatusResponse>;
110
+ }
111
+
112
+ /**
113
+ * Orange Money API Disbursement.
114
+ * @class
115
+ */
116
+ export class Disbursement {
117
+ /**
118
+ * Creates a new Disbursement object based on the provided configuration.
119
+ *
120
+ * @param {DisbursementServiceConfig} config - The configuration for the Disbursement object.
121
+ * @return {Disbursement} A new Disbursement object based on the provided configuration.
122
+ */
123
+ static createDisbursement(
124
+ config: DisbursementServiceConfig
125
+ ): DisbursementInterface {
126
+ switch (config.environment) {
127
+ case DisbursementXTargetEnvironmentType.prod:
128
+ return new DisbursementLive(config);
129
+ case DisbursementXTargetEnvironmentType.sandbox:
130
+ return new DisbursementFake(config);
131
+ }
132
+ }
133
+ }