@firebase/database 1.0.10 → 1.0.11-canary.01f36ea41

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.
@@ -21,10 +21,11 @@ import { Provider } from '@firebase/component';
21
21
  * Abstraction around AppCheck's token fetching capabilities.
22
22
  */
23
23
  declare class AppCheckTokenProvider {
24
- private appName_;
25
24
  private appCheckProvider?;
26
25
  private appCheck?;
27
- constructor(appName_: string, appCheckProvider?: Provider<AppCheckInternalComponentName>);
26
+ private serverAppAppCheckToken?;
27
+ private appName;
28
+ constructor(app: FirebaseApp, appCheckProvider?: Provider<AppCheckInternalComponentName>);
28
29
  getToken(forceRefresh?: boolean): Promise<AppCheckTokenResult>;
29
30
  addTokenChangeListener(listener: AppCheckTokenListener): void;
30
31
  notifyForInvalidToken(): void;
@@ -1,7 +1,7 @@
1
1
  import Websocket from 'faye-websocket';
2
2
  import { stringify, jsonEval, contains, assert, isNodeSdk, stringToByteArray, Sha1, base64, deepCopy, base64Encode, isMobileCordova, stringLength, Deferred, safeGet, isAdmin, isValidFormat, isEmpty, isReactNative, assertionError, map, querystring, errorPrefix, getModularInstance, getDefaultEmulatorHostnameAndPort, createMockUserToken } from '@firebase/util';
3
3
  import { Logger, LogLevel } from '@firebase/logger';
4
- import { _getProvider, getApp, SDK_VERSION as SDK_VERSION$1, _registerComponent, registerVersion } from '@firebase/app';
4
+ import { _isFirebaseServerApp, _getProvider, getApp, SDK_VERSION as SDK_VERSION$1, _registerComponent, registerVersion } from '@firebase/app';
5
5
  import { Component, ComponentContainer, Provider } from '@firebase/component';
6
6
 
7
7
  /**
@@ -1251,7 +1251,7 @@ WebSocketConnection.responsesRequiredToBeHealthy = 2;
1251
1251
  WebSocketConnection.healthyTimeout = 30000;
1252
1252
 
1253
1253
  const name = "@firebase/database";
1254
- const version = "1.0.10";
1254
+ const version = "1.0.11-canary.01f36ea41";
1255
1255
 
1256
1256
  /**
1257
1257
  * @license
@@ -1273,15 +1273,24 @@ const version = "1.0.10";
1273
1273
  * Abstraction around AppCheck's token fetching capabilities.
1274
1274
  */
1275
1275
  class AppCheckTokenProvider {
1276
- constructor(appName_, appCheckProvider) {
1277
- this.appName_ = appName_;
1276
+ constructor(app, appCheckProvider) {
1278
1277
  this.appCheckProvider = appCheckProvider;
1278
+ this.appName = app.name;
1279
+ if (_isFirebaseServerApp(app) && app.settings.appCheckToken) {
1280
+ this.serverAppAppCheckToken = app.settings.appCheckToken;
1281
+ }
1279
1282
  this.appCheck = appCheckProvider === null || appCheckProvider === void 0 ? void 0 : appCheckProvider.getImmediate({ optional: true });
1280
1283
  if (!this.appCheck) {
1281
1284
  appCheckProvider === null || appCheckProvider === void 0 ? void 0 : appCheckProvider.get().then(appCheck => (this.appCheck = appCheck));
1282
1285
  }
1283
1286
  }
1284
1287
  getToken(forceRefresh) {
1288
+ if (this.serverAppAppCheckToken) {
1289
+ if (forceRefresh) {
1290
+ throw new Error('Attempted reuse of `FirebaseServerApp.appCheckToken` after previous usage failed.');
1291
+ }
1292
+ return Promise.resolve({ token: this.serverAppAppCheckToken });
1293
+ }
1285
1294
  if (!this.appCheck) {
1286
1295
  return new Promise((resolve, reject) => {
1287
1296
  // Support delayed initialization of FirebaseAppCheck. This allows our
@@ -1305,7 +1314,7 @@ class AppCheckTokenProvider {
1305
1314
  (_a = this.appCheckProvider) === null || _a === void 0 ? void 0 : _a.get().then(appCheck => appCheck.addTokenListener(listener));
1306
1315
  }
1307
1316
  notifyForInvalidToken() {
1308
- warn(`Provided AppCheck credentials for the app named "${this.appName_}" ` +
1317
+ warn(`Provided AppCheck credentials for the app named "${this.appName}" ` +
1309
1318
  'are invalid. This usually indicates your app was not initialized correctly.');
1310
1319
  }
1311
1320
  }
@@ -3736,7 +3745,7 @@ class PersistentConnection extends ServerActions {
3736
3745
  }
3737
3746
  this.lastConnectionEstablishedTime_ = null;
3738
3747
  }
3739
- const timeSinceLastConnectAttempt = new Date().getTime() - this.lastConnectionAttemptTime_;
3748
+ const timeSinceLastConnectAttempt = Math.max(0, new Date().getTime() - this.lastConnectionAttemptTime_);
3740
3749
  let reconnectDelay = Math.max(0, this.reconnectDelay_ - timeSinceLastConnectAttempt);
3741
3750
  reconnectDelay = Math.random() * reconnectDelay;
3742
3751
  this.log_('Trying to reconnect in ' + reconnectDelay + 'ms');
@@ -13527,7 +13536,7 @@ function repoManagerDatabaseFromApp(app, authProvider, appCheckProvider, url, no
13527
13536
  fatal('Database URL must point to the root of a Firebase Database ' +
13528
13537
  '(not including a child path).');
13529
13538
  }
13530
- const repo = repoManagerCreateRepo(repoInfo, app, authTokenProvider, new AppCheckTokenProvider(app.name, appCheckProvider));
13539
+ const repo = repoManagerCreateRepo(repoInfo, app, authTokenProvider, new AppCheckTokenProvider(app, appCheckProvider));
13531
13540
  return new Database(repo, app);
13532
13541
  }
13533
13542
  /**