@react-native-firebase/app-check 25.0.1 → 26.0.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.
Files changed (67) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/RNFBAppCheck.podspec +18 -6
  3. package/android/build.gradle +19 -0
  4. package/android/src/main/java/io/invertase/firebase/appcheck/{ReactNativeFirebaseAppCheckModule.java → NativeRNFBTurboAppCheck.java} +46 -34
  5. package/android/src/main/java/io/invertase/firebase/appcheck/ReactNativeFirebaseAppCheckPackage.java +1 -1
  6. package/android/src/main/java/io/invertase/firebase/appcheck/ReactNativeFirebaseAppCheckProvider.java +9 -0
  7. package/android/src/main/java/io/invertase/firebase/appcheck/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboAppCheckSpec.java +67 -0
  8. package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/CMakeLists.txt +36 -0
  9. package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/RNFBAppCheckTurboModules-generated.cpp +74 -0
  10. package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/RNFBAppCheckTurboModules.h +31 -0
  11. package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/react/renderer/components/RNFBAppCheckTurboModules/RNFBAppCheckTurboModulesJSI-generated.cpp +85 -0
  12. package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/react/renderer/components/RNFBAppCheckTurboModules/RNFBAppCheckTurboModulesJSI.h +174 -0
  13. package/app.plugin.js +1 -1
  14. package/dist/module/index.js +210 -6
  15. package/dist/module/index.js.map +1 -1
  16. package/dist/module/version.js +1 -1
  17. package/dist/typescript/lib/index.d.ts +19 -4
  18. package/dist/typescript/lib/index.d.ts.map +1 -1
  19. package/dist/typescript/lib/types/appcheck.d.ts +5 -0
  20. package/dist/typescript/lib/types/appcheck.d.ts.map +1 -1
  21. package/dist/typescript/lib/types/internal.d.ts +1 -1
  22. package/dist/typescript/lib/types/internal.d.ts.map +1 -1
  23. package/dist/typescript/lib/version.d.ts +1 -1
  24. package/ios/RNFBAppCheck/RNFBAppCheckModule.h +3 -8
  25. package/ios/RNFBAppCheck/{RNFBAppCheckModule.m → RNFBAppCheckModule.mm} +66 -43
  26. package/ios/RNFBAppCheck/RNFBAppCheckProvider.m +11 -1
  27. package/ios/RNFBAppCheck.xcodeproj/project.pbxproj +8 -8
  28. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  29. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  30. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  31. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  32. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  33. package/ios/generated/RCTThirdPartyComponentsProvider.mm +23 -0
  34. package/ios/generated/RNFBAppCheckTurboModules/RNFBAppCheckTurboModules-generated.mm +88 -0
  35. package/ios/generated/RNFBAppCheckTurboModules/RNFBAppCheckTurboModules.h +85 -0
  36. package/ios/generated/RNFBAppCheckTurboModulesJSI-generated.cpp +85 -0
  37. package/ios/generated/RNFBAppCheckTurboModulesJSI.h +174 -0
  38. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  39. package/lib/index.ts +335 -8
  40. package/lib/types/appcheck.ts +6 -0
  41. package/lib/types/internal.ts +1 -1
  42. package/lib/version.ts +1 -1
  43. package/package.json +30 -5
  44. package/plugin/build/app.plugin.d.ts +2 -0
  45. package/plugin/build/app.plugin.js +6 -0
  46. package/plugin/build/ios/appDelegate.js +18 -4
  47. package/plugin/src/app.plugin.ts +3 -0
  48. package/plugin/src/ios/appDelegate.ts +23 -4
  49. package/plugin/tsconfig.tsbuildinfo +1 -1
  50. package/react-native.config.js +10 -0
  51. package/specs/NativeRNFBTurboAppCheck.ts +27 -0
  52. package/typedoc.json +1 -1
  53. package/dist/module/modular.js +0 -93
  54. package/dist/module/modular.js.map +0 -1
  55. package/dist/module/namespaced.js +0 -194
  56. package/dist/module/namespaced.js.map +0 -1
  57. package/dist/module/types/namespaced.js +0 -60
  58. package/dist/module/types/namespaced.js.map +0 -1
  59. package/dist/typescript/lib/modular.d.ts +0 -56
  60. package/dist/typescript/lib/modular.d.ts.map +0 -1
  61. package/dist/typescript/lib/namespaced.d.ts +0 -12
  62. package/dist/typescript/lib/namespaced.d.ts.map +0 -1
  63. package/dist/typescript/lib/types/namespaced.d.ts +0 -358
  64. package/dist/typescript/lib/types/namespaced.d.ts.map +0 -1
  65. package/lib/modular.ts +0 -157
  66. package/lib/namespaced.ts +0 -286
  67. package/lib/types/namespaced.ts +0 -422
package/CHANGELOG.md CHANGED
@@ -3,6 +3,42 @@
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.0.0](https://github.com/invertase/react-native-firebase/compare/v25.1.0...v26.0.0) (2026-07-29)
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ - logEvent, initializeAppCheck, and initializeFirestore return
11
+ synchronously; remove await and .then() chains on these APIs.
12
+
13
+ * Analytics: align logEvent return type with firebase-js-sdk sync void.
14
+ * App Check: align initializeAppCheck with sync AppCheck return.
15
+ * Firestore: align initializeFirestore with sync Firestore return.
16
+ * Firestore: export aggregateFieldEqual for aggregate query parity.
17
+ * Remote Config: accept RemoteConfigOptions in getRemoteConfig.
18
+ * Remote Config: document native FetchStatus literals as intentional drift.
19
+ * Docs: add firebase-js-sdk API parity improvements to v26 migration guide.
20
+
21
+ - **app-check:** migrate app-check to TurboModules
22
+
23
+ - refactor!(types): align modular APIs with firebase-js-sdk sync signatures ([b42d1f7](https://github.com/invertase/react-native-firebase/commit/b42d1f7dd2629184e26ab71936ab1d47878d0f64))
24
+
25
+ ### Features
26
+
27
+ - **app-check:** migrate app-check to TurboModules ([b93a70a](https://github.com/invertase/react-native-firebase/commit/b93a70a7398538750528ce144cb8e367fd25a0da))
28
+
29
+ ### Bug Fixes
30
+
31
+ - add codegen verify and spec-native parity tests ([49d9f1b](https://github.com/invertase/react-native-firebase/commit/49d9f1baba4fc83c1dd4983f582bbd7352d78809))
32
+ - **app-check:** guard missing initializeAppCheck options at runtime ([a4b3407](https://github.com/invertase/react-native-firebase/commit/a4b34073b1e9471826bd60ceb75e580e9b471651))
33
+ - **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))
34
+ - **ios:** private codegen headers and bridging-safe AppCheck module ([266d7e1](https://github.com/invertase/react-native-firebase/commit/266d7e10020662bfd357d1795bc5f6cfde54f7b7))
35
+ - **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)
36
+ - **types:** align compare-types modular API with firebase-js-sdk ([5376e75](https://github.com/invertase/react-native-firebase/commit/5376e757f7dd7f7cffc9907c652d873d2403e23f))
37
+
38
+ ## [25.1.0](https://github.com/invertase/react-native-firebase/compare/v25.0.1...v25.1.0) (2026-06-25)
39
+
40
+ **Note:** Version bump only for package @react-native-firebase/app-check
41
+
6
42
  ## [25.0.1](https://github.com/invertase/react-native-firebase/compare/v25.0.0...v25.0.1) (2026-06-23)
7
43
 
8
44
  **Note:** Version bump only for package @react-native-firebase/app-check
@@ -27,15 +27,27 @@ Pod::Spec.new do |s|
27
27
  s.ios.deployment_target = firebase_ios_target
28
28
  s.macos.deployment_target = firebase_macos_target
29
29
  s.tvos.deployment_target = firebase_tvos_target
30
- s.source_files = 'ios/**/*.{h,m}'
30
+ s.source_files = 'ios/**/*.{h,m,mm,cpp}'
31
+ s.public_header_files = [
32
+ 'ios/RNFBAppCheck/RNFBAppCheckModule.h',
33
+ ]
34
+ s.private_header_files = [
35
+ 'ios/RNFBAppCheck/RNFBAppCheckProvider.h',
36
+ 'ios/RNFBAppCheck/RNFBAppCheckProviderFactory.h',
37
+ 'ios/generated/**/*.h',
38
+ ]
39
+ s.exclude_files = 'ios/generated/RCTThirdPartyComponentsProvider.*', 'ios/generated/RCTAppDependencyProvider.*', 'ios/generated/RCTModuleProviders.*', 'ios/generated/RCTModulesConformingToProtocolsProvider.*', 'ios/generated/RCTUnstableModulesRequiringMainQueueSetupProvider.*'
40
+
41
+ s.pod_target_xcconfig = {
42
+ 'HEADER_SEARCH_PATHS' => '"$(PODS_TARGET_SRCROOT)/ios/generated/RNFBAppCheckTurboModules" "$(PODS_TARGET_SRCROOT)/ios/generated"',
43
+ }
31
44
 
32
45
  s.dependency 'RNFBApp'
33
46
 
34
- # React Native dependencies
35
- if defined?(install_modules_dependencies()) != nil
36
- install_modules_dependencies(s);
37
- else
38
- s.dependency "React-Core"
47
+ install_modules_dependencies(s);
48
+
49
+ if defined?(ENV["RCT_NEW_ARCH_ENABLED"]) != nil && (ENV["RCT_NEW_ARCH_ENABLED"] == '0')
50
+ raise "#{s.name} requires New Architecture. Enable New Architecture to use this module"
39
51
  end
40
52
 
41
53
  if defined?($FirebaseSDKVersion)
@@ -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.react.bridge.*;
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 ReactNativeFirebaseAppCheckModule extends ReactNativeFirebaseModule {
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
- ReactNativeFirebaseAppCheckProviderFactory providerFactory =
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 = getContext().getPackageManager();
103
+ PackageManager pm = getReactApplicationContext().getPackageManager();
84
104
  if (pm != null) {
85
105
  isDebuggable =
86
106
  (0
87
- != (pm.getApplicationInfo(getContext().getPackageName(), 0).flags
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
- @ReactMethod
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
- @ReactMethod
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
- @ReactMethod
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
- @ReactMethod
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
- return Tasks.await(
189
- FirebaseAppCheck.getInstance(firebaseApp).getAppCheckToken(forceRefresh));
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
- @ReactMethod
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
- return Tasks.await(
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
- /** Add a new token change listener - if one doesn't exist already */
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); // for js side distribution
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
- /** Removes the current token change listener */
267
- @ReactMethod
279
+ @Override
268
280
  public void removeAppCheckListener(String appName) {
269
281
  Log.d(TAG, "removeAppCheckListener " + appName);
270
282
 
@@ -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 ReactNativeFirebaseAppCheckModule(reactContext));
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 &params)
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 &params) {
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 &params);
25
+ };
26
+
27
+
28
+ JSI_EXPORT
29
+ std::shared_ptr<TurboModule> RNFBAppCheckTurboModules_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params);
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