@react-native-firebase/app-check 26.3.3 → 27.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.
- package/CHANGELOG.md +22 -0
- package/RNFBAppCheck.podspec +8 -2
- package/android/build.gradle +5 -0
- package/android/src/main/java/io/invertase/firebase/appcheck/AppCheckListenerHandle.java +26 -0
- package/android/src/main/java/io/invertase/firebase/appcheck/NativeRNFBTurboAppCheck.java +24 -44
- package/android/src/main/java/io/invertase/firebase/appcheck/RNFBAppCheckListenerRegistry.kt +72 -0
- package/android/src/test/java/io/invertase/firebase/appcheck/RNFBAppCheckListenerRegistryTest.java +171 -0
- package/dist/module/index.js +1 -2
- package/dist/module/index.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/lib/index.d.ts +1 -1
- package/dist/typescript/lib/index.d.ts.map +1 -1
- package/dist/typescript/lib/version.d.ts +1 -1
- package/ios/RNFBAppCheck/RNFBAppCheckHelper.h +61 -0
- package/ios/RNFBAppCheck/RNFBAppCheckHelper.m +213 -0
- package/ios/RNFBAppCheck/RNFBAppCheckModule.mm +22 -155
- package/ios/RNFBAppCheck/RNFBAppCheckRejectCodeMapper.swift +50 -0
- package/ios/RNFBAppCheck.xcodeproj/project.pbxproj +14 -0
- package/ios/RNFBAppCheckUnitTests/HostStubs/Firebase/FIRAppCheckHostStub.m +109 -0
- package/ios/RNFBAppCheckUnitTests/HostStubs/Firebase/Firebase.h +47 -0
- package/ios/RNFBAppCheckUnitTests/HostStubs/RNFBApp/RCTConvert+FIRApp.h +13 -0
- package/ios/RNFBAppCheckUnitTests/HostStubs/RNFBApp/RCTConvert+FIRAppHostStub.m +27 -0
- package/ios/RNFBAppCheckUnitTests/HostStubs/RNFBApp/RNFBSharedUtils.h +18 -0
- package/ios/RNFBAppCheckUnitTests/HostStubs/RNFBApp/RNFBSharedUtilsHostStub.m +18 -0
- package/ios/RNFBAppCheckUnitTests/HostStubs/RNFBAppCheck/RNFBAppCheckProviderHostStub.m +48 -0
- package/ios/RNFBAppCheckUnitTests/HostStubs/React/RCTBridgeModule.h +10 -0
- package/ios/RNFBAppCheckUnitTests/RNFBAppCheckHelperHostStubTests.m +197 -0
- package/ios/RNFBAppCheckUnitTests/RNFBAppCheckRejectCodeMapperTests.swift +85 -0
- package/ios/RNFBAppCheckUnitTests/RNFBAppCheckUnitTests.xcodeproj/project.pbxproj +277 -0
- package/ios/RNFBAppCheckUnitTests/RNFBAppCheckUnitTests.xcodeproj/xcshareddata/xcschemes/RNFBAppCheckUnitTests.xcscheme +69 -0
- package/lib/index.ts +1 -1
- package/lib/version.ts +1 -1
- package/package.json +5 -4
- package/plugin/build/ios/appDelegate.js +12 -13
- package/plugin/src/ios/appDelegate.ts +13 -14
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
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
|
+
## [27.0.0](https://github.com/invertase/react-native-firebase/compare/v26.4.0...v27.0.0) (2026-10-19)
|
|
7
|
+
|
|
8
|
+
### ⚠ BREAKING CHANGES
|
|
9
|
+
|
|
10
|
+
- **app, sdk:** bump Firebase Android 35, Apple 13, and JS 13
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- **app, sdk:** bump Firebase Android 35, Apple 13, and JS 13 ([0ca03d1](https://github.com/invertase/react-native-firebase/commit/0ca03d11b0c271fb37cfbee8a0c3074a21969f0b))
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
- **app-check:** drop the unused indent fallback ([c147145](https://github.com/invertase/react-native-firebase/commit/c1471450b06019dd718f59a8a1b4c5bf941cc1bb))
|
|
19
|
+
- **app-check:** install the provider factory before configure ([f366a64](https://github.com/invertase/react-native-firebase/commit/f366a640bd8256c83cfab9a3516ed95f0722534f))
|
|
20
|
+
- **app,database:** resolve platform native module when bundlers apply package exports ([959d91f](https://github.com/invertase/react-native-firebase/commit/959d91fc79d7155d1d9a08e1f836789e6e6d6156))
|
|
21
|
+
|
|
22
|
+
## [26.4.0](https://github.com/invertase/react-native-firebase/compare/v26.3.3...v26.4.0) (2026-09-05)
|
|
23
|
+
|
|
24
|
+
### Bug Fixes
|
|
25
|
+
|
|
26
|
+
- **app-check:** use RNFBHandleMap for app-check listeners ([b77e645](https://github.com/invertase/react-native-firebase/commit/b77e645cc2b251a6c46314106a2aa9a88b5b808b))
|
|
27
|
+
|
|
6
28
|
## [26.3.3](https://github.com/invertase/react-native-firebase/compare/v26.3.2...v26.3.3) (2026-09-01)
|
|
7
29
|
|
|
8
30
|
### Reverts
|
package/RNFBAppCheck.podspec
CHANGED
|
@@ -28,18 +28,24 @@ Pod::Spec.new do |s|
|
|
|
28
28
|
s.ios.deployment_target = firebase_ios_target
|
|
29
29
|
s.macos.deployment_target = firebase_macos_target
|
|
30
30
|
s.tvos.deployment_target = firebase_tvos_target
|
|
31
|
-
s.source_files = 'ios/**/*.{h,m,mm,cpp}'
|
|
31
|
+
s.source_files = 'ios/**/*.{h,m,mm,cpp,swift}'
|
|
32
32
|
s.public_header_files = [
|
|
33
33
|
'ios/RNFBAppCheck/RNFBAppCheckModule.h',
|
|
34
34
|
]
|
|
35
35
|
s.private_header_files = [
|
|
36
|
+
'ios/RNFBAppCheck/RNFBAppCheckHelper.h',
|
|
36
37
|
'ios/RNFBAppCheck/RNFBAppCheckProvider.h',
|
|
37
38
|
'ios/RNFBAppCheck/RNFBAppCheckProviderFactory.h',
|
|
38
39
|
'ios/generated/**/*.h',
|
|
39
40
|
]
|
|
40
|
-
|
|
41
|
+
# CocoaPods FileList uses FNM_PATHNAME: `ios/*UnitTests/**` does not match nested
|
|
42
|
+
# files under HostStubs; use `ios/*UnitTests/**/*` (same as sibling packages).
|
|
43
|
+
s.exclude_files = 'ios/generated/RCTThirdPartyComponentsProvider.*', 'ios/generated/RCTAppDependencyProvider.*', 'ios/generated/RCTModuleProviders.*', 'ios/generated/RCTModulesConformingToProtocolsProvider.*', 'ios/generated/RCTUnstableModulesRequiringMainQueueSetupProvider.*', 'ios/*UnitTests/**/*'
|
|
44
|
+
s.swift_version = '5.10'
|
|
41
45
|
|
|
46
|
+
# DEFINES_MODULE is required for the generated RNFBAppCheck-Swift.h interface.
|
|
42
47
|
s.pod_target_xcconfig = {
|
|
48
|
+
"DEFINES_MODULE" => "YES",
|
|
43
49
|
'HEADER_SEARCH_PATHS' => '"$(PODS_TARGET_SRCROOT)/ios/generated/RNFBAppCheckTurboModules" "$(PODS_TARGET_SRCROOT)/ios/generated"',
|
|
44
50
|
"CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES" => "YES",
|
|
45
51
|
}
|
package/android/build.gradle
CHANGED
|
@@ -13,6 +13,7 @@ buildscript {
|
|
|
13
13
|
|
|
14
14
|
dependencies {
|
|
15
15
|
classpath("com.android.tools.build:gradle:8.4.0")
|
|
16
|
+
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${project.findProperty('kotlinVersion') ?: '2.4.0'}")
|
|
16
17
|
}
|
|
17
18
|
}
|
|
18
19
|
}
|
|
@@ -21,6 +22,8 @@ plugins {
|
|
|
21
22
|
id 'io.invertase.gradle.build' version '1.5'
|
|
22
23
|
}
|
|
23
24
|
|
|
25
|
+
apply plugin: "org.jetbrains.kotlin.android"
|
|
26
|
+
|
|
24
27
|
def appProject
|
|
25
28
|
if (findProject(':@react-native-firebase_app')) {
|
|
26
29
|
appProject = project(':@react-native-firebase_app')
|
|
@@ -103,6 +106,8 @@ dependencies {
|
|
|
103
106
|
implementation platform("com.google.firebase:firebase-bom:${ReactNative.ext.getVersion('firebase', 'bom')}")
|
|
104
107
|
implementation 'com.google.firebase:firebase-appcheck-playintegrity'
|
|
105
108
|
implementation "com.google.firebase:firebase-appcheck-debug"
|
|
109
|
+
|
|
110
|
+
testImplementation "junit:junit:4.13.2"
|
|
106
111
|
}
|
|
107
112
|
|
|
108
113
|
ReactNative.shared.applyPackageVersion()
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
package io.invertase.firebase.appcheck;
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this library except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Detach surface stored in {@link RNFBAppCheckListenerRegistry}. Invoked after {@code get}/{@code
|
|
22
|
+
* take}/{@code takeAll}, never under the HandleMap lock.
|
|
23
|
+
*/
|
|
24
|
+
interface AppCheckListenerHandle {
|
|
25
|
+
void remove();
|
|
26
|
+
}
|
|
@@ -36,9 +36,6 @@ import io.invertase.firebase.common.ReactNativeFirebaseJSON;
|
|
|
36
36
|
import io.invertase.firebase.common.ReactNativeFirebaseMeta;
|
|
37
37
|
import io.invertase.firebase.common.ReactNativeFirebasePreferences;
|
|
38
38
|
import io.invertase.firebase.common.TaskExecutorService;
|
|
39
|
-
import java.util.HashMap;
|
|
40
|
-
import java.util.Iterator;
|
|
41
|
-
import java.util.Map;
|
|
42
39
|
import java.util.concurrent.ExecutorService;
|
|
43
40
|
|
|
44
41
|
public class NativeRNFBTurboAppCheck extends NativeRNFBTurboAppCheckSpec {
|
|
@@ -46,8 +43,8 @@ public class NativeRNFBTurboAppCheck extends NativeRNFBTurboAppCheckSpec {
|
|
|
46
43
|
private static final String LOGTAG = "RNFBAppCheck";
|
|
47
44
|
private static final String KEY_APPCHECK_TOKEN_REFRESH_ENABLED = "app_check_token_auto_refresh";
|
|
48
45
|
|
|
49
|
-
private static
|
|
50
|
-
new
|
|
46
|
+
private static final RNFBAppCheckListenerRegistry appCheckListeners =
|
|
47
|
+
new RNFBAppCheckListenerRegistry();
|
|
51
48
|
|
|
52
49
|
private final TaskExecutorService executorService;
|
|
53
50
|
private final ReactNativeFirebaseAppCheckProviderFactory providerFactory =
|
|
@@ -116,18 +113,7 @@ public class NativeRNFBTurboAppCheck extends NativeRNFBTurboAppCheckSpec {
|
|
|
116
113
|
super.invalidate();
|
|
117
114
|
Log.d(TAG, "instance-destroyed");
|
|
118
115
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
while (appCheckListenerIterator.hasNext()) {
|
|
122
|
-
Map.Entry pair = (Map.Entry) appCheckListenerIterator.next();
|
|
123
|
-
String appName = (String) pair.getKey();
|
|
124
|
-
FirebaseApp firebaseApp = FirebaseApp.getInstance(appName);
|
|
125
|
-
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(firebaseApp);
|
|
126
|
-
FirebaseAppCheck.AppCheckListener mAppCheckListener =
|
|
127
|
-
(FirebaseAppCheck.AppCheckListener) pair.getValue();
|
|
128
|
-
firebaseAppCheck.removeAppCheckListener(mAppCheckListener);
|
|
129
|
-
appCheckListenerIterator.remove();
|
|
130
|
-
}
|
|
116
|
+
appCheckListeners.takeAllAndRemove();
|
|
131
117
|
|
|
132
118
|
executorService.shutdown();
|
|
133
119
|
}
|
|
@@ -256,38 +242,32 @@ public class NativeRNFBTurboAppCheck extends NativeRNFBTurboAppCheckSpec {
|
|
|
256
242
|
FirebaseApp firebaseApp = FirebaseApp.getInstance(appName);
|
|
257
243
|
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(firebaseApp);
|
|
258
244
|
|
|
259
|
-
if (
|
|
260
|
-
|
|
261
|
-
appCheckToken -> {
|
|
262
|
-
WritableMap eventBody = Arguments.createMap();
|
|
263
|
-
eventBody.putString("appName", appName);
|
|
264
|
-
eventBody.putString("token", appCheckToken.getToken());
|
|
265
|
-
eventBody.putDouble("expireTimeMillis", appCheckToken.getExpireTimeMillis());
|
|
266
|
-
|
|
267
|
-
ReactNativeFirebaseEventEmitter emitter =
|
|
268
|
-
ReactNativeFirebaseEventEmitter.getSharedInstance();
|
|
269
|
-
ReactNativeFirebaseEvent event =
|
|
270
|
-
new ReactNativeFirebaseEvent("appCheck_token_changed", eventBody, appName);
|
|
271
|
-
emitter.sendEvent(event);
|
|
272
|
-
};
|
|
273
|
-
|
|
274
|
-
firebaseAppCheck.addAppCheckListener(newAppCheckListener);
|
|
275
|
-
mAppCheckListeners.put(appName, newAppCheckListener);
|
|
245
|
+
if (appCheckListeners.get(appName) != null) {
|
|
246
|
+
return;
|
|
276
247
|
}
|
|
248
|
+
|
|
249
|
+
FirebaseAppCheck.AppCheckListener newAppCheckListener =
|
|
250
|
+
appCheckToken -> {
|
|
251
|
+
WritableMap eventBody = Arguments.createMap();
|
|
252
|
+
eventBody.putString("appName", appName);
|
|
253
|
+
eventBody.putString("token", appCheckToken.getToken());
|
|
254
|
+
eventBody.putDouble("expireTimeMillis", appCheckToken.getExpireTimeMillis());
|
|
255
|
+
|
|
256
|
+
ReactNativeFirebaseEventEmitter emitter =
|
|
257
|
+
ReactNativeFirebaseEventEmitter.getSharedInstance();
|
|
258
|
+
ReactNativeFirebaseEvent event =
|
|
259
|
+
new ReactNativeFirebaseEvent("appCheck_token_changed", eventBody, appName);
|
|
260
|
+
emitter.sendEvent(event);
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
firebaseAppCheck.addAppCheckListener(newAppCheckListener);
|
|
264
|
+
appCheckListeners.putOrDiscard(
|
|
265
|
+
appName, () -> firebaseAppCheck.removeAppCheckListener(newAppCheckListener));
|
|
277
266
|
}
|
|
278
267
|
|
|
279
268
|
@Override
|
|
280
269
|
public void removeAppCheckListener(String appName) {
|
|
281
270
|
Log.d(TAG, "removeAppCheckListener " + appName);
|
|
282
|
-
|
|
283
|
-
FirebaseApp firebaseApp = FirebaseApp.getInstance(appName);
|
|
284
|
-
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(firebaseApp);
|
|
285
|
-
|
|
286
|
-
FirebaseAppCheck.AppCheckListener mAppCheckListener = mAppCheckListeners.get(appName);
|
|
287
|
-
|
|
288
|
-
if (mAppCheckListener != null) {
|
|
289
|
-
firebaseAppCheck.removeAppCheckListener(mAppCheckListener);
|
|
290
|
-
mAppCheckListeners.remove(appName);
|
|
291
|
-
}
|
|
271
|
+
appCheckListeners.takeAndRemove(appName);
|
|
292
272
|
}
|
|
293
273
|
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
package io.invertase.firebase.appcheck
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this library except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import io.invertase.firebase.common.RNFBHandleCollisionException
|
|
21
|
+
import io.invertase.firebase.common.RNFBHandleMap
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* App Check token listener map. Unique [put] / [putOrDiscard]; callers [take] or
|
|
25
|
+
* [takeAllAndRemove] then `remove()` outside the HandleMap lock. Skip-if-registered is
|
|
26
|
+
* `get(appName) != null`.
|
|
27
|
+
*/
|
|
28
|
+
internal class RNFBAppCheckListenerRegistry {
|
|
29
|
+
private val map = RNFBHandleMap<String, AppCheckListenerHandle?>()
|
|
30
|
+
|
|
31
|
+
@Throws(RNFBHandleCollisionException::class)
|
|
32
|
+
fun put(
|
|
33
|
+
appName: String,
|
|
34
|
+
handle: AppCheckListenerHandle?,
|
|
35
|
+
) {
|
|
36
|
+
map.put(appName, handle)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Unique put. On collision, `remove()` the incoming handle and leave the existing mapping.
|
|
41
|
+
*
|
|
42
|
+
* @return true if stored
|
|
43
|
+
*/
|
|
44
|
+
fun putOrDiscard(
|
|
45
|
+
appName: String,
|
|
46
|
+
handle: AppCheckListenerHandle?,
|
|
47
|
+
): Boolean {
|
|
48
|
+
try {
|
|
49
|
+
map.put(appName, handle)
|
|
50
|
+
return true
|
|
51
|
+
} catch (_: RNFBHandleCollisionException) {
|
|
52
|
+
handle?.remove()
|
|
53
|
+
return false
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
fun get(appName: String): AppCheckListenerHandle? = map.get(appName)
|
|
58
|
+
|
|
59
|
+
fun take(appName: String): AppCheckListenerHandle? = map.take(appName)
|
|
60
|
+
|
|
61
|
+
fun takeAndRemove(appName: String) {
|
|
62
|
+
val handle = map.take(appName)
|
|
63
|
+
handle?.remove()
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
fun takeAllAndRemove() {
|
|
67
|
+
val remaining = map.takeAll()
|
|
68
|
+
for (handle in remaining) {
|
|
69
|
+
handle?.remove()
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
package/android/src/test/java/io/invertase/firebase/appcheck/RNFBAppCheckListenerRegistryTest.java
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
package io.invertase.firebase.appcheck;
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this library except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import static org.junit.Assert.assertEquals;
|
|
21
|
+
import static org.junit.Assert.assertFalse;
|
|
22
|
+
import static org.junit.Assert.assertNull;
|
|
23
|
+
import static org.junit.Assert.assertSame;
|
|
24
|
+
import static org.junit.Assert.assertTrue;
|
|
25
|
+
import static org.junit.Assert.fail;
|
|
26
|
+
|
|
27
|
+
import io.invertase.firebase.common.RNFBHandleCollisionException;
|
|
28
|
+
import org.junit.Test;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* JVM coverage for {@link RNFBAppCheckListenerRegistry}. Does not instantiate {@code
|
|
32
|
+
* NativeRNFBTurboAppCheck} (React Native / Firebase) — D12.
|
|
33
|
+
*/
|
|
34
|
+
public class RNFBAppCheckListenerRegistryTest {
|
|
35
|
+
|
|
36
|
+
private static final class FakeHandle implements AppCheckListenerHandle {
|
|
37
|
+
int removeCount;
|
|
38
|
+
|
|
39
|
+
@Override
|
|
40
|
+
public void remove() {
|
|
41
|
+
removeCount++;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@Test
|
|
46
|
+
public void putGetTake_happyPath() throws Exception {
|
|
47
|
+
RNFBAppCheckListenerRegistry registry = new RNFBAppCheckListenerRegistry();
|
|
48
|
+
FakeHandle handle = new FakeHandle();
|
|
49
|
+
registry.put("app", handle);
|
|
50
|
+
assertSame(handle, registry.get("app"));
|
|
51
|
+
assertSame(handle, registry.take("app"));
|
|
52
|
+
assertNull(registry.get("app"));
|
|
53
|
+
assertEquals(0, handle.removeCount);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@Test
|
|
57
|
+
public void put_occupiedId_throwsCollision() throws Exception {
|
|
58
|
+
RNFBAppCheckListenerRegistry registry = new RNFBAppCheckListenerRegistry();
|
|
59
|
+
FakeHandle first = new FakeHandle();
|
|
60
|
+
registry.put("app", first);
|
|
61
|
+
try {
|
|
62
|
+
registry.put("app", new FakeHandle());
|
|
63
|
+
fail("expected RNFBHandleCollisionException");
|
|
64
|
+
} catch (RNFBHandleCollisionException e) {
|
|
65
|
+
assertTrue(e.getMessage().contains("app"));
|
|
66
|
+
assertSame(first, registry.get("app"));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@Test
|
|
71
|
+
public void get_whenFree_isNull() {
|
|
72
|
+
RNFBAppCheckListenerRegistry registry = new RNFBAppCheckListenerRegistry();
|
|
73
|
+
assertNull(registry.get("app"));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@Test
|
|
77
|
+
public void get_whenOccupied_returnsHandle() throws Exception {
|
|
78
|
+
RNFBAppCheckListenerRegistry registry = new RNFBAppCheckListenerRegistry();
|
|
79
|
+
FakeHandle first = new FakeHandle();
|
|
80
|
+
registry.put("app", first);
|
|
81
|
+
assertSame(first, registry.get("app"));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
@Test
|
|
85
|
+
public void putOrDiscard_collision_removesIncoming() throws Exception {
|
|
86
|
+
RNFBAppCheckListenerRegistry registry = new RNFBAppCheckListenerRegistry();
|
|
87
|
+
FakeHandle first = new FakeHandle();
|
|
88
|
+
FakeHandle duplicate = new FakeHandle();
|
|
89
|
+
registry.put("app", first);
|
|
90
|
+
assertFalse(registry.putOrDiscard("app", duplicate));
|
|
91
|
+
assertEquals(1, duplicate.removeCount);
|
|
92
|
+
assertEquals(0, first.removeCount);
|
|
93
|
+
assertSame(first, registry.get("app"));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@Test
|
|
97
|
+
public void putOrDiscard_storesWhenFree() {
|
|
98
|
+
RNFBAppCheckListenerRegistry registry = new RNFBAppCheckListenerRegistry();
|
|
99
|
+
FakeHandle handle = new FakeHandle();
|
|
100
|
+
assertTrue(registry.putOrDiscard("app", handle));
|
|
101
|
+
assertSame(handle, registry.get("app"));
|
|
102
|
+
assertEquals(0, handle.removeCount);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@Test
|
|
106
|
+
public void putOrDiscard_collision_nullIncoming_isNoOp() throws Exception {
|
|
107
|
+
RNFBAppCheckListenerRegistry registry = new RNFBAppCheckListenerRegistry();
|
|
108
|
+
FakeHandle first = new FakeHandle();
|
|
109
|
+
registry.put("app", first);
|
|
110
|
+
assertFalse(registry.putOrDiscard("app", null));
|
|
111
|
+
assertSame(first, registry.get("app"));
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
@Test
|
|
115
|
+
public void takeAndRemove_removesAfterTake() throws Exception {
|
|
116
|
+
RNFBAppCheckListenerRegistry registry = new RNFBAppCheckListenerRegistry();
|
|
117
|
+
FakeHandle handle = new FakeHandle();
|
|
118
|
+
registry.put("app", handle);
|
|
119
|
+
registry.takeAndRemove("app");
|
|
120
|
+
assertEquals(1, handle.removeCount);
|
|
121
|
+
assertNull(registry.get("app"));
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@Test
|
|
125
|
+
public void takeAndRemove_missingKey_isNoOp() {
|
|
126
|
+
RNFBAppCheckListenerRegistry registry = new RNFBAppCheckListenerRegistry();
|
|
127
|
+
registry.takeAndRemove("missing");
|
|
128
|
+
assertNull(registry.get("missing"));
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@Test
|
|
132
|
+
public void takeAllAndRemove_removesSnapshotAndLeavesEmpty() throws Exception {
|
|
133
|
+
RNFBAppCheckListenerRegistry registry = new RNFBAppCheckListenerRegistry();
|
|
134
|
+
FakeHandle a = new FakeHandle();
|
|
135
|
+
FakeHandle b = new FakeHandle();
|
|
136
|
+
registry.put("a", a);
|
|
137
|
+
registry.put("b", b);
|
|
138
|
+
registry.takeAllAndRemove();
|
|
139
|
+
assertEquals(1, a.removeCount);
|
|
140
|
+
assertEquals(1, b.removeCount);
|
|
141
|
+
assertNull(registry.get("a"));
|
|
142
|
+
assertNull(registry.get("b"));
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
@Test
|
|
146
|
+
public void takeAllAndRemove_empty_isNoOp() {
|
|
147
|
+
RNFBAppCheckListenerRegistry registry = new RNFBAppCheckListenerRegistry();
|
|
148
|
+
registry.takeAllAndRemove();
|
|
149
|
+
assertNull(registry.get("app"));
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
@Test
|
|
153
|
+
public void takeAllAndRemove_nullHandle_isNoOp() throws Exception {
|
|
154
|
+
RNFBAppCheckListenerRegistry registry = new RNFBAppCheckListenerRegistry();
|
|
155
|
+
registry.put("app", null);
|
|
156
|
+
registry.takeAllAndRemove();
|
|
157
|
+
assertNull(registry.get("app"));
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
@Test
|
|
161
|
+
public void put_afterTake_allowsReuse() throws Exception {
|
|
162
|
+
RNFBAppCheckListenerRegistry registry = new RNFBAppCheckListenerRegistry();
|
|
163
|
+
FakeHandle first = new FakeHandle();
|
|
164
|
+
FakeHandle second = new FakeHandle();
|
|
165
|
+
registry.put("app", first);
|
|
166
|
+
assertSame(first, registry.take("app"));
|
|
167
|
+
registry.put("app", second);
|
|
168
|
+
assertSame(second, registry.get("app"));
|
|
169
|
+
assertEquals(0, first.removeCount);
|
|
170
|
+
}
|
|
171
|
+
}
|
package/dist/module/index.js
CHANGED
|
@@ -18,10 +18,9 @@
|
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
import { isBoolean, isIOS, isObject, isString, isUndefined, isOther, parseListenerOrObserver } from '@react-native-firebase/app/dist/module/common';
|
|
21
|
-
import { FirebaseModule, getOrCreateModularInstance } from '@react-native-firebase/app/dist/module/internal';
|
|
21
|
+
import { FirebaseModule, getOrCreateModularInstance, setReactNativeModule } from '@react-native-firebase/app/dist/module/internal';
|
|
22
22
|
import "./types/internal.js";
|
|
23
23
|
import { Platform } from 'react-native';
|
|
24
|
-
import { setReactNativeModule } from '@react-native-firebase/app/dist/module/internal/nativeModule';
|
|
25
24
|
import fallBackModule from './web/RNFBAppCheckModule';
|
|
26
25
|
import { version } from "./version.js";
|
|
27
26
|
import { ReactNativeFirebaseAppCheckProvider } from "./providers.js";
|
package/dist/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isBoolean","isIOS","isObject","isString","isUndefined","isOther","parseListenerOrObserver","FirebaseModule","getOrCreateModularInstance","
|
|
1
|
+
{"version":3,"names":["isBoolean","isIOS","isObject","isString","isUndefined","isOther","parseListenerOrObserver","FirebaseModule","getOrCreateModularInstance","setReactNativeModule","Platform","fallBackModule","version","ReactNativeFirebaseAppCheckProvider","nativeModuleName","VALID_APPLE_PROVIDERS","VALID_ANDROID_PROVIDERS","hasProviderOptions","provider","undefined","providerOptions","validateProviderName","options","OS","name","android","includes","Error","join","apple","FirebaseAppCheckModule","constructor","app","config","customUrlOrRegion","emitter","addListener","eventNameForApp","event","emit","_listenerCount","getIsTokenRefreshEnabledDefault","isTokenAutoRefreshEnabled","newReactNativeFirebaseAppCheckProvider","initializeAppCheck","native","tokenRefresh","firebaseJson","app_check_token_auto_refresh","dataCollection","app_data_collection_default_enabled","configurePromise","configureProvider","debugToken","Promise","resolve","then","setTokenAutoRefreshEnabled","activate","siteKeyOrProvider","rnfbProvider","configure","web","siteKey","getToken","forceRefresh","getLimitedUseToken","onTokenChanged","onNextOrObserver","_onError","_onCompletion","console","warn","nextFn","subscription","addAppCheckListener","remove","removeAppCheckListener","namespace","nativeEvents","hasMultiAppSupport","hasCustomUrlOrRegionSupport","turboModule","SDK_VERSION","CustomProvider","getModularAppCheck","appCheck","appCheckInstance","isAutoRefreshEnabled","onError","onCompletion"],"sourceRoot":"../../lib","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
package/dist/module/version.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FirebaseApp } from '@react-native-firebase/app';
|
|
2
2
|
import './types/internal';
|
|
3
3
|
import type { AppCheck, AppCheckOptions, AppCheckTokenResult, PartialObserver, Unsubscribe } from './types/appcheck';
|
|
4
|
-
export declare const SDK_VERSION = "
|
|
4
|
+
export declare const SDK_VERSION = "27.0.0";
|
|
5
5
|
export { CustomProvider, ReactNativeFirebaseAppCheckProvider } from './providers';
|
|
6
6
|
/**
|
|
7
7
|
* Initializes App Check for the given Firebase app.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAO9D,OAAO,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EAEf,mBAAmB,EACnB,eAAe,EACf,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAoP1B,eAAO,MAAM,WAAW,WAAU,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,mCAAmC,EAAE,MAAM,aAAa,CAAC;AAMlF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,QAAQ,CAQzF;AAED,wBAAgB,QAAQ,CACtB,gBAAgB,EAAE,QAAQ,EAC1B,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAED,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAE3F;AAED,wBAAgB,0BAA0B,CACxC,gBAAgB,EAAE,QAAQ,EAC1B,oBAAoB,EAAE,OAAO,GAC5B,IAAI,CAEN;AAED,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,QAAQ,EAC1B,QAAQ,EAAE,eAAe,CAAC,mBAAmB,CAAC,GAC7C,WAAW,CAAC;AAEf,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,QAAQ,EAC1B,MAAM,EAAE,CAAC,WAAW,EAAE,mBAAmB,KAAK,IAAI,EAClD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAChC,YAAY,CAAC,EAAE,MAAM,IAAI,GACxB,WAAW,CAAC;AAiBf,mBAAmB,kBAAkB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "
|
|
1
|
+
export declare const version = "27.0.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this library except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#import <Foundation/Foundation.h>
|
|
19
|
+
#import <React/RCTBridgeModule.h>
|
|
20
|
+
|
|
21
|
+
// Plain Objective-C helper (see docs/ios-spm.mdx and
|
|
22
|
+
// okf-bundle/ios-spm-native-imports.md) that owns every call touching
|
|
23
|
+
// `FIRAppCheck` / provider factory for RNFBAppCheckModule. This keeps
|
|
24
|
+
// RNFBAppCheckModule.mm free of Firebase App Check imports: under SPM the
|
|
25
|
+
// usable Objective-C surface for App Check is module-backed, and `@import`
|
|
26
|
+
// cannot be used from an Objective-C++ (.mm) TurboModule when C++ modules are
|
|
27
|
+
// disabled (required by React Native's JSI headers).
|
|
28
|
+
@interface RNFBAppCheckHelper : NSObject
|
|
29
|
+
|
|
30
|
+
/** Installs the shared provider factory once (AppDelegate early init path). */
|
|
31
|
+
+ (void)ensureProviderFactoryInstalled;
|
|
32
|
+
|
|
33
|
+
+ (void)activate:(NSString *)appName
|
|
34
|
+
siteKeyProvider:(NSString *)siteKeyProvider
|
|
35
|
+
isTokenAutoRefreshEnabled:(BOOL)isTokenAutoRefreshEnabled
|
|
36
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
37
|
+
reject:(RCTPromiseRejectBlock)reject;
|
|
38
|
+
|
|
39
|
+
+ (void)configureProvider:(NSString *)appName
|
|
40
|
+
providerName:(NSString *)providerName
|
|
41
|
+
debugToken:(NSString *)debugToken
|
|
42
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
43
|
+
reject:(RCTPromiseRejectBlock)reject;
|
|
44
|
+
|
|
45
|
+
+ (void)setTokenAutoRefreshEnabled:(NSString *)appName
|
|
46
|
+
isTokenAutoRefreshEnabled:(BOOL)isTokenAutoRefreshEnabled;
|
|
47
|
+
|
|
48
|
+
+ (void)isTokenAutoRefreshEnabled:(NSString *)appName
|
|
49
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
50
|
+
reject:(RCTPromiseRejectBlock)reject;
|
|
51
|
+
|
|
52
|
+
+ (void)getToken:(NSString *)appName
|
|
53
|
+
forceRefresh:(BOOL)forceRefresh
|
|
54
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
55
|
+
reject:(RCTPromiseRejectBlock)reject;
|
|
56
|
+
|
|
57
|
+
+ (void)getLimitedUseToken:(NSString *)appName
|
|
58
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
59
|
+
reject:(RCTPromiseRejectBlock)reject;
|
|
60
|
+
|
|
61
|
+
@end
|