@primer-io/react-native 2.21.1 → 2.22.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/android/build.gradle +4 -4
- package/android/gradle/wrapper/gradle-wrapper.properties +1 -2
- package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +2 -2
- package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +10 -8
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckout.kt +2 -2
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +12 -10
- package/android/src/main/java/com/primerioreactnative/PrimerRNViewModelStoreOwner.kt +9 -0
- package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +9 -1
- package/android/src/main/java/com/primerioreactnative/components/events/PrimerHeadlessUniversalCheckoutComponentEvent.kt +10 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/asset/PrimerRNHeadlessUniversalCheckoutAssetManager.kt +8 -13
- package/android/src/main/java/com/primerioreactnative/components/manager/banks/PrimerRNHeadlessUniversalCheckoutBanksComponent.kt +284 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerKlarnaPaymentViewManager.kt +103 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.kt +334 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/nativeUi/PrimerRNHeadlessUniversalCheckoutNativeUiManager.kt +10 -8
- package/android/src/main/java/com/primerioreactnative/components/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManager.kt +2 -2
- package/android/src/main/java/com/primerioreactnative/components/manager/vault/PrimerRNHeadlessUniversalCheckoutVaultManager.kt +5 -9
- package/android/src/main/java/com/primerioreactnative/datamodels/NamedComponentStepRN.kt +7 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/NamedComponentValidatableDataRN.kt +7 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +8 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerIssuingBankRN.kt +11 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/banks/BanksCollectableDataRN.kt +17 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/banks/BanksStepRN.kt +20 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/extensions/banks/BanksCollectableData.kt +8 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/extensions/banks/BanksStep.kt +11 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/klarna/KlarnaPaymentCategoryRN.kt +11 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/klarna/KlarnaPaymentCollectableDataRN.kt +21 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/klarna/KlarnaPaymentStepRN.kt +31 -0
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerError.kt +13 -0
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerIssuingBank.kt +7 -0
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategory.kt +12 -0
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCategoryRN.kt +12 -0
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentCollectableData.kt +14 -0
- package/android/src/main/java/com/primerioreactnative/extensions/klarna/KlarnaPaymentStep.kt +21 -0
- package/android/src/main/java/com/primerioreactnative/utils/ErrorHelper.kt +3 -2
- package/android/src/main/java/com/primerioreactnative/utils/JsonConverter.kt +8 -1
- package/ios/ReactNative-Bridging-Header.h +1 -0
- package/ios/Sources/DataModels/Banks Component/RNTBanksCollectableData.swift +42 -0
- package/ios/Sources/DataModels/Banks Component/RNTBanksStep.swift +36 -0
- package/ios/Sources/DataModels/Klarna Component/PrimerHeadlessUniversalCheckoutComponentEvent.swift +36 -0
- package/ios/Sources/DataModels/Klarna Component/RNTKlarnaCollectableData.swift +36 -0
- package/ios/Sources/DataModels/Klarna Component/RNTKlarnaPaymentCategory.swift +33 -0
- package/ios/Sources/DataModels/Klarna Component/RNTKlarnaStep.swift +61 -0
- package/ios/Sources/DataModels/Klarna Component/RNTPrimerError.swift +67 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Klarna/KlarnaPaymentView Manager/RNTPrimerKlarnaPaymentViewManager.h +14 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Klarna/KlarnaPaymentView Manager/RNTPrimerKlarnaPaymentViewManager.m +25 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.m +27 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Klarna/PrimerRNHeadlessUniversalCheckoutKlarnaComponent.swift +272 -0
- package/ios/Sources/Headless Universal Checkout/Managers/RNTRedirectManager.m +25 -0
- package/ios/Sources/Headless Universal Checkout/Managers/RNTRedirectManager.swift +183 -0
- package/ios/Sources/version.swift +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js +9 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +103 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js +99 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +4 -4
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js +8 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +3 -2
- package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/commonjs/Primer.js +2 -1
- package/lib/commonjs/Primer.js.map +1 -1
- package/lib/commonjs/index.js +186 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/IssuingBank.js +2 -0
- package/lib/commonjs/models/IssuingBank.js.map +1 -0
- package/lib/commonjs/models/NamedComponentStep.js +2 -0
- package/lib/commonjs/models/NamedComponentStep.js.map +1 -0
- package/lib/commonjs/models/NamedComponentValidatableData.js +2 -0
- package/lib/commonjs/models/NamedComponentValidatableData.js.map +1 -0
- package/lib/commonjs/models/PrimerComponentDataValidation.js +6 -0
- package/lib/commonjs/models/PrimerComponentDataValidation.js.map +1 -0
- package/lib/commonjs/models/PrimerError.js +2 -1
- package/lib/commonjs/models/PrimerError.js.map +1 -1
- package/lib/commonjs/models/banks/BanksCollectableData.js +6 -0
- package/lib/commonjs/models/banks/BanksCollectableData.js.map +1 -0
- package/lib/commonjs/models/banks/BanksSteps.js +6 -0
- package/lib/commonjs/models/banks/BanksSteps.js.map +1 -0
- package/lib/commonjs/models/klarna/KlarnaPaymentCategory.js +2 -0
- package/lib/commonjs/models/klarna/KlarnaPaymentCategory.js.map +1 -0
- package/lib/commonjs/models/klarna/KlarnaPaymentCollectableData.js +6 -0
- package/lib/commonjs/models/klarna/KlarnaPaymentCollectableData.js.map +1 -0
- package/lib/commonjs/models/klarna/KlarnaPaymentSteps.js +6 -0
- package/lib/commonjs/models/klarna/KlarnaPaymentSteps.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js +3 -0
- package/lib/module/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js +96 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js +92 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +4 -4
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js +2 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +3 -2
- package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/module/Primer.js +2 -1
- package/lib/module/Primer.js.map +1 -1
- package/lib/module/index.js +24 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/IssuingBank.js +2 -0
- package/lib/module/models/IssuingBank.js.map +1 -0
- package/lib/module/models/NamedComponentStep.js +2 -0
- package/lib/module/models/NamedComponentStep.js.map +1 -0
- package/lib/module/models/NamedComponentValidatableData.js +2 -0
- package/lib/module/models/NamedComponentValidatableData.js.map +1 -0
- package/lib/module/models/PrimerComponentDataValidation.js +2 -0
- package/lib/module/models/PrimerComponentDataValidation.js.map +1 -0
- package/lib/module/models/PrimerError.js +2 -1
- package/lib/module/models/PrimerError.js.map +1 -1
- package/lib/module/models/banks/BanksCollectableData.js +2 -0
- package/lib/module/models/banks/BanksCollectableData.js.map +1 -0
- package/lib/module/models/banks/BanksSteps.js +2 -0
- package/lib/module/models/banks/BanksSteps.js.map +1 -0
- package/lib/module/models/klarna/KlarnaPaymentCategory.js +2 -0
- package/lib/module/models/klarna/KlarnaPaymentCategory.js.map +1 -0
- package/lib/module/models/klarna/KlarnaPaymentCollectableData.js +2 -0
- package/lib/module/models/klarna/KlarnaPaymentCollectableData.js.map +1 -0
- package/lib/module/models/klarna/KlarnaPaymentSteps.js +2 -0
- package/lib/module/models/klarna/KlarnaPaymentSteps.js.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.d.ts +2 -0
- package/lib/typescript/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts +54 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts +50 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.d.ts +3 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.d.ts.map +1 -0
- package/lib/typescript/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.d.ts.map +1 -1
- package/lib/typescript/Primer.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +26 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/IssuingBank.d.ts +9 -0
- package/lib/typescript/models/IssuingBank.d.ts.map +1 -0
- package/lib/typescript/models/NamedComponentStep.d.ts +12 -0
- package/lib/typescript/models/NamedComponentStep.d.ts.map +1 -0
- package/lib/typescript/models/NamedComponentValidatableData.d.ts +12 -0
- package/lib/typescript/models/NamedComponentValidatableData.d.ts.map +1 -0
- package/lib/typescript/models/PrimerComponentDataValidation.d.ts +54 -0
- package/lib/typescript/models/PrimerComponentDataValidation.d.ts.map +1 -0
- package/lib/typescript/models/PrimerError.d.ts +2 -6
- package/lib/typescript/models/PrimerError.d.ts.map +1 -1
- package/lib/typescript/models/PrimerValidationError.d.ts +3 -3
- package/lib/typescript/models/PrimerValidationError.d.ts.map +1 -1
- package/lib/typescript/models/banks/BanksCollectableData.d.ts +23 -0
- package/lib/typescript/models/banks/BanksCollectableData.d.ts.map +1 -0
- package/lib/typescript/models/banks/BanksSteps.d.ts +20 -0
- package/lib/typescript/models/banks/BanksSteps.d.ts.map +1 -0
- package/lib/typescript/models/klarna/KlarnaPaymentCategory.d.ts +24 -0
- package/lib/typescript/models/klarna/KlarnaPaymentCategory.d.ts.map +1 -0
- package/lib/typescript/models/klarna/KlarnaPaymentCollectableData.d.ts +24 -0
- package/lib/typescript/models/klarna/KlarnaPaymentCollectableData.d.ts.map +1 -0
- package/lib/typescript/models/klarna/KlarnaPaymentSteps.d.ts +36 -0
- package/lib/typescript/models/klarna/KlarnaPaymentSteps.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView.tsx +5 -0
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.ts +161 -0
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager.ts +147 -0
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.ts +4 -4
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/Utils/EventType.ts +10 -0
- package/src/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.ts +3 -2
- package/src/Primer.ts +2 -1
- package/src/index.tsx +62 -62
- package/src/models/IssuingBank.ts +8 -0
- package/src/models/NamedComponentStep.ts +11 -0
- package/src/models/NamedComponentValidatableData.ts +11 -0
- package/src/models/PrimerComponentDataValidation.ts +60 -0
- package/src/models/PrimerError.ts +8 -14
- package/src/models/PrimerValidationError.ts +3 -3
- package/src/models/banks/BanksCollectableData.ts +25 -0
- package/src/models/banks/BanksSteps.ts +22 -0
- package/src/models/klarna/KlarnaPaymentCategory.ts +23 -0
- package/src/models/klarna/KlarnaPaymentCollectableData.ts +26 -0
- package/src/models/klarna/KlarnaPaymentSteps.ts +36 -0
- /package/ios/Sources/Headless Universal Checkout/Managers/{RNTAssetsManager.m → Assets Manager/RNTAssetsManager.m} +0 -0
- /package/ios/Sources/Headless Universal Checkout/Managers/{RNTAssetsManager.swift → Assets Manager/RNTAssetsManager.swift} +0 -0
package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager.ts
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import {
|
|
2
|
+
NativeEventEmitter,
|
|
3
|
+
NativeModules,
|
|
4
|
+
EmitterSubscription,
|
|
5
|
+
} from 'react-native';
|
|
6
|
+
import { BanksValidatableData } from 'src/models/banks/BanksCollectableData';
|
|
7
|
+
import { NamedComponentStep } from 'src/models/NamedComponentStep';
|
|
8
|
+
import { IssuingBank } from 'src/models/IssuingBank';
|
|
9
|
+
import { PrimerComponentDataValidationError, PrimerInvalidComponentData, PrimerValidComponentData, PrimerValidatingComponentData } from 'src/models/PrimerComponentDataValidation';
|
|
10
|
+
import { PrimerError } from 'src/models/PrimerError';
|
|
11
|
+
import { BanksStep } from 'src/models/banks/BanksSteps';
|
|
12
|
+
import { EventType, eventTypes } from './Utils/EventType';
|
|
13
|
+
|
|
14
|
+
const { RNTPrimerHeadlessUniversalCheckoutBanksComponent } =
|
|
15
|
+
NativeModules;
|
|
16
|
+
|
|
17
|
+
const eventEmitter = new NativeEventEmitter(
|
|
18
|
+
RNTPrimerHeadlessUniversalCheckoutBanksComponent
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
export interface ComponentWithRedirectManagerProps {
|
|
22
|
+
paymentMethodType: string;
|
|
23
|
+
onStep?: (data: BanksStep) => void;
|
|
24
|
+
onError?: (error: PrimerError) => void;
|
|
25
|
+
onInvalid?: (data: PrimerInvalidComponentData<BanksValidatableData>) => void;
|
|
26
|
+
onValid?: (data: PrimerValidComponentData<BanksValidatableData>) => void;
|
|
27
|
+
onValidating?: (data: PrimerValidatingComponentData<BanksValidatableData>) => void;
|
|
28
|
+
onValidationError?: (data: PrimerComponentDataValidationError<BanksValidatableData>) => void;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface BanksComponent {
|
|
32
|
+
/**
|
|
33
|
+
* Starts the component, causing step emissions.
|
|
34
|
+
* First, with a {@link NamedComponentStep} instance where
|
|
35
|
+
* {@link NamedComponentStep.name} has a value of 'loading', followed
|
|
36
|
+
* by another emission that contains the list of banks in the form of an
|
|
37
|
+
* {@link IssuingBank} array.
|
|
38
|
+
*/
|
|
39
|
+
start(): Promise<void>;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Selects the bank with the given {@link bankId}, triggering the
|
|
43
|
+
* validation flow.
|
|
44
|
+
* @param bankId The id of the selected bank.
|
|
45
|
+
*/
|
|
46
|
+
onBankSelected(bankId: string): Promise<void>;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Filters down the bank list with the given {@link filter}, triggering
|
|
50
|
+
* the validation flow and a new step emission that contains the filtered
|
|
51
|
+
* list of banks in the form of an {@link IssuingBank} array.
|
|
52
|
+
* @param filter The text to filter the bank list by.
|
|
53
|
+
*/
|
|
54
|
+
onBankFilterChange(filter: string): Promise<void>;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Submits the component, triggering tokenization and a redirect to the
|
|
58
|
+
* bank's page for finalizing the payment. This function should only be
|
|
59
|
+
* called after selecting a bank via {@link onBankSelected}.
|
|
60
|
+
*/
|
|
61
|
+
submit(): Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export class PrimerHeadlessUniversalCheckoutComponentWithRedirectManager {
|
|
65
|
+
///////////////////////////////////////////
|
|
66
|
+
// Init
|
|
67
|
+
///////////////////////////////////////////
|
|
68
|
+
constructor() { }
|
|
69
|
+
|
|
70
|
+
///////////////////////////////////////////
|
|
71
|
+
// API
|
|
72
|
+
///////////////////////////////////////////
|
|
73
|
+
|
|
74
|
+
async provide(props: ComponentWithRedirectManagerProps): Promise<BanksComponent | any> {
|
|
75
|
+
await this.configureListeners(props);
|
|
76
|
+
|
|
77
|
+
if (props.paymentMethodType == "ADYEN_IDEAL") {
|
|
78
|
+
const banksComponent: BanksComponent = {
|
|
79
|
+
start: async () => {
|
|
80
|
+
RNTPrimerHeadlessUniversalCheckoutBanksComponent.start();
|
|
81
|
+
},
|
|
82
|
+
submit: async () => {
|
|
83
|
+
RNTPrimerHeadlessUniversalCheckoutBanksComponent.submit();
|
|
84
|
+
},
|
|
85
|
+
onBankFilterChange: async (filter: String) => {
|
|
86
|
+
RNTPrimerHeadlessUniversalCheckoutBanksComponent.onBankFilterChange(filter);
|
|
87
|
+
},
|
|
88
|
+
onBankSelected: async (bankId: String) => {
|
|
89
|
+
RNTPrimerHeadlessUniversalCheckoutBanksComponent.onBankSelected(bankId);
|
|
90
|
+
},
|
|
91
|
+
}
|
|
92
|
+
await RNTPrimerHeadlessUniversalCheckoutBanksComponent.configure(props.paymentMethodType);
|
|
93
|
+
return banksComponent;
|
|
94
|
+
} else {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
private async configureListeners(props: ComponentWithRedirectManagerProps): Promise<void> {
|
|
100
|
+
if (props?.onStep) {
|
|
101
|
+
this.addListener('onStep', (data) => {
|
|
102
|
+
props.onStep?.(data);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (props?.onInvalid) {
|
|
107
|
+
this.addListener('onInvalid', (data) => {
|
|
108
|
+
props.onInvalid?.(data);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (props?.onError) {
|
|
113
|
+
this.addListener('onError', (data) => {
|
|
114
|
+
props.onError?.(data);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (props?.onValid) {
|
|
119
|
+
this.addListener('onValid', (data) => {
|
|
120
|
+
props.onValid?.(data);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
if (props?.onValidating) {
|
|
125
|
+
this.addListener('onValidating', (data) => {
|
|
126
|
+
props.onValidating?.(data);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (props?.onValidationError) {
|
|
131
|
+
this.addListener('onValidationError', (data) => {
|
|
132
|
+
props.onValidationError?.(data);
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
///////////////////////////////////////////
|
|
138
|
+
// HELPERS
|
|
139
|
+
///////////////////////////////////////////
|
|
140
|
+
|
|
141
|
+
async addListener(
|
|
142
|
+
eventType: EventType,
|
|
143
|
+
listener: (...args: any[]) => any
|
|
144
|
+
): Promise<EmitterSubscription> {
|
|
145
|
+
return eventEmitter.addListener(eventType, listener);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
removeListener(subscription: EmitterSubscription): void {
|
|
149
|
+
return subscription.remove();
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
removeAllListenersForEvent(eventType: EventType) {
|
|
153
|
+
eventEmitter.removeAllListeners(eventType);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
removeAllListeners() {
|
|
157
|
+
eventTypes.forEach((eventType) =>
|
|
158
|
+
this.removeAllListenersForEvent(eventType)
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import {
|
|
2
|
+
NativeEventEmitter,
|
|
3
|
+
NativeModules,
|
|
4
|
+
EmitterSubscription,
|
|
5
|
+
} from 'react-native';
|
|
6
|
+
import { PrimerComponentDataValidationError, PrimerInvalidComponentData, PrimerValidComponentData, PrimerValidatingComponentData } from 'src/models/PrimerComponentDataValidation';
|
|
7
|
+
import { PrimerError } from 'src/models/PrimerError';
|
|
8
|
+
import { KlarnaPaymentOptions, KlarnaPaymentValidatableData } from 'src/models/klarna/KlarnaPaymentCollectableData';
|
|
9
|
+
import { KlarnaPaymentStep, PaymentSessionCreated } from 'src/models/klarna/KlarnaPaymentSteps';
|
|
10
|
+
import { EventType, eventTypes } from './Utils/EventType';
|
|
11
|
+
import { PrimerSessionIntent } from 'src/models/PrimerSessionIntent';
|
|
12
|
+
|
|
13
|
+
const { RNTPrimerHeadlessUniversalCheckoutKlarnaComponent } = NativeModules;
|
|
14
|
+
|
|
15
|
+
const eventEmitter = new NativeEventEmitter(RNTPrimerHeadlessUniversalCheckoutKlarnaComponent);
|
|
16
|
+
export interface KlarnaManagerProps {
|
|
17
|
+
primerSessionIntent: PrimerSessionIntent;
|
|
18
|
+
onStep?: (data: KlarnaPaymentStep) => void;
|
|
19
|
+
onError?: (error: PrimerError) => void;
|
|
20
|
+
onInvalid?: (data: PrimerInvalidComponentData<KlarnaPaymentValidatableData>) => void;
|
|
21
|
+
onValid?: (data: PrimerValidComponentData<KlarnaPaymentValidatableData>) => void;
|
|
22
|
+
onValidating?: (data: PrimerValidatingComponentData<KlarnaPaymentValidatableData>) => void;
|
|
23
|
+
onValidationError?: (data: PrimerComponentDataValidationError<KlarnaPaymentValidatableData>) => void;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface KlarnaComponent {
|
|
27
|
+
/**
|
|
28
|
+
* Starts the component, causing the {@link PaymentSessionCreated} step
|
|
29
|
+
* to be emitted.
|
|
30
|
+
*/
|
|
31
|
+
start(): Promise<void>;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Sets the options to use when initializing the Klarna payment view,
|
|
35
|
+
* triggering the validation flow.
|
|
36
|
+
* @param paymentOptions The options to use when initializing the Klarna
|
|
37
|
+
* payment view.
|
|
38
|
+
*/
|
|
39
|
+
onSetPaymentOptions(paymentOptions: KlarnaPaymentOptions): Promise<void>;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Finalizes the payment.
|
|
43
|
+
*/
|
|
44
|
+
onFinalizePayment(): Promise<void>;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Submits the component, initiating the payment authorization process.
|
|
48
|
+
* This function should only be called after setting the payment options
|
|
49
|
+
* {@link onSetPaymentOptions}.
|
|
50
|
+
*/
|
|
51
|
+
submit(): Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export class PrimerHeadlessUniversalCheckoutKlarnaManager {
|
|
55
|
+
///////////////////////////////////////////
|
|
56
|
+
// Init
|
|
57
|
+
///////////////////////////////////////////
|
|
58
|
+
constructor() { }
|
|
59
|
+
|
|
60
|
+
///////////////////////////////////////////
|
|
61
|
+
// API
|
|
62
|
+
///////////////////////////////////////////
|
|
63
|
+
|
|
64
|
+
async provide(props: KlarnaManagerProps): Promise<KlarnaComponent> {
|
|
65
|
+
await this.configureListeners(props);
|
|
66
|
+
|
|
67
|
+
const klarnaComponent: KlarnaComponent = {
|
|
68
|
+
start: async () => {
|
|
69
|
+
RNTPrimerHeadlessUniversalCheckoutKlarnaComponent.start();
|
|
70
|
+
},
|
|
71
|
+
submit: async () => {
|
|
72
|
+
RNTPrimerHeadlessUniversalCheckoutKlarnaComponent.submit();
|
|
73
|
+
},
|
|
74
|
+
onSetPaymentOptions: async (paymentOptions: KlarnaPaymentOptions) => {
|
|
75
|
+
RNTPrimerHeadlessUniversalCheckoutKlarnaComponent.onSetPaymentOptions(paymentOptions);
|
|
76
|
+
},
|
|
77
|
+
onFinalizePayment: async () => {
|
|
78
|
+
RNTPrimerHeadlessUniversalCheckoutKlarnaComponent.onFinalizePayment();
|
|
79
|
+
},
|
|
80
|
+
}
|
|
81
|
+
await RNTPrimerHeadlessUniversalCheckoutKlarnaComponent.configure(props.primerSessionIntent);
|
|
82
|
+
return klarnaComponent;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
private async configureListeners(props: KlarnaManagerProps): Promise<void> {
|
|
86
|
+
if (props?.onStep) {
|
|
87
|
+
this.addListener('onStep', (data) => {
|
|
88
|
+
props.onStep?.(data);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (props?.onInvalid) {
|
|
93
|
+
this.addListener('onInvalid', (data) => {
|
|
94
|
+
props.onInvalid?.(data);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (props?.onError) {
|
|
99
|
+
this.addListener('onError', (data) => {
|
|
100
|
+
props.onError?.(data);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (props?.onValid) {
|
|
105
|
+
this.addListener('onValid', (data) => {
|
|
106
|
+
props.onValid?.(data);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (props?.onValidating) {
|
|
111
|
+
this.addListener('onValidating', (data) => {
|
|
112
|
+
props.onValidating?.(data);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
if (props?.onValidationError) {
|
|
117
|
+
this.addListener('onValidationError', (data) => {
|
|
118
|
+
props.onValidationError?.(data);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
///////////////////////////////////////////
|
|
124
|
+
// HELPERS
|
|
125
|
+
///////////////////////////////////////////
|
|
126
|
+
|
|
127
|
+
async addListener(
|
|
128
|
+
eventType: EventType,
|
|
129
|
+
listener: (...args: any[]) => any
|
|
130
|
+
): Promise<EmitterSubscription> {
|
|
131
|
+
return eventEmitter.addListener(eventType, listener);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
removeListener(subscription: EmitterSubscription): void {
|
|
135
|
+
return subscription.remove();
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
removeAllListenersForEvent(eventType: EventType) {
|
|
139
|
+
eventEmitter.removeAllListeners(eventType);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
removeAllListeners() {
|
|
143
|
+
eventTypes.forEach((eventType) =>
|
|
144
|
+
this.removeAllListenersForEvent(eventType)
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
@@ -86,7 +86,7 @@ class PrimerHeadlessUniversalCheckoutRawDataManager {
|
|
|
86
86
|
reject(err);
|
|
87
87
|
}
|
|
88
88
|
} else {
|
|
89
|
-
const err = new PrimerError("manager-not-configured", "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
|
|
89
|
+
const err = new PrimerError("manager-not-configured", undefined, "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
|
|
90
90
|
reject(err);
|
|
91
91
|
}
|
|
92
92
|
});
|
|
@@ -102,7 +102,7 @@ class PrimerHeadlessUniversalCheckoutRawDataManager {
|
|
|
102
102
|
reject(err);
|
|
103
103
|
}
|
|
104
104
|
} else {
|
|
105
|
-
const err = new PrimerError("manager-not-configured", "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
|
|
105
|
+
const err = new PrimerError("manager-not-configured", undefined, "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
|
|
106
106
|
reject(err);
|
|
107
107
|
}
|
|
108
108
|
});
|
|
@@ -118,7 +118,7 @@ class PrimerHeadlessUniversalCheckoutRawDataManager {
|
|
|
118
118
|
reject(err);
|
|
119
119
|
}
|
|
120
120
|
} else {
|
|
121
|
-
const err = new PrimerError("manager-not-configured", "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
|
|
121
|
+
const err = new PrimerError("manager-not-configured", undefined, "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
|
|
122
122
|
reject(err);
|
|
123
123
|
}
|
|
124
124
|
});
|
|
@@ -134,7 +134,7 @@ class PrimerHeadlessUniversalCheckoutRawDataManager {
|
|
|
134
134
|
reject(err);
|
|
135
135
|
}
|
|
136
136
|
} else {
|
|
137
|
-
const err = new PrimerError("manager-not-configured", "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
|
|
137
|
+
const err = new PrimerError("manager-not-configured", undefined, "HeadlessUniversalCheckoutRawDataManager has not been configured", "Call HeadlessUniversalCheckoutRawDataManager.configure before calling this function.", undefined);
|
|
138
138
|
reject(err);
|
|
139
139
|
}
|
|
140
140
|
});
|
|
@@ -266,10 +266,11 @@ async function configureListeners(): Promise<void> {
|
|
|
266
266
|
if (primerSettings?.headlessUniversalCheckoutCallbacks?.onError) {
|
|
267
267
|
if (data && data.error && data.error.errorId && primerSettings) {
|
|
268
268
|
const errorId: string = data.error.errorId;
|
|
269
|
+
const errorCode: string | undefined = data.error.errorCode;
|
|
269
270
|
const description: string | undefined = data.error.description;
|
|
270
271
|
const recoverySuggestion: string | undefined = data.error.recoverySuggestion;
|
|
271
272
|
const diagnosticsId: string | undefined = data.error.diagnosticsId;
|
|
272
|
-
const primerError = new PrimerError(errorId, description || 'Unknown error', recoverySuggestion, diagnosticsId);
|
|
273
|
+
const primerError = new PrimerError(errorId, errorCode, description || 'Unknown error', recoverySuggestion, diagnosticsId);
|
|
273
274
|
|
|
274
275
|
const checkoutData: PrimerCheckoutData = data.checkoutData;
|
|
275
276
|
primerSettings.headlessUniversalCheckoutCallbacks.onError(primerError, checkoutData);
|
|
@@ -316,7 +317,7 @@ class PrimerHeadlessUniversalCheckoutClass {
|
|
|
316
317
|
const availablePaymentMethods: IPrimerHeadlessUniversalCheckoutPaymentMethod[] = res["availablePaymentMethods"];
|
|
317
318
|
resolve(availablePaymentMethods);
|
|
318
319
|
} else {
|
|
319
|
-
const err = new PrimerError("primer-rn-sdk", "Failed to find availablePaymentMethods", "Create another client session", undefined);
|
|
320
|
+
const err = new PrimerError("primer-rn-sdk", undefined, "Failed to find availablePaymentMethods", "Create another client session", undefined);
|
|
320
321
|
reject(err);
|
|
321
322
|
}
|
|
322
323
|
} catch (err) {
|
package/src/Primer.ts
CHANGED
|
@@ -224,10 +224,11 @@ async function configureListeners(): Promise<void> {
|
|
|
224
224
|
RNPrimer.addListener('onError', data => {
|
|
225
225
|
if (data && data.error && data.error.errorId && primerSettings && primerSettings.onError) {
|
|
226
226
|
const errorId: string = data.error.errorId;
|
|
227
|
+
const errorCode: string | undefined = data.error.errorCode;
|
|
227
228
|
const description: string | undefined = data.error.description;
|
|
228
229
|
const recoverySuggestion: string | undefined = data.error.recoverySuggestion;
|
|
229
230
|
const diagnosticsId: string | undefined = data.error.diagnosticsId;
|
|
230
|
-
const primerError = new PrimerError(errorId, description || 'Unknown error', recoverySuggestion, diagnosticsId);
|
|
231
|
+
const primerError = new PrimerError(errorId, errorCode, description || 'Unknown error', recoverySuggestion, diagnosticsId);
|
|
231
232
|
primerSettings.onError(primerError, data.checkoutData || null, errorHandler);
|
|
232
233
|
}
|
|
233
234
|
});
|
package/src/index.tsx
CHANGED
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
export {
|
|
2
|
-
|
|
3
|
-
} from './
|
|
4
|
-
export {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export {
|
|
11
|
-
PrimerSessionIntent as SessionIntent
|
|
12
|
-
} from './models/PrimerSessionIntent';
|
|
13
|
-
export {
|
|
14
|
-
PrimerPaymentCreationHandler as PaymentCreationHandler,
|
|
15
|
-
PrimerTokenizationHandler as TokenizationHandler,
|
|
16
|
-
PrimerResumeHandler as ResumeHandler,
|
|
17
|
-
PrimerErrorHandler as ErrorHandler,
|
|
1
|
+
export { Primer } from './Primer';
|
|
2
|
+
export { PrimerSettings } from './models/PrimerSettings';
|
|
3
|
+
export { PrimerInputElementType as InputElementType } from './models/PrimerInputElementType';
|
|
4
|
+
export { PrimerSessionIntent as SessionIntent } from './models/PrimerSessionIntent';
|
|
5
|
+
export {
|
|
6
|
+
PrimerPaymentCreationHandler as PaymentCreationHandler,
|
|
7
|
+
PrimerTokenizationHandler as TokenizationHandler,
|
|
8
|
+
PrimerResumeHandler as ResumeHandler,
|
|
9
|
+
PrimerErrorHandler as ErrorHandler,
|
|
18
10
|
} from './models/PrimerHandlers';
|
|
19
11
|
export { PrimerPaymentMethodTokenData } from './models/PrimerPaymentMethodTokenData';
|
|
20
12
|
export {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
13
|
+
PrimerClientSession as ClientSession,
|
|
14
|
+
PrimerOrder as Order,
|
|
15
|
+
PrimerLineItem as LineItem,
|
|
16
|
+
PrimerCustomer as Customer,
|
|
17
|
+
PrimerAddress as Address,
|
|
26
18
|
} from './models/PrimerClientSession';
|
|
27
19
|
export {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
20
|
+
PrimerRawData as RawData,
|
|
21
|
+
PrimerCardData as CardData,
|
|
22
|
+
PrimerBancontactCardData as BancontactCardData,
|
|
23
|
+
PrimerPhoneNumberData as PhoneNumberData,
|
|
24
|
+
PrimerRetailerData as RetailerData,
|
|
33
25
|
} from './models/PrimerRawData';
|
|
34
26
|
export {
|
|
35
|
-
|
|
36
|
-
|
|
27
|
+
PrimerCheckoutAdditionalInfo as CheckoutAdditionalInfo,
|
|
28
|
+
MultibancoCheckoutAdditionalInfo,
|
|
37
29
|
} from './models/PrimerCheckoutAdditionalInfo';
|
|
30
|
+
export { RetailOutletsRetail } from './models/RetailOutletsRetail';
|
|
38
31
|
export {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
export {
|
|
42
|
-
PrimerCheckoutData as CheckoutData,
|
|
43
|
-
PrimerCheckoutDataPayment as CheckoutDataPayment,
|
|
32
|
+
PrimerCheckoutData as CheckoutData,
|
|
33
|
+
PrimerCheckoutDataPayment as CheckoutDataPayment,
|
|
44
34
|
} from './models/PrimerCheckoutData';
|
|
45
|
-
export {
|
|
46
|
-
|
|
47
|
-
} from './models/
|
|
48
|
-
export {
|
|
49
|
-
|
|
50
|
-
} from './models/PrimerError';
|
|
51
|
-
export type {
|
|
52
|
-
IPrimerAsset as Asset
|
|
53
|
-
} from './models/PrimerAsset';
|
|
54
|
-
export {
|
|
55
|
-
PrimerHeadlessUniversalCheckout as HeadlessUniversalCheckout
|
|
56
|
-
} from './HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout';
|
|
57
|
-
export type {
|
|
58
|
-
IPrimerHeadlessUniversalCheckoutPaymentMethod as PaymentMethod
|
|
59
|
-
} from './models/PrimerHeadlessUniversalCheckoutPaymentMethod';
|
|
35
|
+
export { PrimerCheckoutPaymentMethodData as CheckoutPaymentMethodData } from './models/PrimerCheckoutPaymentMethodData';
|
|
36
|
+
export { PrimerError } from './models/PrimerError';
|
|
37
|
+
export type { IPrimerAsset as Asset } from './models/PrimerAsset';
|
|
38
|
+
export { PrimerHeadlessUniversalCheckout as HeadlessUniversalCheckout } from './HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout';
|
|
39
|
+
export type { IPrimerHeadlessUniversalCheckoutPaymentMethod as PaymentMethod } from './models/PrimerHeadlessUniversalCheckoutPaymentMethod';
|
|
60
40
|
|
|
61
41
|
import PrimerHeadlessUniversalCheckoutAssetsManager from './HeadlessUniversalCheckout/Managers/AssetsManager';
|
|
62
|
-
export {
|
|
63
|
-
PrimerHeadlessUniversalCheckoutAssetsManager as AssetsManager
|
|
64
|
-
}
|
|
42
|
+
export { PrimerHeadlessUniversalCheckoutAssetsManager as AssetsManager };
|
|
65
43
|
import PrimerHeadlessUniversalCheckoutPaymentMethodNativeUIManager from './HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager';
|
|
66
|
-
export {
|
|
67
|
-
PrimerHeadlessUniversalCheckoutPaymentMethodNativeUIManager as NativeUIManager
|
|
68
|
-
}
|
|
44
|
+
export { PrimerHeadlessUniversalCheckoutPaymentMethodNativeUIManager as NativeUIManager };
|
|
69
45
|
import PrimerHeadlessUniversalCheckoutRawDataManager from './HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager';
|
|
70
46
|
export {
|
|
71
|
-
|
|
47
|
+
PrimerHeadlessUniversalCheckoutRawDataManager as RawDataManager
|
|
72
48
|
}
|
|
73
|
-
|
|
74
49
|
export {
|
|
75
|
-
|
|
50
|
+
IPrimerVaultedPaymentMethod as VaultedPaymentMethod
|
|
76
51
|
} from './models/PrimerVaultedPaymentMethod'
|
|
77
52
|
|
|
78
53
|
export {
|
|
79
|
-
|
|
54
|
+
IPrimerVaultedPaymentMethodAdditonalData as VaultedPaymentMethodAdditionalData
|
|
80
55
|
} from './models/PrimerVaultedPaymentMethodAdditionalData'
|
|
81
56
|
|
|
82
57
|
export {
|
|
83
|
-
|
|
58
|
+
IPrimerValidationError as ValidationError
|
|
84
59
|
} from './models/PrimerValidationError'
|
|
85
60
|
|
|
86
61
|
import PrimerHeadlessUniversalCheckoutVaultManager from './HeadlessUniversalCheckout/Managers/VaultManager'
|
|
87
62
|
export {
|
|
88
|
-
|
|
89
|
-
}
|
|
63
|
+
PrimerHeadlessUniversalCheckoutVaultManager as VaultManager
|
|
64
|
+
}
|
|
65
|
+
import { PrimerHeadlessUniversalCheckoutKlarnaManager, KlarnaComponent, KlarnaManagerProps } from './HeadlessUniversalCheckout/Managers/PaymentMethodManagers/KlarnaManager';
|
|
66
|
+
export { PrimerHeadlessUniversalCheckoutKlarnaManager as KlarnaManager, KlarnaComponent, KlarnaManagerProps };
|
|
67
|
+
import { NamedComponentStep } from './models/NamedComponentStep';
|
|
68
|
+
export { NamedComponentStep };
|
|
69
|
+
import { KlarnaPaymentCategory } from './models/klarna/KlarnaPaymentCategory';
|
|
70
|
+
export { KlarnaPaymentCategory };
|
|
71
|
+
import { PrimerValidComponentData, PrimerValidatingComponentData, PrimerInvalidComponentData, PrimerComponentDataValidationError } from './models/PrimerComponentDataValidation';
|
|
72
|
+
export { PrimerValidComponentData, PrimerValidatingComponentData, PrimerInvalidComponentData, PrimerComponentDataValidationError };
|
|
73
|
+
import { KlarnaPaymentOptions, KlarnaPaymentFinalization, KlarnaPaymentValidatableData } from './models/klarna/KlarnaPaymentCollectableData';
|
|
74
|
+
export { KlarnaPaymentOptions, KlarnaPaymentFinalization, KlarnaPaymentValidatableData };
|
|
75
|
+
import { PaymentSessionCreated, PaymentSessionAuthorized, PaymentSessionFinalized, PaymentViewLoaded, KlarnaPaymentStep } from './models/klarna/KlarnaPaymentSteps';
|
|
76
|
+
export { PaymentSessionCreated, PaymentSessionAuthorized, PaymentSessionFinalized, PaymentViewLoaded, KlarnaPaymentStep };
|
|
77
|
+
import { PrimerKlarnaPaymentView } from './HeadlessUniversalCheckout/Components/PrimerKlarnaPaymentView'
|
|
78
|
+
export { PrimerKlarnaPaymentView }
|
|
79
|
+
|
|
80
|
+
import { PrimerHeadlessUniversalCheckoutComponentWithRedirectManager, BanksComponent, ComponentWithRedirectManagerProps } from './HeadlessUniversalCheckout/Managers/PaymentMethodManagers/ComponentWithRedirectManager';
|
|
81
|
+
export { PrimerHeadlessUniversalCheckoutComponentWithRedirectManager as ComponentWithRedirectManager, BanksComponent, ComponentWithRedirectManagerProps };
|
|
82
|
+
import { IssuingBank } from './models/IssuingBank';
|
|
83
|
+
export { IssuingBank };
|
|
84
|
+
import { BankId, BankListFilter, BanksValidatableData } from './models/banks/BanksCollectableData';
|
|
85
|
+
export { BankId, BankListFilter, BanksValidatableData };
|
|
86
|
+
import { BanksLoading, BanksRetrieved, BanksStep } from './models/banks/BanksSteps';
|
|
87
|
+
export { BanksLoading, BanksRetrieved, BanksStep };
|
|
88
|
+
import { NamedComponentValidatableData } from './models/NamedComponentValidatableData';
|
|
89
|
+
export { NamedComponentValidatableData };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type NamedComponentValidatableData = INamedComponentValidatableData;
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A component-validatable data that can be identified via its name.
|
|
5
|
+
*/
|
|
6
|
+
interface INamedComponentValidatableData {
|
|
7
|
+
/**
|
|
8
|
+
* The name of this component-validatable data.
|
|
9
|
+
*/
|
|
10
|
+
validatableDataName: string
|
|
11
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { NamedComponentValidatableData } from "./NamedComponentValidatableData";
|
|
2
|
+
import { PrimerError } from "./PrimerError";
|
|
3
|
+
import { PrimerValidationError } from "./PrimerValidationError";
|
|
4
|
+
|
|
5
|
+
export type PrimerValidatingComponentData<T extends NamedComponentValidatableData> = IPrimerValidatingComponentData<T>;
|
|
6
|
+
export type PrimerValidComponentData<T extends NamedComponentValidatableData> = IPrimerValidComponentData<T>;
|
|
7
|
+
export type PrimerInvalidComponentData<T extends NamedComponentValidatableData> = IPrimerInvalidComponentData<T>;
|
|
8
|
+
export type PrimerComponentDataValidationError<T extends NamedComponentValidatableData> = IPrimerComponentDataValidationError<T>;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Interface that indicates that data is currently in the process of being validated.
|
|
12
|
+
*/
|
|
13
|
+
interface IPrimerValidatingComponentData<T extends NamedComponentValidatableData> {
|
|
14
|
+
/**
|
|
15
|
+
* The data being validated.
|
|
16
|
+
*/
|
|
17
|
+
data: T;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Interface that indicates that the data has been successfully validated.
|
|
22
|
+
*/
|
|
23
|
+
interface IPrimerValidComponentData<T extends NamedComponentValidatableData> {
|
|
24
|
+
/**
|
|
25
|
+
* The successfully validated data.
|
|
26
|
+
*/
|
|
27
|
+
data: T;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Interface that indicates that the data has been considered invalid after validation.
|
|
32
|
+
*/
|
|
33
|
+
interface IPrimerInvalidComponentData<T extends NamedComponentValidatableData> {
|
|
34
|
+
/**
|
|
35
|
+
* The data that failed validation.
|
|
36
|
+
*/
|
|
37
|
+
data: T;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* A list of PrimerValidationError explaining why the data is
|
|
41
|
+
* considered invalid.
|
|
42
|
+
*/
|
|
43
|
+
errors: PrimerValidationError[];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Interface that represents an error that occurred during the validation process.
|
|
48
|
+
*/
|
|
49
|
+
interface IPrimerComponentDataValidationError<T extends NamedComponentValidatableData> {
|
|
50
|
+
/**
|
|
51
|
+
* The data for which an error ocurred during validation.
|
|
52
|
+
*/
|
|
53
|
+
data: T;
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The PrimerError that ocurred during the validation attempt.
|
|
58
|
+
*/
|
|
59
|
+
error: PrimerError;
|
|
60
|
+
}
|