@firebase/firestore 4.7.3-canary.aa6db78eb → 4.7.3-canary.b942e9e6e

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.
@@ -72,7 +72,7 @@ k.MOCK_USER = new k("mock-user");
72
72
  * See the License for the specific language governing permissions and
73
73
  * limitations under the License.
74
74
  */
75
- var O = "10.14.0-canary.aa6db78eb", P = new l("@firebase/firestore");
75
+ var O = "10.14.1-canary.b942e9e6e", P = new l("@firebase/firestore");
76
76
 
77
77
  /**
78
78
  * @license
@@ -5818,13 +5818,13 @@ n
5818
5818
  },
5819
5819
  enumerable: !1,
5820
5820
  configurable: !0
5821
- }), Object.defineProperty(t.prototype, "be", {
5821
+ }), Object.defineProperty(t.prototype, "Se", {
5822
5822
  /** Whether this target has pending target adds or target removes. */ get: function() {
5823
5823
  return 0 !== this.fe;
5824
5824
  },
5825
5825
  enumerable: !1,
5826
5826
  configurable: !0
5827
- }), Object.defineProperty(t.prototype, "Se", {
5827
+ }), Object.defineProperty(t.prototype, "be", {
5828
5828
  /** Whether we have modified any state that should trigger a snapshot. */ get: function() {
5829
5829
  return this.we;
5830
5830
  },
@@ -5922,7 +5922,7 @@ n
5922
5922
  case 1 /* WatchTargetChangeState.Added */ :
5923
5923
  // We need to decrement the number of pending acks needed from watch
5924
5924
  // for this targetId.
5925
- r.Oe(), r.be ||
5925
+ r.Oe(), r.Se ||
5926
5926
  // We have a freshly added target, so we need to reset any state
5927
5927
  // that we had previously. This can happen e.g. when remove and add
5928
5928
  // back a target for existence filter mismatches.
@@ -5934,7 +5934,7 @@ n
5934
5934
  // remove any target changes.
5935
5935
  // We need to decrement the number of pending acks needed from watch
5936
5936
  // for this targetId.
5937
- r.Oe(), r.be || e.removeTarget(n);
5937
+ r.Oe(), r.Se || e.removeTarget(n);
5938
5938
  break;
5939
5939
 
5940
5940
  case 3 /* WatchTargetChangeState.Current */ :
@@ -6082,7 +6082,7 @@ n
6082
6082
  var u = new dt(o.target.path);
6083
6083
  null !== e.ke.get(u) || e.it(i, u) || e.Ue(i, u, wn.newNoDocument(u, t));
6084
6084
  }
6085
- r.Se && (n.set(i, r.ve()), r.Ce());
6085
+ r.be && (n.set(i, r.ve()), r.Ce());
6086
6086
  }
6087
6087
  }));
6088
6088
  var r = Dr();
@@ -6170,7 +6170,7 @@ n
6170
6170
  */
6171
6171
  t.prototype.Je = function(t) {
6172
6172
  var e = this.Be.get(t);
6173
- return e && e.be ? null : this.Le.ot(t);
6173
+ return e && e.Se ? null : this.Le.ot(t);
6174
6174
  },
6175
6175
  /**
6176
6176
  * Resets the state of a Watch target to its initial state (e.g. sets
@@ -7222,13 +7222,13 @@ function Do(t, e, n, r) {
7222
7222
  e.gt(qe(t.bytesValue)), this.ft(e); else if ("referenceValue" in t) this.yt(t.referenceValue, e); else if ("geoPointValue" in t) {
7223
7223
  var i = t.geoPointValue;
7224
7224
  this.dt(e, 45), e.At(i.latitude || 0), e.At(i.longitude || 0);
7225
- } else "mapValue" in t ? hn(t) ? this.dt(e, Number.MAX_SAFE_INTEGER) : cn(t) ? this.wt(t.mapValue, e) : (this.bt(t.mapValue, e),
7226
- this.ft(e)) : "arrayValue" in t ? (this.St(t.arrayValue, e), this.ft(e)) : U();
7225
+ } else "mapValue" in t ? hn(t) ? this.dt(e, Number.MAX_SAFE_INTEGER) : cn(t) ? this.wt(t.mapValue, e) : (this.St(t.mapValue, e),
7226
+ this.ft(e)) : "arrayValue" in t ? (this.bt(t.arrayValue, e), this.ft(e)) : U();
7227
7227
  }, t.prototype.Vt = function(t, e) {
7228
7228
  this.dt(e, 25), this.Dt(t, e);
7229
7229
  }, t.prototype.Dt = function(t, e) {
7230
7230
  e.Rt(t);
7231
- }, t.prototype.bt = function(t, e) {
7231
+ }, t.prototype.St = function(t, e) {
7232
7232
  var n = t.fields || {};
7233
7233
  this.dt(e, 55);
7234
7234
  for (var r = 0, i = Object.keys(n); r < i.length; r++) {
@@ -7243,7 +7243,7 @@ function Do(t, e, n, r) {
7243
7243
  this.dt(e, 15), e.At(Le(u)),
7244
7244
  // Vectors then sort by position value
7245
7245
  this.Vt(o, e), this.Tt(i[o], e);
7246
- }, t.prototype.St = function(t, e) {
7246
+ }, t.prototype.bt = function(t, e) {
7247
7247
  var n = t.values || [];
7248
7248
  this.dt(e, 50);
7249
7249
  for (var r = 0, i = n; r < i.length; r++) {
@@ -8330,8 +8330,8 @@ var tu = /** @class */ function() {
8330
8330
  return (o ? Ct.resolve(o) : n.getFieldIndexes(t, e.collectionGroup)).next((function(o) {
8331
8331
  return r.set(e.collectionGroup, o), Ct.forEach(o, (function(r) {
8332
8332
  return n.wn(t, e, r).next((function(e) {
8333
- var o = n.bn(i, r);
8334
- return e.isEqual(o) ? Ct.resolve() : n.Sn(t, i, r, e, o);
8333
+ var o = n.Sn(i, r);
8334
+ return e.isEqual(o) ? Ct.resolve() : n.bn(t, i, r, e, o);
8335
8335
  }));
8336
8336
  }));
8337
8337
  }));
@@ -8358,7 +8358,7 @@ var tu = /** @class */ function() {
8358
8358
  return i;
8359
8359
  }));
8360
8360
  },
8361
- /** Creates the index entries for the given document. */ t.prototype.bn = function(t, e) {
8361
+ /** Creates the index entries for the given document. */ t.prototype.Sn = function(t, e) {
8362
8362
  var n = new Ne(zo), r = this.Vn(e, t);
8363
8363
  if (null == r) return n;
8364
8364
  var i = vt(e);
@@ -8376,7 +8376,7 @@ var tu = /** @class */ function() {
8376
8376
  * that are no longer referenced in `newEntries` and adding all newly added
8377
8377
  * entries.
8378
8378
  */
8379
- t.prototype.Sn = function(t, e, n, r, i) {
8379
+ t.prototype.bn = function(t, e, n, r, i) {
8380
8380
  var o = this;
8381
8381
  F("IndexedDbIndexManager", "Updating index entries for document '%s'", e.key);
8382
8382
  var u = [];
@@ -10430,21 +10430,21 @@ e) {
10430
10430
  */
10431
10431
  this.mutationQueue = [],
10432
10432
  /** Next value to use when assigning sequential IDs to each mutation batch. */
10433
- this.br = 1,
10433
+ this.Sr = 1,
10434
10434
  /** An ordered mapping between documents and the mutations batch IDs. */
10435
- this.Sr = new Ne(ju.Er);
10435
+ this.br = new Ne(ju.Er);
10436
10436
  }
10437
10437
  return t.prototype.checkEmpty = function(t) {
10438
10438
  return Ct.resolve(0 === this.mutationQueue.length);
10439
10439
  }, t.prototype.addMutationBatch = function(t, e, n, r) {
10440
- var i = this.br;
10441
- this.br++, this.mutationQueue.length > 0 && this.mutationQueue[this.mutationQueue.length - 1];
10440
+ var i = this.Sr;
10441
+ this.Sr++, this.mutationQueue.length > 0 && this.mutationQueue[this.mutationQueue.length - 1];
10442
10442
  var o = new li(i, e, n, r);
10443
10443
  this.mutationQueue.push(o);
10444
10444
  // Track references by document key and index collection parents.
10445
10445
  for (var u = 0, a = r; u < a.length; u++) {
10446
10446
  var s = a[u];
10447
- this.Sr = this.Sr.add(new ju(s.key, i)), this.indexManager.addToCollectionParentIndex(t, s.key.path.popLast());
10447
+ this.br = this.br.add(new ju(s.key, i)), this.indexManager.addToCollectionParentIndex(t, s.key.path.popLast());
10448
10448
  }
10449
10449
  return Ct.resolve(o);
10450
10450
  }, t.prototype.lookupMutationBatch = function(t, e) {
@@ -10455,12 +10455,12 @@ e) {
10455
10455
  // start of the queue.
10456
10456
  return Ct.resolve(this.mutationQueue.length > i ? this.mutationQueue[i] : null);
10457
10457
  }, t.prototype.getHighestUnacknowledgedBatchId = function() {
10458
- return Ct.resolve(0 === this.mutationQueue.length ? -1 : this.br - 1);
10458
+ return Ct.resolve(0 === this.mutationQueue.length ? -1 : this.Sr - 1);
10459
10459
  }, t.prototype.getAllMutationBatches = function(t) {
10460
10460
  return Ct.resolve(this.mutationQueue.slice());
10461
10461
  }, t.prototype.getAllMutationBatchesAffectingDocumentKey = function(t, e) {
10462
10462
  var n = this, r = new ju(e, 0), i = new ju(e, Number.POSITIVE_INFINITY), o = [];
10463
- return this.Sr.forEachInRange([ r, i ], (function(t) {
10463
+ return this.br.forEachInRange([ r, i ], (function(t) {
10464
10464
  var e = n.Dr(t.wr);
10465
10465
  o.push(e);
10466
10466
  })), Ct.resolve(o);
@@ -10468,7 +10468,7 @@ e) {
10468
10468
  var n = this, r = new Ne(it);
10469
10469
  return e.forEach((function(t) {
10470
10470
  var e = new ju(t, 0), i = new ju(t, Number.POSITIVE_INFINITY);
10471
- n.Sr.forEachInRange([ e, i ], (function(t) {
10471
+ n.br.forEachInRange([ e, i ], (function(t) {
10472
10472
  r = r.add(t.wr);
10473
10473
  }));
10474
10474
  })), Ct.resolve(this.Cr(r));
@@ -10484,7 +10484,7 @@ e) {
10484
10484
  var o = new ju(new dt(i), 0), u = new Ne(it);
10485
10485
  // Find unique batchIDs referenced by all documents potentially matching the
10486
10486
  // query.
10487
- return this.Sr.forEachWhile((function(t) {
10487
+ return this.br.forEachWhile((function(t) {
10488
10488
  var e = t.key.path;
10489
10489
  return !!n.isPrefixOf(e) && (
10490
10490
  // Rows with document keys more than one segment longer than the query
@@ -10505,17 +10505,17 @@ e) {
10505
10505
  }, t.prototype.removeMutationBatch = function(t, e) {
10506
10506
  var n = this;
10507
10507
  B(0 === this.Fr(e.batchId, "removed")), this.mutationQueue.shift();
10508
- var r = this.Sr;
10508
+ var r = this.br;
10509
10509
  return Ct.forEach(e.mutations, (function(i) {
10510
10510
  var o = new ju(i.key, e.batchId);
10511
10511
  return r = r.delete(o), n.referenceDelegate.markPotentiallyOrphaned(t, i.key);
10512
10512
  })).next((function() {
10513
- n.Sr = r;
10513
+ n.br = r;
10514
10514
  }));
10515
10515
  }, t.prototype.On = function(t) {
10516
10516
  // No-op since the memory mutation queue does not maintain a separate cache.
10517
10517
  }, t.prototype.containsKey = function(t, e) {
10518
- var n = new ju(e, 0), r = this.Sr.firstAfterOrEqual(n);
10518
+ var n = new ju(e, 0), r = this.br.firstAfterOrEqual(n);
10519
10519
  return Ct.resolve(e.isEqual(r && r.key));
10520
10520
  }, t.prototype.performConsistencyCheck = function(t) {
10521
10521
  return this.mutationQueue.length, Ct.resolve();
@@ -11404,9 +11404,9 @@ var na = "Failed to obtain exclusive access to the persistence layer. To allow s
11404
11404
  })));
11405
11405
  }));
11406
11406
  })).next((function() {
11407
- return t.bi(e);
11407
+ return t.Si(e);
11408
11408
  })).next((function(n) {
11409
- return t.isPrimary && !n ? t.Si(e).next((function() {
11409
+ return t.isPrimary && !n ? t.bi(e).next((function() {
11410
11410
  return !1;
11411
11411
  })) : !!n && t.Di(e).next((function() {
11412
11412
  return !0;
@@ -11501,7 +11501,7 @@ var na = "Failed to obtain exclusive access to the persistence layer. To allow s
11501
11501
  * May return 'false' even if there is no active leaseholder and another
11502
11502
  * (foreground) client should become leaseholder instead.
11503
11503
  */
11504
- t.prototype.bi = function(t) {
11504
+ t.prototype.Si = function(t) {
11505
11505
  var e = this;
11506
11506
  return this.li ? Ct.resolve(!0) : ia(t).get("owner").next((function(n) {
11507
11507
  // A client is eligible for the primary lease if:
@@ -11558,7 +11558,7 @@ var na = "Failed to obtain exclusive access to the persistence layer. To allow s
11558
11558
  return this.Kr = !1, this.Li(), this.Ti && (this.Ti.cancel(), this.Ti = null), this.Bi(),
11559
11559
  this.ki(), [ 4 /*yield*/ , this.Ri.runTransaction("shutdown", "readwrite", [ "owner", "clientMetadata" ], (function(e) {
11560
11560
  var n = new be(e, Bt.oe);
11561
- return t.Si(n).next((function() {
11561
+ return t.bi(n).next((function() {
11562
11562
  return t.Ci(n);
11563
11563
  }));
11564
11564
  })) ];
@@ -11634,7 +11634,7 @@ var na = "Failed to obtain exclusive access to the persistence layer. To allow s
11634
11634
  // are the only reader/writer.
11635
11635
  return this.Ri.runTransaction(t, o, u, (function(o) {
11636
11636
  return i = new be(o, r.Qr ? r.Qr.next() : Bt.oe), "readwrite-primary" === e ? r.wi(i).next((function(t) {
11637
- return !!t || r.bi(i);
11637
+ return !!t || r.Si(i);
11638
11638
  })).next((function(e) {
11639
11639
  if (!e) throw M("Failed to obtain primary lease for action '".concat(t, "'.")),
11640
11640
  r.isPrimary = !1, r.ui.enqueueRetryable((function() {
@@ -11678,7 +11678,7 @@ var na = "Failed to obtain exclusive access to the persistence layer. To allow s
11678
11678
  }, t.D = function() {
11679
11679
  return At.D();
11680
11680
  },
11681
- /** Checks the primary lease and removes it if we are the current primary. */ t.prototype.Si = function(t) {
11681
+ /** Checks the primary lease and removes it if we are the current primary. */ t.prototype.bi = function(t) {
11682
11682
  var e = this, n = ia(t);
11683
11683
  return n.get("owner").next((function(t) {
11684
11684
  return e.vi(t) ? (F("IndexedDbPersistence", "Releasing primary lease."), n.delete("owner")) : Ct.resolve();
@@ -12729,12 +12729,12 @@ var Na = /** @class */ function() {
12729
12729
  function t(t, e, n, r, i) {
12730
12730
  this.window = t, this.ui = e, this.persistenceKey = n, this.ps = r, this.syncEngine = null,
12731
12731
  this.onlineStateHandler = null, this.sequenceNumberHandler = null, this.ys = this.ws.bind(this),
12732
- this.bs = new xe(it), this.started = !1,
12732
+ this.Ss = new xe(it), this.started = !1,
12733
12733
  /**
12734
12734
  * Captures WebStorage events that occur before `start()` is called. These
12735
12735
  * events are replayed once `WebStorageSharedClientState` is started.
12736
12736
  */
12737
- this.Ss = [];
12737
+ this.bs = [];
12738
12738
  // Escape the special characters mentioned here:
12739
12739
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
12740
12740
  var o = n.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
@@ -12743,7 +12743,7 @@ var Na = /** @class */ function() {
12743
12743
  /** Assembles the key for the current sequence number. */
12744
12744
  function(t) {
12745
12745
  return "firestore_sequence_number_".concat(t);
12746
- }(this.persistenceKey), this.bs = this.bs.insert(this.ps, new Pa), this.Cs = new RegExp("^firestore_clients_".concat(o, "_([^_]*)$")),
12746
+ }(this.persistenceKey), this.Ss = this.Ss.insert(this.ps, new Pa), this.Cs = new RegExp("^firestore_clients_".concat(o, "_([^_]*)$")),
12747
12747
  this.Fs = new RegExp("^firestore_mutations_".concat(o, "_(\\d+)(?:_(.*))?$")), this.Ms = new RegExp("^firestore_targets_".concat(o, "_(\\d+)$")),
12748
12748
  this.xs =
12749
12749
  /** Assembles the key for the online state of the primary tab. */
@@ -12771,10 +12771,10 @@ var Na = /** @class */ function() {
12771
12771
  return [ 4 /*yield*/ , this.syncEngine.Qi() ];
12772
12772
 
12773
12773
  case 1:
12774
- for (t = n.sent(), e = 0, r = t; e < r.length; e++) (i = r[e]) !== this.ps && (o = this.getItem(xa(this.persistenceKey, i))) && (u = ka.Rs(i, o)) && (this.bs = this.bs.insert(u.clientId, u));
12774
+ for (t = n.sent(), e = 0, r = t; e < r.length; e++) (i = r[e]) !== this.ps && (o = this.getItem(xa(this.persistenceKey, i))) && (u = ka.Rs(i, o)) && (this.Ss = this.Ss.insert(u.clientId, u));
12775
12775
  for (this.Ns(), (a = this.storage.getItem(this.xs)) && (s = this.Ls(a)) && this.Bs(s),
12776
- c = 0, l = this.Ss; c < l.length; c++) h = l[c], this.ws(h);
12777
- return this.Ss = [],
12776
+ c = 0, l = this.bs; c < l.length; c++) h = l[c], this.ws(h);
12777
+ return this.bs = [],
12778
12778
  // Register a window unload hook to remove the client metadata entry from
12779
12779
  // WebStorage even if `shutdown()` was not called.
12780
12780
  this.window.addEventListener("pagehide", (function() {
@@ -12786,10 +12786,10 @@ var Na = /** @class */ function() {
12786
12786
  }, t.prototype.writeSequenceNumber = function(t) {
12787
12787
  this.setItem(this.vs, JSON.stringify(t));
12788
12788
  }, t.prototype.getAllActiveQueryTargets = function() {
12789
- return this.ks(this.bs);
12789
+ return this.ks(this.Ss);
12790
12790
  }, t.prototype.isActiveQueryTarget = function(t) {
12791
12791
  var e = !1;
12792
- return this.bs.forEach((function(n, r) {
12792
+ return this.Ss.forEach((function(n, r) {
12793
12793
  r.activeTargetIds.has(t) && (e = !0);
12794
12794
  })), e;
12795
12795
  }, t.prototype.addPendingMutation = function(t) {
@@ -12892,7 +12892,7 @@ var Na = /** @class */ function() {
12892
12892
  return [ 3 /*break*/ , 9 ];
12893
12893
 
12894
12894
  case 8:
12895
- this.Ss.push(i), n.label = 9;
12895
+ this.bs.push(i), n.label = 9;
12896
12896
 
12897
12897
  case 9:
12898
12898
  return [ 2 /*return*/ ];
@@ -12903,7 +12903,7 @@ var Na = /** @class */ function() {
12903
12903
  }
12904
12904
  }, Object.defineProperty(t.prototype, "Ks", {
12905
12905
  get: function() {
12906
- return this.bs.get(this.ps);
12906
+ return this.Ss.get(this.ps);
12907
12907
  },
12908
12908
  enumerable: !1,
12909
12909
  configurable: !0
@@ -12978,13 +12978,13 @@ var Na = /** @class */ function() {
12978
12978
  }, t.prototype.Zs = function(t) {
12979
12979
  return this.syncEngine.ro(t.targetId, t.state, t.error);
12980
12980
  }, t.prototype.zs = function(t, e) {
12981
- var n = this, r = e ? this.bs.insert(t, e) : this.bs.remove(t), i = this.ks(this.bs), o = this.ks(r), u = [], a = [];
12981
+ var n = this, r = e ? this.Ss.insert(t, e) : this.Ss.remove(t), i = this.ks(this.Ss), o = this.ks(r), u = [], a = [];
12982
12982
  return o.forEach((function(t) {
12983
12983
  i.has(t) || u.push(t);
12984
12984
  })), i.forEach((function(t) {
12985
12985
  o.has(t) || a.push(t);
12986
12986
  })), this.syncEngine.io(u, a).then((function() {
12987
- n.bs = r;
12987
+ n.Ss = r;
12988
12988
  }));
12989
12989
  }, t.prototype.Bs = function(t) {
12990
12990
  // We check whether the client that wrote this online state is still active
@@ -12992,7 +12992,7 @@ var Na = /** @class */ function() {
12992
12992
  // IndexedDb. If a client does not update their IndexedDb client state
12993
12993
  // within 5 seconds, it is considered inactive and we don't emit an online
12994
12994
  // state event.
12995
- this.bs.get(t.clientId) && this.onlineStateHandler(t.onlineState);
12995
+ this.Ss.get(t.clientId) && this.onlineStateHandler(t.onlineState);
12996
12996
  }, t.prototype.ks = function(t) {
12997
12997
  var e = Nr();
12998
12998
  return t.forEach((function(t, n) {
@@ -13145,9 +13145,9 @@ var Ua = {
13145
13145
  this.Ao();
13146
13146
  }, t.prototype.wo = function() {
13147
13147
  this.Vo();
13148
- }, t.prototype.bo = function(t) {
13149
- this.fo(t);
13150
13148
  }, t.prototype.So = function(t) {
13149
+ this.fo(t);
13150
+ }, t.prototype.bo = function(t) {
13151
13151
  this.po(t);
13152
13152
  }, t;
13153
13153
  }(), za = "WebChannelConnection", Ga = /** @class */ function(e) {
@@ -13282,10 +13282,10 @@ var Ua = {
13282
13282
  f || (F(za, "RPC '".concat(t, "' stream ").concat(r, " transport opened.")), d.yo());
13283
13283
  })), p(l, D.EventType.CLOSE, (function() {
13284
13284
  f || (f = !0, F(za, "RPC '".concat(t, "' stream ").concat(r, " transport closed")),
13285
- d.bo());
13285
+ d.So());
13286
13286
  })), p(l, D.EventType.ERROR, (function(e) {
13287
13287
  f || (f = !0, L(za, "RPC '".concat(t, "' stream ").concat(r, " transport errored:"), e),
13288
- d.bo(new j(K.UNAVAILABLE, "The operation could not be completed")));
13288
+ d.So(new j(K.UNAVAILABLE, "The operation could not be completed")));
13289
13289
  })), p(l, D.EventType.MESSAGE, (function(e) {
13290
13290
  var n;
13291
13291
  if (!f) {
@@ -13315,8 +13315,8 @@ var Ua = {
13315
13315
  }(a), c = u.message;
13316
13316
  void 0 === s && (s = K.INTERNAL, c = "Unknown error status: " + a + " with message " + u.message),
13317
13317
  // Mark closed so no further events are propagated
13318
- f = !0, d.bo(new j(s, c)), l.close();
13319
- } else F(za, "RPC '".concat(t, "' stream ").concat(r, " received:"), i), d.So(i);
13318
+ f = !0, d.So(new j(s, c)), l.close();
13319
+ } else F(za, "RPC '".concat(t, "' stream ").concat(r, " received:"), i), d.bo(i);
13320
13320
  }
13321
13321
  })), p(u, C.STAT_EVENT, (function(e) {
13322
13322
  e.stat === N.PROXY ? F(za, "RPC '".concat(t, "' stream ").concat(r, " detected buffering proxy")) : e.stat === N.NOPROXY && F(za, "RPC '".concat(t, "' stream ").concat(r, " detected no buffering proxy"));
@@ -14071,13 +14071,13 @@ function Ka() {
14071
14071
  * maximum defined by MAX_WATCH_STREAM_FAILURES, we'll set the OnlineState to
14072
14072
  * Offline.
14073
14073
  */
14074
- this.b_ = 0,
14074
+ this.S_ = 0,
14075
14075
  /**
14076
14076
  * A timer that elapses after ONLINE_STATE_TIMEOUT_MS, at which point we
14077
14077
  * transition from OnlineState.Unknown to OnlineState.Offline without waiting
14078
14078
  * for the stream to actually fail (MAX_WATCH_STREAM_FAILURES times).
14079
14079
  */
14080
- this.S_ = null,
14080
+ this.b_ = null,
14081
14081
  /**
14082
14082
  * Whether the client should log a warning message if it fails to connect to
14083
14083
  * the backend (initially true, cleared after a successful stream, or if we've
@@ -14094,8 +14094,8 @@ function Ka() {
14094
14094
  }
14095
14095
  return t.prototype.v_ = function() {
14096
14096
  var t = this;
14097
- 0 === this.b_ && (this.C_("Unknown" /* OnlineState.Unknown */), this.S_ = this.asyncQueue.enqueueAfterDelay("online_state_timeout" /* TimerId.OnlineStateTimeout */ , 1e4, (function() {
14098
- return t.S_ = null, t.F_("Backend didn't respond within 10 seconds."), t.C_("Offline" /* OnlineState.Offline */),
14097
+ 0 === this.S_ && (this.C_("Unknown" /* OnlineState.Unknown */), this.b_ = this.asyncQueue.enqueueAfterDelay("online_state_timeout" /* TimerId.OnlineStateTimeout */ , 1e4, (function() {
14098
+ return t.b_ = null, t.F_("Backend didn't respond within 10 seconds."), t.C_("Offline" /* OnlineState.Offline */),
14099
14099
  Promise.resolve();
14100
14100
  })));
14101
14101
  },
@@ -14106,8 +14106,8 @@ function Ka() {
14106
14106
  * actually transition to the 'Offline' state.
14107
14107
  */
14108
14108
  t.prototype.M_ = function(t) {
14109
- "Online" /* OnlineState.Online */ === this.state ? this.C_("Unknown" /* OnlineState.Unknown */) : (this.b_++,
14110
- this.b_ >= 1 && (this.x_(), this.F_("Connection failed 1 times. Most recent error: ".concat(t.toString())),
14109
+ "Online" /* OnlineState.Online */ === this.state ? this.C_("Unknown" /* OnlineState.Unknown */) : (this.S_++,
14110
+ this.S_ >= 1 && (this.x_(), this.F_("Connection failed 1 times. Most recent error: ".concat(t.toString())),
14111
14111
  this.C_("Offline" /* OnlineState.Offline */)));
14112
14112
  },
14113
14113
  /**
@@ -14118,7 +14118,7 @@ function Ka() {
14118
14118
  * handleWatchStreamStart() and handleWatchStreamFailure().
14119
14119
  */
14120
14120
  t.prototype.set = function(t) {
14121
- this.x_(), this.b_ = 0, "Online" /* OnlineState.Online */ === t && (
14121
+ this.x_(), this.S_ = 0, "Online" /* OnlineState.Online */ === t && (
14122
14122
  // We've connected to watch at least once. Don't warn the developer
14123
14123
  // about being offline going forward.
14124
14124
  this.D_ = !1), this.C_(t);
@@ -14128,7 +14128,7 @@ function Ka() {
14128
14128
  var e = "Could not reach Cloud Firestore backend. ".concat(t, "\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.");
14129
14129
  this.D_ ? (M(e), this.D_ = !1) : F("OnlineStateTracker", e);
14130
14130
  }, t.prototype.x_ = function() {
14131
- null !== this.S_ && (this.S_.cancel(), this.S_ = null);
14131
+ null !== this.b_ && (this.b_.cancel(), this.b_ = null);
14132
14132
  }, t;
14133
14133
  }(), $a = function(
14134
14134
  /**
@@ -15748,7 +15748,7 @@ function Qs(t) {
15748
15748
  /**
15749
15749
  * Returns whether the doc for the given key should be in limbo.
15750
15750
  */
15751
- t.prototype.ba = function(t) {
15751
+ t.prototype.Sa = function(t) {
15752
15752
  // If the remote end says it's part of this query, it's not in limbo.
15753
15753
  return !this.Ta.has(t) &&
15754
15754
  // The local store doesn't think it's a result, so it shouldn't be in limbo.
@@ -15773,7 +15773,7 @@ function Qs(t) {
15773
15773
  // updating many documents.
15774
15774
  var e = this.da;
15775
15775
  this.da = Dr(), this.Ra.forEach((function(e) {
15776
- t.ba(e.key) && (t.da = t.da.add(e.key));
15776
+ t.Sa(e.key) && (t.da = t.da.add(e.key));
15777
15777
  }));
15778
15778
  // Diff the new limbo docs with the old limbo docs.
15779
15779
  var n = [];
@@ -15803,7 +15803,7 @@ function Qs(t) {
15803
15803
  * @returns The ViewChange that resulted from this synchronization.
15804
15804
  */
15805
15805
  // PORTING NOTE: Multi-tab only.
15806
- t.prototype.Sa = function(t) {
15806
+ t.prototype.ba = function(t) {
15807
15807
  this.Ta = t.Ts, this.da = Dr();
15808
15808
  var e = this.ma(t.documents);
15809
15809
  return this.applyChanges(e, /* limboResolutionEnabled= */ !0);
@@ -16622,7 +16622,7 @@ function _c(t, e) {
16622
16622
  /* usePreviousResults= */ !0) ];
16623
16623
 
16624
16624
  case 1:
16625
- return i = n.sent(), o = r.view.Sa(i), [ 2 /*return*/ , (e.isPrimaryClient && mc(e, r.targetId, o.wa),
16625
+ return i = n.sent(), o = r.view.ba(i), [ 2 /*return*/ , (e.isPrimaryClient && mc(e, r.targetId, o.wa),
16626
16626
  o) ];
16627
16627
  }
16628
16628
  }));
@@ -18945,7 +18945,7 @@ var Tl = /** @class */ function() {
18945
18945
  * For Tests: Determine if a delayed operation with a particular TimerId
18946
18946
  * exists.
18947
18947
  */
18948
- t.prototype.bu = function(t) {
18948
+ t.prototype.Su = function(t) {
18949
18949
  for (var e = 0, n = this.Tu; e < n.length; e++) {
18950
18950
  if (n[e].timerId === t) return !0;
18951
18951
  }
@@ -18958,7 +18958,7 @@ var Tl = /** @class */ function() {
18958
18958
  * will be drained. Pass TimerId.All to run all delayed operations.
18959
18959
  * @returns a Promise that resolves once all operations have been run.
18960
18960
  */
18961
- t.prototype.Su = function(t) {
18961
+ t.prototype.bu = function(t) {
18962
18962
  var e = this;
18963
18963
  // Note that draining may generate more delayed ops, so we do that first.
18964
18964
  return this.wu().then((function() {
@@ -22835,9 +22835,9 @@ function ad(t) {
22835
22835
  return r = Object.assign({
22836
22836
  useFetchStreams: ld
22837
22837
  }, r), o._setSettings(r), o;
22838
- }), "PUBLIC").setMultipleInstances(!0)), u(A, "4.7.3-canary.aa6db78eb", cd),
22838
+ }), "PUBLIC").setMultipleInstances(!0)), u(A, "4.7.3-canary.b942e9e6e", cd),
22839
22839
  // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation
22840
- u(A, "4.7.3-canary.aa6db78eb", "esm5");
22840
+ u(A, "4.7.3-canary.b942e9e6e", "esm5");
22841
22841
 
22842
22842
  export { Yh as AbstractUserDataWriter, zl as AggregateField, Gl as AggregateQuerySnapshot, Kl as Bytes, xl as CACHE_SIZE_UNLIMITED, yl as CollectionReference, ml as DocumentReference, uf as DocumentSnapshot, jl as FieldPath, Wl as FieldValue, Dl as Firestore, j as FirestoreError, Jl as GeoPoint, Sl as LoadBundleTask, td as PersistentCacheIndexManager, vl as Query, kh as QueryCompositeFilterConstraint, Dh as QueryConstraint, af as QueryDocumentSnapshot, zh as QueryEndAtConstraint, Nh as QueryFieldFilterConstraint, Fh as QueryLimitConstraint, Rh as QueryOrderByConstraint, sf as QuerySnapshot, qh as QueryStartAtConstraint, of as SnapshotMetadata, at as Timestamp, Gf as Transaction, Hl as VectorValue, Bf as WriteBatch, rt as _AutoId, Ve as _ByteString, Ke as _DatabaseId, dt as _DocumentKey, et as _EmptyAppCheckTokenProvider, J as _EmptyAuthCredentialsProvider, ft as _FieldPath, hd as _TestingHooks, ll as _cast, z as _debugAssert, sd as _internalAggregationQueryToProtoRunAggregationQueryRequest, ad as _internalQueryToProtoQueryTarget, Re as _isBase64Available, L as _logWarn, ul as _validateIsNotUsedTogether, _f as addDoc, nf as aggregateFieldEqual, rf as aggregateQuerySnapshotEqual, Ph as and, Jf as arrayRemove, Wf as arrayUnion, tf as average, Vl as clearIndexedDbPersistence, gl as collection, wl as collectionGroup, pl as connectFirestoreEmulator, ef as count, id as deleteAllPersistentCacheIndexes, bf as deleteDoc, jf as deleteField, Ll as disableNetwork, rd as disablePersistentCacheIndexAutoCreation, bl as doc, Ql as documentId, Ol as enableIndexedDbPersistence, Pl as enableMultiTabIndexedDbPersistence, Ml as enableNetwork, nd as enablePersistentCacheIndexAutoCreation, Kh as endAt, Gh as endBefore, Al as ensureFirestoreConfigured, Ef as executeWrite, Df as getAggregateFromServer, xf as getCountFromServer, hf as getDoc, df as getDocFromCache, pf as getDocFromServer, vf as getDocs, mf as getDocsFromCache, yf as getDocsFromServer, Nl as getFirestore, ed as getPersistentCacheIndexManager, Hf as increment, Cl as initializeFirestore, Mh as limit, Lh as limitToLast, Ul as loadBundle, Of as memoryEagerGarbageCollector, Rf as memoryLocalCache, Pf as memoryLruGarbageCollector, Bl as namedQuery, If as onSnapshot, Tf as onSnapshotsInSync, Oh as or, Vh as orderBy, Vf as persistentLocalCache, qf as persistentMultipleTabManager, Lf as persistentSingleTabManager, Ch as query, Il as queryEqual, _l as refEqual, Kf as runTransaction, Qf as serverTimestamp, gf as setDoc, Zf as setIndexConfiguration, V as setLogLevel, lf as snapshotEqual, Bh as startAfter, Uh as startAt, $h as sum, ql as terminate, wf as updateDoc, Yf as vector, Fl as waitForPendingWrites, Ah as where, Xf as writeBatch };
22843
22843
  //# sourceMappingURL=index.esm5.js.map
@@ -34,7 +34,7 @@ var grpc__namespace = /*#__PURE__*/_interopNamespace(grpc);
34
34
  var protoLoader__namespace = /*#__PURE__*/_interopNamespace(protoLoader);
35
35
 
36
36
  const name = "@firebase/firestore";
37
- const version$1 = "4.7.3-canary.aa6db78eb";
37
+ const version$1 = "4.7.3-canary.b942e9e6e";
38
38
 
39
39
  /**
40
40
  * @license
@@ -87,7 +87,7 @@ User.GOOGLE_CREDENTIALS = new User('google-credentials-uid');
87
87
  User.FIRST_PARTY = new User('first-party-uid');
88
88
  User.MOCK_USER = new User('mock-user');
89
89
 
90
- const version = "10.14.0-canary.aa6db78eb";
90
+ const version = "10.14.1-canary.b942e9e6e";
91
91
 
92
92
  /**
93
93
  * @license
@@ -9,7 +9,7 @@ import * as grpc from '@grpc/grpc-js';
9
9
  import * as protoLoader from '@grpc/proto-loader';
10
10
 
11
11
  const name = "@firebase/firestore";
12
- const version$1 = "4.7.3-canary.aa6db78eb";
12
+ const version$1 = "4.7.3-canary.b942e9e6e";
13
13
 
14
14
  /**
15
15
  * @license
@@ -62,7 +62,7 @@ User.GOOGLE_CREDENTIALS = new User('google-credentials-uid');
62
62
  User.FIRST_PARTY = new User('first-party-uid');
63
63
  User.MOCK_USER = new User('mock-user');
64
64
 
65
- const version = "10.14.0-canary.aa6db78eb";
65
+ const version = "10.14.1-canary.b942e9e6e";
66
66
 
67
67
  /**
68
68
  * @license
package/dist/index.rn.js CHANGED
@@ -72,7 +72,7 @@ User.MOCK_USER = new User("mock-user");
72
72
  * See the License for the specific language governing permissions and
73
73
  * limitations under the License.
74
74
  */
75
- let D = "10.14.0-canary.aa6db78eb";
75
+ let D = "10.14.1-canary.b942e9e6e";
76
76
 
77
77
  /**
78
78
  * @license
@@ -22242,9 +22242,9 @@ let xe = null;
22242
22242
  return r = Object.assign({
22243
22243
  useFetchStreams: t
22244
22244
  }, r), s._setSettings(r), s;
22245
- }), "PUBLIC").setMultipleInstances(!0)), r(b, "4.7.3-canary.aa6db78eb", e),
22245
+ }), "PUBLIC").setMultipleInstances(!0)), r(b, "4.7.3-canary.b942e9e6e", e),
22246
22246
  // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation
22247
- r(b, "4.7.3-canary.aa6db78eb", "esm2017");
22247
+ r(b, "4.7.3-canary.b942e9e6e", "esm2017");
22248
22248
  }("rn", /* useFetchStreams= */ !1);
22249
22249
 
22250
22250
  export { AbstractUserDataWriter, AggregateField, AggregateQuerySnapshot, Bytes, De as CACHE_SIZE_UNLIMITED, CollectionReference, DocumentReference, DocumentSnapshot, FieldPath, FieldValue, Firestore, FirestoreError, GeoPoint, LoadBundleTask, PersistentCacheIndexManager, Query, QueryCompositeFilterConstraint, QueryConstraint, QueryDocumentSnapshot, QueryEndAtConstraint, QueryFieldFilterConstraint, QueryLimitConstraint, QueryOrderByConstraint, QuerySnapshot, QueryStartAtConstraint, SnapshotMetadata, Timestamp, Transaction, VectorValue, WriteBatch, __PRIVATE_AutoId as _AutoId, ByteString as _ByteString, DatabaseId as _DatabaseId, DocumentKey as _DocumentKey, __PRIVATE_EmptyAppCheckTokenProvider as _EmptyAppCheckTokenProvider, __PRIVATE_EmptyAuthCredentialsProvider as _EmptyAuthCredentialsProvider, FieldPath$1 as _FieldPath, TestingHooks as _TestingHooks, __PRIVATE_cast as _cast, __PRIVATE_debugAssert as _debugAssert, _internalAggregationQueryToProtoRunAggregationQueryRequest, _internalQueryToProtoQueryTarget, __PRIVATE_isBase64Available as _isBase64Available, __PRIVATE_logWarn as _logWarn, __PRIVATE_validateIsNotUsedTogether as _validateIsNotUsedTogether, addDoc, aggregateFieldEqual, aggregateQuerySnapshotEqual, and, arrayRemove, arrayUnion, average, clearIndexedDbPersistence, collection, collectionGroup, connectFirestoreEmulator, count, deleteAllPersistentCacheIndexes, deleteDoc, deleteField, disableNetwork, disablePersistentCacheIndexAutoCreation, doc, documentId, enableIndexedDbPersistence, enableMultiTabIndexedDbPersistence, enableNetwork, enablePersistentCacheIndexAutoCreation, endAt, endBefore, ensureFirestoreConfigured, executeWrite, getAggregateFromServer, getCountFromServer, getDoc, getDocFromCache, getDocFromServer, getDocs, getDocsFromCache, getDocsFromServer, getFirestore, getPersistentCacheIndexManager, increment, initializeFirestore, limit, limitToLast, loadBundle, memoryEagerGarbageCollector, memoryLocalCache, memoryLruGarbageCollector, namedQuery, onSnapshot, onSnapshotsInSync, or, orderBy, persistentLocalCache, persistentMultipleTabManager, persistentSingleTabManager, query, queryEqual, refEqual, runTransaction, serverTimestamp, setDoc, setIndexConfiguration, setLogLevel, snapshotEqual, startAfter, startAt, sum, terminate, updateDoc, vector, waitForPendingWrites, where, writeBatch };
@@ -63,7 +63,7 @@ User.MOCK_USER = new User("mock-user");
63
63
  * See the License for the specific language governing permissions and
64
64
  * limitations under the License.
65
65
  */
66
- let d = "10.14.0-canary.aa6db78eb";
66
+ let d = "10.14.1-canary.b942e9e6e";
67
67
 
68
68
  /**
69
69
  * @license
@@ -7357,7 +7357,7 @@ class Transaction {
7357
7357
  return r && i._setSettings(r), i;
7358
7358
  }), "PUBLIC").setMultipleInstances(!0)),
7359
7359
  // RUNTIME_ENV and BUILD_TARGET are replaced by real values during the compilation
7360
- registerVersion("firestore-lite", "4.7.3-canary.aa6db78eb", ""), registerVersion("firestore-lite", "4.7.3-canary.aa6db78eb", "esm2017");
7360
+ registerVersion("firestore-lite", "4.7.3-canary.b942e9e6e", ""), registerVersion("firestore-lite", "4.7.3-canary.b942e9e6e", "esm2017");
7361
7361
  }();
7362
7362
 
7363
7363
  export { AggregateField, AggregateQuerySnapshot, Bytes, CollectionReference, DocumentReference, DocumentSnapshot, FieldPath, FieldValue, Firestore, FirestoreError, GeoPoint, Query, QueryCompositeFilterConstraint, QueryConstraint, QueryDocumentSnapshot, QueryEndAtConstraint, QueryFieldFilterConstraint, QueryLimitConstraint, QueryOrderByConstraint, QuerySnapshot, QueryStartAtConstraint, Timestamp, Transaction, VectorValue, WriteBatch, addDoc, aggregateFieldEqual, aggregateQuerySnapshotEqual, and, arrayRemove, arrayUnion, average, collection, collectionGroup, connectFirestoreEmulator, count, deleteDoc, deleteField, doc, documentId, endAt, endBefore, getAggregate, getCount, getDoc, getDocs, getFirestore, increment, initializeFirestore, limit, limitToLast, or, orderBy, query, queryEqual, refEqual, runTransaction, serverTimestamp, setDoc, setLogLevel, snapshotEqual, startAfter, startAt, sum, terminate, updateDoc, vector, where, writeBatch };
@@ -67,7 +67,7 @@ v.MOCK_USER = new v("mock-user");
67
67
  * See the License for the specific language governing permissions and
68
68
  * limitations under the License.
69
69
  */
70
- var g = "10.14.0-canary.aa6db78eb", w = new l("@firebase/firestore");
70
+ var g = "10.14.1-canary.b942e9e6e", w = new l("@firebase/firestore");
71
71
 
72
72
  /**
73
73
  * @license
@@ -6823,7 +6823,7 @@ yi = "".concat(i, "_lite"), g = yi, o(new c("firestore/lite", (function(t, e) {
6823
6823
  return r && o._setSettings(r), o;
6824
6824
  }), "PUBLIC").setMultipleInstances(!0)),
6825
6825
  // RUNTIME_ENV and BUILD_TARGET are replaced by real values during the compilation
6826
- a("firestore-lite", "4.7.3-canary.aa6db78eb", ""), a("firestore-lite", "4.7.3-canary.aa6db78eb", "esm5");
6826
+ a("firestore-lite", "4.7.3-canary.b942e9e6e", ""), a("firestore-lite", "4.7.3-canary.b942e9e6e", "esm5");
6827
6827
 
6828
6828
  export { Sn as AggregateField, kn as AggregateQuerySnapshot, Rn as Bytes, Pn as CollectionReference, An as DocumentReference, hr as DocumentSnapshot, qn as FieldPath, Cn as FieldValue, wn as Firestore, B as FirestoreError, jn as GeoPoint, In as Query, Tr as QueryCompositeFilterConstraint, gr as QueryConstraint, pr as QueryDocumentSnapshot, Dr as QueryEndAtConstraint, _r as QueryFieldFilterConstraint, Ar as QueryLimitConstraint, kr as QueryOrderByConstraint, dr as QuerySnapshot, Fr as QueryStartAtConstraint, Dt as Timestamp, gi as Transaction, Ln as VectorValue, si as WriteBatch, Hr as addDoc, ti as aggregateFieldEqual, ei as aggregateQuerySnapshotEqual, Sr as and, oi as arrayRemove, ii as arrayUnion, Zr as average, Vn as collection, Fn as collectionGroup, Tn as connectFirestoreEmulator, $r as count, Yr as deleteDoc, ni as deleteField, On as doc, xn as documentId, qr as endAt, Rr as endBefore, Jr as getAggregate, Wr as getCount, zr as getDoc, Gr as getDocs, bn as getFirestore, ai as increment, _n as initializeFirestore, Pr as limit, Vr as limitToLast, Er as or, Ir as orderBy, wr as query, Dn as queryEqual, Nn as refEqual, wi as runTransaction, ri as serverTimestamp, Kr as setDoc, _ as setLogLevel, yr as snapshotEqual, Nr as startAfter, Or as startAt, Xr as sum, En as terminate, Qr as updateDoc, ui as vector, br as where, li as writeBatch };
6829
6829
  //# sourceMappingURL=index.browser.esm5.js.map
@@ -63,7 +63,7 @@ User.MOCK_USER = new User("mock-user");
63
63
  * See the License for the specific language governing permissions and
64
64
  * limitations under the License.
65
65
  */
66
- let d = "10.14.0-canary.aa6db78eb";
66
+ let d = "10.14.1-canary.b942e9e6e";
67
67
 
68
68
  /**
69
69
  * @license
@@ -7357,7 +7357,7 @@ class Transaction {
7357
7357
  return r && i._setSettings(r), i;
7358
7358
  }), "PUBLIC").setMultipleInstances(!0)),
7359
7359
  // RUNTIME_ENV and BUILD_TARGET are replaced by real values during the compilation
7360
- registerVersion("firestore-lite", "4.7.3-canary.aa6db78eb", ""), registerVersion("firestore-lite", "4.7.3-canary.aa6db78eb", "cjs2017");
7360
+ registerVersion("firestore-lite", "4.7.3-canary.b942e9e6e", ""), registerVersion("firestore-lite", "4.7.3-canary.b942e9e6e", "cjs2017");
7361
7361
  }();
7362
7362
 
7363
7363
  export { AggregateField, AggregateQuerySnapshot, Bytes, CollectionReference, DocumentReference, DocumentSnapshot, FieldPath, FieldValue, Firestore, FirestoreError, GeoPoint, Query, QueryCompositeFilterConstraint, QueryConstraint, QueryDocumentSnapshot, QueryEndAtConstraint, QueryFieldFilterConstraint, QueryLimitConstraint, QueryOrderByConstraint, QuerySnapshot, QueryStartAtConstraint, Timestamp, Transaction, VectorValue, WriteBatch, addDoc, aggregateFieldEqual, aggregateQuerySnapshotEqual, and, arrayRemove, arrayUnion, average, collection, collectionGroup, connectFirestoreEmulator, count, deleteDoc, deleteField, doc, documentId, endAt, endBefore, getAggregate, getCount, getDoc, getDocs, getFirestore, increment, initializeFirestore, limit, limitToLast, or, orderBy, query, queryEqual, refEqual, runTransaction, serverTimestamp, setDoc, setLogLevel, snapshotEqual, startAfter, startAt, sum, terminate, updateDoc, vector, where, writeBatch };
@@ -10,7 +10,7 @@ var util = require('@firebase/util');
10
10
  var undici = require('undici');
11
11
  var crypto = require('crypto');
12
12
 
13
- const version$1 = "4.7.3-canary.aa6db78eb";
13
+ const version$1 = "4.7.3-canary.b942e9e6e";
14
14
 
15
15
  /**
16
16
  * @license
@@ -63,7 +63,7 @@ User.GOOGLE_CREDENTIALS = new User('google-credentials-uid');
63
63
  User.FIRST_PARTY = new User('first-party-uid');
64
64
  User.MOCK_USER = new User('mock-user');
65
65
 
66
- const version = "10.14.0-canary.aa6db78eb";
66
+ const version = "10.14.1-canary.b942e9e6e";
67
67
 
68
68
  /**
69
69
  * @license