@xsolla/payment-client-core 0.2.21 → 0.2.22

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 (446) hide show
  1. package/{esm2020 → esm2022}/lib/core/combined-payment-methods/combined-payment-methods.service.mjs +5 -5
  2. package/{esm2020 → esm2022}/lib/core/countries-api/countries-api.service.mjs +5 -5
  3. package/{esm2020 → esm2022}/lib/core/country/country.service.mjs +5 -5
  4. package/{esm2020 → esm2022}/lib/core/credit-card/credit-card.service.mjs +4 -4
  5. package/esm2022/lib/core/device-finger-print/device-finger-print.service.mjs +67 -0
  6. package/{esm2020 → esm2022}/lib/core/edit-saved-methods/edit-saved-methods.service.mjs +5 -5
  7. package/esm2022/lib/core/encrypt-credit-card/encrypt-credit-card.service.mjs +73 -0
  8. package/esm2022/lib/core/errors-mapping/xps-response-errors-mapping.service.mjs +52 -0
  9. package/esm2022/lib/core/exceptions-handling/elk/elk-logger.service.mjs +120 -0
  10. package/esm2022/lib/core/exceptions-handling/errors/http-error.class.mjs +40 -0
  11. package/esm2022/lib/core/exceptions-handling/errors/tagged-error.class.mjs +16 -0
  12. package/{esm2020 → esm2022}/lib/core/exceptions-handling/http-interceptor/http-exceptions.interceptor.mjs +5 -5
  13. package/esm2022/lib/core/http/secure-api/secure-api.service.mjs +55 -0
  14. package/{esm2020 → esm2022}/lib/core/legal/disclaimer.service.mjs +4 -4
  15. package/{esm2020 → esm2022}/lib/core/legal/legal.service.mjs +5 -5
  16. package/esm2022/lib/core/legal/refund-policy.service.mjs +30 -0
  17. package/esm2022/lib/core/legal/secure-connection.service.mjs +31 -0
  18. package/{esm2020 → esm2022}/lib/core/payment/actions/check-status/check-status.action.class.mjs +4 -4
  19. package/esm2022/lib/core/payment/actions/next-action.service.mjs +61 -0
  20. package/esm2022/lib/core/payment/actions/redirect/redirect.action.class.mjs +60 -0
  21. package/{esm2020 → esm2022}/lib/core/payment/actions/show-errors/show-errors.action.class.mjs +4 -4
  22. package/{esm2020 → esm2022}/lib/core/payment/actions/show-fields/show-fields.action.class.mjs +4 -4
  23. package/{esm2020 → esm2022}/lib/core/payment/actions/show-mobile-payment-screen/show-mobile-payment-screen.action.class.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/core/payment/actions/show-qr-code/show-qr-code.action.class.mjs +4 -4
  25. package/{esm2020 → esm2022}/lib/core/payment/actions/special-button/special-button.action.class.mjs +4 -4
  26. package/esm2022/lib/core/payment/actions/status-updated/status-updated.action.class.mjs +38 -0
  27. package/{esm2020 → esm2022}/lib/core/payment/actions/three-ds/three-ds.action.class.mjs +4 -4
  28. package/esm2022/lib/core/payment/config/config.service.mjs +37 -0
  29. package/{esm2020 → esm2022}/lib/core/payment/credit-card-state/credit-card-state.service.mjs +4 -4
  30. package/esm2022/lib/core/payment/finance-details/finance-details.service.mjs +38 -0
  31. package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/status-finance-details-adapter.service.mjs +5 -5
  32. package/esm2022/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs +264 -0
  33. package/esm2022/lib/core/payment/form/controls/control-config.service.mjs +46 -0
  34. package/{esm2020 → esm2022}/lib/core/payment/form/converters/birth-date/birth-date.converter.mjs +5 -5
  35. package/{esm2020 → esm2022}/lib/core/payment/form/converters/card-month/card-month.converter.mjs +5 -5
  36. package/{esm2020 → esm2022}/lib/core/payment/form/converters/card-number/card-number.converter.mjs +5 -5
  37. package/{esm2020 → esm2022}/lib/core/payment/form/converters/card-year/card-year.converter.mjs +5 -5
  38. package/{esm2020 → esm2022}/lib/core/payment/form/converters/cardholder-name/cardholder-name.converter.mjs +5 -5
  39. package/esm2022/lib/core/payment/form/converters/checkbox/checkbox.converter.mjs +33 -0
  40. package/esm2022/lib/core/payment/form/converters/converter.abstract.mjs +76 -0
  41. package/{esm2020 → esm2022}/lib/core/payment/form/converters/coupon/coupon.converter.mjs +5 -5
  42. package/{esm2020 → esm2022}/lib/core/payment/form/converters/cpf-name/cpf-name.converter.mjs +5 -5
  43. package/{esm2020 → esm2022}/lib/core/payment/form/converters/cpf-number/cpf-number.converter.mjs +5 -5
  44. package/esm2022/lib/core/payment/form/converters/cvv/cvv.converter.mjs +72 -0
  45. package/{esm2020 → esm2022}/lib/core/payment/form/converters/email/email.converter.mjs +5 -5
  46. package/{esm2020 → esm2022}/lib/core/payment/form/converters/phone.converter.mjs +5 -5
  47. package/{esm2020 → esm2022}/lib/core/payment/form/converters/pin/pin.converter.mjs +5 -5
  48. package/{esm2020 → esm2022}/lib/core/payment/form/converters/pricepoint/pricepoint.converter.mjs +5 -5
  49. package/{esm2020 → esm2022}/lib/core/payment/form/converters/radio-group/radio-group.converter.mjs +5 -5
  50. package/{esm2020 → esm2022}/lib/core/payment/form/converters/select/select.converter.mjs +5 -5
  51. package/esm2022/lib/core/payment/form/converters/street-number/street-number.converter.mjs +28 -0
  52. package/{esm2020 → esm2022}/lib/core/payment/form/converters/text/text.converter.mjs +5 -5
  53. package/esm2022/lib/core/payment/form/converters/zip/zip.converter.mjs +64 -0
  54. package/{esm2020 → esm2022}/lib/core/payment/form/form.module.mjs +33 -33
  55. package/esm2022/lib/core/payment/form/form.service.mjs +49 -0
  56. package/esm2022/lib/core/payment/form/validators/birth-date/birth-date.validator.mjs +37 -0
  57. package/esm2022/lib/core/payment/form/validators/card-month/card-month.validator.mjs +37 -0
  58. package/esm2022/lib/core/payment/form/validators/card-year/card-year.validator.mjs +34 -0
  59. package/esm2022/lib/core/payment/form/validators/convert.function.mjs +15 -0
  60. package/esm2022/lib/core/payment/form/validators/credit-card-length/credit-card-min-length.validator.mjs +32 -0
  61. package/esm2022/lib/core/payment/form/validators/luhn-formula-validator/luhn-formula.validator.mjs +40 -0
  62. package/{esm2020 → esm2022}/lib/core/payment/form/validators/validators.module.mjs +5 -5
  63. package/{esm2020 → esm2022}/lib/core/payment/form-messages/form-messages.service.mjs +5 -5
  64. package/esm2022/lib/core/payment/initialize/initialize.service.mjs +85 -0
  65. package/esm2022/lib/core/payment/initialize/response/initialize-response.class.mjs +43 -0
  66. package/esm2022/lib/core/payment/payment.service.mjs +369 -0
  67. package/{esm2020 → esm2022}/lib/core/payment/status/check-status/check-status.service.mjs +6 -6
  68. package/{esm2020 → esm2022}/lib/core/payment/status/check-status/request/check-status-request.class.mjs +1 -1
  69. package/esm2022/lib/core/payment/status/listen-status/listen-status.service.mjs +124 -0
  70. package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account-changes.service.mjs +5 -5
  71. package/esm2022/lib/core/payment/status/save-payment-method-status/save-payment-method-status.service.mjs +121 -0
  72. package/esm2022/lib/core/payment/status/status-request/request/status-request.class.mjs +22 -0
  73. package/esm2022/lib/core/payment/status/status-request/response/status-response.class.mjs +98 -0
  74. package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-request.service.mjs +6 -6
  75. package/esm2022/lib/core/payment/status/status.service.mjs +75 -0
  76. package/esm2022/lib/core/payment/status/websocket-status/websocket-status.service.mjs +76 -0
  77. package/esm2022/lib/core/payment/submit/request/submit-request.class.mjs +24 -0
  78. package/esm2022/lib/core/payment/submit/response/submit-response.class.mjs +31 -0
  79. package/esm2022/lib/core/payment/submit/submit.service.mjs +78 -0
  80. package/esm2022/lib/core/payment/sync/request/sync-request.class.mjs +31 -0
  81. package/esm2022/lib/core/payment/sync/response/sync-response.class.mjs +17 -0
  82. package/esm2022/lib/core/payment/sync/sync.service.mjs +157 -0
  83. package/esm2022/lib/core/payment/three-ds/api/notify-dfp-status/notify-dfp-status.service.mjs +49 -0
  84. package/esm2022/lib/core/payment/three-ds/api/status-three-ds/status-three-ds.service.mjs +60 -0
  85. package/esm2022/lib/core/payment/three-ds/dfp-collect/dfp-collect.service.mjs +105 -0
  86. package/esm2022/lib/core/payment/three-ds/reinsurance-check/reinsurance-check.service.mjs +41 -0
  87. package/esm2022/lib/core/payment/three-ds/three-ds-20/three-ds20.service.mjs +109 -0
  88. package/esm2022/lib/core/payment/three-ds/three-ds.service.mjs +42 -0
  89. package/esm2022/lib/core/payment/xps-api/xps-api.service.mjs +85 -0
  90. package/esm2022/lib/core/payment/xps-api-part-request.abstract.mjs +8 -0
  91. package/esm2022/lib/core/payment-methods/payment-methods.service.mjs +75 -0
  92. package/esm2022/lib/core/performance/performance.service.mjs +111 -0
  93. package/esm2022/lib/core/performance/xhr-action.service.mjs +114 -0
  94. package/esm2022/lib/core/saved-methods/saved-methods.service.mjs +54 -0
  95. package/esm2022/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +268 -0
  96. package/esm2022/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +177 -0
  97. package/esm2022/lib/core/sdk-payment-systems/payment-systems/payment-system-processing.service.mjs +84 -0
  98. package/esm2022/lib/core/session/session.service.mjs +57 -0
  99. package/esm2022/lib/core/settings/settings.service.mjs +92 -0
  100. package/esm2022/lib/core/url/url.service.mjs +34 -0
  101. package/esm2022/lib/core/user-agent/user-agent.service.mjs +211 -0
  102. package/esm2022/lib/core/user-balance/user-balance.service.mjs +53 -0
  103. package/esm2022/lib/core/user-behaviour-analytics/event-builder/event-builder.service.mjs +144 -0
  104. package/esm2022/lib/core/user-behaviour-analytics/user-behaviour-analytics.service.mjs +158 -0
  105. package/esm2022/lib/core/web-socket/centrifugo-web-socket.service.mjs +200 -0
  106. package/esm2022/lib/core/web-socket/nchan-web-socket.service.mjs +116 -0
  107. package/esm2022/lib/core/web-socket/web-socket.factory.mjs +28 -0
  108. package/esm2022/lib/core-library.module.mjs +92 -0
  109. package/{esm2020 → esm2022}/lib/core-library.service.mjs +5 -5
  110. package/{esm2020 → esm2022}/lib/shared/pipes/pipes.module.mjs +5 -5
  111. package/esm2022/lib/shared/pipes/unescape-html/unescape-html.pipe.mjs +23 -0
  112. package/{fesm2020 → fesm2022}/xsolla-payment-client-core.mjs +456 -455
  113. package/fesm2022/xsolla-payment-client-core.mjs.map +1 -0
  114. package/package.json +10 -16
  115. package/xsolla-payment-client-core-0.2.22.tgz +0 -0
  116. package/esm2020/lib/core/device-finger-print/device-finger-print.service.mjs +0 -67
  117. package/esm2020/lib/core/encrypt-credit-card/encrypt-credit-card.service.mjs +0 -72
  118. package/esm2020/lib/core/errors-mapping/xps-response-errors-mapping.service.mjs +0 -52
  119. package/esm2020/lib/core/exceptions-handling/elk/elk-logger.service.mjs +0 -120
  120. package/esm2020/lib/core/exceptions-handling/errors/http-error.class.mjs +0 -40
  121. package/esm2020/lib/core/exceptions-handling/errors/tagged-error.class.mjs +0 -16
  122. package/esm2020/lib/core/http/secure-api/secure-api.service.mjs +0 -55
  123. package/esm2020/lib/core/legal/refund-policy.service.mjs +0 -30
  124. package/esm2020/lib/core/legal/secure-connection.service.mjs +0 -31
  125. package/esm2020/lib/core/payment/actions/next-action.service.mjs +0 -61
  126. package/esm2020/lib/core/payment/actions/redirect/redirect.action.class.mjs +0 -60
  127. package/esm2020/lib/core/payment/actions/status-updated/status-updated.action.class.mjs +0 -38
  128. package/esm2020/lib/core/payment/config/config.service.mjs +0 -37
  129. package/esm2020/lib/core/payment/finance-details/finance-details.service.mjs +0 -38
  130. package/esm2020/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs +0 -264
  131. package/esm2020/lib/core/payment/form/controls/control-config.service.mjs +0 -46
  132. package/esm2020/lib/core/payment/form/converters/checkbox/checkbox.converter.mjs +0 -33
  133. package/esm2020/lib/core/payment/form/converters/converter.abstract.mjs +0 -76
  134. package/esm2020/lib/core/payment/form/converters/cvv/cvv.converter.mjs +0 -72
  135. package/esm2020/lib/core/payment/form/converters/street-number/street-number.converter.mjs +0 -28
  136. package/esm2020/lib/core/payment/form/converters/zip/zip.converter.mjs +0 -64
  137. package/esm2020/lib/core/payment/form/form.service.mjs +0 -49
  138. package/esm2020/lib/core/payment/form/validators/birth-date/birth-date.validator.mjs +0 -37
  139. package/esm2020/lib/core/payment/form/validators/card-month/card-month.validator.mjs +0 -37
  140. package/esm2020/lib/core/payment/form/validators/card-year/card-year.validator.mjs +0 -34
  141. package/esm2020/lib/core/payment/form/validators/convert.function.mjs +0 -15
  142. package/esm2020/lib/core/payment/form/validators/credit-card-length/credit-card-min-length.validator.mjs +0 -32
  143. package/esm2020/lib/core/payment/form/validators/luhn-formula-validator/luhn-formula.validator.mjs +0 -40
  144. package/esm2020/lib/core/payment/initialize/initialize.service.mjs +0 -85
  145. package/esm2020/lib/core/payment/initialize/response/initialize-response.class.mjs +0 -43
  146. package/esm2020/lib/core/payment/payment.service.mjs +0 -369
  147. package/esm2020/lib/core/payment/status/listen-status/listen-status.service.mjs +0 -124
  148. package/esm2020/lib/core/payment/status/save-payment-method-status/save-payment-method-status.service.mjs +0 -121
  149. package/esm2020/lib/core/payment/status/status-request/request/status-request.class.mjs +0 -22
  150. package/esm2020/lib/core/payment/status/status-request/response/status-response.class.mjs +0 -98
  151. package/esm2020/lib/core/payment/status/status.service.mjs +0 -75
  152. package/esm2020/lib/core/payment/status/websocket-status/websocket-status.service.mjs +0 -76
  153. package/esm2020/lib/core/payment/submit/request/submit-request.class.mjs +0 -24
  154. package/esm2020/lib/core/payment/submit/response/submit-response.class.mjs +0 -31
  155. package/esm2020/lib/core/payment/submit/submit.service.mjs +0 -78
  156. package/esm2020/lib/core/payment/sync/request/sync-request.class.mjs +0 -31
  157. package/esm2020/lib/core/payment/sync/response/sync-response.class.mjs +0 -17
  158. package/esm2020/lib/core/payment/sync/sync.service.mjs +0 -157
  159. package/esm2020/lib/core/payment/three-ds/api/notify-dfp-status/notify-dfp-status.service.mjs +0 -49
  160. package/esm2020/lib/core/payment/three-ds/api/status-three-ds/status-three-ds.service.mjs +0 -60
  161. package/esm2020/lib/core/payment/three-ds/dfp-collect/dfp-collect.service.mjs +0 -105
  162. package/esm2020/lib/core/payment/three-ds/reinsurance-check/reinsurance-check.service.mjs +0 -41
  163. package/esm2020/lib/core/payment/three-ds/three-ds-20/three-ds20.service.mjs +0 -109
  164. package/esm2020/lib/core/payment/three-ds/three-ds.service.mjs +0 -42
  165. package/esm2020/lib/core/payment/xps-api/xps-api.service.mjs +0 -85
  166. package/esm2020/lib/core/payment/xps-api-part-request.abstract.mjs +0 -8
  167. package/esm2020/lib/core/payment-methods/payment-methods.service.mjs +0 -75
  168. package/esm2020/lib/core/performance/performance.service.mjs +0 -111
  169. package/esm2020/lib/core/performance/xhr-action.service.mjs +0 -114
  170. package/esm2020/lib/core/saved-methods/saved-methods.service.mjs +0 -54
  171. package/esm2020/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +0 -268
  172. package/esm2020/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +0 -177
  173. package/esm2020/lib/core/sdk-payment-systems/payment-systems/payment-system-processing.service.mjs +0 -84
  174. package/esm2020/lib/core/session/session.service.mjs +0 -57
  175. package/esm2020/lib/core/settings/settings.service.mjs +0 -92
  176. package/esm2020/lib/core/url/url.service.mjs +0 -34
  177. package/esm2020/lib/core/user-agent/user-agent.service.mjs +0 -211
  178. package/esm2020/lib/core/user-balance/user-balance.service.mjs +0 -53
  179. package/esm2020/lib/core/user-behaviour-analytics/event-builder/event-builder.service.mjs +0 -144
  180. package/esm2020/lib/core/user-behaviour-analytics/user-behaviour-analytics.service.mjs +0 -158
  181. package/esm2020/lib/core/web-socket/centrifugo-web-socket.service.mjs +0 -200
  182. package/esm2020/lib/core/web-socket/nchan-web-socket.service.mjs +0 -116
  183. package/esm2020/lib/core/web-socket/web-socket.factory.mjs +0 -28
  184. package/esm2020/lib/core-library.module.mjs +0 -92
  185. package/esm2020/lib/shared/pipes/unescape-html/unescape-html.pipe.mjs +0 -23
  186. package/fesm2015/xsolla-payment-client-core.mjs +0 -8138
  187. package/fesm2015/xsolla-payment-client-core.mjs.map +0 -1
  188. package/fesm2020/xsolla-payment-client-core.mjs.map +0 -1
  189. package/xsolla-payment-client-core-0.2.21.tgz +0 -0
  190. /package/{esm2020 → esm2022}/lib/core/agreementsGroup.const.mjs +0 -0
  191. /package/{esm2020 → esm2022}/lib/core/boolean-number.enum.mjs +0 -0
  192. /package/{esm2020 → esm2022}/lib/core/combined-payment-methods/combined-payment-methods.interface.mjs +0 -0
  193. /package/{esm2020 → esm2022}/lib/core/countries-api/country-response.interface.mjs +0 -0
  194. /package/{esm2020 → esm2022}/lib/core/countries-api/country.interface.mjs +0 -0
  195. /package/{esm2020 → esm2022}/lib/core/country/country-iso-code.enum.mjs +0 -0
  196. /package/{esm2020 → esm2022}/lib/core/credit-card/credit-card-settings.interface.mjs +0 -0
  197. /package/{esm2020 → esm2022}/lib/core/credit-card/credit-card-types.enum.mjs +0 -0
  198. /package/{esm2020 → esm2022}/lib/core/credit-card/credit-card.interface.mjs +0 -0
  199. /package/{esm2020 → esm2022}/lib/core/credit-card/credit-cards-map.const.mjs +0 -0
  200. /package/{esm2020 → esm2022}/lib/core/credit-card/default-mask.const.mjs +0 -0
  201. /package/{esm2020 → esm2022}/lib/core/credit-card/four-block-mask.const.mjs +0 -0
  202. /package/{esm2020 → esm2022}/lib/core/credit-card/ordered-cards-settings.const.mjs +0 -0
  203. /package/{esm2020 → esm2022}/lib/core/credit-card/types/american-express.mjs +0 -0
  204. /package/{esm2020 → esm2022}/lib/core/credit-card/types/aura.mjs +0 -0
  205. /package/{esm2020 → esm2022}/lib/core/credit-card/types/china-union-pay.mjs +0 -0
  206. /package/{esm2020 → esm2022}/lib/core/credit-card/types/dankort.mjs +0 -0
  207. /package/{esm2020 → esm2022}/lib/core/credit-card/types/default-card.mjs +0 -0
  208. /package/{esm2020 → esm2022}/lib/core/credit-card/types/diners-clubs.mjs +0 -0
  209. /package/{esm2020 → esm2022}/lib/core/credit-card/types/discover.mjs +0 -0
  210. /package/{esm2020 → esm2022}/lib/core/credit-card/types/elo.mjs +0 -0
  211. /package/{esm2020 → esm2022}/lib/core/credit-card/types/hipercard.mjs +0 -0
  212. /package/{esm2020 → esm2022}/lib/core/credit-card/types/jcb.mjs +0 -0
  213. /package/{esm2020 → esm2022}/lib/core/credit-card/types/maestro.mjs +0 -0
  214. /package/{esm2020 → esm2022}/lib/core/credit-card/types/mastercard.mjs +0 -0
  215. /package/{esm2020 → esm2022}/lib/core/credit-card/types/mir.mjs +0 -0
  216. /package/{esm2020 → esm2022}/lib/core/credit-card/types/naranja.mjs +0 -0
  217. /package/{esm2020 → esm2022}/lib/core/credit-card/types/postepay.mjs +0 -0
  218. /package/{esm2020 → esm2022}/lib/core/credit-card/types/visa.mjs +0 -0
  219. /package/{esm2020 → esm2022}/lib/core/deep-readonly.type.mjs +0 -0
  220. /package/{esm2020 → esm2022}/lib/core/device-finger-print/hash.type.mjs +0 -0
  221. /package/{esm2020 → esm2022}/lib/core/edit-saved-methods/delete-method-response.interface.mjs +0 -0
  222. /package/{esm2020 → esm2022}/lib/core/encrypt-credit-card/encrypted-card.interface.mjs +0 -0
  223. /package/{esm2020 → esm2022}/lib/core/encrypt-credit-card/open-card.interface.mjs +0 -0
  224. /package/{esm2020 → esm2022}/lib/core/errors-mapping/card-number-sanction-error-codes.const.mjs +0 -0
  225. /package/{esm2020 → esm2022}/lib/core/errors-mapping/field-special-errors-map.const.mjs +0 -0
  226. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/elk/additional-info.interface.mjs +0 -0
  227. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/elk/error-without-meta-fields.interface.mjs +0 -0
  228. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/elk/log-message.interface.mjs +0 -0
  229. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/api-error.interface.mjs +0 -0
  230. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/app-error.class.mjs +0 -0
  231. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/elk-error-types.enum.mjs +0 -0
  232. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/encrypt-card-error.mjs +0 -0
  233. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/response-error.class.mjs +0 -0
  234. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/terminal-error.class.mjs +0 -0
  235. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/token-error.class.mjs +0 -0
  236. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/ws-error.class.mjs +0 -0
  237. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/http-interceptor/http-error-data.interface.mjs +0 -0
  238. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/http-interceptor/http-error-response-data.interface.mjs +0 -0
  239. /package/{esm2020 → esm2022}/lib/core/extended-window.interface.mjs +0 -0
  240. /package/{esm2020 → esm2022}/lib/core/http/secure-api/api-url.const.mjs +0 -0
  241. /package/{esm2020 → esm2022}/lib/core/http/secure-api/options.interface.mjs +0 -0
  242. /package/{esm2020 → esm2022}/lib/core/legal/legal.component.config.mjs +0 -0
  243. /package/{esm2020 → esm2022}/lib/core/payment/actions/action.interface.mjs +0 -0
  244. /package/{esm2020 → esm2022}/lib/core/payment/actions/check-status/check-status.action.type.mjs +0 -0
  245. /package/{esm2020 → esm2022}/lib/core/payment/actions/next-action.interface.mjs +0 -0
  246. /package/{esm2020 → esm2022}/lib/core/payment/actions/next-actions.mjs +0 -0
  247. /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/pay-station4-url.const.mjs +0 -0
  248. /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/ps4-pages/pages-payment-methods-id.const.mjs +0 -0
  249. /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/ps4-pages/pages-routes.const.mjs +0 -0
  250. /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/redirect.action.type.mjs +0 -0
  251. /package/{esm2020 → esm2022}/lib/core/payment/actions/show-errors/show-errors.action.type.mjs +0 -0
  252. /package/{esm2020 → esm2022}/lib/core/payment/actions/show-fields/show-fields.action.type.mjs +0 -0
  253. /package/{esm2020 → esm2022}/lib/core/payment/actions/show-mobile-payment-screen/show-mobile-payment-screen.action.type.mjs +0 -0
  254. /package/{esm2020 → esm2022}/lib/core/payment/actions/show-qr-code/show-qr-code.action.type.mjs +0 -0
  255. /package/{esm2020 → esm2022}/lib/core/payment/actions/special-button/special-button.action.type.mjs +0 -0
  256. /package/{esm2020 → esm2022}/lib/core/payment/actions/status-updated/status-updated.action.type.mjs +0 -0
  257. /package/{esm2020 → esm2022}/lib/core/payment/actions/three-ds/three-ds.action.type.mjs +0 -0
  258. /package/{esm2020 → esm2022}/lib/core/payment/checkout-item.interface.mjs +0 -0
  259. /package/{esm2020 → esm2022}/lib/core/payment/credit-card-payment-methods-id.variable.mjs +0 -0
  260. /package/{esm2020 → esm2022}/lib/core/payment/credit-card-state/credit-card-state.interface.mjs +0 -0
  261. /package/{esm2020 → esm2022}/lib/core/payment/emit-data.service.abstract.mjs +0 -0
  262. /package/{esm2020 → esm2022}/lib/core/payment/field-names.enum.mjs +0 -0
  263. /package/{esm2020 → esm2022}/lib/core/payment/field.interface.mjs +0 -0
  264. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/cart-item.interface.mjs +0 -0
  265. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/cart-line.interface.mjs +0 -0
  266. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/cart-summary.interface.mjs +0 -0
  267. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/finance-details.interface.mjs +0 -0
  268. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/price.helpers.mjs +0 -0
  269. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/price.interface.mjs +0 -0
  270. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/field-with-amount-and-currency.interface.mjs +0 -0
  271. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/fields-with-currency.mjs +0 -0
  272. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/finance-info.interface.mjs +0 -0
  273. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/summary/default-image-patterns.const.mjs +0 -0
  274. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/summary/sales-tax-details-key.enum.mjs +0 -0
  275. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/vat-details-key.enum.mjs +0 -0
  276. /package/{esm2020 → esm2022}/lib/core/payment/form/common-control-config.interface.mjs +0 -0
  277. /package/{esm2020 → esm2022}/lib/core/payment/form/control-status.interface.mjs +0 -0
  278. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/card-number/card-number-control.config.mjs +0 -0
  279. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/checkbox/checkbox-control.config.mjs +0 -0
  280. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/control-config.mjs +0 -0
  281. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/control-type.type.mjs +0 -0
  282. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/coupon/coupon-control.config.mjs +0 -0
  283. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/phone-control.config.mjs +0 -0
  284. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/radio-control/radio-control.config.mjs +0 -0
  285. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/radio-control/radio-option.interface.mjs +0 -0
  286. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/search-select/search-select-option.interface.mjs +0 -0
  287. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/search-select/select-control.config.mjs +0 -0
  288. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/search-select/select-option.interface.mjs +0 -0
  289. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/text-control.config.mjs +0 -0
  290. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/converters-map.interface.mjs +0 -0
  291. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/converters-map.mjs +0 -0
  292. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/cpf-name/cpf-name-regex.variable.mjs +0 -0
  293. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/cvv/cvv-form-state.interface.mjs +0 -0
  294. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/street-number/street-number-from-state.interface.mjs +0 -0
  295. /package/{esm2020 → esm2022}/lib/core/payment/form/field-form-states.interface.mjs +0 -0
  296. /package/{esm2020 → esm2022}/lib/core/payment/form/field-status.interface.mjs +0 -0
  297. /package/{esm2020 → esm2022}/lib/core/payment/form/form-fields-status.interface.mjs +0 -0
  298. /package/{esm2020 → esm2022}/lib/core/payment/form/form-state.interface.mjs +0 -0
  299. /package/{esm2020 → esm2022}/lib/core/payment/form/input-event.enum.mjs +0 -0
  300. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/async-validator-fn.type.mjs +0 -0
  301. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/coupon/coupon-validator.mjs +0 -0
  302. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/email/email-validator.mjs +0 -0
  303. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/is-empty-input-value.function.mjs +0 -0
  304. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/max-length-validator.mjs +0 -0
  305. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/min-length-validator.mjs +0 -0
  306. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/phone-validator.mjs +0 -0
  307. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/required/required.validator.mjs +0 -0
  308. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/restricted-value/restricted-value.validator.mjs +0 -0
  309. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/validation-error.interface.mjs +0 -0
  310. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/validation-errors.interface.mjs +0 -0
  311. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/validator-fn.type.mjs +0 -0
  312. /package/{esm2020 → esm2022}/lib/core/payment/form-response.interface.mjs +0 -0
  313. /package/{esm2020 → esm2022}/lib/core/payment/initialize/initialize-request-params.interface.mjs +0 -0
  314. /package/{esm2020 → esm2022}/lib/core/payment/initialize/response/initialize-response.token.mjs +0 -0
  315. /package/{esm2020 → esm2022}/lib/core/payment/invoice.interface.mjs +0 -0
  316. /package/{esm2020 → esm2022}/lib/core/payment/payment-config.interface.mjs +0 -0
  317. /package/{esm2020 → esm2022}/lib/core/payment/payment-form.interface.mjs +0 -0
  318. /package/{esm2020 → esm2022}/lib/core/payment/payment.interface.mjs +0 -0
  319. /package/{esm2020 → esm2022}/lib/core/payment/status/check-status/request/check-status-request.token.mjs +0 -0
  320. /package/{esm2020 → esm2022}/lib/core/payment/status/check-status/response/check-status-response.class.mjs +0 -0
  321. /package/{esm2020 → esm2022}/lib/core/payment/status/check-status/response/check-status-response.token.mjs +0 -0
  322. /package/{esm2020 → esm2022}/lib/core/payment/status/finance-info-field.interface.mjs +0 -0
  323. /package/{esm2020 → esm2022}/lib/core/payment/status/line-item.interface.mjs +0 -0
  324. /package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account-changes.interface.mjs +0 -0
  325. /package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account.interface.mjs +0 -0
  326. /package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/save-payment-method-status.enum.mjs +0 -0
  327. /package/{esm2020 → esm2022}/lib/core/payment/status/status-finance-info.interface.mjs +0 -0
  328. /package/{esm2020 → esm2022}/lib/core/payment/status/status-groups.mjs +0 -0
  329. /package/{esm2020 → esm2022}/lib/core/payment/status/status-order.interface.mjs +0 -0
  330. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/request/status-request.token.mjs +0 -0
  331. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/required-status-search-params.const.mjs +0 -0
  332. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/response/status-response.token.mjs +0 -0
  333. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-request-params.interface.mjs +0 -0
  334. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-search-param.enum.mjs +0 -0
  335. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-search-params.map.mjs +0 -0
  336. /package/{esm2020 → esm2022}/lib/core/payment/status/status-settings.interface.mjs +0 -0
  337. /package/{esm2020 → esm2022}/lib/core/payment/status/status-updated.interface.mjs +0 -0
  338. /package/{esm2020 → esm2022}/lib/core/payment/status/status.enum.mjs +0 -0
  339. /package/{esm2020 → esm2022}/lib/core/payment/status/status.interface.mjs +0 -0
  340. /package/{esm2020 → esm2022}/lib/core/payment/status/title-class.enum.mjs +0 -0
  341. /package/{esm2020 → esm2022}/lib/core/payment/status/web-socket-client-type.enum.mjs +0 -0
  342. /package/{esm2020 → esm2022}/lib/core/payment/status/websocket-status/websocket-status.enum.mjs +0 -0
  343. /package/{esm2020 → esm2022}/lib/core/payment/submit/request/submit-request.token.mjs +0 -0
  344. /package/{esm2020 → esm2022}/lib/core/payment/submit/response/is-submit-response.function.mjs +0 -0
  345. /package/{esm2020 → esm2022}/lib/core/payment/submit/response/submit-response.token.mjs +0 -0
  346. /package/{esm2020 → esm2022}/lib/core/payment/sync/field-async-validation.interface.mjs +0 -0
  347. /package/{esm2020 → esm2022}/lib/core/payment/sync/field-sync-state.interface.mjs +0 -0
  348. /package/{esm2020 → esm2022}/lib/core/payment/sync/request/sync-request.token.mjs +0 -0
  349. /package/{esm2020 → esm2022}/lib/core/payment/sync/response/sync-response.token.mjs +0 -0
  350. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/notify-dfp-status/request/notify-dfp-status-request.class.mjs +0 -0
  351. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/notify-dfp-status/request/notify-dfp-status-request.token.mjs +0 -0
  352. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/request/status-three-ds-request.class.mjs +0 -0
  353. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/request/status-three-ds-request.token.mjs +0 -0
  354. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/response/status-three-ds-response.class.mjs +0 -0
  355. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/response/status-three-ds-response.token.mjs +0 -0
  356. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/status-three-ds-response.interface.mjs +0 -0
  357. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/status-types.enum.mjs +0 -0
  358. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/three-ds-checkout-form.interface.mjs +0 -0
  359. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/reinsurance-check/timer.interface.mjs +0 -0
  360. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/three-ds-20/status-update.interface.mjs +0 -0
  361. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/three-ds-form.interface.mjs +0 -0
  362. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/three-ds-status-websocket-types.enum.mjs +0 -0
  363. /package/{esm2020 → esm2022}/lib/core/payment/virtual-currency.interface.mjs +0 -0
  364. /package/{esm2020 → esm2022}/lib/core/payment/xps-api-part.abstract.mjs +0 -0
  365. /package/{esm2020 → esm2022}/lib/core/payment/xps-checkout.mjs +0 -0
  366. /package/{esm2020 → esm2022}/lib/core/payment/xps-comand.enum.mjs +0 -0
  367. /package/{esm2020 → esm2022}/lib/core/payment/xps-error.interface.mjs +0 -0
  368. /package/{esm2020 → esm2022}/lib/core/payment/xps-finance.interface.mjs +0 -0
  369. /package/{esm2020 → esm2022}/lib/core/payment/xps-message.interface.mjs +0 -0
  370. /package/{esm2020 → esm2022}/lib/core/payment/xps-purchase.interface.mjs +0 -0
  371. /package/{esm2020 → esm2022}/lib/core/payment/xps-request-params.interface.mjs +0 -0
  372. /package/{esm2020 → esm2022}/lib/core/payment/xps-request.interface.mjs +0 -0
  373. /package/{esm2020 → esm2022}/lib/core/payment/xps-response.error.mjs +0 -0
  374. /package/{esm2020 → esm2022}/lib/core/payment/xps-response.interface.mjs +0 -0
  375. /package/{esm2020 → esm2022}/lib/core/payment/xps-summary.interface.mjs +0 -0
  376. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-method-api.interface.mjs +0 -0
  377. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-method.interface.mjs +0 -0
  378. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-api.interface.mjs +0 -0
  379. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-request-params.interface.mjs +0 -0
  380. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-response.class.mjs +0 -0
  381. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-response.interface.mjs +0 -0
  382. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-response.token.mjs +0 -0
  383. /package/{esm2020 → esm2022}/lib/core/performance/xhr-action.interface.mjs +0 -0
  384. /package/{esm2020 → esm2022}/lib/core/properties.type.mjs +0 -0
  385. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-method-api.interface.mjs +0 -0
  386. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-method.interface.mjs +0 -0
  387. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-request-params.interface.mjs +0 -0
  388. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-response.class.mjs +0 -0
  389. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-response.interface.mjs +0 -0
  390. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-response.token.mjs +0 -0
  391. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay-integration.type.mjs +0 -0
  392. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay-params.interface.mjs +0 -0
  393. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay.const.mjs +0 -0
  394. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay.errors.enum.mjs +0 -0
  395. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/checkout-params.interface.mjs +0 -0
  396. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-button-color.type.mjs +0 -0
  397. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-checkout.interface.mjs +0 -0
  398. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-init-params.interface.mjs +0 -0
  399. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-library.interface.mjs +0 -0
  400. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/sdk-payment-methods.const.mjs +0 -0
  401. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/sdk-payment-systems-initial-data.interface.mjs +0 -0
  402. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/sdk-payment-systems.interface.mjs +0 -0
  403. /package/{esm2020 → esm2022}/lib/core/settings/auto-redirect-on-status.mjs +0 -0
  404. /package/{esm2020 → esm2022}/lib/core/settings/balance.interface.mjs +0 -0
  405. /package/{esm2020 → esm2022}/lib/core/settings/bonus.interface.mjs +0 -0
  406. /package/{esm2020 → esm2022}/lib/core/settings/configuration.interface.mjs +0 -0
  407. /package/{esm2020 → esm2022}/lib/core/settings/empty-utils-response.error.mjs +0 -0
  408. /package/{esm2020 → esm2022}/lib/core/settings/header-type.enum.mjs +0 -0
  409. /package/{esm2020 → esm2022}/lib/core/settings/offer.interface.mjs +0 -0
  410. /package/{esm2020 → esm2022}/lib/core/settings/project.interface.mjs +0 -0
  411. /package/{esm2020 → esm2022}/lib/core/settings/purchase.interface.mjs +0 -0
  412. /package/{esm2020 → esm2022}/lib/core/settings/settings-mode.enum.mjs +0 -0
  413. /package/{esm2020 → esm2022}/lib/core/settings/settings.interface.mjs +0 -0
  414. /package/{esm2020 → esm2022}/lib/core/settings/status-back-show.mjs +0 -0
  415. /package/{esm2020 → esm2022}/lib/core/settings/tracking-info.interface.mjs +0 -0
  416. /package/{esm2020 → esm2022}/lib/core/settings/user.interface.mjs +0 -0
  417. /package/{esm2020 → esm2022}/lib/core/settings/utils-response.interface.mjs +0 -0
  418. /package/{esm2020 → esm2022}/lib/core/type-guards/is-null.function.mjs +0 -0
  419. /package/{esm2020 → esm2022}/lib/core/type-guards/is-string.function.mjs +0 -0
  420. /package/{esm2020 → esm2022}/lib/core/type-guards/is-undefined.function.mjs +0 -0
  421. /package/{esm2020 → esm2022}/lib/core/url/search-params.interface.mjs +0 -0
  422. /package/{esm2020 → esm2022}/lib/core/user-agent/browserInfo.interface.mjs +0 -0
  423. /package/{esm2020 → esm2022}/lib/core/user-agent/browsers.mjs +0 -0
  424. /package/{esm2020 → esm2022}/lib/core/user-agent/device.enum.mjs +0 -0
  425. /package/{esm2020 → esm2022}/lib/core/user-agent/os.mjs +0 -0
  426. /package/{esm2020 → esm2022}/lib/core/user-agent/user-agent-data.interface.mjs +0 -0
  427. /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-api.interface.mjs +0 -0
  428. /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-request-params.interface.mjs +0 -0
  429. /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-response.class.mjs +0 -0
  430. /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-response.token.mjs +0 -0
  431. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/event-parameter-types.mjs +0 -0
  432. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/invoice.interface.mjs +0 -0
  433. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/purchase.type.mjs +0 -0
  434. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/user-behaviour-event.interface.mjs +0 -0
  435. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/one-time-analytics-events.const.mjs +0 -0
  436. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-analytics.interface.mjs +0 -0
  437. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-categories.mjs +0 -0
  438. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types.mjs +0 -0
  439. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-event-name.enum.mjs +0 -0
  440. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-session-options.mjs +0 -0
  441. /package/{esm2020 → esm2022}/lib/core/web-socket/web-socket-client-type.enum.mjs +0 -0
  442. /package/{esm2020 → esm2022}/lib/core/web-socket/web-socket.interface.mjs +0 -0
  443. /package/{esm2020 → esm2022}/lib/core/window.token.mjs +0 -0
  444. /package/{esm2020 → esm2022}/lib/core/xps-boolean.enum.mjs +0 -0
  445. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  446. /package/{esm2020 → esm2022}/xsolla-payment-client-core.mjs +0 -0
@@ -11,13 +11,13 @@ export class FormMessagesService extends EmitDataService {
11
11
  const mapInfoMessages = (infoMessage) => this.unescapeHtmlPipe.transform(infoMessage.message);
12
12
  super.emit(messages?.map(mapInfoMessages) ?? []);
13
13
  }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormMessagesService, deps: [{ token: i1.UnescapeHtmlPipe }], target: i0.ɵɵFactoryTarget.Injectable }); }
15
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormMessagesService, providedIn: 'root' }); }
14
16
  }
15
- FormMessagesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormMessagesService, deps: [{ token: i1.UnescapeHtmlPipe }], target: i0.ɵɵFactoryTarget.Injectable });
16
- FormMessagesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormMessagesService, providedIn: 'root' });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormMessagesService, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: FormMessagesService, decorators: [{
18
18
  type: Injectable,
19
19
  args: [{
20
20
  providedIn: 'root',
21
21
  }]
22
- }], ctorParameters: function () { return [{ type: i1.UnescapeHtmlPipe }]; } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tZXNzYWdlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9mb3JtLW1lc3NhZ2VzL2Zvcm0tbWVzc2FnZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBT2hFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxlQUF5QjtJQUNoRSxZQUFvQyxnQkFBa0M7UUFDcEUsS0FBSyxFQUFFLENBQUM7UUFEMEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUV0RSxDQUFDO0lBRU0sY0FBYyxDQUFDLFFBQXVCO1FBQzNDLE1BQU0sZUFBZSxHQUFHLENBQUMsV0FBdUIsRUFBVSxFQUFFLENBQzFELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZELEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDOztnSEFWVSxtQkFBbUI7b0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbWl0RGF0YVNlcnZpY2UgfSBmcm9tICcuLi9lbWl0LWRhdGEuc2VydmljZS5hYnN0cmFjdCc7XG5pbXBvcnQgeyBYcHNNZXNzYWdlIH0gZnJvbSAnLi4veHBzLW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVuZXNjYXBlSHRtbFBpcGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvcGlwZXMvdW5lc2NhcGUtaHRtbC91bmVzY2FwZS1odG1sLnBpcGUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybU1lc3NhZ2VzU2VydmljZSBleHRlbmRzIEVtaXREYXRhU2VydmljZTxzdHJpbmdbXT4ge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB1bmVzY2FwZUh0bWxQaXBlOiBVbmVzY2FwZUh0bWxQaXBlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0T25SZXNwb25zZShtZXNzYWdlcz86IFhwc01lc3NhZ2VbXSk6IHZvaWQge1xuICAgIGNvbnN0IG1hcEluZm9NZXNzYWdlcyA9IChpbmZvTWVzc2FnZTogWHBzTWVzc2FnZSk6IHN0cmluZyA9PlxuICAgICAgdGhpcy51bmVzY2FwZUh0bWxQaXBlLnRyYW5zZm9ybShpbmZvTWVzc2FnZS5tZXNzYWdlKTtcblxuICAgIHN1cGVyLmVtaXQobWVzc2FnZXM/Lm1hcChtYXBJbmZvTWVzc2FnZXMpID8/IFtdKTtcbiAgfVxufVxuIl19
22
+ }], ctorParameters: () => [{ type: i1.UnescapeHtmlPipe }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tZXNzYWdlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9mb3JtLW1lc3NhZ2VzL2Zvcm0tbWVzc2FnZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBT2hFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxlQUF5QjtJQUNoRSxZQUFvQyxnQkFBa0M7UUFDcEUsS0FBSyxFQUFFLENBQUM7UUFEMEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUV0RSxDQUFDO0lBRU0sY0FBYyxDQUFDLFFBQXVCO1FBQzNDLE1BQU0sZUFBZSxHQUFHLENBQUMsV0FBdUIsRUFBVSxFQUFFLENBQzFELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZELEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDOzhHQVZVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbWl0RGF0YVNlcnZpY2UgfSBmcm9tICcuLi9lbWl0LWRhdGEuc2VydmljZS5hYnN0cmFjdCc7XG5pbXBvcnQgeyBYcHNNZXNzYWdlIH0gZnJvbSAnLi4veHBzLW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVuZXNjYXBlSHRtbFBpcGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvcGlwZXMvdW5lc2NhcGUtaHRtbC91bmVzY2FwZS1odG1sLnBpcGUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybU1lc3NhZ2VzU2VydmljZSBleHRlbmRzIEVtaXREYXRhU2VydmljZTxzdHJpbmdbXT4ge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB1bmVzY2FwZUh0bWxQaXBlOiBVbmVzY2FwZUh0bWxQaXBlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbWl0T25SZXNwb25zZShtZXNzYWdlcz86IFhwc01lc3NhZ2VbXSk6IHZvaWQge1xuICAgIGNvbnN0IG1hcEluZm9NZXNzYWdlcyA9IChpbmZvTWVzc2FnZTogWHBzTWVzc2FnZSk6IHN0cmluZyA9PlxuICAgICAgdGhpcy51bmVzY2FwZUh0bWxQaXBlLnRyYW5zZm9ybShpbmZvTWVzc2FnZS5tZXNzYWdlKTtcblxuICAgIHN1cGVyLmVtaXQobWVzc2FnZXM/Lm1hcChtYXBJbmZvTWVzc2FnZXMpID8/IFtdKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,85 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { ResponseError } from '../../exceptions-handling/errors/response-error.class';
3
+ import { initializeResponseFactoryToken, } from './response/initialize-response.token';
4
+ import { UserBehaviourEventName } from '../../user-behaviour-analytics/user-behaviour-event-name.enum';
5
+ import { userBehaviourEventTypes } from '../../user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../xps-api/xps-api.service";
8
+ import * as i2 from "../../settings/settings.service";
9
+ import * as i3 from "../../country/country.service";
10
+ import * as i4 from "../actions/next-action.service";
11
+ import * as i5 from "../../errors-mapping/xps-response-errors-mapping.service";
12
+ import * as i6 from "../../encrypt-credit-card/encrypt-credit-card.service";
13
+ import * as i7 from "../actions/show-errors/show-errors.action.class";
14
+ import * as i8 from "../../user-behaviour-analytics/user-behaviour-analytics.service";
15
+ export class InitializeService {
16
+ constructor(responseFactory, xpsApiService, settingsService, countryService, nextActionService, xpsResponseErrorsMappingService, encryptCreditCardService, showErrorsActionCreator, userBehaviourAnalyticsService) {
17
+ this.responseFactory = responseFactory;
18
+ this.xpsApiService = xpsApiService;
19
+ this.settingsService = settingsService;
20
+ this.countryService = countryService;
21
+ this.nextActionService = nextActionService;
22
+ this.xpsResponseErrorsMappingService = xpsResponseErrorsMappingService;
23
+ this.encryptCreditCardService = encryptCreditCardService;
24
+ this.showErrorsActionCreator = showErrorsActionCreator;
25
+ this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
26
+ }
27
+ async request(config) {
28
+ const requestParams = {
29
+ access_token: this.settingsService.token,
30
+ pid: String(config.paymentMethodId),
31
+ country: this.countryService.getCountry(),
32
+ returnUrl: config.returnUrl,
33
+ paymentWithSavedMethod: config.paymentWithSavedMethod === true
34
+ ? "1" /* XpsBoolean.true */
35
+ : "0" /* XpsBoolean.false */,
36
+ save_payment_account_only: config.savePaymentMethod
37
+ ? "1" /* XpsBoolean.true */
38
+ : "0" /* XpsBoolean.false */,
39
+ };
40
+ if (config.savedMethodId) {
41
+ requestParams.saved_method_id = config.savedMethodId;
42
+ }
43
+ return this.xpsApiService
44
+ .directPaymentRequest(requestParams)
45
+ .then((xpsResponse) => {
46
+ const response = this.xpsResponseErrorsMappingService.mapErrors(xpsResponse);
47
+ const initializeResponse = this.responseFactory(response);
48
+ if (!initializeResponse.paymentForm) {
49
+ return initializeResponse;
50
+ }
51
+ this.setCreditCardEncryptKey(initializeResponse.paymentForm);
52
+ this.userBehaviourAnalyticsService.fillUserSession(initializeResponse.paymentForm);
53
+ if (initializeResponse.paymentForm?.errors?.length) {
54
+ const logError = (error) => {
55
+ this.userBehaviourAnalyticsService.send(UserBehaviourEventName.showErrorMessage, userBehaviourEventTypes.manual, { value: String(error.code), extraValue: error.message });
56
+ };
57
+ initializeResponse.paymentForm.errors.forEach(logError);
58
+ this.nextActionService.emitFlowUpdates(this.showErrorsActionCreator.getActionData(initializeResponse.paymentForm.errors));
59
+ }
60
+ return initializeResponse;
61
+ })
62
+ .catch((error) => {
63
+ throw new ResponseError(error.message);
64
+ });
65
+ }
66
+ setCreditCardEncryptKey(paymentForm) {
67
+ const publicKeyField = paymentForm.fields.find((field) => field.name === 'public_key');
68
+ if (!publicKeyField) {
69
+ return;
70
+ }
71
+ this.encryptCreditCardService.setPublicKey(atob(publicKeyField.value));
72
+ }
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InitializeService, deps: [{ token: initializeResponseFactoryToken }, { token: i1.XpsApiService }, { token: i2.SettingsService }, { token: i3.CountryService }, { token: i4.NextActionService }, { token: i5.XpsResponseErrorsMappingService }, { token: i6.EncryptCreditCardService }, { token: i7.ShowErrorsActionCreator }, { token: i8.UserBehaviourAnalyticsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
74
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InitializeService, providedIn: 'root' }); }
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InitializeService, decorators: [{
77
+ type: Injectable,
78
+ args: [{
79
+ providedIn: 'root',
80
+ }]
81
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
82
+ type: Inject,
83
+ args: [initializeResponseFactoryToken]
84
+ }] }, { type: i1.XpsApiService }, { type: i2.SettingsService }, { type: i3.CountryService }, { type: i4.NextActionService }, { type: i5.XpsResponseErrorsMappingService }, { type: i6.EncryptCreditCardService }, { type: i7.ShowErrorsActionCreator }, { type: i8.UserBehaviourAnalyticsService }] });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9pbml0aWFsaXplL2luaXRpYWxpemUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFTdEYsT0FBTyxFQUVMLDhCQUE4QixHQUMvQixNQUFNLHNDQUFzQyxDQUFDO0FBSzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdGQUFnRixDQUFDOzs7Ozs7Ozs7O0FBTXpILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFFcUIsZUFBMEMsRUFDNUMsYUFBNEIsRUFDNUIsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsaUJBQW9DLEVBQ3BDLCtCQUFnRSxFQUNoRSx3QkFBa0QsRUFDbEQsdUJBQWdELEVBQ2hELDZCQUE0RDtRQVIxRCxvQkFBZSxHQUFmLGVBQWUsQ0FBMkI7UUFDNUMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBaUM7UUFDaEUsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBK0I7SUFDNUUsQ0FBQztJQUVHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBcUI7UUFDeEMs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LE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3VudHJ5U2VydmljZSB9IGZyb20gJy4uLy4uL2NvdW50cnkvY291bnRyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlc3BvbnNlRXJyb3IgfSBmcm9tICcuLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy9yZXNwb25zZS1lcnJvci5jbGFzcyc7XG5pbXBvcnQgeyBFbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9lbmNyeXB0LWNyZWRpdC1jYXJkL2VuY3J5cHQtY3JlZGl0LWNhcmQuc2VydmljZSc7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXR0aW5ncy9zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnRDb25maWcgfSBmcm9tICcuLi9wYXltZW50LWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTmV4dEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9hY3Rpb25zL25leHQtYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2hvd0Vycm9yc0FjdGlvbkNyZWF0b3IgfSBmcm9tICcuLi9hY3Rpb25zL3Nob3ctZXJyb3JzL3Nob3ctZXJyb3JzLmFjdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBYcHNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4veHBzLWFwaS94cHMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi9maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGF5bWVudEZvcm0gfSBmcm9tICcuLi9wYXltZW50LWZvcm0uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIEluaXRpYWxpemVSZXNwb25zZUZhY3RvcnksXG4gIGluaXRpYWxpemVSZXNwb25zZUZhY3RvcnlUb2tlbixcbn0gZnJvbSAnLi9yZXNwb25zZS9pbml0aWFsaXplLXJlc3BvbnNlLnRva2VuJztcbmltcG9ydCB7IEluaXRpYWxpemVSZXNwb25zZSB9IGZyb20gJy4vcmVzcG9uc2UvaW5pdGlhbGl6ZS1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBJbml0aWFsaXplUmVxdWVzdFBhcmFtcyB9IGZyb20gJy4vaW5pdGlhbGl6ZS1yZXF1ZXN0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZSB9IGZyb20gJy4uLy4uL2Vycm9ycy1tYXBwaW5nL3hwcy1yZXNwb25zZS1lcnJvcnMtbWFwcGluZy5zZXJ2aWNlJztcbmltcG9ydCB7IFhwc0Jvb2xlYW4gfSBmcm9tICcuLi8uLi94cHMtYm9vbGVhbi5lbnVtJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcbmltcG9ydCB7IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LXR5cGVzJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEluaXRpYWxpemVTZXJ2aWNlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoaW5pdGlhbGl6ZVJlc3BvbnNlRmFjdG9yeVRva2VuKVxuICAgIHByb3RlY3RlZCByZWFkb25seSByZXNwb25zZUZhY3Rvcnk6IEluaXRpYWxpemVSZXNwb25zZUZhY3RvcnksXG4gICAgcHJpdmF0ZSByZWFkb25seSB4cHNBcGlTZXJ2aWNlOiBYcHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3VudHJ5U2VydmljZTogQ291bnRyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZXh0QWN0aW9uU2VydmljZTogTmV4dEFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB4cHNSZXNwb25zZUVycm9yc01hcHBpbmdTZXJ2aWNlOiBYcHNSZXNwb25zZUVycm9yc01hcHBpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW5jcnlwdENyZWRpdENhcmRTZXJ2aWNlOiBFbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzaG93RXJyb3JzQWN0aW9uQ3JlYXRvcjogU2hvd0Vycm9yc0FjdGlvbkNyZWF0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZTogVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBhc3luYyByZXF1ZXN0KGNvbmZpZzogUGF5bWVudENvbmZpZyk6IFByb21pc2U8SW5pdGlhbGl6ZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgcmVxdWVzdFBhcmFtczogSW5pdGlhbGl6ZVJlcXVlc3RQYXJhbXMgPSB7XG4gICAgICBhY2Nlc3NfdG9rZW46IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnRva2VuLFxuICAgICAgcGlkOiBTdHJpbmcoY29uZmlnLnBheW1lbnRNZXRob2RJZCksXG4gICAgICBjb3VudHJ5OiB0aGlzLmNvdW50cnlTZXJ2aWNlLmdldENvdW50cnkoKSxcbiAgICAgIHJldHVyblVybDogY29uZmlnLnJldHVyblVybCxcbiAgICAgIHBheW1lbnRXaXRoU2F2ZWRNZXRob2Q6XG4gICAgICAgIGNvbmZpZy5wYXltZW50V2l0aFNhdmVkTWV0aG9kID09PSB0cnVlXG4gICAgICAgICAgPyBYcHNCb29sZWFuLnRydWVcbiAgICAgICAgICA6IFhwc0Jvb2xlYW4uZmFsc2UsXG4gICAgICBzYXZlX3BheW1lbnRfYWNjb3VudF9vbmx5OiBjb25maWcuc2F2ZVBheW1lbnRNZXRob2RcbiAgICAgICAgPyBYcHNCb29sZWFuLnRydWVcbiAgICAgICAgOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgIH07XG5cbiAgICBpZiAoY29uZmlnLnNhdmVkTWV0aG9kSWQpIHtcbiAgICAgIHJlcXVlc3RQYXJhbXMuc2F2ZWRfbWV0aG9kX2lkID0gY29uZmlnLnNhdmVkTWV0aG9kSWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMueHBzQXBpU2VydmljZVxuICAgICAgLmRpcmVjdFBheW1lbnRSZXF1ZXN0KHJlcXVlc3RQYXJhbXMpXG4gICAgICAudGhlbigoeHBzUmVzcG9uc2UpID0+IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPVxuICAgICAgICAgIHRoaXMueHBzUmVzcG9uc2VFcnJvcnNNYXBwaW5nU2VydmljZS5tYXBFcnJvcnMoeHBzUmVzcG9uc2UpO1xuICAgICAgICBjb25zdCBpbml0aWFsaXplUmVzcG9uc2UgPSB0aGlzLnJlc3BvbnNlRmFjdG9yeShyZXNwb25zZSk7XG5cbiAgICAgICAgaWYgKCFpbml0aWFsaXplUmVzcG9uc2UucGF5bWVudEZvcm0pIHtcbiAgICAgICAgICByZXR1cm4gaW5pdGlhbGl6ZVJlc3BvbnNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRDcmVkaXRDYXJkRW5jcnlwdEtleShpbml0aWFsaXplUmVzcG9uc2UucGF5bWVudEZvcm0pO1xuICAgICAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLmZpbGxVc2VyU2Vzc2lvbihcbiAgICAgICAgICBpbml0aWFsaXplUmVzcG9uc2UucGF5bWVudEZvcm1cbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoaW5pdGlhbGl6ZVJlc3BvbnNlLnBheW1lbnRGb3JtPy5lcnJvcnM/Lmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IGxvZ0Vycm9yID0gKGVycm9yOiB7IGNvZGU6IG51bWJlcjsgbWVzc2FnZTogc3RyaW5nIH0pOiB2b2lkID0+IHtcbiAgICAgICAgICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgICAgICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS5zaG93RXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgICB1c2VyQmVoYXZpb3VyRXZlbnRUeXBlcy5tYW51YWwsXG4gICAgICAgICAgICAgIHsgdmFsdWU6IFN0cmluZyhlcnJvci5jb2RlKSwgZXh0cmFWYWx1ZTogZXJyb3IubWVzc2FnZSB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpbml0aWFsaXplUmVzcG9uc2UucGF5bWVudEZvcm0uZXJyb3JzLmZvckVhY2gobG9nRXJyb3IpO1xuXG4gICAgICAgICAgdGhpcy5uZXh0QWN0aW9uU2VydmljZS5lbWl0Rmxvd1VwZGF0ZXMoXG4gICAgICAgICAgICB0aGlzLnNob3dFcnJvcnNBY3Rpb25DcmVhdG9yLmdldEFjdGlvbkRhdGEoXG4gICAgICAgICAgICAgIGluaXRpYWxpemVSZXNwb25zZS5wYXltZW50Rm9ybS5lcnJvcnNcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluaXRpYWxpemVSZXNwb25zZTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgUmVzcG9uc2VFcnJvcihlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDcmVkaXRDYXJkRW5jcnlwdEtleShwYXltZW50Rm9ybTogUGF5bWVudEZvcm0pOiB2b2lkIHtcbiAgICBjb25zdCBwdWJsaWNLZXlGaWVsZDogRmllbGQgfCB1bmRlZmluZWQgPSBwYXltZW50Rm9ybS5maWVsZHMuZmluZChcbiAgICAgIChmaWVsZDogRmllbGQpID0+IGZpZWxkLm5hbWUgPT09ICdwdWJsaWNfa2V5J1xuICAgICk7XG5cbiAgICBpZiAoIXB1YmxpY0tleUZpZWxkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5lbmNyeXB0Q3JlZGl0Q2FyZFNlcnZpY2Uuc2V0UHVibGljS2V5KGF0b2IocHVibGljS2V5RmllbGQudmFsdWUpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,43 @@
1
+ export class InitializeResponse {
2
+ constructor(response) {
3
+ this.paymentForm = null;
4
+ this.paymentForm = this.extractPaymentForm(response);
5
+ }
6
+ extractPaymentForm(response) {
7
+ if (!response) {
8
+ return null;
9
+ }
10
+ return {
11
+ totalAmount: response.buyData.sum,
12
+ currency: response.buyData.currency,
13
+ fields: Object.keys(response.form).map((key) => response.form[key]),
14
+ taxDisclaimer: response.taxDisclaimer,
15
+ number: response.number,
16
+ barcode: response.barcode,
17
+ instruction: response.instruction,
18
+ offers: response.offers,
19
+ error: response.error,
20
+ errors: response.errors,
21
+ restrictions: response.restrictions,
22
+ info: response.info,
23
+ buyData: response.buyData,
24
+ pid: response.pid,
25
+ messages: response.messages ?? [],
26
+ title: response.title,
27
+ summary: response.summary,
28
+ skipForm: response.skipForm,
29
+ isSavedMethodPayment: !!response.form?.saved_method_id,
30
+ couponCode: response.form?.couponCode?.value || '',
31
+ publicId: response.public_id,
32
+ skipCheckout: response.skipCheckout,
33
+ koreaNotification: response.form.korea_limits_instruction,
34
+ isCheckout: response.isCheckout,
35
+ categories: response.categories,
36
+ hasFatalErrors: response.textAll?.fatal,
37
+ userSession: response.userSession,
38
+ statusText: response.status?.statusData?.stateText ?? null,
39
+ country: response.country ? response.country.iso : null,
40
+ };
41
+ }
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZS1yZXNwb25zZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvaW5pdGlhbGl6ZS9yZXNwb25zZS9pbml0aWFsaXplLXJlc3BvbnNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFBbUIsUUFBcUI7UUFGeEIsZ0JBQVcsR0FBdUIsSUFBSSxDQUFDO1FBR3JELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxRQUFxQjtRQUM5QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPO1lBQ0wsV0FBVyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRztZQUNqQyxRQUFRLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQ25DLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQ3BDLENBQUMsR0FBVyxFQUFTLEVBQUUsQ0FBRSxRQUF3QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDNUQ7WUFDRCxhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWE7WUFDckMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO1lBQ3ZCLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztZQUN6QixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7WUFDakMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO1lBQ3ZCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztZQUNyQixNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07WUFDdkIsWUFBWSxFQUFFLFFBQVEsQ0FBQyxZQUFZO1lBQ25DLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSTtZQUNuQixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87WUFDekIsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHO1lBQ2pCLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUSxJQUFJLEVBQUU7WUFDakMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO1lBQ3JCLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztZQUN6QixRQUFRLEVBQUUsUUFBUSxDQUFDLFFBQVE7WUFDM0Isb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsZUFBZTtZQUN0RCxVQUFVLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDbEQsUUFBUSxFQUFFLFFBQVEsQ0FBQyxTQUFTO1lBQzVCLFlBQVksRUFBRSxRQUFRLENBQUMsWUFBWTtZQUNuQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLHdCQUF3QjtZQUN6RCxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7WUFDL0IsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1lBQy9CLGNBQWMsRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUs7WUFDdkMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO1lBQ2pDLFVBQVUsRUFBRyxRQUFRLENBQUMsTUFBb0IsRUFBRSxVQUFVLEVBQUUsU0FBUyxJQUFJLElBQUk7WUFDekUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQ3hELENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYXltZW50Rm9ybSB9IGZyb20gJy4uLy4uL3BheW1lbnQtZm9ybS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2UsIFhwc1N0YXR1cyB9IGZyb20gJy4uLy4uL3hwcy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgSW5pdGlhbGl6ZVJlc3BvbnNlIHtcbiAgcHVibGljIHJlYWRvbmx5IHBheW1lbnRGb3JtOiBQYXltZW50Rm9ybSB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihyZXNwb25zZTogWHBzUmVzcG9uc2UpIHtcbiAgICB0aGlzLnBheW1lbnRGb3JtID0gdGhpcy5leHRyYWN0UGF5bWVudEZvcm0ocmVzcG9uc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0UGF5bWVudEZvcm0ocmVzcG9uc2U6IFhwc1Jlc3BvbnNlKTogUGF5bWVudEZvcm0gfCBudWxsIHtcbiAgICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdG90YWxBbW91bnQ6IHJlc3BvbnNlLmJ1eURhdGEuc3VtLFxuICAgICAgY3VycmVuY3k6IHJlc3BvbnNlLmJ1eURhdGEuY3VycmVuY3ksXG4gICAgICBmaWVsZHM6IE9iamVjdC5rZXlzKHJlc3BvbnNlLmZvcm0pLm1hcChcbiAgICAgICAgKGtleTogc3RyaW5nKTogRmllbGQgPT4gKHJlc3BvbnNlIGFzIFhwc1Jlc3BvbnNlKS5mb3JtW2tleV1cbiAgICAgICksXG4gICAgICB0YXhEaXNjbGFpbWVyOiByZXNwb25zZS50YXhEaXNjbGFpbWVyLFxuICAgICAgbnVtYmVyOiByZXNwb25zZS5udW1iZXIsXG4gICAgICBiYXJjb2RlOiByZXNwb25zZS5iYXJjb2RlLFxuICAgICAgaW5zdHJ1Y3Rpb246IHJlc3BvbnNlLmluc3RydWN0aW9uLFxuICAgICAgb2ZmZXJzOiByZXNwb25zZS5vZmZlcnMsXG4gICAgICBlcnJvcjogcmVzcG9uc2UuZXJyb3IsXG4gICAgICBlcnJvcnM6IHJlc3BvbnNlLmVycm9ycyxcbiAgICAgIHJlc3RyaWN0aW9uczogcmVzcG9uc2UucmVzdHJpY3Rpb25zLFxuICAgICAgaW5mbzogcmVzcG9uc2UuaW5mbyxcbiAgICAgIGJ1eURhdGE6IHJlc3BvbnNlLmJ1eURhdGEsXG4gICAgICBwaWQ6IHJlc3BvbnNlLnBpZCxcbiAgICAgIG1lc3NhZ2VzOiByZXNwb25zZS5tZXNzYWdlcyA/PyBbXSxcbiAgICAgIHRpdGxlOiByZXNwb25zZS50aXRsZSxcbiAgICAgIHN1bW1hcnk6IHJlc3BvbnNlLnN1bW1hcnksXG4gICAgICBza2lwRm9ybTogcmVzcG9uc2Uuc2tpcEZvcm0sXG4gICAgICBpc1NhdmVkTWV0aG9kUGF5bWVudDogISFyZXNwb25zZS5mb3JtPy5zYXZlZF9tZXRob2RfaWQsXG4gICAgICBjb3Vwb25Db2RlOiByZXNwb25zZS5mb3JtPy5jb3Vwb25Db2RlPy52YWx1ZSB8fCAnJyxcbiAgICAgIHB1YmxpY0lkOiByZXNwb25zZS5wdWJsaWNfaWQsXG4gICAgICBza2lwQ2hlY2tvdXQ6IHJlc3BvbnNlLnNraXBDaGVja291dCxcbiAgICAgIGtvcmVhTm90aWZpY2F0aW9uOiByZXNwb25zZS5mb3JtLmtvcmVhX2xpbWl0c19pbnN0cnVjdGlvbixcbiAgICAgIGlzQ2hlY2tvdXQ6IHJlc3BvbnNlLmlzQ2hlY2tvdXQsXG4gICAgICBjYXRlZ29yaWVzOiByZXNwb25zZS5jYXRlZ29yaWVzLFxuICAgICAgaGFzRmF0YWxFcnJvcnM6IHJlc3BvbnNlLnRleHRBbGw/LmZhdGFsLFxuICAgICAgdXNlclNlc3Npb246IHJlc3BvbnNlLnVzZXJTZXNzaW9uLFxuICAgICAgc3RhdHVzVGV4dDogKHJlc3BvbnNlLnN0YXR1cyBhcyBYcHNTdGF0dXMpPy5zdGF0dXNEYXRhPy5zdGF0ZVRleHQgPz8gbnVsbCxcbiAgICAgIGNvdW50cnk6IHJlc3BvbnNlLmNvdW50cnkgPyByZXNwb25zZS5jb3VudHJ5LmlzbyA6IG51bGwsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,369 @@
1
+ import { BehaviorSubject, Subject, filter, takeUntil, take, } from 'rxjs';
2
+ import { Injectable } from '@angular/core';
3
+ import { SubmitResponse } from './submit/response/submit-response.class';
4
+ import { InitializeResponse } from './initialize/response/initialize-response.class';
5
+ import { isSubmitResponse } from './submit/response/is-submit-response.function';
6
+ import { InputEventName } from './form/input-event.enum';
7
+ import { XpsCommand } from './xps-comand.enum';
8
+ import { FieldNames } from './field-names.enum';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "./initialize/initialize.service";
11
+ import * as i2 from "./submit/submit.service";
12
+ import * as i3 from "./sync/sync.service";
13
+ import * as i4 from "./form/form.service";
14
+ import * as i5 from "./status/status.service";
15
+ import * as i6 from "./finance-details/finance-details.service";
16
+ import * as i7 from "./credit-card-state/credit-card-state.service";
17
+ import * as i8 from "./actions/next-action.service";
18
+ import * as i9 from "./form/controls/control-config.service";
19
+ import * as i10 from "./three-ds/three-ds.service";
20
+ import * as i11 from "./form-messages/form-messages.service";
21
+ import * as i12 from "../settings/settings.service";
22
+ import * as i13 from "../country/country.service";
23
+ import * as i14 from "./actions/check-status/check-status.action.class";
24
+ export class PaymentService {
25
+ get formFieldsStatus$() {
26
+ return this.formFieldsStatusSubject.asObservable().pipe(filter(Boolean));
27
+ }
28
+ get paymentForm$() {
29
+ return this._paymentForm$.asObservable();
30
+ }
31
+ get formResponse$() {
32
+ return this._formResponse$.asObservable();
33
+ }
34
+ get formResponseValue() {
35
+ return this._formResponse$.getValue();
36
+ }
37
+ constructor(initializeService, submitService, syncService, formService, statusService, financeDetailsService, creditCardStateService, nextActionService, controlConfigService, threeDsService, formMessagesService, settingsService, countryService, checkStatusActionCreator) {
38
+ this.initializeService = initializeService;
39
+ this.submitService = submitService;
40
+ this.syncService = syncService;
41
+ this.formService = formService;
42
+ this.statusService = statusService;
43
+ this.financeDetailsService = financeDetailsService;
44
+ this.creditCardStateService = creditCardStateService;
45
+ this.nextActionService = nextActionService;
46
+ this.controlConfigService = controlConfigService;
47
+ this.threeDsService = threeDsService;
48
+ this.formMessagesService = formMessagesService;
49
+ this.settingsService = settingsService;
50
+ this.countryService = countryService;
51
+ this.checkStatusActionCreator = checkStatusActionCreator;
52
+ this.form = null;
53
+ this.data = null;
54
+ this.financeDetails = null;
55
+ this.focusFieldName = null;
56
+ this.fields = [];
57
+ this.destroy$ = new Subject();
58
+ this.formDestroy$ = new Subject();
59
+ this._paymentForm$ = new BehaviorSubject(null);
60
+ this.formFieldsStatusSubject = new BehaviorSubject(null);
61
+ this._formResponse$ = new BehaviorSubject(null);
62
+ this.isSavingMethodMode = false;
63
+ }
64
+ async initialize(config) {
65
+ this.destroy$ = new Subject();
66
+ this.formDestroy$ = new Subject();
67
+ this.listenFinanceDetails();
68
+ this.config = config;
69
+ this.data = await this.initializeService.request(config);
70
+ this.emitFormResponse(this.data);
71
+ this.fields = this.getFields();
72
+ this.form = this.formService.createForm(this.fields);
73
+ this.updatePidConfig();
74
+ this.setupSyncService(this.form, this.fields);
75
+ this.listenFormStatusChanges(this.form);
76
+ this.emitFinanceDetails(this.data.paymentForm?.summary);
77
+ this.emitFormFieldsStatus(this.form);
78
+ this.emitFormMessages(this.getInitializeMessages());
79
+ return this.fields.filter((field) => field?.isVisible === "1" /* XpsBoolean.true */);
80
+ }
81
+ async submit() {
82
+ if (!this.form) {
83
+ throw new Error('form is empty!');
84
+ }
85
+ if (!this.form.valid) {
86
+ this.form.markAllAsTouched();
87
+ this.emitFormFieldsStatus(this.form);
88
+ return;
89
+ }
90
+ this.isSavingMethodMode = this.fields.some(({ name, value }) => name === 'savePsAccountOnly' && value === "1" /* XpsBoolean.true */);
91
+ const submitResponse = await this.submitService.request(this.fields, this.form);
92
+ this.data = submitResponse;
93
+ this.emitFormResponse(this.data);
94
+ if (!this.isSavingMethodMode) {
95
+ this.emitFinanceDetails(submitResponse.summary);
96
+ }
97
+ this.emitFormMessages(submitResponse.messages);
98
+ // Handle 3ds flow
99
+ if (submitResponse.currentCommand === XpsCommand.create &&
100
+ submitResponse.parameters.threeDSForm) {
101
+ this.runThreeDs();
102
+ return;
103
+ }
104
+ this.fields = this.getFields();
105
+ this.form = this.formService.createForm(this.fields);
106
+ this.syncService.setup(this.form, this.fields);
107
+ return this.nextActionService.getNextAction(submitResponse);
108
+ }
109
+ getFields() {
110
+ if (this.data instanceof SubmitResponse) {
111
+ return this.data.fields ?? [];
112
+ }
113
+ return this.data?.paymentForm?.fields ?? [];
114
+ }
115
+ getControlStatus(name) {
116
+ const control = this.form?.get(name);
117
+ if (!control) {
118
+ return null;
119
+ }
120
+ return {
121
+ name,
122
+ errors: control.errors,
123
+ status: control.status,
124
+ };
125
+ }
126
+ getInitialDataForSdkPaymentSystems() {
127
+ if (!isSubmitResponse(this.data)) {
128
+ throw new Error('Should submit form first');
129
+ }
130
+ return {
131
+ data: this.data.parameters.checkout.data.data,
132
+ sandbox: this.settingsService.isSandboxMode()
133
+ ? "1" /* XpsBoolean.true */
134
+ : "0" /* XpsBoolean.false */,
135
+ country: this.countryService.getCountry(),
136
+ };
137
+ }
138
+ getQrCode() {
139
+ if (!isSubmitResponse(this.data)) {
140
+ throw new Error('Should submit form first');
141
+ }
142
+ return this.data.parameters.form.qr.title;
143
+ }
144
+ getPid() {
145
+ if (this.data instanceof SubmitResponse) {
146
+ return (Number(this.data.fields.find((field) => field.name === 'fix_pid')?.value) || null);
147
+ }
148
+ if (this.data instanceof InitializeResponse) {
149
+ return (Number(this.data.paymentForm?.fields.find((field) => field.name === 'fix_pid')?.value) || null);
150
+ }
151
+ return null;
152
+ }
153
+ getSubmitButtonText() {
154
+ if (this.data instanceof SubmitResponse) {
155
+ return this.data.parameters.buyData.value;
156
+ }
157
+ if (this.data instanceof InitializeResponse) {
158
+ return this.data.paymentForm?.buyData.value ?? null;
159
+ }
160
+ return null;
161
+ }
162
+ async validate(field) {
163
+ const syncErrors = this.syncService.getSyncValidationErrors(field);
164
+ if (syncErrors) {
165
+ return Promise.resolve(syncErrors);
166
+ }
167
+ return this.syncService.validate(field);
168
+ }
169
+ runThreeDs() {
170
+ if (!isSubmitResponse(this.data)) {
171
+ throw new Error('Should submit form first');
172
+ }
173
+ this.threeDsService.checkThreeDs(this.data);
174
+ }
175
+ getFinanceDetails() {
176
+ return this.financeDetails;
177
+ }
178
+ updateFieldFormState(fieldName, formState) {
179
+ if (this.form) {
180
+ this.formService.updateFieldFormState(this.form, this.fields, fieldName, formState);
181
+ }
182
+ }
183
+ getFieldFormState(fieldName) {
184
+ return this.formService.getFieldFormState(fieldName);
185
+ }
186
+ async getStatus() {
187
+ if (!isSubmitResponse(this.data)) {
188
+ throw new Error('Should submit form first');
189
+ }
190
+ const params = {
191
+ pid: this.config.paymentMethodId,
192
+ invoice: parseInt(this.data.fixInvoice ?? ''),
193
+ signature: this.data.signature ?? '',
194
+ locale: this.data.fields.find((field) => field.name === 'locale')?.value ??
195
+ 'en',
196
+ isSavePaymentAccount: this.isSavingMethodMode
197
+ ? "1" /* XpsBoolean.true */
198
+ : "0" /* XpsBoolean.false */,
199
+ };
200
+ return this.statusService.getStatus(params);
201
+ }
202
+ async listenFinalStatus() {
203
+ const { invoice } = await this.getStatus();
204
+ this.statusService
205
+ .listenFinalStatus(invoice)
206
+ .pipe(take(1))
207
+ .subscribe(() => {
208
+ this.nextActionService.emitFlowUpdates(this.checkStatusActionCreator.getActionData());
209
+ });
210
+ }
211
+ getFieldConfig(field) {
212
+ return this.controlConfigService.getConfig(field);
213
+ }
214
+ changeFieldValue(name, value) {
215
+ const formControl = this.form?.get(name);
216
+ formControl?.setValue(value);
217
+ }
218
+ changeFieldState(name, state) {
219
+ const formControl = this.form?.get(name);
220
+ if (!this.form || !formControl) {
221
+ return;
222
+ }
223
+ switch (state) {
224
+ case InputEventName.blur: {
225
+ formControl.markAsTouched();
226
+ this.focusFieldName = null;
227
+ break;
228
+ }
229
+ case InputEventName.focus: {
230
+ formControl.markAsUntouched();
231
+ this.focusFieldName = name;
232
+ break;
233
+ }
234
+ }
235
+ this.emitFormFieldsStatus(this.form);
236
+ }
237
+ addExtraField(name, value) {
238
+ const isHaveField = this.fields.find((field) => {
239
+ return field.name === name;
240
+ });
241
+ if (isHaveField) {
242
+ this.fields = this.fields.map((field) => {
243
+ if (field.name === name) {
244
+ field.value = value;
245
+ }
246
+ return field;
247
+ });
248
+ return;
249
+ }
250
+ const field = {
251
+ name: name,
252
+ value: value,
253
+ title: '',
254
+ type: 'text',
255
+ example: '',
256
+ isMandatory: "1" /* XpsBoolean.true */,
257
+ isVisible: "0" /* XpsBoolean.false */,
258
+ };
259
+ this.fields.push(field);
260
+ }
261
+ destroy() {
262
+ this.data = null;
263
+ this.financeDetails = null;
264
+ this.form = null;
265
+ this.fields = [];
266
+ this.formDestroy$.next();
267
+ this.destroy$.next();
268
+ this.threeDsService.stopChecking();
269
+ }
270
+ emitFinanceDetails(summary) {
271
+ this.financeDetailsService.emitWithSummary(summary);
272
+ }
273
+ emitCreditCardState(idCardType) {
274
+ this.creditCardStateService.emit({ idCardType });
275
+ }
276
+ emitFormFieldsStatus(form) {
277
+ const formFieldsStatus = {};
278
+ Object.keys(form.controls).forEach((name) => {
279
+ const control = form.controls[name];
280
+ formFieldsStatus[name] = {
281
+ name: name,
282
+ validationStatus: control.status,
283
+ errors: control.errors,
284
+ isFocused: this.focusFieldName === name,
285
+ isTouched: control.touched,
286
+ };
287
+ });
288
+ this.formFieldsStatusSubject.next(formFieldsStatus);
289
+ }
290
+ emitFormMessages(messages) {
291
+ this.formMessagesService.emitOnResponse(messages);
292
+ }
293
+ setupSyncService(form, fields) {
294
+ this.syncService.setup(form, fields);
295
+ this.syncService.data$
296
+ .pipe(takeUntil(this.destroy$))
297
+ .subscribe((response) => {
298
+ this.emitFinanceDetails(response.summary);
299
+ this.emitFormMessages(response.messages);
300
+ this.emitFormResponse(response);
301
+ });
302
+ this.syncService.fieldAsyncValidation$
303
+ .pipe(takeUntil(this.destroy$))
304
+ .subscribe((fieldAsyncValidation) => {
305
+ switch (fieldAsyncValidation.field.name) {
306
+ case FieldNames.cardNumber:
307
+ this.emitCreditCardState(fieldAsyncValidation.response.parameters.idCardType);
308
+ }
309
+ });
310
+ }
311
+ listenFinanceDetails() {
312
+ this.financeDetailsService.data$
313
+ .pipe(takeUntil(this.destroy$))
314
+ .subscribe((financeDetails) => (this.financeDetails = financeDetails));
315
+ }
316
+ listenFormStatusChanges(form) {
317
+ form.statusChanges
318
+ .pipe(takeUntil(this.formDestroy$))
319
+ .subscribe((status) => {
320
+ this.emitFormFieldsStatus(form);
321
+ this._paymentForm$.next(status);
322
+ });
323
+ }
324
+ /*
325
+ * in case the form pid changes despite the one passed during initialization
326
+ * */
327
+ updatePidConfig() {
328
+ const currentPid = this.getPid();
329
+ if (currentPid) {
330
+ this.config.paymentMethodId = currentPid;
331
+ }
332
+ }
333
+ emitFormResponse(data) {
334
+ let type;
335
+ if (data instanceof InitializeResponse) {
336
+ type = 'initialize';
337
+ }
338
+ else if (data instanceof SubmitResponse) {
339
+ type = 'submit';
340
+ }
341
+ else {
342
+ type = 'sync';
343
+ }
344
+ this._formResponse$.next({
345
+ type,
346
+ data,
347
+ token: this.settingsService.token,
348
+ isSandbox: this.settingsService.isSandboxMode(),
349
+ });
350
+ }
351
+ getInitializeMessages() {
352
+ const messages = this.data.paymentForm?.messages;
353
+ const koreaNotification = this.data.paymentForm
354
+ ?.koreaNotification;
355
+ if (koreaNotification) {
356
+ messages?.push({ code: '0', message: koreaNotification?.title });
357
+ }
358
+ return messages ?? [];
359
+ }
360
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: PaymentService, deps: [{ token: i1.InitializeService }, { token: i2.SubmitService }, { token: i3.SyncService }, { token: i4.FormService }, { token: i5.StatusService }, { token: i6.FinanceDetailsService }, { token: i7.CreditCardStateService }, { token: i8.NextActionService }, { token: i9.ControlConfigService }, { token: i10.ThreeDsService }, { token: i11.FormMessagesService }, { token: i12.SettingsService }, { token: i13.CountryService }, { token: i14.CheckStatusActionCreator }], target: i0.ɵɵFactoryTarget.Injectable }); }
361
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: PaymentService, providedIn: 'root' }); }
362
+ }
363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: PaymentService, decorators: [{
364
+ type: Injectable,
365
+ args: [{
366
+ providedIn: 'root',
367
+ }]
368
+ }], ctorParameters: () => [{ type: i1.InitializeService }, { type: i2.SubmitService }, { type: i3.SyncService }, { type: i4.FormService }, { type: i5.StatusService }, { type: i6.FinanceDetailsService }, { type: i7.CreditCardStateService }, { type: i8.NextActionService }, { type: i9.ControlConfigService }, { type: i10.ThreeDsService }, { type: i11.FormMessagesService }, { type: i12.SettingsService }, { type: i13.CountryService }, { type: i14.CheckStatusActionCreator }] });
369
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFFZixPQUFPLEVBQ1AsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEdBQ0wsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQWVyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUlqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQWNoRCxNQUFNLE9BQU8sY0FBYztJQUd6QixJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGNB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QyxXQUFXLEVBQUUsUUFBUSxDQUFDO1FBQ3pFLE1BQU0saUJBQWlCLEdBQUksSUFBSSxDQUFDLElBQTJCLENBQUMsV0FBVztZQUNyRSxFQUFFLGlCQUFpQixDQUFDO1FBQ3RCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsT0FBTyxRQUFRLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7OEdBN2JVLGNBQWM7a0hBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBmaWx0ZXIsXG4gIHRha2VVbnRpbCxcbiAgdGFrZSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbFN0YXR1cywgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1Ym1pdFJlc3BvbnNlIH0gZnJvbSAnLi9zdWJtaXQvcmVzcG9uc2Uvc3VibWl0LXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7IEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi9mb3JtL2Zvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBJbml0aWFsaXplUmVzcG9uc2UgfSBmcm9tICcuL2luaXRpYWxpemUvcmVzcG9uc2UvaW5pdGlhbGl6ZS1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBJbml0aWFsaXplU2VydmljZSB9IGZyb20gJy4vaW5pdGlhbGl6ZS9pbml0aWFsaXplLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RhdHVzIH0gZnJvbSAnLi9zdGF0dXMvc3RhdHVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdWJtaXRTZXJ2aWNlIH0gZnJvbSAnLi9zdWJtaXQvc3VibWl0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3luY1NlcnZpY2UgfSBmcm9tICcuL3N5bmMvc3luYy5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXR1c1NlcnZpY2UgfSBmcm9tICcuL3N0YXR1cy9zdGF0dXMuc2VydmljZSc7XG5pbXBvcnQgeyBOZXh0QWN0aW9uU2VydmljZSB9IGZyb20gJy4vYWN0aW9ucy9uZXh0LWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyb2xDb25maWcgfSBmcm9tICcuL2Zvcm0vY29udHJvbHMvY29udHJvbC1jb25maWcnO1xuaW1wb3J0IHsgQ29udHJvbENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2Zvcm0vY29udHJvbHMvY29udHJvbC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBGaW5hbmNlRGV0YWlscyB9IGZyb20gJy4vZmluYW5jZS1kZXRhaWxzL2ZpbmFuY2UtZGV0YWlscy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmluYW5jZURldGFpbHNTZXJ2aWNlIH0gZnJvbSAnLi9maW5hbmNlLWRldGFpbHMvZmluYW5jZS1kZXRhaWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmV4dEFjdGlvbiB9IGZyb20gJy4vYWN0aW9ucy9uZXh0LWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgWHBzU3VtbWFyeSB9IGZyb20gJy4veHBzLXN1bW1hcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi9maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGF5bWVudENvbmZpZyB9IGZyb20gJy4vcGF5bWVudC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IGlzU3VibWl0UmVzcG9uc2UgfSBmcm9tICcuL3N1Ym1pdC9yZXNwb25zZS9pcy1zdWJtaXQtcmVzcG9uc2UuZnVuY3Rpb24nO1xuaW1wb3J0IHsgWHBzQm9vbGVhbiB9IGZyb20gJy4uL3hwcy1ib29sZWFuLmVudW0nO1xuaW1wb3J0IHsgU3RhdHVzUmVxdWVzdFBhcmFtcyB9IGZyb20gJy4vc3RhdHVzL3N0YXR1cy1yZXF1ZXN0L3N0YXR1cy1yZXF1ZXN0LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJy4vZm9ybS92YWxpZGF0b3JzL3ZhbGlkYXRpb24tZXJyb3JzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbnB1dEV2ZW50TmFtZSB9IGZyb20gJy4vZm9ybS9pbnB1dC1ldmVudC5lbnVtJztcbmltcG9ydCB7IEZvcm1GaWVsZHNTdGF0dXMgfSBmcm9tICcuL2Zvcm0vZm9ybS1maWVsZHMtc3RhdHVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUaHJlZURzU2VydmljZSB9IGZyb20gJy4vdGhyZWUtZHMvdGhyZWUtZHMuc2VydmljZSc7XG5pbXBvcnQgeyBYcHNDb21tYW5kIH0gZnJvbSAnLi94cHMtY29tYW5kLmVudW0nO1xuaW1wb3J0IHsgQ3JlZGl0Q2FyZFN0YXRlU2VydmljZSB9IGZyb20gJy4vY3JlZGl0LWNhcmQtc3RhdGUvY3JlZGl0LWNhcmQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBGaWVsZE5hbWVzIH0gZnJvbSAnLi9maWVsZC1uYW1lcy5lbnVtJztcbmltcG9ydCB7IEZvcm1TdGF0ZSB9IGZyb20gJy4vZm9ybS9mb3JtLXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGb3JtTWVzc2FnZXNTZXJ2aWNlIH0gZnJvbSAnLi9mb3JtLW1lc3NhZ2VzL2Zvcm0tbWVzc2FnZXMuc2VydmljZSc7XG5pbXBvcnQgeyBYcHNNZXNzYWdlIH0gZnJvbSAnLi94cHMtbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDb3VudHJ5U2VydmljZSB9IGZyb20gJy4uL2NvdW50cnkvY291bnRyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFNka1BheW1lbnRTeXN0ZW1zSW5pdGlhbERhdGEgfSBmcm9tICcuLi9zZGstcGF5bWVudC1zeXN0ZW1zL3Nkay1wYXltZW50LXN5c3RlbXMtaW5pdGlhbC1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGb3JtUmVzcG9uc2UgfSBmcm9tICcuL2Zvcm0tcmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IENoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvciB9IGZyb20gJy4vYWN0aW9ucy9jaGVjay1zdGF0dXMvY2hlY2stc3RhdHVzLmFjdGlvbi5jbGFzcyc7XG5pbXBvcnQgeyBDb250cm9sU3RhdHVzIH0gZnJvbSAnLi9mb3JtL2NvbnRyb2wtc3RhdHVzLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQYXltZW50U2VydmljZSB7XG4gIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBmb3JtRmllbGRzU3RhdHVzJCgpOiBPYnNlcnZhYmxlPEZvcm1GaWVsZHNTdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtRmllbGRzU3RhdHVzU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGZpbHRlcihCb29sZWFuKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBheW1lbnRGb3JtJCgpOiBPYnNlcnZhYmxlPEZvcm1Db250cm9sU3RhdHVzIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl9wYXltZW50Rm9ybSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1SZXNwb25zZSQoKTogT2JzZXJ2YWJsZTxGb3JtUmVzcG9uc2UgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1SZXNwb25zZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcm1SZXNwb25zZVZhbHVlKCk6IEZvcm1SZXNwb25zZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9mb3JtUmVzcG9uc2UkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIGRhdGE6IEluaXRpYWxpemVSZXNwb25zZSB8IFN1Ym1pdFJlc3BvbnNlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZmluYW5jZURldGFpbHM6IEZpbmFuY2VEZXRhaWxzIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZm9jdXNGaWVsZE5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGZpZWxkczogRmllbGRbXSA9IFtdO1xuICBwcml2YXRlIGNvbmZpZyE6IFBheW1lbnRDb25maWc7XG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgZm9ybURlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGF5bWVudEZvcm0kID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1Db250cm9sU3RhdHVzIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybUZpZWxkc1N0YXR1c1N1YmplY3QgPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUZpZWxkc1N0YXR1cyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtUmVzcG9uc2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtUmVzcG9uc2UgfCBudWxsPihcbiAgICBudWxsXG4gICk7XG5cbiAgcHJpdmF0ZSBpc1NhdmluZ01ldGhvZE1vZGUgPSBmYWxzZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsaXplU2VydmljZTogSW5pdGlhbGl6ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdWJtaXRTZXJ2aWNlOiBTdWJtaXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3luY1NlcnZpY2U6IFN5bmNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdHVzU2VydmljZTogU3RhdHVzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbmFuY2VEZXRhaWxzU2VydmljZTogRmluYW5jZURldGFpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3JlZGl0Q2FyZFN0YXRlU2VydmljZTogQ3JlZGl0Q2FyZFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5leHRBY3Rpb25TZXJ2aWNlOiBOZXh0QWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRyb2xDb25maWdTZXJ2aWNlOiBDb250cm9sQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRocmVlRHNTZXJ2aWNlOiBUaHJlZURzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1NZXNzYWdlc1NlcnZpY2U6IEZvcm1NZXNzYWdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvdW50cnlTZXJ2aWNlOiBDb3VudHJ5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvcjogQ2hlY2tTdGF0dXNBY3Rpb25DcmVhdG9yXG4gICkge31cblxuICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZShjb25maWc6IFBheW1lbnRDb25maWcpOiBQcm9taXNlPEZpZWxkW10+IHtcbiAgICB0aGlzLmRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICB0aGlzLmZvcm1EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICB0aGlzLmxpc3RlbkZpbmFuY2VEZXRhaWxzKCk7XG5cbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLmRhdGEgPSBhd2FpdCB0aGlzLmluaXRpYWxpemVTZXJ2aWNlLnJlcXVlc3QoY29uZmlnKTtcbiAgICB0aGlzLmVtaXRGb3JtUmVzcG9uc2UodGhpcy5kYXRhKTtcblxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5nZXRGaWVsZHMoKTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TZXJ2aWNlLmNyZWF0ZUZvcm0odGhpcy5maWVsZHMpO1xuXG4gICAgdGhpcy51cGRhdGVQaWRDb25maWcoKTtcbiAgICB0aGlzLnNldHVwU3luY1NlcnZpY2UodGhpcy5mb3JtLCB0aGlzLmZpZWxkcyk7XG4gICAgdGhpcy5saXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlcyh0aGlzLmZvcm0pO1xuXG4gICAgdGhpcy5lbWl0RmluYW5jZURldGFpbHModGhpcy5kYXRhLnBheW1lbnRGb3JtPy5zdW1tYXJ5KTtcbiAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKHRoaXMuZm9ybSk7XG5cbiAgICB0aGlzLmVtaXRGb3JtTWVzc2FnZXModGhpcy5nZXRJbml0aWFsaXplTWVzc2FnZXMoKSk7XG5cbiAgICByZXR1cm4gdGhpcy5maWVsZHMuZmlsdGVyKFxuICAgICAgKGZpZWxkOiBGaWVsZCkgPT4gZmllbGQ/LmlzVmlzaWJsZSA9PT0gWHBzQm9vbGVhbi50cnVlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzdWJtaXQoKTogUHJvbWlzZTxOZXh0QWN0aW9uIHwgbnVsbCB8IHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZm9ybSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdmb3JtIGlzIGVtcHR5IScpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5lbWl0Rm9ybUZpZWxkc1N0YXR1cyh0aGlzLmZvcm0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNTYXZpbmdNZXRob2RNb2RlID0gdGhpcy5maWVsZHMuc29tZShcbiAgICAgICh7IG5hbWUsIHZhbHVlIH0pID0+XG4gICAgICAgIG5hbWUgPT09ICdzYXZlUHNBY2NvdW50T25seScgJiYgdmFsdWUgPT09IFhwc0Jvb2xlYW4udHJ1ZVxuICAgICk7XG4gICAgY29uc3Qgc3VibWl0UmVzcG9uc2UgPSBhd2FpdCB0aGlzLnN1Ym1pdFNlcnZpY2UucmVxdWVzdChcbiAgICAgIHRoaXMuZmllbGRzLFxuICAgICAgdGhpcy5mb3JtXG4gICAgKTtcblxuICAgIHRoaXMuZGF0YSA9IHN1Ym1pdFJlc3BvbnNlO1xuICAgIHRoaXMuZW1pdEZvcm1SZXNwb25zZSh0aGlzLmRhdGEpO1xuXG4gICAgaWYgKCF0aGlzLmlzU2F2aW5nTWV0aG9kTW9kZSkge1xuICAgICAgdGhpcy5lbWl0RmluYW5jZURldGFpbHMoc3VibWl0UmVzcG9uc2Uuc3VtbWFyeSk7XG4gICAgfVxuICAgIHRoaXMuZW1pdEZvcm1NZXNzYWdlcyhzdWJtaXRSZXNwb25zZS5tZXNzYWdlcyk7XG5cbiAgICAvLyBIYW5kbGUgM2RzIGZsb3dcbiAgICBpZiAoXG4gICAgICBzdWJtaXRSZXNwb25zZS5jdXJyZW50Q29tbWFuZCA9PT0gWHBzQ29tbWFuZC5jcmVhdGUgJiZcbiAgICAgIHN1Ym1pdFJlc3BvbnNlLnBhcmFtZXRlcnMudGhyZWVEU0Zvcm1cbiAgICApIHtcbiAgICAgIHRoaXMucnVuVGhyZWVEcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5nZXRGaWVsZHMoKTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TZXJ2aWNlLmNyZWF0ZUZvcm0odGhpcy5maWVsZHMpO1xuXG4gICAgdGhpcy5zeW5jU2VydmljZS5zZXR1cCh0aGlzLmZvcm0sIHRoaXMuZmllbGRzKTtcblxuICAgIHJldHVybiB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmdldE5leHRBY3Rpb24oc3VibWl0UmVzcG9uc2UpO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcygpOiBGaWVsZFtdIHtcbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEuZmllbGRzID8/IFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRhdGE/LnBheW1lbnRGb3JtPy5maWVsZHMgPz8gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udHJvbFN0YXR1cyhuYW1lOiBGaWVsZE5hbWVzKTogQ29udHJvbFN0YXR1cyB8IG51bGwge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcbiAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgZXJyb3JzOiBjb250cm9sLmVycm9ycyxcbiAgICAgIHN0YXR1czogY29udHJvbC5zdGF0dXMsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJbml0aWFsRGF0YUZvclNka1BheW1lbnRTeXN0ZW1zKCk6IFNka1BheW1lbnRTeXN0ZW1zSW5pdGlhbERhdGEge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB0aGlzLmRhdGEucGFyYW1ldGVycy5jaGVja291dC5kYXRhLmRhdGEsXG4gICAgICBzYW5kYm94OiB0aGlzLnNldHRpbmdzU2VydmljZS5pc1NhbmRib3hNb2RlKClcbiAgICAgICAgPyBYcHNCb29sZWFuLnRydWVcbiAgICAgICAgOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgICAgY291bnRyeTogdGhpcy5jb3VudHJ5U2VydmljZS5nZXRDb3VudHJ5KCksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRRckNvZGUoKTogc3RyaW5nIHtcbiAgICBpZiAoIWlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgc3VibWl0IGZvcm0gZmlyc3QnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kYXRhLnBhcmFtZXRlcnMuZm9ybS5xci50aXRsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQaWQoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZGF0YSBpbnN0YW5jZW9mIFN1Ym1pdFJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBOdW1iZXIoXG4gICAgICAgICAgdGhpcy5kYXRhLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0gJ2ZpeF9waWQnKT8udmFsdWVcbiAgICAgICAgKSB8fCBudWxsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIE51bWJlcihcbiAgICAgICAgICB0aGlzLmRhdGEucGF5bWVudEZvcm0/LmZpZWxkcy5maW5kKFxuICAgICAgICAgICAgKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSAnZml4X3BpZCdcbiAgICAgICAgICApPy52YWx1ZVxuICAgICAgICApIHx8IG51bGxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3VibWl0QnV0dG9uVGV4dCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEucGFyYW1ldGVycy5idXlEYXRhLnZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEucGF5bWVudEZvcm0/LmJ1eURhdGEudmFsdWUgPz8gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB2YWxpZGF0ZShmaWVsZDogRmllbGQpOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB7XG4gICAgY29uc3Qgc3luY0Vycm9ycyA9IHRoaXMuc3luY1NlcnZpY2UuZ2V0U3luY1ZhbGlkYXRpb25FcnJvcnMoZmllbGQpO1xuXG4gICAgaWYgKHN5bmNFcnJvcnMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc3luY0Vycm9ycyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3luY1NlcnZpY2UudmFsaWRhdGUoZmllbGQpO1xuICB9XG5cbiAgcHVibGljIHJ1blRocmVlRHMoKTogdm9pZCB7XG4gICAgaWYgKCFpc1N1Ym1pdFJlc3BvbnNlKHRoaXMuZGF0YSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIHN1Ym1pdCBmb3JtIGZpcnN0Jyk7XG4gICAgfVxuXG4gICAgdGhpcy50aHJlZURzU2VydmljZS5jaGVja1RocmVlRHModGhpcy5kYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaW5hbmNlRGV0YWlscygpOiBGaW5hbmNlRGV0YWlscyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmZpbmFuY2VEZXRhaWxzO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZpZWxkRm9ybVN0YXRlKGZpZWxkTmFtZTogc3RyaW5nLCBmb3JtU3RhdGU6IEZvcm1TdGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgIHRoaXMuZm9ybVNlcnZpY2UudXBkYXRlRmllbGRGb3JtU3RhdGUoXG4gICAgICAgIHRoaXMuZm9ybSxcbiAgICAgICAgdGhpcy5maWVsZHMsXG4gICAgICAgIGZpZWxkTmFtZSxcbiAgICAgICAgZm9ybVN0YXRlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWVsZEZvcm1TdGF0ZShmaWVsZE5hbWU6IEZpZWxkTmFtZXMpOiBGb3JtU3RhdGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtU2VydmljZS5nZXRGaWVsZEZvcm1TdGF0ZShmaWVsZE5hbWUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFN0YXR1cygpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtczogU3RhdHVzUmVxdWVzdFBhcmFtcyA9IHtcbiAgICAgIHBpZDogdGhpcy5jb25maWcucGF5bWVudE1ldGhvZElkLFxuICAgICAgaW52b2ljZTogcGFyc2VJbnQodGhpcy5kYXRhLmZpeEludm9pY2UgPz8gJycpLFxuICAgICAgc2lnbmF0dXJlOiB0aGlzLmRhdGEuc2lnbmF0dXJlID8/ICcnLFxuICAgICAgbG9jYWxlOlxuICAgICAgICB0aGlzLmRhdGEuZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSAnbG9jYWxlJyk/LnZhbHVlID8/XG4gICAgICAgICdlbicsXG4gICAgICBpc1NhdmVQYXltZW50QWNjb3VudDogdGhpcy5pc1NhdmluZ01ldGhvZE1vZGVcbiAgICAgICAgPyBYcHNCb29sZWFuLnRydWVcbiAgICAgICAgOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzU2VydmljZS5nZXRTdGF0dXMocGFyYW1zKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsaXN0ZW5GaW5hbFN0YXR1cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGludm9pY2UgfSA9IGF3YWl0IHRoaXMuZ2V0U3RhdHVzKCk7XG5cbiAgICB0aGlzLnN0YXR1c1NlcnZpY2VcbiAgICAgIC5saXN0ZW5GaW5hbFN0YXR1cyhpbnZvaWNlIGFzIHVua25vd24gYXMgbnVtYmVyKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmVtaXRGbG93VXBkYXRlcyhcbiAgICAgICAgICB0aGlzLmNoZWNrU3RhdHVzQWN0aW9uQ3JlYXRvci5nZXRBY3Rpb25EYXRhKClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkQ29uZmlnKGZpZWxkOiBGaWVsZCk6IENvbnRyb2xDb25maWcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sQ29uZmlnU2VydmljZS5nZXRDb25maWcoZmllbGQpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZUZpZWxkVmFsdWUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcbiAgICBmb3JtQ29udHJvbD8uc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZUZpZWxkU3RhdGUobmFtZTogc3RyaW5nLCBzdGF0ZTogSW5wdXRFdmVudE5hbWUpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZm9ybT8uZ2V0KG5hbWUpO1xuXG4gICAgaWYgKCF0aGlzLmZvcm0gfHwgIWZvcm1Db250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBJbnB1dEV2ZW50TmFtZS5ibHVyOiB7XG4gICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0ZpZWxkTmFtZSA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBJbnB1dEV2ZW50TmFtZS5mb2N1czoge1xuICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0ZpZWxkTmFtZSA9IG5hbWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZW1pdEZvcm1GaWVsZHNTdGF0dXModGhpcy5mb3JtKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRFeHRyYUZpZWxkKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGlzSGF2ZUZpZWxkID0gdGhpcy5maWVsZHMuZmluZCgoZmllbGQpID0+IHtcbiAgICAgIHJldHVybiBmaWVsZC5uYW1lID09PSBuYW1lO1xuICAgIH0pO1xuXG4gICAgaWYgKGlzSGF2ZUZpZWxkKSB7XG4gICAgICB0aGlzLmZpZWxkcyA9IHRoaXMuZmllbGRzLm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgaWYgKGZpZWxkLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgICBmaWVsZC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmllbGQgPSB7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgdGl0bGU6ICcnLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgZXhhbXBsZTogJycsXG4gICAgICBpc01hbmRhdG9yeTogWHBzQm9vbGVhbi50cnVlLFxuICAgICAgaXNWaXNpYmxlOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgIH0gYXMgRmllbGQ7XG5cbiAgICB0aGlzLmZpZWxkcy5wdXNoKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YSA9IG51bGw7XG4gICAgdGhpcy5maW5hbmNlRGV0YWlscyA9IG51bGw7XG4gICAgdGhpcy5mb3JtID0gbnVsbDtcbiAgICB0aGlzLmZpZWxkcyA9IFtdO1xuICAgIHRoaXMuZm9ybURlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcblxuICAgIHRoaXMudGhyZWVEc1NlcnZpY2Uuc3RvcENoZWNraW5nKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRGaW5hbmNlRGV0YWlscyhzdW1tYXJ5PzogWHBzU3VtbWFyeSk6IHZvaWQge1xuICAgIHRoaXMuZmluYW5jZURldGFpbHNTZXJ2aWNlLmVtaXRXaXRoU3VtbWFyeShzdW1tYXJ5KTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENyZWRpdENhcmRTdGF0ZShpZENhcmRUeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWRpdENhcmRTdGF0ZVNlcnZpY2UuZW1pdCh7IGlkQ2FyZFR5cGUgfSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtRmllbGRzU3RhdHVzKGZvcm06IFVudHlwZWRGb3JtR3JvdXApOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtRmllbGRzU3RhdHVzOiBGb3JtRmllbGRzU3RhdHVzID0ge307XG5cbiAgICBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybS5jb250cm9sc1tuYW1lXTtcbiAgICAgIGZvcm1GaWVsZHNTdGF0dXNbbmFtZV0gPSB7XG4gICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgIHZhbGlkYXRpb25TdGF0dXM6IGNvbnRyb2wuc3RhdHVzLFxuICAgICAgICBlcnJvcnM6IGNvbnRyb2wuZXJyb3JzLFxuICAgICAgICBpc0ZvY3VzZWQ6IHRoaXMuZm9jdXNGaWVsZE5hbWUgPT09IG5hbWUsXG4gICAgICAgIGlzVG91Y2hlZDogY29udHJvbC50b3VjaGVkLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHRoaXMuZm9ybUZpZWxkc1N0YXR1c1N1YmplY3QubmV4dChmb3JtRmllbGRzU3RhdHVzKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEZvcm1NZXNzYWdlcyhtZXNzYWdlcz86IFhwc01lc3NhZ2VbXSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybU1lc3NhZ2VzU2VydmljZS5lbWl0T25SZXNwb25zZShtZXNzYWdlcyk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwU3luY1NlcnZpY2UoZm9ybTogVW50eXBlZEZvcm1Hcm91cCwgZmllbGRzOiBGaWVsZFtdKTogdm9pZCB7XG4gICAgdGhpcy5zeW5jU2VydmljZS5zZXR1cChmb3JtLCBmaWVsZHMpO1xuICAgIHRoaXMuc3luY1NlcnZpY2UuZGF0YSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuZW1pdEZpbmFuY2VEZXRhaWxzKHJlc3BvbnNlLnN1bW1hcnkpO1xuICAgICAgICB0aGlzLmVtaXRGb3JtTWVzc2FnZXMocmVzcG9uc2UubWVzc2FnZXMpO1xuICAgICAgICB0aGlzLmVtaXRGb3JtUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnN5bmNTZXJ2aWNlLmZpZWxkQXN5bmNWYWxpZGF0aW9uJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoZmllbGRBc3luY1ZhbGlkYXRpb24pID0+IHtcbiAgICAgICAgc3dpdGNoIChmaWVsZEFzeW5jVmFsaWRhdGlvbi5maWVsZC5uYW1lKSB7XG4gICAgICAgICAgY2FzZSBGaWVsZE5hbWVzLmNhcmROdW1iZXI6XG4gICAgICAgICAgICB0aGlzLmVtaXRDcmVkaXRDYXJkU3RhdGUoXG4gICAgICAgICAgICAgIGZpZWxkQXN5bmNWYWxpZGF0aW9uLnJlc3BvbnNlLnBhcmFtZXRlcnMuaWRDYXJkVHlwZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlbkZpbmFuY2VEZXRhaWxzKCk6IHZvaWQge1xuICAgIHRoaXMuZmluYW5jZURldGFpbHNTZXJ2aWNlLmRhdGEkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChmaW5hbmNlRGV0YWlscykgPT4gKHRoaXMuZmluYW5jZURldGFpbHMgPSBmaW5hbmNlRGV0YWlscykpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Gb3JtU3RhdHVzQ2hhbmdlcyhmb3JtOiBVbnR5cGVkRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgZm9ybS5zdGF0dXNDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5mb3JtRGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBGb3JtQ29udHJvbFN0YXR1cykgPT4ge1xuICAgICAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKGZvcm0pO1xuICAgICAgICB0aGlzLl9wYXltZW50Rm9ybSQubmV4dChzdGF0dXMpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKlxuICAgKiBpbiBjYXNlIHRoZSBmb3JtIHBpZCBjaGFuZ2VzIGRlc3BpdGUgdGhlIG9uZSBwYXNzZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uXG4gICAqICAqL1xuICBwcml2YXRlIHVwZGF0ZVBpZENvbmZpZygpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50UGlkID0gdGhpcy5nZXRQaWQoKTtcbiAgICBpZiAoY3VycmVudFBpZCkge1xuICAgICAgdGhpcy5jb25maWcucGF5bWVudE1ldGhvZElkID0gY3VycmVudFBpZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtUmVzcG9uc2UoZGF0YTogRm9ybVJlc3BvbnNlWydkYXRhJ10pOiB2b2lkIHtcbiAgICBsZXQgdHlwZTogRm9ybVJlc3BvbnNlWyd0eXBlJ107XG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHR5cGUgPSAnaW5pdGlhbGl6ZSc7XG4gICAgfSBlbHNlIGlmIChkYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHR5cGUgPSAnc3VibWl0JztcbiAgICB9IGVsc2Uge1xuICAgICAgdHlwZSA9ICdzeW5jJztcbiAgICB9XG4gICAgdGhpcy5fZm9ybVJlc3BvbnNlJC5uZXh0KHtcbiAgICAgIHR5cGUsXG4gICAgICBkYXRhLFxuICAgICAgdG9rZW46IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnRva2VuLFxuICAgICAgaXNTYW5kYm94OiB0aGlzLnNldHRpbmdzU2VydmljZS5pc1NhbmRib3hNb2RlKCksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEluaXRpYWxpemVNZXNzYWdlcygpOiBYcHNNZXNzYWdlW10ge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gKHRoaXMuZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2UpLnBheW1lbnRGb3JtPy5tZXNzYWdlcztcbiAgICBjb25zdCBrb3JlYU5vdGlmaWNhdGlvbiA9ICh0aGlzLmRhdGEgYXMgSW5pdGlhbGl6ZVJlc3BvbnNlKS5wYXltZW50Rm9ybVxuICAgICAgPy5rb3JlYU5vdGlmaWNhdGlvbjtcbiAgICBpZiAoa29yZWFOb3RpZmljYXRpb24pIHtcbiAgICAgIG1lc3NhZ2VzPy5wdXNoKHsgY29kZTogJzAnLCBtZXNzYWdlOiBrb3JlYU5vdGlmaWNhdGlvbj8udGl0bGUgfSk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlcyA/PyBbXTtcbiAgfVxufVxuIl19