@react-native-firebase/app-check 25.1.0 → 26.1.0
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/CHANGELOG.md +38 -0
- package/RNFBAppCheck.podspec +20 -7
- package/android/build.gradle +19 -0
- package/android/src/main/java/io/invertase/firebase/appcheck/{ReactNativeFirebaseAppCheckModule.java → NativeRNFBTurboAppCheck.java} +46 -34
- package/android/src/main/java/io/invertase/firebase/appcheck/ReactNativeFirebaseAppCheckPackage.java +1 -1
- package/android/src/main/java/io/invertase/firebase/appcheck/ReactNativeFirebaseAppCheckProvider.java +9 -0
- package/android/src/main/java/io/invertase/firebase/appcheck/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboAppCheckSpec.java +67 -0
- package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/CMakeLists.txt +36 -0
- package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/RNFBAppCheckTurboModules-generated.cpp +74 -0
- package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/RNFBAppCheckTurboModules.h +31 -0
- package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/react/renderer/components/RNFBAppCheckTurboModules/RNFBAppCheckTurboModulesJSI-generated.cpp +85 -0
- package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/react/renderer/components/RNFBAppCheckTurboModules/RNFBAppCheckTurboModulesJSI.h +174 -0
- package/app.plugin.js +1 -1
- package/dist/module/index.js +210 -6
- package/dist/module/index.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/lib/index.d.ts +19 -4
- package/dist/typescript/lib/index.d.ts.map +1 -1
- package/dist/typescript/lib/types/appcheck.d.ts +5 -0
- package/dist/typescript/lib/types/appcheck.d.ts.map +1 -1
- package/dist/typescript/lib/types/internal.d.ts +1 -1
- package/dist/typescript/lib/types/internal.d.ts.map +1 -1
- package/dist/typescript/lib/version.d.ts +1 -1
- package/ios/RNFBAppCheck/RNFBAppCheckModule.h +3 -8
- package/ios/RNFBAppCheck/{RNFBAppCheckModule.m → RNFBAppCheckModule.mm} +75 -45
- package/ios/RNFBAppCheck/RNFBAppCheckProvider.h +8 -1
- package/ios/RNFBAppCheck/RNFBAppCheckProvider.m +11 -1
- package/ios/RNFBAppCheck.xcodeproj/project.pbxproj +8 -8
- package/ios/generated/RCTAppDependencyProvider.h +25 -0
- package/ios/generated/RCTAppDependencyProvider.mm +55 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
- package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
- package/ios/generated/RCTThirdPartyComponentsProvider.mm +23 -0
- package/ios/generated/RNFBAppCheckTurboModules/RNFBAppCheckTurboModules-generated.mm +88 -0
- package/ios/generated/RNFBAppCheckTurboModules/RNFBAppCheckTurboModules.h +85 -0
- package/ios/generated/RNFBAppCheckTurboModulesJSI-generated.cpp +85 -0
- package/ios/generated/RNFBAppCheckTurboModulesJSI.h +174 -0
- package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
- package/lib/index.ts +335 -8
- package/lib/types/appcheck.ts +6 -0
- package/lib/types/internal.ts +1 -1
- package/lib/version.ts +1 -1
- package/package.json +30 -5
- package/plugin/build/app.plugin.d.ts +2 -0
- package/plugin/build/app.plugin.js +6 -0
- package/plugin/build/ios/appDelegate.js +18 -4
- package/plugin/src/app.plugin.ts +3 -0
- package/plugin/src/ios/appDelegate.ts +23 -4
- package/plugin/tsconfig.tsbuildinfo +1 -1
- package/react-native.config.js +10 -0
- package/specs/NativeRNFBTurboAppCheck.ts +27 -0
- package/typedoc.json +1 -1
- package/dist/module/modular.js +0 -93
- package/dist/module/modular.js.map +0 -1
- package/dist/module/namespaced.js +0 -194
- package/dist/module/namespaced.js.map +0 -1
- package/dist/module/types/namespaced.js +0 -60
- package/dist/module/types/namespaced.js.map +0 -1
- package/dist/typescript/lib/modular.d.ts +0 -56
- package/dist/typescript/lib/modular.d.ts.map +0 -1
- package/dist/typescript/lib/namespaced.d.ts +0 -12
- package/dist/typescript/lib/namespaced.d.ts.map +0 -1
- package/dist/typescript/lib/types/namespaced.d.ts +0 -358
- package/dist/typescript/lib/types/namespaced.d.ts.map +0 -1
- package/lib/modular.ts +0 -157
- package/lib/namespaced.ts +0 -286
- package/lib/types/namespaced.ts +0 -422
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,44 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [26.1.0](https://github.com/invertase/react-native-firebase/compare/v26.0.0...v26.1.0) (2026-08-03)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- **ios:** add SPM dependency resolution support alongside CocoaPods ([#8933](https://github.com/invertase/react-native-firebase/issues/8933)) ([44a7a9a](https://github.com/invertase/react-native-firebase/commit/44a7a9ae7b404f412e9766c0417f1df8fa971a0b))
|
|
11
|
+
|
|
12
|
+
## [26.0.0](https://github.com/invertase/react-native-firebase/compare/v25.1.0...v26.0.0) (2026-07-29)
|
|
13
|
+
|
|
14
|
+
### ⚠ BREAKING CHANGES
|
|
15
|
+
|
|
16
|
+
- logEvent, initializeAppCheck, and initializeFirestore return
|
|
17
|
+
synchronously; remove await and .then() chains on these APIs.
|
|
18
|
+
|
|
19
|
+
* Analytics: align logEvent return type with firebase-js-sdk sync void.
|
|
20
|
+
* App Check: align initializeAppCheck with sync AppCheck return.
|
|
21
|
+
* Firestore: align initializeFirestore with sync Firestore return.
|
|
22
|
+
* Firestore: export aggregateFieldEqual for aggregate query parity.
|
|
23
|
+
* Remote Config: accept RemoteConfigOptions in getRemoteConfig.
|
|
24
|
+
* Remote Config: document native FetchStatus literals as intentional drift.
|
|
25
|
+
* Docs: add firebase-js-sdk API parity improvements to v26 migration guide.
|
|
26
|
+
|
|
27
|
+
- **app-check:** migrate app-check to TurboModules
|
|
28
|
+
|
|
29
|
+
- refactor!(types): align modular APIs with firebase-js-sdk sync signatures ([b42d1f7](https://github.com/invertase/react-native-firebase/commit/b42d1f7dd2629184e26ab71936ab1d47878d0f64))
|
|
30
|
+
|
|
31
|
+
### Features
|
|
32
|
+
|
|
33
|
+
- **app-check:** migrate app-check to TurboModules ([b93a70a](https://github.com/invertase/react-native-firebase/commit/b93a70a7398538750528ce144cb8e367fd25a0da))
|
|
34
|
+
|
|
35
|
+
### Bug Fixes
|
|
36
|
+
|
|
37
|
+
- add codegen verify and spec-native parity tests ([49d9f1b](https://github.com/invertase/react-native-firebase/commit/49d9f1baba4fc83c1dd4983f582bbd7352d78809))
|
|
38
|
+
- **app-check:** guard missing initializeAppCheck options at runtime ([a4b3407](https://github.com/invertase/react-native-firebase/commit/a4b34073b1e9471826bd60ceb75e580e9b471651))
|
|
39
|
+
- **app-check:** validate provider name and error on unrecognized values ([#9106](https://github.com/invertase/react-native-firebase/issues/9106)) ([9be83d9](https://github.com/invertase/react-native-firebase/commit/9be83d993d47be1775db5fb66637bc3505fb2a52))
|
|
40
|
+
- **ios:** private codegen headers and bridging-safe AppCheck module ([266d7e1](https://github.com/invertase/react-native-firebase/commit/266d7e10020662bfd357d1795bc5f6cfde54f7b7))
|
|
41
|
+
- **ios:** set IPHONEOS_DEPLOYMENT_TARGET to 15.0, update platform support docs/conditionals ([#9108](https://github.com/invertase/react-native-firebase/issues/9108)) ([99d0899](https://github.com/invertase/react-native-firebase/commit/99d089908e3eec6155d73ecf05ff7274ad33c46e)), closes [#8882](https://github.com/invertase/react-native-firebase/issues/8882)
|
|
42
|
+
- **types:** align compare-types modular API with firebase-js-sdk ([5376e75](https://github.com/invertase/react-native-firebase/commit/5376e757f7dd7f7cffc9907c652d873d2403e23f))
|
|
43
|
+
|
|
6
44
|
## [25.1.0](https://github.com/invertase/react-native-firebase/compare/v25.0.1...v25.1.0) (2026-06-25)
|
|
7
45
|
|
|
8
46
|
**Note:** Version bump only for package @react-native-firebase/app-check
|
package/RNFBAppCheck.podspec
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'json'
|
|
2
|
+
require_relative '../app/firebase_spm'
|
|
2
3
|
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
|
|
3
4
|
appPackage = JSON.parse(File.read(File.join('..', 'app', 'package.json')))
|
|
4
5
|
|
|
@@ -27,15 +28,27 @@ Pod::Spec.new do |s|
|
|
|
27
28
|
s.ios.deployment_target = firebase_ios_target
|
|
28
29
|
s.macos.deployment_target = firebase_macos_target
|
|
29
30
|
s.tvos.deployment_target = firebase_tvos_target
|
|
30
|
-
s.source_files = 'ios/**/*.{h,m}'
|
|
31
|
+
s.source_files = 'ios/**/*.{h,m,mm,cpp}'
|
|
32
|
+
s.public_header_files = [
|
|
33
|
+
'ios/RNFBAppCheck/RNFBAppCheckModule.h',
|
|
34
|
+
]
|
|
35
|
+
s.private_header_files = [
|
|
36
|
+
'ios/RNFBAppCheck/RNFBAppCheckProvider.h',
|
|
37
|
+
'ios/RNFBAppCheck/RNFBAppCheckProviderFactory.h',
|
|
38
|
+
'ios/generated/**/*.h',
|
|
39
|
+
]
|
|
40
|
+
s.exclude_files = 'ios/generated/RCTThirdPartyComponentsProvider.*', 'ios/generated/RCTAppDependencyProvider.*', 'ios/generated/RCTModuleProviders.*', 'ios/generated/RCTModulesConformingToProtocolsProvider.*', 'ios/generated/RCTUnstableModulesRequiringMainQueueSetupProvider.*'
|
|
41
|
+
|
|
42
|
+
s.pod_target_xcconfig = {
|
|
43
|
+
'HEADER_SEARCH_PATHS' => '"$(PODS_TARGET_SRCROOT)/ios/generated/RNFBAppCheckTurboModules" "$(PODS_TARGET_SRCROOT)/ios/generated"',
|
|
44
|
+
}
|
|
31
45
|
|
|
32
46
|
s.dependency 'RNFBApp'
|
|
33
47
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
s.dependency "React-Core"
|
|
48
|
+
install_modules_dependencies(s);
|
|
49
|
+
|
|
50
|
+
if defined?(ENV["RCT_NEW_ARCH_ENABLED"]) != nil && (ENV["RCT_NEW_ARCH_ENABLED"] == '0')
|
|
51
|
+
raise "#{s.name} requires New Architecture. Enable New Architecture to use this module"
|
|
39
52
|
end
|
|
40
53
|
|
|
41
54
|
if defined?($FirebaseSDKVersion)
|
|
@@ -44,7 +57,7 @@ Pod::Spec.new do |s|
|
|
|
44
57
|
end
|
|
45
58
|
|
|
46
59
|
# Firebase dependencies
|
|
47
|
-
s
|
|
60
|
+
firebase_dependency(s, firebase_sdk_version, ['FirebaseAppCheck'], 'Firebase/AppCheck')
|
|
48
61
|
|
|
49
62
|
if defined?($RNFirebaseAsStaticFramework)
|
|
50
63
|
Pod::UI.puts "#{s.name}: Using overridden static_framework value of '#{$RNFirebaseAsStaticFramework}'"
|
package/android/build.gradle
CHANGED
|
@@ -88,6 +88,7 @@ android {
|
|
|
88
88
|
sourceSets {
|
|
89
89
|
main {
|
|
90
90
|
java.srcDirs = ['src/main/java', 'src/reactnative/java']
|
|
91
|
+
java.excludes = ['**/generated/jni/**']
|
|
91
92
|
}
|
|
92
93
|
}
|
|
93
94
|
}
|
|
@@ -108,3 +109,21 @@ ReactNative.shared.applyPackageVersion()
|
|
|
108
109
|
ReactNative.shared.applyDefaultExcludes()
|
|
109
110
|
ReactNative.module.applyAndroidVersions()
|
|
110
111
|
ReactNative.module.applyReactNativeDependency('api')
|
|
112
|
+
|
|
113
|
+
def isNewArchitectureDisabled() {
|
|
114
|
+
return project.hasProperty("newArchEnabled") && project.newArchEnabled != "true"
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (isNewArchitectureDisabled()) {
|
|
118
|
+
def ANSI_RED = "\u001B[31m";
|
|
119
|
+
def ANSI_RESET = "\u001B[0m";
|
|
120
|
+
|
|
121
|
+
println("\n\n\n")
|
|
122
|
+
println(ANSI_RED + "**************************************************************************************************************")
|
|
123
|
+
println("\n\n\n")
|
|
124
|
+
println("New Architecture support is required for @react-native-firebase/app-check")
|
|
125
|
+
println("\n\n\n")
|
|
126
|
+
println("**************************************************************************************************************" + ANSI_RESET)
|
|
127
|
+
println("\n\n\n")
|
|
128
|
+
System.exit(1)
|
|
129
|
+
}
|
|
@@ -17,10 +17,16 @@ package io.invertase.firebase.appcheck;
|
|
|
17
17
|
*
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
+
import static io.invertase.firebase.common.ReactNativeFirebaseModule.rejectPromiseWithCodeAndMessage;
|
|
21
|
+
|
|
20
22
|
import android.content.pm.ApplicationInfo;
|
|
21
23
|
import android.content.pm.PackageManager;
|
|
22
24
|
import android.util.Log;
|
|
23
|
-
import com.facebook.
|
|
25
|
+
import com.facebook.fbreact.specs.NativeRNFBTurboAppCheckSpec;
|
|
26
|
+
import com.facebook.react.bridge.Arguments;
|
|
27
|
+
import com.facebook.react.bridge.Promise;
|
|
28
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
29
|
+
import com.facebook.react.bridge.WritableMap;
|
|
24
30
|
import com.google.android.gms.tasks.Tasks;
|
|
25
31
|
import com.google.firebase.FirebaseApp;
|
|
26
32
|
import com.google.firebase.appcheck.FirebaseAppCheck;
|
|
@@ -28,13 +34,14 @@ import io.invertase.firebase.common.ReactNativeFirebaseEvent;
|
|
|
28
34
|
import io.invertase.firebase.common.ReactNativeFirebaseEventEmitter;
|
|
29
35
|
import io.invertase.firebase.common.ReactNativeFirebaseJSON;
|
|
30
36
|
import io.invertase.firebase.common.ReactNativeFirebaseMeta;
|
|
31
|
-
import io.invertase.firebase.common.ReactNativeFirebaseModule;
|
|
32
37
|
import io.invertase.firebase.common.ReactNativeFirebasePreferences;
|
|
38
|
+
import io.invertase.firebase.common.TaskExecutorService;
|
|
33
39
|
import java.util.HashMap;
|
|
34
40
|
import java.util.Iterator;
|
|
35
41
|
import java.util.Map;
|
|
42
|
+
import java.util.concurrent.ExecutorService;
|
|
36
43
|
|
|
37
|
-
public class
|
|
44
|
+
public class NativeRNFBTurboAppCheck extends NativeRNFBTurboAppCheckSpec {
|
|
38
45
|
private static final String TAG = "AppCheck";
|
|
39
46
|
private static final String LOGTAG = "RNFBAppCheck";
|
|
40
47
|
private static final String KEY_APPCHECK_TOKEN_REFRESH_ENABLED = "app_check_token_auto_refresh";
|
|
@@ -42,7 +49,8 @@ public class ReactNativeFirebaseAppCheckModule extends ReactNativeFirebaseModule
|
|
|
42
49
|
private static HashMap<String, FirebaseAppCheck.AppCheckListener> mAppCheckListeners =
|
|
43
50
|
new HashMap<>();
|
|
44
51
|
|
|
45
|
-
|
|
52
|
+
private final TaskExecutorService executorService;
|
|
53
|
+
private final ReactNativeFirebaseAppCheckProviderFactory providerFactory =
|
|
46
54
|
new ReactNativeFirebaseAppCheckProviderFactory();
|
|
47
55
|
|
|
48
56
|
static boolean isAppCheckTokenRefreshEnabled() {
|
|
@@ -78,27 +86,31 @@ public class ReactNativeFirebaseAppCheckModule extends ReactNativeFirebaseModule
|
|
|
78
86
|
return enabled;
|
|
79
87
|
}
|
|
80
88
|
|
|
89
|
+
public NativeRNFBTurboAppCheck(ReactApplicationContext reactContext) {
|
|
90
|
+
super(reactContext);
|
|
91
|
+
this.executorService = new TaskExecutorService("UniversalAppCheckModule");
|
|
92
|
+
|
|
93
|
+
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
|
|
94
|
+
firebaseAppCheck.setTokenAutoRefreshEnabled(isAppCheckTokenRefreshEnabled());
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
private ExecutorService getExecutor() {
|
|
98
|
+
return executorService.getExecutor();
|
|
99
|
+
}
|
|
100
|
+
|
|
81
101
|
private boolean isAppDebuggable() throws Exception {
|
|
82
102
|
boolean isDebuggable = false;
|
|
83
|
-
PackageManager pm =
|
|
103
|
+
PackageManager pm = getReactApplicationContext().getPackageManager();
|
|
84
104
|
if (pm != null) {
|
|
85
105
|
isDebuggable =
|
|
86
106
|
(0
|
|
87
|
-
!= (pm.getApplicationInfo(
|
|
107
|
+
!= (pm.getApplicationInfo(getReactApplicationContext().getPackageName(), 0).flags
|
|
88
108
|
& ApplicationInfo.FLAG_DEBUGGABLE));
|
|
89
109
|
}
|
|
90
110
|
Log.d(LOGTAG, "debuggable status? " + isDebuggable);
|
|
91
111
|
return isDebuggable;
|
|
92
112
|
}
|
|
93
113
|
|
|
94
|
-
ReactNativeFirebaseAppCheckModule(ReactApplicationContext reactContext) {
|
|
95
|
-
super(reactContext, TAG);
|
|
96
|
-
|
|
97
|
-
// Our default token refresh config comes from config files, set it
|
|
98
|
-
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
|
|
99
|
-
firebaseAppCheck.setTokenAutoRefreshEnabled(isAppCheckTokenRefreshEnabled());
|
|
100
|
-
}
|
|
101
|
-
|
|
102
114
|
@Override
|
|
103
115
|
public void invalidate() {
|
|
104
116
|
super.invalidate();
|
|
@@ -116,9 +128,11 @@ public class ReactNativeFirebaseAppCheckModule extends ReactNativeFirebaseModule
|
|
|
116
128
|
firebaseAppCheck.removeAppCheckListener(mAppCheckListener);
|
|
117
129
|
appCheckListenerIterator.remove();
|
|
118
130
|
}
|
|
131
|
+
|
|
132
|
+
executorService.shutdown();
|
|
119
133
|
}
|
|
120
134
|
|
|
121
|
-
@
|
|
135
|
+
@Override
|
|
122
136
|
public void configureProvider(
|
|
123
137
|
String appName, String providerName, String debugToken, Promise promise) {
|
|
124
138
|
Log.d(
|
|
@@ -138,16 +152,14 @@ public class ReactNativeFirebaseAppCheckModule extends ReactNativeFirebaseModule
|
|
|
138
152
|
}
|
|
139
153
|
}
|
|
140
154
|
|
|
141
|
-
@
|
|
155
|
+
@Override
|
|
142
156
|
public void activate(
|
|
143
157
|
String appName, String siteKeyProvider, boolean isTokenAutoRefreshEnabled, Promise promise) {
|
|
144
158
|
try {
|
|
145
|
-
|
|
146
159
|
FirebaseAppCheck firebaseAppCheck =
|
|
147
160
|
FirebaseAppCheck.getInstance(FirebaseApp.getInstance(appName));
|
|
148
161
|
firebaseAppCheck.setTokenAutoRefreshEnabled(isTokenAutoRefreshEnabled);
|
|
149
162
|
|
|
150
|
-
// Configure our new proxy factory in a backwards-compatible way for old API
|
|
151
163
|
if (isAppDebuggable()) {
|
|
152
164
|
Log.d(LOGTAG, "app is debuggable, configuring AppCheck for testing mode");
|
|
153
165
|
if (BuildConfig.FIREBASE_APP_CHECK_DEBUG_TOKEN != "null") {
|
|
@@ -172,22 +184,26 @@ public class ReactNativeFirebaseAppCheckModule extends ReactNativeFirebaseModule
|
|
|
172
184
|
}
|
|
173
185
|
}
|
|
174
186
|
|
|
175
|
-
@
|
|
187
|
+
@Override
|
|
188
|
+
public void isTokenAutoRefreshEnabled(String appName, Promise promise) {
|
|
189
|
+
promise.reject("platform-unsupported", "isTokenAutoRefreshEnabled is only supported on iOS");
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
@Override
|
|
176
193
|
public void setTokenAutoRefreshEnabled(String appName, boolean isTokenAutoRefreshEnabled) {
|
|
177
194
|
FirebaseApp firebaseApp = FirebaseApp.getInstance(appName);
|
|
178
195
|
FirebaseAppCheck.getInstance(firebaseApp).setTokenAutoRefreshEnabled(isTokenAutoRefreshEnabled);
|
|
179
196
|
}
|
|
180
197
|
|
|
181
|
-
@
|
|
198
|
+
@Override
|
|
182
199
|
public void getToken(String appName, boolean forceRefresh, Promise promise) {
|
|
183
200
|
Log.d(LOGTAG, "getToken appName/forceRefresh: " + appName + "/" + forceRefresh);
|
|
184
201
|
FirebaseApp firebaseApp = FirebaseApp.getInstance(appName);
|
|
185
202
|
Tasks.call(
|
|
186
203
|
getExecutor(),
|
|
187
|
-
() ->
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
})
|
|
204
|
+
() ->
|
|
205
|
+
Tasks.await(
|
|
206
|
+
FirebaseAppCheck.getInstance(firebaseApp).getAppCheckToken(forceRefresh)))
|
|
191
207
|
.addOnCompleteListener(
|
|
192
208
|
getExecutor(),
|
|
193
209
|
(task) -> {
|
|
@@ -206,17 +222,15 @@ public class ReactNativeFirebaseAppCheckModule extends ReactNativeFirebaseModule
|
|
|
206
222
|
});
|
|
207
223
|
}
|
|
208
224
|
|
|
209
|
-
@
|
|
225
|
+
@Override
|
|
210
226
|
public void getLimitedUseToken(String appName, Promise promise) {
|
|
211
227
|
Log.d(LOGTAG, "getLimitedUseToken appName: " + appName);
|
|
212
228
|
FirebaseApp firebaseApp = FirebaseApp.getInstance(appName);
|
|
213
229
|
|
|
214
230
|
Tasks.call(
|
|
215
231
|
getExecutor(),
|
|
216
|
-
() ->
|
|
217
|
-
|
|
218
|
-
FirebaseAppCheck.getInstance(firebaseApp).getLimitedUseAppCheckToken());
|
|
219
|
-
})
|
|
232
|
+
() ->
|
|
233
|
+
Tasks.await(FirebaseAppCheck.getInstance(firebaseApp).getLimitedUseAppCheckToken()))
|
|
220
234
|
.addOnCompleteListener(
|
|
221
235
|
getExecutor(),
|
|
222
236
|
(task) -> {
|
|
@@ -235,8 +249,7 @@ public class ReactNativeFirebaseAppCheckModule extends ReactNativeFirebaseModule
|
|
|
235
249
|
});
|
|
236
250
|
}
|
|
237
251
|
|
|
238
|
-
|
|
239
|
-
@ReactMethod
|
|
252
|
+
@Override
|
|
240
253
|
public void addAppCheckListener(final String appName) {
|
|
241
254
|
Log.d(TAG, "addAppCheckListener " + appName);
|
|
242
255
|
|
|
@@ -247,7 +260,7 @@ public class ReactNativeFirebaseAppCheckModule extends ReactNativeFirebaseModule
|
|
|
247
260
|
FirebaseAppCheck.AppCheckListener newAppCheckListener =
|
|
248
261
|
appCheckToken -> {
|
|
249
262
|
WritableMap eventBody = Arguments.createMap();
|
|
250
|
-
eventBody.putString("appName", appName);
|
|
263
|
+
eventBody.putString("appName", appName);
|
|
251
264
|
eventBody.putString("token", appCheckToken.getToken());
|
|
252
265
|
eventBody.putDouble("expireTimeMillis", appCheckToken.getExpireTimeMillis());
|
|
253
266
|
|
|
@@ -263,8 +276,7 @@ public class ReactNativeFirebaseAppCheckModule extends ReactNativeFirebaseModule
|
|
|
263
276
|
}
|
|
264
277
|
}
|
|
265
278
|
|
|
266
|
-
|
|
267
|
-
@ReactMethod
|
|
279
|
+
@Override
|
|
268
280
|
public void removeAppCheckListener(String appName) {
|
|
269
281
|
Log.d(TAG, "removeAppCheckListener " + appName);
|
|
270
282
|
|
package/android/src/main/java/io/invertase/firebase/appcheck/ReactNativeFirebaseAppCheckPackage.java
CHANGED
|
@@ -30,7 +30,7 @@ public class ReactNativeFirebaseAppCheckPackage implements ReactPackage {
|
|
|
30
30
|
@Override
|
|
31
31
|
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
|
32
32
|
List<NativeModule> modules = new ArrayList<>();
|
|
33
|
-
modules.add(new
|
|
33
|
+
modules.add(new NativeRNFBTurboAppCheck(reactContext));
|
|
34
34
|
return modules;
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -89,6 +89,15 @@ public class ReactNativeFirebaseAppCheckProvider implements AppCheckProvider {
|
|
|
89
89
|
if ("playIntegrity".equals(providerName)) {
|
|
90
90
|
delegateProvider = PlayIntegrityAppCheckProviderFactory.getInstance().create(app);
|
|
91
91
|
}
|
|
92
|
+
|
|
93
|
+
if (delegateProvider == null) {
|
|
94
|
+
String message =
|
|
95
|
+
"Unknown provider name \""
|
|
96
|
+
+ providerName
|
|
97
|
+
+ "\". Valid providers are: debug, playIntegrity.";
|
|
98
|
+
Log.e(LOGTAG, message);
|
|
99
|
+
throw new IllegalArgumentException(message);
|
|
100
|
+
}
|
|
92
101
|
} catch (Exception e) {
|
|
93
102
|
// This will bubble up and result in a rejected promise with the underlying message
|
|
94
103
|
throw new RuntimeException(e.getMessage());
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
4
|
+
*
|
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
6
|
+
* once the code is regenerated.
|
|
7
|
+
*
|
|
8
|
+
* @generated by codegen project: GenerateModuleJavaSpec.js
|
|
9
|
+
*
|
|
10
|
+
* @nolint
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
package com.facebook.fbreact.specs;
|
|
14
|
+
|
|
15
|
+
import com.facebook.proguard.annotations.DoNotStrip;
|
|
16
|
+
import com.facebook.react.bridge.Promise;
|
|
17
|
+
import com.facebook.react.bridge.ReactApplicationContext;
|
|
18
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
|
19
|
+
import com.facebook.react.bridge.ReactMethod;
|
|
20
|
+
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
|
21
|
+
import javax.annotation.Nonnull;
|
|
22
|
+
import javax.annotation.Nullable;
|
|
23
|
+
|
|
24
|
+
public abstract class NativeRNFBTurboAppCheckSpec extends ReactContextBaseJavaModule implements TurboModule {
|
|
25
|
+
public static final String NAME = "NativeRNFBTurboAppCheck";
|
|
26
|
+
|
|
27
|
+
public NativeRNFBTurboAppCheckSpec(ReactApplicationContext reactContext) {
|
|
28
|
+
super(reactContext);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@Override
|
|
32
|
+
public @Nonnull String getName() {
|
|
33
|
+
return NAME;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@ReactMethod
|
|
37
|
+
@DoNotStrip
|
|
38
|
+
public abstract void activate(String appName, String siteKeyProvider, boolean isTokenAutoRefreshEnabled, Promise promise);
|
|
39
|
+
|
|
40
|
+
@ReactMethod
|
|
41
|
+
@DoNotStrip
|
|
42
|
+
public abstract void configureProvider(String appName, String providerName, @Nullable String debugToken, Promise promise);
|
|
43
|
+
|
|
44
|
+
@ReactMethod
|
|
45
|
+
@DoNotStrip
|
|
46
|
+
public abstract void setTokenAutoRefreshEnabled(String appName, boolean isTokenAutoRefreshEnabled);
|
|
47
|
+
|
|
48
|
+
@ReactMethod
|
|
49
|
+
@DoNotStrip
|
|
50
|
+
public abstract void isTokenAutoRefreshEnabled(String appName, Promise promise);
|
|
51
|
+
|
|
52
|
+
@ReactMethod
|
|
53
|
+
@DoNotStrip
|
|
54
|
+
public abstract void getToken(String appName, boolean forceRefresh, Promise promise);
|
|
55
|
+
|
|
56
|
+
@ReactMethod
|
|
57
|
+
@DoNotStrip
|
|
58
|
+
public abstract void getLimitedUseToken(String appName, Promise promise);
|
|
59
|
+
|
|
60
|
+
@ReactMethod
|
|
61
|
+
@DoNotStrip
|
|
62
|
+
public abstract void addAppCheckListener(String appName);
|
|
63
|
+
|
|
64
|
+
@ReactMethod
|
|
65
|
+
@DoNotStrip
|
|
66
|
+
public abstract void removeAppCheckListener(String appName);
|
|
67
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
#
|
|
3
|
+
# This source code is licensed under the MIT license found in the
|
|
4
|
+
# LICENSE file in the root directory of this source tree.
|
|
5
|
+
|
|
6
|
+
cmake_minimum_required(VERSION 3.13)
|
|
7
|
+
set(CMAKE_VERBOSE_MAKEFILE on)
|
|
8
|
+
|
|
9
|
+
file(GLOB react_codegen_SRCS CONFIGURE_DEPENDS *.cpp react/renderer/components/RNFBAppCheckTurboModules/*.cpp)
|
|
10
|
+
|
|
11
|
+
add_library(
|
|
12
|
+
react_codegen_RNFBAppCheckTurboModules
|
|
13
|
+
OBJECT
|
|
14
|
+
${react_codegen_SRCS}
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
target_include_directories(react_codegen_RNFBAppCheckTurboModules PUBLIC . react/renderer/components/RNFBAppCheckTurboModules)
|
|
18
|
+
|
|
19
|
+
target_link_libraries(
|
|
20
|
+
react_codegen_RNFBAppCheckTurboModules
|
|
21
|
+
fbjni
|
|
22
|
+
jsi
|
|
23
|
+
# We need to link different libraries based on whether we are building rncore or not, that's necessary
|
|
24
|
+
# because we want to break a circular dependency between react_codegen_rncore and reactnative
|
|
25
|
+
reactnative
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
target_compile_options(
|
|
29
|
+
react_codegen_RNFBAppCheckTurboModules
|
|
30
|
+
PRIVATE
|
|
31
|
+
-DLOG_TAG=\"ReactNative\"
|
|
32
|
+
-fexceptions
|
|
33
|
+
-frtti
|
|
34
|
+
-std=c++20
|
|
35
|
+
-Wall
|
|
36
|
+
)
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
4
|
+
*
|
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
6
|
+
* once the code is regenerated.
|
|
7
|
+
*
|
|
8
|
+
* @generated by codegen project: GenerateModuleJniCpp.js
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#include "RNFBAppCheckTurboModules.h"
|
|
12
|
+
|
|
13
|
+
namespace facebook::react {
|
|
14
|
+
|
|
15
|
+
static facebook::jsi::Value __hostFunction_NativeRNFBTurboAppCheckSpecJSI_activate(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
16
|
+
static jmethodID cachedMethodId = nullptr;
|
|
17
|
+
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "activate", "(Ljava/lang/String;Ljava/lang/String;ZLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static facebook::jsi::Value __hostFunction_NativeRNFBTurboAppCheckSpecJSI_configureProvider(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
21
|
+
static jmethodID cachedMethodId = nullptr;
|
|
22
|
+
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "configureProvider", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
static facebook::jsi::Value __hostFunction_NativeRNFBTurboAppCheckSpecJSI_setTokenAutoRefreshEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
26
|
+
static jmethodID cachedMethodId = nullptr;
|
|
27
|
+
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, VoidKind, "setTokenAutoRefreshEnabled", "(Ljava/lang/String;Z)V", args, count, cachedMethodId);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
static facebook::jsi::Value __hostFunction_NativeRNFBTurboAppCheckSpecJSI_isTokenAutoRefreshEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
31
|
+
static jmethodID cachedMethodId = nullptr;
|
|
32
|
+
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "isTokenAutoRefreshEnabled", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
static facebook::jsi::Value __hostFunction_NativeRNFBTurboAppCheckSpecJSI_getToken(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
36
|
+
static jmethodID cachedMethodId = nullptr;
|
|
37
|
+
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "getToken", "(Ljava/lang/String;ZLcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static facebook::jsi::Value __hostFunction_NativeRNFBTurboAppCheckSpecJSI_getLimitedUseToken(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
41
|
+
static jmethodID cachedMethodId = nullptr;
|
|
42
|
+
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "getLimitedUseToken", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
static facebook::jsi::Value __hostFunction_NativeRNFBTurboAppCheckSpecJSI_addAppCheckListener(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
46
|
+
static jmethodID cachedMethodId = nullptr;
|
|
47
|
+
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, VoidKind, "addAppCheckListener", "(Ljava/lang/String;)V", args, count, cachedMethodId);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static facebook::jsi::Value __hostFunction_NativeRNFBTurboAppCheckSpecJSI_removeAppCheckListener(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
51
|
+
static jmethodID cachedMethodId = nullptr;
|
|
52
|
+
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, VoidKind, "removeAppCheckListener", "(Ljava/lang/String;)V", args, count, cachedMethodId);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
NativeRNFBTurboAppCheckSpecJSI::NativeRNFBTurboAppCheckSpecJSI(const JavaTurboModule::InitParams ¶ms)
|
|
56
|
+
: JavaTurboModule(params) {
|
|
57
|
+
methodMap_["activate"] = MethodMetadata {3, __hostFunction_NativeRNFBTurboAppCheckSpecJSI_activate};
|
|
58
|
+
methodMap_["configureProvider"] = MethodMetadata {3, __hostFunction_NativeRNFBTurboAppCheckSpecJSI_configureProvider};
|
|
59
|
+
methodMap_["setTokenAutoRefreshEnabled"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboAppCheckSpecJSI_setTokenAutoRefreshEnabled};
|
|
60
|
+
methodMap_["isTokenAutoRefreshEnabled"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboAppCheckSpecJSI_isTokenAutoRefreshEnabled};
|
|
61
|
+
methodMap_["getToken"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboAppCheckSpecJSI_getToken};
|
|
62
|
+
methodMap_["getLimitedUseToken"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboAppCheckSpecJSI_getLimitedUseToken};
|
|
63
|
+
methodMap_["addAppCheckListener"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboAppCheckSpecJSI_addAppCheckListener};
|
|
64
|
+
methodMap_["removeAppCheckListener"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboAppCheckSpecJSI_removeAppCheckListener};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
std::shared_ptr<TurboModule> RNFBAppCheckTurboModules_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams ¶ms) {
|
|
68
|
+
if (moduleName == "NativeRNFBTurboAppCheck") {
|
|
69
|
+
return std::make_shared<NativeRNFBTurboAppCheckSpecJSI>(params);
|
|
70
|
+
}
|
|
71
|
+
return nullptr;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
4
|
+
*
|
|
5
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
6
|
+
* once the code is regenerated.
|
|
7
|
+
*
|
|
8
|
+
* @generated by codegen project: GenerateModuleJniH.js
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#pragma once
|
|
12
|
+
|
|
13
|
+
#include <ReactCommon/JavaTurboModule.h>
|
|
14
|
+
#include <ReactCommon/TurboModule.h>
|
|
15
|
+
#include <jsi/jsi.h>
|
|
16
|
+
|
|
17
|
+
namespace facebook::react {
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* JNI C++ class for module 'NativeRNFBTurboAppCheck'
|
|
21
|
+
*/
|
|
22
|
+
class JSI_EXPORT NativeRNFBTurboAppCheckSpecJSI : public JavaTurboModule {
|
|
23
|
+
public:
|
|
24
|
+
NativeRNFBTurboAppCheckSpecJSI(const JavaTurboModule::InitParams ¶ms);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
JSI_EXPORT
|
|
29
|
+
std::shared_ptr<TurboModule> RNFBAppCheckTurboModules_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams ¶ms);
|
|
30
|
+
|
|
31
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GenerateModuleCpp.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#include "RNFBAppCheckTurboModulesJSI.h"
|
|
11
|
+
|
|
12
|
+
namespace facebook::react {
|
|
13
|
+
|
|
14
|
+
static jsi::Value __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_activate(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
15
|
+
return static_cast<NativeRNFBTurboAppCheckCxxSpecJSI *>(&turboModule)->activate(
|
|
16
|
+
rt,
|
|
17
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
|
|
18
|
+
count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt),
|
|
19
|
+
count <= 2 ? throw jsi::JSError(rt, "Expected argument in position 2 to be passed") : args[2].asBool()
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
static jsi::Value __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_configureProvider(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
23
|
+
return static_cast<NativeRNFBTurboAppCheckCxxSpecJSI *>(&turboModule)->configureProvider(
|
|
24
|
+
rt,
|
|
25
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
|
|
26
|
+
count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt),
|
|
27
|
+
count <= 2 || args[2].isNull() || args[2].isUndefined() ? std::nullopt : std::make_optional(args[2].asString(rt))
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
static jsi::Value __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_setTokenAutoRefreshEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
31
|
+
static_cast<NativeRNFBTurboAppCheckCxxSpecJSI *>(&turboModule)->setTokenAutoRefreshEnabled(
|
|
32
|
+
rt,
|
|
33
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
|
|
34
|
+
count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asBool()
|
|
35
|
+
);
|
|
36
|
+
return jsi::Value::undefined();
|
|
37
|
+
}
|
|
38
|
+
static jsi::Value __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_isTokenAutoRefreshEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
39
|
+
return static_cast<NativeRNFBTurboAppCheckCxxSpecJSI *>(&turboModule)->isTokenAutoRefreshEnabled(
|
|
40
|
+
rt,
|
|
41
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
static jsi::Value __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_getToken(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
45
|
+
return static_cast<NativeRNFBTurboAppCheckCxxSpecJSI *>(&turboModule)->getToken(
|
|
46
|
+
rt,
|
|
47
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
|
|
48
|
+
count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asBool()
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
static jsi::Value __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_getLimitedUseToken(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
52
|
+
return static_cast<NativeRNFBTurboAppCheckCxxSpecJSI *>(&turboModule)->getLimitedUseToken(
|
|
53
|
+
rt,
|
|
54
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
static jsi::Value __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_addAppCheckListener(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
58
|
+
static_cast<NativeRNFBTurboAppCheckCxxSpecJSI *>(&turboModule)->addAppCheckListener(
|
|
59
|
+
rt,
|
|
60
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
|
|
61
|
+
);
|
|
62
|
+
return jsi::Value::undefined();
|
|
63
|
+
}
|
|
64
|
+
static jsi::Value __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_removeAppCheckListener(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
65
|
+
static_cast<NativeRNFBTurboAppCheckCxxSpecJSI *>(&turboModule)->removeAppCheckListener(
|
|
66
|
+
rt,
|
|
67
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
|
|
68
|
+
);
|
|
69
|
+
return jsi::Value::undefined();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
NativeRNFBTurboAppCheckCxxSpecJSI::NativeRNFBTurboAppCheckCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
|
|
73
|
+
: TurboModule("NativeRNFBTurboAppCheck", jsInvoker) {
|
|
74
|
+
methodMap_["activate"] = MethodMetadata {3, __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_activate};
|
|
75
|
+
methodMap_["configureProvider"] = MethodMetadata {3, __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_configureProvider};
|
|
76
|
+
methodMap_["setTokenAutoRefreshEnabled"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_setTokenAutoRefreshEnabled};
|
|
77
|
+
methodMap_["isTokenAutoRefreshEnabled"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_isTokenAutoRefreshEnabled};
|
|
78
|
+
methodMap_["getToken"] = MethodMetadata {2, __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_getToken};
|
|
79
|
+
methodMap_["getLimitedUseToken"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_getLimitedUseToken};
|
|
80
|
+
methodMap_["addAppCheckListener"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_addAppCheckListener};
|
|
81
|
+
methodMap_["removeAppCheckListener"] = MethodMetadata {1, __hostFunction_NativeRNFBTurboAppCheckCxxSpecJSI_removeAppCheckListener};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
} // namespace facebook::react
|