@primer-io/react-native 0.6.8 → 0.7.0-beta
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/.gradle/7.0.2/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/7.0.2/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/7.0.2/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
- package/android/.gradle/checksums/checksums.lock +0 -0
- package/android/.gradle/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/checksums/sha1-checksums.bin +0 -0
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +42 -0
- package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +18 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerOnClientSessionActionsRequestRN.kt +42 -0
- package/android/src/main/java/com/primerioreactnative/utils/PrimerEventQueueRN.kt +0 -2
- package/ios/DataModels/PrimerSettingsRN.swift +1 -1
- package/ios/PrimerRN+PrimerDelegate.swift +44 -0
- package/ios/PrimerRN.swift +28 -0
- package/ios/ReactNative.m +4 -0
- package/lib/commonjs/Primer.js +48 -0
- package/lib/commonjs/Primer.js.map +1 -1
- package/lib/commonjs/models/client-session-actions-request.js +2 -0
- package/lib/commonjs/models/client-session-actions-request.js.map +1 -0
- package/lib/module/Primer.js +48 -0
- package/lib/module/Primer.js.map +1 -1
- package/lib/module/models/client-session-actions-request.js +2 -0
- package/lib/module/models/client-session-actions-request.js.map +1 -0
- package/lib/typescript/models/client-session-actions-request.d.ts +11 -0
- package/lib/typescript/models/primer-callbacks.d.ts +2 -0
- package/lib/typescript/models/primer-config.d.ts +2 -1
- package/package.json +1 -1
- package/primer-io-react-native.podspec +1 -1
- package/src/Primer.ts +34 -0
- package/src/models/client-session-actions-request.ts +13 -0
- package/src/models/primer-callbacks.ts +6 -0
- package/src/models/primer-config.ts +3 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
#
|
|
1
|
+
#Tue Nov 30 22:24:16 GMT 2021
|
|
2
2
|
gradle.version=7.0.2
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/android/build.gradle
CHANGED
|
@@ -128,5 +128,5 @@ dependencies {
|
|
|
128
128
|
api 'com.facebook.react:react-native:+'
|
|
129
129
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
130
130
|
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.2"
|
|
131
|
-
implementation 'io.primer:android:1.
|
|
131
|
+
implementation 'io.primer:android:1.5.0'
|
|
132
132
|
}
|
|
@@ -12,6 +12,7 @@ import io.primer.android.model.dto.*
|
|
|
12
12
|
import kotlinx.serialization.decodeFromString
|
|
13
13
|
import kotlinx.serialization.encodeToString
|
|
14
14
|
import kotlinx.serialization.json.Json
|
|
15
|
+
import kotlin.Error
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
class PrimerRN(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
|
|
@@ -88,6 +89,11 @@ class PrimerRN(reactContext: ReactApplicationContext) : ReactContextBaseJavaModu
|
|
|
88
89
|
mListener.configureOnTokenizeSuccess(callback)
|
|
89
90
|
}
|
|
90
91
|
|
|
92
|
+
@ReactMethod
|
|
93
|
+
fun configureOnClientSessionActions(callback: Callback) {
|
|
94
|
+
mListener.configureOnClientSessionActions(callback)
|
|
95
|
+
}
|
|
96
|
+
|
|
91
97
|
@ReactMethod
|
|
92
98
|
fun configureOnResumeSuccess(callback: Callback) {
|
|
93
99
|
mListener.configureOnResumeSuccess(callback)
|
|
@@ -140,6 +146,18 @@ class PrimerRN(reactContext: ReactApplicationContext) : ReactContextBaseJavaModu
|
|
|
140
146
|
}
|
|
141
147
|
}
|
|
142
148
|
|
|
149
|
+
mListener.actionCompletion = { error, clientToken ->
|
|
150
|
+
currentActivity?.let {
|
|
151
|
+
it.runOnUiThread {
|
|
152
|
+
if (error != null) {
|
|
153
|
+
mListener.actionResumeHandler?.handleError(Error(error))
|
|
154
|
+
} else {
|
|
155
|
+
mListener.actionResumeHandler?.handleClientToken(clientToken)
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
143
161
|
Primer.instance.configure(config, mListener)
|
|
144
162
|
sdkWasInitialised = true
|
|
145
163
|
}
|
|
@@ -199,4 +217,28 @@ class PrimerRN(reactContext: ReactApplicationContext) : ReactContextBaseJavaModu
|
|
|
199
217
|
haltExecution = true
|
|
200
218
|
}
|
|
201
219
|
}
|
|
220
|
+
|
|
221
|
+
@ReactMethod
|
|
222
|
+
fun actionResume(request: String) {
|
|
223
|
+
try {
|
|
224
|
+
Log.d("PrimerRN", "resume: $request")
|
|
225
|
+
val data = json.decodeFromString<PrimerResumeRequest>(request)
|
|
226
|
+
mListener.actionCompletion?.invoke(data.error, data.token)
|
|
227
|
+
|
|
228
|
+
mListener.actionCompletion = { error, clientToken ->
|
|
229
|
+
currentActivity?.let {
|
|
230
|
+
it.runOnUiThread {
|
|
231
|
+
if (error != null) {
|
|
232
|
+
mListener.actionResumeHandler?.handleError(Error(error))
|
|
233
|
+
} else {
|
|
234
|
+
mListener.actionResumeHandler?.handleClientToken(clientToken)
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
} catch (e: Exception) {
|
|
241
|
+
Log.e("PrimerRN", "configure settings error: $e")
|
|
242
|
+
}
|
|
243
|
+
}
|
|
202
244
|
}
|
|
@@ -4,9 +4,11 @@ import android.util.Log
|
|
|
4
4
|
import com.facebook.react.bridge.Callback
|
|
5
5
|
import com.primerioreactnative.datamodels.ErrorTypeRN
|
|
6
6
|
import com.primerioreactnative.datamodels.PrimerErrorRN
|
|
7
|
+
import com.primerioreactnative.datamodels.PrimerOnClientSessionActionsRequestRN
|
|
7
8
|
import com.primerioreactnative.datamodels.PrimerPaymentInstrumentTokenRN
|
|
8
9
|
import com.primerioreactnative.utils.PrimerEventQueueRN
|
|
9
10
|
import io.primer.android.CheckoutEventListener
|
|
11
|
+
import io.primer.android.completion.ActionResumeHandler
|
|
10
12
|
import io.primer.android.completion.ResumeHandler
|
|
11
13
|
import io.primer.android.events.CheckoutEvent
|
|
12
14
|
import kotlinx.serialization.encodeToString
|
|
@@ -15,6 +17,7 @@ import kotlinx.serialization.json.Json
|
|
|
15
17
|
class PrimerRNEventListener : CheckoutEventListener {
|
|
16
18
|
|
|
17
19
|
private var onTokenizeSuccessQueue: PrimerEventQueueRN? = null
|
|
20
|
+
private var onClientSessionActionsQueue: PrimerEventQueueRN? = null
|
|
18
21
|
private var onResumeSuccessQueue: PrimerEventQueueRN? = null
|
|
19
22
|
private var onVaultSuccessQueue: PrimerEventQueueRN? = null
|
|
20
23
|
private var onDismissQueue: PrimerEventQueueRN? = null
|
|
@@ -22,14 +25,21 @@ class PrimerRNEventListener : CheckoutEventListener {
|
|
|
22
25
|
var onSavedPaymentInstrumentsFetchedQueue: PrimerEventQueueRN? = null
|
|
23
26
|
|
|
24
27
|
var completion: ((error: String?, token: String?) -> Unit)? = null
|
|
28
|
+
var actionCompletion: ((error: String?, token: String?) -> Unit)? = null
|
|
25
29
|
|
|
26
30
|
var resumeHandler: ResumeHandler? = null
|
|
31
|
+
var actionResumeHandler: ActionResumeHandler? = null
|
|
27
32
|
|
|
28
33
|
fun configureOnTokenizeSuccess(callback: Callback) {
|
|
29
34
|
onTokenizeSuccessQueue = PrimerEventQueueRN()
|
|
30
35
|
onTokenizeSuccessQueue?.poll(callback)
|
|
31
36
|
}
|
|
32
37
|
|
|
38
|
+
fun configureOnClientSessionActions(callback: Callback) {
|
|
39
|
+
onClientSessionActionsQueue = PrimerEventQueueRN()
|
|
40
|
+
onClientSessionActionsQueue?.poll(callback)
|
|
41
|
+
}
|
|
42
|
+
|
|
33
43
|
fun configureOnResumeSuccess(callback: Callback) {
|
|
34
44
|
onResumeSuccessQueue = PrimerEventQueueRN()
|
|
35
45
|
onResumeSuccessQueue?.poll(callback)
|
|
@@ -55,6 +65,14 @@ class PrimerRNEventListener : CheckoutEventListener {
|
|
|
55
65
|
onSavedPaymentInstrumentsFetchedQueue?.poll(callback)
|
|
56
66
|
}
|
|
57
67
|
|
|
68
|
+
override fun onClientSessionActions(event: CheckoutEvent.OnClientSessionActions) {
|
|
69
|
+
val token = PrimerOnClientSessionActionsRequestRN.build(event.data)
|
|
70
|
+
val request = Json.encodeToString(token)
|
|
71
|
+
|
|
72
|
+
onClientSessionActionsQueue?.addRequestAndPoll(request)
|
|
73
|
+
actionResumeHandler = event.resumeHandler
|
|
74
|
+
}
|
|
75
|
+
|
|
58
76
|
override fun onCheckoutEvent(e: CheckoutEvent) {
|
|
59
77
|
when (e) {
|
|
60
78
|
is CheckoutEvent.TokenAddedToVault -> {
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
package com.primerioreactnative.datamodels
|
|
2
|
+
|
|
3
|
+
import io.primer.android.data.action.models.ClientSessionActionsRequest
|
|
4
|
+
import kotlinx.serialization.Serializable
|
|
5
|
+
|
|
6
|
+
@Serializable
|
|
7
|
+
data class PrimerOnClientSessionActionsRequestRN(
|
|
8
|
+
val actions: List<Action>,
|
|
9
|
+
) {
|
|
10
|
+
|
|
11
|
+
@Serializable
|
|
12
|
+
data class Action(
|
|
13
|
+
val type: String,
|
|
14
|
+
val paymentMethodType: String? = null,
|
|
15
|
+
val network: String? = null,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
companion object {
|
|
19
|
+
fun build(
|
|
20
|
+
request: ClientSessionActionsRequest,
|
|
21
|
+
): PrimerOnClientSessionActionsRequestRN {
|
|
22
|
+
return PrimerOnClientSessionActionsRequestRN(
|
|
23
|
+
actions = request.actions.map { action ->
|
|
24
|
+
when (action) {
|
|
25
|
+
is ClientSessionActionsRequest.SetPaymentMethod -> {
|
|
26
|
+
Action(
|
|
27
|
+
type = "SET_PAYMENT_METHOD",
|
|
28
|
+
paymentMethodType = action.paymentMethodType,
|
|
29
|
+
network = action.network,
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
is ClientSessionActionsRequest.UnsetPaymentMethod -> {
|
|
33
|
+
Action(
|
|
34
|
+
type = "UNSET_PAYMENT_METHOD",
|
|
35
|
+
)
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -39,7 +39,7 @@ extension PrimerSettingsRN {
|
|
|
39
39
|
customer: Customer(
|
|
40
40
|
firstName: customer?.firstName,
|
|
41
41
|
lastName: customer?.lastName,
|
|
42
|
-
|
|
42
|
+
emailAddress: customer?.email,
|
|
43
43
|
homePhoneNumber: nil,
|
|
44
44
|
mobilePhoneNumber: customer?.phone,
|
|
45
45
|
workPhoneNumber: nil,
|
|
@@ -39,6 +39,50 @@ extension PrimerRN: PrimerDelegate {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
func onClientSessionActions(_ actions: [ClientSession.Action], resumeHandler: ResumeHandlerProtocol?) {
|
|
43
|
+
do {
|
|
44
|
+
let actionsRN: [[String: String?]] = actions.compactMap {
|
|
45
|
+
|
|
46
|
+
if ($0.`type` == "SELECT_PAYMENT_METHOD") {
|
|
47
|
+
let network = ($0.params?["binData"] as? [String: Any])?["network"] as? String
|
|
48
|
+
return [
|
|
49
|
+
"type": "SET_PAYMENT_METHOD",
|
|
50
|
+
"paymentMethodType": $0.params?["paymentMethodType"] as? String,
|
|
51
|
+
"network": network,
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if ($0.`type` == "UNSELECT_PAYMENT_METHOD") {
|
|
56
|
+
return [
|
|
57
|
+
"type": "UNSET_PAYMENT_METHOD",
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return [ "type": "UNKNOWN" ]
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
let request: [String: Any] = [
|
|
65
|
+
"actions": actionsRN
|
|
66
|
+
]
|
|
67
|
+
|
|
68
|
+
let data = try JSONSerialization.data(withJSONObject: request, options: .fragmentsAllowed)
|
|
69
|
+
let jsonString = String(data: data, encoding: .utf8)!
|
|
70
|
+
self.onClientSessionActionsCallback?([jsonString])
|
|
71
|
+
} catch {
|
|
72
|
+
checkoutFailed(with: ErrorTypeRN.ParseJsonFailed)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
onActionResumeCallback = { error, token in
|
|
76
|
+
if let token = token {
|
|
77
|
+
resumeHandler?.handle(newClientToken: token)
|
|
78
|
+
} else if let error = error {
|
|
79
|
+
resumeHandler?.handle(error: error)
|
|
80
|
+
} else {
|
|
81
|
+
resumeHandler?.handle(error: PrimerError.generic)
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
42
86
|
func onResumeSuccess(_ clientToken: String, resumeHandler: ResumeHandlerProtocol) {
|
|
43
87
|
self.onResumeSuccessCallback?([clientToken])
|
|
44
88
|
|
package/ios/PrimerRN.swift
CHANGED
|
@@ -17,11 +17,13 @@ class PrimerRN: NSObject {
|
|
|
17
17
|
var theme: PrimerThemeRN?
|
|
18
18
|
var flow: PrimerSessionFlow?
|
|
19
19
|
var onTokenizeSuccessCallback: RCTResponseSenderBlock?
|
|
20
|
+
var onClientSessionActionsCallback: RCTResponseSenderBlock?
|
|
20
21
|
var onResumeSuccessCallback: RCTResponseSenderBlock?
|
|
21
22
|
var onVaultSuccessCallback: RCTResponseSenderBlock?
|
|
22
23
|
var onDismissCallback: RCTResponseSenderBlock?
|
|
23
24
|
var onPrimerErrorCallback: RCTResponseSenderBlock?
|
|
24
25
|
var onResumeFlowCallback: BasicCompletionBlock?
|
|
26
|
+
var onActionResumeCallback: BasicCompletionBlock?
|
|
25
27
|
var onSavedPaymentInstrumentsFetchedCallback: RCTResponseSenderBlock?
|
|
26
28
|
|
|
27
29
|
private var sdkWasInitialised = false
|
|
@@ -61,6 +63,10 @@ class PrimerRN: NSObject {
|
|
|
61
63
|
self.onTokenizeSuccessCallback = callback
|
|
62
64
|
}
|
|
63
65
|
|
|
66
|
+
@objc func configureOnClientSessionActions(_ callback: @escaping RCTResponseSenderBlock) {
|
|
67
|
+
self.onClientSessionActionsCallback = callback
|
|
68
|
+
}
|
|
69
|
+
|
|
64
70
|
@objc func configureOnResumeSuccess(_ callback: @escaping RCTResponseSenderBlock) {
|
|
65
71
|
self.onResumeSuccessCallback = callback
|
|
66
72
|
}
|
|
@@ -146,6 +152,7 @@ class PrimerRN: NSObject {
|
|
|
146
152
|
} else {
|
|
147
153
|
self?.onResumeFlowCallback?(nil, nil)
|
|
148
154
|
}
|
|
155
|
+
|
|
149
156
|
self?.onResumeFlowCallback = nil
|
|
150
157
|
} catch {
|
|
151
158
|
self?.checkoutFailed(with: error)
|
|
@@ -153,6 +160,27 @@ class PrimerRN: NSObject {
|
|
|
153
160
|
}
|
|
154
161
|
}
|
|
155
162
|
|
|
163
|
+
@objc func actionResume(_ request: String) -> Void {
|
|
164
|
+
DispatchQueue.main.async { [weak self] in
|
|
165
|
+
do {
|
|
166
|
+
let json = request.data(using: .utf8)!
|
|
167
|
+
let request = try JSONDecoder().decode(PrimerResumeRequest.self, from: json)
|
|
168
|
+
|
|
169
|
+
if let error = request.error {
|
|
170
|
+
self?.onActionResumeCallback?(ErrorRN(message: error), nil)
|
|
171
|
+
} else if let clientToken = request.token {
|
|
172
|
+
self?.onActionResumeCallback?(nil, clientToken)
|
|
173
|
+
} else {
|
|
174
|
+
self?.onActionResumeCallback?(nil, nil)
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
self?.onActionResumeCallback = nil
|
|
178
|
+
} catch {
|
|
179
|
+
self?.checkoutFailed(with: error)
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
156
184
|
@objc func dispose() -> Void {
|
|
157
185
|
|
|
158
186
|
}
|
package/ios/ReactNative.m
CHANGED
|
@@ -11,6 +11,8 @@ RCT_EXTERN_METHOD(configureIntent: (NSString *)request)
|
|
|
11
11
|
|
|
12
12
|
RCT_EXTERN_METHOD(configureOnTokenizeSuccess: (RCTResponseSenderBlock)callback)
|
|
13
13
|
|
|
14
|
+
RCT_EXTERN_METHOD(configureOnClientSessionActions: (RCTResponseSenderBlock)callback)
|
|
15
|
+
|
|
14
16
|
RCT_EXTERN_METHOD(configureOnResumeSuccess: (RCTResponseSenderBlock)callback)
|
|
15
17
|
|
|
16
18
|
RCT_EXTERN_METHOD(configureOnVaultSuccess: (RCTResponseSenderBlock)callback)
|
|
@@ -27,6 +29,8 @@ RCT_EXTERN_METHOD(initialize: (NSString *)data)
|
|
|
27
29
|
|
|
28
30
|
RCT_EXTERN_METHOD(resume: (NSString *)data)
|
|
29
31
|
|
|
32
|
+
RCT_EXTERN_METHOD(actionResume: (NSString *)data)
|
|
33
|
+
|
|
30
34
|
RCT_EXTERN_METHOD(dispose)
|
|
31
35
|
|
|
32
36
|
@end
|
package/lib/commonjs/Primer.js
CHANGED
|
@@ -56,6 +56,7 @@ function configure(config) {
|
|
|
56
56
|
configureOnDismiss(config.onDismiss);
|
|
57
57
|
configureOnError(config.onError);
|
|
58
58
|
configureOnTokenizeSuccess(config.onTokenizeSuccess);
|
|
59
|
+
configureOnClientSessionActions(config.onClientSessionActions);
|
|
59
60
|
configureOnResumeSuccess(config.onResumeSuccess);
|
|
60
61
|
configureOnSavedPaymentInstrumentsFetched(config.onSavedPaymentInstrumentsFetched);
|
|
61
62
|
}
|
|
@@ -116,6 +117,53 @@ function configureOnTokenizeSuccess(callback = (_, __) => {}) {
|
|
|
116
117
|
});
|
|
117
118
|
}
|
|
118
119
|
|
|
120
|
+
function actionResume(request) {
|
|
121
|
+
const data = JSON.stringify(request);
|
|
122
|
+
NativeModule.actionResume(data);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function configureOnClientSessionActions(callback = (_, __) => {
|
|
126
|
+
NativeModule.configureOnClientSessionActions(___ => {
|
|
127
|
+
actionResume({
|
|
128
|
+
error: null,
|
|
129
|
+
token: null
|
|
130
|
+
});
|
|
131
|
+
configureOnClientSessionActions(callback);
|
|
132
|
+
});
|
|
133
|
+
}) {
|
|
134
|
+
NativeModule.configureOnClientSessionActions(data => {
|
|
135
|
+
try {
|
|
136
|
+
const parsedData = JSON.parse(data);
|
|
137
|
+
callback(parsedData, {
|
|
138
|
+
handleError: error => actionResume({
|
|
139
|
+
error,
|
|
140
|
+
token: null
|
|
141
|
+
}),
|
|
142
|
+
handleSuccess: () => actionResume({
|
|
143
|
+
error: null,
|
|
144
|
+
token: null
|
|
145
|
+
}),
|
|
146
|
+
handleNewClientToken: token => actionResume({
|
|
147
|
+
error: null,
|
|
148
|
+
token
|
|
149
|
+
}),
|
|
150
|
+
// deprecated
|
|
151
|
+
resumeWithError: error => actionResume({
|
|
152
|
+
error,
|
|
153
|
+
token: null
|
|
154
|
+
}),
|
|
155
|
+
resumeWithSuccess: token => actionResume({
|
|
156
|
+
error: null,
|
|
157
|
+
token
|
|
158
|
+
})
|
|
159
|
+
});
|
|
160
|
+
configureOnClientSessionActions(callback);
|
|
161
|
+
} catch (e) {
|
|
162
|
+
console.log('[OnClientSessionActions]', 'failed to parse json', e);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
|
|
119
167
|
function configureOnResumeSuccess(callback = (_, __) => {}) {
|
|
120
168
|
NativeModule.configureOnResumeSuccess(paymentMethodToken => {
|
|
121
169
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Primer.ts"],"names":["PrimerRN","NativeModule","NativeModules","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","fetchSavedPaymentInstruments","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnResumeSuccess","onResumeSuccess","configureOnSavedPaymentInstrumentsFetched","onSavedPaymentInstrumentsFetched","data","JSON","stringify","resume","request","callback","_","__","parsedData","parse","handleError","error","handleSuccess","handleNewClientToken","resumeWithError","resumeWithSuccess","e","console","log","paymentMethodToken","configureOnPrimerError"],"mappings":"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","sourcesContent":["import { NativeModules } from 'react-native';\nimport type { PaymentInstrumentToken } from './models/payment-instrument-token';\nimport type { IPrimer } from './models/primer';\nimport type {\n OnDismissCallback,\n OnPrimerErrorCallback,\n OnSavedPaymentInstrumentsFetchedCallback,\n OnTokenAddedToVaultCallback,\n OnTokenizeSuccessCallback,\n} from './models/primer-callbacks';\nimport type { PrimerConfig } from './models/primer-config';\nimport type { PrimerError } from './models/primer-error';\nimport type {\n PrimerIntent,\n PrimerPaymentMethodIntent,\n} from './models/primer-intent';\nimport type { PrimerSettings } from './models/primer-settings';\nimport type { PrimerTheme } from './models/primer-theme';\nimport { parseCallback } from './utils';\n\nconst { PrimerRN: NativeModule } = NativeModules;\n\nexport const PrimerNativeMapping: IPrimer = {\n showUniversalCheckout(token: String, config: PrimerConfig): void {\n configureIntent({ vault: false, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showVaultManager(token: String, config: PrimerConfig): void {\n configureIntent({ vault: true, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showPaymentMethod(\n token: String,\n intent: PrimerPaymentMethodIntent,\n config: PrimerConfig\n ): void {\n configureIntent(intent);\n configure(config);\n NativeModule.initialize(token);\n },\n\n fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {\n configure(config);\n NativeModule.fetchSavedPaymentInstruments(token);\n },\n\n dispose(): void {\n NativeModule.dispose();\n },\n};\n\nfunction configure(config: PrimerConfig): void {\n configureTheme(config.theme);\n configureSettings(config.settings);\n configureOnVaultSuccess(config.onTokenAddedToVault);\n configureOnDismiss(config.onDismiss);\n configureOnError(config.onError);\n configureOnTokenizeSuccess(config.onTokenizeSuccess);\n configureOnResumeSuccess(config.onResumeSuccess);\n configureOnSavedPaymentInstrumentsFetched(\n config.onSavedPaymentInstrumentsFetched\n );\n}\n\nfunction configureSettings(settings: PrimerSettings = {}): void {\n const data = JSON.stringify(settings);\n NativeModule.configureSettings(data);\n}\n\nfunction configureTheme(theme: PrimerTheme = {}): void {\n const data = JSON.stringify(theme);\n NativeModule.configureTheme(data);\n}\n\nfunction configureIntent(\n intent: PrimerIntent = { vault: false, paymentMethod: 'Any' }\n): void {\n const data = JSON.stringify(intent);\n NativeModule.configureIntent(data);\n}\n\nfunction resume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.resume(data);\n}\n\nfunction configureOnTokenizeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnTokenizeSuccess((data: any) => {\n try {\n const parsedData = JSON.parse(data) as PaymentInstrumentToken;\n callback(parsedData, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnResumeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnResumeSuccess((paymentMethodToken: any) => {\n try {\n callback(paymentMethodToken, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnVaultSuccess(\n callback: OnTokenAddedToVaultCallback = (_) => {}\n) {\n NativeModule.configureOnVaultSuccess((data: any) => {\n parseCallback<PaymentInstrumentToken>(data, callback);\n });\n}\n\nfunction configureOnDismiss(callback: OnDismissCallback = () => {}) {\n NativeModule.configureOnDismiss((_: any) => callback());\n}\n\nfunction configureOnError(callback: OnPrimerErrorCallback = (_) => {}) {\n NativeModule.configureOnPrimerError((data: any) => {\n parseCallback<PrimerError>(data, callback);\n });\n}\n\nfunction configureOnSavedPaymentInstrumentsFetched(\n callback: OnSavedPaymentInstrumentsFetchedCallback = (_) => {}\n) {\n NativeModule.configureOnSavedPaymentInstrumentsFetched((data: any) => {\n parseCallback<PaymentInstrumentToken[]>(data, callback);\n });\n}\n\ninterface ResumeRequest {\n error: string | null;\n token: string | null;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Primer.ts"],"names":["PrimerRN","NativeModule","NativeModules","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","fetchSavedPaymentInstruments","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","configureOnSavedPaymentInstrumentsFetched","onSavedPaymentInstrumentsFetched","data","JSON","stringify","resume","request","callback","_","__","parsedData","parse","handleError","error","handleSuccess","handleNewClientToken","resumeWithError","resumeWithSuccess","e","console","log","actionResume","___","paymentMethodToken","configureOnPrimerError"],"mappings":"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","sourcesContent":["import { NativeModules } from 'react-native';\nimport type { ClientSessionActionsRequest } from './models/client-session-actions-request';\nimport type { PaymentInstrumentToken } from './models/payment-instrument-token';\nimport type { IPrimer } from './models/primer';\nimport type {\n OnClientSessionActionsCallback,\n OnDismissCallback,\n OnPrimerErrorCallback,\n OnSavedPaymentInstrumentsFetchedCallback,\n OnTokenAddedToVaultCallback,\n OnTokenizeSuccessCallback,\n} from './models/primer-callbacks';\nimport type { PrimerConfig } from './models/primer-config';\nimport type { PrimerError } from './models/primer-error';\nimport type {\n PrimerIntent,\n PrimerPaymentMethodIntent,\n} from './models/primer-intent';\nimport type { PrimerSettings } from './models/primer-settings';\nimport type { PrimerTheme } from './models/primer-theme';\nimport { parseCallback } from './utils';\n\nconst { PrimerRN: NativeModule } = NativeModules;\n\nexport const PrimerNativeMapping: IPrimer = {\n showUniversalCheckout(token: String, config: PrimerConfig): void {\n configureIntent({ vault: false, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showVaultManager(token: String, config: PrimerConfig): void {\n configureIntent({ vault: true, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showPaymentMethod(\n token: String,\n intent: PrimerPaymentMethodIntent,\n config: PrimerConfig\n ): void {\n configureIntent(intent);\n configure(config);\n NativeModule.initialize(token);\n },\n\n fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {\n configure(config);\n NativeModule.fetchSavedPaymentInstruments(token);\n },\n\n dispose(): void {\n NativeModule.dispose();\n },\n};\n\nfunction configure(config: PrimerConfig): void {\n configureTheme(config.theme);\n configureSettings(config.settings);\n configureOnVaultSuccess(config.onTokenAddedToVault);\n configureOnDismiss(config.onDismiss);\n configureOnError(config.onError);\n configureOnTokenizeSuccess(config.onTokenizeSuccess);\n configureOnClientSessionActions(config.onClientSessionActions);\n configureOnResumeSuccess(config.onResumeSuccess);\n configureOnSavedPaymentInstrumentsFetched(\n config.onSavedPaymentInstrumentsFetched\n );\n}\n\nfunction configureSettings(settings: PrimerSettings = {}): void {\n const data = JSON.stringify(settings);\n NativeModule.configureSettings(data);\n}\n\nfunction configureTheme(theme: PrimerTheme = {}): void {\n const data = JSON.stringify(theme);\n NativeModule.configureTheme(data);\n}\n\nfunction configureIntent(\n intent: PrimerIntent = { vault: false, paymentMethod: 'Any' }\n): void {\n const data = JSON.stringify(intent);\n NativeModule.configureIntent(data);\n}\n\nfunction resume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.resume(data);\n}\n\nfunction configureOnTokenizeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnTokenizeSuccess((data: any) => {\n try {\n const parsedData = JSON.parse(data) as PaymentInstrumentToken;\n callback(parsedData, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction actionResume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.actionResume(data);\n}\n\nfunction configureOnClientSessionActions(\n callback: OnClientSessionActionsCallback = (_, __) => {\n NativeModule.configureOnClientSessionActions((___: any) => {\n actionResume({ error: null, token: null });\n configureOnClientSessionActions(callback);\n });\n }\n) {\n NativeModule.configureOnClientSessionActions((data: any) => {\n try {\n const parsedData = JSON.parse(data) as ClientSessionActionsRequest;\n callback(parsedData, {\n handleError: (error) => actionResume({ error, token: null }),\n handleSuccess: () => actionResume({ error: null, token: null }),\n handleNewClientToken: (token) => actionResume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => actionResume({ error, token: null }),\n resumeWithSuccess: (token) => actionResume({ error: null, token }),\n });\n configureOnClientSessionActions(callback);\n } catch (e) {\n console.log('[OnClientSessionActions]', 'failed to parse json', e);\n }\n });\n}\n\nfunction configureOnResumeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnResumeSuccess((paymentMethodToken: any) => {\n try {\n callback(paymentMethodToken, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnVaultSuccess(\n callback: OnTokenAddedToVaultCallback = (_) => {}\n) {\n NativeModule.configureOnVaultSuccess((data: any) => {\n parseCallback<PaymentInstrumentToken>(data, callback);\n });\n}\n\nfunction configureOnDismiss(callback: OnDismissCallback = () => {}) {\n NativeModule.configureOnDismiss((_: any) => callback());\n}\n\nfunction configureOnError(callback: OnPrimerErrorCallback = (_) => {}) {\n NativeModule.configureOnPrimerError((data: any) => {\n parseCallback<PrimerError>(data, callback);\n });\n}\n\nfunction configureOnSavedPaymentInstrumentsFetched(\n callback: OnSavedPaymentInstrumentsFetchedCallback = (_) => {}\n) {\n NativeModule.configureOnSavedPaymentInstrumentsFetched((data: any) => {\n parseCallback<PaymentInstrumentToken[]>(data, callback);\n });\n}\n\ninterface ResumeRequest {\n error: string | null;\n token: string | null;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
|
package/lib/module/Primer.js
CHANGED
|
@@ -46,6 +46,7 @@ function configure(config) {
|
|
|
46
46
|
configureOnDismiss(config.onDismiss);
|
|
47
47
|
configureOnError(config.onError);
|
|
48
48
|
configureOnTokenizeSuccess(config.onTokenizeSuccess);
|
|
49
|
+
configureOnClientSessionActions(config.onClientSessionActions);
|
|
49
50
|
configureOnResumeSuccess(config.onResumeSuccess);
|
|
50
51
|
configureOnSavedPaymentInstrumentsFetched(config.onSavedPaymentInstrumentsFetched);
|
|
51
52
|
}
|
|
@@ -106,6 +107,53 @@ function configureOnTokenizeSuccess(callback = (_, __) => {}) {
|
|
|
106
107
|
});
|
|
107
108
|
}
|
|
108
109
|
|
|
110
|
+
function actionResume(request) {
|
|
111
|
+
const data = JSON.stringify(request);
|
|
112
|
+
NativeModule.actionResume(data);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function configureOnClientSessionActions(callback = (_, __) => {
|
|
116
|
+
NativeModule.configureOnClientSessionActions(___ => {
|
|
117
|
+
actionResume({
|
|
118
|
+
error: null,
|
|
119
|
+
token: null
|
|
120
|
+
});
|
|
121
|
+
configureOnClientSessionActions(callback);
|
|
122
|
+
});
|
|
123
|
+
}) {
|
|
124
|
+
NativeModule.configureOnClientSessionActions(data => {
|
|
125
|
+
try {
|
|
126
|
+
const parsedData = JSON.parse(data);
|
|
127
|
+
callback(parsedData, {
|
|
128
|
+
handleError: error => actionResume({
|
|
129
|
+
error,
|
|
130
|
+
token: null
|
|
131
|
+
}),
|
|
132
|
+
handleSuccess: () => actionResume({
|
|
133
|
+
error: null,
|
|
134
|
+
token: null
|
|
135
|
+
}),
|
|
136
|
+
handleNewClientToken: token => actionResume({
|
|
137
|
+
error: null,
|
|
138
|
+
token
|
|
139
|
+
}),
|
|
140
|
+
// deprecated
|
|
141
|
+
resumeWithError: error => actionResume({
|
|
142
|
+
error,
|
|
143
|
+
token: null
|
|
144
|
+
}),
|
|
145
|
+
resumeWithSuccess: token => actionResume({
|
|
146
|
+
error: null,
|
|
147
|
+
token
|
|
148
|
+
})
|
|
149
|
+
});
|
|
150
|
+
configureOnClientSessionActions(callback);
|
|
151
|
+
} catch (e) {
|
|
152
|
+
console.log('[OnClientSessionActions]', 'failed to parse json', e);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
|
|
109
157
|
function configureOnResumeSuccess(callback = (_, __) => {}) {
|
|
110
158
|
NativeModule.configureOnResumeSuccess(paymentMethodToken => {
|
|
111
159
|
try {
|
package/lib/module/Primer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Primer.ts"],"names":["NativeModules","parseCallback","PrimerRN","NativeModule","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","fetchSavedPaymentInstruments","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnResumeSuccess","onResumeSuccess","configureOnSavedPaymentInstrumentsFetched","onSavedPaymentInstrumentsFetched","data","JSON","stringify","resume","request","callback","_","__","parsedData","parse","handleError","error","handleSuccess","handleNewClientToken","resumeWithError","resumeWithSuccess","e","console","log","paymentMethodToken","configureOnPrimerError"],"mappings":"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","sourcesContent":["import { NativeModules } from 'react-native';\nimport type { PaymentInstrumentToken } from './models/payment-instrument-token';\nimport type { IPrimer } from './models/primer';\nimport type {\n OnDismissCallback,\n OnPrimerErrorCallback,\n OnSavedPaymentInstrumentsFetchedCallback,\n OnTokenAddedToVaultCallback,\n OnTokenizeSuccessCallback,\n} from './models/primer-callbacks';\nimport type { PrimerConfig } from './models/primer-config';\nimport type { PrimerError } from './models/primer-error';\nimport type {\n PrimerIntent,\n PrimerPaymentMethodIntent,\n} from './models/primer-intent';\nimport type { PrimerSettings } from './models/primer-settings';\nimport type { PrimerTheme } from './models/primer-theme';\nimport { parseCallback } from './utils';\n\nconst { PrimerRN: NativeModule } = NativeModules;\n\nexport const PrimerNativeMapping: IPrimer = {\n showUniversalCheckout(token: String, config: PrimerConfig): void {\n configureIntent({ vault: false, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showVaultManager(token: String, config: PrimerConfig): void {\n configureIntent({ vault: true, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showPaymentMethod(\n token: String,\n intent: PrimerPaymentMethodIntent,\n config: PrimerConfig\n ): void {\n configureIntent(intent);\n configure(config);\n NativeModule.initialize(token);\n },\n\n fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {\n configure(config);\n NativeModule.fetchSavedPaymentInstruments(token);\n },\n\n dispose(): void {\n NativeModule.dispose();\n },\n};\n\nfunction configure(config: PrimerConfig): void {\n configureTheme(config.theme);\n configureSettings(config.settings);\n configureOnVaultSuccess(config.onTokenAddedToVault);\n configureOnDismiss(config.onDismiss);\n configureOnError(config.onError);\n configureOnTokenizeSuccess(config.onTokenizeSuccess);\n configureOnResumeSuccess(config.onResumeSuccess);\n configureOnSavedPaymentInstrumentsFetched(\n config.onSavedPaymentInstrumentsFetched\n );\n}\n\nfunction configureSettings(settings: PrimerSettings = {}): void {\n const data = JSON.stringify(settings);\n NativeModule.configureSettings(data);\n}\n\nfunction configureTheme(theme: PrimerTheme = {}): void {\n const data = JSON.stringify(theme);\n NativeModule.configureTheme(data);\n}\n\nfunction configureIntent(\n intent: PrimerIntent = { vault: false, paymentMethod: 'Any' }\n): void {\n const data = JSON.stringify(intent);\n NativeModule.configureIntent(data);\n}\n\nfunction resume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.resume(data);\n}\n\nfunction configureOnTokenizeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnTokenizeSuccess((data: any) => {\n try {\n const parsedData = JSON.parse(data) as PaymentInstrumentToken;\n callback(parsedData, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnResumeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnResumeSuccess((paymentMethodToken: any) => {\n try {\n callback(paymentMethodToken, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnVaultSuccess(\n callback: OnTokenAddedToVaultCallback = (_) => {}\n) {\n NativeModule.configureOnVaultSuccess((data: any) => {\n parseCallback<PaymentInstrumentToken>(data, callback);\n });\n}\n\nfunction configureOnDismiss(callback: OnDismissCallback = () => {}) {\n NativeModule.configureOnDismiss((_: any) => callback());\n}\n\nfunction configureOnError(callback: OnPrimerErrorCallback = (_) => {}) {\n NativeModule.configureOnPrimerError((data: any) => {\n parseCallback<PrimerError>(data, callback);\n });\n}\n\nfunction configureOnSavedPaymentInstrumentsFetched(\n callback: OnSavedPaymentInstrumentsFetchedCallback = (_) => {}\n) {\n NativeModule.configureOnSavedPaymentInstrumentsFetched((data: any) => {\n parseCallback<PaymentInstrumentToken[]>(data, callback);\n });\n}\n\ninterface ResumeRequest {\n error: string | null;\n token: string | null;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Primer.ts"],"names":["NativeModules","parseCallback","PrimerRN","NativeModule","PrimerNativeMapping","showUniversalCheckout","token","config","configureIntent","vault","paymentMethod","configure","initialize","showVaultManager","showPaymentMethod","intent","fetchSavedPaymentInstruments","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","configureOnSavedPaymentInstrumentsFetched","onSavedPaymentInstrumentsFetched","data","JSON","stringify","resume","request","callback","_","__","parsedData","parse","handleError","error","handleSuccess","handleNewClientToken","resumeWithError","resumeWithSuccess","e","console","log","actionResume","___","paymentMethodToken","configureOnPrimerError"],"mappings":"AAAA,SAASA,aAAT,QAA8B,cAA9B;AAoBA,SAASC,aAAT,QAA8B,SAA9B;AAEA,MAAM;AAAEC,EAAAA,QAAQ,EAAEC;AAAZ,IAA6BH,aAAnC;AAEA,OAAO,MAAMI,mBAA4B,GAAG;AAC1CC,EAAAA,qBAAqB,CAACC,KAAD,EAAgBC,MAAhB,EAA4C;AAC/DC,IAAAA,eAAe,CAAC;AAAEC,MAAAA,KAAK,EAAE,KAAT;AAAgBC,MAAAA,aAAa,EAAE;AAA/B,KAAD,CAAf;AACAC,IAAAA,SAAS,CAACJ,MAAD,CAAT;AACAJ,IAAAA,YAAY,CAACS,UAAb,CAAwBN,KAAxB;AACD,GALyC;;AAO1CO,EAAAA,gBAAgB,CAACP,KAAD,EAAgBC,MAAhB,EAA4C;AAC1DC,IAAAA,eAAe,CAAC;AAAEC,MAAAA,KAAK,EAAE,IAAT;AAAeC,MAAAA,aAAa,EAAE;AAA9B,KAAD,CAAf;AACAC,IAAAA,SAAS,CAACJ,MAAD,CAAT;AACAJ,IAAAA,YAAY,CAACS,UAAb,CAAwBN,KAAxB;AACD,GAXyC;;AAa1CQ,EAAAA,iBAAiB,CACfR,KADe,EAEfS,MAFe,EAGfR,MAHe,EAIT;AACNC,IAAAA,eAAe,CAACO,MAAD,CAAf;AACAJ,IAAAA,SAAS,CAACJ,MAAD,CAAT;AACAJ,IAAAA,YAAY,CAACS,UAAb,CAAwBN,KAAxB;AACD,GArByC;;AAuB1CU,EAAAA,4BAA4B,CAACV,KAAD,EAAgBC,MAAhB,EAA4C;AACtEI,IAAAA,SAAS,CAACJ,MAAD,CAAT;AACAJ,IAAAA,YAAY,CAACa,4BAAb,CAA0CV,KAA1C;AACD,GA1ByC;;AA4B1CW,EAAAA,OAAO,GAAS;AACdd,IAAAA,YAAY,CAACc,OAAb;AACD;;AA9ByC,CAArC;;AAiCP,SAASN,SAAT,CAAmBJ,MAAnB,EAA+C;AAC7CW,EAAAA,cAAc,CAACX,MAAM,CAACY,KAAR,CAAd;AACAC,EAAAA,iBAAiB,CAACb,MAAM,CAACc,QAAR,CAAjB;AACAC,EAAAA,uBAAuB,CAACf,MAAM,CAACgB,mBAAR,CAAvB;AACAC,EAAAA,kBAAkB,CAACjB,MAAM,CAACkB,SAAR,CAAlB;AACAC,EAAAA,gBAAgB,CAACnB,MAAM,CAACoB,OAAR,CAAhB;AACAC,EAAAA,0BAA0B,CAACrB,MAAM,CAACsB,iBAAR,CAA1B;AACAC,EAAAA,+BAA+B,CAACvB,MAAM,CAACwB,sBAAR,CAA/B;AACAC,EAAAA,wBAAwB,CAACzB,MAAM,CAAC0B,eAAR,CAAxB;AACAC,EAAAA,yCAAyC,CACvC3B,MAAM,CAAC4B,gCADgC,CAAzC;AAGD;;AAED,SAASf,iBAAT,CAA2BC,QAAwB,GAAG,EAAtD,EAAgE;AAC9D,QAAMe,IAAI,GAAGC,IAAI,CAACC,SAAL,CAAejB,QAAf,CAAb;AACAlB,EAAAA,YAAY,CAACiB,iBAAb,CAA+BgB,IAA/B;AACD;;AAED,SAASlB,cAAT,CAAwBC,KAAkB,GAAG,EAA7C,EAAuD;AACrD,QAAMiB,IAAI,GAAGC,IAAI,CAACC,SAAL,CAAenB,KAAf,CAAb;AACAhB,EAAAA,YAAY,CAACe,cAAb,CAA4BkB,IAA5B;AACD;;AAED,SAAS5B,eAAT,CACEO,MAAoB,GAAG;AAAEN,EAAAA,KAAK,EAAE,KAAT;AAAgBC,EAAAA,aAAa,EAAE;AAA/B,CADzB,EAEQ;AACN,QAAM0B,IAAI,GAAGC,IAAI,CAACC,SAAL,CAAevB,MAAf,CAAb;AACAZ,EAAAA,YAAY,CAACK,eAAb,CAA6B4B,IAA7B;AACD;;AAED,SAASG,MAAT,CAAgBC,OAAhB,EAAwC;AACtC,QAAMJ,IAAI,GAAGC,IAAI,CAACC,SAAL,CAAeE,OAAf,CAAb;AACArC,EAAAA,YAAY,CAACoC,MAAb,CAAoBH,IAApB;AACD;;AAED,SAASR,0BAAT,CACEa,QAAmC,GAAG,CAACC,CAAD,EAAIC,EAAJ,KAAW,CAAE,CADrD,EAEE;AACAxC,EAAAA,YAAY,CAACyB,0BAAb,CAAyCQ,IAAD,IAAe;AACrD,QAAI;AACF,YAAMQ,UAAU,GAAGP,IAAI,CAACQ,KAAL,CAAWT,IAAX,CAAnB;AACAK,MAAAA,QAAQ,CAACG,UAAD,EAAa;AACnBE,QAAAA,WAAW,EAAGC,KAAD,IAAWR,MAAM,CAAC;AAAEQ,UAAAA,KAAF;AAASzC,UAAAA,KAAK,EAAE;AAAhB,SAAD,CADX;AAEnB0C,QAAAA,aAAa,EAAE,MAAMT,MAAM,CAAC;AAAEQ,UAAAA,KAAK,EAAE,IAAT;AAAezC,UAAAA,KAAK,EAAE;AAAtB,SAAD,CAFR;AAGnB2C,QAAAA,oBAAoB,EAAG3C,KAAD,IAAWiC,MAAM,CAAC;AAAEQ,UAAAA,KAAK,EAAE,IAAT;AAAezC,UAAAA;AAAf,SAAD,CAHpB;AAInB;AACA4C,QAAAA,eAAe,EAAGH,KAAD,IAAWR,MAAM,CAAC;AAAEQ,UAAAA,KAAF;AAASzC,UAAAA,KAAK,EAAE;AAAhB,SAAD,CALf;AAMnB6C,QAAAA,iBAAiB,EAAG7C,KAAD,IAAWiC,MAAM,CAAC;AAAEQ,UAAAA,KAAK,EAAE,IAAT;AAAezC,UAAAA;AAAf,SAAD;AANjB,OAAb,CAAR;AAQD,KAVD,CAUE,OAAO8C,CAAP,EAAU;AACVC,MAAAA,OAAO,CAACC,GAAR,CAAY,sBAAZ,EAAoCF,CAApC;AACD;AACF,GAdD;AAeD;;AAED,SAASG,YAAT,CAAsBf,OAAtB,EAA8C;AAC5C,QAAMJ,IAAI,GAAGC,IAAI,CAACC,SAAL,CAAeE,OAAf,CAAb;AACArC,EAAAA,YAAY,CAACoD,YAAb,CAA0BnB,IAA1B;AACD;;AAED,SAASN,+BAAT,CACEW,QAAwC,GAAG,CAACC,CAAD,EAAIC,EAAJ,KAAW;AACpDxC,EAAAA,YAAY,CAAC2B,+BAAb,CAA8C0B,GAAD,IAAc;AACzDD,IAAAA,YAAY,CAAC;AAAER,MAAAA,KAAK,EAAE,IAAT;AAAezC,MAAAA,KAAK,EAAE;AAAtB,KAAD,CAAZ;AACAwB,IAAAA,+BAA+B,CAACW,QAAD,CAA/B;AACD,GAHD;AAID,CANH,EAOE;AACAtC,EAAAA,YAAY,CAAC2B,+BAAb,CAA8CM,IAAD,IAAe;AAC1D,QAAI;AACF,YAAMQ,UAAU,GAAGP,IAAI,CAACQ,KAAL,CAAWT,IAAX,CAAnB;AACAK,MAAAA,QAAQ,CAACG,UAAD,EAAa;AACnBE,QAAAA,WAAW,EAAGC,KAAD,IAAWQ,YAAY,CAAC;AAAER,UAAAA,KAAF;AAASzC,UAAAA,KAAK,EAAE;AAAhB,SAAD,CADjB;AAEnB0C,QAAAA,aAAa,EAAE,MAAMO,YAAY,CAAC;AAAER,UAAAA,KAAK,EAAE,IAAT;AAAezC,UAAAA,KAAK,EAAE;AAAtB,SAAD,CAFd;AAGnB2C,QAAAA,oBAAoB,EAAG3C,KAAD,IAAWiD,YAAY,CAAC;AAAER,UAAAA,KAAK,EAAE,IAAT;AAAezC,UAAAA;AAAf,SAAD,CAH1B;AAInB;AACA4C,QAAAA,eAAe,EAAGH,KAAD,IAAWQ,YAAY,CAAC;AAAER,UAAAA,KAAF;AAASzC,UAAAA,KAAK,EAAE;AAAhB,SAAD,CALrB;AAMnB6C,QAAAA,iBAAiB,EAAG7C,KAAD,IAAWiD,YAAY,CAAC;AAAER,UAAAA,KAAK,EAAE,IAAT;AAAezC,UAAAA;AAAf,SAAD;AANvB,OAAb,CAAR;AAQAwB,MAAAA,+BAA+B,CAACW,QAAD,CAA/B;AACD,KAXD,CAWE,OAAOW,CAAP,EAAU;AACVC,MAAAA,OAAO,CAACC,GAAR,CAAY,0BAAZ,EAAwC,sBAAxC,EAAgEF,CAAhE;AACD;AACF,GAfD;AAgBD;;AAED,SAASpB,wBAAT,CACES,QAAmC,GAAG,CAACC,CAAD,EAAIC,EAAJ,KAAW,CAAE,CADrD,EAEE;AACAxC,EAAAA,YAAY,CAAC6B,wBAAb,CAAuCyB,kBAAD,IAA6B;AACjE,QAAI;AACFhB,MAAAA,QAAQ,CAACgB,kBAAD,EAAqB;AAC3BX,QAAAA,WAAW,EAAGC,KAAD,IAAWR,MAAM,CAAC;AAAEQ,UAAAA,KAAF;AAASzC,UAAAA,KAAK,EAAE;AAAhB,SAAD,CADH;AAE3B0C,QAAAA,aAAa,EAAE,MAAMT,MAAM,CAAC;AAAEQ,UAAAA,KAAK,EAAE,IAAT;AAAezC,UAAAA,KAAK,EAAE;AAAtB,SAAD,CAFA;AAG3B2C,QAAAA,oBAAoB,EAAG3C,KAAD,IAAWiC,MAAM,CAAC;AAAEQ,UAAAA,KAAK,EAAE,IAAT;AAAezC,UAAAA;AAAf,SAAD,CAHZ;AAI3B;AACA4C,QAAAA,eAAe,EAAGH,KAAD,IAAWR,MAAM,CAAC;AAAEQ,UAAAA,KAAF;AAASzC,UAAAA,KAAK,EAAE;AAAhB,SAAD,CALP;AAM3B6C,QAAAA,iBAAiB,EAAG7C,KAAD,IAAWiC,MAAM,CAAC;AAAEQ,UAAAA,KAAK,EAAE,IAAT;AAAezC,UAAAA;AAAf,SAAD;AANT,OAArB,CAAR;AAQD,KATD,CASE,OAAO8C,CAAP,EAAU;AACVC,MAAAA,OAAO,CAACC,GAAR,CAAY,sBAAZ,EAAoCF,CAApC;AACD;AACF,GAbD;AAcD;;AAED,SAAS9B,uBAAT,CACEmB,QAAqC,GAAIC,CAAD,IAAO,CAAE,CADnD,EAEE;AACAvC,EAAAA,YAAY,CAACmB,uBAAb,CAAsCc,IAAD,IAAe;AAClDnC,IAAAA,aAAa,CAAyBmC,IAAzB,EAA+BK,QAA/B,CAAb;AACD,GAFD;AAGD;;AAED,SAASjB,kBAAT,CAA4BiB,QAA2B,GAAG,MAAM,CAAE,CAAlE,EAAoE;AAClEtC,EAAAA,YAAY,CAACqB,kBAAb,CAAiCkB,CAAD,IAAYD,QAAQ,EAApD;AACD;;AAED,SAASf,gBAAT,CAA0Be,QAA+B,GAAIC,CAAD,IAAO,CAAE,CAArE,EAAuE;AACrEvC,EAAAA,YAAY,CAACuD,sBAAb,CAAqCtB,IAAD,IAAe;AACjDnC,IAAAA,aAAa,CAAcmC,IAAd,EAAoBK,QAApB,CAAb;AACD,GAFD;AAGD;;AAED,SAASP,yCAAT,CACEO,QAAkD,GAAIC,CAAD,IAAO,CAAE,CADhE,EAEE;AACAvC,EAAAA,YAAY,CAAC+B,yCAAb,CAAwDE,IAAD,IAAe;AACpEnC,IAAAA,aAAa,CAA2BmC,IAA3B,EAAiCK,QAAjC,CAAb;AACD,GAFD;AAGD","sourcesContent":["import { NativeModules } from 'react-native';\nimport type { ClientSessionActionsRequest } from './models/client-session-actions-request';\nimport type { PaymentInstrumentToken } from './models/payment-instrument-token';\nimport type { IPrimer } from './models/primer';\nimport type {\n OnClientSessionActionsCallback,\n OnDismissCallback,\n OnPrimerErrorCallback,\n OnSavedPaymentInstrumentsFetchedCallback,\n OnTokenAddedToVaultCallback,\n OnTokenizeSuccessCallback,\n} from './models/primer-callbacks';\nimport type { PrimerConfig } from './models/primer-config';\nimport type { PrimerError } from './models/primer-error';\nimport type {\n PrimerIntent,\n PrimerPaymentMethodIntent,\n} from './models/primer-intent';\nimport type { PrimerSettings } from './models/primer-settings';\nimport type { PrimerTheme } from './models/primer-theme';\nimport { parseCallback } from './utils';\n\nconst { PrimerRN: NativeModule } = NativeModules;\n\nexport const PrimerNativeMapping: IPrimer = {\n showUniversalCheckout(token: String, config: PrimerConfig): void {\n configureIntent({ vault: false, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showVaultManager(token: String, config: PrimerConfig): void {\n configureIntent({ vault: true, paymentMethod: 'Any' });\n configure(config);\n NativeModule.initialize(token);\n },\n\n showPaymentMethod(\n token: String,\n intent: PrimerPaymentMethodIntent,\n config: PrimerConfig\n ): void {\n configureIntent(intent);\n configure(config);\n NativeModule.initialize(token);\n },\n\n fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {\n configure(config);\n NativeModule.fetchSavedPaymentInstruments(token);\n },\n\n dispose(): void {\n NativeModule.dispose();\n },\n};\n\nfunction configure(config: PrimerConfig): void {\n configureTheme(config.theme);\n configureSettings(config.settings);\n configureOnVaultSuccess(config.onTokenAddedToVault);\n configureOnDismiss(config.onDismiss);\n configureOnError(config.onError);\n configureOnTokenizeSuccess(config.onTokenizeSuccess);\n configureOnClientSessionActions(config.onClientSessionActions);\n configureOnResumeSuccess(config.onResumeSuccess);\n configureOnSavedPaymentInstrumentsFetched(\n config.onSavedPaymentInstrumentsFetched\n );\n}\n\nfunction configureSettings(settings: PrimerSettings = {}): void {\n const data = JSON.stringify(settings);\n NativeModule.configureSettings(data);\n}\n\nfunction configureTheme(theme: PrimerTheme = {}): void {\n const data = JSON.stringify(theme);\n NativeModule.configureTheme(data);\n}\n\nfunction configureIntent(\n intent: PrimerIntent = { vault: false, paymentMethod: 'Any' }\n): void {\n const data = JSON.stringify(intent);\n NativeModule.configureIntent(data);\n}\n\nfunction resume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.resume(data);\n}\n\nfunction configureOnTokenizeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnTokenizeSuccess((data: any) => {\n try {\n const parsedData = JSON.parse(data) as PaymentInstrumentToken;\n callback(parsedData, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction actionResume(request: ResumeRequest) {\n const data = JSON.stringify(request);\n NativeModule.actionResume(data);\n}\n\nfunction configureOnClientSessionActions(\n callback: OnClientSessionActionsCallback = (_, __) => {\n NativeModule.configureOnClientSessionActions((___: any) => {\n actionResume({ error: null, token: null });\n configureOnClientSessionActions(callback);\n });\n }\n) {\n NativeModule.configureOnClientSessionActions((data: any) => {\n try {\n const parsedData = JSON.parse(data) as ClientSessionActionsRequest;\n callback(parsedData, {\n handleError: (error) => actionResume({ error, token: null }),\n handleSuccess: () => actionResume({ error: null, token: null }),\n handleNewClientToken: (token) => actionResume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => actionResume({ error, token: null }),\n resumeWithSuccess: (token) => actionResume({ error: null, token }),\n });\n configureOnClientSessionActions(callback);\n } catch (e) {\n console.log('[OnClientSessionActions]', 'failed to parse json', e);\n }\n });\n}\n\nfunction configureOnResumeSuccess(\n callback: OnTokenizeSuccessCallback = (_, __) => {}\n) {\n NativeModule.configureOnResumeSuccess((paymentMethodToken: any) => {\n try {\n callback(paymentMethodToken, {\n handleError: (error) => resume({ error, token: null }),\n handleSuccess: () => resume({ error: null, token: null }),\n handleNewClientToken: (token) => resume({ error: null, token }),\n // deprecated\n resumeWithError: (error) => resume({ error, token: null }),\n resumeWithSuccess: (token) => resume({ error: null, token }),\n });\n } catch (e) {\n console.log('failed to parse json', e);\n }\n });\n}\n\nfunction configureOnVaultSuccess(\n callback: OnTokenAddedToVaultCallback = (_) => {}\n) {\n NativeModule.configureOnVaultSuccess((data: any) => {\n parseCallback<PaymentInstrumentToken>(data, callback);\n });\n}\n\nfunction configureOnDismiss(callback: OnDismissCallback = () => {}) {\n NativeModule.configureOnDismiss((_: any) => callback());\n}\n\nfunction configureOnError(callback: OnPrimerErrorCallback = (_) => {}) {\n NativeModule.configureOnPrimerError((data: any) => {\n parseCallback<PrimerError>(data, callback);\n });\n}\n\nfunction configureOnSavedPaymentInstrumentsFetched(\n callback: OnSavedPaymentInstrumentsFetchedCallback = (_) => {}\n) {\n NativeModule.configureOnSavedPaymentInstrumentsFetched((data: any) => {\n parseCallback<PaymentInstrumentToken[]>(data, callback);\n });\n}\n\ninterface ResumeRequest {\n error: string | null;\n token: string | null;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare type ClientSessionActionsRequest = IClientSessionActionsRequest;
|
|
2
|
+
interface IClientSessionActionsRequest {
|
|
3
|
+
actions: ClientSessionAction[];
|
|
4
|
+
}
|
|
5
|
+
declare type ClientSessionAction = IClientSessionAction;
|
|
6
|
+
interface IClientSessionAction {
|
|
7
|
+
type: 'SET_PAYMENT_METHOD' | 'UNSET_PAYMENT_METHOD';
|
|
8
|
+
paymentMethodType?: string;
|
|
9
|
+
network?: string;
|
|
10
|
+
}
|
|
11
|
+
export {};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { ActionRequest } from './action-request';
|
|
2
|
+
import type { ClientSessionActionsRequest } from './client-session-actions-request';
|
|
2
3
|
import type { PaymentInstrumentToken } from './payment-instrument-token';
|
|
3
4
|
import type { PrimerError } from './primer-error';
|
|
4
5
|
import type { PrimerResumeHandler } from './primer-request';
|
|
5
6
|
export declare type OnTokenizeSuccessCallback = (req: PaymentInstrumentToken, completion: PrimerResumeHandler) => void;
|
|
7
|
+
export declare type OnClientSessionActionsCallback = (req: ClientSessionActionsRequest, completion: PrimerResumeHandler) => void;
|
|
6
8
|
export declare type OnDataChangeCallback = (req: ActionRequest, completion: PrimerResumeHandler) => void;
|
|
7
9
|
export declare type OnTokenAddedToVaultCallback = (data: PaymentInstrumentToken) => void;
|
|
8
10
|
export declare type OnDismissCallback = () => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { OnDismissCallback, OnPrimerErrorCallback, OnSavedPaymentInstrumentsFetchedCallback, OnTokenAddedToVaultCallback, OnTokenizeSuccessCallback } from './primer-callbacks';
|
|
1
|
+
import type { OnClientSessionActionsCallback, OnDismissCallback, OnPrimerErrorCallback, OnSavedPaymentInstrumentsFetchedCallback, OnTokenAddedToVaultCallback, OnTokenizeSuccessCallback } from './primer-callbacks';
|
|
2
2
|
import type { PrimerSettings } from './primer-settings';
|
|
3
3
|
import type { PrimerTheme } from './primer-theme';
|
|
4
4
|
export declare type PrimerConfig = IPrimerConfig;
|
|
@@ -32,5 +32,6 @@ interface IPrimerConfig {
|
|
|
32
32
|
* Use this to receive saved payment instruments fetch result.
|
|
33
33
|
*/
|
|
34
34
|
onSavedPaymentInstrumentsFetched?: OnSavedPaymentInstrumentsFetchedCallback;
|
|
35
|
+
onClientSessionActions?: OnClientSessionActionsCallback;
|
|
35
36
|
}
|
|
36
37
|
export {};
|
package/package.json
CHANGED
package/src/Primer.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { NativeModules } from 'react-native';
|
|
2
|
+
import type { ClientSessionActionsRequest } from './models/client-session-actions-request';
|
|
2
3
|
import type { PaymentInstrumentToken } from './models/payment-instrument-token';
|
|
3
4
|
import type { IPrimer } from './models/primer';
|
|
4
5
|
import type {
|
|
6
|
+
OnClientSessionActionsCallback,
|
|
5
7
|
OnDismissCallback,
|
|
6
8
|
OnPrimerErrorCallback,
|
|
7
9
|
OnSavedPaymentInstrumentsFetchedCallback,
|
|
@@ -60,6 +62,7 @@ function configure(config: PrimerConfig): void {
|
|
|
60
62
|
configureOnDismiss(config.onDismiss);
|
|
61
63
|
configureOnError(config.onError);
|
|
62
64
|
configureOnTokenizeSuccess(config.onTokenizeSuccess);
|
|
65
|
+
configureOnClientSessionActions(config.onClientSessionActions);
|
|
63
66
|
configureOnResumeSuccess(config.onResumeSuccess);
|
|
64
67
|
configureOnSavedPaymentInstrumentsFetched(
|
|
65
68
|
config.onSavedPaymentInstrumentsFetched
|
|
@@ -108,6 +111,37 @@ function configureOnTokenizeSuccess(
|
|
|
108
111
|
});
|
|
109
112
|
}
|
|
110
113
|
|
|
114
|
+
function actionResume(request: ResumeRequest) {
|
|
115
|
+
const data = JSON.stringify(request);
|
|
116
|
+
NativeModule.actionResume(data);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function configureOnClientSessionActions(
|
|
120
|
+
callback: OnClientSessionActionsCallback = (_, __) => {
|
|
121
|
+
NativeModule.configureOnClientSessionActions((___: any) => {
|
|
122
|
+
actionResume({ error: null, token: null });
|
|
123
|
+
configureOnClientSessionActions(callback);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
) {
|
|
127
|
+
NativeModule.configureOnClientSessionActions((data: any) => {
|
|
128
|
+
try {
|
|
129
|
+
const parsedData = JSON.parse(data) as ClientSessionActionsRequest;
|
|
130
|
+
callback(parsedData, {
|
|
131
|
+
handleError: (error) => actionResume({ error, token: null }),
|
|
132
|
+
handleSuccess: () => actionResume({ error: null, token: null }),
|
|
133
|
+
handleNewClientToken: (token) => actionResume({ error: null, token }),
|
|
134
|
+
// deprecated
|
|
135
|
+
resumeWithError: (error) => actionResume({ error, token: null }),
|
|
136
|
+
resumeWithSuccess: (token) => actionResume({ error: null, token }),
|
|
137
|
+
});
|
|
138
|
+
configureOnClientSessionActions(callback);
|
|
139
|
+
} catch (e) {
|
|
140
|
+
console.log('[OnClientSessionActions]', 'failed to parse json', e);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
|
|
111
145
|
function configureOnResumeSuccess(
|
|
112
146
|
callback: OnTokenizeSuccessCallback = (_, __) => {}
|
|
113
147
|
) {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type ClientSessionActionsRequest = IClientSessionActionsRequest;
|
|
2
|
+
|
|
3
|
+
interface IClientSessionActionsRequest {
|
|
4
|
+
actions: ClientSessionAction[];
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
type ClientSessionAction = IClientSessionAction;
|
|
8
|
+
|
|
9
|
+
interface IClientSessionAction {
|
|
10
|
+
type: 'SET_PAYMENT_METHOD' | 'UNSET_PAYMENT_METHOD';
|
|
11
|
+
paymentMethodType?: string;
|
|
12
|
+
network?: string;
|
|
13
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ActionRequest } from './action-request';
|
|
2
|
+
import type { ClientSessionActionsRequest } from './client-session-actions-request';
|
|
2
3
|
import type { PaymentInstrumentToken } from './payment-instrument-token';
|
|
3
4
|
import type { PrimerError } from './primer-error';
|
|
4
5
|
import type { PrimerResumeHandler } from './primer-request';
|
|
@@ -8,6 +9,11 @@ export type OnTokenizeSuccessCallback = (
|
|
|
8
9
|
completion: PrimerResumeHandler
|
|
9
10
|
) => void;
|
|
10
11
|
|
|
12
|
+
export type OnClientSessionActionsCallback = (
|
|
13
|
+
req: ClientSessionActionsRequest,
|
|
14
|
+
completion: PrimerResumeHandler
|
|
15
|
+
) => void;
|
|
16
|
+
|
|
11
17
|
export type OnDataChangeCallback = (
|
|
12
18
|
req: ActionRequest,
|
|
13
19
|
completion: PrimerResumeHandler
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type {
|
|
2
|
+
OnClientSessionActionsCallback,
|
|
2
3
|
OnDismissCallback,
|
|
3
4
|
OnPrimerErrorCallback,
|
|
4
5
|
OnSavedPaymentInstrumentsFetchedCallback,
|
|
@@ -41,4 +42,6 @@ interface IPrimerConfig {
|
|
|
41
42
|
* Use this to receive saved payment instruments fetch result.
|
|
42
43
|
*/
|
|
43
44
|
onSavedPaymentInstrumentsFetched?: OnSavedPaymentInstrumentsFetchedCallback;
|
|
45
|
+
|
|
46
|
+
onClientSessionActions?: OnClientSessionActionsCallback;
|
|
44
47
|
}
|