@internetarchive/donation-form 1.0.2 → 1.0.3-alpha-webdev7960.0
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.js.map +1 -1
- package/dist/demo/demo-analytics-handler.js.map +1 -1
- package/dist/demo/submit-form-with.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/src/braintree-manager/braintree-interfaces.js.map +1 -1
- package/dist/src/braintree-manager/braintree-manager.js.map +1 -1
- package/dist/src/braintree-manager/payment-clients.js.map +1 -1
- 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.js.map +1 -1
- 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.js.map +1 -1
- 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.js.map +1 -1
- 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.js.map +1 -1
- 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.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/google-pay-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/google-pay.js.map +1 -1
- 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.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/paypal/paypal.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/venmo-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/venmo.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers.js.map +1 -1
- package/dist/src/donation-form-controller.js +123 -123
- package/dist/src/donation-form-controller.js.map +1 -1
- package/dist/src/donation-form-error.js.map +1 -1
- package/dist/src/donation-form.js +107 -107
- package/dist/src/donation-form.js.map +1 -1
- package/dist/src/form-elements/badged-input.js +47 -47
- package/dist/src/form-elements/badged-input.js.map +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.js +157 -157
- package/dist/src/form-elements/contact-form/contact-form.js.map +1 -1
- package/dist/src/form-elements/contact-form/countries.js.map +1 -1
- package/dist/src/form-elements/header/donation-form-header.js +14 -14
- package/dist/src/form-elements/header/donation-form-header.js.map +1 -1
- package/dist/src/form-elements/header/donation-summary.js +15 -15
- package/dist/src/form-elements/header/donation-summary.js.map +1 -1
- package/dist/src/form-elements/payment-selector.js +164 -164
- package/dist/src/form-elements/payment-selector.js.map +1 -1
- package/dist/src/form-elements/total-amount.js +16 -16
- package/dist/src/form-elements/total-amount.js.map +1 -1
- package/dist/src/modals/confirm-donation-modal-content.js +51 -51
- package/dist/src/modals/confirm-donation-modal-content.js.map +1 -1
- package/dist/src/modals/error-modal-content.js +22 -22
- package/dist/src/modals/error-modal-content.js.map +1 -1
- package/dist/src/modals/upsell-modal-content.js +182 -182
- package/dist/src/modals/upsell-modal-content.js.map +1 -1
- package/dist/src/payment-flow-handlers/donation-flow-modal-manager.js +20 -20
- package/dist/src/payment-flow-handlers/donation-flow-modal-manager.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.js.map +1 -1
- 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.js.map +1 -1
- package/dist/src/payment-flow-handlers/payment-flow-handlers.js.map +1 -1
- package/dist/src/recaptcha-manager/recaptcha-manager.js.map +1 -1
- package/dist/src/util/promisedSleep.js.map +1 -1
- package/dist/test/helpers/fillInContactForm.js.map +1 -1
- 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.js.map +1 -1
- 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.js.map +1 -1
- 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.js.map +1 -1
- package/dist/test/mocks/mock-braintree-manager.js.map +1 -1
- package/dist/test/mocks/mock-donation-info.js.map +1 -1
- package/dist/test/mocks/mock-endpoint-manager.js.map +1 -1
- package/dist/test/mocks/mock-hosted-fields-config.js.map +1 -1
- package/dist/test/mocks/mock-hosted-fields-container.js.map +1 -1
- package/dist/test/mocks/mock-lazy-loader.js.map +1 -1
- package/dist/test/mocks/mock-modal-manager.js.map +1 -1
- package/dist/test/mocks/mock-payment-clients.js.map +1 -1
- package/dist/test/mocks/mock-paypal-button-renderer.js.map +1 -1
- package/dist/test/mocks/mock-recaptcha-manager.js.map +1 -1
- package/dist/test/mocks/models/mock-billing-info.js.map +1 -1
- package/dist/test/mocks/models/mock-custom-fields.js.map +1 -1
- package/dist/test/mocks/models/mock-customer-info.js.map +1 -1
- package/dist/test/mocks/models/mock-donation-request.js.map +1 -1
- package/dist/test/mocks/models/mock-success-response.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-payment.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-session.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-braintree-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-data-collector.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-googlepay-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-googlepay-library.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-grecaptcha.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfields-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfieldstateobject-generator.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-paypal-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-paypal-library.js.map +1 -1
- 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.js.map +1 -1
- 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.js.map +1 -1
- 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.js.map +1 -1
- 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.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-venmo-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/mock-payment-providers.js.map +1 -1
- package/dist/test/tests/braintree-manager.test.js.map +1 -1
- package/dist/test/tests/donation-form-controller.test.js +39 -39
- package/dist/test/tests/donation-form-controller.test.js.map +1 -1
- package/dist/test/tests/donation-form.test.js +4 -4
- package/dist/test/tests/donation-form.test.js.map +1 -1
- package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.js +14 -14
- package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.js.map +1 -1
- package/dist/test/tests/form-elements/donation-summary.test.js.map +1 -1
- package/dist/test/tests/form-elements/payment-selector.test.js.map +1 -1
- package/dist/test/tests/modals/error-modal-content.test.js +2 -2
- package/dist/test/tests/modals/error-modal-content.test.js.map +1 -1
- package/dist/test/tests/modals/upsell-modal-content.test.js +31 -31
- package/dist/test/tests/modals/upsell-modal-content.test.js.map +1 -1
- package/dist/test/tests/models/donation-payment-info.test.js.map +1 -1
- package/dist/test/tests/payment-clients.test.js.map +1 -1
- package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.js.map +1 -1
- package/dist/test/tests/payment-providers/applepay-sessionmanager.test.js.map +1 -1
- package/dist/test/tests/payment-providers/applepay.test.js.map +1 -1
- package/dist/test/tests/payment-providers/creditcard.test.js.map +1 -1
- package/dist/test/tests/payment-providers/googlepay.test.js.map +1 -1
- package/dist/test/tests/payment-providers/payment-providers.test.js.map +1 -1
- package/dist/test/tests/payment-providers/paypal-button-datasource.test.js.map +1 -1
- package/dist/test/tests/payment-providers/paypal.test.js.map +1 -1
- package/dist/test/tests/payment-providers/venmo.test.js.map +1 -1
- package/dist/test/tests/recaptcha-manager.test.js.map +1 -1
- package/package.json +107 -107
- 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 +281 -281
- package/src/braintree-manager/payment-clients.ts +146 -146
- 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 +97 -97
- 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 +623 -623
- package/src/donation-form-error.ts +6 -6
- package/src/donation-form.ts +576 -576
- package/src/form-elements/badged-input.ts +109 -109
- package/src/form-elements/contact-form/autocomplete-field-options.ts +63 -63
- package/src/form-elements/contact-form/contact-form.ts +434 -434
- package/src/form-elements/contact-form/countries.ts +252 -252
- package/src/form-elements/header/donation-form-header.ts +98 -98
- package/src/form-elements/header/donation-summary.ts +61 -61
- package/src/form-elements/payment-selector.ts +365 -365
- package/src/form-elements/total-amount.ts +46 -46
- package/src/modals/confirm-donation-modal-content.ts +168 -168
- package/src/modals/error-modal-content.ts +48 -48
- package/src/modals/upsell-modal-content.ts +284 -284
- package/src/payment-flow-handlers/donation-flow-modal-manager.ts +439 -439
- package/src/payment-flow-handlers/handlers/applepay-flow-handler.ts +109 -109
- package/src/payment-flow-handlers/handlers/creditcard-flow-handler.ts +232 -232
- package/src/payment-flow-handlers/handlers/googlepay-flow-handler.ts +111 -111
- package/src/payment-flow-handlers/handlers/paypal-flow-handler.ts +331 -331
- package/src/payment-flow-handlers/handlers/venmo-flow-handler.ts +119 -119
- 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/demo/app-root.d.ts +0 -0
- package/dist/demo/app-root.js +0 -2
- package/dist/demo/app-root.js.map +0 -1
|
@@ -1,262 +1,262 @@
|
|
|
1
|
-
import { callback } from './core';
|
|
2
|
-
import { Client } from './client';
|
|
3
|
-
|
|
4
|
-
export interface PayPalCheckoutCreatePaymentOptions {
|
|
5
|
-
flow: paypal.FlowType;
|
|
6
|
-
intent?: paypal.Intent;
|
|
7
|
-
offerCredit?: boolean;
|
|
8
|
-
amount?: string | number;
|
|
9
|
-
currency?: string;
|
|
10
|
-
displayName?: string;
|
|
11
|
-
locale?: string;
|
|
12
|
-
vaultInitiatedCheckoutPaymentMethodToken?: string;
|
|
13
|
-
shippingOptions?: paypal.ShippingOption[];
|
|
14
|
-
enableShippingAddress?: boolean;
|
|
15
|
-
shippingAddressOverride?: paypal.Address;
|
|
16
|
-
shippingAddressEditable?: boolean;
|
|
17
|
-
billingAgreementDescription?: string;
|
|
18
|
-
landingPageType?: string;
|
|
19
|
-
lineItems?: paypal.LineItem[];
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface PayPalCheckoutTokenizationOptions {
|
|
23
|
-
payerId: string;
|
|
24
|
-
paymentId?: string;
|
|
25
|
-
billingToken?: string;
|
|
26
|
-
vault?: boolean;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface PayPalCheckout {
|
|
30
|
-
/**
|
|
31
|
-
* @description There are two ways to integrate the PayPal Checkout component.
|
|
32
|
-
* See the [PayPal Checkout constructor documentation](PayPalCheckout.html#PayPalCheckout) for more information and examples.
|
|
33
|
-
* @example
|
|
34
|
-
* braintree.client.create({
|
|
35
|
-
* authorization: 'authorization'
|
|
36
|
-
* }).then(function (clientInstance) {
|
|
37
|
-
* return braintree.paypalCheckout.create({
|
|
38
|
-
* client: clientInstance
|
|
39
|
-
* });
|
|
40
|
-
* }).then(function (paypalCheckoutInstance) {
|
|
41
|
-
* // set up checkout.js
|
|
42
|
-
* }).catch(function (err) {
|
|
43
|
-
* console.error('Error!', err);
|
|
44
|
-
* });
|
|
45
|
-
*/
|
|
46
|
-
create(options: {
|
|
47
|
-
client?: Client;
|
|
48
|
-
authorization?: string;
|
|
49
|
-
merchantAccountId?: string;
|
|
50
|
-
}): Promise<PayPalCheckout>;
|
|
51
|
-
create(
|
|
52
|
-
options: { client?: Client; authorization?: string; merchantAccountId?: string },
|
|
53
|
-
callback?: callback,
|
|
54
|
-
): void;
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* @description The current version of the SDK, i.e. `3.0.2`.
|
|
58
|
-
*/
|
|
59
|
-
VERSION: string;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Creates a PayPal payment ID or billing token using the given options. This is meant to be passed to PayPal's checkout.js library.
|
|
63
|
-
* When a {@link callback} is defined, the function returns undefined and invokes the callback with the id to be used with the checkout.js
|
|
64
|
-
* library. Otherwise, it returns a Promise that resolves with the id.
|
|
65
|
-
* `authorize` - Submits the transaction for authorization but not settlement.
|
|
66
|
-
* `order` - Validates the transaction without an authorization (i.e. without holding funds).
|
|
67
|
-
* Useful for authorizing and capturing funds up to 90 days after the order has been placed. Only available for Checkout flow.
|
|
68
|
-
* `capture` - Payment will be immediately submitted for settlement upon creating a transaction.
|
|
69
|
-
* `sale` can be used as an alias for this value.
|
|
70
|
-
* Supported locales are:
|
|
71
|
-
* `da_DK`,
|
|
72
|
-
* `de_DE`,
|
|
73
|
-
* `en_AU`,
|
|
74
|
-
* `en_GB`,
|
|
75
|
-
* `en_US`,
|
|
76
|
-
* `es_ES`,
|
|
77
|
-
* `fr_CA`,
|
|
78
|
-
* `fr_FR`,
|
|
79
|
-
* `id_ID`,
|
|
80
|
-
* `it_IT`,
|
|
81
|
-
* `ja_JP`,
|
|
82
|
-
* `ko_KR`,
|
|
83
|
-
* `nl_NL`,
|
|
84
|
-
* `no_NO`,
|
|
85
|
-
* `pl_PL`,
|
|
86
|
-
* `pt_BR`,
|
|
87
|
-
* `pt_PT`,
|
|
88
|
-
* `ru_RU`,
|
|
89
|
-
* `sv_SE`,
|
|
90
|
-
* `th_TH`,
|
|
91
|
-
* `zh_CN`,
|
|
92
|
-
* `zh_HK`,
|
|
93
|
-
* and `zh_TW`.
|
|
94
|
-
* * * `login` - A PayPal account login page is used.
|
|
95
|
-
* * `billing` - A non-PayPal account landing page is used.
|
|
96
|
-
* // this paypal object is created by checkout.js
|
|
97
|
-
* // see https://github.com/paypal/paypal-checkout
|
|
98
|
-
* paypal.Buttons({
|
|
99
|
-
* createOrder: function () {
|
|
100
|
-
* // when createPayment resolves, it is automatically passed to checkout.js
|
|
101
|
-
* return paypalCheckoutInstance.createPayment({
|
|
102
|
-
* flow: 'checkout',
|
|
103
|
-
* amount: '10.00',
|
|
104
|
-
* currency: 'USD',
|
|
105
|
-
* intent: 'capture' // this value must either be `capture` or match the intent passed into the PayPal SDK intent query parameter
|
|
106
|
-
* });
|
|
107
|
-
* },
|
|
108
|
-
* // Add other options, e.g. onApproved, onCancel, onError
|
|
109
|
-
* }).render('#paypal-button');
|
|
110
|
-
*
|
|
111
|
-
* @example
|
|
112
|
-
* // shippingOptions are passed to createPayment. You can review the result from onAuthorize to determine which shipping option id was selected.
|
|
113
|
-
* ```javascript
|
|
114
|
-
* braintree.client.create({
|
|
115
|
-
* authorization: 'authorization'
|
|
116
|
-
* }).then(function (clientInstance) {
|
|
117
|
-
* return braintree.paypalCheckout.create({
|
|
118
|
-
* client: clientInstance
|
|
119
|
-
* });
|
|
120
|
-
* }).then(function (paypalCheckoutInstance) {
|
|
121
|
-
* return paypal.Button.render({
|
|
122
|
-
* env: 'production'
|
|
123
|
-
*
|
|
124
|
-
* payment: function () {
|
|
125
|
-
* return paypalCheckoutInstance.createPayment({
|
|
126
|
-
* flow: 'checkout',
|
|
127
|
-
* amount: '10.00',
|
|
128
|
-
* currency: 'USD',
|
|
129
|
-
* shippingOptions: [
|
|
130
|
-
* {
|
|
131
|
-
* id: 'UUID-9',
|
|
132
|
-
* type: 'PICKUP',
|
|
133
|
-
* label: 'Store Location Five',
|
|
134
|
-
* selected: true,
|
|
135
|
-
* amount: {
|
|
136
|
-
* value: '1.00',
|
|
137
|
-
* currency: 'USD'
|
|
138
|
-
* }
|
|
139
|
-
* },
|
|
140
|
-
* {
|
|
141
|
-
* id: 'shipping-speed-fast',
|
|
142
|
-
* type: 'SHIPPING',
|
|
143
|
-
* label: 'Fast Shipping',
|
|
144
|
-
* selected: false,
|
|
145
|
-
* amount: {
|
|
146
|
-
* value: '1.00',
|
|
147
|
-
* currency: 'USD'
|
|
148
|
-
* }
|
|
149
|
-
* },
|
|
150
|
-
* {
|
|
151
|
-
* id: 'shipping-speed-slow',
|
|
152
|
-
* type: 'SHIPPING',
|
|
153
|
-
* label: 'Slow Shipping',
|
|
154
|
-
* selected: false,
|
|
155
|
-
* amount: {
|
|
156
|
-
* value: '1.00',
|
|
157
|
-
* currency: 'USD'
|
|
158
|
-
* }
|
|
159
|
-
* }
|
|
160
|
-
* ]
|
|
161
|
-
* });
|
|
162
|
-
* },
|
|
163
|
-
*
|
|
164
|
-
* onAuthorize: function (data, actions) {
|
|
165
|
-
* return paypalCheckoutInstance.tokenizePayment(data).then(function (payload) {
|
|
166
|
-
* // Submit payload.nonce to your server
|
|
167
|
-
* });
|
|
168
|
-
* }
|
|
169
|
-
* }, '#paypal-button');
|
|
170
|
-
* }).catch(function (err) {
|
|
171
|
-
* console.error('Error!', err);
|
|
172
|
-
* });
|
|
173
|
-
* ```
|
|
174
|
-
*
|
|
175
|
-
*/
|
|
176
|
-
createPayment(options: PayPalCheckoutCreatePaymentOptions, callback?: callback): Promise<string>;
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Tokenizes the authorize data from PayPal's checkout.js library when completing a buyer approval flow.
|
|
180
|
-
* When a {@link callback} is defined, invokes the callback with {@link PayPalCheckout~tokenizePayload|tokenizePayload} and returns undefined.
|
|
181
|
-
* Otherwise, returns a Promise that resolves with a {@link PayPalCheckout~tokenizePayload|tokenizePayload}.
|
|
182
|
-
* @example <caption>Opt out of auto-vaulting behavior</caption>
|
|
183
|
-
* // create the paypalCheckoutInstance with a client token generated with a customer id
|
|
184
|
-
* paypal.Buttons({
|
|
185
|
-
* createBillingAgreement: function () {
|
|
186
|
-
* return paypalCheckoutInstance.createPayment({
|
|
187
|
-
* flow: 'vault'
|
|
188
|
-
* // your other createPayment options here
|
|
189
|
-
* });
|
|
190
|
-
* },
|
|
191
|
-
* onApproved: function (data) {
|
|
192
|
-
* data.vault = false;
|
|
193
|
-
*
|
|
194
|
-
* return paypalCheckoutInstance.tokenizePayment(data);
|
|
195
|
-
* },
|
|
196
|
-
* // Add other options, e.g. onCancel, onError
|
|
197
|
-
* }).render('#paypal-button');
|
|
198
|
-
*
|
|
199
|
-
*/
|
|
200
|
-
tokenizePayment(
|
|
201
|
-
tokenizeOptions: PayPalCheckoutTokenizationOptions,
|
|
202
|
-
): Promise<paypal.TokenizePayload>;
|
|
203
|
-
tokenizePayment(tokenizeOptions: PayPalCheckoutTokenizationOptions, callback?: callback): void;
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Resolves with the PayPal client id to be used when loading the PayPal SDK. * @example
|
|
207
|
-
* paypalCheckoutInstance.getClientId().then(function (id) {
|
|
208
|
-
* var script = document.createElement('script');
|
|
209
|
-
*
|
|
210
|
-
* script.src = 'https://www.paypal.com/sdk/js?client-id=' + id;
|
|
211
|
-
* script.onload = function () {
|
|
212
|
-
* // setup the PayPal SDK
|
|
213
|
-
* };
|
|
214
|
-
*
|
|
215
|
-
* document.body.appendChild(script);
|
|
216
|
-
* });
|
|
217
|
-
*/
|
|
218
|
-
getClientId(): Promise<string>;
|
|
219
|
-
getClientId(callback: (id: string) => void): void;
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
* Initializes the PayPal checkout flow with a payment method nonce that represents a vaulted PayPal account.
|
|
223
|
-
* When a {@link callback} is defined, the function returns undefined and invokes the callback with the id to be used with the checkout.js library.
|
|
224
|
-
* Otherwise, it returns a Promise that resolves with the id.
|
|
225
|
-
* `flow` cannot be set (will always be `'checkout'`)
|
|
226
|
-
* `amount`, `currency`, and `vaultInitiatedCheckoutPaymentMethodToken` are required instead of optional
|
|
227
|
-
* * Additional configuration is available (listed below)
|
|
228
|
-
* @example
|
|
229
|
-
* paypalCheckoutInstance.startVaultInitiatedCheckout({
|
|
230
|
-
* vaultInitiatedCheckoutPaymentMethodToken: 'nonce-that-represents-a-vaulted-paypal-account',
|
|
231
|
-
* amount: '10.00',
|
|
232
|
-
* currency: 'USD'
|
|
233
|
-
* }).then(function (payload) {
|
|
234
|
-
* // send payload.nonce to your server
|
|
235
|
-
* }).catch(function (err) {
|
|
236
|
-
* if (err.code === 'PAYPAL_POPUP_CLOSED') {
|
|
237
|
-
* // indicates that customer canceled by
|
|
238
|
-
* // manually closing the PayPal popup
|
|
239
|
-
* }
|
|
240
|
-
*
|
|
241
|
-
* // handle other errors
|
|
242
|
-
* });
|
|
243
|
-
*
|
|
244
|
-
*/
|
|
245
|
-
startVaultInitiatedCheckout(options: { optOutOfModalBackdrop: boolean }): Promise<void>;
|
|
246
|
-
startVaultInitiatedCheckout(
|
|
247
|
-
options: { optOutOfModalBackdrop: boolean },
|
|
248
|
-
callback: callback,
|
|
249
|
-
): void;
|
|
250
|
-
|
|
251
|
-
/**
|
|
252
|
-
* Cleanly tear down anything set up by {@link module:braintree-web/paypal-checkout.create|create}.
|
|
253
|
-
* @example
|
|
254
|
-
* paypalCheckoutInstance.teardown();
|
|
255
|
-
* @example <caption>With callback</caption>
|
|
256
|
-
* paypalCheckoutInstance.teardown(function () {
|
|
257
|
-
* // teardown is complete
|
|
258
|
-
* });
|
|
259
|
-
*/
|
|
260
|
-
teardown(callback: () => void): void;
|
|
261
|
-
teardown(): Promise<void>;
|
|
262
|
-
}
|
|
1
|
+
import { callback } from './core';
|
|
2
|
+
import { Client } from './client';
|
|
3
|
+
|
|
4
|
+
export interface PayPalCheckoutCreatePaymentOptions {
|
|
5
|
+
flow: paypal.FlowType;
|
|
6
|
+
intent?: paypal.Intent;
|
|
7
|
+
offerCredit?: boolean;
|
|
8
|
+
amount?: string | number;
|
|
9
|
+
currency?: string;
|
|
10
|
+
displayName?: string;
|
|
11
|
+
locale?: string;
|
|
12
|
+
vaultInitiatedCheckoutPaymentMethodToken?: string;
|
|
13
|
+
shippingOptions?: paypal.ShippingOption[];
|
|
14
|
+
enableShippingAddress?: boolean;
|
|
15
|
+
shippingAddressOverride?: paypal.Address;
|
|
16
|
+
shippingAddressEditable?: boolean;
|
|
17
|
+
billingAgreementDescription?: string;
|
|
18
|
+
landingPageType?: string;
|
|
19
|
+
lineItems?: paypal.LineItem[];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface PayPalCheckoutTokenizationOptions {
|
|
23
|
+
payerId: string;
|
|
24
|
+
paymentId?: string;
|
|
25
|
+
billingToken?: string;
|
|
26
|
+
vault?: boolean;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface PayPalCheckout {
|
|
30
|
+
/**
|
|
31
|
+
* @description There are two ways to integrate the PayPal Checkout component.
|
|
32
|
+
* See the [PayPal Checkout constructor documentation](PayPalCheckout.html#PayPalCheckout) for more information and examples.
|
|
33
|
+
* @example
|
|
34
|
+
* braintree.client.create({
|
|
35
|
+
* authorization: 'authorization'
|
|
36
|
+
* }).then(function (clientInstance) {
|
|
37
|
+
* return braintree.paypalCheckout.create({
|
|
38
|
+
* client: clientInstance
|
|
39
|
+
* });
|
|
40
|
+
* }).then(function (paypalCheckoutInstance) {
|
|
41
|
+
* // set up checkout.js
|
|
42
|
+
* }).catch(function (err) {
|
|
43
|
+
* console.error('Error!', err);
|
|
44
|
+
* });
|
|
45
|
+
*/
|
|
46
|
+
create(options: {
|
|
47
|
+
client?: Client;
|
|
48
|
+
authorization?: string;
|
|
49
|
+
merchantAccountId?: string;
|
|
50
|
+
}): Promise<PayPalCheckout>;
|
|
51
|
+
create(
|
|
52
|
+
options: { client?: Client; authorization?: string; merchantAccountId?: string },
|
|
53
|
+
callback?: callback,
|
|
54
|
+
): void;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @description The current version of the SDK, i.e. `3.0.2`.
|
|
58
|
+
*/
|
|
59
|
+
VERSION: string;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Creates a PayPal payment ID or billing token using the given options. This is meant to be passed to PayPal's checkout.js library.
|
|
63
|
+
* When a {@link callback} is defined, the function returns undefined and invokes the callback with the id to be used with the checkout.js
|
|
64
|
+
* library. Otherwise, it returns a Promise that resolves with the id.
|
|
65
|
+
* `authorize` - Submits the transaction for authorization but not settlement.
|
|
66
|
+
* `order` - Validates the transaction without an authorization (i.e. without holding funds).
|
|
67
|
+
* Useful for authorizing and capturing funds up to 90 days after the order has been placed. Only available for Checkout flow.
|
|
68
|
+
* `capture` - Payment will be immediately submitted for settlement upon creating a transaction.
|
|
69
|
+
* `sale` can be used as an alias for this value.
|
|
70
|
+
* Supported locales are:
|
|
71
|
+
* `da_DK`,
|
|
72
|
+
* `de_DE`,
|
|
73
|
+
* `en_AU`,
|
|
74
|
+
* `en_GB`,
|
|
75
|
+
* `en_US`,
|
|
76
|
+
* `es_ES`,
|
|
77
|
+
* `fr_CA`,
|
|
78
|
+
* `fr_FR`,
|
|
79
|
+
* `id_ID`,
|
|
80
|
+
* `it_IT`,
|
|
81
|
+
* `ja_JP`,
|
|
82
|
+
* `ko_KR`,
|
|
83
|
+
* `nl_NL`,
|
|
84
|
+
* `no_NO`,
|
|
85
|
+
* `pl_PL`,
|
|
86
|
+
* `pt_BR`,
|
|
87
|
+
* `pt_PT`,
|
|
88
|
+
* `ru_RU`,
|
|
89
|
+
* `sv_SE`,
|
|
90
|
+
* `th_TH`,
|
|
91
|
+
* `zh_CN`,
|
|
92
|
+
* `zh_HK`,
|
|
93
|
+
* and `zh_TW`.
|
|
94
|
+
* * * `login` - A PayPal account login page is used.
|
|
95
|
+
* * `billing` - A non-PayPal account landing page is used.
|
|
96
|
+
* // this paypal object is created by checkout.js
|
|
97
|
+
* // see https://github.com/paypal/paypal-checkout
|
|
98
|
+
* paypal.Buttons({
|
|
99
|
+
* createOrder: function () {
|
|
100
|
+
* // when createPayment resolves, it is automatically passed to checkout.js
|
|
101
|
+
* return paypalCheckoutInstance.createPayment({
|
|
102
|
+
* flow: 'checkout',
|
|
103
|
+
* amount: '10.00',
|
|
104
|
+
* currency: 'USD',
|
|
105
|
+
* intent: 'capture' // this value must either be `capture` or match the intent passed into the PayPal SDK intent query parameter
|
|
106
|
+
* });
|
|
107
|
+
* },
|
|
108
|
+
* // Add other options, e.g. onApproved, onCancel, onError
|
|
109
|
+
* }).render('#paypal-button');
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* // shippingOptions are passed to createPayment. You can review the result from onAuthorize to determine which shipping option id was selected.
|
|
113
|
+
* ```javascript
|
|
114
|
+
* braintree.client.create({
|
|
115
|
+
* authorization: 'authorization'
|
|
116
|
+
* }).then(function (clientInstance) {
|
|
117
|
+
* return braintree.paypalCheckout.create({
|
|
118
|
+
* client: clientInstance
|
|
119
|
+
* });
|
|
120
|
+
* }).then(function (paypalCheckoutInstance) {
|
|
121
|
+
* return paypal.Button.render({
|
|
122
|
+
* env: 'production'
|
|
123
|
+
*
|
|
124
|
+
* payment: function () {
|
|
125
|
+
* return paypalCheckoutInstance.createPayment({
|
|
126
|
+
* flow: 'checkout',
|
|
127
|
+
* amount: '10.00',
|
|
128
|
+
* currency: 'USD',
|
|
129
|
+
* shippingOptions: [
|
|
130
|
+
* {
|
|
131
|
+
* id: 'UUID-9',
|
|
132
|
+
* type: 'PICKUP',
|
|
133
|
+
* label: 'Store Location Five',
|
|
134
|
+
* selected: true,
|
|
135
|
+
* amount: {
|
|
136
|
+
* value: '1.00',
|
|
137
|
+
* currency: 'USD'
|
|
138
|
+
* }
|
|
139
|
+
* },
|
|
140
|
+
* {
|
|
141
|
+
* id: 'shipping-speed-fast',
|
|
142
|
+
* type: 'SHIPPING',
|
|
143
|
+
* label: 'Fast Shipping',
|
|
144
|
+
* selected: false,
|
|
145
|
+
* amount: {
|
|
146
|
+
* value: '1.00',
|
|
147
|
+
* currency: 'USD'
|
|
148
|
+
* }
|
|
149
|
+
* },
|
|
150
|
+
* {
|
|
151
|
+
* id: 'shipping-speed-slow',
|
|
152
|
+
* type: 'SHIPPING',
|
|
153
|
+
* label: 'Slow Shipping',
|
|
154
|
+
* selected: false,
|
|
155
|
+
* amount: {
|
|
156
|
+
* value: '1.00',
|
|
157
|
+
* currency: 'USD'
|
|
158
|
+
* }
|
|
159
|
+
* }
|
|
160
|
+
* ]
|
|
161
|
+
* });
|
|
162
|
+
* },
|
|
163
|
+
*
|
|
164
|
+
* onAuthorize: function (data, actions) {
|
|
165
|
+
* return paypalCheckoutInstance.tokenizePayment(data).then(function (payload) {
|
|
166
|
+
* // Submit payload.nonce to your server
|
|
167
|
+
* });
|
|
168
|
+
* }
|
|
169
|
+
* }, '#paypal-button');
|
|
170
|
+
* }).catch(function (err) {
|
|
171
|
+
* console.error('Error!', err);
|
|
172
|
+
* });
|
|
173
|
+
* ```
|
|
174
|
+
*
|
|
175
|
+
*/
|
|
176
|
+
createPayment(options: PayPalCheckoutCreatePaymentOptions, callback?: callback): Promise<string>;
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Tokenizes the authorize data from PayPal's checkout.js library when completing a buyer approval flow.
|
|
180
|
+
* When a {@link callback} is defined, invokes the callback with {@link PayPalCheckout~tokenizePayload|tokenizePayload} and returns undefined.
|
|
181
|
+
* Otherwise, returns a Promise that resolves with a {@link PayPalCheckout~tokenizePayload|tokenizePayload}.
|
|
182
|
+
* @example <caption>Opt out of auto-vaulting behavior</caption>
|
|
183
|
+
* // create the paypalCheckoutInstance with a client token generated with a customer id
|
|
184
|
+
* paypal.Buttons({
|
|
185
|
+
* createBillingAgreement: function () {
|
|
186
|
+
* return paypalCheckoutInstance.createPayment({
|
|
187
|
+
* flow: 'vault'
|
|
188
|
+
* // your other createPayment options here
|
|
189
|
+
* });
|
|
190
|
+
* },
|
|
191
|
+
* onApproved: function (data) {
|
|
192
|
+
* data.vault = false;
|
|
193
|
+
*
|
|
194
|
+
* return paypalCheckoutInstance.tokenizePayment(data);
|
|
195
|
+
* },
|
|
196
|
+
* // Add other options, e.g. onCancel, onError
|
|
197
|
+
* }).render('#paypal-button');
|
|
198
|
+
*
|
|
199
|
+
*/
|
|
200
|
+
tokenizePayment(
|
|
201
|
+
tokenizeOptions: PayPalCheckoutTokenizationOptions,
|
|
202
|
+
): Promise<paypal.TokenizePayload>;
|
|
203
|
+
tokenizePayment(tokenizeOptions: PayPalCheckoutTokenizationOptions, callback?: callback): void;
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Resolves with the PayPal client id to be used when loading the PayPal SDK. * @example
|
|
207
|
+
* paypalCheckoutInstance.getClientId().then(function (id) {
|
|
208
|
+
* var script = document.createElement('script');
|
|
209
|
+
*
|
|
210
|
+
* script.src = 'https://www.paypal.com/sdk/js?client-id=' + id;
|
|
211
|
+
* script.onload = function () {
|
|
212
|
+
* // setup the PayPal SDK
|
|
213
|
+
* };
|
|
214
|
+
*
|
|
215
|
+
* document.body.appendChild(script);
|
|
216
|
+
* });
|
|
217
|
+
*/
|
|
218
|
+
getClientId(): Promise<string>;
|
|
219
|
+
getClientId(callback: (id: string) => void): void;
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Initializes the PayPal checkout flow with a payment method nonce that represents a vaulted PayPal account.
|
|
223
|
+
* When a {@link callback} is defined, the function returns undefined and invokes the callback with the id to be used with the checkout.js library.
|
|
224
|
+
* Otherwise, it returns a Promise that resolves with the id.
|
|
225
|
+
* `flow` cannot be set (will always be `'checkout'`)
|
|
226
|
+
* `amount`, `currency`, and `vaultInitiatedCheckoutPaymentMethodToken` are required instead of optional
|
|
227
|
+
* * Additional configuration is available (listed below)
|
|
228
|
+
* @example
|
|
229
|
+
* paypalCheckoutInstance.startVaultInitiatedCheckout({
|
|
230
|
+
* vaultInitiatedCheckoutPaymentMethodToken: 'nonce-that-represents-a-vaulted-paypal-account',
|
|
231
|
+
* amount: '10.00',
|
|
232
|
+
* currency: 'USD'
|
|
233
|
+
* }).then(function (payload) {
|
|
234
|
+
* // send payload.nonce to your server
|
|
235
|
+
* }).catch(function (err) {
|
|
236
|
+
* if (err.code === 'PAYPAL_POPUP_CLOSED') {
|
|
237
|
+
* // indicates that customer canceled by
|
|
238
|
+
* // manually closing the PayPal popup
|
|
239
|
+
* }
|
|
240
|
+
*
|
|
241
|
+
* // handle other errors
|
|
242
|
+
* });
|
|
243
|
+
*
|
|
244
|
+
*/
|
|
245
|
+
startVaultInitiatedCheckout(options: { optOutOfModalBackdrop: boolean }): Promise<void>;
|
|
246
|
+
startVaultInitiatedCheckout(
|
|
247
|
+
options: { optOutOfModalBackdrop: boolean },
|
|
248
|
+
callback: callback,
|
|
249
|
+
): void;
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Cleanly tear down anything set up by {@link module:braintree-web/paypal-checkout.create|create}.
|
|
253
|
+
* @example
|
|
254
|
+
* paypalCheckoutInstance.teardown();
|
|
255
|
+
* @example <caption>With callback</caption>
|
|
256
|
+
* paypalCheckoutInstance.teardown(function () {
|
|
257
|
+
* // teardown is complete
|
|
258
|
+
* });
|
|
259
|
+
*/
|
|
260
|
+
teardown(callback: () => void): void;
|
|
261
|
+
teardown(): Promise<void>;
|
|
262
|
+
}
|