@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.
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/primerioreactnative/ReactNativePackage.kt +3 -1
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/vault/PrimerRNValidationError.kt +23 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/vault/PrimerRNVaultedPaymentMethod.kt +34 -0
- package/android/src/main/java/com/primerioreactnative/components/datamodels/manager/vault/PrimerRNVaultedPaymentMethodAdditionalData.kt +12 -0
- package/android/src/main/java/com/primerioreactnative/components/manager/vault/PrimerRNHeadlessUniversalCheckoutVaultManager.kt +165 -0
- package/android/src/main/java/com/primerioreactnative/datamodels/PrimerErrorRN.kt +3 -1
- package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt +0 -3
- package/android/src/main/java/com/primerioreactnative/extensions/ThreeDsAuthenticationData.kt +13 -0
- package/ios/Podfile.lock +1 -1
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNPrimerHeadlessUniversalCheckoutVaultManager.m +25 -0
- package/ios/Sources/Headless Universal Checkout/Managers/Payment Method Managers/RNPrimerHeadlessUniversalCheckoutVaultManager.swift +85 -0
- package/ios/Sources/Helpers/Encodable+Extension.swift +14 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js +1 -2
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js +1 -2
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +23 -26
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js +84 -0
- package/lib/commonjs/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -0
- package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +42 -44
- package/lib/commonjs/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js +1 -2
- package/lib/commonjs/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/commonjs/HeadlessUniversalCheckout/types.js.map +1 -1
- package/lib/commonjs/Primer.js +1 -2
- package/lib/commonjs/Primer.js.map +1 -1
- package/lib/commonjs/PrimerInput.js +6 -10
- package/lib/commonjs/PrimerInput.js.map +1 -1
- package/lib/commonjs/RNPrimer.js +1 -2
- package/lib/commonjs/RNPrimer.js.map +1 -1
- package/lib/commonjs/RNTPrimerHeadlessUniversalCheckoutCardFormUIManager.js.map +1 -1
- package/lib/commonjs/index.js +28 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/PrimerAsset.js.map +1 -1
- package/lib/commonjs/models/PrimerCheckoutAdditionalInfo.js.map +1 -1
- package/lib/commonjs/models/PrimerCheckoutData.js +3 -3
- package/lib/commonjs/models/PrimerCheckoutData.js.map +1 -1
- package/lib/commonjs/models/PrimerCheckoutPaymentMethodData.js.map +1 -1
- package/lib/commonjs/models/PrimerClientSession.js.map +1 -1
- package/lib/commonjs/models/PrimerCountryCode.js.map +1 -1
- package/lib/commonjs/models/PrimerCurrencyCode.js.map +1 -1
- package/lib/commonjs/models/PrimerError.js +0 -5
- package/lib/commonjs/models/PrimerError.js.map +1 -1
- package/lib/commonjs/models/PrimerHandlers.js.map +1 -1
- package/lib/commonjs/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js.map +1 -1
- package/lib/commonjs/models/PrimerImplementedRNCallbacks.js.map +1 -1
- package/lib/commonjs/models/PrimerInitializationData.js.map +1 -1
- package/lib/commonjs/models/PrimerInputElementType.js +3 -4
- package/lib/commonjs/models/PrimerInputElementType.js.map +1 -1
- package/lib/commonjs/models/PrimerInterfaces.js.map +1 -1
- package/lib/commonjs/models/PrimerPaymentMethodManagerCategory.js +3 -4
- package/lib/commonjs/models/PrimerPaymentMethodManagerCategory.js.map +1 -1
- package/lib/commonjs/models/PrimerPaymentMethodTokenData.js +3 -4
- package/lib/commonjs/models/PrimerPaymentMethodTokenData.js.map +1 -1
- package/lib/commonjs/models/PrimerRawData.js.map +1 -1
- package/lib/commonjs/models/PrimerSessionIntent.js +3 -4
- package/lib/commonjs/models/PrimerSessionIntent.js.map +1 -1
- package/lib/commonjs/models/PrimerSettings.js.map +1 -1
- package/lib/commonjs/models/PrimerTheme.js.map +1 -1
- package/lib/commonjs/models/PrimerValidationError.js +2 -0
- package/lib/commonjs/models/PrimerValidationError.js.map +1 -0
- package/lib/commonjs/models/PrimerValidationErrorResult.js +6 -0
- package/lib/commonjs/models/PrimerValidationErrorResult.js.map +1 -0
- package/lib/commonjs/models/PrimerVaultedPaymentMethod.js +6 -0
- package/lib/commonjs/models/PrimerVaultedPaymentMethod.js.map +1 -0
- package/lib/commonjs/models/PrimerVaultedPaymentMethodAdditionalData.js +2 -0
- package/lib/commonjs/models/PrimerVaultedPaymentMethodAdditionalData.js.map +1 -0
- package/lib/commonjs/models/PrimerVaultedPaymentMethodResult.js +6 -0
- package/lib/commonjs/models/PrimerVaultedPaymentMethodResult.js.map +1 -0
- package/lib/commonjs/models/RetailOutletsRetail.js.map +1 -1
- package/lib/commonjs/utils/index.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/AssetsManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js +22 -24
- package/lib/module/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js +78 -0
- package/lib/module/HeadlessUniversalCheckout/Managers/VaultManager.js.map +1 -0
- package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js +40 -40
- package/lib/module/HeadlessUniversalCheckout/PrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/RNPrimerHeadlessUniversalCheckout.js.map +1 -1
- package/lib/module/HeadlessUniversalCheckout/types.js.map +1 -1
- package/lib/module/Primer.js.map +1 -1
- package/lib/module/PrimerInput.js.map +1 -1
- package/lib/module/RNPrimer.js.map +1 -1
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/PrimerAsset.js.map +1 -1
- package/lib/module/models/PrimerCheckoutAdditionalInfo.js.map +1 -1
- package/lib/module/models/PrimerCheckoutData.js +3 -3
- package/lib/module/models/PrimerCheckoutData.js.map +1 -1
- package/lib/module/models/PrimerCheckoutPaymentMethodData.js.map +1 -1
- package/lib/module/models/PrimerClientSession.js.map +1 -1
- package/lib/module/models/PrimerCountryCode.js.map +1 -1
- package/lib/module/models/PrimerCurrencyCode.js.map +1 -1
- package/lib/module/models/PrimerError.js +0 -5
- package/lib/module/models/PrimerError.js.map +1 -1
- package/lib/module/models/PrimerHandlers.js.map +1 -1
- package/lib/module/models/PrimerHeadlessUniversalCheckoutPaymentMethod.js.map +1 -1
- package/lib/module/models/PrimerImplementedRNCallbacks.js.map +1 -1
- package/lib/module/models/PrimerInitializationData.js.map +1 -1
- package/lib/module/models/PrimerInputElementType.js +3 -3
- package/lib/module/models/PrimerInputElementType.js.map +1 -1
- package/lib/module/models/PrimerInterfaces.js.map +1 -1
- package/lib/module/models/PrimerPaymentMethodManagerCategory.js +3 -3
- package/lib/module/models/PrimerPaymentMethodManagerCategory.js.map +1 -1
- package/lib/module/models/PrimerPaymentMethodTokenData.js +3 -3
- package/lib/module/models/PrimerPaymentMethodTokenData.js.map +1 -1
- package/lib/module/models/PrimerRawData.js.map +1 -1
- package/lib/module/models/PrimerSessionIntent.js +3 -3
- package/lib/module/models/PrimerSessionIntent.js.map +1 -1
- package/lib/module/models/PrimerSettings.js.map +1 -1
- package/lib/module/models/PrimerTheme.js.map +1 -1
- package/lib/module/models/PrimerValidationError.js +2 -0
- package/lib/module/models/PrimerValidationError.js.map +1 -0
- package/lib/module/models/PrimerValidationErrorResult.js +2 -0
- package/lib/module/models/PrimerValidationErrorResult.js.map +1 -0
- package/lib/module/models/PrimerVaultedPaymentMethod.js +2 -0
- package/lib/module/models/PrimerVaultedPaymentMethod.js.map +1 -0
- package/lib/module/models/PrimerVaultedPaymentMethodAdditionalData.js +2 -0
- package/lib/module/models/PrimerVaultedPaymentMethodAdditionalData.js.map +1 -0
- package/lib/module/models/PrimerVaultedPaymentMethodResult.js +2 -0
- package/lib/module/models/PrimerVaultedPaymentMethodResult.js.map +1 -0
- package/lib/module/models/RetailOutletsRetail.js.map +1 -1
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/AssetsManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts +3 -2
- package/lib/typescript/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.d.ts.map +1 -1
- package/lib/typescript/HeadlessUniversalCheckout/Managers/VaultManager.d.ts +13 -0
- package/lib/typescript/HeadlessUniversalCheckout/Managers/VaultManager.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +5 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/PrimerValidationError.d.ts +7 -0
- package/lib/typescript/models/PrimerValidationError.d.ts.map +1 -0
- package/lib/typescript/models/PrimerValidationErrorResult.d.ts +6 -0
- package/lib/typescript/models/PrimerValidationErrorResult.d.ts.map +1 -0
- package/lib/typescript/models/PrimerVaultedPaymentMethod.d.ts +11 -0
- package/lib/typescript/models/PrimerVaultedPaymentMethod.d.ts.map +1 -0
- package/lib/typescript/models/PrimerVaultedPaymentMethodAdditionalData.d.ts +5 -0
- package/lib/typescript/models/PrimerVaultedPaymentMethodAdditionalData.d.ts.map +1 -0
- package/lib/typescript/models/PrimerVaultedPaymentMethodResult.d.ts +6 -0
- package/lib/typescript/models/PrimerVaultedPaymentMethodResult.d.ts.map +1 -0
- package/package.json +5 -8
- package/primer-io-react-native.podspec +1 -1
- package/src/HeadlessUniversalCheckout/Managers/AssetsManager.ts +1 -1
- package/src/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.ts +21 -21
- package/src/HeadlessUniversalCheckout/Managers/VaultManager.ts +90 -0
- package/src/index.tsx +17 -0
- package/src/models/PrimerValidationError.ts +7 -0
- package/src/models/PrimerValidationErrorResult.ts +7 -0
- package/src/models/PrimerVaultedPaymentMethod.ts +12 -0
- package/src/models/PrimerVaultedPaymentMethodAdditionalData.ts +5 -0
- package/src/models/PrimerVaultedPaymentMethodResult.ts +7 -0
- package/LICENSE +0 -21
- package/README.md +0 -149
package/android/build.gradle
CHANGED
|
@@ -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.
|
|
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
|
}
|
package/android/src/main/java/com/primerioreactnative/extensions/PrimerPaymentMethodOptionsRN.kt
CHANGED
|
@@ -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
|
@@ -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":"
|
|
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"}
|
package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js
CHANGED
|
@@ -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
|
package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/NativeUIManager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RNTPrimerHeadlessUniversalPaymentMethodNativeUIManager","NativeModules","PrimerHeadlessUniversalCheckoutPaymentMethodNativeUIManager","constructor","configure","paymentMethodType","err","console","error","showPaymentMethod","intent"],"sourceRoot":"
|
|
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"}
|
package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js
CHANGED
|
@@ -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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
this.
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
package/lib/commonjs/HeadlessUniversalCheckout/Managers/PaymentMethodManagers/RawDataManager.js.map
CHANGED
|
@@ -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":"
|
|
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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"}
|