@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,211 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { browsers, unknownValue } from './browsers';
3
- import { Device } from './device.enum';
4
- import { windowToken } from '../window.token';
5
- import { osList } from './os';
6
- import * as i0 from "@angular/core";
7
- export class UserAgentService {
8
- constructor(window) {
9
- this.window = window;
10
- this._browserName = null;
11
- this._browserVersion = null;
12
- this._browserApp = null;
13
- this._platform = null;
14
- this._os = null;
15
- this.getUserPlatform();
16
- this.getBrowserInformation();
17
- this.getOsInformation();
18
- }
19
- get browserVersion() {
20
- return this._browserVersion;
21
- }
22
- get browserApp() {
23
- return this._browserApp;
24
- }
25
- get platform() {
26
- if (this._platform === unknownValue) {
27
- return this.osType;
28
- }
29
- return this._platform;
30
- }
31
- get userAgent() {
32
- return this.window.navigator.userAgent;
33
- }
34
- get browserDescription() {
35
- if (this.browserName === unknownValue || this.browserName === null) {
36
- return this.userAgent;
37
- }
38
- return this.browserName;
39
- }
40
- get isSafari() {
41
- return this._browserName === 'Apple Safari';
42
- }
43
- get safariVersion() {
44
- if (!this.isSafari) {
45
- return null;
46
- }
47
- const versionRegExp = new RegExp('(Version)\\/(.+)\\s');
48
- const version = versionRegExp.exec(this.userAgent);
49
- if (!version) {
50
- return null;
51
- }
52
- return Number(version[2].split('.')[0]);
53
- }
54
- get iOsVersion() {
55
- if (this.osType !== 'ios') {
56
- return null;
57
- }
58
- const version = /OS (\d+)_(\d+)_?(\d+)?/.exec(this.window.navigator.appVersion);
59
- return version ? `${version[1]}.${version[2]}.${version[3] ?? 0}` : null;
60
- }
61
- get browserInfo() {
62
- const browserInfo = {
63
- name: this.browserDescription,
64
- [this.browserApp?.toLowerCase() ?? unknownValue]: true,
65
- version: this.browserVersion,
66
- [this.browserEngine.toLowerCase()]: true,
67
- ui_version: this.isMobileDevice ? Device.mobile : Device.desktop,
68
- os: this.os,
69
- };
70
- if (this.isMobileDevice) {
71
- browserInfo.mobile = true;
72
- }
73
- if (this.osType) {
74
- // @ts-expect-error index is string
75
- browserInfo[this.osType.toLowerCase()] = true;
76
- }
77
- if (this.window.navigator.platform?.includes('iPhone')) {
78
- browserInfo.iphone = true;
79
- }
80
- if (this.window.navigator.platform?.includes('iPod')) {
81
- browserInfo.ipod = true;
82
- }
83
- if (this.window.navigator.platform?.includes('iPad')) {
84
- browserInfo.ipad = true;
85
- browserInfo.tablet = true;
86
- }
87
- if (this.isAndroid) {
88
- browserInfo.android = true;
89
- }
90
- return browserInfo;
91
- }
92
- get isMobileDevice() {
93
- const deviceAgents = [
94
- 'Android',
95
- 'webOS',
96
- 'iPhone',
97
- 'iPad',
98
- 'iPod',
99
- 'BlackBerry',
100
- 'IEMobile',
101
- 'Opera Mini',
102
- 'Mobile',
103
- 'Tablet',
104
- 'Kindle',
105
- 'Playbook',
106
- 'Silk',
107
- 'Puffin',
108
- 'CriOS',
109
- ];
110
- return new RegExp(deviceAgents.join('|'), 'i').test(this.userAgent);
111
- }
112
- get isIosAndNotIpad() {
113
- return ['iPhone', 'iPod'].includes(this.window.navigator.platform);
114
- }
115
- getUserPlatform() {
116
- const experimentalPlatformApi = this.window.navigator?.userAgentData;
117
- const platform = experimentalPlatformApi?.platform ??
118
- this.window?.navigator?.platform ??
119
- unknownValue;
120
- this._platform = platform.toLowerCase();
121
- }
122
- getBrowserInformation() {
123
- for (const browser of browsers) {
124
- const browserRegExp = new RegExp(browser.regexpBrowserNameWithVersion);
125
- const browserNameWithVersion = browserRegExp.exec(this.userAgent);
126
- if (browserNameWithVersion !== null) {
127
- this._browserName = browser.sentName;
128
- this._browserApp = browser.shortName;
129
- this._browserVersion = browserNameWithVersion[2];
130
- break;
131
- }
132
- this._browserName = unknownValue;
133
- this._browserApp = unknownValue;
134
- this._browserVersion = unknownValue;
135
- }
136
- }
137
- getOsInformation() {
138
- for (const os of osList) {
139
- const osRegExp = new RegExp(os.regExp);
140
- const osName = osRegExp.exec(this.userAgent);
141
- if (osName !== null) {
142
- this._os = os.name;
143
- break;
144
- }
145
- this._os = unknownValue;
146
- }
147
- }
148
- get browserName() {
149
- return this._browserName;
150
- }
151
- get isAndroid() {
152
- return /Android\s+([\d.]+)/.test(this.userAgent);
153
- }
154
- get isXbox() {
155
- return /xbox/i.test(this.userAgent);
156
- }
157
- get isLinux() {
158
- return /linux/i.test(this.userAgent);
159
- }
160
- get isWindows() {
161
- return /windows/i.test(this.userAgent);
162
- }
163
- get browserEngine() {
164
- const engines = new Map([
165
- ['Firefox', 'Gecko'],
166
- ['Safari', 'Webkit'],
167
- ['MSEdge-legacy', 'EdgeHTML'],
168
- ['Chrome', 'Blink'],
169
- ['Opera', 'Blink'],
170
- ['MSEdge', 'Blink'],
171
- ['SamsungBrowser', 'Blink'],
172
- ]);
173
- return engines.get(this.browserApp) ?? unknownValue;
174
- }
175
- get os() {
176
- return this._os;
177
- }
178
- get osType() {
179
- if (['iPhone', 'iPod', 'iPad'].includes(this.window.navigator.platform)) {
180
- return 'ios';
181
- }
182
- if (this.window.navigator.platform?.includes('MacIntel')) {
183
- return 'mac';
184
- }
185
- if (this.isXbox) {
186
- return 'xbox';
187
- }
188
- if (this.isWindows) {
189
- return 'windows';
190
- }
191
- if (this.isAndroid) {
192
- return 'android';
193
- }
194
- if (this.isLinux) {
195
- return 'linux';
196
- }
197
- return null;
198
- }
199
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: UserAgentService, deps: [{ token: windowToken }], target: i0.ɵɵFactoryTarget.Injectable }); }
200
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: UserAgentService, providedIn: 'root' }); }
201
- }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: UserAgentService, decorators: [{
203
- type: Injectable,
204
- args: [{
205
- providedIn: 'root',
206
- }]
207
- }], ctorParameters: () => [{ type: undefined, decorators: [{
208
- type: Inject,
209
- args: [windowToken]
210
- }] }] });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hZ2VudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvdXNlci1hZ2VudC91c2VyLWFnZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBMkIsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTTlCLE1BQU0sT0FBTyxnQkFBZ0I7SUFPM0IsWUFFbUIsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFSakMsaUJBQVksR0FBZ0IsSUFBSSxDQUFDO1FBQ2pDLG9CQUFlLEdBQWtCLElBQUksQ0FBQztRQUN0QyxnQkFBVyxHQUFlLElBQUksQ0FBQztRQUMvQixjQUFTLEdBQWtCLElBQUksQ0FBQztRQUNoQyxRQUFHLEdBQWtCLElBQUksQ0FBQztRQU1oQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssWUFBWSxFQUFF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O1FBQ1osT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFZLE1BQU07UUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDeEUsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDekQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs4R0ExUFUsZ0JBQWdCLGtCQVFqQixXQUFXO2tIQVJWLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVNJLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYnJvd3NlcnMsIEJyb3dzZXJOYW1lLCBCcm93c2VyQXBwLCB1bmtub3duVmFsdWUgfSBmcm9tICcuL2Jyb3dzZXJzJztcbmltcG9ydCB7IERldmljZSB9IGZyb20gJy4vZGV2aWNlLmVudW0nO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi93aW5kb3cudG9rZW4nO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJyb3dzZXJJbmZvIH0gZnJvbSAnLi9icm93c2VySW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgb3NMaXN0IH0gZnJvbSAnLi9vcyc7XG5pbXBvcnQgeyBVc2VyQWdlbnREYXRhIH0gZnJvbSAnLi91c2VyLWFnZW50LWRhdGEuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJBZ2VudFNlcnZpY2Uge1xuICBwcml2YXRlIF9icm93c2VyTmFtZTogQnJvd3Nlck5hbWUgPSBudWxsO1xuICBwcml2YXRlIF9icm93c2VyVmVyc2lvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2Jyb3dzZXJBcHA6IEJyb3dzZXJBcHAgPSBudWxsO1xuICBwcml2YXRlIF9wbGF0Zm9ybTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX29zOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCh3aW5kb3dUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3dcbiAgKSB7XG4gICAgdGhpcy5nZXRVc2VyUGxhdGZvcm0oKTtcbiAgICB0aGlzLmdldEJyb3dzZXJJbmZvcm1hdGlvbigpO1xuICAgIHRoaXMuZ2V0T3NJbmZvcm1hdGlvbigpO1xuICB9XG5cbiAgcHVibGljIGdldCBicm93c2VyVmVyc2lvbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYnJvd3NlclZlcnNpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJyb3dzZXJBcHAoKTogQnJvd3NlckFwcCB7XG4gICAgcmV0dXJuIHRoaXMuX2Jyb3dzZXJBcHA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBsYXRmb3JtKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh0aGlzLl9wbGF0Zm9ybSA9PT0gdW5rbm93blZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5vc1R5cGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3BsYXRmb3JtO1xuICB9XG5cbiAgcHVibGljIGdldCB1c2VyQWdlbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy53aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYnJvd3NlckRlc2NyaXB0aW9uKCk6XG4gICAgfCB0eXBlb2YgYnJvd3NlcnNbbnVtYmVyXVsnc2VudE5hbWUnXVxuICAgIHwgc3RyaW5nIHtcbiAgICBpZiAodGhpcy5icm93c2VyTmFtZSA9PT0gdW5rbm93blZhbHVlIHx8IHRoaXMuYnJvd3Nlck5hbWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnVzZXJBZ2VudDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5icm93c2VyTmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNTYWZhcmkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Jyb3dzZXJOYW1lID09PSAnQXBwbGUgU2FmYXJpJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2FmYXJpVmVyc2lvbigpOiBudWxsIHwgbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMuaXNTYWZhcmkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHZlcnNpb25SZWdFeHAgPSBuZXcgUmVnRXhwKCcoVmVyc2lvbilcXFxcLyguKylcXFxccycpO1xuICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uUmVnRXhwLmV4ZWModGhpcy51c2VyQWdlbnQpO1xuICAgIGlmICghdmVyc2lvbikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIE51bWJlcih2ZXJzaW9uWzJdLnNwbGl0KCcuJylbMF0pO1xuICB9XG5cbiAgcHVibGljIGdldCBpT3NWZXJzaW9uKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh0aGlzLm9zVHlwZSAhPT0gJ2lvcycpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHZlcnNpb24gPSAvT1MgKFxcZCspXyhcXGQrKV8/KFxcZCspPy8uZXhlYyhcbiAgICAgIHRoaXMud2luZG93Lm5hdmlnYXRvci5hcHBWZXJzaW9uXG4gICAgKTtcblxuICAgIHJldHVybiB2ZXJzaW9uID8gYCR7dmVyc2lvblsxXX0uJHt2ZXJzaW9uWzJdfS4ke3ZlcnNpb25bM10gPz8gMH1gIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYnJvd3NlckluZm8oKTogQnJvd3NlckluZm8ge1xuICAgIGNvbnN0IGJyb3dzZXJJbmZvOiBCcm93c2VySW5mbyA9IHtcbiAgICAgIG5hbWU6IHRoaXMuYnJvd3NlckRlc2NyaXB0aW9uLFxuICAgICAgW3RoaXMuYnJvd3NlckFwcD8udG9Mb3dlckNhc2UoKSA/PyB1bmtub3duVmFsdWVdOiB0cnVlLFxuICAgICAgdmVyc2lvbjogdGhpcy5icm93c2VyVmVyc2lvbixcbiAgICAgIFt0aGlzLmJyb3dzZXJFbmdpbmUudG9Mb3dlckNhc2UoKV06IHRydWUsXG4gICAgICB1aV92ZXJzaW9uOiB0aGlzLmlzTW9iaWxlRGV2aWNlID8gRGV2aWNlLm1vYmlsZSA6IERldmljZS5kZXNrdG9wLFxuICAgICAgb3M6IHRoaXMub3MsXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmlzTW9iaWxlRGV2aWNlKSB7XG4gICAgICBicm93c2VySW5mby5tb2JpbGUgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9zVHlwZSkge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBpbmRleCBpcyBzdHJpbmdcbiAgICAgIGJyb3dzZXJJbmZvW3RoaXMub3NUeXBlLnRvTG93ZXJDYXNlKCldID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy53aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtPy5pbmNsdWRlcygnaVBob25lJykpIHtcbiAgICAgIGJyb3dzZXJJbmZvLmlwaG9uZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMud2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybT8uaW5jbHVkZXMoJ2lQb2QnKSkge1xuICAgICAgYnJvd3NlckluZm8uaXBvZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMud2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybT8uaW5jbHVkZXMoJ2lQYWQnKSkge1xuICAgICAgYnJvd3NlckluZm8uaXBhZCA9IHRydWU7XG4gICAgICBicm93c2VySW5mby50YWJsZXQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzQW5kcm9pZCkge1xuICAgICAgYnJvd3NlckluZm8uYW5kcm9pZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJyb3dzZXJJbmZvO1xuICB9XG5cbiAgcHVibGljIGdldCBpc01vYmlsZURldmljZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBkZXZpY2VBZ2VudHMgPSBbXG4gICAgICAnQW5kcm9pZCcsXG4gICAgICAnd2ViT1MnLFxuICAgICAgJ2lQaG9uZScsXG4gICAgICAnaVBhZCcsXG4gICAgICAnaVBvZCcsXG4gICAgICAnQmxhY2tCZXJyeScsXG4gICAgICAnSUVNb2JpbGUnLFxuICAgICAgJ09wZXJhIE1pbmknLFxuICAgICAgJ01vYmlsZScsXG4gICAgICAnVGFibGV0JyxcbiAgICAgICdLaW5kbGUnLFxuICAgICAgJ1BsYXlib29rJyxcbiAgICAgICdTaWxrJyxcbiAgICAgICdQdWZmaW4nLFxuICAgICAgJ0NyaU9TJyxcbiAgICBdO1xuICAgIHJldHVybiBuZXcgUmVnRXhwKGRldmljZUFnZW50cy5qb2luKCd8JyksICdpJykudGVzdCh0aGlzLnVzZXJBZ2VudCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzSW9zQW5kTm90SXBhZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gWydpUGhvbmUnLCAnaVBvZCddLmluY2x1ZGVzKHRoaXMud2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybSk7XG4gIH1cblxuICBwcml2YXRlIGdldFVzZXJQbGF0Zm9ybSgpOiB2b2lkIHtcbiAgICBjb25zdCBleHBlcmltZW50YWxQbGF0Zm9ybUFwaSA9IChcbiAgICAgIHRoaXMud2luZG93Lm5hdmlnYXRvciBhcyB1bmtub3duIGFzIHtcbiAgICAgICAgdXNlckFnZW50RGF0YTogVXNlckFnZW50RGF0YSB8IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICApPy51c2VyQWdlbnREYXRhO1xuXG4gICAgY29uc3QgcGxhdGZvcm0gPVxuICAgICAgZXhwZXJpbWVudGFsUGxhdGZvcm1BcGk/LnBsYXRmb3JtID8/XG4gICAgICB0aGlzLndpbmRvdz8ubmF2aWdhdG9yPy5wbGF0Zm9ybSA/P1xuICAgICAgdW5rbm93blZhbHVlO1xuXG4gICAgdGhpcy5fcGxhdGZvcm0gPSBwbGF0Zm9ybS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCcm93c2VySW5mb3JtYXRpb24oKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBicm93c2VyIG9mIGJyb3dzZXJzKSB7XG4gICAgICBjb25zdCBicm93c2VyUmVnRXhwID0gbmV3IFJlZ0V4cChicm93c2VyLnJlZ2V4cEJyb3dzZXJOYW1lV2l0aFZlcnNpb24pO1xuICAgICAgY29uc3QgYnJvd3Nlck5hbWVXaXRoVmVyc2lvbiA9IGJyb3dzZXJSZWdFeHAuZXhlYyh0aGlzLnVzZXJBZ2VudCk7XG5cbiAgICAgIGlmIChicm93c2VyTmFtZVdpdGhWZXJzaW9uICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuX2Jyb3dzZXJOYW1lID0gYnJvd3Nlci5zZW50TmFtZTtcbiAgICAgICAgdGhpcy5fYnJvd3NlckFwcCA9IGJyb3dzZXIuc2hvcnROYW1lO1xuICAgICAgICB0aGlzLl9icm93c2VyVmVyc2lvbiA9IGJyb3dzZXJOYW1lV2l0aFZlcnNpb25bMl07XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9icm93c2VyTmFtZSA9IHVua25vd25WYWx1ZTtcbiAgICAgIHRoaXMuX2Jyb3dzZXJBcHAgPSB1bmtub3duVmFsdWU7XG4gICAgICB0aGlzLl9icm93c2VyVmVyc2lvbiA9IHVua25vd25WYWx1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldE9zSW5mb3JtYXRpb24oKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBvcyBvZiBvc0xpc3QpIHtcbiAgICAgIGNvbnN0IG9zUmVnRXhwID0gbmV3IFJlZ0V4cChvcy5yZWdFeHApO1xuICAgICAgY29uc3Qgb3NOYW1lID0gb3NSZWdFeHAuZXhlYyh0aGlzLnVzZXJBZ2VudCk7XG5cbiAgICAgIGlmIChvc05hbWUgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5fb3MgPSBvcy5uYW1lO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgdGhpcy5fb3MgPSB1bmtub3duVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgYnJvd3Nlck5hbWUoKTogQnJvd3Nlck5hbWUge1xuICAgIHJldHVybiB0aGlzLl9icm93c2VyTmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGlzQW5kcm9pZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gL0FuZHJvaWRcXHMrKFtcXGQuXSspLy50ZXN0KHRoaXMudXNlckFnZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGlzWGJveCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gL3hib3gvaS50ZXN0KHRoaXMudXNlckFnZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGlzTGludXgoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIC9saW51eC9pLnRlc3QodGhpcy51c2VyQWdlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaXNXaW5kb3dzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAvd2luZG93cy9pLnRlc3QodGhpcy51c2VyQWdlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgYnJvd3NlckVuZ2luZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGVuZ2luZXMgPSBuZXcgTWFwPEJyb3dzZXJBcHAsIHN0cmluZz4oW1xuICAgICAgWydGaXJlZm94JywgJ0dlY2tvJ10sXG4gICAgICBbJ1NhZmFyaScsICdXZWJraXQnXSxcbiAgICAgIFsnTVNFZGdlLWxlZ2FjeScsICdFZGdlSFRNTCddLFxuICAgICAgWydDaHJvbWUnLCAnQmxpbmsnXSxcbiAgICAgIFsnT3BlcmEnLCAnQmxpbmsnXSxcbiAgICAgIFsnTVNFZGdlJywgJ0JsaW5rJ10sXG4gICAgICBbJ1NhbXN1bmdCcm93c2VyJywgJ0JsaW5rJ10sXG4gICAgXSk7XG5cbiAgICByZXR1cm4gZW5naW5lcy5nZXQodGhpcy5icm93c2VyQXBwKSA/PyB1bmtub3duVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGdldCBvcygpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fb3M7XG4gIH1cblxuICBwcml2YXRlIGdldCBvc1R5cGUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKFsnaVBob25lJywgJ2lQb2QnLCAnaVBhZCddLmluY2x1ZGVzKHRoaXMud2luZG93Lm5hdmlnYXRvci5wbGF0Zm9ybSkpIHtcbiAgICAgIHJldHVybiAnaW9zJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy53aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtPy5pbmNsdWRlcygnTWFjSW50ZWwnKSkge1xuICAgICAgcmV0dXJuICdtYWMnO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzWGJveCkge1xuICAgICAgcmV0dXJuICd4Ym94JztcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNXaW5kb3dzKSB7XG4gICAgICByZXR1cm4gJ3dpbmRvd3MnO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzQW5kcm9pZCkge1xuICAgICAgcmV0dXJuICdhbmRyb2lkJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0xpbnV4KSB7XG4gICAgICByZXR1cm4gJ2xpbnV4JztcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
@@ -1,53 +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 { userBalanceResponseFactoryToken, } from './user-balance-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 UserBalanceService {
10
- constructor(responseFactory, settingsService, secureApi) {
11
- this.responseFactory = responseFactory;
12
- this.settingsService = settingsService;
13
- this.secureApi = secureApi;
14
- this.apiRoute = 'balance/sufficiency';
15
- this.cache = new Map();
16
- }
17
- async getUserBalance() {
18
- return this.request();
19
- }
20
- getUserBalanceValue() {
21
- return this.settingsService.user.user_balance;
22
- }
23
- async request() {
24
- const requestParams = {
25
- access_token: this.settingsService.token,
26
- };
27
- const cacheKey = JSON.stringify(requestParams);
28
- if (!this.cache.has(cacheKey)) {
29
- this.cache.set(cacheKey, lastValueFrom(this.secureApi
30
- .post(this.apiRoute, new URLSearchParams({ ...requestParams }), {
31
- headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8'),
32
- responseType: 'json',
33
- })
34
- .pipe(map((response) => this.responseFactory(response)))).catch((error) => {
35
- throw new ResponseError(error.message);
36
- }));
37
- }
38
- // @ts-expect-error the map already has the cache with key
39
- return this.cache.get(cacheKey);
40
- }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: UserBalanceService, deps: [{ token: userBalanceResponseFactoryToken }, { token: i1.SettingsService }, { token: i2.SecureApiClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
42
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: UserBalanceService, providedIn: 'root' }); }
43
- }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: UserBalanceService, decorators: [{
45
- type: Injectable,
46
- args: [{
47
- providedIn: 'root',
48
- }]
49
- }], ctorParameters: () => [{ type: undefined, decorators: [{
50
- type: Inject,
51
- args: [userBalanceResponseFactoryToken]
52
- }] }, { type: i1.SettingsService }, { type: i2.SecureApiClient }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1iYWxhbmNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS91c2VyLWJhbGFuY2UvdXNlci1iYWxhbmNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUduRixPQUFPLEVBRUwsK0JBQStCLEdBQ2hDLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFTdkMsTUFBTSxPQUFPLGtCQUFrQjtJQUs3QixZQUVtQixlQUEyQyxFQUMzQyxlQUFnQyxFQUNoQyxTQUEwQjtRQUYxQixvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUFDM0Msb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBUjVCLGFBQVEsR0FBRyxxQkFBcUIsQ0FBQztRQUVqQyxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQXdDLENBQUM7SUFPdEUsQ0FBQztJQUVHLEtBQUssQ0FBQyxjQUFjO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDaEQsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPO1FBQ25CLE1BQU0sYUFBYSxHQUE2QjtZQUM5QyxZQUFZLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLO1NBQ3pDLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUNaLFFBQVEsRUFDUixhQUFhLENBQ1gsSUFBSSxDQUFDLFNBQVM7aUJBQ1gsSUFBSSxDQUNILElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxlQUFlLENBQUMsRUFBRSxHQUFHLGFBQWEsRUFBRSxDQUFDLEVBQ3pDO2dCQUNFLE9BQU8sRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FDNUIsY0FBYyxFQUNkLGtEQUFrRCxDQUNuRDtnQkFDRCxZQUFZLEVBQUUsTUFBTTthQUNyQixDQUNGO2lCQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUMzRCxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO2dCQUN2QixNQUFNLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztRQUVELDBEQUEwRDtRQUMxRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OEdBbkRVLGtCQUFrQixrQkFNbkIsK0JBQStCO2tIQU45QixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT0ksTUFBTTsyQkFBQywrQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbGFzdFZhbHVlRnJvbSwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXNwb25zZUVycm9yIH0gZnJvbSAnLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvcmVzcG9uc2UtZXJyb3IuY2xhc3MnO1xuaW1wb3J0IHsgU2VjdXJlQXBpQ2xpZW50IH0gZnJvbSAnLi4vaHR0cC9zZWN1cmUtYXBpL3NlY3VyZS1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi9zZXR0aW5ncy9zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFVzZXJCYWxhbmNlUmVzcG9uc2VGYWN0b3J5LFxuICB1c2VyQmFsYW5jZVJlc3BvbnNlRmFjdG9yeVRva2VuLFxufSBmcm9tICcuL3VzZXItYmFsYW5jZS1yZXNwb25zZS50b2tlbic7XG5pbXBvcnQgeyBVc2VyQmFsYW5jZVJlc3BvbnNlIH0gZnJvbSAnLi91c2VyLWJhbGFuY2UtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgVXNlckJhbGFuY2VSZXF1ZXN0UGFyYW1zIH0gZnJvbSAnLi91c2VyLWJhbGFuY2UtcmVxdWVzdC1wYXJhbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVzZXJCYWxhbmNlQXBpIH0gZnJvbSAnLi91c2VyLWJhbGFuY2UtYXBpLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCYWxhbmNlIH0gZnJvbSAnLi4vc2V0dGluZ3MvYmFsYW5jZS5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlckJhbGFuY2VTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhcGlSb3V0ZSA9ICdiYWxhbmNlL3N1ZmZpY2llbmN5JztcblxuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFByb21pc2U8VXNlckJhbGFuY2VSZXNwb25zZT4+KCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QodXNlckJhbGFuY2VSZXNwb25zZUZhY3RvcnlUb2tlbilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3BvbnNlRmFjdG9yeTogVXNlckJhbGFuY2VSZXNwb25zZUZhY3RvcnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IFNldHRpbmdzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlY3VyZUFwaTogU2VjdXJlQXBpQ2xpZW50XG4gICkge31cblxuICBwdWJsaWMgYXN5bmMgZ2V0VXNlckJhbGFuY2UoKTogUHJvbWlzZTxVc2VyQmFsYW5jZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdCgpO1xuICB9XG5cbiAgcHVibGljIGdldFVzZXJCYWxhbmNlVmFsdWUoKTogQmFsYW5jZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzU2VydmljZS51c2VyLnVzZXJfYmFsYW5jZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVxdWVzdCgpOiBQcm9taXNlPFVzZXJCYWxhbmNlUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXF1ZXN0UGFyYW1zOiBVc2VyQmFsYW5jZVJlcXVlc3RQYXJhbXMgPSB7XG4gICAgICBhY2Nlc3NfdG9rZW46IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnRva2VuLFxuICAgIH07XG4gICAgY29uc3QgY2FjaGVLZXkgPSBKU09OLnN0cmluZ2lmeShyZXF1ZXN0UGFyYW1zKTtcblxuICAgIGlmICghdGhpcy5jYWNoZS5oYXMoY2FjaGVLZXkpKSB7XG4gICAgICB0aGlzLmNhY2hlLnNldChcbiAgICAgICAgY2FjaGVLZXksXG4gICAgICAgIGxhc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy5zZWN1cmVBcGlcbiAgICAgICAgICAgIC5wb3N0PFVzZXJCYWxhbmNlQXBpPihcbiAgICAgICAgICAgICAgdGhpcy5hcGlSb3V0ZSxcbiAgICAgICAgICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh7IC4uLnJlcXVlc3RQYXJhbXMgfSksXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJyxcbiAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9dXRmLTgnXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUobWFwKChyZXNwb25zZSkgPT4gdGhpcy5yZXNwb25zZUZhY3RvcnkocmVzcG9uc2UpKSlcbiAgICAgICAgKS5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgdGhyb3cgbmV3IFJlc3BvbnNlRXJyb3IoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgdGhlIG1hcCBhbHJlYWR5IGhhcyB0aGUgY2FjaGUgd2l0aCBrZXlcbiAgICByZXR1cm4gdGhpcy5jYWNoZS5nZXQoY2FjaGVLZXkpO1xuICB9XG59XG4iXX0=
@@ -1,144 +0,0 @@
1
- import { Inject, Injectable, isDevMode } from '@angular/core';
2
- import { EventParameterType } from './event-parameter-types';
3
- import { Device } from '../../user-agent/device.enum';
4
- import { windowToken } from '../../window.token';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../settings/settings.service";
7
- import * as i2 from "../../user-agent/user-agent.service";
8
- export class EventBuilderService {
9
- constructor(settingsService, userAgentService, window) {
10
- this.settingsService = settingsService;
11
- this.userAgentService = userAgentService;
12
- this.window = window;
13
- }
14
- createEvent(options, userSessionOptions) {
15
- return {
16
- action: options.action,
17
- type: options.type,
18
- value: this.convertToEventParameterType(options.value, options.valueType ?? EventParameterType.string),
19
- state: options.state,
20
- date: this.getDate(options.date),
21
- milliseconds: options.date.getTime(),
22
- timezone: this.getTimezone(options.date),
23
- session_id: this.settingsService.unsafeUtilsResponse?.user?.session_id ?? null,
24
- referrer_url: this.window?.document?.referrer,
25
- project_id: this.convertToEventParameterType(this.settingsService.unsafeUtilsResponse?.project?.id, EventParameterType.int),
26
- payment_country: this.convertToEventParameterType(options.invoice?.payment_country ??
27
- this.settingsService.unsafeUtilsResponse?.user?.country?.value, EventParameterType.string),
28
- geotype_id: this.convertToEventParameterType(options.invoice?.geotype_id, EventParameterType.int),
29
- instance_id: this.convertToEventParameterType(options.instanceId ??
30
- this.getPaymentMethodId(userSessionOptions.instanceId), EventParameterType.int),
31
- payment_method_contr_id: this.convertToEventParameterType(options.invoice?.payment_method_contr_id, EventParameterType.int),
32
- ps_type: this.convertToEventParameterType(options.invoice?.ps_type, EventParameterType.int),
33
- is_pay_with_saved_method: this.convertToEventParameterType(userSessionOptions.isPayWithSavedMethod, EventParameterType.bool),
34
- purchase_invoice_id: this.convertToEventParameterType(options.invoice?.purchase_invoice_id, EventParameterType.int),
35
- purchase_external_id: this.convertToEventParameterType(this.settingsService.unsafeUtilsResponse?.purchase_external_id, EventParameterType.string),
36
- purchase_type: this.settingsService.unsafeUtilsResponse?.purchase
37
- ?.purchase_type,
38
- purchase_sum: this.convertToEventParameterType(options.invoice?.purchase_sum, EventParameterType.float),
39
- purchase_currency: this.convertToEventParameterType(options.invoice?.purchase_currency, EventParameterType.string),
40
- purchase_sku: this.convertToEventParameterType(options.invoice?.purchase_sku, EventParameterType.string),
41
- purchase_digital_content_sku: null,
42
- purchase_description: this.convertToEventParameterType(options.invoice?.purchase_description, EventParameterType.string),
43
- virtual_currency_amount: null, // TODO: add value
44
- digital_content_cart_id: this.convertToEventParameterType(options.invoice?.digital_content_cart_id, EventParameterType.int),
45
- digital_good_cart_id: this.convertToEventParameterType(options.invoice?.digital_good_cart_id, EventParameterType.int),
46
- coupon_code: this.convertToEventParameterType(userSessionOptions.couponCode, EventParameterType.string),
47
- theme_version: this.userAgentService.isMobileDevice
48
- ? Device.mobile
49
- : Device.desktop,
50
- subscription_package_id: this.convertToEventParameterType(userSessionOptions.subscriptionPackageId, EventParameterType.int),
51
- subscription_product_id: this.convertToEventParameterType(userSessionOptions.subscriptionProductId, EventParameterType.int),
52
- subscription_recurrent_id: this.convertToEventParameterType(userSessionOptions.subscriptionRecurrentId, EventParameterType.int),
53
- user_id: this.convertToEventParameterType(this.settingsService.unsafeUtilsResponse?.user?.requisites?.id, EventParameterType.string),
54
- user_access_token: this.settingsService.token,
55
- user_name: this.convertToEventParameterType(this.settingsService.unsafeUtilsResponse?.user?.requisites?.v2, EventParameterType.string),
56
- user_email: this.convertToEventParameterType(this.settingsService.unsafeUtilsResponse?.user?.email?.value, EventParameterType.string),
57
- user_country: this.convertToEventParameterType(this.settingsService.unsafeUtilsResponse?.user?.country?.value, EventParameterType.string),
58
- user_ip: this.convertToEventParameterType(this.settingsService.unsafeUtilsResponse?.user?.ip, EventParameterType.string),
59
- user_mobile_operator_name: this.convertToEventParameterType(userSessionOptions.userMobileOperatorName, EventParameterType.string),
60
- user_operation_system: this.userAgentService.platform,
61
- user_browser: this.userAgentService.browserDescription,
62
- user_browser_version: this.userAgentService.browserVersion,
63
- user_locale: this.convertToEventParameterType(this.settingsService.unsafeUtilsResponse?.user?.local, EventParameterType.string),
64
- user_utm: this.convertToEventParameterType(this.settingsService.unsafeUtilsResponse?.user?.utm_parameters, EventParameterType.string),
65
- xsolla_product_tag: this.convertToEventParameterType(this.settingsService.unsafeUtilsResponse?.xsolla_product_tag, EventParameterType.string),
66
- experiment_id: null,
67
- is_test_session: +isDevMode(),
68
- babka_value: null,
69
- extra_value: this.convertToEventParameterType(options?.extraValue, EventParameterType.string),
70
- is_subscription: this.convertToEventParameterType(this.isSubscription(), EventParameterType.bool),
71
- is_iframe: this.convertToEventParameterType(this.window.parent !== this.window, EventParameterType.bool),
72
- web3wallet: null, // TODO: add value
73
- dimension_1: this.convertToEventParameterType(options?.dimension1, EventParameterType.string),
74
- dimension_2: this.convertToEventParameterType(options?.dimension2, EventParameterType.string),
75
- dimension_3: this.convertToEventParameterType(options?.dimension3, EventParameterType.string),
76
- dimension_4: this.convertToEventParameterType(options?.dimension4, EventParameterType.string),
77
- dimension_5: this.convertToEventParameterType(options?.dimension5, EventParameterType.string),
78
- client_version: 'Headless Checkout',
79
- };
80
- }
81
- getDate(date) {
82
- const nullIndex = 0;
83
- return date.toISOString().replace('T', ' ').replace('Z', '').split('.')[nullIndex];
84
- }
85
- getTimezone(date) {
86
- const hour = 60;
87
- const nullHour = 0;
88
- const hourOffset = -date.getTimezoneOffset() / hour;
89
- if (hourOffset === nullHour) {
90
- return '0';
91
- }
92
- return hourOffset > nullHour ? `+${hourOffset}` : hourOffset.toString();
93
- }
94
- convertToEventParameterType(value, type
95
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
96
- ) {
97
- if (value === null || value === undefined) {
98
- return null;
99
- }
100
- if (typeof value === 'boolean') {
101
- value = value ? 1 : 0;
102
- }
103
- switch (type) {
104
- case EventParameterType.string:
105
- return String(value);
106
- case EventParameterType.int:
107
- value = parseInt(String(value), 10);
108
- return isNaN(value) ? 0 : value;
109
- case EventParameterType.intArray:
110
- return Array.isArray(value) ? value : [];
111
- case EventParameterType.float:
112
- value = parseFloat(String(value));
113
- return isNaN(value) ? 0 : value;
114
- case EventParameterType.bool:
115
- return value ? 1 : 0;
116
- }
117
- }
118
- convertValueForPostMessage(value) {
119
- if (value === null || value === undefined) {
120
- return null;
121
- }
122
- return String(value);
123
- }
124
- isSubscription() {
125
- return (this.settingsService.unsafeUtilsResponse?.purchase?.purchase_type ===
126
- 'subscription');
127
- }
128
- getPaymentMethodId(instanceId) {
129
- return (this.settingsService.unsafeUtilsResponse?.settings?.payment_system ??
130
- instanceId);
131
- }
132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EventBuilderService, deps: [{ token: i1.SettingsService }, { token: i2.UserAgentService }, { token: windowToken }], target: i0.ɵɵFactoryTarget.Injectable }); }
133
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EventBuilderService, providedIn: 'root' }); }
134
- }
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: EventBuilderService, decorators: [{
136
- type: Injectable,
137
- args: [{
138
- providedIn: 'root',
139
- }]
140
- }], ctorParameters: () => [{ type: i1.SettingsService }, { type: i2.UserAgentService }, { type: undefined, decorators: [{
141
- type: Inject,
142
- args: [windowToken]
143
- }] }] });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL2V2ZW50LWJ1aWxkZXIvZXZlbnQtYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU83RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBTWpELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDbUIsZUFBZ0MsRUFDaEMsZ0JBQWtDLEVBRWxDLE1BQXNCO1FBSHRCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBRWxDLFdBQU0sR0FBTixNQUFNLENBQWdCO0lBQ3RDLENBQUM7SUFFRyxXQUFXLENBQ2hCLE9BQTBDLEVBQzFDLGtCQUFzQztRQUV0QyxPQUFPO1lBQ0wsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUNyQyxPQUFPLENBQUMsS0FBSyxFQUNiLE9BQU8sQ0FBQyxTQUFTLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUMvQztZQUNELEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztZQUNwQixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hDLFlBQVksRUFBRSxPQUFP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Qjs7MEJBS0ksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV2ZW50UGFyYW1ldGVyVHlwZSB9IGZyb20gJy4vZXZlbnQtcGFyYW1ldGVyLXR5cGVzJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudCB9IGZyb20gJy4vdXNlci1iZWhhdmlvdXItZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFB1cmNoYXNlIH0gZnJvbSAnLi9wdXJjaGFzZS50eXBlJztcbmltcG9ydCB7IENyZWF0ZUV2ZW50TWV0aG9kT3B0aW9uc0ludGVyZmFjZSB9IGZyb20gJy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyQWdlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXNlci1hZ2VudC91c2VyLWFnZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IERldmljZSB9IGZyb20gJy4uLy4uL3VzZXItYWdlbnQvZGV2aWNlLmVudW0nO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi93aW5kb3cudG9rZW4nO1xuaW1wb3J0IHsgVXNlclNlc3Npb25PcHRpb25zIH0gZnJvbSAnLi4vdXNlci1zZXNzaW9uLW9wdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRXZlbnRCdWlsZGVyU2VydmljZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlckFnZW50U2VydmljZTogVXNlckFnZW50U2VydmljZSxcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBFeHRlbmRlZFdpbmRvd1xuICApIHt9XG5cbiAgcHVibGljIGNyZWF0ZUV2ZW50KFxuICAgIG9wdGlvbnM6IENyZWF0ZUV2ZW50TWV0aG9kT3B0aW9uc0ludGVyZmFjZSxcbiAgICB1c2VyU2Vzc2lvbk9wdGlvbnM6IFVzZXJTZXNzaW9uT3B0aW9uc1xuICApOiBVc2VyQmVoYXZpb3VyRXZlbnQge1xuICAgIHJldHVybiB7XG4gICAgICBhY3Rpb246IG9wdGlvbnMuYWN0aW9uLFxuICAgICAgdHlwZTogb3B0aW9ucy50eXBlLFxuICAgICAgdmFsdWU6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zLnZhbHVlLFxuICAgICAgICBvcHRpb25zLnZhbHVlVHlwZSA/PyBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nXG4gICAgICApLFxuICAgICAgc3RhdGU6IG9wdGlvbnMuc3RhdGUsXG4gICAgICBkYXRlOiB0aGlzLmdldERhdGUob3B0aW9ucy5kYXRlKSxcbiAgICAgIG1pbGxpc2Vjb25kczogb3B0aW9ucy5kYXRlLmdldFRpbWUoKSxcbiAgICAgIHRpbWV6b25lOiB0aGlzLmdldFRpbWV6b25lKG9wdGlvbnMuZGF0ZSksXG4gICAgICBzZXNzaW9uX2lkOlxuICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS51bnNhZmVVdGlsc1Jlc3BvbnNlPy51c2VyPy5zZXNzaW9uX2lkID8/IG51bGwsXG4gICAgICByZWZlcnJlcl91cmw6IHRoaXMud2luZG93Py5kb2N1bWVudD8ucmVmZXJyZXIsXG4gICAgICBwcm9qZWN0X2lkOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudW5zYWZlVXRpbHNSZXNwb25zZT8ucHJvamVjdD8uaWQsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5pbnRcbiAgICAgICksXG4gICAgICBwYXltZW50X2NvdW50cnk6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zLmludm9pY2U/LnBheW1lbnRfY291bnRyeSA/P1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnVzZXI/LmNvdW50cnk/LnZhbHVlLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nXG4gICAgICApLFxuICAgICAgZ2VvdHlwZV9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8uZ2VvdHlwZV9pZCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmludFxuICAgICAgKSxcbiAgICAgIGluc3RhbmNlX2lkOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucy5pbnN0YW5jZUlkID8/XG4gICAgICAgICAgdGhpcy5nZXRQYXltZW50TWV0aG9kSWQodXNlclNlc3Npb25PcHRpb25zLmluc3RhbmNlSWQpLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuaW50XG4gICAgICApLFxuICAgICAgcGF5bWVudF9tZXRob2RfY29udHJfaWQ6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zLmludm9pY2U/LnBheW1lbnRfbWV0aG9kX2NvbnRyX2lkLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuaW50XG4gICAgICApLFxuICAgICAgcHNfdHlwZTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8ucHNfdHlwZSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmludFxuICAgICAgKSxcbiAgICAgIGlzX3BheV93aXRoX3NhdmVkX21ldGhvZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHVzZXJTZXNzaW9uT3B0aW9ucy5pc1BheVdpdGhTYXZlZE1ldGhvZCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmJvb2xcbiAgICAgICksXG4gICAgICBwdXJjaGFzZV9pbnZvaWNlX2lkOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucy5pbnZvaWNlPy5wdXJjaGFzZV9pbnZvaWNlX2lkLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuaW50XG4gICAgICApLFxuICAgICAgcHVyY2hhc2VfZXh0ZXJuYWxfaWQ6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS51bnNhZmVVdGlsc1Jlc3BvbnNlPy5wdXJjaGFzZV9leHRlcm5hbF9pZCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZ1xuICAgICAgKSxcbiAgICAgIHB1cmNoYXNlX3R5cGU6IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnB1cmNoYXNlXG4gICAgICAgID8ucHVyY2hhc2VfdHlwZSBhcyBQdXJjaGFzZSxcbiAgICAgIHB1cmNoYXNlX3N1bTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8ucHVyY2hhc2Vfc3VtLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuZmxvYXRcbiAgICAgICksXG4gICAgICBwdXJjaGFzZV9jdXJyZW5jeTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8ucHVyY2hhc2VfY3VycmVuY3ksXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmdcbiAgICAgICksXG4gICAgICBwdXJjaGFzZV9za3U6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zLmludm9pY2U/LnB1cmNoYXNlX3NrdSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZ1xuICAgICAgKSxcbiAgICAgIHB1cmNoYXNlX2RpZ2l0YWxfY29udGVudF9za3U6IG51bGwsXG4gICAgICBwdXJjaGFzZV9kZXNjcmlwdGlvbjogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8ucHVyY2hhc2VfZGVzY3JpcHRpb24sXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmdcbiAgICAgICksXG4gICAgICB2aXJ0dWFsX2N1cnJlbmN5X2Ftb3VudDogbnVsbCwgLy8gVE9ETzogYWRkIHZhbHVlXG4gICAgICBkaWdpdGFsX2NvbnRlbnRfY2FydF9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8uZGlnaXRhbF9jb250ZW50X2NhcnRfaWQsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5pbnRcbiAgICAgICksXG4gICAgICBkaWdpdGFsX2dvb2RfY2FydF9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIG9wdGlvbnMuaW52b2ljZT8uZGlnaXRhbF9nb29kX2NhcnRfaWQsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5pbnRcbiAgICAgICksXG4gICAgICBjb3Vwb25fY29kZTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHVzZXJTZXNzaW9uT3B0aW9ucy5jb3Vwb25Db2RlLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nXG4gICAgICApLFxuICAgICAgdGhlbWVfdmVyc2lvbjogdGhpcy51c2VyQWdlbnRTZXJ2aWNlLmlzTW9iaWxlRGV2aWNlXG4gICAgICAgID8gRGV2aWNlLm1vYmlsZVxuICAgICAgICA6IERldmljZS5kZXNrdG9wLFxuICAgICAgc3Vic2NyaXB0aW9uX3BhY2thZ2VfaWQ6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB1c2VyU2Vzc2lvbk9wdGlvbnMuc3Vic2NyaXB0aW9uUGFja2FnZUlkLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuaW50XG4gICAgICApLFxuICAgICAgc3Vic2NyaXB0aW9uX3Byb2R1Y3RfaWQ6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB1c2VyU2Vzc2lvbk9wdGlvbnMuc3Vic2NyaXB0aW9uUHJvZHVjdElkLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuaW50XG4gICAgICApLFxuICAgICAgc3Vic2NyaXB0aW9uX3JlY3VycmVudF9pZDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHVzZXJTZXNzaW9uT3B0aW9ucy5zdWJzY3JpcHRpb25SZWN1cnJlbnRJZCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmludFxuICAgICAgKSxcbiAgICAgIHVzZXJfaWQ6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS51bnNhZmVVdGlsc1Jlc3BvbnNlPy51c2VyPy5yZXF1aXNpdGVzPy5pZCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZ1xuICAgICAgKSxcbiAgICAgIHVzZXJfYWNjZXNzX3Rva2VuOiB0aGlzLnNldHRpbmdzU2VydmljZS50b2tlbixcbiAgICAgIHVzZXJfbmFtZTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnVzZXI/LnJlcXVpc2l0ZXM/LnYyLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nXG4gICAgICApLFxuICAgICAgdXNlcl9lbWFpbDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnVzZXI/LmVtYWlsPy52YWx1ZSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZ1xuICAgICAgKSxcbiAgICAgIHVzZXJfY291bnRyeTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnVzZXI/LmNvdW50cnk/LnZhbHVlLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nXG4gICAgICApLFxuICAgICAgdXNlcl9pcDogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnVzZXI/LmlwLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nXG4gICAgICApLFxuICAgICAgdXNlcl9tb2JpbGVfb3BlcmF0b3JfbmFtZTogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHVzZXJTZXNzaW9uT3B0aW9ucy51c2VyTW9iaWxlT3BlcmF0b3JOYW1lLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nXG4gICAgICApLFxuICAgICAgdXNlcl9vcGVyYXRpb25fc3lzdGVtOiB0aGlzLnVzZXJBZ2VudFNlcnZpY2UucGxhdGZvcm0sXG4gICAgICB1c2VyX2Jyb3dzZXI6IHRoaXMudXNlckFnZW50U2VydmljZS5icm93c2VyRGVzY3JpcHRpb24sXG4gICAgICB1c2VyX2Jyb3dzZXJfdmVyc2lvbjogdGhpcy51c2VyQWdlbnRTZXJ2aWNlLmJyb3dzZXJWZXJzaW9uLFxuICAgICAgdXNlcl9sb2NhbGU6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS51bnNhZmVVdGlsc1Jlc3BvbnNlPy51c2VyPy5sb2NhbCxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZ1xuICAgICAgKSxcbiAgICAgIHVzZXJfdXRtOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudW5zYWZlVXRpbHNSZXNwb25zZT8udXNlcj8udXRtX3BhcmFtZXRlcnMsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmdcbiAgICAgICksXG4gICAgICB4c29sbGFfcHJvZHVjdF90YWc6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB0aGlzLnNldHRpbmdzU2VydmljZS51bnNhZmVVdGlsc1Jlc3BvbnNlPy54c29sbGFfcHJvZHVjdF90YWcsXG4gICAgICAgIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmdcbiAgICAgICksXG4gICAgICBleHBlcmltZW50X2lkOiBudWxsLFxuICAgICAgaXNfdGVzdF9zZXNzaW9uOiAraXNEZXZNb2RlKCksXG4gICAgICBiYWJrYV92YWx1ZTogbnVsbCxcbiAgICAgIGV4dHJhX3ZhbHVlOiB0aGlzLmNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICAgICAgb3B0aW9ucz8uZXh0cmFWYWx1ZSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLnN0cmluZ1xuICAgICAgKSxcbiAgICAgIGlzX3N1YnNjcmlwdGlvbjogdGhpcy5jb252ZXJ0VG9FdmVudFBhcmFtZXRlclR5cGUoXG4gICAgICAgIHRoaXMuaXNTdWJzY3JpcHRpb24oKSxcbiAgICAgICAgRXZlbnRQYXJhbWV0ZXJUeXBlLmJvb2xcbiAgICAgICksXG4gICAgICBpc19pZnJhbWU6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICB0aGlzLndpbmRvdy5wYXJlbnQgIT09IHRoaXMud2luZG93LFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuYm9vbFxuICAgICAgKSxcbiAgICAgIHdlYjN3YWxsZXQ6IG51bGwsIC8vIFRPRE86IGFkZCB2YWx1ZVxuICAgICAgZGltZW5zaW9uXzE6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zPy5kaW1lbnNpb24xLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nXG4gICAgICApLFxuICAgICAgZGltZW5zaW9uXzI6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zPy5kaW1lbnNpb24yLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nXG4gICAgICApLFxuICAgICAgZGltZW5zaW9uXzM6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zPy5kaW1lbnNpb24zLFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nXG4gICAgICApLFxuICAgICAgZGltZW5zaW9uXzQ6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zPy5kaW1lbnNpb240LFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nXG4gICAgICApLFxuICAgICAgZGltZW5zaW9uXzU6IHRoaXMuY29udmVydFRvRXZlbnRQYXJhbWV0ZXJUeXBlKFxuICAgICAgICBvcHRpb25zPy5kaW1lbnNpb241LFxuICAgICAgICBFdmVudFBhcmFtZXRlclR5cGUuc3RyaW5nXG4gICAgICApLFxuICAgICAgY2xpZW50X3ZlcnNpb246ICdIZWFkbGVzcyBDaGVja291dCcsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICBjb25zdCBudWxsSW5kZXggPSAwO1xuICAgIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgnVCcsICcgJykucmVwbGFjZSgnWicsICcnKS5zcGxpdCgnLicpW1xuICAgICAgbnVsbEluZGV4XG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGltZXpvbmUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgaG91ciA9IDYwO1xuICAgIGNvbnN0IG51bGxIb3VyID0gMDtcbiAgICBjb25zdCBob3VyT2Zmc2V0ID0gLWRhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSAvIGhvdXI7XG5cbiAgICBpZiAoaG91ck9mZnNldCA9PT0gbnVsbEhvdXIpIHtcbiAgICAgIHJldHVybiAnMCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhvdXJPZmZzZXQgPiBudWxsSG91ciA/IGArJHtob3VyT2Zmc2V0fWAgOiBob3VyT2Zmc2V0LnRvU3RyaW5nKCk7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRUb0V2ZW50UGFyYW1ldGVyVHlwZShcbiAgICB2YWx1ZTogYm9vbGVhbiB8IG51bWJlciB8IG51bWJlcltdIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICB0eXBlOiBFdmVudFBhcmFtZXRlclR5cGVcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICApOiBhbnkgfCBudWxsIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlID8gMSA6IDA7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIEV2ZW50UGFyYW1ldGVyVHlwZS5zdHJpbmc6XG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgY2FzZSBFdmVudFBhcmFtZXRlclR5cGUuaW50OlxuICAgICAgICB2YWx1ZSA9IHBhcnNlSW50KFN0cmluZyh2YWx1ZSksIDEwKTtcbiAgICAgICAgcmV0dXJuIGlzTmFOKHZhbHVlKSA/IDAgOiB2YWx1ZTtcbiAgICAgIGNhc2UgRXZlbnRQYXJhbWV0ZXJUeXBlLmludEFycmF5OlxuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFtdO1xuICAgICAgY2FzZSBFdmVudFBhcmFtZXRlclR5cGUuZmxvYXQ6XG4gICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdChTdHJpbmcodmFsdWUpKTtcbiAgICAgICAgcmV0dXJuIGlzTmFOKHZhbHVlKSA/IDAgOiB2YWx1ZTtcbiAgICAgIGNhc2UgRXZlbnRQYXJhbWV0ZXJUeXBlLmJvb2w6XG4gICAgICAgIHJldHVybiB2YWx1ZSA/IDEgOiAwO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFZhbHVlRm9yUG9zdE1lc3NhZ2UoXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlcltdIHwgbnVsbFxuICApOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1N1YnNjcmlwdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudW5zYWZlVXRpbHNSZXNwb25zZT8ucHVyY2hhc2U/LnB1cmNoYXNlX3R5cGUgPT09XG4gICAgICAnc3Vic2NyaXB0aW9uJ1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldFBheW1lbnRNZXRob2RJZChpbnN0YW5jZUlkOiBudW1iZXIgfCBudWxsKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnVuc2FmZVV0aWxzUmVzcG9uc2U/LnNldHRpbmdzPy5wYXltZW50X3N5c3RlbSA/P1xuICAgICAgaW5zdGFuY2VJZFxuICAgICk7XG4gIH1cbn1cbiJdfQ==