@primer-io/react-native 2.18.0 → 2.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +3 -1
  3. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/vault/PrimerRNValidationError.kt +23 -0
  4. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/vault/PrimerRNVaultedPaymentMethod.kt +34 -0
  5. package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/vault/PrimerRNVaultedPaymentMethodAdditionalData.kt +12 -0
  6. package/android/src/main/java/com/primerioreactnative/components/manager/vault/PrimerRNHeadlessUniversalCheckoutVaultManager.kt +165 -0
  7. package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +3 -1
  8. package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt +0 -3
  9. package/android/src/main/java/com/primerioreactnative/extensions/ThreeDsAuthenticationData.kt +13 -0
  10. package/ios/Podfile.lock +1 -1
  11. package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNPrimerHeadlessUniversalCheckoutVaultManager.m +25 -0
  12. package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNPrimerHeadlessUniversalCheckoutVaultManager.swift +85 -0
  13. package/ios/Sources/Helpers/Encodable+Extension.swift +14 -1
  14. package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js +1 -2
  15. package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
  16. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js +1 -2
  17. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -1
  18. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +23 -26
  19. package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
  20. package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js +84 -0
  21. package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -0
  22. package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +42 -44
  23. package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
  24. package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js +1 -2
  25. package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
  26. package/lib/commonjs/HeadlessUniversalCheckout/types.js.map +1 -1
  27. package/lib/commonjs/Primer.js +1 -2
  28. package/lib/commonjs/Primer.js.map +1 -1
  29. package/lib/commonjs/PrimerInput.js +6 -10
  30. package/lib/commonjs/PrimerInput.js.map +1 -1
  31. package/lib/commonjs/RNPrimer.js +1 -2
  32. package/lib/commonjs/RNPrimer.js.map +1 -1
  33. package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -1
  34. package/lib/commonjs/index.js +28 -0
  35. package/lib/commonjs/index.js.map +1 -1
  36. package/lib/commonjs/models/PrimerAsset.js.map +1 -1
  37. package/lib/commonjs/models/PrimerCheckoutAdditionalInfo.js.map +1 -1
  38. package/lib/commonjs/models/PrimerCheckoutData.js +3 -3
  39. package/lib/commonjs/models/PrimerCheckoutData.js.map +1 -1
  40. package/lib/commonjs/models/PrimerCheckoutPaymentMethodData.js.map +1 -1
  41. package/lib/commonjs/models/PrimerClientSession.js.map +1 -1
  42. package/lib/commonjs/models/PrimerCountryCode.js.map +1 -1
  43. package/lib/commonjs/models/PrimerCurrencyCode.js.map +1 -1
  44. package/lib/commonjs/models/PrimerError.js +0 -5
  45. package/lib/commonjs/models/PrimerError.js.map +1 -1
  46. package/lib/commonjs/models/PrimerHandlers.js.map +1 -1
  47. package/lib/commonjs/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js.map +1 -1
  48. package/lib/commonjs/models/PrimerImplementedRNCallbacks.js.map +1 -1
  49. package/lib/commonjs/models/PrimerInitializationData.js.map +1 -1
  50. package/lib/commonjs/models/PrimerInputElementType.js +3 -4
  51. package/lib/commonjs/models/PrimerInputElementType.js.map +1 -1
  52. package/lib/commonjs/models/PrimerInterfaces.js.map +1 -1
  53. package/lib/commonjs/models/PrimerPaymentMethodManagerCategory.js +3 -4
  54. package/lib/commonjs/models/PrimerPaymentMethodManagerCategory.js.map +1 -1
  55. package/lib/commonjs/models/PrimerPaymentMethodTokenData.js +3 -4
  56. package/lib/commonjs/models/PrimerPaymentMethodTokenData.js.map +1 -1
  57. package/lib/commonjs/models/PrimerRawData.js.map +1 -1
  58. package/lib/commonjs/models/PrimerSessionIntent.js +3 -4
  59. package/lib/commonjs/models/PrimerSessionIntent.js.map +1 -1
  60. package/lib/commonjs/models/PrimerSettings.js.map +1 -1
  61. package/lib/commonjs/models/PrimerTheme.js.map +1 -1
  62. package/lib/commonjs/models/PrimerValidationError.js +2 -0
  63. package/lib/commonjs/models/PrimerValidationError.js.map +1 -0
  64. package/lib/commonjs/models/PrimerValidationErrorResult.js +6 -0
  65. package/lib/commonjs/models/PrimerValidationErrorResult.js.map +1 -0
  66. package/lib/commonjs/models/PrimerVaultedPaymentMethod.js +6 -0
  67. package/lib/commonjs/models/PrimerVaultedPaymentMethod.js.map +1 -0
  68. package/lib/commonjs/models/PrimerVaultedPaymentMethodAdditionalData.js +2 -0
  69. package/lib/commonjs/models/PrimerVaultedPaymentMethodAdditionalData.js.map +1 -0
  70. package/lib/commonjs/models/PrimerVaultedPaymentMethodResult.js +6 -0
  71. package/lib/commonjs/models/PrimerVaultedPaymentMethodResult.js.map +1 -0
  72. package/lib/commonjs/models/RetailOutletsRetail.js.map +1 -1
  73. package/lib/commonjs/utils/index.js.map +1 -1
  74. package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
  75. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -1
  76. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +22 -24
  77. package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
  78. package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js +78 -0
  79. package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -0
  80. package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +40 -40
  81. package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
  82. package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
  83. package/lib/module/HeadlessUniversalCheckout/types.js.map +1 -1
  84. package/lib/module/Primer.js.map +1 -1
  85. package/lib/module/PrimerInput.js.map +1 -1
  86. package/lib/module/RNPrimer.js.map +1 -1
  87. package/lib/module/index.js +5 -0
  88. package/lib/module/index.js.map +1 -1
  89. package/lib/module/models/PrimerAsset.js.map +1 -1
  90. package/lib/module/models/PrimerCheckoutAdditionalInfo.js.map +1 -1
  91. package/lib/module/models/PrimerCheckoutData.js +3 -3
  92. package/lib/module/models/PrimerCheckoutData.js.map +1 -1
  93. package/lib/module/models/PrimerCheckoutPaymentMethodData.js.map +1 -1
  94. package/lib/module/models/PrimerClientSession.js.map +1 -1
  95. package/lib/module/models/PrimerCountryCode.js.map +1 -1
  96. package/lib/module/models/PrimerCurrencyCode.js.map +1 -1
  97. package/lib/module/models/PrimerError.js +0 -5
  98. package/lib/module/models/PrimerError.js.map +1 -1
  99. package/lib/module/models/PrimerHandlers.js.map +1 -1
  100. package/lib/module/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js.map +1 -1
  101. package/lib/module/models/PrimerImplementedRNCallbacks.js.map +1 -1
  102. package/lib/module/models/PrimerInitializationData.js.map +1 -1
  103. package/lib/module/models/PrimerInputElementType.js +3 -3
  104. package/lib/module/models/PrimerInputElementType.js.map +1 -1
  105. package/lib/module/models/PrimerInterfaces.js.map +1 -1
  106. package/lib/module/models/PrimerPaymentMethodManagerCategory.js +3 -3
  107. package/lib/module/models/PrimerPaymentMethodManagerCategory.js.map +1 -1
  108. package/lib/module/models/PrimerPaymentMethodTokenData.js +3 -3
  109. package/lib/module/models/PrimerPaymentMethodTokenData.js.map +1 -1
  110. package/lib/module/models/PrimerRawData.js.map +1 -1
  111. package/lib/module/models/PrimerSessionIntent.js +3 -3
  112. package/lib/module/models/PrimerSessionIntent.js.map +1 -1
  113. package/lib/module/models/PrimerSettings.js.map +1 -1
  114. package/lib/module/models/PrimerTheme.js.map +1 -1
  115. package/lib/module/models/PrimerValidationError.js +2 -0
  116. package/lib/module/models/PrimerValidationError.js.map +1 -0
  117. package/lib/module/models/PrimerValidationErrorResult.js +2 -0
  118. package/lib/module/models/PrimerValidationErrorResult.js.map +1 -0
  119. package/lib/module/models/PrimerVaultedPaymentMethod.js +2 -0
  120. package/lib/module/models/PrimerVaultedPaymentMethod.js.map +1 -0
  121. package/lib/module/models/PrimerVaultedPaymentMethodAdditionalData.js +2 -0
  122. package/lib/module/models/PrimerVaultedPaymentMethodAdditionalData.js.map +1 -0
  123. package/lib/module/models/PrimerVaultedPaymentMethodResult.js +2 -0
  124. package/lib/module/models/PrimerVaultedPaymentMethodResult.js.map +1 -0
  125. package/lib/module/models/RetailOutletsRetail.js.map +1 -1
  126. package/lib/module/utils/index.js.map +1 -1
  127. package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts +1 -1
  128. package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -1
  129. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts +3 -2
  130. package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts.map +1 -1
  131. package/lib/typescript/HeadlessUniversalCheckout/Managers/VaultManager.d.ts +13 -0
  132. package/lib/typescript/HeadlessUniversalCheckout/Managers/VaultManager.d.ts.map +1 -0
  133. package/lib/typescript/index.d.ts +5 -0
  134. package/lib/typescript/index.d.ts.map +1 -1
  135. package/lib/typescript/models/PrimerValidationError.d.ts +7 -0
  136. package/lib/typescript/models/PrimerValidationError.d.ts.map +1 -0
  137. package/lib/typescript/models/PrimerValidationErrorResult.d.ts +6 -0
  138. package/lib/typescript/models/PrimerValidationErrorResult.d.ts.map +1 -0
  139. package/lib/typescript/models/PrimerVaultedPaymentMethod.d.ts +11 -0
  140. package/lib/typescript/models/PrimerVaultedPaymentMethod.d.ts.map +1 -0
  141. package/lib/typescript/models/PrimerVaultedPaymentMethodAdditionalData.d.ts +5 -0
  142. package/lib/typescript/models/PrimerVaultedPaymentMethodAdditionalData.d.ts.map +1 -0
  143. package/lib/typescript/models/PrimerVaultedPaymentMethodResult.d.ts +6 -0
  144. package/lib/typescript/models/PrimerVaultedPaymentMethodResult.d.ts.map +1 -0
  145. package/package.json +5 -8
  146. package/primer-io-react-native.podspec +1 -1
  147. package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +1 -1
  148. package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.ts +21 -21
  149. package/src/HeadlessUniversalCheckout/Managers/VaultManager.ts +90 -0
  150. package/src/index.tsx +17 -0
  151. package/src/models/PrimerValidationError.ts +7 -0
  152. package/src/models/PrimerValidationErrorResult.ts +7 -0
  153. package/src/models/PrimerVaultedPaymentMethod.ts +12 -0
  154. package/src/models/PrimerVaultedPaymentMethodAdditionalData.ts +5 -0
  155. package/src/models/PrimerVaultedPaymentMethodResult.ts +7 -0
  156. package/LICENSE +0 -21
  157. package/README.md +0 -149
@@ -136,5 +136,5 @@ dependencies {
136
136
  api 'com.facebook.react:react-native:+'
137
137
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
138
138
  implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3"
139
- implementation 'io.primer:android:2.18.0'
139
+ implementation 'io.primer:android:2.21.0'
140
140
  }
@@ -7,6 +7,7 @@ import com.facebook.react.uimanager.ViewManager
7
7
  import com.primerioreactnative.components.manager.asset.PrimerRNHeadlessUniversalCheckoutAssetManager
8
8
  import com.primerioreactnative.components.manager.nativeUi.PrimerRNHeadlessUniversalCheckoutNativeUiManager
9
9
  import com.primerioreactnative.components.manager.raw.PrimerRNHeadlessUniversalCheckoutRawManager
10
+ import com.primerioreactnative.components.manager.vault.PrimerRNHeadlessUniversalCheckoutVaultManager
10
11
  import kotlinx.serialization.json.Json
11
12
 
12
13
  class ReactNativePackage : ReactPackage {
@@ -19,7 +20,8 @@ class ReactNativePackage : ReactPackage {
19
20
  PrimerRNHeadlessUniversalCheckout(reactContext, json),
20
21
  PrimerRNHeadlessUniversalCheckoutRawManager(reactContext, json),
21
22
  PrimerRNHeadlessUniversalCheckoutNativeUiManager(reactContext),
22
- PrimerRNHeadlessUniversalCheckoutAssetManager(reactContext)
23
+ PrimerRNHeadlessUniversalCheckoutAssetManager(reactContext),
24
+ PrimerRNHeadlessUniversalCheckoutVaultManager(reactContext, json)
23
25
  )
24
26
  }
25
27
 
@@ -0,0 +1,23 @@
1
+ package com.primerioreactnative.components.datamodels.manager.vault
2
+
3
+ import kotlinx.serialization.Serializable
4
+ import io.primer.android.components.domain.error.PrimerValidationError
5
+
6
+ @Serializable
7
+ data class PrimerRNValidationError(
8
+ val errorId: String,
9
+ val description: String,
10
+ val diagnosticsId: String
11
+ )
12
+
13
+ @Serializable
14
+ data class PrimerRNValidationErrors(
15
+ val validationErrors: List<PrimerRNValidationError>
16
+ )
17
+
18
+ internal fun PrimerValidationError.toPrimerRNValidationError() =
19
+ PrimerRNValidationError(
20
+ errorId,
21
+ description,
22
+ diagnosticsId
23
+ )
@@ -0,0 +1,34 @@
1
+ package com.primerioreactnative.components.datamodels.manager.vault
2
+
3
+ import com.primerioreactnative.datamodels.PrimerPaymentInstrumentTokenRN.PaymentInstrumentData
4
+ import com.primerioreactnative.datamodels.PrimerPaymentInstrumentTokenRN.ThreeDSAuthenticationData
5
+ import com.primerioreactnative.extensions.toPaymentInstrumentDataRN
6
+ import com.primerioreactnative.extensions.toThreeDsAuthenticationDataRN
7
+ import io.primer.android.domain.tokenization.models.PrimerVaultedPaymentMethod
8
+ import kotlinx.serialization.Serializable
9
+
10
+ @Serializable
11
+ data class PrimerRNVaultedPaymentMethod(
12
+ val id: String,
13
+ val analyticsId: String,
14
+ val paymentInstrumentType: String,
15
+ val paymentMethodType: String,
16
+ val paymentInstrumentData: PaymentInstrumentData?,
17
+ val threeDSecureAuthentication: ThreeDSAuthenticationData? = null
18
+ )
19
+
20
+ @Serializable
21
+ data class PrimerRNVaultedPaymentMethods(
22
+ val paymentMethods: List<PrimerRNVaultedPaymentMethod>
23
+ )
24
+
25
+ internal fun PrimerVaultedPaymentMethod.toPrimerRNVaultedPaymentMethod() =
26
+ PrimerRNVaultedPaymentMethod(
27
+ id,
28
+ analyticsId,
29
+ paymentInstrumentType,
30
+ paymentMethodType,
31
+ paymentInstrumentData.toPaymentInstrumentDataRN(),
32
+ threeDSecureAuthentication?.toThreeDsAuthenticationDataRN()
33
+ )
34
+
@@ -0,0 +1,12 @@
1
+ package com.primerioreactnative.components.datamodels.manager.vault
2
+
3
+ import io.primer.android.components.domain.payments.vault.model.card.PrimerVaultedCardAdditionalData
4
+ import kotlinx.serialization.Serializable
5
+
6
+ @Serializable
7
+ data class PrimerRNVaultedPaymentMethodAdditionalData(
8
+ val cvv: String
9
+ )
10
+
11
+ internal fun PrimerRNVaultedPaymentMethodAdditionalData.toPrimerVaultedCardAdditionalData() =
12
+ PrimerVaultedCardAdditionalData(cvv)
@@ -0,0 +1,165 @@
1
+ package com.primerioreactnative.components.manager.vault
2
+
3
+ import com.facebook.react.bridge.Promise
4
+ import com.facebook.react.bridge.ReactApplicationContext
5
+ import com.facebook.react.bridge.ReactContextBaseJavaModule
6
+ import com.facebook.react.bridge.ReactMethod
7
+ import com.primerioreactnative.components.datamodels.manager.vault.PrimerRNValidationErrors
8
+ import com.primerioreactnative.components.datamodels.manager.vault.PrimerRNVaultedPaymentMethodAdditionalData
9
+ import com.primerioreactnative.components.datamodels.manager.vault.PrimerRNVaultedPaymentMethods
10
+ import com.primerioreactnative.components.datamodels.manager.vault.toPrimerRNValidationError
11
+ import com.primerioreactnative.components.datamodels.manager.vault.toPrimerRNVaultedPaymentMethod
12
+ import com.primerioreactnative.components.datamodels.manager.vault.toPrimerVaultedCardAdditionalData
13
+ import com.primerioreactnative.datamodels.ErrorTypeRN
14
+ import com.primerioreactnative.utils.convertJsonToMap
15
+ import com.primerioreactnative.utils.errorTo
16
+ import io.primer.android.components.manager.vault.PrimerHeadlessUniversalCheckoutVaultManager
17
+ import io.primer.android.components.manager.vault.PrimerHeadlessUniversalCheckoutVaultManagerInterface
18
+ import kotlinx.coroutines.CoroutineScope
19
+ import kotlinx.coroutines.SupervisorJob
20
+ import kotlinx.coroutines.launch
21
+ import kotlinx.serialization.decodeFromString
22
+ import kotlinx.serialization.encodeToString
23
+ import kotlinx.serialization.json.Json
24
+ import org.json.JSONObject
25
+
26
+ class PrimerRNHeadlessUniversalCheckoutVaultManager(
27
+ reactContext: ReactApplicationContext,
28
+ private val json: Json,
29
+ ) : ReactContextBaseJavaModule(reactContext) {
30
+
31
+ private val vaultScope = CoroutineScope(SupervisorJob())
32
+ private lateinit var nativeVaultManager: PrimerHeadlessUniversalCheckoutVaultManagerInterface
33
+
34
+ override fun getName() = "RNPrimerHeadlessUniversalCheckoutVaultManager"
35
+
36
+ @ReactMethod
37
+ fun configure(promise: Promise) {
38
+ try {
39
+ nativeVaultManager = PrimerHeadlessUniversalCheckoutVaultManager.newInstance()
40
+ promise.resolve(null)
41
+ } catch (e: Exception) {
42
+ val exception =
43
+ ErrorTypeRN.NativeBridgeFailed errorTo (e.message
44
+ ?: "An error occurs while initialising the vault manager.")
45
+ promise.reject(exception.errorId, exception.description)
46
+ }
47
+ }
48
+
49
+ @ReactMethod
50
+ fun fetchVaultedPaymentMethods(promise: Promise) {
51
+ vaultScope.launch {
52
+ nativeVaultManager.fetchVaultedPaymentMethods().onSuccess { vaultedPaymentMethods ->
53
+ promise.resolve(
54
+ convertJsonToMap(
55
+ JSONObject(
56
+ Json.encodeToString(
57
+ PrimerRNVaultedPaymentMethods(vaultedPaymentMethods.map {
58
+ it.toPrimerRNVaultedPaymentMethod()
59
+ })
60
+ )
61
+ )
62
+ )
63
+ )
64
+ }.onFailure { throwable ->
65
+ val exception =
66
+ ErrorTypeRN.NativeBridgeFailed errorTo (throwable.message
67
+ ?: "An error occurs while fetching vaulted payment methods.")
68
+ promise.reject(exception.errorId, exception.description)
69
+ }
70
+ }
71
+ }
72
+
73
+ @ReactMethod
74
+ fun deleteVaultedPaymentMethod(vaultedPaymentMethodId: String, promise: Promise) {
75
+ vaultScope.launch {
76
+ nativeVaultManager.deleteVaultedPaymentMethod(vaultedPaymentMethodId).onSuccess {
77
+ promise.resolve(null)
78
+ }.onFailure { throwable ->
79
+ promise.reject(
80
+ ErrorTypeRN.VaultManagerDeleteFailed.errorId,
81
+ throwable.message,
82
+ throwable
83
+ )
84
+ }
85
+ }
86
+ }
87
+
88
+ @ReactMethod
89
+ fun validate(
90
+ vaultedPaymentMethodId: String,
91
+ additionalDataStr: String,
92
+ promise: Promise
93
+ ) {
94
+ val additionalData: PrimerRNVaultedPaymentMethodAdditionalData =
95
+ json.decodeFromString(additionalDataStr)
96
+
97
+ vaultScope.launch {
98
+ nativeVaultManager.validate(
99
+ vaultedPaymentMethodId,
100
+ additionalData.toPrimerVaultedCardAdditionalData()
101
+ ).onSuccess { errors ->
102
+ promise.resolve(
103
+ convertJsonToMap(
104
+ JSONObject(
105
+ Json.encodeToString(
106
+ PrimerRNValidationErrors(errors.map {
107
+ it.toPrimerRNValidationError()
108
+ })
109
+ )
110
+ )
111
+ )
112
+ )
113
+ }.onFailure { throwable ->
114
+ promise.reject(
115
+ ErrorTypeRN.InvalidVaultedPaymentMethodId.errorId,
116
+ throwable.message,
117
+ throwable
118
+ )
119
+ }
120
+ }
121
+ }
122
+
123
+ @ReactMethod
124
+ fun startPaymentFlow(
125
+ vaultedPaymentMethodId: String,
126
+ promise: Promise
127
+ ) {
128
+ vaultScope.launch {
129
+ nativeVaultManager.startPaymentFlow(vaultedPaymentMethodId).onSuccess {
130
+ promise.resolve(null)
131
+ }.onFailure { throwable ->
132
+ promise.reject(
133
+ ErrorTypeRN.InvalidVaultedPaymentMethodId.errorId,
134
+ throwable.message,
135
+ throwable
136
+ )
137
+ }
138
+ }
139
+ }
140
+
141
+ @ReactMethod
142
+ fun startPaymentFlowWithAdditionalData(
143
+ vaultedPaymentMethodId: String,
144
+ additionalDataStr: String,
145
+ promise: Promise
146
+ ) {
147
+ val additionalData: PrimerRNVaultedPaymentMethodAdditionalData =
148
+ json.decodeFromString(additionalDataStr)
149
+
150
+ vaultScope.launch {
151
+ nativeVaultManager.startPaymentFlow(
152
+ vaultedPaymentMethodId,
153
+ additionalData.toPrimerVaultedCardAdditionalData()
154
+ ).onSuccess {
155
+ promise.resolve(null)
156
+ }.onFailure { throwable ->
157
+ promise.reject(
158
+ ErrorTypeRN.InvalidVaultedPaymentMethodId.errorId,
159
+ throwable.message,
160
+ throwable
161
+ )
162
+ }
163
+ }
164
+ }
165
+ }
@@ -15,5 +15,7 @@ enum class ErrorTypeRN(val errorId: String) {
15
15
  NativeBridgeFailed("native-android"),
16
16
  UnitializedSdkSession("uninitialized-sdk-session"),
17
17
  UnsupportedPaymentMethod("unsupported-payment-method-type"),
18
- UnsupportedPaymentIntent("unsupported-session-intent")
18
+ UnsupportedPaymentIntent("unsupported-session-intent"),
19
+ VaultManagerDeleteFailed("vaulted-manager-delete-failed"),
20
+ InvalidVaultedPaymentMethodId("invalid-vaulted-payment-method-id")
19
21
  }
@@ -7,7 +7,6 @@ fun PrimerPaymentMethodOptionsRN.toPrimerPaymentMethodOptions() = PrimerPaymentM
7
7
  androidSettingsRN.redirectScheme,
8
8
  googlePayOptions.toPrimerGooglePayOptions(),
9
9
  klarnaOptions.toPrimerKlarnaOptions(),
10
- apayaOptions.toPrimerApayaOptions(),
11
10
  threeDsOptions.toPrimerThreeDsOptions()
12
11
  )
13
12
 
@@ -17,7 +16,5 @@ fun PrimerGooglePayOptionsRN.toPrimerGooglePayOptions() =
17
16
  fun PrimerKlarnaOptionsRN.toPrimerKlarnaOptions() =
18
17
  PrimerKlarnaOptions(recurringPaymentDescription, webViewTitle)
19
18
 
20
- fun PrimerApayaOptionsRN.toPrimerApayaOptions() = PrimerApayaOptions(webViewTitle)
21
-
22
19
  fun PrimerThreeDsOptionsRN.toPrimerThreeDsOptions() =
23
20
  PrimerThreeDsOptions(threeDsOptionsAndroid?.threeDsAppRequestorUrl)
@@ -0,0 +1,13 @@
1
+ package com.primerioreactnative.extensions
2
+
3
+ import com.primerioreactnative.datamodels.PrimerPaymentInstrumentTokenRN
4
+ import io.primer.android.domain.tokenization.models.PrimerVaultedPaymentMethod.AuthenticationDetails
5
+
6
+ internal fun AuthenticationDetails.toThreeDsAuthenticationDataRN() =
7
+ PrimerPaymentInstrumentTokenRN.ThreeDSAuthenticationData(
8
+ responseCode.name,
9
+ reasonCode,
10
+ reasonText,
11
+ protocolVersion,
12
+ challengeIssued
13
+ )
package/ios/Podfile.lock CHANGED
@@ -1,3 +1,3 @@
1
1
  PODFILE CHECKSUM: 0984f720d2439f86374726bfdebe32d895fdcf46
2
2
 
3
- COCOAPODS: 1.13.0
3
+ COCOAPODS: 1.14.3
@@ -0,0 +1,25 @@
1
+ //
2
+ // VaultManager.m
3
+ // primer-io-react-native
4
+ //
5
+
6
+ #import <React/RCTBridgeModule.h>
7
+ #import <React/RCTEventEmitter.h>
8
+
9
+ @interface RCT_EXTERN_MODULE(RNPrimerHeadlessUniversalCheckoutVaultManager, RCTEventEmitter)
10
+
11
+ // MARK: - API
12
+
13
+ RCT_EXTERN_METHOD(configure: (RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
14
+
15
+ RCT_EXTERN_METHOD(fetchVaultedPaymentMethods:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
16
+
17
+ RCT_EXTERN_METHOD(deleteVaultedPaymentMethod:(NSString *)vaultedPaymentMethodId resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
18
+
19
+ RCT_EXTERN_METHOD(validate:(NSString *)vaultedPaymentMethodId additionalDataStr:(NSString *)additionalDataStr resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
20
+
21
+ RCT_EXTERN_METHOD(startPaymentFlow:(NSString *)vaultedPaymentMethodId resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
22
+
23
+ RCT_EXTERN_METHOD(startPaymentFlowWithAdditionalData:(NSString *)vaultedPaymentMethodId additionalDataStr:(NSString *)additionalDataStr resolver:(RCTPromiseResolveBlock)resolver rejecter:(RCTPromiseRejectBlock)rejecter)
24
+
25
+ @end
@@ -0,0 +1,85 @@
1
+ import PrimerSDK
2
+
3
+ @objc(RNPrimerHeadlessUniversalCheckoutVaultManager)
4
+ class RNPrimerHeadlessUniversalCheckoutVaultManager: RCTEventEmitter {
5
+
6
+ private var vaultedManager: PrimerHeadlessUniversalCheckout.VaultManager!
7
+
8
+ override func supportedEvents() -> [String]! {
9
+ return []
10
+ }
11
+
12
+ override class func requiresMainQueueSetup() -> Bool {
13
+ return true
14
+ }
15
+
16
+ @objc
17
+ func configure(_ resolver : @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
18
+ do {
19
+ self.vaultedManager = PrimerSDK.PrimerHeadlessUniversalCheckout.VaultManager()
20
+ try self.vaultedManager.configure()
21
+ resolver(nil)
22
+ } catch {
23
+ rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
24
+ }
25
+ }
26
+
27
+ @objc
28
+ func fetchVaultedPaymentMethods(_ resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
29
+ self.vaultedManager.fetchVaultedPaymentMethods { vaultedPaymentMethods, err in
30
+ if let err = err {
31
+ rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
32
+ } else if let paymentMethods = vaultedPaymentMethods {
33
+ do {
34
+ let paymentMethodObjects = try paymentMethods.compactMap({ try $0.toJsonObject() })
35
+ resolver(["paymentMethods": paymentMethodObjects])
36
+ } catch {
37
+ rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
38
+ }
39
+ }
40
+ }
41
+ }
42
+
43
+ @objc
44
+ func deleteVaultedPaymentMethod(_ vaultedPaymentMethodId: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
45
+ self.vaultedManager.deleteVaultedPaymentMethod(id: vaultedPaymentMethodId) { err in
46
+ if let err = err {
47
+ rejecter(err.rnError["errorId"]!, err.rnError["description"], err)
48
+ } else {
49
+ resolver([])
50
+ }
51
+ }
52
+ }
53
+
54
+ @objc
55
+ func validate(_ vaultedPaymentMethodId: String, additionalDataStr: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
56
+ do {
57
+ let additionalData = try PrimerVaultedCardAdditionalData.from(jsonString: additionalDataStr)
58
+ self.vaultedManager.validate(vaultedPaymentMethodId: vaultedPaymentMethodId, vaultedPaymentMethodAdditionalData: additionalData) { err in
59
+ if let err = err, err.count > 0 {
60
+ rejecter(err.first!.rnError["errorId"]!, err.first!.rnError["description"], err.first!)
61
+ } else {
62
+ resolver(["validationErrors": []])
63
+ }
64
+ }
65
+ } catch {
66
+ rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
67
+ }
68
+ }
69
+
70
+ @objc
71
+ func startPaymentFlow(_ vaultedPaymentMethodId: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
72
+ self.vaultedManager.startPaymentFlow(vaultedPaymentMethodId: vaultedPaymentMethodId)
73
+ }
74
+
75
+ @objc
76
+ func startPaymentFlowWithAdditionalData(_ vaultedPaymentMethodId: String, additionalDataStr: String, resolver: @escaping RCTPromiseResolveBlock, rejecter: @escaping RCTPromiseRejectBlock) {
77
+ do {
78
+ let additionalData = try PrimerVaultedCardAdditionalData.from(jsonString: additionalDataStr)
79
+ self.vaultedManager.startPaymentFlow(vaultedPaymentMethodId: vaultedPaymentMethodId,
80
+ vaultedPaymentMethodAdditionalData: additionalData)
81
+ } catch {
82
+ rejecter(error.rnError["errorId"]!, error.rnError["description"], error)
83
+ }
84
+ }
85
+ }
@@ -8,10 +8,23 @@
8
8
  import Foundation
9
9
 
10
10
  extension Encodable {
11
-
11
+
12
12
  func toJsonObject() throws -> Any {
13
13
  let data = try JSONEncoder().encode(self)
14
14
  let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments)
15
15
  return json
16
16
  }
17
17
  }
18
+
19
+ extension Decodable {
20
+ /// Initialize an object from a JSON string.
21
+ /// - Parameter jsonString: A string representation of the JSON.
22
+ /// - Throws: An error if the decoding fails.
23
+ /// - Returns: An initialized object conforming to the Decodable protocol.
24
+ static func from(jsonString: String) throws -> Self {
25
+ guard let data = jsonString.data(using: .utf8) else {
26
+ throw NSError(domain: "String could not be converted to UTF-8 data.", code: 0, userInfo: [NSLocalizedDescriptionKey: "String could not be converted to UTF-8 data."])
27
+ }
28
+ return try JSONDecoder().decode(Self.self, from: data)
29
+ }
30
+ }
@@ -54,6 +54,5 @@ class PrimerHeadlessUniversalCheckoutAssetsManager {
54
54
  });
55
55
  }
56
56
  }
57
- var _default = PrimerHeadlessUniversalCheckoutAssetsManager;
58
- exports.default = _default;
57
+ var _default = exports.default = PrimerHeadlessUniversalCheckoutAssetsManager;
59
58
  //# sourceMappingURL=AssetsManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RNTPrimerHeadlessUniversalCheckoutAssetsManager","NativeModules","PrimerHeadlessUniversalCheckoutAssetsManager","constructor","getCardNetworkImageURL","cardNetwork","Promise","resolve","reject","data","getCardNetworkImage","cardNetworkImageURL","err","console","error","getPaymentMethodAsset","paymentMethodType","paymentMethodAsset","getPaymentMethodAssets","paymentMethodAssets"],"sourceRoot":"../../src","sources":["AssetsManager.ts"],"mappings":";;;;;;AACA;AAEA,MAAM;EAAEA;AAAgD,CAAC,GAAGC,0BAAa;AAEzE,MAAMC,4CAA4C,CAAC;EAE/C;EACA;EACA;EACAC,WAAW,GAAG,CAAC;;EAEf;EACA;EACA;;EAEA,MAAMC,sBAAsB,CAACC,WAAmB,EAAmB;IAC/D,OAAO,IAAIC,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;MAC1C,IAAI;QACA,MAAMC,IAAI,GAAG,MAAMT,+CAA+C,CAACU,mBAAmB,CAACL,WAAW,CAAC;QACnGE,OAAO,CAACE,IAAI,CAACE,mBAAmB,CAAC;MACrC,CAAC,CAAC,OAAOC,GAAG,EAAE;QACVC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;QAClBJ,MAAM,CAACI,GAAG,CAAC;MACf;IACJ,CAAC,CAAC;EACN;EAEA,MAAMG,qBAAqB,CAACC,iBAAyB,EAAkB;IACnE,OAAO,IAAIV,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;MAC1C,IAAI;QACA,MAAMC,IAAI,GAAG,MAAMT,+CAA+C,CAACe,qBAAqB,CAACC,iBAAiB,CAAC;QAC3G,MAAMC,kBAAyB,GAAGR,IAAI,CAACQ,kBAAkB;QACzDV,OAAO,CAACU,kBAAkB,CAAC;MAC/B,CAAC,CAAC,OAAOL,GAAG,EAAE;QACVC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;QAClBJ,MAAM,CAACI,GAAG,CAAC;MACf;IACJ,CAAC,CAAC;EACN;EAEA,MAAMM,sBAAsB,GAAqB;IAC7C,OAAO,IAAIZ,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;MAC1C,IAAI;QACA,MAAMC,IAAI,GAAG,MAAMT,+CAA+C,CAACkB,sBAAsB,EAAE;QAC3F,MAAMC,mBAA4B,GAAGV,IAAI,CAACU,mBAAmB;QAC7DZ,OAAO,CAACY,mBAAmB,CAAC;MAChC,CAAC,CAAC,OAAOP,GAAG,EAAE;QACVC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;QAClBJ,MAAM,CAACI,GAAG,CAAC;MACf;IACJ,CAAC,CAAC;EACN;AACJ;AAAC,eAEcV,4CAA4C;AAAA"}
1
+ {"version":3,"names":["_reactNative","require","RNTPrimerHeadlessUniversalCheckoutAssetsManager","NativeModules","PrimerHeadlessUniversalCheckoutAssetsManager","constructor","getCardNetworkImageURL","cardNetwork","Promise","resolve","reject","data","getCardNetworkImage","cardNetworkImageURL","err","console","error","getPaymentMethodAsset","paymentMethodType","paymentMethodAsset","getPaymentMethodAssets","paymentMethodAssets","_default","exports","default"],"sourceRoot":"../../../../src","sources":["HeadlessUniversalCheckout/Managers/AssetsManager.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAM;EAAEC;AAAgD,CAAC,GAAGC,0BAAa;AAEzE,MAAMC,4CAA4C,CAAC;EAE/C;EACA;EACA;EACAC,WAAWA,CAAA,EAAG,CAAC;;EAEf;EACA;EACA;;EAEA,MAAMC,sBAAsBA,CAACC,WAAmB,EAAmB;IAC/D,OAAO,IAAIC,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;MAC1C,IAAI;QACA,MAAMC,IAAI,GAAG,MAAMT,+CAA+C,CAACU,mBAAmB,CAACL,WAAW,CAAC;QACnGE,OAAO,CAACE,IAAI,CAACE,mBAAmB,CAAC;MACrC,CAAC,CAAC,OAAOC,GAAG,EAAE;QACVC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;QAClBJ,MAAM,CAACI,GAAG,CAAC;MACf;IACJ,CAAC,CAAC;EACN;EAEA,MAAMG,qBAAqBA,CAACC,iBAAyB,EAAkB;IACnE,OAAO,IAAIV,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;MAC1C,IAAI;QACA,MAAMC,IAAI,GAAG,MAAMT,+CAA+C,CAACe,qBAAqB,CAACC,iBAAiB,CAAC;QAC3G,MAAMC,kBAAyB,GAAGR,IAAI,CAACQ,kBAAkB;QACzDV,OAAO,CAACU,kBAAkB,CAAC;MAC/B,CAAC,CAAC,OAAOL,GAAG,EAAE;QACVC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;QAClBJ,MAAM,CAACI,GAAG,CAAC;MACf;IACJ,CAAC,CAAC;EACN;EAEA,MAAMM,sBAAsBA,CAAA,EAAqB;IAC7C,OAAO,IAAIZ,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;MAC1C,IAAI;QACA,MAAMC,IAAI,GAAG,MAAMT,+CAA+C,CAACkB,sBAAsB,CAAC,CAAC;QAC3F,MAAMC,mBAA4B,GAAGV,IAAI,CAACU,mBAAmB;QAC7DZ,OAAO,CAACY,mBAAmB,CAAC;MAChC,CAAC,CAAC,OAAOP,GAAG,EAAE;QACVC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;QAClBJ,MAAM,CAACI,GAAG,CAAC;MACf;IACJ,CAAC,CAAC;EACN;AACJ;AAAC,IAAAQ,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcpB,4CAA4C"}
@@ -30,6 +30,5 @@ class PrimerHeadlessUniversalCheckoutPaymentMethodNativeUIManager {
30
30
  return RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager.showPaymentMethod(intent);
31
31
  }
32
32
  }
33
- var _default = PrimerHeadlessUniversalCheckoutPaymentMethodNativeUIManager;
34
- exports.default = _default;
33
+ var _default = exports.default = PrimerHeadlessUniversalCheckoutPaymentMethodNativeUIManager;
35
34
  //# sourceMappingURL=NativeUIManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager","NativeModules","PrimerHeadlessUniversalCheckoutPaymentMethodNativeUIManager","constructor","configure","paymentMethodType","err","console","error","showPaymentMethod","intent"],"sourceRoot":"../../src","sources":["NativeUIManager.ts"],"mappings":";;;;;;AAAA;AAGA,MAAM;EAAEA;AAAuD,CAAC,GAAGC,0BAAa;AAEhF,MAAMC,2DAA2D,CAAC;EAE9D;EACA;EACA;EACAC,WAAW,GAAG,CAAC;;EAEf;EACA;EACA;;EAEA,MAAMC,SAAS,CAACC,iBAAyB,EAAiB;IACtD,IAAI;MACA,MAAML,sDAAsD,CAACI,SAAS,CAACC,iBAAiB,CAAC;IAC7F,CAAC,CAAC,OAAOC,GAAG,EAAE;MACVC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;MAClB,MAAMA,GAAG;IACb;EACJ;EAEA,MAAMG,iBAAiB,CAACC,MAA2B,EAAiB;IAChE,OAAOV,sDAAsD,CAACS,iBAAiB,CAACC,MAAM,CAAC;EAC3F;AACJ;AAAC,eAEcR,2DAA2D;AAAA"}
1
+ {"version":3,"names":["_reactNative","require","RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager","NativeModules","PrimerHeadlessUniversalCheckoutPaymentMethodNativeUIManager","constructor","configure","paymentMethodType","err","console","error","showPaymentMethod","intent","_default","exports","default"],"sourceRoot":"../../../../../src","sources":["HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA,MAAM;EAAEC;AAAuD,CAAC,GAAGC,0BAAa;AAEhF,MAAMC,2DAA2D,CAAC;EAE9D;EACA;EACA;EACAC,WAAWA,CAAA,EAAG,CAAC;;EAEf;EACA;EACA;;EAEA,MAAMC,SAASA,CAACC,iBAAyB,EAAiB;IACtD,IAAI;MACA,MAAML,sDAAsD,CAACI,SAAS,CAACC,iBAAiB,CAAC;IAC7F,CAAC,CAAC,OAAOC,GAAG,EAAE;MACVC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;MAClB,MAAMA,GAAG;IACb;EACJ;EAEA,MAAMG,iBAAiBA,CAACC,MAA2B,EAAiB;IAChE,OAAOV,sDAAsD,CAACS,iBAAiB,CAACC,MAAM,CAAC;EAC3F;AACJ;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcX,2DAA2D"}
@@ -6,19 +6,18 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _PrimerError = require("../../../models/PrimerError");
9
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
9
  const {
11
10
  RNTPrimerHeadlessUniversalCheckoutRawDataManager
12
11
  } = _reactNative.NativeModules;
13
12
  const eventEmitter = new _reactNative.NativeEventEmitter(RNTPrimerHeadlessUniversalCheckoutRawDataManager);
14
13
  const eventTypes = ['onMetadataChange', 'onValidation'];
15
14
  class PrimerHeadlessUniversalCheckoutRawDataManager {
15
+ subscriptions = [];
16
+
16
17
  ///////////////////////////////////////////
17
18
  // Init
18
19
  ///////////////////////////////////////////
19
- constructor() {
20
- _defineProperty(this, "options", void 0);
21
- }
20
+ constructor() {}
22
21
 
23
22
  ///////////////////////////////////////////
24
23
  // API
@@ -41,27 +40,26 @@ class PrimerHeadlessUniversalCheckoutRawDataManager {
41
40
  });
42
41
  }
43
42
  async configureListeners() {
43
+ var _this$options, _this$options3;
44
44
  //@ts-ignore
45
- return new Promise(async (resolve, reject) => {
46
- var _this$options, _this$options3;
47
- if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.onMetadataChange) {
48
- this.addListener("onMetadataChange", data => {
49
- var _this$options2;
50
- if ((_this$options2 = this.options) !== null && _this$options2 !== void 0 && _this$options2.onMetadataChange) {
51
- this.options.onMetadataChange(data);
52
- }
53
- });
54
- }
55
- if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.onValidation) {
56
- this.addListener("onValidation", data => {
57
- var _this$options4;
58
- if ((_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.onValidation) {
59
- this.options.onValidation(data.isValid, data.errors);
60
- }
61
- });
62
- }
63
- resolve();
64
- });
45
+ if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.onMetadataChange) {
46
+ const sub = await this.addListener("onMetadataChange", data => {
47
+ var _this$options2;
48
+ if ((_this$options2 = this.options) !== null && _this$options2 !== void 0 && _this$options2.onMetadataChange) {
49
+ this.options.onMetadataChange(data);
50
+ }
51
+ });
52
+ this.subscriptions.push(sub);
53
+ }
54
+ if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.onValidation) {
55
+ const sub = await this.addListener("onValidation", data => {
56
+ var _this$options4;
57
+ if ((_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.onValidation) {
58
+ this.options.onValidation(data.isValid, data.errors);
59
+ }
60
+ });
61
+ this.subscriptions.push(sub);
62
+ }
65
63
  }
66
64
  async getRequiredInputElementTypes() {
67
65
  return new Promise(async (resolve, reject) => {
@@ -146,6 +144,5 @@ class PrimerHeadlessUniversalCheckoutRawDataManager {
146
144
  eventTypes.forEach(eventType => this.removeAllListenersForEvent(eventType));
147
145
  }
148
146
  }
149
- var _default = PrimerHeadlessUniversalCheckoutRawDataManager;
150
- exports.default = _default;
147
+ var _default = exports.default = PrimerHeadlessUniversalCheckoutRawDataManager;
151
148
  //# sourceMappingURL=RawDataManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RNTPrimerHeadlessUniversalCheckoutRawDataManager","NativeModules","eventEmitter","NativeEventEmitter","eventTypes","PrimerHeadlessUniversalCheckoutRawDataManager","constructor","configure","options","Promise","resolve","reject","configureListeners","data","paymentMethodType","err","onMetadataChange","addListener","onValidation","isValid","errors","getRequiredInputElementTypes","listRequiredInputElementTypes","inputElementTypes","PrimerError","undefined","setRawData","rawData","JSON","stringify","submit","cleanUp","eventType","listener","removeListener","subscription","remove","removeAllListenersForEvent","removeAllListeners","forEach"],"sourceRoot":"../../src","sources":["RawDataManager.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_PrimerError","RNTPrimerHeadlessUniversalCheckoutRawDataManager","NativeModules","eventEmitter","NativeEventEmitter","eventTypes","PrimerHeadlessUniversalCheckoutRawDataManager","subscriptions","constructor","configure","options","Promise","resolve","reject","configureListeners","data","paymentMethodType","err","_this$options","_this$options3","onMetadataChange","sub","addListener","_this$options2","push","onValidation","_this$options4","isValid","errors","getRequiredInputElementTypes","_this$options5","listRequiredInputElementTypes","inputElementTypes","PrimerError","undefined","setRawData","rawData","_this$options6","JSON","stringify","submit","_this$options7","cleanUp","_this$options8","eventType","listener","removeListener","subscription","remove","removeAllListenersForEvent","removeAllListeners","forEach","_default","exports","default"],"sourceRoot":"../../../../../src","sources":["HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.ts"],"mappings":"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"}