@internetarchive/donation-form 0.5.17 → 0.5.18-alpha.1
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.
- package/LICENSE +661 -661
- package/README.md +115 -115
- package/dist/demo/braintree-endpoint-manager.d.ts +9 -9
- package/dist/demo/braintree-endpoint-manager.js +45 -45
- package/dist/demo/braintree-endpoint-manager.js.map +1 -1
- package/dist/demo/demo-analytics-handler.d.ts +17 -17
- package/dist/demo/demo-analytics-handler.js +13 -13
- package/dist/demo/demo-analytics-handler.js.map +1 -1
- package/dist/demo/submit-form-with.d.ts +7 -7
- package/dist/demo/submit-form-with.js +21 -21
- package/dist/demo/submit-form-with.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/src/braintree-manager/braintree-interfaces.d.ts +147 -147
- package/dist/src/braintree-manager/braintree-interfaces.js +5 -5
- package/dist/src/braintree-manager/braintree-interfaces.js.map +1 -1
- package/dist/src/braintree-manager/braintree-manager.d.ts +124 -124
- package/dist/src/braintree-manager/braintree-manager.js +149 -149
- package/dist/src/braintree-manager/braintree-manager.js.map +1 -1
- package/dist/src/braintree-manager/payment-clients.d.ts +47 -47
- package/dist/src/braintree-manager/payment-clients.js +116 -116
- package/dist/src/braintree-manager/payment-clients.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-interface.d.ts +8 -8
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-delegate.d.ts +6 -6
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-delegate.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.d.ts +10 -10
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.d.ts +21 -21
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.js +99 -99
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.d.ts +10 -10
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.js +12 -12
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay.d.ts +20 -20
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay.js +71 -71
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/credit-card/credit-card-interface.d.ts +16 -16
- package/dist/src/braintree-manager/payment-providers/credit-card/credit-card-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.d.ts +29 -29
- package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.js +99 -99
- package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.d.ts +11 -11
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.js +7 -7
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.d.ts +34 -34
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.js +52 -52
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/google-pay-interface.d.ts +7 -7
- package/dist/src/braintree-manager/payment-providers/google-pay-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/google-pay.d.ts +18 -18
- package/dist/src/braintree-manager/payment-providers/google-pay.js +40 -40
- package/dist/src/braintree-manager/payment-providers/google-pay.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.d.ts +145 -145
- package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.js +60 -60
- package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/paypal/paypal-interface.d.ts +11 -11
- package/dist/src/braintree-manager/payment-providers/paypal/paypal-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/paypal/paypal.d.ts +23 -23
- package/dist/src/braintree-manager/payment-providers/paypal/paypal.js +46 -46
- package/dist/src/braintree-manager/payment-providers/paypal/paypal.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/venmo-interface.d.ts +6 -6
- package/dist/src/braintree-manager/payment-providers/venmo-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/venmo.d.ts +28 -28
- package/dist/src/braintree-manager/payment-providers/venmo.js +50 -50
- package/dist/src/braintree-manager/payment-providers/venmo.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers-interface.d.ts +16 -16
- package/dist/src/braintree-manager/payment-providers-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers.d.ts +45 -45
- package/dist/src/braintree-manager/payment-providers.js +105 -105
- package/dist/src/braintree-manager/payment-providers.js.map +1 -1
- package/dist/src/donation-form-controller.d.ts +116 -116
- package/dist/src/donation-form-controller.js +562 -562
- package/dist/src/donation-form-controller.js.map +1 -1
- package/dist/src/donation-form-error.d.ts +3 -3
- package/dist/src/donation-form-error.js +6 -6
- package/dist/src/donation-form-error.js.map +1 -1
- package/dist/src/donation-form.d.ts +120 -120
- package/dist/src/donation-form.js +530 -530
- package/dist/src/donation-form.js.map +1 -1
- package/dist/src/form-elements/badged-input.d.ts +32 -32
- package/dist/src/form-elements/badged-input.js +124 -124
- package/dist/src/form-elements/badged-input.js.map +1 -1
- package/dist/src/form-elements/contact-form/autocomplete-field-options.d.ts +1 -1
- package/dist/src/form-elements/contact-form/autocomplete-field-options.js.map +1 -1
- package/dist/src/form-elements/contact-form/contact-form.d.ts +53 -53
- package/dist/src/form-elements/contact-form/contact-form.js +428 -428
- package/dist/src/form-elements/contact-form/contact-form.js.map +1 -1
- package/dist/src/form-elements/contact-form/countries.d.ts +3 -3
- package/dist/src/form-elements/contact-form/countries.js +252 -252
- package/dist/src/form-elements/contact-form/countries.js.map +1 -1
- package/dist/src/form-elements/header/donation-form-header.d.ts +27 -27
- package/dist/src/form-elements/header/donation-form-header.js +97 -97
- package/dist/src/form-elements/header/donation-form-header.js.map +1 -1
- package/dist/src/form-elements/header/donation-summary.d.ts +11 -11
- package/dist/src/form-elements/header/donation-summary.js +57 -57
- package/dist/src/form-elements/header/donation-summary.js.map +1 -1
- package/dist/src/form-elements/payment-selector.d.ts +25 -25
- package/dist/src/form-elements/payment-selector.js +286 -286
- package/dist/src/form-elements/payment-selector.js.map +1 -1
- package/dist/src/form-elements/total-amount.d.ts +8 -8
- package/dist/src/form-elements/total-amount.js +47 -47
- package/dist/src/form-elements/total-amount.js.map +1 -1
- package/dist/src/modals/confirm-donation-modal-content.d.ts +31 -31
- package/dist/src/modals/confirm-donation-modal-content.js +168 -168
- package/dist/src/modals/confirm-donation-modal-content.js.map +1 -1
- package/dist/src/modals/error-modal-content.d.ts +14 -14
- package/dist/src/modals/error-modal-content.js +49 -49
- package/dist/src/modals/error-modal-content.js.map +1 -1
- package/dist/src/modals/upsell-modal-content.d.ts +32 -32
- package/dist/src/modals/upsell-modal-content.js +294 -294
- package/dist/src/modals/upsell-modal-content.js.map +1 -1
- package/dist/src/payment-flow-handlers/donation-flow-modal-manager.d.ts +181 -181
- package/dist/src/payment-flow-handlers/donation-flow-modal-manager.js +252 -252
- package/dist/src/payment-flow-handlers/donation-flow-modal-manager.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.d.ts +21 -21
- package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.js +76 -76
- package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.d.ts +70 -70
- package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.js +140 -140
- package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.d.ts +22 -22
- package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.js +74 -74
- package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.d.ts +52 -52
- package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.js +239 -239
- package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/venmo-flow-handler.d.ts +30 -30
- package/dist/src/payment-flow-handlers/handlers/venmo-flow-handler.js +89 -89
- package/dist/src/payment-flow-handlers/handlers/venmo-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.d.ts +75 -75
- package/dist/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.js +94 -94
- package/dist/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/payment-flow-handlers.d.ts +111 -111
- package/dist/src/payment-flow-handlers/payment-flow-handlers.js +107 -107
- package/dist/src/payment-flow-handlers/payment-flow-handlers.js.map +1 -1
- package/dist/src/recaptcha-manager/recaptcha-manager.d.ts +48 -48
- package/dist/src/recaptcha-manager/recaptcha-manager.js +88 -88
- package/dist/src/recaptcha-manager/recaptcha-manager.js.map +1 -1
- package/dist/src/util/promisedSleep.d.ts +1 -1
- package/dist/src/util/promisedSleep.js +3 -3
- package/dist/src/util/promisedSleep.js.map +1 -1
- package/dist/test/helpers/fillInContactForm.d.ts +2 -2
- package/dist/test/helpers/fillInContactForm.js +19 -19
- package/dist/test/helpers/fillInContactForm.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-applepay-flow-handler.d.ts +7 -7
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-applepay-flow-handler.js +9 -9
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-applepay-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.d.ts +15 -15
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.js +32 -32
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-googlepay-flow-handler.d.ts +9 -9
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-googlepay-flow-handler.js +15 -15
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-googlepay-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-paypal-flow-handler.d.ts +15 -15
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-paypal-flow-handler.js +30 -30
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-paypal-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-venmo-flow-handler.d.ts +9 -9
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-venmo-flow-handler.js +17 -17
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-venmo-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/mock-payment-flow-handlers.d.ts +30 -30
- package/dist/test/mocks/flow-handlers/mock-payment-flow-handlers.js +29 -29
- package/dist/test/mocks/flow-handlers/mock-payment-flow-handlers.js.map +1 -1
- package/dist/test/mocks/mock-braintree-manager.d.ts +45 -45
- package/dist/test/mocks/mock-braintree-manager.js +71 -71
- package/dist/test/mocks/mock-braintree-manager.js.map +1 -1
- package/dist/test/mocks/mock-donation-info.d.ts +4 -4
- package/dist/test/mocks/mock-donation-info.js +10 -10
- package/dist/test/mocks/mock-donation-info.js.map +1 -1
- package/dist/test/mocks/mock-endpoint-manager.d.ts +12 -12
- package/dist/test/mocks/mock-endpoint-manager.js +19 -19
- package/dist/test/mocks/mock-endpoint-manager.js.map +1 -1
- package/dist/test/mocks/mock-hosted-fields-config.d.ts +4 -4
- package/dist/test/mocks/mock-hosted-fields-config.js +37 -37
- package/dist/test/mocks/mock-hosted-fields-config.js.map +1 -1
- package/dist/test/mocks/mock-hosted-fields-container.d.ts +13 -13
- package/dist/test/mocks/mock-hosted-fields-container.js +27 -27
- package/dist/test/mocks/mock-hosted-fields-container.js.map +1 -1
- package/dist/test/mocks/mock-lazy-loader.d.ts +15 -15
- package/dist/test/mocks/mock-lazy-loader.js +20 -20
- package/dist/test/mocks/mock-lazy-loader.js.map +1 -1
- package/dist/test/mocks/mock-modal-manager.d.ts +17 -17
- package/dist/test/mocks/mock-modal-manager.js +26 -26
- package/dist/test/mocks/mock-modal-manager.js.map +1 -1
- package/dist/test/mocks/mock-payment-clients.d.ts +29 -29
- package/dist/test/mocks/mock-payment-clients.js +78 -78
- package/dist/test/mocks/mock-payment-clients.js.map +1 -1
- package/dist/test/mocks/mock-paypal-button-renderer.d.ts +5 -5
- package/dist/test/mocks/mock-paypal-button-renderer.js +6 -6
- package/dist/test/mocks/mock-paypal-button-renderer.js.map +1 -1
- package/dist/test/mocks/mock-recaptcha-manager.d.ts +7 -7
- package/dist/test/mocks/mock-recaptcha-manager.js +14 -14
- package/dist/test/mocks/mock-recaptcha-manager.js.map +1 -1
- package/dist/test/mocks/models/mock-billing-info.d.ts +2 -2
- package/dist/test/mocks/models/mock-billing-info.js +9 -9
- package/dist/test/mocks/models/mock-billing-info.js.map +1 -1
- package/dist/test/mocks/models/mock-custom-fields.d.ts +2 -2
- package/dist/test/mocks/models/mock-custom-fields.js +7 -7
- package/dist/test/mocks/models/mock-custom-fields.js.map +1 -1
- package/dist/test/mocks/models/mock-customer-info.d.ts +2 -2
- package/dist/test/mocks/models/mock-customer-info.js +6 -6
- package/dist/test/mocks/models/mock-customer-info.js.map +1 -1
- package/dist/test/mocks/models/mock-donation-request.d.ts +2 -2
- package/dist/test/mocks/models/mock-donation-request.js +18 -18
- package/dist/test/mocks/models/mock-donation-request.js.map +1 -1
- package/dist/test/mocks/models/mock-success-response.d.ts +2 -2
- package/dist/test/mocks/models/mock-success-response.js +14 -14
- package/dist/test/mocks/models/mock-success-response.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-client.d.ts +21 -21
- package/dist/test/mocks/payment-clients/mock-applepay-client.js +72 -72
- package/dist/test/mocks/payment-clients/mock-applepay-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-payment.d.ts +6 -6
- package/dist/test/mocks/payment-clients/mock-applepay-payment.js +42 -42
- package/dist/test/mocks/payment-clients/mock-applepay-payment.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.d.ts +22 -22
- package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.js +35 -35
- package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-session.d.ts +30 -30
- package/dist/test/mocks/payment-clients/mock-applepay-session.js +52 -52
- package/dist/test/mocks/payment-clients/mock-applepay-session.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.d.ts +10 -10
- package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.js +12 -12
- package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.d.ts +22 -22
- package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.js +34 -34
- package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-braintree-client.d.ts +14 -14
- package/dist/test/mocks/payment-clients/mock-braintree-client.js +19 -19
- package/dist/test/mocks/payment-clients/mock-braintree-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-data-collector.d.ts +11 -11
- package/dist/test/mocks/payment-clients/mock-data-collector.js +17 -17
- package/dist/test/mocks/payment-clients/mock-data-collector.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-googlepay-client.d.ts +22 -22
- package/dist/test/mocks/payment-clients/mock-googlepay-client.js +42 -42
- package/dist/test/mocks/payment-clients/mock-googlepay-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-googlepay-library.d.ts +10 -10
- package/dist/test/mocks/payment-clients/mock-googlepay-library.js +22 -22
- package/dist/test/mocks/payment-clients/mock-googlepay-library.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-grecaptcha.d.ts +23 -23
- package/dist/test/mocks/payment-clients/mock-grecaptcha.js +62 -62
- package/dist/test/mocks/payment-clients/mock-grecaptcha.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfields-client.d.ts +33 -33
- package/dist/test/mocks/payment-clients/mock-hostedfields-client.js +54 -54
- package/dist/test/mocks/payment-clients/mock-hostedfields-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfieldstateobject-generator.d.ts +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfieldstateobject-generator.js +50 -50
- package/dist/test/mocks/payment-clients/mock-hostedfieldstateobject-generator.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.d.ts +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.js +13 -13
- package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-paypal-client.d.ts +23 -23
- package/dist/test/mocks/payment-clients/mock-paypal-client.js +62 -62
- package/dist/test/mocks/payment-clients/mock-paypal-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-paypal-library.d.ts +4 -4
- package/dist/test/mocks/payment-clients/mock-paypal-library.js +9 -9
- package/dist/test/mocks/payment-clients/mock-paypal-library.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-venmo-client.d.ts +22 -22
- package/dist/test/mocks/payment-clients/mock-venmo-client.js +36 -36
- package/dist/test/mocks/payment-clients/mock-venmo-client.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-datasource-delegate.d.ts +10 -10
- package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-datasource-delegate.js +14 -14
- package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-datasource-delegate.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-handler.d.ts +9 -9
- package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-handler.js +19 -19
- package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.d.ts +18 -18
- package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.js +41 -41
- package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.d.ts +8 -8
- package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.js +16 -16
- package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.d.ts +28 -28
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.js +52 -52
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.d.ts +11 -11
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.js +37 -37
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-handler.d.ts +12 -12
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-handler.js +15 -15
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-venmo-handler.d.ts +7 -7
- package/dist/test/mocks/payment-providers/individual-providers/mock-venmo-handler.js +22 -22
- package/dist/test/mocks/payment-providers/individual-providers/mock-venmo-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/mock-payment-providers.d.ts +21 -21
- package/dist/test/mocks/payment-providers/mock-payment-providers.js +45 -45
- package/dist/test/mocks/payment-providers/mock-payment-providers.js.map +1 -1
- package/dist/test/tests/braintree-manager.test.d.ts +1 -1
- package/dist/test/tests/braintree-manager.test.js +166 -166
- package/dist/test/tests/braintree-manager.test.js.map +1 -1
- package/dist/test/tests/donation-form-controller.test.d.ts +1 -1
- package/dist/test/tests/donation-form-controller.test.js +188 -188
- package/dist/test/tests/donation-form-controller.test.js.map +1 -1
- package/dist/test/tests/donation-form.test.d.ts +1 -1
- package/dist/test/tests/donation-form.test.js +109 -109
- package/dist/test/tests/donation-form.test.js.map +1 -1
- package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.d.ts +1 -1
- package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.js +216 -216
- package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.js.map +1 -1
- package/dist/test/tests/form-elements/donation-summary.test.d.ts +1 -1
- package/dist/test/tests/form-elements/donation-summary.test.js +36 -36
- package/dist/test/tests/form-elements/donation-summary.test.js.map +1 -1
- package/dist/test/tests/form-elements/payment-selector.test.d.ts +1 -1
- package/dist/test/tests/form-elements/payment-selector.test.js +69 -69
- package/dist/test/tests/form-elements/payment-selector.test.js.map +1 -1
- package/dist/test/tests/modals/error-modal-content.test.d.ts +1 -1
- package/dist/test/tests/modals/error-modal-content.test.js +14 -14
- package/dist/test/tests/modals/error-modal-content.test.js.map +1 -1
- package/dist/test/tests/modals/upsell-modal-content.test.d.ts +1 -1
- package/dist/test/tests/modals/upsell-modal-content.test.js +163 -163
- package/dist/test/tests/modals/upsell-modal-content.test.js.map +1 -1
- package/dist/test/tests/models/donation-payment-info.test.d.ts +1 -1
- package/dist/test/tests/models/donation-payment-info.test.js +74 -74
- package/dist/test/tests/models/donation-payment-info.test.js.map +1 -1
- package/dist/test/tests/payment-clients.test.d.ts +1 -1
- package/dist/test/tests/payment-clients.test.js +130 -130
- package/dist/test/tests/payment-clients.test.js.map +1 -1
- package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.js +160 -160
- package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.js.map +1 -1
- package/dist/test/tests/payment-providers/applepay-sessionmanager.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/applepay-sessionmanager.test.js +36 -36
- package/dist/test/tests/payment-providers/applepay-sessionmanager.test.js.map +1 -1
- package/dist/test/tests/payment-providers/applepay.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/applepay.test.js +78 -78
- package/dist/test/tests/payment-providers/applepay.test.js.map +1 -1
- package/dist/test/tests/payment-providers/creditcard.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/creditcard.test.js +190 -190
- package/dist/test/tests/payment-providers/creditcard.test.js.map +1 -1
- package/dist/test/tests/payment-providers/googlepay.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/googlepay.test.js +48 -48
- package/dist/test/tests/payment-providers/googlepay.test.js.map +1 -1
- package/dist/test/tests/payment-providers/payment-providers.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/payment-providers.test.js +38 -38
- package/dist/test/tests/payment-providers/payment-providers.test.js.map +1 -1
- package/dist/test/tests/payment-providers/paypal-button-datasource.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/paypal-button-datasource.test.js +162 -162
- package/dist/test/tests/payment-providers/paypal-button-datasource.test.js.map +1 -1
- package/dist/test/tests/payment-providers/paypal.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/paypal.test.js +38 -38
- package/dist/test/tests/payment-providers/paypal.test.js.map +1 -1
- package/dist/test/tests/payment-providers/venmo.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/venmo.test.js +77 -77
- package/dist/test/tests/payment-providers/venmo.test.js.map +1 -1
- package/dist/test/tests/recaptcha-manager.test.d.ts +1 -1
- package/dist/test/tests/recaptcha-manager.test.js +70 -70
- package/dist/test/tests/recaptcha-manager.test.js.map +1 -1
- package/package.json +101 -101
- package/src/@types/analytics-handler/index.d.ts +8 -8
- package/src/@types/braintree-web/LICENSE +21 -21
- package/src/@types/braintree-web/index.d.ts +93 -93
- package/src/@types/braintree-web/modules/american-express.d.ts +50 -50
- package/src/@types/braintree-web/modules/apple-pay.d.ts +213 -213
- package/src/@types/braintree-web/modules/client.d.ts +103 -103
- package/src/@types/braintree-web/modules/core.d.ts +34 -34
- package/src/@types/braintree-web/modules/data-collector.d.ts +13 -13
- package/src/@types/braintree-web/modules/google-payment.d.ts +269 -269
- package/src/@types/braintree-web/modules/hosted-fields.d.ts +366 -366
- package/src/@types/braintree-web/modules/paypal-checkout.d.ts +262 -262
- package/src/@types/braintree-web/modules/paypal.d.ts +177 -177
- package/src/@types/braintree-web/modules/three-d-secure.d.ts +141 -141
- package/src/@types/braintree-web/modules/unionpay.d.ts +224 -224
- package/src/@types/braintree-web/modules/us-bank-account.d.ts +81 -81
- package/src/@types/braintree-web/modules/venmo.d.ts +110 -110
- package/src/@types/braintree-web/package.json +64 -64
- package/src/@types/paypal-checkout-components/LICENSE +21 -21
- package/src/@types/paypal-checkout-components/index.d.ts +67 -67
- package/src/@types/paypal-checkout-components/modules/button.d.ts +50 -50
- package/src/@types/paypal-checkout-components/modules/callback-data.d.ts +244 -244
- package/src/@types/paypal-checkout-components/modules/configuration.d.ts +114 -114
- package/src/@types/paypal-checkout-components/package.json +58 -58
- package/src/braintree-manager/braintree-interfaces.ts +172 -172
- package/src/braintree-manager/braintree-manager.ts +283 -283
- package/src/braintree-manager/payment-clients.ts +148 -148
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-interface.ts +13 -13
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-delegate.ts +8 -8
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.ts +10 -10
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.ts +119 -119
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.ts +21 -21
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay.ts +98 -98
- package/src/braintree-manager/payment-providers/credit-card/credit-card-interface.ts +21 -21
- package/src/braintree-manager/payment-providers/credit-card/credit-card.ts +130 -130
- package/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.ts +19 -19
- package/src/braintree-manager/payment-providers/credit-card/hosted-field-container.ts +85 -85
- package/src/braintree-manager/payment-providers/google-pay-interface.ts +8 -8
- package/src/braintree-manager/payment-providers/google-pay.ts +59 -59
- package/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.ts +218 -218
- package/src/braintree-manager/payment-providers/paypal/paypal-interface.ts +13 -13
- package/src/braintree-manager/payment-providers/paypal/paypal.ts +78 -78
- package/src/braintree-manager/payment-providers/venmo-interface.ts +8 -8
- package/src/braintree-manager/payment-providers/venmo.ts +67 -67
- package/src/braintree-manager/payment-providers-interface.ts +25 -25
- package/src/braintree-manager/payment-providers.ts +147 -147
- package/src/donation-form-controller.ts +619 -619
- package/src/donation-form-error.ts +6 -6
- package/src/donation-form.ts +566 -566
- package/src/form-elements/badged-input.ts +113 -113
- package/src/form-elements/contact-form/autocomplete-field-options.ts +63 -63
- package/src/form-elements/contact-form/contact-form.ts +427 -427
- package/src/form-elements/contact-form/countries.ts +252 -252
- package/src/form-elements/header/donation-form-header.ts +100 -100
- package/src/form-elements/header/donation-summary.ts +61 -61
- package/src/form-elements/payment-selector.ts +293 -293
- package/src/form-elements/total-amount.ts +46 -46
- package/src/modals/confirm-donation-modal-content.ts +160 -160
- package/src/modals/error-modal-content.ts +48 -48
- package/src/modals/upsell-modal-content.ts +294 -294
- package/src/payment-flow-handlers/donation-flow-modal-manager.ts +450 -450
- package/src/payment-flow-handlers/handlers/applepay-flow-handler.ts +108 -108
- package/src/payment-flow-handlers/handlers/creditcard-flow-handler.ts +231 -231
- package/src/payment-flow-handlers/handlers/googlepay-flow-handler.ts +113 -113
- package/src/payment-flow-handlers/handlers/paypal-flow-handler.ts +332 -332
- package/src/payment-flow-handlers/handlers/venmo-flow-handler.ts +118 -118
- package/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.ts +127 -127
- package/src/payment-flow-handlers/payment-flow-handlers.ts +218 -218
- package/src/recaptcha-manager/recaptcha-manager.ts +123 -123
- package/src/util/promisedSleep.ts +3 -3
- package/dist/test/mocks/mock-analytics-handler.d.ts +0 -8
- package/dist/test/mocks/mock-analytics-handler.js +0 -10
- package/dist/test/mocks/mock-analytics-handler.js.map +0 -1
|
@@ -1,145 +1,145 @@
|
|
|
1
|
-
import { DonationPaymentInfo } from '@internetarchive/donation-form-data-models';
|
|
2
|
-
/**
|
|
3
|
-
* PayPayButtonDataSource is responsible for communicating with the PayPal button.
|
|
4
|
-
*
|
|
5
|
-
* The PayPal button cannot live in the ShadowDOM so we have to instantiate it at the
|
|
6
|
-
* top of the DOM and it lives in the global sphere. This makes it difficult to communicate
|
|
7
|
-
* with it directly. The PayPalButtonDataSource provides an object that we can pass around
|
|
8
|
-
* that hooks into all of the PayPal button's callbacks and provides callbacks to its
|
|
9
|
-
* delegate that is interested in the various events.
|
|
10
|
-
*
|
|
11
|
-
* @export
|
|
12
|
-
* @interface PayPalButtonDataSourceInterface
|
|
13
|
-
*/
|
|
14
|
-
export interface PayPalButtonDataSourceInterface {
|
|
15
|
-
/**
|
|
16
|
-
* The delegate to inform about button events
|
|
17
|
-
*
|
|
18
|
-
* @type {PayPalButtonDataSourceDelegate}
|
|
19
|
-
* @memberof PayPalButtonDataSourceInterface
|
|
20
|
-
*/
|
|
21
|
-
delegate?: PayPalButtonDataSourceDelegate;
|
|
22
|
-
/**
|
|
23
|
-
* The Donation Info associated with this button.
|
|
24
|
-
*
|
|
25
|
-
* Since the user initiates the checkout flow from the button itself (not programatically by us),
|
|
26
|
-
* we need to have up-to-date donation information so whenever the user updates donation info
|
|
27
|
-
* from the form, we update this.
|
|
28
|
-
*
|
|
29
|
-
* @type {DonationPaymentInfo}
|
|
30
|
-
* @memberof PayPalButtonDataSourceInterface
|
|
31
|
-
*/
|
|
32
|
-
donationInfo: DonationPaymentInfo;
|
|
33
|
-
/**
|
|
34
|
-
* The payment has been started by the user (they clicked the PayPal button)
|
|
35
|
-
*
|
|
36
|
-
* @returns {Promise<string>}
|
|
37
|
-
* @memberof PayPalButtonDataSourceInterface
|
|
38
|
-
*/
|
|
39
|
-
payment(): Promise<string>;
|
|
40
|
-
/**
|
|
41
|
-
* The user has authorized the donation
|
|
42
|
-
*
|
|
43
|
-
* @param {paypal.AuthorizationData} data
|
|
44
|
-
* @param {object} actions
|
|
45
|
-
* @returns {(Promise<paypal.TokenizePayload | undefined>)}
|
|
46
|
-
* @memberof PayPalButtonDataSourceInterface
|
|
47
|
-
*/
|
|
48
|
-
onAuthorize(data: paypal.AuthorizationData, actions: object): Promise<paypal.TokenizePayload | undefined>;
|
|
49
|
-
/**
|
|
50
|
-
* The user cancelled the donation
|
|
51
|
-
*
|
|
52
|
-
* @param {paypal.CancellationData} data
|
|
53
|
-
* @memberof PayPalButtonDataSourceInterface
|
|
54
|
-
*/
|
|
55
|
-
onCancel(data: paypal.CancellationData): void;
|
|
56
|
-
/**
|
|
57
|
-
* An error occurred
|
|
58
|
-
*
|
|
59
|
-
* @param {string} error
|
|
60
|
-
* @memberof PayPalButtonDataSourceInterface
|
|
61
|
-
*/
|
|
62
|
-
onError(error: string): void;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* The PayPalButtonDataSourceDelegate is an interface for any object interested
|
|
66
|
-
* in events emitted by the paypal button.
|
|
67
|
-
*
|
|
68
|
-
* @export
|
|
69
|
-
* @interface PayPalButtonDataSourceDelegate
|
|
70
|
-
*/
|
|
71
|
-
export interface PayPalButtonDataSourceDelegate {
|
|
72
|
-
/**
|
|
73
|
-
* Payment has been started
|
|
74
|
-
*
|
|
75
|
-
* @param {PayPalButtonDataSourceInterface} dataSource
|
|
76
|
-
* @param {object} options
|
|
77
|
-
* @returns {Promise<void>}
|
|
78
|
-
* @memberof PayPalButtonDataSourceDelegate
|
|
79
|
-
*/
|
|
80
|
-
payPalPaymentStarted(dataSource: PayPalButtonDataSourceInterface, options: object): Promise<void>;
|
|
81
|
-
/**
|
|
82
|
-
* Payment has been authorized by patron and submits to PayPal
|
|
83
|
-
*
|
|
84
|
-
* @param {PayPalButtonDataSourceInterface} dataSource
|
|
85
|
-
* @param {paypal.TokenizePayload} payload
|
|
86
|
-
* @returns {Promise<void>}
|
|
87
|
-
* @memberof PayPalButtonDataSourceDelegate
|
|
88
|
-
*/
|
|
89
|
-
payPalPaymentAuthorized(dataSource: PayPalButtonDataSourceInterface, payload: paypal.TokenizePayload): Promise<void>;
|
|
90
|
-
/**
|
|
91
|
-
* Payment has been authorized
|
|
92
|
-
*
|
|
93
|
-
* @param {PayPalButtonDataSourceInterface} dataSource
|
|
94
|
-
* @param {paypal.TokenizePayload} payload
|
|
95
|
-
* @returns {Promise<void>}
|
|
96
|
-
* @memberof PayPalButtonDataSourceDelegate
|
|
97
|
-
*/
|
|
98
|
-
payPalPaymentConfirmed(dataSource: PayPalButtonDataSourceInterface, payload: paypal.TokenizePayload): Promise<void>;
|
|
99
|
-
/**
|
|
100
|
-
* Payment has been cancelled
|
|
101
|
-
*
|
|
102
|
-
* @param {PayPalButtonDataSourceInterface} dataSource
|
|
103
|
-
* @param {object} data
|
|
104
|
-
* @returns {Promise<void>}
|
|
105
|
-
* @memberof PayPalButtonDataSourceDelegate
|
|
106
|
-
*/
|
|
107
|
-
payPalPaymentCancelled(dataSource: PayPalButtonDataSourceInterface, data: object): Promise<void>;
|
|
108
|
-
/**
|
|
109
|
-
* There was a payment error
|
|
110
|
-
*
|
|
111
|
-
* @param {PayPalButtonDataSourceInterface} dataSource
|
|
112
|
-
* @param {string} error
|
|
113
|
-
* @returns {Promise<void>}
|
|
114
|
-
* @memberof PayPalButtonDataSourceDelegate
|
|
115
|
-
*/
|
|
116
|
-
payPalPaymentError(dataSource: PayPalButtonDataSourceInterface, error: string): Promise<void>;
|
|
117
|
-
}
|
|
118
|
-
/** @inheritdoc */
|
|
119
|
-
export declare class PayPalButtonDataSource implements PayPalButtonDataSourceInterface {
|
|
120
|
-
/** @inheritdoc */
|
|
121
|
-
delegate?: PayPalButtonDataSourceDelegate;
|
|
122
|
-
/** @inheritdoc */
|
|
123
|
-
donationInfo: DonationPaymentInfo;
|
|
124
|
-
/**
|
|
125
|
-
* The PayPal instance
|
|
126
|
-
*
|
|
127
|
-
* @private
|
|
128
|
-
* @type {braintree.PayPalCheckout}
|
|
129
|
-
* @memberof PayPalButtonDataSource
|
|
130
|
-
*/
|
|
131
|
-
private paypalInstance;
|
|
132
|
-
constructor(options: {
|
|
133
|
-
donationInfo: DonationPaymentInfo;
|
|
134
|
-
paypalInstance: braintree.PayPalCheckout;
|
|
135
|
-
});
|
|
136
|
-
/** @inheritdoc */
|
|
137
|
-
payment(): Promise<string>;
|
|
138
|
-
/** @inheritdoc */
|
|
139
|
-
onAuthorize(data: paypal.AuthorizationData): Promise<paypal.TokenizePayload>;
|
|
140
|
-
onConfirm(data: paypal.AuthorizationData): Promise<paypal.TokenizePayload>;
|
|
141
|
-
/** @inheritdoc */
|
|
142
|
-
onCancel(data: object): void;
|
|
143
|
-
/** @inheritdoc */
|
|
144
|
-
onError(error: string): void;
|
|
145
|
-
}
|
|
1
|
+
import { DonationPaymentInfo } from '@internetarchive/donation-form-data-models';
|
|
2
|
+
/**
|
|
3
|
+
* PayPayButtonDataSource is responsible for communicating with the PayPal button.
|
|
4
|
+
*
|
|
5
|
+
* The PayPal button cannot live in the ShadowDOM so we have to instantiate it at the
|
|
6
|
+
* top of the DOM and it lives in the global sphere. This makes it difficult to communicate
|
|
7
|
+
* with it directly. The PayPalButtonDataSource provides an object that we can pass around
|
|
8
|
+
* that hooks into all of the PayPal button's callbacks and provides callbacks to its
|
|
9
|
+
* delegate that is interested in the various events.
|
|
10
|
+
*
|
|
11
|
+
* @export
|
|
12
|
+
* @interface PayPalButtonDataSourceInterface
|
|
13
|
+
*/
|
|
14
|
+
export interface PayPalButtonDataSourceInterface {
|
|
15
|
+
/**
|
|
16
|
+
* The delegate to inform about button events
|
|
17
|
+
*
|
|
18
|
+
* @type {PayPalButtonDataSourceDelegate}
|
|
19
|
+
* @memberof PayPalButtonDataSourceInterface
|
|
20
|
+
*/
|
|
21
|
+
delegate?: PayPalButtonDataSourceDelegate;
|
|
22
|
+
/**
|
|
23
|
+
* The Donation Info associated with this button.
|
|
24
|
+
*
|
|
25
|
+
* Since the user initiates the checkout flow from the button itself (not programatically by us),
|
|
26
|
+
* we need to have up-to-date donation information so whenever the user updates donation info
|
|
27
|
+
* from the form, we update this.
|
|
28
|
+
*
|
|
29
|
+
* @type {DonationPaymentInfo}
|
|
30
|
+
* @memberof PayPalButtonDataSourceInterface
|
|
31
|
+
*/
|
|
32
|
+
donationInfo: DonationPaymentInfo;
|
|
33
|
+
/**
|
|
34
|
+
* The payment has been started by the user (they clicked the PayPal button)
|
|
35
|
+
*
|
|
36
|
+
* @returns {Promise<string>}
|
|
37
|
+
* @memberof PayPalButtonDataSourceInterface
|
|
38
|
+
*/
|
|
39
|
+
payment(): Promise<string>;
|
|
40
|
+
/**
|
|
41
|
+
* The user has authorized the donation
|
|
42
|
+
*
|
|
43
|
+
* @param {paypal.AuthorizationData} data
|
|
44
|
+
* @param {object} actions
|
|
45
|
+
* @returns {(Promise<paypal.TokenizePayload | undefined>)}
|
|
46
|
+
* @memberof PayPalButtonDataSourceInterface
|
|
47
|
+
*/
|
|
48
|
+
onAuthorize(data: paypal.AuthorizationData, actions: object): Promise<paypal.TokenizePayload | undefined>;
|
|
49
|
+
/**
|
|
50
|
+
* The user cancelled the donation
|
|
51
|
+
*
|
|
52
|
+
* @param {paypal.CancellationData} data
|
|
53
|
+
* @memberof PayPalButtonDataSourceInterface
|
|
54
|
+
*/
|
|
55
|
+
onCancel(data: paypal.CancellationData): void;
|
|
56
|
+
/**
|
|
57
|
+
* An error occurred
|
|
58
|
+
*
|
|
59
|
+
* @param {string} error
|
|
60
|
+
* @memberof PayPalButtonDataSourceInterface
|
|
61
|
+
*/
|
|
62
|
+
onError(error: string): void;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The PayPalButtonDataSourceDelegate is an interface for any object interested
|
|
66
|
+
* in events emitted by the paypal button.
|
|
67
|
+
*
|
|
68
|
+
* @export
|
|
69
|
+
* @interface PayPalButtonDataSourceDelegate
|
|
70
|
+
*/
|
|
71
|
+
export interface PayPalButtonDataSourceDelegate {
|
|
72
|
+
/**
|
|
73
|
+
* Payment has been started
|
|
74
|
+
*
|
|
75
|
+
* @param {PayPalButtonDataSourceInterface} dataSource
|
|
76
|
+
* @param {object} options
|
|
77
|
+
* @returns {Promise<void>}
|
|
78
|
+
* @memberof PayPalButtonDataSourceDelegate
|
|
79
|
+
*/
|
|
80
|
+
payPalPaymentStarted(dataSource: PayPalButtonDataSourceInterface, options: object): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Payment has been authorized by patron and submits to PayPal
|
|
83
|
+
*
|
|
84
|
+
* @param {PayPalButtonDataSourceInterface} dataSource
|
|
85
|
+
* @param {paypal.TokenizePayload} payload
|
|
86
|
+
* @returns {Promise<void>}
|
|
87
|
+
* @memberof PayPalButtonDataSourceDelegate
|
|
88
|
+
*/
|
|
89
|
+
payPalPaymentAuthorized(dataSource: PayPalButtonDataSourceInterface, payload: paypal.TokenizePayload): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* Payment has been authorized
|
|
92
|
+
*
|
|
93
|
+
* @param {PayPalButtonDataSourceInterface} dataSource
|
|
94
|
+
* @param {paypal.TokenizePayload} payload
|
|
95
|
+
* @returns {Promise<void>}
|
|
96
|
+
* @memberof PayPalButtonDataSourceDelegate
|
|
97
|
+
*/
|
|
98
|
+
payPalPaymentConfirmed(dataSource: PayPalButtonDataSourceInterface, payload: paypal.TokenizePayload): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Payment has been cancelled
|
|
101
|
+
*
|
|
102
|
+
* @param {PayPalButtonDataSourceInterface} dataSource
|
|
103
|
+
* @param {object} data
|
|
104
|
+
* @returns {Promise<void>}
|
|
105
|
+
* @memberof PayPalButtonDataSourceDelegate
|
|
106
|
+
*/
|
|
107
|
+
payPalPaymentCancelled(dataSource: PayPalButtonDataSourceInterface, data: object): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* There was a payment error
|
|
110
|
+
*
|
|
111
|
+
* @param {PayPalButtonDataSourceInterface} dataSource
|
|
112
|
+
* @param {string} error
|
|
113
|
+
* @returns {Promise<void>}
|
|
114
|
+
* @memberof PayPalButtonDataSourceDelegate
|
|
115
|
+
*/
|
|
116
|
+
payPalPaymentError(dataSource: PayPalButtonDataSourceInterface, error: string): Promise<void>;
|
|
117
|
+
}
|
|
118
|
+
/** @inheritdoc */
|
|
119
|
+
export declare class PayPalButtonDataSource implements PayPalButtonDataSourceInterface {
|
|
120
|
+
/** @inheritdoc */
|
|
121
|
+
delegate?: PayPalButtonDataSourceDelegate;
|
|
122
|
+
/** @inheritdoc */
|
|
123
|
+
donationInfo: DonationPaymentInfo;
|
|
124
|
+
/**
|
|
125
|
+
* The PayPal instance
|
|
126
|
+
*
|
|
127
|
+
* @private
|
|
128
|
+
* @type {braintree.PayPalCheckout}
|
|
129
|
+
* @memberof PayPalButtonDataSource
|
|
130
|
+
*/
|
|
131
|
+
private paypalInstance;
|
|
132
|
+
constructor(options: {
|
|
133
|
+
donationInfo: DonationPaymentInfo;
|
|
134
|
+
paypalInstance: braintree.PayPalCheckout;
|
|
135
|
+
});
|
|
136
|
+
/** @inheritdoc */
|
|
137
|
+
payment(): Promise<string>;
|
|
138
|
+
/** @inheritdoc */
|
|
139
|
+
onAuthorize(data: paypal.AuthorizationData): Promise<paypal.TokenizePayload>;
|
|
140
|
+
onConfirm(data: paypal.AuthorizationData): Promise<paypal.TokenizePayload>;
|
|
141
|
+
/** @inheritdoc */
|
|
142
|
+
onCancel(data: object): void;
|
|
143
|
+
/** @inheritdoc */
|
|
144
|
+
onError(error: string): void;
|
|
145
|
+
}
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { DonationType } from '@internetarchive/donation-form-data-models';
|
|
3
|
-
import currency from 'currency.js';
|
|
4
|
-
/** @inheritdoc */
|
|
5
|
-
export class PayPalButtonDataSource {
|
|
6
|
-
constructor(options) {
|
|
7
|
-
this.donationInfo = options.donationInfo;
|
|
8
|
-
this.paypalInstance = options.paypalInstance;
|
|
9
|
-
}
|
|
10
|
-
/** @inheritdoc */
|
|
11
|
-
payment() {
|
|
12
|
-
var _a;
|
|
13
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
14
|
-
const donationType = this.donationInfo.donationType;
|
|
15
|
-
const flow = donationType === DonationType.OneTime ? 'checkout' : 'vault';
|
|
16
|
-
const options = {
|
|
17
|
-
flow: flow,
|
|
18
|
-
intent: 'capture',
|
|
19
|
-
};
|
|
20
|
-
options.enableShippingAddress = true;
|
|
21
|
-
if (flow === 'checkout') {
|
|
22
|
-
options.amount = this.donationInfo.total;
|
|
23
|
-
options.currency = 'USD';
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
options.billingAgreementDescription = `Subscribe to donate ${currency(this.donationInfo.total, { symbol: '$' }).format()} monthly`;
|
|
27
|
-
}
|
|
28
|
-
(_a = this.delegate) === null || _a === void 0 ? void 0 : _a.payPalPaymentStarted(this, options);
|
|
29
|
-
return this.paypalInstance.createPayment(options);
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
/** @inheritdoc */
|
|
33
|
-
onAuthorize(data) {
|
|
34
|
-
var _a;
|
|
35
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
const payload = yield this.paypalInstance.tokenizePayment(data);
|
|
37
|
-
(_a = this.delegate) === null || _a === void 0 ? void 0 : _a.payPalPaymentAuthorized(this, payload);
|
|
38
|
-
return payload;
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
onConfirm(data) {
|
|
42
|
-
var _a;
|
|
43
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
const payload = yield this.paypalInstance.tokenizePayment(data);
|
|
45
|
-
(_a = this.delegate) === null || _a === void 0 ? void 0 : _a.payPalPaymentConfirmed(this, payload);
|
|
46
|
-
return payload;
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
/** @inheritdoc */
|
|
50
|
-
onCancel(data) {
|
|
51
|
-
var _a;
|
|
52
|
-
(_a = this.delegate) === null || _a === void 0 ? void 0 : _a.payPalPaymentCancelled(this, data);
|
|
53
|
-
}
|
|
54
|
-
/** @inheritdoc */
|
|
55
|
-
onError(error) {
|
|
56
|
-
var _a;
|
|
57
|
-
console.error('PayPal error', error);
|
|
58
|
-
(_a = this.delegate) === null || _a === void 0 ? void 0 : _a.payPalPaymentError(this, error);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { DonationType } from '@internetarchive/donation-form-data-models';
|
|
3
|
+
import currency from 'currency.js';
|
|
4
|
+
/** @inheritdoc */
|
|
5
|
+
export class PayPalButtonDataSource {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.donationInfo = options.donationInfo;
|
|
8
|
+
this.paypalInstance = options.paypalInstance;
|
|
9
|
+
}
|
|
10
|
+
/** @inheritdoc */
|
|
11
|
+
payment() {
|
|
12
|
+
var _a;
|
|
13
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
14
|
+
const donationType = this.donationInfo.donationType;
|
|
15
|
+
const flow = donationType === DonationType.OneTime ? 'checkout' : 'vault';
|
|
16
|
+
const options = {
|
|
17
|
+
flow: flow,
|
|
18
|
+
intent: 'capture',
|
|
19
|
+
};
|
|
20
|
+
options.enableShippingAddress = true;
|
|
21
|
+
if (flow === 'checkout') {
|
|
22
|
+
options.amount = this.donationInfo.total;
|
|
23
|
+
options.currency = 'USD';
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
options.billingAgreementDescription = `Subscribe to donate ${currency(this.donationInfo.total, { symbol: '$' }).format()} monthly`;
|
|
27
|
+
}
|
|
28
|
+
(_a = this.delegate) === null || _a === void 0 ? void 0 : _a.payPalPaymentStarted(this, options);
|
|
29
|
+
return this.paypalInstance.createPayment(options);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/** @inheritdoc */
|
|
33
|
+
onAuthorize(data) {
|
|
34
|
+
var _a;
|
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
const payload = yield this.paypalInstance.tokenizePayment(data);
|
|
37
|
+
(_a = this.delegate) === null || _a === void 0 ? void 0 : _a.payPalPaymentAuthorized(this, payload);
|
|
38
|
+
return payload;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
onConfirm(data) {
|
|
42
|
+
var _a;
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
const payload = yield this.paypalInstance.tokenizePayment(data);
|
|
45
|
+
(_a = this.delegate) === null || _a === void 0 ? void 0 : _a.payPalPaymentConfirmed(this, payload);
|
|
46
|
+
return payload;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/** @inheritdoc */
|
|
50
|
+
onCancel(data) {
|
|
51
|
+
var _a;
|
|
52
|
+
(_a = this.delegate) === null || _a === void 0 ? void 0 : _a.payPalPaymentCancelled(this, data);
|
|
53
|
+
}
|
|
54
|
+
/** @inheritdoc */
|
|
55
|
+
onError(error) {
|
|
56
|
+
var _a;
|
|
57
|
+
console.error('PayPal error', error);
|
|
58
|
+
(_a = this.delegate) === null || _a === void 0 ? void 0 : _a.payPalPaymentError(this, error);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
61
|
//# sourceMappingURL=paypal-button-datasource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paypal-button-datasource.js","sourceRoot":"","sources":["../../../../../src/braintree-manager/payment-providers/paypal/paypal-button-datasource.ts"],"names":[],"mappings":";AAAA,OAAO,EAAuB,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE/F,OAAO,QAAQ,MAAM,aAAa,CAAC;AA0InC,kBAAkB;AAClB,MAAM,OAAO,sBAAsB;IAgBjC,YAAY,OAGX;QACC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAC/C,CAAC;IAED,kBAAkB;IACZ,OAAO;;;YACX,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACpD,MAAM,IAAI,GAAG,YAAY,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;YAE1E,MAAM,OAAO,GAAiD;gBAC5D,IAAI,EAAE,IAAuB;gBAC7B,MAAM,EAAE,SAAS;aAClB,CAAC;YACF,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAErC,IAAI,IAAI,KAAK,UAAU,EAAE;gBACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;gBACzC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;aAC1B;iBAAM;gBACL,OAAO,CAAC,2BAA2B,GAAG,uBAAuB,QAAQ,CACnE,IAAI,CAAC,YAAY,CAAC,KAAK,EACvB,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC,MAAM,EAAE,UAAU,CAAC;aACtB;YAED,MAAA,IAAI,CAAC,QAAQ,0CAAE,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE;YAEnD,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;;KACnD;IAED,kBAAkB;IACZ,WAAW,CAAC,IAA8B;;;YAC9C,MAAM,OAAO,GAA2B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAExF,MAAA,IAAI,CAAC,QAAQ,0CAAE,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE;YAEtD,OAAO,OAAO,CAAC;;KAChB;IAEK,SAAS,CAAC,IAA8B;;;YAC5C,MAAM,OAAO,GAA2B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACxF,MAAA,IAAI,CAAC,QAAQ,0CAAE,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE;YAErD,OAAO,OAAO,CAAC;;KAChB;IAED,kBAAkB;IAClB,QAAQ,CAAC,IAAY;;QACnB,MAAA,IAAI,CAAC,QAAQ,0CAAE,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE;IACpD,CAAC;IAED,kBAAkB;IAClB,OAAO,CAAC,KAAa;;QACnB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACrC,MAAA,IAAI,CAAC,QAAQ,0CAAE,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE;IACjD,CAAC;CACF","sourcesContent":["import { DonationPaymentInfo, DonationType } from '@internetarchive/donation-form-data-models';\n\nimport currency from 'currency.js';\n\n/**\n * PayPayButtonDataSource is responsible for communicating with the PayPal button.\n *\n * The PayPal button cannot live in the ShadowDOM so we have to instantiate it at the\n * top of the DOM and it lives in the global sphere. This makes it difficult to communicate\n * with it directly. The PayPalButtonDataSource provides an object that we can pass around\n * that hooks into all of the PayPal button's callbacks and provides callbacks to its\n * delegate that is interested in the various events.\n *\n * @export\n * @interface PayPalButtonDataSourceInterface\n */\nexport interface PayPalButtonDataSourceInterface {\n /**\n * The delegate to inform about button events\n *\n * @type {PayPalButtonDataSourceDelegate}\n * @memberof PayPalButtonDataSourceInterface\n */\n delegate?: PayPalButtonDataSourceDelegate;\n\n /**\n * The Donation Info associated with this button.\n *\n * Since the user initiates the checkout flow from the button itself (not programatically by us),\n * we need to have up-to-date donation information so whenever the user updates donation info\n * from the form, we update this.\n *\n * @type {DonationPaymentInfo}\n * @memberof PayPalButtonDataSourceInterface\n */\n donationInfo: DonationPaymentInfo;\n\n /**\n * The payment has been started by the user (they clicked the PayPal button)\n *\n * @returns {Promise<string>}\n * @memberof PayPalButtonDataSourceInterface\n */\n payment(): Promise<string>;\n\n /**\n * The user has authorized the donation\n *\n * @param {paypal.AuthorizationData} data\n * @param {object} actions\n * @returns {(Promise<paypal.TokenizePayload | undefined>)}\n * @memberof PayPalButtonDataSourceInterface\n */\n onAuthorize(\n data: paypal.AuthorizationData,\n actions: object,\n ): Promise<paypal.TokenizePayload | undefined>;\n\n /**\n * The user cancelled the donation\n *\n * @param {paypal.CancellationData} data\n * @memberof PayPalButtonDataSourceInterface\n */\n onCancel(data: paypal.CancellationData): void;\n\n /**\n * An error occurred\n *\n * @param {string} error\n * @memberof PayPalButtonDataSourceInterface\n */\n onError(error: string): void;\n}\n\n/**\n * The PayPalButtonDataSourceDelegate is an interface for any object interested\n * in events emitted by the paypal button.\n *\n * @export\n * @interface PayPalButtonDataSourceDelegate\n */\nexport interface PayPalButtonDataSourceDelegate {\n /**\n * Payment has been started\n *\n * @param {PayPalButtonDataSourceInterface} dataSource\n * @param {object} options\n * @returns {Promise<void>}\n * @memberof PayPalButtonDataSourceDelegate\n */\n payPalPaymentStarted(dataSource: PayPalButtonDataSourceInterface, options: object): Promise<void>;\n\n /**\n * Payment has been authorized by patron and submits to PayPal\n *\n * @param {PayPalButtonDataSourceInterface} dataSource\n * @param {paypal.TokenizePayload} payload\n * @returns {Promise<void>}\n * @memberof PayPalButtonDataSourceDelegate\n */\n payPalPaymentAuthorized(\n dataSource: PayPalButtonDataSourceInterface,\n payload: paypal.TokenizePayload,\n ): Promise<void>;\n\n /**\n * Payment has been authorized\n *\n * @param {PayPalButtonDataSourceInterface} dataSource\n * @param {paypal.TokenizePayload} payload\n * @returns {Promise<void>}\n * @memberof PayPalButtonDataSourceDelegate\n */\n payPalPaymentConfirmed(\n dataSource: PayPalButtonDataSourceInterface,\n payload: paypal.TokenizePayload,\n ): Promise<void>;\n\n /**\n * Payment has been cancelled\n *\n * @param {PayPalButtonDataSourceInterface} dataSource\n * @param {object} data\n * @returns {Promise<void>}\n * @memberof PayPalButtonDataSourceDelegate\n */\n payPalPaymentCancelled(dataSource: PayPalButtonDataSourceInterface, data: object): Promise<void>;\n\n /**\n * There was a payment error\n *\n * @param {PayPalButtonDataSourceInterface} dataSource\n * @param {string} error\n * @returns {Promise<void>}\n * @memberof PayPalButtonDataSourceDelegate\n */\n payPalPaymentError(dataSource: PayPalButtonDataSourceInterface, error: string): Promise<void>;\n}\n\n/** @inheritdoc */\nexport class PayPalButtonDataSource implements PayPalButtonDataSourceInterface {\n /** @inheritdoc */\n delegate?: PayPalButtonDataSourceDelegate;\n\n /** @inheritdoc */\n donationInfo: DonationPaymentInfo;\n\n /**\n * The PayPal instance\n *\n * @private\n * @type {braintree.PayPalCheckout}\n * @memberof PayPalButtonDataSource\n */\n private paypalInstance: braintree.PayPalCheckout;\n\n constructor(options: {\n donationInfo: DonationPaymentInfo;\n paypalInstance: braintree.PayPalCheckout;\n }) {\n this.donationInfo = options.donationInfo;\n this.paypalInstance = options.paypalInstance;\n }\n\n /** @inheritdoc */\n async payment(): Promise<string> {\n const donationType = this.donationInfo.donationType;\n const flow = donationType === DonationType.OneTime ? 'checkout' : 'vault';\n\n const options: braintree.PayPalCheckoutCreatePaymentOptions = {\n flow: flow as paypal.FlowType,\n intent: 'capture',\n };\n options.enableShippingAddress = true;\n\n if (flow === 'checkout') {\n options.amount = this.donationInfo.total;\n options.currency = 'USD';\n } else {\n options.billingAgreementDescription = `Subscribe to donate ${currency(\n this.donationInfo.total,\n { symbol: '$' },\n ).format()} monthly`;\n }\n\n this.delegate?.payPalPaymentStarted(this, options);\n\n return this.paypalInstance.createPayment(options);\n }\n\n /** @inheritdoc */\n async onAuthorize(data: paypal.AuthorizationData): Promise<paypal.TokenizePayload> {\n const payload: paypal.TokenizePayload = await this.paypalInstance.tokenizePayment(data);\n\n this.delegate?.payPalPaymentAuthorized(this, payload);\n\n return payload;\n }\n\n async onConfirm(data: paypal.AuthorizationData): Promise<paypal.TokenizePayload> {\n const payload: paypal.TokenizePayload = await this.paypalInstance.tokenizePayment(data);\n this.delegate?.payPalPaymentConfirmed(this, payload);\n\n return payload;\n }\n\n /** @inheritdoc */\n onCancel(data: object): void {\n this.delegate?.payPalPaymentCancelled(this, data);\n }\n\n /** @inheritdoc */\n onError(error: string): void {\n console.error('PayPal error', error);\n this.delegate?.payPalPaymentError(this, error);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"paypal-button-datasource.js","sourceRoot":"","sources":["../../../../../src/braintree-manager/payment-providers/paypal/paypal-button-datasource.ts"],"names":[],"mappings":";AAAA,OAAO,EAAuB,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE/F,OAAO,QAAQ,MAAM,aAAa,CAAC;AA0InC,kBAAkB;AAClB,MAAM,OAAO,sBAAsB;IAgBjC,YAAY,OAGX;QACC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAC/C,CAAC;IAED,kBAAkB;IACZ,OAAO;;;YACX,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YACpD,MAAM,IAAI,GAAG,YAAY,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;YAE1E,MAAM,OAAO,GAAiD;gBAC5D,IAAI,EAAE,IAAuB;gBAC7B,MAAM,EAAE,SAAS;aAClB,CAAC;YACF,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAErC,IAAI,IAAI,KAAK,UAAU,EAAE;gBACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;gBACzC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;aAC1B;iBAAM;gBACL,OAAO,CAAC,2BAA2B,GAAG,uBAAuB,QAAQ,CACnE,IAAI,CAAC,YAAY,CAAC,KAAK,EACvB,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC,MAAM,EAAE,UAAU,CAAC;aACtB;YAED,MAAA,IAAI,CAAC,QAAQ,0CAAE,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE;YAEnD,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;;KACnD;IAED,kBAAkB;IACZ,WAAW,CAAC,IAA8B;;;YAC9C,MAAM,OAAO,GAA2B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAExF,MAAA,IAAI,CAAC,QAAQ,0CAAE,uBAAuB,CAAC,IAAI,EAAE,OAAO,EAAE;YAEtD,OAAO,OAAO,CAAC;;KAChB;IAEK,SAAS,CAAC,IAA8B;;;YAC5C,MAAM,OAAO,GAA2B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACxF,MAAA,IAAI,CAAC,QAAQ,0CAAE,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE;YAErD,OAAO,OAAO,CAAC;;KAChB;IAED,kBAAkB;IAClB,QAAQ,CAAC,IAAY;;QACnB,MAAA,IAAI,CAAC,QAAQ,0CAAE,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE;IACpD,CAAC;IAED,kBAAkB;IAClB,OAAO,CAAC,KAAa;;QACnB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACrC,MAAA,IAAI,CAAC,QAAQ,0CAAE,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE;IACjD,CAAC;CACF","sourcesContent":["import { DonationPaymentInfo, DonationType } from '@internetarchive/donation-form-data-models';\r\n\r\nimport currency from 'currency.js';\r\n\r\n/**\r\n * PayPayButtonDataSource is responsible for communicating with the PayPal button.\r\n *\r\n * The PayPal button cannot live in the ShadowDOM so we have to instantiate it at the\r\n * top of the DOM and it lives in the global sphere. This makes it difficult to communicate\r\n * with it directly. The PayPalButtonDataSource provides an object that we can pass around\r\n * that hooks into all of the PayPal button's callbacks and provides callbacks to its\r\n * delegate that is interested in the various events.\r\n *\r\n * @export\r\n * @interface PayPalButtonDataSourceInterface\r\n */\r\nexport interface PayPalButtonDataSourceInterface {\r\n /**\r\n * The delegate to inform about button events\r\n *\r\n * @type {PayPalButtonDataSourceDelegate}\r\n * @memberof PayPalButtonDataSourceInterface\r\n */\r\n delegate?: PayPalButtonDataSourceDelegate;\r\n\r\n /**\r\n * The Donation Info associated with this button.\r\n *\r\n * Since the user initiates the checkout flow from the button itself (not programatically by us),\r\n * we need to have up-to-date donation information so whenever the user updates donation info\r\n * from the form, we update this.\r\n *\r\n * @type {DonationPaymentInfo}\r\n * @memberof PayPalButtonDataSourceInterface\r\n */\r\n donationInfo: DonationPaymentInfo;\r\n\r\n /**\r\n * The payment has been started by the user (they clicked the PayPal button)\r\n *\r\n * @returns {Promise<string>}\r\n * @memberof PayPalButtonDataSourceInterface\r\n */\r\n payment(): Promise<string>;\r\n\r\n /**\r\n * The user has authorized the donation\r\n *\r\n * @param {paypal.AuthorizationData} data\r\n * @param {object} actions\r\n * @returns {(Promise<paypal.TokenizePayload | undefined>)}\r\n * @memberof PayPalButtonDataSourceInterface\r\n */\r\n onAuthorize(\r\n data: paypal.AuthorizationData,\r\n actions: object,\r\n ): Promise<paypal.TokenizePayload | undefined>;\r\n\r\n /**\r\n * The user cancelled the donation\r\n *\r\n * @param {paypal.CancellationData} data\r\n * @memberof PayPalButtonDataSourceInterface\r\n */\r\n onCancel(data: paypal.CancellationData): void;\r\n\r\n /**\r\n * An error occurred\r\n *\r\n * @param {string} error\r\n * @memberof PayPalButtonDataSourceInterface\r\n */\r\n onError(error: string): void;\r\n}\r\n\r\n/**\r\n * The PayPalButtonDataSourceDelegate is an interface for any object interested\r\n * in events emitted by the paypal button.\r\n *\r\n * @export\r\n * @interface PayPalButtonDataSourceDelegate\r\n */\r\nexport interface PayPalButtonDataSourceDelegate {\r\n /**\r\n * Payment has been started\r\n *\r\n * @param {PayPalButtonDataSourceInterface} dataSource\r\n * @param {object} options\r\n * @returns {Promise<void>}\r\n * @memberof PayPalButtonDataSourceDelegate\r\n */\r\n payPalPaymentStarted(dataSource: PayPalButtonDataSourceInterface, options: object): Promise<void>;\r\n\r\n /**\r\n * Payment has been authorized by patron and submits to PayPal\r\n *\r\n * @param {PayPalButtonDataSourceInterface} dataSource\r\n * @param {paypal.TokenizePayload} payload\r\n * @returns {Promise<void>}\r\n * @memberof PayPalButtonDataSourceDelegate\r\n */\r\n payPalPaymentAuthorized(\r\n dataSource: PayPalButtonDataSourceInterface,\r\n payload: paypal.TokenizePayload,\r\n ): Promise<void>;\r\n\r\n /**\r\n * Payment has been authorized\r\n *\r\n * @param {PayPalButtonDataSourceInterface} dataSource\r\n * @param {paypal.TokenizePayload} payload\r\n * @returns {Promise<void>}\r\n * @memberof PayPalButtonDataSourceDelegate\r\n */\r\n payPalPaymentConfirmed(\r\n dataSource: PayPalButtonDataSourceInterface,\r\n payload: paypal.TokenizePayload,\r\n ): Promise<void>;\r\n\r\n /**\r\n * Payment has been cancelled\r\n *\r\n * @param {PayPalButtonDataSourceInterface} dataSource\r\n * @param {object} data\r\n * @returns {Promise<void>}\r\n * @memberof PayPalButtonDataSourceDelegate\r\n */\r\n payPalPaymentCancelled(dataSource: PayPalButtonDataSourceInterface, data: object): Promise<void>;\r\n\r\n /**\r\n * There was a payment error\r\n *\r\n * @param {PayPalButtonDataSourceInterface} dataSource\r\n * @param {string} error\r\n * @returns {Promise<void>}\r\n * @memberof PayPalButtonDataSourceDelegate\r\n */\r\n payPalPaymentError(dataSource: PayPalButtonDataSourceInterface, error: string): Promise<void>;\r\n}\r\n\r\n/** @inheritdoc */\r\nexport class PayPalButtonDataSource implements PayPalButtonDataSourceInterface {\r\n /** @inheritdoc */\r\n delegate?: PayPalButtonDataSourceDelegate;\r\n\r\n /** @inheritdoc */\r\n donationInfo: DonationPaymentInfo;\r\n\r\n /**\r\n * The PayPal instance\r\n *\r\n * @private\r\n * @type {braintree.PayPalCheckout}\r\n * @memberof PayPalButtonDataSource\r\n */\r\n private paypalInstance: braintree.PayPalCheckout;\r\n\r\n constructor(options: {\r\n donationInfo: DonationPaymentInfo;\r\n paypalInstance: braintree.PayPalCheckout;\r\n }) {\r\n this.donationInfo = options.donationInfo;\r\n this.paypalInstance = options.paypalInstance;\r\n }\r\n\r\n /** @inheritdoc */\r\n async payment(): Promise<string> {\r\n const donationType = this.donationInfo.donationType;\r\n const flow = donationType === DonationType.OneTime ? 'checkout' : 'vault';\r\n\r\n const options: braintree.PayPalCheckoutCreatePaymentOptions = {\r\n flow: flow as paypal.FlowType,\r\n intent: 'capture',\r\n };\r\n options.enableShippingAddress = true;\r\n\r\n if (flow === 'checkout') {\r\n options.amount = this.donationInfo.total;\r\n options.currency = 'USD';\r\n } else {\r\n options.billingAgreementDescription = `Subscribe to donate ${currency(\r\n this.donationInfo.total,\r\n { symbol: '$' },\r\n ).format()} monthly`;\r\n }\r\n\r\n this.delegate?.payPalPaymentStarted(this, options);\r\n\r\n return this.paypalInstance.createPayment(options);\r\n }\r\n\r\n /** @inheritdoc */\r\n async onAuthorize(data: paypal.AuthorizationData): Promise<paypal.TokenizePayload> {\r\n const payload: paypal.TokenizePayload = await this.paypalInstance.tokenizePayment(data);\r\n\r\n this.delegate?.payPalPaymentAuthorized(this, payload);\r\n\r\n return payload;\r\n }\r\n\r\n async onConfirm(data: paypal.AuthorizationData): Promise<paypal.TokenizePayload> {\r\n const payload: paypal.TokenizePayload = await this.paypalInstance.tokenizePayment(data);\r\n this.delegate?.payPalPaymentConfirmed(this, payload);\r\n\r\n return payload;\r\n }\r\n\r\n /** @inheritdoc */\r\n onCancel(data: object): void {\r\n this.delegate?.payPalPaymentCancelled(this, data);\r\n }\r\n\r\n /** @inheritdoc */\r\n onError(error: string): void {\r\n console.error('PayPal error', error);\r\n this.delegate?.payPalPaymentError(this, error);\r\n }\r\n}\r\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { PromisedSingleton } from '@internetarchive/promised-singleton';
|
|
2
|
-
import { DonationPaymentInfo } from '@internetarchive/donation-form-data-models';
|
|
3
|
-
import { PayPalButtonDataSourceInterface } from './paypal-button-datasource';
|
|
4
|
-
export interface PayPalHandlerInterface {
|
|
5
|
-
instance: PromisedSingleton<braintree.PayPalCheckout | undefined>;
|
|
6
|
-
renderPayPalButton(params: {
|
|
7
|
-
selector: string;
|
|
8
|
-
style: paypal.ButtonStyle;
|
|
9
|
-
donationInfo: DonationPaymentInfo;
|
|
10
|
-
}): Promise<PayPalButtonDataSourceInterface | undefined>;
|
|
11
|
-
}
|
|
1
|
+
import { PromisedSingleton } from '@internetarchive/promised-singleton';
|
|
2
|
+
import { DonationPaymentInfo } from '@internetarchive/donation-form-data-models';
|
|
3
|
+
import { PayPalButtonDataSourceInterface } from './paypal-button-datasource';
|
|
4
|
+
export interface PayPalHandlerInterface {
|
|
5
|
+
instance: PromisedSingleton<braintree.PayPalCheckout | undefined>;
|
|
6
|
+
renderPayPalButton(params: {
|
|
7
|
+
selector: string;
|
|
8
|
+
style: paypal.ButtonStyle;
|
|
9
|
+
donationInfo: DonationPaymentInfo;
|
|
10
|
+
}): Promise<PayPalButtonDataSourceInterface | undefined>;
|
|
11
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paypal-interface.js","sourceRoot":"","sources":["../../../../../src/braintree-manager/payment-providers/paypal/paypal-interface.ts"],"names":[],"mappings":"","sourcesContent":["import { PromisedSingleton } from '@internetarchive/promised-singleton';\nimport { DonationPaymentInfo } from '@internetarchive/donation-form-data-models';\nimport { PayPalButtonDataSourceInterface } from './paypal-button-datasource';\n\nexport interface PayPalHandlerInterface {\n instance: PromisedSingleton<braintree.PayPalCheckout | undefined>;\n\n renderPayPalButton(params: {\n selector: string;\n style: paypal.ButtonStyle;\n donationInfo: DonationPaymentInfo;\n }): Promise<PayPalButtonDataSourceInterface | undefined>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"paypal-interface.js","sourceRoot":"","sources":["../../../../../src/braintree-manager/payment-providers/paypal/paypal-interface.ts"],"names":[],"mappings":"","sourcesContent":["import { PromisedSingleton } from '@internetarchive/promised-singleton';\r\nimport { DonationPaymentInfo } from '@internetarchive/donation-form-data-models';\r\nimport { PayPalButtonDataSourceInterface } from './paypal-button-datasource';\r\n\r\nexport interface PayPalHandlerInterface {\r\n instance: PromisedSingleton<braintree.PayPalCheckout | undefined>;\r\n\r\n renderPayPalButton(params: {\r\n selector: string;\r\n style: paypal.ButtonStyle;\r\n donationInfo: DonationPaymentInfo;\r\n }): Promise<PayPalButtonDataSourceInterface | undefined>;\r\n}\r\n"]}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { PromisedSingleton } from '@internetarchive/promised-singleton';
|
|
2
|
-
import { BraintreeManagerInterface, HostingEnvironment } from '../../braintree-interfaces';
|
|
3
|
-
import { DonationPaymentInfo } from '@internetarchive/donation-form-data-models';
|
|
4
|
-
import { PayPalButtonDataSourceInterface } from './paypal-button-datasource';
|
|
5
|
-
import { PayPalHandlerInterface } from './paypal-interface';
|
|
6
|
-
export declare class PayPalHandler implements PayPalHandlerInterface {
|
|
7
|
-
instance: PromisedSingleton<braintree.PayPalCheckout | undefined>;
|
|
8
|
-
constructor(options: {
|
|
9
|
-
braintreeManager: BraintreeManagerInterface;
|
|
10
|
-
paypalClient: braintree.PayPalCheckout;
|
|
11
|
-
paypalButton: paypal.ButtonRenderer;
|
|
12
|
-
hostingEnvironment: HostingEnvironment;
|
|
13
|
-
});
|
|
14
|
-
private braintreeManager;
|
|
15
|
-
private paypalClient;
|
|
16
|
-
private paypalButtonGenerator;
|
|
17
|
-
private hostingEnvironment;
|
|
18
|
-
renderPayPalButton(params: {
|
|
19
|
-
selector: string;
|
|
20
|
-
style: paypal.ButtonStyle;
|
|
21
|
-
donationInfo: DonationPaymentInfo;
|
|
22
|
-
}): Promise<PayPalButtonDataSourceInterface | undefined>;
|
|
23
|
-
}
|
|
1
|
+
import { PromisedSingleton } from '@internetarchive/promised-singleton';
|
|
2
|
+
import { BraintreeManagerInterface, HostingEnvironment } from '../../braintree-interfaces';
|
|
3
|
+
import { DonationPaymentInfo } from '@internetarchive/donation-form-data-models';
|
|
4
|
+
import { PayPalButtonDataSourceInterface } from './paypal-button-datasource';
|
|
5
|
+
import { PayPalHandlerInterface } from './paypal-interface';
|
|
6
|
+
export declare class PayPalHandler implements PayPalHandlerInterface {
|
|
7
|
+
instance: PromisedSingleton<braintree.PayPalCheckout | undefined>;
|
|
8
|
+
constructor(options: {
|
|
9
|
+
braintreeManager: BraintreeManagerInterface;
|
|
10
|
+
paypalClient: braintree.PayPalCheckout;
|
|
11
|
+
paypalButton: paypal.ButtonRenderer;
|
|
12
|
+
hostingEnvironment: HostingEnvironment;
|
|
13
|
+
});
|
|
14
|
+
private braintreeManager;
|
|
15
|
+
private paypalClient;
|
|
16
|
+
private paypalButtonGenerator;
|
|
17
|
+
private hostingEnvironment;
|
|
18
|
+
renderPayPalButton(params: {
|
|
19
|
+
selector: string;
|
|
20
|
+
style: paypal.ButtonStyle;
|
|
21
|
+
donationInfo: DonationPaymentInfo;
|
|
22
|
+
}): Promise<PayPalButtonDataSourceInterface | undefined>;
|
|
23
|
+
}
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { PromisedSingleton } from '@internetarchive/promised-singleton';
|
|
3
|
-
import { HostingEnvironment } from '../../braintree-interfaces';
|
|
4
|
-
import { PayPalButtonDataSource, } from './paypal-button-datasource';
|
|
5
|
-
export class PayPalHandler {
|
|
6
|
-
constructor(options) {
|
|
7
|
-
this.braintreeManager = options.braintreeManager;
|
|
8
|
-
this.paypalClient = options.paypalClient;
|
|
9
|
-
this.paypalButtonGenerator = options.paypalButton;
|
|
10
|
-
this.hostingEnvironment = options.hostingEnvironment;
|
|
11
|
-
this.instance = new PromisedSingleton({
|
|
12
|
-
generator: () => this.braintreeManager.instance.get().then(braintreeClient => {
|
|
13
|
-
return this.paypalClient.create({
|
|
14
|
-
client: braintreeClient,
|
|
15
|
-
});
|
|
16
|
-
}),
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
renderPayPalButton(params) {
|
|
20
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
-
const env = (this.hostingEnvironment === HostingEnvironment.Development
|
|
22
|
-
? 'sandbox'
|
|
23
|
-
: 'production');
|
|
24
|
-
const paypalInstance = yield this.instance.get();
|
|
25
|
-
if (!paypalInstance) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
const dataSource = new PayPalButtonDataSource({
|
|
29
|
-
donationInfo: params.donationInfo,
|
|
30
|
-
paypalInstance: paypalInstance,
|
|
31
|
-
});
|
|
32
|
-
this.paypalButtonGenerator.render({
|
|
33
|
-
env,
|
|
34
|
-
style: params.style,
|
|
35
|
-
payment: dataSource.payment.bind(dataSource),
|
|
36
|
-
onAuthorize: dataSource.onAuthorize.bind(dataSource),
|
|
37
|
-
onCancel: dataSource.onCancel.bind(dataSource),
|
|
38
|
-
onError: dataSource.onError.bind(dataSource),
|
|
39
|
-
funding: {
|
|
40
|
-
disallowed: [paypal.FUNDING.VENMO],
|
|
41
|
-
},
|
|
42
|
-
}, params.selector);
|
|
43
|
-
return dataSource;
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { PromisedSingleton } from '@internetarchive/promised-singleton';
|
|
3
|
+
import { HostingEnvironment } from '../../braintree-interfaces';
|
|
4
|
+
import { PayPalButtonDataSource, } from './paypal-button-datasource';
|
|
5
|
+
export class PayPalHandler {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.braintreeManager = options.braintreeManager;
|
|
8
|
+
this.paypalClient = options.paypalClient;
|
|
9
|
+
this.paypalButtonGenerator = options.paypalButton;
|
|
10
|
+
this.hostingEnvironment = options.hostingEnvironment;
|
|
11
|
+
this.instance = new PromisedSingleton({
|
|
12
|
+
generator: () => this.braintreeManager.instance.get().then(braintreeClient => {
|
|
13
|
+
return this.paypalClient.create({
|
|
14
|
+
client: braintreeClient,
|
|
15
|
+
});
|
|
16
|
+
}),
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
renderPayPalButton(params) {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
const env = (this.hostingEnvironment === HostingEnvironment.Development
|
|
22
|
+
? 'sandbox'
|
|
23
|
+
: 'production');
|
|
24
|
+
const paypalInstance = yield this.instance.get();
|
|
25
|
+
if (!paypalInstance) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const dataSource = new PayPalButtonDataSource({
|
|
29
|
+
donationInfo: params.donationInfo,
|
|
30
|
+
paypalInstance: paypalInstance,
|
|
31
|
+
});
|
|
32
|
+
this.paypalButtonGenerator.render({
|
|
33
|
+
env,
|
|
34
|
+
style: params.style,
|
|
35
|
+
payment: dataSource.payment.bind(dataSource),
|
|
36
|
+
onAuthorize: dataSource.onAuthorize.bind(dataSource),
|
|
37
|
+
onCancel: dataSource.onCancel.bind(dataSource),
|
|
38
|
+
onError: dataSource.onError.bind(dataSource),
|
|
39
|
+
funding: {
|
|
40
|
+
disallowed: [paypal.FUNDING.VENMO],
|
|
41
|
+
},
|
|
42
|
+
}, params.selector);
|
|
43
|
+
return dataSource;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
47
|
//# sourceMappingURL=paypal.js.map
|