@xsolla/payment-client-core 0.2.20 → 0.2.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/{esm2022 → esm2020}/lib/core/combined-payment-methods/combined-payment-methods.service.mjs +5 -5
  2. package/{esm2022 → esm2020}/lib/core/countries-api/countries-api.service.mjs +5 -5
  3. package/{esm2022 → esm2020}/lib/core/country/country.service.mjs +5 -5
  4. package/{esm2022 → esm2020}/lib/core/credit-card/credit-card.service.mjs +4 -4
  5. package/esm2020/lib/core/device-finger-print/device-finger-print.service.mjs +67 -0
  6. package/{esm2022 → esm2020}/lib/core/edit-saved-methods/edit-saved-methods.service.mjs +5 -5
  7. package/esm2020/lib/core/encrypt-credit-card/encrypt-credit-card.service.mjs +72 -0
  8. package/esm2020/lib/core/errors-mapping/xps-response-errors-mapping.service.mjs +52 -0
  9. package/esm2020/lib/core/exceptions-handling/elk/elk-logger.service.mjs +120 -0
  10. package/esm2020/lib/core/exceptions-handling/errors/http-error.class.mjs +40 -0
  11. package/esm2020/lib/core/exceptions-handling/errors/tagged-error.class.mjs +16 -0
  12. package/{esm2022 → esm2020}/lib/core/exceptions-handling/http-interceptor/http-exceptions.interceptor.mjs +5 -5
  13. package/esm2020/lib/core/http/secure-api/secure-api.service.mjs +55 -0
  14. package/{esm2022 → esm2020}/lib/core/legal/disclaimer.service.mjs +4 -4
  15. package/{esm2022 → esm2020}/lib/core/legal/legal.service.mjs +5 -5
  16. package/esm2020/lib/core/legal/refund-policy.service.mjs +30 -0
  17. package/esm2020/lib/core/legal/secure-connection.service.mjs +31 -0
  18. package/{esm2022 → esm2020}/lib/core/payment/actions/check-status/check-status.action.class.mjs +4 -4
  19. package/esm2020/lib/core/payment/actions/next-action.service.mjs +61 -0
  20. package/esm2020/lib/core/payment/actions/redirect/redirect.action.class.mjs +60 -0
  21. package/{esm2022 → esm2020}/lib/core/payment/actions/show-errors/show-errors.action.class.mjs +4 -4
  22. package/esm2020/lib/core/payment/actions/show-fields/show-fields.action.class.mjs +37 -0
  23. package/{esm2022 → esm2020}/lib/core/payment/actions/show-mobile-payment-screen/show-mobile-payment-screen.action.class.mjs +4 -4
  24. package/{esm2022 → esm2020}/lib/core/payment/actions/show-qr-code/show-qr-code.action.class.mjs +4 -4
  25. package/{esm2022 → esm2020}/lib/core/payment/actions/special-button/special-button.action.class.mjs +4 -4
  26. package/esm2020/lib/core/payment/actions/status-updated/status-updated.action.class.mjs +38 -0
  27. package/{esm2022 → esm2020}/lib/core/payment/actions/three-ds/three-ds.action.class.mjs +4 -4
  28. package/esm2020/lib/core/payment/config/config.service.mjs +37 -0
  29. package/{esm2022 → esm2020}/lib/core/payment/credit-card-state/credit-card-state.service.mjs +4 -4
  30. package/esm2020/lib/core/payment/finance-details/finance-details.service.mjs +38 -0
  31. package/{esm2022 → esm2020}/lib/core/payment/finance-details/status/status-finance-details-adapter.service.mjs +5 -5
  32. package/esm2020/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs +264 -0
  33. package/esm2020/lib/core/payment/form/controls/control-config.service.mjs +46 -0
  34. package/{esm2022 → esm2020}/lib/core/payment/form/converters/birth-date/birth-date.converter.mjs +5 -5
  35. package/{esm2022 → esm2020}/lib/core/payment/form/converters/card-month/card-month.converter.mjs +5 -5
  36. package/{esm2022 → esm2020}/lib/core/payment/form/converters/card-number/card-number.converter.mjs +5 -5
  37. package/{esm2022 → esm2020}/lib/core/payment/form/converters/card-year/card-year.converter.mjs +5 -5
  38. package/{esm2022 → esm2020}/lib/core/payment/form/converters/cardholder-name/cardholder-name.converter.mjs +5 -5
  39. package/esm2020/lib/core/payment/form/converters/checkbox/checkbox.converter.mjs +33 -0
  40. package/esm2020/lib/core/payment/form/converters/converter.abstract.mjs +76 -0
  41. package/{esm2022 → esm2020}/lib/core/payment/form/converters/coupon/coupon.converter.mjs +5 -5
  42. package/{esm2022 → esm2020}/lib/core/payment/form/converters/cpf-name/cpf-name.converter.mjs +5 -5
  43. package/{esm2022 → esm2020}/lib/core/payment/form/converters/cpf-number/cpf-number.converter.mjs +5 -5
  44. package/esm2020/lib/core/payment/form/converters/cvv/cvv.converter.mjs +72 -0
  45. package/{esm2022 → esm2020}/lib/core/payment/form/converters/email/email.converter.mjs +5 -5
  46. package/{esm2022 → esm2020}/lib/core/payment/form/converters/phone.converter.mjs +5 -5
  47. package/{esm2022 → esm2020}/lib/core/payment/form/converters/pin/pin.converter.mjs +5 -5
  48. package/{esm2022 → esm2020}/lib/core/payment/form/converters/pricepoint/pricepoint.converter.mjs +5 -5
  49. package/{esm2022 → esm2020}/lib/core/payment/form/converters/radio-group/radio-group.converter.mjs +5 -5
  50. package/{esm2022 → esm2020}/lib/core/payment/form/converters/select/select.converter.mjs +5 -5
  51. package/esm2020/lib/core/payment/form/converters/street-number/street-number.converter.mjs +28 -0
  52. package/{esm2022 → esm2020}/lib/core/payment/form/converters/text/text.converter.mjs +5 -5
  53. package/esm2020/lib/core/payment/form/converters/zip/zip.converter.mjs +64 -0
  54. package/{esm2022 → esm2020}/lib/core/payment/form/form.module.mjs +33 -33
  55. package/esm2020/lib/core/payment/form/form.service.mjs +49 -0
  56. package/esm2020/lib/core/payment/form/validators/birth-date/birth-date.validator.mjs +37 -0
  57. package/esm2020/lib/core/payment/form/validators/card-month/card-month.validator.mjs +37 -0
  58. package/esm2020/lib/core/payment/form/validators/card-year/card-year.validator.mjs +34 -0
  59. package/esm2020/lib/core/payment/form/validators/convert.function.mjs +15 -0
  60. package/esm2020/lib/core/payment/form/validators/credit-card-length/credit-card-min-length.validator.mjs +32 -0
  61. package/esm2020/lib/core/payment/form/validators/luhn-formula-validator/luhn-formula.validator.mjs +40 -0
  62. package/{esm2022 → esm2020}/lib/core/payment/form/validators/validators.module.mjs +5 -5
  63. package/esm2020/lib/core/payment/form-messages/form-messages.service.mjs +23 -0
  64. package/esm2020/lib/core/payment/initialize/initialize.service.mjs +85 -0
  65. package/esm2020/lib/core/payment/initialize/response/initialize-response.class.mjs +43 -0
  66. package/esm2020/lib/core/payment/payment.service.mjs +369 -0
  67. package/{esm2022 → esm2020}/lib/core/payment/status/check-status/check-status.service.mjs +6 -6
  68. package/{esm2022 → esm2020}/lib/core/payment/status/check-status/request/check-status-request.class.mjs +1 -1
  69. package/esm2020/lib/core/payment/status/listen-status/listen-status.service.mjs +124 -0
  70. package/{esm2022 → esm2020}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account-changes.service.mjs +5 -5
  71. package/esm2020/lib/core/payment/status/save-payment-method-status/save-payment-method-status.service.mjs +121 -0
  72. package/esm2020/lib/core/payment/status/status-request/request/status-request.class.mjs +22 -0
  73. package/esm2020/lib/core/payment/status/status-request/response/status-response.class.mjs +98 -0
  74. package/{esm2022 → esm2020}/lib/core/payment/status/status-request/status-request.service.mjs +6 -6
  75. package/esm2020/lib/core/payment/status/status.service.mjs +75 -0
  76. package/esm2020/lib/core/payment/status/websocket-status/websocket-status.service.mjs +76 -0
  77. package/esm2020/lib/core/payment/submit/request/submit-request.class.mjs +24 -0
  78. package/esm2020/lib/core/payment/submit/response/submit-response.class.mjs +31 -0
  79. package/esm2020/lib/core/payment/submit/submit.service.mjs +78 -0
  80. package/esm2020/lib/core/payment/sync/request/sync-request.class.mjs +31 -0
  81. package/esm2020/lib/core/payment/sync/response/sync-response.class.mjs +17 -0
  82. package/esm2020/lib/core/payment/sync/sync.service.mjs +157 -0
  83. package/esm2020/lib/core/payment/three-ds/api/notify-dfp-status/notify-dfp-status.service.mjs +49 -0
  84. package/esm2020/lib/core/payment/three-ds/api/status-three-ds/status-three-ds.service.mjs +60 -0
  85. package/esm2020/lib/core/payment/three-ds/dfp-collect/dfp-collect.service.mjs +105 -0
  86. package/esm2020/lib/core/payment/three-ds/reinsurance-check/reinsurance-check.service.mjs +41 -0
  87. package/esm2020/lib/core/payment/three-ds/three-ds-20/three-ds20.service.mjs +109 -0
  88. package/esm2020/lib/core/payment/three-ds/three-ds.service.mjs +42 -0
  89. package/esm2020/lib/core/payment/xps-api/xps-api.service.mjs +85 -0
  90. package/esm2020/lib/core/payment/xps-api-part-request.abstract.mjs +8 -0
  91. package/esm2020/lib/core/payment-methods/payment-methods.service.mjs +75 -0
  92. package/esm2020/lib/core/performance/performance.service.mjs +111 -0
  93. package/esm2020/lib/core/performance/xhr-action.service.mjs +114 -0
  94. package/esm2020/lib/core/saved-methods/saved-methods.service.mjs +54 -0
  95. package/esm2020/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +268 -0
  96. package/esm2020/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +177 -0
  97. package/esm2020/lib/core/sdk-payment-systems/payment-systems/payment-system-processing.service.mjs +84 -0
  98. package/esm2020/lib/core/session/session.service.mjs +57 -0
  99. package/esm2020/lib/core/settings/settings.service.mjs +92 -0
  100. package/esm2020/lib/core/url/url.service.mjs +34 -0
  101. package/esm2020/lib/core/user-agent/user-agent.service.mjs +211 -0
  102. package/esm2020/lib/core/user-balance/user-balance.service.mjs +53 -0
  103. package/esm2020/lib/core/user-behaviour-analytics/event-builder/event-builder.service.mjs +144 -0
  104. package/esm2020/lib/core/user-behaviour-analytics/user-behaviour-analytics.service.mjs +158 -0
  105. package/esm2020/lib/core/web-socket/centrifugo-web-socket.service.mjs +200 -0
  106. package/esm2020/lib/core/web-socket/nchan-web-socket.service.mjs +116 -0
  107. package/esm2020/lib/core/web-socket/web-socket.factory.mjs +28 -0
  108. package/esm2020/lib/core-library.module.mjs +92 -0
  109. package/{esm2022 → esm2020}/lib/core-library.service.mjs +5 -5
  110. package/{esm2022 → esm2020}/lib/shared/pipes/pipes.module.mjs +5 -5
  111. package/esm2020/lib/shared/pipes/unescape-html/unescape-html.pipe.mjs +23 -0
  112. package/fesm2015/xsolla-payment-client-core.mjs +8138 -0
  113. package/fesm2015/xsolla-payment-client-core.mjs.map +1 -0
  114. package/{fesm2022 → fesm2020}/xsolla-payment-client-core.mjs +460 -460
  115. package/fesm2020/xsolla-payment-client-core.mjs.map +1 -0
  116. package/package.json +16 -10
  117. package/xsolla-payment-client-core-0.2.21.tgz +0 -0
  118. package/esm2022/lib/core/device-finger-print/device-finger-print.service.mjs +0 -67
  119. package/esm2022/lib/core/encrypt-credit-card/encrypt-credit-card.service.mjs +0 -72
  120. package/esm2022/lib/core/errors-mapping/xps-response-errors-mapping.service.mjs +0 -52
  121. package/esm2022/lib/core/exceptions-handling/elk/elk-logger.service.mjs +0 -120
  122. package/esm2022/lib/core/exceptions-handling/errors/http-error.class.mjs +0 -40
  123. package/esm2022/lib/core/exceptions-handling/errors/tagged-error.class.mjs +0 -16
  124. package/esm2022/lib/core/http/secure-api/secure-api.service.mjs +0 -55
  125. package/esm2022/lib/core/legal/refund-policy.service.mjs +0 -30
  126. package/esm2022/lib/core/legal/secure-connection.service.mjs +0 -31
  127. package/esm2022/lib/core/payment/actions/next-action.service.mjs +0 -61
  128. package/esm2022/lib/core/payment/actions/redirect/redirect.action.class.mjs +0 -60
  129. package/esm2022/lib/core/payment/actions/show-fields/show-fields.action.class.mjs +0 -34
  130. package/esm2022/lib/core/payment/actions/status-updated/status-updated.action.class.mjs +0 -38
  131. package/esm2022/lib/core/payment/config/config.service.mjs +0 -37
  132. package/esm2022/lib/core/payment/finance-details/finance-details.service.mjs +0 -38
  133. package/esm2022/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs +0 -264
  134. package/esm2022/lib/core/payment/form/controls/control-config.service.mjs +0 -46
  135. package/esm2022/lib/core/payment/form/converters/checkbox/checkbox.converter.mjs +0 -33
  136. package/esm2022/lib/core/payment/form/converters/converter.abstract.mjs +0 -76
  137. package/esm2022/lib/core/payment/form/converters/cvv/cvv.converter.mjs +0 -72
  138. package/esm2022/lib/core/payment/form/converters/street-number/street-number.converter.mjs +0 -28
  139. package/esm2022/lib/core/payment/form/converters/zip/zip.converter.mjs +0 -64
  140. package/esm2022/lib/core/payment/form/form.service.mjs +0 -49
  141. package/esm2022/lib/core/payment/form/validators/birth-date/birth-date.validator.mjs +0 -37
  142. package/esm2022/lib/core/payment/form/validators/card-month/card-month.validator.mjs +0 -37
  143. package/esm2022/lib/core/payment/form/validators/card-year/card-year.validator.mjs +0 -34
  144. package/esm2022/lib/core/payment/form/validators/convert.function.mjs +0 -15
  145. package/esm2022/lib/core/payment/form/validators/credit-card-length/credit-card-min-length.validator.mjs +0 -32
  146. package/esm2022/lib/core/payment/form/validators/luhn-formula-validator/luhn-formula.validator.mjs +0 -40
  147. package/esm2022/lib/core/payment/form-messages/form-messages.service.mjs +0 -26
  148. package/esm2022/lib/core/payment/initialize/initialize.service.mjs +0 -85
  149. package/esm2022/lib/core/payment/initialize/response/initialize-response.class.mjs +0 -43
  150. package/esm2022/lib/core/payment/payment.service.mjs +0 -369
  151. package/esm2022/lib/core/payment/status/listen-status/listen-status.service.mjs +0 -124
  152. package/esm2022/lib/core/payment/status/save-payment-method-status/save-payment-method-status.service.mjs +0 -121
  153. package/esm2022/lib/core/payment/status/status-request/request/status-request.class.mjs +0 -22
  154. package/esm2022/lib/core/payment/status/status-request/response/status-response.class.mjs +0 -98
  155. package/esm2022/lib/core/payment/status/status.service.mjs +0 -75
  156. package/esm2022/lib/core/payment/status/websocket-status/websocket-status.service.mjs +0 -76
  157. package/esm2022/lib/core/payment/submit/request/submit-request.class.mjs +0 -24
  158. package/esm2022/lib/core/payment/submit/response/submit-response.class.mjs +0 -31
  159. package/esm2022/lib/core/payment/submit/submit.service.mjs +0 -78
  160. package/esm2022/lib/core/payment/sync/request/sync-request.class.mjs +0 -31
  161. package/esm2022/lib/core/payment/sync/response/sync-response.class.mjs +0 -17
  162. package/esm2022/lib/core/payment/sync/sync.service.mjs +0 -157
  163. package/esm2022/lib/core/payment/three-ds/api/notify-dfp-status/notify-dfp-status.service.mjs +0 -49
  164. package/esm2022/lib/core/payment/three-ds/api/status-three-ds/status-three-ds.service.mjs +0 -60
  165. package/esm2022/lib/core/payment/three-ds/dfp-collect/dfp-collect.service.mjs +0 -105
  166. package/esm2022/lib/core/payment/three-ds/reinsurance-check/reinsurance-check.service.mjs +0 -41
  167. package/esm2022/lib/core/payment/three-ds/three-ds-20/three-ds20.service.mjs +0 -109
  168. package/esm2022/lib/core/payment/three-ds/three-ds.service.mjs +0 -42
  169. package/esm2022/lib/core/payment/xps-api/xps-api.service.mjs +0 -85
  170. package/esm2022/lib/core/payment/xps-api-part-request.abstract.mjs +0 -8
  171. package/esm2022/lib/core/payment-methods/payment-methods.service.mjs +0 -75
  172. package/esm2022/lib/core/performance/performance.service.mjs +0 -111
  173. package/esm2022/lib/core/performance/xhr-action.service.mjs +0 -114
  174. package/esm2022/lib/core/saved-methods/saved-methods.service.mjs +0 -54
  175. package/esm2022/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +0 -268
  176. package/esm2022/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +0 -177
  177. package/esm2022/lib/core/sdk-payment-systems/payment-systems/payment-system-processing.service.mjs +0 -84
  178. package/esm2022/lib/core/session/session.service.mjs +0 -57
  179. package/esm2022/lib/core/settings/settings.service.mjs +0 -92
  180. package/esm2022/lib/core/url/url.service.mjs +0 -34
  181. package/esm2022/lib/core/user-agent/user-agent.service.mjs +0 -211
  182. package/esm2022/lib/core/user-balance/user-balance.service.mjs +0 -53
  183. package/esm2022/lib/core/user-behaviour-analytics/event-builder/event-builder.service.mjs +0 -144
  184. package/esm2022/lib/core/user-behaviour-analytics/user-behaviour-analytics.service.mjs +0 -158
  185. package/esm2022/lib/core/web-socket/centrifugo-web-socket.service.mjs +0 -200
  186. package/esm2022/lib/core/web-socket/nchan-web-socket.service.mjs +0 -116
  187. package/esm2022/lib/core/web-socket/web-socket.factory.mjs +0 -28
  188. package/esm2022/lib/core-library.module.mjs +0 -92
  189. package/esm2022/lib/shared/pipes/unescape-html/unescape-html.pipe.mjs +0 -23
  190. package/fesm2022/xsolla-payment-client-core.mjs.map +0 -1
  191. package/xsolla-payment-client-core-0.2.20.tgz +0 -0
  192. /package/{esm2022 → esm2020}/lib/core/agreementsGroup.const.mjs +0 -0
  193. /package/{esm2022 → esm2020}/lib/core/boolean-number.enum.mjs +0 -0
  194. /package/{esm2022 → esm2020}/lib/core/combined-payment-methods/combined-payment-methods.interface.mjs +0 -0
  195. /package/{esm2022 → esm2020}/lib/core/countries-api/country-response.interface.mjs +0 -0
  196. /package/{esm2022 → esm2020}/lib/core/countries-api/country.interface.mjs +0 -0
  197. /package/{esm2022 → esm2020}/lib/core/country/country-iso-code.enum.mjs +0 -0
  198. /package/{esm2022 → esm2020}/lib/core/credit-card/credit-card-settings.interface.mjs +0 -0
  199. /package/{esm2022 → esm2020}/lib/core/credit-card/credit-card-types.enum.mjs +0 -0
  200. /package/{esm2022 → esm2020}/lib/core/credit-card/credit-card.interface.mjs +0 -0
  201. /package/{esm2022 → esm2020}/lib/core/credit-card/credit-cards-map.const.mjs +0 -0
  202. /package/{esm2022 → esm2020}/lib/core/credit-card/default-mask.const.mjs +0 -0
  203. /package/{esm2022 → esm2020}/lib/core/credit-card/four-block-mask.const.mjs +0 -0
  204. /package/{esm2022 → esm2020}/lib/core/credit-card/ordered-cards-settings.const.mjs +0 -0
  205. /package/{esm2022 → esm2020}/lib/core/credit-card/types/american-express.mjs +0 -0
  206. /package/{esm2022 → esm2020}/lib/core/credit-card/types/aura.mjs +0 -0
  207. /package/{esm2022 → esm2020}/lib/core/credit-card/types/china-union-pay.mjs +0 -0
  208. /package/{esm2022 → esm2020}/lib/core/credit-card/types/dankort.mjs +0 -0
  209. /package/{esm2022 → esm2020}/lib/core/credit-card/types/default-card.mjs +0 -0
  210. /package/{esm2022 → esm2020}/lib/core/credit-card/types/diners-clubs.mjs +0 -0
  211. /package/{esm2022 → esm2020}/lib/core/credit-card/types/discover.mjs +0 -0
  212. /package/{esm2022 → esm2020}/lib/core/credit-card/types/elo.mjs +0 -0
  213. /package/{esm2022 → esm2020}/lib/core/credit-card/types/hipercard.mjs +0 -0
  214. /package/{esm2022 → esm2020}/lib/core/credit-card/types/jcb.mjs +0 -0
  215. /package/{esm2022 → esm2020}/lib/core/credit-card/types/maestro.mjs +0 -0
  216. /package/{esm2022 → esm2020}/lib/core/credit-card/types/mastercard.mjs +0 -0
  217. /package/{esm2022 → esm2020}/lib/core/credit-card/types/mir.mjs +0 -0
  218. /package/{esm2022 → esm2020}/lib/core/credit-card/types/naranja.mjs +0 -0
  219. /package/{esm2022 → esm2020}/lib/core/credit-card/types/postepay.mjs +0 -0
  220. /package/{esm2022 → esm2020}/lib/core/credit-card/types/visa.mjs +0 -0
  221. /package/{esm2022 → esm2020}/lib/core/deep-readonly.type.mjs +0 -0
  222. /package/{esm2022 → esm2020}/lib/core/device-finger-print/hash.type.mjs +0 -0
  223. /package/{esm2022 → esm2020}/lib/core/edit-saved-methods/delete-method-response.interface.mjs +0 -0
  224. /package/{esm2022 → esm2020}/lib/core/encrypt-credit-card/encrypted-card.interface.mjs +0 -0
  225. /package/{esm2022 → esm2020}/lib/core/encrypt-credit-card/open-card.interface.mjs +0 -0
  226. /package/{esm2022 → esm2020}/lib/core/errors-mapping/card-number-sanction-error-codes.const.mjs +0 -0
  227. /package/{esm2022 → esm2020}/lib/core/errors-mapping/field-special-errors-map.const.mjs +0 -0
  228. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/elk/additional-info.interface.mjs +0 -0
  229. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/elk/error-without-meta-fields.interface.mjs +0 -0
  230. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/elk/log-message.interface.mjs +0 -0
  231. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/api-error.interface.mjs +0 -0
  232. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/app-error.class.mjs +0 -0
  233. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/elk-error-types.enum.mjs +0 -0
  234. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/encrypt-card-error.mjs +0 -0
  235. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/response-error.class.mjs +0 -0
  236. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/terminal-error.class.mjs +0 -0
  237. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/token-error.class.mjs +0 -0
  238. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/errors/ws-error.class.mjs +0 -0
  239. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/http-interceptor/http-error-data.interface.mjs +0 -0
  240. /package/{esm2022 → esm2020}/lib/core/exceptions-handling/http-interceptor/http-error-response-data.interface.mjs +0 -0
  241. /package/{esm2022 → esm2020}/lib/core/extended-window.interface.mjs +0 -0
  242. /package/{esm2022 → esm2020}/lib/core/http/secure-api/api-url.const.mjs +0 -0
  243. /package/{esm2022 → esm2020}/lib/core/http/secure-api/options.interface.mjs +0 -0
  244. /package/{esm2022 → esm2020}/lib/core/legal/legal.component.config.mjs +0 -0
  245. /package/{esm2022 → esm2020}/lib/core/payment/actions/action.interface.mjs +0 -0
  246. /package/{esm2022 → esm2020}/lib/core/payment/actions/check-status/check-status.action.type.mjs +0 -0
  247. /package/{esm2022 → esm2020}/lib/core/payment/actions/next-action.interface.mjs +0 -0
  248. /package/{esm2022 → esm2020}/lib/core/payment/actions/next-actions.mjs +0 -0
  249. /package/{esm2022 → esm2020}/lib/core/payment/actions/redirect/pay-station4-url.const.mjs +0 -0
  250. /package/{esm2022 → esm2020}/lib/core/payment/actions/redirect/ps4-pages/pages-payment-methods-id.const.mjs +0 -0
  251. /package/{esm2022 → esm2020}/lib/core/payment/actions/redirect/ps4-pages/pages-routes.const.mjs +0 -0
  252. /package/{esm2022 → esm2020}/lib/core/payment/actions/redirect/redirect.action.type.mjs +0 -0
  253. /package/{esm2022 → esm2020}/lib/core/payment/actions/show-errors/show-errors.action.type.mjs +0 -0
  254. /package/{esm2022 → esm2020}/lib/core/payment/actions/show-fields/show-fields.action.type.mjs +0 -0
  255. /package/{esm2022 → esm2020}/lib/core/payment/actions/show-mobile-payment-screen/show-mobile-payment-screen.action.type.mjs +0 -0
  256. /package/{esm2022 → esm2020}/lib/core/payment/actions/show-qr-code/show-qr-code.action.type.mjs +0 -0
  257. /package/{esm2022 → esm2020}/lib/core/payment/actions/special-button/special-button.action.type.mjs +0 -0
  258. /package/{esm2022 → esm2020}/lib/core/payment/actions/status-updated/status-updated.action.type.mjs +0 -0
  259. /package/{esm2022 → esm2020}/lib/core/payment/actions/three-ds/three-ds.action.type.mjs +0 -0
  260. /package/{esm2022 → esm2020}/lib/core/payment/checkout-item.interface.mjs +0 -0
  261. /package/{esm2022 → esm2020}/lib/core/payment/credit-card-payment-methods-id.variable.mjs +0 -0
  262. /package/{esm2022 → esm2020}/lib/core/payment/credit-card-state/credit-card-state.interface.mjs +0 -0
  263. /package/{esm2022 → esm2020}/lib/core/payment/emit-data.service.abstract.mjs +0 -0
  264. /package/{esm2022 → esm2020}/lib/core/payment/field-names.enum.mjs +0 -0
  265. /package/{esm2022 → esm2020}/lib/core/payment/field.interface.mjs +0 -0
  266. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/cart-item.interface.mjs +0 -0
  267. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/cart-line.interface.mjs +0 -0
  268. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/cart-summary.interface.mjs +0 -0
  269. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/finance-details.interface.mjs +0 -0
  270. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/price.helpers.mjs +0 -0
  271. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/price.interface.mjs +0 -0
  272. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/status/field-with-amount-and-currency.interface.mjs +0 -0
  273. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/status/fields-with-currency.mjs +0 -0
  274. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/status/finance-info.interface.mjs +0 -0
  275. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/summary/default-image-patterns.const.mjs +0 -0
  276. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/summary/sales-tax-details-key.enum.mjs +0 -0
  277. /package/{esm2022 → esm2020}/lib/core/payment/finance-details/vat-details-key.enum.mjs +0 -0
  278. /package/{esm2022 → esm2020}/lib/core/payment/form/common-control-config.interface.mjs +0 -0
  279. /package/{esm2022 → esm2020}/lib/core/payment/form/control-status.interface.mjs +0 -0
  280. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/card-number/card-number-control.config.mjs +0 -0
  281. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/checkbox/checkbox-control.config.mjs +0 -0
  282. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/control-config.mjs +0 -0
  283. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/control-type.type.mjs +0 -0
  284. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/coupon/coupon-control.config.mjs +0 -0
  285. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/phone-control.config.mjs +0 -0
  286. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/radio-control/radio-control.config.mjs +0 -0
  287. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/radio-control/radio-option.interface.mjs +0 -0
  288. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/search-select/search-select-option.interface.mjs +0 -0
  289. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/search-select/select-control.config.mjs +0 -0
  290. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/search-select/select-option.interface.mjs +0 -0
  291. /package/{esm2022 → esm2020}/lib/core/payment/form/controls/text-control.config.mjs +0 -0
  292. /package/{esm2022 → esm2020}/lib/core/payment/form/converters/converters-map.interface.mjs +0 -0
  293. /package/{esm2022 → esm2020}/lib/core/payment/form/converters/converters-map.mjs +0 -0
  294. /package/{esm2022 → esm2020}/lib/core/payment/form/converters/cpf-name/cpf-name-regex.variable.mjs +0 -0
  295. /package/{esm2022 → esm2020}/lib/core/payment/form/converters/cvv/cvv-form-state.interface.mjs +0 -0
  296. /package/{esm2022 → esm2020}/lib/core/payment/form/converters/street-number/street-number-from-state.interface.mjs +0 -0
  297. /package/{esm2022 → esm2020}/lib/core/payment/form/field-form-states.interface.mjs +0 -0
  298. /package/{esm2022 → esm2020}/lib/core/payment/form/field-status.interface.mjs +0 -0
  299. /package/{esm2022 → esm2020}/lib/core/payment/form/form-fields-status.interface.mjs +0 -0
  300. /package/{esm2022 → esm2020}/lib/core/payment/form/form-state.interface.mjs +0 -0
  301. /package/{esm2022 → esm2020}/lib/core/payment/form/input-event.enum.mjs +0 -0
  302. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/async-validator-fn.type.mjs +0 -0
  303. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/coupon/coupon-validator.mjs +0 -0
  304. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/email/email-validator.mjs +0 -0
  305. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/is-empty-input-value.function.mjs +0 -0
  306. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/max-length-validator.mjs +0 -0
  307. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/min-length-validator.mjs +0 -0
  308. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/phone-validator.mjs +0 -0
  309. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/required/required.validator.mjs +0 -0
  310. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/restricted-value/restricted-value.validator.mjs +0 -0
  311. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/validation-error.interface.mjs +0 -0
  312. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/validation-errors.interface.mjs +0 -0
  313. /package/{esm2022 → esm2020}/lib/core/payment/form/validators/validator-fn.type.mjs +0 -0
  314. /package/{esm2022 → esm2020}/lib/core/payment/form-response.interface.mjs +0 -0
  315. /package/{esm2022 → esm2020}/lib/core/payment/initialize/initialize-request-params.interface.mjs +0 -0
  316. /package/{esm2022 → esm2020}/lib/core/payment/initialize/response/initialize-response.token.mjs +0 -0
  317. /package/{esm2022 → esm2020}/lib/core/payment/invoice.interface.mjs +0 -0
  318. /package/{esm2022 → esm2020}/lib/core/payment/payment-config.interface.mjs +0 -0
  319. /package/{esm2022 → esm2020}/lib/core/payment/payment-form.interface.mjs +0 -0
  320. /package/{esm2022 → esm2020}/lib/core/payment/payment.interface.mjs +0 -0
  321. /package/{esm2022 → esm2020}/lib/core/payment/status/check-status/request/check-status-request.token.mjs +0 -0
  322. /package/{esm2022 → esm2020}/lib/core/payment/status/check-status/response/check-status-response.class.mjs +0 -0
  323. /package/{esm2022 → esm2020}/lib/core/payment/status/check-status/response/check-status-response.token.mjs +0 -0
  324. /package/{esm2022 → esm2020}/lib/core/payment/status/finance-info-field.interface.mjs +0 -0
  325. /package/{esm2022 → esm2020}/lib/core/payment/status/line-item.interface.mjs +0 -0
  326. /package/{esm2022 → esm2020}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account-changes.interface.mjs +0 -0
  327. /package/{esm2022 → esm2020}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account.interface.mjs +0 -0
  328. /package/{esm2022 → esm2020}/lib/core/payment/status/save-payment-method-status/save-payment-method-status.enum.mjs +0 -0
  329. /package/{esm2022 → esm2020}/lib/core/payment/status/status-finance-info.interface.mjs +0 -0
  330. /package/{esm2022 → esm2020}/lib/core/payment/status/status-groups.mjs +0 -0
  331. /package/{esm2022 → esm2020}/lib/core/payment/status/status-order.interface.mjs +0 -0
  332. /package/{esm2022 → esm2020}/lib/core/payment/status/status-request/request/status-request.token.mjs +0 -0
  333. /package/{esm2022 → esm2020}/lib/core/payment/status/status-request/required-status-search-params.const.mjs +0 -0
  334. /package/{esm2022 → esm2020}/lib/core/payment/status/status-request/response/status-response.token.mjs +0 -0
  335. /package/{esm2022 → esm2020}/lib/core/payment/status/status-request/status-request-params.interface.mjs +0 -0
  336. /package/{esm2022 → esm2020}/lib/core/payment/status/status-request/status-search-param.enum.mjs +0 -0
  337. /package/{esm2022 → esm2020}/lib/core/payment/status/status-request/status-search-params.map.mjs +0 -0
  338. /package/{esm2022 → esm2020}/lib/core/payment/status/status-settings.interface.mjs +0 -0
  339. /package/{esm2022 → esm2020}/lib/core/payment/status/status-updated.interface.mjs +0 -0
  340. /package/{esm2022 → esm2020}/lib/core/payment/status/status.enum.mjs +0 -0
  341. /package/{esm2022 → esm2020}/lib/core/payment/status/status.interface.mjs +0 -0
  342. /package/{esm2022 → esm2020}/lib/core/payment/status/title-class.enum.mjs +0 -0
  343. /package/{esm2022 → esm2020}/lib/core/payment/status/web-socket-client-type.enum.mjs +0 -0
  344. /package/{esm2022 → esm2020}/lib/core/payment/status/websocket-status/websocket-status.enum.mjs +0 -0
  345. /package/{esm2022 → esm2020}/lib/core/payment/submit/request/submit-request.token.mjs +0 -0
  346. /package/{esm2022 → esm2020}/lib/core/payment/submit/response/is-submit-response.function.mjs +0 -0
  347. /package/{esm2022 → esm2020}/lib/core/payment/submit/response/submit-response.token.mjs +0 -0
  348. /package/{esm2022 → esm2020}/lib/core/payment/sync/field-async-validation.interface.mjs +0 -0
  349. /package/{esm2022 → esm2020}/lib/core/payment/sync/field-sync-state.interface.mjs +0 -0
  350. /package/{esm2022 → esm2020}/lib/core/payment/sync/request/sync-request.token.mjs +0 -0
  351. /package/{esm2022 → esm2020}/lib/core/payment/sync/response/sync-response.token.mjs +0 -0
  352. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/notify-dfp-status/request/notify-dfp-status-request.class.mjs +0 -0
  353. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/notify-dfp-status/request/notify-dfp-status-request.token.mjs +0 -0
  354. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/status-three-ds/request/status-three-ds-request.class.mjs +0 -0
  355. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/status-three-ds/request/status-three-ds-request.token.mjs +0 -0
  356. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/status-three-ds/response/status-three-ds-response.class.mjs +0 -0
  357. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/status-three-ds/response/status-three-ds-response.token.mjs +0 -0
  358. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/status-three-ds/status-three-ds-response.interface.mjs +0 -0
  359. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/status-three-ds/status-types.enum.mjs +0 -0
  360. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/api/status-three-ds/three-ds-checkout-form.interface.mjs +0 -0
  361. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/reinsurance-check/timer.interface.mjs +0 -0
  362. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/three-ds-20/status-update.interface.mjs +0 -0
  363. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/three-ds-form.interface.mjs +0 -0
  364. /package/{esm2022 → esm2020}/lib/core/payment/three-ds/three-ds-status-websocket-types.enum.mjs +0 -0
  365. /package/{esm2022 → esm2020}/lib/core/payment/virtual-currency.interface.mjs +0 -0
  366. /package/{esm2022 → esm2020}/lib/core/payment/xps-api-part.abstract.mjs +0 -0
  367. /package/{esm2022 → esm2020}/lib/core/payment/xps-checkout.mjs +0 -0
  368. /package/{esm2022 → esm2020}/lib/core/payment/xps-comand.enum.mjs +0 -0
  369. /package/{esm2022 → esm2020}/lib/core/payment/xps-error.interface.mjs +0 -0
  370. /package/{esm2022 → esm2020}/lib/core/payment/xps-finance.interface.mjs +0 -0
  371. /package/{esm2022 → esm2020}/lib/core/payment/xps-message.interface.mjs +0 -0
  372. /package/{esm2022 → esm2020}/lib/core/payment/xps-purchase.interface.mjs +0 -0
  373. /package/{esm2022 → esm2020}/lib/core/payment/xps-request-params.interface.mjs +0 -0
  374. /package/{esm2022 → esm2020}/lib/core/payment/xps-request.interface.mjs +0 -0
  375. /package/{esm2022 → esm2020}/lib/core/payment/xps-response.error.mjs +0 -0
  376. /package/{esm2022 → esm2020}/lib/core/payment/xps-response.interface.mjs +0 -0
  377. /package/{esm2022 → esm2020}/lib/core/payment/xps-summary.interface.mjs +0 -0
  378. /package/{esm2022 → esm2020}/lib/core/payment-methods/payment-method-api.interface.mjs +0 -0
  379. /package/{esm2022 → esm2020}/lib/core/payment-methods/payment-method.interface.mjs +0 -0
  380. /package/{esm2022 → esm2020}/lib/core/payment-methods/payment-methods-api.interface.mjs +0 -0
  381. /package/{esm2022 → esm2020}/lib/core/payment-methods/payment-methods-request-params.interface.mjs +0 -0
  382. /package/{esm2022 → esm2020}/lib/core/payment-methods/payment-methods-response.class.mjs +0 -0
  383. /package/{esm2022 → esm2020}/lib/core/payment-methods/payment-methods-response.interface.mjs +0 -0
  384. /package/{esm2022 → esm2020}/lib/core/payment-methods/payment-methods-response.token.mjs +0 -0
  385. /package/{esm2022 → esm2020}/lib/core/performance/xhr-action.interface.mjs +0 -0
  386. /package/{esm2022 → esm2020}/lib/core/properties.type.mjs +0 -0
  387. /package/{esm2022 → esm2020}/lib/core/saved-methods/saved-method-api.interface.mjs +0 -0
  388. /package/{esm2022 → esm2020}/lib/core/saved-methods/saved-method.interface.mjs +0 -0
  389. /package/{esm2022 → esm2020}/lib/core/saved-methods/saved-methods-request-params.interface.mjs +0 -0
  390. /package/{esm2022 → esm2020}/lib/core/saved-methods/saved-methods-response.class.mjs +0 -0
  391. /package/{esm2022 → esm2020}/lib/core/saved-methods/saved-methods-response.interface.mjs +0 -0
  392. /package/{esm2022 → esm2020}/lib/core/saved-methods/saved-methods-response.token.mjs +0 -0
  393. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/apple-pay/apple-pay-integration.type.mjs +0 -0
  394. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/apple-pay/apple-pay-params.interface.mjs +0 -0
  395. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/apple-pay/apple-pay.const.mjs +0 -0
  396. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/apple-pay/apple-pay.errors.enum.mjs +0 -0
  397. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/apple-pay/checkout-params.interface.mjs +0 -0
  398. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/google-pay/google-pay-button-color.type.mjs +0 -0
  399. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/google-pay/google-pay-checkout.interface.mjs +0 -0
  400. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/google-pay/google-pay-init-params.interface.mjs +0 -0
  401. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/google-pay/google-pay-library.interface.mjs +0 -0
  402. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/sdk-payment-methods.const.mjs +0 -0
  403. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/sdk-payment-systems-initial-data.interface.mjs +0 -0
  404. /package/{esm2022 → esm2020}/lib/core/sdk-payment-systems/sdk-payment-systems.interface.mjs +0 -0
  405. /package/{esm2022 → esm2020}/lib/core/settings/auto-redirect-on-status.mjs +0 -0
  406. /package/{esm2022 → esm2020}/lib/core/settings/balance.interface.mjs +0 -0
  407. /package/{esm2022 → esm2020}/lib/core/settings/bonus.interface.mjs +0 -0
  408. /package/{esm2022 → esm2020}/lib/core/settings/configuration.interface.mjs +0 -0
  409. /package/{esm2022 → esm2020}/lib/core/settings/empty-utils-response.error.mjs +0 -0
  410. /package/{esm2022 → esm2020}/lib/core/settings/header-type.enum.mjs +0 -0
  411. /package/{esm2022 → esm2020}/lib/core/settings/offer.interface.mjs +0 -0
  412. /package/{esm2022 → esm2020}/lib/core/settings/project.interface.mjs +0 -0
  413. /package/{esm2022 → esm2020}/lib/core/settings/purchase.interface.mjs +0 -0
  414. /package/{esm2022 → esm2020}/lib/core/settings/settings-mode.enum.mjs +0 -0
  415. /package/{esm2022 → esm2020}/lib/core/settings/settings.interface.mjs +0 -0
  416. /package/{esm2022 → esm2020}/lib/core/settings/status-back-show.mjs +0 -0
  417. /package/{esm2022 → esm2020}/lib/core/settings/tracking-info.interface.mjs +0 -0
  418. /package/{esm2022 → esm2020}/lib/core/settings/user.interface.mjs +0 -0
  419. /package/{esm2022 → esm2020}/lib/core/settings/utils-response.interface.mjs +0 -0
  420. /package/{esm2022 → esm2020}/lib/core/type-guards/is-null.function.mjs +0 -0
  421. /package/{esm2022 → esm2020}/lib/core/type-guards/is-string.function.mjs +0 -0
  422. /package/{esm2022 → esm2020}/lib/core/type-guards/is-undefined.function.mjs +0 -0
  423. /package/{esm2022 → esm2020}/lib/core/url/search-params.interface.mjs +0 -0
  424. /package/{esm2022 → esm2020}/lib/core/user-agent/browserInfo.interface.mjs +0 -0
  425. /package/{esm2022 → esm2020}/lib/core/user-agent/browsers.mjs +0 -0
  426. /package/{esm2022 → esm2020}/lib/core/user-agent/device.enum.mjs +0 -0
  427. /package/{esm2022 → esm2020}/lib/core/user-agent/os.mjs +0 -0
  428. /package/{esm2022 → esm2020}/lib/core/user-agent/user-agent-data.interface.mjs +0 -0
  429. /package/{esm2022 → esm2020}/lib/core/user-balance/user-balance-api.interface.mjs +0 -0
  430. /package/{esm2022 → esm2020}/lib/core/user-balance/user-balance-request-params.interface.mjs +0 -0
  431. /package/{esm2022 → esm2020}/lib/core/user-balance/user-balance-response.class.mjs +0 -0
  432. /package/{esm2022 → esm2020}/lib/core/user-balance/user-balance-response.token.mjs +0 -0
  433. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/event-builder/event-parameter-types.mjs +0 -0
  434. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/event-builder/invoice.interface.mjs +0 -0
  435. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/event-builder/purchase.type.mjs +0 -0
  436. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/event-builder/user-behaviour-event.interface.mjs +0 -0
  437. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/one-time-analytics-events.const.mjs +0 -0
  438. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/user-behaviour-analytics.interface.mjs +0 -0
  439. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-categories.mjs +0 -0
  440. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types.mjs +0 -0
  441. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/user-behaviour-event-name.enum.mjs +0 -0
  442. /package/{esm2022 → esm2020}/lib/core/user-behaviour-analytics/user-session-options.mjs +0 -0
  443. /package/{esm2022 → esm2020}/lib/core/web-socket/web-socket-client-type.enum.mjs +0 -0
  444. /package/{esm2022 → esm2020}/lib/core/web-socket/web-socket.interface.mjs +0 -0
  445. /package/{esm2022 → esm2020}/lib/core/window.token.mjs +0 -0
  446. /package/{esm2022 → esm2020}/lib/core/xps-boolean.enum.mjs +0 -0
  447. /package/{esm2022 → esm2020}/public-api.mjs +0 -0
  448. /package/{esm2022 → esm2020}/xsolla-payment-client-core.mjs +0 -0
@@ -1,114 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { interval, of, Subject } from 'rxjs';
3
- import { debounce, filter, map } from 'rxjs/operators';
4
- import { windowToken } from '../window.token';
5
- import { defaultApiUrl, sandboxApiUrl } from '../http/secure-api/api-url.const';
6
- import * as i0 from "@angular/core";
7
- export class XhrActionService {
8
- constructor(window) {
9
- this.window = window;
10
- this.pauseTime = 1000;
11
- this.userInputEventNames = ['click', 'change'];
12
- this.isXhrActionStarted = false;
13
- this.apiRequestEntries = [];
14
- this.cdnRequestEntries = [];
15
- this.entriesSubject = new Subject();
16
- }
17
- getXhrAction() {
18
- if (!this.window.performance || !this.window.PerformanceObserver) {
19
- return of();
20
- }
21
- this.getUserInput().subscribe(() => this.window.performance.mark('userInput'));
22
- this.getPerformance().subscribe((entry) => this.processEntry(entry));
23
- return this.getPauseEvent().pipe(map(() => {
24
- const event = {
25
- name: this.getApiRequestName(),
26
- duration: this.getDuration([
27
- ...this.apiRequestEntries,
28
- ...this.cdnRequestEntries,
29
- ]),
30
- apiRequestCount: this.apiRequestEntries.length,
31
- apiRequestDuration: this.getDuration(this.apiRequestEntries),
32
- cdnRequestCount: this.cdnRequestEntries.length,
33
- cdnRequestDuration: this.getDuration(this.cdnRequestEntries),
34
- };
35
- this.stopXhrAction();
36
- return event;
37
- }));
38
- }
39
- processEntry(entry) {
40
- const isApiRequest = entry.name.includes(defaultApiUrl || sandboxApiUrl);
41
- const cdnUrl = '';
42
- const isCdnRequest = !isApiRequest && entry.name.startsWith(cdnUrl);
43
- if (this.isXhrActionStarted && isApiRequest) {
44
- this.apiRequestEntries.push(entry);
45
- }
46
- if (this.isXhrActionStarted && isCdnRequest) {
47
- this.cdnRequestEntries.push(entry);
48
- }
49
- if (isApiRequest && !this.isXhrActionStarted) {
50
- const userInputEntries = this.window.performance.getEntriesByName('userInput', 'mark');
51
- const userInputEntry = userInputEntries[userInputEntries.length - 1];
52
- if (userInputEntry) {
53
- this.startXhrAction(entry);
54
- }
55
- }
56
- if (isApiRequest || isCdnRequest) {
57
- this.entriesSubject.next(entry);
58
- }
59
- }
60
- startXhrAction(xhrEntry) {
61
- this.isXhrActionStarted = true;
62
- this.apiRequestEntries.push(xhrEntry);
63
- }
64
- stopXhrAction() {
65
- this.isXhrActionStarted = false;
66
- this.apiRequestEntries = [];
67
- this.cdnRequestEntries = [];
68
- }
69
- getUserInput() {
70
- const userInputSubject = new Subject();
71
- this.userInputEventNames.forEach((eventName) => {
72
- this.window.addEventListener(eventName, () => userInputSubject.next());
73
- });
74
- return userInputSubject;
75
- }
76
- getPerformance() {
77
- const performanceSubject = new Subject();
78
- if (this.window.PerformanceObserver) {
79
- const observer = new this.window.PerformanceObserver((list) => {
80
- list.getEntries().forEach((entry) => {
81
- return performanceSubject.next(entry);
82
- });
83
- });
84
- observer.observe({ entryTypes: ['resource'] });
85
- }
86
- return performanceSubject;
87
- }
88
- getApiRequestName() {
89
- return this.apiRequestEntries[0].name.split(defaultApiUrl)[1].split('?')[0];
90
- }
91
- getDuration(entries) {
92
- if (!entries.length) {
93
- return 0;
94
- }
95
- const firstApiRequestEntry = entries.reduce((prev, current) => (prev.startTime < current.startTime ? prev : current));
96
- const lastApiRequestEntry = entries.reduce((prev, current) => prev.responseEnd > current.responseEnd ? prev : current);
97
- return Math.round(lastApiRequestEntry.responseEnd - firstApiRequestEntry.startTime);
98
- }
99
- getPauseEvent() {
100
- return this.entriesSubject.pipe(debounce(() => interval(this.pauseTime)), filter(() => this.isXhrActionStarted));
101
- }
102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: XhrActionService, deps: [{ token: windowToken }], target: i0.ɵɵFactoryTarget.Injectable }); }
103
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: XhrActionService, providedIn: 'root' }); }
104
- }
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: XhrActionService, decorators: [{
106
- type: Injectable,
107
- args: [{
108
- providedIn: 'root',
109
- }]
110
- }], ctorParameters: () => [{ type: undefined, decorators: [{
111
- type: Inject,
112
- args: [windowToken]
113
- }] }] });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGhyLWFjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGVyZm9ybWFuY2UveGhyLWFjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFLaEYsTUFBTSxPQUFPLGdCQUFnQjtJQVEzQixZQUVtQixNQUFzQjtRQUF0QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQVR4QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLHdCQUFtQixHQUFhLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdELHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixzQkFBaUIsR0FBZ0MsRUFBRSxDQUFDO1FBQ3BELHNCQUFpQixHQUFnQyxFQUFFLENBQUM7UUFDM0MsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBNkIsQ0FBQztJQUt4RSxDQUFDO0lBRUcsWUFBWTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDakUsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxFQUFFLENB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YmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbnRlcnZhbCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFhockFjdGlvbiB9IGZyb20gJy4veGhyLWFjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IHdpbmRvd1Rva2VuIH0gZnJvbSAnLi4vd2luZG93LnRva2VuJztcbmltcG9ydCB7IGRlZmF1bHRBcGlVcmwsIHNhbmRib3hBcGlVcmwgfSBmcm9tICcuLi9odHRwL3NlY3VyZS1hcGkvYXBpLXVybC5jb25zdCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBYaHJBY3Rpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXVzZVRpbWUgPSAxMDAwO1xuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJJbnB1dEV2ZW50TmFtZXM6IHN0cmluZ1tdID0gWydjbGljaycsICdjaGFuZ2UnXTtcbiAgcHJpdmF0ZSBpc1hockFjdGlvblN0YXJ0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBhcGlSZXF1ZXN0RW50cmllczogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZ1tdID0gW107XG4gIHByaXZhdGUgY2RuUmVxdWVzdEVudHJpZXM6IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmdbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IGVudHJpZXNTdWJqZWN0ID0gbmV3IFN1YmplY3Q8UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZz4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCh3aW5kb3dUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3dcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXRYaHJBY3Rpb24oKTogT2JzZXJ2YWJsZTxYaHJBY3Rpb24+IHtcbiAgICBpZiAoIXRoaXMud2luZG93LnBlcmZvcm1hbmNlIHx8ICF0aGlzLndpbmRvdy5QZXJmb3JtYW5jZU9ic2VydmVyKSB7XG4gICAgICByZXR1cm4gb2YoKTtcbiAgICB9XG5cbiAgICB0aGlzLmdldFVzZXJJbnB1dCgpLnN1YnNjcmliZSgoKSA9PlxuICAgICAgdGhpcy53aW5kb3cucGVyZm9ybWFuY2UubWFyaygndXNlcklucHV0JylcbiAgICApO1xuXG4gICAgdGhpcy5nZXRQZXJmb3JtYW5jZSgpLnN1YnNjcmliZSgoZW50cnk6IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcpID0+XG4gICAgICB0aGlzLnByb2Nlc3NFbnRyeShlbnRyeSlcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0UGF1c2VFdmVudCgpLnBpcGUoXG4gICAgICBtYXA8UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZywgWGhyQWN0aW9uPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGV2ZW50OiBYaHJBY3Rpb24gPSB7XG4gICAgICAgICAgbmFtZTogdGhpcy5nZXRBcGlSZXF1ZXN0TmFtZSgpLFxuICAgICAgICAgIGR1cmF0aW9uOiB0aGlzLmdldER1cmF0aW9uKFtcbiAgICAgICAgICAgIC4uLnRoaXMuYXBpUmVxdWVzdEVudHJpZXMsXG4gICAgICAgICAgICAuLi50aGlzLmNkblJlcXVlc3RFbnRyaWVzLFxuICAgICAgICAgIF0pLFxuICAgICAgICAgIGFwaVJlcXVlc3RDb3VudDogdGhpcy5hcGlSZXF1ZXN0RW50cmllcy5sZW5ndGgsXG4gICAgICAgICAgYXBpUmVxdWVzdER1cmF0aW9uOiB0aGlzLmdldER1cmF0aW9uKHRoaXMuYXBpUmVxdWVzdEVudHJpZXMpLFxuICAgICAgICAgIGNkblJlcXVlc3RDb3VudDogdGhpcy5jZG5SZXF1ZXN0RW50cmllcy5sZW5ndGgsXG4gICAgICAgICAgY2RuUmVxdWVzdER1cmF0aW9uOiB0aGlzLmdldER1cmF0aW9uKHRoaXMuY2RuUmVxdWVzdEVudHJpZXMpLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc3RvcFhockFjdGlvbigpO1xuXG4gICAgICAgIHJldHVybiBldmVudDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0VudHJ5KGVudHJ5OiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaXNBcGlSZXF1ZXN0OiBib29sZWFuID0gZW50cnkubmFtZS5pbmNsdWRlcyhcbiAgICAgIGRlZmF1bHRBcGlVcmwgfHwgc2FuZGJveEFwaVVybFxuICAgICk7XG5cbiAgICBjb25zdCBjZG5VcmwgPSAnJztcbiAgICBjb25zdCBpc0NkblJlcXVlc3Q6IGJvb2xlYW4gPVxuICAgICAgIWlzQXBpUmVxdWVzdCAmJiBlbnRyeS5uYW1lLnN0YXJ0c1dpdGgoY2RuVXJsKTtcblxuICAgIGlmICh0aGlzLmlzWGhyQWN0aW9uU3RhcnRlZCAmJiBpc0FwaVJlcXVlc3QpIHtcbiAgICAgIHRoaXMuYXBpUmVxdWVzdEVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNYaHJBY3Rpb25TdGFydGVkICYmIGlzQ2RuUmVxdWVzdCkge1xuICAgICAgdGhpcy5jZG5SZXF1ZXN0RW50cmllcy5wdXNoKGVudHJ5KTtcbiAgICB9XG5cbiAgICBpZiAoaXNBcGlSZXF1ZXN0ICYmICF0aGlzLmlzWGhyQWN0aW9uU3RhcnRlZCkge1xuICAgICAgY29uc3QgdXNlcklucHV0RW50cmllczogUGVyZm9ybWFuY2VFbnRyeVtdID1cbiAgICAgICAgdGhpcy53aW5kb3cucGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZSgndXNlcklucHV0JywgJ21hcmsnKTtcbiAgICAgIGNvbnN0IHVzZXJJbnB1dEVudHJ5OiBQZXJmb3JtYW5jZUVudHJ5ID1cbiAgICAgICAgdXNlcklucHV0RW50cmllc1t1c2VySW5wdXRFbnRyaWVzLmxlbmd0aCAtIDFdO1xuXG4gICAgICBpZiAodXNlcklucHV0RW50cnkpIHtcbiAgICAgICAgdGhpcy5zdGFydFhockFjdGlvbihlbnRyeSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGlzQXBpUmVxdWVzdCB8fCBpc0NkblJlcXVlc3QpIHtcbiAgICAgIHRoaXMuZW50cmllc1N1YmplY3QubmV4dChlbnRyeSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFhockFjdGlvbih4aHJFbnRyeTogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyk6IHZvaWQge1xuICAgIHRoaXMuaXNYaHJBY3Rpb25TdGFydGVkID0gdHJ1ZTtcbiAgICB0aGlzLmFwaVJlcXVlc3RFbnRyaWVzLnB1c2goeGhyRW50cnkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdG9wWGhyQWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuaXNYaHJBY3Rpb25TdGFydGVkID0gZmFsc2U7XG4gICAgdGhpcy5hcGlSZXF1ZXN0RW50cmllcyA9IFtdO1xuICAgIHRoaXMuY2RuUmVxdWVzdEVudHJpZXMgPSBbXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VXNlcklucHV0KCk6IFN1YmplY3Q8dm9pZD4ge1xuICAgIGNvbnN0IHVzZXJJbnB1dFN1YmplY3Q6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgdGhpcy51c2VySW5wdXRFdmVudE5hbWVzLmZvckVhY2goKGV2ZW50TmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICB0aGlzLndpbmRvdy5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgKCkgPT4gdXNlcklucHV0U3ViamVjdC5uZXh0KCkpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVzZXJJbnB1dFN1YmplY3Q7XG4gIH1cblxuICBwcml2YXRlIGdldFBlcmZvcm1hbmNlKCk6IFN1YmplY3Q8UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZz4ge1xuICAgIGNvbnN0IHBlcmZvcm1hbmNlU3ViamVjdDogU3ViamVjdDxQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nPiA9XG4gICAgICBuZXcgU3ViamVjdCgpO1xuXG4gICAgaWYgKHRoaXMud2luZG93LlBlcmZvcm1hbmNlT2JzZXJ2ZXIpIHtcbiAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IHRoaXMud2luZG93LlBlcmZvcm1hbmNlT2JzZXJ2ZXIoXG4gICAgICAgIChsaXN0OiBQZXJmb3JtYW5jZU9ic2VydmVyRW50cnlMaXN0KSA9PiB7XG4gICAgICAgICAgbGlzdC5nZXRFbnRyaWVzKCkuZm9yRWFjaCgoZW50cnk6IFBlcmZvcm1hbmNlRW50cnkpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIHJldHVybiBwZXJmb3JtYW5jZVN1YmplY3QubmV4dChlbnRyeSBhcyBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh7IGVudHJ5VHlwZXM6IFsncmVzb3VyY2UnXSB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGVyZm9ybWFuY2VTdWJqZWN0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBcGlSZXF1ZXN0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmFwaVJlcXVlc3RFbnRyaWVzWzBdLm5hbWUuc3BsaXQoZGVmYXVsdEFwaVVybClbMV0uc3BsaXQoJz8nKVswXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RHVyYXRpb24oZW50cmllczogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZ1tdKTogbnVtYmVyIHtcbiAgICBpZiAoIWVudHJpZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb25zdCBmaXJzdEFwaVJlcXVlc3RFbnRyeTogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyA9IGVudHJpZXMucmVkdWNlKFxuICAgICAgKHByZXYsIGN1cnJlbnQpID0+IChwcmV2LnN0YXJ0VGltZSA8IGN1cnJlbnQuc3RhcnRUaW1lID8gcHJldiA6IGN1cnJlbnQpXG4gICAgKTtcbiAgICBjb25zdCBsYXN0QXBpUmVxdWVzdEVudHJ5OiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nID0gZW50cmllcy5yZWR1Y2UoXG4gICAgICAocHJldiwgY3VycmVudCkgPT5cbiAgICAgICAgcHJldi5yZXNwb25zZUVuZCA+IGN1cnJlbnQucmVzcG9uc2VFbmQgPyBwcmV2IDogY3VycmVudFxuICAgICk7XG5cbiAgICByZXR1cm4gTWF0aC5yb3VuZChcbiAgICAgIGxhc3RBcGlSZXF1ZXN0RW50cnkucmVzcG9uc2VFbmQgLSBmaXJzdEFwaVJlcXVlc3RFbnRyeS5zdGFydFRpbWVcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXVzZUV2ZW50KCk6IE9ic2VydmFibGU8UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZz4ge1xuICAgIHJldHVybiB0aGlzLmVudHJpZXNTdWJqZWN0LnBpcGUoXG4gICAgICBkZWJvdW5jZSgoKSA9PiBpbnRlcnZhbCh0aGlzLnBhdXNlVGltZSkpLFxuICAgICAgZmlsdGVyKCgpID0+IHRoaXMuaXNYaHJBY3Rpb25TdGFydGVkKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,54 +0,0 @@
1
- import { HttpHeaders } from '@angular/common/http';
2
- import { Inject, Injectable } from '@angular/core';
3
- import { lastValueFrom, map } from 'rxjs';
4
- import { ResponseError } from '../exceptions-handling/errors/response-error.class';
5
- import { savedMethodsResponseFactoryToken, } from './saved-methods-response.token';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../settings/settings.service";
8
- import * as i2 from "../http/secure-api/secure-api.service";
9
- export class SavedMethodsService {
10
- constructor(responseFactory, settingsService, secureApi) {
11
- this.responseFactory = responseFactory;
12
- this.settingsService = settingsService;
13
- this.secureApi = secureApi;
14
- this.apiRoute = 'savedmethods';
15
- this.cache = new Map();
16
- }
17
- async getList(needResetCache = false) {
18
- if (needResetCache) {
19
- this.cache.clear();
20
- }
21
- const response = await this.request();
22
- return response.list;
23
- }
24
- async request() {
25
- const requestParams = {
26
- access_token: this.settingsService.token,
27
- };
28
- const cacheKey = JSON.stringify(requestParams);
29
- if (!this.cache.has(cacheKey)) {
30
- this.cache.set(cacheKey, lastValueFrom(this.secureApi
31
- .post(this.apiRoute, new URLSearchParams({ ...requestParams }), {
32
- headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8'),
33
- responseType: 'json',
34
- })
35
- .pipe(map((response) => this.responseFactory(response)))).catch((error) => {
36
- throw new ResponseError(error.message);
37
- }));
38
- }
39
- // @ts-expect-error the map already has the cache with key
40
- return this.cache.get(cacheKey);
41
- }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SavedMethodsService, deps: [{ token: savedMethodsResponseFactoryToken }, { token: i1.SettingsService }, { token: i2.SecureApiClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
43
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SavedMethodsService, providedIn: 'root' }); }
44
- }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SavedMethodsService, decorators: [{
46
- type: Injectable,
47
- args: [{
48
- providedIn: 'root',
49
- }]
50
- }], ctorParameters: () => [{ type: undefined, decorators: [{
51
- type: Inject,
52
- args: [savedMethodsResponseFactoryToken]
53
- }] }, { type: i1.SettingsService }, { type: i2.SecureApiClient }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZWQtbWV0aG9kcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvc2F2ZWQtbWV0aG9kcy9zYXZlZC1tZXRob2RzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUtuRixPQUFPLEVBRUwsZ0NBQWdDLEdBQ2pDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFPeEMsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUVtQixlQUE0QyxFQUM1QyxlQUFnQyxFQUNoQyxTQUEwQjtRQUYxQixvQkFBZSxHQUFmLGVBQWUsQ0FBNkI7UUFDNUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBUjVCLGFBQVEsR0FBRyxjQUFjLENBQUM7UUFFMUIsVUFBSyxHQUFHLElBQUksR0FBRyxFQUF5QyxDQUFDO0lBT3ZFLENBQUM7SUFFRyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxLQUFLO1FBQ3pDLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdEMsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxLQUFLLENBQUMsT0FBTztRQUNuQixNQUFNLGFBQWEsR0FBOEI7WUFDL0MsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSztTQUN6QyxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDWixRQUFRLEVBQ1IsYUFBYSxDQUNYLElBQUksQ0FBQyxTQUFTO2lCQUNYLElBQUksQ0FDSCxJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksZUFBZSxDQUFDLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQyxFQUN6QztnQkFDRSxPQUFPLEVBQUUsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQzVCLGNBQWMsRUFDZCxrREFBa0QsQ0FDbkQ7Z0JBQ0QsWUFBWSxFQUFFLE1BQU07YUFDckIsQ0FDRjtpQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FDM0QsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRTtnQkFDdkIsTUFBTSxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7UUFFRCwwREFBMEQ7UUFDMUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDOzhHQXBEVSxtQkFBbUIsa0JBTXBCLGdDQUFnQztrSEFOL0IsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9JLE1BQU07MkJBQUMsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGxhc3RWYWx1ZUZyb20sIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVzcG9uc2VFcnJvciB9IGZyb20gJy4uL2V4Y2VwdGlvbnMtaGFuZGxpbmcvZXJyb3JzL3Jlc3BvbnNlLWVycm9yLmNsYXNzJztcbmltcG9ydCB7IFNlY3VyZUFwaUNsaWVudCB9IGZyb20gJy4uL2h0dHAvc2VjdXJlLWFwaS9zZWN1cmUtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBTYXZlZE1ldGhvZHNSZXF1ZXN0UGFyYW1zIH0gZnJvbSAnLi9zYXZlZC1tZXRob2RzLXJlcXVlc3QtcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTYXZlZE1ldGhvZHNSZXNwb25zZUFwaSB9IGZyb20gJy4vc2F2ZWQtbWV0aG9kcy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgU2F2ZWRNZXRob2RzUmVzcG9uc2VGYWN0b3J5LFxuICBzYXZlZE1ldGhvZHNSZXNwb25zZUZhY3RvcnlUb2tlbixcbn0gZnJvbSAnLi9zYXZlZC1tZXRob2RzLXJlc3BvbnNlLnRva2VuJztcbmltcG9ydCB7IFNhdmVkTWV0aG9kc1Jlc3BvbnNlIH0gZnJvbSAnLi9zYXZlZC1tZXRob2RzLXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7IFNhdmVkTWV0aG9kIH0gZnJvbSAnLi9zYXZlZC1tZXRob2QuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNhdmVkTWV0aG9kc1NlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGFwaVJvdXRlID0gJ3NhdmVkbWV0aG9kcyc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPFNhdmVkTWV0aG9kc1Jlc3BvbnNlPj4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChzYXZlZE1ldGhvZHNSZXNwb25zZUZhY3RvcnlUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3BvbnNlRmFjdG9yeTogU2F2ZWRNZXRob2RzUmVzcG9uc2VGYWN0b3J5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWN1cmVBcGk6IFNlY3VyZUFwaUNsaWVudFxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGdldExpc3QobmVlZFJlc2V0Q2FjaGUgPSBmYWxzZSk6IFByb21pc2U8U2F2ZWRNZXRob2RbXT4ge1xuICAgIGlmIChuZWVkUmVzZXRDYWNoZSkge1xuICAgICAgdGhpcy5jYWNoZS5jbGVhcigpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KCk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmxpc3Q7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlcXVlc3QoKTogUHJvbWlzZTxTYXZlZE1ldGhvZHNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHJlcXVlc3RQYXJhbXM6IFNhdmVkTWV0aG9kc1JlcXVlc3RQYXJhbXMgPSB7XG4gICAgICBhY2Nlc3NfdG9rZW46IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnRva2VuLFxuICAgIH07XG4gICAgY29uc3QgY2FjaGVLZXkgPSBKU09OLnN0cmluZ2lmeShyZXF1ZXN0UGFyYW1zKTtcblxuICAgIGlmICghdGhpcy5jYWNoZS5oYXMoY2FjaGVLZXkpKSB7XG4gICAgICB0aGlzLmNhY2hlLnNldChcbiAgICAgICAgY2FjaGVLZXksXG4gICAgICAgIGxhc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy5zZWN1cmVBcGlcbiAgICAgICAgICAgIC5wb3N0PFNhdmVkTWV0aG9kc1Jlc3BvbnNlQXBpPihcbiAgICAgICAgICAgICAgdGhpcy5hcGlSb3V0ZSxcbiAgICAgICAgICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh7IC4uLnJlcXVlc3RQYXJhbXMgfSksXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJyxcbiAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9dXRmLTgnXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZSkgPT4gdGhpcy5yZXNwb25zZUZhY3RvcnkocmVzcG9uc2UpKSlcbiAgICAgICAgKS5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgbmV3IFJlc3BvbnNlRXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdGhlIG1hcCBhbHJlYWR5IGhhcyB0aGUgY2FjaGUgd2l0aCBrZXlcbiAgICByZXR1cm4gdGhpcy5jYWNoZS5nZXQoY2FjaGVLZXkpO1xuICB9XG59XG4iXX0=
@@ -1,268 +0,0 @@
1
- import { Subject } from 'rxjs';
2
- import { Inject, Injectable } from '@angular/core';
3
- import { applePayVersion, safariVersionForIframeIntegration, } from './apple-pay.const';
4
- import { agreementsGroup } from '../../agreementsGroup.const';
5
- import { windowToken } from '../../window.token';
6
- import { FieldNames } from '../../payment/field-names.enum';
7
- import { ApplePayErrors } from './apple-pay.errors.enum';
8
- import { pagesRoutes } from '../../payment/actions/redirect/ps4-pages/pages-routes.const';
9
- import { applePayId } from '../../payment/actions/redirect/ps4-pages/pages-payment-methods-id.const';
10
- import { payStation4Url, sandboxPayStationUrl, } from '../../payment/actions/redirect/pay-station4-url.const';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "../../user-agent/user-agent.service";
13
- import * as i2 from "../../payment/finance-details/summary/summary-finance-details-adapter.service";
14
- export class ApplePayService {
15
- get paymentParameters() {
16
- return this.applePayParams;
17
- }
18
- get payment$() {
19
- return this.payment.asObservable();
20
- }
21
- get error$() {
22
- return this.error.asObservable();
23
- }
24
- get integrationType$() {
25
- return this.integrationType.asObservable();
26
- }
27
- constructor(window, userAgentService, summaryFinanceDetailsAdapterService) {
28
- this.window = window;
29
- this.userAgentService = userAgentService;
30
- this.summaryFinanceDetailsAdapterService = summaryFinanceDetailsAdapterService;
31
- this.agreementFieldsNames = agreementsGroup;
32
- this.payment = new Subject();
33
- this.error = new Subject();
34
- this.integrationType = new Subject();
35
- this.paymentClient = null;
36
- this.applePayParams = null;
37
- this.order = null;
38
- this.api = this.loadBraintree();
39
- }
40
- setApplePayParams(data) {
41
- const formFields = data?.paymentForm?.fields;
42
- const summary = data?.paymentForm?.summary;
43
- if (!formFields || !summary) {
44
- return;
45
- }
46
- const fields = formFields.reduce((acc, field) => {
47
- if (this.agreementFieldsNames.includes(field.name) &&
48
- field.isVisible === '1') {
49
- acc[field.name] = field.title;
50
- }
51
- else {
52
- acc[field.name] = field.value;
53
- }
54
- return acc;
55
- }, {});
56
- const agreements = this.agreementFieldsNames
57
- .map((fieldName) => fields[fieldName])
58
- .filter(Boolean);
59
- this.applePayParams = {
60
- tokenKey: this.getAppleToken(formFields),
61
- totalLabel: fields['label_applePay'] ?? '',
62
- totalAmount: this.getTotalAmount(summary),
63
- currencyCode: this.getTotalCurrency(summary),
64
- countryCode: fields['countryCode'] ?? '',
65
- merchantCapabilities: this.getJsonValueFromField(fields, 'merchantCapabilities'),
66
- supportedNetworks: this.getJsonValueFromField(fields, 'supportedNetworks'),
67
- agreements: agreements,
68
- };
69
- }
70
- async initLibrary(tokenKey) {
71
- try {
72
- const api = await this.api;
73
- const clientInstance = await api.client.create({
74
- authorization: tokenKey,
75
- });
76
- this.paymentClient = await api.applePay.create({
77
- client: clientInstance,
78
- });
79
- }
80
- catch (error) {
81
- console.error('apple pay: initialize failed', error);
82
- }
83
- this.emitIntegrationType();
84
- if (!this.paymentClient || !this.isDeviceCapable()) {
85
- this.emitError(ApplePayErrors.deviceIsNotCapableError);
86
- }
87
- }
88
- redirectToPaymentPage(parameters, token, isSandbox) {
89
- const route = pagesRoutes.get(applePayId);
90
- if (!route) {
91
- return;
92
- }
93
- const query = new URLSearchParams({
94
- ...parameters,
95
- merchantCapabilities: JSON.stringify(parameters.merchantCapabilities),
96
- supportedNetworks: JSON.stringify(parameters.supportedNetworks),
97
- token,
98
- agreements: JSON.stringify(parameters.agreements),
99
- });
100
- if (this.order) {
101
- query.append('order', this.order);
102
- }
103
- const payStationUrl = isSandbox ? sandboxPayStationUrl : payStation4Url;
104
- return `${payStationUrl}/en${route}?${query.toString()}`;
105
- }
106
- setOrder(data) {
107
- const summary = data?.paymentForm?.summary;
108
- if (!summary) {
109
- return;
110
- }
111
- const financeDetails = this.summaryFinanceDetailsAdapterService.getFinanceDetails(summary);
112
- if (financeDetails?.purchase && financeDetails?.finance) {
113
- const cartItems = financeDetails.cartItems;
114
- this.order = cartItems?.reduce((curr, item) => {
115
- if (curr) {
116
- return curr + `; ${item.title}`;
117
- }
118
- return curr + item.title;
119
- }, '');
120
- }
121
- }
122
- proceedCheckout(parameters) {
123
- if (!parameters) {
124
- return;
125
- }
126
- if (!this.paymentClient || !this.isDeviceCapable()) {
127
- console.warn('apple pay: device is not capable', this.paymentClient);
128
- this.emitError(ApplePayErrors.deviceIsNotCapableError);
129
- return;
130
- }
131
- try {
132
- const paymentRequest = this.paymentClient.createPaymentRequest({
133
- total: {
134
- label: parameters.totalLabel,
135
- amount: parameters.totalAmount,
136
- },
137
- currencyCode: parameters.currencyCode,
138
- countryCode: parameters.countryCode,
139
- merchantCapabilities: parameters.merchantCapabilities,
140
- supportedNetworks: parameters.supportedNetworks,
141
- });
142
- const session = new this.window.ApplePaySession(applePayVersion, paymentRequest);
143
- session.onvalidatemerchant = (event) => {
144
- console.info('apple pay: merchant validation', event);
145
- this.paymentClient
146
- ?.performValidation({
147
- validationURL: event.validationURL,
148
- displayName: parameters?.totalLabel,
149
- })
150
- .then((merchantSession) => {
151
- session.completeMerchantValidation(merchantSession);
152
- })
153
- .catch((error) => {
154
- console.error('apple pay: merchant validation error', error);
155
- this.emitError(ApplePayErrors.paymentError);
156
- session.abort();
157
- });
158
- };
159
- session.onpaymentauthorized = (event) => {
160
- console.info('apple pay: payment authorization', event);
161
- this.paymentClient
162
- ?.tokenize({
163
- token: event.payment.token,
164
- })
165
- .then((authorizationResponse) => {
166
- this.payment.next(authorizationResponse?.nonce ?? '');
167
- session.completePayment(this.window.ApplePaySession.STATUS_SUCCESS);
168
- })
169
- .catch((error) => {
170
- console.error('apple pay: payment authorization error', error);
171
- this.emitError(ApplePayErrors.paymentError);
172
- session.completePayment(this.window.ApplePaySession.STATUS_FAILURE);
173
- });
174
- };
175
- session.oncancel = (event) => {
176
- this.emitError(ApplePayErrors.paymentError);
177
- console.error('apple pay: user cancel payment', event);
178
- };
179
- session.begin();
180
- }
181
- catch (error) {
182
- console.error('apple pay: checkout error', error);
183
- this.emitError(ApplePayErrors.paymentError);
184
- }
185
- }
186
- isDeviceCapable() {
187
- try {
188
- return Boolean(this.window.ApplePaySession?.supportsVersion(applePayVersion) &&
189
- this.window.ApplePaySession?.canMakePayments());
190
- }
191
- catch (error) {
192
- return false;
193
- }
194
- }
195
- getTokenNonceFieldData(tokenNonce) {
196
- const name = FieldNames.tokenApplePay;
197
- const value = btoa(tokenNonce);
198
- return { name, value };
199
- }
200
- updateApplePayParams(data) {
201
- const summary = data?.summary;
202
- if (!this.applePayParams || !summary) {
203
- return;
204
- }
205
- this.applePayParams.totalAmount = this.getTotalAmount(summary);
206
- this.applePayParams.currencyCode = this.getTotalCurrency(summary);
207
- }
208
- async loadBraintree() {
209
- const api = await import('braintree-web');
210
- return api;
211
- }
212
- getAppleToken(formFields) {
213
- const appleTokenField = formFields.find((field) => {
214
- return field.name === 'token_key';
215
- });
216
- if (!appleTokenField) {
217
- return '';
218
- }
219
- return appleTokenField.value;
220
- }
221
- getTotalAmount(summary) {
222
- const finance = summary?.finance;
223
- const total = finance?.grand_total?.amount ?? finance?.total.amount;
224
- return total?.toString() ?? '';
225
- }
226
- getTotalCurrency(summary) {
227
- const finance = summary?.finance;
228
- return finance?.grand_total?.currency ?? finance?.total?.currency ?? '';
229
- }
230
- getJsonValueFromField(fields, fieldName) {
231
- const field = fields[fieldName];
232
- try {
233
- return field ? JSON.parse(field) : undefined;
234
- }
235
- catch (error) {
236
- return undefined;
237
- }
238
- }
239
- emitError(error) {
240
- this.error.next(error);
241
- }
242
- emitIntegrationType() {
243
- let integrationType;
244
- if (this.paymentClient && this.isDeviceCapable()) {
245
- integrationType = 'redirect';
246
- }
247
- else {
248
- integrationType = 'none';
249
- }
250
- this.integrationType.next(integrationType);
251
- }
252
- canUseSdk() {
253
- return !!(this.userAgentService.safariVersion &&
254
- this.userAgentService.safariVersion >= safariVersionForIframeIntegration);
255
- }
256
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, deps: [{ token: windowToken }, { token: i1.UserAgentService }, { token: i2.SummaryFinanceDetailsAdapterService }], target: i0.ɵɵFactoryTarget.Injectable }); }
257
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, providedIn: 'root' }); }
258
- }
259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ApplePayService, decorators: [{
260
- type: Injectable,
261
- args: [{
262
- providedIn: 'root',
263
- }]
264
- }], ctorParameters: () => [{ type: undefined, decorators: [{
265
- type: Inject,
266
- args: [windowToken]
267
- }] }, { type: i1.UserAgentService }, { type: i2.SummaryFinanceDetailsAdapterService }] });
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGUtcGF5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2FwcGxlLXBheS9hcHBsZS1wYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFDTCxlQUFlLEVBQ2YsaUNBQWlDLEdBQ2xDLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSTlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUMxRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFHckcsT0FBTyxFQUNMLGNBQWMsRUFDZCxvQkFBb0IsR0FDckIsTUFBTSx1REFBdUQsQ0FBQzs7OztBQUsvRCxNQUFNLE9BQU8sZUFBZTtJQWdCMUIsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJ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QWMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQXFCO1FBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxlQUFvQyxDQUFDO1FBRXpDLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQztZQUNqRCxlQUFlLEdBQUcsVUFBVSxDQUFDO1FBQy9CLENBQUM7YUFBTSxDQUFDO1lBQ04sZUFBZSxHQUFHLE1BQU0sQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVPLFNBQVM7UUFDZixPQUFPLENBQUMsQ0FBQyxDQUNQLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhO1lBQ25DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLElBQUksaUNBQWlDLENBQ3pFLENBQUM7SUFDSixDQUFDOzhHQXJVVSxlQUFlLGtCQWlDaEIsV0FBVztrSEFqQ1YsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFrQ0ksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGVQYXksIGFwcGxlUGF5LCBjbGllbnQgfSBmcm9tICdicmFpbnRyZWUtd2ViJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgYXBwbGVQYXlWZXJzaW9uLFxuICBzYWZhcmlWZXJzaW9uRm9ySWZyYW1lSW50ZWdyYXRpb24sXG59IGZyb20gJy4vYXBwbGUtcGF5LmNvbnN0JztcbmltcG9ydCB7IGFncmVlbWVudHNHcm91cCB9IGZyb20gJy4uLy4uL2FncmVlbWVudHNHcm91cC5jb25zdCc7XG5pbXBvcnQgeyBBcHBsZVBheVBhcmFtcyB9IGZyb20gJy4vYXBwbGUtcGF5LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi8uLi9wYXltZW50L2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBFeHRlbmRlZFdpbmRvdyB9IGZyb20gJy4uLy4uL2V4dGVuZGVkLXdpbmRvdy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi93aW5kb3cudG9rZW4nO1xuaW1wb3J0IHsgWHBzUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9wYXltZW50L3hwcy1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmllbGROYW1lcyB9IGZyb20gJy4uLy4uL3BheW1lbnQvZmllbGQtbmFtZXMuZW51bSc7XG5pbXBvcnQgeyBBcHBsZVBheUVycm9ycyB9IGZyb20gJy4vYXBwbGUtcGF5LmVycm9ycy5lbnVtJztcbmltcG9ydCB7IFVzZXJBZ2VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyLWFnZW50L3VzZXItYWdlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsZVBheUludGVncmF0aW9uIH0gZnJvbSAnLi9hcHBsZS1wYXktaW50ZWdyYXRpb24udHlwZSc7XG5pbXBvcnQgeyBwYWdlc1JvdXRlcyB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9yZWRpcmVjdC9wczQtcGFnZXMvcGFnZXMtcm91dGVzLmNvbnN0JztcbmltcG9ydCB7IGFwcGxlUGF5SWQgfSBmcm9tICcuLi8uLi9wYXltZW50L2FjdGlvbnMvcmVkaXJlY3QvcHM0LXBhZ2VzL3BhZ2VzLXBheW1lbnQtbWV0aG9kcy1pZC5jb25zdCc7XG5pbXBvcnQgeyBJbml0aWFsaXplUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9wYXltZW50L2luaXRpYWxpemUvcmVzcG9uc2UvaW5pdGlhbGl6ZS1yZXNwb25zZS5jbGFzcyc7XG5pbXBvcnQgeyBTdW1tYXJ5RmluYW5jZURldGFpbHNBZGFwdGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3BheW1lbnQvZmluYW5jZS1kZXRhaWxzL3N1bW1hcnkvc3VtbWFyeS1maW5hbmNlLWRldGFpbHMtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIHBheVN0YXRpb240VXJsLFxuICBzYW5kYm94UGF5U3RhdGlvblVybCxcbn0gZnJvbSAnLi4vLi4vcGF5bWVudC9hY3Rpb25zL3JlZGlyZWN0L3BheS1zdGF0aW9uNC11cmwuY29uc3QnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGVQYXlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhZ3JlZW1lbnRGaWVsZHNOYW1lczogc3RyaW5nW10gPSBhZ3JlZW1lbnRzR3JvdXA7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGF5bWVudDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlcnJvcjogU3ViamVjdDxBcHBsZVBheUVycm9ycz4gPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGludGVncmF0aW9uVHlwZTogU3ViamVjdDxBcHBsZVBheUludGVncmF0aW9uPiA9XG4gICAgbmV3IFN1YmplY3QoKTtcblxuICBwcml2YXRlIHBheW1lbnRDbGllbnQ6IEFwcGxlUGF5IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhcGk6IFByb21pc2U8e1xuICAgIGFwcGxlUGF5OiB0eXBlb2YgYXBwbGVQYXk7XG4gICAgY2xpZW50OiB0eXBlb2YgY2xpZW50O1xuICB9PjtcbiAgcHJpdmF0ZSBhcHBsZVBheVBhcmFtczogQXBwbGVQYXlQYXJhbXMgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBvcmRlcj86IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBnZXQgcGF5bWVudFBhcmFtZXRlcnMoKTogQXBwbGVQYXlQYXJhbXMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5hcHBsZVBheVBhcmFtcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGF5bWVudCQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5wYXltZW50LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBlcnJvciQoKTogT2JzZXJ2YWJsZTxBcHBsZVBheUVycm9ycz4ge1xuICAgIHJldHVybiB0aGlzLmVycm9yLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnRlZ3JhdGlvblR5cGUkKCk6IE9ic2VydmFibGU8QXBwbGVQYXlJbnRlZ3JhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmludGVncmF0aW9uVHlwZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3csXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQWdlbnRTZXJ2aWNlOiBVc2VyQWdlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2U6IFN1bW1hcnlGaW5hbmNlRGV0YWlsc0FkYXB0ZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuYXBpID0gdGhpcy5sb2FkQnJhaW50cmVlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0QXBwbGVQYXlQYXJhbXMoZGF0YTogdW5rbm93bik6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1GaWVsZHMgPSAoZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2UpPy5wYXltZW50Rm9ybT8uZmllbGRzO1xuICAgIGNvbnN0IHN1bW1hcnkgPSAoZGF0YSBhcyBJbml0aWFsaXplUmVzcG9uc2UpPy5wYXltZW50Rm9ybT8uc3VtbWFyeTtcblxuICAgIGlmICghZm9ybUZpZWxkcyB8fCAhc3VtbWFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmaWVsZHMgPSBmb3JtRmllbGRzLnJlZHVjZShcbiAgICAgIChhY2M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmFncmVlbWVudEZpZWxkc05hbWVzLmluY2x1ZGVzKGZpZWxkLm5hbWUpICYmXG4gICAgICAgICAgZmllbGQuaXNWaXNpYmxlID09PSAnMSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgYWNjW2ZpZWxkLm5hbWVdID0gZmllbGQudGl0bGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWNjW2ZpZWxkLm5hbWVdID0gZmllbGQudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHt9XG4gICAgKTtcblxuICAgIGNvbnN0IGFncmVlbWVudHMgPSB0aGlzLmFncmVlbWVudEZpZWxkc05hbWVzXG4gICAgICAubWFwKChmaWVsZE5hbWUpID0+IGZpZWxkc1tmaWVsZE5hbWUgYXMga2V5b2YgdHlwZW9mIGZpZWxkc10gYXMgc3RyaW5nKVxuICAgICAgLmZpbHRlcihCb29sZWFuKTtcblxuICAgIHRoaXMuYXBwbGVQYXlQYXJhbXMgPSB7XG4gICAgICB0b2tlbktleTogdGhpcy5nZXRBcHBsZVRva2VuKGZvcm1GaWVsZHMpLFxuICAgICAgdG90YWxMYWJlbDogZmllbGRzWydsYWJlbF9hcHBsZVBheSddID8/ICcnLFxuICAgICAgdG90YWxBbW91bnQ6IHRoaXMuZ2V0VG90YWxBbW91bnQoc3VtbWFyeSksXG4gICAgICBjdXJyZW5jeUNvZGU6IHRoaXMuZ2V0VG90YWxDdXJyZW5jeShzdW1tYXJ5KSxcbiAgICAgIGNvdW50cnlDb2RlOiBmaWVsZHNbJ2NvdW50cnlDb2RlJ10gPz8gJycsXG4gICAgICBtZXJjaGFudENhcGFiaWxpdGllczogdGhpcy5nZXRKc29uVmFsdWVGcm9tRmllbGQoXG4gICAgICAgIGZpZWxkcyxcbiAgICAgICAgJ21lcmNoYW50Q2FwYWJpbGl0aWVzJ1xuICAgICAgKSxcbiAgICAgIHN1cHBvcnRlZE5ldHdvcmtzOiB0aGlzLmdldEpzb25WYWx1ZUZyb21GaWVsZChcbiAgICAgICAgZmllbGRzLFxuICAgICAgICAnc3VwcG9ydGVkTmV0d29ya3MnXG4gICAgICApLFxuICAgICAgYWdyZWVtZW50czogYWdyZWVtZW50cyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGluaXRMaWJyYXJ5KHRva2VuS2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYXBpID0gYXdhaXQgdGhpcy5hcGk7XG4gICAgICBjb25zdCBjbGllbnRJbnN0YW5jZSA9IGF3YWl0IGFwaS5jbGllbnQuY3JlYXRlKHtcbiAgICAgICAgYXV0aG9yaXphdGlvbjogdG9rZW5LZXksXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5wYXltZW50Q2xpZW50ID0gYXdhaXQgYXBpLmFwcGxlUGF5LmNyZWF0ZSh7XG4gICAgICAgIGNsaWVudDogY2xpZW50SW5zdGFuY2UsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgY29uc29sZS5lcnJvcignYXBwbGUgcGF5OiBpbml0aWFsaXplIGZhaWxlZCcsIGVycm9yKTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRJbnRlZ3JhdGlvblR5cGUoKTtcblxuICAgIGlmICghdGhpcy5wYXltZW50Q2xpZW50IHx8ICF0aGlzLmlzRGV2aWNlQ2FwYWJsZSgpKSB7XG4gICAgICB0aGlzLmVtaXRFcnJvcihBcHBsZVBheUVycm9ycy5kZXZpY2VJc05vdENhcGFibGVFcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZGlyZWN0VG9QYXltZW50UGFnZShcbiAgICBwYXJhbWV0ZXJzOiBBcHBsZVBheVBhcmFtcyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIGlzU2FuZGJveD86IGJvb2xlYW5cbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCByb3V0ZSA9IHBhZ2VzUm91dGVzLmdldChhcHBsZVBheUlkKTtcbiAgICBpZiAoIXJvdXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgIC4uLnBhcmFtZXRlcnMsXG4gICAgICBtZXJjaGFudENhcGFiaWxpdGllczogSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVycy5tZXJjaGFudENhcGFiaWxpdGllcyksXG4gICAgICBzdXBwb3J0ZWROZXR3b3JrczogSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVycy5zdXBwb3J0ZWROZXR3b3JrcyksXG4gICAgICB0b2tlbixcbiAgICAgIGFncmVlbWVudHM6IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMuYWdyZWVtZW50cyksXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5vcmRlcikge1xuICAgICAgcXVlcnkuYXBwZW5kKCdvcmRlcicsIHRoaXMub3JkZXIpO1xuICAgIH1cblxuICAgIGNvbnN0IHBheVN0YXRpb25VcmwgPSBpc1NhbmRib3ggPyBzYW5kYm94UGF5U3RhdGlvblVybCA6IHBheVN0YXRpb240VXJsO1xuICAgIHJldHVybiBgJHtwYXlTdGF0aW9uVXJsfS9lbiR7cm91dGV9PyR7cXVlcnkudG9TdHJpbmcoKX1gO1xuICB9XG5cbiAgcHVibGljIHNldE9yZGVyKGRhdGE6IHVua25vd24pOiB2b2lkIHtcbiAgICBjb25zdCBzdW1tYXJ5ID0gKGRhdGEgYXMgSW5pdGlhbGl6ZVJlc3BvbnNlKT8ucGF5bWVudEZvcm0/LnN1bW1hcnk7XG4gICAgaWYgKCFzdW1tYXJ5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZpbmFuY2VEZXRhaWxzID1cbiAgICAgIHRoaXMuc3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2UuZ2V0RmluYW5jZURldGFpbHMoc3VtbWFyeSk7XG5cbiAgICBpZiAoZmluYW5jZURldGFpbHM/LnB1cmNoYXNlICYmIGZpbmFuY2VEZXRhaWxzPy5maW5hbmNlKSB7XG4gICAgICBjb25zdCBjYXJ0SXRlbXMgPSBmaW5hbmNlRGV0YWlscy5jYXJ0SXRlbXM7XG4gICAgICB0aGlzLm9yZGVyID0gY2FydEl0ZW1zPy5yZWR1Y2UoKGN1cnIsIGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGN1cnIpIHtcbiAgICAgICAgICByZXR1cm4gY3VyciArIGA7ICR7aXRlbS50aXRsZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGN1cnIgKyBpdGVtLnRpdGxlO1xuICAgICAgfSwgJycpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwcm9jZWVkQ2hlY2tvdXQocGFyYW1ldGVycz86IEFwcGxlUGF5UGFyYW1zKTogdm9pZCB7XG4gICAgaWYgKCFwYXJhbWV0ZXJzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnBheW1lbnRDbGllbnQgfHwgIXRoaXMuaXNEZXZpY2VDYXBhYmxlKCkpIHtcbiAgICAgIGNvbnNvbGUud2FybignYXBwbGUgcGF5OiBkZXZpY2UgaXMgbm90IGNhcGFibGUnLCB0aGlzLnBheW1lbnRDbGllbnQpO1xuICAgICAgdGhpcy5lbWl0RXJyb3IoQXBwbGVQYXlFcnJvcnMuZGV2aWNlSXNOb3RDYXBhYmxlRXJyb3IpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXltZW50UmVxdWVzdCA9IHRoaXMucGF5bWVudENsaWVudC5jcmVhdGVQYXltZW50UmVxdWVzdCh7XG4gICAgICAgIHRvdGFsOiB7XG4gICAgICAgICAgbGFiZWw6IHBhcmFtZXRlcnMudG90YWxMYWJlbCxcbiAgICAgICAgICBhbW91bnQ6IHBhcmFtZXRlcnMudG90YWxBbW91bnQsXG4gICAgICAgIH0sXG4gICAgICAgIGN1cnJlbmN5Q29kZTogcGFyYW1ldGVycy5jdXJyZW5jeUNvZGUsXG4gICAgICAgIGNvdW50cnlDb2RlOiBwYXJhbWV0ZXJzLmNvdW50cnlDb2RlLFxuICAgICAgICBtZXJjaGFudENhcGFiaWxpdGllczogcGFyYW1ldGVycy5tZXJjaGFudENhcGFiaWxpdGllcyxcbiAgICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IHBhcmFtZXRlcnMuc3VwcG9ydGVkTmV0d29ya3MsXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc2Vzc2lvbiA9IG5ldyB0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24oXG4gICAgICAgIGFwcGxlUGF5VmVyc2lvbixcbiAgICAgICAgcGF5bWVudFJlcXVlc3RcbiAgICAgICk7XG5cbiAgICAgIHNlc3Npb24ub252YWxpZGF0ZW1lcmNoYW50ID0gKGV2ZW50OiB7IHZhbGlkYXRpb25VUkw6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIGNvbnNvbGUuaW5mbygnYXBwbGUgcGF5OiBtZXJjaGFudCB2YWxpZGF0aW9uJywgZXZlbnQpO1xuICAgICAgICB0aGlzLnBheW1lbnRDbGllbnRcbiAgICAgICAgICA/LnBlcmZvcm1WYWxpZGF0aW9uKHtcbiAgICAgICAgICAgIHZhbGlkYXRpb25VUkw6IGV2ZW50LnZhbGlkYXRpb25VUkwsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogcGFyYW1ldGVycz8udG90YWxMYWJlbCxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC50aGVuKChtZXJjaGFudFNlc3Npb24pID0+IHtcbiAgICAgICAgICAgIHNlc3Npb24uY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24obWVyY2hhbnRTZXNzaW9uKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2FwcGxlIHBheTogbWVyY2hhbnQgdmFsaWRhdGlvbiBlcnJvcicsIGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdEVycm9yKEFwcGxlUGF5RXJyb3JzLnBheW1lbnRFcnJvcik7XG4gICAgICAgICAgICBzZXNzaW9uLmFib3J0KCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBzZXNzaW9uLm9ucGF5bWVudGF1dGhvcml6ZWQgPSAoZXZlbnQ6IHsgcGF5bWVudDogeyB0b2tlbjogc3RyaW5nIH0gfSkgPT4ge1xuICAgICAgICBjb25zb2xlLmluZm8oJ2FwcGxlIHBheTogcGF5bWVudCBhdXRob3JpemF0aW9uJywgZXZlbnQpO1xuICAgICAgICB0aGlzLnBheW1lbnRDbGllbnRcbiAgICAgICAgICA/LnRva2VuaXplKHtcbiAgICAgICAgICAgIHRva2VuOiBldmVudC5wYXltZW50LnRva2VuLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnRoZW4oKGF1dGhvcml6YXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wYXltZW50Lm5leHQoYXV0aG9yaXphdGlvblJlc3BvbnNlPy5ub25jZSA/PyAnJyk7XG4gICAgICAgICAgICBzZXNzaW9uLmNvbXBsZXRlUGF5bWVudCh0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24uU1RBVFVTX1NVQ0NFU1MpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignYXBwbGUgcGF5OiBwYXltZW50IGF1dGhvcml6YXRpb24gZXJyb3InLCBlcnJvcik7XG4gICAgICAgICAgICB0aGlzLmVtaXRFcnJvcihBcHBsZVBheUVycm9ycy5wYXltZW50RXJyb3IpO1xuICAgICAgICAgICAgc2Vzc2lvbi5jb21wbGV0ZVBheW1lbnQodGhpcy53aW5kb3cuQXBwbGVQYXlTZXNzaW9uLlNUQVRVU19GQUlMVVJFKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIHNlc3Npb24ub25jYW5jZWwgPSAoZXZlbnQ6IHVua25vd24pID0+IHtcbiAgICAgICAgdGhpcy5lbWl0RXJyb3IoQXBwbGVQYXlFcnJvcnMucGF5bWVudEVycm9yKTtcbiAgICAgICAgY29uc29sZS5lcnJvcignYXBwbGUgcGF5OiB1c2VyIGNhbmNlbCBwYXltZW50JywgZXZlbnQpO1xuICAgICAgfTtcblxuICAgICAgc2Vzc2lvbi5iZWdpbigpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdhcHBsZSBwYXk6IGNoZWNrb3V0IGVycm9yJywgZXJyb3IpO1xuICAgICAgdGhpcy5lbWl0RXJyb3IoQXBwbGVQYXlFcnJvcnMucGF5bWVudEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNEZXZpY2VDYXBhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgdGhpcy53aW5kb3cuQXBwbGVQYXlTZXNzaW9uPy5zdXBwb3J0c1ZlcnNpb24oYXBwbGVQYXlWZXJzaW9uKSAmJlxuICAgICAgICAgIHRoaXMud2luZG93LkFwcGxlUGF5U2Vzc2lvbj8uY2FuTWFrZVBheW1lbnRzKClcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VG9rZW5Ob25jZUZpZWxkRGF0YSh0b2tlbk5vbmNlOiBzdHJpbmcpOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gIH0ge1xuICAgIGNvbnN0IG5hbWUgPSBGaWVsZE5hbWVzLnRva2VuQXBwbGVQYXk7XG4gICAgY29uc3QgdmFsdWUgPSBidG9hKHRva2VuTm9uY2UpO1xuICAgIHJldHVybiB7IG5hbWUsIHZhbHVlIH07XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQXBwbGVQYXlQYXJhbXMoZGF0YTogdW5rbm93bik6IHZvaWQge1xuICAgIGNvbnN0IHN1bW1hcnkgPSAoZGF0YSBhcyBYcHNSZXNwb25zZSk/LnN1bW1hcnk7XG4gICAgaWYgKCF0aGlzLmFwcGxlUGF5UGFyYW1zIHx8ICFzdW1tYXJ5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hcHBsZVBheVBhcmFtcy50b3RhbEFtb3VudCA9IHRoaXMuZ2V0VG90YWxBbW91bnQoc3VtbWFyeSk7XG4gICAgdGhpcy5hcHBsZVBheVBhcmFtcy5jdXJyZW5jeUNvZGUgPSB0aGlzLmdldFRvdGFsQ3VycmVuY3koc3VtbWFyeSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRCcmFpbnRyZWUoKTogUHJvbWlzZTx7XG4gICAgYXBwbGVQYXk6IHR5cGVvZiBhcHBsZVBheTtcbiAgICBjbGllbnQ6IHR5cGVvZiBjbGllbnQ7XG4gIH0+IHtcbiAgICBjb25zdCBhcGkgPSBhd2FpdCBpbXBvcnQoJ2JyYWludHJlZS13ZWInKTtcblxuICAgIHJldHVybiBhcGk7XG4gIH1cblxuICBwcml2YXRlIGdldEFwcGxlVG9rZW4oZm9ybUZpZWxkczogRmllbGRbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgYXBwbGVUb2tlbkZpZWxkID0gZm9ybUZpZWxkcy5maW5kKChmaWVsZCkgPT4ge1xuICAgICAgcmV0dXJuIGZpZWxkLm5hbWUgPT09ICd0b2tlbl9rZXknO1xuICAgIH0pO1xuXG4gICAgaWYgKCFhcHBsZVRva2VuRmllbGQpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gYXBwbGVUb2tlbkZpZWxkLnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb3RhbEFtb3VudChzdW1tYXJ5OiBYcHNSZXNwb25zZVsnc3VtbWFyeSddKTogc3RyaW5nIHtcbiAgICBjb25zdCBmaW5hbmNlID0gc3VtbWFyeT8uZmluYW5jZTtcbiAgICBjb25zdCB0b3RhbCA9IGZpbmFuY2U/LmdyYW5kX3RvdGFsPy5hbW91bnQgPz8gZmluYW5jZT8udG90YWwuYW1vdW50O1xuXG4gICAgcmV0dXJuIHRvdGFsPy50b1N0cmluZygpID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb3RhbEN1cnJlbmN5KHN1bW1hcnk6IFhwc1Jlc3BvbnNlWydzdW1tYXJ5J10pOiBzdHJpbmcge1xuICAgIGNvbnN0IGZpbmFuY2UgPSBzdW1tYXJ5Py5maW5hbmNlO1xuICAgIHJldHVybiBmaW5hbmNlPy5ncmFuZF90b3RhbD8uY3VycmVuY3kgPz8gZmluYW5jZT8udG90YWw/LmN1cnJlbmN5ID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRKc29uVmFsdWVGcm9tRmllbGQoXG4gICAgZmllbGRzOiB7XG4gICAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gICAgfSxcbiAgICBmaWVsZE5hbWU6IHN0cmluZ1xuICApOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZmllbGQgPSBmaWVsZHNbZmllbGROYW1lXTtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZmllbGQgPyAoSlNPTi5wYXJzZShmaWVsZCkgYXMgc3RyaW5nW10pIDogdW5kZWZpbmVkO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdEVycm9yKGVycm9yOiBBcHBsZVBheUVycm9ycyk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3IubmV4dChlcnJvcik7XG4gIH1cblxuICBwcml2YXRlIGVtaXRJbnRlZ3JhdGlvblR5cGUoKTogdm9pZCB7XG4gICAgbGV0IGludGVncmF0aW9uVHlwZTogQXBwbGVQYXlJbnRlZ3JhdGlvbjtcblxuICAgIGlmICh0aGlzLnBheW1lbnRDbGllbnQgJiYgdGhpcy5pc0RldmljZUNhcGFibGUoKSkge1xuICAgICAgaW50ZWdyYXRpb25UeXBlID0gJ3JlZGlyZWN0JztcbiAgICB9IGVsc2Uge1xuICAgICAgaW50ZWdyYXRpb25UeXBlID0gJ25vbmUnO1xuICAgIH1cblxuICAgIHRoaXMuaW50ZWdyYXRpb25UeXBlLm5leHQoaW50ZWdyYXRpb25UeXBlKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuVXNlU2RrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgIHRoaXMudXNlckFnZW50U2VydmljZS5zYWZhcmlWZXJzaW9uICYmXG4gICAgICB0aGlzLnVzZXJBZ2VudFNlcnZpY2Uuc2FmYXJpVmVyc2lvbiA+PSBzYWZhcmlWZXJzaW9uRm9ySWZyYW1lSW50ZWdyYXRpb25cbiAgICApO1xuICB9XG59XG4iXX0=