@rabbitio/ui-kit 1.0.0-beta.64 → 1.0.0-beta.66

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 (255) hide show
  1. package/coverage/clover.xml +6325 -4201
  2. package/coverage/coverage-final.json +160 -99
  3. package/coverage/index.html +444 -189
  4. package/coverage/{rabbit-ui-kit → ui-kit}/index.html +3 -3
  5. package/coverage/{rabbit-ui-kit → ui-kit}/index.js.html +3 -3
  6. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/arrowTosca.jsx.html → ui-kit/src/assets/wrappedImages/arrowIcon.jsx.html} +8 -29
  7. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/arrowIcon.jsx.html → ui-kit/src/assets/wrappedImages/arrowTosca.jsx.html} +9 -24
  8. package/coverage/{rabbit-ui-kit → ui-kit}/src/assets/wrappedImages/arrowWhite.jsx.html +7 -25
  9. package/coverage/ui-kit/src/assets/wrappedImages/darkRectangle.jsx.html +106 -0
  10. package/coverage/{rabbit-ui-kit → ui-kit}/src/assets/wrappedImages/determinedError.jsx.html +9 -42
  11. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/successfulValidationIcon.jsx.html → ui-kit/src/assets/wrappedImages/failedValidationIcon.jsx.html} +28 -31
  12. package/coverage/{rabbit-ui-kit → ui-kit}/src/assets/wrappedImages/index.html +25 -25
  13. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/darkRectangle.jsx.html → ui-kit/src/assets/wrappedImages/infoIcon.jsx.html} +13 -19
  14. package/coverage/{rabbit-ui-kit → ui-kit}/src/assets/wrappedImages/noticeQuestionIcon.jsx.html +7 -25
  15. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/walletIcon.jsx.html → ui-kit/src/assets/wrappedImages/successfulValidationIcon.jsx.html} +23 -59
  16. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/infoIcon.jsx.html → ui-kit/src/assets/wrappedImages/walletIcon.jsx.html} +16 -16
  17. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/adapters/axiosAdapter.js.html +3 -3
  18. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/adapters/index.html +3 -3
  19. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/adapters/qrUtils.js.html +3 -3
  20. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/amountUtils.js.html +44 -308
  21. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/errorUtils.js.html +3 -3
  22. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/external-apis/apiGroups.js.html +3 -3
  23. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/external-apis/index.html +14 -14
  24. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/external-apis/ipAddressProviders.js.html +31 -178
  25. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/fiatCurrenciesService.js.html +12 -36
  26. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/index.html +20 -20
  27. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/models/blockchain.js.html +3 -3
  28. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/models/coin.js.html +10 -22
  29. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/models/index.html +13 -13
  30. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/models/protocol.js.html +3 -3
  31. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/cache.js.html +23 -101
  32. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/emailAPI.js.html +9 -15
  33. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/index.html +19 -19
  34. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/logging/index.html +9 -9
  35. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/logging/logger.js.html +14 -35
  36. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/logging/logsStorage.js.html +5 -5
  37. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/postponeExecution.js.html +3 -3
  38. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/safeStringify.js.html +29 -29
  39. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/AssetIcon/AssetIcon.jsx.html +11 -41
  40. package/coverage/ui-kit/src/components/atoms/AssetIcon/index.html +116 -0
  41. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/AssetSelection/AssetSelection.jsx.html +9 -33
  42. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/AssetSelection/index.html +7 -7
  43. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/BackgroundTitle/BackgroundTitle.jsx.html +8 -38
  44. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/BackgroundTitle/index.html +7 -7
  45. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/InformationMessage/InformationMessage.jsx.html +8 -38
  46. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/InformationMessage/index.html +7 -7
  47. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Input/Input.jsx.html +15 -63
  48. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Input/index.html +7 -7
  49. package/coverage/ui-kit/src/components/atoms/LoadingDots/LoadingDots.jsx.html +196 -0
  50. package/coverage/{rabbit-ui-kit/src/components/atoms/RateSelector → ui-kit/src/components/atoms/LoadingDots}/index.html +4 -4
  51. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/NoticeIcon/NoticeIcon.jsx.html +10 -40
  52. package/coverage/{rabbit-ui-kit/src/components/atoms/AssetIcon → ui-kit/src/components/atoms/NoticeIcon}/index.html +4 -4
  53. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/QrCode/QrCode.jsx.html +8 -26
  54. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/QrCode/index.html +7 -7
  55. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/RateSelector/RateSelector.jsx.html +10 -34
  56. package/coverage/ui-kit/src/components/atoms/RateSelector/index.html +116 -0
  57. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/SupportChat/SupportChat.jsx.html +7 -22
  58. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/SupportChat/index.html +7 -7
  59. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Textarea/Textarea.jsx.html +17 -53
  60. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Textarea/index.html +7 -7
  61. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/TitleBox/TitleBox.jsx.html +13 -82
  62. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/TitleBox/index.html +7 -7
  63. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Tooltip/Tooltip.jsx.html +12 -18
  64. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Tooltip/index.html +7 -7
  65. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/TwoLinesOfText/LinesOfText.jsx.html +12 -30
  66. package/coverage/{rabbit-ui-kit/src/components/atoms/NoticeIcon → ui-kit/src/components/atoms/TwoLinesOfText}/index.html +4 -4
  67. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Validation/Validation.jsx.html +19 -13
  68. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Validation/index.html +7 -7
  69. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/Button/Button.jsx.html +23 -113
  70. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/Button/index.html +7 -7
  71. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/Close/Close.jsx.html +9 -27
  72. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/Close/index.html +7 -7
  73. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/LinkButton/LinkButton.jsx.html +11 -38
  74. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/LinkButton/index.html +7 -7
  75. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx.html +13 -67
  76. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/RadioButtonWithText/index.html +7 -7
  77. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/hooks/index.html +7 -7
  78. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/hooks/useCallHandlingErrors.js.html +7 -19
  79. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/hooks/useReferredState.js.html +4 -4
  80. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/AmountInput/AmountInput.jsx.html +56 -407
  81. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/AmountInput/index.html +7 -7
  82. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/CoinPicker/CoinPicker.jsx.html +67 -466
  83. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/CoinPicker/index.html +7 -7
  84. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/LineWithIconLink/LineWithIconLink.jsx.html +7 -22
  85. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/LineWithIconLink/index.html +7 -7
  86. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx.html +3 -3
  87. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/TitledLineWithIconLink/index.html +3 -3
  88. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx.html +9 -15
  89. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/CoinPickerDialogStep/index.html +7 -7
  90. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/Dialog.jsx.html +44 -194
  91. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/DialogButtons/DialogButtons.jsx.html +3 -3
  92. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/DialogButtons/index.html +3 -3
  93. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/DialogStep/DialogStep.jsx.html +63 -525
  94. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/DialogStep/index.html +7 -7
  95. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/index.html +7 -7
  96. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/SwapForm/SwapForm.jsx.html +145 -670
  97. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/SwapForm/index.html +7 -7
  98. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx.html +3 -3
  99. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/templates/DeterminedErrorDialogStep/index.html +3 -3
  100. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/index.html +20 -20
  101. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/inputValueProviders.js.html +11 -35
  102. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/textUtils.js.html +3 -3
  103. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/uiUtils.js.html +7 -13
  104. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/urlQueryUtils.js.html +18 -93
  105. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/Close/close.jsx.html +3 -3
  106. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/Close/index.html +3 -3
  107. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/LinkButton/index.html +3 -3
  108. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/LinkButton/linkButton.jsx.html +3 -3
  109. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/Tooltip/index.html +3 -3
  110. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/Tooltip/tooltip.jsx.html +3 -3
  111. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/globalConstants.jsx.html +7 -10
  112. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/index.html +7 -7
  113. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/organisms/dialog/DialogStep/dialogStep.js.html +3 -3
  114. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/organisms/dialog/DialogStep/index.html +3 -3
  115. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/organisms/dialog/dialog.js.html +3 -3
  116. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/organisms/dialog/index.html +3 -3
  117. package/coverage/{rabbit-ui-kit → ui-kit}/src/index.html +7 -7
  118. package/coverage/{rabbit-ui-kit → ui-kit}/src/index.js.html +8 -26
  119. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/cacheAndConcurrentRequestsResolver.js.html +30 -222
  120. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/cachedRobustExternalApiCallerService.js.html +24 -147
  121. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/cancelProcessing.js.html +3 -3
  122. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/concurrentCalculationsMetadataHolder.js.html +19 -103
  123. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/externalApiProvider.js.html +3 -3
  124. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/externalServicesStatsCollector.js.html +11 -23
  125. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/index.html +38 -38
  126. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/robustExternalAPICallerService.js.html +53 -305
  127. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/external-apis/index.html +24 -24
  128. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/external-apis/swapProvider.js.html +10 -28
  129. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/external-apis/swapspaceSwapProvider.js.html +277 -1009
  130. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/baseSwapCreationInfo.js.html +3 -3
  131. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/existingSwap.js.html +3 -3
  132. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/existingSwapWithFiatData.js.html +9 -27
  133. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/index.html +13 -13
  134. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/services/index.html +7 -7
  135. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/services/publicSwapService.js.html +53 -374
  136. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/utils/index.html +13 -13
  137. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/utils/swapUtils.js.html +32 -179
  138. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/BackgroundTitle.stories.jsx.html +3 -3
  139. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/LinesOfText.stories.jsx.html +3 -3
  140. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/LoadingDots.stories.jsx.html +3 -3
  141. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/QrCode.stories.jsx.html +3 -3
  142. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/RateSelector.stories.jsx.html +3 -3
  143. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/Validation.stories.jsx.html +3 -3
  144. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/Button.stories.jsx.html +3 -3
  145. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/Close.stories.jsx.html +3 -3
  146. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/LinkButton.stories.jsx.html +3 -3
  147. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/index.html +3 -3
  148. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/index.html +3 -3
  149. package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/LineWithIconLink.stories.jsx.html +3 -3
  150. package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/TitledLineWithIconLink.stories.jsx.html +3 -3
  151. package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/index.html +3 -3
  152. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/Dialog.stories.jsx.html +3 -3
  153. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogButtons/DialogButtons.stories.jsx.html +3 -3
  154. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogButtons/index.html +3 -3
  155. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogStep/DialogStep.stories.jsx.html +3 -3
  156. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogStep/index.html +3 -3
  157. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/index.html +3 -3
  158. package/coverage/{rabbit-ui-kit → ui-kit}/stories/stubs/exampleContent.jsx.html +3 -3
  159. package/coverage/{rabbit-ui-kit → ui-kit}/stories/stubs/index.html +3 -3
  160. package/coverage/{rabbit-ui-kit → ui-kit}/stories/templates/DeterminedErrorDialogStep.stories.jsx.html +3 -3
  161. package/coverage/{rabbit-ui-kit → ui-kit}/stories/templates/index.html +3 -3
  162. package/dist/index.cjs +65 -49
  163. package/dist/index.cjs.map +1 -1
  164. package/dist/index.css +5 -2
  165. package/dist/index.css.map +1 -1
  166. package/dist/index.modern.js +43 -28
  167. package/dist/index.modern.js.map +1 -1
  168. package/dist/index.module.js +65 -49
  169. package/dist/index.module.js.map +1 -1
  170. package/dist/index.umd.js +65 -49
  171. package/dist/index.umd.js.map +1 -1
  172. package/package.json +5 -3
  173. package/src/assets/wrappedImages/arrowIcon.jsx +1 -7
  174. package/src/assets/wrappedImages/arrowTosca.jsx +1 -7
  175. package/src/assets/wrappedImages/arrowWhite.jsx +1 -7
  176. package/src/assets/wrappedImages/darkRectangle.jsx +2 -13
  177. package/src/assets/wrappedImages/determinedError.jsx +2 -13
  178. package/src/assets/wrappedImages/failedValidationIcon.jsx +2 -16
  179. package/src/assets/wrappedImages/infoIcon.jsx +1 -7
  180. package/src/assets/wrappedImages/noticeQuestionIcon.jsx +1 -7
  181. package/src/assets/wrappedImages/successfulValidationIcon.jsx +2 -16
  182. package/src/assets/wrappedImages/walletIcon.jsx +3 -19
  183. package/src/common/amountUtils.js +36 -124
  184. package/src/common/external-apis/ipAddressProviders.js +22 -71
  185. package/src/common/fiatCurrenciesService.js +4 -12
  186. package/src/common/models/coin.js +2 -6
  187. package/src/common/tests/amountUtils/composeRateText.test.js +12 -69
  188. package/src/common/tests/integration/external-apis/ipAddressProviders/getClientIpAddress.test.js +1 -3
  189. package/src/common/utils/cache.js +10 -36
  190. package/src/common/utils/emailAPI.js +1 -3
  191. package/src/common/utils/logging/logger.js +5 -12
  192. package/src/components/atoms/AssetIcon/AssetIcon.jsx +4 -14
  193. package/src/components/atoms/AssetSelection/AssetSelection.jsx +3 -11
  194. package/src/components/atoms/BackgroundTitle/BackgroundTitle.jsx +2 -12
  195. package/src/components/atoms/InformationMessage/InformationMessage.jsx +2 -12
  196. package/src/components/atoms/InformationMessage/information-message.module.scss +4 -2
  197. package/src/components/atoms/Input/Input.jsx +9 -25
  198. package/src/components/atoms/LoadingDots/LoadingDots.jsx +8 -28
  199. package/src/components/atoms/NoticeIcon/NoticeIcon.jsx +4 -14
  200. package/src/components/atoms/QrCode/QrCode.jsx +2 -8
  201. package/src/components/atoms/RateSelector/RateSelector.jsx +4 -12
  202. package/src/components/atoms/SupportChat/SupportChat.jsx +1 -6
  203. package/src/components/atoms/Textarea/Textarea.jsx +11 -23
  204. package/src/components/atoms/TitleBox/TitleBox.jsx +7 -30
  205. package/src/components/atoms/TitleBox/title-box.module.scss +2 -0
  206. package/src/components/atoms/Tooltip/Tooltip.jsx +6 -8
  207. package/src/components/atoms/TwoLinesOfText/LinesOfText.jsx +5 -11
  208. package/src/components/atoms/Validation/Validation.jsx +9 -7
  209. package/src/components/atoms/buttons/Button/Button.jsx +17 -47
  210. package/src/components/atoms/buttons/Close/Close.jsx +3 -9
  211. package/src/components/atoms/buttons/LinkButton/LinkButton.jsx +5 -14
  212. package/src/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx +7 -25
  213. package/src/components/hooks/useCallHandlingErrors.js +1 -5
  214. package/src/components/hooks/useReferredState.js +1 -1
  215. package/src/components/molecules/AmountInput/AmountInput.jsx +50 -167
  216. package/src/components/molecules/CoinPicker/CoinPicker.jsx +61 -194
  217. package/src/components/molecules/CoinPicker/coin-picker.module.scss +1 -4
  218. package/src/components/molecules/LineWithIconLink/LineWithIconLink.jsx +1 -6
  219. package/src/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx +3 -5
  220. package/src/components/organisms/Dialog/Dialog.jsx +38 -88
  221. package/src/components/organisms/Dialog/DialogStep/DialogStep.jsx +57 -211
  222. package/src/components/organisms/Dialog/DialogStep/dialog-step.module.scss +2 -4
  223. package/src/components/organisms/SwapForm/SwapForm.jsx +139 -314
  224. package/src/components/tests/utils/inputValueProviders/provideFormatOfFloatValueByInputString.test.js +5 -12
  225. package/src/components/tests/utils/urlQueryUtils/getQueryParameterValues.test.js +3 -9
  226. package/src/components/tests/utils/urlQueryUtils/saveQueryParameterAndValues.test.js +11 -51
  227. package/src/components/utils/inputValueProviders.js +3 -11
  228. package/src/components/utils/uiUtils.js +1 -3
  229. package/src/components/utils/urlQueryUtils.js +10 -35
  230. package/src/constants/globalConstants.jsx +1 -2
  231. package/src/index.js +2 -8
  232. package/src/robustExteranlApiCallerService/cacheAndConcurrentRequestsResolver.js +22 -86
  233. package/src/robustExteranlApiCallerService/cachedRobustExternalApiCallerService.js +15 -56
  234. package/src/robustExteranlApiCallerService/concurrentCalculationsMetadataHolder.js +11 -39
  235. package/src/robustExteranlApiCallerService/externalServicesStatsCollector.js +3 -7
  236. package/src/robustExteranlApiCallerService/robustExternalAPICallerService.js +45 -129
  237. package/src/robustExteranlApiCallerService/tests/robustExternalAPICallerService/robustExternalAPICallerService/callExternalAPI/_performCallAttempt.test.js +76 -330
  238. package/src/robustExteranlApiCallerService/tests/robustExternalAPICallerService/robustExternalAPICallerService/callExternalAPI/callExternalAPI.test.js +57 -270
  239. package/src/robustExteranlApiCallerService/tests/robustExternalAPICallerService/robustExternalAPICallerService/constructor.test.js +3 -15
  240. package/src/swaps-lib/external-apis/swapProvider.js +1 -7
  241. package/src/swaps-lib/external-apis/swapspaceSwapProvider.js +117 -361
  242. package/src/swaps-lib/models/existingSwapWithFiatData.js +1 -7
  243. package/src/swaps-lib/services/publicSwapService.js +47 -154
  244. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/_fetchSupportedCurrenciesIfNeeded.test.js +33 -118
  245. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/createSwap.test.js +23 -85
  246. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getAllSupportedCurrencies.test.js +4 -14
  247. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getDepositCurrencies.test.js +3 -9
  248. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getSwapInfo.test.js +148 -460
  249. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getWithdrawalCurrencies.test.js +5 -11
  250. package/src/swaps-lib/test/utils/swapUtils/safeHandleRequestsLimitExceeding.test.js +2 -10
  251. package/src/swaps-lib/utils/swapUtils.js +24 -73
  252. package/coverage/rabbit-ui-kit/src/assets/wrappedImages/failedValidationIcon.jsx.html +0 -244
  253. package/coverage/rabbit-ui-kit/src/components/atoms/LoadingDots/LoadingDots.jsx.html +0 -256
  254. package/coverage/rabbit-ui-kit/src/components/atoms/LoadingDots/index.html +0 -116
  255. package/coverage/rabbit-ui-kit/src/components/atoms/TwoLinesOfText/index.html +0 -116
@@ -3,7 +3,7 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for rabbit-ui-kit/src/robustExteranlApiCallerService/robustExternalAPICallerService.js</title>
6
+ <title>Code coverage report for ui-kit/src/robustExteranlApiCallerService/robustExternalAPICallerService.js</title>
7
7
  <meta charset="utf-8" />
8
8
  <link rel="stylesheet" href="../../../prettify.css" />
9
9
  <link rel="stylesheet" href="../../../base.css" />
@@ -19,13 +19,13 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../../index.html">All files</a> / <a href="index.html">rabbit-ui-kit/src/robustExteranlApiCallerService</a> robustExternalAPICallerService.js</h1>
22
+ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ui-kit/src/robustExteranlApiCallerService</a> robustExternalAPICallerService.js</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">86.34% </span>
26
+ <span class="strong">88.48% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>335/388</span>
28
+ <span class='fraction'>269/304</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">86.34% </span>
47
+ <span class="strong">88.48% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>335/388</span>
49
+ <span class='fraction'>269/304</span>
50
50
  </div>
51
51
 
52
52
 
@@ -367,91 +367,7 @@
367
367
  <a name='L302'></a><a href='#L302'>302</a>
368
368
  <a name='L303'></a><a href='#L303'>303</a>
369
369
  <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a>
388
- <a name='L323'></a><a href='#L323'>323</a>
389
- <a name='L324'></a><a href='#L324'>324</a>
390
- <a name='L325'></a><a href='#L325'>325</a>
391
- <a name='L326'></a><a href='#L326'>326</a>
392
- <a name='L327'></a><a href='#L327'>327</a>
393
- <a name='L328'></a><a href='#L328'>328</a>
394
- <a name='L329'></a><a href='#L329'>329</a>
395
- <a name='L330'></a><a href='#L330'>330</a>
396
- <a name='L331'></a><a href='#L331'>331</a>
397
- <a name='L332'></a><a href='#L332'>332</a>
398
- <a name='L333'></a><a href='#L333'>333</a>
399
- <a name='L334'></a><a href='#L334'>334</a>
400
- <a name='L335'></a><a href='#L335'>335</a>
401
- <a name='L336'></a><a href='#L336'>336</a>
402
- <a name='L337'></a><a href='#L337'>337</a>
403
- <a name='L338'></a><a href='#L338'>338</a>
404
- <a name='L339'></a><a href='#L339'>339</a>
405
- <a name='L340'></a><a href='#L340'>340</a>
406
- <a name='L341'></a><a href='#L341'>341</a>
407
- <a name='L342'></a><a href='#L342'>342</a>
408
- <a name='L343'></a><a href='#L343'>343</a>
409
- <a name='L344'></a><a href='#L344'>344</a>
410
- <a name='L345'></a><a href='#L345'>345</a>
411
- <a name='L346'></a><a href='#L346'>346</a>
412
- <a name='L347'></a><a href='#L347'>347</a>
413
- <a name='L348'></a><a href='#L348'>348</a>
414
- <a name='L349'></a><a href='#L349'>349</a>
415
- <a name='L350'></a><a href='#L350'>350</a>
416
- <a name='L351'></a><a href='#L351'>351</a>
417
- <a name='L352'></a><a href='#L352'>352</a>
418
- <a name='L353'></a><a href='#L353'>353</a>
419
- <a name='L354'></a><a href='#L354'>354</a>
420
- <a name='L355'></a><a href='#L355'>355</a>
421
- <a name='L356'></a><a href='#L356'>356</a>
422
- <a name='L357'></a><a href='#L357'>357</a>
423
- <a name='L358'></a><a href='#L358'>358</a>
424
- <a name='L359'></a><a href='#L359'>359</a>
425
- <a name='L360'></a><a href='#L360'>360</a>
426
- <a name='L361'></a><a href='#L361'>361</a>
427
- <a name='L362'></a><a href='#L362'>362</a>
428
- <a name='L363'></a><a href='#L363'>363</a>
429
- <a name='L364'></a><a href='#L364'>364</a>
430
- <a name='L365'></a><a href='#L365'>365</a>
431
- <a name='L366'></a><a href='#L366'>366</a>
432
- <a name='L367'></a><a href='#L367'>367</a>
433
- <a name='L368'></a><a href='#L368'>368</a>
434
- <a name='L369'></a><a href='#L369'>369</a>
435
- <a name='L370'></a><a href='#L370'>370</a>
436
- <a name='L371'></a><a href='#L371'>371</a>
437
- <a name='L372'></a><a href='#L372'>372</a>
438
- <a name='L373'></a><a href='#L373'>373</a>
439
- <a name='L374'></a><a href='#L374'>374</a>
440
- <a name='L375'></a><a href='#L375'>375</a>
441
- <a name='L376'></a><a href='#L376'>376</a>
442
- <a name='L377'></a><a href='#L377'>377</a>
443
- <a name='L378'></a><a href='#L378'>378</a>
444
- <a name='L379'></a><a href='#L379'>379</a>
445
- <a name='L380'></a><a href='#L380'>380</a>
446
- <a name='L381'></a><a href='#L381'>381</a>
447
- <a name='L382'></a><a href='#L382'>382</a>
448
- <a name='L383'></a><a href='#L383'>383</a>
449
- <a name='L384'></a><a href='#L384'>384</a>
450
- <a name='L385'></a><a href='#L385'>385</a>
451
- <a name='L386'></a><a href='#L386'>386</a>
452
- <a name='L387'></a><a href='#L387'>387</a>
453
- <a name='L388'></a><a href='#L388'>388</a>
454
- <a name='L389'></a><a href='#L389'>389</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
370
+ <a name='L305'></a><a href='#L305'>305</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
455
371
  <span class="cline-any cline-yes">1x</span>
456
372
  <span class="cline-any cline-yes">1x</span>
457
373
  <span class="cline-any cline-yes">1x</span>
@@ -483,13 +399,6 @@
483
399
  <span class="cline-any cline-yes">1x</span>
484
400
  <span class="cline-any cline-yes">38x</span>
485
401
  <span class="cline-any cline-yes">132x</span>
486
- <span class="cline-any cline-yes">132x</span>
487
- <span class="cline-any cline-yes">132x</span>
488
- <span class="cline-any cline-yes">132x</span>
489
- <span class="cline-any cline-no">&nbsp;</span>
490
- <span class="cline-any cline-no">&nbsp;</span>
491
- <span class="cline-any cline-no">&nbsp;</span>
492
- <span class="cline-any cline-no">&nbsp;</span>
493
402
  <span class="cline-any cline-no">&nbsp;</span>
494
403
  <span class="cline-any cline-no">&nbsp;</span>
495
404
  <span class="cline-any cline-yes">38x</span>
@@ -531,14 +440,6 @@
531
440
  <span class="cline-any cline-yes">18x</span>
532
441
  <span class="cline-any cline-yes">18x</span>
533
442
  <span class="cline-any cline-yes">18x</span>
534
- <span class="cline-any cline-yes">18x</span>
535
- <span class="cline-any cline-yes">18x</span>
536
- <span class="cline-any cline-yes">18x</span>
537
- <span class="cline-any cline-yes">18x</span>
538
- <span class="cline-any cline-yes">18x</span>
539
- <span class="cline-any cline-yes">18x</span>
540
- <span class="cline-any cline-yes">60x</span>
541
- <span class="cline-any cline-yes">60x</span>
542
443
  <span class="cline-any cline-yes">60x</span>
543
444
  <span class="cline-any cline-yes">60x</span>
544
445
  <span class="cline-any cline-yes">60x</span>
@@ -574,12 +475,6 @@
574
475
  <span class="cline-any cline-yes">42x</span>
575
476
  <span class="cline-any cline-yes">42x</span>
576
477
  <span class="cline-any cline-yes">42x</span>
577
- <span class="cline-any cline-yes">42x</span>
578
- <span class="cline-any cline-yes">42x</span>
579
- <span class="cline-any cline-yes">42x</span>
580
- <span class="cline-any cline-yes">42x</span>
581
- <span class="cline-any cline-yes">42x</span>
582
- <span class="cline-any cline-yes">42x</span>
583
478
  <span class="cline-any cline-no">&nbsp;</span>
584
479
  <span class="cline-any cline-no">&nbsp;</span>
585
480
  <span class="cline-any cline-yes">42x</span>
@@ -598,15 +493,9 @@
598
493
  <span class="cline-any cline-yes">2x</span>
599
494
  <span class="cline-any cline-yes">2x</span>
600
495
  <span class="cline-any cline-yes">2x</span>
601
- <span class="cline-any cline-yes">2x</span>
602
- <span class="cline-any cline-yes">2x</span>
603
496
  <span class="cline-any cline-yes">60x</span>
604
497
  <span class="cline-any cline-yes">1x</span>
605
498
  <span class="cline-any cline-yes">1x</span>
606
- <span class="cline-any cline-yes">1x</span>
607
- <span class="cline-any cline-yes">1x</span>
608
- <span class="cline-any cline-yes">1x</span>
609
- <span class="cline-any cline-yes">1x</span>
610
499
  <span class="cline-any cline-yes">60x</span>
611
500
  <span class="cline-any cline-yes">60x</span>
612
501
  <span class="cline-any cline-yes">18x</span>
@@ -628,9 +517,6 @@
628
517
  <span class="cline-any cline-yes">18x</span>
629
518
  <span class="cline-any cline-yes">18x</span>
630
519
  <span class="cline-any cline-yes">18x</span>
631
- <span class="cline-any cline-yes">18x</span>
632
- <span class="cline-any cline-yes">18x</span>
633
- <span class="cline-any cline-yes">18x</span>
634
520
  <span class="cline-any cline-yes">1x</span>
635
521
  <span class="cline-any cline-yes">1x</span>
636
522
  <span class="cline-any cline-yes">20x</span>
@@ -639,12 +525,6 @@
639
525
  <span class="cline-any cline-yes">20x</span>
640
526
  <span class="cline-any cline-yes">20x</span>
641
527
  <span class="cline-any cline-yes">20x</span>
642
- <span class="cline-any cline-yes">20x</span>
643
- <span class="cline-any cline-yes">20x</span>
644
- <span class="cline-any cline-yes">20x</span>
645
- <span class="cline-any cline-yes">20x</span>
646
- <span class="cline-any cline-yes">20x</span>
647
- <span class="cline-any cline-yes">20x</span>
648
528
  <span class="cline-any cline-yes">57x</span>
649
529
  <span class="cline-any cline-yes">57x</span>
650
530
  <span class="cline-any cline-yes">15x</span>
@@ -665,19 +545,6 @@
665
545
  <span class="cline-any cline-yes">57x</span>
666
546
  <span class="cline-any cline-yes">57x</span>
667
547
  <span class="cline-any cline-yes">57x</span>
668
- <span class="cline-any cline-yes">57x</span>
669
- <span class="cline-any cline-yes">57x</span>
670
- <span class="cline-any cline-yes">57x</span>
671
- <span class="cline-any cline-yes">57x</span>
672
- <span class="cline-any cline-yes">57x</span>
673
- <span class="cline-any cline-yes">57x</span>
674
- <span class="cline-any cline-yes">46x</span>
675
- <span class="cline-any cline-yes">46x</span>
676
- <span class="cline-any cline-yes">46x</span>
677
- <span class="cline-any cline-yes">46x</span>
678
- <span class="cline-any cline-yes">46x</span>
679
- <span class="cline-any cline-yes">46x</span>
680
- <span class="cline-any cline-yes">46x</span>
681
548
  <span class="cline-any cline-yes">46x</span>
682
549
  <span class="cline-any cline-yes">46x</span>
683
550
  <span class="cline-any cline-yes">46x</span>
@@ -685,10 +552,6 @@
685
552
  <span class="cline-any cline-no">&nbsp;</span>
686
553
  <span class="cline-any cline-no">&nbsp;</span>
687
554
  <span class="cline-any cline-no">&nbsp;</span>
688
- <span class="cline-any cline-no">&nbsp;</span>
689
- <span class="cline-any cline-no">&nbsp;</span>
690
- <span class="cline-any cline-no">&nbsp;</span>
691
- <span class="cline-any cline-no">&nbsp;</span>
692
555
  <span class="cline-any cline-yes">46x</span>
693
556
  <span class="cline-any cline-yes">46x</span>
694
557
  <span class="cline-any cline-yes">46x</span>
@@ -700,7 +563,6 @@
700
563
  <span class="cline-any cline-yes">42x</span>
701
564
  <span class="cline-any cline-yes">42x</span>
702
565
  <span class="cline-any cline-yes">42x</span>
703
- <span class="cline-any cline-yes">42x</span>
704
566
  <span class="cline-any cline-yes">35x</span>
705
567
  <span class="cline-any cline-yes">35x</span>
706
568
  <span class="cline-any cline-yes">35x</span>
@@ -715,14 +577,6 @@
715
577
  <span class="cline-any cline-no">&nbsp;</span>
716
578
  <span class="cline-any cline-no">&nbsp;</span>
717
579
  <span class="cline-any cline-no">&nbsp;</span>
718
- <span class="cline-any cline-no">&nbsp;</span>
719
- <span class="cline-any cline-no">&nbsp;</span>
720
- <span class="cline-any cline-no">&nbsp;</span>
721
- <span class="cline-any cline-no">&nbsp;</span>
722
- <span class="cline-any cline-yes">4x</span>
723
- <span class="cline-any cline-yes">4x</span>
724
- <span class="cline-any cline-yes">4x</span>
725
- <span class="cline-any cline-yes">4x</span>
726
580
  <span class="cline-any cline-yes">4x</span>
727
581
  <span class="cline-any cline-yes">4x</span>
728
582
  <span class="cline-any cline-yes">4x</span>
@@ -736,12 +590,6 @@
736
590
  <span class="cline-any cline-yes">4x</span>
737
591
  <span class="cline-any cline-yes">4x</span>
738
592
  <span class="cline-any cline-yes">4x</span>
739
- <span class="cline-any cline-yes">4x</span>
740
- <span class="cline-any cline-no">&nbsp;</span>
741
- <span class="cline-any cline-no">&nbsp;</span>
742
- <span class="cline-any cline-yes">4x</span>
743
- <span class="cline-any cline-no">&nbsp;</span>
744
- <span class="cline-any cline-no">&nbsp;</span>
745
593
  <span class="cline-any cline-no">&nbsp;</span>
746
594
  <span class="cline-any cline-no">&nbsp;</span>
747
595
  <span class="cline-any cline-yes">4x</span>
@@ -750,10 +598,6 @@
750
598
  <span class="cline-any cline-yes">4x</span>
751
599
  <span class="cline-any cline-yes">4x</span>
752
600
  <span class="cline-any cline-yes">4x</span>
753
- <span class="cline-any cline-yes">4x</span>
754
- <span class="cline-any cline-yes">4x</span>
755
- <span class="cline-any cline-yes">4x</span>
756
- <span class="cline-any cline-yes">4x</span>
757
601
  <span class="cline-any cline-yes">3x</span>
758
602
  <span class="cline-any cline-yes">38x</span>
759
603
  <span class="cline-any cline-yes">46x</span>
@@ -764,13 +608,6 @@
764
608
  <span class="cline-any cline-no">&nbsp;</span>
765
609
  <span class="cline-any cline-no">&nbsp;</span>
766
610
  <span class="cline-any cline-no">&nbsp;</span>
767
- <span class="cline-any cline-no">&nbsp;</span>
768
- <span class="cline-any cline-yes">38x</span>
769
- <span class="cline-any cline-yes">38x</span>
770
- <span class="cline-any cline-yes">38x</span>
771
- <span class="cline-any cline-yes">38x</span>
772
- <span class="cline-any cline-yes">38x</span>
773
- <span class="cline-any cline-yes">38x</span>
774
611
  <span class="cline-any cline-yes">38x</span>
775
612
  <span class="cline-any cline-yes">38x</span>
776
613
  <span class="cline-any cline-yes">38x</span>
@@ -790,7 +627,6 @@
790
627
  <span class="cline-any cline-yes">57x</span>
791
628
  <span class="cline-any cline-yes">30x</span>
792
629
  <span class="cline-any cline-no">&nbsp;</span>
793
- <span class="cline-any cline-no">&nbsp;</span>
794
630
  <span class="cline-any cline-yes">30x</span>
795
631
  <span class="cline-any cline-yes">30x</span>
796
632
  <span class="cline-any cline-yes">30x</span>
@@ -824,10 +660,6 @@
824
660
  <span class="cline-any cline-yes">20x</span>
825
661
  <span class="cline-any cline-yes">20x</span>
826
662
  <span class="cline-any cline-yes">20x</span>
827
- <span class="cline-any cline-yes">20x</span>
828
- <span class="cline-any cline-yes">20x</span>
829
- <span class="cline-any cline-yes">20x</span>
830
- <span class="cline-any cline-yes">20x</span>
831
663
  <span class="cline-any cline-yes">1x</span>
832
664
  <span class="cline-any cline-yes">1x</span>
833
665
  <span class="cline-any cline-yes">20x</span>
@@ -869,23 +701,16 @@ export class RobustExternalAPICallerService {
869
701
  * @param [logger] {function} function to be used for logging
870
702
  */
871
703
  constructor(bio, providersData, logger = Logger.logError) {
872
- providersData.forEach((provider) =&gt; {
873
- if (
874
- (!provider.endpoint <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp; provider.endpoint !== "")</span> ||
875
- !provider.httpMethod
876
- ) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
877
- <span class="cstat-no" title="statement not covered" > throw new Error(</span>
878
- <span class="cstat-no" title="statement not covered" > `Wrong format of providers data for: ${JSON.stringify(</span>
879
- <span class="cstat-no" title="statement not covered" > provider</span>
880
- <span class="cstat-no" title="statement not covered" > )}`</span>
881
- <span class="cstat-no" title="statement not covered" > );</span>
704
+ providersData.forEach(provider =&gt; {
705
+ if ((!provider.endpoint <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp; provider.endpoint !== "")</span> || !provider.httpMethod) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
706
+ <span class="cstat-no" title="statement not covered" > throw new Error(`Wrong format of providers data for: ${JSON.stringify(provider)}`);</span>
882
707
  <span class="cstat-no" title="statement not covered" > }</span>
883
708
  });
884
709
  &nbsp;
885
710
  // We add niceFactor - just number to order the providers array by. It is helpful to call
886
711
  // less robust APIs only if more robust fails
887
712
  this.providers = providersData;
888
- providersData.forEach((provider) =&gt; provider.resetNiceFactor());
713
+ providersData.forEach(provider =&gt; provider.resetNiceFactor());
889
714
  this.bio = bio;
890
715
  this._logger = (...args) =&gt; {
891
716
  Logger.logError(...args);
@@ -915,24 +740,16 @@ export class RobustExternalAPICallerService {
915
740
  doNotFailForNowData = false
916
741
  ) {
917
742
  let result;
918
- const calculationUuid =
919
- concurrentCalculationsMetadataHolder.startCalculation(this.bio);
743
+ const calculationUuid = concurrentCalculationsMetadataHolder.startCalculation(this.bio);
920
744
  &nbsp;
921
745
  try {
922
- for (
923
- let i = 0;
924
- (i &lt; attemptsCount || result?.shouldBeForceRetried) &amp;&amp;
925
- result?.data == null;
926
- ++i
927
- ) {
746
+ for (let i = 0; (i &lt; attemptsCount || result?.shouldBeForceRetried) &amp;&amp; result?.data == null; ++i) {
928
747
  /**
929
748
  * We use rpsFactor to improve re-attempting to call the providers if the last attempt resulted with
930
749
  * the fail due to abused RPSes of some (most part of) providers.
931
750
  * The _performCallAttempt in such a case will return increased rpsFactor inside the result object.
932
751
  */
933
- const rpsFactor = result
934
- ? result.rpsFactor
935
- : RobustExternalAPICallerService.defaultRPSFactor;
752
+ const rpsFactor = result ? result.rpsFactor : RobustExternalAPICallerService.defaultRPSFactor;
936
753
  &nbsp;
937
754
  result = null;
938
755
  &nbsp;
@@ -946,14 +763,8 @@ export class RobustExternalAPICallerService {
946
763
  doNotFailForNowData
947
764
  );
948
765
  } else {
949
- const maxRps = Math.max(
950
- ...this.providers.map(
951
- (provider) =&gt; provider.getRps() <span class="branch-0 cbranch-no" title="branch not covered" >?? 0</span>
952
- )
953
- );
954
- const waitingTimeMs = maxRps
955
- ? 1000 / (maxRps / rpsFactor)
956
- <span class="branch-0 cbranch-no" title="branch not covered" > : 0;</span>
766
+ const maxRps = Math.max(...this.providers.map(provider =&gt; provider.getRps() <span class="branch-0 cbranch-no" title="branch not covered" >?? 0)</span>);
767
+ const waitingTimeMs = maxRps ? 1000 / (maxRps / rpsFactor) <span class="branch-0 cbranch-no" title="branch not covered" >: 0;</span>
957
768
  &nbsp;
958
769
  result = await new Promise((resolve, reject) =&gt; {
959
770
  setTimeout(async () =&gt; {
@@ -977,10 +788,8 @@ export class RobustExternalAPICallerService {
977
788
  const errors = result.errors;
978
789
  this._logger(
979
790
  new Error(
980
- `Failed at attempt ${i}. ${
981
- errors.length
982
- } errors. Messages: ${safeStringify(
983
- errors.map((error) =&gt; error.message)
791
+ `Failed at attempt ${i}. ${errors.length} errors. Messages: ${safeStringify(
792
+ errors.map(error =&gt; error.message)
984
793
  )}: ${safeStringify(errors)}.`
985
794
  ),
986
795
  `${this.bio}.callExternalAPI`,
@@ -989,11 +798,7 @@ export class RobustExternalAPICallerService {
989
798
  );
990
799
  }
991
800
  } catch (e) {
992
- this._logger(
993
- e,
994
- `${this.bio}.callExternalAPI`,
995
- "Failed to perform external providers calling"
996
- );
801
+ this._logger(e, `${this.bio}.callExternalAPI`, "Failed to perform external providers calling");
997
802
  }
998
803
  }
999
804
  &nbsp;
@@ -1013,20 +818,11 @@ export class RobustExternalAPICallerService {
1013
818
  } catch (e) {
1014
819
  improveAndRethrow(e, `${this.bio}.callExternalAPI`);
1015
820
  }<span class="branch-0 cbranch-no" title="branch not covered" > f</span>inally {
1016
- concurrentCalculationsMetadataHolder.endCalculation(
1017
- this.bio,
1018
- calculationUuid
1019
- );
821
+ concurrentCalculationsMetadataHolder.endCalculation(this.bio, calculationUuid);
1020
822
  }
1021
823
  }
1022
824
  &nbsp;
1023
- async _performCallAttempt(
1024
- parametersValues,
1025
- timeoutMS,
1026
- cancelToken,
1027
- rpsFactor,
1028
- doNotFailForNowData
1029
- ) {
825
+ async _performCallAttempt(parametersValues, timeoutMS, cancelToken, rpsFactor, doNotFailForNowData) {
1030
826
  const providers = this._reorderProvidersByNiceFactor();
1031
827
  let data = undefined,
1032
828
  providerIndex = 0,
@@ -1050,31 +846,14 @@ export class RobustExternalAPICallerService {
1050
846
  timeout: provider.timeout <span class="branch-0 cbranch-no" title="branch not covered" >|| timeoutMS,</span>
1051
847
  headers: provider.specificHeaders <span class="branch-0 cbranch-no" title="branch not covered" >?? {},</span>
1052
848
  };
1053
- const httpMethods = Array.isArray(provider.httpMethod)
1054
- ? provider.httpMethod
1055
- : [provider.httpMethod];
849
+ const httpMethods = Array.isArray(provider.httpMethod) ? provider.httpMethod : [provider.httpMethod];
1056
850
  const iterationsData = [];
1057
- for (
1058
- let subRequestIndex = 0;
1059
- subRequestIndex &lt; httpMethods.length;
1060
- ++subRequestIndex
1061
- ) {
1062
- const query = provider.composeQueryString(
1063
- parametersValues,
1064
- subRequestIndex
1065
- );
851
+ for (let subRequestIndex = 0; subRequestIndex &lt; httpMethods.length; ++subRequestIndex) {
852
+ const query = provider.composeQueryString(parametersValues, subRequestIndex);
1066
853
  const endpoint = `${provider.endpoint}${query}`;
1067
854
  const axiosParams = [endpoint, axiosConfig];
1068
- if (
1069
- ["post", "put", "patch"].find(
1070
- (method) =&gt; method === httpMethods[subRequestIndex]
1071
- )
1072
- ) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1073
- <span class="cstat-no" title="statement not covered" > const body =</span>
1074
- <span class="cstat-no" title="statement not covered" > provider.composeBody(</span>
1075
- <span class="cstat-no" title="statement not covered" > parametersValues,</span>
1076
- <span class="cstat-no" title="statement not covered" > subRequestIndex</span>
1077
- <span class="cstat-no" title="statement not covered" > ) ?? null;</span>
855
+ if (["post", "put", "patch"].find(method =&gt; method === httpMethods[subRequestIndex])) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
856
+ <span class="cstat-no" title="statement not covered" > const body = provider.composeBody(parametersValues, subRequestIndex) ?? null;</span>
1078
857
  <span class="cstat-no" title="statement not covered" > axiosParams.splice(1, 0, body);</span>
1079
858
  <span class="cstat-no" title="statement not covered" > }</span>
1080
859
  &nbsp;
@@ -1084,27 +863,22 @@ export class RobustExternalAPICallerService {
1084
863
  do {
1085
864
  if (subRequestIndex === 0 &amp;&amp; pageNumber === 0) {
1086
865
  provider.actualizeLastCalledTimestamp();
1087
- responsesForPages[pageNumber] =
1088
- await AxiosAdapter.call(
1089
- httpMethods[subRequestIndex],
1090
- ...axiosParams
1091
- );
866
+ responsesForPages[pageNumber] = await AxiosAdapter.call(
867
+ httpMethods[subRequestIndex],
868
+ ...axiosParams
869
+ );
1092
870
  RobustExternalAPICallerService.statsCollector.externalServiceCalledWithoutError(
1093
871
  provider.getApiGroupId()
1094
872
  );
1095
873
  } else {
1096
874
  if (pageNumber &gt; 0) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1097
- <span class="cstat-no" title="statement not covered" > const actualizedParams =</span>
1098
- <span class="cstat-no" title="statement not covered" > provider.changeQueryParametersForPageNumber(</span>
1099
- <span class="cstat-no" title="statement not covered" > parametersValues,</span>
1100
- <span class="cstat-no" title="statement not covered" > responsesForPages[pageNumber - 1],</span>
1101
- <span class="cstat-no" title="statement not covered" > pageNumber,</span>
1102
- <span class="cstat-no" title="statement not covered" > subRequestIndex</span>
1103
- <span class="cstat-no" title="statement not covered" > );</span>
1104
- <span class="cstat-no" title="statement not covered" > const query = provider.composeQueryString(</span>
1105
- <span class="cstat-no" title="statement not covered" > actualizedParams,</span>
875
+ <span class="cstat-no" title="statement not covered" > const actualizedParams = provider.changeQueryParametersForPageNumber(</span>
876
+ <span class="cstat-no" title="statement not covered" > parametersValues,</span>
877
+ <span class="cstat-no" title="statement not covered" > responsesForPages[pageNumber - 1],</span>
878
+ <span class="cstat-no" title="statement not covered" > pageNumber,</span>
1106
879
  <span class="cstat-no" title="statement not covered" > subRequestIndex</span>
1107
880
  <span class="cstat-no" title="statement not covered" > );</span>
881
+ <span class="cstat-no" title="statement not covered" > const query = provider.composeQueryString(actualizedParams, subRequestIndex);</span>
1108
882
  <span class="cstat-no" title="statement not covered" > axiosParams[0] = `${provider.endpoint}${query}`;</span>
1109
883
  <span class="cstat-no" title="statement not covered" > }</span>
1110
884
  /**
@@ -1114,56 +888,35 @@ export class RobustExternalAPICallerService {
1114
888
  * TODO: [dev] test RPS factor logic (units or integration)
1115
889
  */
1116
890
  &nbsp;
1117
- const waitingTimeMS = provider.getRps()
1118
- ? 1000 / (provider.getRps() / rpsFactor)
1119
- <span class="branch-0 cbranch-no" title="branch not covered" > : 0;</span>
891
+ const waitingTimeMS = provider.getRps() ? 1000 / (provider.getRps() / rpsFactor) <span class="branch-0 cbranch-no" title="branch not covered" >: 0;</span>
1120
892
  &nbsp;
1121
- const postponeUntilRpsExceeded = async (
1122
- recursionLevel = 0
1123
- ) =&gt; {
893
+ const postponeUntilRpsExceeded = async (recursionLevel = 0) =&gt; {
1124
894
  return await postponeExecution(async () =&gt; {
1125
895
  const maxCountOfPostponingAttempts = 2;
1126
- if (
1127
- provider.isRpsExceeded() <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp;</span>
1128
- <span class="cstat-no" title="statement not covered" > recursionLevel &lt;</span>
1129
- <span class="cstat-no" title="statement not covered" > maxCountOfPostponingAttempts</span>
1130
- ) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1131
- <span class="cstat-no" title="statement not covered" > return await postponeUntilRpsExceeded(</span>
1132
- <span class="cstat-no" title="statement not covered" > recursionLevel + 1</span>
1133
- <span class="cstat-no" title="statement not covered" > );</span>
896
+ if (provider.isRpsExceeded() <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp; recursionLevel &lt; maxCountOfPostponingAttempts)</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
897
+ <span class="cstat-no" title="statement not covered" > return await postponeUntilRpsExceeded(recursionLevel + 1);</span>
1134
898
  <span class="cstat-no" title="statement not covered" > }</span>
1135
899
  provider.actualizeLastCalledTimestamp();
1136
- return await AxiosAdapter.call(
1137
- httpMethods[subRequestIndex],
1138
- ...axiosParams
1139
- );
900
+ return await AxiosAdapter.call(httpMethods[subRequestIndex], ...axiosParams);
1140
901
  }, waitingTimeMS);
1141
902
  };
1142
903
  &nbsp;
1143
- responsesForPages[pageNumber] =
1144
- await postponeUntilRpsExceeded();
904
+ responsesForPages[pageNumber] = await postponeUntilRpsExceeded();
1145
905
  }
1146
906
  &nbsp;
1147
907
  if (hasNextPage) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1148
- <span class="cstat-no" title="statement not covered" > hasNextPage =</span>
1149
- <span class="cstat-no" title="statement not covered" > !provider.checkWhetherResponseIsForLastPage(</span>
1150
- <span class="cstat-no" title="statement not covered" > responsesForPages[pageNumber - 1],</span>
1151
- <span class="cstat-no" title="statement not covered" > responsesForPages[pageNumber],</span>
1152
- <span class="cstat-no" title="statement not covered" > pageNumber,</span>
1153
- <span class="cstat-no" title="statement not covered" > subRequestIndex</span>
1154
- <span class="cstat-no" title="statement not covered" > );</span>
908
+ <span class="cstat-no" title="statement not covered" > hasNextPage = !provider.checkWhetherResponseIsForLastPage(</span>
909
+ <span class="cstat-no" title="statement not covered" > responsesForPages[pageNumber - 1],</span>
910
+ <span class="cstat-no" title="statement not covered" > responsesForPages[pageNumber],</span>
911
+ <span class="cstat-no" title="statement not covered" > pageNumber,</span>
912
+ <span class="cstat-no" title="statement not covered" > subRequestIndex</span>
913
+ <span class="cstat-no" title="statement not covered" > );</span>
1155
914
  <span class="cstat-no" title="statement not covered" > }</span>
1156
915
  pageNumber++;
1157
916
  } while (hasNextPage);
1158
917
  &nbsp;
1159
- const responsesDataForPages = responsesForPages.map(
1160
- (response) =&gt;
1161
- provider.getDataByResponse(
1162
- response,
1163
- parametersValues,
1164
- subRequestIndex,
1165
- iterationsData
1166
- )
918
+ const responsesDataForPages = responsesForPages.map(response =&gt;
919
+ provider.getDataByResponse(response, parametersValues, subRequestIndex, iterationsData)
1167
920
  );
1168
921
  &nbsp;
1169
922
  let allData = responsesDataForPages;
@@ -1177,8 +930,7 @@ export class RobustExternalAPICallerService {
1177
930
  }
1178
931
  if (iterationsData.length) {
1179
932
  if (httpMethods.length &gt; 1) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1180
- <span class="cstat-no" title="statement not covered" > data =</span>
1181
- <span class="cstat-no" title="statement not covered" > provider.incorporateIterationsData(iterationsData);</span>
933
+ <span class="cstat-no" title="statement not covered" > data = provider.incorporateIterationsData(iterationsData);</span>
1182
934
  } else {
1183
935
  data = iterationsData[0];
1184
936
  }
@@ -1202,12 +954,8 @@ export class RobustExternalAPICallerService {
1202
954
  }
1203
955
  &nbsp;
1204
956
  // If we are declining more than 50% of providers (by exceeding RPS) then we note that it better to retry the whole process of providers requesting
1205
- const shouldBeForceRetried =
1206
- data == null &amp;&amp;
1207
- countOfRequestsDeclinedByRps &gt; Math.floor(providers.length * 0.5);
1208
- const rpsMultiplier = shouldBeForceRetried
1209
- ? RobustExternalAPICallerService.rpsMultiplier
1210
- : 1;
957
+ const shouldBeForceRetried = data == null &amp;&amp; countOfRequestsDeclinedByRps &gt; Math.floor(providers.length * 0.5);
958
+ const rpsMultiplier = shouldBeForceRetried ? RobustExternalAPICallerService.rpsMultiplier : 1;
1211
959
  &nbsp;
1212
960
  return {
1213
961
  data: data ?? null,
@@ -1234,7 +982,7 @@ function punishProvider(provider) {
1234
982
  <div class='footer quiet pad2 space-top1 center small'>
1235
983
  Code coverage generated by
1236
984
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1237
- at 2024-05-24T14:21:16.587Z
985
+ at 2024-05-26T05:26:22.162Z
1238
986
  </div>
1239
987
  <script src="../../../prettify.js"></script>
1240
988
  <script>