@xsolla/payment-client-core 0.2.21 → 0.2.23

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 (448) hide show
  1. package/{esm2020 → esm2022}/lib/core/combined-payment-methods/combined-payment-methods.service.mjs +5 -5
  2. package/{esm2020 → esm2022}/lib/core/countries-api/countries-api.service.mjs +5 -5
  3. package/{esm2020 → esm2022}/lib/core/country/country.service.mjs +5 -5
  4. package/{esm2020 → esm2022}/lib/core/credit-card/credit-card.service.mjs +4 -4
  5. package/esm2022/lib/core/device-finger-print/device-finger-print.service.mjs +67 -0
  6. package/{esm2020 → esm2022}/lib/core/edit-saved-methods/edit-saved-methods.service.mjs +5 -5
  7. package/esm2022/lib/core/encrypt-credit-card/encrypt-credit-card.service.mjs +73 -0
  8. package/esm2022/lib/core/errors-mapping/xps-response-errors-mapping.service.mjs +52 -0
  9. package/esm2022/lib/core/exceptions-handling/elk/elk-logger.service.mjs +120 -0
  10. package/esm2022/lib/core/exceptions-handling/errors/http-error.class.mjs +40 -0
  11. package/esm2022/lib/core/exceptions-handling/errors/tagged-error.class.mjs +16 -0
  12. package/{esm2020 → esm2022}/lib/core/exceptions-handling/http-interceptor/http-exceptions.interceptor.mjs +5 -5
  13. package/esm2022/lib/core/http/secure-api/secure-api.service.mjs +55 -0
  14. package/{esm2020 → esm2022}/lib/core/legal/disclaimer.service.mjs +4 -4
  15. package/{esm2020 → esm2022}/lib/core/legal/legal.service.mjs +5 -5
  16. package/esm2022/lib/core/legal/refund-policy.service.mjs +30 -0
  17. package/esm2022/lib/core/legal/secure-connection.service.mjs +31 -0
  18. package/{esm2020 → esm2022}/lib/core/payment/actions/check-status/check-status.action.class.mjs +4 -4
  19. package/esm2022/lib/core/payment/actions/next-action.service.mjs +61 -0
  20. package/esm2022/lib/core/payment/actions/redirect/redirect.action.class.mjs +60 -0
  21. package/{esm2020 → esm2022}/lib/core/payment/actions/show-errors/show-errors.action.class.mjs +4 -4
  22. package/{esm2020 → esm2022}/lib/core/payment/actions/show-fields/show-fields.action.class.mjs +4 -4
  23. package/{esm2020 → esm2022}/lib/core/payment/actions/show-mobile-payment-screen/show-mobile-payment-screen.action.class.mjs +4 -4
  24. package/esm2022/lib/core/payment/actions/show-qr-code/show-qr-code.action.class.mjs +27 -0
  25. package/{esm2020 → esm2022}/lib/core/payment/actions/show-qr-code/show-qr-code.action.type.mjs +1 -1
  26. package/{esm2020 → esm2022}/lib/core/payment/actions/special-button/special-button.action.class.mjs +4 -4
  27. package/esm2022/lib/core/payment/actions/status-updated/status-updated.action.class.mjs +38 -0
  28. package/{esm2020 → esm2022}/lib/core/payment/actions/three-ds/three-ds.action.class.mjs +4 -4
  29. package/esm2022/lib/core/payment/config/config.service.mjs +37 -0
  30. package/{esm2020 → esm2022}/lib/core/payment/credit-card-state/credit-card-state.service.mjs +4 -4
  31. package/esm2022/lib/core/payment/finance-details/finance-details.service.mjs +38 -0
  32. package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/status-finance-details-adapter.service.mjs +5 -5
  33. package/esm2022/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs +264 -0
  34. package/esm2022/lib/core/payment/form/controls/control-config.service.mjs +46 -0
  35. package/{esm2020 → esm2022}/lib/core/payment/form/converters/birth-date/birth-date.converter.mjs +5 -5
  36. package/{esm2020 → esm2022}/lib/core/payment/form/converters/card-month/card-month.converter.mjs +5 -5
  37. package/{esm2020 → esm2022}/lib/core/payment/form/converters/card-number/card-number.converter.mjs +5 -5
  38. package/{esm2020 → esm2022}/lib/core/payment/form/converters/card-year/card-year.converter.mjs +5 -5
  39. package/{esm2020 → esm2022}/lib/core/payment/form/converters/cardholder-name/cardholder-name.converter.mjs +5 -5
  40. package/esm2022/lib/core/payment/form/converters/checkbox/checkbox.converter.mjs +33 -0
  41. package/esm2022/lib/core/payment/form/converters/converter.abstract.mjs +76 -0
  42. package/{esm2020 → esm2022}/lib/core/payment/form/converters/coupon/coupon.converter.mjs +5 -5
  43. package/{esm2020 → esm2022}/lib/core/payment/form/converters/cpf-name/cpf-name.converter.mjs +5 -5
  44. package/{esm2020 → esm2022}/lib/core/payment/form/converters/cpf-number/cpf-number.converter.mjs +5 -5
  45. package/esm2022/lib/core/payment/form/converters/cvv/cvv.converter.mjs +72 -0
  46. package/{esm2020 → esm2022}/lib/core/payment/form/converters/email/email.converter.mjs +5 -5
  47. package/{esm2020 → esm2022}/lib/core/payment/form/converters/phone.converter.mjs +5 -5
  48. package/{esm2020 → esm2022}/lib/core/payment/form/converters/pin/pin.converter.mjs +5 -5
  49. package/{esm2020 → esm2022}/lib/core/payment/form/converters/pricepoint/pricepoint.converter.mjs +5 -5
  50. package/{esm2020 → esm2022}/lib/core/payment/form/converters/radio-group/radio-group.converter.mjs +5 -5
  51. package/{esm2020 → esm2022}/lib/core/payment/form/converters/select/select.converter.mjs +5 -5
  52. package/esm2022/lib/core/payment/form/converters/street-number/street-number.converter.mjs +28 -0
  53. package/{esm2020 → esm2022}/lib/core/payment/form/converters/text/text.converter.mjs +5 -5
  54. package/esm2022/lib/core/payment/form/converters/zip/zip.converter.mjs +64 -0
  55. package/{esm2020 → esm2022}/lib/core/payment/form/form.module.mjs +33 -33
  56. package/esm2022/lib/core/payment/form/form.service.mjs +49 -0
  57. package/esm2022/lib/core/payment/form/validators/birth-date/birth-date.validator.mjs +37 -0
  58. package/esm2022/lib/core/payment/form/validators/card-month/card-month.validator.mjs +37 -0
  59. package/esm2022/lib/core/payment/form/validators/card-year/card-year.validator.mjs +34 -0
  60. package/esm2022/lib/core/payment/form/validators/convert.function.mjs +15 -0
  61. package/esm2022/lib/core/payment/form/validators/credit-card-length/credit-card-min-length.validator.mjs +32 -0
  62. package/esm2022/lib/core/payment/form/validators/luhn-formula-validator/luhn-formula.validator.mjs +40 -0
  63. package/{esm2020 → esm2022}/lib/core/payment/form/validators/validators.module.mjs +5 -5
  64. package/{esm2020 → esm2022}/lib/core/payment/form-messages/form-messages.service.mjs +5 -5
  65. package/esm2022/lib/core/payment/initialize/initialize.service.mjs +85 -0
  66. package/esm2022/lib/core/payment/initialize/response/initialize-response.class.mjs +43 -0
  67. package/esm2022/lib/core/payment/payment.service.mjs +369 -0
  68. package/{esm2020 → esm2022}/lib/core/payment/status/check-status/check-status.service.mjs +6 -6
  69. package/{esm2020 → esm2022}/lib/core/payment/status/check-status/request/check-status-request.class.mjs +1 -1
  70. package/esm2022/lib/core/payment/status/listen-status/listen-status.service.mjs +124 -0
  71. package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account-changes.service.mjs +5 -5
  72. package/esm2022/lib/core/payment/status/save-payment-method-status/save-payment-method-status.service.mjs +121 -0
  73. package/esm2022/lib/core/payment/status/status-request/request/status-request.class.mjs +22 -0
  74. package/esm2022/lib/core/payment/status/status-request/response/status-response.class.mjs +98 -0
  75. package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-request.service.mjs +6 -6
  76. package/esm2022/lib/core/payment/status/status.service.mjs +75 -0
  77. package/esm2022/lib/core/payment/status/websocket-status/websocket-status.service.mjs +76 -0
  78. package/esm2022/lib/core/payment/submit/request/submit-request.class.mjs +24 -0
  79. package/esm2022/lib/core/payment/submit/response/submit-response.class.mjs +31 -0
  80. package/esm2022/lib/core/payment/submit/submit.service.mjs +78 -0
  81. package/esm2022/lib/core/payment/sync/request/sync-request.class.mjs +31 -0
  82. package/esm2022/lib/core/payment/sync/response/sync-response.class.mjs +17 -0
  83. package/esm2022/lib/core/payment/sync/sync.service.mjs +157 -0
  84. package/esm2022/lib/core/payment/three-ds/api/notify-dfp-status/notify-dfp-status.service.mjs +49 -0
  85. package/esm2022/lib/core/payment/three-ds/api/status-three-ds/status-three-ds.service.mjs +60 -0
  86. package/esm2022/lib/core/payment/three-ds/dfp-collect/dfp-collect.service.mjs +105 -0
  87. package/esm2022/lib/core/payment/three-ds/reinsurance-check/reinsurance-check.service.mjs +41 -0
  88. package/esm2022/lib/core/payment/three-ds/three-ds-20/three-ds20.service.mjs +109 -0
  89. package/esm2022/lib/core/payment/three-ds/three-ds.service.mjs +42 -0
  90. package/esm2022/lib/core/payment/xps-api/xps-api.service.mjs +85 -0
  91. package/esm2022/lib/core/payment/xps-api-part-request.abstract.mjs +8 -0
  92. package/esm2022/lib/core/payment-methods/payment-methods.service.mjs +75 -0
  93. package/esm2022/lib/core/performance/performance.service.mjs +111 -0
  94. package/esm2022/lib/core/performance/xhr-action.service.mjs +114 -0
  95. package/esm2022/lib/core/saved-methods/saved-methods.service.mjs +54 -0
  96. package/esm2022/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +268 -0
  97. package/esm2022/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +177 -0
  98. package/esm2022/lib/core/sdk-payment-systems/payment-systems/payment-system-processing.service.mjs +84 -0
  99. package/esm2022/lib/core/session/session.service.mjs +57 -0
  100. package/esm2022/lib/core/settings/settings.service.mjs +92 -0
  101. package/esm2022/lib/core/url/url.service.mjs +34 -0
  102. package/esm2022/lib/core/user-agent/user-agent.service.mjs +211 -0
  103. package/esm2022/lib/core/user-balance/user-balance.service.mjs +53 -0
  104. package/esm2022/lib/core/user-behaviour-analytics/event-builder/event-builder.service.mjs +144 -0
  105. package/esm2022/lib/core/user-behaviour-analytics/user-behaviour-analytics.service.mjs +158 -0
  106. package/esm2022/lib/core/web-socket/centrifugo-web-socket.service.mjs +200 -0
  107. package/esm2022/lib/core/web-socket/nchan-web-socket.service.mjs +116 -0
  108. package/esm2022/lib/core/web-socket/web-socket.factory.mjs +28 -0
  109. package/esm2022/lib/core-library.module.mjs +92 -0
  110. package/{esm2020 → esm2022}/lib/core-library.service.mjs +5 -5
  111. package/{esm2020 → esm2022}/lib/shared/pipes/pipes.module.mjs +5 -5
  112. package/esm2022/lib/shared/pipes/unescape-html/unescape-html.pipe.mjs +23 -0
  113. package/{fesm2020 → fesm2022}/xsolla-payment-client-core.mjs +458 -455
  114. package/fesm2022/xsolla-payment-client-core.mjs.map +1 -0
  115. package/lib/core/payment/actions/show-qr-code/show-qr-code.action.type.d.ts +2 -0
  116. package/package.json +10 -16
  117. package/xsolla-payment-client-core-0.2.23.tgz +0 -0
  118. package/esm2020/lib/core/device-finger-print/device-finger-print.service.mjs +0 -67
  119. package/esm2020/lib/core/encrypt-credit-card/encrypt-credit-card.service.mjs +0 -72
  120. package/esm2020/lib/core/errors-mapping/xps-response-errors-mapping.service.mjs +0 -52
  121. package/esm2020/lib/core/exceptions-handling/elk/elk-logger.service.mjs +0 -120
  122. package/esm2020/lib/core/exceptions-handling/errors/http-error.class.mjs +0 -40
  123. package/esm2020/lib/core/exceptions-handling/errors/tagged-error.class.mjs +0 -16
  124. package/esm2020/lib/core/http/secure-api/secure-api.service.mjs +0 -55
  125. package/esm2020/lib/core/legal/refund-policy.service.mjs +0 -30
  126. package/esm2020/lib/core/legal/secure-connection.service.mjs +0 -31
  127. package/esm2020/lib/core/payment/actions/next-action.service.mjs +0 -61
  128. package/esm2020/lib/core/payment/actions/redirect/redirect.action.class.mjs +0 -60
  129. package/esm2020/lib/core/payment/actions/show-qr-code/show-qr-code.action.class.mjs +0 -25
  130. package/esm2020/lib/core/payment/actions/status-updated/status-updated.action.class.mjs +0 -38
  131. package/esm2020/lib/core/payment/config/config.service.mjs +0 -37
  132. package/esm2020/lib/core/payment/finance-details/finance-details.service.mjs +0 -38
  133. package/esm2020/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs +0 -264
  134. package/esm2020/lib/core/payment/form/controls/control-config.service.mjs +0 -46
  135. package/esm2020/lib/core/payment/form/converters/checkbox/checkbox.converter.mjs +0 -33
  136. package/esm2020/lib/core/payment/form/converters/converter.abstract.mjs +0 -76
  137. package/esm2020/lib/core/payment/form/converters/cvv/cvv.converter.mjs +0 -72
  138. package/esm2020/lib/core/payment/form/converters/street-number/street-number.converter.mjs +0 -28
  139. package/esm2020/lib/core/payment/form/converters/zip/zip.converter.mjs +0 -64
  140. package/esm2020/lib/core/payment/form/form.service.mjs +0 -49
  141. package/esm2020/lib/core/payment/form/validators/birth-date/birth-date.validator.mjs +0 -37
  142. package/esm2020/lib/core/payment/form/validators/card-month/card-month.validator.mjs +0 -37
  143. package/esm2020/lib/core/payment/form/validators/card-year/card-year.validator.mjs +0 -34
  144. package/esm2020/lib/core/payment/form/validators/convert.function.mjs +0 -15
  145. package/esm2020/lib/core/payment/form/validators/credit-card-length/credit-card-min-length.validator.mjs +0 -32
  146. package/esm2020/lib/core/payment/form/validators/luhn-formula-validator/luhn-formula.validator.mjs +0 -40
  147. package/esm2020/lib/core/payment/initialize/initialize.service.mjs +0 -85
  148. package/esm2020/lib/core/payment/initialize/response/initialize-response.class.mjs +0 -43
  149. package/esm2020/lib/core/payment/payment.service.mjs +0 -369
  150. package/esm2020/lib/core/payment/status/listen-status/listen-status.service.mjs +0 -124
  151. package/esm2020/lib/core/payment/status/save-payment-method-status/save-payment-method-status.service.mjs +0 -121
  152. package/esm2020/lib/core/payment/status/status-request/request/status-request.class.mjs +0 -22
  153. package/esm2020/lib/core/payment/status/status-request/response/status-response.class.mjs +0 -98
  154. package/esm2020/lib/core/payment/status/status.service.mjs +0 -75
  155. package/esm2020/lib/core/payment/status/websocket-status/websocket-status.service.mjs +0 -76
  156. package/esm2020/lib/core/payment/submit/request/submit-request.class.mjs +0 -24
  157. package/esm2020/lib/core/payment/submit/response/submit-response.class.mjs +0 -31
  158. package/esm2020/lib/core/payment/submit/submit.service.mjs +0 -78
  159. package/esm2020/lib/core/payment/sync/request/sync-request.class.mjs +0 -31
  160. package/esm2020/lib/core/payment/sync/response/sync-response.class.mjs +0 -17
  161. package/esm2020/lib/core/payment/sync/sync.service.mjs +0 -157
  162. package/esm2020/lib/core/payment/three-ds/api/notify-dfp-status/notify-dfp-status.service.mjs +0 -49
  163. package/esm2020/lib/core/payment/three-ds/api/status-three-ds/status-three-ds.service.mjs +0 -60
  164. package/esm2020/lib/core/payment/three-ds/dfp-collect/dfp-collect.service.mjs +0 -105
  165. package/esm2020/lib/core/payment/three-ds/reinsurance-check/reinsurance-check.service.mjs +0 -41
  166. package/esm2020/lib/core/payment/three-ds/three-ds-20/three-ds20.service.mjs +0 -109
  167. package/esm2020/lib/core/payment/three-ds/three-ds.service.mjs +0 -42
  168. package/esm2020/lib/core/payment/xps-api/xps-api.service.mjs +0 -85
  169. package/esm2020/lib/core/payment/xps-api-part-request.abstract.mjs +0 -8
  170. package/esm2020/lib/core/payment-methods/payment-methods.service.mjs +0 -75
  171. package/esm2020/lib/core/performance/performance.service.mjs +0 -111
  172. package/esm2020/lib/core/performance/xhr-action.service.mjs +0 -114
  173. package/esm2020/lib/core/saved-methods/saved-methods.service.mjs +0 -54
  174. package/esm2020/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +0 -268
  175. package/esm2020/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +0 -177
  176. package/esm2020/lib/core/sdk-payment-systems/payment-systems/payment-system-processing.service.mjs +0 -84
  177. package/esm2020/lib/core/session/session.service.mjs +0 -57
  178. package/esm2020/lib/core/settings/settings.service.mjs +0 -92
  179. package/esm2020/lib/core/url/url.service.mjs +0 -34
  180. package/esm2020/lib/core/user-agent/user-agent.service.mjs +0 -211
  181. package/esm2020/lib/core/user-balance/user-balance.service.mjs +0 -53
  182. package/esm2020/lib/core/user-behaviour-analytics/event-builder/event-builder.service.mjs +0 -144
  183. package/esm2020/lib/core/user-behaviour-analytics/user-behaviour-analytics.service.mjs +0 -158
  184. package/esm2020/lib/core/web-socket/centrifugo-web-socket.service.mjs +0 -200
  185. package/esm2020/lib/core/web-socket/nchan-web-socket.service.mjs +0 -116
  186. package/esm2020/lib/core/web-socket/web-socket.factory.mjs +0 -28
  187. package/esm2020/lib/core-library.module.mjs +0 -92
  188. package/esm2020/lib/shared/pipes/unescape-html/unescape-html.pipe.mjs +0 -23
  189. package/fesm2015/xsolla-payment-client-core.mjs +0 -8138
  190. package/fesm2015/xsolla-payment-client-core.mjs.map +0 -1
  191. package/fesm2020/xsolla-payment-client-core.mjs.map +0 -1
  192. package/xsolla-payment-client-core-0.2.21.tgz +0 -0
  193. /package/{esm2020 → esm2022}/lib/core/agreementsGroup.const.mjs +0 -0
  194. /package/{esm2020 → esm2022}/lib/core/boolean-number.enum.mjs +0 -0
  195. /package/{esm2020 → esm2022}/lib/core/combined-payment-methods/combined-payment-methods.interface.mjs +0 -0
  196. /package/{esm2020 → esm2022}/lib/core/countries-api/country-response.interface.mjs +0 -0
  197. /package/{esm2020 → esm2022}/lib/core/countries-api/country.interface.mjs +0 -0
  198. /package/{esm2020 → esm2022}/lib/core/country/country-iso-code.enum.mjs +0 -0
  199. /package/{esm2020 → esm2022}/lib/core/credit-card/credit-card-settings.interface.mjs +0 -0
  200. /package/{esm2020 → esm2022}/lib/core/credit-card/credit-card-types.enum.mjs +0 -0
  201. /package/{esm2020 → esm2022}/lib/core/credit-card/credit-card.interface.mjs +0 -0
  202. /package/{esm2020 → esm2022}/lib/core/credit-card/credit-cards-map.const.mjs +0 -0
  203. /package/{esm2020 → esm2022}/lib/core/credit-card/default-mask.const.mjs +0 -0
  204. /package/{esm2020 → esm2022}/lib/core/credit-card/four-block-mask.const.mjs +0 -0
  205. /package/{esm2020 → esm2022}/lib/core/credit-card/ordered-cards-settings.const.mjs +0 -0
  206. /package/{esm2020 → esm2022}/lib/core/credit-card/types/american-express.mjs +0 -0
  207. /package/{esm2020 → esm2022}/lib/core/credit-card/types/aura.mjs +0 -0
  208. /package/{esm2020 → esm2022}/lib/core/credit-card/types/china-union-pay.mjs +0 -0
  209. /package/{esm2020 → esm2022}/lib/core/credit-card/types/dankort.mjs +0 -0
  210. /package/{esm2020 → esm2022}/lib/core/credit-card/types/default-card.mjs +0 -0
  211. /package/{esm2020 → esm2022}/lib/core/credit-card/types/diners-clubs.mjs +0 -0
  212. /package/{esm2020 → esm2022}/lib/core/credit-card/types/discover.mjs +0 -0
  213. /package/{esm2020 → esm2022}/lib/core/credit-card/types/elo.mjs +0 -0
  214. /package/{esm2020 → esm2022}/lib/core/credit-card/types/hipercard.mjs +0 -0
  215. /package/{esm2020 → esm2022}/lib/core/credit-card/types/jcb.mjs +0 -0
  216. /package/{esm2020 → esm2022}/lib/core/credit-card/types/maestro.mjs +0 -0
  217. /package/{esm2020 → esm2022}/lib/core/credit-card/types/mastercard.mjs +0 -0
  218. /package/{esm2020 → esm2022}/lib/core/credit-card/types/mir.mjs +0 -0
  219. /package/{esm2020 → esm2022}/lib/core/credit-card/types/naranja.mjs +0 -0
  220. /package/{esm2020 → esm2022}/lib/core/credit-card/types/postepay.mjs +0 -0
  221. /package/{esm2020 → esm2022}/lib/core/credit-card/types/visa.mjs +0 -0
  222. /package/{esm2020 → esm2022}/lib/core/deep-readonly.type.mjs +0 -0
  223. /package/{esm2020 → esm2022}/lib/core/device-finger-print/hash.type.mjs +0 -0
  224. /package/{esm2020 → esm2022}/lib/core/edit-saved-methods/delete-method-response.interface.mjs +0 -0
  225. /package/{esm2020 → esm2022}/lib/core/encrypt-credit-card/encrypted-card.interface.mjs +0 -0
  226. /package/{esm2020 → esm2022}/lib/core/encrypt-credit-card/open-card.interface.mjs +0 -0
  227. /package/{esm2020 → esm2022}/lib/core/errors-mapping/card-number-sanction-error-codes.const.mjs +0 -0
  228. /package/{esm2020 → esm2022}/lib/core/errors-mapping/field-special-errors-map.const.mjs +0 -0
  229. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/elk/additional-info.interface.mjs +0 -0
  230. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/elk/error-without-meta-fields.interface.mjs +0 -0
  231. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/elk/log-message.interface.mjs +0 -0
  232. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/api-error.interface.mjs +0 -0
  233. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/app-error.class.mjs +0 -0
  234. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/elk-error-types.enum.mjs +0 -0
  235. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/encrypt-card-error.mjs +0 -0
  236. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/response-error.class.mjs +0 -0
  237. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/terminal-error.class.mjs +0 -0
  238. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/token-error.class.mjs +0 -0
  239. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/ws-error.class.mjs +0 -0
  240. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/http-interceptor/http-error-data.interface.mjs +0 -0
  241. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/http-interceptor/http-error-response-data.interface.mjs +0 -0
  242. /package/{esm2020 → esm2022}/lib/core/extended-window.interface.mjs +0 -0
  243. /package/{esm2020 → esm2022}/lib/core/http/secure-api/api-url.const.mjs +0 -0
  244. /package/{esm2020 → esm2022}/lib/core/http/secure-api/options.interface.mjs +0 -0
  245. /package/{esm2020 → esm2022}/lib/core/legal/legal.component.config.mjs +0 -0
  246. /package/{esm2020 → esm2022}/lib/core/payment/actions/action.interface.mjs +0 -0
  247. /package/{esm2020 → esm2022}/lib/core/payment/actions/check-status/check-status.action.type.mjs +0 -0
  248. /package/{esm2020 → esm2022}/lib/core/payment/actions/next-action.interface.mjs +0 -0
  249. /package/{esm2020 → esm2022}/lib/core/payment/actions/next-actions.mjs +0 -0
  250. /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/pay-station4-url.const.mjs +0 -0
  251. /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/ps4-pages/pages-payment-methods-id.const.mjs +0 -0
  252. /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/ps4-pages/pages-routes.const.mjs +0 -0
  253. /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/redirect.action.type.mjs +0 -0
  254. /package/{esm2020 → esm2022}/lib/core/payment/actions/show-errors/show-errors.action.type.mjs +0 -0
  255. /package/{esm2020 → esm2022}/lib/core/payment/actions/show-fields/show-fields.action.type.mjs +0 -0
  256. /package/{esm2020 → esm2022}/lib/core/payment/actions/show-mobile-payment-screen/show-mobile-payment-screen.action.type.mjs +0 -0
  257. /package/{esm2020 → esm2022}/lib/core/payment/actions/special-button/special-button.action.type.mjs +0 -0
  258. /package/{esm2020 → esm2022}/lib/core/payment/actions/status-updated/status-updated.action.type.mjs +0 -0
  259. /package/{esm2020 → esm2022}/lib/core/payment/actions/three-ds/three-ds.action.type.mjs +0 -0
  260. /package/{esm2020 → esm2022}/lib/core/payment/checkout-item.interface.mjs +0 -0
  261. /package/{esm2020 → esm2022}/lib/core/payment/credit-card-payment-methods-id.variable.mjs +0 -0
  262. /package/{esm2020 → esm2022}/lib/core/payment/credit-card-state/credit-card-state.interface.mjs +0 -0
  263. /package/{esm2020 → esm2022}/lib/core/payment/emit-data.service.abstract.mjs +0 -0
  264. /package/{esm2020 → esm2022}/lib/core/payment/field-names.enum.mjs +0 -0
  265. /package/{esm2020 → esm2022}/lib/core/payment/field.interface.mjs +0 -0
  266. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/cart-item.interface.mjs +0 -0
  267. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/cart-line.interface.mjs +0 -0
  268. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/cart-summary.interface.mjs +0 -0
  269. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/finance-details.interface.mjs +0 -0
  270. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/price.helpers.mjs +0 -0
  271. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/price.interface.mjs +0 -0
  272. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/field-with-amount-and-currency.interface.mjs +0 -0
  273. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/fields-with-currency.mjs +0 -0
  274. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/finance-info.interface.mjs +0 -0
  275. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/summary/default-image-patterns.const.mjs +0 -0
  276. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/summary/sales-tax-details-key.enum.mjs +0 -0
  277. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/vat-details-key.enum.mjs +0 -0
  278. /package/{esm2020 → esm2022}/lib/core/payment/form/common-control-config.interface.mjs +0 -0
  279. /package/{esm2020 → esm2022}/lib/core/payment/form/control-status.interface.mjs +0 -0
  280. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/card-number/card-number-control.config.mjs +0 -0
  281. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/checkbox/checkbox-control.config.mjs +0 -0
  282. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/control-config.mjs +0 -0
  283. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/control-type.type.mjs +0 -0
  284. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/coupon/coupon-control.config.mjs +0 -0
  285. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/phone-control.config.mjs +0 -0
  286. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/radio-control/radio-control.config.mjs +0 -0
  287. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/radio-control/radio-option.interface.mjs +0 -0
  288. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/search-select/search-select-option.interface.mjs +0 -0
  289. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/search-select/select-control.config.mjs +0 -0
  290. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/search-select/select-option.interface.mjs +0 -0
  291. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/text-control.config.mjs +0 -0
  292. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/converters-map.interface.mjs +0 -0
  293. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/converters-map.mjs +0 -0
  294. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/cpf-name/cpf-name-regex.variable.mjs +0 -0
  295. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/cvv/cvv-form-state.interface.mjs +0 -0
  296. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/street-number/street-number-from-state.interface.mjs +0 -0
  297. /package/{esm2020 → esm2022}/lib/core/payment/form/field-form-states.interface.mjs +0 -0
  298. /package/{esm2020 → esm2022}/lib/core/payment/form/field-status.interface.mjs +0 -0
  299. /package/{esm2020 → esm2022}/lib/core/payment/form/form-fields-status.interface.mjs +0 -0
  300. /package/{esm2020 → esm2022}/lib/core/payment/form/form-state.interface.mjs +0 -0
  301. /package/{esm2020 → esm2022}/lib/core/payment/form/input-event.enum.mjs +0 -0
  302. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/async-validator-fn.type.mjs +0 -0
  303. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/coupon/coupon-validator.mjs +0 -0
  304. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/email/email-validator.mjs +0 -0
  305. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/is-empty-input-value.function.mjs +0 -0
  306. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/max-length-validator.mjs +0 -0
  307. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/min-length-validator.mjs +0 -0
  308. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/phone-validator.mjs +0 -0
  309. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/required/required.validator.mjs +0 -0
  310. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/restricted-value/restricted-value.validator.mjs +0 -0
  311. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/validation-error.interface.mjs +0 -0
  312. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/validation-errors.interface.mjs +0 -0
  313. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/validator-fn.type.mjs +0 -0
  314. /package/{esm2020 → esm2022}/lib/core/payment/form-response.interface.mjs +0 -0
  315. /package/{esm2020 → esm2022}/lib/core/payment/initialize/initialize-request-params.interface.mjs +0 -0
  316. /package/{esm2020 → esm2022}/lib/core/payment/initialize/response/initialize-response.token.mjs +0 -0
  317. /package/{esm2020 → esm2022}/lib/core/payment/invoice.interface.mjs +0 -0
  318. /package/{esm2020 → esm2022}/lib/core/payment/payment-config.interface.mjs +0 -0
  319. /package/{esm2020 → esm2022}/lib/core/payment/payment-form.interface.mjs +0 -0
  320. /package/{esm2020 → esm2022}/lib/core/payment/payment.interface.mjs +0 -0
  321. /package/{esm2020 → esm2022}/lib/core/payment/status/check-status/request/check-status-request.token.mjs +0 -0
  322. /package/{esm2020 → esm2022}/lib/core/payment/status/check-status/response/check-status-response.class.mjs +0 -0
  323. /package/{esm2020 → esm2022}/lib/core/payment/status/check-status/response/check-status-response.token.mjs +0 -0
  324. /package/{esm2020 → esm2022}/lib/core/payment/status/finance-info-field.interface.mjs +0 -0
  325. /package/{esm2020 → esm2022}/lib/core/payment/status/line-item.interface.mjs +0 -0
  326. /package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account-changes.interface.mjs +0 -0
  327. /package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account.interface.mjs +0 -0
  328. /package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/save-payment-method-status.enum.mjs +0 -0
  329. /package/{esm2020 → esm2022}/lib/core/payment/status/status-finance-info.interface.mjs +0 -0
  330. /package/{esm2020 → esm2022}/lib/core/payment/status/status-groups.mjs +0 -0
  331. /package/{esm2020 → esm2022}/lib/core/payment/status/status-order.interface.mjs +0 -0
  332. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/request/status-request.token.mjs +0 -0
  333. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/required-status-search-params.const.mjs +0 -0
  334. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/response/status-response.token.mjs +0 -0
  335. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-request-params.interface.mjs +0 -0
  336. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-search-param.enum.mjs +0 -0
  337. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-search-params.map.mjs +0 -0
  338. /package/{esm2020 → esm2022}/lib/core/payment/status/status-settings.interface.mjs +0 -0
  339. /package/{esm2020 → esm2022}/lib/core/payment/status/status-updated.interface.mjs +0 -0
  340. /package/{esm2020 → esm2022}/lib/core/payment/status/status.enum.mjs +0 -0
  341. /package/{esm2020 → esm2022}/lib/core/payment/status/status.interface.mjs +0 -0
  342. /package/{esm2020 → esm2022}/lib/core/payment/status/title-class.enum.mjs +0 -0
  343. /package/{esm2020 → esm2022}/lib/core/payment/status/web-socket-client-type.enum.mjs +0 -0
  344. /package/{esm2020 → esm2022}/lib/core/payment/status/websocket-status/websocket-status.enum.mjs +0 -0
  345. /package/{esm2020 → esm2022}/lib/core/payment/submit/request/submit-request.token.mjs +0 -0
  346. /package/{esm2020 → esm2022}/lib/core/payment/submit/response/is-submit-response.function.mjs +0 -0
  347. /package/{esm2020 → esm2022}/lib/core/payment/submit/response/submit-response.token.mjs +0 -0
  348. /package/{esm2020 → esm2022}/lib/core/payment/sync/field-async-validation.interface.mjs +0 -0
  349. /package/{esm2020 → esm2022}/lib/core/payment/sync/field-sync-state.interface.mjs +0 -0
  350. /package/{esm2020 → esm2022}/lib/core/payment/sync/request/sync-request.token.mjs +0 -0
  351. /package/{esm2020 → esm2022}/lib/core/payment/sync/response/sync-response.token.mjs +0 -0
  352. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/notify-dfp-status/request/notify-dfp-status-request.class.mjs +0 -0
  353. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/notify-dfp-status/request/notify-dfp-status-request.token.mjs +0 -0
  354. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/request/status-three-ds-request.class.mjs +0 -0
  355. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/request/status-three-ds-request.token.mjs +0 -0
  356. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/response/status-three-ds-response.class.mjs +0 -0
  357. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/response/status-three-ds-response.token.mjs +0 -0
  358. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/status-three-ds-response.interface.mjs +0 -0
  359. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/status-types.enum.mjs +0 -0
  360. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/three-ds-checkout-form.interface.mjs +0 -0
  361. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/reinsurance-check/timer.interface.mjs +0 -0
  362. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/three-ds-20/status-update.interface.mjs +0 -0
  363. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/three-ds-form.interface.mjs +0 -0
  364. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/three-ds-status-websocket-types.enum.mjs +0 -0
  365. /package/{esm2020 → esm2022}/lib/core/payment/virtual-currency.interface.mjs +0 -0
  366. /package/{esm2020 → esm2022}/lib/core/payment/xps-api-part.abstract.mjs +0 -0
  367. /package/{esm2020 → esm2022}/lib/core/payment/xps-checkout.mjs +0 -0
  368. /package/{esm2020 → esm2022}/lib/core/payment/xps-comand.enum.mjs +0 -0
  369. /package/{esm2020 → esm2022}/lib/core/payment/xps-error.interface.mjs +0 -0
  370. /package/{esm2020 → esm2022}/lib/core/payment/xps-finance.interface.mjs +0 -0
  371. /package/{esm2020 → esm2022}/lib/core/payment/xps-message.interface.mjs +0 -0
  372. /package/{esm2020 → esm2022}/lib/core/payment/xps-purchase.interface.mjs +0 -0
  373. /package/{esm2020 → esm2022}/lib/core/payment/xps-request-params.interface.mjs +0 -0
  374. /package/{esm2020 → esm2022}/lib/core/payment/xps-request.interface.mjs +0 -0
  375. /package/{esm2020 → esm2022}/lib/core/payment/xps-response.error.mjs +0 -0
  376. /package/{esm2020 → esm2022}/lib/core/payment/xps-response.interface.mjs +0 -0
  377. /package/{esm2020 → esm2022}/lib/core/payment/xps-summary.interface.mjs +0 -0
  378. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-method-api.interface.mjs +0 -0
  379. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-method.interface.mjs +0 -0
  380. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-api.interface.mjs +0 -0
  381. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-request-params.interface.mjs +0 -0
  382. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-response.class.mjs +0 -0
  383. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-response.interface.mjs +0 -0
  384. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-response.token.mjs +0 -0
  385. /package/{esm2020 → esm2022}/lib/core/performance/xhr-action.interface.mjs +0 -0
  386. /package/{esm2020 → esm2022}/lib/core/properties.type.mjs +0 -0
  387. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-method-api.interface.mjs +0 -0
  388. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-method.interface.mjs +0 -0
  389. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-request-params.interface.mjs +0 -0
  390. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-response.class.mjs +0 -0
  391. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-response.interface.mjs +0 -0
  392. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-response.token.mjs +0 -0
  393. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay-integration.type.mjs +0 -0
  394. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay-params.interface.mjs +0 -0
  395. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay.const.mjs +0 -0
  396. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay.errors.enum.mjs +0 -0
  397. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/checkout-params.interface.mjs +0 -0
  398. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-button-color.type.mjs +0 -0
  399. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-checkout.interface.mjs +0 -0
  400. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-init-params.interface.mjs +0 -0
  401. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-library.interface.mjs +0 -0
  402. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/sdk-payment-methods.const.mjs +0 -0
  403. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/sdk-payment-systems-initial-data.interface.mjs +0 -0
  404. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/sdk-payment-systems.interface.mjs +0 -0
  405. /package/{esm2020 → esm2022}/lib/core/settings/auto-redirect-on-status.mjs +0 -0
  406. /package/{esm2020 → esm2022}/lib/core/settings/balance.interface.mjs +0 -0
  407. /package/{esm2020 → esm2022}/lib/core/settings/bonus.interface.mjs +0 -0
  408. /package/{esm2020 → esm2022}/lib/core/settings/configuration.interface.mjs +0 -0
  409. /package/{esm2020 → esm2022}/lib/core/settings/empty-utils-response.error.mjs +0 -0
  410. /package/{esm2020 → esm2022}/lib/core/settings/header-type.enum.mjs +0 -0
  411. /package/{esm2020 → esm2022}/lib/core/settings/offer.interface.mjs +0 -0
  412. /package/{esm2020 → esm2022}/lib/core/settings/project.interface.mjs +0 -0
  413. /package/{esm2020 → esm2022}/lib/core/settings/purchase.interface.mjs +0 -0
  414. /package/{esm2020 → esm2022}/lib/core/settings/settings-mode.enum.mjs +0 -0
  415. /package/{esm2020 → esm2022}/lib/core/settings/settings.interface.mjs +0 -0
  416. /package/{esm2020 → esm2022}/lib/core/settings/status-back-show.mjs +0 -0
  417. /package/{esm2020 → esm2022}/lib/core/settings/tracking-info.interface.mjs +0 -0
  418. /package/{esm2020 → esm2022}/lib/core/settings/user.interface.mjs +0 -0
  419. /package/{esm2020 → esm2022}/lib/core/settings/utils-response.interface.mjs +0 -0
  420. /package/{esm2020 → esm2022}/lib/core/type-guards/is-null.function.mjs +0 -0
  421. /package/{esm2020 → esm2022}/lib/core/type-guards/is-string.function.mjs +0 -0
  422. /package/{esm2020 → esm2022}/lib/core/type-guards/is-undefined.function.mjs +0 -0
  423. /package/{esm2020 → esm2022}/lib/core/url/search-params.interface.mjs +0 -0
  424. /package/{esm2020 → esm2022}/lib/core/user-agent/browserInfo.interface.mjs +0 -0
  425. /package/{esm2020 → esm2022}/lib/core/user-agent/browsers.mjs +0 -0
  426. /package/{esm2020 → esm2022}/lib/core/user-agent/device.enum.mjs +0 -0
  427. /package/{esm2020 → esm2022}/lib/core/user-agent/os.mjs +0 -0
  428. /package/{esm2020 → esm2022}/lib/core/user-agent/user-agent-data.interface.mjs +0 -0
  429. /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-api.interface.mjs +0 -0
  430. /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-request-params.interface.mjs +0 -0
  431. /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-response.class.mjs +0 -0
  432. /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-response.token.mjs +0 -0
  433. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/event-parameter-types.mjs +0 -0
  434. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/invoice.interface.mjs +0 -0
  435. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/purchase.type.mjs +0 -0
  436. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/user-behaviour-event.interface.mjs +0 -0
  437. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/one-time-analytics-events.const.mjs +0 -0
  438. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-analytics.interface.mjs +0 -0
  439. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-categories.mjs +0 -0
  440. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types.mjs +0 -0
  441. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-event-name.enum.mjs +0 -0
  442. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-session-options.mjs +0 -0
  443. /package/{esm2020 → esm2022}/lib/core/web-socket/web-socket-client-type.enum.mjs +0 -0
  444. /package/{esm2020 → esm2022}/lib/core/web-socket/web-socket.interface.mjs +0 -0
  445. /package/{esm2020 → esm2022}/lib/core/window.token.mjs +0 -0
  446. /package/{esm2020 → esm2022}/lib/core/xps-boolean.enum.mjs +0 -0
  447. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  448. /package/{esm2020 → esm2022}/xsolla-payment-client-core.mjs +0 -0
@@ -0,0 +1,75 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { firstValueFrom, skip } from 'rxjs';
3
+ import { requiredStatusSearchParams } from './status-request/required-status-search-params.const';
4
+ import { statusSearchParamsMap } from './status-request/status-search-params.map';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../url/url.service";
7
+ import * as i2 from "./status-request/status-request.service";
8
+ import * as i3 from "../finance-details/finance-details.service";
9
+ import * as i4 from "./listen-status/listen-status.service";
10
+ import * as i5 from "../actions/next-action.service";
11
+ import * as i6 from "./save-payment-method-status/save-payment-method-status.service";
12
+ import * as i7 from "../actions/status-updated/status-updated.action.class";
13
+ export class StatusService {
14
+ constructor(urlService, statusRequestService, financeDetailsService, listenStatusService, nextActionService, savePaymentMethodStatusService, statusUpdatedActionCreator) {
15
+ this.urlService = urlService;
16
+ this.statusRequestService = statusRequestService;
17
+ this.financeDetailsService = financeDetailsService;
18
+ this.listenStatusService = listenStatusService;
19
+ this.nextActionService = nextActionService;
20
+ this.savePaymentMethodStatusService = savePaymentMethodStatusService;
21
+ this.statusUpdatedActionCreator = statusUpdatedActionCreator;
22
+ }
23
+ async getStatus(params) {
24
+ const isSavePaymentMethodMode = params?.isSavePaymentAccount === "1" /* XpsBoolean.true */;
25
+ if (isSavePaymentMethodMode) {
26
+ return this.savePaymentMethodStatusService.getStatus(params);
27
+ }
28
+ this.statusRequestService.setRequestParams(params);
29
+ this.startWaitingStatusUpdates(params.invoice);
30
+ this.statusRequestService.request();
31
+ const statusResponse = await firstValueFrom(this.statusRequestService.response$);
32
+ this.financeDetailsService.emitWithStatus(statusResponse.status);
33
+ return statusResponse.status;
34
+ }
35
+ async getStatusWithUrlSearchParams(url) {
36
+ const searchParams = this.getRequestParamsFromUrl(url);
37
+ if (!searchParams) {
38
+ throw new Error('No required search params to get status');
39
+ }
40
+ return this.getStatus(searchParams);
41
+ }
42
+ listenFinalStatus(invoice) {
43
+ return this.listenStatusService.listen(invoice);
44
+ }
45
+ getRequestParamsFromUrl(url) {
46
+ const searchParams = this.urlService.getSearchParams(url ?? '');
47
+ const keys = new Set(Object.keys(searchParams));
48
+ if (requiredStatusSearchParams.some((requiredKey) => !keys.has(requiredKey))) {
49
+ return null;
50
+ }
51
+ const params = {};
52
+ statusSearchParamsMap.forEach((settings, key) => {
53
+ params[settings.key] = settings.converter(searchParams[key]);
54
+ });
55
+ return params;
56
+ }
57
+ startWaitingStatusUpdates(invoice) {
58
+ this.listenStatusService.listen(invoice);
59
+ this.listenStatusService.statusUpdated$
60
+ .pipe(skip(1))
61
+ .subscribe(({ statusResponse }) => {
62
+ this.financeDetailsService.emitWithStatus(statusResponse.status);
63
+ this.nextActionService.emitFlowUpdates(this.statusUpdatedActionCreator.getActionData({ statusResponse }));
64
+ });
65
+ }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: StatusService, deps: [{ token: i1.UrlService }, { token: i2.StatusRequestService }, { token: i3.FinanceDetailsService }, { token: i4.ListenStatusService }, { token: i5.NextActionService }, { token: i6.SavePaymentMethodStatusService }, { token: i7.StatusUpdatedActionCreator }], target: i0.ɵɵFactoryTarget.Injectable }); }
67
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: StatusService, providedIn: 'root' }); }
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: StatusService, decorators: [{
70
+ type: Injectable,
71
+ args: [{
72
+ providedIn: 'root',
73
+ }]
74
+ }], ctorParameters: () => [{ type: i1.UrlService }, { type: i2.StatusRequestService }, { type: i3.FinanceDetailsService }, { type: i4.ListenStatusService }, { type: i5.NextActionService }, { type: i6.SavePaymentMethodStatusService }, { type: i7.StatusUpdatedActionCreator }] });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L3N0YXR1cy9zdGF0dXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUXhELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7QUFTbEYsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFDbUIsVUFBc0IsRUFDdEIsb0JBQTBDLEVBQzFDLHFCQUE0QyxFQUM1QyxtQkFBd0MsRUFDeEMsaUJBQW9DLEVBQ3BDLDhCQUE4RCxFQUM5RCwwQkFBc0Q7UUFOdEQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFDOUQsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtJQUN0RSxDQUFDO0lBRUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUEyQjtRQUNoRCxNQUFNLHVCQUF1QixHQUMzQixNQUFNLEVBQUUsb0JBQW9CLDhCQUFvQixDQUFDO1FBQ25ELElBQUksdUJBQXVCLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVuRCxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVwQyxNQUFNLGNBQWMsR0FBRyxNQUFNLGNBQWMsQ0FDekMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FDcEMsQ0FBQztRQUVGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpFLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRU0sS0FBSyxDQUFDLDRCQUE0QixDQUFDLEdBQVk7UUFDcEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0saUJBQWlCLENBQUMsT0FBZTtRQUN0QyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVPLHVCQUF1QixDQUFDLEdBQVk7UUFDMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUVoRCxJQUNFLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQ3hFLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBdUMsRUFBRSxDQUFDO1FBQ3RELHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM5QyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQXdDLENBQUM7SUFDbEQsQ0FBQztJQUVPLHlCQUF5QixDQUFDLE9BQWU7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYzthQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRWpFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQ3BDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxhQUFhLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUNsRSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTdFVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlLCBza2lwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdGF0dXNSZXF1ZXN0U2VydmljZSB9IGZyb20gJy4vc3RhdHVzLXJlcXVlc3Qvc3RhdHVzLXJlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXNSZXF1ZXN0UGFyYW1zIH0gZnJvbSAnLi9zdGF0dXMtcmVxdWVzdC9zdGF0dXMtcmVxdWVzdC1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IExpc3RlblN0YXR1c1NlcnZpY2UgfSBmcm9tICcuL2xpc3Rlbi1zdGF0dXMvbGlzdGVuLXN0YXR1cy5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJy4vc3RhdHVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2FjdGlvbnMvbmV4dC1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXNVcGRhdGVkQWN0aW9uQ3JlYXRvciB9IGZyb20gJy4uL2FjdGlvbnMvc3RhdHVzLXVwZGF0ZWQvc3RhdHVzLXVwZGF0ZWQuYWN0aW9uLmNsYXNzJztcbmltcG9ydCB7IFVybFNlcnZpY2UgfSBmcm9tICcuLi8uLi91cmwvdXJsLnNlcnZpY2UnO1xuaW1wb3J0IHsgcmVxdWlyZWRTdGF0dXNTZWFyY2hQYXJhbXMgfSBmcm9tICcuL3N0YXR1cy1yZXF1ZXN0L3JlcXVpcmVkLXN0YXR1cy1zZWFyY2gtcGFyYW1zLmNvbnN0JztcbmltcG9ydCB7IHN0YXR1c1NlYXJjaFBhcmFtc01hcCB9IGZyb20gJy4vc3RhdHVzLXJlcXVlc3Qvc3RhdHVzLXNlYXJjaC1wYXJhbXMubWFwJztcbmltcG9ydCB7IEZpbmFuY2VEZXRhaWxzU2VydmljZSB9IGZyb20gJy4uL2ZpbmFuY2UtZGV0YWlscy9maW5hbmNlLWRldGFpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBTYXZlUGF5bWVudE1ldGhvZFN0YXR1c1NlcnZpY2UgfSBmcm9tICcuL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgWHBzQm9vbGVhbiB9IGZyb20gJy4uLy4uL3hwcy1ib29sZWFuLmVudW0nO1xuaW1wb3J0IHsgU3RhdHVzU2V0dGluZ3MgfSBmcm9tICcuL3N0YXR1cy1zZXR0aW5ncy5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU3RhdHVzU2VydmljZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybFNlcnZpY2U6IFVybFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNSZXF1ZXN0U2VydmljZTogU3RhdHVzUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaW5hbmNlRGV0YWlsc1NlcnZpY2U6IEZpbmFuY2VEZXRhaWxzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3RlblN0YXR1c1NlcnZpY2U6IExpc3RlblN0YXR1c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXh0QWN0aW9uU2VydmljZTogTmV4dEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzYXZlUGF5bWVudE1ldGhvZFN0YXR1c1NlcnZpY2U6IFNhdmVQYXltZW50TWV0aG9kU3RhdHVzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c1VwZGF0ZWRBY3Rpb25DcmVhdG9yOiBTdGF0dXNVcGRhdGVkQWN0aW9uQ3JlYXRvclxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGdldFN0YXR1cyhwYXJhbXM6IFN0YXR1c1JlcXVlc3RQYXJhbXMpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGNvbnN0IGlzU2F2ZVBheW1lbnRNZXRob2RNb2RlID1cbiAgICAgIHBhcmFtcz8uaXNTYXZlUGF5bWVudEFjY291bnQgPT09IFhwc0Jvb2xlYW4udHJ1ZTtcbiAgICBpZiAoaXNTYXZlUGF5bWVudE1ldGhvZE1vZGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnNhdmVQYXltZW50TWV0aG9kU3RhdHVzU2VydmljZS5nZXRTdGF0dXMocGFyYW1zKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXR1c1JlcXVlc3RTZXJ2aWNlLnNldFJlcXVlc3RQYXJhbXMocGFyYW1zKTtcblxuICAgIHRoaXMuc3RhcnRXYWl0aW5nU3RhdHVzVXBkYXRlcyhwYXJhbXMuaW52b2ljZSk7XG5cbiAgICB0aGlzLnN0YXR1c1JlcXVlc3RTZXJ2aWNlLnJlcXVlc3QoKTtcblxuICAgIGNvbnN0IHN0YXR1c1Jlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLnN0YXR1c1JlcXVlc3RTZXJ2aWNlLnJlc3BvbnNlJFxuICAgICk7XG5cbiAgICB0aGlzLmZpbmFuY2VEZXRhaWxzU2VydmljZS5lbWl0V2l0aFN0YXR1cyhzdGF0dXNSZXNwb25zZS5zdGF0dXMpO1xuXG4gICAgcmV0dXJuIHN0YXR1c1Jlc3BvbnNlLnN0YXR1cztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRTdGF0dXNXaXRoVXJsU2VhcmNoUGFyYW1zKHVybD86IHN0cmluZyk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gdGhpcy5nZXRSZXF1ZXN0UGFyYW1zRnJvbVVybCh1cmwpO1xuXG4gICAgaWYgKCFzZWFyY2hQYXJhbXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcmVxdWlyZWQgc2VhcmNoIHBhcmFtcyB0byBnZXQgc3RhdHVzJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RhdHVzKHNlYXJjaFBhcmFtcyk7XG4gIH1cblxuICBwdWJsaWMgbGlzdGVuRmluYWxTdGF0dXMoaW52b2ljZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxTdGF0dXNTZXR0aW5ncz4ge1xuICAgIHJldHVybiB0aGlzLmxpc3RlblN0YXR1c1NlcnZpY2UubGlzdGVuKGludm9pY2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZXF1ZXN0UGFyYW1zRnJvbVVybCh1cmw/OiBzdHJpbmcpOiBTdGF0dXNSZXF1ZXN0UGFyYW1zIHwgbnVsbCB7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gdGhpcy51cmxTZXJ2aWNlLmdldFNlYXJjaFBhcmFtcyh1cmwgPz8gJycpO1xuICAgIGNvbnN0IGtleXMgPSBuZXcgU2V0KE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcykpO1xuXG4gICAgaWYgKFxuICAgICAgcmVxdWlyZWRTdGF0dXNTZWFyY2hQYXJhbXMuc29tZSgocmVxdWlyZWRLZXkpID0+ICFrZXlzLmhhcyhyZXF1aXJlZEtleSkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0gPSB7fTtcbiAgICBzdGF0dXNTZWFyY2hQYXJhbXNNYXAuZm9yRWFjaCgoc2V0dGluZ3MsIGtleSkgPT4ge1xuICAgICAgcGFyYW1zW3NldHRpbmdzLmtleV0gPSBzZXR0aW5ncy5jb252ZXJ0ZXIoc2VhcmNoUGFyYW1zW2tleV0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBhcmFtcyBhcyB1bmtub3duIGFzIFN0YXR1c1JlcXVlc3RQYXJhbXM7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0V2FpdGluZ1N0YXR1c1VwZGF0ZXMoaW52b2ljZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ZW5TdGF0dXNTZXJ2aWNlLmxpc3RlbihpbnZvaWNlKTtcblxuICAgIHRoaXMubGlzdGVuU3RhdHVzU2VydmljZS5zdGF0dXNVcGRhdGVkJFxuICAgICAgLnBpcGUoc2tpcCgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKHsgc3RhdHVzUmVzcG9uc2UgfSkgPT4ge1xuICAgICAgICB0aGlzLmZpbmFuY2VEZXRhaWxzU2VydmljZS5lbWl0V2l0aFN0YXR1cyhzdGF0dXNSZXNwb25zZS5zdGF0dXMpO1xuXG4gICAgICAgIHRoaXMubmV4dEFjdGlvblNlcnZpY2UuZW1pdEZsb3dVcGRhdGVzKFxuICAgICAgICAgIHRoaXMuc3RhdHVzVXBkYXRlZEFjdGlvbkNyZWF0b3IuZ2V0QWN0aW9uRGF0YSh7IHN0YXR1c1Jlc3BvbnNlIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,76 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { WebSocketStatus } from './websocket-status.enum';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../web-socket/web-socket.factory";
6
+ export class WebsocketStatusService {
7
+ get needCheckStatus$() {
8
+ return this.needCheckStatusSubject.asObservable();
9
+ }
10
+ get statusChanged$() {
11
+ return this.statusChangedSubject.asObservable();
12
+ }
13
+ constructor(webSocketFactory) {
14
+ this.webSocketFactory = webSocketFactory;
15
+ this.reinsuranceCheckStatus = {
16
+ timeoutId: null,
17
+ timeoutMs: 180000,
18
+ };
19
+ this.needCheckStatusSubject = new Subject();
20
+ this.statusChangedSubject = new Subject();
21
+ this.webSocketClient = null;
22
+ }
23
+ async checkStatusWithWebSocket(webSocketUrl, webSocketChannelName, webSocketClientType) {
24
+ this.webSocketClient = this.webSocketFactory.createWebSocketClient(webSocketUrl, webSocketClientType);
25
+ await this.webSocketClient.open(webSocketUrl, webSocketChannelName);
26
+ this.webSocketSubscription?.unsubscribe();
27
+ this.webSocketSubscription = this.webSocketClient.messages$.subscribe((message) => this.statusProcessing(message));
28
+ this.webSocketReconnectionSubscription =
29
+ this.webSocketClient.subscribeOnSuccessfulReconnection(() => {
30
+ this.needCheckStatusSubject.next();
31
+ });
32
+ this.needCheckStatusSubject.next();
33
+ this.startReinsuranceCheckTimeout();
34
+ }
35
+ closeWebSocket() {
36
+ this.removeSubscription();
37
+ this.webSocketClient?.close();
38
+ this.clearReinsuranceCheckTimeout();
39
+ }
40
+ startReinsuranceCheckTimeout() {
41
+ this.clearReinsuranceCheckTimeout();
42
+ this.reinsuranceCheckStatus.timeoutId = setTimeout(() => {
43
+ this.needCheckStatusSubject.next();
44
+ }, this.reinsuranceCheckStatus.timeoutMs);
45
+ }
46
+ clearReinsuranceCheckTimeout() {
47
+ if (this.reinsuranceCheckStatus.timeoutId) {
48
+ clearTimeout(this.reinsuranceCheckStatus.timeoutId);
49
+ this.reinsuranceCheckStatus.timeoutId = null;
50
+ }
51
+ }
52
+ statusProcessing(message) {
53
+ if (message === WebSocketStatus.statusChanged) {
54
+ this.statusChangedSubject.next();
55
+ this.closeWebSocket();
56
+ this.clearReinsuranceCheckTimeout();
57
+ }
58
+ if (message === WebSocketStatus.troubledStatus) {
59
+ this.clearReinsuranceCheckTimeout();
60
+ this.closeWebSocket();
61
+ }
62
+ }
63
+ removeSubscription() {
64
+ this.webSocketSubscription?.unsubscribe();
65
+ this.webSocketReconnectionSubscription?.unsubscribe();
66
+ }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WebsocketStatusService, deps: [{ token: i1.WebSocketFactory }], target: i0.ɵɵFactoryTarget.Injectable }); }
68
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WebsocketStatusService, providedIn: 'root' }); }
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WebsocketStatusService, decorators: [{
71
+ type: Injectable,
72
+ args: [{
73
+ providedIn: 'root',
74
+ }]
75
+ }], ctorParameters: () => [{ type: i1.WebSocketFactory }] });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LXN0YXR1cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9zdGF0dXMvd2Vic29ja2V0LXN0YXR1cy93ZWJzb2NrZXQtc3RhdHVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUl6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUsxRCxNQUFNLE9BQU8sc0JBQXNCO0lBZ0JqQyxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBQ0QsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCxZQUFvQyxnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXBCckQsMkJBQXNCLEdBR25DO1lBQ0YsU0FBUyxFQUFFLElBQUk7WUFDZixTQUFTLEVBQUUsTUFBTTtTQUNsQixDQUFDO1FBRWUsMkJBQXNCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUM3Qyx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXBELG9CQUFlLEdBQTJCLElBQUksQ0FBQztJQVNrQixDQUFDO0lBRW5FLEtBQUssQ0FBQyx3QkFBd0IsQ0FDbkMsWUFBb0IsRUFDcEIsb0JBQTRCLEVBQzVCLG1CQUF3QztRQUV4QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FDaEUsWUFBWSxFQUNaLG1CQUFtQixDQUNwQixDQUFDO1FBRUYsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUVwRSxJQUFJLENBQUMscUJBQXFCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FDbkUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FDNUMsQ0FBQztRQUVGLElBQUksQ0FBQyxpQ0FBaUM7WUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQ0FBaUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSw0QkFBNEI7UUFDakMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3RELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxDQUFDLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyw0QkFBNEI7UUFDbEMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUMsWUFBWSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE9BQWU7UUFDdEMsSUFBSSxPQUFPLEtBQUssZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksT0FBTyxLQUFLLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN4RCxDQUFDOzhHQXJGVSxzQkFBc0I7a0hBQXRCLHNCQUFzQixjQUZyQixNQUFNOzsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXZWJTb2NrZXRGYWN0b3J5IH0gZnJvbSAnLi4vLi4vLi4vd2ViLXNvY2tldC93ZWItc29ja2V0LmZhY3RvcnknO1xuaW1wb3J0IHsgV2ViU29ja2V0Q2xpZW50IH0gZnJvbSAnLi4vLi4vLi4vd2ViLXNvY2tldC93ZWItc29ja2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBXZWJTb2NrZXRDbGllbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vd2ViLXNvY2tldC93ZWItc29ja2V0LWNsaWVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgV2ViU29ja2V0U3RhdHVzIH0gZnJvbSAnLi93ZWJzb2NrZXQtc3RhdHVzLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2Vic29ja2V0U3RhdHVzU2VydmljZSB7XG4gIHByaXZhdGUgd2ViU29ja2V0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgd2ViU29ja2V0UmVjb25uZWN0aW9uU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVpbnN1cmFuY2VDaGVja1N0YXR1czoge1xuICAgIHRpbWVvdXRJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsO1xuICAgIHJlYWRvbmx5IHRpbWVvdXRNczogbnVtYmVyO1xuICB9ID0ge1xuICAgIHRpbWVvdXRJZDogbnVsbCxcbiAgICB0aW1lb3V0TXM6IDE4MDAwMCxcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5lZWRDaGVja1N0YXR1c1N1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c0NoYW5nZWRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHdlYlNvY2tldENsaWVudDogV2ViU29ja2V0Q2xpZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBuZWVkQ2hlY2tTdGF0dXMkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLm5lZWRDaGVja1N0YXR1c1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbiAgcHVibGljIGdldCBzdGF0dXNDaGFuZ2VkJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXNDaGFuZ2VkU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHdlYlNvY2tldEZhY3Rvcnk6IFdlYlNvY2tldEZhY3RvcnkpIHt9XG5cbiAgcHVibGljIGFzeW5jIGNoZWNrU3RhdHVzV2l0aFdlYlNvY2tldChcbiAgICB3ZWJTb2NrZXRVcmw6IHN0cmluZyxcbiAgICB3ZWJTb2NrZXRDaGFubmVsTmFtZTogc3RyaW5nLFxuICAgIHdlYlNvY2tldENsaWVudFR5cGU6IFdlYlNvY2tldENsaWVudFR5cGVcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy53ZWJTb2NrZXRDbGllbnQgPSB0aGlzLndlYlNvY2tldEZhY3RvcnkuY3JlYXRlV2ViU29ja2V0Q2xpZW50KFxuICAgICAgd2ViU29ja2V0VXJsLFxuICAgICAgd2ViU29ja2V0Q2xpZW50VHlwZVxuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLndlYlNvY2tldENsaWVudC5vcGVuKHdlYlNvY2tldFVybCwgd2ViU29ja2V0Q2hhbm5lbE5hbWUpO1xuXG4gICAgdGhpcy53ZWJTb2NrZXRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy53ZWJTb2NrZXRTdWJzY3JpcHRpb24gPSB0aGlzLndlYlNvY2tldENsaWVudC5tZXNzYWdlcyQuc3Vic2NyaWJlKFxuICAgICAgKG1lc3NhZ2UpID0+IHRoaXMuc3RhdHVzUHJvY2Vzc2luZyhtZXNzYWdlKVxuICAgICk7XG5cbiAgICB0aGlzLndlYlNvY2tldFJlY29ubmVjdGlvblN1YnNjcmlwdGlvbiA9XG4gICAgICB0aGlzLndlYlNvY2tldENsaWVudC5zdWJzY3JpYmVPblN1Y2Nlc3NmdWxSZWNvbm5lY3Rpb24oKCkgPT4ge1xuICAgICAgICB0aGlzLm5lZWRDaGVja1N0YXR1c1N1YmplY3QubmV4dCgpO1xuICAgICAgfSk7XG4gICAgdGhpcy5uZWVkQ2hlY2tTdGF0dXNTdWJqZWN0Lm5leHQoKTtcbiAgICB0aGlzLnN0YXJ0UmVpbnN1cmFuY2VDaGVja1RpbWVvdXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVdlYlNvY2tldCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZVN1YnNjcmlwdGlvbigpO1xuICAgIHRoaXMud2ViU29ja2V0Q2xpZW50Py5jbG9zZSgpO1xuICAgIHRoaXMuY2xlYXJSZWluc3VyYW5jZUNoZWNrVGltZW91dCgpO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0UmVpbnN1cmFuY2VDaGVja1RpbWVvdXQoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclJlaW5zdXJhbmNlQ2hlY2tUaW1lb3V0KCk7XG4gICAgdGhpcy5yZWluc3VyYW5jZUNoZWNrU3RhdHVzLnRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5uZWVkQ2hlY2tTdGF0dXNTdWJqZWN0Lm5leHQoKTtcbiAgICB9LCB0aGlzLnJlaW5zdXJhbmNlQ2hlY2tTdGF0dXMudGltZW91dE1zKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJSZWluc3VyYW5jZUNoZWNrVGltZW91dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWluc3VyYW5jZUNoZWNrU3RhdHVzLnRpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVpbnN1cmFuY2VDaGVja1N0YXR1cy50aW1lb3V0SWQpO1xuICAgICAgdGhpcy5yZWluc3VyYW5jZUNoZWNrU3RhdHVzLnRpbWVvdXRJZCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0dXNQcm9jZXNzaW5nKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChtZXNzYWdlID09PSBXZWJTb2NrZXRTdGF0dXMuc3RhdHVzQ2hhbmdlZCkge1xuICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkU3ViamVjdC5uZXh0KCk7XG4gICAgICB0aGlzLmNsb3NlV2ViU29ja2V0KCk7XG4gICAgICB0aGlzLmNsZWFyUmVpbnN1cmFuY2VDaGVja1RpbWVvdXQoKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UgPT09IFdlYlNvY2tldFN0YXR1cy50cm91YmxlZFN0YXR1cykge1xuICAgICAgdGhpcy5jbGVhclJlaW5zdXJhbmNlQ2hlY2tUaW1lb3V0KCk7XG4gICAgICB0aGlzLmNsb3NlV2ViU29ja2V0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy53ZWJTb2NrZXRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy53ZWJTb2NrZXRSZWNvbm5lY3Rpb25TdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { XpsApiPartRequest } from '../../xps-api-part-request.abstract';
2
+ import { TokenError } from '../../../exceptions-handling/errors/token-error.class';
3
+ export class SubmitRequest extends XpsApiPartRequest {
4
+ constructor(parameters) {
5
+ super();
6
+ const { token, fields, form, dfpHash } = parameters;
7
+ if (token === null) {
8
+ throw new TokenError();
9
+ }
10
+ this.access_token = token;
11
+ if (dfpHash) {
12
+ this.xps_dfp_hash = dfpHash;
13
+ }
14
+ this.addXpsParameters(this.getFieldsValues(fields, form));
15
+ }
16
+ getFieldsValues(fields, form) {
17
+ return fields.reduce((xpsParams, field) => {
18
+ const formControl = form.get(field.name);
19
+ xpsParams[field.name] = formControl ? formControl.value : field?.value;
20
+ return xpsParams;
21
+ }, {});
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LXJlcXVlc3QuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L3N1Ym1pdC9yZXF1ZXN0L3N1Ym1pdC1yZXF1ZXN0LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVuRixNQUFNLE9BQU8sYUFBYyxTQUFRLGlCQUFpQjtJQUlsRCxZQUFtQixVQU1sQjtRQUNDLEtBQUssRUFBRSxDQUFDO1FBRVIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUVwRCxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNuQixNQUFNLElBQUksVUFBVSxFQUFFLENBQUM7UUFDekIsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBRTFCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVPLGVBQWUsQ0FDckIsTUFBZSxFQUNmLElBQXNCO1FBRXRCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FDbEIsQ0FBQyxTQUFvQyxFQUFFLEtBQVksRUFBRSxFQUFFO1lBQ3JELE1BQU0sV0FBVyxHQUEyQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVqRSxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUV2RSxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDLEVBQ0QsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFhwc0FwaVBhcnRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4veHBzLWFwaS1wYXJ0LXJlcXVlc3QuYWJzdHJhY3QnO1xuaW1wb3J0IHsgVG9rZW5FcnJvciB9IGZyb20gJy4uLy4uLy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL3Rva2VuLWVycm9yLmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIFN1Ym1pdFJlcXVlc3QgZXh0ZW5kcyBYcHNBcGlQYXJ0UmVxdWVzdCB7XG4gIHB1YmxpYyByZWFkb25seSBhY2Nlc3NfdG9rZW46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHhwc19kZnBfaGFzaD86IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1ldGVyczoge1xuICAgIHRva2VuOiBzdHJpbmcgfCBudWxsO1xuICAgIGZpZWxkczogRmllbGRbXTtcbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbWFnaWMtbnVtYmVyc1xuICAgIGRmcEhhc2g6IHN0cmluZyB8IG51bGw7XG4gIH0pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgY29uc3QgeyB0b2tlbiwgZmllbGRzLCBmb3JtLCBkZnBIYXNoIH0gPSBwYXJhbWV0ZXJzO1xuXG4gICAgaWYgKHRva2VuID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgVG9rZW5FcnJvcigpO1xuICAgIH1cblxuICAgIHRoaXMuYWNjZXNzX3Rva2VuID0gdG9rZW47XG5cbiAgICBpZiAoZGZwSGFzaCkge1xuICAgICAgdGhpcy54cHNfZGZwX2hhc2ggPSBkZnBIYXNoO1xuICAgIH1cblxuICAgIHRoaXMuYWRkWHBzUGFyYW1ldGVycyh0aGlzLmdldEZpZWxkc1ZhbHVlcyhmaWVsZHMsIGZvcm0pKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmllbGRzVmFsdWVzKFxuICAgIGZpZWxkczogRmllbGRbXSxcbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwXG4gICk6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9IHtcbiAgICByZXR1cm4gZmllbGRzLnJlZHVjZShcbiAgICAgICh4cHNQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGZpZWxkOiBGaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCA9IGZvcm0uZ2V0KGZpZWxkLm5hbWUpO1xuXG4gICAgICAgIHhwc1BhcmFtc1tmaWVsZC5uYW1lXSA9IGZvcm1Db250cm9sID8gZm9ybUNvbnRyb2wudmFsdWUgOiBmaWVsZD8udmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIHhwc1BhcmFtcztcbiAgICAgIH0sXG4gICAgICB7fVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { XpsCommand } from '../../xps-comand.enum';
2
+ import { FieldNames } from '../../field-names.enum';
3
+ export class SubmitResponse {
4
+ constructor(parameters, responseNumber = 0) {
5
+ this.responseNumber = responseNumber;
6
+ /* Todo split into properties */
7
+ this.parameters = parameters;
8
+ this.fields = Object.keys(parameters.form).map((key) => parameters.form[key]);
9
+ if (parameters.onlineBanking) {
10
+ this.onlineBanking = {
11
+ url: parameters.onlineBanking.value,
12
+ };
13
+ }
14
+ this.isNeedRedirect =
15
+ parameters.currentCommand === XpsCommand.account ||
16
+ (parameters.currentCommand === XpsCommand.checkout &&
17
+ Boolean(parameters.checkout));
18
+ this.buyData = parameters.buyData;
19
+ this.fixInvoice = this.fields.find((field) => field.name === FieldNames.fixInvoice)?.value;
20
+ this.signature = this.fields.find((field) => field.name === FieldNames.signature)?.value;
21
+ this.hasFatalErrors = parameters.textAll?.fatal;
22
+ this.userSession = parameters.userSession;
23
+ this.pid = parameters.pid;
24
+ this.errors = parameters.errors;
25
+ this.summary = parameters.summary;
26
+ this.title = parameters.title;
27
+ this.currentCommand = parameters.currentCommand;
28
+ this.messages = parameters.messages;
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LXJlc3BvbnNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9zdWJtaXQvcmVzcG9uc2Uvc3VibWl0LXJlc3BvbnNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFcEQsTUFBTSxPQUFPLGNBQWM7SUFzQnpCLFlBQ0UsVUFBdUIsRUFDUCxpQkFBeUIsQ0FBQztRQUExQixtQkFBYyxHQUFkLGNBQWMsQ0FBWTtRQUUxQyxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQzVDLENBQUMsR0FBVyxFQUFTLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUM3QyxDQUFDO1FBRUYsSUFBSSxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRztnQkFDbkIsR0FBRyxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSzthQUNwQyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjO1lBQ2pCLFVBQVUsQ0FBQyxjQUFjLEtBQUssVUFBVSxDQUFDLE9BQU87Z0JBQ2hELENBQUMsVUFBVSxDQUFDLGNBQWMsS0FBSyxVQUFVLENBQUMsUUFBUTtvQkFDaEQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUVsQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNoQyxDQUFDLEtBQVksRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsVUFBVSxDQUN2RCxFQUFFLEtBQUssQ0FBQztRQUVULElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQy9CLENBQUMsS0FBWSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxTQUFTLENBQ3RELEVBQUUsS0FBSyxDQUFDO1FBRVQsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUVoRCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDMUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDdEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWHBzUmVzcG9uc2UgfSBmcm9tICcuLi8uLi94cHMtcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEludm9pY2UgfSBmcm9tICcuLi8uLi9pbnZvaWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBYcHNDb21tYW5kIH0gZnJvbSAnLi4vLi4veHBzLWNvbWFuZC5lbnVtJztcbmltcG9ydCB7IEZpZWxkTmFtZXMgfSBmcm9tICcuLi8uLi9maWVsZC1uYW1lcy5lbnVtJztcblxuZXhwb3J0IGNsYXNzIFN1Ym1pdFJlc3BvbnNlIHtcbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM6IFhwc1Jlc3BvbnNlO1xuICBwdWJsaWMgcmVhZG9ubHkgZmllbGRzOiBGaWVsZFtdO1xuICBwdWJsaWMgb25saW5lQmFua2luZz86IHtcbiAgICB1cmw6IHN0cmluZztcbiAgfTtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGE/OiB1bmtub3duO1xuICBwdWJsaWMgaXNOZWVkUmVkaXJlY3Q6IGJvb2xlYW47XG5cbiAgcHVibGljIGJ1eURhdGE6IFhwc1Jlc3BvbnNlWydidXlEYXRhJ107XG5cbiAgcHVibGljIHNpZ25hdHVyZT86IHN0cmluZztcbiAgcHVibGljIGZpeEludm9pY2U/OiBzdHJpbmc7XG4gIHB1YmxpYyBoYXNGYXRhbEVycm9ycz86IGJvb2xlYW47XG4gIHB1YmxpYyB1c2VyU2Vzc2lvbj86IEludm9pY2U7XG4gIHB1YmxpYyBwaWQ6IFhwc1Jlc3BvbnNlWydwaWQnXTtcbiAgcHVibGljIGVycm9yczogWHBzUmVzcG9uc2VbJ2Vycm9ycyddO1xuICBwdWJsaWMgc3VtbWFyeTogWHBzUmVzcG9uc2VbJ3N1bW1hcnknXTtcbiAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyBjdXJyZW50Q29tbWFuZDogWHBzQ29tbWFuZCB8IG51bGw7XG4gIHB1YmxpYyBtZXNzYWdlczogWHBzUmVzcG9uc2VbJ21lc3NhZ2VzJ107XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHBhcmFtZXRlcnM6IFhwc1Jlc3BvbnNlLFxuICAgIHB1YmxpYyByZWFkb25seSByZXNwb25zZU51bWJlcjogbnVtYmVyID0gMFxuICApIHtcbiAgICAvKiBUb2RvIHNwbGl0IGludG8gcHJvcGVydGllcyAqL1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7XG4gICAgdGhpcy5maWVsZHMgPSBPYmplY3Qua2V5cyhwYXJhbWV0ZXJzLmZvcm0pLm1hcChcbiAgICAgIChrZXk6IHN0cmluZyk6IEZpZWxkID0+IHBhcmFtZXRlcnMuZm9ybVtrZXldXG4gICAgKTtcblxuICAgIGlmIChwYXJhbWV0ZXJzLm9ubGluZUJhbmtpbmcpIHtcbiAgICAgIHRoaXMub25saW5lQmFua2luZyA9IHtcbiAgICAgICAgdXJsOiBwYXJhbWV0ZXJzLm9ubGluZUJhbmtpbmcudmFsdWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuaXNOZWVkUmVkaXJlY3QgPVxuICAgICAgcGFyYW1ldGVycy5jdXJyZW50Q29tbWFuZCA9PT0gWHBzQ29tbWFuZC5hY2NvdW50IHx8XG4gICAgICAocGFyYW1ldGVycy5jdXJyZW50Q29tbWFuZCA9PT0gWHBzQ29tbWFuZC5jaGVja291dCAmJlxuICAgICAgICBCb29sZWFuKHBhcmFtZXRlcnMuY2hlY2tvdXQpKTtcblxuICAgIHRoaXMuYnV5RGF0YSA9IHBhcmFtZXRlcnMuYnV5RGF0YTtcblxuICAgIHRoaXMuZml4SW52b2ljZSA9IHRoaXMuZmllbGRzLmZpbmQoXG4gICAgICAoZmllbGQ6IEZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSBGaWVsZE5hbWVzLmZpeEludm9pY2VcbiAgICApPy52YWx1ZTtcblxuICAgIHRoaXMuc2lnbmF0dXJlID0gdGhpcy5maWVsZHMuZmluZChcbiAgICAgIChmaWVsZDogRmllbGQpID0+IGZpZWxkLm5hbWUgPT09IEZpZWxkTmFtZXMuc2lnbmF0dXJlXG4gICAgKT8udmFsdWU7XG5cbiAgICB0aGlzLmhhc0ZhdGFsRXJyb3JzID0gcGFyYW1ldGVycy50ZXh0QWxsPy5mYXRhbDtcblxuICAgIHRoaXMudXNlclNlc3Npb24gPSBwYXJhbWV0ZXJzLnVzZXJTZXNzaW9uO1xuICAgIHRoaXMucGlkID0gcGFyYW1ldGVycy5waWQ7XG4gICAgdGhpcy5lcnJvcnMgPSBwYXJhbWV0ZXJzLmVycm9ycztcbiAgICB0aGlzLnN1bW1hcnkgPSBwYXJhbWV0ZXJzLnN1bW1hcnk7XG4gICAgdGhpcy50aXRsZSA9IHBhcmFtZXRlcnMudGl0bGU7XG4gICAgdGhpcy5jdXJyZW50Q29tbWFuZCA9IHBhcmFtZXRlcnMuY3VycmVudENvbW1hbmQ7XG4gICAgdGhpcy5tZXNzYWdlcyA9IHBhcmFtZXRlcnMubWVzc2FnZXM7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,78 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { submitRequestFactoryToken, } from './request/submit-request.token';
3
+ import { submitResponseFactoryToken, } from './response/submit-response.token';
4
+ import { ResponseError } from '../../exceptions-handling/errors/response-error.class';
5
+ import { UserBehaviourEventName } from '../../user-behaviour-analytics/user-behaviour-event-name.enum';
6
+ import { userBehaviourEventTypes } from '../../user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../settings/settings.service";
9
+ import * as i2 from "../../device-finger-print/device-finger-print.service";
10
+ import * as i3 from "../xps-api/xps-api.service";
11
+ import * as i4 from "../../errors-mapping/xps-response-errors-mapping.service";
12
+ import * as i5 from "../../encrypt-credit-card/encrypt-credit-card.service";
13
+ import * as i6 from "../../user-behaviour-analytics/user-behaviour-analytics.service";
14
+ export class SubmitService {
15
+ constructor(requestFactory, responseFactory, settingsService, deviceFingerPrintService, xpsApiService, xpsResponseErrorsMappingService, encryptCreditCardService, userBehaviourAnalyticsService) {
16
+ this.requestFactory = requestFactory;
17
+ this.responseFactory = responseFactory;
18
+ this.settingsService = settingsService;
19
+ this.deviceFingerPrintService = deviceFingerPrintService;
20
+ this.xpsApiService = xpsApiService;
21
+ this.xpsResponseErrorsMappingService = xpsResponseErrorsMappingService;
22
+ this.encryptCreditCardService = encryptCreditCardService;
23
+ this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
24
+ }
25
+ // NB: Never add 'async' statement for this method!
26
+ // 'Async' statement wraps current promise into another.
27
+ // In this way two promises become unequal, that can broke XPS API requests logic.
28
+ // eslint-disable-next-line @typescript-eslint/promise-function-async
29
+ request(fields, form) {
30
+ return (this.deviceFingerPrintService
31
+ .getHash()
32
+ // eslint-disable-next-line @typescript-eslint/promise-function-async
33
+ .then((dfpHash) => {
34
+ const requestParams = this.requestFactory({
35
+ token: this.settingsService.token,
36
+ fields,
37
+ form,
38
+ dfpHash,
39
+ });
40
+ const encryptedRequest = this.encryptCreditCardService.encryptCreditCard(requestParams);
41
+ return this.xpsApiService
42
+ .directPaymentRequest(encryptedRequest)
43
+ .then((xpsResponse) => {
44
+ const response = this.xpsResponseErrorsMappingService.mapErrors(xpsResponse);
45
+ this.fillUserSession(xpsResponse);
46
+ if (response.errors) {
47
+ const logError = (error) => {
48
+ this.userBehaviourAnalyticsService.send(UserBehaviourEventName.showErrorMessage, userBehaviourEventTypes.manual, { value: String(error.code), extraValue: error.message });
49
+ };
50
+ response.errors.forEach(logError);
51
+ }
52
+ return this.responseFactory(response);
53
+ })
54
+ .catch((error) => {
55
+ throw new ResponseError(error.message);
56
+ });
57
+ }));
58
+ }
59
+ fillUserSession(xpsResponse) {
60
+ this.userBehaviourAnalyticsService.fillUserSession({
61
+ ...xpsResponse,
62
+ fields: Object.keys(xpsResponse.form).map((key) => xpsResponse.form[key]),
63
+ });
64
+ }
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SubmitService, deps: [{ token: submitRequestFactoryToken }, { token: submitResponseFactoryToken }, { token: i1.SettingsService }, { token: i2.DeviceFingerPrintService }, { token: i3.XpsApiService }, { token: i4.XpsResponseErrorsMappingService }, { token: i5.EncryptCreditCardService }, { token: i6.UserBehaviourAnalyticsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
66
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SubmitService, providedIn: 'root' }); }
67
+ }
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SubmitService, decorators: [{
69
+ type: Injectable,
70
+ args: [{ providedIn: 'root' }]
71
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
72
+ type: Inject,
73
+ args: [submitRequestFactoryToken]
74
+ }] }, { type: undefined, decorators: [{
75
+ type: Inject,
76
+ args: [submitResponseFactoryToken]
77
+ }] }, { type: i1.SettingsService }, { type: i2.DeviceFingerPrintService }, { type: i3.XpsApiService }, { type: i4.XpsResponseErrorsMappingService }, { type: i5.EncryptCreditCardService }, { type: i6.UserBehaviourAnalyticsService }] });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L3N1Ym1pdC9zdWJtaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBRUwseUJBQXlCLEdBQzFCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUVMLDBCQUEwQixHQUMzQixNQUFNLGtDQUFrQyxDQUFDO0FBSzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQU10RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7Ozs7Ozs7QUFJekgsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFFbUIsY0FBb0MsRUFFcEMsZUFBc0MsRUFDdEMsZUFBZ0MsRUFDaEMsd0JBQWtELEVBQ2xELGFBQTRCLEVBQzVCLCtCQUFnRSxFQUNoRSx3QkFBa0QsRUFDbEQsNkJBQTREO1FBUjVELG1CQUFjLEdBQWQsY0FBYyxDQUFzQjtRQUVwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7UUFDdEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsb0NBQStCLEdBQS9CLCtCQUErQixDQUFpQztRQUNoRSw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBK0I7SUFDNUUsQ0FBQztJQUVKLG1EQUFtRDtJQUNuRCx3REFBd0Q7SUFDeEQsa0ZBQWtGO0lBRWxGLHFFQUFxRTtJQUM5RCxPQUFPLENBQ1osTUFBZSxFQUNmLElBQXNCO1FBRXRCLE9BQU8sQ0FDTCxJQUFJLENBQUMsd0JBQXdCO2FBQzFCLE9BQU8sRUFBRTtZQUNWLHFFQUFxRTthQUNwRSxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNoQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO2dCQUN4QyxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLO2dCQUNqQyxNQUFNO2dCQUNOLElBQUk7Z0JBQ0osT0FBTzthQUNSLENBQUMsQ0FBQztZQUVILE1BQU0sZ0JBQWdCLEdBQ3BCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FDN0MsYUFBYSxDQUNkLENBQUM7WUFFSixPQUFPLElBQUksQ0FBQyxhQUFhO2lCQUN0QixvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDdEMsSUFBSSxDQUFDLENBQUMsV0FBd0IsRUFBRSxFQUFFO2dCQUNqQyxNQUFNLFFBQVEsR0FDWixJQUFJLENBQUMsK0JBQStCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUU5RCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUVsQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDcEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUdqQixFQUFRLEVBQUU7d0JBQ1QsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FDckMsc0JBQXNCLENBQUMsZ0JBQWdCLEVBQ3ZDLHVCQUF1QixDQUFDLE1BQU0sRUFDOUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUN6RCxDQUFDO29CQUNKLENBQUMsQ0FBQztvQkFFRixRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztnQkFFRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO2dCQUN0QixNQUFNLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDSixDQUFDO0lBRU8sZUFBZSxDQUFDLFdBQXdCO1FBQzlDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxlQUFlLENBQUM7WUFDakQsR0FBRyxXQUFXO1lBQ2QsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FDdkMsQ0FBQyxHQUFXLEVBQVMsRUFBRSxDQUFFLFdBQTJCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUMvRDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBL0VVLGFBQWEsa0JBRWQseUJBQXlCLGFBRXpCLDBCQUEwQjtrSEFKekIsYUFBYSxjQURBLE1BQU07OzJGQUNuQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBRzdCLE1BQU07MkJBQUMseUJBQXlCOzswQkFFaEMsTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFN1Ym1pdFJlcXVlc3RGYWN0b3J5LFxuICBzdWJtaXRSZXF1ZXN0RmFjdG9yeVRva2VuLFxufSBmcm9tICcuL3JlcXVlc3Qvc3VibWl0LXJlcXVlc3QudG9rZW4nO1xuaW1wb3J0IHtcbiAgU3VibWl0UmVzcG9uc2VGYWN0b3J5LFxuICBzdWJtaXRSZXNwb25zZUZhY3RvcnlUb2tlbixcbn0gZnJvbSAnLi9yZXNwb25zZS9zdWJtaXQtcmVzcG9uc2UudG9rZW4nO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBTdWJtaXRSZXNwb25zZSB9IGZyb20gJy4vcmVzcG9uc2Uvc3VibWl0LXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEZXZpY2VGaW5nZXJQcmludFNlcnZpY2UgfSBmcm9tICcuLi8uLi9kZXZpY2UtZmluZ2VyLXByaW50L2RldmljZS1maW5nZXItcHJpbnQuc2VydmljZSc7XG5pbXBvcnQgeyBSZXNwb25zZUVycm9yIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvcmVzcG9uc2UtZXJyb3IuY2xhc3MnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2UgfSBmcm9tICcuLi94cHMtcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFhwc0FwaVNlcnZpY2UgfSBmcm9tICcuLi94cHMtYXBpL3hwcy1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBFbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lbmNyeXB0LWNyZWRpdC1jYXJkL2VuY3J5cHQtY3JlZGl0LWNhcmQuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJtaXRSZXF1ZXN0IH0gZnJvbSAnLi9yZXF1ZXN0L3N1Ym1pdC1yZXF1ZXN0LmNsYXNzJztcbmltcG9ydCB7IFhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lcnJvcnMtbWFwcGluZy94cHMtcmVzcG9uc2UtZXJyb3JzLW1hcHBpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyQmVoYXZpb3VyRXZlbnROYW1lIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50LW5hbWUuZW51bSc7XG5pbXBvcnQgeyB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcyB9IGZyb20gJy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC91c2VyLWJlaGF2aW91ci1ldmVudC10eXBlcyc7XG5pbXBvcnQgeyBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1hbmFseXRpY3Muc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU3VibWl0U2VydmljZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHN1Ym1pdFJlcXVlc3RGYWN0b3J5VG9rZW4pXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0RmFjdG9yeTogU3VibWl0UmVxdWVzdEZhY3RvcnksXG4gICAgQEluamVjdChzdWJtaXRSZXNwb25zZUZhY3RvcnlUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3BvbnNlRmFjdG9yeTogU3VibWl0UmVzcG9uc2VGYWN0b3J5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXZpY2VGaW5nZXJQcmludFNlcnZpY2U6IERldmljZUZpbmdlclByaW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHhwc0FwaVNlcnZpY2U6IFhwc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB4cHNSZXNwb25zZUVycm9yc01hcHBpbmdTZXJ2aWNlOiBYcHNSZXNwb25zZUVycm9yc01hcHBpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW5jcnlwdENyZWRpdENhcmRTZXJ2aWNlOiBFbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZTogVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2VcbiAgKSB7fVxuXG4gIC8vIE5COiBOZXZlciBhZGQgJ2FzeW5jJyBzdGF0ZW1lbnQgZm9yIHRoaXMgbWV0aG9kIVxuICAvLyAnQXN5bmMnIHN0YXRlbWVudCB3cmFwcyBjdXJyZW50IHByb21pc2UgaW50byBhbm90aGVyLlxuICAvLyBJbiB0aGlzIHdheSB0d28gcHJvbWlzZXMgYmVjb21lIHVuZXF1YWwsIHRoYXQgY2FuIGJyb2tlIFhQUyBBUEkgcmVxdWVzdHMgbG9naWMuXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9wcm9taXNlLWZ1bmN0aW9uLWFzeW5jXG4gIHB1YmxpYyByZXF1ZXN0KFxuICAgIGZpZWxkczogRmllbGRbXSxcbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwXG4gICk6IFByb21pc2U8U3VibWl0UmVzcG9uc2U+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5kZXZpY2VGaW5nZXJQcmludFNlcnZpY2VcbiAgICAgICAgLmdldEhhc2goKVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3Byb21pc2UtZnVuY3Rpb24tYXN5bmNcbiAgICAgICAgLnRoZW4oKGRmcEhhc2gpID0+IHtcbiAgICAgICAgICBjb25zdCByZXF1ZXN0UGFyYW1zID0gdGhpcy5yZXF1ZXN0RmFjdG9yeSh7XG4gICAgICAgICAgICB0b2tlbjogdGhpcy5zZXR0aW5nc1NlcnZpY2UudG9rZW4sXG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICBmb3JtLFxuICAgICAgICAgICAgZGZwSGFzaCxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IGVuY3J5cHRlZFJlcXVlc3QgPVxuICAgICAgICAgICAgdGhpcy5lbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UuZW5jcnlwdENyZWRpdENhcmQ8U3VibWl0UmVxdWVzdD4oXG4gICAgICAgICAgICAgIHJlcXVlc3RQYXJhbXNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy54cHNBcGlTZXJ2aWNlXG4gICAgICAgICAgICAuZGlyZWN0UGF5bWVudFJlcXVlc3QoZW5jcnlwdGVkUmVxdWVzdClcbiAgICAgICAgICAgIC50aGVuKCh4cHNSZXNwb25zZTogWHBzUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPVxuICAgICAgICAgICAgICAgIHRoaXMueHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZS5tYXBFcnJvcnMoeHBzUmVzcG9uc2UpO1xuXG4gICAgICAgICAgICAgIHRoaXMuZmlsbFVzZXJTZXNzaW9uKHhwc1Jlc3BvbnNlKTtcblxuICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9nRXJyb3IgPSAoZXJyb3I6IHtcbiAgICAgICAgICAgICAgICAgIGNvZGU6IG51bWJlcjtcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICAgICAgICAgICAgICB9KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICAgICAgICAgICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuc2hvd0Vycm9yTWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMubWFudWFsLFxuICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiBTdHJpbmcoZXJyb3IuY29kZSksIGV4dHJhVmFsdWU6IGVycm9yLm1lc3NhZ2UgfVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuZXJyb3JzLmZvckVhY2gobG9nRXJyb3IpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2VGYWN0b3J5KHJlc3BvbnNlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgUmVzcG9uc2VFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZpbGxVc2VyU2Vzc2lvbih4cHNSZXNwb25zZTogWHBzUmVzcG9uc2UpOiB2b2lkIHtcbiAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLmZpbGxVc2VyU2Vzc2lvbih7XG4gICAgICAuLi54cHNSZXNwb25zZSxcbiAgICAgIGZpZWxkczogT2JqZWN0LmtleXMoeHBzUmVzcG9uc2UuZm9ybSkubWFwKFxuICAgICAgICAoa2V5OiBzdHJpbmcpOiBGaWVsZCA9PiAoeHBzUmVzcG9uc2UgYXMgWHBzUmVzcG9uc2UpLmZvcm1ba2V5XVxuICAgICAgKSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,31 @@
1
+ import { XpsApiPartRequest } from '../../xps-api-part-request.abstract';
2
+ /* eslint-disable @typescript-eslint/naming-convention */
3
+ export class SyncRequest extends XpsApiPartRequest {
4
+ constructor(parameters) {
5
+ super();
6
+ this.xps_fix_command = 'calculate';
7
+ this.access_token = parameters.token;
8
+ const fieldsValues = this.getFieldsValues(parameters.changedField, parameters.fields, parameters.form);
9
+ this.addXpsParameters({
10
+ ...fieldsValues,
11
+ change_element: parameters.changedField.name,
12
+ });
13
+ }
14
+ getFieldsValues(changedField, fields, form) {
15
+ const fieldsMap = this.getFieldsMap(fields);
16
+ return changedField?.javascript?.change.params.reduce((xpsParams, fieldName) => {
17
+ const formControl = form.get(fieldName);
18
+ const field = fieldsMap.get(fieldName);
19
+ if (formControl || field) {
20
+ xpsParams[fieldName] = formControl?.value ?? field?.value;
21
+ }
22
+ return xpsParams;
23
+ }, {});
24
+ }
25
+ getFieldsMap(fields) {
26
+ const map = new Map();
27
+ fields.forEach((field) => map.set(field.name, field));
28
+ return map;
29
+ }
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1yZXF1ZXN0LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9zeW5jL3JlcXVlc3Qvc3luYy1yZXF1ZXN0LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXhFLHlEQUF5RDtBQUN6RCxNQUFNLE9BQU8sV0FBWSxTQUFRLGlCQUFpQjtJQUloRCxZQUFtQixVQUtsQjtRQUNDLEtBQUssRUFBRSxDQUFDO1FBUk0sb0JBQWUsR0FBRyxXQUFXLENBQUM7UUFVNUMsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRXJDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQ3ZDLFVBQVUsQ0FBQyxZQUFZLEVBQ3ZCLFVBQVUsQ0FBQyxNQUFNLEVBQ2pCLFVBQVUsQ0FBQyxJQUFJLENBQ2hCLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDcEIsR0FBRyxZQUFZO1lBQ2YsY0FBYyxFQUFFLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSTtTQUM3QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZSxDQUNyQixZQUFtQixFQUNuQixNQUFlLEVBQ2YsSUFBc0I7UUFFdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxPQUFPLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ25ELENBQUMsU0FBb0MsRUFBRSxTQUFpQixFQUFFLEVBQUU7WUFDMUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4QyxNQUFNLEtBQUssR0FBc0IsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUxRCxJQUFJLFdBQVcsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDekIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFdBQVcsRUFBRSxLQUFLLElBQUksS0FBSyxFQUFFLEtBQUssQ0FBQztZQUM1RCxDQUFDO1lBRUQsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLFlBQVksQ0FBQyxNQUFlO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFhwc0FwaVBhcnRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4veHBzLWFwaS1wYXJ0LXJlcXVlc3QuYWJzdHJhY3QnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbmV4cG9ydCBjbGFzcyBTeW5jUmVxdWVzdCBleHRlbmRzIFhwc0FwaVBhcnRSZXF1ZXN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGFjY2Vzc190b2tlbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgeHBzX2ZpeF9jb21tYW5kID0gJ2NhbGN1bGF0ZSc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtZXRlcnM6IHtcbiAgICB0b2tlbjogc3RyaW5nO1xuICAgIGNoYW5nZWRGaWVsZDogRmllbGQ7XG4gICAgZmllbGRzOiBGaWVsZFtdO1xuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gIH0pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5hY2Nlc3NfdG9rZW4gPSBwYXJhbWV0ZXJzLnRva2VuO1xuXG4gICAgY29uc3QgZmllbGRzVmFsdWVzID0gdGhpcy5nZXRGaWVsZHNWYWx1ZXMoXG4gICAgICBwYXJhbWV0ZXJzLmNoYW5nZWRGaWVsZCxcbiAgICAgIHBhcmFtZXRlcnMuZmllbGRzLFxuICAgICAgcGFyYW1ldGVycy5mb3JtXG4gICAgKTtcblxuICAgIHRoaXMuYWRkWHBzUGFyYW1ldGVycyh7XG4gICAgICAuLi5maWVsZHNWYWx1ZXMsXG4gICAgICBjaGFuZ2VfZWxlbWVudDogcGFyYW1ldGVycy5jaGFuZ2VkRmllbGQubmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmllbGRzVmFsdWVzKFxuICAgIGNoYW5nZWRGaWVsZDogRmllbGQsXG4gICAgZmllbGRzOiBGaWVsZFtdLFxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXBcbiAgKTogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0ge1xuICAgIGNvbnN0IGZpZWxkc01hcCA9IHRoaXMuZ2V0RmllbGRzTWFwKGZpZWxkcyk7XG4gICAgcmV0dXJuIGNoYW5nZWRGaWVsZD8uamF2YXNjcmlwdD8uY2hhbmdlLnBhcmFtcy5yZWR1Y2UoXG4gICAgICAoeHBzUGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LCBmaWVsZE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IGZvcm0uZ2V0KGZpZWxkTmFtZSk7XG4gICAgICAgIGNvbnN0IGZpZWxkOiBGaWVsZCB8IHVuZGVmaW5lZCA9IGZpZWxkc01hcC5nZXQoZmllbGROYW1lKTtcblxuICAgICAgICBpZiAoZm9ybUNvbnRyb2wgfHwgZmllbGQpIHtcbiAgICAgICAgICB4cHNQYXJhbXNbZmllbGROYW1lXSA9IGZvcm1Db250cm9sPy52YWx1ZSA/PyBmaWVsZD8udmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geHBzUGFyYW1zO1xuICAgICAgfSxcbiAgICAgIHt9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmllbGRzTWFwKGZpZWxkczogRmllbGRbXSk6IE1hcDxzdHJpbmcsIEZpZWxkPiB7XG4gICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIEZpZWxkPigpO1xuICAgIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4gbWFwLnNldChmaWVsZC5uYW1lLCBmaWVsZCkpO1xuICAgIHJldHVybiBtYXA7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,17 @@
1
+ export class SyncResponse {
2
+ constructor(changedField, response) {
3
+ this.error = null;
4
+ const fieldError = response?.errors?.find((error) => error.element_name === changedField.name);
5
+ if (fieldError) {
6
+ this.error = {
7
+ asyncError: {
8
+ code: fieldError.code,
9
+ message: fieldError.message,
10
+ },
11
+ };
12
+ }
13
+ this.fields = Object.keys(response.form).map((key) => response.form[key]);
14
+ this.parameters = response;
15
+ }
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1yZXNwb25zZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvc3luYy9yZXNwb25zZS9zeW5jLXJlc3BvbnNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxZQUFZO0lBS3ZCLFlBQW1CLFlBQW1CLEVBQUUsUUFBcUI7UUFKN0MsVUFBSyxHQUE0QixJQUFJLENBQUM7UUFLcEQsTUFBTSxVQUFVLEdBQUcsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQ3ZDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLFlBQVksQ0FBQyxJQUFJLENBQ3BELENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRztnQkFDWCxVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO29CQUNyQixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87aUJBQzVCO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FDMUMsQ0FBQyxHQUFXLEVBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQzNDLENBQUM7UUFFRixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi8uLi9maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2UgfSBmcm9tICcuLi8uLi94cHMtcmVzcG9uc2UuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIFN5bmNSZXNwb25zZSB7XG4gIHB1YmxpYyByZWFkb25seSBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgcmVhZG9ubHkgZmllbGRzOiBGaWVsZFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyczogWHBzUmVzcG9uc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGNoYW5nZWRGaWVsZDogRmllbGQsIHJlc3BvbnNlOiBYcHNSZXNwb25zZSkge1xuICAgIGNvbnN0IGZpZWxkRXJyb3IgPSByZXNwb25zZT8uZXJyb3JzPy5maW5kKFxuICAgICAgKGVycm9yKSA9PiBlcnJvci5lbGVtZW50X25hbWUgPT09IGNoYW5nZWRGaWVsZC5uYW1lXG4gICAgKTtcblxuICAgIGlmIChmaWVsZEVycm9yKSB7XG4gICAgICB0aGlzLmVycm9yID0ge1xuICAgICAgICBhc3luY0Vycm9yOiB7XG4gICAgICAgICAgY29kZTogZmllbGRFcnJvci5jb2RlLFxuICAgICAgICAgIG1lc3NhZ2U6IGZpZWxkRXJyb3IubWVzc2FnZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5maWVsZHMgPSBPYmplY3Qua2V5cyhyZXNwb25zZS5mb3JtKS5tYXAoXG4gICAgICAoa2V5OiBzdHJpbmcpOiBGaWVsZCA9PiByZXNwb25zZS5mb3JtW2tleV1cbiAgICApO1xuXG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcmVzcG9uc2U7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,157 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { UntypedFormGroup } from '@angular/forms';
3
+ import { Subject } from 'rxjs';
4
+ import { EmitDataService } from '../emit-data.service.abstract';
5
+ import { syncRequestFactoryToken, } from './request/sync-request.token';
6
+ import { syncResponseFactoryToken, } from './response/sync-response.token';
7
+ import { UserBehaviourEventName } from '../../user-behaviour-analytics/user-behaviour-event-name.enum';
8
+ import { userBehaviourEventTypes } from '../../user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../xps-api/xps-api.service";
11
+ import * as i2 from "../actions/next-action.service";
12
+ import * as i3 from "../../settings/settings.service";
13
+ import * as i4 from "../../errors-mapping/xps-response-errors-mapping.service";
14
+ import * as i5 from "../../encrypt-credit-card/encrypt-credit-card.service";
15
+ import * as i6 from "../actions/show-errors/show-errors.action.class";
16
+ import * as i7 from "../../user-behaviour-analytics/user-behaviour-analytics.service";
17
+ export class SyncService extends EmitDataService {
18
+ constructor(requestFactory, responseFactory, xpsApiService, nextActionService, settingsService, xpsResponseErrorsMappingService, encryptCreditCardService, showErrorsActionCreator, userBehaviourAnalyticsService) {
19
+ super();
20
+ this.requestFactory = requestFactory;
21
+ this.responseFactory = responseFactory;
22
+ this.xpsApiService = xpsApiService;
23
+ this.nextActionService = nextActionService;
24
+ this.settingsService = settingsService;
25
+ this.xpsResponseErrorsMappingService = xpsResponseErrorsMappingService;
26
+ this.encryptCreditCardService = encryptCreditCardService;
27
+ this.showErrorsActionCreator = showErrorsActionCreator;
28
+ this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
29
+ this.prevFieldSyncStates = {};
30
+ this.form = new UntypedFormGroup({});
31
+ this.fields = [];
32
+ this.fieldSyncTimers = {};
33
+ this.fieldAsyncValidation = new Subject();
34
+ }
35
+ get fieldAsyncValidation$() {
36
+ return this.fieldAsyncValidation.asObservable();
37
+ }
38
+ setup(form, fields) {
39
+ this.reset();
40
+ this.form = form;
41
+ this.fields = fields;
42
+ }
43
+ reset() {
44
+ this.prevFieldSyncStates = {};
45
+ this.form = new UntypedFormGroup({});
46
+ this.fields = [];
47
+ }
48
+ async validate(field, delay = Number('750')) {
49
+ if (!this.isReadyField(field)) {
50
+ return Promise.resolve(null);
51
+ }
52
+ const control = this.form.get(field.name);
53
+ const value = control?.value;
54
+ const prevFieldState = this.getPrevFieldSyncState(field);
55
+ const isInitialValue = value === field.value && !prevFieldState;
56
+ if (isInitialValue) {
57
+ return Promise.resolve(null);
58
+ }
59
+ if (prevFieldState && value === prevFieldState.value) {
60
+ return Promise.resolve(prevFieldState.result).then((response) => {
61
+ return response?.error ?? null;
62
+ });
63
+ }
64
+ const updateFieldState = async () => {
65
+ const requestPromise = this.request(field);
66
+ this.setPrevFieldSyncState(field, value, requestPromise);
67
+ return requestPromise.then((response) => {
68
+ this.fieldAsyncValidation.next({
69
+ value,
70
+ field,
71
+ response,
72
+ });
73
+ return response.error ?? null;
74
+ });
75
+ };
76
+ return new Promise((resolve) => {
77
+ if (delay) {
78
+ const timerId = setTimeout(() => {
79
+ if (value !== control?.value) {
80
+ return resolve(null);
81
+ }
82
+ void updateFieldState().then((errors) => resolve(errors));
83
+ }, delay);
84
+ this.resetFieldSyncTimer(field, Number(timerId));
85
+ }
86
+ else {
87
+ void updateFieldState().then((errors) => resolve(errors));
88
+ }
89
+ });
90
+ }
91
+ getSyncValidationErrors(field) {
92
+ const control = this.form.get(field.name);
93
+ return control?.errors ?? null;
94
+ }
95
+ async request(field) {
96
+ const requestParams = this.requestFactory({
97
+ token: this.settingsService.token,
98
+ changedField: field,
99
+ fields: this.fields,
100
+ form: this.form,
101
+ });
102
+ const encryptedRequest = this.encryptCreditCardService.encryptCreditCard(requestParams);
103
+ return this.xpsApiService
104
+ .directPaymentRequest(encryptedRequest)
105
+ .then((xpsResponse) => {
106
+ const response = this.xpsResponseErrorsMappingService.mapErrors(xpsResponse);
107
+ this.emitFormErrors(response);
108
+ this.emit(response);
109
+ return this.responseFactory(field, response);
110
+ });
111
+ }
112
+ isReadyField(field) {
113
+ const isSyncEnabled = !!field.javascript?.change;
114
+ const isExistsInForm = !!this.form?.get(field.name);
115
+ return isSyncEnabled && isExistsInForm;
116
+ }
117
+ getPrevFieldSyncState(field) {
118
+ return this.prevFieldSyncStates[field.name];
119
+ }
120
+ setPrevFieldSyncState(field, value, result) {
121
+ this.prevFieldSyncStates[field.name] = { value, result };
122
+ }
123
+ emitFormErrors(response) {
124
+ if (response.errors) {
125
+ const logError = (error) => {
126
+ this.userBehaviourAnalyticsService.send(UserBehaviourEventName.showErrorMessage, userBehaviourEventTypes.manual, { value: String(error.code), extraValue: error.message });
127
+ };
128
+ response.errors.forEach(logError);
129
+ }
130
+ const formErrors = response.errors?.filter((error) => !error.element_name);
131
+ if (formErrors?.length) {
132
+ this.nextActionService.emitFlowUpdates(this.showErrorsActionCreator.getActionData(formErrors));
133
+ }
134
+ }
135
+ resetFieldSyncTimer(field, timerId) {
136
+ const prevTimerId = this.fieldSyncTimers[field.name];
137
+ if (prevTimerId) {
138
+ clearTimeout(prevTimerId);
139
+ }
140
+ this.fieldSyncTimers[field.name] = timerId;
141
+ }
142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SyncService, deps: [{ token: syncRequestFactoryToken }, { token: syncResponseFactoryToken }, { token: i1.XpsApiService }, { token: i2.NextActionService }, { token: i3.SettingsService }, { token: i4.XpsResponseErrorsMappingService }, { token: i5.EncryptCreditCardService }, { token: i6.ShowErrorsActionCreator }, { token: i7.UserBehaviourAnalyticsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
143
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SyncService, providedIn: 'root' }); }
144
+ }
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SyncService, decorators: [{
146
+ type: Injectable,
147
+ args: [{
148
+ providedIn: 'root',
149
+ }]
150
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
151
+ type: Inject,
152
+ args: [syncRequestFactoryToken]
153
+ }] }, { type: undefined, decorators: [{
154
+ type: Inject,
155
+ args: [syncResponseFactoryToken]
156
+ }] }, { type: i1.XpsApiService }, { type: i2.NextActionService }, { type: i3.SettingsService }, { type: i4.XpsResponseErrorsMappingService }, { type: i5.EncryptCreditCardService }, { type: i6.ShowErrorsActionCreator }, { type: i7.UserBehaviourAnalyticsService }] });
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9zeW5jL3N5bmMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJaEUsT0FBTyxFQUVMLHVCQUF1QixHQUN4QixNQUFNLDhCQUE4QixDQUFDO0FBRXRDLE9BQU8sRUFFTCx3QkFBd0IsR0FDekIsTUFBTSxnQ0FBZ0MsQ0FBQztBQVN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7Ozs7Ozs7O0FBS3pILE1BQU0sT0FBTyxXQUFZLFNBQVEsZUFBNEI7SUFPM0QsWUFFbUIsY0FBa0MsRUFFbEMsZUFBb0MsRUFDcEMsYUFBNEIsRUFDNUIsaUJBQW9DLEVBQ3BDLGVBQWdDLEVBQ2hDLCtCQUFnRSxFQUNoRSx3QkFBa0QsRUFDbEQsdUJBQWdELEVBQ2hELDZCQUE0RDtRQUU3RSxLQUFLLEVBQUUsQ0FBQztRQVhTLG1CQUFjLEdBQWQsY0FBYyxDQUFvQjtRQUVsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7UUFDcEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsb0NBQStCLEdBQS9CLCtCQUErQixDQUFpQztR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QixNQUFNOzJCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uLy4uL3NldHRpbmdzL3NldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW1pdERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vZW1pdC1kYXRhLnNlcnZpY2UuYWJzdHJhY3QnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi9maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2UgfSBmcm9tICcuLi94cHMtcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkU3luY1N0YXRlIH0gZnJvbSAnLi9maWVsZC1zeW5jLXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBTeW5jUmVxdWVzdEZhY3RvcnksXG4gIHN5bmNSZXF1ZXN0RmFjdG9yeVRva2VuLFxufSBmcm9tICcuL3JlcXVlc3Qvc3luYy1yZXF1ZXN0LnRva2VuJztcbmltcG9ydCB7IFN5bmNSZXNwb25zZSB9IGZyb20gJy4vcmVzcG9uc2Uvc3luYy1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQge1xuICBTeW5jUmVzcG9uc2VGYWN0b3J5LFxuICBzeW5jUmVzcG9uc2VGYWN0b3J5VG9rZW4sXG59IGZyb20gJy4vcmVzcG9uc2Uvc3luYy1yZXNwb25zZS50b2tlbic7XG5pbXBvcnQgeyBOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2FjdGlvbnMvbmV4dC1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTaG93RXJyb3JzQWN0aW9uQ3JlYXRvciB9IGZyb20gJy4uL2FjdGlvbnMvc2hvdy1lcnJvcnMvc2hvdy1lcnJvcnMuYWN0aW9uLmNsYXNzJztcbmltcG9ydCB7IFhwc0FwaVNlcnZpY2UgfSBmcm9tICcuLi94cHMtYXBpL3hwcy1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBGaWVsZEFzeW5jVmFsaWRhdGlvbiB9IGZyb20gJy4vZmllbGQtYXN5bmMtdmFsaWRhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRW5jcnlwdENyZWRpdENhcmRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZW5jcnlwdC1jcmVkaXQtY2FyZC9lbmNyeXB0LWNyZWRpdC1jYXJkLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3luY1JlcXVlc3QgfSBmcm9tICcuL3JlcXVlc3Qvc3luYy1yZXF1ZXN0LmNsYXNzJztcbmltcG9ydCB7IFhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lcnJvcnMtbWFwcGluZy94cHMtcmVzcG9uc2UtZXJyb3JzLW1hcHBpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyQmVoYXZpb3VyRXZlbnROYW1lIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50LW5hbWUuZW51bSc7XG5pbXBvcnQgeyB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcyB9IGZyb20gJy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC91c2VyLWJlaGF2aW91ci1ldmVudC10eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTeW5jU2VydmljZSBleHRlbmRzIEVtaXREYXRhU2VydmljZTxYcHNSZXNwb25zZT4ge1xuICBwcml2YXRlIHByZXZGaWVsZFN5bmNTdGF0ZXM6IHsgW2ZpZWxkTmFtZTogc3RyaW5nXTogRmllbGRTeW5jU3RhdGUgfSA9IHt9O1xuICBwcml2YXRlIGZvcm06IFVudHlwZWRGb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG4gIHByaXZhdGUgZmllbGRzOiBGaWVsZFtdID0gW107XG4gIHByaXZhdGUgZmllbGRTeW5jVGltZXJzOiB7IFtmaWVsZE5hbWU6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gIHByaXZhdGUgcmVhZG9ubHkgZmllbGRBc3luY1ZhbGlkYXRpb24gPSBuZXcgU3ViamVjdDxGaWVsZEFzeW5jVmFsaWRhdGlvbj4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChzeW5jUmVxdWVzdEZhY3RvcnlUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RGYWN0b3J5OiBTeW5jUmVxdWVzdEZhY3RvcnksXG4gICAgQEluamVjdChzeW5jUmVzcG9uc2VGYWN0b3J5VG9rZW4pXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNwb25zZUZhY3Rvcnk6IFN5bmNSZXNwb25zZUZhY3RvcnksXG4gICAgcHJpdmF0ZSByZWFkb25seSB4cHNBcGlTZXJ2aWNlOiBYcHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmV4dEFjdGlvblNlcnZpY2U6IE5leHRBY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB4cHNSZXNwb25zZUVycm9yc01hcHBpbmdTZXJ2aWNlOiBYcHNSZXNwb25zZUVycm9yc01hcHBpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW5jcnlwdENyZWRpdENhcmRTZXJ2aWNlOiBFbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzaG93RXJyb3JzQWN0aW9uQ3JlYXRvcjogU2hvd0Vycm9yc0FjdGlvbkNyZWF0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZTogVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmllbGRBc3luY1ZhbGlkYXRpb24kKCk6IE9ic2VydmFibGU8RmllbGRBc3luY1ZhbGlkYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5maWVsZEFzeW5jVmFsaWRhdGlvbi5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXR1cChmb3JtOiBVbnR5cGVkRm9ybUdyb3VwLCBmaWVsZHM6IEZpZWxkW10pOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0KCk7XG5cbiAgICB0aGlzLmZvcm0gPSBmb3JtO1xuICAgIHRoaXMuZmllbGRzID0gZmllbGRzO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMucHJldkZpZWxkU3luY1N0YXRlcyA9IHt9O1xuICAgIHRoaXMuZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgICB0aGlzLmZpZWxkcyA9IFtdO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHZhbGlkYXRlKFxuICAgIGZpZWxkOiBGaWVsZCxcbiAgICBkZWxheSA9IE51bWJlcignNzUwJylcbiAgKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4ge1xuICAgIGlmICghdGhpcy5pc1JlYWR5RmllbGQoZmllbGQpKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGZpZWxkLm5hbWUpO1xuICAgIGNvbnN0IHZhbHVlID0gY29udHJvbD8udmFsdWU7XG4gICAgY29uc3QgcHJldkZpZWxkU3RhdGUgPSB0aGlzLmdldFByZXZGaWVsZFN5bmNTdGF0ZShmaWVsZCk7XG5cbiAgICBjb25zdCBpc0luaXRpYWxWYWx1ZSA9IHZhbHVlID09PSBmaWVsZC52YWx1ZSAmJiAhcHJldkZpZWxkU3RhdGU7XG5cbiAgICBpZiAoaXNJbml0aWFsVmFsdWUpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuXG4gICAgaWYgKHByZXZGaWVsZFN0YXRlICYmIHZhbHVlID09PSBwcmV2RmllbGRTdGF0ZS52YWx1ZSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwcmV2RmllbGRTdGF0ZS5yZXN1bHQpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNwb25zZT8uZXJyb3IgPz8gbnVsbDtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZUZpZWxkU3RhdGUgPSBhc3luYyAoKTogUHJvbWlzZTxcbiAgICAgIHN0cmluZyB8IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsXG4gICAgPiA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0UHJvbWlzZSA9IHRoaXMucmVxdWVzdChmaWVsZCk7XG5cbiAgICAgIHRoaXMuc2V0UHJldkZpZWxkU3luY1N0YXRlKGZpZWxkLCB2YWx1ZSwgcmVxdWVzdFByb21pc2UpO1xuXG4gICAgICByZXR1cm4gcmVxdWVzdFByb21pc2UudGhlbigocmVzcG9uc2U6IFN5bmNSZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmZpZWxkQXN5bmNWYWxpZGF0aW9uLm5leHQoe1xuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVzcG9uc2UuZXJyb3IgPz8gbnVsbDtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGlmIChkZWxheSkge1xuICAgICAgICBjb25zdCB0aW1lcklkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlICE9PSBjb250cm9sPy52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdm9pZCB1cGRhdGVGaWVsZFN0YXRlKCkudGhlbihcbiAgICAgICAgICAgIChlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHwgc3RyaW5nKSA9PlxuICAgICAgICAgICAgICByZXNvbHZlKGVycm9ycyBhcyBWYWxpZGF0aW9uRXJyb3JzKVxuICAgICAgICAgICk7XG4gICAgICAgIH0sIGRlbGF5KTtcblxuICAgICAgICB0aGlzLnJlc2V0RmllbGRTeW5jVGltZXIoZmllbGQsIE51bWJlcih0aW1lcklkKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2b2lkIHVwZGF0ZUZpZWxkU3RhdGUoKS50aGVuKFxuICAgICAgICAgIChlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHwgc3RyaW5nKSA9PlxuICAgICAgICAgICAgcmVzb2x2ZShlcnJvcnMgYXMgVmFsaWRhdGlvbkVycm9ycylcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTeW5jVmFsaWRhdGlvbkVycm9ycyhmaWVsZDogRmllbGQpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5nZXQoZmllbGQubmFtZSk7XG4gICAgcmV0dXJuIGNvbnRyb2w/LmVycm9ycyA/PyBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHJlcXVlc3QoZmllbGQ6IEZpZWxkKTogUHJvbWlzZTxTeW5jUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0UGFyYW1zID0gdGhpcy5yZXF1ZXN0RmFjdG9yeSh7XG4gICAgICB0b2tlbjogdGhpcy5zZXR0aW5nc1NlcnZpY2UudG9rZW4sXG4gICAgICBjaGFuZ2VkRmllbGQ6IGZpZWxkLFxuICAgICAgZmllbGRzOiB0aGlzLmZpZWxkcyxcbiAgICAgIGZvcm06IHRoaXMuZm9ybSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGVuY3J5cHRlZFJlcXVlc3QgPVxuICAgICAgdGhpcy5lbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UuZW5jcnlwdENyZWRpdENhcmQ8U3luY1JlcXVlc3Q+KFxuICAgICAgICByZXF1ZXN0UGFyYW1zXG4gICAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMueHBzQXBpU2VydmljZVxuICAgICAgLmRpcmVjdFBheW1lbnRSZXF1ZXN0KGVuY3J5cHRlZFJlcXVlc3QpXG4gICAgICAudGhlbigoeHBzUmVzcG9uc2U6IFhwc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID1cbiAgICAgICAgICB0aGlzLnhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2UubWFwRXJyb3JzKHhwc1Jlc3BvbnNlKTtcblxuICAgICAgICB0aGlzLmVtaXRGb3JtRXJyb3JzKHJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5lbWl0KHJlc3BvbnNlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2VGYWN0b3J5KGZpZWxkLCByZXNwb25zZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNSZWFkeUZpZWxkKGZpZWxkOiBGaWVsZCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzU3luY0VuYWJsZWQgPSAhIWZpZWxkLmphdmFzY3JpcHQ/LmNoYW5nZTtcbiAgICBjb25zdCBpc0V4aXN0c0luRm9ybSA9ICEhdGhpcy5mb3JtPy5nZXQoZmllbGQubmFtZSk7XG5cbiAgICByZXR1cm4gaXNTeW5jRW5hYmxlZCAmJiBpc0V4aXN0c0luRm9ybTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UHJldkZpZWxkU3luY1N0YXRlKGZpZWxkOiBGaWVsZCk6IEZpZWxkU3luY1N0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5wcmV2RmllbGRTeW5jU3RhdGVzW2ZpZWxkLm5hbWVdO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQcmV2RmllbGRTeW5jU3RhdGUoXG4gICAgZmllbGQ6IEZpZWxkLFxuICAgIHZhbHVlOiB1bmtub3duLFxuICAgIHJlc3VsdDogUHJvbWlzZTxTeW5jUmVzcG9uc2U+XG4gICk6IHZvaWQge1xuICAgIHRoaXMucHJldkZpZWxkU3luY1N0YXRlc1tmaWVsZC5uYW1lXSA9IHsgdmFsdWUsIHJlc3VsdCB9O1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9ybUVycm9ycyhyZXNwb25zZTogWHBzUmVzcG9uc2UpOiB2b2lkIHtcbiAgICBpZiAocmVzcG9uc2UuZXJyb3JzKSB7XG4gICAgICBjb25zdCBsb2dFcnJvciA9IChlcnJvcjogeyBjb2RlOiBudW1iZXI7IG1lc3NhZ2U6IHN0cmluZyB9KTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLnNob3dFcnJvck1lc3NhZ2UsXG4gICAgICAgICAgdXNlckJlaGF2aW91ckV2ZW50VHlwZXMubWFudWFsLFxuICAgICAgICAgIHsgdmFsdWU6IFN0cmluZyhlcnJvci5jb2RlKSwgZXh0cmFWYWx1ZTogZXJyb3IubWVzc2FnZSB9XG4gICAgICAgICk7XG4gICAgICB9O1xuXG4gICAgICByZXNwb25zZS5lcnJvcnMuZm9yRWFjaChsb2dFcnJvcik7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybUVycm9ycyA9IHJlc3BvbnNlLmVycm9ycz8uZmlsdGVyKChlcnJvcikgPT4gIWVycm9yLmVsZW1lbnRfbmFtZSk7XG5cbiAgICBpZiAoZm9ybUVycm9ycz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmVtaXRGbG93VXBkYXRlcyhcbiAgICAgICAgdGhpcy5zaG93RXJyb3JzQWN0aW9uQ3JlYXRvci5nZXRBY3Rpb25EYXRhKGZvcm1FcnJvcnMpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRGaWVsZFN5bmNUaW1lcihmaWVsZDogRmllbGQsIHRpbWVySWQ6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHByZXZUaW1lcklkOiBudW1iZXIgPSB0aGlzLmZpZWxkU3luY1RpbWVyc1tmaWVsZC5uYW1lXTtcblxuICAgIGlmIChwcmV2VGltZXJJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHByZXZUaW1lcklkKTtcbiAgICB9XG5cbiAgICB0aGlzLmZpZWxkU3luY1RpbWVyc1tmaWVsZC5uYW1lXSA9IHRpbWVySWQ7XG4gIH1cbn1cbiJdfQ==