@yuno-payments/yuno-sdk-react-native 1.0.28 → 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 -10
- package/android/src/main/java/com/yunosdkreactnative/YunoSdkPackage.kt +58 -15
- package/ios/YunoSdk.h +1 -5
- package/ios/YunoSdk.m +0 -12
- package/lib/commonjs/NativeYunoSdk.js +11 -7
- package/lib/commonjs/NativeYunoSdk.js.map +1 -1
- package/lib/commonjs/YunoSdk.js +31 -25
- package/lib/commonjs/YunoSdk.js.map +1 -1
- package/lib/module/NativeYunoSdk.js +12 -7
- package/lib/module/NativeYunoSdk.js.map +1 -1
- package/lib/module/YunoSdk.js +32 -26
- package/lib/module/YunoSdk.js.map +1 -1
- package/package.json +1 -1
- package/src/NativeYunoSdk.ts +47 -42
- package/src/YunoSdk.ts +43 -30
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,12 +155,3 @@ dependencies {
|
|
|
125
155
|
// Gson for JSON serialization
|
|
126
156
|
implementation 'com.google.code.gson:gson:2.10.1'
|
|
127
157
|
}
|
|
128
|
-
|
|
129
|
-
if (isNewArchitectureEnabled()) {
|
|
130
|
-
react {
|
|
131
|
-
jsRootDir = file("../src/")
|
|
132
|
-
libraryName = "YunoSdk"
|
|
133
|
-
codegenJavaPackageName = "com.yunosdkreactnative"
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
@@ -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)
|
package/ios/YunoSdk.h
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
|
-
#import <YunoSdkSpec/YunoSdkSpec.h>
|
|
3
|
-
#endif
|
|
4
|
-
|
|
5
1
|
#import <React/RCTBridgeModule.h>
|
|
6
2
|
#import <React/RCTEventEmitter.h>
|
|
7
3
|
|
|
@@ -9,7 +5,7 @@
|
|
|
9
5
|
* Yuno SDK React Native Module for iOS.
|
|
10
6
|
*
|
|
11
7
|
* This module provides a bridge between React Native JavaScript code and the native Yuno iOS SDK.
|
|
12
|
-
*
|
|
8
|
+
* Compatible with both New Architecture and Bridge (Old Architecture) through the interop layer.
|
|
13
9
|
*/
|
|
14
10
|
@interface YunoSdk : RCTEventEmitter <RCTBridgeModule>
|
|
15
11
|
@end
|
package/ios/YunoSdk.m
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
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
|
-
|
|
8
4
|
@interface RCT_EXTERN_MODULE(YunoSdk, RCTEventEmitter)
|
|
9
5
|
|
|
10
6
|
RCT_EXTERN_METHOD(
|
|
@@ -111,12 +107,4 @@ RCT_EXTERN_METHOD(
|
|
|
111
107
|
rejecter:(RCTPromiseRejectBlock)rejecter
|
|
112
108
|
)
|
|
113
109
|
|
|
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
|
|
121
|
-
|
|
122
110
|
@end
|
|
@@ -6,13 +6,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
/**
|
|
9
|
-
* TurboModule
|
|
10
|
-
*
|
|
11
|
-
* This file defines the
|
|
12
|
-
* It
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
* for
|
|
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.
|
|
16
20
|
*/
|
|
17
21
|
var _default = exports.default = _reactNative.TurboModuleRegistry.getEnforcing('YunoSdk');
|
|
18
22
|
//# sourceMappingURL=NativeYunoSdk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeYunoSdk.ts"],"mappings":";;;;;;
|
|
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,40 +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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
+
}
|
|
15
18
|
|
|
16
|
-
//
|
|
17
|
-
|
|
19
|
+
// Cache for the native module
|
|
20
|
+
let _yunoNative = null;
|
|
18
21
|
|
|
19
22
|
/**
|
|
20
23
|
* Devuelve el módulo nativo YunoSdk o lanza un error de linking.
|
|
21
|
-
*
|
|
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.
|
|
22
28
|
*/
|
|
23
29
|
function getYunoNative() {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
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;
|
|
35
40
|
}
|
|
36
41
|
|
|
37
|
-
//
|
|
38
|
-
const
|
|
39
|
-
if (
|
|
40
|
-
|
|
42
|
+
// Fall back to NativeModules (Old Architecture / Interop)
|
|
43
|
+
const legacyModule = _reactNative.NativeModules.YunoSdk;
|
|
44
|
+
if (legacyModule) {
|
|
45
|
+
_yunoNative = legacyModule;
|
|
46
|
+
return _yunoNative;
|
|
41
47
|
}
|
|
42
|
-
|
|
48
|
+
throw new Error(getLinkingError());
|
|
43
49
|
}
|
|
44
50
|
|
|
45
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":[]}
|
|
@@ -1,13 +1,18 @@
|
|
|
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
|
+
|
|
1
8
|
import { TurboModuleRegistry } from 'react-native';
|
|
2
9
|
|
|
3
10
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
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
|
+
* 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.
|
|
11
16
|
*/
|
|
12
17
|
|
|
13
18
|
export default TurboModuleRegistry.getEnforcing('YunoSdk');
|
|
@@ -1 +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
|
|
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,40 +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
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
+
}
|
|
10
13
|
|
|
11
|
-
//
|
|
12
|
-
|
|
14
|
+
// Cache for the native module
|
|
15
|
+
let _yunoNative = null;
|
|
13
16
|
|
|
14
17
|
/**
|
|
15
18
|
* Devuelve el módulo nativo YunoSdk o lanza un error de linking.
|
|
16
|
-
*
|
|
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.
|
|
17
23
|
*/
|
|
18
24
|
function getYunoNative() {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
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;
|
|
30
35
|
}
|
|
31
36
|
|
|
32
|
-
//
|
|
33
|
-
const
|
|
34
|
-
if (
|
|
35
|
-
|
|
37
|
+
// Fall back to NativeModules (Old Architecture / Interop)
|
|
38
|
+
const legacyModule = NativeModules.YunoSdk;
|
|
39
|
+
if (legacyModule) {
|
|
40
|
+
_yunoNative = legacyModule;
|
|
41
|
+
return _yunoNative;
|
|
36
42
|
}
|
|
37
|
-
|
|
43
|
+
throw new Error(getLinkingError());
|
|
38
44
|
}
|
|
39
45
|
|
|
40
46
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","NativeEventEmitter","Platform","
|
|
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",
|
package/src/NativeYunoSdk.ts
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
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
|
+
*/
|
|
1
7
|
import type { TurboModule } from 'react-native';
|
|
2
8
|
import { TurboModuleRegistry } from 'react-native';
|
|
3
9
|
|
|
4
10
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
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.
|
|
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.
|
|
12
16
|
*/
|
|
13
|
-
|
|
14
17
|
export interface Spec extends TurboModule {
|
|
15
18
|
// ==================== INITIALIZATION ====================
|
|
16
|
-
|
|
19
|
+
|
|
17
20
|
/**
|
|
18
|
-
* Initialize the Yuno SDK
|
|
21
|
+
* Initialize the Yuno SDK
|
|
19
22
|
*/
|
|
20
23
|
initialize(
|
|
21
24
|
apiKey: string,
|
|
@@ -23,75 +26,77 @@ export interface Spec extends TurboModule {
|
|
|
23
26
|
config: Object,
|
|
24
27
|
iosConfig: Object,
|
|
25
28
|
androidConfig: Object
|
|
26
|
-
): Promise<
|
|
29
|
+
): Promise<void>;
|
|
27
30
|
|
|
28
31
|
// ==================== PAYMENT FLOWS ====================
|
|
29
|
-
|
|
32
|
+
|
|
30
33
|
/**
|
|
31
|
-
* Start enrollment payment flow
|
|
34
|
+
* Start enrollment payment flow
|
|
32
35
|
*/
|
|
33
|
-
enrollmentPayment(params: Object): Promise<
|
|
36
|
+
enrollmentPayment(params: Object): Promise<void>;
|
|
34
37
|
|
|
35
38
|
/**
|
|
36
|
-
* Start payment lite flow
|
|
39
|
+
* Start payment lite flow
|
|
37
40
|
*/
|
|
38
|
-
startPaymentLite(params: Object, countryCode: string): Promise<
|
|
41
|
+
startPaymentLite(params: Object, countryCode: string): Promise<void>;
|
|
39
42
|
|
|
40
43
|
/**
|
|
41
|
-
* Start full payment flow
|
|
44
|
+
* Start full payment flow
|
|
42
45
|
*/
|
|
43
|
-
startPayment(showPaymentStatus: boolean): Promise<
|
|
46
|
+
startPayment(showPaymentStatus: boolean): Promise<void>;
|
|
44
47
|
|
|
45
48
|
/**
|
|
46
|
-
* Continue a previously started payment
|
|
49
|
+
* Continue a previously started payment
|
|
47
50
|
*/
|
|
48
51
|
continuePayment(
|
|
49
52
|
checkoutSession: string,
|
|
50
53
|
countryCode: string,
|
|
51
54
|
showPaymentStatus: boolean
|
|
52
|
-
): Promise<
|
|
55
|
+
): Promise<void>;
|
|
53
56
|
|
|
54
57
|
/**
|
|
55
|
-
* Start seamless payment lite flow
|
|
58
|
+
* Start seamless payment lite flow
|
|
56
59
|
*/
|
|
57
60
|
startPaymentSeamlessLite(params: Object, language: string): Promise<string>;
|
|
58
61
|
|
|
59
|
-
// ====================
|
|
60
|
-
|
|
62
|
+
// ==================== UI CONTROL ====================
|
|
63
|
+
|
|
61
64
|
/**
|
|
62
|
-
* Hide the
|
|
65
|
+
* Hide the loading indicator
|
|
63
66
|
*/
|
|
64
|
-
hideLoader(): Promise<
|
|
67
|
+
hideLoader(): Promise<void>;
|
|
65
68
|
|
|
66
69
|
/**
|
|
67
|
-
* Handle deep link
|
|
70
|
+
* Handle deep link (iOS only)
|
|
68
71
|
*/
|
|
69
72
|
receiveDeeplink(url: string): Promise<boolean>;
|
|
70
73
|
|
|
74
|
+
// ==================== TOKEN MANAGEMENT ====================
|
|
75
|
+
|
|
71
76
|
/**
|
|
72
|
-
* Get the last
|
|
77
|
+
* Get the last one-time token
|
|
73
78
|
*/
|
|
74
79
|
getLastOneTimeToken(): Promise<string | null>;
|
|
75
80
|
|
|
76
81
|
/**
|
|
77
|
-
* Get the last
|
|
82
|
+
* Get the last one-time token info
|
|
78
83
|
*/
|
|
79
84
|
getLastOneTimeTokenInfo(): Promise<Object | null>;
|
|
80
85
|
|
|
81
86
|
/**
|
|
82
|
-
* Clear the last
|
|
87
|
+
* Clear the last one-time token
|
|
83
88
|
*/
|
|
84
|
-
clearLastOneTimeToken(): Promise<
|
|
89
|
+
clearLastOneTimeToken(): Promise<void>;
|
|
85
90
|
|
|
86
91
|
/**
|
|
87
|
-
* Clear the last payment status
|
|
92
|
+
* Clear the last payment status
|
|
88
93
|
*/
|
|
89
|
-
clearLastPaymentStatus(): Promise<
|
|
94
|
+
clearLastPaymentStatus(): Promise<void>;
|
|
90
95
|
|
|
91
96
|
// ==================== HEADLESS PAYMENT FLOW ====================
|
|
92
|
-
|
|
97
|
+
|
|
93
98
|
/**
|
|
94
|
-
* Generate a one-time token
|
|
99
|
+
* Generate a one-time token from collected payment data
|
|
95
100
|
*/
|
|
96
101
|
generateToken(
|
|
97
102
|
tokenCollectedData: Object,
|
|
@@ -100,7 +105,7 @@ export interface Spec extends TurboModule {
|
|
|
100
105
|
): Promise<Object>;
|
|
101
106
|
|
|
102
107
|
/**
|
|
103
|
-
* Get the 3D Secure challenge URL
|
|
108
|
+
* Get the 3D Secure challenge URL
|
|
104
109
|
*/
|
|
105
110
|
getThreeDSecureChallenge(
|
|
106
111
|
checkoutSession: string,
|
|
@@ -108,9 +113,9 @@ export interface Spec extends TurboModule {
|
|
|
108
113
|
): Promise<Object>;
|
|
109
114
|
|
|
110
115
|
// ==================== HEADLESS ENROLLMENT FLOW ====================
|
|
111
|
-
|
|
116
|
+
|
|
112
117
|
/**
|
|
113
|
-
* Continue enrollment to create a vaulted token
|
|
118
|
+
* Continue enrollment to create a vaulted token
|
|
114
119
|
*/
|
|
115
120
|
continueEnrollment(
|
|
116
121
|
enrollmentCollectedData: Object,
|
|
@@ -118,15 +123,15 @@ export interface Spec extends TurboModule {
|
|
|
118
123
|
countryCode: string
|
|
119
124
|
): Promise<Object>;
|
|
120
125
|
|
|
121
|
-
// ==================== EVENT EMITTER ====================
|
|
122
|
-
|
|
126
|
+
// ==================== EVENT EMITTER SUPPORT ====================
|
|
127
|
+
|
|
123
128
|
/**
|
|
124
|
-
*
|
|
129
|
+
* Required for NativeEventEmitter
|
|
125
130
|
*/
|
|
126
131
|
addListener(eventName: string): void;
|
|
127
|
-
|
|
132
|
+
|
|
128
133
|
/**
|
|
129
|
-
*
|
|
134
|
+
* Required for NativeEventEmitter
|
|
130
135
|
*/
|
|
131
136
|
removeListeners(count: number): void;
|
|
132
137
|
}
|
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,45 +20,53 @@ import type {
|
|
|
15
20
|
} from './core/types';
|
|
16
21
|
import { YunoStatus, YunoLanguage, CardFlow } from './core/enums';
|
|
17
22
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
+
);
|
|
22
37
|
}
|
|
23
38
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
Platform.select({ ios: "- Run 'pod install'\n", default: '' }) +
|
|
27
|
-
'- You rebuilt the app after installing the package\n' +
|
|
28
|
-
'- You are not using Expo Go\n';
|
|
29
|
-
|
|
30
|
-
// TurboModule support - dynamically import when available
|
|
31
|
-
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
39
|
+
// Cache for the native module
|
|
40
|
+
let _yunoNative: any = null;
|
|
32
41
|
|
|
33
42
|
/**
|
|
34
43
|
* Devuelve el módulo nativo YunoSdk o lanza un error de linking.
|
|
35
|
-
*
|
|
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.
|
|
36
48
|
*/
|
|
37
49
|
function getYunoNative(): any {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
50
|
+
if (_yunoNative) {
|
|
51
|
+
return _yunoNative;
|
|
52
|
+
}
|
|
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;
|
|
49
60
|
}
|
|
50
61
|
|
|
51
|
-
//
|
|
52
|
-
const
|
|
53
|
-
if (
|
|
54
|
-
|
|
62
|
+
// Fall back to NativeModules (Old Architecture / Interop)
|
|
63
|
+
const legacyModule = NativeModules.YunoSdk;
|
|
64
|
+
if (legacyModule) {
|
|
65
|
+
_yunoNative = legacyModule;
|
|
66
|
+
return _yunoNative;
|
|
55
67
|
}
|
|
56
|
-
|
|
68
|
+
|
|
69
|
+
throw new Error(getLinkingError());
|
|
57
70
|
}
|
|
58
71
|
|
|
59
72
|
/**
|