@primer-io/react-native 2.5.1 → 2.7.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 +1 -1
- package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +1 -0
- package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +24 -1
- package/android/src/main/java/com/primerioreactnative/PrimerRNHeadlessUniversalCheckoutListener.kt +24 -1
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerCheckoutAdditionalInfoRN.kt +13 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerCheckoutDataRN.kt +4 -1
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerEvents.kt +1 -0
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutAdditionalInfo.kt +12 -0
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerCheckoutData.kt +1 -1
- package/android/src/main/java/com/primerioreactnative/huc/datamodels/manager/raw/{PrimerRNHeadlessCheckoutInputData.kt → card/PrimerRNPRawCardData.kt} +2 -2
- package/android/src/main/java/com/primerioreactnative/huc/datamodels/manager/raw/phoneNumber/PrimerRNRawPhoneNumberData.kt +14 -0
- package/android/src/main/java/com/primerioreactnative/huc/manager/raw/PrimerRNHeadlessUniversalCheckoutRawManager.kt +33 -11
- package/android/src/main/java/com/primerioreactnative/utils/PrimerHeadlessUniversalCheckoutImplementedRNCallbacks.kt +2 -0
- package/android/src/main/java/com/primerioreactnative/utils/PrimerImplementedRNCallbacks.kt +2 -0
- package/ios/DataModels/ImplementedRNCallbacks.swift +6 -3
- package/ios/DataModels/RNTPrimerPhoneNumberData.swift +38 -0
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckout.swift +23 -1
- package/ios/Headless Universal Checkout/RNTPrimerHeadlessUniversalCheckoutRawDataManager.swift +11 -5
- package/ios/RNTPrimer.swift +72 -49
- package/lib/commonjs/Primer.js +14 -3
- package/lib/commonjs/Primer.js.map +1 -1
- package/lib/commonjs/RNPrimer.js +1 -1
- package/lib/commonjs/RNPrimer.js.map +1 -1
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js +17 -6
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js +4 -0
- package/lib/commonjs/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js.map +1 -1
- package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckout.js +1 -1
- package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js +10 -0
- package/lib/commonjs/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js.map +1 -1
- package/lib/commonjs/index.js +14 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/PrimerCheckoutAdditionalInfo.js +2 -0
- package/lib/commonjs/models/PrimerCheckoutAdditionalInfo.js.map +1 -0
- package/lib/commonjs/models/PrimerCheckoutData.js +3 -0
- package/lib/commonjs/models/PrimerCheckoutData.js.map +1 -1
- package/lib/module/Primer.js +14 -3
- package/lib/module/Primer.js.map +1 -1
- package/lib/module/RNPrimer.js +1 -1
- package/lib/module/RNPrimer.js.map +1 -1
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js +17 -6
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js +4 -0
- package/lib/module/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.js.map +1 -1
- package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckout.js +1 -1
- package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js +10 -0
- package/lib/module/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/PrimerCheckoutAdditionalInfo.js +2 -0
- package/lib/module/models/PrimerCheckoutAdditionalInfo.js.map +1 -0
- package/lib/module/models/PrimerCheckoutData.js +2 -0
- package/lib/module/models/PrimerCheckoutData.js.map +1 -1
- package/lib/typescript/src/RNPrimer.d.ts +1 -1
- package/lib/typescript/src/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.d.ts +1 -0
- package/lib/typescript/src/headless_checkout/RNPrimerHeadlessUniversalCheckout.d.ts +1 -1
- package/lib/typescript/src/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.d.ts +1 -0
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/models/PrimerCheckoutAdditionalInfo.d.ts +10 -0
- package/lib/typescript/src/models/PrimerCheckoutData.d.ts +3 -1
- package/lib/typescript/src/models/PrimerRawData.d.ts +3 -0
- package/lib/typescript/src/models/PrimerSettings.d.ts +2 -0
- package/package.json +1 -1
- package/primer-io-react-native.podspec +1 -1
- package/src/Primer.ts +16 -0
- package/src/RNPrimer.ts +2 -0
- package/src/headless_checkout/PrimerHeadlessUniversalCheckout.ts +16 -0
- package/src/headless_checkout/PrimerHeadlessUniversalCheckoutRawDataManager.ts +4 -0
- package/src/headless_checkout/RNPrimerHeadlessUniversalCheckout.ts +2 -0
- package/src/headless_checkout/RNPrimerHeadlessUniversalCheckoutRawDataManager.ts +11 -0
- package/src/index.tsx +5 -1
- package/src/models/PrimerCheckoutAdditionalInfo.ts +11 -0
- package/src/models/PrimerCheckoutData.ts +5 -2
- package/src/models/PrimerRawData.ts +5 -1
- package/src/models/PrimerSettings.ts +8 -6
package/src/Primer.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type { PrimerClientSession } from './models/PrimerClientSession';
|
|
|
7
7
|
import type { PrimerPaymentMethodTokenData } from './models/PrimerPaymentMethodTokenData';
|
|
8
8
|
import { PrimerError } from './models/PrimerError';
|
|
9
9
|
import type { IPrimer, PrimerErrorHandler, PrimerPaymentCreationHandler, PrimerResumeHandler, PrimerTokenizationHandler } from './models/PrimerInterfaces';
|
|
10
|
+
import type { PrimerCheckoutAdditionalInfo } from './models/PrimerCheckoutAdditionalInfo';
|
|
10
11
|
|
|
11
12
|
///////////////////////////////////////////
|
|
12
13
|
// DECISION HANDLERS
|
|
@@ -114,6 +115,7 @@ async function configureListeners(): Promise<void> {
|
|
|
114
115
|
onClientSessionUpdate: (primerSettings?.onClientSessionUpdate !== undefined),
|
|
115
116
|
onTokenizeSuccess: (primerSettings?.onTokenizeSuccess !== undefined),
|
|
116
117
|
onResumeSuccess: (primerSettings?.onResumeSuccess !== undefined),
|
|
118
|
+
onResumePending: (primerSettings?.onResumePending !== undefined),
|
|
117
119
|
onDismiss: (primerSettings?.onDismiss !== undefined),
|
|
118
120
|
onError: (primerSettings?.onError !== undefined),
|
|
119
121
|
};
|
|
@@ -172,6 +174,20 @@ async function configureListeners(): Promise<void> {
|
|
|
172
174
|
});
|
|
173
175
|
}
|
|
174
176
|
|
|
177
|
+
if (implementedRNCallbacks.onResumePending) {
|
|
178
|
+
RNPrimer.addListener(
|
|
179
|
+
'onResumePending',
|
|
180
|
+
(additionalInfo) => {
|
|
181
|
+
if (primerSettings && primerSettings.onResumePending) {
|
|
182
|
+
const checkoutAdditionalInfo: PrimerCheckoutAdditionalInfo = additionalInfo;
|
|
183
|
+
primerSettings.onResumePending(checkoutAdditionalInfo);
|
|
184
|
+
} else {
|
|
185
|
+
// Ignore!
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
|
|
175
191
|
if (implementedRNCallbacks.onDismiss) {
|
|
176
192
|
RNPrimer.addListener('onDismiss', _ => {
|
|
177
193
|
if (primerSettings && primerSettings.onDismiss) {
|
package/src/RNPrimer.ts
CHANGED
|
@@ -14,6 +14,7 @@ type EventType =
|
|
|
14
14
|
| 'onDismiss'
|
|
15
15
|
| 'onTokenizeSuccess'
|
|
16
16
|
| 'onResumeSuccess'
|
|
17
|
+
| 'onResumePending'
|
|
17
18
|
| 'detectImplementedRNCallbacks';
|
|
18
19
|
|
|
19
20
|
export interface IPrimerError {
|
|
@@ -31,6 +32,7 @@ const eventTypes: EventType[] = [
|
|
|
31
32
|
'onDismiss',
|
|
32
33
|
'onTokenizeSuccess',
|
|
33
34
|
'onResumeSuccess',
|
|
35
|
+
'onResumePending',
|
|
34
36
|
'detectImplementedRNCallbacks'
|
|
35
37
|
];
|
|
36
38
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import RNPrimerHeadlessUniversalCheckout from './RNPrimerHeadlessUniversalCheckout';
|
|
2
2
|
import type { PrimerCheckoutData } from '../models/PrimerCheckoutData';
|
|
3
|
+
import type { PrimerCheckoutAdditionalInfo } from '../models/PrimerCheckoutAdditionalInfo';
|
|
3
4
|
import type { PrimerCheckoutPaymentMethodData } from '../models/PrimerCheckoutPaymentMethodData';
|
|
4
5
|
import type { PrimerTokenizationHandler, PrimerResumeHandler, PrimerPaymentCreationHandler } from '../models/PrimerInterfaces';
|
|
5
6
|
import type { PrimerHeadlessUniversalCheckoutStartResponse } from './types';
|
|
@@ -102,6 +103,7 @@ async function configureListeners(): Promise<void> {
|
|
|
102
103
|
onClientSessionUpdate: (primerSettings?.onClientSessionUpdate !== undefined),
|
|
103
104
|
onTokenizeSuccess: (primerSettings?.onTokenizeSuccess !== undefined),
|
|
104
105
|
onResumeSuccess: (primerSettings?.onResumeSuccess !== undefined),
|
|
106
|
+
onResumePending: (primerSettings?.onResumePending !== undefined),
|
|
105
107
|
onDismiss: false,
|
|
106
108
|
onError: (primerSettings?.onError !== undefined),
|
|
107
109
|
onHUCAvailablePaymentMethodsLoaded: (primerSettings?.onAvailablePaymentMethodsLoad !== undefined),
|
|
@@ -127,6 +129,20 @@ async function configureListeners(): Promise<void> {
|
|
|
127
129
|
);
|
|
128
130
|
}
|
|
129
131
|
|
|
132
|
+
if (implementedRNCallbacks.onResumePending) {
|
|
133
|
+
RNPrimerHeadlessUniversalCheckout.addListener(
|
|
134
|
+
'onResumePending',
|
|
135
|
+
(additionalInfo) => {
|
|
136
|
+
if (primerSettings && primerSettings.onResumePending) {
|
|
137
|
+
const checkoutAdditionalInfo: PrimerCheckoutAdditionalInfo = additionalInfo;
|
|
138
|
+
primerSettings.onResumePending(checkoutAdditionalInfo);
|
|
139
|
+
} else {
|
|
140
|
+
// Ignore!
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
|
|
130
146
|
if (implementedRNCallbacks.onHUCPrepareStart) {
|
|
131
147
|
RNPrimerHeadlessUniversalCheckout.addListener(
|
|
132
148
|
'onHUCPrepareStart',
|
|
@@ -99,6 +99,10 @@ class PrimerHeadlessUniversalCheckoutRawDataManagerClass {
|
|
|
99
99
|
submit(): Promise<void> {
|
|
100
100
|
return RNPrimerHeadlessUniversalCheckoutRawDataManager.submit();
|
|
101
101
|
}
|
|
102
|
+
|
|
103
|
+
disposeRawDataManager(): Promise<void> {
|
|
104
|
+
return RNPrimerHeadlessUniversalCheckoutRawDataManager.disposeRawDataManager();
|
|
105
|
+
}
|
|
102
106
|
}
|
|
103
107
|
|
|
104
108
|
export const PrimerHeadlessUniversalCheckoutRawDataManager = new PrimerHeadlessUniversalCheckoutRawDataManagerClass();
|
|
@@ -11,6 +11,7 @@ type EventType =
|
|
|
11
11
|
| 'onHUCPaymentMethodShow'
|
|
12
12
|
| 'onTokenizeSuccess'
|
|
13
13
|
| 'onResumeSuccess'
|
|
14
|
+
| 'onResumePending'
|
|
14
15
|
| 'onBeforePaymentCreate'
|
|
15
16
|
| 'onBeforeClientSessionUpdate'
|
|
16
17
|
| 'onClientSessionUpdate'
|
|
@@ -24,6 +25,7 @@ const eventTypes: EventType[] = [
|
|
|
24
25
|
'onHUCPaymentMethodShow',
|
|
25
26
|
'onTokenizeSuccess',
|
|
26
27
|
'onResumeSuccess',
|
|
28
|
+
'onResumePending',
|
|
27
29
|
'onBeforePaymentCreate',
|
|
28
30
|
'onBeforeClientSessionUpdate',
|
|
29
31
|
'onClientSessionUpdate',
|
|
@@ -86,6 +86,17 @@ const RNPrimerHeadlessUniversalCheckoutRawDataManager = {
|
|
|
86
86
|
}
|
|
87
87
|
});
|
|
88
88
|
},
|
|
89
|
+
|
|
90
|
+
disposeRawDataManager: (): Promise<void> => {
|
|
91
|
+
return new Promise(async (resolve, reject) => {
|
|
92
|
+
try {
|
|
93
|
+
await PrimerHeadlessUniversalCheckoutRawDataManager.disposeRawDataManager();
|
|
94
|
+
resolve();
|
|
95
|
+
} catch (e) {
|
|
96
|
+
reject(e);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
},
|
|
89
100
|
}
|
|
90
101
|
|
|
91
102
|
export default RNPrimerHeadlessUniversalCheckoutRawDataManager;
|
package/src/index.tsx
CHANGED
|
@@ -25,7 +25,11 @@ export {
|
|
|
25
25
|
PrimerRawData,
|
|
26
26
|
PrimerRawCardData
|
|
27
27
|
} from './models/PrimerRawData';
|
|
28
|
-
export {
|
|
28
|
+
export {
|
|
29
|
+
PrimerCheckoutAdditionalInfo,
|
|
30
|
+
MultibancoCheckoutAdditionalInfo
|
|
31
|
+
} from './models/PrimerCheckoutAdditionalInfo';
|
|
32
|
+
export {
|
|
29
33
|
PrimerCheckoutData,
|
|
30
34
|
PrimerCheckoutDataPayment,
|
|
31
35
|
} from './models/PrimerCheckoutData';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type PrimerCheckoutAdditionalInfo = IPrimerCheckoutAdditionalInfo;
|
|
2
|
+
|
|
3
|
+
interface IPrimerCheckoutAdditionalInfo {}
|
|
4
|
+
|
|
5
|
+
export type MultibancoCheckoutAdditionalInfo = IMultibancoCheckoutAdditionalInfo;
|
|
6
|
+
|
|
7
|
+
interface IMultibancoCheckoutAdditionalInfo extends IPrimerCheckoutAdditionalInfo {
|
|
8
|
+
expiresAt?: string;
|
|
9
|
+
entity?: string;
|
|
10
|
+
reference?: string;
|
|
11
|
+
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import type { PrimerCheckoutAdditionalInfo } from "./PrimerCheckoutAdditionalInfo";
|
|
2
|
+
|
|
1
3
|
export type PrimerCheckoutData = IPrimerCheckoutData;
|
|
2
4
|
|
|
3
5
|
interface IPrimerCheckoutData {
|
|
4
|
-
payment
|
|
6
|
+
payment?: IPrimerCheckoutDataPayment;
|
|
7
|
+
additionalInfo?: PrimerCheckoutAdditionalInfo
|
|
5
8
|
}
|
|
6
9
|
|
|
7
10
|
export type PrimerCheckoutDataPayment = IPrimerCheckoutDataPayment;
|
|
@@ -15,4 +18,4 @@ interface IPrimerCheckoutDataPayment {
|
|
|
15
18
|
enum PrimerPaymentErrorCode {
|
|
16
19
|
FAILED = 'payment-failed',
|
|
17
20
|
CANCELLED_BY_CUSTOMER = 'cancelled-by-customer',
|
|
18
|
-
}
|
|
21
|
+
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
PrimerErrorHandler,
|
|
3
|
-
PrimerPaymentCreationHandler,
|
|
4
|
-
PrimerResumeHandler,
|
|
5
|
-
PrimerTokenizationHandler
|
|
1
|
+
import type {
|
|
2
|
+
PrimerErrorHandler,
|
|
3
|
+
PrimerPaymentCreationHandler,
|
|
4
|
+
PrimerResumeHandler,
|
|
5
|
+
PrimerTokenizationHandler
|
|
6
6
|
} from "./PrimerInterfaces";
|
|
7
7
|
import type { PrimerCheckoutData } from "./PrimerCheckoutData";
|
|
8
|
+
import type { PrimerCheckoutAdditionalInfo } from "./PrimerCheckoutAdditionalInfo";
|
|
8
9
|
import type { PrimerCheckoutPaymentMethodData } from "./PrimerCheckoutPaymentMethodData";
|
|
9
10
|
import type { PrimerClientSession } from "./PrimerClientSession";
|
|
10
11
|
import type { PrimerPaymentMethodTokenData } from "./PrimerPaymentMethodTokenData";
|
|
@@ -27,9 +28,10 @@ interface IPrimerSettings {
|
|
|
27
28
|
onCheckoutComplete?: (checkoutData: PrimerCheckoutData) => void;
|
|
28
29
|
onTokenizeSuccess?: (paymentMethodTokenData: PrimerPaymentMethodTokenData, handler: PrimerTokenizationHandler) => void;
|
|
29
30
|
onResumeSuccess?: (resumeToken: string, handler: PrimerResumeHandler) => void;
|
|
31
|
+
onResumePending?: (additionalInfo: PrimerCheckoutAdditionalInfo) => void;
|
|
30
32
|
// PrimerErrorHandler will be undefined on the HUC flow.
|
|
31
33
|
onError?: (error: PrimerError, checkoutData: PrimerCheckoutData | null, handler: PrimerErrorHandler | undefined) => void;
|
|
32
|
-
|
|
34
|
+
|
|
33
35
|
// Only on main SDK
|
|
34
36
|
onDismiss?: () => void;
|
|
35
37
|
|