@internetarchive/donation-form 0.5.8-alpha.3 → 0.5.9-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/dist/src/braintree-manager/braintree-interfaces.d.ts +6 -0
- package/dist/src/braintree-manager/braintree-interfaces.js.map +1 -1
- package/dist/src/braintree-manager/braintree-manager.d.ts +4 -1
- package/dist/src/braintree-manager/braintree-manager.js +11 -0
- package/dist/src/braintree-manager/braintree-manager.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/credit-card/credit-card-interface.d.ts +6 -0
- 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 +12 -2
- package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.js +60 -8
- 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-container.d.ts +18 -5
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.js +15 -0
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers-interface.d.ts +4 -1
- package/dist/src/braintree-manager/payment-providers-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers.d.ts +4 -1
- package/dist/src/braintree-manager/payment-providers.js +13 -1
- package/dist/src/braintree-manager/payment-providers.js.map +1 -1
- package/dist/src/donation-form-controller.js +12 -0
- package/dist/src/donation-form-controller.js.map +1 -1
- package/dist/src/util/promisedSleep.d.ts +1 -0
- package/dist/src/util/promisedSleep.js +4 -0
- package/dist/src/util/promisedSleep.js.map +1 -0
- package/dist/test/mocks/mock-braintree-manager.d.ts +4 -1
- package/dist/test/mocks/mock-braintree-manager.js +5 -0
- package/dist/test/mocks/mock-braintree-manager.js.map +1 -1
- package/dist/test/mocks/mock-hosted-fields-container.d.ts +2 -0
- package/dist/test/mocks/mock-hosted-fields-container.js +6 -0
- package/dist/test/mocks/mock-hosted-fields-container.js.map +1 -1
- package/dist/test/mocks/mock-lazy-loader.js +0 -13
- package/dist/test/mocks/mock-lazy-loader.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.d.ts +4 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.js +5 -0
- package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/mock-payment-providers.d.ts +4 -1
- package/dist/test/mocks/payment-providers/mock-payment-providers.js +5 -0
- package/dist/test/mocks/payment-providers/mock-payment-providers.js.map +1 -1
- package/dist/test/tests/donation-form-controller.test.js +1 -1
- package/dist/test/tests/donation-form-controller.test.js.map +1 -1
- package/dist/test/tests/donation-form.test.js +1 -1
- package/dist/test/tests/donation-form.test.js.map +1 -1
- package/dist/test/tests/form-elements/payment-selector.test.js +1 -1
- package/dist/test/tests/form-elements/payment-selector.test.js.map +1 -1
- package/dist/test/tests/payment-providers/creditcard.test.js +101 -0
- package/dist/test/tests/payment-providers/creditcard.test.js.map +1 -1
- package/package.json +3 -2
- package/src/braintree-manager/braintree-interfaces.ts +11 -0
- package/src/braintree-manager/braintree-manager.ts +19 -0
- package/src/braintree-manager/payment-providers/credit-card/credit-card-interface.ts +10 -0
- package/src/braintree-manager/payment-providers/credit-card/credit-card.ts +79 -12
- package/src/braintree-manager/payment-providers/credit-card/hosted-field-container.ts +35 -8
- package/src/braintree-manager/payment-providers-interface.ts +12 -1
- package/src/braintree-manager/payment-providers.ts +22 -2
- package/src/donation-form-controller.ts +17 -3
- package/src/util/promisedSleep.ts +3 -0
|
@@ -9,12 +9,13 @@ import { PaymentClientsInterface } from './payment-clients';
|
|
|
9
9
|
import { GooglePayHandler } from './payment-providers/google-pay';
|
|
10
10
|
import { BraintreeManagerInterface, HostingEnvironment } from './braintree-interfaces';
|
|
11
11
|
import { HostedFieldConfiguration } from './payment-providers/credit-card/hosted-field-configuration';
|
|
12
|
-
import { PaymentProvidersInterface } from './payment-providers-interface';
|
|
12
|
+
import { PaymentProvidersEvents, PaymentProvidersInterface } from './payment-providers-interface';
|
|
13
13
|
import { ApplePayHandlerInterface } from './payment-providers/apple-pay/apple-pay-interface';
|
|
14
14
|
import { CreditCardHandlerInterface } from './payment-providers/credit-card/credit-card-interface';
|
|
15
15
|
import { VenmoHandlerInterface } from './payment-providers/venmo-interface';
|
|
16
16
|
import { PayPalHandlerInterface } from './payment-providers/paypal/paypal-interface';
|
|
17
17
|
import { GooglePayHandlerInterface } from './payment-providers/google-pay-interface';
|
|
18
|
+
import { createNanoEvents, Emitter, Unsubscribe } from 'nanoevents';
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
21
|
* The PaymentProviders class contains the IA-specific handlers for each of the
|
|
@@ -28,14 +29,31 @@ import { GooglePayHandlerInterface } from './payment-providers/google-pay-interf
|
|
|
28
29
|
* @implements {PaymentProvidersInterface}
|
|
29
30
|
*/
|
|
30
31
|
export class PaymentProviders implements PaymentProvidersInterface {
|
|
32
|
+
on<E extends keyof PaymentProvidersEvents>(
|
|
33
|
+
event: E,
|
|
34
|
+
callback: PaymentProvidersEvents[E],
|
|
35
|
+
): Unsubscribe {
|
|
36
|
+
return this.emitter.on(event, callback);
|
|
37
|
+
}
|
|
38
|
+
|
|
31
39
|
creditCardHandler = new PromisedSingleton<CreditCardHandlerInterface>({
|
|
32
40
|
generator: async (): Promise<CreditCardHandlerInterface> => {
|
|
33
41
|
const client = await this.paymentClients.hostedFields.get();
|
|
34
|
-
|
|
42
|
+
const handler = new CreditCardHandler({
|
|
35
43
|
braintreeManager: this.braintreeManager,
|
|
36
44
|
hostedFieldClient: client,
|
|
37
45
|
hostedFieldConfig: this.hostedFieldConfig,
|
|
38
46
|
});
|
|
47
|
+
|
|
48
|
+
handler.on('hostedFieldsRetry', (retryNumber: number) => {
|
|
49
|
+
this.emitter.emit('hostedFieldsRetry', retryNumber);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
handler.on('hostedFieldsFailed', (error: unknown) => {
|
|
53
|
+
this.emitter.emit('hostedFieldsFailed', error);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
return handler;
|
|
39
57
|
},
|
|
40
58
|
});
|
|
41
59
|
|
|
@@ -109,6 +127,8 @@ export class PaymentProviders implements PaymentProvidersInterface {
|
|
|
109
127
|
|
|
110
128
|
private paymentClients: PaymentClientsInterface;
|
|
111
129
|
|
|
130
|
+
private emitter = createNanoEvents<PaymentProvidersEvents>();
|
|
131
|
+
|
|
112
132
|
constructor(options: {
|
|
113
133
|
braintreeManager: BraintreeManagerInterface;
|
|
114
134
|
paymentClients: PaymentClientsInterface;
|
|
@@ -109,11 +109,11 @@ export class DonationFormController extends LitElement {
|
|
|
109
109
|
|
|
110
110
|
@query('donation-form') private donationForm!: DonationForm;
|
|
111
111
|
|
|
112
|
-
@query('#braintree-creditcard') private braintreeNumberInput!:
|
|
112
|
+
@query('#braintree-creditcard') private braintreeNumberInput!: HTMLDivElement;
|
|
113
113
|
|
|
114
|
-
@query('#braintree-cvv') private braintreeCVVInput!:
|
|
114
|
+
@query('#braintree-cvv') private braintreeCVVInput!: HTMLDivElement;
|
|
115
115
|
|
|
116
|
-
@query('#braintree-expiration') private braintreeExpirationDateInput!:
|
|
116
|
+
@query('#braintree-expiration') private braintreeExpirationDateInput!: HTMLDivElement;
|
|
117
117
|
|
|
118
118
|
@query('#braintree-error-message') private braintreeErrorMessage!: HTMLDivElement;
|
|
119
119
|
|
|
@@ -195,6 +195,20 @@ export class DonationFormController extends LitElement {
|
|
|
195
195
|
loggedInUser: this.loggedInUser,
|
|
196
196
|
origin: this.origin,
|
|
197
197
|
});
|
|
198
|
+
|
|
199
|
+
this.braintreeManager.on('paymentProvidersHostedFieldsRetry', (retryNumber: number) => {
|
|
200
|
+
const event = new CustomEvent('paymentProvidersHostedFieldsRetry', {
|
|
201
|
+
detail: { retryNumber },
|
|
202
|
+
});
|
|
203
|
+
this.dispatchEvent(event);
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
this.braintreeManager.on('paymentProvidersHostedFieldsFailed', (error: unknown) => {
|
|
207
|
+
const event = new CustomEvent('paymentProvidersHostedFieldsFailed', {
|
|
208
|
+
detail: { error },
|
|
209
|
+
});
|
|
210
|
+
this.dispatchEvent(event);
|
|
211
|
+
});
|
|
198
212
|
}
|
|
199
213
|
}
|
|
200
214
|
|