otpless-headless-rn 2.1.0 → 2.1.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/src/main/java/com/otplessheadlessrn/OtplessReactNativeModule.kt +40 -0
- package/lib/commonjs/index.js +9 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +9 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models.d.ts +2 -0
- package/lib/typescript/models.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/index.tsx +33 -15
- package/src/models.tsx +4 -0
|
@@ -11,9 +11,12 @@ import com.facebook.react.bridge.ReactApplicationContext
|
|
|
11
11
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
12
12
|
import com.facebook.react.bridge.ReactMethod
|
|
13
13
|
import com.facebook.react.bridge.ReadableMap
|
|
14
|
+
import com.facebook.react.bridge.ReadableType
|
|
14
15
|
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
15
16
|
import com.otpless.longclaw.tc.OTScopeRequest
|
|
17
|
+
import com.otpless.v2.android.sdk.dto.AuthEvent
|
|
16
18
|
import com.otpless.v2.android.sdk.dto.OtplessChannelType
|
|
19
|
+
import com.otpless.v2.android.sdk.dto.ProviderType
|
|
17
20
|
import com.otpless.v2.android.sdk.dto.OtplessRequest
|
|
18
21
|
import com.otpless.v2.android.sdk.dto.OtplessResponse
|
|
19
22
|
import com.otpless.v2.android.sdk.dto.ResponseTypes
|
|
@@ -103,6 +106,43 @@ class OtplessHeadlessRNModule(private val reactContext: ReactApplicationContext)
|
|
|
103
106
|
promise.resolve(result)
|
|
104
107
|
}
|
|
105
108
|
|
|
109
|
+
@ReactMethod
|
|
110
|
+
fun userAuthEvent(event: String, fallback: Boolean, providerType: String, providerInfo: ReadableMap?) {
|
|
111
|
+
// Defensive enum parsing — unknown values log and return rather than crashing the bridge.
|
|
112
|
+
val authEvent = runCatching { AuthEvent.valueOf(event) }.getOrElse {
|
|
113
|
+
debugLog("userAuthEvent: unknown AuthEvent '$event', ignoring call")
|
|
114
|
+
return
|
|
115
|
+
}
|
|
116
|
+
val provider = runCatching { ProviderType.valueOf(providerType) }.getOrElse {
|
|
117
|
+
debugLog("userAuthEvent: unknown ProviderType '$providerType', ignoring call")
|
|
118
|
+
return
|
|
119
|
+
}
|
|
120
|
+
// Defensive providerInfo parsing — JS passes `any`, so coerce each value to String:
|
|
121
|
+
// primitives via toString(), Maps/Arrays via JSON serialisation, Null skipped.
|
|
122
|
+
val infoMap = mutableMapOf<String, String>()
|
|
123
|
+
if (providerInfo != null) {
|
|
124
|
+
try {
|
|
125
|
+
val iterator = providerInfo.keySetIterator()
|
|
126
|
+
while (iterator.hasNextKey()) {
|
|
127
|
+
val key = iterator.nextKey() ?: continue
|
|
128
|
+
val value: String? = when (providerInfo.getType(key)) {
|
|
129
|
+
ReadableType.String -> providerInfo.getString(key)
|
|
130
|
+
ReadableType.Number -> providerInfo.getDouble(key).toString()
|
|
131
|
+
ReadableType.Boolean -> providerInfo.getBoolean(key).toString()
|
|
132
|
+
ReadableType.Map -> convertMapToJson(providerInfo.getMap(key))?.toString()
|
|
133
|
+
ReadableType.Array -> convertArrayToJson(providerInfo.getArray(key))?.toString()
|
|
134
|
+
else -> null // Null — skip
|
|
135
|
+
}
|
|
136
|
+
if (value != null) infoMap[key] = value
|
|
137
|
+
}
|
|
138
|
+
} catch (_: Exception) {
|
|
139
|
+
// swallow any unexpected bridge parsing errors
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
debugLog("pushing the user auth event\nauthEvent: $authEvent, providerType: $providerType")
|
|
143
|
+
OtplessSDK.userAuthEvent(authEvent, fallback, provider, infoMap)
|
|
144
|
+
}
|
|
145
|
+
|
|
106
146
|
@ReactMethod
|
|
107
147
|
fun start(data: ReadableMap) {
|
|
108
148
|
val otplessRequest = OtplessRequest()
|
package/lib/commonjs/index.js
CHANGED
|
@@ -85,6 +85,15 @@ class OtplessHeadlessModule {
|
|
|
85
85
|
}
|
|
86
86
|
return false;
|
|
87
87
|
}
|
|
88
|
+
|
|
89
|
+
// Android only — OtplessBM (iOS) has no equivalent.
|
|
90
|
+
userAuthEvent(event, providerType, fallback = false, providerInfo = {} // `any` avoids Record<string,string> conflicts across RN versions
|
|
91
|
+
) {
|
|
92
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
93
|
+
// args reordered to match Kotlin bridge: (event, fallback, providerType, providerInfo)
|
|
94
|
+
OtplessHeadlessRN.userAuthEvent(event, fallback, providerType, providerInfo);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
88
97
|
}
|
|
89
98
|
exports.OtplessHeadlessModule = OtplessHeadlessModule;
|
|
90
99
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_models","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","LINKING_ERROR","Platform","select","ios","default","OtplessHeadlessRN","NativeModules","Proxy","Error","OtplessHeadlessModule","eventEmitter","constructor","clearListener","_this$eventEmitter","removeAllListeners","initialize","appId","loginUri","NativeEventEmitter","setResponseCallback","callback","_this$eventEmitter2","addListener","start","input","commitResponse","response","isWhatsappInstalledForAndroid","OS","isWhatsappInstalled","cleanup","decimateAll","toLowerCase","setDevLogging","enable","isSdkReady","initTrueCaller","requestMap"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_models","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","LINKING_ERROR","Platform","select","ios","default","OtplessHeadlessRN","NativeModules","Proxy","Error","OtplessHeadlessModule","eventEmitter","constructor","clearListener","_this$eventEmitter","removeAllListeners","initialize","appId","loginUri","NativeEventEmitter","setResponseCallback","callback","_this$eventEmitter2","addListener","start","input","commitResponse","response","isWhatsappInstalledForAndroid","OS","isWhatsappInstalled","cleanup","decimateAll","toLowerCase","setDevLogging","enable","isSdkReady","initTrueCaller","requestMap","userAuthEvent","event","providerType","fallback","providerInfo"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -64,6 +64,15 @@ class OtplessHeadlessModule {
|
|
|
64
64
|
}
|
|
65
65
|
return false;
|
|
66
66
|
}
|
|
67
|
+
|
|
68
|
+
// Android only — OtplessBM (iOS) has no equivalent.
|
|
69
|
+
userAuthEvent(event, providerType, fallback = false, providerInfo = {} // `any` avoids Record<string,string> conflicts across RN versions
|
|
70
|
+
) {
|
|
71
|
+
if (Platform.OS === 'android') {
|
|
72
|
+
// args reordered to match Kotlin bridge: (event, fallback, providerType, providerInfo)
|
|
73
|
+
OtplessHeadlessRN.userAuthEvent(event, fallback, providerType, providerInfo);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
67
76
|
}
|
|
68
77
|
export { OtplessHeadlessModule };
|
|
69
78
|
export * from './models';
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","LINKING_ERROR","select","ios","default","OtplessHeadlessRN","Proxy","get","Error","OtplessHeadlessModule","eventEmitter","constructor","clearListener","_this$eventEmitter","removeAllListeners","initialize","appId","loginUri","setResponseCallback","callback","_this$eventEmitter2","addListener","start","input","commitResponse","response","isWhatsappInstalledForAndroid","OS","isWhatsappInstalled","cleanup","decimateAll","toLowerCase","setDevLogging","enable","isSdkReady","initTrueCaller","requestMap"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,EAAEC,kBAAkB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","LINKING_ERROR","select","ios","default","OtplessHeadlessRN","Proxy","get","Error","OtplessHeadlessModule","eventEmitter","constructor","clearListener","_this$eventEmitter","removeAllListeners","initialize","appId","loginUri","setResponseCallback","callback","_this$eventEmitter2","addListener","start","input","commitResponse","response","isWhatsappInstalledForAndroid","OS","isWhatsappInstalled","cleanup","decimateAll","toLowerCase","setDevLogging","enable","isSdkReady","initTrueCaller","requestMap","userAuthEvent","event","providerType","fallback","providerInfo"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { OtplessTruecallerRequest } from './models';
|
|
1
|
+
import type { OtplessTruecallerRequest, OtplessAuthEvent, OtplessProviderType } from './models';
|
|
2
2
|
interface OtplessResultCallback {
|
|
3
3
|
(result: any): void;
|
|
4
4
|
}
|
|
@@ -16,6 +16,7 @@ declare class OtplessHeadlessModule {
|
|
|
16
16
|
setDevLogging(enable: boolean): void;
|
|
17
17
|
isSdkReady(): Promise<boolean>;
|
|
18
18
|
initTrueCaller(requestMap: OtplessTruecallerRequest): Promise<boolean>;
|
|
19
|
+
userAuthEvent(event: OtplessAuthEvent, providerType: OtplessProviderType, fallback?: boolean, providerInfo?: any): void;
|
|
19
20
|
}
|
|
20
21
|
export { OtplessHeadlessModule };
|
|
21
22
|
export * from './models';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAmBlB,UAAU,qBAAqB;IAC7B,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC;CACrB;AAED,cAAM,qBAAqB;IACzB,OAAO,CAAC,YAAY,CAAmC;;IAMvD,aAAa;IAIb,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW;IAQxD,mBAAmB,CAAC,QAAQ,EAAE,qBAAqB;IAInD,KAAK,CAAC,KAAK,EAAE,GAAG;IAIhB,cAAc,CAAC,QAAQ,EAAE,GAAG;IAKtB,6BAA6B,IAAI,OAAO,CAAC,OAAO,CAAC;IASvD,OAAO;IAIP,WAAW;IAMX,aAAa,CAAC,MAAM,EAAE,OAAO;IAIvB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,cAAc,CAAC,UAAU,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ5E,aAAa,CACX,KAAK,EAAE,gBAAgB,EACvB,YAAY,EAAE,mBAAmB,EACjC,QAAQ,GAAE,OAAe,EACzB,YAAY,GAAE,GAAQ;CAYzB;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,cAAc,UAAU,CAAC"}
|
|
@@ -20,4 +20,6 @@ export type OTVerifyOption = 'option_verify_only_tc_users' | 'option_verify_all_
|
|
|
20
20
|
export type OTHeadingConsent = 'sdk_consent_heading_log_in_to' | 'sdk_consent_heading_sign_up_with' | 'sdk_consent_heading_sign_in_to' | 'sdk_consent_heading_verify_number_with' | 'sdk_consent_heading_register_with' | 'sdk_consent_heading_get_started_with' | 'sdk_consent_heading_proceed_with' | 'sdk_consent_heading_verify_with' | 'sdk_consent_heading_verify_profile_with' | 'sdk_consent_heading_verify_your_profile_with' | 'sdk_consent_heading_verify_phone_no_with' | 'sdk_consent_heading_verify_your_no_with' | 'sdk_consent_heading_continue_with' | 'sdk_consent_heading_complete_order_with' | 'sdk_consent_heading_place_order_with' | 'sdk_consent_heading_complete_booking_with' | 'sdk_consent_heading_checkout_with' | 'sdk_consent_heading_manage_details_with' | 'sdk_consent_heading_manage_your_details_with' | 'sdk_consent_heading_login_to_with_one_tap' | 'sdk_consent_heading_subscribe_to' | 'sdk_consent_heading_get_updates_from' | 'sdk_consent_heading_continue_reading_on' | 'sdk_consent_heading_get_new_updates_from' | 'sdk_consent_heading_login_signup_with';
|
|
21
21
|
export type OTLoginPrefixText = 'login_text_prefix_to_get_started' | 'login_text_prefix_to_continue' | 'login_text_prefix_to_place_order' | 'login_text_prefix_to_complete_your_purchase' | 'login_text_prefix_to_checkout' | 'login_text_prefix_to_complete_your_booking' | 'login_text_prefix_to_proceed_with_your_booking' | 'login_text_prefix_to_continue_with_your_booking' | 'login_text_prefix_to_get_details' | 'login_text_prefix_to_view_more' | 'login_text_prefix_to_continue_reading' | 'login_text_prefix_to_proceed' | 'login_text_prefix_for_new_updates' | 'login_text_prefix_to_get_updates' | 'login_text_prefix_to_subscribe' | 'login_text_prefix_to_subscribe_and_get_updates';
|
|
22
22
|
export type OTCtaText = 'cta_text_proceed' | 'cta_text_continue' | 'cta_text_accept' | 'cta_text_confirm';
|
|
23
|
+
export type OtplessAuthEvent = 'AUTH_INITIATED' | 'AUTH_SUCCESS' | 'AUTH_FAILED';
|
|
24
|
+
export type OtplessProviderType = 'CLIENT' | 'OTPLESS';
|
|
23
25
|
//# sourceMappingURL=models.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.tsx"],"names":[],"mappings":"AACA,MAAM,WAAW,wBAAwB;IACrC,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAC5C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACzB;AAGD,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/F,MAAM,MAAM,YAAY,GAClB,kBAAkB,GAClB,+BAA+B,GAC/B,4BAA4B,GAC5B,sBAAsB,GACtB,mBAAmB,CAAC;AAE1B,MAAM,MAAM,aAAa,GACnB,sBAAsB,GACtB,wBAAwB,CAAC;AAG/B,MAAM,MAAM,cAAc,GACpB,6BAA6B,GAC7B,yBAAyB,CAAC;AAGhC,MAAM,MAAM,gBAAgB,GACtB,+BAA+B,GAC/B,kCAAkC,GAClC,gCAAgC,GAChC,wCAAwC,GACxC,mCAAmC,GACnC,sCAAsC,GACtC,kCAAkC,GAClC,iCAAiC,GACjC,yCAAyC,GACzC,8CAA8C,GAC9C,0CAA0C,GAC1C,yCAAyC,GACzC,mCAAmC,GACnC,yCAAyC,GACzC,sCAAsC,GACtC,2CAA2C,GAC3C,mCAAmC,GACnC,yCAAyC,GACzC,8CAA8C,GAC9C,2CAA2C,GAC3C,kCAAkC,GAClC,sCAAsC,GACtC,yCAAyC,GACzC,0CAA0C,GAC1C,uCAAuC,CAAC;AAG9C,MAAM,MAAM,iBAAiB,GACvB,kCAAkC,GAClC,+BAA+B,GAC/B,kCAAkC,GAClC,6CAA6C,GAC7C,+BAA+B,GAC/B,4CAA4C,GAC5C,gDAAgD,GAChD,iDAAiD,GACjD,kCAAkC,GAClC,gCAAgC,GAChC,uCAAuC,GACvC,8BAA8B,GAC9B,mCAAmC,GACnC,kCAAkC,GAClC,gCAAgC,GAChC,gDAAgD,CAAC;AAGvD,MAAM,MAAM,SAAS,GACf,kBAAkB,GAClB,mBAAmB,GACnB,iBAAiB,GACjB,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/models.tsx"],"names":[],"mappings":"AACA,MAAM,WAAW,wBAAwB;IACrC,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAC5C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACzB;AAGD,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,eAAe,CAAC,EAAE,iBAAiB,CAAC;IACpC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/F,MAAM,MAAM,YAAY,GAClB,kBAAkB,GAClB,+BAA+B,GAC/B,4BAA4B,GAC5B,sBAAsB,GACtB,mBAAmB,CAAC;AAE1B,MAAM,MAAM,aAAa,GACnB,sBAAsB,GACtB,wBAAwB,CAAC;AAG/B,MAAM,MAAM,cAAc,GACpB,6BAA6B,GAC7B,yBAAyB,CAAC;AAGhC,MAAM,MAAM,gBAAgB,GACtB,+BAA+B,GAC/B,kCAAkC,GAClC,gCAAgC,GAChC,wCAAwC,GACxC,mCAAmC,GACnC,sCAAsC,GACtC,kCAAkC,GAClC,iCAAiC,GACjC,yCAAyC,GACzC,8CAA8C,GAC9C,0CAA0C,GAC1C,yCAAyC,GACzC,mCAAmC,GACnC,yCAAyC,GACzC,sCAAsC,GACtC,2CAA2C,GAC3C,mCAAmC,GACnC,yCAAyC,GACzC,8CAA8C,GAC9C,2CAA2C,GAC3C,kCAAkC,GAClC,sCAAsC,GACtC,yCAAyC,GACzC,0CAA0C,GAC1C,uCAAuC,CAAC;AAG9C,MAAM,MAAM,iBAAiB,GACvB,kCAAkC,GAClC,+BAA+B,GAC/B,kCAAkC,GAClC,6CAA6C,GAC7C,+BAA+B,GAC/B,4CAA4C,GAC5C,gDAAgD,GAChD,iDAAiD,GACjD,kCAAkC,GAClC,gCAAgC,GAChC,uCAAuC,GACvC,8BAA8B,GAC9B,mCAAmC,GACnC,kCAAkC,GAClC,gCAAgC,GAChC,gDAAgD,CAAC;AAGvD,MAAM,MAAM,SAAS,GACf,kBAAkB,GAClB,mBAAmB,GACnB,iBAAiB,GACjB,kBAAkB,CAAC;AAEzB,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,cAAc,GAAG,aAAa,CAAC;AAEjF,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,SAAS,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "otpless-headless-rn",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "react native plugin for otpless headless android and ios",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@commitlint/config-conventional": "^17.0.2",
|
|
56
56
|
"@evilmartians/lefthook": "^1.5.0",
|
|
57
|
+
"@react-native-community/eslint-config": "^3.2.0",
|
|
57
58
|
"@react-native/eslint-config": "^0.72.2",
|
|
58
59
|
"@release-it/conventional-changelog": "^5.0.0",
|
|
59
60
|
"@types/jest": "^28.1.2",
|
package/src/index.tsx
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { NativeModules, Platform, NativeEventEmitter } from 'react-native';
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import type {
|
|
3
|
+
OtplessTruecallerRequest,
|
|
4
|
+
OtplessAuthEvent,
|
|
5
|
+
OtplessProviderType,
|
|
6
|
+
} from './models';
|
|
5
7
|
|
|
6
8
|
const LINKING_ERROR =
|
|
7
9
|
`The package 'otpless-headless-rn' doesn't seem to be linked. Make sure: \n\n` +
|
|
@@ -12,13 +14,13 @@ const LINKING_ERROR =
|
|
|
12
14
|
const OtplessHeadlessRN = NativeModules.OtplessHeadlessRN
|
|
13
15
|
? NativeModules.OtplessHeadlessRN
|
|
14
16
|
: new Proxy(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
{},
|
|
18
|
+
{
|
|
19
|
+
get() {
|
|
20
|
+
throw new Error(LINKING_ERROR);
|
|
21
|
+
},
|
|
22
|
+
}
|
|
23
|
+
);
|
|
22
24
|
|
|
23
25
|
interface OtplessResultCallback {
|
|
24
26
|
(result: any): void;
|
|
@@ -59,9 +61,9 @@ class OtplessHeadlessModule {
|
|
|
59
61
|
async isWhatsappInstalledForAndroid(): Promise<boolean> {
|
|
60
62
|
if (Platform.OS === 'android') {
|
|
61
63
|
// Android-specific code
|
|
62
|
-
return await OtplessHeadlessRN.isWhatsappInstalled()
|
|
64
|
+
return await OtplessHeadlessRN.isWhatsappInstalled();
|
|
63
65
|
} else {
|
|
64
|
-
return false
|
|
66
|
+
return false;
|
|
65
67
|
}
|
|
66
68
|
}
|
|
67
69
|
|
|
@@ -89,9 +91,25 @@ class OtplessHeadlessModule {
|
|
|
89
91
|
}
|
|
90
92
|
return false;
|
|
91
93
|
}
|
|
92
|
-
|
|
93
|
-
}
|
|
94
94
|
|
|
95
|
+
// Android only — OtplessBM (iOS) has no equivalent.
|
|
96
|
+
userAuthEvent(
|
|
97
|
+
event: OtplessAuthEvent,
|
|
98
|
+
providerType: OtplessProviderType,
|
|
99
|
+
fallback: boolean = false,
|
|
100
|
+
providerInfo: any = {} // `any` avoids Record<string,string> conflicts across RN versions
|
|
101
|
+
) {
|
|
102
|
+
if (Platform.OS === 'android') {
|
|
103
|
+
// args reordered to match Kotlin bridge: (event, fallback, providerType, providerInfo)
|
|
104
|
+
OtplessHeadlessRN.userAuthEvent(
|
|
105
|
+
event,
|
|
106
|
+
fallback,
|
|
107
|
+
providerType,
|
|
108
|
+
providerInfo
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
95
113
|
|
|
96
114
|
export { OtplessHeadlessModule };
|
|
97
|
-
export * from './models'
|
|
115
|
+
export * from './models';
|
package/src/models.tsx
CHANGED