@xsolla/payment-client-core 0.2.20 → 0.2.21

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/{esm2022 → esm2020}/lib/core/combined-payment-methods/combined-payment-methods.service.mjs +5 -5
  2. package/{esm2022 → esm2020}/lib/core/countries-api/countries-api.service.mjs +5 -5
  3. package/{esm2022 → esm2020}/lib/core/country/country.service.mjs +5 -5
  4. package/{esm2022 → esm2020}/lib/core/credit-card/credit-card.service.mjs +4 -4
  5. package/esm2020/lib/core/device-finger-print/device-finger-print.service.mjs +67 -0
  6. package/{esm2022 → esm2020}/lib/core/edit-saved-methods/edit-saved-methods.service.mjs +5 -5
  7. package/esm2020/lib/core/encrypt-credit-card/encrypt-credit-card.service.mjs +72 -0
  8. package/esm2020/lib/core/errors-mapping/xps-response-errors-mapping.service.mjs +52 -0
  9. package/esm2020/lib/core/exceptions-handling/elk/elk-logger.service.mjs +120 -0
  10. package/esm2020/lib/core/exceptions-handling/errors/http-error.class.mjs +40 -0
  11. package/esm2020/lib/core/exceptions-handling/errors/tagged-error.class.mjs +16 -0
  12. package/{esm2022 → esm2020}/lib/core/exceptions-handling/http-interceptor/http-exceptions.interceptor.mjs +5 -5
  13. package/esm2020/lib/core/http/secure-api/secure-api.service.mjs +55 -0
  14. package/{esm2022 → esm2020}/lib/core/legal/disclaimer.service.mjs +4 -4
  15. package/{esm2022 → esm2020}/lib/core/legal/legal.service.mjs +5 -5
  16. package/esm2020/lib/core/legal/refund-policy.service.mjs +30 -0
  17. package/esm2020/lib/core/legal/secure-connection.service.mjs +31 -0
  18. package/{esm2022 → esm2020}/lib/core/payment/actions/check-status/check-status.action.class.mjs +4 -4
  19. package/esm2020/lib/core/payment/actions/next-action.service.mjs +61 -0
  20. package/esm2020/lib/core/payment/actions/redirect/redirect.action.class.mjs +60 -0
  21. package/{esm2022 → esm2020}/lib/core/payment/actions/show-errors/show-errors.action.class.mjs +4 -4
  22. package/esm2020/lib/core/payment/actions/show-fields/show-fields.action.class.mjs +37 -0
  23. package/{esm2022 → esm2020}/lib/core/payment/actions/show-mobile-payment-screen/show-mobile-payment-screen.action.class.mjs +4 -4
  24. package/{esm2022 → esm2020}/lib/core/payment/actions/show-qr-code/show-qr-code.action.class.mjs +4 -4
  25. package/{esm2022 → esm2020}/lib/core/payment/actions/special-button/special-button.action.class.mjs +4 -4
  26. package/esm2020/lib/core/payment/actions/status-updated/status-updated.action.class.mjs +38 -0
  27. package/{esm2022 → esm2020}/lib/core/payment/actions/three-ds/three-ds.action.class.mjs +4 -4
  28. package/esm2020/lib/core/payment/config/config.service.mjs +37 -0
  29. package/{esm2022 → esm2020}/lib/core/payment/credit-card-state/credit-card-state.service.mjs +4 -4
  30. package/esm2020/lib/core/payment/finance-details/finance-details.service.mjs +38 -0
  31. package/{esm2022 → esm2020}/lib/core/payment/finance-details/status/status-finance-details-adapter.service.mjs +5 -5
  32. package/esm2020/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs +264 -0
  33. package/esm2020/lib/core/payment/form/controls/control-config.service.mjs +46 -0
  34. package/{esm2022 → esm2020}/lib/core/payment/form/converters/birth-date/birth-date.converter.mjs +5 -5
  35. package/{esm2022 → esm2020}/lib/core/payment/form/converters/card-month/card-month.converter.mjs +5 -5
  36. package/{esm2022 → esm2020}/lib/core/payment/form/converters/card-number/card-number.converter.mjs +5 -5
  37. package/{esm2022 → esm2020}/lib/core/payment/form/converters/card-year/card-year.converter.mjs +5 -5
  38. package/{esm2022 → esm2020}/lib/core/payment/form/converters/cardholder-name/cardholder-name.converter.mjs +5 -5
  39. package/esm2020/lib/core/payment/form/converters/checkbox/checkbox.converter.mjs +33 -0
  40. package/esm2020/lib/core/payment/form/converters/converter.abstract.mjs +76 -0
  41. package/{esm2022 → esm2020}/lib/core/payment/form/converters/coupon/coupon.converter.mjs +5 -5
  42. package/{esm2022 → esm2020}/lib/core/payment/form/converters/cpf-name/cpf-name.converter.mjs +5 -5
  43. package/{esm2022 → esm2020}/lib/core/payment/form/converters/cpf-number/cpf-number.converter.mjs +5 -5
  44. package/esm2020/lib/core/payment/form/converters/cvv/cvv.converter.mjs +72 -0
  45. package/{esm2022 → esm2020}/lib/core/payment/form/converters/email/email.converter.mjs +5 -5
  46. package/{esm2022 → esm2020}/lib/core/payment/form/converters/phone.converter.mjs +5 -5
  47. package/{esm2022 → esm2020}/lib/core/payment/form/converters/pin/pin.converter.mjs +5 -5
  48. package/{esm2022 → esm2020}/lib/core/payment/form/converters/pricepoint/pricepoint.converter.mjs +5 -5
  49. package/{esm2022 → esm2020}/lib/core/payment/form/converters/radio-group/radio-group.converter.mjs +5 -5
  50. package/{esm2022 → esm2020}/lib/core/payment/form/converters/select/select.converter.mjs +5 -5
  51. package/esm2020/lib/core/payment/form/converters/street-number/street-number.converter.mjs +28 -0
  52. package/{esm2022 → esm2020}/lib/core/payment/form/converters/text/text.converter.mjs +5 -5
  53. package/esm2020/lib/core/payment/form/converters/zip/zip.converter.mjs +64 -0
  54. package/{esm2022 → esm2020}/lib/core/payment/form/form.module.mjs +33 -33
  55. package/esm2020/lib/core/payment/form/form.service.mjs +49 -0
  56. package/esm2020/lib/core/payment/form/validators/birth-date/birth-date.validator.mjs +37 -0
  57. package/esm2020/lib/core/payment/form/validators/card-month/card-month.validator.mjs +37 -0
  58. package/esm2020/lib/core/payment/form/validators/card-year/card-year.validator.mjs +34 -0
  59. package/esm2020/lib/core/payment/form/validators/convert.function.mjs +15 -0
  60. package/esm2020/lib/core/payment/form/validators/credit-card-length/credit-card-min-length.validator.mjs +32 -0
  61. package/esm2020/lib/core/payment/form/validators/luhn-formula-validator/luhn-formula.validator.mjs +40 -0
  62. package/{esm2022 → esm2020}/lib/core/payment/form/validators/validators.module.mjs +5 -5
  63. package/esm2020/lib/core/payment/form-messages/form-messages.service.mjs +23 -0
  64. package/esm2020/lib/core/payment/initialize/initialize.service.mjs +85 -0
  65. package/esm2020/lib/core/payment/initialize/response/initialize-response.class.mjs +43 -0
  66. package/esm2020/lib/core/payment/payment.service.mjs +369 -0
  67. package/{esm2022 → esm2020}/lib/core/payment/status/check-status/check-status.service.mjs +6 -6
  68. package/{esm2022 → esm2020}/lib/core/payment/status/check-status/request/check-status-request.class.mjs +1 -1
  69. package/esm2020/lib/core/payment/status/listen-status/listen-status.service.mjs +124 -0
  70. package/{esm2022 → esm2020}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account-changes.service.mjs +5 -5
  71. package/esm2020/lib/core/payment/status/save-payment-method-status/save-payment-method-status.service.mjs +121 -0
  72. package/esm2020/lib/core/payment/status/status-request/request/status-request.class.mjs +22 -0
  73. package/esm2020/lib/core/payment/status/status-request/response/status-response.class.mjs +98 -0
  74. package/{esm2022 → esm2020}/lib/core/payment/status/status-request/status-request.service.mjs +6 -6
  75. package/esm2020/lib/core/payment/status/status.service.mjs +75 -0
  76. package/esm2020/lib/core/payment/status/websocket-status/websocket-status.service.mjs +76 -0
  77. package/esm2020/lib/core/payment/submit/request/submit-request.class.mjs +24 -0
  78. package/esm2020/lib/core/payment/submit/response/submit-response.class.mjs +31 -0
  79. package/esm2020/lib/core/payment/submit/submit.service.mjs +78 -0
  80. package/esm2020/lib/core/payment/sync/request/sync-request.class.mjs +31 -0
  81. package/esm2020/lib/core/payment/sync/response/sync-response.class.mjs +17 -0
  82. package/esm2020/lib/core/payment/sync/sync.service.mjs +157 -0
  83. package/esm2020/lib/core/payment/three-ds/api/notify-dfp-status/notify-dfp-status.service.mjs +49 -0
  84. package/esm2020/lib/core/payment/three-ds/api/status-three-ds/status-three-ds.service.mjs +60 -0
  85. package/esm2020/lib/core/payment/three-ds/dfp-collect/dfp-collect.service.mjs +105 -0
  86. package/esm2020/lib/core/payment/three-ds/reinsurance-check/reinsurance-check.service.mjs +41 -0
  87. package/esm2020/lib/core/payment/three-ds/three-ds-20/three-ds20.service.mjs +109 -0
  88. package/esm2020/lib/core/payment/three-ds/three-ds.service.mjs +42 -0
  89. package/esm2020/lib/core/payment/xps-api/xps-api.service.mjs +85 -0
  90. package/esm2020/lib/core/payment/xps-api-part-request.abstract.mjs +8 -0
  91. package/esm2020/lib/core/payment-methods/payment-methods.service.mjs +75 -0
  92. package/esm2020/lib/core/performance/performance.service.mjs +111 -0
  93. package/esm2020/lib/core/performance/xhr-action.service.mjs +114 -0
  94. package/esm2020/lib/core/saved-methods/saved-methods.service.mjs +54 -0
  95. package/esm2020/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +268 -0
  96. package/esm2020/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +177 -0
  97. package/esm2020/lib/core/sdk-payment-systems/payment-systems/payment-system-processing.service.mjs +84 -0
  98. package/esm2020/lib/core/session/session.service.mjs +57 -0
  99. package/esm2020/lib/core/settings/settings.service.mjs +92 -0
  100. package/esm2020/lib/core/url/url.service.mjs +34 -0
  101. package/esm2020/lib/core/user-agent/user-agent.service.mjs +211 -0
  102. package/esm2020/lib/core/user-balance/user-balance.service.mjs +53 -0
  103. package/esm2020/lib/core/user-behaviour-analytics/event-builder/event-builder.service.mjs +144 -0
  104. package/esm2020/lib/core/user-behaviour-analytics/user-behaviour-analytics.service.mjs +158 -0
  105. package/esm2020/lib/core/web-socket/centrifugo-web-socket.service.mjs +200 -0
  106. package/esm2020/lib/core/web-socket/nchan-web-socket.service.mjs +116 -0
  107. package/esm2020/lib/core/web-socket/web-socket.factory.mjs +28 -0
  108. package/esm2020/lib/core-library.module.mjs +92 -0
  109. package/{esm2022 → esm2020}/lib/core-library.service.mjs +5 -5
  110. package/{esm2022 → esm2020}/lib/shared/pipes/pipes.module.mjs +5 -5
  111. package/esm2020/lib/shared/pipes/unescape-html/unescape-html.pipe.mjs +23 -0
  112. package/fesm2015/xsolla-payment-client-core.mjs +8138 -0
  113. package/fesm2015/xsolla-payment-client-core.mjs.map +1 -0
  114. package/{fesm2022 → fesm2020}/xsolla-payment-client-core.mjs +460 -460
  115. package/fesm2020/xsolla-payment-client-core.mjs.map +1 -0
  116. package/package.json +16 -10
  117. package/xsolla-payment-client-core-0.2.21.tgz +0 -0
  118. package/esm2022/lib/core/device-finger-print/device-finger-print.service.mjs +0 -67
  119. package/esm2022/lib/core/encrypt-credit-card/encrypt-credit-card.service.mjs +0 -72
  120. package/esm2022/lib/core/errors-mapping/xps-response-errors-mapping.service.mjs +0 -52
  121. package/esm2022/lib/core/exceptions-handling/elk/elk-logger.service.mjs +0 -120
  122. package/esm2022/lib/core/exceptions-handling/errors/http-error.class.mjs +0 -40
  123. package/esm2022/lib/core/exceptions-handling/errors/tagged-error.class.mjs +0 -16
  124. package/esm2022/lib/core/http/secure-api/secure-api.service.mjs +0 -55
  125. package/esm2022/lib/core/legal/refund-policy.service.mjs +0 -30
  126. package/esm2022/lib/core/legal/secure-connection.service.mjs +0 -31
  127. package/esm2022/lib/core/payment/actions/next-action.service.mjs +0 -61
  128. package/esm2022/lib/core/payment/actions/redirect/redirect.action.class.mjs +0 -60
  129. package/esm2022/lib/core/payment/actions/show-fields/show-fields.action.class.mjs +0 -34
  130. package/esm2022/lib/core/payment/actions/status-updated/status-updated.action.class.mjs +0 -38
  131. package/esm2022/lib/core/payment/config/config.service.mjs +0 -37
  132. package/esm2022/lib/core/payment/finance-details/finance-details.service.mjs +0 -38
  133. package/esm2022/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs +0 -264
  134. package/esm2022/lib/core/payment/form/controls/control-config.service.mjs +0 -46
  135. package/esm2022/lib/core/payment/form/converters/checkbox/checkbox.converter.mjs +0 -33
  136. package/esm2022/lib/core/payment/form/converters/converter.abstract.mjs +0 -76
  137. package/esm2022/lib/core/payment/form/converters/cvv/cvv.converter.mjs +0 -72
  138. package/esm2022/lib/core/payment/form/converters/street-number/street-number.converter.mjs +0 -28
  139. package/esm2022/lib/core/payment/form/converters/zip/zip.converter.mjs +0 -64
  140. package/esm2022/lib/core/payment/form/form.service.mjs +0 -49
  141. package/esm2022/lib/core/payment/form/validators/birth-date/birth-date.validator.mjs +0 -37
  142. package/esm2022/lib/core/payment/form/validators/card-month/card-month.validator.mjs +0 -37
  143. package/esm2022/lib/core/payment/form/validators/card-year/card-year.validator.mjs +0 -34
  144. package/esm2022/lib/core/payment/form/validators/convert.function.mjs +0 -15
  145. package/esm2022/lib/core/payment/form/validators/credit-card-length/credit-card-min-length.validator.mjs +0 -32
  146. package/esm2022/lib/core/payment/form/validators/luhn-formula-validator/luhn-formula.validator.mjs +0 -40
  147. package/esm2022/lib/core/payment/form-messages/form-messages.service.mjs +0 -26
  148. package/esm2022/lib/core/payment/initialize/initialize.service.mjs +0 -85
  149. package/esm2022/lib/core/payment/initialize/response/initialize-response.class.mjs +0 -43
  150. package/esm2022/lib/core/payment/payment.service.mjs +0 -369
  151. package/esm2022/lib/core/payment/status/listen-status/listen-status.service.mjs +0 -124
  152. package/esm2022/lib/core/payment/status/save-payment-method-status/save-payment-method-status.service.mjs +0 -121
  153. package/esm2022/lib/core/payment/status/status-request/request/status-request.class.mjs +0 -22
  154. package/esm2022/lib/core/payment/status/status-request/response/status-response.class.mjs +0 -98
  155. package/esm2022/lib/core/payment/status/status.service.mjs +0 -75
  156. package/esm2022/lib/core/payment/status/websocket-status/websocket-status.service.mjs +0 -76
  157. package/esm2022/lib/core/payment/submit/request/submit-request.class.mjs +0 -24
  158. package/esm2022/lib/core/payment/submit/response/submit-response.class.mjs +0 -31
  159. package/esm2022/lib/core/payment/submit/submit.service.mjs +0 -78
  160. package/esm2022/lib/core/payment/sync/request/sync-request.class.mjs +0 -31
  161. package/esm2022/lib/core/payment/sync/response/sync-response.class.mjs +0 -17
  162. package/esm2022/lib/core/payment/sync/sync.service.mjs +0 -157
  163. package/esm2022/lib/core/payment/three-ds/api/notify-dfp-status/notify-dfp-status.service.mjs +0 -49
  164. package/esm2022/lib/core/payment/three-ds/api/status-three-ds/status-three-ds.service.mjs +0 -60
  165. package/esm2022/lib/core/payment/three-ds/dfp-collect/dfp-collect.service.mjs +0 -105
  166. package/esm2022/lib/core/payment/three-ds/reinsurance-check/reinsurance-check.service.mjs +0 -41
  167. package/esm2022/lib/core/payment/three-ds/three-ds-20/three-ds20.service.mjs +0 -109
  168. package/esm2022/lib/core/payment/three-ds/three-ds.service.mjs +0 -42
  169. package/esm2022/lib/core/payment/xps-api/xps-api.service.mjs +0 -85
  170. package/esm2022/lib/core/payment/xps-api-part-request.abstract.mjs +0 -8
  171. package/esm2022/lib/core/payment-methods/payment-methods.service.mjs +0 -75
  172. package/esm2022/lib/core/performance/performance.service.mjs +0 -111
  173. package/esm2022/lib/core/performance/xhr-action.service.mjs +0 -114
  174. package/esm2022/lib/core/saved-methods/saved-methods.service.mjs +0 -54
  175. package/esm2022/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +0 -268
  176. package/esm2022/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +0 -177
  177. package/esm2022/lib/core/sdk-payment-systems/payment-systems/payment-system-processing.service.mjs +0 -84
  178. package/esm2022/lib/core/session/session.service.mjs +0 -57
  179. package/esm2022/lib/core/settings/settings.service.mjs +0 -92
  180. package/esm2022/lib/core/url/url.service.mjs +0 -34
  181. package/esm2022/lib/core/user-agent/user-agent.service.mjs +0 -211
  182. package/esm2022/lib/core/user-balance/user-balance.service.mjs +0 -53
  183. package/esm2022/lib/core/user-behaviour-analytics/event-builder/event-builder.service.mjs +0 -144
  184. package/esm2022/lib/core/user-behaviour-analytics/user-behaviour-analytics.service.mjs +0 -158
  185. package/esm2022/lib/core/web-socket/centrifugo-web-socket.service.mjs +0 -200
  186. package/esm2022/lib/core/web-socket/nchan-web-socket.service.mjs +0 -116
  187. package/esm2022/lib/core/web-socket/web-socket.factory.mjs +0 -28
  188. package/esm2022/lib/core-library.module.mjs +0 -92
  189. package/esm2022/lib/shared/pipes/unescape-html/unescape-html.pipe.mjs +0 -23
  190. package/fesm2022/xsolla-payment-client-core.mjs.map +0 -1
  191. package/xsolla-payment-client-core-0.2.20.tgz +0 -0
  192. /package/{esm2022 → esm2020}/lib/core/agreementsGroup.const.mjs +0 -0
  193. /package/{esm2022 → esm2020}/lib/core/boolean-number.enum.mjs +0 -0
  194. /package/{esm2022 → esm2020}/lib/core/combined-payment-methods/combined-payment-methods.interface.mjs +0 -0
  195. /package/{esm2022 → esm2020}/lib/core/countries-api/country-response.interface.mjs +0 -0
  196. /package/{esm2022 → esm2020}/lib/core/countries-api/country.interface.mjs +0 -0
  197. /package/{esm2022 → esm2020}/lib/core/country/country-iso-code.enum.mjs +0 -0
  198. /package/{esm2022 → esm2020}/lib/core/credit-card/credit-card-settings.interface.mjs +0 -0
  199. /package/{esm2022 → esm2020}/lib/core/credit-card/credit-card-types.enum.mjs +0 -0
  200. /package/{esm2022 → esm2020}/lib/core/credit-card/credit-card.interface.mjs +0 -0
  201. /package/{esm2022 → esm2020}/lib/core/credit-card/credit-cards-map.const.mjs +0 -0
  202. /package/{esm2022 → esm2020}/lib/core/credit-card/default-mask.const.mjs +0 -0
  203. /package/{esm2022 → esm2020}/lib/core/credit-card/four-block-mask.const.mjs +0 -0
  204. /package/{esm2022 → esm2020}/lib/core/credit-card/ordered-cards-settings.const.mjs +0 -0
  205. /package/{esm2022 → esm2020}/lib/core/credit-card/types/american-express.mjs +0 -0
  206. /package/{esm2022 → esm2020}/lib/core/credit-card/types/aura.mjs +0 -0
  207. /package/{esm2022 → esm2020}/lib/core/credit-card/types/china-union-pay.mjs +0 -0
  208. /package/{esm2022 → esm2020}/lib/core/credit-card/types/dankort.mjs +0 -0
  209. /package/{esm2022 → esm2020}/lib/core/credit-card/types/default-card.mjs +0 -0
  210. /package/{esm2022 → esm2020}/lib/core/credit-card/types/diners-clubs.mjs +0 -0
  211. /package/{esm2022 → esm2020}/lib/core/credit-card/types/discover.mjs +0 -0
  212. /package/{esm2022 → esm2020}/lib/core/credit-card/types/elo.mjs +0 -0
  213. /package/{esm2022 → esm2020}/lib/core/credit-card/types/hipercard.mjs +0 -0
  214. /package/{esm2022 → esm2020}/lib/core/credit-card/types/jcb.mjs +0 -0
  215. /package/{esm2022 → esm2020}/lib/core/credit-card/types/maestro.mjs +0 -0
  216. /package/{esm2022 → esm2020}/lib/core/credit-card/types/mastercard.mjs +0 -0
  217. /package/{esm2022 → esm2020}/lib/core/credit-card/types/mir.mjs +0 -0
  218. /package/{esm2022 → esm2020}/lib/core/credit-card/types/naranja.mjs +0 -0
  219. /package/{esm2022 → esm2020}/lib/core/credit-card/types/postepay.mjs +0 -0
  220. /package/{esm2022 → esm2020}/lib/core/credit-card/types/visa.mjs +0 -0
  221. /package/{esm2022 → esm2020}/lib/core/deep-readonly.type.mjs +0 -0
  222. /package/{esm2022 → esm2020}/lib/core/device-finger-print/hash.type.mjs +0 -0
  223. /package/{esm2022 → esm2020}/lib/core/edit-saved-methods/delete-method-response.interface.mjs +0 -0
  224. /package/{esm2022 → esm2020}/lib/core/encrypt-credit-card/encrypted-card.interface.mjs +0 -0
  225. /package/{esm2022 → esm2020}/lib/core/encrypt-credit-card/open-card.interface.mjs +0 -0
  226. /package/{esm2022 → esm2020}/lib/core/errors-mapping/card-number-sanction-error-codes.const.mjs +0 -0
  227. /package/{esm2022 → esm2020}/lib/core/errors-mapping/field-special-errors-map.const.mjs +0 -0
  228. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/elk/additional-info.interface.mjs +0 -0
  229. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/elk/error-without-meta-fields.interface.mjs +0 -0
  230. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/elk/log-message.interface.mjs +0 -0
  231. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/api-error.interface.mjs +0 -0
  232. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/app-error.class.mjs +0 -0
  233. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/elk-error-types.enum.mjs +0 -0
  234. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/encrypt-card-error.mjs +0 -0
  235. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/response-error.class.mjs +0 -0
  236. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/terminal-error.class.mjs +0 -0
  237. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/token-error.class.mjs +0 -0
  238. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/ws-error.class.mjs +0 -0
  239. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/http-interceptor/http-error-data.interface.mjs +0 -0
  240. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/http-interceptor/http-error-response-data.interface.mjs +0 -0
  241. /package/{esm2022 → esm2020}/lib/core/extended-window.interface.mjs +0 -0
  242. /package/{esm2022 → esm2020}/lib/core/http/secure-api/api-url.const.mjs +0 -0
  243. /package/{esm2022 → esm2020}/lib/core/http/secure-api/options.interface.mjs +0 -0
  244. /package/{esm2022 → esm2020}/lib/core/legal/legal.component.config.mjs +0 -0
  245. /package/{esm2022 → esm2020}/lib/core/payment/actions/action.interface.mjs +0 -0
  246. /package/{esm2022 → esm2020}/lib/core/payment/actions/check-status/check-status.action.type.mjs +0 -0
  247. /package/{esm2022 → esm2020}/lib/core/payment/actions/next-action.interface.mjs +0 -0
  248. /package/{esm2022 → esm2020}/lib/core/payment/actions/next-actions.mjs +0 -0
  249. /package/{esm2022 → esm2020}/lib/core/payment/actions/redirect/pay-station4-url.const.mjs +0 -0
  250. /package/{esm2022 → esm2020}/lib/core/payment/actions/redirect/ps4-pages/pages-payment-methods-id.const.mjs +0 -0
  251. /package/{esm2022 → esm2020}/lib/core/payment/actions/redirect/ps4-pages/pages-routes.const.mjs +0 -0
  252. /package/{esm2022 → esm2020}/lib/core/payment/actions/redirect/redirect.action.type.mjs +0 -0
  253. /package/{esm2022 → esm2020}/lib/core/payment/actions/show-errors/show-errors.action.type.mjs +0 -0
  254. /package/{esm2022 → esm2020}/lib/core/payment/actions/show-fields/show-fields.action.type.mjs +0 -0
  255. /package/{esm2022 → esm2020}/lib/core/payment/actions/show-mobile-payment-screen/show-mobile-payment-screen.action.type.mjs +0 -0
  256. /package/{esm2022 → esm2020}/lib/core/payment/actions/show-qr-code/show-qr-code.action.type.mjs +0 -0
  257. /package/{esm2022 → esm2020}/lib/core/payment/actions/special-button/special-button.action.type.mjs +0 -0
  258. /package/{esm2022 → esm2020}/lib/core/payment/actions/status-updated/status-updated.action.type.mjs +0 -0
  259. /package/{esm2022 → esm2020}/lib/core/payment/actions/three-ds/three-ds.action.type.mjs +0 -0
  260. /package/{esm2022 → esm2020}/lib/core/payment/checkout-item.interface.mjs +0 -0
  261. /package/{esm2022 → esm2020}/lib/core/payment/credit-card-payment-methods-id.variable.mjs +0 -0
  262. /package/{esm2022 → esm2020}/lib/core/payment/credit-card-state/credit-card-state.interface.mjs +0 -0
  263. /package/{esm2022 → esm2020}/lib/core/payment/emit-data.service.abstract.mjs +0 -0
  264. /package/{esm2022 → esm2020}/lib/core/payment/field-names.enum.mjs +0 -0
  265. /package/{esm2022 → esm2020}/lib/core/payment/field.interface.mjs +0 -0
  266. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/cart-item.interface.mjs +0 -0
  267. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/cart-line.interface.mjs +0 -0
  268. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/cart-summary.interface.mjs +0 -0
  269. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/finance-details.interface.mjs +0 -0
  270. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/price.helpers.mjs +0 -0
  271. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/price.interface.mjs +0 -0
  272. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/status/field-with-amount-and-currency.interface.mjs +0 -0
  273. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/status/fields-with-currency.mjs +0 -0
  274. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/status/finance-info.interface.mjs +0 -0
  275. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/summary/default-image-patterns.const.mjs +0 -0
  276. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/summary/sales-tax-details-key.enum.mjs +0 -0
  277. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/vat-details-key.enum.mjs +0 -0
  278. /package/{esm2022 → esm2020}/lib/core/payment/form/common-control-config.interface.mjs +0 -0
  279. /package/{esm2022 → esm2020}/lib/core/payment/form/control-status.interface.mjs +0 -0
  280. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/card-number/card-number-control.config.mjs +0 -0
  281. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/checkbox/checkbox-control.config.mjs +0 -0
  282. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/control-config.mjs +0 -0
  283. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/control-type.type.mjs +0 -0
  284. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/coupon/coupon-control.config.mjs +0 -0
  285. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/phone-control.config.mjs +0 -0
  286. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/radio-control/radio-control.config.mjs +0 -0
  287. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/radio-control/radio-option.interface.mjs +0 -0
  288. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/search-select/search-select-option.interface.mjs +0 -0
  289. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/search-select/select-control.config.mjs +0 -0
  290. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/search-select/select-option.interface.mjs +0 -0
  291. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/text-control.config.mjs +0 -0
  292. /package/{esm2022 → esm2020}/lib/core/payment/form/converters/converters-map.interface.mjs +0 -0
  293. /package/{esm2022 → esm2020}/lib/core/payment/form/converters/converters-map.mjs +0 -0
  294. /package/{esm2022 → esm2020}/lib/core/payment/form/converters/cpf-name/cpf-name-regex.variable.mjs +0 -0
  295. /package/{esm2022 → esm2020}/lib/core/payment/form/converters/cvv/cvv-form-state.interface.mjs +0 -0
  296. /package/{esm2022 → esm2020}/lib/core/payment/form/converters/street-number/street-number-from-state.interface.mjs +0 -0
  297. /package/{esm2022 → esm2020}/lib/core/payment/form/field-form-states.interface.mjs +0 -0
  298. /package/{esm2022 → esm2020}/lib/core/payment/form/field-status.interface.mjs +0 -0
  299. /package/{esm2022 → esm2020}/lib/core/payment/form/form-fields-status.interface.mjs +0 -0
  300. /package/{esm2022 → esm2020}/lib/core/payment/form/form-state.interface.mjs +0 -0
  301. /package/{esm2022 → esm2020}/lib/core/payment/form/input-event.enum.mjs +0 -0
  302. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/async-validator-fn.type.mjs +0 -0
  303. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/coupon/coupon-validator.mjs +0 -0
  304. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/email/email-validator.mjs +0 -0
  305. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/is-empty-input-value.function.mjs +0 -0
  306. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/max-length-validator.mjs +0 -0
  307. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/min-length-validator.mjs +0 -0
  308. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/phone-validator.mjs +0 -0
  309. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/required/required.validator.mjs +0 -0
  310. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/restricted-value/restricted-value.validator.mjs +0 -0
  311. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/validation-error.interface.mjs +0 -0
  312. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/validation-errors.interface.mjs +0 -0
  313. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/validator-fn.type.mjs +0 -0
  314. /package/{esm2022 → esm2020}/lib/core/payment/form-response.interface.mjs +0 -0
  315. /package/{esm2022 → esm2020}/lib/core/payment/initialize/initialize-request-params.interface.mjs +0 -0
  316. /package/{esm2022 → esm2020}/lib/core/payment/initialize/response/initialize-response.token.mjs +0 -0
  317. /package/{esm2022 → esm2020}/lib/core/payment/invoice.interface.mjs +0 -0
  318. /package/{esm2022 → esm2020}/lib/core/payment/payment-config.interface.mjs +0 -0
  319. /package/{esm2022 → esm2020}/lib/core/payment/payment-form.interface.mjs +0 -0
  320. /package/{esm2022 → esm2020}/lib/core/payment/payment.interface.mjs +0 -0
  321. /package/{esm2022 → esm2020}/lib/core/payment/status/check-status/request/check-status-request.token.mjs +0 -0
  322. /package/{esm2022 → esm2020}/lib/core/payment/status/check-status/response/check-status-response.class.mjs +0 -0
  323. /package/{esm2022 → esm2020}/lib/core/payment/status/check-status/response/check-status-response.token.mjs +0 -0
  324. /package/{esm2022 → esm2020}/lib/core/payment/status/finance-info-field.interface.mjs +0 -0
  325. /package/{esm2022 → esm2020}/lib/core/payment/status/line-item.interface.mjs +0 -0
  326. /package/{esm2022 → esm2020}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account-changes.interface.mjs +0 -0
  327. /package/{esm2022 → esm2020}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account.interface.mjs +0 -0
  328. /package/{esm2022 → esm2020}/lib/core/payment/status/save-payment-method-status/save-payment-method-status.enum.mjs +0 -0
  329. /package/{esm2022 → esm2020}/lib/core/payment/status/status-finance-info.interface.mjs +0 -0
  330. /package/{esm2022 → esm2020}/lib/core/payment/status/status-groups.mjs +0 -0
  331. /package/{esm2022 → esm2020}/lib/core/payment/status/status-order.interface.mjs +0 -0
  332. /package/{esm2022 → esm2020}/lib/core/payment/status/status-request/request/status-request.token.mjs +0 -0
  333. /package/{esm2022 → esm2020}/lib/core/payment/status/status-request/required-status-search-params.const.mjs +0 -0
  334. /package/{esm2022 → esm2020}/lib/core/payment/status/status-request/response/status-response.token.mjs +0 -0
  335. /package/{esm2022 → esm2020}/lib/core/payment/status/status-request/status-request-params.interface.mjs +0 -0
  336. /package/{esm2022 → esm2020}/lib/core/payment/status/status-request/status-search-param.enum.mjs +0 -0
  337. /package/{esm2022 → esm2020}/lib/core/payment/status/status-request/status-search-params.map.mjs +0 -0
  338. /package/{esm2022 → esm2020}/lib/core/payment/status/status-settings.interface.mjs +0 -0
  339. /package/{esm2022 → esm2020}/lib/core/payment/status/status-updated.interface.mjs +0 -0
  340. /package/{esm2022 → esm2020}/lib/core/payment/status/status.enum.mjs +0 -0
  341. /package/{esm2022 → esm2020}/lib/core/payment/status/status.interface.mjs +0 -0
  342. /package/{esm2022 → esm2020}/lib/core/payment/status/title-class.enum.mjs +0 -0
  343. /package/{esm2022 → esm2020}/lib/core/payment/status/web-socket-client-type.enum.mjs +0 -0
  344. /package/{esm2022 → esm2020}/lib/core/payment/status/websocket-status/websocket-status.enum.mjs +0 -0
  345. /package/{esm2022 → esm2020}/lib/core/payment/submit/request/submit-request.token.mjs +0 -0
  346. /package/{esm2022 → esm2020}/lib/core/payment/submit/response/is-submit-response.function.mjs +0 -0
  347. /package/{esm2022 → esm2020}/lib/core/payment/submit/response/submit-response.token.mjs +0 -0
  348. /package/{esm2022 → esm2020}/lib/core/payment/sync/field-async-validation.interface.mjs +0 -0
  349. /package/{esm2022 → esm2020}/lib/core/payment/sync/field-sync-state.interface.mjs +0 -0
  350. /package/{esm2022 → esm2020}/lib/core/payment/sync/request/sync-request.token.mjs +0 -0
  351. /package/{esm2022 → esm2020}/lib/core/payment/sync/response/sync-response.token.mjs +0 -0
  352. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/notify-dfp-status/request/notify-dfp-status-request.class.mjs +0 -0
  353. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/notify-dfp-status/request/notify-dfp-status-request.token.mjs +0 -0
  354. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/status-three-ds/request/status-three-ds-request.class.mjs +0 -0
  355. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/status-three-ds/request/status-three-ds-request.token.mjs +0 -0
  356. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/status-three-ds/response/status-three-ds-response.class.mjs +0 -0
  357. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/status-three-ds/response/status-three-ds-response.token.mjs +0 -0
  358. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/status-three-ds/status-three-ds-response.interface.mjs +0 -0
  359. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/status-three-ds/status-types.enum.mjs +0 -0
  360. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/status-three-ds/three-ds-checkout-form.interface.mjs +0 -0
  361. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/reinsurance-check/timer.interface.mjs +0 -0
  362. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/three-ds-20/status-update.interface.mjs +0 -0
  363. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/three-ds-form.interface.mjs +0 -0
  364. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/three-ds-status-websocket-types.enum.mjs +0 -0
  365. /package/{esm2022 → esm2020}/lib/core/payment/virtual-currency.interface.mjs +0 -0
  366. /package/{esm2022 → esm2020}/lib/core/payment/xps-api-part.abstract.mjs +0 -0
  367. /package/{esm2022 → esm2020}/lib/core/payment/xps-checkout.mjs +0 -0
  368. /package/{esm2022 → esm2020}/lib/core/payment/xps-comand.enum.mjs +0 -0
  369. /package/{esm2022 → esm2020}/lib/core/payment/xps-error.interface.mjs +0 -0
  370. /package/{esm2022 → esm2020}/lib/core/payment/xps-finance.interface.mjs +0 -0
  371. /package/{esm2022 → esm2020}/lib/core/payment/xps-message.interface.mjs +0 -0
  372. /package/{esm2022 → esm2020}/lib/core/payment/xps-purchase.interface.mjs +0 -0
  373. /package/{esm2022 → esm2020}/lib/core/payment/xps-request-params.interface.mjs +0 -0
  374. /package/{esm2022 → esm2020}/lib/core/payment/xps-request.interface.mjs +0 -0
  375. /package/{esm2022 → esm2020}/lib/core/payment/xps-response.error.mjs +0 -0
  376. /package/{esm2022 → esm2020}/lib/core/payment/xps-response.interface.mjs +0 -0
  377. /package/{esm2022 → esm2020}/lib/core/payment/xps-summary.interface.mjs +0 -0
  378. /package/{esm2022 → esm2020}/lib/core/payment-methods/payment-method-api.interface.mjs +0 -0
  379. /package/{esm2022 → esm2020}/lib/core/payment-methods/payment-method.interface.mjs +0 -0
  380. /package/{esm2022 → esm2020}/lib/core/payment-methods/payment-methods-api.interface.mjs +0 -0
  381. /package/{esm2022 → esm2020}/lib/core/payment-methods/payment-methods-request-params.interface.mjs +0 -0
  382. /package/{esm2022 → esm2020}/lib/core/payment-methods/payment-methods-response.class.mjs +0 -0
  383. /package/{esm2022 → esm2020}/lib/core/payment-methods/payment-methods-response.interface.mjs +0 -0
  384. /package/{esm2022 → esm2020}/lib/core/payment-methods/payment-methods-response.token.mjs +0 -0
  385. /package/{esm2022 → esm2020}/lib/core/performance/xhr-action.interface.mjs +0 -0
  386. /package/{esm2022 → esm2020}/lib/core/properties.type.mjs +0 -0
  387. /package/{esm2022 → esm2020}/lib/core/saved-methods/saved-method-api.interface.mjs +0 -0
  388. /package/{esm2022 → esm2020}/lib/core/saved-methods/saved-method.interface.mjs +0 -0
  389. /package/{esm2022 → esm2020}/lib/core/saved-methods/saved-methods-request-params.interface.mjs +0 -0
  390. /package/{esm2022 → esm2020}/lib/core/saved-methods/saved-methods-response.class.mjs +0 -0
  391. /package/{esm2022 → esm2020}/lib/core/saved-methods/saved-methods-response.interface.mjs +0 -0
  392. /package/{esm2022 → esm2020}/lib/core/saved-methods/saved-methods-response.token.mjs +0 -0
  393. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/apple-pay/apple-pay-integration.type.mjs +0 -0
  394. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/apple-pay/apple-pay-params.interface.mjs +0 -0
  395. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/apple-pay/apple-pay.const.mjs +0 -0
  396. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/apple-pay/apple-pay.errors.enum.mjs +0 -0
  397. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/apple-pay/checkout-params.interface.mjs +0 -0
  398. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/google-pay/google-pay-button-color.type.mjs +0 -0
  399. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/google-pay/google-pay-checkout.interface.mjs +0 -0
  400. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/google-pay/google-pay-init-params.interface.mjs +0 -0
  401. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/google-pay/google-pay-library.interface.mjs +0 -0
  402. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/sdk-payment-methods.const.mjs +0 -0
  403. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/sdk-payment-systems-initial-data.interface.mjs +0 -0
  404. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/sdk-payment-systems.interface.mjs +0 -0
  405. /package/{esm2022 → esm2020}/lib/core/settings/auto-redirect-on-status.mjs +0 -0
  406. /package/{esm2022 → esm2020}/lib/core/settings/balance.interface.mjs +0 -0
  407. /package/{esm2022 → esm2020}/lib/core/settings/bonus.interface.mjs +0 -0
  408. /package/{esm2022 → esm2020}/lib/core/settings/configuration.interface.mjs +0 -0
  409. /package/{esm2022 → esm2020}/lib/core/settings/empty-utils-response.error.mjs +0 -0
  410. /package/{esm2022 → esm2020}/lib/core/settings/header-type.enum.mjs +0 -0
  411. /package/{esm2022 → esm2020}/lib/core/settings/offer.interface.mjs +0 -0
  412. /package/{esm2022 → esm2020}/lib/core/settings/project.interface.mjs +0 -0
  413. /package/{esm2022 → esm2020}/lib/core/settings/purchase.interface.mjs +0 -0
  414. /package/{esm2022 → esm2020}/lib/core/settings/settings-mode.enum.mjs +0 -0
  415. /package/{esm2022 → esm2020}/lib/core/settings/settings.interface.mjs +0 -0
  416. /package/{esm2022 → esm2020}/lib/core/settings/status-back-show.mjs +0 -0
  417. /package/{esm2022 → esm2020}/lib/core/settings/tracking-info.interface.mjs +0 -0
  418. /package/{esm2022 → esm2020}/lib/core/settings/user.interface.mjs +0 -0
  419. /package/{esm2022 → esm2020}/lib/core/settings/utils-response.interface.mjs +0 -0
  420. /package/{esm2022 → esm2020}/lib/core/type-guards/is-null.function.mjs +0 -0
  421. /package/{esm2022 → esm2020}/lib/core/type-guards/is-string.function.mjs +0 -0
  422. /package/{esm2022 → esm2020}/lib/core/type-guards/is-undefined.function.mjs +0 -0
  423. /package/{esm2022 → esm2020}/lib/core/url/search-params.interface.mjs +0 -0
  424. /package/{esm2022 → esm2020}/lib/core/user-agent/browserInfo.interface.mjs +0 -0
  425. /package/{esm2022 → esm2020}/lib/core/user-agent/browsers.mjs +0 -0
  426. /package/{esm2022 → esm2020}/lib/core/user-agent/device.enum.mjs +0 -0
  427. /package/{esm2022 → esm2020}/lib/core/user-agent/os.mjs +0 -0
  428. /package/{esm2022 → esm2020}/lib/core/user-agent/user-agent-data.interface.mjs +0 -0
  429. /package/{esm2022 → esm2020}/lib/core/user-balance/user-balance-api.interface.mjs +0 -0
  430. /package/{esm2022 → esm2020}/lib/core/user-balance/user-balance-request-params.interface.mjs +0 -0
  431. /package/{esm2022 → esm2020}/lib/core/user-balance/user-balance-response.class.mjs +0 -0
  432. /package/{esm2022 → esm2020}/lib/core/user-balance/user-balance-response.token.mjs +0 -0
  433. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/event-builder/event-parameter-types.mjs +0 -0
  434. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/event-builder/invoice.interface.mjs +0 -0
  435. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/event-builder/purchase.type.mjs +0 -0
  436. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/event-builder/user-behaviour-event.interface.mjs +0 -0
  437. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/one-time-analytics-events.const.mjs +0 -0
  438. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/user-behaviour-analytics.interface.mjs +0 -0
  439. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-categories.mjs +0 -0
  440. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types.mjs +0 -0
  441. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/user-behaviour-event-name.enum.mjs +0 -0
  442. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/user-session-options.mjs +0 -0
  443. /package/{esm2022 → esm2020}/lib/core/web-socket/web-socket-client-type.enum.mjs +0 -0
  444. /package/{esm2022 → esm2020}/lib/core/web-socket/web-socket.interface.mjs +0 -0
  445. /package/{esm2022 → esm2020}/lib/core/window.token.mjs +0 -0
  446. /package/{esm2022 → esm2020}/lib/core/xps-boolean.enum.mjs +0 -0
  447. /package/{esm2022 → esm2020}/public-api.mjs +0 -0
  448. /package/{esm2022 → esm2020}/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
+ }
67
+ StatusService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", 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 });
68
+ StatusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: StatusService, providedIn: 'root' });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: StatusService, decorators: [{
70
+ type: Injectable,
71
+ args: [{
72
+ providedIn: 'root',
73
+ }]
74
+ }], ctorParameters: function () { return [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L3N0YXR1cy9zdGF0dXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUXhELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7QUFTbEYsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFDbUIsVUFBc0IsRUFDdEIsb0JBQTBDLEVBQzFDLHFCQUE0QyxFQUM1QyxtQkFBd0MsRUFDeEMsaUJBQW9DLEVBQ3BDLDhCQUE4RCxFQUM5RCwwQkFBc0Q7UUFOdEQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFDOUQsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtJQUN0RSxDQUFDO0lBRUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUEyQjtRQUNoRCxNQUFNLHVCQUF1QixHQUMzQixNQUFNLEVBQUUsb0JBQW9CLDhCQUFvQixDQUFDO1FBQ25ELElBQUksdUJBQXVCLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzlEO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXBDLE1BQU0sY0FBYyxHQUFHLE1BQU0sY0FBYyxDQUN6QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUNwQyxDQUFDO1FBRUYsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakUsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFTSxLQUFLLENBQUMsNEJBQTRCLENBQUMsR0FBWTtRQUNwRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDNUQ7UUFFRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLE9BQWU7UUFDdEMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxHQUFZO1FBQzFDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoRSxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFFaEQsSUFDRSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUN4RTtZQUNBLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLE1BQU0sR0FBdUMsRUFBRSxDQUFDO1FBQ3RELHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM5QyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQXdDLENBQUM7SUFDbEQsQ0FBQztJQUVPLHlCQUF5QixDQUFDLE9BQWU7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYzthQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLENBQUMsRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRWpFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQ3BDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxhQUFhLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUNsRSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzswR0E3RVUsYUFBYTs4R0FBYixhQUFhLGNBRlosTUFBTTsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlLCBza2lwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdGF0dXNSZXF1ZXN0U2VydmljZSB9IGZyb20gJy4vc3RhdHVzLXJlcXVlc3Qvc3RhdHVzLXJlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXNSZXF1ZXN0UGFyYW1zIH0gZnJvbSAnLi9zdGF0dXMtcmVxdWVzdC9zdGF0dXMtcmVxdWVzdC1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IExpc3RlblN0YXR1c1NlcnZpY2UgfSBmcm9tICcuL2xpc3Rlbi1zdGF0dXMvbGlzdGVuLXN0YXR1cy5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJy4vc3RhdHVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2FjdGlvbnMvbmV4dC1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXNVcGRhdGVkQWN0aW9uQ3JlYXRvciB9IGZyb20gJy4uL2FjdGlvbnMvc3RhdHVzLXVwZGF0ZWQvc3RhdHVzLXVwZGF0ZWQuYWN0aW9uLmNsYXNzJztcbmltcG9ydCB7IFVybFNlcnZpY2UgfSBmcm9tICcuLi8uLi91cmwvdXJsLnNlcnZpY2UnO1xuaW1wb3J0IHsgcmVxdWlyZWRTdGF0dXNTZWFyY2hQYXJhbXMgfSBmcm9tICcuL3N0YXR1cy1yZXF1ZXN0L3JlcXVpcmVkLXN0YXR1cy1zZWFyY2gtcGFyYW1zLmNvbnN0JztcbmltcG9ydCB7IHN0YXR1c1NlYXJjaFBhcmFtc01hcCB9IGZyb20gJy4vc3RhdHVzLXJlcXVlc3Qvc3RhdHVzLXNlYXJjaC1wYXJhbXMubWFwJztcbmltcG9ydCB7IEZpbmFuY2VEZXRhaWxzU2VydmljZSB9IGZyb20gJy4uL2ZpbmFuY2UtZGV0YWlscy9maW5hbmNlLWRldGFpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBTYXZlUGF5bWVudE1ldGhvZFN0YXR1c1NlcnZpY2UgfSBmcm9tICcuL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzL3NhdmUtcGF5bWVudC1tZXRob2Qtc3RhdHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgWHBzQm9vbGVhbiB9IGZyb20gJy4uLy4uL3hwcy1ib29sZWFuLmVudW0nO1xuaW1wb3J0IHsgU3RhdHVzU2V0dGluZ3MgfSBmcm9tICcuL3N0YXR1cy1zZXR0aW5ncy5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU3RhdHVzU2VydmljZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybFNlcnZpY2U6IFVybFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNSZXF1ZXN0U2VydmljZTogU3RhdHVzUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaW5hbmNlRGV0YWlsc1NlcnZpY2U6IEZpbmFuY2VEZXRhaWxzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpc3RlblN0YXR1c1NlcnZpY2U6IExpc3RlblN0YXR1c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXh0QWN0aW9uU2VydmljZTogTmV4dEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzYXZlUGF5bWVudE1ldGhvZFN0YXR1c1NlcnZpY2U6IFNhdmVQYXltZW50TWV0aG9kU3RhdHVzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c1VwZGF0ZWRBY3Rpb25DcmVhdG9yOiBTdGF0dXNVcGRhdGVkQWN0aW9uQ3JlYXRvclxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGdldFN0YXR1cyhwYXJhbXM6IFN0YXR1c1JlcXVlc3RQYXJhbXMpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGNvbnN0IGlzU2F2ZVBheW1lbnRNZXRob2RNb2RlID1cbiAgICAgIHBhcmFtcz8uaXNTYXZlUGF5bWVudEFjY291bnQgPT09IFhwc0Jvb2xlYW4udHJ1ZTtcbiAgICBpZiAoaXNTYXZlUGF5bWVudE1ldGhvZE1vZGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnNhdmVQYXltZW50TWV0aG9kU3RhdHVzU2VydmljZS5nZXRTdGF0dXMocGFyYW1zKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXR1c1JlcXVlc3RTZXJ2aWNlLnNldFJlcXVlc3RQYXJhbXMocGFyYW1zKTtcblxuICAgIHRoaXMuc3RhcnRXYWl0aW5nU3RhdHVzVXBkYXRlcyhwYXJhbXMuaW52b2ljZSk7XG5cbiAgICB0aGlzLnN0YXR1c1JlcXVlc3RTZXJ2aWNlLnJlcXVlc3QoKTtcblxuICAgIGNvbnN0IHN0YXR1c1Jlc3BvbnNlID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLnN0YXR1c1JlcXVlc3RTZXJ2aWNlLnJlc3BvbnNlJFxuICAgICk7XG5cbiAgICB0aGlzLmZpbmFuY2VEZXRhaWxzU2VydmljZS5lbWl0V2l0aFN0YXR1cyhzdGF0dXNSZXNwb25zZS5zdGF0dXMpO1xuXG4gICAgcmV0dXJuIHN0YXR1c1Jlc3BvbnNlLnN0YXR1cztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRTdGF0dXNXaXRoVXJsU2VhcmNoUGFyYW1zKHVybD86IHN0cmluZyk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gdGhpcy5nZXRSZXF1ZXN0UGFyYW1zRnJvbVVybCh1cmwpO1xuXG4gICAgaWYgKCFzZWFyY2hQYXJhbXMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcmVxdWlyZWQgc2VhcmNoIHBhcmFtcyB0byBnZXQgc3RhdHVzJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RhdHVzKHNlYXJjaFBhcmFtcyk7XG4gIH1cblxuICBwdWJsaWMgbGlzdGVuRmluYWxTdGF0dXMoaW52b2ljZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxTdGF0dXNTZXR0aW5ncz4ge1xuICAgIHJldHVybiB0aGlzLmxpc3RlblN0YXR1c1NlcnZpY2UubGlzdGVuKGludm9pY2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZXF1ZXN0UGFyYW1zRnJvbVVybCh1cmw/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
+ }
68
+ WebsocketStatusService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WebsocketStatusService, deps: [{ token: i1.WebSocketFactory }], target: i0.ɵɵFactoryTarget.Injectable });
69
+ WebsocketStatusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WebsocketStatusService, providedIn: 'root' });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WebsocketStatusService, decorators: [{
71
+ type: Injectable,
72
+ args: [{
73
+ providedIn: 'root',
74
+ }]
75
+ }], ctorParameters: function () { return [{ type: i1.WebSocketFactory }]; } });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LXN0YXR1cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9zdGF0dXMvd2Vic29ja2V0LXN0YXR1cy93ZWJzb2NrZXQtc3RhdHVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUl6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUsxRCxNQUFNLE9BQU8sc0JBQXNCO0lBZ0JqQyxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBQ0QsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCxZQUFvQyxnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXBCckQsMkJBQXNCLEdBR25DO1lBQ0YsU0FBUyxFQUFFLElBQUk7WUFDZixTQUFTLEVBQUUsTUFBTTtTQUNsQixDQUFDO1FBRWUsMkJBQXNCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUM3Qyx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXBELG9CQUFlLEdBQTJCLElBQUksQ0FBQztJQVNrQixDQUFDO0lBRW5FLEtBQUssQ0FBQyx3QkFBd0IsQ0FDbkMsWUFBb0IsRUFDcEIsb0JBQTRCLEVBQzVCLG1CQUF3QztRQUV4QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FDaEUsWUFBWSxFQUNaLG1CQUFtQixDQUNwQixDQUFDO1FBRUYsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUVwRSxJQUFJLENBQUMscUJBQXFCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FDbkUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FDNUMsQ0FBQztRQUVGLElBQUksQ0FBQyxpQ0FBaUM7WUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQ0FBaUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSw0QkFBNEI7UUFDakMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3RELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxDQUFDLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyw0QkFBNEI7UUFDbEMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxFQUFFO1lBQ3pDLFlBQVksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7U0FDOUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBZTtRQUN0QyxJQUFJLE9BQU8sS0FBSyxlQUFlLENBQUMsYUFBYSxFQUFFO1lBQzdDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7U0FDckM7UUFDRCxJQUFJLE9BQU8sS0FBSyxlQUFlLENBQUMsY0FBYyxFQUFFO1lBQzlDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN4RCxDQUFDOzttSEFyRlUsc0JBQXNCO3VIQUF0QixzQkFBc0IsY0FGckIsTUFBTTsyRkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXZWJTb2NrZXRGYWN0b3J5IH0gZnJvbSAnLi4vLi4vLi4vd2ViLXNvY2tldC93ZWItc29ja2V0LmZhY3RvcnknO1xuaW1wb3J0IHsgV2ViU29ja2V0Q2xpZW50IH0gZnJvbSAnLi4vLi4vLi4vd2ViLXNvY2tldC93ZWItc29ja2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBXZWJTb2NrZXRDbGllbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vd2ViLXNvY2tldC93ZWItc29ja2V0LWNsaWVudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgV2ViU29ja2V0U3RhdHVzIH0gZnJvbSAnLi93ZWJzb2NrZXQtc3RhdHVzLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV2Vic29ja2V0U3RhdHVzU2VydmljZSB7XG4gIHByaXZhdGUgd2ViU29ja2V0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgd2ViU29ja2V0UmVjb25uZWN0aW9uU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVpbnN1cmFuY2VDaGVja1N0YXR1czoge1xuICAgIHRpbWVvdXRJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsO1xuICAgIHJlYWRvbmx5IHRpbWVvdXRNczogbnVtYmVyO1xuICB9ID0ge1xuICAgIHRpbWVvdXRJZDogbnVsbCxcbiAgICB0aW1lb3V0TXM6IDE4MDAwMCxcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5lZWRDaGVja1N0YXR1c1N1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c0NoYW5nZWRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHdlYlNvY2tldENsaWVudDogV2ViU29ja2V0Q2xpZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBuZWVkQ2hlY2tTdGF0dXMkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLm5lZWRDaGVja1N0YXR1c1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cbiAgcHVibGljIGdldCBzdGF0dXNDaGFuZ2VkJCgpOiBPYnNlcnZhYmxlPHZvaWQ+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LXJlcXVlc3QuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L3N1Ym1pdC9yZXF1ZXN0L3N1Ym1pdC1yZXF1ZXN0LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVuRixNQUFNLE9BQU8sYUFBYyxTQUFRLGlCQUFpQjtJQUlsRCxZQUFtQixVQU1sQjtRQUNDLEtBQUssRUFBRSxDQUFDO1FBRVIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUVwRCxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDbEIsTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFFMUIsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztTQUM3QjtRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTyxlQUFlLENBQ3JCLE1BQWUsRUFDZixJQUFzQjtRQUV0QixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCLENBQUMsU0FBb0MsRUFBRSxLQUFZLEVBQUUsRUFBRTtZQUNyRCxNQUFNLFdBQVcsR0FBMkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFakUsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7WUFFdkUsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBYcHNBcGlQYXJ0UmVxdWVzdCB9IGZyb20gJy4uLy4uL3hwcy1hcGktcGFydC1yZXF1ZXN0LmFic3RyYWN0JztcbmltcG9ydCB7IFRva2VuRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy90b2tlbi1lcnJvci5jbGFzcyc7XG5cbmV4cG9ydCBjbGFzcyBTdWJtaXRSZXF1ZXN0IGV4dGVuZHMgWHBzQXBpUGFydFJlcXVlc3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjZXNzX3Rva2VuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB4cHNfZGZwX2hhc2g/OiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtZXRlcnM6IHtcbiAgICB0b2tlbjogc3RyaW5nIHwgbnVsbDtcbiAgICBmaWVsZHM6IEZpZWxkW107XG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW1hZ2ljLW51bWJlcnNcbiAgICBkZnBIYXNoOiBzdHJpbmcgfCBudWxsO1xuICB9KSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGNvbnN0IHsgdG9rZW4sIGZpZWxkcywgZm9ybSwgZGZwSGFzaCB9ID0gcGFyYW1ldGVycztcblxuICAgIGlmICh0b2tlbiA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IFRva2VuRXJyb3IoKTtcbiAgICB9XG5cbiAgICB0aGlzLmFjY2Vzc190b2tlbiA9IHRva2VuO1xuXG4gICAgaWYgKGRmcEhhc2gpIHtcbiAgICAgIHRoaXMueHBzX2RmcF9oYXNoID0gZGZwSGFzaDtcbiAgICB9XG5cbiAgICB0aGlzLmFkZFhwc1BhcmFtZXRlcnModGhpcy5nZXRGaWVsZHNWYWx1ZXMoZmllbGRzLCBmb3JtKSk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpZWxkc1ZhbHVlcyhcbiAgICBmaWVsZHM6IEZpZWxkW10sXG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cFxuICApOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSB7XG4gICAgcmV0dXJuIGZpZWxkcy5yZWR1Y2UoXG4gICAgICAoeHBzUGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LCBmaWVsZDogRmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBmb3JtLmdldChmaWVsZC5uYW1lKTtcblxuICAgICAgICB4cHNQYXJhbXNbZmllbGQubmFtZV0gPSBmb3JtQ29udHJvbCA/IGZvcm1Db250cm9sLnZhbHVlIDogZmllbGQ/LnZhbHVlO1xuXG4gICAgICAgIHJldHVybiB4cHNQYXJhbXM7XG4gICAgICB9LFxuICAgICAge31cbiAgICApO1xuICB9XG59XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LXJlc3BvbnNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9zdWJtaXQvcmVzcG9uc2Uvc3VibWl0LXJlc3BvbnNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFcEQsTUFBTSxPQUFPLGNBQWM7SUFzQnpCLFlBQ0UsVUFBdUIsRUFDUCxpQkFBeUIsQ0FBQztRQUExQixtQkFBYyxHQUFkLGNBQWMsQ0FBWTtRQUUxQyxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQzVDLENBQUMsR0FBVyxFQUFTLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUM3QyxDQUFDO1FBRUYsSUFBSSxVQUFVLENBQUMsYUFBYSxFQUFFO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUc7Z0JBQ25CLEdBQUcsRUFBRSxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUs7YUFDcEMsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLGNBQWM7WUFDakIsVUFBVSxDQUFDLGNBQWMsS0FBSyxVQUFVLENBQUMsT0FBTztnQkFDaEQsQ0FBQyxVQUFVLENBQUMsY0FBYyxLQUFLLFVBQVUsQ0FBQyxRQUFRO29CQUNoRCxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBRWxDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2hDLENBQUMsS0FBWSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxVQUFVLENBQ3ZELEVBQUUsS0FBSyxDQUFDO1FBRVQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDL0IsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLFNBQVMsQ0FDdEQsRUFBRSxLQUFLLENBQUM7UUFFVCxJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1FBRWhELElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUMxQyxJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBYcHNSZXNwb25zZSB9IGZyb20gJy4uLy4uL3hwcy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi8uLi9maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW52b2ljZSB9IGZyb20gJy4uLy4uL2ludm9pY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFhwc0NvbW1hbmQgfSBmcm9tICcuLi8uLi94cHMtY29tYW5kLmVudW0nO1xuaW1wb3J0IHsgRmllbGROYW1lcyB9IGZyb20gJy4uLy4uL2ZpZWxkLW5hbWVzLmVudW0nO1xuXG5leHBvcnQgY2xhc3MgU3VibWl0UmVzcG9uc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyczogWHBzUmVzcG9uc2U7XG4gIHB1YmxpYyByZWFkb25seSBmaWVsZHM6IEZpZWxkW107XG4gIHB1YmxpYyBvbmxpbmVCYW5raW5nPzoge1xuICAgIHVybDogc3RyaW5nO1xuICB9O1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YT86IHVua25vd247XG4gIHB1YmxpYyBpc05lZWRSZWRpcmVjdDogYm9vbGVhbjtcblxuICBwdWJsaWMgYnV5RGF0YTogWHBzUmVzcG9uc2VbJ2J1eURhdGEnXTtcblxuICBwdWJsaWMgc2lnbmF0dXJlPzogc3RyaW5nO1xuICBwdWJsaWMgZml4SW52b2ljZT86IHN0cmluZztcbiAgcHVibGljIGhhc0ZhdGFsRXJyb3JzPzogYm9vbGVhbjtcbiAgcHVibGljIHVzZXJTZXNzaW9uPzogSW52b2ljZTtcbiAgcHVibGljIHBpZDogWHBzUmVzcG9uc2VbJ3BpZCddO1xuICBwdWJsaWMgZXJyb3JzOiBYcHNSZXNwb25zZVsnZXJyb3JzJ107XG4gIHB1YmxpYyBzdW1tYXJ5OiBYcHNSZXNwb25zZVsnc3VtbWFyeSddO1xuICBwdWJsaWMgdGl0bGU6IHN0cmluZztcbiAgcHVibGljIGN1cnJlbnRDb21tYW5kOiBYcHNDb21tYW5kIHwgbnVsbDtcbiAgcHVibGljIG1lc3NhZ2VzOiBYcHNSZXNwb25zZVsnbWVzc2FnZXMnXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcGFyYW1ldGVyczogWHBzUmVzcG9uc2UsXG4gICAgcHVibGljIHJlYWRvbmx5IHJlc3BvbnNlTnVtYmVyOiBudW1iZXIgPSAwXG4gICkge1xuICAgIC8qIFRvZG8gc3BsaXQgaW50byBwcm9wZXJ0aWVzICovXG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycztcbiAgICB0aGlzLmZpZWxkcyA9IE9iamVjdC5rZXlzKHBhcmFtZXRlcnMuZm9ybSkubWFwKFxuICAgICAgKGtleTogc3RyaW5nKTogRmllbGQgPT4gcGFyYW1ldGVycy5mb3JtW2tleV1cbiAgICApO1xuXG4gICAgaWYgKHBhcmFtZXRlcnMub25saW5lQmFua2luZykge1xuICAgICAgdGhpcy5vbmxpbmVCYW5raW5nID0ge1xuICAgICAgICB1cmw6IHBhcmFtZXRlcnMub25saW5lQmFua2luZy52YWx1ZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5pc05lZWRSZWRpcmVjdCA9XG4gICAgICBwYXJhbWV0ZXJzLmN1cnJlbnRDb21tYW5kID09PSBYcHNDb21tYW5kLmFjY291bnQgfHxcbiAgICAgIChwYXJhbWV0ZXJzLmN1cnJlbnRDb21tYW5kID09PSBYcHNDb21tYW5kLmNoZWNrb3V0ICYmXG4gICAgICAgIEJvb2xlYW4ocGFyYW1ldGVycy5jaGVja291dCkpO1xuXG4gICAgdGhpcy5idXlEYXRhID0gcGFyYW1ldGVycy5idXlEYXRhO1xuXG4gICAgdGhpcy5maXhJbnZvaWNlID0gdGhpcy5maWVsZHMuZmluZChcbiAgICAgIChmaWVsZDogRmllbGQpID0+IGZpZWxkLm5hbWUgPT09IEZpZWxkTmFtZXMuZml4SW52b2ljZVxuICAgICk/LnZhbHVlO1xuXG4gICAgdGhpcy5zaWduYXR1cmUgPSB0aGlzLmZpZWxkcy5maW5kKFxuICAgICAgKGZpZWxkOiBGaWVsZCkgPT4gZmllbGQubmFtZSA9PT0gRmllbGROYW1lcy5zaWduYXR1cmVcbiAgICApPy52YWx1ZTtcblxuICAgIHRoaXMuaGFzRmF0YWxFcnJvcnMgPSBwYXJhbWV0ZXJzLnRleHRBbGw/LmZhdGFsO1xuXG4gICAgdGhpcy51c2VyU2Vzc2lvbiA9IHBhcmFtZXRlcnMudXNlclNlc3Npb247XG4gICAgdGhpcy5waWQgPSBwYXJhbWV0ZXJzLnBpZDtcbiAgICB0aGlzLmVycm9ycyA9IHBhcmFtZXRlcnMuZXJyb3JzO1xuICAgIHRoaXMuc3VtbWFyeSA9IHBhcmFtZXRlcnMuc3VtbWFyeTtcbiAgICB0aGlzLnRpdGxlID0gcGFyYW1ldGVycy50aXRsZTtcbiAgICB0aGlzLmN1cnJlbnRDb21tYW5kID0gcGFyYW1ldGVycy5jdXJyZW50Q29tbWFuZDtcbiAgICB0aGlzLm1lc3NhZ2VzID0gcGFyYW1ldGVycy5tZXNzYWdlcztcbiAgfVxufVxuIl19
@@ -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
+ }
66
+ SubmitService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", 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 });
67
+ SubmitService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SubmitService, providedIn: 'root' });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SubmitService, decorators: [{
69
+ type: Injectable,
70
+ args: [{ providedIn: 'root' }]
71
+ }], ctorParameters: function () { return [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWl0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9wYXltZW50L3N1Ym1pdC9zdWJtaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBRUwseUJBQXlCLEdBQzFCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUVMLDBCQUEwQixHQUMzQixNQUFNLGtDQUFrQyxDQUFDO0FBSzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQU10RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7Ozs7Ozs7QUFJekgsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFFbUIsY0FBb0MsRUFFcEMsZUFBc0MsRUFDdEMsZUFBZ0MsRUFDaEMsd0JBQWtELEVBQ2xELGFBQTRCLEVBQzVCLCtCQUFnRSxFQUNoRSx3QkFBa0QsRUFDbEQsNkJBQTREO1FBUjVELG1CQUFjLEdBQWQsY0FBYyxDQUFzQjtRQUVwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7UUFDdEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsb0NBQStCLEdBQS9CLCtCQUErQixDQUFpQztRQUNoRSw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBK0I7SUFDNUUsQ0FBQztJQUVKLG1EQUFtRDtJQUNuRCx3REFBd0Q7SUFDeEQsa0ZBQWtGO0lBRWxGLHFFQUFxRTtJQUM5RCxPQUFPLENBQ1osTUFBZSxFQUNmLElBQXNCO1FBRXRCLE9BQU8sQ0FDTCxJQUFJLENBQUMsd0JBQXdCO2FBQzFCLE9BQU8sRUFBRTtZQUNWLHFFQUFxRTthQUNwRSxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNoQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO2dCQUN4QyxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLO2dCQUNqQyxNQUFNO2dCQUNOLElBQUk7Z0JBQ0osT0FBTzthQUNSLENBQUMsQ0FBQztZQUVILE1BQU0sZ0JBQWdCLEdBQ3BCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FDN0MsYUFBYSxDQUNkLENBQUM7WUFFSixPQUFPLElBQUksQ0FBQyxhQUFhO2lCQUN0QixvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDdEMsSUFBSSxDQUFDLENBQUMsV0FBd0IsRUFBRSxFQUFFO2dCQUNqQyxNQUFNLFFBQVEsR0FDWixJQUFJLENBQUMsK0JBQStCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUU5RCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUVsQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7b0JBQ25CLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FHakIsRUFBUSxFQUFFO3dCQUNULElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQ3JDLHNCQUFzQixDQUFDLGdCQUFnQixFQUN2Qyx1QkFBdUIsQ0FBQyxNQUFNLEVBQzlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDekQsQ0FBQztvQkFDSixDQUFDLENBQUM7b0JBRUYsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ25DO2dCQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QyxDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFTyxlQUFlLENBQUMsV0FBd0I7UUFDOUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGVBQWUsQ0FBQztZQUNqRCxHQUFHLFdBQVc7WUFDZCxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUN2QyxDQUFDLEdBQVcsRUFBUyxFQUFFLENBQUUsV0FBMkIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQy9EO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MEdBL0VVLGFBQWEsa0JBRWQseUJBQXlCLGFBRXpCLDBCQUEwQjs4R0FKekIsYUFBYSxjQURBLE1BQU07MkZBQ25CLGFBQWE7a0JBRHpCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFHN0IsTUFBTTsyQkFBQyx5QkFBeUI7OzBCQUVoQyxNQUFNOzJCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vZmllbGQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU3VibWl0UmVxdWVzdEZhY3RvcnksXG4gIHN1Ym1pdFJlcXVlc3RGYWN0b3J5VG9rZW4sXG59IGZyb20gJy4vcmVxdWVzdC9zdWJtaXQtcmVxdWVzdC50b2tlbic7XG5pbXBvcnQge1xuICBTdWJtaXRSZXNwb25zZUZhY3RvcnksXG4gIHN1Ym1pdFJlc3BvbnNlRmFjdG9yeVRva2VuLFxufSBmcm9tICcuL3Jlc3BvbnNlL3N1Ym1pdC1yZXNwb25zZS50b2tlbic7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXR0aW5ncy9zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IFN1Ym1pdFJlc3BvbnNlIH0gZnJvbSAnLi9yZXNwb25zZS9zdWJtaXQtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERldmljZUZpbmdlclByaW50U2VydmljZSB9IGZyb20gJy4uLy4uL2RldmljZS1maW5nZXItcHJpbnQvZGV2aWNlLWZpbmdlci1wcmludC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlc3BvbnNlRXJyb3IgfSBmcm9tICcuLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy9yZXNwb25zZS1lcnJvci5jbGFzcyc7XG5pbXBvcnQgeyBYcHNSZXNwb25zZSB9IGZyb20gJy4uL3hwcy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzQXBpU2VydmljZSB9IGZyb20gJy4uL3hwcy1hcGkveHBzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEVuY3J5cHRDcmVkaXRDYXJkU2VydmljZSB9IGZyb20gJy4uLy4uL2VuY3J5cHQtY3JlZGl0LWNhcmQvZW5jcnlwdC1jcmVkaXQtY2FyZC5zZXJ2aWNlJztcbmltcG9ydCB7IFN1Ym1pdFJlcXVlc3QgfSBmcm9tICcuL3JlcXVlc3Qvc3VibWl0LXJlcXVlc3QuY2xhc3MnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL2Vycm9ycy1tYXBwaW5nL3hwcy1yZXNwb25zZS1lcnJvcnMtbWFwcGluZy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcbmltcG9ydCB7IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LXR5cGVzJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTdWJtaXRTZXJ2aWNlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3Qoc3VibWl0UmVxdWVzdEZhY3RvcnlUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RGYWN0b3J5OiBTdWJtaXRSZXF1ZXN0RmFjdG9yeSxcbiAgICBASW5qZWN0KHN1Ym1pdFJlc3BvbnNlRmFjdG9yeVRva2VuKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzcG9uc2VGYWN0b3J5OiBTdWJtaXRSZXNwb25zZUZhY3RvcnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRldmljZUZpbmdlclByaW50U2VydmljZTogRGV2aWNlRmluZ2VyUHJpbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgeHBzQXBpU2VydmljZTogWHBzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2U6IFhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2U6IEVuY3J5cHRDcmVkaXRDYXJkU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlOiBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZVxuICApIHt9XG5cbiAgLy8gTkI6IE5ldmVyIGFkZCAnYXN5bmMnIHN0YXRlbWVudCBmb3IgdGhpcyBtZXRob2QhXG4gIC8vICdBc3luYycgc3RhdGVtZW50IHdyYXBzIGN1cnJlbnQgcHJvbWlzZSBpbnRvIGFub3RoZXIuXG4gIC8vIEluIHRoaXMgd2F5IHR3byBwcm9taXNlcyBiZWNvbWUgdW5lcXVhbCwgdGhhdCBjYW4gYnJva2UgWFBTIEFQSSByZXF1ZXN0cyBsb2dpYy5cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3Byb21pc2UtZnVuY3Rpb24tYXN5bmNcbiAgcHVibGljIHJlcXVlc3QoXG4gICAgZmllbGRzOiBGaWVsZFtdLFxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXBcbiAgKTogUHJvbWlzZTxTdWJtaXRSZXNwb25zZT4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmRldmljZUZpbmdlclByaW50U2VydmljZVxuICAgICAgICAuZ2V0SGFzaCgpXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJvbWlzZS1mdW5jdGlvbi1hc3luY1xuICAgICAgICAudGhlbigoZGZwSGFzaCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlcXVlc3RQYXJhbXMgPSB0aGlzLnJlcXVlc3RGYWN0b3J5KHtcbiAgICAgICAgICAgIHRva2VuOiB0aGlzLnNldHRpbmdzU2VydmljZS50b2tlbixcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgIGZvcm0sXG4gICAgICAgICAgICBkZnBIYXNoLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY29uc3QgZW5jcnlwdGVkUmVxdWVzdCA9XG4gICAgICAgICAgICB0aGlzLmVuY3J5cHRDcmVkaXRDYXJkU2VydmljZS5lbmNyeXB0Q3JlZGl0Q2FyZDxTdWJtaXRSZXF1ZXN0PihcbiAgICAgICAgICAgICAgcmVxdWVzdFBhcmFtc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiB0aGlzLnhwc0FwaVNlcnZpY2VcbiAgICAgICAgICAgIC5kaXJlY3RQYXltZW50UmVxdWVzdChlbmNyeXB0ZWRSZXF1ZXN0KVxuICAgICAgICAgICAgLnRoZW4oKHhwc1Jlc3BvbnNlOiBYcHNSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9XG4gICAgICAgICAgICAgICAgdGhpcy54cHNSZXNwb25zZUVycm9yc01hcHBpbmdTZXJ2aWNlLm1hcEVycm9ycyh4cHNSZXNwb25zZSk7XG5cbiAgICAgICAgICAgICAgdGhpcy5maWxsVXNlclNlc3Npb24oeHBzUmVzcG9uc2UpO1xuXG4gICAgICAgICAgICAgIGlmIChyZXNwb25zZS5lcnJvcnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2dFcnJvciA9IChlcnJvcjoge1xuICAgICAgICAgICAgICAgICAgY29kZTogbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgICAgICAgICAgICAgIH0pOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgICAgICAgICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS5zaG93RXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgICAgICAgICB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICAgICAgICAgICAgICAgIHsgdmFsdWU6IFN0cmluZyhlcnJvci5jb2RlKSwgZXh0cmFWYWx1ZTogZXJyb3IubWVzc2FnZSB9XG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICByZXNwb25zZS5lcnJvcnMuZm9yRWFjaChsb2dFcnJvcik7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZUZhY3RvcnkocmVzcG9uc2UpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBSZXNwb25zZUVycm9yKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsbFVzZXJTZXNzaW9uKHhwc1Jlc3BvbnNlOiBYcHNSZXNwb25zZSk6IHZvaWQge1xuICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2UuZmlsbFVzZXJTZXNzaW9uKHtcbiAgICAgIC4uLnhwc1Jlc3BvbnNlLFxuICAgICAgZmllbGRzOiBPYmplY3Qua2V5cyh4cHNSZXNwb25zZS5mb3JtKS5tYXAoXG4gICAgICAgIChrZXk6IHN0cmluZyk6IEZpZWxkID0+ICh4cHNSZXNwb25zZSBhcyBYcHNSZXNwb25zZSkuZm9ybVtrZXldXG4gICAgICApLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1yZXF1ZXN0LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9zeW5jL3JlcXVlc3Qvc3luYy1yZXF1ZXN0LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXhFLHlEQUF5RDtBQUN6RCxNQUFNLE9BQU8sV0FBWSxTQUFRLGlCQUFpQjtJQUloRCxZQUFtQixVQUtsQjtRQUNDLEtBQUssRUFBRSxDQUFDO1FBUk0sb0JBQWUsR0FBRyxXQUFXLENBQUM7UUFVNUMsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRXJDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQ3ZDLFVBQVUsQ0FBQyxZQUFZLEVBQ3ZCLFVBQVUsQ0FBQyxNQUFNLEVBQ2pCLFVBQVUsQ0FBQyxJQUFJLENBQ2hCLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDcEIsR0FBRyxZQUFZO1lBQ2YsY0FBYyxFQUFFLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSTtTQUM3QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZSxDQUNyQixZQUFtQixFQUNuQixNQUFlLEVBQ2YsSUFBc0I7UUFFdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxPQUFPLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ25ELENBQUMsU0FBb0MsRUFBRSxTQUFpQixFQUFFLEVBQUU7WUFDMUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4QyxNQUFNLEtBQUssR0FBc0IsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUxRCxJQUFJLFdBQVcsSUFBSSxLQUFLLEVBQUU7Z0JBQ3hCLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxXQUFXLEVBQUUsS0FBSyxJQUFJLEtBQUssRUFBRSxLQUFLLENBQUM7YUFDM0Q7WUFFRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDLEVBQ0QsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQWU7UUFDbEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQWlCLENBQUM7UUFDckMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi8uLi9maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzQXBpUGFydFJlcXVlc3QgfSBmcm9tICcuLi8uLi94cHMtYXBpLXBhcnQtcmVxdWVzdC5hYnN0cmFjdCc7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuZXhwb3J0IGNsYXNzIFN5bmNSZXF1ZXN0IGV4dGVuZHMgWHBzQXBpUGFydFJlcXVlc3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgYWNjZXNzX3Rva2VuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB4cHNfZml4X2NvbW1hbmQgPSAnY2FsY3VsYXRlJztcblxuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1ldGVyczoge1xuICAgIHRva2VuOiBzdHJpbmc7XG4gICAgY2hhbmdlZEZpZWxkOiBGaWVsZDtcbiAgICBmaWVsZHM6IEZpZWxkW107XG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgfSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmFjY2Vzc190b2tlbiA9IHBhcmFtZXRlcnMudG9rZW47XG5cbiAgICBjb25zdCBmaWVsZHNWYWx1ZXMgPSB0aGlzLmdldEZpZWxkc1ZhbHVlcyhcbiAgICAgIHBhcmFtZXRlcnMuY2hhbmdlZEZpZWxkLFxuICAgICAgcGFyYW1ldGVycy5maWVsZHMsXG4gICAgICBwYXJhbWV0ZXJzLmZvcm1cbiAgICApO1xuXG4gICAgdGhpcy5hZGRYcHNQYXJhbWV0ZXJzKHtcbiAgICAgIC4uLmZpZWxkc1ZhbHVlcyxcbiAgICAgIGNoYW5nZV9lbGVtZW50OiBwYXJhbWV0ZXJzLmNoYW5nZWRGaWVsZC5uYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWVsZHNWYWx1ZXMoXG4gICAgY2hhbmdlZEZpZWxkOiBGaWVsZCxcbiAgICBmaWVsZHM6IEZpZWxkW10sXG4gICAgZm9ybTogVW50eXBlZEZvcm1Hcm91cFxuICApOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSB7XG4gICAgY29uc3QgZmllbGRzTWFwID0gdGhpcy5nZXRGaWVsZHNNYXAoZmllbGRzKTtcbiAgICByZXR1cm4gY2hhbmdlZEZpZWxkPy5qYXZhc2NyaXB0Py5jaGFuZ2UucGFyYW1zLnJlZHVjZShcbiAgICAgICh4cHNQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGZpZWxkTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gZm9ybS5nZXQoZmllbGROYW1lKTtcbiAgICAgICAgY29uc3QgZmllbGQ6IEZpZWxkIHwgdW5kZWZpbmVkID0gZmllbGRzTWFwLmdldChmaWVsZE5hbWUpO1xuXG4gICAgICAgIGlmIChmb3JtQ29udHJvbCB8fCBmaWVsZCkge1xuICAgICAgICAgIHhwc1BhcmFtc1tmaWVsZE5hbWVdID0gZm9ybUNvbnRyb2w/LnZhbHVlID8/IGZpZWxkPy52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB4cHNQYXJhbXM7XG4gICAgICB9LFxuICAgICAge31cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWVsZHNNYXAoZmllbGRzOiBGaWVsZFtdKTogTWFwPHN0cmluZywgRmllbGQ+IHtcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgRmllbGQ+KCk7XG4gICAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiBtYXAuc2V0KGZpZWxkLm5hbWUsIGZpZWxkKSk7XG4gICAgcmV0dXJuIG1hcDtcbiAgfVxufVxuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1yZXNwb25zZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvc3luYy9yZXNwb25zZS9zeW5jLXJlc3BvbnNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxZQUFZO0lBS3ZCLFlBQW1CLFlBQW1CLEVBQUUsUUFBcUI7UUFKN0MsVUFBSyxHQUE0QixJQUFJLENBQUM7UUFLcEQsTUFBTSxVQUFVLEdBQUcsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQ3ZDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLFlBQVksQ0FBQyxJQUFJLENBQ3BELENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLEdBQUc7Z0JBQ1gsVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtvQkFDckIsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO2lCQUM1QjthQUNGLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUMxQyxDQUFDLEdBQVcsRUFBUyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDM0MsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBYcHNSZXNwb25zZSB9IGZyb20gJy4uLy4uL3hwcy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgU3luY1Jlc3BvbnNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyByZWFkb25seSBmaWVsZHM6IEZpZWxkW107XG4gIHB1YmxpYyByZWFkb25seSBwYXJhbWV0ZXJzOiBYcHNSZXNwb25zZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoY2hhbmdlZEZpZWxkOiBGaWVsZCwgcmVzcG9uc2U6IFhwc1Jlc3BvbnNlKSB7XG4gICAgY29uc3QgZmllbGRFcnJvciA9IHJlc3BvbnNlPy5lcnJvcnM/LmZpbmQoXG4gICAgICAoZXJyb3IpID0+IGVycm9yLmVsZW1lbnRfbmFtZSA9PT0gY2hhbmdlZEZpZWxkLm5hbWVcbiAgICApO1xuXG4gICAgaWYgKGZpZWxkRXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB7XG4gICAgICAgIGFzeW5jRXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiBmaWVsZEVycm9yLmNvZGUsXG4gICAgICAgICAgbWVzc2FnZTogZmllbGRFcnJvci5tZXNzYWdlLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmZpZWxkcyA9IE9iamVjdC5rZXlzKHJlc3BvbnNlLmZvcm0pLm1hcChcbiAgICAgIChrZXk6IHN0cmluZyk6IEZpZWxkID0+IHJlc3BvbnNlLmZvcm1ba2V5XVxuICAgICk7XG5cbiAgICB0aGlzLnBhcmFtZXRlcnMgPSByZXNwb25zZTtcbiAgfVxufVxuIl19
@@ -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
+ }
143
+ SyncService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", 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 });
144
+ SyncService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SyncService, providedIn: 'root' });
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: SyncService, decorators: [{
146
+ type: Injectable,
147
+ args: [{
148
+ providedIn: 'root',
149
+ }]
150
+ }], ctorParameters: function () { return [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9zeW5jL3N5bmMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJaEUsT0FBTyxFQUVMLHVCQUF1QixHQUN4QixNQUFNLDhCQUE4QixDQUFDO0FBRXRDLE9BQU8sRUFFTCx3QkFBd0IsR0FDekIsTUFBTSxnQ0FBZ0MsQ0FBQztBQVN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQzs7Ozs7Ozs7O0FBS3pILE1BQU0sT0FBTyxXQUFZLFNBQVEsZUFBNEI7SUFPM0QsWUFFbUIsY0FBa0MsRUFFbEMsZUFBb0MsRUFDcEMsYUFBNEIsRUFDNUIsaUJBQW9DLEVBQ3BDLGVBQWdDLEVBQ2hDLCtCQUFnRSxFQUNoRSx3QkFBa0QsRUFDbEQsdUJBQWdELEVBQ2hELDZCQUE0RDtRQUU3RSxLQUFLLEVBQUUsQ0FBQztRQVhTLG1CQUFjLEdBQWQsY0FBYyxDQUFvQjtRQUVsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7UUFDcEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsb0NBQStCLEdBQS9CLCtCQUErQixDQUFpQztRQUNoRSw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsa0NBQTZCLEdBQTdCLDZCQUE2QixDQUErQjtRQWpCdkUsd0JBQW1CLEdBQTRDLEVBQUUsQ0FBQztRQUNsRSxTQUFJLEdBQXFCLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEQsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQUNyQixvQkFBZSxHQUFvQyxFQUFFLENBQUM7UUFDN0MseUJBQW9CLEdBQUcsSUFBSSxPQUFPLEVBQXdCLENBQUM7SUFnQjVFLENBQUM7SUFFRCxJQUFXLHFCQUFxQjtRQUM5QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQXNCLEVBQUUsTUFBZTtRQUNsRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUNuQixLQUFZLEVBQ1osS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFFckIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDN0IsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLE1BQU0sS0FBSyxHQUFHLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDN0IsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpELE1BQU0sY0FBYyxHQUFHLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBRWhFLElBQUksY0FBYyxFQUFFO1lBQ2xCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QjtRQUVELElBQUksY0FBYyxJQUFJLEtBQUssS0FBSyxjQUFjLENBQUMsS0FBSyxFQUFFO1lBQ3BELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQzlELE9BQU8sUUFBUSxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxJQUU1QixFQUFFO1lBQ0YsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUzQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxjQUFjLENBQUMsQ0FBQztZQUV6RCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFzQixFQUFFLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7b0JBQzdCLEtBQUs7b0JBQ0wsS0FBSztvQkFDTCxRQUFRO2lCQUNULENBQUMsQ0FBQztnQkFFSCxPQUFPLFFBQVEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzdCLElBQUksS0FBSyxFQUFFO2dCQUNULE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQzlCLElBQUksS0FBSyxLQUFLLE9BQU8sRUFBRSxLQUFLLEVBQUU7d0JBQzVCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUN0QjtvQkFFRCxLQUFLLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUMxQixDQUFDLE1BQXdDLEVBQUUsRUFBRSxDQUMzQyxPQUFPLENBQUMsTUFBMEIsQ0FBQyxDQUN0QyxDQUFDO2dCQUNKLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFFVixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ2xEO2lCQUFNO2dCQUNMLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQzFCLENBQUMsTUFBd0MsRUFBRSxFQUFFLENBQzNDLE9BQU8sQ0FBQyxNQUEwQixDQUFDLENBQ3RDLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHVCQUF1QixDQUFDLEtBQVk7UUFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLE9BQU8sT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUM7SUFDakMsQ0FBQztJQUVTLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBWTtRQUNsQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUs7WUFDakMsWUFBWSxFQUFFLEtBQUs7WUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNoQixDQUFDLENBQUM7UUFFSCxNQUFNLGdCQUFnQixHQUNwQixJQUFJLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQzdDLGFBQWEsQ0FDZCxDQUFDO1FBRUosT0FBTyxJQUFJLENBQUMsYUFBYTthQUN0QixvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQzthQUN0QyxJQUFJLENBQUMsQ0FBQyxXQUF3QixFQUFFLEVBQUU7WUFDakMsTUFBTSxRQUFRLEdBQ1osSUFBSSxDQUFDLCtCQUErQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUU5RCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBWTtRQUMvQixNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUM7UUFDakQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwRCxPQUFPLGFBQWEsSUFBSSxjQUFjLENBQUM7SUFDekMsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQVk7UUFDeEMsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxxQkFBcUIsQ0FDM0IsS0FBWSxFQUNaLEtBQWMsRUFDZCxNQUE2QjtRQUU3QixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzNELENBQUM7SUFFTyxjQUFjLENBQUMsUUFBcUI7UUFDMUMsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ25CLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBd0MsRUFBUSxFQUFFO2dCQUNsRSxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUNyQyxzQkFBc0IsQ0FBQyxnQkFBZ0IsRUFDdkMsdUJBQXVCLENBQUMsTUFBTSxFQUM5QixFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQ3pELENBQUM7WUFDSixDQUFDLENBQUM7WUFFRixRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNuQztRQUVELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUzRSxJQUFJLFVBQVUsRUFBRSxNQUFNLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FDcEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FDdkQsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQVksRUFBRSxPQUFlO1FBQ3ZELE1BQU0sV0FBVyxHQUFXLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdELElBQUksV0FBVyxFQUFFO1lBQ2YsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzNCO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQzdDLENBQUM7O3dHQXhMVSxXQUFXLGtCQVFaLHVCQUF1QixhQUV2Qix3QkFBd0I7NEdBVnZCLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxNQUFNOzJCQUFDLHVCQUF1Qjs7MEJBRTlCLE1BQU07MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBFbWl0RGF0YVNlcnZpY2UgfSBmcm9tICcuLi9lbWl0LWRhdGEuc2VydmljZS5hYnN0cmFjdCc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBYcHNSZXNwb25zZSB9IGZyb20gJy4uL3hwcy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmllbGRTeW5jU3RhdGUgfSBmcm9tICcuL2ZpZWxkLXN5bmMtc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIFN5bmNSZXF1ZXN0RmFjdG9yeSxcbiAgc3luY1JlcXVlc3RGYWN0b3J5VG9rZW4sXG59IGZyb20gJy4vcmVxdWVzdC9zeW5jLXJlcXVlc3QudG9rZW4nO1xuaW1wb3J0IHsgU3luY1Jlc3BvbnNlIH0gZnJvbSAnLi9yZXNwb25zZS9zeW5jLXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7XG4gIFN5bmNSZXNwb25zZUZhY3RvcnksXG4gIHN5bmNSZXNwb25zZUZhY3RvcnlUb2tlbixcbn0gZnJvbSAnLi9yZXNwb25zZS9zeW5jLXJlc3BvbnNlLnRva2VuJztcbmltcG9ydCB7IE5leHRBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vYWN0aW9ucy9uZXh0LWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNob3dFcnJvcnNBY3Rpb25DcmVhdG9yIH0gZnJvbSAnLi4vYWN0aW9ucy9zaG93LWVycm9ycy9zaG93LWVycm9ycy5hY3Rpb24uY2xhc3MnO1xuaW1wb3J0IHsgWHBzQXBpU2VydmljZSB9IGZyb20gJy4uL3hwcy1hcGkveHBzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpZWxkQXN5bmNWYWxpZGF0aW9uIH0gZnJvbSAnLi9maWVsZC1hc3luYy12YWxpZGF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lbmNyeXB0LWNyZWRpdC1jYXJkL2VuY3J5cHQtY3JlZGl0LWNhcmQuc2VydmljZSc7XG5pbXBvcnQgeyBTeW5jUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdC9zeW5jLXJlcXVlc3QuY2xhc3MnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL2Vycm9ycy1tYXBwaW5nL3hwcy1yZXNwb25zZS1lcnJvcnMtbWFwcGluZy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcbmltcG9ydCB7IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LXR5cGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFN5bmNTZXJ2aWNlIGV4dGVuZHMgRW1pdERhdGFTZXJ2aWNlPFhwc1Jlc3BvbnNlPiB7XG4gIHByaXZhdGUgcHJldkZpZWxkU3luY1N0YXRlczogeyBbZmllbGROYW1lOiBzdHJpbmddOiBGaWVsZFN5bmNTdGF0ZSB9ID0ge307XG4gIHByaXZhdGUgZm9ybTogVW50eXBlZEZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgcHJpdmF0ZSBmaWVsZHM6IEZpZWxkW10gPSBbXTtcbiAgcHJpdmF0ZSBmaWVsZFN5bmNUaW1lcnM6IHsgW2ZpZWxkTmFtZTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZEFzeW5jVmFsaWRhdGlvbiA9IG5ldyBTdWJqZWN0PEZpZWxkQXN5bmNWYWxpZGF0aW9uPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHN5bmNSZXF1ZXN0RmFjdG9yeVRva2VuKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdEZhY3Rvcnk6IFN5bmNSZXF1ZXN0RmFjdG9yeSxcbiAgICBASW5qZWN0KHN5bmNSZXNwb25zZUZhY3RvcnlUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3BvbnNlRmFjdG9yeTogU3luY1Jlc3BvbnNlRmFjdG9yeSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHhwc0FwaVNlcnZpY2U6IFhwc0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXh0QWN0aW9uU2VydmljZTogTmV4dEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2U6IFhwc1Jlc3BvbnNlRXJyb3JzTWFwcGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2U6IEVuY3J5cHRDcmVkaXRDYXJkU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNob3dFcnJvcnNBY3Rpb25DcmVhdG9yOiBTaG93RXJyb3JzQWN0aW9uQ3JlYXRvcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlOiBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWVsZEFzeW5jVmFsaWRhdGlvbiQoKTogT2JzZXJ2YWJsZTxGaWVsZEFzeW5jVmFsaWRhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkQXN5bmNWYWxpZGF0aW9uLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHNldHVwKGZvcm06IFVudHlwZWRGb3JtR3JvdXAsIGZpZWxkczogRmllbGRbXSk6IHZvaWQge1xuICAgIHRoaXMucmVzZXQoKTtcblxuICAgIHRoaXMuZm9ybSA9IGZvcm07XG4gICAgdGhpcy5maWVsZHMgPSBmaWVsZHM7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5wcmV2RmllbGRTeW5jU3RhdGVzID0ge307XG4gICAgdGhpcy5mb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuICAgIHRoaXMuZmllbGRzID0gW107XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGUoXG4gICAgZmllbGQ6IEZpZWxkLFxuICAgIGRlbGF5ID0gTnVtYmVyKCc3NTAnKVxuICApOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB7XG4gICAgaWYgKCF0aGlzLmlzUmVhZHlGaWVsZChmaWVsZCkpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybS5nZXQoZmllbGQubmFtZSk7XG4gICAgY29uc3QgdmFsdWUgPSBjb250cm9sPy52YWx1ZTtcbiAgICBjb25zdCBwcmV2RmllbGRTdGF0ZSA9IHRoaXMuZ2V0UHJldkZpZWxkU3luY1N0YXRlKGZpZWxkKTtcblxuICAgIGNvbnN0IGlzSW5pdGlhbFZhbHVlID0gdmFsdWUgPT09IGZpZWxkLnZhbHVlICYmICFwcmV2RmllbGRTdGF0ZTtcblxuICAgIGlmIChpc0luaXRpYWxWYWx1ZSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcbiAgICB9XG5cbiAgICBpZiAocHJldkZpZWxkU3RhdGUgJiYgdmFsdWUgPT09IHByZXZGaWVsZFN0YXRlLnZhbHVlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHByZXZGaWVsZFN0YXRlLnJlc3VsdCkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlPy5lcnJvciA/PyBudWxsO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlRmllbGRTdGF0ZSA9IGFzeW5jICgpOiBQcm9taXNlPFxuICAgICAgc3RyaW5nIHwgVmFsaWRhdGlvbkVycm9ycyB8IG51bGxcbiAgICA+ID0+IHtcbiAgICAgIGNvbnN0IHJlcXVlc3RQcm9taXNlID0gdGhpcy5yZXF1ZXN0KGZpZWxkKTtcblxuICAgICAgdGhpcy5zZXRQcmV2RmllbGRTeW5jU3RhdGUoZmllbGQsIHZhbHVlLCByZXF1ZXN0UHJvbWlzZSk7XG5cbiAgICAgIHJldHVybiByZXF1ZXN0UHJvbWlzZS50aGVuKChyZXNwb25zZTogU3luY1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuZmllbGRBc3luY1ZhbGlkYXRpb24ubmV4dCh7XG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXNwb25zZS5lcnJvciA/PyBudWxsO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKGRlbGF5KSB7XG4gICAgICAgIGNvbnN0IHRpbWVySWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpZiAodmFsdWUgIT09IGNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2b2lkIHVwZGF0ZUZpZWxkU3RhdGUoKS50aGVuKFxuICAgICAgICAgICAgKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgfCBzdHJpbmcpID0+XG4gICAgICAgICAgICAgIHJlc29sdmUoZXJyb3JzIGFzIFZhbGlkYXRpb25FcnJvcnMpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSwgZGVsYXkpO1xuXG4gICAgICAgIHRoaXMucmVzZXRGaWVsZFN5bmNUaW1lcihmaWVsZCwgTnVtYmVyKHRpbWVySWQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZvaWQgdXBkYXRlRmllbGRTdGF0ZSgpLnRoZW4oXG4gICAgICAgICAgKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgfCBzdHJpbmcpID0+XG4gICAgICAgICAgICByZXNvbHZlKGVycm9ycyBhcyBWYWxpZGF0aW9uRXJyb3JzKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFN5bmNWYWxpZGF0aW9uRXJyb3JzKGZpZWxkOiBGaWVsZCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtLmdldChmaWVsZC5uYW1lKTtcbiAgICByZXR1cm4gY29udHJvbD8uZXJyb3JzID8/IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcmVxdWVzdChmaWVsZDogRmllbGQpOiBQcm9taXNlPFN5bmNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3RQYXJhbXMgPSB0aGlzLnJlcXVlc3RGYWN0b3J5KHtcbiAgICAgIHRva2VuOiB0aGlzLnNldHRpbmdzU2VydmljZS50b2tlbixcbiAgICAgIGNoYW5nZWRGaWVsZDogZmllbGQsXG4gICAgICBmaWVsZHM6IHRoaXMuZmllbGRzLFxuICAgICAgZm9ybTogdGhpcy5mb3JtLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZW5jcnlwdGVkUmVxdWVzdCA9XG4gICAgICB0aGlzLmVuY3J5cHRDcmVkaXRDYXJkU2VydmljZS5lbmNyeXB0Q3JlZGl0Q2FyZDxTeW5jUmVxdWVzdD4oXG4gICAgICAgIHJlcXVlc3RQYXJhbXNcbiAgICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy54cHNBcGlTZXJ2aWNlXG4gICAgICAuZGlyZWN0UGF5bWVudFJlcXVlc3QoZW5jcnlwdGVkUmVxdWVzdClcbiAgICAgIC50aGVuKCh4cHNSZXNwb25zZTogWHBzUmVzcG9uc2UpID0+IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPVxuICAgICAgICAgIHRoaXMueHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZS5tYXBFcnJvcnMoeHBzUmVzcG9uc2UpO1xuXG4gICAgICAgIHRoaXMuZW1pdEZvcm1FcnJvcnMocmVzcG9uc2UpO1xuICAgICAgICB0aGlzLmVtaXQocmVzcG9uc2UpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXNwb25zZUZhY3RvcnkoZmllbGQsIHJlc3BvbnNlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1JlYWR5RmllbGQoZmllbGQ6IEZpZWxkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNTeW5jRW5hYmxlZCA9ICEhZmllbGQuamF2YXNjcmlwdD8uY2hhbmdlO1xuICAgIGNvbnN0IGlzRXhpc3RzSW5Gb3JtID0gISF0aGlzLmZvcm0/LmdldChmaWVsZC5uYW1lKTtcblxuICAgIHJldHVybiBpc1N5bmNFbmFibGVkICYmIGlzRXhpc3RzSW5Gb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcmV2RmllbGRTeW5jU3RhdGUoZmllbGQ6IEZpZWxkKTogRmllbGRTeW5jU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnByZXZGaWVsZFN5bmNTdGF0ZXNbZmllbGQubmFtZV07XG4gIH1cblxuICBwcml2YXRlIHNldFByZXZGaWVsZFN5bmNTdGF0ZShcbiAgICBmaWVsZDogRmllbGQsXG4gICAgdmFsdWU6IHVua25vd24sXG4gICAgcmVzdWx0OiBQcm9taXNlPFN5bmNSZXNwb25zZT5cbiAgKTogdm9pZCB7XG4gICAgdGhpcy5wcmV2RmllbGRTeW5jU3RhdGVzW2ZpZWxkLm5hbWVdID0geyB2YWx1ZSwgcmVzdWx0IH07XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtRXJyb3JzKHJlc3BvbnNlOiBYcHNSZXNwb25zZSk6IHZvaWQge1xuICAgIGlmIChyZXNwb25zZS5lcnJvcnMpIHtcbiAgICAgIGNvbnN0IGxvZ0Vycm9yID0gKGVycm9yOiB7IGNvZGU6IG51bWJlcjsgbWVzc2FnZTogc3RyaW5nIH0pOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy51c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZS5zZW5kKFxuICAgICAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuc2hvd0Vycm9yTWVzc2FnZSxcbiAgICAgICAgICB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICAgICAgeyB2YWx1ZTogU3RyaW5nKGVycm9yLmNvZGUpLCBleHRyYVZhbHVlOiBlcnJvci5tZXNzYWdlIH1cbiAgICAgICAgKTtcbiAgICAgIH07XG5cbiAgICAgIHJlc3BvbnNlLmVycm9ycy5mb3JFYWNoKGxvZ0Vycm9yKTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtRXJyb3JzID0gcmVzcG9uc2UuZXJyb3JzPy5maWx0ZXIoKGVycm9yKSA9PiAhZXJyb3IuZWxlbWVudF9uYW1lKTtcblxuICAgIGlmIChmb3JtRXJyb3JzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubmV4dEFjdGlvblNlcnZpY2UuZW1pdEZsb3dVcGRhdGVzKFxuICAgICAgICB0aGlzLnNob3dFcnJvcnNBY3Rpb25DcmVhdG9yLmdldEFjdGlvbkRhdGEoZm9ybUVycm9ycylcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldEZpZWxkU3luY1RpbWVyKGZpZWxkOiBGaWVsZCwgdGltZXJJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgcHJldlRpbWVySWQ6IG51bWJlciA9IHRoaXMuZmllbGRTeW5jVGltZXJzW2ZpZWxkLm5hbWVdO1xuXG4gICAgaWYgKHByZXZUaW1lcklkKSB7XG4gICAgICBjbGVhclRpbWVvdXQocHJldlRpbWVySWQpO1xuICAgIH1cblxuICAgIHRoaXMuZmllbGRTeW5jVGltZXJzW2ZpZWxkLm5hbWVdID0gdGltZXJJZDtcbiAgfVxufVxuIl19