@internetarchive/donation-form 0.5.18-alpha.1 → 0.5.19

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 (420) hide show
  1. package/LICENSE +661 -661
  2. package/README.md +115 -115
  3. package/dist/demo/braintree-endpoint-manager.d.ts +9 -9
  4. package/dist/demo/braintree-endpoint-manager.js +45 -45
  5. package/dist/demo/braintree-endpoint-manager.js.map +1 -1
  6. package/dist/demo/demo-analytics-handler.d.ts +17 -17
  7. package/dist/demo/demo-analytics-handler.js +13 -13
  8. package/dist/demo/demo-analytics-handler.js.map +1 -1
  9. package/dist/demo/submit-form-with.d.ts +7 -7
  10. package/dist/demo/submit-form-with.js +21 -21
  11. package/dist/demo/submit-form-with.js.map +1 -1
  12. package/dist/index.d.ts +7 -7
  13. package/dist/index.js +7 -7
  14. package/dist/index.js.map +1 -1
  15. package/dist/src/braintree-manager/braintree-interfaces.d.ts +147 -147
  16. package/dist/src/braintree-manager/braintree-interfaces.js +5 -5
  17. package/dist/src/braintree-manager/braintree-interfaces.js.map +1 -1
  18. package/dist/src/braintree-manager/braintree-manager.d.ts +124 -124
  19. package/dist/src/braintree-manager/braintree-manager.js +149 -149
  20. package/dist/src/braintree-manager/braintree-manager.js.map +1 -1
  21. package/dist/src/braintree-manager/payment-clients.d.ts +47 -47
  22. package/dist/src/braintree-manager/payment-clients.js +116 -116
  23. package/dist/src/braintree-manager/payment-clients.js.map +1 -1
  24. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-interface.d.ts +8 -8
  25. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-interface.js.map +1 -1
  26. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-delegate.d.ts +6 -6
  27. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-delegate.js.map +1 -1
  28. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.d.ts +10 -10
  29. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.js.map +1 -1
  30. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.d.ts +21 -21
  31. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.js +99 -99
  32. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.js.map +1 -1
  33. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.d.ts +10 -10
  34. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.js +12 -12
  35. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.js.map +1 -1
  36. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay.d.ts +20 -20
  37. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay.js +71 -71
  38. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay.js.map +1 -1
  39. package/dist/src/braintree-manager/payment-providers/credit-card/credit-card-interface.d.ts +16 -16
  40. package/dist/src/braintree-manager/payment-providers/credit-card/credit-card-interface.js.map +1 -1
  41. package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.d.ts +29 -29
  42. package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.js +99 -99
  43. package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.js.map +1 -1
  44. package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.d.ts +11 -11
  45. package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.js +7 -7
  46. package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.js.map +1 -1
  47. package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.d.ts +34 -34
  48. package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.js +52 -52
  49. package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.js.map +1 -1
  50. package/dist/src/braintree-manager/payment-providers/google-pay-interface.d.ts +7 -7
  51. package/dist/src/braintree-manager/payment-providers/google-pay-interface.js.map +1 -1
  52. package/dist/src/braintree-manager/payment-providers/google-pay.d.ts +18 -18
  53. package/dist/src/braintree-manager/payment-providers/google-pay.js +40 -40
  54. package/dist/src/braintree-manager/payment-providers/google-pay.js.map +1 -1
  55. package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.d.ts +145 -145
  56. package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.js +60 -60
  57. package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.js.map +1 -1
  58. package/dist/src/braintree-manager/payment-providers/paypal/paypal-interface.d.ts +11 -11
  59. package/dist/src/braintree-manager/payment-providers/paypal/paypal-interface.js.map +1 -1
  60. package/dist/src/braintree-manager/payment-providers/paypal/paypal.d.ts +23 -23
  61. package/dist/src/braintree-manager/payment-providers/paypal/paypal.js +46 -46
  62. package/dist/src/braintree-manager/payment-providers/paypal/paypal.js.map +1 -1
  63. package/dist/src/braintree-manager/payment-providers/venmo-interface.d.ts +6 -6
  64. package/dist/src/braintree-manager/payment-providers/venmo-interface.js.map +1 -1
  65. package/dist/src/braintree-manager/payment-providers/venmo.d.ts +28 -28
  66. package/dist/src/braintree-manager/payment-providers/venmo.js +50 -50
  67. package/dist/src/braintree-manager/payment-providers/venmo.js.map +1 -1
  68. package/dist/src/braintree-manager/payment-providers-interface.d.ts +16 -16
  69. package/dist/src/braintree-manager/payment-providers-interface.js.map +1 -1
  70. package/dist/src/braintree-manager/payment-providers.d.ts +45 -45
  71. package/dist/src/braintree-manager/payment-providers.js +105 -105
  72. package/dist/src/braintree-manager/payment-providers.js.map +1 -1
  73. package/dist/src/donation-form-controller.d.ts +116 -116
  74. package/dist/src/donation-form-controller.js +562 -562
  75. package/dist/src/donation-form-controller.js.map +1 -1
  76. package/dist/src/donation-form-error.d.ts +3 -3
  77. package/dist/src/donation-form-error.js +6 -6
  78. package/dist/src/donation-form-error.js.map +1 -1
  79. package/dist/src/donation-form.d.ts +120 -120
  80. package/dist/src/donation-form.js +530 -530
  81. package/dist/src/donation-form.js.map +1 -1
  82. package/dist/src/form-elements/badged-input.d.ts +32 -32
  83. package/dist/src/form-elements/badged-input.js +124 -124
  84. package/dist/src/form-elements/badged-input.js.map +1 -1
  85. package/dist/src/form-elements/contact-form/autocomplete-field-options.d.ts +1 -1
  86. package/dist/src/form-elements/contact-form/autocomplete-field-options.js.map +1 -1
  87. package/dist/src/form-elements/contact-form/contact-form.d.ts +53 -53
  88. package/dist/src/form-elements/contact-form/contact-form.js +428 -428
  89. package/dist/src/form-elements/contact-form/contact-form.js.map +1 -1
  90. package/dist/src/form-elements/contact-form/countries.d.ts +3 -3
  91. package/dist/src/form-elements/contact-form/countries.js +252 -252
  92. package/dist/src/form-elements/contact-form/countries.js.map +1 -1
  93. package/dist/src/form-elements/header/donation-form-header.d.ts +27 -27
  94. package/dist/src/form-elements/header/donation-form-header.js +97 -97
  95. package/dist/src/form-elements/header/donation-form-header.js.map +1 -1
  96. package/dist/src/form-elements/header/donation-summary.d.ts +11 -11
  97. package/dist/src/form-elements/header/donation-summary.js +57 -57
  98. package/dist/src/form-elements/header/donation-summary.js.map +1 -1
  99. package/dist/src/form-elements/payment-selector.d.ts +25 -25
  100. package/dist/src/form-elements/payment-selector.js +286 -286
  101. package/dist/src/form-elements/payment-selector.js.map +1 -1
  102. package/dist/src/form-elements/total-amount.d.ts +8 -8
  103. package/dist/src/form-elements/total-amount.js +47 -47
  104. package/dist/src/form-elements/total-amount.js.map +1 -1
  105. package/dist/src/modals/confirm-donation-modal-content.d.ts +31 -31
  106. package/dist/src/modals/confirm-donation-modal-content.js +168 -168
  107. package/dist/src/modals/confirm-donation-modal-content.js.map +1 -1
  108. package/dist/src/modals/error-modal-content.d.ts +14 -14
  109. package/dist/src/modals/error-modal-content.js +49 -49
  110. package/dist/src/modals/error-modal-content.js.map +1 -1
  111. package/dist/src/modals/upsell-modal-content.d.ts +32 -32
  112. package/dist/src/modals/upsell-modal-content.js +294 -294
  113. package/dist/src/modals/upsell-modal-content.js.map +1 -1
  114. package/dist/src/payment-flow-handlers/donation-flow-modal-manager.d.ts +181 -181
  115. package/dist/src/payment-flow-handlers/donation-flow-modal-manager.js +252 -252
  116. package/dist/src/payment-flow-handlers/donation-flow-modal-manager.js.map +1 -1
  117. package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.d.ts +21 -21
  118. package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.js +76 -76
  119. package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.js.map +1 -1
  120. package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.d.ts +70 -70
  121. package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.js +140 -140
  122. package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.js.map +1 -1
  123. package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.d.ts +22 -22
  124. package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.js +74 -74
  125. package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.js.map +1 -1
  126. package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.d.ts +52 -52
  127. package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.js +239 -239
  128. package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.js.map +1 -1
  129. package/dist/src/payment-flow-handlers/handlers/venmo-flow-handler.d.ts +30 -30
  130. package/dist/src/payment-flow-handlers/handlers/venmo-flow-handler.js +89 -89
  131. package/dist/src/payment-flow-handlers/handlers/venmo-flow-handler.js.map +1 -1
  132. package/dist/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.d.ts +75 -75
  133. package/dist/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.js +94 -94
  134. package/dist/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.js.map +1 -1
  135. package/dist/src/payment-flow-handlers/payment-flow-handlers.d.ts +111 -111
  136. package/dist/src/payment-flow-handlers/payment-flow-handlers.js +107 -107
  137. package/dist/src/payment-flow-handlers/payment-flow-handlers.js.map +1 -1
  138. package/dist/src/recaptcha-manager/recaptcha-manager.d.ts +48 -48
  139. package/dist/src/recaptcha-manager/recaptcha-manager.js +88 -88
  140. package/dist/src/recaptcha-manager/recaptcha-manager.js.map +1 -1
  141. package/dist/src/util/promisedSleep.d.ts +1 -1
  142. package/dist/src/util/promisedSleep.js +3 -3
  143. package/dist/src/util/promisedSleep.js.map +1 -1
  144. package/dist/test/helpers/fillInContactForm.d.ts +2 -2
  145. package/dist/test/helpers/fillInContactForm.js +19 -19
  146. package/dist/test/helpers/fillInContactForm.js.map +1 -1
  147. package/dist/test/mocks/flow-handlers/individual-handlers/mock-applepay-flow-handler.d.ts +7 -7
  148. package/dist/test/mocks/flow-handlers/individual-handlers/mock-applepay-flow-handler.js +9 -9
  149. package/dist/test/mocks/flow-handlers/individual-handlers/mock-applepay-flow-handler.js.map +1 -1
  150. package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.d.ts +15 -15
  151. package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.js +32 -32
  152. package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.js.map +1 -1
  153. package/dist/test/mocks/flow-handlers/individual-handlers/mock-googlepay-flow-handler.d.ts +9 -9
  154. package/dist/test/mocks/flow-handlers/individual-handlers/mock-googlepay-flow-handler.js +15 -15
  155. package/dist/test/mocks/flow-handlers/individual-handlers/mock-googlepay-flow-handler.js.map +1 -1
  156. package/dist/test/mocks/flow-handlers/individual-handlers/mock-paypal-flow-handler.d.ts +15 -15
  157. package/dist/test/mocks/flow-handlers/individual-handlers/mock-paypal-flow-handler.js +30 -30
  158. package/dist/test/mocks/flow-handlers/individual-handlers/mock-paypal-flow-handler.js.map +1 -1
  159. package/dist/test/mocks/flow-handlers/individual-handlers/mock-venmo-flow-handler.d.ts +9 -9
  160. package/dist/test/mocks/flow-handlers/individual-handlers/mock-venmo-flow-handler.js +17 -17
  161. package/dist/test/mocks/flow-handlers/individual-handlers/mock-venmo-flow-handler.js.map +1 -1
  162. package/dist/test/mocks/flow-handlers/mock-payment-flow-handlers.d.ts +30 -30
  163. package/dist/test/mocks/flow-handlers/mock-payment-flow-handlers.js +29 -29
  164. package/dist/test/mocks/flow-handlers/mock-payment-flow-handlers.js.map +1 -1
  165. package/dist/test/mocks/mock-analytics-handler.d.ts +8 -0
  166. package/dist/test/mocks/mock-analytics-handler.js +10 -0
  167. package/dist/test/mocks/mock-analytics-handler.js.map +1 -0
  168. package/dist/test/mocks/mock-braintree-manager.d.ts +45 -45
  169. package/dist/test/mocks/mock-braintree-manager.js +71 -71
  170. package/dist/test/mocks/mock-braintree-manager.js.map +1 -1
  171. package/dist/test/mocks/mock-donation-info.d.ts +4 -4
  172. package/dist/test/mocks/mock-donation-info.js +10 -10
  173. package/dist/test/mocks/mock-donation-info.js.map +1 -1
  174. package/dist/test/mocks/mock-endpoint-manager.d.ts +12 -12
  175. package/dist/test/mocks/mock-endpoint-manager.js +19 -19
  176. package/dist/test/mocks/mock-endpoint-manager.js.map +1 -1
  177. package/dist/test/mocks/mock-hosted-fields-config.d.ts +4 -4
  178. package/dist/test/mocks/mock-hosted-fields-config.js +37 -37
  179. package/dist/test/mocks/mock-hosted-fields-config.js.map +1 -1
  180. package/dist/test/mocks/mock-hosted-fields-container.d.ts +13 -13
  181. package/dist/test/mocks/mock-hosted-fields-container.js +27 -27
  182. package/dist/test/mocks/mock-hosted-fields-container.js.map +1 -1
  183. package/dist/test/mocks/mock-lazy-loader.d.ts +15 -15
  184. package/dist/test/mocks/mock-lazy-loader.js +20 -20
  185. package/dist/test/mocks/mock-lazy-loader.js.map +1 -1
  186. package/dist/test/mocks/mock-modal-manager.d.ts +17 -17
  187. package/dist/test/mocks/mock-modal-manager.js +26 -26
  188. package/dist/test/mocks/mock-modal-manager.js.map +1 -1
  189. package/dist/test/mocks/mock-payment-clients.d.ts +29 -29
  190. package/dist/test/mocks/mock-payment-clients.js +78 -78
  191. package/dist/test/mocks/mock-payment-clients.js.map +1 -1
  192. package/dist/test/mocks/mock-paypal-button-renderer.d.ts +5 -5
  193. package/dist/test/mocks/mock-paypal-button-renderer.js +6 -6
  194. package/dist/test/mocks/mock-paypal-button-renderer.js.map +1 -1
  195. package/dist/test/mocks/mock-recaptcha-manager.d.ts +7 -7
  196. package/dist/test/mocks/mock-recaptcha-manager.js +14 -14
  197. package/dist/test/mocks/mock-recaptcha-manager.js.map +1 -1
  198. package/dist/test/mocks/models/mock-billing-info.d.ts +2 -2
  199. package/dist/test/mocks/models/mock-billing-info.js +9 -9
  200. package/dist/test/mocks/models/mock-billing-info.js.map +1 -1
  201. package/dist/test/mocks/models/mock-custom-fields.d.ts +2 -2
  202. package/dist/test/mocks/models/mock-custom-fields.js +7 -7
  203. package/dist/test/mocks/models/mock-custom-fields.js.map +1 -1
  204. package/dist/test/mocks/models/mock-customer-info.d.ts +2 -2
  205. package/dist/test/mocks/models/mock-customer-info.js +6 -6
  206. package/dist/test/mocks/models/mock-customer-info.js.map +1 -1
  207. package/dist/test/mocks/models/mock-donation-request.d.ts +2 -2
  208. package/dist/test/mocks/models/mock-donation-request.js +18 -18
  209. package/dist/test/mocks/models/mock-donation-request.js.map +1 -1
  210. package/dist/test/mocks/models/mock-success-response.d.ts +2 -2
  211. package/dist/test/mocks/models/mock-success-response.js +14 -14
  212. package/dist/test/mocks/models/mock-success-response.js.map +1 -1
  213. package/dist/test/mocks/payment-clients/mock-applepay-client.d.ts +21 -21
  214. package/dist/test/mocks/payment-clients/mock-applepay-client.js +72 -72
  215. package/dist/test/mocks/payment-clients/mock-applepay-client.js.map +1 -1
  216. package/dist/test/mocks/payment-clients/mock-applepay-payment.d.ts +6 -6
  217. package/dist/test/mocks/payment-clients/mock-applepay-payment.js +42 -42
  218. package/dist/test/mocks/payment-clients/mock-applepay-payment.js.map +1 -1
  219. package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.d.ts +22 -22
  220. package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.js +35 -35
  221. package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.js.map +1 -1
  222. package/dist/test/mocks/payment-clients/mock-applepay-session.d.ts +30 -30
  223. package/dist/test/mocks/payment-clients/mock-applepay-session.js +52 -52
  224. package/dist/test/mocks/payment-clients/mock-applepay-session.js.map +1 -1
  225. package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.d.ts +10 -10
  226. package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.js +12 -12
  227. package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.js.map +1 -1
  228. package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.d.ts +22 -22
  229. package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.js +34 -34
  230. package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.js.map +1 -1
  231. package/dist/test/mocks/payment-clients/mock-braintree-client.d.ts +14 -14
  232. package/dist/test/mocks/payment-clients/mock-braintree-client.js +19 -19
  233. package/dist/test/mocks/payment-clients/mock-braintree-client.js.map +1 -1
  234. package/dist/test/mocks/payment-clients/mock-data-collector.d.ts +11 -11
  235. package/dist/test/mocks/payment-clients/mock-data-collector.js +17 -17
  236. package/dist/test/mocks/payment-clients/mock-data-collector.js.map +1 -1
  237. package/dist/test/mocks/payment-clients/mock-googlepay-client.d.ts +22 -22
  238. package/dist/test/mocks/payment-clients/mock-googlepay-client.js +42 -42
  239. package/dist/test/mocks/payment-clients/mock-googlepay-client.js.map +1 -1
  240. package/dist/test/mocks/payment-clients/mock-googlepay-library.d.ts +10 -10
  241. package/dist/test/mocks/payment-clients/mock-googlepay-library.js +22 -22
  242. package/dist/test/mocks/payment-clients/mock-googlepay-library.js.map +1 -1
  243. package/dist/test/mocks/payment-clients/mock-grecaptcha.d.ts +23 -23
  244. package/dist/test/mocks/payment-clients/mock-grecaptcha.js +62 -62
  245. package/dist/test/mocks/payment-clients/mock-grecaptcha.js.map +1 -1
  246. package/dist/test/mocks/payment-clients/mock-hostedfields-client.d.ts +33 -33
  247. package/dist/test/mocks/payment-clients/mock-hostedfields-client.js +54 -54
  248. package/dist/test/mocks/payment-clients/mock-hostedfields-client.js.map +1 -1
  249. package/dist/test/mocks/payment-clients/mock-hostedfieldstateobject-generator.d.ts +1 -1
  250. package/dist/test/mocks/payment-clients/mock-hostedfieldstateobject-generator.js +50 -50
  251. package/dist/test/mocks/payment-clients/mock-hostedfieldstateobject-generator.js.map +1 -1
  252. package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.d.ts +1 -1
  253. package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.js +13 -13
  254. package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.js.map +1 -1
  255. package/dist/test/mocks/payment-clients/mock-paypal-client.d.ts +23 -23
  256. package/dist/test/mocks/payment-clients/mock-paypal-client.js +62 -62
  257. package/dist/test/mocks/payment-clients/mock-paypal-client.js.map +1 -1
  258. package/dist/test/mocks/payment-clients/mock-paypal-library.d.ts +4 -4
  259. package/dist/test/mocks/payment-clients/mock-paypal-library.js +9 -9
  260. package/dist/test/mocks/payment-clients/mock-paypal-library.js.map +1 -1
  261. package/dist/test/mocks/payment-clients/mock-venmo-client.d.ts +22 -22
  262. package/dist/test/mocks/payment-clients/mock-venmo-client.js +36 -36
  263. package/dist/test/mocks/payment-clients/mock-venmo-client.js.map +1 -1
  264. package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-datasource-delegate.d.ts +10 -10
  265. package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-datasource-delegate.js +14 -14
  266. package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-datasource-delegate.js.map +1 -1
  267. package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-handler.d.ts +9 -9
  268. package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-handler.js +19 -19
  269. package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-handler.js.map +1 -1
  270. package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.d.ts +18 -18
  271. package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.js +41 -41
  272. package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.js.map +1 -1
  273. package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.d.ts +8 -8
  274. package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.js +16 -16
  275. package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.js.map +1 -1
  276. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.d.ts +28 -28
  277. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.js +52 -52
  278. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.js.map +1 -1
  279. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.d.ts +11 -11
  280. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.js +37 -37
  281. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.js.map +1 -1
  282. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-handler.d.ts +12 -12
  283. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-handler.js +15 -15
  284. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-handler.js.map +1 -1
  285. package/dist/test/mocks/payment-providers/individual-providers/mock-venmo-handler.d.ts +7 -7
  286. package/dist/test/mocks/payment-providers/individual-providers/mock-venmo-handler.js +22 -22
  287. package/dist/test/mocks/payment-providers/individual-providers/mock-venmo-handler.js.map +1 -1
  288. package/dist/test/mocks/payment-providers/mock-payment-providers.d.ts +21 -21
  289. package/dist/test/mocks/payment-providers/mock-payment-providers.js +45 -45
  290. package/dist/test/mocks/payment-providers/mock-payment-providers.js.map +1 -1
  291. package/dist/test/tests/braintree-manager.test.d.ts +1 -1
  292. package/dist/test/tests/braintree-manager.test.js +166 -166
  293. package/dist/test/tests/braintree-manager.test.js.map +1 -1
  294. package/dist/test/tests/donation-form-controller.test.d.ts +1 -1
  295. package/dist/test/tests/donation-form-controller.test.js +188 -188
  296. package/dist/test/tests/donation-form-controller.test.js.map +1 -1
  297. package/dist/test/tests/donation-form.test.d.ts +1 -1
  298. package/dist/test/tests/donation-form.test.js +109 -109
  299. package/dist/test/tests/donation-form.test.js.map +1 -1
  300. package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.d.ts +1 -1
  301. package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.js +216 -216
  302. package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.js.map +1 -1
  303. package/dist/test/tests/form-elements/donation-summary.test.d.ts +1 -1
  304. package/dist/test/tests/form-elements/donation-summary.test.js +36 -36
  305. package/dist/test/tests/form-elements/donation-summary.test.js.map +1 -1
  306. package/dist/test/tests/form-elements/payment-selector.test.d.ts +1 -1
  307. package/dist/test/tests/form-elements/payment-selector.test.js +69 -69
  308. package/dist/test/tests/form-elements/payment-selector.test.js.map +1 -1
  309. package/dist/test/tests/modals/error-modal-content.test.d.ts +1 -1
  310. package/dist/test/tests/modals/error-modal-content.test.js +14 -14
  311. package/dist/test/tests/modals/error-modal-content.test.js.map +1 -1
  312. package/dist/test/tests/modals/upsell-modal-content.test.d.ts +1 -1
  313. package/dist/test/tests/modals/upsell-modal-content.test.js +163 -163
  314. package/dist/test/tests/modals/upsell-modal-content.test.js.map +1 -1
  315. package/dist/test/tests/models/donation-payment-info.test.d.ts +1 -1
  316. package/dist/test/tests/models/donation-payment-info.test.js +74 -74
  317. package/dist/test/tests/models/donation-payment-info.test.js.map +1 -1
  318. package/dist/test/tests/payment-clients.test.d.ts +1 -1
  319. package/dist/test/tests/payment-clients.test.js +130 -130
  320. package/dist/test/tests/payment-clients.test.js.map +1 -1
  321. package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.d.ts +1 -1
  322. package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.js +160 -160
  323. package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.js.map +1 -1
  324. package/dist/test/tests/payment-providers/applepay-sessionmanager.test.d.ts +1 -1
  325. package/dist/test/tests/payment-providers/applepay-sessionmanager.test.js +36 -36
  326. package/dist/test/tests/payment-providers/applepay-sessionmanager.test.js.map +1 -1
  327. package/dist/test/tests/payment-providers/applepay.test.d.ts +1 -1
  328. package/dist/test/tests/payment-providers/applepay.test.js +78 -78
  329. package/dist/test/tests/payment-providers/applepay.test.js.map +1 -1
  330. package/dist/test/tests/payment-providers/creditcard.test.d.ts +1 -1
  331. package/dist/test/tests/payment-providers/creditcard.test.js +190 -190
  332. package/dist/test/tests/payment-providers/creditcard.test.js.map +1 -1
  333. package/dist/test/tests/payment-providers/googlepay.test.d.ts +1 -1
  334. package/dist/test/tests/payment-providers/googlepay.test.js +48 -48
  335. package/dist/test/tests/payment-providers/googlepay.test.js.map +1 -1
  336. package/dist/test/tests/payment-providers/payment-providers.test.d.ts +1 -1
  337. package/dist/test/tests/payment-providers/payment-providers.test.js +38 -38
  338. package/dist/test/tests/payment-providers/payment-providers.test.js.map +1 -1
  339. package/dist/test/tests/payment-providers/paypal-button-datasource.test.d.ts +1 -1
  340. package/dist/test/tests/payment-providers/paypal-button-datasource.test.js +162 -162
  341. package/dist/test/tests/payment-providers/paypal-button-datasource.test.js.map +1 -1
  342. package/dist/test/tests/payment-providers/paypal.test.d.ts +1 -1
  343. package/dist/test/tests/payment-providers/paypal.test.js +38 -38
  344. package/dist/test/tests/payment-providers/paypal.test.js.map +1 -1
  345. package/dist/test/tests/payment-providers/venmo.test.d.ts +1 -1
  346. package/dist/test/tests/payment-providers/venmo.test.js +77 -77
  347. package/dist/test/tests/payment-providers/venmo.test.js.map +1 -1
  348. package/dist/test/tests/recaptcha-manager.test.d.ts +1 -1
  349. package/dist/test/tests/recaptcha-manager.test.js +70 -70
  350. package/dist/test/tests/recaptcha-manager.test.js.map +1 -1
  351. package/package.json +101 -101
  352. package/src/@types/analytics-handler/index.d.ts +8 -8
  353. package/src/@types/braintree-web/LICENSE +21 -21
  354. package/src/@types/braintree-web/index.d.ts +93 -93
  355. package/src/@types/braintree-web/modules/american-express.d.ts +50 -50
  356. package/src/@types/braintree-web/modules/apple-pay.d.ts +213 -213
  357. package/src/@types/braintree-web/modules/client.d.ts +103 -103
  358. package/src/@types/braintree-web/modules/core.d.ts +34 -34
  359. package/src/@types/braintree-web/modules/data-collector.d.ts +13 -13
  360. package/src/@types/braintree-web/modules/google-payment.d.ts +269 -269
  361. package/src/@types/braintree-web/modules/hosted-fields.d.ts +366 -366
  362. package/src/@types/braintree-web/modules/paypal-checkout.d.ts +262 -262
  363. package/src/@types/braintree-web/modules/paypal.d.ts +177 -177
  364. package/src/@types/braintree-web/modules/three-d-secure.d.ts +141 -141
  365. package/src/@types/braintree-web/modules/unionpay.d.ts +224 -224
  366. package/src/@types/braintree-web/modules/us-bank-account.d.ts +81 -81
  367. package/src/@types/braintree-web/modules/venmo.d.ts +110 -110
  368. package/src/@types/braintree-web/package.json +64 -64
  369. package/src/@types/paypal-checkout-components/LICENSE +21 -21
  370. package/src/@types/paypal-checkout-components/index.d.ts +67 -67
  371. package/src/@types/paypal-checkout-components/modules/button.d.ts +50 -50
  372. package/src/@types/paypal-checkout-components/modules/callback-data.d.ts +244 -244
  373. package/src/@types/paypal-checkout-components/modules/configuration.d.ts +114 -114
  374. package/src/@types/paypal-checkout-components/package.json +58 -58
  375. package/src/braintree-manager/braintree-interfaces.ts +172 -172
  376. package/src/braintree-manager/braintree-manager.ts +283 -283
  377. package/src/braintree-manager/payment-clients.ts +148 -148
  378. package/src/braintree-manager/payment-providers/apple-pay/apple-pay-interface.ts +13 -13
  379. package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-delegate.ts +8 -8
  380. package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.ts +10 -10
  381. package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.ts +119 -119
  382. package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.ts +21 -21
  383. package/src/braintree-manager/payment-providers/apple-pay/apple-pay.ts +98 -98
  384. package/src/braintree-manager/payment-providers/credit-card/credit-card-interface.ts +21 -21
  385. package/src/braintree-manager/payment-providers/credit-card/credit-card.ts +130 -130
  386. package/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.ts +19 -19
  387. package/src/braintree-manager/payment-providers/credit-card/hosted-field-container.ts +85 -85
  388. package/src/braintree-manager/payment-providers/google-pay-interface.ts +8 -8
  389. package/src/braintree-manager/payment-providers/google-pay.ts +59 -59
  390. package/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.ts +218 -218
  391. package/src/braintree-manager/payment-providers/paypal/paypal-interface.ts +13 -13
  392. package/src/braintree-manager/payment-providers/paypal/paypal.ts +78 -78
  393. package/src/braintree-manager/payment-providers/venmo-interface.ts +8 -8
  394. package/src/braintree-manager/payment-providers/venmo.ts +67 -67
  395. package/src/braintree-manager/payment-providers-interface.ts +25 -25
  396. package/src/braintree-manager/payment-providers.ts +147 -147
  397. package/src/donation-form-controller.ts +619 -619
  398. package/src/donation-form-error.ts +6 -6
  399. package/src/donation-form.ts +566 -566
  400. package/src/form-elements/badged-input.ts +113 -113
  401. package/src/form-elements/contact-form/autocomplete-field-options.ts +63 -63
  402. package/src/form-elements/contact-form/contact-form.ts +427 -427
  403. package/src/form-elements/contact-form/countries.ts +252 -252
  404. package/src/form-elements/header/donation-form-header.ts +100 -100
  405. package/src/form-elements/header/donation-summary.ts +61 -61
  406. package/src/form-elements/payment-selector.ts +293 -293
  407. package/src/form-elements/total-amount.ts +46 -46
  408. package/src/modals/confirm-donation-modal-content.ts +160 -160
  409. package/src/modals/error-modal-content.ts +48 -48
  410. package/src/modals/upsell-modal-content.ts +294 -294
  411. package/src/payment-flow-handlers/donation-flow-modal-manager.ts +450 -450
  412. package/src/payment-flow-handlers/handlers/applepay-flow-handler.ts +108 -108
  413. package/src/payment-flow-handlers/handlers/creditcard-flow-handler.ts +231 -231
  414. package/src/payment-flow-handlers/handlers/googlepay-flow-handler.ts +113 -113
  415. package/src/payment-flow-handlers/handlers/paypal-flow-handler.ts +332 -332
  416. package/src/payment-flow-handlers/handlers/venmo-flow-handler.ts +118 -118
  417. package/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.ts +127 -127
  418. package/src/payment-flow-handlers/payment-flow-handlers.ts +218 -218
  419. package/src/recaptcha-manager/recaptcha-manager.ts +123 -123
  420. package/src/util/promisedSleep.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"credit-card.js","sourceRoot":"","sources":["../../../../../src/braintree-manager/payment-providers/credit-card/credit-card.ts"],"names":[],"mappings":"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","sourcesContent":["import { PromisedSingleton } from '@internetarchive/promised-singleton';\r\nimport { BraintreeManagerInterface } from '../../braintree-interfaces';\r\nimport { HostedFieldConfiguration } from './hosted-field-configuration';\r\nimport { HostedFieldName } from './hosted-field-container';\r\nimport { CreditCardHandlerEvents, CreditCardHandlerInterface } from './credit-card-interface';\r\nimport { createNanoEvents, Unsubscribe } from 'nanoevents';\r\nimport { DonationFormError } from '../../../donation-form-error';\r\n\r\nexport class CreditCardHandler implements CreditCardHandlerInterface {\r\n on<E extends keyof CreditCardHandlerEvents>(\r\n event: E,\r\n callback: CreditCardHandlerEvents[E],\r\n ): Unsubscribe {\r\n return this.emitter.on(event, callback);\r\n }\r\n\r\n instance = new PromisedSingleton<braintree.HostedFields | undefined>({\r\n generator: async (): Promise<braintree.HostedFields | undefined> => {\r\n const braintreeClient = await this.braintreeManager.instance.get();\r\n const hostedFields = await this.createHostedFields(braintreeClient);\r\n return hostedFields;\r\n },\r\n });\r\n\r\n private emitter = createNanoEvents<CreditCardHandlerEvents>();\r\n\r\n private maxRetryCount: number;\r\n\r\n private loadTimeout: number;\r\n\r\n constructor(options: {\r\n braintreeManager: BraintreeManagerInterface;\r\n hostedFieldClient: braintree.HostedFields;\r\n hostedFieldConfig: HostedFieldConfiguration;\r\n maxRetryCount?: number;\r\n loadTimeout?: number;\r\n }) {\r\n this.braintreeManager = options.braintreeManager;\r\n this.hostedFieldClient = options.hostedFieldClient;\r\n this.hostedFieldConfig = options.hostedFieldConfig;\r\n this.maxRetryCount = options.maxRetryCount ?? 2;\r\n this.loadTimeout = (options.loadTimeout ?? 6) * 1000;\r\n }\r\n\r\n private braintreeManager: BraintreeManagerInterface;\r\n private hostedFieldClient: braintree.HostedFields;\r\n private hostedFieldConfig: HostedFieldConfiguration;\r\n\r\n private async createHostedFields(\r\n braintreeClient: braintree.Client,\r\n retryCount = 0,\r\n ): Promise<braintree.HostedFields | undefined> {\r\n // we mainly want to do this for retry events, but it doesn't\r\n // hurt to do it on the first try\r\n this.hostedFieldConfig.hostedFieldContainer.resetHostedFields();\r\n try {\r\n // The hosted fields have a 60 second timeout internally, but braintree\r\n // support recommended setting a shorter timeout because 99% of users\r\n // load the hosted fields in under 4 seconds and 99.9% with 18 seconds.\r\n // What we're doing here is creating a \"timeout\" promise\r\n // and a \"create hosted fields\" promise and doing a `Promise.race()` to\r\n // resolve when the first one finishes. If the timeout finishes first,\r\n // we throw an error to trigger the retry logic. If the hosted fields\r\n // finishes first, we cancel the timeout promise since we're done.\r\n let timeout: number;\r\n\r\n const timeoutPromise = new Promise<void>((resolve, reject) => {\r\n timeout = window.setTimeout(() => {\r\n const error = new DonationFormError('Timeout loading Hosted Fields');\r\n reject(error);\r\n }, this.loadTimeout);\r\n });\r\n\r\n const hostedFieldsPromise = new Promise<braintree.HostedFields | undefined>(\r\n async (resolve, reject) => {\r\n try {\r\n const fields = await this.hostedFieldClient.create({\r\n client: braintreeClient,\r\n styles: this.hostedFieldConfig.hostedFieldStyle,\r\n fields: this.hostedFieldConfig.hostedFieldFieldOptions,\r\n });\r\n // clear the timeout when this finishes so we don't also get the timeout rejection\r\n window.clearTimeout(timeout);\r\n resolve(fields);\r\n } catch (error) {\r\n if (error instanceof Error && error.message.includes('Hosted Fields timed out')) {\r\n // this is the timeout error, so we don't need to do anything\r\n } else {\r\n // this is some other error. reject so it bubbles up to Sentry\r\n reject(error);\r\n }\r\n }\r\n },\r\n );\r\n\r\n const result = await Promise.race([timeoutPromise, hostedFieldsPromise]);\r\n\r\n return result as braintree.HostedFields;\r\n } catch (error) {\r\n if (retryCount >= this.maxRetryCount) {\r\n this.emitter.emit('hostedFieldsFailed', error);\r\n throw error;\r\n }\r\n const newRetryCount = retryCount + 1;\r\n this.emitter.emit('hostedFieldsRetry', newRetryCount);\r\n return this.createHostedFields(braintreeClient, newRetryCount);\r\n }\r\n }\r\n\r\n async tokenizeHostedFields(): Promise<braintree.HostedFieldsTokenizePayload | undefined> {\r\n const hostedFields = await this.instance.get();\r\n return hostedFields?.tokenize();\r\n }\r\n\r\n markFieldErrors(fields: HostedFieldName[]): void {\r\n this.hostedFieldConfig.hostedFieldContainer.markFieldErrors(fields);\r\n }\r\n\r\n removeFieldErrors(fields: HostedFieldName[]): void {\r\n this.hostedFieldConfig.hostedFieldContainer.removeFieldErrors(fields);\r\n }\r\n\r\n showErrorMessage(message?: string): void {\r\n this.hostedFieldConfig.hostedFieldContainer.showErrorMessage(message);\r\n }\r\n\r\n hideErrorMessage(): void {\r\n this.hostedFieldConfig.hostedFieldContainer.hideErrorMessage();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"credit-card.js","sourceRoot":"","sources":["../../../../../src/braintree-manager/payment-providers/credit-card/credit-card.ts"],"names":[],"mappings":"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","sourcesContent":["import { PromisedSingleton } from '@internetarchive/promised-singleton';\nimport { BraintreeManagerInterface } from '../../braintree-interfaces';\nimport { HostedFieldConfiguration } from './hosted-field-configuration';\nimport { HostedFieldName } from './hosted-field-container';\nimport { CreditCardHandlerEvents, CreditCardHandlerInterface } from './credit-card-interface';\nimport { createNanoEvents, Unsubscribe } from 'nanoevents';\nimport { DonationFormError } from '../../../donation-form-error';\n\nexport class CreditCardHandler implements CreditCardHandlerInterface {\n on<E extends keyof CreditCardHandlerEvents>(\n event: E,\n callback: CreditCardHandlerEvents[E],\n ): Unsubscribe {\n return this.emitter.on(event, callback);\n }\n\n instance = new PromisedSingleton<braintree.HostedFields | undefined>({\n generator: async (): Promise<braintree.HostedFields | undefined> => {\n const braintreeClient = await this.braintreeManager.instance.get();\n const hostedFields = await this.createHostedFields(braintreeClient);\n return hostedFields;\n },\n });\n\n private emitter = createNanoEvents<CreditCardHandlerEvents>();\n\n private maxRetryCount: number;\n\n private loadTimeout: number;\n\n constructor(options: {\n braintreeManager: BraintreeManagerInterface;\n hostedFieldClient: braintree.HostedFields;\n hostedFieldConfig: HostedFieldConfiguration;\n maxRetryCount?: number;\n loadTimeout?: number;\n }) {\n this.braintreeManager = options.braintreeManager;\n this.hostedFieldClient = options.hostedFieldClient;\n this.hostedFieldConfig = options.hostedFieldConfig;\n this.maxRetryCount = options.maxRetryCount ?? 2;\n this.loadTimeout = (options.loadTimeout ?? 6) * 1000;\n }\n\n private braintreeManager: BraintreeManagerInterface;\n private hostedFieldClient: braintree.HostedFields;\n private hostedFieldConfig: HostedFieldConfiguration;\n\n private async createHostedFields(\n braintreeClient: braintree.Client,\n retryCount = 0,\n ): Promise<braintree.HostedFields | undefined> {\n // we mainly want to do this for retry events, but it doesn't\n // hurt to do it on the first try\n this.hostedFieldConfig.hostedFieldContainer.resetHostedFields();\n try {\n // The hosted fields have a 60 second timeout internally, but braintree\n // support recommended setting a shorter timeout because 99% of users\n // load the hosted fields in under 4 seconds and 99.9% with 18 seconds.\n // What we're doing here is creating a \"timeout\" promise\n // and a \"create hosted fields\" promise and doing a `Promise.race()` to\n // resolve when the first one finishes. If the timeout finishes first,\n // we throw an error to trigger the retry logic. If the hosted fields\n // finishes first, we cancel the timeout promise since we're done.\n let timeout: number;\n\n const timeoutPromise = new Promise<void>((resolve, reject) => {\n timeout = window.setTimeout(() => {\n const error = new DonationFormError('Timeout loading Hosted Fields');\n reject(error);\n }, this.loadTimeout);\n });\n\n const hostedFieldsPromise = new Promise<braintree.HostedFields | undefined>(\n async (resolve, reject) => {\n try {\n const fields = await this.hostedFieldClient.create({\n client: braintreeClient,\n styles: this.hostedFieldConfig.hostedFieldStyle,\n fields: this.hostedFieldConfig.hostedFieldFieldOptions,\n });\n // clear the timeout when this finishes so we don't also get the timeout rejection\n window.clearTimeout(timeout);\n resolve(fields);\n } catch (error) {\n if (error instanceof Error && error.message.includes('Hosted Fields timed out')) {\n // this is the timeout error, so we don't need to do anything\n } else {\n // this is some other error. reject so it bubbles up to Sentry\n reject(error);\n }\n }\n },\n );\n\n const result = await Promise.race([timeoutPromise, hostedFieldsPromise]);\n\n return result as braintree.HostedFields;\n } catch (error) {\n if (retryCount >= this.maxRetryCount) {\n this.emitter.emit('hostedFieldsFailed', error);\n throw error;\n }\n const newRetryCount = retryCount + 1;\n this.emitter.emit('hostedFieldsRetry', newRetryCount);\n return this.createHostedFields(braintreeClient, newRetryCount);\n }\n }\n\n async tokenizeHostedFields(): Promise<braintree.HostedFieldsTokenizePayload | undefined> {\n const hostedFields = await this.instance.get();\n return hostedFields?.tokenize();\n }\n\n markFieldErrors(fields: HostedFieldName[]): void {\n this.hostedFieldConfig.hostedFieldContainer.markFieldErrors(fields);\n }\n\n removeFieldErrors(fields: HostedFieldName[]): void {\n this.hostedFieldConfig.hostedFieldContainer.removeFieldErrors(fields);\n }\n\n showErrorMessage(message?: string): void {\n this.hostedFieldConfig.hostedFieldContainer.showErrorMessage(message);\n }\n\n hideErrorMessage(): void {\n this.hostedFieldConfig.hostedFieldContainer.hideErrorMessage();\n }\n}\n"]}
@@ -1,11 +1,11 @@
1
- import { HostedFieldContainerInterface } from './hosted-field-container';
2
- export declare class HostedFieldConfiguration {
3
- hostedFieldStyle: Record<string, Record<string, string>>;
4
- hostedFieldFieldOptions: braintree.HostedFieldFieldOptions;
5
- hostedFieldContainer: HostedFieldContainerInterface;
6
- constructor(options: {
7
- hostedFieldStyle: Record<string, Record<string, string>>;
8
- hostedFieldFieldOptions: braintree.HostedFieldFieldOptions;
9
- hostedFieldContainer: HostedFieldContainerInterface;
10
- });
11
- }
1
+ import { HostedFieldContainerInterface } from './hosted-field-container';
2
+ export declare class HostedFieldConfiguration {
3
+ hostedFieldStyle: Record<string, Record<string, string>>;
4
+ hostedFieldFieldOptions: braintree.HostedFieldFieldOptions;
5
+ hostedFieldContainer: HostedFieldContainerInterface;
6
+ constructor(options: {
7
+ hostedFieldStyle: Record<string, Record<string, string>>;
8
+ hostedFieldFieldOptions: braintree.HostedFieldFieldOptions;
9
+ hostedFieldContainer: HostedFieldContainerInterface;
10
+ });
11
+ }
@@ -1,8 +1,8 @@
1
- export class HostedFieldConfiguration {
2
- constructor(options) {
3
- this.hostedFieldFieldOptions = options.hostedFieldFieldOptions;
4
- this.hostedFieldStyle = options.hostedFieldStyle;
5
- this.hostedFieldContainer = options.hostedFieldContainer;
6
- }
7
- }
1
+ export class HostedFieldConfiguration {
2
+ constructor(options) {
3
+ this.hostedFieldFieldOptions = options.hostedFieldFieldOptions;
4
+ this.hostedFieldStyle = options.hostedFieldStyle;
5
+ this.hostedFieldContainer = options.hostedFieldContainer;
6
+ }
7
+ }
8
8
  //# sourceMappingURL=hosted-field-configuration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hosted-field-configuration.js","sourceRoot":"","sources":["../../../../../src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,wBAAwB;IAOnC,YAAY,OAIX;QACC,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAC/D,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAC3D,CAAC;CACF","sourcesContent":["import { HostedFieldContainerInterface } from './hosted-field-container';\r\n\r\nexport class HostedFieldConfiguration {\r\n hostedFieldStyle: Record<string, Record<string, string>>;\r\n\r\n hostedFieldFieldOptions: braintree.HostedFieldFieldOptions;\r\n\r\n hostedFieldContainer: HostedFieldContainerInterface;\r\n\r\n constructor(options: {\r\n hostedFieldStyle: Record<string, Record<string, string>>;\r\n hostedFieldFieldOptions: braintree.HostedFieldFieldOptions;\r\n hostedFieldContainer: HostedFieldContainerInterface;\r\n }) {\r\n this.hostedFieldFieldOptions = options.hostedFieldFieldOptions;\r\n this.hostedFieldStyle = options.hostedFieldStyle;\r\n this.hostedFieldContainer = options.hostedFieldContainer;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"hosted-field-configuration.js","sourceRoot":"","sources":["../../../../../src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,wBAAwB;IAOnC,YAAY,OAIX;QACC,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAC/D,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAC3D,CAAC;CACF","sourcesContent":["import { HostedFieldContainerInterface } from './hosted-field-container';\n\nexport class HostedFieldConfiguration {\n hostedFieldStyle: Record<string, Record<string, string>>;\n\n hostedFieldFieldOptions: braintree.HostedFieldFieldOptions;\n\n hostedFieldContainer: HostedFieldContainerInterface;\n\n constructor(options: {\n hostedFieldStyle: Record<string, Record<string, string>>;\n hostedFieldFieldOptions: braintree.HostedFieldFieldOptions;\n hostedFieldContainer: HostedFieldContainerInterface;\n }) {\n this.hostedFieldFieldOptions = options.hostedFieldFieldOptions;\n this.hostedFieldStyle = options.hostedFieldStyle;\n this.hostedFieldContainer = options.hostedFieldContainer;\n }\n}\n"]}
@@ -1,34 +1,34 @@
1
- export declare enum HostedFieldName {
2
- Number = "number",
3
- CVV = "cvv",
4
- ExpirationDate = "expirationDate"
5
- }
6
- export interface HostedFieldContainerInterface {
7
- fieldFor(field: HostedFieldName): HTMLDivElement;
8
- markFieldErrors(fields: HostedFieldName[]): void;
9
- removeFieldErrors(fields: HostedFieldName[]): void;
10
- showErrorMessage(message?: string): void;
11
- hideErrorMessage(): void;
12
- /**
13
- * Reset the hosted fields to retry in case of timeout
14
- */
15
- resetHostedFields(): void;
16
- }
17
- export declare class HostedFieldContainer implements HostedFieldContainerInterface {
18
- private number;
19
- private cvv;
20
- private expirationDate;
21
- private errorContainer;
22
- fieldFor(field: HostedFieldName): HTMLDivElement;
23
- markFieldErrors(fields: HostedFieldName[]): void;
24
- removeFieldErrors(fields: HostedFieldName[]): void;
25
- showErrorMessage(message?: string): void;
26
- hideErrorMessage(): void;
27
- resetHostedFields(): void;
28
- constructor(options: {
29
- number: HTMLDivElement;
30
- cvv: HTMLDivElement;
31
- expirationDate: HTMLDivElement;
32
- errorContainer: HTMLDivElement;
33
- });
34
- }
1
+ export declare enum HostedFieldName {
2
+ Number = "number",
3
+ CVV = "cvv",
4
+ ExpirationDate = "expirationDate"
5
+ }
6
+ export interface HostedFieldContainerInterface {
7
+ fieldFor(field: HostedFieldName): HTMLDivElement;
8
+ markFieldErrors(fields: HostedFieldName[]): void;
9
+ removeFieldErrors(fields: HostedFieldName[]): void;
10
+ showErrorMessage(message?: string): void;
11
+ hideErrorMessage(): void;
12
+ /**
13
+ * Reset the hosted fields to retry in case of timeout
14
+ */
15
+ resetHostedFields(): void;
16
+ }
17
+ export declare class HostedFieldContainer implements HostedFieldContainerInterface {
18
+ private number;
19
+ private cvv;
20
+ private expirationDate;
21
+ private errorContainer;
22
+ fieldFor(field: HostedFieldName): HTMLDivElement;
23
+ markFieldErrors(fields: HostedFieldName[]): void;
24
+ removeFieldErrors(fields: HostedFieldName[]): void;
25
+ showErrorMessage(message?: string): void;
26
+ hideErrorMessage(): void;
27
+ resetHostedFields(): void;
28
+ constructor(options: {
29
+ number: HTMLDivElement;
30
+ cvv: HTMLDivElement;
31
+ expirationDate: HTMLDivElement;
32
+ errorContainer: HTMLDivElement;
33
+ });
34
+ }
@@ -1,53 +1,53 @@
1
- export var HostedFieldName;
2
- (function (HostedFieldName) {
3
- HostedFieldName["Number"] = "number";
4
- HostedFieldName["CVV"] = "cvv";
5
- HostedFieldName["ExpirationDate"] = "expirationDate";
6
- })(HostedFieldName || (HostedFieldName = {}));
7
- export class HostedFieldContainer {
8
- constructor(options) {
9
- this.number = options.number;
10
- this.cvv = options.cvv;
11
- this.expirationDate = options.expirationDate;
12
- this.errorContainer = options.errorContainer;
13
- }
14
- fieldFor(field) {
15
- switch (field) {
16
- case HostedFieldName.Number:
17
- return this.number;
18
- case HostedFieldName.CVV:
19
- return this.cvv;
20
- case HostedFieldName.ExpirationDate:
21
- return this.expirationDate;
22
- }
23
- }
24
- markFieldErrors(fields) {
25
- fields.forEach(field => {
26
- const input = this.fieldFor(field);
27
- input.parentElement.error = true;
28
- });
29
- }
30
- removeFieldErrors(fields) {
31
- fields.forEach(field => {
32
- const input = this.fieldFor(field);
33
- input.parentElement.error = false;
34
- });
35
- }
36
- showErrorMessage(message) {
37
- const error = message !== null && message !== void 0 ? message : 'Some payment information below is missing or incorrect.';
38
- this.errorContainer.innerHTML = error;
39
- this.errorContainer.style.display = 'block';
40
- }
41
- hideErrorMessage() {
42
- this.errorContainer.style.display = 'none';
43
- }
44
- resetHostedFields() {
45
- const elements = [this.number, this.cvv, this.expirationDate];
46
- elements.forEach(element => {
47
- while (element.firstChild) {
48
- element.firstChild.remove();
49
- }
50
- });
51
- }
52
- }
1
+ export var HostedFieldName;
2
+ (function (HostedFieldName) {
3
+ HostedFieldName["Number"] = "number";
4
+ HostedFieldName["CVV"] = "cvv";
5
+ HostedFieldName["ExpirationDate"] = "expirationDate";
6
+ })(HostedFieldName || (HostedFieldName = {}));
7
+ export class HostedFieldContainer {
8
+ constructor(options) {
9
+ this.number = options.number;
10
+ this.cvv = options.cvv;
11
+ this.expirationDate = options.expirationDate;
12
+ this.errorContainer = options.errorContainer;
13
+ }
14
+ fieldFor(field) {
15
+ switch (field) {
16
+ case HostedFieldName.Number:
17
+ return this.number;
18
+ case HostedFieldName.CVV:
19
+ return this.cvv;
20
+ case HostedFieldName.ExpirationDate:
21
+ return this.expirationDate;
22
+ }
23
+ }
24
+ markFieldErrors(fields) {
25
+ fields.forEach(field => {
26
+ const input = this.fieldFor(field);
27
+ input.parentElement.error = true;
28
+ });
29
+ }
30
+ removeFieldErrors(fields) {
31
+ fields.forEach(field => {
32
+ const input = this.fieldFor(field);
33
+ input.parentElement.error = false;
34
+ });
35
+ }
36
+ showErrorMessage(message) {
37
+ const error = message !== null && message !== void 0 ? message : 'Some payment information below is missing or incorrect.';
38
+ this.errorContainer.innerHTML = error;
39
+ this.errorContainer.style.display = 'block';
40
+ }
41
+ hideErrorMessage() {
42
+ this.errorContainer.style.display = 'none';
43
+ }
44
+ resetHostedFields() {
45
+ const elements = [this.number, this.cvv, this.expirationDate];
46
+ elements.forEach(element => {
47
+ while (element.firstChild) {
48
+ element.firstChild.remove();
49
+ }
50
+ });
51
+ }
52
+ }
53
53
  //# sourceMappingURL=hosted-field-container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hosted-field-container.js","sourceRoot":"","sources":["../../../../../src/braintree-manager/payment-providers/credit-card/hosted-field-container.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,8BAAW,CAAA;IACX,oDAAiC,CAAA;AACnC,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAcD,MAAM,OAAO,oBAAoB;IAqD/B,YAAY,OAKX;QACC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAC/C,CAAC;IAtDD,QAAQ,CAAC,KAAsB;QAC7B,QAAQ,KAAK,EAAE;YACb,KAAK,eAAe,CAAC,MAAM;gBACzB,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,KAAK,eAAe,CAAC,GAAG;gBACtB,OAAO,IAAI,CAAC,GAAG,CAAC;YAClB,KAAK,eAAe,CAAC,cAAc;gBACjC,OAAO,IAAI,CAAC,cAAc,CAAC;SAC9B;IACH,CAAC;IAED,eAAe,CAAC,MAAyB;QACvC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClC,KAAK,CAAC,aAA6B,CAAC,KAAK,GAAG,IAAI,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,MAAyB;QACzC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClC,KAAK,CAAC,aAA6B,CAAC,KAAK,GAAG,KAAK,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,OAAgB;QAC/B,MAAM,KAAK,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,yDAAyD,CAAC;QACnF,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAC9C,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC7C,CAAC;IAED,iBAAiB;QACf,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9D,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACzB,OAAO,OAAO,CAAC,UAAU,EAAE;gBACzB,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CAaF","sourcesContent":["import { BadgedInput } from '../../../form-elements/badged-input';\r\n\r\nexport enum HostedFieldName {\r\n Number = 'number',\r\n CVV = 'cvv',\r\n ExpirationDate = 'expirationDate',\r\n}\r\n\r\nexport interface HostedFieldContainerInterface {\r\n fieldFor(field: HostedFieldName): HTMLDivElement;\r\n markFieldErrors(fields: HostedFieldName[]): void;\r\n removeFieldErrors(fields: HostedFieldName[]): void;\r\n showErrorMessage(message?: string): void;\r\n hideErrorMessage(): void;\r\n /**\r\n * Reset the hosted fields to retry in case of timeout\r\n */\r\n resetHostedFields(): void;\r\n}\r\n\r\nexport class HostedFieldContainer implements HostedFieldContainerInterface {\r\n private number: HTMLDivElement;\r\n\r\n private cvv: HTMLDivElement;\r\n\r\n private expirationDate: HTMLDivElement;\r\n\r\n private errorContainer: HTMLDivElement;\r\n\r\n fieldFor(field: HostedFieldName): HTMLDivElement {\r\n switch (field) {\r\n case HostedFieldName.Number:\r\n return this.number;\r\n case HostedFieldName.CVV:\r\n return this.cvv;\r\n case HostedFieldName.ExpirationDate:\r\n return this.expirationDate;\r\n }\r\n }\r\n\r\n markFieldErrors(fields: HostedFieldName[]): void {\r\n fields.forEach(field => {\r\n const input = this.fieldFor(field);\r\n (input.parentElement as BadgedInput).error = true;\r\n });\r\n }\r\n\r\n removeFieldErrors(fields: HostedFieldName[]): void {\r\n fields.forEach(field => {\r\n const input = this.fieldFor(field);\r\n (input.parentElement as BadgedInput).error = false;\r\n });\r\n }\r\n\r\n showErrorMessage(message?: string): void {\r\n const error = message ?? 'Some payment information below is missing or incorrect.';\r\n this.errorContainer.innerHTML = error;\r\n this.errorContainer.style.display = 'block';\r\n }\r\n\r\n hideErrorMessage(): void {\r\n this.errorContainer.style.display = 'none';\r\n }\r\n\r\n resetHostedFields(): void {\r\n const elements = [this.number, this.cvv, this.expirationDate];\r\n elements.forEach(element => {\r\n while (element.firstChild) {\r\n element.firstChild.remove();\r\n }\r\n });\r\n }\r\n\r\n constructor(options: {\r\n number: HTMLDivElement;\r\n cvv: HTMLDivElement;\r\n expirationDate: HTMLDivElement;\r\n errorContainer: HTMLDivElement;\r\n }) {\r\n this.number = options.number;\r\n this.cvv = options.cvv;\r\n this.expirationDate = options.expirationDate;\r\n this.errorContainer = options.errorContainer;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"hosted-field-container.js","sourceRoot":"","sources":["../../../../../src/braintree-manager/payment-providers/credit-card/hosted-field-container.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,8BAAW,CAAA;IACX,oDAAiC,CAAA;AACnC,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAcD,MAAM,OAAO,oBAAoB;IAqD/B,YAAY,OAKX;QACC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAC/C,CAAC;IAtDD,QAAQ,CAAC,KAAsB;QAC7B,QAAQ,KAAK,EAAE;YACb,KAAK,eAAe,CAAC,MAAM;gBACzB,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,KAAK,eAAe,CAAC,GAAG;gBACtB,OAAO,IAAI,CAAC,GAAG,CAAC;YAClB,KAAK,eAAe,CAAC,cAAc;gBACjC,OAAO,IAAI,CAAC,cAAc,CAAC;SAC9B;IACH,CAAC;IAED,eAAe,CAAC,MAAyB;QACvC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClC,KAAK,CAAC,aAA6B,CAAC,KAAK,GAAG,IAAI,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,MAAyB;QACzC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClC,KAAK,CAAC,aAA6B,CAAC,KAAK,GAAG,KAAK,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,OAAgB;QAC/B,MAAM,KAAK,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,yDAAyD,CAAC;QACnF,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAC9C,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC7C,CAAC;IAED,iBAAiB;QACf,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9D,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACzB,OAAO,OAAO,CAAC,UAAU,EAAE;gBACzB,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CAaF","sourcesContent":["import { BadgedInput } from '../../../form-elements/badged-input';\n\nexport enum HostedFieldName {\n Number = 'number',\n CVV = 'cvv',\n ExpirationDate = 'expirationDate',\n}\n\nexport interface HostedFieldContainerInterface {\n fieldFor(field: HostedFieldName): HTMLDivElement;\n markFieldErrors(fields: HostedFieldName[]): void;\n removeFieldErrors(fields: HostedFieldName[]): void;\n showErrorMessage(message?: string): void;\n hideErrorMessage(): void;\n /**\n * Reset the hosted fields to retry in case of timeout\n */\n resetHostedFields(): void;\n}\n\nexport class HostedFieldContainer implements HostedFieldContainerInterface {\n private number: HTMLDivElement;\n\n private cvv: HTMLDivElement;\n\n private expirationDate: HTMLDivElement;\n\n private errorContainer: HTMLDivElement;\n\n fieldFor(field: HostedFieldName): HTMLDivElement {\n switch (field) {\n case HostedFieldName.Number:\n return this.number;\n case HostedFieldName.CVV:\n return this.cvv;\n case HostedFieldName.ExpirationDate:\n return this.expirationDate;\n }\n }\n\n markFieldErrors(fields: HostedFieldName[]): void {\n fields.forEach(field => {\n const input = this.fieldFor(field);\n (input.parentElement as BadgedInput).error = true;\n });\n }\n\n removeFieldErrors(fields: HostedFieldName[]): void {\n fields.forEach(field => {\n const input = this.fieldFor(field);\n (input.parentElement as BadgedInput).error = false;\n });\n }\n\n showErrorMessage(message?: string): void {\n const error = message ?? 'Some payment information below is missing or incorrect.';\n this.errorContainer.innerHTML = error;\n this.errorContainer.style.display = 'block';\n }\n\n hideErrorMessage(): void {\n this.errorContainer.style.display = 'none';\n }\n\n resetHostedFields(): void {\n const elements = [this.number, this.cvv, this.expirationDate];\n elements.forEach(element => {\n while (element.firstChild) {\n element.firstChild.remove();\n }\n });\n }\n\n constructor(options: {\n number: HTMLDivElement;\n cvv: HTMLDivElement;\n expirationDate: HTMLDivElement;\n errorContainer: HTMLDivElement;\n }) {\n this.number = options.number;\n this.cvv = options.cvv;\n this.expirationDate = options.expirationDate;\n this.errorContainer = options.errorContainer;\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
- /// <reference types="googlepay" />
2
- import { PromisedSingleton } from '@internetarchive/promised-singleton';
3
- export interface GooglePayHandlerInterface {
4
- paymentsClient: google.payments.api.PaymentsClient;
5
- instance: PromisedSingleton<braintree.GooglePayment>;
6
- isBrowserSupported(): Promise<boolean>;
7
- }
1
+ /// <reference types="googlepay" />
2
+ import { PromisedSingleton } from '@internetarchive/promised-singleton';
3
+ export interface GooglePayHandlerInterface {
4
+ paymentsClient: google.payments.api.PaymentsClient;
5
+ instance: PromisedSingleton<braintree.GooglePayment>;
6
+ isBrowserSupported(): Promise<boolean>;
7
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"google-pay-interface.js","sourceRoot":"","sources":["../../../../src/braintree-manager/payment-providers/google-pay-interface.ts"],"names":[],"mappings":"","sourcesContent":["import { PromisedSingleton } from '@internetarchive/promised-singleton';\r\n\r\nexport interface GooglePayHandlerInterface {\r\n paymentsClient: google.payments.api.PaymentsClient;\r\n instance: PromisedSingleton<braintree.GooglePayment>;\r\n\r\n isBrowserSupported(): Promise<boolean>;\r\n}\r\n"]}
1
+ {"version":3,"file":"google-pay-interface.js","sourceRoot":"","sources":["../../../../src/braintree-manager/payment-providers/google-pay-interface.ts"],"names":[],"mappings":"","sourcesContent":["import { PromisedSingleton } from '@internetarchive/promised-singleton';\n\nexport interface GooglePayHandlerInterface {\n paymentsClient: google.payments.api.PaymentsClient;\n instance: PromisedSingleton<braintree.GooglePayment>;\n\n isBrowserSupported(): Promise<boolean>;\n}\n"]}
@@ -1,18 +1,18 @@
1
- /// <reference types="googlepay" />
2
- import { PromisedSingleton } from '@internetarchive/promised-singleton';
3
- import { BraintreeManagerInterface } from '../braintree-interfaces';
4
- import { GooglePayHandlerInterface } from './google-pay-interface';
5
- export declare class GooglePayHandler implements GooglePayHandlerInterface {
6
- paymentsClient: google.payments.api.PaymentsClient;
7
- instance: PromisedSingleton<braintree.GooglePayment>;
8
- isBrowserSupported(): Promise<boolean>;
9
- constructor(options: {
10
- braintreeManager: BraintreeManagerInterface;
11
- googlePayMerchantId?: string;
12
- googlePayBraintreeClient: braintree.GooglePayment;
13
- googlePaymentsClient: google.payments.api.PaymentsClient;
14
- });
15
- private braintreeManager;
16
- private googlePayMerchantId?;
17
- private googlePayBraintreeClient;
18
- }
1
+ /// <reference types="googlepay" />
2
+ import { PromisedSingleton } from '@internetarchive/promised-singleton';
3
+ import { BraintreeManagerInterface } from '../braintree-interfaces';
4
+ import { GooglePayHandlerInterface } from './google-pay-interface';
5
+ export declare class GooglePayHandler implements GooglePayHandlerInterface {
6
+ paymentsClient: google.payments.api.PaymentsClient;
7
+ instance: PromisedSingleton<braintree.GooglePayment>;
8
+ isBrowserSupported(): Promise<boolean>;
9
+ constructor(options: {
10
+ braintreeManager: BraintreeManagerInterface;
11
+ googlePayMerchantId?: string;
12
+ googlePayBraintreeClient: braintree.GooglePayment;
13
+ googlePaymentsClient: google.payments.api.PaymentsClient;
14
+ });
15
+ private braintreeManager;
16
+ private googlePayMerchantId?;
17
+ private googlePayBraintreeClient;
18
+ }
@@ -1,41 +1,41 @@
1
- import { __awaiter } from "tslib";
2
- import { PromisedSingleton } from '@internetarchive/promised-singleton';
3
- export class GooglePayHandler {
4
- constructor(options) {
5
- this.braintreeManager = options.braintreeManager;
6
- this.googlePayMerchantId = options.googlePayMerchantId;
7
- this.googlePayBraintreeClient = options.googlePayBraintreeClient;
8
- this.paymentsClient = options.googlePaymentsClient;
9
- this.instance = new PromisedSingleton({
10
- generator: () => this.braintreeManager.instance.get().then((braintreeInstance) => {
11
- return this.googlePayBraintreeClient.create({
12
- client: braintreeInstance,
13
- googlePayVersion: 2,
14
- googleMerchantId: this.googlePayMerchantId,
15
- });
16
- }),
17
- });
18
- }
19
- isBrowserSupported() {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- return this.paymentsClient
22
- .isReadyToPay({
23
- // see https://developers.google.com/pay/api/web/reference/object#IsReadyToPayRequest for all options
24
- apiVersion: 2,
25
- apiVersionMinor: 0,
26
- allowedPaymentMethods: [
27
- {
28
- type: 'CARD',
29
- parameters: {
30
- allowedAuthMethods: ['PAN_ONLY'],
31
- allowedCardNetworks: ['AMEX', 'DISCOVER', 'INTERAC', 'JCB', 'MASTERCARD', 'VISA'],
32
- },
33
- },
34
- ],
35
- existingPaymentMethodRequired: false,
36
- })
37
- .then(isReadyToPay => isReadyToPay.result);
38
- });
39
- }
40
- }
1
+ import { __awaiter } from "tslib";
2
+ import { PromisedSingleton } from '@internetarchive/promised-singleton';
3
+ export class GooglePayHandler {
4
+ constructor(options) {
5
+ this.braintreeManager = options.braintreeManager;
6
+ this.googlePayMerchantId = options.googlePayMerchantId;
7
+ this.googlePayBraintreeClient = options.googlePayBraintreeClient;
8
+ this.paymentsClient = options.googlePaymentsClient;
9
+ this.instance = new PromisedSingleton({
10
+ generator: () => this.braintreeManager.instance.get().then((braintreeInstance) => {
11
+ return this.googlePayBraintreeClient.create({
12
+ client: braintreeInstance,
13
+ googlePayVersion: 2,
14
+ googleMerchantId: this.googlePayMerchantId,
15
+ });
16
+ }),
17
+ });
18
+ }
19
+ isBrowserSupported() {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ return this.paymentsClient
22
+ .isReadyToPay({
23
+ // see https://developers.google.com/pay/api/web/reference/object#IsReadyToPayRequest for all options
24
+ apiVersion: 2,
25
+ apiVersionMinor: 0,
26
+ allowedPaymentMethods: [
27
+ {
28
+ type: 'CARD',
29
+ parameters: {
30
+ allowedAuthMethods: ['PAN_ONLY'],
31
+ allowedCardNetworks: ['AMEX', 'DISCOVER', 'INTERAC', 'JCB', 'MASTERCARD', 'VISA'],
32
+ },
33
+ },
34
+ ],
35
+ existingPaymentMethodRequired: false,
36
+ })
37
+ .then(isReadyToPay => isReadyToPay.result);
38
+ });
39
+ }
40
+ }
41
41
  //# sourceMappingURL=google-pay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"google-pay.js","sourceRoot":"","sources":["../../../../src/braintree-manager/payment-providers/google-pay.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAKxE,MAAM,OAAO,gBAAgB;IAyB3B,YAAY,OAKX;QACC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC;QAEnD,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAA0B;YAC7D,SAAS,EAAE,GAAqC,EAAE,CAChD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,iBAAmC,EAAE,EAAE;gBAChF,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;oBAC1C,MAAM,EAAE,iBAAiB;oBACzB,gBAAgB,EAAE,CAAC;oBACnB,gBAAgB,EAAE,IAAI,CAAC,mBAAmB;iBAC3C,CAAC,CAAC;YACL,CAAC,CAAC;SACL,CAAC,CAAC;IACL,CAAC;IAzCK,kBAAkB;;YACtB,OAAO,IAAI,CAAC,cAAc;iBACvB,YAAY,CAAC;gBACZ,qGAAqG;gBACrG,UAAU,EAAE,CAAC;gBACb,eAAe,EAAE,CAAC;gBAClB,qBAAqB,EAAE;oBACrB;wBACE,IAAI,EAAE,MAAM;wBACZ,UAAU,EAAE;4BACV,kBAAkB,EAAE,CAAC,UAAU,CAAC;4BAChC,mBAAmB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC;yBAClF;qBACF;iBACF;gBACD,6BAA6B,EAAE,KAAK;aACrC,CAAC;iBACD,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;KAAA;CA8BF","sourcesContent":["import { PromisedSingleton } from '@internetarchive/promised-singleton';\r\n\r\nimport { BraintreeManagerInterface } from '../braintree-interfaces';\r\nimport { GooglePayHandlerInterface } from './google-pay-interface';\r\n\r\nexport class GooglePayHandler implements GooglePayHandlerInterface {\r\n paymentsClient: google.payments.api.PaymentsClient;\r\n\r\n instance: PromisedSingleton<braintree.GooglePayment>;\r\n\r\n async isBrowserSupported(): Promise<boolean> {\r\n return this.paymentsClient\r\n .isReadyToPay({\r\n // see https://developers.google.com/pay/api/web/reference/object#IsReadyToPayRequest for all options\r\n apiVersion: 2,\r\n apiVersionMinor: 0,\r\n allowedPaymentMethods: [\r\n {\r\n type: 'CARD',\r\n parameters: {\r\n allowedAuthMethods: ['PAN_ONLY'],\r\n allowedCardNetworks: ['AMEX', 'DISCOVER', 'INTERAC', 'JCB', 'MASTERCARD', 'VISA'],\r\n },\r\n },\r\n ],\r\n existingPaymentMethodRequired: false,\r\n })\r\n .then(isReadyToPay => isReadyToPay.result);\r\n }\r\n\r\n constructor(options: {\r\n braintreeManager: BraintreeManagerInterface;\r\n googlePayMerchantId?: string;\r\n googlePayBraintreeClient: braintree.GooglePayment;\r\n googlePaymentsClient: google.payments.api.PaymentsClient;\r\n }) {\r\n this.braintreeManager = options.braintreeManager;\r\n this.googlePayMerchantId = options.googlePayMerchantId;\r\n this.googlePayBraintreeClient = options.googlePayBraintreeClient;\r\n this.paymentsClient = options.googlePaymentsClient;\r\n\r\n this.instance = new PromisedSingleton<braintree.GooglePayment>({\r\n generator: (): Promise<braintree.GooglePayment> =>\r\n this.braintreeManager.instance.get().then((braintreeInstance: braintree.Client) => {\r\n return this.googlePayBraintreeClient.create({\r\n client: braintreeInstance,\r\n googlePayVersion: 2,\r\n googleMerchantId: this.googlePayMerchantId,\r\n });\r\n }),\r\n });\r\n }\r\n\r\n private braintreeManager: BraintreeManagerInterface;\r\n\r\n private googlePayMerchantId?: string;\r\n\r\n private googlePayBraintreeClient: braintree.GooglePayment;\r\n}\r\n"]}
1
+ {"version":3,"file":"google-pay.js","sourceRoot":"","sources":["../../../../src/braintree-manager/payment-providers/google-pay.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAKxE,MAAM,OAAO,gBAAgB;IAyB3B,YAAY,OAKX;QACC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC;QAEnD,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAA0B;YAC7D,SAAS,EAAE,GAAqC,EAAE,CAChD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,iBAAmC,EAAE,EAAE;gBAChF,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC;oBAC1C,MAAM,EAAE,iBAAiB;oBACzB,gBAAgB,EAAE,CAAC;oBACnB,gBAAgB,EAAE,IAAI,CAAC,mBAAmB;iBAC3C,CAAC,CAAC;YACL,CAAC,CAAC;SACL,CAAC,CAAC;IACL,CAAC;IAzCK,kBAAkB;;YACtB,OAAO,IAAI,CAAC,cAAc;iBACvB,YAAY,CAAC;gBACZ,qGAAqG;gBACrG,UAAU,EAAE,CAAC;gBACb,eAAe,EAAE,CAAC;gBAClB,qBAAqB,EAAE;oBACrB;wBACE,IAAI,EAAE,MAAM;wBACZ,UAAU,EAAE;4BACV,kBAAkB,EAAE,CAAC,UAAU,CAAC;4BAChC,mBAAmB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC;yBAClF;qBACF;iBACF;gBACD,6BAA6B,EAAE,KAAK;aACrC,CAAC;iBACD,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;KAAA;CA8BF","sourcesContent":["import { PromisedSingleton } from '@internetarchive/promised-singleton';\n\nimport { BraintreeManagerInterface } from '../braintree-interfaces';\nimport { GooglePayHandlerInterface } from './google-pay-interface';\n\nexport class GooglePayHandler implements GooglePayHandlerInterface {\n paymentsClient: google.payments.api.PaymentsClient;\n\n instance: PromisedSingleton<braintree.GooglePayment>;\n\n async isBrowserSupported(): Promise<boolean> {\n return this.paymentsClient\n .isReadyToPay({\n // see https://developers.google.com/pay/api/web/reference/object#IsReadyToPayRequest for all options\n apiVersion: 2,\n apiVersionMinor: 0,\n allowedPaymentMethods: [\n {\n type: 'CARD',\n parameters: {\n allowedAuthMethods: ['PAN_ONLY'],\n allowedCardNetworks: ['AMEX', 'DISCOVER', 'INTERAC', 'JCB', 'MASTERCARD', 'VISA'],\n },\n },\n ],\n existingPaymentMethodRequired: false,\n })\n .then(isReadyToPay => isReadyToPay.result);\n }\n\n constructor(options: {\n braintreeManager: BraintreeManagerInterface;\n googlePayMerchantId?: string;\n googlePayBraintreeClient: braintree.GooglePayment;\n googlePaymentsClient: google.payments.api.PaymentsClient;\n }) {\n this.braintreeManager = options.braintreeManager;\n this.googlePayMerchantId = options.googlePayMerchantId;\n this.googlePayBraintreeClient = options.googlePayBraintreeClient;\n this.paymentsClient = options.googlePaymentsClient;\n\n this.instance = new PromisedSingleton<braintree.GooglePayment>({\n generator: (): Promise<braintree.GooglePayment> =>\n this.braintreeManager.instance.get().then((braintreeInstance: braintree.Client) => {\n return this.googlePayBraintreeClient.create({\n client: braintreeInstance,\n googlePayVersion: 2,\n googleMerchantId: this.googlePayMerchantId,\n });\n }),\n });\n }\n\n private braintreeManager: BraintreeManagerInterface;\n\n private googlePayMerchantId?: string;\n\n private googlePayBraintreeClient: braintree.GooglePayment;\n}\n"]}