@yuno-payments/yuno-sdk-react-native 1.0.26 → 1.0.28
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/README.md +1 -1
- package/android/build.gradle +6 -1
- package/android/src/main/java/com/yunosdkreactnative/YunoSdkModule.kt +23 -18
- package/android/src/main/java/com/yunosdkreactnative/YunoSdkPackage.kt +29 -5
- package/ios/YunoSdk.h +15 -0
- package/ios/YunoSdk.m +12 -1
- package/ios/YunoSdk.podspec +2 -1
- package/lib/commonjs/NativeYunoSdk.js +18 -0
- package/lib/commonjs/NativeYunoSdk.js.map +1 -0
- package/lib/commonjs/YunoSdk.js +21 -1
- package/lib/commonjs/YunoSdk.js.map +1 -1
- package/lib/module/NativeYunoSdk.js +14 -0
- package/lib/module/NativeYunoSdk.js.map +1 -0
- package/lib/module/YunoSdk.js +22 -1
- package/lib/module/YunoSdk.js.map +1 -1
- package/package.json +9 -1
- package/src/NativeYunoSdk.ts +134 -0
- package/src/YunoSdk.ts +25 -1
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ To use the Yuno React Native SDK, you need to meet the following requirements:
|
|
|
29
29
|
| Requirement | Version |
|
|
30
30
|
|-------------|---------|
|
|
31
31
|
| **Node.js** | 16.0.0 or above |
|
|
32
|
-
| **React Native** | 0.70
|
|
32
|
+
| **React Native** | 0.70 - 0.82+ (tested and compatible) |
|
|
33
33
|
|
|
34
34
|
## Android Requirements
|
|
35
35
|
|
package/android/build.gradle
CHANGED
|
@@ -12,7 +12,7 @@ buildscript {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
def isNewArchitectureEnabled() {
|
|
15
|
-
return rootProject.hasProperty("newArchEnabled") &&
|
|
15
|
+
return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
apply plugin: 'com.android.library'
|
|
@@ -55,6 +55,11 @@ android {
|
|
|
55
55
|
defaultConfig {
|
|
56
56
|
minSdkVersion getExtOrIntegerDefault('minSdkVersion')
|
|
57
57
|
targetSdkVersion getExtOrIntegerDefault('targetSdkVersion')
|
|
58
|
+
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
buildFeatures {
|
|
62
|
+
buildConfig true
|
|
58
63
|
}
|
|
59
64
|
|
|
60
65
|
buildTypes {
|
|
@@ -6,7 +6,9 @@ import android.util.Log
|
|
|
6
6
|
import android.widget.Toast
|
|
7
7
|
import androidx.activity.ComponentActivity
|
|
8
8
|
import com.facebook.react.bridge.*
|
|
9
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
9
10
|
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
11
|
+
import com.facebook.react.turbomodule.core.interfaces.TurboModule
|
|
10
12
|
import com.yuno.sdk.Yuno
|
|
11
13
|
import com.yuno.sdk.YunoConfig
|
|
12
14
|
import com.yuno.sdk.YunoLanguage
|
|
@@ -39,11 +41,14 @@ import androidx.lifecycle.asFlow
|
|
|
39
41
|
* This module bridges the Yuno native Android SDK to React Native,
|
|
40
42
|
* providing payment and enrollment functionalities.
|
|
41
43
|
*
|
|
44
|
+
* Supports both TurboModules (New Architecture) and Bridge (Old Architecture).
|
|
45
|
+
*
|
|
42
46
|
* IMPORTANT: Your MainActivity MUST call YunoSdkModule.registerYunoCallbacks(this)
|
|
43
47
|
* in onCreate() to register the required ActivityResultLaunchers.
|
|
44
48
|
*/
|
|
49
|
+
@ReactModule(name = YunoSdkModule.NAME)
|
|
45
50
|
class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
46
|
-
ReactContextBaseJavaModule(reactContext), LifecycleEventListener {
|
|
51
|
+
ReactContextBaseJavaModule(reactContext), LifecycleEventListener, TurboModule {
|
|
47
52
|
|
|
48
53
|
private var isInitialized = false
|
|
49
54
|
|
|
@@ -340,7 +345,7 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
340
345
|
true
|
|
341
346
|
}
|
|
342
347
|
|
|
343
|
-
val activity = currentActivity ?: run {
|
|
348
|
+
val activity = reactContext.currentActivity ?: run {
|
|
344
349
|
promise.reject("NO_ACTIVITY", "Current activity is not available")
|
|
345
350
|
return
|
|
346
351
|
}
|
|
@@ -390,7 +395,7 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
390
395
|
return
|
|
391
396
|
}
|
|
392
397
|
|
|
393
|
-
val activity = currentActivity ?: run {
|
|
398
|
+
val activity = reactContext.currentActivity ?: run {
|
|
394
399
|
promise.reject("NO_ACTIVITY", "Current activity is not available")
|
|
395
400
|
return
|
|
396
401
|
}
|
|
@@ -436,7 +441,7 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
436
441
|
clearLastOTT() // 🧹 Clear any previous OTT tokens before starting new flow
|
|
437
442
|
|
|
438
443
|
try {
|
|
439
|
-
val activity = currentActivity ?: run {
|
|
444
|
+
val activity = reactContext.currentActivity ?: run {
|
|
440
445
|
promise.reject("NO_ACTIVITY", "Current activity is not available")
|
|
441
446
|
return
|
|
442
447
|
}
|
|
@@ -471,7 +476,7 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
471
476
|
if (!checkInitialized(promise)) return
|
|
472
477
|
|
|
473
478
|
try {
|
|
474
|
-
val activity = currentActivity ?: run {
|
|
479
|
+
val activity = reactContext.currentActivity ?: run {
|
|
475
480
|
promise.reject("NO_ACTIVITY", "Current activity is not available")
|
|
476
481
|
return
|
|
477
482
|
}
|
|
@@ -548,7 +553,7 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
548
553
|
return
|
|
549
554
|
}
|
|
550
555
|
|
|
551
|
-
val activity = currentActivity ?: run {
|
|
556
|
+
val activity = reactContext.currentActivity ?: run {
|
|
552
557
|
promise.reject("NO_ACTIVITY", "Current activity is not available")
|
|
553
558
|
return
|
|
554
559
|
}
|
|
@@ -863,7 +868,7 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
863
868
|
try {
|
|
864
869
|
Log.d(TAG, "generateToken called with checkoutSession: $checkoutSession")
|
|
865
870
|
|
|
866
|
-
val activity = currentActivity
|
|
871
|
+
val activity = reactContext.currentActivity
|
|
867
872
|
if (activity == null) {
|
|
868
873
|
promise.reject("ACTIVITY_UNAVAILABLE", "Current activity is null. Cannot generate token.")
|
|
869
874
|
return
|
|
@@ -880,7 +885,7 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
880
885
|
val apiClient = Yuno.apiClientPayment(
|
|
881
886
|
checkoutSession = checkoutSession,
|
|
882
887
|
countryCode = countryCode,
|
|
883
|
-
context =
|
|
888
|
+
context = reactContext.applicationContext
|
|
884
889
|
)
|
|
885
890
|
headlessApiClient = apiClient
|
|
886
891
|
|
|
@@ -942,7 +947,7 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
942
947
|
try {
|
|
943
948
|
Log.d(TAG, "getThreeDSecureChallenge called with checkoutSession: $checkoutSession")
|
|
944
949
|
|
|
945
|
-
val activity = currentActivity
|
|
950
|
+
val activity = reactContext.currentActivity
|
|
946
951
|
if (activity == null) {
|
|
947
952
|
promise.reject("ACTIVITY_UNAVAILABLE", "Current activity is null. Cannot get 3DS challenge.")
|
|
948
953
|
return
|
|
@@ -952,7 +957,7 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
952
957
|
val apiClient = headlessApiClient ?: Yuno.apiClientPayment(
|
|
953
958
|
checkoutSession = checkoutSession,
|
|
954
959
|
countryCode = countryCode,
|
|
955
|
-
context =
|
|
960
|
+
context = reactContext.applicationContext
|
|
956
961
|
)
|
|
957
962
|
|
|
958
963
|
val clientType = if (headlessApiClient != null) "EXISTING" else "NEW"
|
|
@@ -1003,7 +1008,7 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
1003
1008
|
try {
|
|
1004
1009
|
Log.d(TAG, "continueEnrollment called with customerSession: $customerSession")
|
|
1005
1010
|
|
|
1006
|
-
val activity = currentActivity
|
|
1011
|
+
val activity = reactContext.currentActivity
|
|
1007
1012
|
if (activity == null) {
|
|
1008
1013
|
promise.reject("ACTIVITY_UNAVAILABLE", "Current activity is null. Cannot continue enrollment.")
|
|
1009
1014
|
return
|
|
@@ -1021,7 +1026,7 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
1021
1026
|
val apiClient = Yuno.apiClientEnroll(
|
|
1022
1027
|
customerSession = customerSession,
|
|
1023
1028
|
countryCode = countryCode,
|
|
1024
|
-
context =
|
|
1029
|
+
context = reactContext.applicationContext
|
|
1025
1030
|
)
|
|
1026
1031
|
|
|
1027
1032
|
// Continue enrollment
|
|
@@ -1078,8 +1083,8 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
1078
1083
|
ReadableType.Boolean -> readableMap.getBoolean(key)
|
|
1079
1084
|
ReadableType.Number -> readableMap.getDouble(key)
|
|
1080
1085
|
ReadableType.String -> readableMap.getString(key)
|
|
1081
|
-
ReadableType.Map ->
|
|
1082
|
-
ReadableType.Array ->
|
|
1086
|
+
ReadableType.Map -> readableMap.getMap(key)?.let { convertReadableMapToJsonObject(it) } ?: JSONObject()
|
|
1087
|
+
ReadableType.Array -> readableMap.getArray(key)?.let { convertReadableArrayToJsonArray(it) } ?: JSONArray()
|
|
1083
1088
|
ReadableType.Null -> JSONObject.NULL
|
|
1084
1089
|
}
|
|
1085
1090
|
json.put(key, value)
|
|
@@ -1098,8 +1103,8 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
1098
1103
|
ReadableType.Boolean -> readableMap.getBoolean(key)
|
|
1099
1104
|
ReadableType.Number -> readableMap.getDouble(key)
|
|
1100
1105
|
ReadableType.String -> readableMap.getString(key)
|
|
1101
|
-
ReadableType.Map ->
|
|
1102
|
-
ReadableType.Array ->
|
|
1106
|
+
ReadableType.Map -> readableMap.getMap(key)?.let { convertReadableMapToJsonObject(it) } ?: JSONObject()
|
|
1107
|
+
ReadableType.Array -> readableMap.getArray(key)?.let { convertReadableArrayToJsonArray(it) } ?: JSONArray()
|
|
1103
1108
|
ReadableType.Null -> JSONObject.NULL
|
|
1104
1109
|
}
|
|
1105
1110
|
json.put(key, value)
|
|
@@ -1116,8 +1121,8 @@ class YunoSdkModule(private val reactContext: ReactApplicationContext) :
|
|
|
1116
1121
|
ReadableType.Boolean -> readableArray.getBoolean(i)
|
|
1117
1122
|
ReadableType.Number -> readableArray.getDouble(i)
|
|
1118
1123
|
ReadableType.String -> readableArray.getString(i)
|
|
1119
|
-
ReadableType.Map ->
|
|
1120
|
-
ReadableType.Array ->
|
|
1124
|
+
ReadableType.Map -> readableArray.getMap(i)?.let { convertReadableMapToJsonObject(it) } ?: JSONObject()
|
|
1125
|
+
ReadableType.Array -> readableArray.getArray(i)?.let { convertReadableArrayToJsonArray(it) } ?: JSONArray()
|
|
1121
1126
|
ReadableType.Null -> JSONObject.NULL
|
|
1122
1127
|
}
|
|
1123
1128
|
json.put(value)
|
|
@@ -1,18 +1,43 @@
|
|
|
1
1
|
package com.yunosdkreactnative
|
|
2
2
|
|
|
3
|
-
import com.facebook.react.
|
|
3
|
+
import com.facebook.react.TurboReactPackage
|
|
4
4
|
import com.facebook.react.bridge.NativeModule
|
|
5
5
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.module.model.ReactModuleInfo
|
|
7
|
+
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
6
8
|
import com.facebook.react.uimanager.ViewManager
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* Yuno SDK React Native Package.
|
|
10
12
|
*
|
|
11
13
|
* This class registers the Yuno SDK module with React Native.
|
|
14
|
+
* Supports both TurboModules (New Architecture) and Bridge (Old Architecture).
|
|
12
15
|
*/
|
|
13
|
-
class YunoSdkPackage :
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
class YunoSdkPackage : TurboReactPackage() {
|
|
17
|
+
|
|
18
|
+
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
|
|
19
|
+
return if (name == YunoSdkModule.NAME) {
|
|
20
|
+
YunoSdkModule(reactContext)
|
|
21
|
+
} else {
|
|
22
|
+
null
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
|
|
27
|
+
return ReactModuleInfoProvider {
|
|
28
|
+
val moduleInfos: MutableMap<String, ReactModuleInfo> = HashMap()
|
|
29
|
+
val isTurboModule = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
|
|
30
|
+
moduleInfos[YunoSdkModule.NAME] = ReactModuleInfo(
|
|
31
|
+
YunoSdkModule.NAME,
|
|
32
|
+
YunoSdkModule::class.java.name,
|
|
33
|
+
false, // canOverrideExistingModule
|
|
34
|
+
false, // needsEagerInit
|
|
35
|
+
true, // hasConstants (deprecated, but required)
|
|
36
|
+
false, // isCxxModule
|
|
37
|
+
isTurboModule // isTurboModule
|
|
38
|
+
)
|
|
39
|
+
moduleInfos
|
|
40
|
+
}
|
|
16
41
|
}
|
|
17
42
|
|
|
18
43
|
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
|
@@ -21,4 +46,3 @@ class YunoSdkPackage : ReactPackage {
|
|
|
21
46
|
)
|
|
22
47
|
}
|
|
23
48
|
}
|
|
24
|
-
|
package/ios/YunoSdk.h
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
+
#import <YunoSdkSpec/YunoSdkSpec.h>
|
|
3
|
+
#endif
|
|
4
|
+
|
|
5
|
+
#import <React/RCTBridgeModule.h>
|
|
6
|
+
#import <React/RCTEventEmitter.h>
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Yuno SDK React Native Module for iOS.
|
|
10
|
+
*
|
|
11
|
+
* This module provides a bridge between React Native JavaScript code and the native Yuno iOS SDK.
|
|
12
|
+
* Supports both TurboModules (New Architecture) and Bridge (Old Architecture).
|
|
13
|
+
*/
|
|
14
|
+
@interface YunoSdk : RCTEventEmitter <RCTBridgeModule>
|
|
15
|
+
@end
|
package/ios/YunoSdk.m
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
#import <React/RCTBridgeModule.h>
|
|
2
2
|
#import <React/RCTEventEmitter.h>
|
|
3
3
|
|
|
4
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
5
|
+
#import <YunoSdkSpec/YunoSdkSpec.h>
|
|
6
|
+
#endif
|
|
7
|
+
|
|
4
8
|
@interface RCT_EXTERN_MODULE(YunoSdk, RCTEventEmitter)
|
|
5
9
|
|
|
6
10
|
RCT_EXTERN_METHOD(
|
|
@@ -107,5 +111,12 @@ RCT_EXTERN_METHOD(
|
|
|
107
111
|
rejecter:(RCTPromiseRejectBlock)rejecter
|
|
108
112
|
)
|
|
109
113
|
|
|
110
|
-
|
|
114
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
115
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
116
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
117
|
+
{
|
|
118
|
+
return std::make_shared<facebook::react::NativeYunoSdkSpecJSI>(params);
|
|
119
|
+
}
|
|
120
|
+
#endif
|
|
111
121
|
|
|
122
|
+
@end
|
package/ios/YunoSdk.podspec
CHANGED
|
@@ -14,7 +14,8 @@ Pod::Spec.new do |s|
|
|
|
14
14
|
s.platforms = { :ios => "14.0" }
|
|
15
15
|
s.source = { :git => "https://github.com/yuno-payments/yuno-sdk-react-native.git", :tag => "#{s.version}" }
|
|
16
16
|
|
|
17
|
-
s.source_files = "
|
|
17
|
+
s.source_files = "**/*.{h,m,mm,swift}"
|
|
18
|
+
s.public_header_files = "**/*.h"
|
|
18
19
|
|
|
19
20
|
# Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
|
|
20
21
|
# See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
/**
|
|
9
|
+
* TurboModule Specification for Yuno SDK
|
|
10
|
+
*
|
|
11
|
+
* This file defines the native module interface for React Native's New Architecture.
|
|
12
|
+
* It uses Codegen to generate native binding code automatically.
|
|
13
|
+
*
|
|
14
|
+
* Note: Codegen has limitations with complex nested types, so we use Object
|
|
15
|
+
* for complex structures and handle type safety in the TypeScript wrapper.
|
|
16
|
+
*/
|
|
17
|
+
var _default = exports.default = _reactNative.TurboModuleRegistry.getEnforcing('YunoSdk');
|
|
18
|
+
//# sourceMappingURL=NativeYunoSdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeYunoSdk.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAkIeC,gCAAmB,CAACC,YAAY,CAAO,SAAS,CAAC","ignoreList":[]}
|
package/lib/commonjs/YunoSdk.js
CHANGED
|
@@ -6,15 +6,35 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.YunoSdk = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
var _enums = require("./core/enums");
|
|
9
|
+
// Declare global type for TurboModule proxy
|
|
10
|
+
|
|
9
11
|
const LINKING_ERROR = `The package '@yuno/yuno-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
|
|
10
12
|
ios: "- Run 'pod install'\n",
|
|
11
13
|
default: ''
|
|
12
14
|
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
13
15
|
|
|
16
|
+
// TurboModule support - dynamically import when available
|
|
17
|
+
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
18
|
+
|
|
14
19
|
/**
|
|
15
|
-
* Devuelve el módulo nativo YunoSdk o lanza un error de linking
|
|
20
|
+
* Devuelve el módulo nativo YunoSdk o lanza un error de linking.
|
|
21
|
+
* Soporta tanto TurboModules (Nueva Arquitectura) como NativeModules (Bridge).
|
|
16
22
|
*/
|
|
17
23
|
function getYunoNative() {
|
|
24
|
+
// Try TurboModule first (New Architecture)
|
|
25
|
+
if (isTurboModuleEnabled) {
|
|
26
|
+
try {
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
28
|
+
const NativeYunoSdk = require('./NativeYunoSdk').default;
|
|
29
|
+
if (NativeYunoSdk) {
|
|
30
|
+
return NativeYunoSdk;
|
|
31
|
+
}
|
|
32
|
+
} catch {
|
|
33
|
+
// Fall through to NativeModules
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Fallback to NativeModules (Bridge / Old Architecture)
|
|
18
38
|
const native = _reactNative.NativeModules.YunoSdk;
|
|
19
39
|
if (!native) {
|
|
20
40
|
throw new Error(LINKING_ERROR);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_enums","LINKING_ERROR","Platform","select","ios","default","getYunoNative","native","NativeModules","YunoSdk","Error","getYunoEventEmitter","NativeEventEmitter","countryCode","language","isInitialized","markAsInitialized","YunoLanguage","EN","initialize","params","apiKey","yunoConfig","iosConfig","androidConfig","languageString","config","cardFlow","CardFlow","ONE_STEP","saveCardEnabled","keepLoader","isDynamicViewEnabled","cardFormDeployed","enrollmentPayment","checkInitialized","args","getCountryCode","startPaymentLite","code","startPayment","showPaymentStatus","continuePayment","checkoutSession","startPaymentSeamlessLite","statusString","getLanguage","hideLoader","receiveDeeplink","url","OS","console","warn","getLastOneTimeToken","getLastOneTimeTokenInfo","clearLastOneTimeToken","clearLastPaymentStatus","onPaymentStatus","listener","emitter","subscription","addListener","remove","onEnrollmentStatus","onOneTimeToken","onOneTimeTokenInfo","generateToken","tokenCollectedData","country","getThreeDSecureChallenge","continueEnrollment","enrollmentCollectedData","customerSession","exports"],"sourceRoot":"../../src","sources":["YunoSdk.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAeA,IAAAC,MAAA,GAAAD,OAAA;AAEA,MAAME,aAAa,GACjB,sFAAsF,GACtFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,uBAAuB;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GAC9D,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA;AACA;AACA,SAASC,aAAaA,CAAA,EAAQ;EAC5B,MAAMC,MAAM,GAAGC,0BAAa,CAACC,OAAO;EACpC,IAAI,CAACF,MAAM,EAAE;IACX,MAAM,IAAIG,KAAK,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_enums","LINKING_ERROR","Platform","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","getYunoNative","NativeYunoSdk","native","NativeModules","YunoSdk","Error","getYunoEventEmitter","NativeEventEmitter","countryCode","language","isInitialized","markAsInitialized","YunoLanguage","EN","initialize","params","apiKey","yunoConfig","iosConfig","androidConfig","languageString","config","cardFlow","CardFlow","ONE_STEP","saveCardEnabled","keepLoader","isDynamicViewEnabled","cardFormDeployed","enrollmentPayment","checkInitialized","args","getCountryCode","startPaymentLite","code","startPayment","showPaymentStatus","continuePayment","checkoutSession","startPaymentSeamlessLite","statusString","getLanguage","hideLoader","receiveDeeplink","url","OS","console","warn","getLastOneTimeToken","getLastOneTimeTokenInfo","clearLastOneTimeToken","clearLastPaymentStatus","onPaymentStatus","listener","emitter","subscription","addListener","remove","onEnrollmentStatus","onOneTimeToken","onOneTimeTokenInfo","generateToken","tokenCollectedData","country","getThreeDSecureChallenge","continueEnrollment","enrollmentCollectedData","customerSession","exports"],"sourceRoot":"../../src","sources":["YunoSdk.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TurboModuleRegistry } from 'react-native';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* TurboModule Specification for Yuno SDK
|
|
5
|
+
*
|
|
6
|
+
* This file defines the native module interface for React Native's New Architecture.
|
|
7
|
+
* It uses Codegen to generate native binding code automatically.
|
|
8
|
+
*
|
|
9
|
+
* Note: Codegen has limitations with complex nested types, so we use Object
|
|
10
|
+
* for complex structures and handle type safety in the TypeScript wrapper.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
export default TurboModuleRegistry.getEnforcing('YunoSdk');
|
|
14
|
+
//# sourceMappingURL=NativeYunoSdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeYunoSdk.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA0HA,eAAeA,mBAAmB,CAACC,YAAY,CAAO,SAAS,CAAC","ignoreList":[]}
|
package/lib/module/YunoSdk.js
CHANGED
|
@@ -1,14 +1,35 @@
|
|
|
1
1
|
import { NativeModules, NativeEventEmitter, Platform } from 'react-native';
|
|
2
2
|
import { YunoLanguage, CardFlow } from './core/enums';
|
|
3
|
+
|
|
4
|
+
// Declare global type for TurboModule proxy
|
|
5
|
+
|
|
3
6
|
const LINKING_ERROR = `The package '@yuno/yuno-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
4
7
|
ios: "- Run 'pod install'\n",
|
|
5
8
|
default: ''
|
|
6
9
|
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
7
10
|
|
|
11
|
+
// TurboModule support - dynamically import when available
|
|
12
|
+
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
13
|
+
|
|
8
14
|
/**
|
|
9
|
-
* Devuelve el módulo nativo YunoSdk o lanza un error de linking
|
|
15
|
+
* Devuelve el módulo nativo YunoSdk o lanza un error de linking.
|
|
16
|
+
* Soporta tanto TurboModules (Nueva Arquitectura) como NativeModules (Bridge).
|
|
10
17
|
*/
|
|
11
18
|
function getYunoNative() {
|
|
19
|
+
// Try TurboModule first (New Architecture)
|
|
20
|
+
if (isTurboModuleEnabled) {
|
|
21
|
+
try {
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
23
|
+
const NativeYunoSdk = require('./NativeYunoSdk').default;
|
|
24
|
+
if (NativeYunoSdk) {
|
|
25
|
+
return NativeYunoSdk;
|
|
26
|
+
}
|
|
27
|
+
} catch {
|
|
28
|
+
// Fall through to NativeModules
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Fallback to NativeModules (Bridge / Old Architecture)
|
|
12
33
|
const native = NativeModules.YunoSdk;
|
|
13
34
|
if (!native) {
|
|
14
35
|
throw new Error(LINKING_ERROR);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","NativeEventEmitter","Platform","YunoLanguage","CardFlow","LINKING_ERROR","select","ios","default","getYunoNative","native","YunoSdk","Error","getYunoEventEmitter","countryCode","language","isInitialized","markAsInitialized","EN","initialize","params","apiKey","yunoConfig","iosConfig","androidConfig","languageString","config","cardFlow","ONE_STEP","saveCardEnabled","keepLoader","isDynamicViewEnabled","cardFormDeployed","enrollmentPayment","checkInitialized","args","getCountryCode","startPaymentLite","code","startPayment","showPaymentStatus","continuePayment","checkoutSession","startPaymentSeamlessLite","statusString","getLanguage","hideLoader","receiveDeeplink","url","OS","console","warn","getLastOneTimeToken","getLastOneTimeTokenInfo","clearLastOneTimeToken","clearLastPaymentStatus","onPaymentStatus","listener","emitter","subscription","addListener","remove","onEnrollmentStatus","onOneTimeToken","onOneTimeTokenInfo","generateToken","tokenCollectedData","country","getThreeDSecureChallenge","continueEnrollment","enrollmentCollectedData","customerSession"],"sourceRoot":"../../src","sources":["YunoSdk.ts"],"mappings":"AAAA,SAASA,aAAa,EAAEC,kBAAkB,EAAEC,QAAQ,QAAQ,cAAc;AAe1E,SAAqBC,YAAY,EAAEC,QAAQ,QAAQ,cAAc
|
|
1
|
+
{"version":3,"names":["NativeModules","NativeEventEmitter","Platform","YunoLanguage","CardFlow","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","getYunoNative","NativeYunoSdk","require","native","YunoSdk","Error","getYunoEventEmitter","countryCode","language","isInitialized","markAsInitialized","EN","initialize","params","apiKey","yunoConfig","iosConfig","androidConfig","languageString","config","cardFlow","ONE_STEP","saveCardEnabled","keepLoader","isDynamicViewEnabled","cardFormDeployed","enrollmentPayment","checkInitialized","args","getCountryCode","startPaymentLite","code","startPayment","showPaymentStatus","continuePayment","checkoutSession","startPaymentSeamlessLite","statusString","getLanguage","hideLoader","receiveDeeplink","url","OS","console","warn","getLastOneTimeToken","getLastOneTimeTokenInfo","clearLastOneTimeToken","clearLastPaymentStatus","onPaymentStatus","listener","emitter","subscription","addListener","remove","onEnrollmentStatus","onOneTimeToken","onOneTimeTokenInfo","generateToken","tokenCollectedData","country","getThreeDSecureChallenge","continueEnrollment","enrollmentCollectedData","customerSession"],"sourceRoot":"../../src","sources":["YunoSdk.ts"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuno-payments/yuno-sdk-react-native",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.28",
|
|
4
4
|
"description": "Yuno React Native SDK empowers you to create seamless payment experiences in your native Android and iOS apps built with React Native.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -137,6 +137,14 @@
|
|
|
137
137
|
}
|
|
138
138
|
]
|
|
139
139
|
]
|
|
140
|
+
},
|
|
141
|
+
"codegenConfig": {
|
|
142
|
+
"name": "YunoSdkSpec",
|
|
143
|
+
"type": "modules",
|
|
144
|
+
"jsSrcsDir": "src",
|
|
145
|
+
"android": {
|
|
146
|
+
"javaPackageName": "com.yunosdkreactnative"
|
|
147
|
+
}
|
|
140
148
|
}
|
|
141
149
|
}
|
|
142
150
|
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
import { TurboModuleRegistry } from 'react-native';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* TurboModule Specification for Yuno SDK
|
|
6
|
+
*
|
|
7
|
+
* This file defines the native module interface for React Native's New Architecture.
|
|
8
|
+
* It uses Codegen to generate native binding code automatically.
|
|
9
|
+
*
|
|
10
|
+
* Note: Codegen has limitations with complex nested types, so we use Object
|
|
11
|
+
* for complex structures and handle type safety in the TypeScript wrapper.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
export interface Spec extends TurboModule {
|
|
15
|
+
// ==================== INITIALIZATION ====================
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Initialize the Yuno SDK with configuration.
|
|
19
|
+
*/
|
|
20
|
+
initialize(
|
|
21
|
+
apiKey: string,
|
|
22
|
+
countryCode: string,
|
|
23
|
+
config: Object,
|
|
24
|
+
iosConfig: Object,
|
|
25
|
+
androidConfig: Object
|
|
26
|
+
): Promise<boolean>;
|
|
27
|
+
|
|
28
|
+
// ==================== PAYMENT FLOWS ====================
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Start enrollment payment flow.
|
|
32
|
+
*/
|
|
33
|
+
enrollmentPayment(params: Object): Promise<boolean>;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Start payment lite flow.
|
|
37
|
+
*/
|
|
38
|
+
startPaymentLite(params: Object, countryCode: string): Promise<boolean>;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Start full payment flow.
|
|
42
|
+
*/
|
|
43
|
+
startPayment(showPaymentStatus: boolean): Promise<boolean>;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Continue a previously started payment.
|
|
47
|
+
*/
|
|
48
|
+
continuePayment(
|
|
49
|
+
checkoutSession: string,
|
|
50
|
+
countryCode: string,
|
|
51
|
+
showPaymentStatus: boolean
|
|
52
|
+
): Promise<boolean>;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Start seamless payment lite flow.
|
|
56
|
+
*/
|
|
57
|
+
startPaymentSeamlessLite(params: Object, language: string): Promise<string>;
|
|
58
|
+
|
|
59
|
+
// ==================== UTILITIES ====================
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Hide the payment loader.
|
|
63
|
+
*/
|
|
64
|
+
hideLoader(): Promise<boolean>;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Handle deep link for payment resumption (iOS only).
|
|
68
|
+
*/
|
|
69
|
+
receiveDeeplink(url: string): Promise<boolean>;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Get the last One Time Token that was generated.
|
|
73
|
+
*/
|
|
74
|
+
getLastOneTimeToken(): Promise<string | null>;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Get the last OneTimeTokenInfo object stored by the SDK.
|
|
78
|
+
*/
|
|
79
|
+
getLastOneTimeTokenInfo(): Promise<Object | null>;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Clear the last OTT tokens stored by the SDK.
|
|
83
|
+
*/
|
|
84
|
+
clearLastOneTimeToken(): Promise<boolean>;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Clear the last payment status.
|
|
88
|
+
*/
|
|
89
|
+
clearLastPaymentStatus(): Promise<boolean>;
|
|
90
|
+
|
|
91
|
+
// ==================== HEADLESS PAYMENT FLOW ====================
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Generate a one-time token (OTT) from collected payment data.
|
|
95
|
+
*/
|
|
96
|
+
generateToken(
|
|
97
|
+
tokenCollectedData: Object,
|
|
98
|
+
checkoutSession: string,
|
|
99
|
+
countryCode: string
|
|
100
|
+
): Promise<Object>;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Get the 3D Secure challenge URL for a checkout session.
|
|
104
|
+
*/
|
|
105
|
+
getThreeDSecureChallenge(
|
|
106
|
+
checkoutSession: string,
|
|
107
|
+
countryCode: string
|
|
108
|
+
): Promise<Object>;
|
|
109
|
+
|
|
110
|
+
// ==================== HEADLESS ENROLLMENT FLOW ====================
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Continue enrollment to create a vaulted token.
|
|
114
|
+
*/
|
|
115
|
+
continueEnrollment(
|
|
116
|
+
enrollmentCollectedData: Object,
|
|
117
|
+
customerSession: string,
|
|
118
|
+
countryCode: string
|
|
119
|
+
): Promise<Object>;
|
|
120
|
+
|
|
121
|
+
// ==================== EVENT EMITTER ====================
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Add event listener (required for EventEmitter).
|
|
125
|
+
*/
|
|
126
|
+
addListener(eventName: string): void;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Remove event listeners (required for EventEmitter).
|
|
130
|
+
*/
|
|
131
|
+
removeListeners(count: number): void;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export default TurboModuleRegistry.getEnforcing<Spec>('YunoSdk');
|
package/src/YunoSdk.ts
CHANGED
|
@@ -15,16 +15,40 @@ import type {
|
|
|
15
15
|
} from './core/types';
|
|
16
16
|
import { YunoStatus, YunoLanguage, CardFlow } from './core/enums';
|
|
17
17
|
|
|
18
|
+
// Declare global type for TurboModule proxy
|
|
19
|
+
declare global {
|
|
20
|
+
// eslint-disable-next-line no-var
|
|
21
|
+
var __turboModuleProxy: unknown;
|
|
22
|
+
}
|
|
23
|
+
|
|
18
24
|
const LINKING_ERROR =
|
|
19
25
|
`The package '@yuno/yuno-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` +
|
|
20
26
|
Platform.select({ ios: "- Run 'pod install'\n", default: '' }) +
|
|
21
27
|
'- You rebuilt the app after installing the package\n' +
|
|
22
28
|
'- You are not using Expo Go\n';
|
|
23
29
|
|
|
30
|
+
// TurboModule support - dynamically import when available
|
|
31
|
+
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
32
|
+
|
|
24
33
|
/**
|
|
25
|
-
* Devuelve el módulo nativo YunoSdk o lanza un error de linking
|
|
34
|
+
* Devuelve el módulo nativo YunoSdk o lanza un error de linking.
|
|
35
|
+
* Soporta tanto TurboModules (Nueva Arquitectura) como NativeModules (Bridge).
|
|
26
36
|
*/
|
|
27
37
|
function getYunoNative(): any {
|
|
38
|
+
// Try TurboModule first (New Architecture)
|
|
39
|
+
if (isTurboModuleEnabled) {
|
|
40
|
+
try {
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
42
|
+
const NativeYunoSdk = require('./NativeYunoSdk').default;
|
|
43
|
+
if (NativeYunoSdk) {
|
|
44
|
+
return NativeYunoSdk;
|
|
45
|
+
}
|
|
46
|
+
} catch {
|
|
47
|
+
// Fall through to NativeModules
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Fallback to NativeModules (Bridge / Old Architecture)
|
|
28
52
|
const native = NativeModules.YunoSdk;
|
|
29
53
|
if (!native) {
|
|
30
54
|
throw new Error(LINKING_ERROR);
|