@firebase/firestore 4.3.1-canary.f27baf423 → 4.3.1
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/firestore/test/integration/util/composite_index_test_helper.d.ts +1 -2
- package/dist/index.cjs.js +292 -293
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm2017.js +293 -294
- package/dist/index.esm2017.js.map +1 -1
- package/dist/index.esm5.js +3053 -3054
- package/dist/index.esm5.js.map +1 -1
- package/dist/index.node.cjs.js +2 -2
- package/dist/index.node.mjs +2 -2
- package/dist/index.rn.js +298 -299
- package/dist/index.rn.js.map +1 -1
- package/dist/lite/firestore/test/integration/util/composite_index_test_helper.d.ts +1 -2
- package/dist/lite/index.browser.esm2017.js +2 -2
- package/dist/lite/index.browser.esm2017.js.map +1 -1
- package/dist/lite/index.browser.esm5.js +2 -2
- package/dist/lite/index.browser.esm5.js.map +1 -1
- package/dist/lite/index.cjs.js +2 -2
- package/dist/lite/index.cjs.js.map +1 -1
- package/dist/lite/index.node.cjs.js +2 -2
- package/dist/lite/index.node.mjs +2 -2
- package/dist/lite/index.rn.esm2017.js +2 -2
- package/dist/lite/index.rn.esm2017.js.map +1 -1
- package/dist/lite/packages/firestore/test/integration/util/composite_index_test_helper.d.ts +1 -2
- package/dist/packages/firestore/dist/index.esm2017.d.ts +2 -2
- package/dist/packages/firestore/test/integration/util/composite_index_test_helper.d.ts +1 -2
- package/package.json +9 -9
package/dist/index.esm2017.js
CHANGED
|
@@ -2,9 +2,9 @@ import { _registerComponent, registerVersion, _getProvider, getApp, _removeServi
|
|
|
2
2
|
import { Component } from '@firebase/component';
|
|
3
3
|
import { Logger, LogLevel } from '@firebase/logger';
|
|
4
4
|
import { FirebaseError, createMockUserToken, getModularInstance, deepEqual, getDefaultEmulatorHostnameAndPort, getUA, isIndexedDBAvailable, isSafari } from '@firebase/util';
|
|
5
|
-
import { Integer, XhrIo, EventType, ErrorCode, createWebChannelTransport, getStatEventTarget,
|
|
5
|
+
import { Integer, XhrIo, EventType, ErrorCode, createWebChannelTransport, getStatEventTarget, WebChannel, Event, Stat, Md5 } from '@firebase/webchannel-wrapper';
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const w = "@firebase/firestore";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* @license
|
|
@@ -66,7 +66,7 @@ User.MOCK_USER = new User("mock-user");
|
|
|
66
66
|
* See the License for the specific language governing permissions and
|
|
67
67
|
* limitations under the License.
|
|
68
68
|
*/
|
|
69
|
-
let
|
|
69
|
+
let S = "10.5.1";
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
72
|
* @license
|
|
@@ -84,11 +84,11 @@ let b = "10.5.1-canary.f27baf423";
|
|
|
84
84
|
* See the License for the specific language governing permissions and
|
|
85
85
|
* limitations under the License.
|
|
86
86
|
*/
|
|
87
|
-
const
|
|
87
|
+
const b = new Logger("@firebase/firestore");
|
|
88
88
|
|
|
89
89
|
// Helper methods are needed because variables can't be exported as read/write
|
|
90
90
|
function __PRIVATE_getLogLevel() {
|
|
91
|
-
return
|
|
91
|
+
return b.logLevel;
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
/**
|
|
@@ -104,29 +104,29 @@ function __PRIVATE_getLogLevel() {
|
|
|
104
104
|
* <li><code>`silent` to turn off logging.</li>
|
|
105
105
|
* </ul>
|
|
106
106
|
*/ function setLogLevel(e) {
|
|
107
|
-
|
|
107
|
+
b.setLogLevel(e);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
function __PRIVATE_logDebug(e, ...t) {
|
|
111
|
-
if (
|
|
111
|
+
if (b.logLevel <= LogLevel.DEBUG) {
|
|
112
112
|
const n = t.map(__PRIVATE_argToString);
|
|
113
|
-
|
|
113
|
+
b.debug(`Firestore (${S}): ${e}`, ...n);
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
function __PRIVATE_logError(e, ...t) {
|
|
118
|
-
if (
|
|
118
|
+
if (b.logLevel <= LogLevel.ERROR) {
|
|
119
119
|
const n = t.map(__PRIVATE_argToString);
|
|
120
|
-
|
|
120
|
+
b.error(`Firestore (${S}): ${e}`, ...n);
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
/**
|
|
125
125
|
* @internal
|
|
126
126
|
*/ function __PRIVATE_logWarn(e, ...t) {
|
|
127
|
-
if (
|
|
127
|
+
if (b.logLevel <= LogLevel.WARN) {
|
|
128
128
|
const n = t.map(__PRIVATE_argToString);
|
|
129
|
-
|
|
129
|
+
b.warn(`Firestore (${S}): ${e}`, ...n);
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
|
|
@@ -187,7 +187,7 @@ function __PRIVATE_logError(e, ...t) {
|
|
|
187
187
|
*/ function fail(e = "Unexpected state") {
|
|
188
188
|
// Log the failure in addition to throw an exception, just in case the
|
|
189
189
|
// exception is swallowed.
|
|
190
|
-
const t = `FIRESTORE (${
|
|
190
|
+
const t = `FIRESTORE (${S}) INTERNAL ASSERTION FAILED: ` + e;
|
|
191
191
|
// NOTE: We don't use FirestoreError here because these are internal failures
|
|
192
192
|
// that cannot be handled by the user. (Also it would create a circular
|
|
193
193
|
// dependency between the error and assert modules which doesn't work.)
|
|
@@ -240,7 +240,7 @@ t) {
|
|
|
240
240
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
241
241
|
* See the License for the specific language governing permissions and
|
|
242
242
|
* limitations under the License.
|
|
243
|
-
*/ const
|
|
243
|
+
*/ const D = {
|
|
244
244
|
// Causes are copied from:
|
|
245
245
|
// https://github.com/grpc/grpc/blob/bceec94ea4fc5f0085d81235d8e1c06798dc341a/include/grpc%2B%2B/impl/codegen/status_code_enum.h
|
|
246
246
|
/** Not an error; returned on success. */
|
|
@@ -785,11 +785,11 @@ class Timestamp {
|
|
|
785
785
|
* The fractions of a second at nanosecond resolution.*
|
|
786
786
|
*/
|
|
787
787
|
t) {
|
|
788
|
-
if (this.seconds = e, this.nanoseconds = t, t < 0) throw new FirestoreError(
|
|
789
|
-
if (t >= 1e9) throw new FirestoreError(
|
|
790
|
-
if (e < -62135596800) throw new FirestoreError(
|
|
788
|
+
if (this.seconds = e, this.nanoseconds = t, t < 0) throw new FirestoreError(D.INVALID_ARGUMENT, "Timestamp nanoseconds out of range: " + t);
|
|
789
|
+
if (t >= 1e9) throw new FirestoreError(D.INVALID_ARGUMENT, "Timestamp nanoseconds out of range: " + t);
|
|
790
|
+
if (e < -62135596800) throw new FirestoreError(D.INVALID_ARGUMENT, "Timestamp seconds out of range: " + e);
|
|
791
791
|
// This will break in the year 10,000.
|
|
792
|
-
if (e >= 253402300800) throw new FirestoreError(
|
|
792
|
+
if (e >= 253402300800) throw new FirestoreError(D.INVALID_ARGUMENT, "Timestamp seconds out of range: " + e);
|
|
793
793
|
}
|
|
794
794
|
/**
|
|
795
795
|
* Creates a new timestamp with the current date, with millisecond precision.
|
|
@@ -1037,7 +1037,7 @@ class BasePath {
|
|
|
1037
1037
|
// for legacy reasons and should not be used frequently).
|
|
1038
1038
|
const t = [];
|
|
1039
1039
|
for (const n of e) {
|
|
1040
|
-
if (n.indexOf("//") >= 0) throw new FirestoreError(
|
|
1040
|
+
if (n.indexOf("//") >= 0) throw new FirestoreError(D.INVALID_ARGUMENT, `Invalid segment (${n}). Paths must not contain // in them.`);
|
|
1041
1041
|
// Strip leading and traling slashed.
|
|
1042
1042
|
t.push(...n.split("/").filter((e => e.length > 0)));
|
|
1043
1043
|
}
|
|
@@ -1048,7 +1048,7 @@ class BasePath {
|
|
|
1048
1048
|
}
|
|
1049
1049
|
}
|
|
1050
1050
|
|
|
1051
|
-
const
|
|
1051
|
+
const C = /^[_a-zA-Z][_a-zA-Z0-9]*$/;
|
|
1052
1052
|
|
|
1053
1053
|
/**
|
|
1054
1054
|
* A dot-separated path for navigating sub-objects within a document.
|
|
@@ -1061,7 +1061,7 @@ const v = /^[_a-zA-Z][_a-zA-Z0-9]*$/;
|
|
|
1061
1061
|
* Returns true if the string could be used as a segment in a field path
|
|
1062
1062
|
* without escaping.
|
|
1063
1063
|
*/ static isValidIdentifier(e) {
|
|
1064
|
-
return
|
|
1064
|
+
return C.test(e);
|
|
1065
1065
|
}
|
|
1066
1066
|
canonicalString() {
|
|
1067
1067
|
return this.toArray().map((e => (e = e.replace(/\\/g, "\\\\").replace(/`/g, "\\`"),
|
|
@@ -1093,21 +1093,21 @@ const v = /^[_a-zA-Z][_a-zA-Z0-9]*$/;
|
|
|
1093
1093
|
const t = [];
|
|
1094
1094
|
let n = "", r = 0;
|
|
1095
1095
|
const __PRIVATE_addCurrentSegment = () => {
|
|
1096
|
-
if (0 === n.length) throw new FirestoreError(
|
|
1096
|
+
if (0 === n.length) throw new FirestoreError(D.INVALID_ARGUMENT, `Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);
|
|
1097
1097
|
t.push(n), n = "";
|
|
1098
1098
|
};
|
|
1099
1099
|
let i = !1;
|
|
1100
1100
|
for (;r < e.length; ) {
|
|
1101
1101
|
const t = e[r];
|
|
1102
1102
|
if ("\\" === t) {
|
|
1103
|
-
if (r + 1 === e.length) throw new FirestoreError(
|
|
1103
|
+
if (r + 1 === e.length) throw new FirestoreError(D.INVALID_ARGUMENT, "Path has trailing escape character: " + e);
|
|
1104
1104
|
const t = e[r + 1];
|
|
1105
|
-
if ("\\" !== t && "." !== t && "`" !== t) throw new FirestoreError(
|
|
1105
|
+
if ("\\" !== t && "." !== t && "`" !== t) throw new FirestoreError(D.INVALID_ARGUMENT, "Path has invalid escape sequence: " + e);
|
|
1106
1106
|
n += t, r += 2;
|
|
1107
1107
|
} else "`" === t ? (i = !i, r++) : "." !== t || i ? (n += t, r++) : (__PRIVATE_addCurrentSegment(),
|
|
1108
1108
|
r++);
|
|
1109
1109
|
}
|
|
1110
|
-
if (__PRIVATE_addCurrentSegment(), i) throw new FirestoreError(
|
|
1110
|
+
if (__PRIVATE_addCurrentSegment(), i) throw new FirestoreError(D.INVALID_ARGUMENT, "Unterminated ` in path: " + e);
|
|
1111
1111
|
return new FieldPath$1(t);
|
|
1112
1112
|
}
|
|
1113
1113
|
static emptyPath() {
|
|
@@ -1359,7 +1359,7 @@ function __PRIVATE_indexOffsetComparator(e, t) {
|
|
|
1359
1359
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1360
1360
|
* See the License for the specific language governing permissions and
|
|
1361
1361
|
* limitations under the License.
|
|
1362
|
-
*/ const
|
|
1362
|
+
*/ const v = "The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";
|
|
1363
1363
|
|
|
1364
1364
|
/**
|
|
1365
1365
|
* A base class representing a persistence transaction, encapsulating both the
|
|
@@ -1406,7 +1406,7 @@ function __PRIVATE_indexOffsetComparator(e, t) {
|
|
|
1406
1406
|
* @param err - An error returned by a LocalStore operation.
|
|
1407
1407
|
* @returns A Promise that resolves after we recovered, or the original error.
|
|
1408
1408
|
*/ async function __PRIVATE_ignoreIfPrimaryLeaseLoss(e) {
|
|
1409
|
-
if (e.code !==
|
|
1409
|
+
if (e.code !== D.FAILED_PRECONDITION || e.message !== v) throw e;
|
|
1410
1410
|
__PRIVATE_logDebug("LocalStore", "Unexpectedly lost primary lease");
|
|
1411
1411
|
}
|
|
1412
1412
|
|
|
@@ -1717,7 +1717,7 @@ class __PRIVATE_SimpleDbTransaction {
|
|
|
1717
1717
|
n(new __PRIVATE_IndexedDbTransactionError(e, "Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."));
|
|
1718
1718
|
}, r.onerror = t => {
|
|
1719
1719
|
const r = t.target.error;
|
|
1720
|
-
"VersionError" === r.name ? n(new FirestoreError(
|
|
1720
|
+
"VersionError" === r.name ? n(new FirestoreError(D.FAILED_PRECONDITION, "A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")) : "InvalidStateError" === r.name ? n(new FirestoreError(D.FAILED_PRECONDITION, "Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: " + r)) : n(new __PRIVATE_IndexedDbTransactionError(e, r));
|
|
1721
1721
|
}, r.onupgradeneeded = e => {
|
|
1722
1722
|
__PRIVATE_logDebug("SimpleDb", 'Database "' + this.name + '" requires upgrade from version:', e.oldVersion);
|
|
1723
1723
|
const t = e.target.result;
|
|
@@ -1804,7 +1804,7 @@ class __PRIVATE_SimpleDbTransaction {
|
|
|
1804
1804
|
|
|
1805
1805
|
/** An error that wraps exceptions that thrown during IndexedDB execution. */ class __PRIVATE_IndexedDbTransactionError extends FirestoreError {
|
|
1806
1806
|
constructor(e, t) {
|
|
1807
|
-
super(
|
|
1807
|
+
super(D.UNAVAILABLE, `IndexedDB transaction '${e}' failed: ${t}`), this.name = "IndexedDbTransactionError";
|
|
1808
1808
|
}
|
|
1809
1809
|
}
|
|
1810
1810
|
|
|
@@ -1988,7 +1988,7 @@ class __PRIVATE_SimpleDbTransaction {
|
|
|
1988
1988
|
}
|
|
1989
1989
|
|
|
1990
1990
|
// Guard so we only report the error once.
|
|
1991
|
-
let
|
|
1991
|
+
let F = !1;
|
|
1992
1992
|
|
|
1993
1993
|
function __PRIVATE_checkForAndReportiOSError(e) {
|
|
1994
1994
|
const t = __PRIVATE_SimpleDb.S(getUA());
|
|
@@ -1997,7 +1997,7 @@ function __PRIVATE_checkForAndReportiOSError(e) {
|
|
|
1997
1997
|
if (e.message.indexOf(t) >= 0) {
|
|
1998
1998
|
// Wrap error in a more descriptive one.
|
|
1999
1999
|
const e = new FirestoreError("internal", `IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${t}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);
|
|
2000
|
-
return
|
|
2000
|
+
return F || (F = !0,
|
|
2001
2001
|
// Throw a global exception outside of this promise chain, for the user to
|
|
2002
2002
|
// potentially catch.
|
|
2003
2003
|
setTimeout((() => {
|
|
@@ -2249,7 +2249,7 @@ function __PRIVATE_encodeResourcePath(e) {
|
|
|
2249
2249
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2250
2250
|
* See the License for the specific language governing permissions and
|
|
2251
2251
|
* limitations under the License.
|
|
2252
|
-
*/ const
|
|
2252
|
+
*/ const M = [ "userId", "batchId" ];
|
|
2253
2253
|
|
|
2254
2254
|
/**
|
|
2255
2255
|
* @license
|
|
@@ -2294,7 +2294,7 @@ function __PRIVATE_newDbDocumentMutationPrefixForPath(e, t) {
|
|
|
2294
2294
|
* there is no useful information to store as the value. The raw (unencoded)
|
|
2295
2295
|
* path cannot be stored because IndexedDb doesn't store prototype
|
|
2296
2296
|
* information.
|
|
2297
|
-
*/ const
|
|
2297
|
+
*/ const x = {}, O = [ "prefixPath", "collectionGroup", "readTime", "documentId" ], N = [ "prefixPath", "collectionGroup", "documentId" ], B = [ "collectionGroup", "readTime", "prefixPath", "documentId" ], L = [ "canonicalId", "targetId" ], k = [ "targetId", "path" ], q = [ "path", "targetId" ], Q = [ "collectionId", "parent" ], K = [ "indexId", "uid" ], $ = [ "uid", "sequenceNumber" ], U = [ "indexId", "uid", "arrayValue", "directionalValue", "orderedDocumentKey", "documentKey" ], W = [ "indexId", "uid", "orderedDocumentKey" ], G = [ "userId", "collectionPath", "documentId" ], z = [ "userId", "collectionPath", "largestBatchId" ], j = [ "userId", "collectionGroup", "largestBatchId" ], H = [ ...[ ...[ ...[ ...[ "mutationQueues", "mutations", "documentMutations", "remoteDocuments", "targets", "owner", "targetGlobal", "targetDocuments" ], "clientMetadata" ], "remoteDocumentGlobal" ], "collectionParents" ], "bundles", "namedQueries" ], J = [ ...H, "documentOverlays" ], Y = [ "mutationQueues", "mutations", "documentMutations", "remoteDocumentsV14", "targets", "owner", "targetGlobal", "targetDocuments", "clientMetadata", "remoteDocumentGlobal", "collectionParents", "bundles", "namedQueries", "documentOverlays" ], Z = Y, X = [ ...Z, "indexConfiguration", "indexState", "indexEntries" ];
|
|
2298
2298
|
|
|
2299
2299
|
/**
|
|
2300
2300
|
* @license
|
|
@@ -3051,7 +3051,7 @@ function __PRIVATE_isBase64Available() {
|
|
|
3051
3051
|
|
|
3052
3052
|
ByteString.EMPTY_BYTE_STRING = new ByteString("");
|
|
3053
3053
|
|
|
3054
|
-
const
|
|
3054
|
+
const ee = new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);
|
|
3055
3055
|
|
|
3056
3056
|
/**
|
|
3057
3057
|
* Converts the possible Proto values for a timestamp value into a "seconds and
|
|
@@ -3065,7 +3065,7 @@ const te = new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);
|
|
|
3065
3065
|
// (millis), so we do some custom parsing here.
|
|
3066
3066
|
// Parse the nanos right out of the string.
|
|
3067
3067
|
let t = 0;
|
|
3068
|
-
const n =
|
|
3068
|
+
const n = ee.exec(e);
|
|
3069
3069
|
if (__PRIVATE_hardAssert(!!n), n[1]) {
|
|
3070
3070
|
// Pad the fraction out to 9 digits (nanos).
|
|
3071
3071
|
let e = n[1];
|
|
@@ -3232,7 +3232,7 @@ class DatabaseId {
|
|
|
3232
3232
|
* See the License for the specific language governing permissions and
|
|
3233
3233
|
* limitations under the License.
|
|
3234
3234
|
*/
|
|
3235
|
-
const
|
|
3235
|
+
const te = {
|
|
3236
3236
|
mapValue: {
|
|
3237
3237
|
fields: {
|
|
3238
3238
|
__type__: {
|
|
@@ -3240,7 +3240,7 @@ const ne = {
|
|
|
3240
3240
|
}
|
|
3241
3241
|
}
|
|
3242
3242
|
}
|
|
3243
|
-
},
|
|
3243
|
+
}, ne = {
|
|
3244
3244
|
nullValue: "NULL_VALUE"
|
|
3245
3245
|
};
|
|
3246
3246
|
|
|
@@ -3384,9 +3384,9 @@ function __PRIVATE_valueCompare(e, t) {
|
|
|
3384
3384
|
|
|
3385
3385
|
case 10 /* TypeOrder.ObjectValue */ :
|
|
3386
3386
|
return function __PRIVATE_compareMaps(e, t) {
|
|
3387
|
-
if (e ===
|
|
3388
|
-
if (e ===
|
|
3389
|
-
if (t ===
|
|
3387
|
+
if (e === te.mapValue && t === te.mapValue) return 0;
|
|
3388
|
+
if (e === te.mapValue) return 1;
|
|
3389
|
+
if (t === te.mapValue) return -1;
|
|
3390
3390
|
const n = e.fields || {}, r = Object.keys(n), i = t.fields || {}, s = Object.keys(i);
|
|
3391
3391
|
// Even though MapValues are likely sorted correctly based on their insertion
|
|
3392
3392
|
// order (e.g. when received from the backend), local modifications can bring
|
|
@@ -3562,7 +3562,7 @@ function isArray(e) {
|
|
|
3562
3562
|
}
|
|
3563
3563
|
|
|
3564
3564
|
/** Returns the lowest value for the given value type (inclusive). */ function __PRIVATE_valuesGetLowerBound(e) {
|
|
3565
|
-
return "nullValue" in e ?
|
|
3565
|
+
return "nullValue" in e ? ne : "booleanValue" in e ? {
|
|
3566
3566
|
booleanValue: !1
|
|
3567
3567
|
} : "integerValue" in e || "doubleValue" in e ? {
|
|
3568
3568
|
doubleValue: NaN
|
|
@@ -3608,7 +3608,7 @@ function isArray(e) {
|
|
|
3608
3608
|
arrayValue: {}
|
|
3609
3609
|
} : "arrayValue" in e ? {
|
|
3610
3610
|
mapValue: {}
|
|
3611
|
-
} : "mapValue" in e ?
|
|
3611
|
+
} : "mapValue" in e ? te : fail();
|
|
3612
3612
|
}
|
|
3613
3613
|
|
|
3614
3614
|
function __PRIVATE_lowerBoundCompare(e, t) {
|
|
@@ -4296,10 +4296,10 @@ function __PRIVATE_targetIsDocumentTarget(e) {
|
|
|
4296
4296
|
* the provided `fieldPath` (or the upper bound for an descending segment).
|
|
4297
4297
|
*/
|
|
4298
4298
|
function __PRIVATE_targetGetAscendingBound(e, t, n) {
|
|
4299
|
-
let r =
|
|
4299
|
+
let r = ne, i = !0;
|
|
4300
4300
|
// Process all filters to find a value for the current field segment
|
|
4301
4301
|
for (const n of __PRIVATE_targetGetFieldFiltersForPath(e, t)) {
|
|
4302
|
-
let e =
|
|
4302
|
+
let e = ne, t = !0;
|
|
4303
4303
|
switch (n.op) {
|
|
4304
4304
|
case "<" /* Operator.LESS_THAN */ :
|
|
4305
4305
|
case "<=" /* Operator.LESS_THAN_OR_EQUAL */ :
|
|
@@ -4318,7 +4318,7 @@ function __PRIVATE_targetGetAscendingBound(e, t, n) {
|
|
|
4318
4318
|
|
|
4319
4319
|
case "!=" /* Operator.NOT_EQUAL */ :
|
|
4320
4320
|
case "not-in" /* Operator.NOT_IN */ :
|
|
4321
|
-
e =
|
|
4321
|
+
e = ne;
|
|
4322
4322
|
// Remaining filters cannot be used as lower bounds.
|
|
4323
4323
|
}
|
|
4324
4324
|
__PRIVATE_lowerBoundCompare({
|
|
@@ -4354,10 +4354,10 @@ function __PRIVATE_targetGetAscendingBound(e, t, n) {
|
|
|
4354
4354
|
* Returns the value to use as the upper bound for ascending index segment at
|
|
4355
4355
|
* the provided `fieldPath` (or the lower bound for a descending segment).
|
|
4356
4356
|
*/ function __PRIVATE_targetGetDescendingBound(e, t, n) {
|
|
4357
|
-
let r =
|
|
4357
|
+
let r = te, i = !0;
|
|
4358
4358
|
// Process all filters to find a value for the current field segment
|
|
4359
4359
|
for (const n of __PRIVATE_targetGetFieldFiltersForPath(e, t)) {
|
|
4360
|
-
let e =
|
|
4360
|
+
let e = te, t = !0;
|
|
4361
4361
|
switch (n.op) {
|
|
4362
4362
|
case ">=" /* Operator.GREATER_THAN_OR_EQUAL */ :
|
|
4363
4363
|
case ">" /* Operator.GREATER_THAN */ :
|
|
@@ -4376,7 +4376,7 @@ function __PRIVATE_targetGetAscendingBound(e, t, n) {
|
|
|
4376
4376
|
|
|
4377
4377
|
case "!=" /* Operator.NOT_EQUAL */ :
|
|
4378
4378
|
case "not-in" /* Operator.NOT_IN */ :
|
|
4379
|
-
e =
|
|
4379
|
+
e = te;
|
|
4380
4380
|
// Remaining filters cannot be used as upper bounds.
|
|
4381
4381
|
}
|
|
4382
4382
|
__PRIVATE_upperBoundCompare({
|
|
@@ -4753,22 +4753,22 @@ function __PRIVATE_compareDocs(e, t, n) {
|
|
|
4753
4753
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
4754
4754
|
* See the License for the specific language governing permissions and
|
|
4755
4755
|
* limitations under the License.
|
|
4756
|
-
*/ const
|
|
4756
|
+
*/ const re = new SortedMap(DocumentKey.comparator);
|
|
4757
4757
|
|
|
4758
4758
|
function __PRIVATE_mutableDocumentMap() {
|
|
4759
|
-
return
|
|
4759
|
+
return re;
|
|
4760
4760
|
}
|
|
4761
4761
|
|
|
4762
|
-
const
|
|
4762
|
+
const ie = new SortedMap(DocumentKey.comparator);
|
|
4763
4763
|
|
|
4764
4764
|
function documentMap(...e) {
|
|
4765
|
-
let t =
|
|
4765
|
+
let t = ie;
|
|
4766
4766
|
for (const n of e) t = t.insert(n.key, n);
|
|
4767
4767
|
return t;
|
|
4768
4768
|
}
|
|
4769
4769
|
|
|
4770
4770
|
function __PRIVATE_convertOverlayedDocumentMapToDocumentMap(e) {
|
|
4771
|
-
let t =
|
|
4771
|
+
let t = ie;
|
|
4772
4772
|
return e.forEach(((e, n) => t = t.insert(e, n.overlayedDocument))), t;
|
|
4773
4773
|
}
|
|
4774
4774
|
|
|
@@ -4784,20 +4784,20 @@ function __PRIVATE_newDocumentKeyMap() {
|
|
|
4784
4784
|
return new ObjectMap((e => e.toString()), ((e, t) => e.isEqual(t)));
|
|
4785
4785
|
}
|
|
4786
4786
|
|
|
4787
|
-
const
|
|
4787
|
+
const se = new SortedMap(DocumentKey.comparator);
|
|
4788
4788
|
|
|
4789
|
-
const
|
|
4789
|
+
const oe = new SortedSet(DocumentKey.comparator);
|
|
4790
4790
|
|
|
4791
4791
|
function __PRIVATE_documentKeySet(...e) {
|
|
4792
|
-
let t =
|
|
4792
|
+
let t = oe;
|
|
4793
4793
|
for (const n of e) t = t.add(n);
|
|
4794
4794
|
return t;
|
|
4795
4795
|
}
|
|
4796
4796
|
|
|
4797
|
-
const
|
|
4797
|
+
const _e = new SortedSet(__PRIVATE_primitiveComparator);
|
|
4798
4798
|
|
|
4799
4799
|
function __PRIVATE_targetIdSet() {
|
|
4800
|
-
return
|
|
4800
|
+
return _e;
|
|
4801
4801
|
}
|
|
4802
4802
|
|
|
4803
4803
|
/**
|
|
@@ -5488,7 +5488,7 @@ class __PRIVATE_VerifyMutation extends Mutation {
|
|
|
5488
5488
|
*/ static from(e, t, n) {
|
|
5489
5489
|
__PRIVATE_hardAssert(e.mutations.length === n.length);
|
|
5490
5490
|
let r = function __PRIVATE_documentVersionMap() {
|
|
5491
|
-
return
|
|
5491
|
+
return se;
|
|
5492
5492
|
}();
|
|
5493
5493
|
const i = e.mutations;
|
|
5494
5494
|
for (let e = 0; e < i.length; e++) r = r.insert(i[e].key, n[e].version);
|
|
@@ -5602,7 +5602,7 @@ class __PRIVATE_VerifyMutation extends Mutation {
|
|
|
5602
5602
|
* Important! The names of these identifiers matter because the string forms
|
|
5603
5603
|
* are used for reverse lookups from the webchannel stream. Do NOT change the
|
|
5604
5604
|
* names of these identifiers or change this into a const enum.
|
|
5605
|
-
*/ var
|
|
5605
|
+
*/ var ae, ue;
|
|
5606
5606
|
|
|
5607
5607
|
/**
|
|
5608
5608
|
* Determines whether an error code represents a permanent error when received
|
|
@@ -5615,29 +5615,29 @@ function __PRIVATE_isPermanentError(e) {
|
|
|
5615
5615
|
default:
|
|
5616
5616
|
return fail();
|
|
5617
5617
|
|
|
5618
|
-
case
|
|
5619
|
-
case
|
|
5620
|
-
case
|
|
5621
|
-
case
|
|
5622
|
-
case
|
|
5623
|
-
case
|
|
5618
|
+
case D.CANCELLED:
|
|
5619
|
+
case D.UNKNOWN:
|
|
5620
|
+
case D.DEADLINE_EXCEEDED:
|
|
5621
|
+
case D.RESOURCE_EXHAUSTED:
|
|
5622
|
+
case D.INTERNAL:
|
|
5623
|
+
case D.UNAVAILABLE:
|
|
5624
5624
|
// Unauthenticated means something went wrong with our token and we need
|
|
5625
5625
|
// to retry with new credentials which will happen automatically.
|
|
5626
|
-
case
|
|
5626
|
+
case D.UNAUTHENTICATED:
|
|
5627
5627
|
return !1;
|
|
5628
5628
|
|
|
5629
|
-
case
|
|
5630
|
-
case
|
|
5631
|
-
case
|
|
5632
|
-
case
|
|
5633
|
-
case
|
|
5629
|
+
case D.INVALID_ARGUMENT:
|
|
5630
|
+
case D.NOT_FOUND:
|
|
5631
|
+
case D.ALREADY_EXISTS:
|
|
5632
|
+
case D.PERMISSION_DENIED:
|
|
5633
|
+
case D.FAILED_PRECONDITION:
|
|
5634
5634
|
// Aborted might be retried in some scenarios, but that is dependant on
|
|
5635
5635
|
// the context and should handled individually by the calling code.
|
|
5636
5636
|
// See https://cloud.google.com/apis/design/errors.
|
|
5637
|
-
case
|
|
5638
|
-
case
|
|
5639
|
-
case
|
|
5640
|
-
case
|
|
5637
|
+
case D.ABORTED:
|
|
5638
|
+
case D.OUT_OF_RANGE:
|
|
5639
|
+
case D.UNIMPLEMENTED:
|
|
5640
|
+
case D.DATA_LOSS:
|
|
5641
5641
|
return !0;
|
|
5642
5642
|
}
|
|
5643
5643
|
}
|
|
@@ -5665,58 +5665,58 @@ function __PRIVATE_mapCodeFromRpcCode(e) {
|
|
|
5665
5665
|
if (void 0 === e)
|
|
5666
5666
|
// This shouldn't normally happen, but in certain error cases (like trying
|
|
5667
5667
|
// to send invalid proto messages) we may get an error with no GRPC code.
|
|
5668
|
-
return __PRIVATE_logError("GRPC error has no .code"),
|
|
5668
|
+
return __PRIVATE_logError("GRPC error has no .code"), D.UNKNOWN;
|
|
5669
5669
|
switch (e) {
|
|
5670
|
-
case
|
|
5671
|
-
return
|
|
5670
|
+
case ae.OK:
|
|
5671
|
+
return D.OK;
|
|
5672
5672
|
|
|
5673
|
-
case
|
|
5674
|
-
return
|
|
5673
|
+
case ae.CANCELLED:
|
|
5674
|
+
return D.CANCELLED;
|
|
5675
5675
|
|
|
5676
|
-
case
|
|
5677
|
-
return
|
|
5676
|
+
case ae.UNKNOWN:
|
|
5677
|
+
return D.UNKNOWN;
|
|
5678
5678
|
|
|
5679
|
-
case
|
|
5680
|
-
return
|
|
5679
|
+
case ae.DEADLINE_EXCEEDED:
|
|
5680
|
+
return D.DEADLINE_EXCEEDED;
|
|
5681
5681
|
|
|
5682
|
-
case
|
|
5683
|
-
return
|
|
5682
|
+
case ae.RESOURCE_EXHAUSTED:
|
|
5683
|
+
return D.RESOURCE_EXHAUSTED;
|
|
5684
5684
|
|
|
5685
|
-
case
|
|
5686
|
-
return
|
|
5685
|
+
case ae.INTERNAL:
|
|
5686
|
+
return D.INTERNAL;
|
|
5687
5687
|
|
|
5688
|
-
case
|
|
5689
|
-
return
|
|
5688
|
+
case ae.UNAVAILABLE:
|
|
5689
|
+
return D.UNAVAILABLE;
|
|
5690
5690
|
|
|
5691
|
-
case
|
|
5692
|
-
return
|
|
5691
|
+
case ae.UNAUTHENTICATED:
|
|
5692
|
+
return D.UNAUTHENTICATED;
|
|
5693
5693
|
|
|
5694
|
-
case
|
|
5695
|
-
return
|
|
5694
|
+
case ae.INVALID_ARGUMENT:
|
|
5695
|
+
return D.INVALID_ARGUMENT;
|
|
5696
5696
|
|
|
5697
|
-
case
|
|
5698
|
-
return
|
|
5697
|
+
case ae.NOT_FOUND:
|
|
5698
|
+
return D.NOT_FOUND;
|
|
5699
5699
|
|
|
5700
|
-
case
|
|
5701
|
-
return
|
|
5700
|
+
case ae.ALREADY_EXISTS:
|
|
5701
|
+
return D.ALREADY_EXISTS;
|
|
5702
5702
|
|
|
5703
|
-
case
|
|
5704
|
-
return
|
|
5703
|
+
case ae.PERMISSION_DENIED:
|
|
5704
|
+
return D.PERMISSION_DENIED;
|
|
5705
5705
|
|
|
5706
|
-
case
|
|
5707
|
-
return
|
|
5706
|
+
case ae.FAILED_PRECONDITION:
|
|
5707
|
+
return D.FAILED_PRECONDITION;
|
|
5708
5708
|
|
|
5709
|
-
case
|
|
5710
|
-
return
|
|
5709
|
+
case ae.ABORTED:
|
|
5710
|
+
return D.ABORTED;
|
|
5711
5711
|
|
|
5712
|
-
case
|
|
5713
|
-
return
|
|
5712
|
+
case ae.OUT_OF_RANGE:
|
|
5713
|
+
return D.OUT_OF_RANGE;
|
|
5714
5714
|
|
|
5715
|
-
case
|
|
5716
|
-
return
|
|
5715
|
+
case ae.UNIMPLEMENTED:
|
|
5716
|
+
return D.UNIMPLEMENTED;
|
|
5717
5717
|
|
|
5718
|
-
case
|
|
5719
|
-
return
|
|
5718
|
+
case ae.DATA_LOSS:
|
|
5719
|
+
return D.DATA_LOSS;
|
|
5720
5720
|
|
|
5721
5721
|
default:
|
|
5722
5722
|
return fail();
|
|
@@ -5730,14 +5730,14 @@ function __PRIVATE_mapCodeFromRpcCode(e) {
|
|
|
5730
5730
|
* "UNKNOWN", etc.)
|
|
5731
5731
|
* @returns The equivalent Code. Non-matching responses are mapped to
|
|
5732
5732
|
* Code.UNKNOWN.
|
|
5733
|
-
*/ (
|
|
5734
|
-
|
|
5735
|
-
|
|
5736
|
-
|
|
5737
|
-
|
|
5738
|
-
|
|
5739
|
-
|
|
5740
|
-
|
|
5733
|
+
*/ (ue = ae || (ae = {}))[ue.OK = 0] = "OK", ue[ue.CANCELLED = 1] = "CANCELLED",
|
|
5734
|
+
ue[ue.UNKNOWN = 2] = "UNKNOWN", ue[ue.INVALID_ARGUMENT = 3] = "INVALID_ARGUMENT",
|
|
5735
|
+
ue[ue.DEADLINE_EXCEEDED = 4] = "DEADLINE_EXCEEDED", ue[ue.NOT_FOUND = 5] = "NOT_FOUND",
|
|
5736
|
+
ue[ue.ALREADY_EXISTS = 6] = "ALREADY_EXISTS", ue[ue.PERMISSION_DENIED = 7] = "PERMISSION_DENIED",
|
|
5737
|
+
ue[ue.UNAUTHENTICATED = 16] = "UNAUTHENTICATED", ue[ue.RESOURCE_EXHAUSTED = 8] = "RESOURCE_EXHAUSTED",
|
|
5738
|
+
ue[ue.FAILED_PRECONDITION = 9] = "FAILED_PRECONDITION", ue[ue.ABORTED = 10] = "ABORTED",
|
|
5739
|
+
ue[ue.OUT_OF_RANGE = 11] = "OUT_OF_RANGE", ue[ue.UNIMPLEMENTED = 12] = "UNIMPLEMENTED",
|
|
5740
|
+
ue[ue.INTERNAL = 13] = "INTERNAL", ue[ue.UNAVAILABLE = 14] = "UNAVAILABLE", ue[ue.DATA_LOSS = 15] = "DATA_LOSS";
|
|
5741
5741
|
|
|
5742
5742
|
/**
|
|
5743
5743
|
* @license
|
|
@@ -5762,7 +5762,7 @@ ce[ce.INTERNAL = 13] = "INTERNAL", ce[ce.UNAVAILABLE = 14] = "UNAVAILABLE", ce[c
|
|
|
5762
5762
|
* integration tests that have registered callbacks to be notified of events
|
|
5763
5763
|
* that happen during the test execution.
|
|
5764
5764
|
*/
|
|
5765
|
-
let
|
|
5765
|
+
let ce = null;
|
|
5766
5766
|
|
|
5767
5767
|
/**
|
|
5768
5768
|
* Sets the value of the `testingHooksSpi` object.
|
|
@@ -5810,7 +5810,7 @@ function __PRIVATE_newTextEncoder() {
|
|
|
5810
5810
|
* See the License for the specific language governing permissions and
|
|
5811
5811
|
* limitations under the License.
|
|
5812
5812
|
*/
|
|
5813
|
-
const
|
|
5813
|
+
const le = new Integer([ 4294967295, 4294967295 ], 0);
|
|
5814
5814
|
|
|
5815
5815
|
// Hash a string using md5 hashing algorithm.
|
|
5816
5816
|
function __PRIVATE_getMd5HashValue(e) {
|
|
@@ -5845,7 +5845,7 @@ class BloomFilter {
|
|
|
5845
5845
|
// Calculate hashed value h(i) = h1 + (i * h2).
|
|
5846
5846
|
let r = e.add(t.multiply(Integer.fromNumber(n)));
|
|
5847
5847
|
// Wrap if hash value overflow 64bit.
|
|
5848
|
-
return 1 === r.compare(
|
|
5848
|
+
return 1 === r.compare(le) && (r = new Integer([ r.getBits(0), r.getBits(1) ], 0)),
|
|
5849
5849
|
r.modulo(this.Ee).toNumber();
|
|
5850
5850
|
}
|
|
5851
5851
|
// Return whether the bit on the given index in the bitmap is set to 1.
|
|
@@ -6263,7 +6263,7 @@ class __PRIVATE_WatchChangeAggregator {
|
|
|
6263
6263
|
const e = 2 /* BloomFilterApplicationStatus.FalsePositive */ === i ? "TargetPurposeExistenceFilterMismatchBloom" /* TargetPurpose.ExistenceFilterMismatchBloom */ : "TargetPurposeExistenceFilterMismatch" /* TargetPurpose.ExistenceFilterMismatch */;
|
|
6264
6264
|
this.Ke = this.Ke.insert(t, e);
|
|
6265
6265
|
}
|
|
6266
|
-
null ==
|
|
6266
|
+
null == ce || ce.tt(function __PRIVATE_createExistenceFilterMismatchInfoForTestingHooks(e, t, n, r, i) {
|
|
6267
6267
|
var s, o, _, a, u, c;
|
|
6268
6268
|
const l = {
|
|
6269
6269
|
localCacheCount: e,
|
|
@@ -6479,13 +6479,13 @@ function __PRIVATE_snapshotChangesMap() {
|
|
|
6479
6479
|
return new SortedMap(DocumentKey.comparator);
|
|
6480
6480
|
}
|
|
6481
6481
|
|
|
6482
|
-
const
|
|
6482
|
+
const he = (() => {
|
|
6483
6483
|
const e = {
|
|
6484
6484
|
asc: "ASCENDING",
|
|
6485
6485
|
desc: "DESCENDING"
|
|
6486
6486
|
};
|
|
6487
6487
|
return e;
|
|
6488
|
-
})(),
|
|
6488
|
+
})(), Pe = (() => {
|
|
6489
6489
|
const e = {
|
|
6490
6490
|
"<": "LESS_THAN",
|
|
6491
6491
|
"<=": "LESS_THAN_OR_EQUAL",
|
|
@@ -6499,7 +6499,7 @@ const Pe = (() => {
|
|
|
6499
6499
|
"array-contains-any": "ARRAY_CONTAINS_ANY"
|
|
6500
6500
|
};
|
|
6501
6501
|
return e;
|
|
6502
|
-
})(),
|
|
6502
|
+
})(), Ie = (() => {
|
|
6503
6503
|
const e = {
|
|
6504
6504
|
and: "AND",
|
|
6505
6505
|
or: "OR"
|
|
@@ -6596,8 +6596,8 @@ function __PRIVATE_toName(e, t) {
|
|
|
6596
6596
|
|
|
6597
6597
|
function fromName(e, t) {
|
|
6598
6598
|
const n = __PRIVATE_fromResourceName(t);
|
|
6599
|
-
if (n.get(1) !== e.databaseId.projectId) throw new FirestoreError(
|
|
6600
|
-
if (n.get(3) !== e.databaseId.database) throw new FirestoreError(
|
|
6599
|
+
if (n.get(1) !== e.databaseId.projectId) throw new FirestoreError(D.INVALID_ARGUMENT, "Tried to deserialize key from different project: " + n.get(1) + " vs " + e.databaseId.projectId);
|
|
6600
|
+
if (n.get(3) !== e.databaseId.database) throw new FirestoreError(D.INVALID_ARGUMENT, "Tried to deserialize key from different database: " + n.get(3) + " vs " + e.databaseId.database);
|
|
6601
6601
|
return new DocumentKey(__PRIVATE_extractLocalPathFromResourceName(n));
|
|
6602
6602
|
}
|
|
6603
6603
|
|
|
@@ -6667,7 +6667,7 @@ function __PRIVATE_fromWatchChange(e, t) {
|
|
|
6667
6667
|
ByteString.fromBase64String(t || "")) : (__PRIVATE_hardAssert(void 0 === t || t instanceof Uint8Array),
|
|
6668
6668
|
ByteString.fromUint8Array(t || new Uint8Array));
|
|
6669
6669
|
}(e, t.targetChange.resumeToken), o = t.targetChange.cause, _ = o && function __PRIVATE_fromRpcStatus(e) {
|
|
6670
|
-
const t = void 0 === e.code ?
|
|
6670
|
+
const t = void 0 === e.code ? D.UNKNOWN : __PRIVATE_mapCodeFromRpcCode(e.code);
|
|
6671
6671
|
return new FirestoreError(t, e.message || "");
|
|
6672
6672
|
}(o);
|
|
6673
6673
|
n = new __PRIVATE_WatchTargetChange(r, i, s, _ || null);
|
|
@@ -7023,15 +7023,15 @@ function __PRIVATE_fromFilter(e) {
|
|
|
7023
7023
|
}
|
|
7024
7024
|
|
|
7025
7025
|
function __PRIVATE_toDirection(e) {
|
|
7026
|
-
return
|
|
7026
|
+
return he[e];
|
|
7027
7027
|
}
|
|
7028
7028
|
|
|
7029
7029
|
function __PRIVATE_toOperatorName(e) {
|
|
7030
|
-
return
|
|
7030
|
+
return Pe[e];
|
|
7031
7031
|
}
|
|
7032
7032
|
|
|
7033
7033
|
function __PRIVATE_toCompositeOperatorName(e) {
|
|
7034
|
-
return
|
|
7034
|
+
return Ie[e];
|
|
7035
7035
|
}
|
|
7036
7036
|
|
|
7037
7037
|
function __PRIVATE_toFieldPathReference(e) {
|
|
@@ -8352,7 +8352,7 @@ function __PRIVATE_applyDistributionFieldAndCompositeFilters(e, t) {
|
|
|
8352
8352
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
8353
8353
|
* See the License for the specific language governing permissions and
|
|
8354
8354
|
* limitations under the License.
|
|
8355
|
-
*/ const
|
|
8355
|
+
*/ const Te = new Uint8Array(0);
|
|
8356
8356
|
|
|
8357
8357
|
/**
|
|
8358
8358
|
* A persisted implementation of IndexManager.
|
|
@@ -8566,7 +8566,7 @@ class __PRIVATE_IndexedDbIndexManager {
|
|
|
8566
8566
|
// combined with the values from the query bounds.
|
|
8567
8567
|
const _ = (null != t ? t.length : 1) * Math.max(n.length, i.length), a = _ / (null != t ? t.length : 1), u = [];
|
|
8568
8568
|
for (let c = 0; c < _; ++c) {
|
|
8569
|
-
const _ = t ? this.In(t[c / a]) :
|
|
8569
|
+
const _ = t ? this.In(t[c / a]) : Te, l = this.Tn(e, _, n[c % a], r), h = this.En(e, _, i[c % a], s), P = o.map((t => this.Tn(e, _, t,
|
|
8570
8570
|
/* inclusive= */ !0)));
|
|
8571
8571
|
u.push(...this.createRange(l, h, P));
|
|
8572
8572
|
}
|
|
@@ -8763,7 +8763,7 @@ class __PRIVATE_IndexedDbIndexManager {
|
|
|
8763
8763
|
if (null != i) {
|
|
8764
8764
|
const s = e.data.field(i.fieldPath);
|
|
8765
8765
|
if (isArray(s)) for (const i of s.arrayValue.values || []) n = n.add(new __PRIVATE_IndexEntry(t.indexId, e.key, this.In(i), r));
|
|
8766
|
-
} else n = n.add(new __PRIVATE_IndexEntry(t.indexId, e.key,
|
|
8766
|
+
} else n = n.add(new __PRIVATE_IndexEntry(t.indexId, e.key, Te, r));
|
|
8767
8767
|
return n;
|
|
8768
8768
|
}
|
|
8769
8769
|
/**
|
|
@@ -8838,7 +8838,7 @@ class __PRIVATE_IndexedDbIndexManager {
|
|
|
8838
8838
|
// If we encounter two bounds that will create an unmatchable key range,
|
|
8839
8839
|
// then we return an empty set of key ranges.
|
|
8840
8840
|
if (this.bn(r[e], r[e + 1])) return [];
|
|
8841
|
-
const t = [ r[e].indexId, this.uid, r[e].arrayValue, r[e].directionalValue,
|
|
8841
|
+
const t = [ r[e].indexId, this.uid, r[e].arrayValue, r[e].directionalValue, Te, [] ], n = [ r[e + 1].indexId, this.uid, r[e + 1].arrayValue, r[e + 1].directionalValue, Te, [] ];
|
|
8842
8842
|
i.push(IDBKeyRange.bound(t, n));
|
|
8843
8843
|
}
|
|
8844
8844
|
return i;
|
|
@@ -8906,7 +8906,7 @@ function __PRIVATE_getMinOffsetFromFieldIndexes(e) {
|
|
|
8906
8906
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
8907
8907
|
* See the License for the specific language governing permissions and
|
|
8908
8908
|
* limitations under the License.
|
|
8909
|
-
*/ const
|
|
8909
|
+
*/ const Ee = {
|
|
8910
8910
|
didRun: !1,
|
|
8911
8911
|
sequenceNumbersCollected: 0,
|
|
8912
8912
|
targetsRemoved: 0,
|
|
@@ -9070,7 +9070,7 @@ class __PRIVATE_IndexedDbMutationQueue {
|
|
|
9070
9070
|
let c = new SortedSet(((e, t) => __PRIVATE_primitiveComparator(e.canonicalString(), t.canonicalString())));
|
|
9071
9071
|
for (const e of r) {
|
|
9072
9072
|
const t = __PRIVATE_newDbDocumentMutationKey(this.userId, e.key.path, o);
|
|
9073
|
-
c = c.add(e.key.path.popLast()), u.push(s.put(a)), u.push(i.put(t,
|
|
9073
|
+
c = c.add(e.key.path.popLast()), u.push(s.put(a)), u.push(i.put(t, x));
|
|
9074
9074
|
}
|
|
9075
9075
|
return c.forEach((t => {
|
|
9076
9076
|
u.push(this.indexManager.addToCollectionParentIndex(e, t));
|
|
@@ -9639,8 +9639,8 @@ class __PRIVATE_TargetIdGenerator {
|
|
|
9639
9639
|
}
|
|
9640
9640
|
collect(e, t) {
|
|
9641
9641
|
return -1 === this.params.cacheSizeCollectionThreshold ? (__PRIVATE_logDebug("LruGarbageCollector", "Garbage collection skipped; disabled"),
|
|
9642
|
-
PersistencePromise.resolve(
|
|
9643
|
-
|
|
9642
|
+
PersistencePromise.resolve(Ee)) : this.getCacheSize(e).next((n => n < this.params.cacheSizeCollectionThreshold ? (__PRIVATE_logDebug("LruGarbageCollector", `Garbage collection skipped; Cache size ${n} is lower than threshold ${this.params.cacheSizeCollectionThreshold}`),
|
|
9643
|
+
Ee) : this.Jn(e, t)));
|
|
9644
9644
|
}
|
|
9645
9645
|
getCacheSize(e) {
|
|
9646
9646
|
return this.zn.getCacheSize(e);
|
|
@@ -11399,7 +11399,7 @@ class __PRIVATE_MemoryLruDelegate {
|
|
|
11399
11399
|
e.createObjectStore("mutations", {
|
|
11400
11400
|
keyPath: "batchId",
|
|
11401
11401
|
autoIncrement: !0
|
|
11402
|
-
}).createIndex("userMutationsIndex",
|
|
11402
|
+
}).createIndex("userMutationsIndex", M, {
|
|
11403
11403
|
unique: !0
|
|
11404
11404
|
}), e.createObjectStore("documentMutations");
|
|
11405
11405
|
}
|
|
@@ -11444,7 +11444,7 @@ class __PRIVATE_MemoryLruDelegate {
|
|
|
11444
11444
|
e.createObjectStore("mutations", {
|
|
11445
11445
|
keyPath: "batchId",
|
|
11446
11446
|
autoIncrement: !0
|
|
11447
|
-
}).createIndex("userMutationsIndex",
|
|
11447
|
+
}).createIndex("userMutationsIndex", M, {
|
|
11448
11448
|
unique: !0
|
|
11449
11449
|
});
|
|
11450
11450
|
const r = t.store("mutations"), i = n.map((e => r.put(e)));
|
|
@@ -11481,19 +11481,19 @@ class __PRIVATE_MemoryLruDelegate {
|
|
|
11481
11481
|
}))), n < 12 && r >= 12 && (s = s.next((() => {
|
|
11482
11482
|
!function __PRIVATE_createDocumentOverlayStore(e) {
|
|
11483
11483
|
const t = e.createObjectStore("documentOverlays", {
|
|
11484
|
-
keyPath:
|
|
11484
|
+
keyPath: G
|
|
11485
11485
|
});
|
|
11486
|
-
t.createIndex("collectionPathOverlayIndex",
|
|
11486
|
+
t.createIndex("collectionPathOverlayIndex", z, {
|
|
11487
11487
|
unique: !1
|
|
11488
|
-
}), t.createIndex("collectionGroupOverlayIndex",
|
|
11488
|
+
}), t.createIndex("collectionGroupOverlayIndex", j, {
|
|
11489
11489
|
unique: !1
|
|
11490
11490
|
});
|
|
11491
11491
|
}(e);
|
|
11492
11492
|
}))), n < 13 && r >= 13 && (s = s.next((() => function __PRIVATE_createRemoteDocumentCache(e) {
|
|
11493
11493
|
const t = e.createObjectStore("remoteDocumentsV14", {
|
|
11494
|
-
keyPath:
|
|
11494
|
+
keyPath: O
|
|
11495
11495
|
});
|
|
11496
|
-
t.createIndex("documentKeyIndex",
|
|
11496
|
+
t.createIndex("documentKeyIndex", N), t.createIndex("collectionGroupIndex", B);
|
|
11497
11497
|
}(e))).next((() => this.ri(e, i))).next((() => e.deleteObjectStore("remoteDocuments")))),
|
|
11498
11498
|
n < 14 && r >= 14 && (s = s.next((() => this.ii(e, i)))), n < 15 && r >= 15 && (s = s.next((() => function __PRIVATE_createFieldIndex(e) {
|
|
11499
11499
|
e.createObjectStore("indexConfiguration", {
|
|
@@ -11503,13 +11503,13 @@ class __PRIVATE_MemoryLruDelegate {
|
|
|
11503
11503
|
unique: !1
|
|
11504
11504
|
});
|
|
11505
11505
|
e.createObjectStore("indexState", {
|
|
11506
|
-
keyPath:
|
|
11507
|
-
}).createIndex("sequenceNumberIndex",
|
|
11506
|
+
keyPath: K
|
|
11507
|
+
}).createIndex("sequenceNumberIndex", $, {
|
|
11508
11508
|
unique: !1
|
|
11509
11509
|
});
|
|
11510
11510
|
e.createObjectStore("indexEntries", {
|
|
11511
|
-
keyPath:
|
|
11512
|
-
}).createIndex("documentKeyIndex",
|
|
11511
|
+
keyPath: U
|
|
11512
|
+
}).createIndex("documentKeyIndex", W, {
|
|
11513
11513
|
unique: !1
|
|
11514
11514
|
});
|
|
11515
11515
|
}(e)))), s;
|
|
@@ -11558,7 +11558,7 @@ class __PRIVATE_MemoryLruDelegate {
|
|
|
11558
11558
|
ti(e, t) {
|
|
11559
11559
|
// Create the index.
|
|
11560
11560
|
e.createObjectStore("collectionParents", {
|
|
11561
|
-
keyPath:
|
|
11561
|
+
keyPath: Q
|
|
11562
11562
|
});
|
|
11563
11563
|
const n = t.store("collectionParents"), r = new __PRIVATE_MemoryCollectionParentIndex, addEntry = e => {
|
|
11564
11564
|
if (r.add(e)) {
|
|
@@ -11643,19 +11643,19 @@ class __PRIVATE_MemoryLruDelegate {
|
|
|
11643
11643
|
|
|
11644
11644
|
function __PRIVATE_createQueryCache(e) {
|
|
11645
11645
|
e.createObjectStore("targetDocuments", {
|
|
11646
|
-
keyPath:
|
|
11647
|
-
}).createIndex("documentTargetsIndex",
|
|
11646
|
+
keyPath: k
|
|
11647
|
+
}).createIndex("documentTargetsIndex", q, {
|
|
11648
11648
|
unique: !0
|
|
11649
11649
|
});
|
|
11650
11650
|
// NOTE: This is unique only because the TargetId is the suffix.
|
|
11651
11651
|
e.createObjectStore("targets", {
|
|
11652
11652
|
keyPath: "targetId"
|
|
11653
|
-
}).createIndex("queryTargetsIndex",
|
|
11653
|
+
}).createIndex("queryTargetsIndex", L, {
|
|
11654
11654
|
unique: !0
|
|
11655
11655
|
}), e.createObjectStore("targetGlobal");
|
|
11656
11656
|
}
|
|
11657
11657
|
|
|
11658
|
-
const
|
|
11658
|
+
const de = "Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.";
|
|
11659
11659
|
|
|
11660
11660
|
/**
|
|
11661
11661
|
* Oldest acceptable age in milliseconds for client metadata before the client
|
|
@@ -11731,7 +11731,7 @@ class __PRIVATE_IndexedDbPersistence {
|
|
|
11731
11731
|
/** The last time we garbage collected the client metadata object store. */
|
|
11732
11732
|
this.hi = Number.NEGATIVE_INFINITY,
|
|
11733
11733
|
/** A listener to notify on primary state changes. */
|
|
11734
|
-
this.Pi = e => Promise.resolve(), !__PRIVATE_IndexedDbPersistence.D()) throw new FirestoreError(
|
|
11734
|
+
this.Pi = e => Promise.resolve(), !__PRIVATE_IndexedDbPersistence.D()) throw new FirestoreError(D.UNIMPLEMENTED, "This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");
|
|
11735
11735
|
this.referenceDelegate = new __PRIVATE_IndexedDbLruDelegateImpl(this, r), this.Ii = t + "main",
|
|
11736
11736
|
this.serializer = new __PRIVATE_LocalSerializer(_), this.Ti = new __PRIVATE_SimpleDb(this.Ii, this.ai, new __PRIVATE_SchemaConverter(this.serializer)),
|
|
11737
11737
|
this.qr = new __PRIVATE_IndexedDbTargetCache(this.referenceDelegate, this.serializer),
|
|
@@ -11751,7 +11751,7 @@ class __PRIVATE_IndexedDbPersistence {
|
|
|
11751
11751
|
if (!this.isPrimary && !this.allowTabSynchronization)
|
|
11752
11752
|
// Fail `start()` if `synchronizeTabs` is disabled and we cannot
|
|
11753
11753
|
// obtain the primary lease.
|
|
11754
|
-
throw new FirestoreError(
|
|
11754
|
+
throw new FirestoreError(D.FAILED_PRECONDITION, de);
|
|
11755
11755
|
return this.Ai(), this.Ri(), this.Vi(), this.runTransaction("getHighestListenSequenceNumber", "readonly", (e => this.qr.getHighestSequenceNumber(e)));
|
|
11756
11756
|
})).then((e => {
|
|
11757
11757
|
this.Lr = new __PRIVATE_ListenSequence(e, this.oi);
|
|
@@ -11893,7 +11893,7 @@ class __PRIVATE_IndexedDbPersistence {
|
|
|
11893
11893
|
// settings is not supported.
|
|
11894
11894
|
// TODO(b/114226234): Remove this check when `synchronizeTabs` can
|
|
11895
11895
|
// no longer be turned off.
|
|
11896
|
-
throw new FirestoreError(
|
|
11896
|
+
throw new FirestoreError(D.FAILED_PRECONDITION, de);
|
|
11897
11897
|
return !1;
|
|
11898
11898
|
}
|
|
11899
11899
|
}
|
|
@@ -11963,7 +11963,7 @@ class __PRIVATE_IndexedDbPersistence {
|
|
|
11963
11963
|
const r = "readonly" === t ? "readonly" : "readwrite", i =
|
|
11964
11964
|
/** Returns the object stores for the provided schema. */
|
|
11965
11965
|
function __PRIVATE_getObjectStores(e) {
|
|
11966
|
-
return 15 === e ?
|
|
11966
|
+
return 15 === e ? X : 14 === e ? Z : 13 === e ? Y : 12 === e ? J : 11 === e ? H : void fail();
|
|
11967
11967
|
}(this.ai);
|
|
11968
11968
|
let s;
|
|
11969
11969
|
// Do all transactions as readwrite against all object stores, since we
|
|
@@ -11971,7 +11971,7 @@ class __PRIVATE_IndexedDbPersistence {
|
|
|
11971
11971
|
return this.Ti.runTransaction(e, r, i, (r => (s = new __PRIVATE_IndexedDbTransaction(r, this.Lr ? this.Lr.next() : __PRIVATE_ListenSequence._e),
|
|
11972
11972
|
"readwrite-primary" === t ? this.fi(s).next((e => !!e || this.gi(s))).next((t => {
|
|
11973
11973
|
if (!t) throw __PRIVATE_logError(`Failed to obtain primary lease for action '${e}'.`),
|
|
11974
|
-
this.isPrimary = !1, this.si.enqueueRetryable((() => this.Pi(!1))), new FirestoreError(
|
|
11974
|
+
this.isPrimary = !1, this.si.enqueueRetryable((() => this.Pi(!1))), new FirestoreError(D.FAILED_PRECONDITION, v);
|
|
11975
11975
|
return n(s);
|
|
11976
11976
|
})).next((e => this.yi(s).next((() => e)))) : this.Li(s).next((() => n(s)))))).then((e => (s.raiseOnCommittedEvent(),
|
|
11977
11977
|
e)));
|
|
@@ -11984,7 +11984,7 @@ class __PRIVATE_IndexedDbPersistence {
|
|
|
11984
11984
|
// be turned off.
|
|
11985
11985
|
Li(e) {
|
|
11986
11986
|
return __PRIVATE_primaryClientStore(e).get("owner").next((e => {
|
|
11987
|
-
if (null !== e && this.Di(e.leaseTimestampMs, 5e3) && !this.Fi(e.ownerId) && !this.wi(e) && !(this._i || this.allowTabSynchronization && e.allowTabSynchronization)) throw new FirestoreError(
|
|
11987
|
+
if (null !== e && this.Di(e.leaseTimestampMs, 5e3) && !this.Fi(e.ownerId) && !this.wi(e) && !(this._i || this.allowTabSynchronization && e.allowTabSynchronization)) throw new FirestoreError(D.FAILED_PRECONDITION, de);
|
|
11988
11988
|
}));
|
|
11989
11989
|
}
|
|
11990
11990
|
/**
|
|
@@ -13469,7 +13469,7 @@ class __PRIVATE_BrowserConnectivityMonitor {
|
|
|
13469
13469
|
/**
|
|
13470
13470
|
* The value returned from the most recent invocation of
|
|
13471
13471
|
* `generateUniqueDebugId()`, or null if it has never been invoked.
|
|
13472
|
-
*/ let
|
|
13472
|
+
*/ let Ae = null;
|
|
13473
13473
|
|
|
13474
13474
|
/**
|
|
13475
13475
|
* Generates and returns an initial value for `lastUniqueDebugId`.
|
|
@@ -13494,9 +13494,9 @@ class __PRIVATE_BrowserConnectivityMonitor {
|
|
|
13494
13494
|
* @return the 10-character generated ID (e.g. "0xa1b2c3d4").
|
|
13495
13495
|
*/
|
|
13496
13496
|
function __PRIVATE_generateUniqueDebugId() {
|
|
13497
|
-
return null ===
|
|
13497
|
+
return null === Ae ? Ae = function __PRIVATE_generateInitialUniqueDebugId() {
|
|
13498
13498
|
return 268435456 + Math.round(2147483648 * Math.random());
|
|
13499
|
-
}() :
|
|
13499
|
+
}() : Ae++, "0x" + Ae.toString(16);
|
|
13500
13500
|
}
|
|
13501
13501
|
|
|
13502
13502
|
/**
|
|
@@ -13514,7 +13514,7 @@ function __PRIVATE_generateUniqueDebugId() {
|
|
|
13514
13514
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13515
13515
|
* See the License for the specific language governing permissions and
|
|
13516
13516
|
* limitations under the License.
|
|
13517
|
-
*/ const
|
|
13517
|
+
*/ const Re = {
|
|
13518
13518
|
BatchGetDocuments: "batchGet",
|
|
13519
13519
|
Commit: "commit",
|
|
13520
13520
|
RunQuery: "runQuery",
|
|
@@ -13592,7 +13592,7 @@ class __PRIVATE_StreamBridge {
|
|
|
13592
13592
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13593
13593
|
* See the License for the specific language governing permissions and
|
|
13594
13594
|
* limitations under the License.
|
|
13595
|
-
*/ const
|
|
13595
|
+
*/ const Ve = "WebChannelConnection";
|
|
13596
13596
|
|
|
13597
13597
|
class __PRIVATE_WebChannelConnection extends
|
|
13598
13598
|
/**
|
|
@@ -13636,7 +13636,7 @@ class __PRIVATE_RestConnection {
|
|
|
13636
13636
|
// SDK_VERSION is updated to different value at runtime depending on the entry point,
|
|
13637
13637
|
// so we need to get its value when we need it in a function.
|
|
13638
13638
|
function __PRIVATE_getGoogApiClientValue() {
|
|
13639
|
-
return "gl-js/ fire/" +
|
|
13639
|
+
return "gl-js/ fire/" + S;
|
|
13640
13640
|
}(),
|
|
13641
13641
|
// Content-Type: text/plain will avoid preflight requests which might
|
|
13642
13642
|
// mess with CORS and redirects by proxies. If we add custom headers
|
|
@@ -13646,7 +13646,7 @@ class __PRIVATE_RestConnection {
|
|
|
13646
13646
|
t && t.headers.forEach(((t, n) => e[n] = t)), n && n.headers.forEach(((t, n) => e[n] = t));
|
|
13647
13647
|
}
|
|
13648
13648
|
So(e, t) {
|
|
13649
|
-
const n =
|
|
13649
|
+
const n = Re[e];
|
|
13650
13650
|
return `${this.mo}/v1/${t}:${n}`;
|
|
13651
13651
|
}
|
|
13652
13652
|
} {
|
|
@@ -13663,17 +13663,17 @@ class __PRIVATE_RestConnection {
|
|
|
13663
13663
|
switch (_.getLastErrorCode()) {
|
|
13664
13664
|
case ErrorCode.NO_ERROR:
|
|
13665
13665
|
const t = _.getResponseJson();
|
|
13666
|
-
__PRIVATE_logDebug(
|
|
13666
|
+
__PRIVATE_logDebug(Ve, `XHR for RPC '${e}' ${i} received:`, JSON.stringify(t)),
|
|
13667
13667
|
s(t);
|
|
13668
13668
|
break;
|
|
13669
13669
|
|
|
13670
13670
|
case ErrorCode.TIMEOUT:
|
|
13671
|
-
__PRIVATE_logDebug(
|
|
13671
|
+
__PRIVATE_logDebug(Ve, `RPC '${e}' ${i} timed out`), o(new FirestoreError(D.DEADLINE_EXCEEDED, "Request time out"));
|
|
13672
13672
|
break;
|
|
13673
13673
|
|
|
13674
13674
|
case ErrorCode.HTTP_ERROR:
|
|
13675
13675
|
const n = _.getStatus();
|
|
13676
|
-
if (__PRIVATE_logDebug(
|
|
13676
|
+
if (__PRIVATE_logDebug(Ve, `RPC '${e}' ${i} failed with status:`, n, "response text:", _.getResponseText()),
|
|
13677
13677
|
n > 0) {
|
|
13678
13678
|
let e = _.getResponseJson();
|
|
13679
13679
|
Array.isArray(e) && (e = e[0]);
|
|
@@ -13681,25 +13681,25 @@ class __PRIVATE_RestConnection {
|
|
|
13681
13681
|
if (t && t.status && t.message) {
|
|
13682
13682
|
const e = function __PRIVATE_mapCodeFromHttpResponseErrorStatus(e) {
|
|
13683
13683
|
const t = e.toLowerCase().replace(/_/g, "-");
|
|
13684
|
-
return Object.values(
|
|
13684
|
+
return Object.values(D).indexOf(t) >= 0 ? t : D.UNKNOWN;
|
|
13685
13685
|
}(t.status);
|
|
13686
13686
|
o(new FirestoreError(e, t.message));
|
|
13687
|
-
} else o(new FirestoreError(
|
|
13687
|
+
} else o(new FirestoreError(D.UNKNOWN, "Server responded with status " + _.getStatus()));
|
|
13688
13688
|
} else
|
|
13689
13689
|
// If we received an HTTP_ERROR but there's no status code,
|
|
13690
13690
|
// it's most probably a connection issue
|
|
13691
|
-
o(new FirestoreError(
|
|
13691
|
+
o(new FirestoreError(D.UNAVAILABLE, "Connection failed."));
|
|
13692
13692
|
break;
|
|
13693
13693
|
|
|
13694
13694
|
default:
|
|
13695
13695
|
fail();
|
|
13696
13696
|
}
|
|
13697
13697
|
} finally {
|
|
13698
|
-
__PRIVATE_logDebug(
|
|
13698
|
+
__PRIVATE_logDebug(Ve, `RPC '${e}' ${i} completed.`);
|
|
13699
13699
|
}
|
|
13700
13700
|
}));
|
|
13701
13701
|
const a = JSON.stringify(r);
|
|
13702
|
-
__PRIVATE_logDebug(
|
|
13702
|
+
__PRIVATE_logDebug(Ve, `RPC '${e}' ${i} sending request:`, r), _.send(t, "POST", a, n, 15);
|
|
13703
13703
|
}));
|
|
13704
13704
|
}
|
|
13705
13705
|
vo(e, t, n) {
|
|
@@ -13727,9 +13727,8 @@ class __PRIVATE_RestConnection {
|
|
|
13727
13727
|
forceLongPolling: this.forceLongPolling,
|
|
13728
13728
|
detectBufferingProxy: this.autoDetectLongPolling
|
|
13729
13729
|
}, a = this.longPollingOptions.timeoutSeconds;
|
|
13730
|
-
void 0 !== a && (_.longPollingTimeout = Math.round(1e3 * a)), this.useFetchStreams && (
|
|
13731
|
-
|
|
13732
|
-
_.xmlHttpFactory = new FetchXmlHttpFactory({})), this.bo(_.initMessageHeaders, t, n),
|
|
13730
|
+
void 0 !== a && (_.longPollingTimeout = Math.round(1e3 * a)), this.useFetchStreams && (_.useFetchStreams = !0),
|
|
13731
|
+
this.bo(_.initMessageHeaders, t, n),
|
|
13733
13732
|
// Sending the custom headers we just added to request.initMessageHeaders
|
|
13734
13733
|
// (Authorization, etc.) will trigger the browser to make a CORS preflight
|
|
13735
13734
|
// request because the XHR will no longer meet the criteria for a "simple"
|
|
@@ -13741,7 +13740,7 @@ class __PRIVATE_RestConnection {
|
|
|
13741
13740
|
// which is recognized by the webchannel backend.
|
|
13742
13741
|
_.encodeInitMessageHeaders = !0;
|
|
13743
13742
|
const u = i.join("");
|
|
13744
|
-
__PRIVATE_logDebug(
|
|
13743
|
+
__PRIVATE_logDebug(Ve, `Creating RPC '${e}' stream ${r}: ${u}`, _);
|
|
13745
13744
|
const c = s.createWebChannel(u, _);
|
|
13746
13745
|
// WebChannel supports sending the first message with the handshake - saving
|
|
13747
13746
|
// a network round trip. However, it will have to call send in the same
|
|
@@ -13754,8 +13753,8 @@ class __PRIVATE_RestConnection {
|
|
|
13754
13753
|
// on a closed stream
|
|
13755
13754
|
const P = new __PRIVATE_StreamBridge({
|
|
13756
13755
|
co: t => {
|
|
13757
|
-
h ? __PRIVATE_logDebug(
|
|
13758
|
-
c.open(), l = !0), __PRIVATE_logDebug(
|
|
13756
|
+
h ? __PRIVATE_logDebug(Ve, `Not sending because RPC '${e}' stream ${r} is closed:`, t) : (l || (__PRIVATE_logDebug(Ve, `Opening RPC '${e}' stream ${r} transport.`),
|
|
13757
|
+
c.open(), l = !0), __PRIVATE_logDebug(Ve, `RPC '${e}' stream ${r} sending:`, t),
|
|
13759
13758
|
c.send(t));
|
|
13760
13759
|
},
|
|
13761
13760
|
lo: () => c.close()
|
|
@@ -13777,13 +13776,13 @@ class __PRIVATE_RestConnection {
|
|
|
13777
13776
|
// Note that eventually this function could go away if we are confident
|
|
13778
13777
|
// enough the code is exception free.
|
|
13779
13778
|
return __PRIVATE_unguardedEventListen(c, WebChannel.EventType.OPEN, (() => {
|
|
13780
|
-
h || __PRIVATE_logDebug(
|
|
13779
|
+
h || __PRIVATE_logDebug(Ve, `RPC '${e}' stream ${r} transport opened.`);
|
|
13781
13780
|
})), __PRIVATE_unguardedEventListen(c, WebChannel.EventType.CLOSE, (() => {
|
|
13782
|
-
h || (h = !0, __PRIVATE_logDebug(
|
|
13781
|
+
h || (h = !0, __PRIVATE_logDebug(Ve, `RPC '${e}' stream ${r} transport closed`),
|
|
13783
13782
|
P.Ro());
|
|
13784
13783
|
})), __PRIVATE_unguardedEventListen(c, WebChannel.EventType.ERROR, (t => {
|
|
13785
|
-
h || (h = !0, __PRIVATE_logWarn(
|
|
13786
|
-
P.Ro(new FirestoreError(
|
|
13784
|
+
h || (h = !0, __PRIVATE_logWarn(Ve, `RPC '${e}' stream ${r} transport errored:`, t),
|
|
13785
|
+
P.Ro(new FirestoreError(D.UNAVAILABLE, "The operation could not be completed")));
|
|
13787
13786
|
})), __PRIVATE_unguardedEventListen(c, WebChannel.EventType.MESSAGE, (t => {
|
|
13788
13787
|
var n;
|
|
13789
13788
|
if (!h) {
|
|
@@ -13796,7 +13795,7 @@ class __PRIVATE_RestConnection {
|
|
|
13796
13795
|
// Use any because msgData.error is not typed.
|
|
13797
13796
|
const s = i, o = s.error || (null === (n = s[0]) || void 0 === n ? void 0 : n.error);
|
|
13798
13797
|
if (o) {
|
|
13799
|
-
__PRIVATE_logDebug(
|
|
13798
|
+
__PRIVATE_logDebug(Ve, `RPC '${e}' stream ${r} received error:`, o);
|
|
13800
13799
|
// error.status will be a string like 'OK' or 'NOT_FOUND'.
|
|
13801
13800
|
const t = o.status;
|
|
13802
13801
|
let n =
|
|
@@ -13809,16 +13808,16 @@ class __PRIVATE_RestConnection {
|
|
|
13809
13808
|
function __PRIVATE_mapCodeFromRpcStatus(e) {
|
|
13810
13809
|
// lookup by string
|
|
13811
13810
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13812
|
-
const t =
|
|
13811
|
+
const t = ae[e];
|
|
13813
13812
|
if (void 0 !== t) return __PRIVATE_mapCodeFromRpcCode(t);
|
|
13814
13813
|
}(t), i = o.message;
|
|
13815
|
-
void 0 === n && (n =
|
|
13814
|
+
void 0 === n && (n = D.INTERNAL, i = "Unknown error status: " + t + " with message " + o.message),
|
|
13816
13815
|
// Mark closed so no further events are propagated
|
|
13817
13816
|
h = !0, P.Ro(new FirestoreError(n, i)), c.close();
|
|
13818
|
-
} else __PRIVATE_logDebug(
|
|
13817
|
+
} else __PRIVATE_logDebug(Ve, `RPC '${e}' stream ${r} received:`, i), P.Vo(i);
|
|
13819
13818
|
}
|
|
13820
13819
|
})), __PRIVATE_unguardedEventListen(o, Event.STAT_EVENT, (t => {
|
|
13821
|
-
t.stat === Stat.PROXY ? __PRIVATE_logDebug(
|
|
13820
|
+
t.stat === Stat.PROXY ? __PRIVATE_logDebug(Ve, `RPC '${e}' stream ${r} detected buffering proxy`) : t.stat === Stat.NOPROXY && __PRIVATE_logDebug(Ve, `RPC '${e}' stream ${r} detected no buffering proxy`);
|
|
13822
13821
|
})), setTimeout((() => {
|
|
13823
13822
|
// Technically we could/should wait for the WebChannel opened event,
|
|
13824
13823
|
// but because we want to send the first message with the WebChannel
|
|
@@ -14142,10 +14141,10 @@ class __PRIVATE_PersistentStream {
|
|
|
14142
14141
|
// underlying stream), guaranteeing they won't execute.
|
|
14143
14142
|
this.Uo++, 4 /* PersistentStreamState.Error */ !== e ?
|
|
14144
14143
|
// If this is an intentional close ensure we don't delay our next connection attempt.
|
|
14145
|
-
this.zo.reset() : t && t.code ===
|
|
14144
|
+
this.zo.reset() : t && t.code === D.RESOURCE_EXHAUSTED ? (
|
|
14146
14145
|
// Log the error. (Probably either 'quota exceeded' or 'max queue length reached'.)
|
|
14147
14146
|
__PRIVATE_logError(t.toString()), __PRIVATE_logError("Using maximum backoff delay to prevent overloading the backend."),
|
|
14148
|
-
this.zo.Lo()) : t && t.code ===
|
|
14147
|
+
this.zo.Lo()) : t && t.code === D.UNAUTHENTICATED && 3 /* PersistentStreamState.Healthy */ !== this.state && (
|
|
14149
14148
|
// "unauthenticated" error means the token was rejected. This should rarely
|
|
14150
14149
|
// happen since both Auth and AppCheck ensure a sufficient TTL when we
|
|
14151
14150
|
// request a token. If a user manually resets their system clock this can
|
|
@@ -14181,7 +14180,7 @@ class __PRIVATE_PersistentStream {
|
|
|
14181
14180
|
this.s_(e, n);
|
|
14182
14181
|
}), (t => {
|
|
14183
14182
|
e((() => {
|
|
14184
|
-
const e = new FirestoreError(
|
|
14183
|
+
const e = new FirestoreError(D.UNKNOWN, "Fetching auth token failed: " + t.message);
|
|
14185
14184
|
return this.o_(e);
|
|
14186
14185
|
}));
|
|
14187
14186
|
}));
|
|
@@ -14394,18 +14393,18 @@ class __PRIVATE_DatastoreImpl extends class Datastore {} {
|
|
|
14394
14393
|
this.serializer = r, this.d_ = !1;
|
|
14395
14394
|
}
|
|
14396
14395
|
A_() {
|
|
14397
|
-
if (this.d_) throw new FirestoreError(
|
|
14396
|
+
if (this.d_) throw new FirestoreError(D.FAILED_PRECONDITION, "The client has already been terminated.");
|
|
14398
14397
|
}
|
|
14399
14398
|
/** Invokes the provided RPC with auth and AppCheck tokens. */ wo(e, t, n) {
|
|
14400
14399
|
return this.A_(), Promise.all([ this.authCredentials.getToken(), this.appCheckCredentials.getToken() ]).then((([r, i]) => this.connection.wo(e, t, n, r, i))).catch((e => {
|
|
14401
|
-
throw "FirebaseError" === e.name ? (e.code ===
|
|
14402
|
-
this.appCheckCredentials.invalidateToken()), e) : new FirestoreError(
|
|
14400
|
+
throw "FirebaseError" === e.name ? (e.code === D.UNAUTHENTICATED && (this.authCredentials.invalidateToken(),
|
|
14401
|
+
this.appCheckCredentials.invalidateToken()), e) : new FirestoreError(D.UNKNOWN, e.toString());
|
|
14403
14402
|
}));
|
|
14404
14403
|
}
|
|
14405
14404
|
/** Invokes the provided RPC with streamed results with auth and AppCheck tokens. */ Co(e, t, n, r) {
|
|
14406
14405
|
return this.A_(), Promise.all([ this.authCredentials.getToken(), this.appCheckCredentials.getToken() ]).then((([i, s]) => this.connection.Co(e, t, n, i, s, r))).catch((e => {
|
|
14407
|
-
throw "FirebaseError" === e.name ? (e.code ===
|
|
14408
|
-
this.appCheckCredentials.invalidateToken()), e) : new FirestoreError(
|
|
14406
|
+
throw "FirebaseError" === e.name ? (e.code === D.UNAUTHENTICATED && (this.authCredentials.invalidateToken(),
|
|
14407
|
+
this.appCheckCredentials.invalidateToken()), e) : new FirestoreError(D.UNKNOWN, e.toString());
|
|
14409
14408
|
}));
|
|
14410
14409
|
}
|
|
14411
14410
|
terminate() {
|
|
@@ -14895,7 +14894,7 @@ async function __PRIVATE_onWriteStreamClose(e, t) {
|
|
|
14895
14894
|
// Only handle permanent errors here. If it's transient, just let the retry
|
|
14896
14895
|
// logic kick in.
|
|
14897
14896
|
if (function __PRIVATE_isPermanentWriteError(e) {
|
|
14898
|
-
return __PRIVATE_isPermanentError(e) && e !==
|
|
14897
|
+
return __PRIVATE_isPermanentError(e) && e !== D.ABORTED;
|
|
14899
14898
|
}(t.code)) {
|
|
14900
14899
|
// This was a permanent error, the request itself was the problem
|
|
14901
14900
|
// so it's not going to succeed if we resend it.
|
|
@@ -15076,7 +15075,7 @@ class DelayedOperation {
|
|
|
15076
15075
|
* As long as the operation has not yet been run, calling cancel() provides a
|
|
15077
15076
|
* guarantee that the operation will not be run.
|
|
15078
15077
|
*/ cancel(e) {
|
|
15079
|
-
null !== this.timerHandle && (this.clearTimeout(), this.deferred.reject(new FirestoreError(
|
|
15078
|
+
null !== this.timerHandle && (this.clearTimeout(), this.deferred.reject(new FirestoreError(D.CANCELLED, "Operation cancelled" + (e ? ": " + e : ""))));
|
|
15080
15079
|
}
|
|
15081
15080
|
handleDelayElapsed() {
|
|
15082
15081
|
this.asyncQueue.enqueueAndForget((() => null !== this.timerHandle ? (this.clearTimeout(),
|
|
@@ -15092,7 +15091,7 @@ class DelayedOperation {
|
|
|
15092
15091
|
* Returns a FirestoreError that can be surfaced to the user if the provided
|
|
15093
15092
|
* error is an IndexedDbTransactionError. Re-throws the error otherwise.
|
|
15094
15093
|
*/ function __PRIVATE_wrapInUserErrorIfRecoverable(e, t) {
|
|
15095
|
-
if (__PRIVATE_logError("AsyncQueue", `${t}: ${e}`), __PRIVATE_isIndexedDbTransactionError(e)) return new FirestoreError(
|
|
15094
|
+
if (__PRIVATE_logError("AsyncQueue", `${t}: ${e}`), __PRIVATE_isIndexedDbTransactionError(e)) return new FirestoreError(D.UNAVAILABLE, `${t}: ${e}`);
|
|
15096
15095
|
throw e;
|
|
15097
15096
|
}
|
|
15098
15097
|
|
|
@@ -16372,7 +16371,7 @@ async function __PRIVATE_syncEngineHandleCredentialChange(e, t) {
|
|
|
16372
16371
|
function __PRIVATE_rejectOutstandingPendingWritesCallbacks(e, t) {
|
|
16373
16372
|
e.ba.forEach((e => {
|
|
16374
16373
|
e.forEach((e => {
|
|
16375
|
-
e.reject(new FirestoreError(
|
|
16374
|
+
e.reject(new FirestoreError(D.CANCELLED, t));
|
|
16376
16375
|
}));
|
|
16377
16376
|
})), e.ba.clear();
|
|
16378
16377
|
}(n, "'waitForPendingWrites' promise is rejected due to a user change."),
|
|
@@ -16801,7 +16800,7 @@ class __PRIVATE_LruGcMemoryOfflineComponentProvider extends MemoryOfflineCompone
|
|
|
16801
16800
|
}
|
|
16802
16801
|
createSharedClientState(e) {
|
|
16803
16802
|
const t = __PRIVATE_getWindow();
|
|
16804
|
-
if (!__PRIVATE_WebStorageSharedClientState.D(t)) throw new FirestoreError(
|
|
16803
|
+
if (!__PRIVATE_WebStorageSharedClientState.D(t)) throw new FirestoreError(D.UNIMPLEMENTED, "IndexedDB persistence is only available on platforms that support LocalStorage.");
|
|
16805
16804
|
const n = __PRIVATE_indexedDbStoragePrefix(e.databaseInfo.databaseId, e.databaseInfo.persistenceKey);
|
|
16806
16805
|
return new __PRIVATE_WebStorageSharedClientState(t, e.asyncQueue, n, e.clientId, e.initialUser);
|
|
16807
16806
|
}
|
|
@@ -17138,7 +17137,7 @@ class Transaction$2 {
|
|
|
17138
17137
|
this.writtenDocs = new Set;
|
|
17139
17138
|
}
|
|
17140
17139
|
async lookup(e) {
|
|
17141
|
-
if (this.ensureCommitNotCalled(), this.mutations.length > 0) throw new FirestoreError(
|
|
17140
|
+
if (this.ensureCommitNotCalled(), this.mutations.length > 0) throw new FirestoreError(D.INVALID_ARGUMENT, "Firestore transactions require all reads to be executed before all writes.");
|
|
17142
17141
|
const t = await async function __PRIVATE_invokeBatchGetDocumentsRpc(e, t) {
|
|
17143
17142
|
const n = __PRIVATE_debugCast(e), r = __PRIVATE_getEncodedDatabaseId(n.serializer) + "/documents", i = {
|
|
17144
17143
|
documents: t.map((e => __PRIVATE_toName(n.serializer, e)))
|
|
@@ -17199,7 +17198,7 @@ class Transaction$2 {
|
|
|
17199
17198
|
if (n) {
|
|
17200
17199
|
if (!t.isEqual(n))
|
|
17201
17200
|
// This transaction will fail no matter what.
|
|
17202
|
-
throw new FirestoreError(
|
|
17201
|
+
throw new FirestoreError(D.ABORTED, "Document version changed between two reads.");
|
|
17203
17202
|
} else this.readVersions.set(e.key.toString(), t);
|
|
17204
17203
|
}
|
|
17205
17204
|
/**
|
|
@@ -17226,7 +17225,7 @@ class Transaction$2 {
|
|
|
17226
17225
|
// express that to the backend, we have to validate locally.
|
|
17227
17226
|
// Note: this can change once we can send separate verify writes in the
|
|
17228
17227
|
// transaction.
|
|
17229
|
-
throw new FirestoreError(
|
|
17228
|
+
throw new FirestoreError(D.INVALID_ARGUMENT, "Can't update a document that doesn't exist.");
|
|
17230
17229
|
// Document exists, base precondition on document update time.
|
|
17231
17230
|
return Precondition.updateTime(t);
|
|
17232
17231
|
}
|
|
@@ -17367,7 +17366,7 @@ class FirestoreClient {
|
|
|
17367
17366
|
* Checks that the client has not been terminated. Ensures that other methods on //
|
|
17368
17367
|
* this class cannot be called after the client is terminated. //
|
|
17369
17368
|
*/ verifyNotTerminated() {
|
|
17370
|
-
if (this.asyncQueue.isShuttingDown) throw new FirestoreError(
|
|
17369
|
+
if (this.asyncQueue.isShuttingDown) throw new FirestoreError(D.FAILED_PRECONDITION, "The client has already been terminated.");
|
|
17371
17370
|
}
|
|
17372
17371
|
terminate() {
|
|
17373
17372
|
this.asyncQueue.enterRestrictedMode();
|
|
@@ -17417,7 +17416,7 @@ async function __PRIVATE_setOnlineComponentProvider(e, t) {
|
|
|
17417
17416
|
* Decides whether the provided error allows us to gracefully disable
|
|
17418
17417
|
* persistence (as opposed to crashing the client).
|
|
17419
17418
|
*/ function __PRIVATE_canFallbackFromIndexedDbError(e) {
|
|
17420
|
-
return "FirebaseError" === e.name ? e.code ===
|
|
17419
|
+
return "FirebaseError" === e.name ? e.code === D.FAILED_PRECONDITION || e.code === D.UNIMPLEMENTED : !("undefined" != typeof DOMException && e instanceof DOMException) || (
|
|
17421
17420
|
// When the browser is out of quota we could get either quota exceeded
|
|
17422
17421
|
// or an aborted error depending on whether the error happened during
|
|
17423
17422
|
// schema migration.
|
|
@@ -17509,7 +17508,7 @@ async function __PRIVATE_getEventManager(e) {
|
|
|
17509
17508
|
const n = __PRIVATE_debugCast(e);
|
|
17510
17509
|
return n.persistence.runTransaction("read document", "readonly", (e => n.localDocuments.getDocument(e, t)));
|
|
17511
17510
|
}(e, t);
|
|
17512
|
-
r.isFoundDocument() ? n.resolve(r) : r.isNoDocument() ? n.resolve(null) : n.reject(new FirestoreError(
|
|
17511
|
+
r.isFoundDocument() ? n.resolve(r) : r.isNoDocument() ? n.resolve(null) : n.reject(new FirestoreError(D.UNAVAILABLE, "Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"));
|
|
17513
17512
|
} catch (e) {
|
|
17514
17513
|
const r = __PRIVATE_wrapInUserErrorIfRecoverable(e, `Failed to get document '${t} from cache`);
|
|
17515
17514
|
n.reject(r);
|
|
@@ -17538,7 +17537,7 @@ function __PRIVATE_firestoreClientGetDocumentViaSnapshotListener(e, t, n = {}) {
|
|
|
17538
17537
|
// the server so we can deliver that even when you're
|
|
17539
17538
|
// offline 2) Actually reject the Promise in the online case
|
|
17540
17539
|
// if the document doesn't exist.
|
|
17541
|
-
i.reject(new FirestoreError(
|
|
17540
|
+
i.reject(new FirestoreError(D.UNAVAILABLE, "Failed to get document because the client is offline.")) : _ && s.fromCache && r && "server" === r.source ? i.reject(new FirestoreError(D.UNAVAILABLE, 'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')) : i.resolve(s);
|
|
17542
17541
|
},
|
|
17543
17542
|
error: e => i.reject(e)
|
|
17544
17543
|
}), o = new __PRIVATE_QueryListener(__PRIVATE_newQueryForPath(n.path), s, {
|
|
@@ -17575,7 +17574,7 @@ function __PRIVATE_firestoreClientGetDocumentsViaSnapshotListener(e, t, n = {})
|
|
|
17575
17574
|
next: n => {
|
|
17576
17575
|
// Remove query first before passing event to user to avoid
|
|
17577
17576
|
// user actions affecting the now stale query.
|
|
17578
|
-
t.enqueueAndForget((() => __PRIVATE_eventManagerUnlisten(e, o))), n.fromCache && "server" === r.source ? i.reject(new FirestoreError(
|
|
17577
|
+
t.enqueueAndForget((() => __PRIVATE_eventManagerUnlisten(e, o))), n.fromCache && "server" === r.source ? i.reject(new FirestoreError(D.UNAVAILABLE, 'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')) : i.resolve(n);
|
|
17579
17578
|
},
|
|
17580
17579
|
error: e => i.reject(e)
|
|
17581
17580
|
}), o = new __PRIVATE_QueryListener(n, s, {
|
|
@@ -17775,7 +17774,7 @@ function __PRIVATE_cloneLongPollingOptions(e) {
|
|
|
17775
17774
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17776
17775
|
* See the License for the specific language governing permissions and
|
|
17777
17776
|
* limitations under the License.
|
|
17778
|
-
*/ const
|
|
17777
|
+
*/ const me = new Map;
|
|
17779
17778
|
|
|
17780
17779
|
/**
|
|
17781
17780
|
* An instance map that ensures only one Datastore exists per Firestore
|
|
@@ -17798,28 +17797,28 @@ function __PRIVATE_cloneLongPollingOptions(e) {
|
|
|
17798
17797
|
* limitations under the License.
|
|
17799
17798
|
*/
|
|
17800
17799
|
function __PRIVATE_validateNonEmptyArgument(e, t, n) {
|
|
17801
|
-
if (!n) throw new FirestoreError(
|
|
17800
|
+
if (!n) throw new FirestoreError(D.INVALID_ARGUMENT, `Function ${e}() cannot be called with an empty ${t}.`);
|
|
17802
17801
|
}
|
|
17803
17802
|
|
|
17804
17803
|
/**
|
|
17805
17804
|
* Validates that two boolean options are not set at the same time.
|
|
17806
17805
|
* @internal
|
|
17807
17806
|
*/ function __PRIVATE_validateIsNotUsedTogether(e, t, n, r) {
|
|
17808
|
-
if (!0 === t && !0 === r) throw new FirestoreError(
|
|
17807
|
+
if (!0 === t && !0 === r) throw new FirestoreError(D.INVALID_ARGUMENT, `${e} and ${n} cannot be used together.`);
|
|
17809
17808
|
}
|
|
17810
17809
|
|
|
17811
17810
|
/**
|
|
17812
17811
|
* Validates that `path` refers to a document (indicated by the fact it contains
|
|
17813
17812
|
* an even numbers of segments).
|
|
17814
17813
|
*/ function __PRIVATE_validateDocumentPath(e) {
|
|
17815
|
-
if (!DocumentKey.isDocumentKey(e)) throw new FirestoreError(
|
|
17814
|
+
if (!DocumentKey.isDocumentKey(e)) throw new FirestoreError(D.INVALID_ARGUMENT, `Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`);
|
|
17816
17815
|
}
|
|
17817
17816
|
|
|
17818
17817
|
/**
|
|
17819
17818
|
* Validates that `path` refers to a collection (indicated by the fact it
|
|
17820
17819
|
* contains an odd numbers of segments).
|
|
17821
17820
|
*/ function __PRIVATE_validateCollectionPath(e) {
|
|
17822
|
-
if (DocumentKey.isDocumentKey(e)) throw new FirestoreError(
|
|
17821
|
+
if (DocumentKey.isDocumentKey(e)) throw new FirestoreError(D.INVALID_ARGUMENT, `Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`);
|
|
17823
17822
|
}
|
|
17824
17823
|
|
|
17825
17824
|
/**
|
|
@@ -17863,17 +17862,17 @@ t) {
|
|
|
17863
17862
|
// Unwrap Compat types
|
|
17864
17863
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
17865
17864
|
e = e._delegate), !(e instanceof t)) {
|
|
17866
|
-
if (t.name === e.constructor.name) throw new FirestoreError(
|
|
17865
|
+
if (t.name === e.constructor.name) throw new FirestoreError(D.INVALID_ARGUMENT, "Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");
|
|
17867
17866
|
{
|
|
17868
17867
|
const n = __PRIVATE_valueDescription(e);
|
|
17869
|
-
throw new FirestoreError(
|
|
17868
|
+
throw new FirestoreError(D.INVALID_ARGUMENT, `Expected type '${t.name}', but it was: ${n}`);
|
|
17870
17869
|
}
|
|
17871
17870
|
}
|
|
17872
17871
|
return e;
|
|
17873
17872
|
}
|
|
17874
17873
|
|
|
17875
17874
|
function __PRIVATE_validatePositiveNumber(e, t) {
|
|
17876
|
-
if (t <= 0) throw new FirestoreError(
|
|
17875
|
+
if (t <= 0) throw new FirestoreError(D.INVALID_ARGUMENT, `Function ${e}() requires a positive number, but it was: ${t}.`);
|
|
17877
17876
|
}
|
|
17878
17877
|
|
|
17879
17878
|
/**
|
|
@@ -17902,12 +17901,12 @@ class FirestoreSettingsImpl {
|
|
|
17902
17901
|
constructor(e) {
|
|
17903
17902
|
var t, n;
|
|
17904
17903
|
if (void 0 === e.host) {
|
|
17905
|
-
if (void 0 !== e.ssl) throw new FirestoreError(
|
|
17904
|
+
if (void 0 !== e.ssl) throw new FirestoreError(D.INVALID_ARGUMENT, "Can't provide ssl option if host option is not set");
|
|
17906
17905
|
this.host = "firestore.googleapis.com", this.ssl = true;
|
|
17907
17906
|
} else this.host = e.host, this.ssl = null === (t = e.ssl) || void 0 === t || t;
|
|
17908
17907
|
if (this.credentials = e.credentials, this.ignoreUndefinedProperties = !!e.ignoreUndefinedProperties,
|
|
17909
17908
|
this.localCache = e.localCache, void 0 === e.cacheSizeBytes) this.cacheSizeBytes = 41943040; else {
|
|
17910
|
-
if (-1 !== e.cacheSizeBytes && e.cacheSizeBytes < 1048576) throw new FirestoreError(
|
|
17909
|
+
if (-1 !== e.cacheSizeBytes && e.cacheSizeBytes < 1048576) throw new FirestoreError(D.INVALID_ARGUMENT, "cacheSizeBytes must be at least 1048576");
|
|
17911
17910
|
this.cacheSizeBytes = e.cacheSizeBytes;
|
|
17912
17911
|
}
|
|
17913
17912
|
__PRIVATE_validateIsNotUsedTogether("experimentalForceLongPolling", e.experimentalForceLongPolling, "experimentalAutoDetectLongPolling", e.experimentalAutoDetectLongPolling),
|
|
@@ -17919,9 +17918,9 @@ class FirestoreSettingsImpl {
|
|
|
17919
17918
|
this.experimentalLongPollingOptions = __PRIVATE_cloneLongPollingOptions(null !== (n = e.experimentalLongPollingOptions) && void 0 !== n ? n : {}),
|
|
17920
17919
|
function __PRIVATE_validateLongPollingOptions(e) {
|
|
17921
17920
|
if (void 0 !== e.timeoutSeconds) {
|
|
17922
|
-
if (isNaN(e.timeoutSeconds)) throw new FirestoreError(
|
|
17923
|
-
if (e.timeoutSeconds < 5) throw new FirestoreError(
|
|
17924
|
-
if (e.timeoutSeconds > 30) throw new FirestoreError(
|
|
17921
|
+
if (isNaN(e.timeoutSeconds)) throw new FirestoreError(D.INVALID_ARGUMENT, `invalid long polling timeout: ${e.timeoutSeconds} (must not be NaN)`);
|
|
17922
|
+
if (e.timeoutSeconds < 5) throw new FirestoreError(D.INVALID_ARGUMENT, `invalid long polling timeout: ${e.timeoutSeconds} (minimum allowed value is 5)`);
|
|
17923
|
+
if (e.timeoutSeconds > 30) throw new FirestoreError(D.INVALID_ARGUMENT, `invalid long polling timeout: ${e.timeoutSeconds} (maximum allowed value is 30)`);
|
|
17925
17924
|
}
|
|
17926
17925
|
}
|
|
17927
17926
|
/**
|
|
@@ -17968,7 +17967,7 @@ class Firestore$1 {
|
|
|
17968
17967
|
* The {@link @firebase/app#FirebaseApp} associated with this `Firestore` service
|
|
17969
17968
|
* instance.
|
|
17970
17969
|
*/ get app() {
|
|
17971
|
-
if (!this._app) throw new FirestoreError(
|
|
17970
|
+
if (!this._app) throw new FirestoreError(D.FAILED_PRECONDITION, "Firestore was not initialized using the Firebase SDK. 'app' is not available");
|
|
17972
17971
|
return this._app;
|
|
17973
17972
|
}
|
|
17974
17973
|
get _initialized() {
|
|
@@ -17978,7 +17977,7 @@ class Firestore$1 {
|
|
|
17978
17977
|
return void 0 !== this._terminateTask;
|
|
17979
17978
|
}
|
|
17980
17979
|
_setSettings(e) {
|
|
17981
|
-
if (this._settingsFrozen) throw new FirestoreError(
|
|
17980
|
+
if (this._settingsFrozen) throw new FirestoreError(D.FAILED_PRECONDITION, "Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");
|
|
17982
17981
|
this._settings = new FirestoreSettingsImpl(e), void 0 !== e.credentials && (this._authCredentials = function __PRIVATE_makeAuthCredentialsProvider(e) {
|
|
17983
17982
|
if (!e) return new __PRIVATE_EmptyAuthCredentialsProvider;
|
|
17984
17983
|
switch (e.type) {
|
|
@@ -17989,7 +17988,7 @@ class Firestore$1 {
|
|
|
17989
17988
|
return e.client;
|
|
17990
17989
|
|
|
17991
17990
|
default:
|
|
17992
|
-
throw new FirestoreError(
|
|
17991
|
+
throw new FirestoreError(D.INVALID_ARGUMENT, "makeAuthCredentialsProvider failed due to invalid credential type");
|
|
17993
17992
|
}
|
|
17994
17993
|
}(e.credentials));
|
|
17995
17994
|
}
|
|
@@ -18021,8 +18020,8 @@ class Firestore$1 {
|
|
|
18021
18020
|
* when the `Firestore` instance is terminated.
|
|
18022
18021
|
*/
|
|
18023
18022
|
return function __PRIVATE_removeComponents(e) {
|
|
18024
|
-
const t =
|
|
18025
|
-
t && (__PRIVATE_logDebug("ComponentProvider", "Removing Datastore"),
|
|
18023
|
+
const t = me.get(e);
|
|
18024
|
+
t && (__PRIVATE_logDebug("ComponentProvider", "Removing Datastore"), me.delete(e),
|
|
18026
18025
|
t.terminate());
|
|
18027
18026
|
}(this), Promise.resolve();
|
|
18028
18027
|
}
|
|
@@ -18054,7 +18053,7 @@ class Firestore$1 {
|
|
|
18054
18053
|
// invalid field "uid" and missing field "sub" / "user_id".)
|
|
18055
18054
|
t = createMockUserToken(r.mockUserToken, null === (i = e._app) || void 0 === i ? void 0 : i.options.projectId);
|
|
18056
18055
|
const s = r.mockUserToken.sub || r.mockUserToken.user_id;
|
|
18057
|
-
if (!s) throw new FirestoreError(
|
|
18056
|
+
if (!s) throw new FirestoreError(D.INVALID_ARGUMENT, "mockUserToken must contain 'sub' or 'user_id' field!");
|
|
18058
18057
|
n = new User(s);
|
|
18059
18058
|
}
|
|
18060
18059
|
e._authCredentials = new __PRIVATE_EmulatorAuthCredentialsProvider(new __PRIVATE_OAuthToken(t, n));
|
|
@@ -18174,7 +18173,7 @@ function collection(e, t, ...n) {
|
|
|
18174
18173
|
return __PRIVATE_validateCollectionPath(r), new CollectionReference(e, /* converter= */ null, r);
|
|
18175
18174
|
}
|
|
18176
18175
|
{
|
|
18177
|
-
if (!(e instanceof DocumentReference || e instanceof CollectionReference)) throw new FirestoreError(
|
|
18176
|
+
if (!(e instanceof DocumentReference || e instanceof CollectionReference)) throw new FirestoreError(D.INVALID_ARGUMENT, "Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");
|
|
18178
18177
|
const r = e._path.child(ResourcePath.fromString(t, ...n));
|
|
18179
18178
|
return __PRIVATE_validateCollectionPath(r), new CollectionReference(e.firestore,
|
|
18180
18179
|
/* converter= */ null, r);
|
|
@@ -18195,7 +18194,7 @@ function collection(e, t, ...n) {
|
|
|
18195
18194
|
* @returns The created `Query`.
|
|
18196
18195
|
*/ function collectionGroup(e, t) {
|
|
18197
18196
|
if (e = __PRIVATE_cast(e, Firestore$1), __PRIVATE_validateNonEmptyArgument("collectionGroup", "collection id", t),
|
|
18198
|
-
t.indexOf("/") >= 0) throw new FirestoreError(
|
|
18197
|
+
t.indexOf("/") >= 0) throw new FirestoreError(D.INVALID_ARGUMENT, `Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);
|
|
18199
18198
|
return new Query(e,
|
|
18200
18199
|
/* converter= */ null, function __PRIVATE_newQueryForCollectionGroup(e) {
|
|
18201
18200
|
return new __PRIVATE_QueryImpl(ResourcePath.emptyPath(), e);
|
|
@@ -18213,7 +18212,7 @@ function doc(e, t, ...n) {
|
|
|
18213
18212
|
/* converter= */ null, new DocumentKey(r));
|
|
18214
18213
|
}
|
|
18215
18214
|
{
|
|
18216
|
-
if (!(e instanceof DocumentReference || e instanceof CollectionReference)) throw new FirestoreError(
|
|
18215
|
+
if (!(e instanceof DocumentReference || e instanceof CollectionReference)) throw new FirestoreError(D.INVALID_ARGUMENT, "Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");
|
|
18217
18216
|
const r = e._path.child(ResourcePath.fromString(t, ...n));
|
|
18218
18217
|
return __PRIVATE_validateDocumentPath(r), new DocumentReference(e.firestore, e instanceof CollectionReference ? e.converter : null, new DocumentKey(r));
|
|
18219
18218
|
}
|
|
@@ -18573,7 +18572,7 @@ class LoadBundleTask {
|
|
|
18573
18572
|
* Constant used to indicate the LRU garbage collection should be disabled.
|
|
18574
18573
|
* Set this value as the `cacheSizeBytes` on the settings passed to the
|
|
18575
18574
|
* {@link Firestore} instance.
|
|
18576
|
-
*/ const
|
|
18575
|
+
*/ const fe = -1;
|
|
18577
18576
|
|
|
18578
18577
|
/**
|
|
18579
18578
|
* The Cloud Firestore service interface.
|
|
@@ -18617,10 +18616,10 @@ class LoadBundleTask {
|
|
|
18617
18616
|
identifier: n
|
|
18618
18617
|
}), i = r.getOptions(n);
|
|
18619
18618
|
if (deepEqual(i, t)) return e;
|
|
18620
|
-
throw new FirestoreError(
|
|
18619
|
+
throw new FirestoreError(D.FAILED_PRECONDITION, "initializeFirestore() has already been called with different options. To avoid this error, call initializeFirestore() with the same options as when it was originally called, or call getFirestore() to return the already initialized instance.");
|
|
18621
18620
|
}
|
|
18622
|
-
if (void 0 !== t.cacheSizeBytes && void 0 !== t.localCache) throw new FirestoreError(
|
|
18623
|
-
if (void 0 !== t.cacheSizeBytes && -1 !== t.cacheSizeBytes && t.cacheSizeBytes < 1048576) throw new FirestoreError(
|
|
18621
|
+
if (void 0 !== t.cacheSizeBytes && void 0 !== t.localCache) throw new FirestoreError(D.INVALID_ARGUMENT, "cache and cacheSizeBytes cannot be specified at the same time as cacheSizeBytes willbe deprecated. Instead, specify the cache size in the cache object");
|
|
18622
|
+
if (void 0 !== t.cacheSizeBytes && -1 !== t.cacheSizeBytes && t.cacheSizeBytes < 1048576) throw new FirestoreError(D.INVALID_ARGUMENT, "cacheSizeBytes must be at least 1048576");
|
|
18624
18623
|
return r.initialize({
|
|
18625
18624
|
options: t,
|
|
18626
18625
|
instanceIdentifier: n
|
|
@@ -18689,7 +18688,7 @@ function __PRIVATE_configureFirestore(e) {
|
|
|
18689
18688
|
*/ function enableIndexedDbPersistence(e, t) {
|
|
18690
18689
|
__PRIVATE_verifyNotInitialized(e = __PRIVATE_cast(e, Firestore));
|
|
18691
18690
|
const n = ensureFirestoreConfigured(e);
|
|
18692
|
-
if (n._uninitializedComponentsProvider) throw new FirestoreError(
|
|
18691
|
+
if (n._uninitializedComponentsProvider) throw new FirestoreError(D.FAILED_PRECONDITION, "SDK cache is already specified.");
|
|
18693
18692
|
__PRIVATE_logWarn("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");
|
|
18694
18693
|
const r = e._freezeSettings(), i = new OnlineComponentProvider;
|
|
18695
18694
|
return __PRIVATE_setPersistenceProviders(n, i, new __PRIVATE_IndexedDbOfflineComponentProvider(i, r.cacheSizeBytes, null == t ? void 0 : t.forceOwnership));
|
|
@@ -18723,7 +18722,7 @@ function __PRIVATE_configureFirestore(e) {
|
|
|
18723
18722
|
*/ function enableMultiTabIndexedDbPersistence(e) {
|
|
18724
18723
|
__PRIVATE_verifyNotInitialized(e = __PRIVATE_cast(e, Firestore));
|
|
18725
18724
|
const t = ensureFirestoreConfigured(e);
|
|
18726
|
-
if (t._uninitializedComponentsProvider) throw new FirestoreError(
|
|
18725
|
+
if (t._uninitializedComponentsProvider) throw new FirestoreError(D.FAILED_PRECONDITION, "SDK cache is already specified.");
|
|
18727
18726
|
__PRIVATE_logWarn("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");
|
|
18728
18727
|
const n = e._freezeSettings(), r = new OnlineComponentProvider;
|
|
18729
18728
|
return __PRIVATE_setPersistenceProviders(t, r, new __PRIVATE_MultiTabOfflineComponentProvider(r, n.cacheSizeBytes));
|
|
@@ -18771,7 +18770,7 @@ function __PRIVATE_configureFirestore(e) {
|
|
|
18771
18770
|
* @returns A `Promise` that is resolved when the persistent storage is
|
|
18772
18771
|
* cleared. Otherwise, the promise is rejected with an error.
|
|
18773
18772
|
*/ function clearIndexedDbPersistence(e) {
|
|
18774
|
-
if (e._initialized && !e._terminated) throw new FirestoreError(
|
|
18773
|
+
if (e._initialized && !e._terminated) throw new FirestoreError(D.FAILED_PRECONDITION, "Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");
|
|
18775
18774
|
const t = new __PRIVATE_Deferred;
|
|
18776
18775
|
return e._queue.enqueueAndForgetEvenWhileRestricted((async () => {
|
|
18777
18776
|
try {
|
|
@@ -18885,7 +18884,7 @@ function __PRIVATE_configureFirestore(e) {
|
|
|
18885
18884
|
}
|
|
18886
18885
|
|
|
18887
18886
|
function __PRIVATE_verifyNotInitialized(e) {
|
|
18888
|
-
if (e._initialized || e._terminated) throw new FirestoreError(
|
|
18887
|
+
if (e._initialized || e._terminated) throw new FirestoreError(D.FAILED_PRECONDITION, "Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.");
|
|
18889
18888
|
}
|
|
18890
18889
|
|
|
18891
18890
|
/**
|
|
@@ -18994,7 +18993,7 @@ class AggregateField {
|
|
|
18994
18993
|
try {
|
|
18995
18994
|
return new Bytes(ByteString.fromBase64String(e));
|
|
18996
18995
|
} catch (e) {
|
|
18997
|
-
throw new FirestoreError(
|
|
18996
|
+
throw new FirestoreError(D.INVALID_ARGUMENT, "Failed to construct data from Base64 string: " + e);
|
|
18998
18997
|
}
|
|
18999
18998
|
}
|
|
19000
18999
|
/**
|
|
@@ -19066,7 +19065,7 @@ class AggregateField {
|
|
|
19066
19065
|
* @param fieldNames - A list of field names.
|
|
19067
19066
|
*/
|
|
19068
19067
|
constructor(...e) {
|
|
19069
|
-
for (let t = 0; t < e.length; ++t) if (0 === e[t].length) throw new FirestoreError(
|
|
19068
|
+
for (let t = 0; t < e.length; ++t) if (0 === e[t].length) throw new FirestoreError(D.INVALID_ARGUMENT, "Invalid field name at argument $(i + 1). Field names must not be empty.");
|
|
19070
19069
|
this._internalPath = new FieldPath$1(e);
|
|
19071
19070
|
}
|
|
19072
19071
|
/**
|
|
@@ -19145,8 +19144,8 @@ class AggregateField {
|
|
|
19145
19144
|
* @param longitude - The longitude as number between -180 and 180.
|
|
19146
19145
|
*/
|
|
19147
19146
|
constructor(e, t) {
|
|
19148
|
-
if (!isFinite(e) || e < -90 || e > 90) throw new FirestoreError(
|
|
19149
|
-
if (!isFinite(t) || t < -180 || t > 180) throw new FirestoreError(
|
|
19147
|
+
if (!isFinite(e) || e < -90 || e > 90) throw new FirestoreError(D.INVALID_ARGUMENT, "Latitude must be a number between -90 and 90, but was: " + e);
|
|
19148
|
+
if (!isFinite(t) || t < -180 || t > 180) throw new FirestoreError(D.INVALID_ARGUMENT, "Longitude must be a number between -180 and 180, but was: " + t);
|
|
19150
19149
|
this._lat = e, this._long = t;
|
|
19151
19150
|
}
|
|
19152
19151
|
/**
|
|
@@ -19196,7 +19195,7 @@ class AggregateField {
|
|
|
19196
19195
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19197
19196
|
* See the License for the specific language governing permissions and
|
|
19198
19197
|
* limitations under the License.
|
|
19199
|
-
*/ const
|
|
19198
|
+
*/ const ge = /^__.*__$/;
|
|
19200
19199
|
|
|
19201
19200
|
/** The result of parsing document data (e.g. for a setData call). */ class ParsedSetData {
|
|
19202
19201
|
constructor(e, t, n) {
|
|
@@ -19307,7 +19306,7 @@ function __PRIVATE_isWrite(e) {
|
|
|
19307
19306
|
}
|
|
19308
19307
|
Au(e) {
|
|
19309
19308
|
if (0 === e.length) throw this.mu("Document fields must not be empty");
|
|
19310
|
-
if (__PRIVATE_isWrite(this.Iu) &&
|
|
19309
|
+
if (__PRIVATE_isWrite(this.Iu) && ge.test(e)) throw this.mu('Document fields cannot begin and end with "__"');
|
|
19311
19310
|
}
|
|
19312
19311
|
}
|
|
19313
19312
|
|
|
@@ -19344,7 +19343,7 @@ function __PRIVATE_newUserDataReader(e) {
|
|
|
19344
19343
|
const e = [];
|
|
19345
19344
|
for (const r of s.mergeFields) {
|
|
19346
19345
|
const i = __PRIVATE_fieldPathFromArgument$1(t, r, n);
|
|
19347
|
-
if (!o.contains(i)) throw new FirestoreError(
|
|
19346
|
+
if (!o.contains(i)) throw new FirestoreError(D.INVALID_ARGUMENT, `Field '${i}' is specified in your field mask but missing from your input data.`);
|
|
19348
19347
|
__PRIVATE_fieldMaskContains(e, i) || e.push(i);
|
|
19349
19348
|
}
|
|
19350
19349
|
a = new FieldMask(e), u = o.fieldTransforms.filter((e => a.covers(e.field)));
|
|
@@ -19464,7 +19463,7 @@ class __PRIVATE_NumericIncrementFieldValueImpl extends FieldValue {
|
|
|
19464
19463
|
|
|
19465
19464
|
/** Parse update data from a list of field/value arguments. */ function __PRIVATE_parseUpdateVarargs(e, t, n, r, i, s) {
|
|
19466
19465
|
const o = e.pu(1 /* UserDataSource.Update */ , t, n), _ = [ __PRIVATE_fieldPathFromArgument$1(t, r, n) ], a = [ i ];
|
|
19467
|
-
if (s.length % 2 != 0) throw new FirestoreError(
|
|
19466
|
+
if (s.length % 2 != 0) throw new FirestoreError(D.INVALID_ARGUMENT, `Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);
|
|
19468
19467
|
for (let e = 0; e < s.length; e += 2) _.push(__PRIVATE_fieldPathFromArgument$1(t, s[e])),
|
|
19469
19468
|
a.push(s[e + 1]);
|
|
19470
19469
|
const u = [], c = ObjectValue.empty();
|
|
@@ -19665,7 +19664,7 @@ function __PRIVATE_validatePlainObject(e, t, n) {
|
|
|
19665
19664
|
|
|
19666
19665
|
/**
|
|
19667
19666
|
* Matches any characters in a field path string that are reserved.
|
|
19668
|
-
*/ const
|
|
19667
|
+
*/ const pe = new RegExp("[~\\*/\\[\\]]");
|
|
19669
19668
|
|
|
19670
19669
|
/**
|
|
19671
19670
|
* Wraps fromDotSeparatedString with an error message about the method that
|
|
@@ -19676,7 +19675,7 @@ function __PRIVATE_validatePlainObject(e, t, n) {
|
|
|
19676
19675
|
* @param targetDoc - The document against which the field path will be
|
|
19677
19676
|
* evaluated.
|
|
19678
19677
|
*/ function __PRIVATE_fieldPathFromDotSeparatedString(e, t, n) {
|
|
19679
|
-
if (t.search(
|
|
19678
|
+
if (t.search(pe) >= 0) throw __PRIVATE_createError(`Invalid field path (${t}). Paths must not contain '~', '*', '/', '[', or ']'`, e,
|
|
19680
19679
|
/* hasConverter= */ !1,
|
|
19681
19680
|
/* path= */ void 0, n);
|
|
19682
19681
|
try {
|
|
@@ -19694,7 +19693,7 @@ function __PRIVATE_createError(e, t, n, r, i) {
|
|
|
19694
19693
|
n && (_ += " (via `toFirestore()`)"), _ += ". ";
|
|
19695
19694
|
let a = "";
|
|
19696
19695
|
return (s || o) && (a += " (found", s && (a += ` in field ${r}`), o && (a += ` in document ${i}`),
|
|
19697
|
-
a += ")"), new FirestoreError(
|
|
19696
|
+
a += ")"), new FirestoreError(D.INVALID_ARGUMENT, _ + e + a);
|
|
19698
19697
|
}
|
|
19699
19698
|
|
|
19700
19699
|
/** Checks `haystack` if FieldPath `needle` is present. Runs in O(n). */ function __PRIVATE_fieldMaskContains(e, t) {
|
|
@@ -19831,7 +19830,7 @@ function __PRIVATE_createError(e, t, n, r, i) {
|
|
|
19831
19830
|
* See the License for the specific language governing permissions and
|
|
19832
19831
|
* limitations under the License.
|
|
19833
19832
|
*/ function __PRIVATE_validateHasExplicitOrderByForLimitToLast(e) {
|
|
19834
|
-
if ("L" /* LimitType.Last */ === e.limitType && 0 === e.explicitOrderBy.length) throw new FirestoreError(
|
|
19833
|
+
if ("L" /* LimitType.Last */ === e.limitType && 0 === e.explicitOrderBy.length) throw new FirestoreError(D.UNIMPLEMENTED, "limitToLast() queries require specifying at least one orderBy() clause");
|
|
19835
19834
|
}
|
|
19836
19835
|
|
|
19837
19836
|
/**
|
|
@@ -19852,7 +19851,7 @@ function query(e, t, ...n) {
|
|
|
19852
19851
|
let r = [];
|
|
19853
19852
|
t instanceof AppliableConstraint && r.push(t), r = r.concat(n), function __PRIVATE_validateQueryConstraintArray(e) {
|
|
19854
19853
|
const t = e.filter((e => e instanceof QueryCompositeFilterConstraint)).length, n = e.filter((e => e instanceof QueryFieldFilterConstraint)).length;
|
|
19855
|
-
if (t > 1 || t > 0 && n > 0) throw new FirestoreError(
|
|
19854
|
+
if (t > 1 || t > 0 && n > 0) throw new FirestoreError(D.INVALID_ARGUMENT, "InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.");
|
|
19856
19855
|
}
|
|
19857
19856
|
/**
|
|
19858
19857
|
* @license
|
|
@@ -19906,7 +19905,7 @@ function query(e, t, ...n) {
|
|
|
19906
19905
|
const t = __PRIVATE_newUserDataReader(e.firestore), n = function __PRIVATE_newQueryFilter(e, t, n, r, i, s, o) {
|
|
19907
19906
|
let _;
|
|
19908
19907
|
if (i.isKeyField()) {
|
|
19909
|
-
if ("array-contains" /* Operator.ARRAY_CONTAINS */ === s || "array-contains-any" /* Operator.ARRAY_CONTAINS_ANY */ === s) throw new FirestoreError(
|
|
19908
|
+
if ("array-contains" /* Operator.ARRAY_CONTAINS */ === s || "array-contains-any" /* Operator.ARRAY_CONTAINS_ANY */ === s) throw new FirestoreError(D.INVALID_ARGUMENT, `Invalid Query. You can't perform '${s}' queries on documentId().`);
|
|
19910
19909
|
if ("in" /* Operator.IN */ === s || "not-in" /* Operator.NOT_IN */ === s) {
|
|
19911
19910
|
__PRIVATE_validateDisjunctiveFilterElements(o, s);
|
|
19912
19911
|
const t = [];
|
|
@@ -20033,8 +20032,8 @@ function query(e, t, ...n) {
|
|
|
20033
20032
|
}
|
|
20034
20033
|
_apply(e) {
|
|
20035
20034
|
const t = function __PRIVATE_newQueryOrderBy(e, t, n) {
|
|
20036
|
-
if (null !== e.startAt) throw new FirestoreError(
|
|
20037
|
-
if (null !== e.endAt) throw new FirestoreError(
|
|
20035
|
+
if (null !== e.startAt) throw new FirestoreError(D.INVALID_ARGUMENT, "Invalid query. You must not call startAt() or startAfter() before calling orderBy().");
|
|
20036
|
+
if (null !== e.endAt) throw new FirestoreError(D.INVALID_ARGUMENT, "Invalid query. You must not call endAt() or endBefore() before calling orderBy().");
|
|
20038
20037
|
return new OrderBy(t, n);
|
|
20039
20038
|
}
|
|
20040
20039
|
/**
|
|
@@ -20192,7 +20191,7 @@ function endAt(...e) {
|
|
|
20192
20191
|
|
|
20193
20192
|
/** Helper function to create a bound from a document or fields */ function __PRIVATE_newQueryBoundFromDocOrFields(e, t, n, r) {
|
|
20194
20193
|
if (n[0] = getModularInstance(n[0]), n[0] instanceof DocumentSnapshot$1) return function __PRIVATE_newQueryBoundFromDocument(e, t, n, r, i) {
|
|
20195
|
-
if (!r) throw new FirestoreError(
|
|
20194
|
+
if (!r) throw new FirestoreError(D.NOT_FOUND, `Can't use a DocumentSnapshot that doesn't exist for ${n}().`);
|
|
20196
20195
|
const s = [];
|
|
20197
20196
|
// Because people expect to continue/end a query at the exact document
|
|
20198
20197
|
// provided, we need to use the implicit sort order rather than the explicit
|
|
@@ -20203,10 +20202,10 @@ function endAt(...e) {
|
|
|
20203
20202
|
// results.
|
|
20204
20203
|
for (const n of __PRIVATE_queryNormalizedOrderBy(e)) if (n.field.isKeyField()) s.push(__PRIVATE_refValue(t, r.key)); else {
|
|
20205
20204
|
const e = r.data.field(n.field);
|
|
20206
|
-
if (__PRIVATE_isServerTimestamp(e)) throw new FirestoreError(
|
|
20205
|
+
if (__PRIVATE_isServerTimestamp(e)) throw new FirestoreError(D.INVALID_ARGUMENT, 'Invalid query. You are trying to start or end a query using a document for which the field "' + n.field + '" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');
|
|
20207
20206
|
if (null === e) {
|
|
20208
20207
|
const e = n.field.canonicalString();
|
|
20209
|
-
throw new FirestoreError(
|
|
20208
|
+
throw new FirestoreError(D.INVALID_ARGUMENT, `Invalid query. You are trying to start or end a query using a document for which the field '${e}' (used as the orderBy) does not exist.`);
|
|
20210
20209
|
}
|
|
20211
20210
|
s.push(e);
|
|
20212
20211
|
}
|
|
@@ -20220,15 +20219,15 @@ function endAt(...e) {
|
|
|
20220
20219
|
return function __PRIVATE_newQueryBoundFromFields(e, t, n, r, i, s) {
|
|
20221
20220
|
// Use explicit order by's because it has to match the query the user made
|
|
20222
20221
|
const o = e.explicitOrderBy;
|
|
20223
|
-
if (i.length > o.length) throw new FirestoreError(
|
|
20222
|
+
if (i.length > o.length) throw new FirestoreError(D.INVALID_ARGUMENT, `Too many arguments provided to ${r}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);
|
|
20224
20223
|
const _ = [];
|
|
20225
20224
|
for (let s = 0; s < i.length; s++) {
|
|
20226
20225
|
const a = i[s];
|
|
20227
20226
|
if (o[s].field.isKeyField()) {
|
|
20228
|
-
if ("string" != typeof a) throw new FirestoreError(
|
|
20229
|
-
if (!__PRIVATE_isCollectionGroupQuery(e) && -1 !== a.indexOf("/")) throw new FirestoreError(
|
|
20227
|
+
if ("string" != typeof a) throw new FirestoreError(D.INVALID_ARGUMENT, `Invalid query. Expected a string for document ID in ${r}(), but got a ${typeof a}`);
|
|
20228
|
+
if (!__PRIVATE_isCollectionGroupQuery(e) && -1 !== a.indexOf("/")) throw new FirestoreError(D.INVALID_ARGUMENT, `Invalid query. When querying a collection and ordering by documentId(), the value passed to ${r}() must be a plain document ID, but '${a}' contains a slash.`);
|
|
20230
20229
|
const n = e.path.child(ResourcePath.fromString(a));
|
|
20231
|
-
if (!DocumentKey.isDocumentKey(n)) throw new FirestoreError(
|
|
20230
|
+
if (!DocumentKey.isDocumentKey(n)) throw new FirestoreError(D.INVALID_ARGUMENT, `Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${r}() must result in a valid document path, but '${n}' is not because it contains an odd number of segments.`);
|
|
20232
20231
|
const i = new DocumentKey(n);
|
|
20233
20232
|
_.push(__PRIVATE_refValue(t, i));
|
|
20234
20233
|
} else {
|
|
@@ -20248,21 +20247,21 @@ function endAt(...e) {
|
|
|
20248
20247
|
|
|
20249
20248
|
function __PRIVATE_parseDocumentIdValue(e, t, n) {
|
|
20250
20249
|
if ("string" == typeof (n = getModularInstance(n))) {
|
|
20251
|
-
if ("" === n) throw new FirestoreError(
|
|
20252
|
-
if (!__PRIVATE_isCollectionGroupQuery(t) && -1 !== n.indexOf("/")) throw new FirestoreError(
|
|
20250
|
+
if ("" === n) throw new FirestoreError(D.INVALID_ARGUMENT, "Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");
|
|
20251
|
+
if (!__PRIVATE_isCollectionGroupQuery(t) && -1 !== n.indexOf("/")) throw new FirestoreError(D.INVALID_ARGUMENT, `Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`);
|
|
20253
20252
|
const r = t.path.child(ResourcePath.fromString(n));
|
|
20254
|
-
if (!DocumentKey.isDocumentKey(r)) throw new FirestoreError(
|
|
20253
|
+
if (!DocumentKey.isDocumentKey(r)) throw new FirestoreError(D.INVALID_ARGUMENT, `Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${r}' is not because it has an odd number of segments (${r.length}).`);
|
|
20255
20254
|
return __PRIVATE_refValue(e, new DocumentKey(r));
|
|
20256
20255
|
}
|
|
20257
20256
|
if (n instanceof DocumentReference) return __PRIVATE_refValue(e, n._key);
|
|
20258
|
-
throw new FirestoreError(
|
|
20257
|
+
throw new FirestoreError(D.INVALID_ARGUMENT, `Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${__PRIVATE_valueDescription(n)}.`);
|
|
20259
20258
|
}
|
|
20260
20259
|
|
|
20261
20260
|
/**
|
|
20262
20261
|
* Validates that the value passed into a disjunctive filter satisfies all
|
|
20263
20262
|
* array requirements.
|
|
20264
20263
|
*/ function __PRIVATE_validateDisjunctiveFilterElements(e, t) {
|
|
20265
|
-
if (!Array.isArray(e) || 0 === e.length) throw new FirestoreError(
|
|
20264
|
+
if (!Array.isArray(e) || 0 === e.length) throw new FirestoreError(D.INVALID_ARGUMENT, `Invalid Query. A non-empty array is required for '${t.toString()}' filters.`);
|
|
20266
20265
|
}
|
|
20267
20266
|
|
|
20268
20267
|
/**
|
|
@@ -20296,11 +20295,11 @@ function __PRIVATE_parseDocumentIdValue(e, t, n) {
|
|
|
20296
20295
|
}(t.op));
|
|
20297
20296
|
if (null !== n)
|
|
20298
20297
|
// Special case when it's a duplicate op to give a slightly clearer error message.
|
|
20299
|
-
throw n === t.op ? new FirestoreError(
|
|
20298
|
+
throw n === t.op ? new FirestoreError(D.INVALID_ARGUMENT, `Invalid query. You cannot use more than one '${t.op.toString()}' filter.`) : new FirestoreError(D.INVALID_ARGUMENT, `Invalid query. You cannot use '${t.op.toString()}' filters with '${n.toString()}' filters.`);
|
|
20300
20299
|
}
|
|
20301
20300
|
|
|
20302
20301
|
function __PRIVATE_validateQueryFilterConstraint(e, t) {
|
|
20303
|
-
if (!(t instanceof QueryFieldFilterConstraint || t instanceof QueryCompositeFilterConstraint)) throw new FirestoreError(
|
|
20302
|
+
if (!(t instanceof QueryFieldFilterConstraint || t instanceof QueryCompositeFilterConstraint)) throw new FirestoreError(D.INVALID_ARGUMENT, `Function ${e}() requires AppliableConstraints created with a call to 'where(...)', 'or(...)', or 'and(...)'.`);
|
|
20304
20303
|
}
|
|
20305
20304
|
|
|
20306
20305
|
class AbstractUserDataWriter {
|
|
@@ -20672,7 +20671,7 @@ class __PRIVATE_LiteUserDataWriter extends AbstractUserDataWriter {
|
|
|
20672
20671
|
* snapshot events.
|
|
20673
20672
|
*/ docChanges(e = {}) {
|
|
20674
20673
|
const t = !!e.includeMetadataChanges;
|
|
20675
|
-
if (t && this._snapshot.excludesMetadataChanges) throw new FirestoreError(
|
|
20674
|
+
if (t && this._snapshot.excludesMetadataChanges) throw new FirestoreError(D.INVALID_ARGUMENT, "To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");
|
|
20676
20675
|
return this._cachedChanges && this._cachedChangesIncludeMetadataChanges === t || (this._cachedChanges =
|
|
20677
20676
|
/** Calculates the array of `DocumentChange`s for a given `ViewSnapshot`. */
|
|
20678
20677
|
function __PRIVATE_changesFromSnapshot(e, t) {
|
|
@@ -21228,7 +21227,7 @@ class __PRIVATE_MultiTabManagerImpl {
|
|
|
21228
21227
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21229
21228
|
* See the License for the specific language governing permissions and
|
|
21230
21229
|
* limitations under the License.
|
|
21231
|
-
*/ const
|
|
21230
|
+
*/ const ye = {
|
|
21232
21231
|
maxAttempts: 5
|
|
21233
21232
|
};
|
|
21234
21233
|
|
|
@@ -21302,12 +21301,12 @@ class WriteBatch {
|
|
|
21302
21301
|
return this._verifyNotCommitted(), this._committed = !0, this._mutations.length > 0 ? this._commitHandler(this._mutations) : Promise.resolve();
|
|
21303
21302
|
}
|
|
21304
21303
|
_verifyNotCommitted() {
|
|
21305
|
-
if (this._committed) throw new FirestoreError(
|
|
21304
|
+
if (this._committed) throw new FirestoreError(D.FAILED_PRECONDITION, "A write batch can no longer be used after commit() has been called.");
|
|
21306
21305
|
}
|
|
21307
21306
|
}
|
|
21308
21307
|
|
|
21309
21308
|
function __PRIVATE_validateReference(e, t) {
|
|
21310
|
-
if ((e = getModularInstance(e)).firestore !== t) throw new FirestoreError(
|
|
21309
|
+
if ((e = getModularInstance(e)).firestore !== t) throw new FirestoreError(D.INVALID_ARGUMENT, "Provided document reference is from a different Firestore instance.");
|
|
21311
21310
|
return e;
|
|
21312
21311
|
}
|
|
21313
21312
|
|
|
@@ -21440,9 +21439,9 @@ class Transaction extends class Transaction$1 {
|
|
|
21440
21439
|
* rejected promise with the corresponding failure error is returned.
|
|
21441
21440
|
*/ function runTransaction(e, t, n) {
|
|
21442
21441
|
e = __PRIVATE_cast(e, Firestore);
|
|
21443
|
-
const r = Object.assign(Object.assign({},
|
|
21442
|
+
const r = Object.assign(Object.assign({}, ye), n);
|
|
21444
21443
|
!function __PRIVATE_validateTransactionOptions(e) {
|
|
21445
|
-
if (e.maxAttempts < 1) throw new FirestoreError(
|
|
21444
|
+
if (e.maxAttempts < 1) throw new FirestoreError(D.INVALID_ARGUMENT, "Max attempts must be at least 1");
|
|
21446
21445
|
}(r);
|
|
21447
21446
|
return function __PRIVATE_firestoreClientTransaction(e, t, n) {
|
|
21448
21447
|
const r = new __PRIVATE_Deferred;
|
|
@@ -21596,7 +21595,7 @@ class Transaction extends class Transaction$1 {
|
|
|
21596
21595
|
try {
|
|
21597
21596
|
return JSON.parse(e);
|
|
21598
21597
|
} catch (e) {
|
|
21599
|
-
throw new FirestoreError(
|
|
21598
|
+
throw new FirestoreError(D.INVALID_ARGUMENT, "Failed to parse JSON: " + (null == e ? void 0 : e.message));
|
|
21600
21599
|
}
|
|
21601
21600
|
}(e) : e, n = [];
|
|
21602
21601
|
if (Array.isArray(t.indexes)) for (const e of t.indexes) {
|
|
@@ -21613,7 +21612,7 @@ class Transaction extends class Transaction$1 {
|
|
|
21613
21612
|
}
|
|
21614
21613
|
|
|
21615
21614
|
function __PRIVATE_tryGetString(e, t) {
|
|
21616
|
-
if ("string" != typeof e[t]) throw new FirestoreError(
|
|
21615
|
+
if ("string" != typeof e[t]) throw new FirestoreError(D.INVALID_ARGUMENT, "Missing string value for: " + t);
|
|
21617
21616
|
return e[t];
|
|
21618
21617
|
}
|
|
21619
21618
|
|
|
@@ -21656,12 +21655,12 @@ function __PRIVATE_tryGetString(e, t) {
|
|
|
21656
21655
|
*/ function getPersistentCacheIndexManager(e) {
|
|
21657
21656
|
var t;
|
|
21658
21657
|
e = __PRIVATE_cast(e, Firestore);
|
|
21659
|
-
const n =
|
|
21658
|
+
const n = we.get(e);
|
|
21660
21659
|
if (n) return n;
|
|
21661
21660
|
const r = ensureFirestoreConfigured(e);
|
|
21662
21661
|
if ("persistent" !== (null === (t = r._uninitializedComponentsProvider) || void 0 === t ? void 0 : t._offlineKind)) return null;
|
|
21663
21662
|
const i = new PersistentCacheIndexManager(r);
|
|
21664
|
-
return
|
|
21663
|
+
return we.set(e, i), i;
|
|
21665
21664
|
}
|
|
21666
21665
|
|
|
21667
21666
|
/**
|
|
@@ -21704,7 +21703,7 @@ function __PRIVATE_setPersistentCacheIndexAutoCreationEnabled(e, t) {
|
|
|
21704
21703
|
* Use a `WeakMap` so that the mapping will be automatically dropped when the
|
|
21705
21704
|
* `Firestore` instance is garbage collected. This emulates a private member
|
|
21706
21705
|
* as described in https://goo.gle/454yvug.
|
|
21707
|
-
*/ const
|
|
21706
|
+
*/ const we = new WeakMap;
|
|
21708
21707
|
|
|
21709
21708
|
/**
|
|
21710
21709
|
* @license
|
|
@@ -21757,10 +21756,10 @@ function __PRIVATE_setPersistentCacheIndexAutoCreationEnabled(e, t) {
|
|
|
21757
21756
|
this.Su = new Map;
|
|
21758
21757
|
}
|
|
21759
21758
|
static get instance() {
|
|
21760
|
-
return
|
|
21761
|
-
if (
|
|
21762
|
-
|
|
21763
|
-
}(
|
|
21759
|
+
return Se || (Se = new __PRIVATE_TestingHooksSpiImpl, function __PRIVATE_setTestingHooksSpi(e) {
|
|
21760
|
+
if (ce) throw new Error("a TestingHooksSpi instance is already set");
|
|
21761
|
+
ce = e;
|
|
21762
|
+
}(Se)), Se;
|
|
21764
21763
|
}
|
|
21765
21764
|
tt(e) {
|
|
21766
21765
|
this.Su.forEach((t => t(e)));
|
|
@@ -21771,7 +21770,7 @@ function __PRIVATE_setPersistentCacheIndexAutoCreationEnabled(e, t) {
|
|
|
21771
21770
|
}
|
|
21772
21771
|
}
|
|
21773
21772
|
|
|
21774
|
-
let
|
|
21773
|
+
let Se = null;
|
|
21775
21774
|
|
|
21776
21775
|
/**
|
|
21777
21776
|
* Cloud Firestore
|
|
@@ -21779,19 +21778,19 @@ let be = null;
|
|
|
21779
21778
|
* @packageDocumentation
|
|
21780
21779
|
*/ !function __PRIVATE_registerFirestore(e, t = !0) {
|
|
21781
21780
|
!function __PRIVATE_setSDKVersion(e) {
|
|
21782
|
-
|
|
21781
|
+
S = e;
|
|
21783
21782
|
}(SDK_VERSION), _registerComponent(new Component("firestore", ((e, {instanceIdentifier: n, options: r}) => {
|
|
21784
21783
|
const i = e.getProvider("app").getImmediate(), s = new Firestore(new __PRIVATE_FirebaseAuthCredentialsProvider(e.getProvider("auth-internal")), new __PRIVATE_FirebaseAppCheckTokenProvider(e.getProvider("app-check-internal")), function __PRIVATE_databaseIdFromApp(e, t) {
|
|
21785
|
-
if (!Object.prototype.hasOwnProperty.apply(e.options, [ "projectId" ])) throw new FirestoreError(
|
|
21784
|
+
if (!Object.prototype.hasOwnProperty.apply(e.options, [ "projectId" ])) throw new FirestoreError(D.INVALID_ARGUMENT, '"projectId" not provided in firebase.initializeApp.');
|
|
21786
21785
|
return new DatabaseId(e.options.projectId, t);
|
|
21787
21786
|
}(i, n), i);
|
|
21788
21787
|
return r = Object.assign({
|
|
21789
21788
|
useFetchStreams: t
|
|
21790
21789
|
}, r), s._setSettings(r), s;
|
|
21791
|
-
}), "PUBLIC").setMultipleInstances(!0)), registerVersion(
|
|
21790
|
+
}), "PUBLIC").setMultipleInstances(!0)), registerVersion(w, "4.3.1", e),
|
|
21792
21791
|
// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation
|
|
21793
|
-
registerVersion(
|
|
21792
|
+
registerVersion(w, "4.3.1", "esm2017");
|
|
21794
21793
|
}();
|
|
21795
21794
|
|
|
21796
|
-
export { AbstractUserDataWriter, AggregateField, AggregateQuerySnapshot, Bytes,
|
|
21795
|
+
export { AbstractUserDataWriter, AggregateField, AggregateQuerySnapshot, Bytes, fe 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, 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, __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, waitForPendingWrites, where, writeBatch };
|
|
21797
21796
|
//# sourceMappingURL=index.esm2017.js.map
|