@react-native-firebase/app-check 26.1.0 → 26.3.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 (33) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/RNFBAppCheck.podspec +1 -0
  3. package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/CMakeLists.txt +1 -9
  4. package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/react/renderer/components/RNFBAppCheckTurboModules/RNFBAppCheckTurboModulesJSI.h +77 -104
  5. package/dist/module/index.js +13 -6
  6. package/dist/module/index.js.map +1 -1
  7. package/dist/module/version.js +1 -1
  8. package/dist/typescript/lib/index.d.ts +1 -1
  9. package/dist/typescript/lib/index.d.ts.map +1 -1
  10. package/dist/typescript/lib/types/internal.d.ts +4 -2
  11. package/dist/typescript/lib/types/internal.d.ts.map +1 -1
  12. package/dist/typescript/lib/version.d.ts +1 -1
  13. package/ios/RNFBAppCheck/RNFBAppCheckModule.mm +49 -4
  14. package/ios/RNFBAppCheck/RNFBAppCheckProvider.h +3 -0
  15. package/ios/RNFBAppCheck/RNFBAppCheckProvider.m +24 -0
  16. package/ios/RNFBAppCheck/RNFBAppCheckProviderFactory.h +3 -0
  17. package/ios/RNFBAppCheck/RNFBAppCheckProviderFactory.m +12 -6
  18. package/ios/generated/RNFBAppCheckTurboModulesJSI.h +77 -104
  19. package/lib/index.ts +14 -6
  20. package/lib/types/internal.ts +4 -2
  21. package/lib/version.ts +1 -1
  22. package/package.json +6 -6
  23. package/plugin/build/ios/appDelegate.js +3 -2
  24. package/plugin/src/ios/appDelegate.ts +3 -2
  25. package/android/src/main/java/io/invertase/firebase/appcheck/generated/jni/react/renderer/components/RNFBAppCheckTurboModules/RNFBAppCheckTurboModulesJSI-generated.cpp +0 -85
  26. package/ios/generated/RCTAppDependencyProvider.h +0 -25
  27. package/ios/generated/RCTAppDependencyProvider.mm +0 -55
  28. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +0 -18
  29. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +0 -33
  30. package/ios/generated/RCTThirdPartyComponentsProvider.h +0 -16
  31. package/ios/generated/RCTThirdPartyComponentsProvider.mm +0 -23
  32. package/ios/generated/RNFBAppCheckTurboModulesJSI-generated.cpp +0 -85
  33. package/ios/generated/ReactAppDependencyProvider.podspec +0 -34
package/CHANGELOG.md CHANGED
@@ -3,6 +3,19 @@
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.3.0](https://github.com/invertase/react-native-firebase/compare/v26.2.0...v26.3.0) (2026-08-20)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **ios:** allow non-modular React includes in RNFB podspecs ([#9200](https://github.com/invertase/react-native-firebase/issues/9200)) ([dd453ff](https://github.com/invertase/react-native-firebase/commit/dd453ff17a8bd645b9d0eb56bef74df53f217f93))
11
+
12
+ ## [26.2.0](https://github.com/invertase/react-native-firebase/compare/v26.1.0...v26.2.0) (2026-08-10)
13
+
14
+ ### Bug Fixes
15
+
16
+ - **app-check, ios:** do not install debug provider before configure ([#9166](https://github.com/invertase/react-native-firebase/issues/9166)) ([b7879cd](https://github.com/invertase/react-native-firebase/commit/b7879cdde1c78e80e364ecd8966a9f0f45cd5220))
17
+ - codegen should be wipe-then-regen ([04bc4e4](https://github.com/invertase/react-native-firebase/commit/04bc4e4cdab9870cb366fd212b2ccb331b0289d6))
18
+
6
19
  ## [26.1.0](https://github.com/invertase/react-native-firebase/compare/v26.0.0...v26.1.0) (2026-08-03)
7
20
 
8
21
  ### Features
@@ -41,6 +41,7 @@ Pod::Spec.new do |s|
41
41
 
42
42
  s.pod_target_xcconfig = {
43
43
  'HEADER_SEARCH_PATHS' => '"$(PODS_TARGET_SRCROOT)/ios/generated/RNFBAppCheckTurboModules" "$(PODS_TARGET_SRCROOT)/ios/generated"',
44
+ "CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES" => "YES",
44
45
  }
45
46
 
46
47
  s.dependency 'RNFBApp'
@@ -25,12 +25,4 @@ target_link_libraries(
25
25
  reactnative
26
26
  )
27
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
- )
28
+ target_compile_reactnative_options(react_codegen_RNFBAppCheckTurboModules PRIVATE)
@@ -15,7 +15,6 @@
15
15
  namespace facebook::react {
16
16
 
17
17
 
18
-
19
18
  #pragma mark - NativeRNFBTurboAppCheckAppCheckTokenResult
20
19
 
21
20
  template <typename P0>
@@ -55,120 +54,94 @@ struct NativeRNFBTurboAppCheckAppCheckTokenResultBridging {
55
54
  }
56
55
  };
57
56
 
58
- class JSI_EXPORT NativeRNFBTurboAppCheckCxxSpecJSI : public TurboModule {
59
- protected:
60
- NativeRNFBTurboAppCheckCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
61
-
62
- public:
63
- virtual jsi::Value activate(jsi::Runtime &rt, jsi::String appName, jsi::String siteKeyProvider, bool isTokenAutoRefreshEnabled) = 0;
64
- virtual jsi::Value configureProvider(jsi::Runtime &rt, jsi::String appName, jsi::String providerName, std::optional<jsi::String> debugToken) = 0;
65
- virtual void setTokenAutoRefreshEnabled(jsi::Runtime &rt, jsi::String appName, bool isTokenAutoRefreshEnabled) = 0;
66
- virtual jsi::Value isTokenAutoRefreshEnabled(jsi::Runtime &rt, jsi::String appName) = 0;
67
- virtual jsi::Value getToken(jsi::Runtime &rt, jsi::String appName, bool forceRefresh) = 0;
68
- virtual jsi::Value getLimitedUseToken(jsi::Runtime &rt, jsi::String appName) = 0;
69
- virtual void addAppCheckListener(jsi::Runtime &rt, jsi::String appName) = 0;
70
- virtual void removeAppCheckListener(jsi::Runtime &rt, jsi::String appName) = 0;
71
-
72
- };
73
57
 
74
58
  template <typename T>
75
59
  class JSI_EXPORT NativeRNFBTurboAppCheckCxxSpec : public TurboModule {
76
60
  public:
77
- jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
78
- return delegate_.create(rt, propName);
61
+ static constexpr std::string_view kModuleName = "NativeRNFBTurboAppCheck";
62
+
63
+ protected:
64
+ NativeRNFBTurboAppCheckCxxSpec(std::shared_ptr<CallInvoker> jsInvoker) : TurboModule(std::string{NativeRNFBTurboAppCheckCxxSpec::kModuleName}, jsInvoker) {
65
+ methodMap_["activate"] = MethodMetadata {.argCount = 3, .invoker = __activate};
66
+ methodMap_["configureProvider"] = MethodMetadata {.argCount = 3, .invoker = __configureProvider};
67
+ methodMap_["setTokenAutoRefreshEnabled"] = MethodMetadata {.argCount = 2, .invoker = __setTokenAutoRefreshEnabled};
68
+ methodMap_["isTokenAutoRefreshEnabled"] = MethodMetadata {.argCount = 1, .invoker = __isTokenAutoRefreshEnabled};
69
+ methodMap_["getToken"] = MethodMetadata {.argCount = 2, .invoker = __getToken};
70
+ methodMap_["getLimitedUseToken"] = MethodMetadata {.argCount = 1, .invoker = __getLimitedUseToken};
71
+ methodMap_["addAppCheckListener"] = MethodMetadata {.argCount = 1, .invoker = __addAppCheckListener};
72
+ methodMap_["removeAppCheckListener"] = MethodMetadata {.argCount = 1, .invoker = __removeAppCheckListener};
73
+ }
74
+
75
+ private:
76
+ static jsi::Value __activate(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
77
+ static_assert(
78
+ bridging::getParameterCount(&T::activate) == 4,
79
+ "Expected activate(...) to have 4 parameters");
80
+ return bridging::callFromJs<jsi::Value>(rt, &T::activate, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
81
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
82
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt),
83
+ count <= 2 ? throw jsi::JSError(rt, "Expected argument in position 2 to be passed") : args[2].asBool());
79
84
  }
80
85
 
81
- std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& runtime) override {
82
- return delegate_.getPropertyNames(runtime);
86
+ static jsi::Value __configureProvider(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
87
+ static_assert(
88
+ bridging::getParameterCount(&T::configureProvider) == 4,
89
+ "Expected configureProvider(...) to have 4 parameters");
90
+ return bridging::callFromJs<jsi::Value>(rt, &T::configureProvider, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
91
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
92
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt),
93
+ count <= 2 || args[2].isNull() || args[2].isUndefined() ? std::nullopt : std::make_optional(args[2].asString(rt)));
83
94
  }
84
95
 
85
- static constexpr std::string_view kModuleName = "NativeRNFBTurboAppCheck";
96
+ static jsi::Value __setTokenAutoRefreshEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
97
+ static_assert(
98
+ bridging::getParameterCount(&T::setTokenAutoRefreshEnabled) == 3,
99
+ "Expected setTokenAutoRefreshEnabled(...) to have 3 parameters");
100
+ bridging::callFromJs<void>(rt, &T::setTokenAutoRefreshEnabled, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
101
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
102
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asBool());return jsi::Value::undefined();
103
+ }
86
104
 
87
- protected:
88
- NativeRNFBTurboAppCheckCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
89
- : TurboModule(std::string{NativeRNFBTurboAppCheckCxxSpec::kModuleName}, jsInvoker),
90
- delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
105
+ static jsi::Value __isTokenAutoRefreshEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
106
+ static_assert(
107
+ bridging::getParameterCount(&T::isTokenAutoRefreshEnabled) == 2,
108
+ "Expected isTokenAutoRefreshEnabled(...) to have 2 parameters");
109
+ return bridging::callFromJs<jsi::Value>(rt, &T::isTokenAutoRefreshEnabled, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
110
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
111
+ }
91
112
 
113
+ static jsi::Value __getToken(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
114
+ static_assert(
115
+ bridging::getParameterCount(&T::getToken) == 3,
116
+ "Expected getToken(...) to have 3 parameters");
117
+ return bridging::callFromJs<jsi::Value>(rt, &T::getToken, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
118
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
119
+ count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asBool());
120
+ }
92
121
 
93
- private:
94
- class Delegate : public NativeRNFBTurboAppCheckCxxSpecJSI {
95
- public:
96
- Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
97
- NativeRNFBTurboAppCheckCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
98
-
99
- }
100
-
101
- jsi::Value activate(jsi::Runtime &rt, jsi::String appName, jsi::String siteKeyProvider, bool isTokenAutoRefreshEnabled) override {
102
- static_assert(
103
- bridging::getParameterCount(&T::activate) == 4,
104
- "Expected activate(...) to have 4 parameters");
105
-
106
- return bridging::callFromJs<jsi::Value>(
107
- rt, &T::activate, jsInvoker_, instance_, std::move(appName), std::move(siteKeyProvider), std::move(isTokenAutoRefreshEnabled));
108
- }
109
- jsi::Value configureProvider(jsi::Runtime &rt, jsi::String appName, jsi::String providerName, std::optional<jsi::String> debugToken) override {
110
- static_assert(
111
- bridging::getParameterCount(&T::configureProvider) == 4,
112
- "Expected configureProvider(...) to have 4 parameters");
113
-
114
- return bridging::callFromJs<jsi::Value>(
115
- rt, &T::configureProvider, jsInvoker_, instance_, std::move(appName), std::move(providerName), std::move(debugToken));
116
- }
117
- void setTokenAutoRefreshEnabled(jsi::Runtime &rt, jsi::String appName, bool isTokenAutoRefreshEnabled) override {
118
- static_assert(
119
- bridging::getParameterCount(&T::setTokenAutoRefreshEnabled) == 3,
120
- "Expected setTokenAutoRefreshEnabled(...) to have 3 parameters");
121
-
122
- return bridging::callFromJs<void>(
123
- rt, &T::setTokenAutoRefreshEnabled, jsInvoker_, instance_, std::move(appName), std::move(isTokenAutoRefreshEnabled));
124
- }
125
- jsi::Value isTokenAutoRefreshEnabled(jsi::Runtime &rt, jsi::String appName) override {
126
- static_assert(
127
- bridging::getParameterCount(&T::isTokenAutoRefreshEnabled) == 2,
128
- "Expected isTokenAutoRefreshEnabled(...) to have 2 parameters");
129
-
130
- return bridging::callFromJs<jsi::Value>(
131
- rt, &T::isTokenAutoRefreshEnabled, jsInvoker_, instance_, std::move(appName));
132
- }
133
- jsi::Value getToken(jsi::Runtime &rt, jsi::String appName, bool forceRefresh) override {
134
- static_assert(
135
- bridging::getParameterCount(&T::getToken) == 3,
136
- "Expected getToken(...) to have 3 parameters");
137
-
138
- return bridging::callFromJs<jsi::Value>(
139
- rt, &T::getToken, jsInvoker_, instance_, std::move(appName), std::move(forceRefresh));
140
- }
141
- jsi::Value getLimitedUseToken(jsi::Runtime &rt, jsi::String appName) override {
142
- static_assert(
143
- bridging::getParameterCount(&T::getLimitedUseToken) == 2,
144
- "Expected getLimitedUseToken(...) to have 2 parameters");
145
-
146
- return bridging::callFromJs<jsi::Value>(
147
- rt, &T::getLimitedUseToken, jsInvoker_, instance_, std::move(appName));
148
- }
149
- void addAppCheckListener(jsi::Runtime &rt, jsi::String appName) override {
150
- static_assert(
151
- bridging::getParameterCount(&T::addAppCheckListener) == 2,
152
- "Expected addAppCheckListener(...) to have 2 parameters");
153
-
154
- return bridging::callFromJs<void>(
155
- rt, &T::addAppCheckListener, jsInvoker_, instance_, std::move(appName));
156
- }
157
- void removeAppCheckListener(jsi::Runtime &rt, jsi::String appName) override {
158
- static_assert(
159
- bridging::getParameterCount(&T::removeAppCheckListener) == 2,
160
- "Expected removeAppCheckListener(...) to have 2 parameters");
161
-
162
- return bridging::callFromJs<void>(
163
- rt, &T::removeAppCheckListener, jsInvoker_, instance_, std::move(appName));
164
- }
165
-
166
- private:
167
- friend class NativeRNFBTurboAppCheckCxxSpec;
168
- T *instance_;
169
- };
170
-
171
- Delegate delegate_;
122
+ static jsi::Value __getLimitedUseToken(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
123
+ static_assert(
124
+ bridging::getParameterCount(&T::getLimitedUseToken) == 2,
125
+ "Expected getLimitedUseToken(...) to have 2 parameters");
126
+ return bridging::callFromJs<jsi::Value>(rt, &T::getLimitedUseToken, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
127
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));
128
+ }
129
+
130
+ static jsi::Value __addAppCheckListener(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
131
+ static_assert(
132
+ bridging::getParameterCount(&T::addAppCheckListener) == 2,
133
+ "Expected addAppCheckListener(...) to have 2 parameters");
134
+ bridging::callFromJs<void>(rt, &T::addAppCheckListener, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
135
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
136
+ }
137
+
138
+ static jsi::Value __removeAppCheckListener(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
139
+ static_assert(
140
+ bridging::getParameterCount(&T::removeAppCheckListener) == 2,
141
+ "Expected removeAppCheckListener(...) to have 2 parameters");
142
+ bridging::callFromJs<void>(rt, &T::removeAppCheckListener, static_cast<NativeRNFBTurboAppCheckCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule),
143
+ count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt));return jsi::Value::undefined();
144
+ }
172
145
  };
173
146
 
174
147
  } // namespace facebook::react
@@ -100,24 +100,31 @@ class FirebaseAppCheckModule extends FirebaseModule {
100
100
  if (!isBoolean(options.isTokenAutoRefreshEnabled)) {
101
101
  options.isTokenAutoRefreshEnabled = true;
102
102
  }
103
- this.native.setTokenAutoRefreshEnabled(options.isTokenAutoRefreshEnabled);
103
+ const isTokenAutoRefreshEnabled = options.isTokenAutoRefreshEnabled;
104
104
  if (!hasProviderOptions(options.provider)) {
105
105
  throw new Error('Invalid configuration: no provider or no provider options defined.');
106
106
  }
107
107
  const provider = options.provider;
108
+
109
+ // AppCheck-AD-4: attach the real provider before enabling auto-refresh so early
110
+ // refresh does not run while the native facade is still pending.
111
+ let configurePromise;
108
112
  if (Platform.OS === 'android') {
109
113
  if (!isString(provider.providerOptions?.android?.provider)) {
110
114
  throw new Error('Invalid configuration: no android provider configured while on android platform.');
111
115
  }
112
- return this.native.configureProvider(provider.providerOptions.android.provider, provider.providerOptions.android.debugToken);
113
- }
114
- if (Platform.OS === 'ios' || Platform.OS === 'macos') {
116
+ configurePromise = this.native.configureProvider(provider.providerOptions.android.provider, provider.providerOptions.android.debugToken);
117
+ } else if (Platform.OS === 'ios' || Platform.OS === 'macos') {
115
118
  if (!isString(provider.providerOptions?.apple?.provider)) {
116
119
  throw new Error('Invalid configuration: no apple provider configured while on apple platform.');
117
120
  }
118
- return this.native.configureProvider(provider.providerOptions.apple.provider, provider.providerOptions.apple.debugToken);
121
+ configurePromise = this.native.configureProvider(provider.providerOptions.apple.provider, provider.providerOptions.apple.debugToken);
122
+ } else {
123
+ throw new Error('Unsupported platform: ' + Platform.OS);
119
124
  }
120
- throw new Error('Unsupported platform: ' + Platform.OS);
125
+ return Promise.resolve(configurePromise).then(() => {
126
+ this.native.setTokenAutoRefreshEnabled(isTokenAutoRefreshEnabled);
127
+ });
121
128
  }
122
129
  activate(siteKeyOrProvider, isTokenAutoRefreshEnabled) {
123
130
  if (isOther) {
@@ -1 +1 @@
1
- {"version":3,"names":["isBoolean","isIOS","isObject","isString","isUndefined","isOther","parseListenerOrObserver","FirebaseModule","getOrCreateModularInstance","Platform","setReactNativeModule","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","setTokenAutoRefreshEnabled","configureProvider","debugToken","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":[]}
1
+ {"version":3,"names":["isBoolean","isIOS","isObject","isString","isUndefined","isOther","parseListenerOrObserver","FirebaseModule","getOrCreateModularInstance","Platform","setReactNativeModule","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":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACEA,SAAS,EACTC,KAAK,EACLC,QAAQ,EACRC,QAAQ,EACRC,WAAW,EACXC,OAAO,EACPC,uBAAuB,QAClB,+CAA+C;AAEtD,SACEC,cAAc,EACdC,0BAA0B,QACrB,iDAAiD;AAExD,OAAO,qBAAkB;AACzB,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,oBAAoB,QAAQ,8DAA8D;AACnG,OAAOC,cAAc,MAAM,0BAA0B;AACrD,SAASC,OAAO,QAAQ,cAAW;AAWnC,SAASC,mCAAmC,QAAQ,gBAAa;AAEjE,MAAMC,gBAAgB,GAAG,yBAAyB;AAElD,MAAMC,qBAAqB,GAAG,CAC5B,OAAO,EACP,aAAa,EACb,WAAW,EACX,kCAAkC,CACnC;AACD,MAAMC,uBAAuB,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC;;AAE1D;AACA;AACA;AACA;AACA,SAASC,kBAAkBA,CACzBC,QAAqC,EACJ;EACjC,OACEA,QAAQ,KAAKC,SAAS,IACtB,iBAAiB,IAAID,QAAQ,IAC7BA,QAAQ,CAACE,eAAe,KAAKD,SAAS;AAE1C;AAEA,SAASE,oBAAoBA,CAACC,OAAwB,EAAQ;EAC5D,IAAI,CAACL,kBAAkB,CAACK,OAAO,CAACJ,QAAQ,CAAC,EAAE;IACzC;EACF;EACA,MAAMA,QAAQ,GAAGI,OAAO,CAACJ,QAAQ;EACjC,IAAIT,QAAQ,CAACc,EAAE,KAAK,SAAS,EAAE;IAC7B,MAAMC,IAAI,GAAGN,QAAQ,CAACE,eAAe,EAAEK,OAAO,EAAEP,QAAQ;IACxD,IAAIf,QAAQ,CAACqB,IAAI,CAAC,IAAI,CAACR,uBAAuB,CAACU,QAAQ,CAACF,IAAI,CAAC,EAAE;MAC7D,MAAM,IAAIG,KAAK,CACb,+BAA+BH,IAAI,mCAAmCR,uBAAuB,CAACY,IAAI,CAAC,IAAI,CAAC,GAC1G,CAAC;IACH;EACF;EACA,IAAInB,QAAQ,CAACc,EAAE,KAAK,KAAK,IAAId,QAAQ,CAACc,EAAE,KAAK,OAAO,EAAE;IACpD,MAAMC,IAAI,GAAGN,QAAQ,CAACE,eAAe,EAAES,KAAK,EAAEX,QAAQ;IACtD,IAAIf,QAAQ,CAACqB,IAAI,CAAC,IAAI,CAACT,qBAAqB,CAACW,QAAQ,CAACF,IAAI,CAAC,EAAE;MAC3D,MAAM,IAAIG,KAAK,CACb,+BAA+BH,IAAI,iCAAiCT,qBAAqB,CAACa,IAAI,CAAC,IAAI,CAAC,GACtG,CAAC;IACH;EACF;AACF;AAEA,MAAME,sBAAsB,SAASvB,cAAc,CAA0B;EAG3EwB,WAAWA,CACTC,GAAwC,EACxCC,MAAoB,EACpBC,iBAAiC,EACjC;IACA,KAAK,CAACF,GAAG,EAAEC,MAAM,EAAEC,iBAAiB,CAAC;IAErC,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,IAAI,CAACC,eAAe,CAAC,wBAAwB,CAAC,EAAEC,KAAK,IAAI;MAChF,IAAI,CAACH,OAAO,CAACI,IAAI,CAAC,IAAI,CAACF,eAAe,CAAC,wBAAwB,CAAC,EAAEC,KAAK,CAAC;IAC1E,CAAC,CAAC;IAEF,IAAI,CAACE,cAAc,GAAG,CAAC;EACzB;EAEAC,+BAA+BA,CAAA,EAAwB;IACrD;IACA,IAAIC,yBAA8C,GAAGvB,SAAS;IAE9D,OAAOuB,yBAAyB;EAClC;EAEAC,sCAAsCA,CAAA,EAAwC;IAC5E,OAAO,IAAI9B,mCAAmC,CAAC,CAAC;EAClD;EAEA+B,kBAAkBA,CAACtB,OAAwB,EAAiB;IAC1D,IAAIjB,OAAO,EAAE;MACX,IAAI,CAACH,QAAQ,CAACoB,OAAO,CAAC,EAAE;QACtB,MAAM,IAAIK,KAAK,CAAC,4CAA4C,CAAC;MAC/D;MACA,IAAIvB,WAAW,CAACkB,OAAO,CAACJ,QAAQ,CAAC,EAAE;QACjC,MAAM,IAAIS,KAAK,CAAC,6CAA6C,CAAC;MAChE;MACA,OAAO,IAAI,CAACkB,MAAM,CAACD,kBAAkB,CAACtB,OAAO,CAAC;IAChD;IACA;IACA,IAAI,CAACtB,SAAS,CAACsB,OAAO,CAACoB,yBAAyB,CAAC,EAAE;MACjD,MAAMI,YAAY,GAAG,IAAI,CAACC,YAAY,CAACC,4BAA4B;MACnE,IAAIhD,SAAS,CAAC8C,YAAY,CAAC,EAAE;QAC3BxB,OAAO,CAACoB,yBAAyB,GAAGI,YAAY;MAClD;IACF;;IAEA;IACA,IAAI,CAAC9C,SAAS,CAACsB,OAAO,CAACoB,yBAAyB,CAAC,EAAE;MACjD,MAAMO,cAAc,GAAG,IAAI,CAACF,YAAY,CAACG,mCAAmC;MAC5E,IAAIlD,SAAS,CAACiD,cAAc,CAAC,EAAE;QAC7B3B,OAAO,CAACoB,yBAAyB,GAAGO,cAAc;MACpD;IACF;;IAEA;IACA,IAAI,CAACjD,SAAS,CAACsB,OAAO,CAACoB,yBAAyB,CAAC,EAAE;MACjDpB,OAAO,CAACoB,yBAAyB,GAAG,IAAI;IAC1C;IACA,MAAMA,yBAAyB,GAAGpB,OAAO,CAACoB,yBAAoC;IAE9E,IAAI,CAACzB,kBAAkB,CAACK,OAAO,CAACJ,QAAQ,CAAC,EAAE;MACzC,MAAM,IAAIS,KAAK,CAAC,oEAAoE,CAAC;IACvF;IACA,MAAMT,QAAQ,GAAGI,OAAO,CAACJ,QAAQ;;IAEjC;IACA;IACA,IAAIiC,gBAA+B;IACnC,IAAI1C,QAAQ,CAACc,EAAE,KAAK,SAAS,EAAE;MAC7B,IAAI,CAACpB,QAAQ,CAACe,QAAQ,CAACE,eAAe,EAAEK,OAAO,EAAEP,QAAQ,CAAC,EAAE;QAC1D,MAAM,IAAIS,KAAK,CACb,kFACF,CAAC;MACH;MACAwB,gBAAgB,GAAG,IAAI,CAACN,MAAM,CAACO,iBAAiB,CAC9ClC,QAAQ,CAACE,eAAe,CAACK,OAAO,CAACP,QAAQ,EACzCA,QAAQ,CAACE,eAAe,CAACK,OAAO,CAAC4B,UACnC,CAAC;IACH,CAAC,MAAM,IAAI5C,QAAQ,CAACc,EAAE,KAAK,KAAK,IAAId,QAAQ,CAACc,EAAE,KAAK,OAAO,EAAE;MAC3D,IAAI,CAACpB,QAAQ,CAACe,QAAQ,CAACE,eAAe,EAAES,KAAK,EAAEX,QAAQ,CAAC,EAAE;QACxD,MAAM,IAAIS,KAAK,CACb,8EACF,CAAC;MACH;MACAwB,gBAAgB,GAAG,IAAI,CAACN,MAAM,CAACO,iBAAiB,CAC9ClC,QAAQ,CAACE,eAAe,CAACS,KAAK,CAACX,QAAQ,EACvCA,QAAQ,CAACE,eAAe,CAACS,KAAK,CAACwB,UACjC,CAAC;IACH,CAAC,MAAM;MACL,MAAM,IAAI1B,KAAK,CAAC,wBAAwB,GAAGlB,QAAQ,CAACc,EAAE,CAAC;IACzD;IAEA,OAAO+B,OAAO,CAACC,OAAO,CAACJ,gBAAgB,CAAC,CAACK,IAAI,CAAC,MAAM;MAClD,IAAI,CAACX,MAAM,CAACY,0BAA0B,CAACf,yBAAyB,CAAC;IACnE,CAAC,CAAC;EACJ;EAEAgB,QAAQA,CACNC,iBAA4C,EAC5CjB,yBAAmC,EACpB;IACf,IAAIrC,OAAO,EAAE;MACX,MAAM,IAAIsB,KAAK,CAAC,qEAAqE,CAAC;IACxF;IACA,IAAI,CAACxB,QAAQ,CAACwD,iBAAiB,CAAC,EAAE;MAChC,MAAM,IAAIhC,KAAK,CAAC,uEAAuE,CAAC;IAC1F;;IAEA;IACA,MAAMiC,YAAY,GAAG,IAAI/C,mCAAmC,CAAC,CAAC;IAC9D+C,YAAY,CAACC,SAAS,CAAC;MACrBpC,OAAO,EAAE;QACPP,QAAQ,EAAE;MACZ,CAAC;MACDW,KAAK,EAAE;QACLX,QAAQ,EAAE;MACZ,CAAC;MACD4C,GAAG,EAAE;QACH5C,QAAQ,EAAE,aAAa;QACvB6C,OAAO,EAAE;MACX;IACF,CAAC,CAAC;IAEF,OAAO,IAAI,CAACnB,kBAAkB,CAAC;MAAE1B,QAAQ,EAAE0C,YAAY;MAAElB;IAA0B,CAAC,CAAC;EACvF;;EAEA;EACAe,0BAA0BA,CAACf,yBAAkC,EAAQ;IACnE,IAAI,CAACG,MAAM,CAACY,0BAA0B,CAACf,yBAAyB,CAAC;EACnE;EAEAsB,QAAQA,CAACC,YAAsB,EAAgC;IAC7D,IAAI,CAACA,YAAY,EAAE;MACjB,OAAO,IAAI,CAACpB,MAAM,CAACmB,QAAQ,CAAC,KAAK,CAAC;IACpC,CAAC,MAAM;MACL,OAAO,IAAI,CAACnB,MAAM,CAACmB,QAAQ,CAAC,IAAI,CAAC;IACnC;EACF;EAEAE,kBAAkBA,CAAA,EAAiC;IACjD,OAAO,IAAI,CAACrB,MAAM,CAACqB,kBAAkB,CAAC,CAAC;EACzC;EAEAC,cAAcA,CACZC,gBAEgD,EAChDC,QAAiC,EACjCC,aAA0B,EACd;IACZ;IACA,IAAIrE,KAAK,EAAE;MACT;MACAsE,OAAO,CAACC,IAAI,CAAC,4DAA4D,CAAC;MAC1E,OAAO,MAAM,CAAC,CAAC;IACjB;IACA,MAAMC,MAAM,GAAGnE,uBAAuB,CACpC8D,gBAGF,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMM,YAAY,GAAG,IAAI,CAACvC,OAAO,CAACC,WAAW,CAC3C,IAAI,CAACC,eAAe,CAAC,wBAAwB,CAAC,EAC9CoC,MACF,CAAC;IACD,IAAI,IAAI,CAACjC,cAAc,KAAK,CAAC,EAAE,IAAI,CAACK,MAAM,CAAC8B,mBAAmB,CAAC,CAAC;IAEhE,IAAI,CAACnC,cAAc,EAAE;IACrB,OAAO,MAAM;MACXkC,YAAY,CAACE,MAAM,CAAC,CAAC;MACrB,IAAI,CAACpC,cAAc,EAAE;MACrB,IAAI,IAAI,CAACA,cAAc,KAAK,CAAC,EAAE,IAAI,CAACK,MAAM,CAACgC,sBAAsB,CAAC,CAAC;IACrE,CAAC;EACH;AACF;AAEA,MAAM5C,MAAoB,GAAG;EAC3B6C,SAAS,EAAE,UAAU;EACrBhE,gBAAgB;EAChBiE,YAAY,EAAE,CAAC,wBAAwB,CAAC;EACxCC,kBAAkB,EAAE,IAAI;EACxBC,2BAA2B,EAAE,KAAK;EAClCC,WAAW,EAAE;AACf,CAAC;AAED,OAAO,MAAMC,WAAW,GAAGvE,OAAO;AAElC,SAASwE,cAAc,EAAEvE,mCAAmC,QAAQ,gBAAa;AAEjF,SAASwE,kBAAkBA,CAACrD,GAAiB,EAAY;EACvD,OAAOxB,0BAA0B,CAACsB,sBAAsB,EAAEG,MAAM,EAAED,GAAG,CAAC;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASY,kBAAkBA,CAACZ,GAAiB,EAAEV,OAAyB,EAAY;EACzF,IAAI,CAACpB,QAAQ,CAACoB,OAAO,CAAC,EAAE;IACtB,MAAM,IAAIK,KAAK,CAAC,4CAA4C,CAAC;EAC/D;EACAN,oBAAoB,CAACC,OAAO,CAAC;EAC7B,MAAMgE,QAAQ,GAAGD,kBAAkB,CAACrD,GAAG,CAAC;EACxC,KAAMsD,QAAQ,CAAsB1C,kBAAkB,CAACtB,OAAO,CAAC;EAC/D,OAAOgE,QAAQ;AACjB;AAEA,OAAO,SAAStB,QAAQA,CACtBuB,gBAA0B,EAC1BtB,YAAsB,EACQ;EAC9B,OAAQsB,gBAAgB,CAAsBvB,QAAQ,CAACC,YAAY,CAAC;AACtE;AAEA,OAAO,SAASC,kBAAkBA,CAACqB,gBAA0B,EAAgC;EAC3F,OAAQA,gBAAgB,CAAsBrB,kBAAkB,CAAC,CAAC;AACpE;AAEA,OAAO,SAAST,0BAA0BA,CACxC8B,gBAA0B,EAC1BC,oBAA6B,EACvB;EACLD,gBAAgB,CAAsB9B,0BAA0B,CAAC+B,oBAAoB,CAAC;AACzF;AAcA,OAAO,SAASrB,cAAcA,CAC5BoB,gBAA0B,EAC1BnB,gBAEgD,EAChDqB,OAAgC,EAChCC,YAAyB,EACZ;EACb,OAAQH,gBAAgB,CAAsBpB,cAAc,CAC1DC,gBAAgB,EAChBqB,OAAO,EACPC,YACF,CAAC;AACH;AAIAhF,oBAAoB,CAACI,gBAAgB,EAAEH,cAAoD,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
 
3
3
  // Generated by genversion.
4
- export const version = '26.1.0';
4
+ export const version = '26.3.0';
5
5
  //# sourceMappingURL=version.js.map
@@ -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 = "26.1.0";
4
+ export declare const SDK_VERSION = "26.3.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;AAM9D,OAAO,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EAEf,mBAAmB,EACnB,eAAe,EACf,WAAW,EACZ,MAAM,kBAAkB,CAAC;AA4O1B,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
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAM9D,OAAO,kBAAkB,CAAC;AAK1B,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"}
@@ -22,8 +22,10 @@ export type AppCheckInternal = AppCheck & {
22
22
  initializeAppCheck(options: AppCheckOptions): Promise<void>;
23
23
  /**
24
24
  * Activate App Check
25
- * On iOS App Check is activated with DeviceCheck provider simply by including the module, using the token auto refresh default or
26
- * the specific value (if configured) in firebase.json, but calling this does no harm.
25
+ * On iOS calling this activates App Check with the DeviceCheck provider, using the token auto refresh default or
26
+ * the specific value (if configured) in firebase.json. Before `activate` or `initializeAppCheck` is called, the
27
+ * native App Check provider is pending and `getToken` / `getLimitedUseToken` fail closed with
28
+ * `appCheck/provider-not-ready`.
27
29
  * On Android if you call this it will install the PlayIntegrity provider in release builds, the Debug provider if debuggable.
28
30
  * On both platforms you may use this method to alter the token refresh setting after startup.
29
31
  * On iOS if you want to set a specific AppCheckProviderFactory (for instance to FIRAppCheckDebugProviderFactory or
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../lib/types/internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,yCAAyC,EACzC,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,cAAc,CAAC;AAExE,KAAK,sBAAsB,GAAG,mBAAmB,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG;IACxC,qDAAqD;IACrD,GAAG,EAAE,WAAW,CAAC;IAEjB;;OAEG;IACH,sCAAsC,IAAI,mCAAmC,CAAC;IAE9E;;;;;;;OAOG;IACH,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CACN,iBAAiB,EAAE,MAAM,GAAG,gBAAgB,EAC5C,yBAAyB,CAAC,EAAE,OAAO,GAClC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,0BAA0B,CAAC,yBAAyB,EAAE,OAAO,GAAG,IAAI,CAAC;IAErE;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAE/D;;;;;OAKG;IACH,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEnD;;;;;;;OAOG;IACH,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,sBAAsB,CAAC,GAAG,MAAM,IAAI,CAAC;IAE9E;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CACZ,MAAM,EAAE,CAAC,WAAW,EAAE,sBAAsB,KAAK,IAAI,EACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAChC,YAAY,CAAC,EAAE,MAAM,IAAI,GACxB,WAAW,CAAC;IAEf;;OAEG;IACH,cAAc,CACZ,gBAAgB,EACZ,eAAe,CAAC,mBAAmB,CAAC,GACpC,CAAC,CAAC,WAAW,EAAE,mBAAmB,KAAK,IAAI,CAAC,EAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAChC,YAAY,CAAC,EAAE,MAAM,IAAI,GACxB,WAAW,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,mCAAmC,GACnC,yCAAyC,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9D,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEnD,mBAAmB,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,sBAAsB,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,OAAO,QAAQ,+DAA+D,CAAC;IAC7E,UAAU,gCAAgC;QACxC,uBAAuB,EAAE,kBAAkB,CAAC;KAC7C;CACF"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../../lib/types/internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EACV,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,yCAAyC,EACzC,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,cAAc,CAAC;AAExE,KAAK,sBAAsB,GAAG,mBAAmB,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG;IACxC,qDAAqD;IACrD,GAAG,EAAE,WAAW,CAAC;IAEjB;;OAEG;IACH,sCAAsC,IAAI,mCAAmC,CAAC;IAE9E;;;;;;;OAOG;IACH,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CACN,iBAAiB,EAAE,MAAM,GAAG,gBAAgB,EAC5C,yBAAyB,CAAC,EAAE,OAAO,GAClC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,0BAA0B,CAAC,yBAAyB,EAAE,OAAO,GAAG,IAAI,CAAC;IAErE;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAE/D;;;;;OAKG;IACH,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEnD;;;;;;;OAOG;IACH,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,sBAAsB,CAAC,GAAG,MAAM,IAAI,CAAC;IAE9E;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CACZ,MAAM,EAAE,CAAC,WAAW,EAAE,sBAAsB,KAAK,IAAI,EACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAChC,YAAY,CAAC,EAAE,MAAM,IAAI,GACxB,WAAW,CAAC;IAEf;;OAEG;IACH,cAAc,CACZ,gBAAgB,EACZ,eAAe,CAAC,mBAAmB,CAAC,GACpC,CAAC,CAAC,WAAW,EAAE,mBAAmB,KAAK,IAAI,CAAC,EAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAChC,YAAY,CAAC,EAAE,MAAM,IAAI,GACxB,WAAW,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,mCAAmC,GACnC,yCAAyC,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9D,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEnD,mBAAmB,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,sBAAsB,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,OAAO,QAAQ,+DAA+D,CAAC;IAC7E,UAAU,gCAAgC;QACxC,uBAAuB,EAAE,kBAAkB,CAAC;KAC7C;CACF"}
@@ -1,2 +1,2 @@
1
- export declare const version = "26.1.0";
1
+ export declare const version = "26.3.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -124,21 +124,62 @@ RCT_EXPORT_MODULE(NativeRNFBTurboAppCheck)
124
124
  resolve([NSNumber numberWithBool:isTokenAutoRefreshEnabled]);
125
125
  }
126
126
 
127
+ // AppCheck-AD-8: map pending fail-closed to provider-not-ready (not token-error).
128
+ // Walk NSUnderlyingErrorKey because FIRAppCheck wraps non-SDK errors via
129
+ // publicDomainErrorWithError: and drops top-level userInfo[@"code"].
130
+ // Locked message: kRNFBAppCheckProviderNotReadyMessage (RNFBAppCheckProvider.h).
131
+ static NSString *RNFBAppCheckRejectCodeForError(NSError *error) {
132
+ NSError *current = error;
133
+ while (current != nil) {
134
+ id code = current.userInfo[@"code"];
135
+ if ([code isKindOfClass:[NSString class]] && [code isEqualToString:@"provider-not-ready"]) {
136
+ return @"provider-not-ready";
137
+ }
138
+ current = current.userInfo[NSUnderlyingErrorKey];
139
+ if (![current isKindOfClass:[NSError class]]) {
140
+ break;
141
+ }
142
+ }
143
+ return @"token-error";
144
+ }
145
+
146
+ // AppCheck-AD-8 durable path: reject before FIRAppCheck token APIs when the
147
+ // factory-held facade still has a nil delegateProvider (pending / not configured).
148
+ static BOOL RNFBAppCheckRejectIfProviderNotReady(FIRApp *firebaseApp,
149
+ RCTPromiseRejectBlock reject) {
150
+ RNFBAppCheckProviderFactory *factory = [RNFBAppCheckModule sharedInstance].providerFactory;
151
+ RNFBAppCheckProvider *provider = [factory providerForApp:firebaseApp];
152
+ if (provider != nil && provider.delegateProvider != nil) {
153
+ return NO;
154
+ }
155
+ DLog(@"RNFBAppCheck - provider not ready for app %@ (delegateProvider nil)", firebaseApp.name);
156
+ [RNFBSharedUtils rejectPromiseWithUserInfo:reject
157
+ userInfo:(NSMutableDictionary *)@{
158
+ @"code" : @"provider-not-ready",
159
+ @"message" : kRNFBAppCheckProviderNotReadyMessage,
160
+ }];
161
+ return YES;
162
+ }
163
+
127
164
  - (void)getToken:(NSString *)appName
128
165
  forceRefresh:(BOOL)forceRefresh
129
166
  resolve:(RCTPromiseResolveBlock)resolve
130
167
  reject:(RCTPromiseRejectBlock)reject {
131
168
  FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
132
- FIRAppCheck *appCheck = [FIRAppCheck appCheckWithApp:firebaseApp];
133
169
  DLog(@"appName %@", firebaseApp.name);
170
+ if (RNFBAppCheckRejectIfProviderNotReady(firebaseApp, reject)) {
171
+ return;
172
+ }
173
+ FIRAppCheck *appCheck = [FIRAppCheck appCheckWithApp:firebaseApp];
134
174
  [appCheck
135
175
  tokenForcingRefresh:forceRefresh
136
176
  completion:^(FIRAppCheckToken *_Nullable token, NSError *_Nullable error) {
137
177
  if (error != nil) {
138
178
  DLog(@"RNFBAppCheck - getToken - Unable to retrieve App Check token: %@", error);
179
+ NSString *code = RNFBAppCheckRejectCodeForError(error);
139
180
  [RNFBSharedUtils rejectPromiseWithUserInfo:reject
140
181
  userInfo:(NSMutableDictionary *)@{
141
- @"code" : @"token-error",
182
+ @"code" : code,
142
183
  @"message" : [error localizedDescription],
143
184
  }];
144
185
  return;
@@ -163,15 +204,19 @@ RCT_EXPORT_MODULE(NativeRNFBTurboAppCheck)
163
204
  resolve:(RCTPromiseResolveBlock)resolve
164
205
  reject:(RCTPromiseRejectBlock)reject {
165
206
  FIRApp *firebaseApp = [RCTConvert firAppFromString:appName];
166
- FIRAppCheck *appCheck = [FIRAppCheck appCheckWithApp:firebaseApp];
167
207
  DLog(@"appName %@", firebaseApp.name);
208
+ if (RNFBAppCheckRejectIfProviderNotReady(firebaseApp, reject)) {
209
+ return;
210
+ }
211
+ FIRAppCheck *appCheck = [FIRAppCheck appCheckWithApp:firebaseApp];
168
212
  [appCheck limitedUseTokenWithCompletion:^(FIRAppCheckToken *_Nullable token,
169
213
  NSError *_Nullable error) {
170
214
  if (error != nil) {
171
215
  DLog(@"RNFBAppCheck - getLimitedUseToken - Unable to retrieve App Check token: %@", error);
216
+ NSString *code = RNFBAppCheckRejectCodeForError(error);
172
217
  [RNFBSharedUtils rejectPromiseWithUserInfo:reject
173
218
  userInfo:(NSMutableDictionary *)@{
174
- @"code" : @"token-error",
219
+ @"code" : code,
175
220
  @"message" : [error localizedDescription],
176
221
  }];
177
222
  return;
@@ -25,6 +25,9 @@
25
25
  @import FirebaseAppCheck;
26
26
  #endif
27
27
 
28
+ // AppCheck-AD-8 locked message (Provider pending error + Module early reject).
29
+ FOUNDATION_EXPORT NSString *const kRNFBAppCheckProviderNotReadyMessage;
30
+
28
31
  @interface RNFBAppCheckProvider : NSObject <FIRAppCheckProvider>
29
32
 
30
33
  @property FIRApp *app;
@@ -17,6 +17,9 @@
17
17
  #import "RNFBAppCheckProvider.h"
18
18
  #import "RNFBApp/RNFBSharedUtils.h"
19
19
 
20
+ NSString *const kRNFBAppCheckProviderNotReadyMessage =
21
+ @"App Check provider is not ready. Call initializeAppCheck before requesting tokens.";
22
+
20
23
  @implementation RNFBAppCheckProvider
21
24
 
22
25
  - (id)initWithApp:app {
@@ -85,14 +88,35 @@
85
88
  }
86
89
  }
87
90
 
91
+ // AppCheck-AD-8: fail closed while pending — no network / no exchangeDebugToken.
92
+ static NSError *RNFBAppCheckProviderNotReadyError(void) {
93
+ return [NSError errorWithDomain:@"RNFBErrorDomain"
94
+ code:666
95
+ userInfo:@{
96
+ @"code" : @"provider-not-ready",
97
+ @"message" : kRNFBAppCheckProviderNotReadyMessage,
98
+ NSLocalizedDescriptionKey : kRNFBAppCheckProviderNotReadyMessage,
99
+ }];
100
+ }
101
+
88
102
  - (void)getTokenWithCompletion:(nonnull void (^)(FIRAppCheckToken *_Nullable,
89
103
  NSError *_Nullable))handler {
104
+ if (self.delegateProvider == nil) {
105
+ DLog(@"getTokenWithCompletion: provider not ready (nil delegateProvider)");
106
+ handler(nil, RNFBAppCheckProviderNotReadyError());
107
+ return;
108
+ }
90
109
  DLog(@"proxying getTokenWithCompletion to delegateProvider...");
91
110
  [self.delegateProvider getTokenWithCompletion:handler];
92
111
  }
93
112
 
94
113
  - (void)getLimitedUseTokenWithCompletion:(nonnull void (^)(FIRAppCheckToken *_Nullable,
95
114
  NSError *_Nullable))handler {
115
+ if (self.delegateProvider == nil) {
116
+ DLog(@"getLimitedUseTokenWithCompletion: provider not ready (nil delegateProvider)");
117
+ handler(nil, RNFBAppCheckProviderNotReadyError());
118
+ return;
119
+ }
96
120
  DLog(@"proxying getLimitedUseTokenWithCompletion to delegateProvider...");
97
121
  [self.delegateProvider getLimitedUseTokenWithCompletion:handler];
98
122
  }
@@ -25,4 +25,7 @@
25
25
  providerName:(NSString *_Nonnull)providerName
26
26
  debugToken:(NSString *_Nullable)debugToken;
27
27
 
28
+ /** Returns the factory-held facade for `app`, or nil if none exists yet. */
29
+ - (RNFBAppCheckProvider *_Nullable)providerForApp:(FIRApp *_Nonnull)app;
30
+
28
31
  @end
@@ -23,19 +23,18 @@
23
23
  - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(FIRApp *)app {
24
24
  DLog(@"appName %@", app.name);
25
25
 
26
- // The SDK may try to call this before we have been configured,
27
- // so we will configure ourselves and set the provider up as a default to start
28
- // pre-configure
26
+ // Firebase may call this during FirebaseApp.configure() before JS runs
27
+ // configureProvider. Install a pending facade only (AppCheck-AD-1).
29
28
  if (self.providers == nil) {
30
29
  DLog(@"providers dictionary initializing for app %@", app.name);
31
30
  self.providers = [NSMutableDictionary new];
32
31
  }
33
32
 
34
33
  if (self.providers[app.name] == nil) {
35
- DLog(@"provider initializing (with default to debug) for app %@", app.name);
34
+ // AppCheck-AD-1 / AD-2: facade only until configureProvider; no real provider
35
+ // (debug/App Attest/etc.) before JS/native configure. Same path DEBUG and release.
36
+ DLog(@"provider initializing (pending, no delegate) for app %@", app.name);
36
37
  self.providers[app.name] = [RNFBAppCheckProvider new];
37
- RNFBAppCheckProvider *provider = self.providers[app.name];
38
- [provider configure:app providerName:@"debug" debugToken:nil];
39
38
  }
40
39
 
41
40
  return self.providers[app.name];
@@ -58,4 +57,11 @@
58
57
  [provider configure:app providerName:providerName debugToken:debugToken];
59
58
  }
60
59
 
60
+ - (RNFBAppCheckProvider *)providerForApp:(FIRApp *)app {
61
+ if (app == nil || self.providers == nil) {
62
+ return nil;
63
+ }
64
+ return self.providers[app.name];
65
+ }
66
+
61
67
  @end