@react-native-firebase/remote-config 25.1.0 → 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 (58) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/RNFBRemoteConfig.podspec +7 -6
  3. package/android/build.gradle +19 -0
  4. package/android/src/reactnative/java/io/invertase/firebase/config/{ReactNativeFirebaseConfigModule.java → NativeRNFBTurboConfig.java} +53 -40
  5. package/android/src/reactnative/java/io/invertase/firebase/config/ReactNativeFirebaseConfigPackage.java +1 -1
  6. package/android/src/reactnative/java/io/invertase/firebase/config/generated/java/com/facebook/fbreact/specs/NativeRNFBTurboConfigSpec.java +115 -0
  7. package/android/src/reactnative/java/io/invertase/firebase/config/generated/jni/CMakeLists.txt +36 -0
  8. package/android/src/reactnative/java/io/invertase/firebase/config/generated/jni/RNFBRemoteConfigTurboModules-generated.cpp +98 -0
  9. package/android/src/reactnative/java/io/invertase/firebase/config/generated/jni/RNFBRemoteConfigTurboModules.h +31 -0
  10. package/android/src/reactnative/java/io/invertase/firebase/config/generated/jni/react/renderer/components/RNFBRemoteConfigTurboModules/RNFBRemoteConfigTurboModulesJSI-generated.cpp +110 -0
  11. package/android/src/reactnative/java/io/invertase/firebase/config/generated/jni/react/renderer/components/RNFBRemoteConfigTurboModules/RNFBRemoteConfigTurboModulesJSI.h +471 -0
  12. package/dist/module/index.js +499 -5
  13. package/dist/module/index.js.map +1 -1
  14. package/dist/module/version.js +1 -1
  15. package/dist/typescript/lib/index.d.ts +83 -5
  16. package/dist/typescript/lib/index.d.ts.map +1 -1
  17. package/dist/typescript/lib/types/internal.d.ts +25 -24
  18. package/dist/typescript/lib/types/internal.d.ts.map +1 -1
  19. package/dist/typescript/lib/types/remote-config.d.ts +24 -3
  20. package/dist/typescript/lib/types/remote-config.d.ts.map +1 -1
  21. package/dist/typescript/lib/version.d.ts +1 -1
  22. package/ios/RNFBConfig/RNFBConfigModule.h +3 -2
  23. package/ios/RNFBConfig/{RNFBConfigModule.m → RNFBConfigModule.mm} +137 -93
  24. package/ios/RNFBConfig.xcodeproj/project.pbxproj +8 -8
  25. package/ios/generated/RCTAppDependencyProvider.h +25 -0
  26. package/ios/generated/RCTAppDependencyProvider.mm +55 -0
  27. package/ios/generated/RCTModulesConformingToProtocolsProvider.h +18 -0
  28. package/ios/generated/RCTModulesConformingToProtocolsProvider.mm +33 -0
  29. package/ios/generated/RCTThirdPartyComponentsProvider.h +16 -0
  30. package/ios/generated/RCTThirdPartyComponentsProvider.mm +23 -0
  31. package/ios/generated/RNFBRemoteConfigTurboModules/RNFBRemoteConfigTurboModules-generated.mm +121 -0
  32. package/ios/generated/RNFBRemoteConfigTurboModules/RNFBRemoteConfigTurboModules.h +172 -0
  33. package/ios/generated/RNFBRemoteConfigTurboModulesJSI-generated.cpp +110 -0
  34. package/ios/generated/RNFBRemoteConfigTurboModulesJSI.h +471 -0
  35. package/ios/generated/ReactAppDependencyProvider.podspec +34 -0
  36. package/lib/index.ts +683 -8
  37. package/lib/types/internal.ts +25 -44
  38. package/lib/types/remote-config.ts +28 -3
  39. package/lib/version.ts +1 -1
  40. package/package.json +23 -5
  41. package/react-native.config.js +10 -0
  42. package/specs/NativeRNFBTurboConfig.ts +60 -0
  43. package/typedoc.json +1 -1
  44. package/dist/module/modular.js +0 -155
  45. package/dist/module/modular.js.map +0 -1
  46. package/dist/module/namespaced.js +0 -400
  47. package/dist/module/namespaced.js.map +0 -1
  48. package/dist/module/types/namespaced.js +0 -24
  49. package/dist/module/types/namespaced.js.map +0 -1
  50. package/dist/typescript/lib/modular.d.ts +0 -76
  51. package/dist/typescript/lib/modular.d.ts.map +0 -1
  52. package/dist/typescript/lib/namespaced.d.ts +0 -11
  53. package/dist/typescript/lib/namespaced.d.ts.map +0 -1
  54. package/dist/typescript/lib/types/namespaced.d.ts +0 -124
  55. package/dist/typescript/lib/types/namespaced.d.ts.map +0 -1
  56. package/lib/modular.ts +0 -197
  57. package/lib/namespaced.ts +0 -552
  58. package/lib/types/namespaced.ts +0 -163
@@ -17,11 +17,505 @@
17
17
  *
18
18
  */
19
19
 
20
- // Export modular API
21
- export * from "./modular.js";
20
+ import { hasOwnProperty, isFunction, isIOS, isNumber, isObject, isString, isUndefined, parseListenerOrObserver } from '@react-native-firebase/app/dist/module/common';
21
+ import { FirebaseModule, getOrCreateModularInstance } from '@react-native-firebase/app/dist/module/internal';
22
+ import NativeFirebaseError from '@react-native-firebase/app/dist/module/internal/NativeFirebaseError';
23
+ import { setReactNativeModule } from '@react-native-firebase/app/dist/module/internal/nativeModule';
24
+ import RemoteConfigValue from "./RemoteConfigValue.js";
25
+ import { LastFetchStatus, ValueSource } from "./statics.js";
26
+ import { version } from "./version.js";
27
+ import fallBackModule from './web/RNFBConfigModule';
28
+ import "./types/internal.js";
29
+ const namespace = 'remoteConfig';
30
+ const nativeModuleName = 'NativeRNFBTurboConfig';
31
+ function isSuccessEvent(event) {
32
+ return event.resultType === 'success';
33
+ }
34
+ function toConfigUpdate(updatedKeys) {
35
+ return {
36
+ getUpdatedKeys: () => new Set(updatedKeys)
37
+ };
38
+ }
39
+ function toNativeFirebaseError(errorEvent) {
40
+ return NativeFirebaseError.fromEvent(errorEvent, namespace);
41
+ }
42
+ function rc(remoteConfig) {
43
+ return remoteConfig;
44
+ }
45
+ class FirebaseConfigModule extends FirebaseModule {
46
+ constructor(app, config, customUrlOrRegion) {
47
+ super(app, config, customUrlOrRegion);
48
+ this._settings = {
49
+ // defaults to 1 minute.
50
+ fetchTimeoutMillis: 60000,
51
+ // defaults to 12 hours.
52
+ minimumFetchIntervalMillis: 43200000
53
+ };
54
+ this._lastFetchTime = -1;
55
+ this._lastFetchStatus = 'no_fetch_yet';
56
+ this._values = {};
57
+ this._configUpdateListenerCount = 0;
58
+ this._nativeMutationQueue = Promise.resolve();
59
+ }
60
+ get defaultConfig() {
61
+ const updatedDefaultConfig = {};
62
+ Object.keys(this._values).forEach(key => {
63
+ // Need to make it an object with key and literal value. Not `Value` instance.
64
+ const configValue = this._values[key];
65
+ if (configValue) {
66
+ updatedDefaultConfig[key] = configValue.value;
67
+ }
68
+ });
69
+ return updatedDefaultConfig;
70
+ }
71
+ set defaultConfig(defaults) {
72
+ if (!isObject(defaults)) {
73
+ throw new Error("firebase.remoteConfig().defaultConfig: 'defaults' must be an object.");
74
+ }
22
75
 
23
- // Export namespaced API
76
+ // To make Firebase web v9 API compatible, we update the config first so it immediately
77
+ // updates defaults on the instance. We then pass to underlying SDK to update. We do this because
78
+ // there is no way to "await" a setter.
79
+ const nonDefaultValues = Object.fromEntries(Object.entries(this._values).filter(([, configValue]) => configValue?.source !== 'default'));
80
+ this._values = Object.freeze({
81
+ ...Object.fromEntries(Object.entries(defaults).map(([key, value]) => [key, {
82
+ value,
83
+ source: 'default'
84
+ }])),
85
+ ...nonDefaultValues
86
+ });
87
+ void this.setDefaults(defaults, true);
88
+ }
89
+ get settings() {
90
+ return {
91
+ minimumFetchIntervalMillis: this._settings.minimumFetchIntervalMillis,
92
+ fetchTimeoutMillis: this._settings.fetchTimeoutMillis,
93
+ fetchTimeMillis: this._settings.fetchTimeoutMillis
94
+ };
95
+ }
96
+ set settings(settings) {
97
+ // To make Firebase web v9 API compatible, we update the settings first so it immediately
98
+ // updates settings on the instance. We then pass to underlying SDK to update. We do this because
99
+ // there is no way to "await" a setter. We can't delegate to `setConfigSettings()` as it is setup
100
+ // for native.
101
+ this._settings = {
102
+ minimumFetchIntervalMillis: settings.minimumFetchIntervalMillis ?? this._settings.minimumFetchIntervalMillis,
103
+ fetchTimeoutMillis: ('fetchTimeoutMillis' in settings ? settings.fetchTimeoutMillis : undefined) ?? ('fetchTimeMillis' in settings ? settings.fetchTimeMillis : undefined) ?? this._settings.fetchTimeoutMillis
104
+ };
105
+ void this.setConfigSettings(settings, true);
106
+ }
107
+ getValue(key) {
108
+ if (!isString(key)) {
109
+ throw new Error("firebase.remoteConfig().getValue(): 'key' must be a string value.");
110
+ }
111
+ if (typeof this._values === 'undefined' || !hasOwnProperty(this._values, key)) {
112
+ return new RemoteConfigValue({
113
+ value: '',
114
+ source: 'static'
115
+ });
116
+ }
117
+ const configValue = this._values[key];
118
+ return new RemoteConfigValue({
119
+ value: `${configValue.value}`,
120
+ source: configValue.source
121
+ });
122
+ }
123
+ getBoolean(key) {
124
+ return this.getValue(key).asBoolean();
125
+ }
126
+ getNumber(key) {
127
+ return this.getValue(key).asNumber();
128
+ }
129
+ getString(key) {
130
+ return this.getValue(key).asString();
131
+ }
132
+ getAll() {
133
+ const values = {};
134
+ Object.keys(this._values).forEach(key => {
135
+ values[key] = this.getValue(key);
136
+ });
137
+ return values;
138
+ }
139
+ get fetchTimeMillis() {
140
+ // android returns -1 if no fetch yet and iOS returns 0
141
+ return this._lastFetchTime;
142
+ }
143
+ get lastFetchStatus() {
144
+ return this._lastFetchStatus;
145
+ }
24
146
 
25
- export { SDK_VERSION, firebase } from "./namespaced.js";
26
- export { default } from "./namespaced.js";
147
+ /**
148
+ * Deletes all activated, fetched and defaults configs and resets all Firebase Remote Config settings.
149
+ * @returns {Promise<void>}
150
+ */
151
+ reset() {
152
+ if (isIOS) {
153
+ return Promise.resolve();
154
+ }
155
+ return this._enqueueNativeMutation(() => this._promiseWithConstants(this.native.reset()));
156
+ }
157
+ setConfigSettings(settings, fromSettingsSetter = false) {
158
+ const updatedSettings = {
159
+ fetchTimeout: this._settings.fetchTimeoutMillis / 1000,
160
+ minimumFetchInterval: this._settings.minimumFetchIntervalMillis / 1000
161
+ };
162
+ const apiCalled = fromSettingsSetter ? 'settings' : 'setConfigSettings';
163
+ if (!isObject(settings)) {
164
+ throw new Error(`firebase.remoteConfig().${apiCalled}(*): settings must set an object.`);
165
+ }
166
+ if (hasOwnProperty(settings, 'minimumFetchIntervalMillis')) {
167
+ if (!isNumber(settings.minimumFetchIntervalMillis)) {
168
+ throw new Error(`firebase.remoteConfig().${apiCalled}(): 'settings.minimumFetchIntervalMillis' must be a number type in milliseconds.`);
169
+ } else {
170
+ updatedSettings.minimumFetchInterval = settings.minimumFetchIntervalMillis / 1000;
171
+ }
172
+ }
173
+ if (hasOwnProperty(settings, 'fetchTimeMillis')) {
174
+ if (!isNumber(settings.fetchTimeMillis)) {
175
+ throw new Error(`firebase.remoteConfig().${apiCalled}(): 'settings.fetchTimeMillis' must be a number type in milliseconds.`);
176
+ }
177
+ updatedSettings.fetchTimeout = settings.fetchTimeMillis / 1000;
178
+ } else if (hasOwnProperty(settings, 'fetchTimeoutMillis')) {
179
+ if (!isNumber(settings.fetchTimeoutMillis)) {
180
+ throw new Error(`firebase.remoteConfig().${apiCalled}(): 'settings.fetchTimeoutMillis' must be a number type in milliseconds.`);
181
+ }
182
+ updatedSettings.fetchTimeout = settings.fetchTimeoutMillis / 1000;
183
+ }
184
+ const nextSettings = {
185
+ fetchTimeoutMillis: updatedSettings.fetchTimeout * 1000,
186
+ minimumFetchIntervalMillis: updatedSettings.minimumFetchInterval * 1000
187
+ };
188
+
189
+ // Keep JS reads in sync immediately. Native can report stale settings constants
190
+ // for this call because native setConfigSettingsAsync completes after the bridge resolves.
191
+ this._settings = nextSettings;
192
+ return this._enqueueNativeMutation(() => this.native.setConfigSettings(updatedSettings).then(({
193
+ result,
194
+ constants
195
+ }) => {
196
+ // Preserve the eagerly computed settings above and only refresh the rest of the cache.
197
+ this._updateFromConstants({
198
+ ...constants,
199
+ fetchTimeout: undefined,
200
+ minimumFetchInterval: undefined
201
+ });
202
+ return result;
203
+ }));
204
+ }
205
+
206
+ /**
207
+ * Activates the Fetched RemoteConfig, so that the fetched key-values take effect.
208
+ * @returns {Promise<boolean>}
209
+ */
210
+ activate() {
211
+ return this._promiseWithConstants(this.native.activate());
212
+ }
213
+
214
+ /**
215
+ * Fetches parameter values for your app.
216
+ *
217
+ * @param expirationDurationSeconds
218
+ * @returns {Promise}
219
+ */
220
+ fetch(expirationDurationSeconds) {
221
+ if (!isUndefined(expirationDurationSeconds) && !isNumber(expirationDurationSeconds)) {
222
+ throw new Error("firebase.remoteConfig().fetch(): 'expirationDurationSeconds' must be a number value.");
223
+ }
224
+ return this._promiseWithConstants(this.native.fetch(expirationDurationSeconds !== undefined ? expirationDurationSeconds : -1));
225
+ }
226
+ fetchAndActivate() {
227
+ return this._promiseWithConstants(this.native.fetchAndActivate());
228
+ }
229
+ ensureInitialized() {
230
+ return this._promiseWithConstants(this.native.ensureInitialized());
231
+ }
232
+
233
+ /**
234
+ * Sets defaults.
235
+ *
236
+ * @param defaults
237
+ */
238
+ setDefaults(defaults, fromDefaultConfigSetter = false) {
239
+ const apiCalled = fromDefaultConfigSetter ? 'defaultConfig' : 'setDefaults';
240
+ if (!isObject(defaults)) {
241
+ throw new Error(`firebase.remoteConfig().${apiCalled}(): 'defaults' must be an object.`);
242
+ }
243
+ return this._enqueueNativeMutation(() => this._promiseWithConstants(this.native.setDefaults(defaults)));
244
+ }
245
+
246
+ /**
247
+ * Sets defaults based on resource.
248
+ * @param resourceName
249
+ */
250
+ setDefaultsFromResource(resourceName) {
251
+ if (!isString(resourceName)) {
252
+ throw new Error("firebase.remoteConfig().setDefaultsFromResource(): 'resourceName' must be a string value.");
253
+ }
254
+ return this._enqueueNativeMutation(() => this._promiseWithConstants(this.native.setDefaultsFromResource(resourceName)));
255
+ }
256
+
257
+ /**
258
+ * Registers an observer to changes in the configuration.
259
+ *
260
+ * @param observer - The observer to be notified of config updates.
261
+ * @returns An unsubscribe function to remove the listener.
262
+ */
263
+ onConfigUpdate(observer) {
264
+ if (!isObject(observer) || !isFunction(observer.next) || !isFunction(observer.error)) {
265
+ throw new Error("'observer' expected an object with 'next' and 'error' functions.");
266
+ }
267
+
268
+ // We maintaine our pre-web-support native interface but bend it to match
269
+ // the official JS SDK API by assuming the callback is an Observer, and sending it a ConfigUpdate
270
+ // compatible parameter that implements the `getUpdatedKeys` method
271
+ let unsubscribed = false;
272
+ const subscription = this.emitter.addListener(this.eventNameForApp('on_config_updated'), event => {
273
+ if (isSuccessEvent(event)) {
274
+ observer.next(toConfigUpdate(event.updatedKeys));
275
+ return;
276
+ }
277
+ observer.error(toNativeFirebaseError(event));
278
+ });
279
+ if (this._configUpdateListenerCount === 0) {
280
+ this.native.onConfigUpdated();
281
+ }
282
+ this._configUpdateListenerCount++;
283
+ return () => {
284
+ if (unsubscribed) {
285
+ // there is no harm in calling this multiple times to unsubscribe,
286
+ // but anything after the first call is a no-op
287
+ return;
288
+ }
289
+ unsubscribed = true;
290
+ subscription.remove();
291
+ this._configUpdateListenerCount--;
292
+ if (this._configUpdateListenerCount === 0) {
293
+ this.native.removeConfigUpdateRegistration();
294
+ }
295
+ };
296
+ }
297
+
298
+ /**
299
+ * Registers a listener to changes in the configuration.
300
+ *
301
+ * @param listenerOrObserver - function called on config change
302
+ * @returns unsubscribe listener
303
+ * @deprecated use official firebase-js-sdk onConfigUpdate now that web supports realtime
304
+ */
305
+ onConfigUpdated(listenerOrObserver) {
306
+ const listener = parseListenerOrObserver(listenerOrObserver);
307
+ let unsubscribed = false;
308
+ const subscription = this.emitter.addListener(this.eventNameForApp('on_config_updated'), event => {
309
+ if (isSuccessEvent(event)) {
310
+ listener({
311
+ updatedKeys: event.updatedKeys
312
+ }, undefined);
313
+ return;
314
+ }
315
+ listener(undefined, {
316
+ code: event.code,
317
+ message: event.message,
318
+ nativeErrorMessage: event.nativeErrorMessage
319
+ });
320
+ });
321
+ if (this._configUpdateListenerCount === 0) {
322
+ this.native.onConfigUpdated();
323
+ }
324
+ this._configUpdateListenerCount++;
325
+ return () => {
326
+ if (unsubscribed) {
327
+ // there is no harm in calling this multiple times to unsubscribe,
328
+ // but anything after the first call is a no-op
329
+ return;
330
+ }
331
+ unsubscribed = true;
332
+ subscription.remove();
333
+ this._configUpdateListenerCount--;
334
+ if (this._configUpdateListenerCount === 0) {
335
+ this.native.removeConfigUpdateRegistration();
336
+ }
337
+ };
338
+ }
339
+ _updateFromConstants(constants) {
340
+ // Wrapped this as we update using sync getters initially for `defaultConfig` & `settings`
341
+ if (constants.lastFetchTime !== undefined) {
342
+ this._lastFetchTime = constants.lastFetchTime;
343
+ }
344
+
345
+ // Wrapped this as we update using sync getters initially for `defaultConfig` & `settings`
346
+ if (constants.lastFetchStatus !== undefined) {
347
+ this._lastFetchStatus = constants.lastFetchStatus;
348
+ }
349
+ if (constants.fetchTimeout !== undefined && constants.minimumFetchInterval !== undefined) {
350
+ this._settings = {
351
+ fetchTimeoutMillis: constants.fetchTimeout * 1000,
352
+ minimumFetchIntervalMillis: constants.minimumFetchInterval * 1000
353
+ };
354
+ }
355
+ if (constants.values !== undefined) {
356
+ this._values = Object.freeze(constants.values);
357
+ }
358
+ }
359
+ _promiseWithConstants(promise) {
360
+ return promise.then(({
361
+ result,
362
+ constants
363
+ }) => {
364
+ this._updateFromConstants(constants);
365
+ return result;
366
+ });
367
+ }
368
+ _enqueueNativeMutation(task) {
369
+ // Some callers (like property setters) discard the returned promise; serialize all mutations
370
+ // so later writes like reset() cannot be overwritten by an earlier async completion.
371
+ const next = this._nativeMutationQueue.then(task, task);
372
+ this._nativeMutationQueue = next.then(() => undefined, () => undefined);
373
+ return next;
374
+ }
375
+ }
376
+ const config = {
377
+ namespace,
378
+ nativeModuleName,
379
+ nativeEvents: ['on_config_updated'],
380
+ hasMultiAppSupport: true,
381
+ hasCustomUrlOrRegionSupport: false,
382
+ turboModule: true
383
+ };
384
+ export { LastFetchStatus, ValueSource };
385
+ export const SDK_VERSION = version;
386
+
387
+ /**
388
+ * Returns a RemoteConfig instance for the given app.
389
+ * @param app - FirebaseApp. Optional.
390
+ */
391
+ export function getRemoteConfig(app, options) {
392
+ void options;
393
+ return getOrCreateModularInstance(FirebaseConfigModule, config, app);
394
+ }
395
+
396
+ /**
397
+ * Returns a Boolean which resolves to true if the current call
398
+ * activated the fetched configs.
399
+ */
400
+ export function activate(remoteConfig) {
401
+ return rc(remoteConfig).activate();
402
+ }
403
+
404
+ /**
405
+ * Ensures the last activated config are available to the getters.
406
+ */
407
+ export function ensureInitialized(remoteConfig) {
408
+ return rc(remoteConfig).ensureInitialized();
409
+ }
410
+
411
+ /**
412
+ * Performs a fetch and returns a Boolean which resolves to true
413
+ * if the current call activated the fetched configs.
414
+ */
415
+ export function fetchAndActivate(remoteConfig) {
416
+ return rc(remoteConfig).fetchAndActivate();
417
+ }
418
+
419
+ /**
420
+ * Fetches and caches configuration from the Remote Config service.
421
+ */
422
+ export function fetchConfig(remoteConfig) {
423
+ return rc(remoteConfig).fetch();
424
+ }
425
+
426
+ /**
427
+ * Gets all config.
428
+ */
429
+ export function getAll(remoteConfig) {
430
+ return rc(remoteConfig).getAll();
431
+ }
432
+
433
+ /**
434
+ * Gets the value for the given key as a boolean.
435
+ */
436
+ export function getBoolean(remoteConfig, key) {
437
+ return rc(remoteConfig).getBoolean(key);
438
+ }
439
+
440
+ /**
441
+ * Gets the value for the given key as a number.
442
+ */
443
+ export function getNumber(remoteConfig, key) {
444
+ return rc(remoteConfig).getNumber(key);
445
+ }
446
+
447
+ /**
448
+ * Gets the value for the given key as a string.
449
+ */
450
+ export function getString(remoteConfig, key) {
451
+ return rc(remoteConfig).getString(key);
452
+ }
453
+
454
+ /**
455
+ * Gets the value for the given key.
456
+ */
457
+ export function getValue(remoteConfig, key) {
458
+ return rc(remoteConfig).getValue(key);
459
+ }
460
+
461
+ /**
462
+ * Defines the log level to use.
463
+ */
464
+ export function setLogLevel(remoteConfig, logLevel) {
465
+ void remoteConfig;
466
+ void logLevel;
467
+ // Intentionally ignored on native. The modular API matches the JS SDK and returns void.
468
+ }
469
+
470
+ /**
471
+ * Checks two different things.
472
+ * 1. Check if IndexedDB exists in the browser environment.
473
+ * 2. Check if the current browser context allows IndexedDB open() calls.
474
+ */
475
+ export function isSupported() {
476
+ // always return "true" for now. Web only.
477
+ return Promise.resolve(true);
478
+ }
479
+
480
+ /**
481
+ * Deletes all activated, fetched and defaults configs and
482
+ * resets all Firebase Remote Config settings.
483
+ *
484
+ * @remarks **Android only.** iOS does not clear activated, fetched, or default configs.
485
+ */
486
+ export function reset(remoteConfig) {
487
+ return rc(remoteConfig).reset();
488
+ }
489
+
490
+ /**
491
+ * Sets defaults based on a native resource file.
492
+ *
493
+ * @remarks Loads defaults from a platform resource — iOS `.plist` or Android XML — identified
494
+ * by `resourceName`. No firebase-js-sdk modular equivalent.
495
+ */
496
+ export function setDefaultsFromResource(remoteConfig, resourceName) {
497
+ return rc(remoteConfig).setDefaultsFromResource(resourceName);
498
+ }
499
+
500
+ /**
501
+ * Registers a listener to changes in the configuration.
502
+ *
503
+ */
504
+ export function onConfigUpdate(remoteConfig, observer) {
505
+ return rc(remoteConfig).onConfigUpdate(observer);
506
+ }
507
+
508
+ /**
509
+ * Sets the custom signals for the app instance.
510
+ */
511
+ export async function setCustomSignals(remoteConfig, customSignals) {
512
+ for (const [key, value] of Object.entries(customSignals)) {
513
+ if (typeof value !== 'string' && typeof value !== 'number' && value !== null) {
514
+ throw new Error(`firebase.remoteConfig().setCustomSignals(): Invalid type for custom signal '${key}': ${typeof value}. Expected 'string', 'number', or 'null'.`);
515
+ }
516
+ }
517
+ return rc(remoteConfig)._promiseWithConstants(rc(remoteConfig).native.setCustomSignals(customSignals));
518
+ }
519
+ // Register the interop module for non-native platforms.
520
+ setReactNativeModule(nativeModuleName, fallBackModule);
27
521
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SDK_VERSION","firebase","default"],"sourceRoot":"../../lib","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,cAAW;;AAGzB;;AAEA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,iBAAc;AACpD,SAASC,OAAO,QAAQ,iBAAc","ignoreList":[]}
1
+ {"version":3,"names":["hasOwnProperty","isFunction","isIOS","isNumber","isObject","isString","isUndefined","parseListenerOrObserver","FirebaseModule","getOrCreateModularInstance","NativeFirebaseError","setReactNativeModule","RemoteConfigValue","LastFetchStatus","ValueSource","version","fallBackModule","namespace","nativeModuleName","isSuccessEvent","event","resultType","toConfigUpdate","updatedKeys","getUpdatedKeys","Set","toNativeFirebaseError","errorEvent","fromEvent","rc","remoteConfig","FirebaseConfigModule","constructor","app","config","customUrlOrRegion","_settings","fetchTimeoutMillis","minimumFetchIntervalMillis","_lastFetchTime","_lastFetchStatus","_values","_configUpdateListenerCount","_nativeMutationQueue","Promise","resolve","defaultConfig","updatedDefaultConfig","Object","keys","forEach","key","configValue","value","defaults","Error","nonDefaultValues","fromEntries","entries","filter","source","freeze","map","setDefaults","settings","fetchTimeMillis","undefined","setConfigSettings","getValue","getBoolean","asBoolean","getNumber","asNumber","getString","asString","getAll","values","lastFetchStatus","reset","_enqueueNativeMutation","_promiseWithConstants","native","fromSettingsSetter","updatedSettings","fetchTimeout","minimumFetchInterval","apiCalled","nextSettings","then","result","constants","_updateFromConstants","activate","fetch","expirationDurationSeconds","fetchAndActivate","ensureInitialized","fromDefaultConfigSetter","setDefaultsFromResource","resourceName","onConfigUpdate","observer","next","error","unsubscribed","subscription","emitter","addListener","eventNameForApp","onConfigUpdated","remove","removeConfigUpdateRegistration","listenerOrObserver","listener","code","message","nativeErrorMessage","lastFetchTime","promise","task","nativeEvents","hasMultiAppSupport","hasCustomUrlOrRegionSupport","turboModule","SDK_VERSION","getRemoteConfig","options","fetchConfig","setLogLevel","logLevel","isSupported","setCustomSignals","customSignals"],"sourceRoot":"../../lib","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
 
3
3
  // Generated by genversion.
4
- export const version = '25.1.0';
4
+ export const version = '26.0.0';
5
5
  //# sourceMappingURL=version.js.map
@@ -1,6 +1,84 @@
1
- export * from './modular';
2
- export type * from './types/remote-config';
3
- export type { FirebaseRemoteConfigTypes } from './types/namespaced';
4
- export { SDK_VERSION, firebase } from './namespaced';
5
- export { default } from './namespaced';
1
+ import type { FirebaseApp } from '@react-native-firebase/app';
2
+ import { LastFetchStatus, ValueSource } from './statics';
3
+ import type { ConfigUpdateObserver, CustomSignals, LogLevel, RemoteConfig, RemoteConfigOptions, Unsubscribe, Value } from './types/remote-config';
4
+ import './types/internal';
5
+ export { LastFetchStatus, ValueSource };
6
+ export declare const SDK_VERSION = "26.0.0";
7
+ /**
8
+ * Returns a RemoteConfig instance for the given app.
9
+ * @param app - FirebaseApp. Optional.
10
+ */
11
+ export declare function getRemoteConfig(app?: FirebaseApp, options?: RemoteConfigOptions): RemoteConfig;
12
+ /**
13
+ * Returns a Boolean which resolves to true if the current call
14
+ * activated the fetched configs.
15
+ */
16
+ export declare function activate(remoteConfig: RemoteConfig): Promise<boolean>;
17
+ /**
18
+ * Ensures the last activated config are available to the getters.
19
+ */
20
+ export declare function ensureInitialized(remoteConfig: RemoteConfig): Promise<void>;
21
+ /**
22
+ * Performs a fetch and returns a Boolean which resolves to true
23
+ * if the current call activated the fetched configs.
24
+ */
25
+ export declare function fetchAndActivate(remoteConfig: RemoteConfig): Promise<boolean>;
26
+ /**
27
+ * Fetches and caches configuration from the Remote Config service.
28
+ */
29
+ export declare function fetchConfig(remoteConfig: RemoteConfig): Promise<void>;
30
+ /**
31
+ * Gets all config.
32
+ */
33
+ export declare function getAll(remoteConfig: RemoteConfig): Record<string, Value>;
34
+ /**
35
+ * Gets the value for the given key as a boolean.
36
+ */
37
+ export declare function getBoolean(remoteConfig: RemoteConfig, key: string): boolean;
38
+ /**
39
+ * Gets the value for the given key as a number.
40
+ */
41
+ export declare function getNumber(remoteConfig: RemoteConfig, key: string): number;
42
+ /**
43
+ * Gets the value for the given key as a string.
44
+ */
45
+ export declare function getString(remoteConfig: RemoteConfig, key: string): string;
46
+ /**
47
+ * Gets the value for the given key.
48
+ */
49
+ export declare function getValue(remoteConfig: RemoteConfig, key: string): Value;
50
+ /**
51
+ * Defines the log level to use.
52
+ */
53
+ export declare function setLogLevel(remoteConfig: RemoteConfig, logLevel: LogLevel): void;
54
+ /**
55
+ * Checks two different things.
56
+ * 1. Check if IndexedDB exists in the browser environment.
57
+ * 2. Check if the current browser context allows IndexedDB open() calls.
58
+ */
59
+ export declare function isSupported(): Promise<boolean>;
60
+ /**
61
+ * Deletes all activated, fetched and defaults configs and
62
+ * resets all Firebase Remote Config settings.
63
+ *
64
+ * @remarks **Android only.** iOS does not clear activated, fetched, or default configs.
65
+ */
66
+ export declare function reset(remoteConfig: RemoteConfig): Promise<void>;
67
+ /**
68
+ * Sets defaults based on a native resource file.
69
+ *
70
+ * @remarks Loads defaults from a platform resource — iOS `.plist` or Android XML — identified
71
+ * by `resourceName`. No firebase-js-sdk modular equivalent.
72
+ */
73
+ export declare function setDefaultsFromResource(remoteConfig: RemoteConfig, resourceName: string): Promise<null>;
74
+ /**
75
+ * Registers a listener to changes in the configuration.
76
+ *
77
+ */
78
+ export declare function onConfigUpdate(remoteConfig: RemoteConfig, observer: ConfigUpdateObserver): Unsubscribe;
79
+ /**
80
+ * Sets the custom signals for the app instance.
81
+ */
82
+ export declare function setCustomSignals(remoteConfig: RemoteConfig, customSignals: CustomSignals): Promise<void>;
83
+ export type { ConfigUpdate, ConfigUpdateObserver, CustomSignals, FetchResponse, FetchStatus, FirebaseExperimentDescription, FirebaseRemoteConfigObject, LogLevel, RemoteConfig, RemoteConfigOptions, RemoteConfigSettings, Unsubscribe, Value, } from './types/remote-config';
6
84
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"AAkBA,cAAc,WAAW,CAAC;AAC1B,mBAAmB,uBAAuB,CAAC;AAG3C,YAAY,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/index.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAU9D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,KAAK,EAEV,oBAAoB,EACpB,aAAa,EAEb,QAAQ,EACR,YAAY,EACZ,mBAAmB,EAEnB,WAAW,EACX,KAAK,EACN,MAAM,uBAAuB,CAAC;AAe/B,OAAO,kBAAkB,CAAC;AAod1B,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;AACxC,eAAO,MAAM,WAAW,WAAU,CAAC;AAEnC;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,YAAY,CAG9F;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAErE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAE7E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAErE;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAExE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAEvE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAIhF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAG9C;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,oBAAoB,GAC7B,WAAW,CAEb;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,WAAW,EACX,6BAA6B,EAC7B,0BAA0B,EAC1B,QAAQ,EACR,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,KAAK,GACN,MAAM,uBAAuB,CAAC"}