@primer-io/react-native 0.6.8 → 0.8.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.
Files changed (38) hide show
  1. package/android/.gradle/7.0.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  2. package/android/.gradle/7.0.2/executionHistory/executionHistory.lock +0 -0
  3. package/android/.gradle/7.0.2/fileHashes/fileHashes.lock +0 -0
  4. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  5. package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
  6. package/android/.gradle/checksums/checksums.lock +0 -0
  7. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  8. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  9. package/android/build.gradle +1 -1
  10. package/android/src/main/java/com/primerioreactnative/PrimerRN.kt +42 -9
  11. package/android/src/main/java/com/primerioreactnative/PrimerRNEventListener.kt +18 -5
  12. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerOnClientSessionActionsRequestRN.kt +65 -0
  13. package/android/src/main/java/com/primerioreactnative/utils/PrimerEventQueueRN.kt +0 -2
  14. package/ios/DataModels/PrimerErrorRN.swift +1 -0
  15. package/ios/DataModels/PrimerIntentRN.swift +16 -30
  16. package/ios/DataModels/PrimerSettingsRN.swift +1 -1
  17. package/ios/PrimerRN+PrimerDelegate.swift +61 -0
  18. package/ios/PrimerRN.swift +39 -32
  19. package/ios/ReactNative.m +4 -2
  20. package/lib/commonjs/Primer.js +53 -12
  21. package/lib/commonjs/Primer.js.map +1 -1
  22. package/lib/commonjs/models/client-session-actions-request.js +2 -0
  23. package/lib/commonjs/models/client-session-actions-request.js.map +1 -0
  24. package/lib/module/Primer.js +53 -12
  25. package/lib/module/Primer.js.map +1 -1
  26. package/lib/module/models/client-session-actions-request.js +2 -0
  27. package/lib/module/models/client-session-actions-request.js.map +1 -0
  28. package/lib/typescript/models/client-session-actions-request.d.ts +15 -0
  29. package/lib/typescript/models/primer-callbacks.d.ts +2 -0
  30. package/lib/typescript/models/primer-config.d.ts +2 -1
  31. package/lib/typescript/models/primer.d.ts +0 -6
  32. package/package.json +1 -1
  33. package/primer-io-react-native.podspec +1 -1
  34. package/src/Primer.ts +39 -16
  35. package/src/models/client-session-actions-request.ts +21 -0
  36. package/src/models/primer-callbacks.ts +6 -0
  37. package/src/models/primer-config.ts +3 -0
  38. package/src/models/primer.ts +0 -7
@@ -1,2 +1,2 @@
1
- #Thu Dec 02 15:56:45 GMT 2021
1
+ #Tue Jan 11 21:16:59 CET 2022
2
2
  gradle.version=7.0.2
@@ -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.4.0'
131
+ implementation 'io.primer:android:1.7.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,19 +146,22 @@ 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
  }
146
164
 
147
- @ReactMethod
148
- fun fetchSavedPaymentInstruments(token: String) {
149
- Log.d("PrimerRN", "fetch saved payment instruments")
150
-
151
- if (!sdkWasInitialised) startSdk(token)
152
-
153
- Primer.instance.fetchSavedPaymentInstruments(token)
154
- }
155
-
156
165
  @ReactMethod
157
166
  fun initialize(token: String) {
158
167
  try {
@@ -199,4 +208,28 @@ class PrimerRN(reactContext: ReactApplicationContext) : ReactContextBaseJavaModu
199
208
  haltExecution = true
200
209
  }
201
210
  }
211
+
212
+ @ReactMethod
213
+ fun actionResume(request: String) {
214
+ try {
215
+ Log.d("PrimerRN", "resume: $request")
216
+ val data = json.decodeFromString<PrimerResumeRequest>(request)
217
+ mListener.actionCompletion?.invoke(data.error, data.token)
218
+
219
+ mListener.actionCompletion = { error, clientToken ->
220
+ currentActivity?.let {
221
+ it.runOnUiThread {
222
+ if (error != null) {
223
+ mListener.actionResumeHandler?.handleError(Error(error))
224
+ } else {
225
+ mListener.actionResumeHandler?.handleClientToken(clientToken)
226
+ }
227
+ }
228
+ }
229
+ }
230
+
231
+ } catch (e: Exception) {
232
+ Log.e("PrimerRN", "configure settings error: $e")
233
+ }
234
+ }
202
235
  }
@@ -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 -> {
@@ -78,11 +96,6 @@ class PrimerRNEventListener : CheckoutEventListener {
78
96
  onResumeSuccessQueue?.addRequestAndPoll(token)
79
97
  resumeHandler = e.resumeHandler
80
98
  }
81
- is CheckoutEvent.SavedPaymentInstrumentsFetched -> {
82
- val list = e.data.map { PrimerPaymentInstrumentTokenRN.fromPaymentMethodToken(it) }
83
- val request = Json.encodeToString(list)
84
- onSavedPaymentInstrumentsFetchedQueue?.addRequestAndPoll(request)
85
- }
86
99
  is CheckoutEvent.Exit -> {
87
100
  onDismissQueue?.addRequestAndPoll("dismiss")
88
101
  onDismissQueue = null
@@ -0,0 +1,65 @@
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
+ val params: Params? = null,
17
+ )
18
+
19
+ @Serializable
20
+ data class Params(
21
+ val billingAddress: Map<String, String?>
22
+ )
23
+
24
+ companion object {
25
+ fun build(
26
+ request: ClientSessionActionsRequest,
27
+ ): PrimerOnClientSessionActionsRequestRN {
28
+ return PrimerOnClientSessionActionsRequestRN(
29
+ actions = request.actions.map { action ->
30
+ when (action) {
31
+ is ClientSessionActionsRequest.SetPaymentMethod -> {
32
+ Action(
33
+ type = "SELECT_PAYMENT_METHOD",
34
+ paymentMethodType = action.paymentMethodType,
35
+ network = action.network,
36
+ )
37
+ }
38
+ is ClientSessionActionsRequest.UnsetPaymentMethod -> {
39
+ Action(
40
+ type = "UNSELECT_PAYMENT_METHOD",
41
+ )
42
+ }
43
+ is ClientSessionActionsRequest.SetBillingAddress -> {
44
+ Action(
45
+ type = "SET_BILLING_ADDRESS",
46
+ params = Params(
47
+ billingAddress = mapOf(
48
+ "firstName" to action.firstName,
49
+ "lastName" to action.lastName,
50
+ "addressLine1" to action.addressLine1,
51
+ "addressLine2" to action.addressLine2,
52
+ "city" to action.city,
53
+ "postalCode" to action.postalCode,
54
+ "state" to action.state,
55
+ "countryCode" to action.countryCode
56
+ )
57
+ )
58
+ )
59
+ }
60
+ }
61
+ }
62
+ )
63
+ }
64
+ }
65
+ }
@@ -14,9 +14,7 @@ class PrimerEventQueueRN {
14
14
 
15
15
  fun poll(cb: Callback? = null) {
16
16
  if (cb != null) mCallback = cb
17
-
18
17
  val callback = mCallback ?: return
19
-
20
18
  val next = mQueue.poll() ?: return
21
19
 
22
20
  callback.invoke(next)
@@ -12,6 +12,7 @@ enum ErrorTypeRN: String, Error, Encodable {
12
12
  case settingsNotConfigured
13
13
  case clientTokenNotConfigured
14
14
  case flowParsingFailed
15
+ case generic
15
16
  }
16
17
 
17
18
  struct ErrorRN: Error {
@@ -4,36 +4,22 @@ struct PrimerIntentRN: Decodable {
4
4
  let vault: Bool
5
5
  let paymentMethod: PrimerPaymentMethodTypeRN
6
6
 
7
-
8
- func toPrimerSessionFlow() -> PrimerSessionFlow? {
9
-
10
- switch (vault) {
11
- case false:
12
- switch (paymentMethod) {
13
- case .Any:
14
- return .default
15
- case .ApplePay:
16
- return .checkoutWithApplePay
17
- case .Klarna:
18
- return .checkoutWithKlarna
19
- case .Card:
20
- return .completeDirectCheckout
21
- default:
22
- return nil
23
- }
24
- case true:
25
- switch (paymentMethod) {
26
- case .Any:
27
- return .defaultWithVault
28
- case .Klarna:
29
- return .addKlarnaToVault
30
- case .PayPal:
31
- return .addPayPalToVault
32
- case .Card:
33
- return .defaultWithVault
34
- default:
35
- return nil
36
- }
7
+ var paymentMethodConfigType: PaymentMethodConfigType {
8
+ switch paymentMethod {
9
+ case .Any:
10
+ return .paymentCard
11
+ case .Klarna:
12
+ return .klarna
13
+ case .Card:
14
+ return .paymentCard
15
+ case .PayPal:
16
+ return .payPal
17
+ case .GooglePay:
18
+ return .googlePay
19
+ case .ApplePay:
20
+ return .applePay
21
+ case .GoCardless:
22
+ return .goCardlessMandate
37
23
  }
38
24
  }
39
25
  }
@@ -39,7 +39,7 @@ extension PrimerSettingsRN {
39
39
  customer: Customer(
40
40
  firstName: customer?.firstName,
41
41
  lastName: customer?.lastName,
42
- email: customer?.email,
42
+ emailAddress: customer?.email,
43
43
  homePhoneNumber: nil,
44
44
  mobilePhoneNumber: customer?.phone,
45
45
  workPhoneNumber: nil,
@@ -39,6 +39,67 @@ extension PrimerRN: PrimerDelegate {
39
39
  }
40
40
  }
41
41
 
42
+ func onClientSessionActions(_ actions: [ClientSession.Action], resumeHandler: ResumeHandlerProtocol?) {
43
+ do {
44
+ let actionsRN: [[String: Any]] = 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": "SELECT_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": "UNSELECT_PAYMENT_METHOD",
58
+ ]
59
+ }
60
+
61
+ if ($0.`type` == "SET_BILLING_ADDRESS") {
62
+
63
+ var billingAddress: [String: String] = [:]
64
+
65
+ $0.params?.forEach { entry in
66
+ if let value = entry.value as? String, !value.isEmpty {
67
+ billingAddress[entry.key] = value
68
+ }
69
+ }
70
+
71
+ return [
72
+ "type": "SET_BILLING_ADDRESS",
73
+ "params": [ "billingAddress": billingAddress ]
74
+ ]
75
+ }
76
+
77
+ return [ "type": "UNKNOWN" ]
78
+ }
79
+
80
+ let request: [String: Any] = [
81
+ "actions": actionsRN
82
+ ]
83
+
84
+ let data = try JSONSerialization.data(withJSONObject: request, options: .fragmentsAllowed)
85
+ let jsonString = String(data: data, encoding: .utf8)!
86
+ self.onClientSessionActionsCallback?([jsonString])
87
+ self.onClientSessionActionsCallback = nil
88
+ } catch {
89
+ checkoutFailed(with: ErrorTypeRN.ParseJsonFailed)
90
+ }
91
+
92
+ onActionResumeCallback = { error, token in
93
+ if let token = token {
94
+ resumeHandler?.handle(newClientToken: token)
95
+ } else if let error = error {
96
+ resumeHandler?.handle(error: error)
97
+ } else {
98
+ resumeHandler?.handle(error: ErrorTypeRN.generic)
99
+ }
100
+ }
101
+ }
102
+
42
103
  func onResumeSuccess(_ clientToken: String, resumeHandler: ResumeHandlerProtocol) {
43
104
  self.onResumeSuccessCallback?([clientToken])
44
105
 
@@ -15,14 +15,15 @@ class PrimerRN: NSObject {
15
15
  var clientToken: String?
16
16
  var settings: PrimerSettingsRN?
17
17
  var theme: PrimerThemeRN?
18
- var flow: PrimerSessionFlow?
18
+ var intent: PrimerIntentRN?
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?
25
- var onSavedPaymentInstrumentsFetchedCallback: RCTResponseSenderBlock?
26
+ var onActionResumeCallback: BasicCompletionBlock?
26
27
 
27
28
  private var sdkWasInitialised = false
28
29
  internal var haltExecution = false
@@ -51,7 +52,7 @@ class PrimerRN: NSObject {
51
52
  do {
52
53
  let json = request.data(using: .utf8)!
53
54
  let intent = try JSONDecoder().decode(PrimerIntentRN.self, from: json)
54
- self.flow = intent.toPrimerSessionFlow()
55
+ self.intent = intent
55
56
  } catch {
56
57
  checkoutFailed(with: ErrorTypeRN.ParseJsonFailed)
57
58
  }
@@ -61,6 +62,10 @@ class PrimerRN: NSObject {
61
62
  self.onTokenizeSuccessCallback = callback
62
63
  }
63
64
 
65
+ @objc func configureOnClientSessionActions(_ callback: @escaping RCTResponseSenderBlock) {
66
+ self.onClientSessionActionsCallback = callback
67
+ }
68
+
64
69
  @objc func configureOnResumeSuccess(_ callback: @escaping RCTResponseSenderBlock) {
65
70
  self.onResumeSuccessCallback = callback
66
71
  }
@@ -77,33 +82,6 @@ class PrimerRN: NSObject {
77
82
  self.onPrimerErrorCallback = callback
78
83
  }
79
84
 
80
- @objc func configureOnSavedPaymentInstrumentsFetched(_ callback: @escaping RCTResponseSenderBlock) {
81
- self.onSavedPaymentInstrumentsFetchedCallback = callback
82
- }
83
-
84
- @objc func fetchSavedPaymentInstruments(_ token: String) {
85
-
86
- self.clientToken = token
87
-
88
- Primer.shared.delegate = self
89
-
90
- Primer.shared.fetchVaultedPaymentMethods { [weak self] result in
91
- switch result {
92
- case .failure(let error):
93
- self?.checkoutFailed(with: error)
94
- case .success(let tokens):
95
- do {
96
- let json = try self?.encoder.encode(tokens)
97
- let data = String(data: json!, encoding: .utf8)!
98
- self?.onSavedPaymentInstrumentsFetchedCallback?([data])
99
- self?.onSavedPaymentInstrumentsFetchedCallback = nil
100
- } catch {
101
- self?.checkoutFailed(with: error)
102
- }
103
- }
104
- }
105
- }
106
-
107
85
  @objc func initialize(_ token: String) -> Void {
108
86
  DispatchQueue.main.async { [weak self] in
109
87
  do {
@@ -111,7 +89,7 @@ class PrimerRN: NSObject {
111
89
  throw ErrorTypeRN.noIosViewController
112
90
  }
113
91
 
114
- guard let flow = self?.flow else {
92
+ guard let intent = self?.intent else {
115
93
  throw ErrorTypeRN.invalidPrimerIntent
116
94
  }
117
95
 
@@ -126,7 +104,14 @@ class PrimerRN: NSObject {
126
104
 
127
105
  Primer.shared.delegate = self
128
106
  Primer.shared.configure(settings: settings, theme: theme)
129
- Primer.shared.showCheckout(viewController, flow: flow)
107
+
108
+ DispatchQueue.main.async {
109
+ if (intent.vault) {
110
+ Primer.shared.showVaultManager(on: viewController, clientToken: token)
111
+ } else {
112
+ Primer.shared.showUniversalCheckout(on: viewController, clientToken: token)
113
+ }
114
+ }
130
115
  } catch {
131
116
  self?.checkoutFailed(with: error)
132
117
  }
@@ -146,6 +131,7 @@ class PrimerRN: NSObject {
146
131
  } else {
147
132
  self?.onResumeFlowCallback?(nil, nil)
148
133
  }
134
+
149
135
  self?.onResumeFlowCallback = nil
150
136
  } catch {
151
137
  self?.checkoutFailed(with: error)
@@ -153,6 +139,27 @@ class PrimerRN: NSObject {
153
139
  }
154
140
  }
155
141
 
142
+ @objc func actionResume(_ request: String) -> Void {
143
+ DispatchQueue.main.async { [weak self] in
144
+ do {
145
+ let json = request.data(using: .utf8)!
146
+ let request = try JSONDecoder().decode(PrimerResumeRequest.self, from: json)
147
+
148
+ if let error = request.error {
149
+ self?.onActionResumeCallback?(ErrorRN(message: error), nil)
150
+ } else if let clientToken = request.token {
151
+ self?.onActionResumeCallback?(nil, clientToken)
152
+ } else {
153
+ self?.onActionResumeCallback?(nil, nil)
154
+ }
155
+
156
+ self?.onActionResumeCallback = nil
157
+ } catch {
158
+ self?.checkoutFailed(with: error)
159
+ }
160
+ }
161
+ }
162
+
156
163
  @objc func dispose() -> Void {
157
164
 
158
165
  }
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)
@@ -21,12 +23,12 @@ RCT_EXTERN_METHOD(configureOnPrimerError: (RCTResponseSenderBlock)callback)
21
23
 
22
24
  RCT_EXTERN_METHOD(configureOnSavedPaymentInstrumentsFetched: (RCTResponseSenderBlock)callback)
23
25
 
24
- RCT_EXTERN_METHOD(fetchSavedPaymentInstruments: (NSString *)token)
25
-
26
26
  RCT_EXTERN_METHOD(initialize: (NSString *)data)
27
27
 
28
28
  RCT_EXTERN_METHOD(resume: (NSString *)data)
29
29
 
30
+ RCT_EXTERN_METHOD(actionResume: (NSString *)data)
31
+
30
32
  RCT_EXTERN_METHOD(dispose)
31
33
 
32
34
  @end
@@ -37,11 +37,11 @@ const PrimerNativeMapping = {
37
37
  NativeModule.initialize(token);
38
38
  },
39
39
 
40
- fetchSavedPaymentInstruments(token, config) {
41
- configure(config);
42
- NativeModule.fetchSavedPaymentInstruments(token);
43
- },
44
-
40
+ // todo: refactor
41
+ // fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {
42
+ // configure(config);
43
+ // NativeModule.fetchSavedPaymentInstruments(token);
44
+ // },
45
45
  dispose() {
46
46
  NativeModule.dispose();
47
47
  }
@@ -56,8 +56,8 @@ 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
- configureOnSavedPaymentInstrumentsFetched(config.onSavedPaymentInstrumentsFetched);
61
61
  }
62
62
 
63
63
  function configureSettings(settings = {}) {
@@ -116,6 +116,53 @@ function configureOnTokenizeSuccess(callback = (_, __) => {}) {
116
116
  });
117
117
  }
118
118
 
119
+ function actionResume(request) {
120
+ const data = JSON.stringify(request);
121
+ NativeModule.actionResume(data);
122
+ }
123
+
124
+ function configureOnClientSessionActions(callback = (_, __) => {
125
+ NativeModule.configureOnClientSessionActions(___ => {
126
+ actionResume({
127
+ error: null,
128
+ token: null
129
+ });
130
+ configureOnClientSessionActions(callback);
131
+ });
132
+ }) {
133
+ NativeModule.configureOnClientSessionActions(data => {
134
+ try {
135
+ const parsedData = JSON.parse(data);
136
+ callback(parsedData, {
137
+ handleError: error => actionResume({
138
+ error,
139
+ token: null
140
+ }),
141
+ handleSuccess: () => actionResume({
142
+ error: null,
143
+ token: null
144
+ }),
145
+ handleNewClientToken: token => actionResume({
146
+ error: null,
147
+ token
148
+ }),
149
+ // deprecated
150
+ resumeWithError: error => actionResume({
151
+ error,
152
+ token: null
153
+ }),
154
+ resumeWithSuccess: token => actionResume({
155
+ error: null,
156
+ token
157
+ })
158
+ });
159
+ configureOnClientSessionActions(callback);
160
+ } catch (e) {
161
+ console.log('[OnClientSessionActions]', 'failed to parse json', e);
162
+ }
163
+ });
164
+ }
165
+
119
166
  function configureOnResumeSuccess(callback = (_, __) => {}) {
120
167
  NativeModule.configureOnResumeSuccess(paymentMethodToken => {
121
168
  try {
@@ -163,10 +210,4 @@ function configureOnError(callback = _ => {}) {
163
210
  (0, _utils.parseCallback)(data, callback);
164
211
  });
165
212
  }
166
-
167
- function configureOnSavedPaymentInstrumentsFetched(callback = _ => {}) {
168
- NativeModule.configureOnSavedPaymentInstrumentsFetched(data => {
169
- (0, _utils.parseCallback)(data, callback);
170
- });
171
- }
172
213
  //# sourceMappingURL=Primer.js.map
@@ -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","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","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 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 // todo: refactor\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}\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\ninterface ResumeRequest {\n error: string | null;\n token: string | null;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=client-session-actions-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -28,11 +28,11 @@ export const PrimerNativeMapping = {
28
28
  NativeModule.initialize(token);
29
29
  },
30
30
 
31
- fetchSavedPaymentInstruments(token, config) {
32
- configure(config);
33
- NativeModule.fetchSavedPaymentInstruments(token);
34
- },
35
-
31
+ // todo: refactor
32
+ // fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {
33
+ // configure(config);
34
+ // NativeModule.fetchSavedPaymentInstruments(token);
35
+ // },
36
36
  dispose() {
37
37
  NativeModule.dispose();
38
38
  }
@@ -46,8 +46,8 @@ 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
- configureOnSavedPaymentInstrumentsFetched(config.onSavedPaymentInstrumentsFetched);
51
51
  }
52
52
 
53
53
  function configureSettings(settings = {}) {
@@ -106,6 +106,53 @@ function configureOnTokenizeSuccess(callback = (_, __) => {}) {
106
106
  });
107
107
  }
108
108
 
109
+ function actionResume(request) {
110
+ const data = JSON.stringify(request);
111
+ NativeModule.actionResume(data);
112
+ }
113
+
114
+ function configureOnClientSessionActions(callback = (_, __) => {
115
+ NativeModule.configureOnClientSessionActions(___ => {
116
+ actionResume({
117
+ error: null,
118
+ token: null
119
+ });
120
+ configureOnClientSessionActions(callback);
121
+ });
122
+ }) {
123
+ NativeModule.configureOnClientSessionActions(data => {
124
+ try {
125
+ const parsedData = JSON.parse(data);
126
+ callback(parsedData, {
127
+ handleError: error => actionResume({
128
+ error,
129
+ token: null
130
+ }),
131
+ handleSuccess: () => actionResume({
132
+ error: null,
133
+ token: null
134
+ }),
135
+ handleNewClientToken: token => actionResume({
136
+ error: null,
137
+ token
138
+ }),
139
+ // deprecated
140
+ resumeWithError: error => actionResume({
141
+ error,
142
+ token: null
143
+ }),
144
+ resumeWithSuccess: token => actionResume({
145
+ error: null,
146
+ token
147
+ })
148
+ });
149
+ configureOnClientSessionActions(callback);
150
+ } catch (e) {
151
+ console.log('[OnClientSessionActions]', 'failed to parse json', e);
152
+ }
153
+ });
154
+ }
155
+
109
156
  function configureOnResumeSuccess(callback = (_, __) => {}) {
110
157
  NativeModule.configureOnResumeSuccess(paymentMethodToken => {
111
158
  try {
@@ -153,10 +200,4 @@ function configureOnError(callback = _ => {}) {
153
200
  parseCallback(data, callback);
154
201
  });
155
202
  }
156
-
157
- function configureOnSavedPaymentInstrumentsFetched(callback = _ => {}) {
158
- NativeModule.configureOnSavedPaymentInstrumentsFetched(data => {
159
- parseCallback(data, callback);
160
- });
161
- }
162
203
  //# sourceMappingURL=Primer.js.map
@@ -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","dispose","configureTheme","theme","configureSettings","settings","configureOnVaultSuccess","onTokenAddedToVault","configureOnDismiss","onDismiss","configureOnError","onError","configureOnTokenizeSuccess","onTokenizeSuccess","configureOnClientSessionActions","onClientSessionActions","configureOnResumeSuccess","onResumeSuccess","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 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 // todo: refactor\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}\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\ninterface ResumeRequest {\n error: string | null;\n token: string | null;\n}\n"]}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=client-session-actions-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -0,0 +1,15 @@
1
+ export declare type ClientSessionActionsRequest = IClientSessionActionsRequest;
2
+ interface IClientSessionActionsRequest {
3
+ actions: ClientSessionAction[];
4
+ }
5
+ declare type ClientSessionAction = IClientSessionAction;
6
+ interface IClientSessionAction {
7
+ type: 'SELECT_PAYMENT_METHOD' | 'UNSELECT_PAYMENT_METHOD' | 'SET_BILLING_ADDRESS';
8
+ paymentMethodType?: string;
9
+ network?: string;
10
+ params?: IActionParams;
11
+ }
12
+ interface IActionParams {
13
+ billingAddress: Record<string, string | null>;
14
+ }
15
+ 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 {};
@@ -26,12 +26,6 @@ export interface IPrimer {
26
26
  * @param config Configuration for the SDK.
27
27
  */
28
28
  showPaymentMethod(token: String, intent: PrimerPaymentMethodIntent, config: PrimerConfig): void;
29
- /**
30
- * Prompt the SDK to fetch saved payment instruments from Primer's vault.
31
- * Use the onSavedPaymentInstrumentsFetched callback in {@link PrimerConfig}
32
- * to handle returned saved payment instruments.
33
- */
34
- fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void;
35
29
  /**
36
30
  * remove all listeners & callbacks.
37
31
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer-io/react-native",
3
- "version": "0.6.8",
3
+ "version": "0.8.0",
4
4
  "description": "Primer SDK for RN",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -18,5 +18,5 @@ Pod::Spec.new do |s|
18
18
 
19
19
 
20
20
  s.dependency "React-Core"
21
- s.dependency "PrimerSDK", "1.18.0"
21
+ s.dependency "PrimerSDK", "1.22.1"
22
22
  end
package/src/Primer.ts CHANGED
@@ -1,10 +1,11 @@
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
- OnSavedPaymentInstrumentsFetchedCallback,
8
9
  OnTokenAddedToVaultCallback,
9
10
  OnTokenizeSuccessCallback,
10
11
  } from './models/primer-callbacks';
@@ -43,10 +44,11 @@ export const PrimerNativeMapping: IPrimer = {
43
44
  NativeModule.initialize(token);
44
45
  },
45
46
 
46
- fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {
47
- configure(config);
48
- NativeModule.fetchSavedPaymentInstruments(token);
49
- },
47
+ // todo: refactor
48
+ // fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void {
49
+ // configure(config);
50
+ // NativeModule.fetchSavedPaymentInstruments(token);
51
+ // },
50
52
 
51
53
  dispose(): void {
52
54
  NativeModule.dispose();
@@ -60,10 +62,8 @@ 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
- configureOnSavedPaymentInstrumentsFetched(
65
- config.onSavedPaymentInstrumentsFetched
66
- );
67
67
  }
68
68
 
69
69
  function configureSettings(settings: PrimerSettings = {}): void {
@@ -108,6 +108,37 @@ function configureOnTokenizeSuccess(
108
108
  });
109
109
  }
110
110
 
111
+ function actionResume(request: ResumeRequest) {
112
+ const data = JSON.stringify(request);
113
+ NativeModule.actionResume(data);
114
+ }
115
+
116
+ function configureOnClientSessionActions(
117
+ callback: OnClientSessionActionsCallback = (_, __) => {
118
+ NativeModule.configureOnClientSessionActions((___: any) => {
119
+ actionResume({ error: null, token: null });
120
+ configureOnClientSessionActions(callback);
121
+ });
122
+ }
123
+ ) {
124
+ NativeModule.configureOnClientSessionActions((data: any) => {
125
+ try {
126
+ const parsedData = JSON.parse(data) as ClientSessionActionsRequest;
127
+ callback(parsedData, {
128
+ handleError: (error) => actionResume({ error, token: null }),
129
+ handleSuccess: () => actionResume({ error: null, token: null }),
130
+ handleNewClientToken: (token) => actionResume({ error: null, token }),
131
+ // deprecated
132
+ resumeWithError: (error) => actionResume({ error, token: null }),
133
+ resumeWithSuccess: (token) => actionResume({ error: null, token }),
134
+ });
135
+ configureOnClientSessionActions(callback);
136
+ } catch (e) {
137
+ console.log('[OnClientSessionActions]', 'failed to parse json', e);
138
+ }
139
+ });
140
+ }
141
+
111
142
  function configureOnResumeSuccess(
112
143
  callback: OnTokenizeSuccessCallback = (_, __) => {}
113
144
  ) {
@@ -145,14 +176,6 @@ function configureOnError(callback: OnPrimerErrorCallback = (_) => {}) {
145
176
  });
146
177
  }
147
178
 
148
- function configureOnSavedPaymentInstrumentsFetched(
149
- callback: OnSavedPaymentInstrumentsFetchedCallback = (_) => {}
150
- ) {
151
- NativeModule.configureOnSavedPaymentInstrumentsFetched((data: any) => {
152
- parseCallback<PaymentInstrumentToken[]>(data, callback);
153
- });
154
- }
155
-
156
179
  interface ResumeRequest {
157
180
  error: string | null;
158
181
  token: string | null;
@@ -0,0 +1,21 @@
1
+ export type ClientSessionActionsRequest = IClientSessionActionsRequest;
2
+
3
+ interface IClientSessionActionsRequest {
4
+ actions: ClientSessionAction[];
5
+ }
6
+
7
+ type ClientSessionAction = IClientSessionAction;
8
+
9
+ interface IClientSessionAction {
10
+ type:
11
+ | 'SELECT_PAYMENT_METHOD'
12
+ | 'UNSELECT_PAYMENT_METHOD'
13
+ | 'SET_BILLING_ADDRESS';
14
+ paymentMethodType?: string;
15
+ network?: string;
16
+ params?: IActionParams;
17
+ }
18
+
19
+ interface IActionParams {
20
+ billingAddress: Record<string, string | null>;
21
+ }
@@ -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
  }
@@ -34,13 +34,6 @@ export interface IPrimer {
34
34
  config: PrimerConfig
35
35
  ): void;
36
36
 
37
- /**
38
- * Prompt the SDK to fetch saved payment instruments from Primer's vault.
39
- * Use the onSavedPaymentInstrumentsFetched callback in {@link PrimerConfig}
40
- * to handle returned saved payment instruments.
41
- */
42
- fetchSavedPaymentInstruments(token: String, config: PrimerConfig): void;
43
-
44
37
  /**
45
38
  * remove all listeners & callbacks.
46
39
  */