@firebase/firestore 3.4.5-canary.13c08951a → 3.4.5-canary.8ac8fb099
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm2017.js +152 -152
- package/dist/index.esm2017.js.map +1 -1
- package/dist/index.esm5.js +186 -186
- package/dist/index.esm5.js.map +1 -1
- package/dist/index.node.cjs.js +3 -3
- package/dist/index.node.cjs.js.map +1 -1
- package/dist/index.node.mjs +3 -3
- package/dist/index.node.mjs.map +1 -1
- package/dist/index.rn.js +4 -4
- package/dist/index.rn.js.map +1 -1
- package/dist/lite/index.browser.esm2017.js +72 -72
- package/dist/lite/index.browser.esm2017.js.map +1 -1
- package/dist/lite/index.browser.esm5.js +8 -8
- package/dist/lite/index.node.cjs.js +2 -2
- package/dist/lite/index.node.mjs +2 -2
- package/dist/lite/index.node.mjs.map +1 -1
- package/dist/lite/index.rn.esm2017.js +2 -2
- package/dist/lite/packages/firestore/dist/lite/index.browser.esm2017.d.ts +18 -18
- package/dist/packages/firestore/dist/index.esm2017.d.ts +6 -6
- package/package.json +9 -9
package/dist/index.esm2017.js
CHANGED
|
@@ -66,7 +66,7 @@ C.MOCK_USER = new C("mock-user");
|
|
|
66
66
|
* See the License for the specific language governing permissions and
|
|
67
67
|
* limitations under the License.
|
|
68
68
|
*/
|
|
69
|
-
let x = "9.6.7-canary.
|
|
69
|
+
let x = "9.6.7-canary.8ac8fb099";
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
72
|
* @license
|
|
@@ -1425,7 +1425,7 @@ function Pt(t) {
|
|
|
1425
1425
|
|
|
1426
1426
|
/**
|
|
1427
1427
|
* Returns the local time at which this timestamp was first set.
|
|
1428
|
-
*/ function
|
|
1428
|
+
*/ function bt(t) {
|
|
1429
1429
|
const e = Et(t.mapValue.fields.__local_write_time__.timestampValue);
|
|
1430
1430
|
return new ut(e.seconds, e.nanos);
|
|
1431
1431
|
}
|
|
@@ -1445,7 +1445,7 @@ function Pt(t) {
|
|
|
1445
1445
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1446
1446
|
* See the License for the specific language governing permissions and
|
|
1447
1447
|
* limitations under the License.
|
|
1448
|
-
*/ class
|
|
1448
|
+
*/ class Vt {
|
|
1449
1449
|
/**
|
|
1450
1450
|
* Constructs a DatabaseInfo using the provided host, databaseId and
|
|
1451
1451
|
* persistenceKey.
|
|
@@ -1636,7 +1636,7 @@ function Ot(t) {
|
|
|
1636
1636
|
return t.booleanValue === e.booleanValue;
|
|
1637
1637
|
|
|
1638
1638
|
case 4 /* ServerTimestampValue */ :
|
|
1639
|
-
return
|
|
1639
|
+
return bt(t).isEqual(bt(e));
|
|
1640
1640
|
|
|
1641
1641
|
case 3 /* TimestampValue */ :
|
|
1642
1642
|
return function(t, e) {
|
|
@@ -1718,7 +1718,7 @@ function Ft(t, e) {
|
|
|
1718
1718
|
return Bt(t.timestampValue, e.timestampValue);
|
|
1719
1719
|
|
|
1720
1720
|
case 4 /* ServerTimestampValue */ :
|
|
1721
|
-
return Bt(
|
|
1721
|
+
return Bt(bt(t), bt(e));
|
|
1722
1722
|
|
|
1723
1723
|
case 5 /* StringValue */ :
|
|
1724
1724
|
return rt(t.stringValue, e.stringValue);
|
|
@@ -2301,7 +2301,7 @@ function le(t, e) {
|
|
|
2301
2301
|
for (let i = 0; i < t.filters.length; i++) if (n = t.filters[i], s = e.filters[i],
|
|
2302
2302
|
n.op !== s.op || !n.field.isEqual(s.field) || !$t(n.value, s.value)) return !1;
|
|
2303
2303
|
var n, s;
|
|
2304
|
-
return t.collectionGroup === e.collectionGroup && (!!t.path.isEqual(e.path) && (!!
|
|
2304
|
+
return t.collectionGroup === e.collectionGroup && (!!t.path.isEqual(e.path) && (!!Ve(t.startAt, e.startAt) && Ve(t.endAt, e.endAt)));
|
|
2305
2305
|
}
|
|
2306
2306
|
|
|
2307
2307
|
function fe(t) {
|
|
@@ -2469,7 +2469,7 @@ function Pe(t, e) {
|
|
|
2469
2469
|
return t.dir === e.dir && t.field.isEqual(e.field);
|
|
2470
2470
|
}
|
|
2471
2471
|
|
|
2472
|
-
function
|
|
2472
|
+
function be(t, e, n) {
|
|
2473
2473
|
let s = 0;
|
|
2474
2474
|
for (let i = 0; i < t.position.length; i++) {
|
|
2475
2475
|
const r = e[i], o = t.position[i];
|
|
@@ -2484,7 +2484,7 @@ function Ve(t, e, n) {
|
|
|
2484
2484
|
/**
|
|
2485
2485
|
* Returns true if a document sorts after a bound using the provided sort
|
|
2486
2486
|
* order.
|
|
2487
|
-
*/ function
|
|
2487
|
+
*/ function Ve(t, e) {
|
|
2488
2488
|
if (null === t) return null === e;
|
|
2489
2489
|
if (null === e) return !1;
|
|
2490
2490
|
if (t.inclusive !== e.inclusive || t.position.length !== e.position.length) return !1;
|
|
@@ -2660,11 +2660,11 @@ function Ue(t) {
|
|
|
2660
2660
|
* order.
|
|
2661
2661
|
*/
|
|
2662
2662
|
function(t, e, n) {
|
|
2663
|
-
const s =
|
|
2663
|
+
const s = be(t, e, n);
|
|
2664
2664
|
return t.inclusive ? s <= 0 : s < 0;
|
|
2665
2665
|
}(t.startAt, $e(t), e)) return !1;
|
|
2666
2666
|
if (t.endAt && !function(t, e, n) {
|
|
2667
|
-
const s =
|
|
2667
|
+
const s = be(t, e, n);
|
|
2668
2668
|
return t.inclusive ? s >= 0 : s > 0;
|
|
2669
2669
|
}(t.endAt, $e(t), e)) return !1;
|
|
2670
2670
|
return !0;
|
|
@@ -3300,7 +3300,7 @@ class Rn extends fn {
|
|
|
3300
3300
|
* Important! The names of these identifiers matter because the string forms
|
|
3301
3301
|
* are used for reverse lookups from the webchannel stream. Do NOT change the
|
|
3302
3302
|
* names of these identifiers or change this into a const enum.
|
|
3303
|
-
*/ var
|
|
3303
|
+
*/ var bn, Vn;
|
|
3304
3304
|
|
|
3305
3305
|
/**
|
|
3306
3306
|
* Determines whether an error code represents a permanent error when received
|
|
@@ -3365,55 +3365,55 @@ function Sn(t) {
|
|
|
3365
3365
|
// to send invalid proto messages) we may get an error with no GRPC code.
|
|
3366
3366
|
return M("GRPC error has no .code"), G.UNKNOWN;
|
|
3367
3367
|
switch (t) {
|
|
3368
|
-
case
|
|
3368
|
+
case bn.OK:
|
|
3369
3369
|
return G.OK;
|
|
3370
3370
|
|
|
3371
|
-
case
|
|
3371
|
+
case bn.CANCELLED:
|
|
3372
3372
|
return G.CANCELLED;
|
|
3373
3373
|
|
|
3374
|
-
case
|
|
3374
|
+
case bn.UNKNOWN:
|
|
3375
3375
|
return G.UNKNOWN;
|
|
3376
3376
|
|
|
3377
|
-
case
|
|
3377
|
+
case bn.DEADLINE_EXCEEDED:
|
|
3378
3378
|
return G.DEADLINE_EXCEEDED;
|
|
3379
3379
|
|
|
3380
|
-
case
|
|
3380
|
+
case bn.RESOURCE_EXHAUSTED:
|
|
3381
3381
|
return G.RESOURCE_EXHAUSTED;
|
|
3382
3382
|
|
|
3383
|
-
case
|
|
3383
|
+
case bn.INTERNAL:
|
|
3384
3384
|
return G.INTERNAL;
|
|
3385
3385
|
|
|
3386
|
-
case
|
|
3386
|
+
case bn.UNAVAILABLE:
|
|
3387
3387
|
return G.UNAVAILABLE;
|
|
3388
3388
|
|
|
3389
|
-
case
|
|
3389
|
+
case bn.UNAUTHENTICATED:
|
|
3390
3390
|
return G.UNAUTHENTICATED;
|
|
3391
3391
|
|
|
3392
|
-
case
|
|
3392
|
+
case bn.INVALID_ARGUMENT:
|
|
3393
3393
|
return G.INVALID_ARGUMENT;
|
|
3394
3394
|
|
|
3395
|
-
case
|
|
3395
|
+
case bn.NOT_FOUND:
|
|
3396
3396
|
return G.NOT_FOUND;
|
|
3397
3397
|
|
|
3398
|
-
case
|
|
3398
|
+
case bn.ALREADY_EXISTS:
|
|
3399
3399
|
return G.ALREADY_EXISTS;
|
|
3400
3400
|
|
|
3401
|
-
case
|
|
3401
|
+
case bn.PERMISSION_DENIED:
|
|
3402
3402
|
return G.PERMISSION_DENIED;
|
|
3403
3403
|
|
|
3404
|
-
case
|
|
3404
|
+
case bn.FAILED_PRECONDITION:
|
|
3405
3405
|
return G.FAILED_PRECONDITION;
|
|
3406
3406
|
|
|
3407
|
-
case
|
|
3407
|
+
case bn.ABORTED:
|
|
3408
3408
|
return G.ABORTED;
|
|
3409
3409
|
|
|
3410
|
-
case
|
|
3410
|
+
case bn.OUT_OF_RANGE:
|
|
3411
3411
|
return G.OUT_OF_RANGE;
|
|
3412
3412
|
|
|
3413
|
-
case
|
|
3413
|
+
case bn.UNIMPLEMENTED:
|
|
3414
3414
|
return G.UNIMPLEMENTED;
|
|
3415
3415
|
|
|
3416
|
-
case
|
|
3416
|
+
case bn.DATA_LOSS:
|
|
3417
3417
|
return G.DATA_LOSS;
|
|
3418
3418
|
|
|
3419
3419
|
default:
|
|
@@ -3428,14 +3428,14 @@ function Sn(t) {
|
|
|
3428
3428
|
* "UNKNOWN", etc.)
|
|
3429
3429
|
* @returns The equivalent Code. Non-matching responses are mapped to
|
|
3430
3430
|
* Code.UNKNOWN.
|
|
3431
|
-
*/ (
|
|
3432
|
-
|
|
3433
|
-
|
|
3434
|
-
|
|
3435
|
-
|
|
3436
|
-
|
|
3437
|
-
|
|
3438
|
-
|
|
3431
|
+
*/ (Vn = bn || (bn = {}))[Vn.OK = 0] = "OK", Vn[Vn.CANCELLED = 1] = "CANCELLED",
|
|
3432
|
+
Vn[Vn.UNKNOWN = 2] = "UNKNOWN", Vn[Vn.INVALID_ARGUMENT = 3] = "INVALID_ARGUMENT",
|
|
3433
|
+
Vn[Vn.DEADLINE_EXCEEDED = 4] = "DEADLINE_EXCEEDED", Vn[Vn.NOT_FOUND = 5] = "NOT_FOUND",
|
|
3434
|
+
Vn[Vn.ALREADY_EXISTS = 6] = "ALREADY_EXISTS", Vn[Vn.PERMISSION_DENIED = 7] = "PERMISSION_DENIED",
|
|
3435
|
+
Vn[Vn.UNAUTHENTICATED = 16] = "UNAUTHENTICATED", Vn[Vn.RESOURCE_EXHAUSTED = 8] = "RESOURCE_EXHAUSTED",
|
|
3436
|
+
Vn[Vn.FAILED_PRECONDITION = 9] = "FAILED_PRECONDITION", Vn[Vn.ABORTED = 10] = "ABORTED",
|
|
3437
|
+
Vn[Vn.OUT_OF_RANGE = 11] = "OUT_OF_RANGE", Vn[Vn.UNIMPLEMENTED = 12] = "UNIMPLEMENTED",
|
|
3438
|
+
Vn[Vn.INTERNAL = 13] = "INTERNAL", Vn[Vn.UNAVAILABLE = 14] = "UNAVAILABLE", Vn[Vn.DATA_LOSS = 15] = "DATA_LOSS";
|
|
3439
3439
|
|
|
3440
3440
|
/**
|
|
3441
3441
|
* @license
|
|
@@ -3552,7 +3552,7 @@ class Cn {
|
|
|
3552
3552
|
let i = 1;
|
|
3553
3553
|
for (;!t.isEmpty(); ) if (i = e ? n(t.key, e) : 1,
|
|
3554
3554
|
// flip the comparison if we're going in reverse
|
|
3555
|
-
s && (i *= -1), i < 0)
|
|
3555
|
+
e && s && (i *= -1), i < 0)
|
|
3556
3556
|
// This node is less than our start key. ignore it
|
|
3557
3557
|
t = this.isReverse ? t.left : t.right; else {
|
|
3558
3558
|
if (0 === i) {
|
|
@@ -4862,7 +4862,7 @@ function As(t, e) {
|
|
|
4862
4862
|
function(t) {
|
|
4863
4863
|
return {
|
|
4864
4864
|
field: Ss(t.field),
|
|
4865
|
-
direction:
|
|
4865
|
+
direction: Vs(t.dir)
|
|
4866
4866
|
};
|
|
4867
4867
|
}(t)));
|
|
4868
4868
|
}(e.orderBy);
|
|
@@ -4897,7 +4897,7 @@ function Rs(t) {
|
|
|
4897
4897
|
t.allDescendants ? i = t.collectionId : e = e.child(t.collectionId);
|
|
4898
4898
|
}
|
|
4899
4899
|
let r = [];
|
|
4900
|
-
n.where && (r =
|
|
4900
|
+
n.where && (r = bs(n.where));
|
|
4901
4901
|
let o = [];
|
|
4902
4902
|
n.orderBy && (o = n.orderBy.map((t => function(t) {
|
|
4903
4903
|
return new Re(Ds(t.field),
|
|
@@ -4957,11 +4957,11 @@ function Ps(t, e) {
|
|
|
4957
4957
|
};
|
|
4958
4958
|
}
|
|
4959
4959
|
|
|
4960
|
-
function
|
|
4961
|
-
return t ? void 0 !== t.unaryFilter ? [ xs(t) ] : void 0 !== t.fieldFilter ? [ Cs(t) ] : void 0 !== t.compositeFilter ? t.compositeFilter.filters.map((t =>
|
|
4960
|
+
function bs(t) {
|
|
4961
|
+
return t ? void 0 !== t.unaryFilter ? [ xs(t) ] : void 0 !== t.fieldFilter ? [ Cs(t) ] : void 0 !== t.compositeFilter ? t.compositeFilter.filters.map((t => bs(t))).reduce(((t, e) => t.concat(e))) : L() : [];
|
|
4962
4962
|
}
|
|
4963
4963
|
|
|
4964
|
-
function
|
|
4964
|
+
function Vs(t) {
|
|
4965
4965
|
return ts[t];
|
|
4966
4966
|
}
|
|
4967
4967
|
|
|
@@ -6078,12 +6078,12 @@ class li {
|
|
|
6078
6078
|
* objectstores.
|
|
6079
6079
|
*/
|
|
6080
6080
|
constructor(t, e, n) {
|
|
6081
|
-
this.name = t, this.version = e, this.
|
|
6081
|
+
this.name = t, this.version = e, this.bt = n;
|
|
6082
6082
|
// NOTE: According to https://bugs.webkit.org/show_bug.cgi?id=197050, the
|
|
6083
6083
|
// bug we're checking for should exist in iOS >= 12.2 and < 13, but for
|
|
6084
6084
|
// whatever reason it's much harder to hit after 12.2 so we only proactively
|
|
6085
6085
|
// log on 12.2.
|
|
6086
|
-
12.2 === fi.
|
|
6086
|
+
12.2 === fi.Vt(getUA()) && M("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.");
|
|
6087
6087
|
}
|
|
6088
6088
|
/** Deletes the specified database. */ static delete(t) {
|
|
6089
6089
|
return $("SimpleDb", "Removing database:", t), gi(window.indexedDB.deleteDatabase(t)).toPromise();
|
|
@@ -6098,7 +6098,7 @@ class li {
|
|
|
6098
6098
|
// For tracking support of this feature, see here:
|
|
6099
6099
|
// https://developer.microsoft.com/en-us/microsoft-edge/platform/status/indexeddbarraysandmultientrysupport/
|
|
6100
6100
|
// Check the UA string to find out the browser.
|
|
6101
|
-
const t = getUA(), e = fi.
|
|
6101
|
+
const t = getUA(), e = fi.Vt(t), n = 0 < e && e < 10, s = fi.Dt(t), i = 0 < s && s < 4.5;
|
|
6102
6102
|
// IE 10
|
|
6103
6103
|
// ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';
|
|
6104
6104
|
// IE 11
|
|
@@ -6121,7 +6121,7 @@ class li {
|
|
|
6121
6121
|
}
|
|
6122
6122
|
// visible for testing
|
|
6123
6123
|
/** Parse User Agent to determine iOS version. Returns -1 if not found. */
|
|
6124
|
-
static
|
|
6124
|
+
static Vt(t) {
|
|
6125
6125
|
const e = t.match(/i(?:phone|pad|pod) os ([\d_]+)/i), n = e ? e[1].split("_").slice(0, 2).join(".") : "-1";
|
|
6126
6126
|
return Number(n);
|
|
6127
6127
|
}
|
|
@@ -6152,7 +6152,7 @@ class li {
|
|
|
6152
6152
|
}, s.onupgradeneeded = t => {
|
|
6153
6153
|
$("SimpleDb", 'Database "' + this.name + '" requires upgrade from version:', t.oldVersion);
|
|
6154
6154
|
const e = t.target.result;
|
|
6155
|
-
this.
|
|
6155
|
+
this.bt.kt(e, s.transaction, t.oldVersion, this.version).next((() => {
|
|
6156
6156
|
$("SimpleDb", "Database upgrade to version " + this.version + " complete");
|
|
6157
6157
|
}));
|
|
6158
6158
|
};
|
|
@@ -6420,7 +6420,7 @@ class li {
|
|
|
6420
6420
|
let yi = !1;
|
|
6421
6421
|
|
|
6422
6422
|
function pi(t) {
|
|
6423
|
-
const e = fi.
|
|
6423
|
+
const e = fi.Vt(getUA());
|
|
6424
6424
|
if (e >= 12.2 && e < 13) {
|
|
6425
6425
|
const e = "An internal error was encountered in the Indexed Database server";
|
|
6426
6426
|
if (t.message.indexOf(e) >= 0) {
|
|
@@ -6686,13 +6686,13 @@ function Ei(t, e) {
|
|
|
6686
6686
|
* See the License for the specific language governing permissions and
|
|
6687
6687
|
* limitations under the License.
|
|
6688
6688
|
*/
|
|
6689
|
-
/** Serializer for values stored in the LocalStore. */ class
|
|
6689
|
+
/** Serializer for values stored in the LocalStore. */ class bi {
|
|
6690
6690
|
constructor(t) {
|
|
6691
6691
|
this.Jt = t;
|
|
6692
6692
|
}
|
|
6693
6693
|
}
|
|
6694
6694
|
|
|
6695
|
-
/** Decodes a remote document from storage locally to a Document. */ function
|
|
6695
|
+
/** Decodes a remote document from storage locally to a Document. */ function Vi(t, e) {
|
|
6696
6696
|
let n;
|
|
6697
6697
|
if (e.document) n = ms(t.Jt, e.document, !!e.hasCommittedMutations); else if (e.noDocument) {
|
|
6698
6698
|
const t = xt.fromSegments(e.noDocument.path), s = xi(e.noDocument.readTime);
|
|
@@ -7183,12 +7183,12 @@ function Qi(t) {
|
|
|
7183
7183
|
* Writes the "infinity" byte sequence that sorts after all other byte
|
|
7184
7184
|
* sequences written in ascending order.
|
|
7185
7185
|
*/ Pe() {
|
|
7186
|
-
this.
|
|
7186
|
+
this.be(255), this.be(255);
|
|
7187
7187
|
}
|
|
7188
7188
|
/**
|
|
7189
7189
|
* Writes the "infinity" byte sequence that sorts before all other byte
|
|
7190
7190
|
* sequences written in descending order.
|
|
7191
|
-
*/
|
|
7191
|
+
*/ Ve() {
|
|
7192
7192
|
this.ve(255), this.ve(255);
|
|
7193
7193
|
}
|
|
7194
7194
|
/**
|
|
@@ -7225,19 +7225,19 @@ function Qi(t) {
|
|
|
7225
7225
|
}
|
|
7226
7226
|
/** Writes a single byte ascending to the buffer. */ _e(t) {
|
|
7227
7227
|
const e = 255 & t;
|
|
7228
|
-
0 === e ? (this.
|
|
7228
|
+
0 === e ? (this.be(0), this.be(255)) : 255 === e ? (this.be(255), this.be(0)) : this.be(e);
|
|
7229
7229
|
}
|
|
7230
7230
|
/** Writes a single byte descending to the buffer. */ ge(t) {
|
|
7231
7231
|
const e = 255 & t;
|
|
7232
7232
|
0 === e ? (this.ve(0), this.ve(255)) : 255 === e ? (this.ve(255), this.ve(0)) : this.ve(t);
|
|
7233
7233
|
}
|
|
7234
7234
|
we() {
|
|
7235
|
-
this.
|
|
7235
|
+
this.be(0), this.be(1);
|
|
7236
7236
|
}
|
|
7237
7237
|
ye() {
|
|
7238
7238
|
this.ve(0), this.ve(1);
|
|
7239
7239
|
}
|
|
7240
|
-
|
|
7240
|
+
be(t) {
|
|
7241
7241
|
this.Ae(1), this.buffer[this.position++] = t;
|
|
7242
7242
|
}
|
|
7243
7243
|
ve(t) {
|
|
@@ -7289,7 +7289,7 @@ class Hi {
|
|
|
7289
7289
|
this.De.Re(t);
|
|
7290
7290
|
}
|
|
7291
7291
|
ee() {
|
|
7292
|
-
this.De.
|
|
7292
|
+
this.De.Ve();
|
|
7293
7293
|
}
|
|
7294
7294
|
}
|
|
7295
7295
|
|
|
@@ -8859,7 +8859,7 @@ class pr {
|
|
|
8859
8859
|
* Used to calculate the nth sequence number. Keeps a rolling buffer of the
|
|
8860
8860
|
* lowest n values passed to `addElement`, and finally reports the largest of
|
|
8861
8861
|
* them in `maxValue`.
|
|
8862
|
-
*/ class
|
|
8862
|
+
*/ class br {
|
|
8863
8863
|
constructor(t) {
|
|
8864
8864
|
this.Tn = t, this.buffer = new Nn(Pr), this.An = 0;
|
|
8865
8865
|
}
|
|
@@ -8887,23 +8887,23 @@ class pr {
|
|
|
8887
8887
|
/**
|
|
8888
8888
|
* This class is responsible for the scheduling of LRU garbage collection. It handles checking
|
|
8889
8889
|
* whether or not GC is enabled, as well as which delay to use before the next run.
|
|
8890
|
-
*/ class
|
|
8890
|
+
*/ class Vr {
|
|
8891
8891
|
constructor(t, e) {
|
|
8892
|
-
this.garbageCollector = t, this.asyncQueue = e, this.
|
|
8892
|
+
this.garbageCollector = t, this.asyncQueue = e, this.bn = !1, this.Vn = null;
|
|
8893
8893
|
}
|
|
8894
8894
|
start(t) {
|
|
8895
8895
|
-1 !== this.garbageCollector.params.cacheSizeCollectionThreshold && this.vn(t);
|
|
8896
8896
|
}
|
|
8897
8897
|
stop() {
|
|
8898
|
-
this.
|
|
8898
|
+
this.Vn && (this.Vn.cancel(), this.Vn = null);
|
|
8899
8899
|
}
|
|
8900
8900
|
get started() {
|
|
8901
|
-
return null !== this.
|
|
8901
|
+
return null !== this.Vn;
|
|
8902
8902
|
}
|
|
8903
8903
|
vn(t) {
|
|
8904
|
-
const e = this.
|
|
8905
|
-
$("LruGarbageCollector", `Garbage collection scheduled in ${e}ms`), this.
|
|
8906
|
-
this.
|
|
8904
|
+
const e = this.bn ? 3e5 : 6e4;
|
|
8905
|
+
$("LruGarbageCollector", `Garbage collection scheduled in ${e}ms`), this.Vn = this.asyncQueue.enqueueAfterDelay("lru_garbage_collection" /* LruGarbageCollection */ , e, (async () => {
|
|
8906
|
+
this.Vn = null, this.bn = !0;
|
|
8907
8907
|
try {
|
|
8908
8908
|
await t.collectGarbage(this.garbageCollector);
|
|
8909
8909
|
} catch (t) {
|
|
@@ -8923,7 +8923,7 @@ class pr {
|
|
|
8923
8923
|
}
|
|
8924
8924
|
nthSequenceNumber(t, e) {
|
|
8925
8925
|
if (0 === e) return hi.resolve(nt.A);
|
|
8926
|
-
const n = new
|
|
8926
|
+
const n = new br(e);
|
|
8927
8927
|
return this.Sn.forEachTarget(t, (t => n.Pn(t.sequenceNumber))).next((() => this.Sn.Cn(t, (t => n.Pn(t))))).next((() => n.maxValue));
|
|
8928
8928
|
}
|
|
8929
8929
|
removeTargets(t, e, n) {
|
|
@@ -9331,7 +9331,7 @@ function Dr(t, e) {
|
|
|
9331
9331
|
* the document corresponds to the format used for sentinel deletes).
|
|
9332
9332
|
*/ Mn(t, e) {
|
|
9333
9333
|
if (e) {
|
|
9334
|
-
const t =
|
|
9334
|
+
const t = Vi(this.O, e);
|
|
9335
9335
|
// Whether the document is a sentinel removal and should only be used in the
|
|
9336
9336
|
// `getNewDocumentChanges()`
|
|
9337
9337
|
if (!(t.isNoDocument() && t.version.isEqual(at.min()))) return t;
|
|
@@ -9746,7 +9746,7 @@ class Lr {
|
|
|
9746
9746
|
this.ss = Number.NEGATIVE_INFINITY,
|
|
9747
9747
|
/** A listener to notify on primary state changes. */
|
|
9748
9748
|
this.rs = t => Promise.resolve(), !Lr.vt()) throw new j(G.UNIMPLEMENTED, "This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");
|
|
9749
|
-
this.referenceDelegate = new Sr(this, s), this.os = e + "main", this.O = new
|
|
9749
|
+
this.referenceDelegate = new Sr(this, s), this.os = e + "main", this.O = new bi(c),
|
|
9750
9750
|
this.cs = new fi(this.os, this.schemaVersion, new Mr(this.O)), this.us = new Ir(this.referenceDelegate, this.O),
|
|
9751
9751
|
this.hs = function(t) {
|
|
9752
9752
|
return new xr(t);
|
|
@@ -9847,12 +9847,12 @@ class Lr {
|
|
|
9847
9847
|
* RemoteDocumentChanges and the ClientMetadata store based on the last update
|
|
9848
9848
|
* time of all clients.
|
|
9849
9849
|
*/ async Ps() {
|
|
9850
|
-
if (this.isPrimary && !this.
|
|
9850
|
+
if (this.isPrimary && !this.bs(this.ss, 18e5)) {
|
|
9851
9851
|
this.ss = Date.now();
|
|
9852
9852
|
const t = await this.runTransaction("maybeGarbageCollectMultiClientState", "readwrite-primary", (t => {
|
|
9853
9853
|
const e = Ei(t, Xs.store);
|
|
9854
9854
|
return e.qt().next((t => {
|
|
9855
|
-
const n = this.
|
|
9855
|
+
const n = this.Vs(t, 18e5), s = t.filter((t => -1 === n.indexOf(t)));
|
|
9856
9856
|
// Delete metadata for clients that are no longer considered active.
|
|
9857
9857
|
return hi.forEach(s, (t => e.delete(t.clientId))).next((() => s));
|
|
9858
9858
|
}));
|
|
@@ -9892,7 +9892,7 @@ class Lr {
|
|
|
9892
9892
|
// - every clients network is disabled and no other client's tab is in
|
|
9893
9893
|
// the foreground.
|
|
9894
9894
|
// - the `forceOwningTab` setting was passed in.
|
|
9895
|
-
if (null !== e && this.
|
|
9895
|
+
if (null !== e && this.bs(e.leaseTimestampMs, 5e3) && !this.Ss(e.ownerId)) {
|
|
9896
9896
|
if (this.As(e) && this.networkEnabled) return !0;
|
|
9897
9897
|
if (!this.As(e)) {
|
|
9898
9898
|
if (!e.allowTabSynchronization)
|
|
@@ -9911,7 +9911,7 @@ class Lr {
|
|
|
9911
9911
|
return !1;
|
|
9912
9912
|
}
|
|
9913
9913
|
}
|
|
9914
|
-
return !(!this.networkEnabled || !this.inForeground) || qr(t).qt().next((t => void 0 === this.
|
|
9914
|
+
return !(!this.networkEnabled || !this.inForeground) || qr(t).qt().next((t => void 0 === this.Vs(t, 5e3).find((t => {
|
|
9915
9915
|
if (this.clientId !== t.clientId) {
|
|
9916
9916
|
const e = !this.networkEnabled && t.networkEnabled, n = !this.inForeground && t.inForeground, s = this.networkEnabled === t.networkEnabled;
|
|
9917
9917
|
if (e || n && s) return !0;
|
|
@@ -9939,8 +9939,8 @@ class Lr {
|
|
|
9939
9939
|
/**
|
|
9940
9940
|
* Returns clients that are not zombied and have an updateTime within the
|
|
9941
9941
|
* provided threshold.
|
|
9942
|
-
*/
|
|
9943
|
-
return t.filter((t => this.
|
|
9942
|
+
*/ Vs(t, e) {
|
|
9943
|
+
return t.filter((t => this.bs(t.updateTimeMs, e) && !this.Ss(t.clientId)));
|
|
9944
9944
|
}
|
|
9945
9945
|
/**
|
|
9946
9946
|
* Returns the IDs of the clients that are currently active. If multi-tab
|
|
@@ -9949,7 +9949,7 @@ class Lr {
|
|
|
9949
9949
|
*
|
|
9950
9950
|
* PORTING NOTE: This is only used for Web multi-tab.
|
|
9951
9951
|
*/ ks() {
|
|
9952
|
-
return this.runTransaction("getActiveClients", "readonly", (t => qr(t).qt().next((t => this.
|
|
9952
|
+
return this.runTransaction("getActiveClients", "readonly", (t => qr(t).qt().next((t => this.Vs(t, 18e5).map((t => t.clientId))))));
|
|
9953
9953
|
}
|
|
9954
9954
|
get started() {
|
|
9955
9955
|
return this.Zn;
|
|
@@ -9996,7 +9996,7 @@ class Lr {
|
|
|
9996
9996
|
// be turned off.
|
|
9997
9997
|
Os(t) {
|
|
9998
9998
|
return Ur(t).get(Ls.key).next((t => {
|
|
9999
|
-
if (null !== t && this.
|
|
9999
|
+
if (null !== t && this.bs(t.leaseTimestampMs, 5e3) && !this.Ss(t.ownerId) && !this.As(t) && !(this.Yn || this.allowTabSynchronization && t.allowTabSynchronization)) throw new j(G.FAILED_PRECONDITION, Br);
|
|
10000
10000
|
}));
|
|
10001
10001
|
}
|
|
10002
10002
|
/**
|
|
@@ -10014,7 +10014,7 @@ class Lr {
|
|
|
10014
10014
|
return e.get(Ls.key).next((t => this.As(t) ? ($("IndexedDbPersistence", "Releasing primary lease."),
|
|
10015
10015
|
e.delete(Ls.key)) : hi.resolve()));
|
|
10016
10016
|
}
|
|
10017
|
-
/** Verifies that `updateTimeMs` is within `maxAgeMs`. */
|
|
10017
|
+
/** Verifies that `updateTimeMs` is within `maxAgeMs`. */ bs(t, e) {
|
|
10018
10018
|
const n = Date.now();
|
|
10019
10019
|
return !(t < n - e) && (!(t > n) || (M(`Detected an update time that is in the future: ${t} > ${n}`),
|
|
10020
10020
|
!1));
|
|
@@ -10790,7 +10790,7 @@ function oo(t) {
|
|
|
10790
10790
|
}, ((t, e) => {
|
|
10791
10791
|
// Unlike `getEntry()` and others, `getNewDocumentChanges()` parses
|
|
10792
10792
|
// the documents directly since we want to keep sentinel deletes.
|
|
10793
|
-
const n =
|
|
10793
|
+
const n = Vi(s.O, e);
|
|
10794
10794
|
i = i.insert(n.key, n), r = e.readTime;
|
|
10795
10795
|
})).next((() => ({
|
|
10796
10796
|
$s: i,
|
|
@@ -11093,13 +11093,13 @@ async function ao(t, e, n = qn()) {
|
|
|
11093
11093
|
|
|
11094
11094
|
class _o {
|
|
11095
11095
|
constructor(t, e) {
|
|
11096
|
-
this.key = t, this.
|
|
11096
|
+
this.key = t, this.bi = e;
|
|
11097
11097
|
}
|
|
11098
11098
|
/** Compare by key then by ID */ static gi(t, e) {
|
|
11099
|
-
return xt.comparator(t.key, e.key) || rt(t.
|
|
11099
|
+
return xt.comparator(t.key, e.key) || rt(t.bi, e.bi);
|
|
11100
11100
|
}
|
|
11101
11101
|
/** Compare by ID then by key */ static pi(t, e) {
|
|
11102
|
-
return rt(t.
|
|
11102
|
+
return rt(t.bi, e.bi) || xt.comparator(t.key, e.key);
|
|
11103
11103
|
}
|
|
11104
11104
|
}
|
|
11105
11105
|
|
|
@@ -11127,7 +11127,7 @@ class _o {
|
|
|
11127
11127
|
*/
|
|
11128
11128
|
this.Ms = [],
|
|
11129
11129
|
/** Next value to use when assigning sequential IDs to each mutation batch. */
|
|
11130
|
-
this.
|
|
11130
|
+
this.Vi = 1,
|
|
11131
11131
|
/** An ordered mapping between documents and the mutations batch IDs. */
|
|
11132
11132
|
this.vi = new Nn(_o.gi);
|
|
11133
11133
|
}
|
|
@@ -11135,8 +11135,8 @@ class _o {
|
|
|
11135
11135
|
return hi.resolve(0 === this.Ms.length);
|
|
11136
11136
|
}
|
|
11137
11137
|
addMutationBatch(t, e, n, s) {
|
|
11138
|
-
const i = this.
|
|
11139
|
-
this.
|
|
11138
|
+
const i = this.Vi;
|
|
11139
|
+
this.Vi++, this.Ms.length > 0 && this.Ms[this.Ms.length - 1];
|
|
11140
11140
|
const r = new Ti(i, e, n, s);
|
|
11141
11141
|
this.Ms.push(r);
|
|
11142
11142
|
// Track references by document key and index collection parents.
|
|
@@ -11153,7 +11153,7 @@ class _o {
|
|
|
11153
11153
|
return hi.resolve(this.Ms.length > i ? this.Ms[i] : null);
|
|
11154
11154
|
}
|
|
11155
11155
|
getHighestUnacknowledgedBatchId() {
|
|
11156
|
-
return hi.resolve(0 === this.Ms.length ? -1 : this.
|
|
11156
|
+
return hi.resolve(0 === this.Ms.length ? -1 : this.Vi - 1);
|
|
11157
11157
|
}
|
|
11158
11158
|
getAllMutationBatches(t) {
|
|
11159
11159
|
return hi.resolve(this.Ms.slice());
|
|
@@ -11161,7 +11161,7 @@ class _o {
|
|
|
11161
11161
|
getAllMutationBatchesAffectingDocumentKey(t, e) {
|
|
11162
11162
|
const n = new _o(e, 0), s = new _o(e, Number.POSITIVE_INFINITY), i = [];
|
|
11163
11163
|
return this.vi.forEachInRange([ n, s ], (t => {
|
|
11164
|
-
const e = this.Si(t.
|
|
11164
|
+
const e = this.Si(t.bi);
|
|
11165
11165
|
i.push(e);
|
|
11166
11166
|
})), hi.resolve(i);
|
|
11167
11167
|
}
|
|
@@ -11170,7 +11170,7 @@ class _o {
|
|
|
11170
11170
|
return e.forEach((t => {
|
|
11171
11171
|
const e = new _o(t, 0), s = new _o(t, Number.POSITIVE_INFINITY);
|
|
11172
11172
|
this.vi.forEachInRange([ e, s ], (t => {
|
|
11173
|
-
n = n.add(t.
|
|
11173
|
+
n = n.add(t.bi);
|
|
11174
11174
|
}));
|
|
11175
11175
|
})), hi.resolve(this.Ci(n));
|
|
11176
11176
|
}
|
|
@@ -11196,7 +11196,7 @@ class _o {
|
|
|
11196
11196
|
// the document /rooms/abc/messages/xyx.
|
|
11197
11197
|
// TODO(mcg): we'll need a different scanner when we implement
|
|
11198
11198
|
// ancestor queries.
|
|
11199
|
-
e.length === s && (o = o.add(t.
|
|
11199
|
+
e.length === s && (o = o.add(t.bi)), !0);
|
|
11200
11200
|
}), r), hi.resolve(this.Ci(o));
|
|
11201
11201
|
}
|
|
11202
11202
|
Ci(t) {
|
|
@@ -11521,7 +11521,7 @@ class po {
|
|
|
11521
11521
|
this.referenceDelegate = t(this), this.us = new yo(this);
|
|
11522
11522
|
this.indexManager = new nr, this.hs = function(t) {
|
|
11523
11523
|
return new mo(t);
|
|
11524
|
-
}((t => this.referenceDelegate.Li(t))), this.O = new
|
|
11524
|
+
}((t => this.referenceDelegate.Li(t))), this.O = new bi(e), this.ls = new ho(this.O);
|
|
11525
11525
|
}
|
|
11526
11526
|
start() {
|
|
11527
11527
|
return Promise.resolve();
|
|
@@ -11721,7 +11721,7 @@ class Po {
|
|
|
11721
11721
|
* target is 'not-current', 'current' or 'rejected'.
|
|
11722
11722
|
*/
|
|
11723
11723
|
// Visible for testing
|
|
11724
|
-
class
|
|
11724
|
+
class bo {
|
|
11725
11725
|
constructor(t, e, n) {
|
|
11726
11726
|
this.targetId = t, this.state = e, this.error = n;
|
|
11727
11727
|
}
|
|
@@ -11732,7 +11732,7 @@ class Vo {
|
|
|
11732
11732
|
const n = JSON.parse(e);
|
|
11733
11733
|
let s, i = "object" == typeof n && -1 !== [ "not-current", "current", "rejected" ].indexOf(n.state) && (void 0 === n.error || "object" == typeof n.error);
|
|
11734
11734
|
return i && n.error && (i = "string" == typeof n.error.message && "string" == typeof n.error.code,
|
|
11735
|
-
i && (s = new j(n.error.code, n.error.message))), i ? new
|
|
11735
|
+
i && (s = new j(n.error.code, n.error.message))), i ? new bo(t, n.state, s) : (M("SharedClientState", `Failed to parse target state for ID '${t}': ${e}`),
|
|
11736
11736
|
null);
|
|
11737
11737
|
}
|
|
11738
11738
|
Ji() {
|
|
@@ -11750,7 +11750,7 @@ class Vo {
|
|
|
11750
11750
|
/**
|
|
11751
11751
|
* This class represents the immutable ClientState for a client read from
|
|
11752
11752
|
* WebStorage, containing the list of active query targets.
|
|
11753
|
-
*/ class
|
|
11753
|
+
*/ class Vo {
|
|
11754
11754
|
constructor(t, e) {
|
|
11755
11755
|
this.clientId = t, this.activeTargetIds = e;
|
|
11756
11756
|
}
|
|
@@ -11762,7 +11762,7 @@ class Vo {
|
|
|
11762
11762
|
let s = "object" == typeof n && n.activeTargetIds instanceof Array, i = Gn();
|
|
11763
11763
|
for (let t = 0; s && t < n.activeTargetIds.length; ++t) s = Ct(n.activeTargetIds[t]),
|
|
11764
11764
|
i = i.add(n.activeTargetIds[t]);
|
|
11765
|
-
return s ? new
|
|
11765
|
+
return s ? new Vo(t, i) : (M("SharedClientState", `Failed to parse client data for instance '${t}': ${e}`),
|
|
11766
11766
|
null);
|
|
11767
11767
|
}
|
|
11768
11768
|
}
|
|
@@ -11892,7 +11892,7 @@ class So {
|
|
|
11892
11892
|
if (e === this.Zi) continue;
|
|
11893
11893
|
const t = this.getItem(To(this.persistenceKey, e));
|
|
11894
11894
|
if (t) {
|
|
11895
|
-
const n =
|
|
11895
|
+
const n = Vo.Hi(e, t);
|
|
11896
11896
|
n && (this.nr = this.nr.insert(n.clientId, n));
|
|
11897
11897
|
}
|
|
11898
11898
|
}
|
|
@@ -11939,7 +11939,7 @@ class So {
|
|
|
11939
11939
|
if (this.isActiveQueryTarget(t)) {
|
|
11940
11940
|
const n = this.storage.getItem(Ro(this.persistenceKey, t));
|
|
11941
11941
|
if (n) {
|
|
11942
|
-
const s =
|
|
11942
|
+
const s = bo.Hi(t, n);
|
|
11943
11943
|
s && (e = s.state);
|
|
11944
11944
|
}
|
|
11945
11945
|
}
|
|
@@ -12003,8 +12003,8 @@ class So {
|
|
|
12003
12003
|
}
|
|
12004
12004
|
} else if (this.ur.test(e.key)) {
|
|
12005
12005
|
if (null !== e.newValue) {
|
|
12006
|
-
const t = this.
|
|
12007
|
-
if (t) return this.
|
|
12006
|
+
const t = this.br(e.key, e.newValue);
|
|
12007
|
+
if (t) return this.Vr(t);
|
|
12008
12008
|
}
|
|
12009
12009
|
} else if (this.ar.test(e.key)) {
|
|
12010
12010
|
if (null !== e.newValue) {
|
|
@@ -12060,7 +12060,7 @@ class So {
|
|
|
12060
12060
|
this.storage.setItem(this.hr, JSON.stringify(e));
|
|
12061
12061
|
}
|
|
12062
12062
|
Ir(t, e, n) {
|
|
12063
|
-
const s = Ro(this.persistenceKey, t), i = new
|
|
12063
|
+
const s = Ro(this.persistenceKey, t), i = new bo(t, e, n);
|
|
12064
12064
|
this.setItem(s, i.Ji());
|
|
12065
12065
|
}
|
|
12066
12066
|
Tr() {
|
|
@@ -12078,12 +12078,12 @@ class So {
|
|
|
12078
12078
|
* be parsed.
|
|
12079
12079
|
*/ Pr(t, e) {
|
|
12080
12080
|
const n = this.Ar(t);
|
|
12081
|
-
return
|
|
12081
|
+
return Vo.Hi(n, e);
|
|
12082
12082
|
}
|
|
12083
12083
|
/**
|
|
12084
12084
|
* Parses a mutation batch state in WebStorage. Returns 'null' if the value
|
|
12085
12085
|
* could not be parsed.
|
|
12086
|
-
*/
|
|
12086
|
+
*/ br(t, e) {
|
|
12087
12087
|
const n = this.ur.exec(t), s = Number(n[1]), i = void 0 !== n[2] ? n[2] : null;
|
|
12088
12088
|
return Po.Hi(new C(i), s, e);
|
|
12089
12089
|
}
|
|
@@ -12092,7 +12092,7 @@ class So {
|
|
|
12092
12092
|
* could not be parsed.
|
|
12093
12093
|
*/ vr(t, e) {
|
|
12094
12094
|
const n = this.ar.exec(t), s = Number(n[1]);
|
|
12095
|
-
return
|
|
12095
|
+
return bo.Hi(s, e);
|
|
12096
12096
|
}
|
|
12097
12097
|
/**
|
|
12098
12098
|
* Parses an online state from WebStorage. Returns 'null' if the value
|
|
@@ -12100,7 +12100,7 @@ class So {
|
|
|
12100
12100
|
*/ _r(t) {
|
|
12101
12101
|
return vo.Hi(t);
|
|
12102
12102
|
}
|
|
12103
|
-
async
|
|
12103
|
+
async Vr(t) {
|
|
12104
12104
|
if (t.user.uid === this.currentUser.uid) return this.syncEngine.Cr(t.batchId, t.state, t.error);
|
|
12105
12105
|
$("SharedClientState", `Ignoring mutation for non-active user ${t.user.uid}`);
|
|
12106
12106
|
}
|
|
@@ -12545,7 +12545,7 @@ class {
|
|
|
12545
12545
|
function(t) {
|
|
12546
12546
|
// lookup by string
|
|
12547
12547
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12548
|
-
const e =
|
|
12548
|
+
const e = bn[t];
|
|
12549
12549
|
if (void 0 !== e) return Sn(e);
|
|
12550
12550
|
}(t), n = i.message;
|
|
12551
12551
|
void 0 === e && (e = G.INTERNAL, n = "Unknown error status: " + t + " with message " + i.message),
|
|
@@ -12773,7 +12773,7 @@ class Uo {
|
|
|
12773
12773
|
* getCloseGuardedDispatcher() to invalidate callbacks that happen after
|
|
12774
12774
|
* close.
|
|
12775
12775
|
*/
|
|
12776
|
-
this.Ro = 0, this.Po = null, this.
|
|
12776
|
+
this.Ro = 0, this.Po = null, this.bo = null, this.stream = null, this.Vo = new Lo(t, e);
|
|
12777
12777
|
}
|
|
12778
12778
|
/**
|
|
12779
12779
|
* Returns true if start() has been called and no error has occurred. True
|
|
@@ -12815,7 +12815,7 @@ class Uo {
|
|
|
12815
12815
|
* Each error will call the onClose() listener. That function can decide to
|
|
12816
12816
|
* inhibit backoff if required.
|
|
12817
12817
|
*/ Co() {
|
|
12818
|
-
this.state = 0 /* Initial */ , this.
|
|
12818
|
+
this.state = 0 /* Initial */ , this.Vo.reset();
|
|
12819
12819
|
}
|
|
12820
12820
|
/**
|
|
12821
12821
|
* Marks this stream as idle. If no further actions are performed on the
|
|
@@ -12844,7 +12844,7 @@ class Uo {
|
|
|
12844
12844
|
this.Po && (this.Po.cancel(), this.Po = null);
|
|
12845
12845
|
}
|
|
12846
12846
|
/** Cancels the health check delayed operation. */ $o() {
|
|
12847
|
-
this.
|
|
12847
|
+
this.bo && (this.bo.cancel(), this.bo = null);
|
|
12848
12848
|
}
|
|
12849
12849
|
/**
|
|
12850
12850
|
* Closes the stream and cleans up as necessary:
|
|
@@ -12860,15 +12860,15 @@ class Uo {
|
|
|
12860
12860
|
* @param error - the error the connection was closed with.
|
|
12861
12861
|
*/ async close(t, e) {
|
|
12862
12862
|
// Cancel any outstanding timers (they're guaranteed not to execute).
|
|
12863
|
-
this.Oo(), this.$o(), this.
|
|
12863
|
+
this.Oo(), this.$o(), this.Vo.cancel(),
|
|
12864
12864
|
// Invalidates any stream-related callbacks (e.g. from auth or the
|
|
12865
12865
|
// underlying stream), guaranteeing they won't execute.
|
|
12866
12866
|
this.Ro++, 4 /* Error */ !== t ?
|
|
12867
12867
|
// If this is an intentional close ensure we don't delay our next connection attempt.
|
|
12868
|
-
this.
|
|
12868
|
+
this.Vo.reset() : e && e.code === G.RESOURCE_EXHAUSTED ? (
|
|
12869
12869
|
// Log the error. (Probably either 'quota exceeded' or 'max queue length reached'.)
|
|
12870
12870
|
M(e.toString()), M("Using maximum backoff delay to prevent overloading the backend."),
|
|
12871
|
-
this.
|
|
12871
|
+
this.Vo.mo()) : e && e.code === G.UNAUTHENTICATED && 3 /* Healthy */ !== this.state && (
|
|
12872
12872
|
// "unauthenticated" error means the token was rejected. This should rarely
|
|
12873
12873
|
// happen since both Auth and AppCheck ensure a sufficient TTL when we
|
|
12874
12874
|
// request a token. If a user manually resets their system clock this can
|
|
@@ -12912,7 +12912,7 @@ class Uo {
|
|
|
12912
12912
|
Bo(t, e) {
|
|
12913
12913
|
const n = this.Fo(this.Ro);
|
|
12914
12914
|
this.stream = this.Uo(t, e), this.stream.Qr((() => {
|
|
12915
|
-
n((() => (this.state = 2 /* Open */ , this.
|
|
12915
|
+
n((() => (this.state = 2 /* Open */ , this.bo = this.Hn.enqueueAfterDelay(this.To, 1e4, (() => (this.So() && (this.state = 3 /* Healthy */),
|
|
12916
12916
|
Promise.resolve()))), this.listener.Qr())));
|
|
12917
12917
|
})), this.stream.zr((t => {
|
|
12918
12918
|
n((() => this.Lo(t)));
|
|
@@ -12921,7 +12921,7 @@ class Uo {
|
|
|
12921
12921
|
}));
|
|
12922
12922
|
}
|
|
12923
12923
|
Do() {
|
|
12924
|
-
this.state = 5 /* Backoff */ , this.
|
|
12924
|
+
this.state = 5 /* Backoff */ , this.Vo.yo((async () => {
|
|
12925
12925
|
this.state = 0 /* Initial */ , this.start();
|
|
12926
12926
|
}));
|
|
12927
12927
|
}
|
|
@@ -12962,7 +12962,7 @@ class Uo {
|
|
|
12962
12962
|
}
|
|
12963
12963
|
onMessage(t) {
|
|
12964
12964
|
// A successful response means the stream is healthy
|
|
12965
|
-
this.
|
|
12965
|
+
this.Vo.reset();
|
|
12966
12966
|
const e = ys(this.O, t), n = function(t) {
|
|
12967
12967
|
// We have only reached a consistent snapshot for the entire stream if there
|
|
12968
12968
|
// is a read_time set and it applies to all targets (i.e. the list of
|
|
@@ -13049,7 +13049,7 @@ class Uo {
|
|
|
13049
13049
|
// A successful first write response means the stream is healthy,
|
|
13050
13050
|
// Note, that we could consider a successful handshake healthy, however,
|
|
13051
13051
|
// the write itself might be causing an error we want to back off from.
|
|
13052
|
-
this.
|
|
13052
|
+
this.Vo.reset();
|
|
13053
13053
|
const e = Es(t.writeResults, t.commitTime), n = os(t.commitTime);
|
|
13054
13054
|
return this.listener.zo(n, e);
|
|
13055
13055
|
}
|
|
@@ -13946,13 +13946,13 @@ class Pc {
|
|
|
13946
13946
|
/**
|
|
13947
13947
|
* Holds the listeners and the last received ViewSnapshot for a query being
|
|
13948
13948
|
* tracked by EventManager.
|
|
13949
|
-
*/ class
|
|
13949
|
+
*/ class bc {
|
|
13950
13950
|
constructor() {
|
|
13951
13951
|
this.yc = void 0, this.listeners = [];
|
|
13952
13952
|
}
|
|
13953
13953
|
}
|
|
13954
13954
|
|
|
13955
|
-
class
|
|
13955
|
+
class Vc {
|
|
13956
13956
|
constructor() {
|
|
13957
13957
|
this.queries = new er((t => Le(t)), Be), this.onlineState = "Unknown" /* Unknown */ ,
|
|
13958
13958
|
this.Ic = new Set;
|
|
@@ -13962,7 +13962,7 @@ class bc {
|
|
|
13962
13962
|
async function vc(t, e) {
|
|
13963
13963
|
const n = K(t), s = e.query;
|
|
13964
13964
|
let i = !1, r = n.queries.get(s);
|
|
13965
|
-
if (r || (i = !0, r = new
|
|
13965
|
+
if (r || (i = !0, r = new bc), i) try {
|
|
13966
13966
|
r.yc = await n.onListen(s);
|
|
13967
13967
|
} catch (t) {
|
|
13968
13968
|
const n = Tc(t, `Initialization of query '${Ue(e.query)}' failed`);
|
|
@@ -14042,7 +14042,7 @@ function xc(t) {
|
|
|
14042
14042
|
/* excludesMetadataChanges= */ !0);
|
|
14043
14043
|
}
|
|
14044
14044
|
let e = !1;
|
|
14045
|
-
return this.Rc ? this.
|
|
14045
|
+
return this.Rc ? this.bc(t) && (this.Ac.next(t), e = !0) : this.Vc(t, this.onlineState) && (this.vc(t),
|
|
14046
14046
|
e = !0), this.Pc = t, e;
|
|
14047
14047
|
}
|
|
14048
14048
|
onError(t) {
|
|
@@ -14051,10 +14051,10 @@ function xc(t) {
|
|
|
14051
14051
|
/** Returns whether a snapshot was raised. */ Ec(t) {
|
|
14052
14052
|
this.onlineState = t;
|
|
14053
14053
|
let e = !1;
|
|
14054
|
-
return this.Pc && !this.Rc && this.
|
|
14054
|
+
return this.Pc && !this.Rc && this.Vc(this.Pc, t) && (this.vc(this.Pc), e = !0),
|
|
14055
14055
|
e;
|
|
14056
14056
|
}
|
|
14057
|
-
|
|
14057
|
+
Vc(t, e) {
|
|
14058
14058
|
// Always raise the first event when we're synced
|
|
14059
14059
|
if (!t.fromCache) return !0;
|
|
14060
14060
|
// NOTE: We consider OnlineState.Unknown as online (it should become Offline
|
|
@@ -14065,7 +14065,7 @@ function xc(t) {
|
|
|
14065
14065
|
return (!this.options.Sc || !n) && (!t.docs.isEmpty() || "Offline" /* Offline */ === e);
|
|
14066
14066
|
// Raise data from cache if we have any documents or we are offline
|
|
14067
14067
|
}
|
|
14068
|
-
|
|
14068
|
+
bc(t) {
|
|
14069
14069
|
// We don't need to handle includeDocumentMetadataChanges here because
|
|
14070
14070
|
// the Metadata only changes have already been stripped out if needed.
|
|
14071
14071
|
// At this point the only changes we will see are the ones we should
|
|
@@ -15336,7 +15336,7 @@ class Tu {
|
|
|
15336
15336
|
}
|
|
15337
15337
|
fu(t) {
|
|
15338
15338
|
const e = this.persistence.referenceDelegate.garbageCollector;
|
|
15339
|
-
return new
|
|
15339
|
+
return new Vr(e, t.asyncQueue);
|
|
15340
15340
|
}
|
|
15341
15341
|
lu(t) {
|
|
15342
15342
|
const e = Kr(t.databaseInfo.databaseId, t.databaseInfo.persistenceKey), n = void 0 !== this.cacheSizeBytes ? lr.withCacheSize(this.cacheSizeBytes) : lr.DEFAULT;
|
|
@@ -15395,7 +15395,7 @@ class Tu {
|
|
|
15395
15395
|
await yc(this.remoteStore, this.syncEngine.isPrimaryClient));
|
|
15396
15396
|
}
|
|
15397
15397
|
createEventManager(t) {
|
|
15398
|
-
return new
|
|
15398
|
+
return new Vc;
|
|
15399
15399
|
}
|
|
15400
15400
|
createDatastore(t) {
|
|
15401
15401
|
const e = Bo(t.databaseInfo.databaseId), n = (s = t.databaseInfo, new $o(s));
|
|
@@ -15456,7 +15456,7 @@ class Tu {
|
|
|
15456
15456
|
* @param bytesPerRead - How many bytes each `read()` from the returned reader
|
|
15457
15457
|
* will read.
|
|
15458
15458
|
*/
|
|
15459
|
-
function
|
|
15459
|
+
function bu(t, e = 10240) {
|
|
15460
15460
|
let n = 0;
|
|
15461
15461
|
// The TypeScript definition for ReadableStreamReader changed. We use
|
|
15462
15462
|
// `any` here to allow this code to compile with different versions.
|
|
@@ -15522,7 +15522,7 @@ function Vu(t, e = 10240) {
|
|
|
15522
15522
|
* asynchronously. To allow immediate silencing, a mute call is added which
|
|
15523
15523
|
* causes events scheduled to no longer be raised.
|
|
15524
15524
|
*/
|
|
15525
|
-
class
|
|
15525
|
+
class Vu {
|
|
15526
15526
|
constructor(t) {
|
|
15527
15527
|
this.observer = t,
|
|
15528
15528
|
/**
|
|
@@ -15829,14 +15829,14 @@ class Su {
|
|
|
15829
15829
|
class Du {
|
|
15830
15830
|
constructor(t, e, n, s) {
|
|
15831
15831
|
this.asyncQueue = t, this.datastore = e, this.updateFunction = n, this.deferred = s,
|
|
15832
|
-
this.Pu = 5, this.
|
|
15832
|
+
this.Pu = 5, this.Vo = new Lo(this.asyncQueue, "transaction_retry" /* TransactionRetry */);
|
|
15833
15833
|
}
|
|
15834
15834
|
/** Runs the transaction and sets the result on deferred. */ run() {
|
|
15835
|
-
this.Pu -= 1, this.
|
|
15835
|
+
this.Pu -= 1, this.bu();
|
|
15836
15836
|
}
|
|
15837
|
-
|
|
15838
|
-
this.
|
|
15839
|
-
const t = new Su(this.datastore), e = this.
|
|
15837
|
+
bu() {
|
|
15838
|
+
this.Vo.yo((async () => {
|
|
15839
|
+
const t = new Su(this.datastore), e = this.Vu(t);
|
|
15840
15840
|
e && e.then((e => {
|
|
15841
15841
|
this.asyncQueue.enqueueAndForget((() => t.commit().then((() => {
|
|
15842
15842
|
this.deferred.resolve(e);
|
|
@@ -15848,7 +15848,7 @@ class Du {
|
|
|
15848
15848
|
}));
|
|
15849
15849
|
}));
|
|
15850
15850
|
}
|
|
15851
|
-
|
|
15851
|
+
Vu(t) {
|
|
15852
15852
|
try {
|
|
15853
15853
|
const e = this.updateFunction(t);
|
|
15854
15854
|
return !St(e) && e.catch && e.then ? e : (this.deferred.reject(Error("Transaction callback must return a Promise")),
|
|
@@ -15859,7 +15859,7 @@ class Du {
|
|
|
15859
15859
|
}
|
|
15860
15860
|
}
|
|
15861
15861
|
vu(t) {
|
|
15862
|
-
this.Pu > 0 && this.Su(t) ? (this.Pu -= 1, this.asyncQueue.enqueueAndForget((() => (this.
|
|
15862
|
+
this.Pu > 0 && this.Su(t) ? (this.Pu -= 1, this.asyncQueue.enqueueAndForget((() => (this.bu(),
|
|
15863
15863
|
Promise.resolve())))) : this.deferred.reject(t);
|
|
15864
15864
|
}
|
|
15865
15865
|
Su(t) {
|
|
@@ -16060,7 +16060,7 @@ async function Lu(t) {
|
|
|
16060
16060
|
function Gu(t, e, n = {}) {
|
|
16061
16061
|
const s = new Q;
|
|
16062
16062
|
return t.asyncQueue.enqueueAndForget((async () => function(t, e, n, s, i) {
|
|
16063
|
-
const r = new
|
|
16063
|
+
const r = new Vu({
|
|
16064
16064
|
next: r => {
|
|
16065
16065
|
// Remove query first before passing event to user to avoid
|
|
16066
16066
|
// user actions affecting the now stale query.
|
|
@@ -16107,7 +16107,7 @@ function ju(t, e) {
|
|
|
16107
16107
|
function Qu(t, e, n = {}) {
|
|
16108
16108
|
const s = new Q;
|
|
16109
16109
|
return t.asyncQueue.enqueueAndForget((async () => function(t, e, n, s, i) {
|
|
16110
|
-
const r = new
|
|
16110
|
+
const r = new Vu({
|
|
16111
16111
|
next: n => {
|
|
16112
16112
|
// Remove query first before passing event to user to avoid
|
|
16113
16113
|
// user actions affecting the now stale query.
|
|
@@ -16123,7 +16123,7 @@ function Qu(t, e, n = {}) {
|
|
|
16123
16123
|
}
|
|
16124
16124
|
|
|
16125
16125
|
function Wu(t, e) {
|
|
16126
|
-
const n = new
|
|
16126
|
+
const n = new Vu(e);
|
|
16127
16127
|
return t.asyncQueue.enqueueAndForget((async () => function(t, e) {
|
|
16128
16128
|
K(t).Ic.add(e),
|
|
16129
16129
|
// Immediately fire an initial event, indicating all existing listeners
|
|
@@ -16167,8 +16167,8 @@ function Hu(t, e, n, s) {
|
|
|
16167
16167
|
return function(t, e) {
|
|
16168
16168
|
return new vu(t, e);
|
|
16169
16169
|
}(function(t, e) {
|
|
16170
|
-
if (t instanceof Uint8Array) return
|
|
16171
|
-
if (t instanceof ArrayBuffer) return
|
|
16170
|
+
if (t instanceof Uint8Array) return bu(t, e);
|
|
16171
|
+
if (t instanceof ArrayBuffer) return bu(new Uint8Array(t), e);
|
|
16172
16172
|
if (t instanceof ReadableStream) return t.getReader();
|
|
16173
16173
|
throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream");
|
|
16174
16174
|
}(n), e);
|
|
@@ -16700,13 +16700,13 @@ function da(t, e, ...n) {
|
|
|
16700
16700
|
// List of TimerIds to fast-forward delays for.
|
|
16701
16701
|
this.Mu = [],
|
|
16702
16702
|
// Backoff timer used to schedule retries for retryable operations
|
|
16703
|
-
this.
|
|
16703
|
+
this.Vo = new Lo(this, "async_queue_retry" /* AsyncQueueRetry */),
|
|
16704
16704
|
// Visibility handler that triggers an immediate retry of all retryable
|
|
16705
16705
|
// operations. Meant to speed up recovery when we regain file system access
|
|
16706
16706
|
// after page comes into foreground.
|
|
16707
16707
|
this.Fu = () => {
|
|
16708
16708
|
const t = Fo();
|
|
16709
|
-
t && $("AsyncQueue", "Visibility state changed to " + t.visibilityState), this.
|
|
16709
|
+
t && $("AsyncQueue", "Visibility state changed to " + t.visibilityState), this.Vo.Io();
|
|
16710
16710
|
};
|
|
16711
16711
|
const t = Fo();
|
|
16712
16712
|
t && "function" == typeof t.addEventListener && t.addEventListener("visibilitychange", this.Fu);
|
|
@@ -16753,7 +16753,7 @@ function da(t, e, ...n) {
|
|
|
16753
16753
|
*/ async Uu() {
|
|
16754
16754
|
if (0 !== this.Cu.length) {
|
|
16755
16755
|
try {
|
|
16756
|
-
await this.Cu[0](), this.Cu.shift(), this.
|
|
16756
|
+
await this.Cu[0](), this.Cu.shift(), this.Vo.reset();
|
|
16757
16757
|
} catch (t) {
|
|
16758
16758
|
if (!wi(t)) throw t;
|
|
16759
16759
|
// Failure will be handled by AsyncQueue
|
|
@@ -16770,7 +16770,7 @@ function da(t, e, ...n) {
|
|
|
16770
16770
|
// Since `backoffAndRun()` cancels an existing backoff and schedules a
|
|
16771
16771
|
// new backoff on every call, there is only ever a single additional
|
|
16772
16772
|
// operation in the queue.
|
|
16773
|
-
this.
|
|
16773
|
+
this.Vo.yo((() => this.Uu()));
|
|
16774
16774
|
}
|
|
16775
16775
|
}
|
|
16776
16776
|
Lu(t) {
|
|
@@ -17055,7 +17055,7 @@ class Ia extends oa {
|
|
|
17055
17055
|
function Ra(t) {
|
|
17056
17056
|
var e;
|
|
17057
17057
|
const n = t._freezeSettings(), s = function(t, e, n, s) {
|
|
17058
|
-
return new
|
|
17058
|
+
return new Vt(t, e, n, s.host, s.ssl, s.experimentalForceLongPolling, s.experimentalAutoDetectLongPolling, s.useFetchStreams);
|
|
17059
17059
|
}(t._databaseId, (null === (e = t._app) || void 0 === e ? void 0 : e.options.appId) || "", t._persistenceKey, n);
|
|
17060
17060
|
t._firestoreClient = new Cu(t._authCredentials, t._appCheckCredentials, t._queue, s);
|
|
17061
17061
|
}
|
|
@@ -17085,7 +17085,7 @@ function Ra(t) {
|
|
|
17085
17085
|
*/ function Pa(t, e) {
|
|
17086
17086
|
Oa(t = sa(t, Ia));
|
|
17087
17087
|
const n = Aa(t), s = t._freezeSettings(), i = new Pu;
|
|
17088
|
-
return
|
|
17088
|
+
return Va(n, i, new Au(i, s.cacheSizeBytes, null == e ? void 0 : e.forceOwnership));
|
|
17089
17089
|
}
|
|
17090
17090
|
|
|
17091
17091
|
/**
|
|
@@ -17109,10 +17109,10 @@ function Ra(t) {
|
|
|
17109
17109
|
* @param firestore - The {@link Firestore} instance to enable persistence for.
|
|
17110
17110
|
* @returns A `Promise` that represents successfully enabling persistent
|
|
17111
17111
|
* storage.
|
|
17112
|
-
*/ function
|
|
17112
|
+
*/ function ba(t) {
|
|
17113
17113
|
Oa(t = sa(t, Ia));
|
|
17114
17114
|
const e = Aa(t), n = t._freezeSettings(), s = new Pu;
|
|
17115
|
-
return
|
|
17115
|
+
return Va(e, s, new Ru(s, n.cacheSizeBytes));
|
|
17116
17116
|
}
|
|
17117
17117
|
|
|
17118
17118
|
/**
|
|
@@ -17120,7 +17120,7 @@ function Ra(t) {
|
|
|
17120
17120
|
* If the operation fails with a recoverable error (see
|
|
17121
17121
|
* `canRecoverFromIndexedDbError()` below), the returned Promise is rejected
|
|
17122
17122
|
* but the client remains usable.
|
|
17123
|
-
*/ function
|
|
17123
|
+
*/ function Va(t, e, n) {
|
|
17124
17124
|
const s = new Q;
|
|
17125
17125
|
return t.asyncQueue.enqueue((async () => {
|
|
17126
17126
|
try {
|
|
@@ -18529,12 +18529,12 @@ class Ph extends Ah {
|
|
|
18529
18529
|
* "<=", "!=").
|
|
18530
18530
|
* @param value - The value for comparison
|
|
18531
18531
|
* @returns The created {@link Query}.
|
|
18532
|
-
*/ function
|
|
18532
|
+
*/ function bh(t, e, n) {
|
|
18533
18533
|
const s = e, i = wh("where", t);
|
|
18534
18534
|
return new Ph(i, s, n);
|
|
18535
18535
|
}
|
|
18536
18536
|
|
|
18537
|
-
class
|
|
18537
|
+
class Vh extends Ah {
|
|
18538
18538
|
constructor(t, e) {
|
|
18539
18539
|
super(), this.ca = t, this.ha = e, this.type = "orderBy";
|
|
18540
18540
|
}
|
|
@@ -18580,7 +18580,7 @@ class bh extends Ah {
|
|
|
18580
18580
|
* @returns The created {@link Query}.
|
|
18581
18581
|
*/ function vh(t, e = "asc") {
|
|
18582
18582
|
const n = e, s = wh("orderBy", t);
|
|
18583
|
-
return new
|
|
18583
|
+
return new Vh(s, n);
|
|
18584
18584
|
}
|
|
18585
18585
|
|
|
18586
18586
|
class Sh extends Ah {
|
|
@@ -18816,7 +18816,7 @@ function Uh(t, e, n) {
|
|
|
18816
18816
|
return null == n ? null : this.convertValue(n, e);
|
|
18817
18817
|
|
|
18818
18818
|
case "estimate":
|
|
18819
|
-
return this.convertTimestamp(
|
|
18819
|
+
return this.convertTimestamp(bt(t));
|
|
18820
18820
|
|
|
18821
18821
|
default:
|
|
18822
18822
|
return null;
|
|
@@ -19174,7 +19174,7 @@ function il(t, ...e) {
|
|
|
19174
19174
|
}, Th(t._query);
|
|
19175
19175
|
}
|
|
19176
19176
|
return function(t, e, n, s) {
|
|
19177
|
-
const i = new
|
|
19177
|
+
const i = new Vu(s), r = new Nc(e, i, n);
|
|
19178
19178
|
return t.asyncQueue.enqueueAndForget((async () => vc(await Lu(t), r))), () => {
|
|
19179
19179
|
i.mu(), t.asyncQueue.enqueueAndForget((async () => Sc(await Lu(t), r)));
|
|
19180
19180
|
};
|
|
@@ -19478,10 +19478,10 @@ function gl(t, e) {
|
|
|
19478
19478
|
return n = Object.assign({
|
|
19479
19479
|
useFetchStreams: e
|
|
19480
19480
|
}, n), i._setSettings(n), i;
|
|
19481
|
-
}), "PUBLIC")), registerVersion(D, "3.4.5-canary.
|
|
19481
|
+
}), "PUBLIC")), registerVersion(D, "3.4.5-canary.8ac8fb099", t),
|
|
19482
19482
|
// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation
|
|
19483
|
-
registerVersion(D, "3.4.5-canary.
|
|
19483
|
+
registerVersion(D, "3.4.5-canary.8ac8fb099", "esm2017");
|
|
19484
19484
|
}();
|
|
19485
19485
|
|
|
19486
|
-
export { qh as AbstractUserDataWriter, Fa as Bytes, pa as CACHE_SIZE_UNLIMITED, ha as CollectionReference, ua as DocumentReference, gh as DocumentSnapshot, $a as FieldPath, Ba as FieldValue, Ia as Firestore, j as FirestoreError, La as GeoPoint, ya as LoadBundleTask, aa as Query, Ah as QueryConstraint, yh as QueryDocumentSnapshot, ph as QuerySnapshot, mh as SnapshotMetadata, ut as Timestamp, ul as Transaction, jh as WriteBatch, vt as _DatabaseId, xt as _DocumentKey, et as _EmptyAppCheckTokenProvider, z as _EmptyAuthCredentialsProvider, mt as _FieldPath, sa as _cast, q as _debugAssert, yt as _isBase64Available, F as _logWarn, ml as _setIndexConfiguration, Zu as _validateIsNotUsedTogether, sl as addDoc, dl as arrayRemove, fl as arrayUnion, va as clearIndexedDbPersistence, la as collection, fa as collectionGroup, ca as connectFirestoreEmulator, nl as deleteDoc, hl as deleteField, Ca as disableNetwork, da as doc, Ma as documentId, Pa as enableIndexedDbPersistence,
|
|
19486
|
+
export { qh as AbstractUserDataWriter, Fa as Bytes, pa as CACHE_SIZE_UNLIMITED, ha as CollectionReference, ua as DocumentReference, gh as DocumentSnapshot, $a as FieldPath, Ba as FieldValue, Ia as Firestore, j as FirestoreError, La as GeoPoint, ya as LoadBundleTask, aa as Query, Ah as QueryConstraint, yh as QueryDocumentSnapshot, ph as QuerySnapshot, mh as SnapshotMetadata, ut as Timestamp, ul as Transaction, jh as WriteBatch, vt as _DatabaseId, xt as _DocumentKey, et as _EmptyAppCheckTokenProvider, z as _EmptyAuthCredentialsProvider, mt as _FieldPath, sa as _cast, q as _debugAssert, yt as _isBase64Available, F as _logWarn, ml as _setIndexConfiguration, Zu as _validateIsNotUsedTogether, sl as addDoc, dl as arrayRemove, fl as arrayUnion, va as clearIndexedDbPersistence, la as collection, fa as collectionGroup, ca as connectFirestoreEmulator, nl as deleteDoc, hl as deleteField, Ca as disableNetwork, da as doc, Ma as documentId, Pa as enableIndexedDbPersistence, ba as enableMultiTabIndexedDbPersistence, Da as enableNetwork, Mh as endAt, $h as endBefore, Aa as ensureFirestoreConfigured, ol as executeWrite, Wh as getDoc, Hh as getDocFromCache, Jh as getDocFromServer, Yh as getDocs, Xh as getDocsFromCache, Zh as getDocsFromServer, Ta as getFirestore, _l as increment, Ea as initializeFirestore, Dh as limit, Ch as limitToLast, Na as loadBundle, ka as namedQuery, il as onSnapshot, rl as onSnapshotsInSync, vh as orderBy, Rh as query, wa as queryEqual, _a as refEqual, al as runTransaction, ll as serverTimestamp, tl as setDoc, O as setLogLevel, Eh as snapshotEqual, kh as startAfter, Nh as startAt, xa as terminate, el as updateDoc, Sa as waitForPendingWrites, bh as where, wl as writeBatch };
|
|
19487
19487
|
//# sourceMappingURL=index.esm2017.js.map
|