@yuno-payments/yuno-sdk-react-native 1.0.29 → 1.0.30
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 +31 -5
- package/android/src/main/java/com/yunosdkreactnative/YunoSdkPackage.kt +58 -15
- package/lib/commonjs/NativeYunoSdk.js +22 -0
- package/lib/commonjs/NativeYunoSdk.js.map +1 -0
- package/lib/commonjs/YunoSdk.js +33 -8
- package/lib/commonjs/YunoSdk.js.map +1 -1
- package/lib/module/NativeYunoSdk.js +19 -0
- package/lib/module/NativeYunoSdk.js.map +1 -0
- package/lib/module/YunoSdk.js +35 -9
- package/lib/module/YunoSdk.js.map +1 -1
- package/package.json +9 -1
- package/src/NativeYunoSdk.ts +139 -0
- package/src/YunoSdk.ts +46 -10
package/android/build.gradle
CHANGED
|
@@ -11,14 +11,35 @@ buildscript {
|
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Determines if New Architecture is enabled.
|
|
16
|
+
* In RN 0.82+, New Architecture is always enabled (bridgeless mode is mandatory).
|
|
17
|
+
* For backwards compatibility with older RN versions, we still check the property.
|
|
18
|
+
*/
|
|
14
19
|
def isNewArchitectureEnabled() {
|
|
20
|
+
// For RN 0.82+, check if the react plugin is available
|
|
21
|
+
if (project.hasProperty("react") || rootProject.hasProperty("com.facebook.react")) {
|
|
22
|
+
return true
|
|
23
|
+
}
|
|
24
|
+
// Fallback for older RN versions
|
|
15
25
|
return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
|
|
16
26
|
}
|
|
17
27
|
|
|
18
28
|
apply plugin: 'com.android.library'
|
|
19
29
|
apply plugin: 'kotlin-android'
|
|
20
30
|
|
|
21
|
-
if (
|
|
31
|
+
// Apply React Native plugin if available (for New Architecture / Codegen)
|
|
32
|
+
// This handles RN 0.82+ where the plugin provides codegen support
|
|
33
|
+
def reactNativePluginAvailable = false
|
|
34
|
+
try {
|
|
35
|
+
// Check if the react plugin is available
|
|
36
|
+
Class.forName("com.facebook.react.ReactExtension")
|
|
37
|
+
reactNativePluginAvailable = true
|
|
38
|
+
} catch (ClassNotFoundException e) {
|
|
39
|
+
// Plugin not available, likely older RN version
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (reactNativePluginAvailable) {
|
|
22
43
|
apply plugin: "com.facebook.react"
|
|
23
44
|
}
|
|
24
45
|
|
|
@@ -94,6 +115,15 @@ android {
|
|
|
94
115
|
}
|
|
95
116
|
}
|
|
96
117
|
|
|
118
|
+
// Configure codegen for New Architecture if the React plugin is available
|
|
119
|
+
if (reactNativePluginAvailable) {
|
|
120
|
+
react {
|
|
121
|
+
jsRootDir = file("../src")
|
|
122
|
+
libraryName = "YunoSdkSpec"
|
|
123
|
+
codegenJavaPackageName = "com.yunosdkreactnative"
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
97
127
|
repositories {
|
|
98
128
|
mavenCentral()
|
|
99
129
|
google()
|
|
@@ -125,7 +155,3 @@ dependencies {
|
|
|
125
155
|
// Gson for JSON serialization
|
|
126
156
|
implementation 'com.google.code.gson:gson:2.10.1'
|
|
127
157
|
}
|
|
128
|
-
|
|
129
|
-
// TurboModule support is handled directly in Kotlin via TurboReactPackage
|
|
130
|
-
// No codegen configuration needed for pure Kotlin modules
|
|
131
|
-
|
|
@@ -3,43 +3,86 @@ package com.yunosdkreactnative
|
|
|
3
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.annotations.ReactModule
|
|
6
7
|
import com.facebook.react.module.model.ReactModuleInfo
|
|
7
8
|
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
9
|
+
import com.facebook.react.turbomodule.core.interfaces.TurboModule
|
|
8
10
|
import com.facebook.react.uimanager.ViewManager
|
|
9
11
|
|
|
10
12
|
/**
|
|
11
13
|
* Yuno SDK React Native Package.
|
|
12
14
|
*
|
|
13
15
|
* This class registers the Yuno SDK module with React Native.
|
|
14
|
-
* Supports both TurboModules (New Architecture) and Bridge (Old Architecture)
|
|
16
|
+
* Supports both TurboModules (New Architecture) and Bridge (Old Architecture)
|
|
17
|
+
* through TurboModule interop.
|
|
18
|
+
*
|
|
19
|
+
* For React Native 0.82+, TurboModules are always enabled (bridgeless mode is mandatory).
|
|
20
|
+
* This package uses TurboReactPackage to ensure proper registration in both architectures.
|
|
15
21
|
*/
|
|
16
22
|
class YunoSdkPackage : TurboReactPackage() {
|
|
17
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Called by React Native to get a native module by name.
|
|
26
|
+
* This is used by both TurboModules and the legacy bridge.
|
|
27
|
+
*/
|
|
18
28
|
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
|
|
19
|
-
return
|
|
20
|
-
YunoSdkModule(reactContext)
|
|
21
|
-
|
|
22
|
-
null
|
|
29
|
+
return when (name) {
|
|
30
|
+
YunoSdkModule.NAME -> YunoSdkModule(reactContext)
|
|
31
|
+
else -> null
|
|
23
32
|
}
|
|
24
33
|
}
|
|
25
34
|
|
|
35
|
+
/**
|
|
36
|
+
* Provides module info for TurboModule registration.
|
|
37
|
+
* This tells React Native how to find and instantiate the module.
|
|
38
|
+
*/
|
|
26
39
|
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
|
|
27
40
|
return ReactModuleInfoProvider {
|
|
28
41
|
val moduleInfos: MutableMap<String, ReactModuleInfo> = HashMap()
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
42
|
+
|
|
43
|
+
// Get info from @ReactModule annotation if available
|
|
44
|
+
val moduleClass = YunoSdkModule::class.java
|
|
45
|
+
val reactModule = moduleClass.getAnnotation(ReactModule::class.java)
|
|
46
|
+
|
|
47
|
+
// Check if the module implements TurboModule interface
|
|
48
|
+
val isTurboModule = TurboModule::class.java.isAssignableFrom(moduleClass)
|
|
49
|
+
|
|
50
|
+
if (reactModule != null) {
|
|
51
|
+
moduleInfos[reactModule.name] = ReactModuleInfo(
|
|
52
|
+
reactModule.name,
|
|
53
|
+
moduleClass.name,
|
|
54
|
+
reactModule.canOverrideExistingModule,
|
|
55
|
+
reactModule.needsEagerInit,
|
|
56
|
+
reactModule.isCxxModule,
|
|
57
|
+
isTurboModule
|
|
58
|
+
)
|
|
59
|
+
} else {
|
|
60
|
+
// Fallback if annotation is missing
|
|
61
|
+
moduleInfos[YunoSdkModule.NAME] = ReactModuleInfo(
|
|
62
|
+
YunoSdkModule.NAME,
|
|
63
|
+
moduleClass.name,
|
|
64
|
+
false, // canOverrideExistingModule
|
|
65
|
+
false, // needsEagerInit
|
|
66
|
+
false, // isCxxModule
|
|
67
|
+
isTurboModule
|
|
68
|
+
)
|
|
69
|
+
}
|
|
70
|
+
|
|
39
71
|
moduleInfos
|
|
40
72
|
}
|
|
41
73
|
}
|
|
42
74
|
|
|
75
|
+
/**
|
|
76
|
+
* Creates native modules for the legacy bridge.
|
|
77
|
+
* This is called in Old Architecture mode or for TurboModule interop.
|
|
78
|
+
*/
|
|
79
|
+
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
|
|
80
|
+
return listOf(YunoSdkModule(reactContext))
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Creates view managers for the package.
|
|
85
|
+
*/
|
|
43
86
|
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
|
44
87
|
return listOf(
|
|
45
88
|
YunoPaymentMethodsViewManager(reactContext)
|
|
@@ -0,0 +1,22 @@
|
|
|
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 YunoSdk
|
|
10
|
+
*
|
|
11
|
+
* This file defines the interface for the native module using Codegen.
|
|
12
|
+
* It supports React Native 0.82+ New Architecture (TurboModules).
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Spec for the YunoSdk TurboModule
|
|
16
|
+
*
|
|
17
|
+
* Note: Complex object types are represented as `Object` because
|
|
18
|
+
* Codegen doesn't support inline type definitions. The actual
|
|
19
|
+
* type checking happens at the TypeScript level in YunoSdk.ts.
|
|
20
|
+
*/
|
|
21
|
+
var _default = exports.default = _reactNative.TurboModuleRegistry.getEnforcing('YunoSdk');
|
|
22
|
+
//# sourceMappingURL=NativeYunoSdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeYunoSdk.ts"],"mappings":";;;;;;AAOA,IAAAA,YAAA,GAAAC,OAAA;AAPA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AANA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAiIeC,gCAAmB,CAACC,YAAY,CAAO,SAAS,CAAC","ignoreList":[]}
|
package/lib/commonjs/YunoSdk.js
CHANGED
|
@@ -6,21 +6,46 @@ 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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Generates the linking error message.
|
|
11
|
+
* This is a function to avoid accessing Platform at module load time,
|
|
12
|
+
* which can cause issues in bridgeless mode.
|
|
13
|
+
*/
|
|
14
|
+
function getLinkingError() {
|
|
15
|
+
const platformHint = _reactNative.Platform.OS === 'ios' ? "- Run 'pod install'\n" : '';
|
|
16
|
+
return `The package '@yuno-payments/yuno-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` + platformHint + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Cache for the native module
|
|
20
|
+
let _yunoNative = null;
|
|
13
21
|
|
|
14
22
|
/**
|
|
15
23
|
* Devuelve el módulo nativo YunoSdk o lanza un error de linking.
|
|
16
24
|
* Compatible con TurboModules (Nueva Arquitectura) y Bridge (Arquitectura Antigua).
|
|
25
|
+
*
|
|
26
|
+
* In React Native 0.82+ bridgeless mode, we try TurboModuleRegistry first,
|
|
27
|
+
* then fall back to NativeModules for backwards compatibility.
|
|
17
28
|
*/
|
|
18
29
|
function getYunoNative() {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
30
|
+
if (_yunoNative) {
|
|
31
|
+
return _yunoNative;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Try TurboModuleRegistry first (New Architecture)
|
|
35
|
+
// @ts-ignore - TurboModuleRegistry.get may not have the correct types
|
|
36
|
+
const turboModule = _reactNative.TurboModuleRegistry.get('YunoSdk');
|
|
37
|
+
if (turboModule) {
|
|
38
|
+
_yunoNative = turboModule;
|
|
39
|
+
return _yunoNative;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Fall back to NativeModules (Old Architecture / Interop)
|
|
43
|
+
const legacyModule = _reactNative.NativeModules.YunoSdk;
|
|
44
|
+
if (legacyModule) {
|
|
45
|
+
_yunoNative = legacyModule;
|
|
46
|
+
return _yunoNative;
|
|
22
47
|
}
|
|
23
|
-
|
|
48
|
+
throw new Error(getLinkingError());
|
|
24
49
|
}
|
|
25
50
|
|
|
26
51
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_enums","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_enums","getLinkingError","platformHint","Platform","OS","_yunoNative","getYunoNative","turboModule","TurboModuleRegistry","get","legacyModule","NativeModules","YunoSdk","Error","getYunoEventEmitter","native","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","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,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TurboModule specification for YunoSdk
|
|
3
|
+
*
|
|
4
|
+
* This file defines the interface for the native module using Codegen.
|
|
5
|
+
* It supports React Native 0.82+ New Architecture (TurboModules).
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { TurboModuleRegistry } from 'react-native';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Spec for the YunoSdk TurboModule
|
|
12
|
+
*
|
|
13
|
+
* Note: Complex object types are represented as `Object` because
|
|
14
|
+
* Codegen doesn't support inline type definitions. The actual
|
|
15
|
+
* type checking happens at the TypeScript level in YunoSdk.ts.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
export default TurboModuleRegistry.getEnforcing('YunoSdk');
|
|
19
|
+
//# sourceMappingURL=NativeYunoSdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeYunoSdk.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,mBAAmB,QAAQ,cAAc;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;;AA2HA,eAAeA,mBAAmB,CAACC,YAAY,CAAO,SAAS,CAAC","ignoreList":[]}
|
package/lib/module/YunoSdk.js
CHANGED
|
@@ -1,20 +1,46 @@
|
|
|
1
|
-
import { NativeModules, NativeEventEmitter, Platform } from 'react-native';
|
|
1
|
+
import { NativeModules, NativeEventEmitter, Platform, TurboModuleRegistry } from 'react-native';
|
|
2
2
|
import { YunoLanguage, CardFlow } from './core/enums';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Generates the linking error message.
|
|
6
|
+
* This is a function to avoid accessing Platform at module load time,
|
|
7
|
+
* which can cause issues in bridgeless mode.
|
|
8
|
+
*/
|
|
9
|
+
function getLinkingError() {
|
|
10
|
+
const platformHint = Platform.OS === 'ios' ? "- Run 'pod install'\n" : '';
|
|
11
|
+
return `The package '@yuno-payments/yuno-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` + platformHint + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// Cache for the native module
|
|
15
|
+
let _yunoNative = null;
|
|
7
16
|
|
|
8
17
|
/**
|
|
9
18
|
* Devuelve el módulo nativo YunoSdk o lanza un error de linking.
|
|
10
19
|
* Compatible con TurboModules (Nueva Arquitectura) y Bridge (Arquitectura Antigua).
|
|
20
|
+
*
|
|
21
|
+
* In React Native 0.82+ bridgeless mode, we try TurboModuleRegistry first,
|
|
22
|
+
* then fall back to NativeModules for backwards compatibility.
|
|
11
23
|
*/
|
|
12
24
|
function getYunoNative() {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
25
|
+
if (_yunoNative) {
|
|
26
|
+
return _yunoNative;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Try TurboModuleRegistry first (New Architecture)
|
|
30
|
+
// @ts-ignore - TurboModuleRegistry.get may not have the correct types
|
|
31
|
+
const turboModule = TurboModuleRegistry.get('YunoSdk');
|
|
32
|
+
if (turboModule) {
|
|
33
|
+
_yunoNative = turboModule;
|
|
34
|
+
return _yunoNative;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Fall back to NativeModules (Old Architecture / Interop)
|
|
38
|
+
const legacyModule = NativeModules.YunoSdk;
|
|
39
|
+
if (legacyModule) {
|
|
40
|
+
_yunoNative = legacyModule;
|
|
41
|
+
return _yunoNative;
|
|
16
42
|
}
|
|
17
|
-
|
|
43
|
+
throw new Error(getLinkingError());
|
|
18
44
|
}
|
|
19
45
|
|
|
20
46
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","NativeEventEmitter","Platform","YunoLanguage","CardFlow","
|
|
1
|
+
{"version":3,"names":["NativeModules","NativeEventEmitter","Platform","TurboModuleRegistry","YunoLanguage","CardFlow","getLinkingError","platformHint","OS","_yunoNative","getYunoNative","turboModule","get","legacyModule","YunoSdk","Error","getYunoEventEmitter","native","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","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.30",
|
|
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,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TurboModule specification for YunoSdk
|
|
3
|
+
*
|
|
4
|
+
* This file defines the interface for the native module using Codegen.
|
|
5
|
+
* It supports React Native 0.82+ New Architecture (TurboModules).
|
|
6
|
+
*/
|
|
7
|
+
import type { TurboModule } from 'react-native';
|
|
8
|
+
import { TurboModuleRegistry } from 'react-native';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Spec for the YunoSdk TurboModule
|
|
12
|
+
*
|
|
13
|
+
* Note: Complex object types are represented as `Object` because
|
|
14
|
+
* Codegen doesn't support inline type definitions. The actual
|
|
15
|
+
* type checking happens at the TypeScript level in YunoSdk.ts.
|
|
16
|
+
*/
|
|
17
|
+
export interface Spec extends TurboModule {
|
|
18
|
+
// ==================== INITIALIZATION ====================
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Initialize the Yuno SDK
|
|
22
|
+
*/
|
|
23
|
+
initialize(
|
|
24
|
+
apiKey: string,
|
|
25
|
+
countryCode: string,
|
|
26
|
+
config: Object,
|
|
27
|
+
iosConfig: Object,
|
|
28
|
+
androidConfig: Object
|
|
29
|
+
): Promise<void>;
|
|
30
|
+
|
|
31
|
+
// ==================== PAYMENT FLOWS ====================
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Start enrollment payment flow
|
|
35
|
+
*/
|
|
36
|
+
enrollmentPayment(params: Object): Promise<void>;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Start payment lite flow
|
|
40
|
+
*/
|
|
41
|
+
startPaymentLite(params: Object, countryCode: string): Promise<void>;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Start full payment flow
|
|
45
|
+
*/
|
|
46
|
+
startPayment(showPaymentStatus: boolean): Promise<void>;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Continue a previously started payment
|
|
50
|
+
*/
|
|
51
|
+
continuePayment(
|
|
52
|
+
checkoutSession: string,
|
|
53
|
+
countryCode: string,
|
|
54
|
+
showPaymentStatus: boolean
|
|
55
|
+
): Promise<void>;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Start seamless payment lite flow
|
|
59
|
+
*/
|
|
60
|
+
startPaymentSeamlessLite(params: Object, language: string): Promise<string>;
|
|
61
|
+
|
|
62
|
+
// ==================== UI CONTROL ====================
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Hide the loading indicator
|
|
66
|
+
*/
|
|
67
|
+
hideLoader(): Promise<void>;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Handle deep link (iOS only)
|
|
71
|
+
*/
|
|
72
|
+
receiveDeeplink(url: string): Promise<boolean>;
|
|
73
|
+
|
|
74
|
+
// ==================== TOKEN MANAGEMENT ====================
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Get the last one-time token
|
|
78
|
+
*/
|
|
79
|
+
getLastOneTimeToken(): Promise<string | null>;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Get the last one-time token info
|
|
83
|
+
*/
|
|
84
|
+
getLastOneTimeTokenInfo(): Promise<Object | null>;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Clear the last one-time token
|
|
88
|
+
*/
|
|
89
|
+
clearLastOneTimeToken(): Promise<void>;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Clear the last payment status
|
|
93
|
+
*/
|
|
94
|
+
clearLastPaymentStatus(): Promise<void>;
|
|
95
|
+
|
|
96
|
+
// ==================== HEADLESS PAYMENT FLOW ====================
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Generate a one-time token from collected payment data
|
|
100
|
+
*/
|
|
101
|
+
generateToken(
|
|
102
|
+
tokenCollectedData: Object,
|
|
103
|
+
checkoutSession: string,
|
|
104
|
+
countryCode: string
|
|
105
|
+
): Promise<Object>;
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Get the 3D Secure challenge URL
|
|
109
|
+
*/
|
|
110
|
+
getThreeDSecureChallenge(
|
|
111
|
+
checkoutSession: string,
|
|
112
|
+
countryCode: string
|
|
113
|
+
): Promise<Object>;
|
|
114
|
+
|
|
115
|
+
// ==================== HEADLESS ENROLLMENT FLOW ====================
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Continue enrollment to create a vaulted token
|
|
119
|
+
*/
|
|
120
|
+
continueEnrollment(
|
|
121
|
+
enrollmentCollectedData: Object,
|
|
122
|
+
customerSession: string,
|
|
123
|
+
countryCode: string
|
|
124
|
+
): Promise<Object>;
|
|
125
|
+
|
|
126
|
+
// ==================== EVENT EMITTER SUPPORT ====================
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Required for NativeEventEmitter
|
|
130
|
+
*/
|
|
131
|
+
addListener(eventName: string): void;
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Required for NativeEventEmitter
|
|
135
|
+
*/
|
|
136
|
+
removeListeners(count: number): void;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export default TurboModuleRegistry.getEnforcing<Spec>('YunoSdk');
|
package/src/YunoSdk.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
NativeModules,
|
|
3
|
+
NativeEventEmitter,
|
|
4
|
+
Platform,
|
|
5
|
+
TurboModuleRegistry,
|
|
6
|
+
} from 'react-native';
|
|
2
7
|
import type {
|
|
3
8
|
YunoConfig,
|
|
4
9
|
IosConfig,
|
|
@@ -15,22 +20,53 @@ import type {
|
|
|
15
20
|
} from './core/types';
|
|
16
21
|
import { YunoStatus, YunoLanguage, CardFlow } from './core/enums';
|
|
17
22
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Generates the linking error message.
|
|
25
|
+
* This is a function to avoid accessing Platform at module load time,
|
|
26
|
+
* which can cause issues in bridgeless mode.
|
|
27
|
+
*/
|
|
28
|
+
function getLinkingError(): string {
|
|
29
|
+
const platformHint =
|
|
30
|
+
Platform.OS === 'ios' ? "- Run 'pod install'\n" : '';
|
|
31
|
+
return (
|
|
32
|
+
`The package '@yuno-payments/yuno-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` +
|
|
33
|
+
platformHint +
|
|
34
|
+
'- You rebuilt the app after installing the package\n' +
|
|
35
|
+
'- You are not using Expo Go\n'
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Cache for the native module
|
|
40
|
+
let _yunoNative: any = null;
|
|
23
41
|
|
|
24
42
|
/**
|
|
25
43
|
* Devuelve el módulo nativo YunoSdk o lanza un error de linking.
|
|
26
44
|
* Compatible con TurboModules (Nueva Arquitectura) y Bridge (Arquitectura Antigua).
|
|
45
|
+
*
|
|
46
|
+
* In React Native 0.82+ bridgeless mode, we try TurboModuleRegistry first,
|
|
47
|
+
* then fall back to NativeModules for backwards compatibility.
|
|
27
48
|
*/
|
|
28
49
|
function getYunoNative(): any {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
throw new Error(LINKING_ERROR);
|
|
50
|
+
if (_yunoNative) {
|
|
51
|
+
return _yunoNative;
|
|
32
52
|
}
|
|
33
|
-
|
|
53
|
+
|
|
54
|
+
// Try TurboModuleRegistry first (New Architecture)
|
|
55
|
+
// @ts-ignore - TurboModuleRegistry.get may not have the correct types
|
|
56
|
+
const turboModule = TurboModuleRegistry.get('YunoSdk');
|
|
57
|
+
if (turboModule) {
|
|
58
|
+
_yunoNative = turboModule;
|
|
59
|
+
return _yunoNative;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Fall back to NativeModules (Old Architecture / Interop)
|
|
63
|
+
const legacyModule = NativeModules.YunoSdk;
|
|
64
|
+
if (legacyModule) {
|
|
65
|
+
_yunoNative = legacyModule;
|
|
66
|
+
return _yunoNative;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
throw new Error(getLinkingError());
|
|
34
70
|
}
|
|
35
71
|
|
|
36
72
|
/**
|