{"version":3,"file":"index.browser.esm2017.js","sources":["index.browser.esm2017.js"],"sourcesContent":["import { _getProvider, getApp as t, _removeServiceInstance as e, _registerComponent as n, registerVersion as r, SDK_VERSION as s } from \"@firebase/app\";\n\nimport { Component as i } from \"@firebase/component\";\n\nimport { Logger as o, LogLevel as u } from \"@firebase/logger\";\n\nimport { FirebaseError as c, getDefaultEmulatorHostnameAndPort as a, createMockUserToken as h, getModularInstance as l, deepEqual as f } from \"@firebase/util\";\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Simple wrapper around a nullable UID. Mostly exists to make code more\n * readable.\n */\nclass d {\n constructor(t) {\n this.uid = t;\n }\n isAuthenticated() {\n return null != this.uid;\n }\n /**\n * Returns a key representing this user, suitable for inclusion in a\n * dictionary.\n */ toKey() {\n return this.isAuthenticated() ? \"uid:\" + this.uid : \"anonymous-user\";\n }\n isEqual(t) {\n return t.uid === this.uid;\n }\n}\n\n/** A user with a null UID. */ d.UNAUTHENTICATED = new d(null), \n// TODO(mikelehen): Look into getting a proper uid-equivalent for\n// non-FirebaseAuth providers.\nd.GOOGLE_CREDENTIALS = new d(\"google-credentials-uid\"), d.FIRST_PARTY = new d(\"first-party-uid\"), \nd.MOCK_USER = new d(\"mock-user\");\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nlet w = \"9.16.0\";\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst m = new o(\"@firebase/firestore\");\n\n/**\n * Sets the verbosity of Cloud Firestore logs (debug, error, or silent).\n *\n * @param logLevel - The verbosity you set for activity and error logging. Can\n * be any of the following values:\n *\n * \n */ function p(t) {\n m.setLogLevel(t);\n}\n\nfunction y(t, ...e) {\n if (m.logLevel <= u.DEBUG) {\n const n = e.map(v);\n m.debug(`Firestore (${w}): ${t}`, ...n);\n }\n}\n\nfunction g(t, ...e) {\n if (m.logLevel <= u.ERROR) {\n const n = e.map(v);\n m.error(`Firestore (${w}): ${t}`, ...n);\n }\n}\n\n/**\n * @internal\n */ function _(t, ...e) {\n if (m.logLevel <= u.WARN) {\n const n = e.map(v);\n m.warn(`Firestore (${w}): ${t}`, ...n);\n }\n}\n\n/**\n * Converts an additional log parameter to a string representation.\n */ function v(t) {\n if (\"string\" == typeof t) return t;\n try {\n return e = t, JSON.stringify(e);\n } catch (e) {\n // Converting to JSON failed, just log the object directly\n return t;\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /** Formats an object as a JSON string, suitable for logging. */\n var e;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Unconditionally fails, throwing an Error with the given message.\n * Messages are stripped in production builds.\n *\n * Returns `never` and can be used in expressions:\n * @example\n * let futureVar = fail('not implemented yet');\n */ function b(t = \"Unexpected state\") {\n // Log the failure in addition to throw an exception, just in case the\n // exception is swallowed.\n const e = `FIRESTORE (${w}) INTERNAL ASSERTION FAILED: ` + t;\n // NOTE: We don't use FirestoreError here because these are internal failures\n // that cannot be handled by the user. (Also it would create a circular\n // dependency between the error and assert modules which doesn't work.)\n throw g(e), new Error(e);\n}\n\n/**\n * Fails if the given assertion condition is false, throwing an Error with the\n * given message if it did.\n *\n * Messages are stripped in production builds.\n */ function E(t, e) {\n t || b();\n}\n\n/**\n * Casts `obj` to `T`. In non-production builds, verifies that `obj` is an\n * instance of `T` before casting.\n */ function I(t, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ne) {\n return t;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ const T = \"ok\", A = \"cancelled\", R = \"unknown\", P = \"invalid-argument\", V = \"deadline-exceeded\", $ = \"not-found\", N = \"already-exists\", D = \"permission-denied\", F = \"unauthenticated\", x = \"resource-exhausted\", S = \"failed-precondition\", q = \"aborted\", O = \"out-of-range\", k = \"unimplemented\", C = \"internal\", L = \"unavailable\", M = \"data-loss\";\n\n/** An error returned by a Firestore operation. */ class U extends c {\n /** @hideconstructor */\n constructor(\n /**\n * The backend error code associated with this error.\n */\n t, \n /**\n * A custom error description.\n */\n e) {\n super(t, e), this.code = t, this.message = e, \n // HACK: We write a toString property directly because Error is not a real\n // class and so inheritance does not work correctly. We could alternatively\n // do the same \"back-door inheritance\" trick that FirebaseError does.\n this.toString = () => `${this.name}: [code=${this.code}]: ${this.message}`;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class j {\n constructor() {\n this.promise = new Promise(((t, e) => {\n this.resolve = t, this.reject = e;\n }));\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class B {\n constructor(t, e) {\n this.user = e, this.type = \"OAuth\", this.headers = new Map, this.headers.set(\"Authorization\", `Bearer ${t}`);\n }\n}\n\n/**\n * A CredentialsProvider that always yields an empty token.\n * @internal\n */ class Q {\n getToken() {\n return Promise.resolve(null);\n }\n invalidateToken() {}\n start(t, e) {\n // Fire with initial user.\n t.enqueueRetryable((() => e(d.UNAUTHENTICATED)));\n }\n shutdown() {}\n}\n\n/**\n * A CredentialsProvider that always returns a constant token. Used for\n * emulator token mocking.\n */ class z {\n constructor(t) {\n this.token = t, \n /**\n * Stores the listener registered with setChangeListener()\n * This isn't actually necessary since the UID never changes, but we use this\n * to verify the listen contract is adhered to in tests.\n */\n this.changeListener = null;\n }\n getToken() {\n return Promise.resolve(this.token);\n }\n invalidateToken() {}\n start(t, e) {\n this.changeListener = e, \n // Fire with initial user.\n t.enqueueRetryable((() => e(this.token.user)));\n }\n shutdown() {\n this.changeListener = null;\n }\n}\n\n/** Credential provider for the Lite SDK. */ class W {\n constructor(t) {\n this.auth = null, t.onInit((t => {\n this.auth = t;\n }));\n }\n getToken() {\n return this.auth ? this.auth.getToken().then((t => t ? (E(\"string\" == typeof t.accessToken), \n new B(t.accessToken, new d(this.auth.getUid()))) : null)) : Promise.resolve(null);\n }\n invalidateToken() {}\n start(t, e) {}\n shutdown() {}\n}\n\n/*\n * FirstPartyToken provides a fresh token each time its value\n * is requested, because if the token is too old, requests will be rejected.\n * Technically this may no longer be necessary since the SDK should gracefully\n * recover from unauthenticated errors (see b/33147818 for context), but it's\n * safer to keep the implementation as-is.\n */ class G {\n constructor(t, e, n, r) {\n this.t = t, this.i = e, this.o = n, this.u = r, this.type = \"FirstParty\", this.user = d.FIRST_PARTY, \n this.h = new Map;\n }\n /** Gets an authorization token, using a provided factory function, or falling back to First Party GAPI. */ l() {\n return this.u ? this.u() : (\n // Make sure this really is a Gapi client.\n E(!(\"object\" != typeof this.t || null === this.t || !this.t.auth || !this.t.auth.getAuthHeaderValueForFirstParty)), \n this.t.auth.getAuthHeaderValueForFirstParty([]));\n }\n get headers() {\n this.h.set(\"X-Goog-AuthUser\", this.i);\n // Use array notation to prevent minification\n const t = this.l();\n return t && this.h.set(\"Authorization\", t), this.o && this.h.set(\"X-Goog-Iam-Authorization-Token\", this.o), \n this.h;\n }\n}\n\n/*\n * Provides user credentials required for the Firestore JavaScript SDK\n * to authenticate the user, using technique that is only available\n * to applications hosted by Google.\n */ class K {\n constructor(t, e, n, r) {\n this.t = t, this.i = e, this.o = n, this.u = r;\n }\n getToken() {\n return Promise.resolve(new G(this.t, this.i, this.o, this.u));\n }\n start(t, e) {\n // Fire with initial uid.\n t.enqueueRetryable((() => e(d.FIRST_PARTY)));\n }\n shutdown() {}\n invalidateToken() {}\n}\n\nclass Y {\n constructor(t) {\n this.value = t, this.type = \"AppCheck\", this.headers = new Map, t && t.length > 0 && this.headers.set(\"x-firebase-appcheck\", this.value);\n }\n}\n\n/** AppCheck token provider for the Lite SDK. */ class H {\n constructor(t) {\n this.m = t, this.appCheck = null, t.onInit((t => {\n this.appCheck = t;\n }));\n }\n getToken() {\n return this.appCheck ? this.appCheck.getToken().then((t => t ? (E(\"string\" == typeof t.token), \n new Y(t.token)) : null)) : Promise.resolve(null);\n }\n invalidateToken() {}\n start(t, e) {}\n shutdown() {}\n}\n\n/**\n * Builds a CredentialsProvider depending on the type of\n * the credentials passed in.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nclass J {\n /**\n * Constructs a DatabaseInfo using the provided host, databaseId and\n * persistenceKey.\n *\n * @param databaseId - The database to use.\n * @param appId - The Firebase App Id.\n * @param persistenceKey - A unique identifier for this Firestore's local\n * storage (used in conjunction with the databaseId).\n * @param host - The Firestore backend host to connect to.\n * @param ssl - Whether to use SSL when connecting.\n * @param forceLongPolling - Whether to use the forceLongPolling option\n * when using WebChannel as the network transport.\n * @param autoDetectLongPolling - Whether to use the detectBufferingProxy\n * option when using WebChannel as the network transport.\n * @param useFetchStreams Whether to use the Fetch API instead of\n * XMLHTTPRequest\n */\n constructor(t, e, n, r, s, i, o, u) {\n this.databaseId = t, this.appId = e, this.persistenceKey = n, this.host = r, this.ssl = s, \n this.forceLongPolling = i, this.autoDetectLongPolling = o, this.useFetchStreams = u;\n }\n}\n\n/** The default database name for a project. */\n/**\n * Represents the database ID a Firestore client is associated with.\n * @internal\n */\nclass X {\n constructor(t, e) {\n this.projectId = t, this.database = e || \"(default)\";\n }\n static empty() {\n return new X(\"\", \"\");\n }\n get isDefaultDatabase() {\n return \"(default)\" === this.database;\n }\n isEqual(t) {\n return t instanceof X && t.projectId === this.projectId && t.database === this.database;\n }\n}\n\n/**\n * Path represents an ordered sequence of string segments.\n */\nclass Z {\n constructor(t, e, n) {\n void 0 === e ? e = 0 : e > t.length && b(), void 0 === n ? n = t.length - e : n > t.length - e && b(), \n this.segments = t, this.offset = e, this.len = n;\n }\n get length() {\n return this.len;\n }\n isEqual(t) {\n return 0 === Z.comparator(this, t);\n }\n child(t) {\n const e = this.segments.slice(this.offset, this.limit());\n return t instanceof Z ? t.forEach((t => {\n e.push(t);\n })) : e.push(t), this.construct(e);\n }\n /** The index of one past the last segment of the path. */ limit() {\n return this.offset + this.length;\n }\n popFirst(t) {\n return t = void 0 === t ? 1 : t, this.construct(this.segments, this.offset + t, this.length - t);\n }\n popLast() {\n return this.construct(this.segments, this.offset, this.length - 1);\n }\n firstSegment() {\n return this.segments[this.offset];\n }\n lastSegment() {\n return this.get(this.length - 1);\n }\n get(t) {\n return this.segments[this.offset + t];\n }\n isEmpty() {\n return 0 === this.length;\n }\n isPrefixOf(t) {\n if (t.length < this.length) return !1;\n for (let e = 0; e < this.length; e++) if (this.get(e) !== t.get(e)) return !1;\n return !0;\n }\n isImmediateParentOf(t) {\n if (this.length + 1 !== t.length) return !1;\n for (let e = 0; e < this.length; e++) if (this.get(e) !== t.get(e)) return !1;\n return !0;\n }\n forEach(t) {\n for (let e = this.offset, n = this.limit(); e < n; e++) t(this.segments[e]);\n }\n toArray() {\n return this.segments.slice(this.offset, this.limit());\n }\n static comparator(t, e) {\n const n = Math.min(t.length, e.length);\n for (let r = 0; r < n; r++) {\n const n = t.get(r), s = e.get(r);\n if (n < s) return -1;\n if (n > s) return 1;\n }\n return t.length < e.length ? -1 : t.length > e.length ? 1 : 0;\n }\n}\n\n/**\n * A slash-separated path for navigating resources (documents and collections)\n * within Firestore.\n *\n * @internal\n */ class tt extends Z {\n construct(t, e, n) {\n return new tt(t, e, n);\n }\n canonicalString() {\n // NOTE: The client is ignorant of any path segments containing escape\n // sequences (e.g. __id123__) and just passes them through raw (they exist\n // for legacy reasons and should not be used frequently).\n return this.toArray().join(\"/\");\n }\n toString() {\n return this.canonicalString();\n }\n /**\n * Creates a resource path from the given slash-delimited string. If multiple\n * arguments are provided, all components are combined. Leading and trailing\n * slashes from all components are ignored.\n */ static fromString(...t) {\n // NOTE: The client is ignorant of any path segments containing escape\n // sequences (e.g. __id123__) and just passes them through raw (they exist\n // for legacy reasons and should not be used frequently).\n const e = [];\n for (const n of t) {\n if (n.indexOf(\"//\") >= 0) throw new U(P, `Invalid segment (${n}). Paths must not contain // in them.`);\n // Strip leading and traling slashed.\n e.push(...n.split(\"/\").filter((t => t.length > 0)));\n }\n return new tt(e);\n }\n static emptyPath() {\n return new tt([]);\n }\n}\n\nconst et = /^[_a-zA-Z][_a-zA-Z0-9]*$/;\n\n/**\n * A dot-separated path for navigating sub-objects within a document.\n * @internal\n */ class nt extends Z {\n construct(t, e, n) {\n return new nt(t, e, n);\n }\n /**\n * Returns true if the string could be used as a segment in a field path\n * without escaping.\n */ static isValidIdentifier(t) {\n return et.test(t);\n }\n canonicalString() {\n return this.toArray().map((t => (t = t.replace(/\\\\/g, \"\\\\\\\\\").replace(/`/g, \"\\\\`\"), \n nt.isValidIdentifier(t) || (t = \"`\" + t + \"`\"), t))).join(\".\");\n }\n toString() {\n return this.canonicalString();\n }\n /**\n * Returns true if this field references the key of a document.\n */ isKeyField() {\n return 1 === this.length && \"__name__\" === this.get(0);\n }\n /**\n * The field designating the key of a document.\n */ static keyField() {\n return new nt([ \"__name__\" ]);\n }\n /**\n * Parses a field string from the given server-formatted string.\n *\n * - Splitting the empty string is not allowed (for now at least).\n * - Empty segments within the string (e.g. if there are two consecutive\n * separators) are not allowed.\n *\n * TODO(b/37244157): we should make this more strict. Right now, it allows\n * non-identifier path components, even if they aren't escaped.\n */ static fromServerFormat(t) {\n const e = [];\n let n = \"\", r = 0;\n const s = () => {\n if (0 === n.length) throw new U(P, `Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);\n e.push(n), n = \"\";\n };\n let i = !1;\n for (;r < t.length; ) {\n const e = t[r];\n if (\"\\\\\" === e) {\n if (r + 1 === t.length) throw new U(P, \"Path has trailing escape character: \" + t);\n const e = t[r + 1];\n if (\"\\\\\" !== e && \".\" !== e && \"`\" !== e) throw new U(P, \"Path has invalid escape sequence: \" + t);\n n += e, r += 2;\n } else \"`\" === e ? (i = !i, r++) : \".\" !== e || i ? (n += e, r++) : (s(), r++);\n }\n if (s(), i) throw new U(P, \"Unterminated ` in path: \" + t);\n return new nt(e);\n }\n static emptyPath() {\n return new nt([]);\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @internal\n */ class rt {\n constructor(t) {\n this.path = t;\n }\n static fromPath(t) {\n return new rt(tt.fromString(t));\n }\n static fromName(t) {\n return new rt(tt.fromString(t).popFirst(5));\n }\n static empty() {\n return new rt(tt.emptyPath());\n }\n get collectionGroup() {\n return this.path.popLast().lastSegment();\n }\n /** Returns true if the document is in the specified collectionId. */ hasCollectionId(t) {\n return this.path.length >= 2 && this.path.get(this.path.length - 2) === t;\n }\n /** Returns the collection group (i.e. the name of the parent collection) for this key. */ getCollectionGroup() {\n return this.path.get(this.path.length - 2);\n }\n /** Returns the fully qualified path to the parent collection. */ getCollectionPath() {\n return this.path.popLast();\n }\n isEqual(t) {\n return null !== t && 0 === tt.comparator(this.path, t.path);\n }\n toString() {\n return this.path.toString();\n }\n static comparator(t, e) {\n return tt.comparator(t.path, e.path);\n }\n static isDocumentKey(t) {\n return t.length % 2 == 0;\n }\n /**\n * Creates and returns a new document key with the given segments.\n *\n * @param segments - The segments of the path to the document\n * @returns A new instance of DocumentKey\n */ static fromSegments(t) {\n return new rt(new tt(t.slice()));\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ function st(t, e, n) {\n if (!n) throw new U(P, `Function ${t}() cannot be called with an empty ${e}.`);\n}\n\n/**\n * Validates that two boolean options are not set at the same time.\n * @internal\n */\n/**\n * Validates that `path` refers to a document (indicated by the fact it contains\n * an even numbers of segments).\n */\nfunction it(t) {\n if (!rt.isDocumentKey(t)) throw new U(P, `Invalid document reference. Document references must have an even number of segments, but ${t} has ${t.length}.`);\n}\n\n/**\n * Validates that `path` refers to a collection (indicated by the fact it\n * contains an odd numbers of segments).\n */ function ot(t) {\n if (rt.isDocumentKey(t)) throw new U(P, `Invalid collection reference. Collection references must have an odd number of segments, but ${t} has ${t.length}.`);\n}\n\n/**\n * Returns true if it's a non-null object without a custom prototype\n * (i.e. excludes Array, Date, etc.).\n */\n/** Returns a string describing the type / value of the provided input. */\nfunction ut(t) {\n if (void 0 === t) return \"undefined\";\n if (null === t) return \"null\";\n if (\"string\" == typeof t) return t.length > 20 && (t = `${t.substring(0, 20)}...`), \n JSON.stringify(t);\n if (\"number\" == typeof t || \"boolean\" == typeof t) return \"\" + t;\n if (\"object\" == typeof t) {\n if (t instanceof Array) return \"an array\";\n {\n const e = \n /** try to get the constructor name for an object. */\n function(t) {\n if (t.constructor) return t.constructor.name;\n return null;\n }\n /**\n * Casts `obj` to `T`, optionally unwrapping Compat types to expose the\n * underlying instance. Throws if `obj` is not an instance of `T`.\n *\n * This cast is used in the Lite and Full SDK to verify instance types for\n * arguments passed to the public API.\n * @internal\n */ (t);\n return e ? `a custom ${e} object` : \"an object\";\n }\n }\n return \"function\" == typeof t ? \"a function\" : b();\n}\n\nfunction ct(t, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ne) {\n if (\"_delegate\" in t && (\n // Unwrap Compat types\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n t = t._delegate), !(t instanceof e)) {\n if (e.name === t.constructor.name) throw new U(P, \"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?\");\n {\n const n = ut(t);\n throw new U(P, `Expected type '${e.name}', but it was: ${n}`);\n }\n }\n return t;\n}\n\nfunction at(t, e) {\n if (e <= 0) throw new U(P, `Function ${t}() requires a positive number, but it was: ${e}.`);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Returns whether a variable is either undefined or null.\n */ function ht(t) {\n return null == t;\n}\n\n/** Returns whether the value represents -0. */ function lt(t) {\n // Detect if the value is -0.0. Based on polyfill from\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n return 0 === t && 1 / t == -1 / 0;\n}\n\n/**\n * Returns whether a value is an integer and in the safe integer range\n * @param value - The value to test for being an integer and in the safe range\n */\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst ft = {\n BatchGetDocuments: \"batchGet\",\n Commit: \"commit\",\n RunQuery: \"runQuery\",\n RunAggregationQuery: \"runAggregationQuery\"\n};\n\n/**\n * Maps RPC names to the corresponding REST endpoint name.\n *\n * We use array notation to avoid mangling.\n */\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Error Codes describing the different ways GRPC can fail. These are copied\n * directly from GRPC's sources here:\n *\n * https://github.com/grpc/grpc/blob/bceec94ea4fc5f0085d81235d8e1c06798dc341a/include/grpc%2B%2B/impl/codegen/status_code_enum.h\n *\n * Important! The names of these identifiers matter because the string forms\n * are used for reverse lookups from the webchannel stream. Do NOT change the\n * names of these identifiers or change this into a const enum.\n */\nvar dt, wt;\n\n/**\n * Converts an HTTP Status Code to the equivalent error code.\n *\n * @param status - An HTTP Status Code, like 200, 404, 503, etc.\n * @returns The equivalent Code. Unknown status codes are mapped to\n * Code.UNKNOWN.\n */\nfunction mt(t) {\n if (void 0 === t) return g(\"RPC_ERROR\", \"HTTP error has no status\"), R;\n // The canonical error codes for Google APIs [1] specify mapping onto HTTP\n // status codes but the mapping is not bijective. In each case of ambiguity\n // this function chooses a primary error.\n \n // [1]\n // https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto\n switch (t) {\n case 200:\n // OK\n return T;\n\n case 400:\n // Bad Request\n return S;\n\n // Other possibilities based on the forward mapping\n // return Code.INVALID_ARGUMENT;\n // return Code.OUT_OF_RANGE;\n case 401:\n // Unauthorized\n return F;\n\n case 403:\n // Forbidden\n return D;\n\n case 404:\n // Not Found\n return $;\n\n case 409:\n // Conflict\n return q;\n\n // Other possibilities:\n // return Code.ALREADY_EXISTS;\n case 416:\n // Range Not Satisfiable\n return O;\n\n case 429:\n // Too Many Requests\n return x;\n\n case 499:\n // Client Closed Request\n return A;\n\n case 500:\n // Internal Server Error\n return R;\n\n // Other possibilities:\n // return Code.INTERNAL;\n // return Code.DATA_LOSS;\n case 501:\n // Unimplemented\n return k;\n\n case 503:\n // Service Unavailable\n return L;\n\n case 504:\n // Gateway Timeout\n return V;\n\n default:\n return t >= 200 && t < 300 ? T : t >= 400 && t < 500 ? S : t >= 500 && t < 600 ? C : R;\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A Rest-based connection that relies on the native HTTP stack\n * (e.g. `fetch` or a polyfill).\n */ (wt = dt || (dt = {}))[wt.OK = 0] = \"OK\", wt[wt.CANCELLED = 1] = \"CANCELLED\", \nwt[wt.UNKNOWN = 2] = \"UNKNOWN\", wt[wt.INVALID_ARGUMENT = 3] = \"INVALID_ARGUMENT\", \nwt[wt.DEADLINE_EXCEEDED = 4] = \"DEADLINE_EXCEEDED\", wt[wt.NOT_FOUND = 5] = \"NOT_FOUND\", \nwt[wt.ALREADY_EXISTS = 6] = \"ALREADY_EXISTS\", wt[wt.PERMISSION_DENIED = 7] = \"PERMISSION_DENIED\", \nwt[wt.UNAUTHENTICATED = 16] = \"UNAUTHENTICATED\", wt[wt.RESOURCE_EXHAUSTED = 8] = \"RESOURCE_EXHAUSTED\", \nwt[wt.FAILED_PRECONDITION = 9] = \"FAILED_PRECONDITION\", wt[wt.ABORTED = 10] = \"ABORTED\", \nwt[wt.OUT_OF_RANGE = 11] = \"OUT_OF_RANGE\", wt[wt.UNIMPLEMENTED = 12] = \"UNIMPLEMENTED\", \nwt[wt.INTERNAL = 13] = \"INTERNAL\", wt[wt.UNAVAILABLE = 14] = \"UNAVAILABLE\", wt[wt.DATA_LOSS = 15] = \"DATA_LOSS\";\n\nclass pt extends \n/**\n * Base class for all Rest-based connections to the backend (WebChannel and\n * HTTP).\n */\nclass {\n constructor(t) {\n this.databaseInfo = t, this.databaseId = t.databaseId;\n const e = t.ssl ? \"https\" : \"http\";\n this.p = e + \"://\" + t.host, this.g = \"projects/\" + this.databaseId.projectId + \"/databases/\" + this.databaseId.database + \"/documents\";\n }\n get v() {\n // Both `invokeRPC()` and `invokeStreamingRPC()` use their `path` arguments to determine\n // where to run the query, and expect the `request` to NOT specify the \"path\".\n return !1;\n }\n I(t, e, n, r, s) {\n const i = this.T(t, e);\n y(\"RestConnection\", \"Sending: \", i, n);\n const o = {};\n return this.A(o, r, s), this.R(t, i, o, n).then((t => (y(\"RestConnection\", \"Received: \", t), \n t)), (e => {\n throw _(\"RestConnection\", `${t} failed with error: `, e, \"url: \", i, \"request:\", n), \n e;\n }));\n }\n P(t, e, n, r, s, i) {\n // The REST API automatically aggregates all of the streamed results, so we\n // can just use the normal invoke() method.\n return this.I(t, e, n, r, s);\n }\n /**\n * Modifies the headers for a request, adding any authorization token if\n * present and any additional headers for the request.\n */ A(t, e, n) {\n t[\"X-Goog-Api-Client\"] = \"gl-js/ fire/\" + w, \n // Content-Type: text/plain will avoid preflight requests which might\n // mess with CORS and redirects by proxies. If we add custom headers\n // we will need to change this code to potentially use the $httpOverwrite\n // parameter supported by ESF to avoid triggering preflight requests.\n t[\"Content-Type\"] = \"text/plain\", this.databaseInfo.appId && (t[\"X-Firebase-GMPID\"] = this.databaseInfo.appId), \n e && e.headers.forEach(((e, n) => t[n] = e)), n && n.headers.forEach(((e, n) => t[n] = e));\n }\n T(t, e) {\n const n = ft[t];\n return `${this.p}/v1/${e}:${n}`;\n }\n} {\n /**\n * @param databaseInfo - The connection info.\n * @param fetchImpl - `fetch` or a Polyfill that implements the fetch API.\n */\n constructor(t, e) {\n super(t), this.V = e;\n }\n $(t, e) {\n throw new Error(\"Not supported by FetchConnection\");\n }\n async R(t, e, n, r) {\n var s;\n const i = JSON.stringify(r);\n let o;\n try {\n o = await this.V(e, {\n method: \"POST\",\n headers: n,\n body: i\n });\n } catch (t) {\n const e = t;\n throw new U(mt(e.status), \"Request failed with error: \" + e.statusText);\n }\n if (!o.ok) {\n let t = await o.json();\n Array.isArray(t) && (t = t[0]);\n const e = null === (s = null == t ? void 0 : t.error) || void 0 === s ? void 0 : s.message;\n throw new U(mt(o.status), `Request failed with error: ${null != e ? e : o.statusText}`);\n }\n return o.json();\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Initializes the HTTP connection for the REST API. */\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Generates `nBytes` of random bytes.\n *\n * If `nBytes < 0` , an error will be thrown.\n */\nfunction yt(t) {\n // Polyfills for IE and WebWorker by using `self` and `msCrypto` when `crypto` is not available.\n const e = \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n \"undefined\" != typeof self && (self.crypto || self.msCrypto), n = new Uint8Array(t);\n if (e && \"function\" == typeof e.getRandomValues) e.getRandomValues(n); else \n // Falls back to Math.random\n for (let e = 0; e < t; e++) n[e] = Math.floor(256 * Math.random());\n return n;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class gt {\n static N() {\n // Alphanumeric characters\n const t = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\", e = Math.floor(256 / t.length) * t.length;\n // The largest byte value that is a multiple of `char.length`.\n let n = \"\";\n for (;n.length < 20; ) {\n const r = yt(40);\n for (let s = 0; s < r.length; ++s) \n // Only accept values that are [0, maxMultiple), this ensures they can\n // be evenly mapped to indices of `chars` via a modulo operation.\n n.length < 20 && r[s] < e && (n += t.charAt(r[s] % t.length));\n }\n return n;\n }\n}\n\nfunction _t(t, e) {\n return t < e ? -1 : t > e ? 1 : 0;\n}\n\n/** Helper to compare arrays using isEqual(). */ function vt(t, e, n) {\n return t.length === e.length && t.every(((t, r) => n(t, e[r])));\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ function bt(t) {\n let e = 0;\n for (const n in t) Object.prototype.hasOwnProperty.call(t, n) && e++;\n return e;\n}\n\nfunction Et(t, e) {\n for (const n in t) Object.prototype.hasOwnProperty.call(t, n) && e(n, t[n]);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Immutable class that represents a \"proto\" byte string.\n *\n * Proto byte strings can either be Base64-encoded strings or Uint8Arrays when\n * sent on the wire. This class abstracts away this differentiation by holding\n * the proto byte string in a common class that must be converted into a string\n * before being sent as a proto.\n * @internal\n */\nclass It {\n constructor(t) {\n this.binaryString = t;\n }\n static fromBase64String(t) {\n const e = atob(t);\n return new It(e);\n }\n static fromUint8Array(t) {\n // TODO(indexing); Remove the copy of the byte string here as this method\n // is frequently called during indexing.\n const e = \n /**\n * Helper function to convert an Uint8array to a binary string.\n */\n function(t) {\n let e = \"\";\n for (let n = 0; n < t.length; ++n) e += String.fromCharCode(t[n]);\n return e;\n }\n /**\n * Helper function to convert a binary string to an Uint8Array.\n */ (t);\n return new It(e);\n }\n [Symbol.iterator]() {\n let t = 0;\n return {\n next: () => t < this.binaryString.length ? {\n value: this.binaryString.charCodeAt(t++),\n done: !1\n } : {\n value: void 0,\n done: !0\n }\n };\n }\n toBase64() {\n return t = this.binaryString, btoa(t);\n /** Converts a binary string to a Base64 encoded string. */\n var t;\n }\n toUint8Array() {\n return function(t) {\n const e = new Uint8Array(t.length);\n for (let n = 0; n < t.length; n++) e[n] = t.charCodeAt(n);\n return e;\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n // A RegExp matching ISO 8601 UTC timestamps with optional fraction.\n (this.binaryString);\n }\n approximateByteSize() {\n return 2 * this.binaryString.length;\n }\n compareTo(t) {\n return _t(this.binaryString, t.binaryString);\n }\n isEqual(t) {\n return this.binaryString === t.binaryString;\n }\n}\n\nIt.EMPTY_BYTE_STRING = new It(\"\");\n\nconst Tt = new RegExp(/^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(?:\\.(\\d+))?Z$/);\n\n/**\n * Converts the possible Proto values for a timestamp value into a \"seconds and\n * nanos\" representation.\n */ function At(t) {\n // The json interface (for the browser) will return an iso timestamp string,\n // while the proto js library (for node) will return a\n // google.protobuf.Timestamp instance.\n if (E(!!t), \"string\" == typeof t) {\n // The date string can have higher precision (nanos) than the Date class\n // (millis), so we do some custom parsing here.\n // Parse the nanos right out of the string.\n let e = 0;\n const n = Tt.exec(t);\n if (E(!!n), n[1]) {\n // Pad the fraction out to 9 digits (nanos).\n let t = n[1];\n t = (t + \"000000000\").substr(0, 9), e = Number(t);\n }\n // Parse the date to get the seconds.\n const r = new Date(t);\n return {\n seconds: Math.floor(r.getTime() / 1e3),\n nanos: e\n };\n }\n return {\n seconds: Rt(t.seconds),\n nanos: Rt(t.nanos)\n };\n}\n\n/**\n * Converts the possible Proto types for numbers into a JavaScript number.\n * Returns 0 if the value is not numeric.\n */ function Rt(t) {\n // TODO(bjornick): Handle int64 greater than 53 bits.\n return \"number\" == typeof t ? t : \"string\" == typeof t ? Number(t) : 0;\n}\n\n/** Converts the possible Proto types for Blobs into a ByteString. */ function Pt(t) {\n return \"string\" == typeof t ? It.fromBase64String(t) : It.fromUint8Array(t);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// The earliest date supported by Firestore timestamps (0001-01-01T00:00:00Z).\n/**\n * A `Timestamp` represents a point in time independent of any time zone or\n * calendar, represented as seconds and fractions of seconds at nanosecond\n * resolution in UTC Epoch time.\n *\n * It is encoded using the Proleptic Gregorian Calendar which extends the\n * Gregorian calendar backwards to year one. It is encoded assuming all minutes\n * are 60 seconds long, i.e. leap seconds are \"smeared\" so that no leap second\n * table is needed for interpretation. Range is from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59.999999999Z.\n *\n * For examples and further specifications, refer to the\n * {@link https://github.com/google/protobuf/blob/master/src/google/protobuf/timestamp.proto | Timestamp definition}.\n */\nclass Vt {\n /**\n * Creates a new timestamp.\n *\n * @param seconds - The number of seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n * @param nanoseconds - The non-negative fractions of a second at nanosecond\n * resolution. Negative second values with fractions must still have\n * non-negative nanoseconds values that count forward in time. Must be\n * from 0 to 999,999,999 inclusive.\n */\n constructor(\n /**\n * The number of seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z.\n */\n t, \n /**\n * The fractions of a second at nanosecond resolution.*\n */\n e) {\n if (this.seconds = t, this.nanoseconds = e, e < 0) throw new U(P, \"Timestamp nanoseconds out of range: \" + e);\n if (e >= 1e9) throw new U(P, \"Timestamp nanoseconds out of range: \" + e);\n if (t < -62135596800) throw new U(P, \"Timestamp seconds out of range: \" + t);\n // This will break in the year 10,000.\n if (t >= 253402300800) throw new U(P, \"Timestamp seconds out of range: \" + t);\n }\n /**\n * Creates a new timestamp with the current date, with millisecond precision.\n *\n * @returns a new timestamp representing the current date.\n */ static now() {\n return Vt.fromMillis(Date.now());\n }\n /**\n * Creates a new timestamp from the given date.\n *\n * @param date - The date to initialize the `Timestamp` from.\n * @returns A new `Timestamp` representing the same point in time as the given\n * date.\n */ static fromDate(t) {\n return Vt.fromMillis(t.getTime());\n }\n /**\n * Creates a new timestamp from the given number of milliseconds.\n *\n * @param milliseconds - Number of milliseconds since Unix epoch\n * 1970-01-01T00:00:00Z.\n * @returns A new `Timestamp` representing the same point in time as the given\n * number of milliseconds.\n */ static fromMillis(t) {\n const e = Math.floor(t / 1e3), n = Math.floor(1e6 * (t - 1e3 * e));\n return new Vt(e, n);\n }\n /**\n * Converts a `Timestamp` to a JavaScript `Date` object. This conversion\n * causes a loss of precision since `Date` objects only support millisecond\n * precision.\n *\n * @returns JavaScript `Date` object representing the same point in time as\n * this `Timestamp`, with millisecond precision.\n */ toDate() {\n return new Date(this.toMillis());\n }\n /**\n * Converts a `Timestamp` to a numeric timestamp (in milliseconds since\n * epoch). This operation causes a loss of precision.\n *\n * @returns The point in time corresponding to this timestamp, represented as\n * the number of milliseconds since Unix epoch 1970-01-01T00:00:00Z.\n */ toMillis() {\n return 1e3 * this.seconds + this.nanoseconds / 1e6;\n }\n _compareTo(t) {\n return this.seconds === t.seconds ? _t(this.nanoseconds, t.nanoseconds) : _t(this.seconds, t.seconds);\n }\n /**\n * Returns true if this `Timestamp` is equal to the provided one.\n *\n * @param other - The `Timestamp` to compare against.\n * @returns true if this `Timestamp` is equal to the provided one.\n */ isEqual(t) {\n return t.seconds === this.seconds && t.nanoseconds === this.nanoseconds;\n }\n /** Returns a textual representation of this `Timestamp`. */ toString() {\n return \"Timestamp(seconds=\" + this.seconds + \", nanoseconds=\" + this.nanoseconds + \")\";\n }\n /** Returns a JSON-serializable representation of this `Timestamp`. */ toJSON() {\n return {\n seconds: this.seconds,\n nanoseconds: this.nanoseconds\n };\n }\n /**\n * Converts this object to a primitive string, which allows `Timestamp` objects\n * to be compared using the `>`, `<=`, `>=` and `>` operators.\n */ valueOf() {\n // This method returns a string of the form . where\n // is translated to have a non-negative value and both \n // and are left-padded with zeroes to be a consistent length.\n // Strings with this format then have a lexiographical ordering that matches\n // the expected ordering. The translation is done to avoid having\n // a leading negative sign (i.e. a leading '-' character) in its string\n // representation, which would affect its lexiographical ordering.\n const t = this.seconds - -62135596800;\n // Note: Up to 12 decimal digits are required to represent all valid\n // 'seconds' values.\n return String(t).padStart(12, \"0\") + \".\" + String(this.nanoseconds).padStart(9, \"0\");\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Represents a locally-applied ServerTimestamp.\n *\n * Server Timestamps are backed by MapValues that contain an internal field\n * `__type__` with a value of `server_timestamp`. The previous value and local\n * write time are stored in its `__previous_value__` and `__local_write_time__`\n * fields respectively.\n *\n * Notes:\n * - ServerTimestampValue instances are created as the result of applying a\n * transform. They can only exist in the local view of a document. Therefore\n * they do not need to be parsed or serialized.\n * - When evaluated locally (e.g. for snapshot.data()), they by default\n * evaluate to `null`. This behavior can be configured by passing custom\n * FieldValueOptions to value().\n * - With respect to other ServerTimestampValues, they sort by their\n * localWriteTime.\n */ function $t(t) {\n var e, n;\n return \"server_timestamp\" === (null === (n = ((null === (e = null == t ? void 0 : t.mapValue) || void 0 === e ? void 0 : e.fields) || {}).__type__) || void 0 === n ? void 0 : n.stringValue);\n}\n\n/**\n * Returns the value of the field before this ServerTimestamp was set.\n *\n * Preserving the previous values allows the user to display the last resoled\n * value until the backend responds with the timestamp.\n */ function Nt(t) {\n const e = t.mapValue.fields.__previous_value__;\n return $t(e) ? Nt(e) : e;\n}\n\n/**\n * Returns the local time at which this timestamp was first set.\n */ function Dt(t) {\n const e = At(t.mapValue.fields.__local_write_time__.timestampValue);\n return new Vt(e.seconds, e.nanos);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ const Ft = {\n fields: {\n __type__: {\n stringValue: \"__max__\"\n }\n }\n};\n\n/** Extracts the backend's type order for the provided value. */\nfunction xt(t) {\n return \"nullValue\" in t ? 0 /* TypeOrder.NullValue */ : \"booleanValue\" in t ? 1 /* TypeOrder.BooleanValue */ : \"integerValue\" in t || \"doubleValue\" in t ? 2 /* TypeOrder.NumberValue */ : \"timestampValue\" in t ? 3 /* TypeOrder.TimestampValue */ : \"stringValue\" in t ? 5 /* TypeOrder.StringValue */ : \"bytesValue\" in t ? 6 /* TypeOrder.BlobValue */ : \"referenceValue\" in t ? 7 /* TypeOrder.RefValue */ : \"geoPointValue\" in t ? 8 /* TypeOrder.GeoPointValue */ : \"arrayValue\" in t ? 9 /* TypeOrder.ArrayValue */ : \"mapValue\" in t ? $t(t) ? 4 /* TypeOrder.ServerTimestampValue */ : \n /** Returns true if the Value represents the canonical {@link #MAX_VALUE} . */\n function(t) {\n return \"__max__\" === (((t.mapValue || {}).fields || {}).__type__ || {}).stringValue;\n }\n /**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * Represents a bound of a query.\n *\n * The bound is specified with the given components representing a position and\n * whether it's just before or just after the position (relative to whatever the\n * query order is).\n *\n * The position represents a logical index position for a query. It's a prefix\n * of values for the (potentially implicit) order by clauses of a query.\n *\n * Bound provides a function to determine whether a document comes before or\n * after a bound. This is influenced by whether the position is just before or\n * just after the provided values.\n */ (t) ? 9007199254740991 /* TypeOrder.MaxValue */ : 10 /* TypeOrder.ObjectValue */ : b();\n}\n\n/** Tests `left` and `right` for equality based on the backend semantics. */ function St(t, e) {\n if (t === e) return !0;\n const n = xt(t);\n if (n !== xt(e)) return !1;\n switch (n) {\n case 0 /* TypeOrder.NullValue */ :\n case 9007199254740991 /* TypeOrder.MaxValue */ :\n return !0;\n\n case 1 /* TypeOrder.BooleanValue */ :\n return t.booleanValue === e.booleanValue;\n\n case 4 /* TypeOrder.ServerTimestampValue */ :\n return Dt(t).isEqual(Dt(e));\n\n case 3 /* TypeOrder.TimestampValue */ :\n return function(t, e) {\n if (\"string\" == typeof t.timestampValue && \"string\" == typeof e.timestampValue && t.timestampValue.length === e.timestampValue.length) \n // Use string equality for ISO 8601 timestamps\n return t.timestampValue === e.timestampValue;\n const n = At(t.timestampValue), r = At(e.timestampValue);\n return n.seconds === r.seconds && n.nanos === r.nanos;\n }(t, e);\n\n case 5 /* TypeOrder.StringValue */ :\n return t.stringValue === e.stringValue;\n\n case 6 /* TypeOrder.BlobValue */ :\n return function(t, e) {\n return Pt(t.bytesValue).isEqual(Pt(e.bytesValue));\n }(t, e);\n\n case 7 /* TypeOrder.RefValue */ :\n return t.referenceValue === e.referenceValue;\n\n case 8 /* TypeOrder.GeoPointValue */ :\n return function(t, e) {\n return Rt(t.geoPointValue.latitude) === Rt(e.geoPointValue.latitude) && Rt(t.geoPointValue.longitude) === Rt(e.geoPointValue.longitude);\n }(t, e);\n\n case 2 /* TypeOrder.NumberValue */ :\n return function(t, e) {\n if (\"integerValue\" in t && \"integerValue\" in e) return Rt(t.integerValue) === Rt(e.integerValue);\n if (\"doubleValue\" in t && \"doubleValue\" in e) {\n const n = Rt(t.doubleValue), r = Rt(e.doubleValue);\n return n === r ? lt(n) === lt(r) : isNaN(n) && isNaN(r);\n }\n return !1;\n }(t, e);\n\n case 9 /* TypeOrder.ArrayValue */ :\n return vt(t.arrayValue.values || [], e.arrayValue.values || [], St);\n\n case 10 /* TypeOrder.ObjectValue */ :\n return function(t, e) {\n const n = t.mapValue.fields || {}, r = e.mapValue.fields || {};\n if (bt(n) !== bt(r)) return !1;\n for (const t in n) if (n.hasOwnProperty(t) && (void 0 === r[t] || !St(n[t], r[t]))) return !1;\n return !0;\n }\n /** Returns true if the ArrayValue contains the specified element. */ (t, e);\n\n default:\n return b();\n }\n}\n\nfunction qt(t, e) {\n return void 0 !== (t.values || []).find((t => St(t, e)));\n}\n\nfunction Ot(t, e) {\n if (t === e) return 0;\n const n = xt(t), r = xt(e);\n if (n !== r) return _t(n, r);\n switch (n) {\n case 0 /* TypeOrder.NullValue */ :\n case 9007199254740991 /* TypeOrder.MaxValue */ :\n return 0;\n\n case 1 /* TypeOrder.BooleanValue */ :\n return _t(t.booleanValue, e.booleanValue);\n\n case 2 /* TypeOrder.NumberValue */ :\n return function(t, e) {\n const n = Rt(t.integerValue || t.doubleValue), r = Rt(e.integerValue || e.doubleValue);\n return n < r ? -1 : n > r ? 1 : n === r ? 0 : \n // one or both are NaN.\n isNaN(n) ? isNaN(r) ? 0 : -1 : 1;\n }(t, e);\n\n case 3 /* TypeOrder.TimestampValue */ :\n return kt(t.timestampValue, e.timestampValue);\n\n case 4 /* TypeOrder.ServerTimestampValue */ :\n return kt(Dt(t), Dt(e));\n\n case 5 /* TypeOrder.StringValue */ :\n return _t(t.stringValue, e.stringValue);\n\n case 6 /* TypeOrder.BlobValue */ :\n return function(t, e) {\n const n = Pt(t), r = Pt(e);\n return n.compareTo(r);\n }(t.bytesValue, e.bytesValue);\n\n case 7 /* TypeOrder.RefValue */ :\n return function(t, e) {\n const n = t.split(\"/\"), r = e.split(\"/\");\n for (let t = 0; t < n.length && t < r.length; t++) {\n const e = _t(n[t], r[t]);\n if (0 !== e) return e;\n }\n return _t(n.length, r.length);\n }(t.referenceValue, e.referenceValue);\n\n case 8 /* TypeOrder.GeoPointValue */ :\n return function(t, e) {\n const n = _t(Rt(t.latitude), Rt(e.latitude));\n if (0 !== n) return n;\n return _t(Rt(t.longitude), Rt(e.longitude));\n }(t.geoPointValue, e.geoPointValue);\n\n case 9 /* TypeOrder.ArrayValue */ :\n return function(t, e) {\n const n = t.values || [], r = e.values || [];\n for (let t = 0; t < n.length && t < r.length; ++t) {\n const e = Ot(n[t], r[t]);\n if (e) return e;\n }\n return _t(n.length, r.length);\n }(t.arrayValue, e.arrayValue);\n\n case 10 /* TypeOrder.ObjectValue */ :\n return function(t, e) {\n if (t === Ft && e === Ft) return 0;\n if (t === Ft) return 1;\n if (e === Ft) return -1;\n const n = t.fields || {}, r = Object.keys(n), s = e.fields || {}, i = Object.keys(s);\n // Even though MapValues are likely sorted correctly based on their insertion\n // order (e.g. when received from the backend), local modifications can bring\n // elements out of order. We need to re-sort the elements to ensure that\n // canonical IDs are independent of insertion order.\n r.sort(), i.sort();\n for (let t = 0; t < r.length && t < i.length; ++t) {\n const e = _t(r[t], i[t]);\n if (0 !== e) return e;\n const o = Ot(n[r[t]], s[i[t]]);\n if (0 !== o) return o;\n }\n return _t(r.length, i.length);\n }\n /** Returns a reference value for the provided database and key. */ (t.mapValue, e.mapValue);\n\n default:\n throw b();\n }\n}\n\nfunction kt(t, e) {\n if (\"string\" == typeof t && \"string\" == typeof e && t.length === e.length) return _t(t, e);\n const n = At(t), r = At(e), s = _t(n.seconds, r.seconds);\n return 0 !== s ? s : _t(n.nanos, r.nanos);\n}\n\nfunction Ct(t, e) {\n return {\n referenceValue: `projects/${t.projectId}/databases/${t.database}/documents/${e.path.canonicalString()}`\n };\n}\n\n/** Returns true if `value` is an ArrayValue. */ function Lt(t) {\n return !!t && \"arrayValue\" in t;\n}\n\n/** Returns true if `value` is a NullValue. */ function Mt(t) {\n return !!t && \"nullValue\" in t;\n}\n\n/** Returns true if `value` is NaN. */ function Ut(t) {\n return !!t && \"doubleValue\" in t && isNaN(Number(t.doubleValue));\n}\n\n/** Returns true if `value` is a MapValue. */ function jt(t) {\n return !!t && \"mapValue\" in t;\n}\n\n/** Creates a deep copy of `source`. */ function Bt(t) {\n if (t.geoPointValue) return {\n geoPointValue: Object.assign({}, t.geoPointValue)\n };\n if (t.timestampValue && \"object\" == typeof t.timestampValue) return {\n timestampValue: Object.assign({}, t.timestampValue)\n };\n if (t.mapValue) {\n const e = {\n mapValue: {\n fields: {}\n }\n };\n return Et(t.mapValue.fields, ((t, n) => e.mapValue.fields[t] = Bt(n))), e;\n }\n if (t.arrayValue) {\n const e = {\n arrayValue: {\n values: []\n }\n };\n for (let n = 0; n < (t.arrayValue.values || []).length; ++n) e.arrayValue.values[n] = Bt(t.arrayValue.values[n]);\n return e;\n }\n return Object.assign({}, t);\n}\n\nclass Qt {\n constructor(t, e) {\n this.position = t, this.inclusive = e;\n }\n}\n\nfunction zt(t, e) {\n if (null === t) return null === e;\n if (null === e) return !1;\n if (t.inclusive !== e.inclusive || t.position.length !== e.position.length) return !1;\n for (let n = 0; n < t.position.length; n++) {\n if (!St(t.position[n], e.position[n])) return !1;\n }\n return !0;\n}\n\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class Wt {}\n\nclass Gt extends Wt {\n constructor(t, e, n) {\n super(), this.field = t, this.op = e, this.value = n;\n }\n /**\n * Creates a filter based on the provided arguments.\n */ static create(t, e, n) {\n return t.isKeyField() ? \"in\" /* Operator.IN */ === e || \"not-in\" /* Operator.NOT_IN */ === e ? this.createKeyFieldInFilter(t, e, n) : new Ht(t, e, n) : \"array-contains\" /* Operator.ARRAY_CONTAINS */ === e ? new te(t, n) : \"in\" /* Operator.IN */ === e ? new ee(t, n) : \"not-in\" /* Operator.NOT_IN */ === e ? new ne(t, n) : \"array-contains-any\" /* Operator.ARRAY_CONTAINS_ANY */ === e ? new re(t, n) : new Gt(t, e, n);\n }\n static createKeyFieldInFilter(t, e, n) {\n return \"in\" /* Operator.IN */ === e ? new Jt(t, n) : new Xt(t, n);\n }\n matches(t) {\n const e = t.data.field(this.field);\n // Types do not have to match in NOT_EQUAL filters.\n return \"!=\" /* Operator.NOT_EQUAL */ === this.op ? null !== e && this.matchesComparison(Ot(e, this.value)) : null !== e && xt(this.value) === xt(e) && this.matchesComparison(Ot(e, this.value));\n // Only compare types with matching backend order (such as double and int).\n }\n matchesComparison(t) {\n switch (this.op) {\n case \"<\" /* Operator.LESS_THAN */ :\n return t < 0;\n\n case \"<=\" /* Operator.LESS_THAN_OR_EQUAL */ :\n return t <= 0;\n\n case \"==\" /* Operator.EQUAL */ :\n return 0 === t;\n\n case \"!=\" /* Operator.NOT_EQUAL */ :\n return 0 !== t;\n\n case \">\" /* Operator.GREATER_THAN */ :\n return t > 0;\n\n case \">=\" /* Operator.GREATER_THAN_OR_EQUAL */ :\n return t >= 0;\n\n default:\n return b();\n }\n }\n isInequality() {\n return [ \"<\" /* Operator.LESS_THAN */ , \"<=\" /* Operator.LESS_THAN_OR_EQUAL */ , \">\" /* Operator.GREATER_THAN */ , \">=\" /* Operator.GREATER_THAN_OR_EQUAL */ , \"!=\" /* Operator.NOT_EQUAL */ , \"not-in\" /* Operator.NOT_IN */ ].indexOf(this.op) >= 0;\n }\n getFlattenedFilters() {\n return [ this ];\n }\n getFilters() {\n return [ this ];\n }\n getFirstInequalityField() {\n return this.isInequality() ? this.field : null;\n }\n}\n\nclass Kt extends Wt {\n constructor(t, e) {\n super(), this.filters = t, this.op = e, this.D = null;\n }\n /**\n * Creates a filter based on the provided arguments.\n */ static create(t, e) {\n return new Kt(t, e);\n }\n matches(t) {\n return \"and\" /* CompositeOperator.AND */ === this.op ? void 0 === this.filters.find((e => !e.matches(t))) : void 0 !== this.filters.find((e => e.matches(t)));\n }\n getFlattenedFilters() {\n return null !== this.D || (this.D = this.filters.reduce(((t, e) => t.concat(e.getFlattenedFilters())), [])), \n this.D;\n }\n // Returns a mutable copy of `this.filters`\n getFilters() {\n return Object.assign([], this.filters);\n }\n getFirstInequalityField() {\n const t = this.F((t => t.isInequality()));\n return null !== t ? t.field : null;\n }\n // Performs a depth-first search to find and return the first FieldFilter in the composite filter\n // that satisfies the predicate. Returns `null` if none of the FieldFilters satisfy the\n // predicate.\n F(t) {\n for (const e of this.getFlattenedFilters()) if (t(e)) return e;\n return null;\n }\n}\n\nfunction Yt(t, e) {\n return t instanceof Gt ? function(t, e) {\n return e instanceof Gt && t.op === e.op && t.field.isEqual(e.field) && St(t.value, e.value);\n }(t, e) : t instanceof Kt ? function(t, e) {\n if (e instanceof Kt && t.op === e.op && t.filters.length === e.filters.length) {\n return t.filters.reduce(((t, n, r) => t && Yt(n, e.filters[r])), !0);\n }\n return !1;\n }\n /** Filter that matches on key fields (i.e. '__name__'). */ (t, e) : void b();\n}\n\nclass Ht extends Gt {\n constructor(t, e, n) {\n super(t, e, n), this.key = rt.fromName(n.referenceValue);\n }\n matches(t) {\n const e = rt.comparator(t.key, this.key);\n return this.matchesComparison(e);\n }\n}\n\n/** Filter that matches on key fields within an array. */ class Jt extends Gt {\n constructor(t, e) {\n super(t, \"in\" /* Operator.IN */ , e), this.keys = Zt(\"in\" /* Operator.IN */ , e);\n }\n matches(t) {\n return this.keys.some((e => e.isEqual(t.key)));\n }\n}\n\n/** Filter that matches on key fields not present within an array. */ class Xt extends Gt {\n constructor(t, e) {\n super(t, \"not-in\" /* Operator.NOT_IN */ , e), this.keys = Zt(\"not-in\" /* Operator.NOT_IN */ , e);\n }\n matches(t) {\n return !this.keys.some((e => e.isEqual(t.key)));\n }\n}\n\nfunction Zt(t, e) {\n var n;\n return ((null === (n = e.arrayValue) || void 0 === n ? void 0 : n.values) || []).map((t => rt.fromName(t.referenceValue)));\n}\n\n/** A Filter that implements the array-contains operator. */ class te extends Gt {\n constructor(t, e) {\n super(t, \"array-contains\" /* Operator.ARRAY_CONTAINS */ , e);\n }\n matches(t) {\n const e = t.data.field(this.field);\n return Lt(e) && qt(e.arrayValue, this.value);\n }\n}\n\n/** A Filter that implements the IN operator. */ class ee extends Gt {\n constructor(t, e) {\n super(t, \"in\" /* Operator.IN */ , e);\n }\n matches(t) {\n const e = t.data.field(this.field);\n return null !== e && qt(this.value.arrayValue, e);\n }\n}\n\n/** A Filter that implements the not-in operator. */ class ne extends Gt {\n constructor(t, e) {\n super(t, \"not-in\" /* Operator.NOT_IN */ , e);\n }\n matches(t) {\n if (qt(this.value.arrayValue, {\n nullValue: \"NULL_VALUE\"\n })) return !1;\n const e = t.data.field(this.field);\n return null !== e && !qt(this.value.arrayValue, e);\n }\n}\n\n/** A Filter that implements the array-contains-any operator. */ class re extends Gt {\n constructor(t, e) {\n super(t, \"array-contains-any\" /* Operator.ARRAY_CONTAINS_ANY */ , e);\n }\n matches(t) {\n const e = t.data.field(this.field);\n return !(!Lt(e) || !e.arrayValue.values) && e.arrayValue.values.some((t => qt(this.value.arrayValue, t)));\n }\n}\n\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An ordering on a field, in some Direction. Direction defaults to ASCENDING.\n */ class se {\n constructor(t, e = \"asc\" /* Direction.ASCENDING */) {\n this.field = t, this.dir = e;\n }\n}\n\nfunction ie(t, e) {\n return t.dir === e.dir && t.field.isEqual(e.field);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A version of a document in Firestore. This corresponds to the version\n * timestamp, such as update_time or read_time.\n */ class oe {\n constructor(t) {\n this.timestamp = t;\n }\n static fromTimestamp(t) {\n return new oe(t);\n }\n static min() {\n return new oe(new Vt(0, 0));\n }\n static max() {\n return new oe(new Vt(253402300799, 999999999));\n }\n compareTo(t) {\n return this.timestamp._compareTo(t.timestamp);\n }\n isEqual(t) {\n return this.timestamp.isEqual(t.timestamp);\n }\n /** Returns a number representation of the version for use in spec tests. */ toMicroseconds() {\n // Convert to microseconds.\n return 1e6 * this.timestamp.seconds + this.timestamp.nanoseconds / 1e3;\n }\n toString() {\n return \"SnapshotVersion(\" + this.timestamp.toString() + \")\";\n }\n toTimestamp() {\n return this.timestamp;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// An immutable sorted map implementation, based on a Left-leaning Red-Black\n// tree.\nclass ue {\n constructor(t, e) {\n this.comparator = t, this.root = e || ae.EMPTY;\n }\n // Returns a copy of the map, with the specified key/value added or replaced.\n insert(t, e) {\n return new ue(this.comparator, this.root.insert(t, e, this.comparator).copy(null, null, ae.BLACK, null, null));\n }\n // Returns a copy of the map, with the specified key removed.\n remove(t) {\n return new ue(this.comparator, this.root.remove(t, this.comparator).copy(null, null, ae.BLACK, null, null));\n }\n // Returns the value of the node with the given key, or null.\n get(t) {\n let e = this.root;\n for (;!e.isEmpty(); ) {\n const n = this.comparator(t, e.key);\n if (0 === n) return e.value;\n n < 0 ? e = e.left : n > 0 && (e = e.right);\n }\n return null;\n }\n // Returns the index of the element in this sorted map, or -1 if it doesn't\n // exist.\n indexOf(t) {\n // Number of nodes that were pruned when descending right\n let e = 0, n = this.root;\n for (;!n.isEmpty(); ) {\n const r = this.comparator(t, n.key);\n if (0 === r) return e + n.left.size;\n r < 0 ? n = n.left : (\n // Count all nodes left of the node plus the node itself\n e += n.left.size + 1, n = n.right);\n }\n // Node not found\n return -1;\n }\n isEmpty() {\n return this.root.isEmpty();\n }\n // Returns the total number of nodes in the map.\n get size() {\n return this.root.size;\n }\n // Returns the minimum key in the map.\n minKey() {\n return this.root.minKey();\n }\n // Returns the maximum key in the map.\n maxKey() {\n return this.root.maxKey();\n }\n // Traverses the map in key order and calls the specified action function\n // for each key/value pair. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n inorderTraversal(t) {\n return this.root.inorderTraversal(t);\n }\n forEach(t) {\n this.inorderTraversal(((e, n) => (t(e, n), !1)));\n }\n toString() {\n const t = [];\n return this.inorderTraversal(((e, n) => (t.push(`${e}:${n}`), !1))), `{${t.join(\", \")}}`;\n }\n // Traverses the map in reverse key order and calls the specified action\n // function for each key/value pair. If action returns true, traversal is\n // aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n reverseTraversal(t) {\n return this.root.reverseTraversal(t);\n }\n // Returns an iterator over the SortedMap.\n getIterator() {\n return new ce(this.root, null, this.comparator, !1);\n }\n getIteratorFrom(t) {\n return new ce(this.root, t, this.comparator, !1);\n }\n getReverseIterator() {\n return new ce(this.root, null, this.comparator, !0);\n }\n getReverseIteratorFrom(t) {\n return new ce(this.root, t, this.comparator, !0);\n }\n}\n\n // end SortedMap\n// An iterator over an LLRBNode.\nclass ce {\n constructor(t, e, n, r) {\n this.isReverse = r, this.nodeStack = [];\n let s = 1;\n for (;!t.isEmpty(); ) if (s = e ? n(t.key, e) : 1, \n // flip the comparison if we're going in reverse\n e && r && (s *= -1), s < 0) \n // This node is less than our start key. ignore it\n t = this.isReverse ? t.left : t.right; else {\n if (0 === s) {\n // This node is exactly equal to our start key. Push it on the stack,\n // but stop iterating;\n this.nodeStack.push(t);\n break;\n }\n // This node is greater than our start key, add it to the stack and move\n // to the next one\n this.nodeStack.push(t), t = this.isReverse ? t.right : t.left;\n }\n }\n getNext() {\n let t = this.nodeStack.pop();\n const e = {\n key: t.key,\n value: t.value\n };\n if (this.isReverse) for (t = t.left; !t.isEmpty(); ) this.nodeStack.push(t), t = t.right; else for (t = t.right; !t.isEmpty(); ) this.nodeStack.push(t), \n t = t.left;\n return e;\n }\n hasNext() {\n return this.nodeStack.length > 0;\n }\n peek() {\n if (0 === this.nodeStack.length) return null;\n const t = this.nodeStack[this.nodeStack.length - 1];\n return {\n key: t.key,\n value: t.value\n };\n }\n}\n\n // end SortedMapIterator\n// Represents a node in a Left-leaning Red-Black tree.\nclass ae {\n constructor(t, e, n, r, s) {\n this.key = t, this.value = e, this.color = null != n ? n : ae.RED, this.left = null != r ? r : ae.EMPTY, \n this.right = null != s ? s : ae.EMPTY, this.size = this.left.size + 1 + this.right.size;\n }\n // Returns a copy of the current node, optionally replacing pieces of it.\n copy(t, e, n, r, s) {\n return new ae(null != t ? t : this.key, null != e ? e : this.value, null != n ? n : this.color, null != r ? r : this.left, null != s ? s : this.right);\n }\n isEmpty() {\n return !1;\n }\n // Traverses the tree in key order and calls the specified action function\n // for each node. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n inorderTraversal(t) {\n return this.left.inorderTraversal(t) || t(this.key, this.value) || this.right.inorderTraversal(t);\n }\n // Traverses the tree in reverse key order and calls the specified action\n // function for each node. If action returns true, traversal is aborted.\n // Returns the first truthy value returned by action, or the last falsey\n // value returned by action.\n reverseTraversal(t) {\n return this.right.reverseTraversal(t) || t(this.key, this.value) || this.left.reverseTraversal(t);\n }\n // Returns the minimum node in the tree.\n min() {\n return this.left.isEmpty() ? this : this.left.min();\n }\n // Returns the maximum key in the tree.\n minKey() {\n return this.min().key;\n }\n // Returns the maximum key in the tree.\n maxKey() {\n return this.right.isEmpty() ? this.key : this.right.maxKey();\n }\n // Returns new tree, with the key/value added.\n insert(t, e, n) {\n let r = this;\n const s = n(t, r.key);\n return r = s < 0 ? r.copy(null, null, null, r.left.insert(t, e, n), null) : 0 === s ? r.copy(null, e, null, null, null) : r.copy(null, null, null, null, r.right.insert(t, e, n)), \n r.fixUp();\n }\n removeMin() {\n if (this.left.isEmpty()) return ae.EMPTY;\n let t = this;\n return t.left.isRed() || t.left.left.isRed() || (t = t.moveRedLeft()), t = t.copy(null, null, null, t.left.removeMin(), null), \n t.fixUp();\n }\n // Returns new tree, with the specified item removed.\n remove(t, e) {\n let n, r = this;\n if (e(t, r.key) < 0) r.left.isEmpty() || r.left.isRed() || r.left.left.isRed() || (r = r.moveRedLeft()), \n r = r.copy(null, null, null, r.left.remove(t, e), null); else {\n if (r.left.isRed() && (r = r.rotateRight()), r.right.isEmpty() || r.right.isRed() || r.right.left.isRed() || (r = r.moveRedRight()), \n 0 === e(t, r.key)) {\n if (r.right.isEmpty()) return ae.EMPTY;\n n = r.right.min(), r = r.copy(n.key, n.value, null, null, r.right.removeMin());\n }\n r = r.copy(null, null, null, null, r.right.remove(t, e));\n }\n return r.fixUp();\n }\n isRed() {\n return this.color;\n }\n // Returns new tree after performing any needed rotations.\n fixUp() {\n let t = this;\n return t.right.isRed() && !t.left.isRed() && (t = t.rotateLeft()), t.left.isRed() && t.left.left.isRed() && (t = t.rotateRight()), \n t.left.isRed() && t.right.isRed() && (t = t.colorFlip()), t;\n }\n moveRedLeft() {\n let t = this.colorFlip();\n return t.right.left.isRed() && (t = t.copy(null, null, null, null, t.right.rotateRight()), \n t = t.rotateLeft(), t = t.colorFlip()), t;\n }\n moveRedRight() {\n let t = this.colorFlip();\n return t.left.left.isRed() && (t = t.rotateRight(), t = t.colorFlip()), t;\n }\n rotateLeft() {\n const t = this.copy(null, null, ae.RED, null, this.right.left);\n return this.right.copy(null, null, this.color, t, null);\n }\n rotateRight() {\n const t = this.copy(null, null, ae.RED, this.left.right, null);\n return this.left.copy(null, null, this.color, null, t);\n }\n colorFlip() {\n const t = this.left.copy(null, null, !this.left.color, null, null), e = this.right.copy(null, null, !this.right.color, null, null);\n return this.copy(null, null, !this.color, t, e);\n }\n // For testing.\n checkMaxDepth() {\n const t = this.check();\n return Math.pow(2, t) <= this.size + 1;\n }\n // In a balanced RB tree, the black-depth (number of black nodes) from root to\n // leaves is equal on both sides. This function verifies that or asserts.\n check() {\n if (this.isRed() && this.left.isRed()) throw b();\n if (this.right.isRed()) throw b();\n const t = this.left.check();\n if (t !== this.right.check()) throw b();\n return t + (this.isRed() ? 0 : 1);\n }\n}\n\n // end LLRBNode\n// Empty node is shared between all LLRB trees.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nae.EMPTY = null, ae.RED = !0, ae.BLACK = !1;\n\n// end LLRBEmptyNode\nae.EMPTY = new \n// Represents an empty node (a leaf node in the Red-Black Tree).\nclass {\n constructor() {\n this.size = 0;\n }\n get key() {\n throw b();\n }\n get value() {\n throw b();\n }\n get color() {\n throw b();\n }\n get left() {\n throw b();\n }\n get right() {\n throw b();\n }\n // Returns a copy of the current node.\n copy(t, e, n, r, s) {\n return this;\n }\n // Returns a copy of the tree, with the specified key/value added.\n insert(t, e, n) {\n return new ae(t, e);\n }\n // Returns a copy of the tree, with the specified key removed.\n remove(t, e) {\n return this;\n }\n isEmpty() {\n return !0;\n }\n inorderTraversal(t) {\n return !1;\n }\n reverseTraversal(t) {\n return !1;\n }\n minKey() {\n return null;\n }\n maxKey() {\n return null;\n }\n isRed() {\n return !1;\n }\n // For testing.\n checkMaxDepth() {\n return !0;\n }\n check() {\n return 0;\n }\n};\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * SortedSet is an immutable (copy-on-write) collection that holds elements\n * in order specified by the provided comparator.\n *\n * NOTE: if provided comparator returns 0 for two elements, we consider them to\n * be equal!\n */\nclass he {\n constructor(t) {\n this.comparator = t, this.data = new ue(this.comparator);\n }\n has(t) {\n return null !== this.data.get(t);\n }\n first() {\n return this.data.minKey();\n }\n last() {\n return this.data.maxKey();\n }\n get size() {\n return this.data.size;\n }\n indexOf(t) {\n return this.data.indexOf(t);\n }\n /** Iterates elements in order defined by \"comparator\" */ forEach(t) {\n this.data.inorderTraversal(((e, n) => (t(e), !1)));\n }\n /** Iterates over `elem`s such that: range[0] <= elem < range[1]. */ forEachInRange(t, e) {\n const n = this.data.getIteratorFrom(t[0]);\n for (;n.hasNext(); ) {\n const r = n.getNext();\n if (this.comparator(r.key, t[1]) >= 0) return;\n e(r.key);\n }\n }\n /**\n * Iterates over `elem`s such that: start <= elem until false is returned.\n */ forEachWhile(t, e) {\n let n;\n for (n = void 0 !== e ? this.data.getIteratorFrom(e) : this.data.getIterator(); n.hasNext(); ) {\n if (!t(n.getNext().key)) return;\n }\n }\n /** Finds the least element greater than or equal to `elem`. */ firstAfterOrEqual(t) {\n const e = this.data.getIteratorFrom(t);\n return e.hasNext() ? e.getNext().key : null;\n }\n getIterator() {\n return new le(this.data.getIterator());\n }\n getIteratorFrom(t) {\n return new le(this.data.getIteratorFrom(t));\n }\n /** Inserts or updates an element */ add(t) {\n return this.copy(this.data.remove(t).insert(t, !0));\n }\n /** Deletes an element */ delete(t) {\n return this.has(t) ? this.copy(this.data.remove(t)) : this;\n }\n isEmpty() {\n return this.data.isEmpty();\n }\n unionWith(t) {\n let e = this;\n // Make sure `result` always refers to the larger one of the two sets.\n return e.size < t.size && (e = t, t = this), t.forEach((t => {\n e = e.add(t);\n })), e;\n }\n isEqual(t) {\n if (!(t instanceof he)) return !1;\n if (this.size !== t.size) return !1;\n const e = this.data.getIterator(), n = t.data.getIterator();\n for (;e.hasNext(); ) {\n const t = e.getNext().key, r = n.getNext().key;\n if (0 !== this.comparator(t, r)) return !1;\n }\n return !0;\n }\n toArray() {\n const t = [];\n return this.forEach((e => {\n t.push(e);\n })), t;\n }\n toString() {\n const t = [];\n return this.forEach((e => t.push(e))), \"SortedSet(\" + t.toString() + \")\";\n }\n copy(t) {\n const e = new he(this.comparator);\n return e.data = t, e;\n }\n}\n\nclass le {\n constructor(t) {\n this.iter = t;\n }\n getNext() {\n return this.iter.getNext().key;\n }\n hasNext() {\n return this.iter.hasNext();\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Provides a set of fields that can be used to partially patch a document.\n * FieldMask is used in conjunction with ObjectValue.\n * Examples:\n * foo - Overwrites foo entirely with the provided value. If foo is not\n * present in the companion ObjectValue, the field is deleted.\n * foo.bar - Overwrites only the field bar of the object foo.\n * If foo is not an object, foo is replaced with an object\n * containing foo\n */ class fe {\n constructor(t) {\n this.fields = t, \n // TODO(dimond): validation of FieldMask\n // Sort the field mask to support `FieldMask.isEqual()` and assert below.\n t.sort(nt.comparator);\n }\n static empty() {\n return new fe([]);\n }\n /**\n * Returns a new FieldMask object that is the result of adding all the given\n * fields paths to this field mask.\n */ unionWith(t) {\n let e = new he(nt.comparator);\n for (const t of this.fields) e = e.add(t);\n for (const n of t) e = e.add(n);\n return new fe(e.toArray());\n }\n /**\n * Verifies that `fieldPath` is included by at least one field in this field\n * mask.\n *\n * This is an O(n) operation, where `n` is the size of the field mask.\n */ covers(t) {\n for (const e of this.fields) if (e.isPrefixOf(t)) return !0;\n return !1;\n }\n isEqual(t) {\n return vt(this.fields, t.fields, ((t, e) => t.isEqual(e)));\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An ObjectValue represents a MapValue in the Firestore Proto and offers the\n * ability to add and remove fields (via the ObjectValueBuilder).\n */ class de {\n constructor(t) {\n this.value = t;\n }\n static empty() {\n return new de({\n mapValue: {}\n });\n }\n /**\n * Returns the value at the given path or null.\n *\n * @param path - the path to search\n * @returns The value at the path or null if the path is not set.\n */ field(t) {\n if (t.isEmpty()) return this.value;\n {\n let e = this.value;\n for (let n = 0; n < t.length - 1; ++n) if (e = (e.mapValue.fields || {})[t.get(n)], \n !jt(e)) return null;\n return e = (e.mapValue.fields || {})[t.lastSegment()], e || null;\n }\n }\n /**\n * Sets the field to the provided value.\n *\n * @param path - The field path to set.\n * @param value - The value to set.\n */ set(t, e) {\n this.getFieldsMap(t.popLast())[t.lastSegment()] = Bt(e);\n }\n /**\n * Sets the provided fields to the provided values.\n *\n * @param data - A map of fields to values (or null for deletes).\n */ setAll(t) {\n let e = nt.emptyPath(), n = {}, r = [];\n t.forEach(((t, s) => {\n if (!e.isImmediateParentOf(s)) {\n // Insert the accumulated changes at this parent location\n const t = this.getFieldsMap(e);\n this.applyChanges(t, n, r), n = {}, r = [], e = s.popLast();\n }\n t ? n[s.lastSegment()] = Bt(t) : r.push(s.lastSegment());\n }));\n const s = this.getFieldsMap(e);\n this.applyChanges(s, n, r);\n }\n /**\n * Removes the field at the specified path. If there is no field at the\n * specified path, nothing is changed.\n *\n * @param path - The field path to remove.\n */ delete(t) {\n const e = this.field(t.popLast());\n jt(e) && e.mapValue.fields && delete e.mapValue.fields[t.lastSegment()];\n }\n isEqual(t) {\n return St(this.value, t.value);\n }\n /**\n * Returns the map that contains the leaf element of `path`. If the parent\n * entry does not yet exist, or if it is not a map, a new map will be created.\n */ getFieldsMap(t) {\n let e = this.value;\n e.mapValue.fields || (e.mapValue = {\n fields: {}\n });\n for (let n = 0; n < t.length; ++n) {\n let r = e.mapValue.fields[t.get(n)];\n jt(r) && r.mapValue.fields || (r = {\n mapValue: {\n fields: {}\n }\n }, e.mapValue.fields[t.get(n)] = r), e = r;\n }\n return e.mapValue.fields;\n }\n /**\n * Modifies `fieldsMap` by adding, replacing or deleting the specified\n * entries.\n */ applyChanges(t, e, n) {\n Et(e, ((e, n) => t[e] = n));\n for (const e of n) delete t[e];\n }\n clone() {\n return new de(Bt(this.value));\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Represents a document in Firestore with a key, version, data and whether it\n * has local mutations applied to it.\n *\n * Documents can transition between states via `convertToFoundDocument()`,\n * `convertToNoDocument()` and `convertToUnknownDocument()`. If a document does\n * not transition to one of these states even after all mutations have been\n * applied, `isValidDocument()` returns false and the document should be removed\n * from all views.\n */ class we {\n constructor(t, e, n, r, s, i, o) {\n this.key = t, this.documentType = e, this.version = n, this.readTime = r, this.createTime = s, \n this.data = i, this.documentState = o;\n }\n /**\n * Creates a document with no known version or data, but which can serve as\n * base document for mutations.\n */ static newInvalidDocument(t) {\n return new we(t, 0 /* DocumentType.INVALID */ , \n /* version */ oe.min(), \n /* readTime */ oe.min(), \n /* createTime */ oe.min(), de.empty(), 0 /* DocumentState.SYNCED */);\n }\n /**\n * Creates a new document that is known to exist with the given data at the\n * given version.\n */ static newFoundDocument(t, e, n, r) {\n return new we(t, 1 /* DocumentType.FOUND_DOCUMENT */ , \n /* version */ e, \n /* readTime */ oe.min(), \n /* createTime */ n, r, 0 /* DocumentState.SYNCED */);\n }\n /** Creates a new document that is known to not exist at the given version. */ static newNoDocument(t, e) {\n return new we(t, 2 /* DocumentType.NO_DOCUMENT */ , \n /* version */ e, \n /* readTime */ oe.min(), \n /* createTime */ oe.min(), de.empty(), 0 /* DocumentState.SYNCED */);\n }\n /**\n * Creates a new document that is known to exist at the given version but\n * whose data is not known (e.g. a document that was updated without a known\n * base document).\n */ static newUnknownDocument(t, e) {\n return new we(t, 3 /* DocumentType.UNKNOWN_DOCUMENT */ , \n /* version */ e, \n /* readTime */ oe.min(), \n /* createTime */ oe.min(), de.empty(), 2 /* DocumentState.HAS_COMMITTED_MUTATIONS */);\n }\n /**\n * Changes the document type to indicate that it exists and that its version\n * and data are known.\n */ convertToFoundDocument(t, e) {\n // If a document is switching state from being an invalid or deleted\n // document to a valid (FOUND_DOCUMENT) document, either due to receiving an\n // update from Watch or due to applying a local set mutation on top\n // of a deleted document, our best guess about its createTime would be the\n // version at which the document transitioned to a FOUND_DOCUMENT.\n return !this.createTime.isEqual(oe.min()) || 2 /* DocumentType.NO_DOCUMENT */ !== this.documentType && 0 /* DocumentType.INVALID */ !== this.documentType || (this.createTime = t), \n this.version = t, this.documentType = 1 /* DocumentType.FOUND_DOCUMENT */ , this.data = e, \n this.documentState = 0 /* DocumentState.SYNCED */ , this;\n }\n /**\n * Changes the document type to indicate that it doesn't exist at the given\n * version.\n */ convertToNoDocument(t) {\n return this.version = t, this.documentType = 2 /* DocumentType.NO_DOCUMENT */ , \n this.data = de.empty(), this.documentState = 0 /* DocumentState.SYNCED */ , this;\n }\n /**\n * Changes the document type to indicate that it exists at a given version but\n * that its data is not known (e.g. a document that was updated without a known\n * base document).\n */ convertToUnknownDocument(t) {\n return this.version = t, this.documentType = 3 /* DocumentType.UNKNOWN_DOCUMENT */ , \n this.data = de.empty(), this.documentState = 2 /* DocumentState.HAS_COMMITTED_MUTATIONS */ , \n this;\n }\n setHasCommittedMutations() {\n return this.documentState = 2 /* DocumentState.HAS_COMMITTED_MUTATIONS */ , this;\n }\n setHasLocalMutations() {\n return this.documentState = 1 /* DocumentState.HAS_LOCAL_MUTATIONS */ , this.version = oe.min(), \n this;\n }\n setReadTime(t) {\n return this.readTime = t, this;\n }\n get hasLocalMutations() {\n return 1 /* DocumentState.HAS_LOCAL_MUTATIONS */ === this.documentState;\n }\n get hasCommittedMutations() {\n return 2 /* DocumentState.HAS_COMMITTED_MUTATIONS */ === this.documentState;\n }\n get hasPendingWrites() {\n return this.hasLocalMutations || this.hasCommittedMutations;\n }\n isValidDocument() {\n return 0 /* DocumentType.INVALID */ !== this.documentType;\n }\n isFoundDocument() {\n return 1 /* DocumentType.FOUND_DOCUMENT */ === this.documentType;\n }\n isNoDocument() {\n return 2 /* DocumentType.NO_DOCUMENT */ === this.documentType;\n }\n isUnknownDocument() {\n return 3 /* DocumentType.UNKNOWN_DOCUMENT */ === this.documentType;\n }\n isEqual(t) {\n return t instanceof we && this.key.isEqual(t.key) && this.version.isEqual(t.version) && this.documentType === t.documentType && this.documentState === t.documentState && this.data.isEqual(t.data);\n }\n mutableCopy() {\n return new we(this.key, this.documentType, this.version, this.readTime, this.createTime, this.data.clone(), this.documentState);\n }\n toString() {\n return `Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`;\n }\n}\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Visible for testing\nclass me {\n constructor(t, e = null, n = [], r = [], s = null, i = null, o = null) {\n this.path = t, this.collectionGroup = e, this.orderBy = n, this.filters = r, this.limit = s, \n this.startAt = i, this.endAt = o, this.S = null;\n }\n}\n\n/**\n * Initializes a Target with a path and optional additional query constraints.\n * Path must currently be empty if this is a collection group query.\n *\n * NOTE: you should always construct `Target` from `Query.toTarget` instead of\n * using this factory method, because `Query` provides an implicit `orderBy`\n * property.\n */ function pe(t, e = null, n = [], r = [], s = null, i = null, o = null) {\n return new me(t, e, n, r, s, i, o);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Query encapsulates all the query attributes we support in the SDK. It can\n * be run against the LocalStore, as well as be converted to a `Target` to\n * query the RemoteStore results.\n *\n * Visible for testing.\n */\nclass ye {\n /**\n * Initializes a Query with a path and optional additional query constraints.\n * Path must currently be empty if this is a collection group query.\n */\n constructor(t, e = null, n = [], r = [], s = null, i = \"F\" /* LimitType.First */ , o = null, u = null) {\n this.path = t, this.collectionGroup = e, this.explicitOrderBy = n, this.filters = r, \n this.limit = s, this.limitType = i, this.startAt = o, this.endAt = u, this.q = null, \n // The corresponding `Target` of this `Query` instance.\n this.O = null, this.startAt, this.endAt;\n }\n}\n\n/** Creates a new Query for a query that matches all documents at `path` */ function ge(t) {\n return t.explicitOrderBy.length > 0 ? t.explicitOrderBy[0].field : null;\n}\n\nfunction _e(t) {\n for (const e of t.filters) {\n const t = e.getFirstInequalityField();\n if (null !== t) return t;\n }\n return null;\n}\n\n/**\n * Creates a new Query for a collection group query that matches all documents\n * within the provided collection group.\n */\n/**\n * Returns whether the query matches a collection group rather than a specific\n * collection.\n */\nfunction ve(t) {\n return null !== t.collectionGroup;\n}\n\n/**\n * Returns the implicit order by constraint that is used to execute the Query,\n * which can be different from the order by constraints the user provided (e.g.\n * the SDK and backend always orders by `__name__`).\n */ function be(t) {\n const e = I(t);\n if (null === e.q) {\n e.q = [];\n const t = _e(e), n = ge(e);\n if (null !== t && null === n) \n // In order to implicitly add key ordering, we must also add the\n // inequality filter field for it to be a valid query.\n // Note that the default inequality field and key ordering is ascending.\n t.isKeyField() || e.q.push(new se(t)), e.q.push(new se(nt.keyField(), \"asc\" /* Direction.ASCENDING */)); else {\n let t = !1;\n for (const n of e.explicitOrderBy) e.q.push(n), n.field.isKeyField() && (t = !0);\n if (!t) {\n // The order of the implicit key ordering always matches the last\n // explicit order by\n const t = e.explicitOrderBy.length > 0 ? e.explicitOrderBy[e.explicitOrderBy.length - 1].dir : \"asc\" /* Direction.ASCENDING */;\n e.q.push(new se(nt.keyField(), t));\n }\n }\n }\n return e.q;\n}\n\n/**\n * Converts this `Query` instance to it's corresponding `Target` representation.\n */ function Ee(t) {\n const e = I(t);\n if (!e.O) if (\"F\" /* LimitType.First */ === e.limitType) e.O = pe(e.path, e.collectionGroup, be(e), e.filters, e.limit, e.startAt, e.endAt); else {\n // Flip the orderBy directions since we want the last results\n const t = [];\n for (const n of be(e)) {\n const e = \"desc\" /* Direction.DESCENDING */ === n.dir ? \"asc\" /* Direction.ASCENDING */ : \"desc\" /* Direction.DESCENDING */;\n t.push(new se(n.field, e));\n }\n // We need to swap the cursors to match the now-flipped query ordering.\n const n = e.endAt ? new Qt(e.endAt.position, e.endAt.inclusive) : null, r = e.startAt ? new Qt(e.startAt.position, e.startAt.inclusive) : null;\n // Now return as a LimitType.First query.\n e.O = pe(e.path, e.collectionGroup, t, e.filters, e.limit, n, r);\n }\n return e.O;\n}\n\nfunction Ie(t, e) {\n e.getFirstInequalityField(), _e(t);\n const n = t.filters.concat([ e ]);\n return new ye(t.path, t.collectionGroup, t.explicitOrderBy.slice(), n, t.limit, t.limitType, t.startAt, t.endAt);\n}\n\nfunction Te(t, e) {\n return function(t, e) {\n if (t.limit !== e.limit) return !1;\n if (t.orderBy.length !== e.orderBy.length) return !1;\n for (let n = 0; n < t.orderBy.length; n++) if (!ie(t.orderBy[n], e.orderBy[n])) return !1;\n if (t.filters.length !== e.filters.length) return !1;\n for (let n = 0; n < t.filters.length; n++) if (!Yt(t.filters[n], e.filters[n])) return !1;\n return t.collectionGroup === e.collectionGroup && !!t.path.isEqual(e.path) && !!zt(t.startAt, e.startAt) && zt(t.endAt, e.endAt);\n }(Ee(t), Ee(e)) && t.limitType === e.limitType;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Returns an DoubleValue for `value` that is encoded based the serializer's\n * `useProto3Json` setting.\n */\n/**\n * Returns a value for a number that's appropriate to put into a proto.\n * The return value is an IntegerValue if it can safely represent the value,\n * otherwise a DoubleValue is returned.\n */\nfunction Ae(t, e) {\n return function(t) {\n return \"number\" == typeof t && Number.isInteger(t) && !lt(t) && t <= Number.MAX_SAFE_INTEGER && t >= Number.MIN_SAFE_INTEGER;\n }(e) ? \n /**\n * Returns an IntegerValue for `value`.\n */\n function(t) {\n return {\n integerValue: \"\" + t\n };\n }(e) : function(t, e) {\n if (t.k) {\n if (isNaN(e)) return {\n doubleValue: \"NaN\"\n };\n if (e === 1 / 0) return {\n doubleValue: \"Infinity\"\n };\n if (e === -1 / 0) return {\n doubleValue: \"-Infinity\"\n };\n }\n return {\n doubleValue: lt(e) ? \"-0\" : e\n };\n }(t, e);\n}\n\n/**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** Used to represent a field transform on a mutation. */ class Re {\n constructor() {\n // Make sure that the structural type of `TransformOperation` is unique.\n // See https://github.com/microsoft/TypeScript/issues/5451\n this._ = void 0;\n }\n}\n\n/** Transforms a value into a server-generated timestamp. */ class Pe extends Re {}\n\n/** Transforms an array value via a union operation. */ class Ve extends Re {\n constructor(t) {\n super(), this.elements = t;\n }\n}\n\n/** Transforms an array value via a remove operation. */ class $e extends Re {\n constructor(t) {\n super(), this.elements = t;\n }\n}\n\n/**\n * Implements the backend semantics for locally computed NUMERIC_ADD (increment)\n * transforms. Converts all field values to integers or doubles, but unlike the\n * backend does not cap integer values at 2^63. Instead, JavaScript number\n * arithmetic is used and precision loss can occur for values greater than 2^53.\n */ class Ne extends Re {\n constructor(t, e) {\n super(), this.C = t, this.L = e;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** A field path and the TransformOperation to perform upon it. */ class De {\n constructor(t, e) {\n this.field = t, this.transform = e;\n }\n}\n\n/**\n * Encodes a precondition for a mutation. This follows the model that the\n * backend accepts with the special case of an explicit \"empty\" precondition\n * (meaning no precondition).\n */ class Fe {\n constructor(t, e) {\n this.updateTime = t, this.exists = e;\n }\n /** Creates a new empty Precondition. */ static none() {\n return new Fe;\n }\n /** Creates a new Precondition with an exists flag. */ static exists(t) {\n return new Fe(void 0, t);\n }\n /** Creates a new Precondition based on a version a document exists at. */ static updateTime(t) {\n return new Fe(t);\n }\n /** Returns whether this Precondition is empty. */ get isNone() {\n return void 0 === this.updateTime && void 0 === this.exists;\n }\n isEqual(t) {\n return this.exists === t.exists && (this.updateTime ? !!t.updateTime && this.updateTime.isEqual(t.updateTime) : !t.updateTime);\n }\n}\n\n/**\n * A mutation describes a self-contained change to a document. Mutations can\n * create, replace, delete, and update subsets of documents.\n *\n * Mutations not only act on the value of the document but also its version.\n *\n * For local mutations (mutations that haven't been committed yet), we preserve\n * the existing version for Set and Patch mutations. For Delete mutations, we\n * reset the version to 0.\n *\n * Here's the expected transition table.\n *\n * MUTATION APPLIED TO RESULTS IN\n *\n * SetMutation Document(v3) Document(v3)\n * SetMutation NoDocument(v3) Document(v0)\n * SetMutation InvalidDocument(v0) Document(v0)\n * PatchMutation Document(v3) Document(v3)\n * PatchMutation NoDocument(v3) NoDocument(v3)\n * PatchMutation InvalidDocument(v0) UnknownDocument(v3)\n * DeleteMutation Document(v3) NoDocument(v0)\n * DeleteMutation NoDocument(v3) NoDocument(v0)\n * DeleteMutation InvalidDocument(v0) NoDocument(v0)\n *\n * For acknowledged mutations, we use the updateTime of the WriteResponse as\n * the resulting version for Set and Patch mutations. As deletes have no\n * explicit update time, we use the commitTime of the WriteResponse for\n * Delete mutations.\n *\n * If a mutation is acknowledged by the backend but fails the precondition check\n * locally, we transition to an `UnknownDocument` and rely on Watch to send us\n * the updated version.\n *\n * Field transforms are used only with Patch and Set Mutations. We use the\n * `updateTransforms` message to store transforms, rather than the `transforms`s\n * messages.\n *\n * ## Subclassing Notes\n *\n * Every type of mutation needs to implement its own applyToRemoteDocument() and\n * applyToLocalView() to implement the actual behavior of applying the mutation\n * to some source document (see `setMutationApplyToRemoteDocument()` for an\n * example).\n */ class xe {}\n\n/**\n * A mutation that creates or replaces the document at the given key with the\n * object value contents.\n */ class Se extends xe {\n constructor(t, e, n, r = []) {\n super(), this.key = t, this.value = e, this.precondition = n, this.fieldTransforms = r, \n this.type = 0 /* MutationType.Set */;\n }\n getFieldMask() {\n return null;\n }\n}\n\n/**\n * A mutation that modifies fields of the document at the given key with the\n * given values. The values are applied through a field mask:\n *\n * * When a field is in both the mask and the values, the corresponding field\n * is updated.\n * * When a field is in neither the mask nor the values, the corresponding\n * field is unmodified.\n * * When a field is in the mask but not in the values, the corresponding field\n * is deleted.\n * * When a field is not in the mask but is in the values, the values map is\n * ignored.\n */ class qe extends xe {\n constructor(t, e, n, r, s = []) {\n super(), this.key = t, this.data = e, this.fieldMask = n, this.precondition = r, \n this.fieldTransforms = s, this.type = 1 /* MutationType.Patch */;\n }\n getFieldMask() {\n return this.fieldMask;\n }\n}\n\n/** A mutation that deletes the document at the given key. */ class Oe extends xe {\n constructor(t, e) {\n super(), this.key = t, this.precondition = e, this.type = 2 /* MutationType.Delete */ , \n this.fieldTransforms = [];\n }\n getFieldMask() {\n return null;\n }\n}\n\n/**\n * A mutation that verifies the existence of the document at the given key with\n * the provided precondition.\n *\n * The `verify` operation is only used in Transactions, and this class serves\n * primarily to facilitate serialization into protos.\n */ class ke extends xe {\n constructor(t, e) {\n super(), this.key = t, this.precondition = e, this.type = 3 /* MutationType.Verify */ , \n this.fieldTransforms = [];\n }\n getFieldMask() {\n return null;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ const Ce = (() => {\n const t = {\n asc: \"ASCENDING\",\n desc: \"DESCENDING\"\n };\n return t;\n})(), Le = (() => {\n const t = {\n \"<\": \"LESS_THAN\",\n \"<=\": \"LESS_THAN_OR_EQUAL\",\n \">\": \"GREATER_THAN\",\n \">=\": \"GREATER_THAN_OR_EQUAL\",\n \"==\": \"EQUAL\",\n \"!=\": \"NOT_EQUAL\",\n \"array-contains\": \"ARRAY_CONTAINS\",\n in: \"IN\",\n \"not-in\": \"NOT_IN\",\n \"array-contains-any\": \"ARRAY_CONTAINS_ANY\"\n };\n return t;\n})(), Me = (() => {\n const t = {\n and: \"AND\",\n or: \"OR\"\n };\n return t;\n})();\n\n/**\n * This class generates JsonObject values for the Datastore API suitable for\n * sending to either GRPC stub methods or via the JSON/HTTP REST API.\n *\n * The serializer supports both Protobuf.js and Proto3 JSON formats. By\n * setting `useProto3Json` to true, the serializer will use the Proto3 JSON\n * format.\n *\n * For a description of the Proto3 JSON format check\n * https://developers.google.com/protocol-buffers/docs/proto3#json\n *\n * TODO(klimt): We can remove the databaseId argument if we keep the full\n * resource name in documents.\n */\nclass Ue {\n constructor(t, e) {\n this.databaseId = t, this.k = e;\n }\n}\n\n/**\n * Returns a value for a number (or null) that's appropriate to put into\n * a google.protobuf.Int32Value proto.\n * DO NOT USE THIS FOR ANYTHING ELSE.\n * This method cheats. It's typed as returning \"number\" because that's what\n * our generated proto interfaces say Int32Value must be. But GRPC actually\n * expects a { value: } struct.\n */\n/**\n * Returns a value for a Date that's appropriate to put into a proto.\n */\nfunction je(t, e) {\n if (t.k) {\n return `${new Date(1e3 * e.seconds).toISOString().replace(/\\.\\d*/, \"\").replace(\"Z\", \"\")}.${(\"000000000\" + e.nanoseconds).slice(-9)}Z`;\n }\n return {\n seconds: \"\" + e.seconds,\n nanos: e.nanoseconds\n };\n}\n\n/**\n * Returns a value for bytes that's appropriate to put in a proto.\n *\n * Visible for testing.\n */\nfunction Be(t, e) {\n return t.k ? e.toBase64() : e.toUint8Array();\n}\n\nfunction Qe(t, e) {\n return je(t, e.toTimestamp());\n}\n\nfunction ze(t) {\n return E(!!t), oe.fromTimestamp(function(t) {\n const e = At(t);\n return new Vt(e.seconds, e.nanos);\n }(t));\n}\n\nfunction We(t, e) {\n return function(t) {\n return new tt([ \"projects\", t.projectId, \"databases\", t.database ]);\n }(t).child(\"documents\").child(e).canonicalString();\n}\n\nfunction Ge(t, e) {\n return We(t.databaseId, e.path);\n}\n\nfunction Ke(t, e) {\n const n = function(t) {\n const e = tt.fromString(t);\n return E(cn(e)), e;\n }(e);\n if (n.get(1) !== t.databaseId.projectId) throw new U(P, \"Tried to deserialize key from different project: \" + n.get(1) + \" vs \" + t.databaseId.projectId);\n if (n.get(3) !== t.databaseId.database) throw new U(P, \"Tried to deserialize key from different database: \" + n.get(3) + \" vs \" + t.databaseId.database);\n return new rt((E((r = n).length > 4 && \"documents\" === r.get(4)), r.popFirst(5)));\n var r;\n /** Creates a Document proto from key and fields (but no create/update time) */}\n\nfunction Ye(t, e) {\n return We(t.databaseId, e);\n}\n\nfunction He(t) {\n return new tt([ \"projects\", t.databaseId.projectId, \"databases\", t.databaseId.database ]).canonicalString();\n}\n\nfunction Je(t, e, n) {\n return {\n name: Ge(t, e),\n fields: n.value.mapValue.fields\n };\n}\n\nfunction Xe(t, e) {\n return \"found\" in e ? function(t, e) {\n E(!!e.found), e.found.name, e.found.updateTime;\n const n = Ke(t, e.found.name), r = ze(e.found.updateTime), s = e.found.createTime ? ze(e.found.createTime) : oe.min(), i = new de({\n mapValue: {\n fields: e.found.fields\n }\n });\n return we.newFoundDocument(n, r, s, i);\n }(t, e) : \"missing\" in e ? function(t, e) {\n E(!!e.missing), E(!!e.readTime);\n const n = Ke(t, e.missing), r = ze(e.readTime);\n return we.newNoDocument(n, r);\n }(t, e) : b();\n}\n\nfunction Ze(t, e) {\n let n;\n if (e instanceof Se) n = {\n update: Je(t, e.key, e.value)\n }; else if (e instanceof Oe) n = {\n delete: Ge(t, e.key)\n }; else if (e instanceof qe) n = {\n update: Je(t, e.key, e.data),\n updateMask: un(e.fieldMask)\n }; else {\n if (!(e instanceof ke)) return b();\n n = {\n verify: Ge(t, e.key)\n };\n }\n return e.fieldTransforms.length > 0 && (n.updateTransforms = e.fieldTransforms.map((t => function(t, e) {\n const n = e.transform;\n if (n instanceof Pe) return {\n fieldPath: e.field.canonicalString(),\n setToServerValue: \"REQUEST_TIME\"\n };\n if (n instanceof Ve) return {\n fieldPath: e.field.canonicalString(),\n appendMissingElements: {\n values: n.elements\n }\n };\n if (n instanceof $e) return {\n fieldPath: e.field.canonicalString(),\n removeAllFromArray: {\n values: n.elements\n }\n };\n if (n instanceof Ne) return {\n fieldPath: e.field.canonicalString(),\n increment: n.L\n };\n throw b();\n }(0, t)))), e.precondition.isNone || (n.currentDocument = function(t, e) {\n return void 0 !== e.updateTime ? {\n updateTime: Qe(t, e.updateTime)\n } : void 0 !== e.exists ? {\n exists: e.exists\n } : b();\n }(t, e.precondition)), n;\n}\n\nfunction tn(t, e) {\n // Dissect the path into parent, collectionId, and optional key filter.\n const n = {\n structuredQuery: {}\n }, r = e.path;\n null !== e.collectionGroup ? (n.parent = Ye(t, r), n.structuredQuery.from = [ {\n collectionId: e.collectionGroup,\n allDescendants: !0\n } ]) : (n.parent = Ye(t, r.popLast()), n.structuredQuery.from = [ {\n collectionId: r.lastSegment()\n } ]);\n const s = function(t) {\n if (0 === t.length) return;\n return on(Kt.create(t, \"and\" /* CompositeOperator.AND */));\n }(e.filters);\n s && (n.structuredQuery.where = s);\n const i = function(t) {\n if (0 === t.length) return;\n return t.map((t => \n // visible for testing\n function(t) {\n return {\n field: sn(t.field),\n direction: en(t.dir)\n };\n }\n // visible for testing\n (t)));\n }(e.orderBy);\n i && (n.structuredQuery.orderBy = i);\n const o = function(t, e) {\n return t.k || ht(e) ? e : {\n value: e\n };\n }(t, e.limit);\n var u;\n return null !== o && (n.structuredQuery.limit = o), e.startAt && (n.structuredQuery.startAt = {\n before: (u = e.startAt).inclusive,\n values: u.position\n }), e.endAt && (n.structuredQuery.endAt = function(t) {\n return {\n before: !t.inclusive,\n values: t.position\n };\n }\n // visible for testing\n (e.endAt)), n;\n}\n\nfunction en(t) {\n return Ce[t];\n}\n\n// visible for testing\nfunction nn(t) {\n return Le[t];\n}\n\nfunction rn(t) {\n return Me[t];\n}\n\nfunction sn(t) {\n return {\n fieldPath: t.canonicalString()\n };\n}\n\nfunction on(t) {\n return t instanceof Gt ? function(t) {\n if (\"==\" /* Operator.EQUAL */ === t.op) {\n if (Ut(t.value)) return {\n unaryFilter: {\n field: sn(t.field),\n op: \"IS_NAN\"\n }\n };\n if (Mt(t.value)) return {\n unaryFilter: {\n field: sn(t.field),\n op: \"IS_NULL\"\n }\n };\n } else if (\"!=\" /* Operator.NOT_EQUAL */ === t.op) {\n if (Ut(t.value)) return {\n unaryFilter: {\n field: sn(t.field),\n op: \"IS_NOT_NAN\"\n }\n };\n if (Mt(t.value)) return {\n unaryFilter: {\n field: sn(t.field),\n op: \"IS_NOT_NULL\"\n }\n };\n }\n return {\n fieldFilter: {\n field: sn(t.field),\n op: nn(t.op),\n value: t.value\n }\n };\n }(t) : t instanceof Kt ? function(t) {\n const e = t.getFilters().map((t => on(t)));\n if (1 === e.length) return e[0];\n return {\n compositeFilter: {\n op: rn(t.op),\n filters: e\n }\n };\n }(t) : b();\n}\n\nfunction un(t) {\n const e = [];\n return t.fields.forEach((t => e.push(t.canonicalString()))), {\n fieldPaths: e\n };\n}\n\nfunction cn(t) {\n // Resource names have at least 4 components (project ID, database ID)\n return t.length >= 4 && \"projects\" === t.get(0) && \"databases\" === t.get(2);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ function an(t) {\n return new Ue(t, /* useProto3Json= */ !0);\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A helper for running delayed tasks following an exponential backoff curve\n * between attempts.\n *\n * Each delay is made up of a \"base\" delay which follows the exponential\n * backoff curve, and a +/- 50% \"jitter\" that is calculated and added to the\n * base delay. This prevents clients from accidentally synchronizing their\n * delays causing spikes of load to the backend.\n */\nclass hn {\n constructor(\n /**\n * The AsyncQueue to run backoff operations on.\n */\n t, \n /**\n * The ID to use when scheduling backoff operations on the AsyncQueue.\n */\n e, \n /**\n * The initial delay (used as the base delay on the first retry attempt).\n * Note that jitter will still be applied, so the actual delay could be as\n * little as 0.5*initialDelayMs.\n */\n n = 1e3\n /**\n * The multiplier to use to determine the extended base delay after each\n * attempt.\n */ , r = 1.5\n /**\n * The maximum base delay after which no further backoff is performed.\n * Note that jitter will still be applied, so the actual delay could be as\n * much as 1.5*maxDelayMs.\n */ , s = 6e4) {\n this.M = t, this.timerId = e, this.U = n, this.j = r, this.B = s, this.W = 0, this.G = null, \n /** The last backoff attempt, as epoch milliseconds. */\n this.K = Date.now(), this.reset();\n }\n /**\n * Resets the backoff delay.\n *\n * The very next backoffAndWait() will have no delay. If it is called again\n * (i.e. due to an error), initialDelayMs (plus jitter) will be used, and\n * subsequent ones will increase according to the backoffFactor.\n */ reset() {\n this.W = 0;\n }\n /**\n * Resets the backoff delay to the maximum delay (e.g. for use after a\n * RESOURCE_EXHAUSTED error).\n */ Y() {\n this.W = this.B;\n }\n /**\n * Returns a promise that resolves after currentDelayMs, and increases the\n * delay for any subsequent attempts. If there was a pending backoff operation\n * already, it will be canceled.\n */ H(t) {\n // Cancel any pending backoff operation.\n this.cancel();\n // First schedule using the current base (which may be 0 and should be\n // honored as such).\n const e = Math.floor(this.W + this.J()), n = Math.max(0, Date.now() - this.K), r = Math.max(0, e - n);\n // Guard against lastAttemptTime being in the future due to a clock change.\n r > 0 && y(\"ExponentialBackoff\", `Backing off for ${r} ms (base delay: ${this.W} ms, delay with jitter: ${e} ms, last attempt: ${n} ms ago)`), \n this.G = this.M.enqueueAfterDelay(this.timerId, r, (() => (this.K = Date.now(), \n t()))), \n // Apply backoff factor to determine next delay and ensure it is within\n // bounds.\n this.W *= this.j, this.W < this.U && (this.W = this.U), this.W > this.B && (this.W = this.B);\n }\n X() {\n null !== this.G && (this.G.skipDelay(), this.G = null);\n }\n cancel() {\n null !== this.G && (this.G.cancel(), this.G = null);\n }\n /** Returns a random value in the range [-currentBaseMs/2, currentBaseMs/2] */ J() {\n return (Math.random() - .5) * this.W;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Datastore and its related methods are a wrapper around the external Google\n * Cloud Datastore grpc API, which provides an interface that is more convenient\n * for the rest of the client SDK architecture to consume.\n */\n/**\n * An implementation of Datastore that exposes additional state for internal\n * consumption.\n */\nclass ln extends class {} {\n constructor(t, e, n, r) {\n super(), this.authCredentials = t, this.appCheckCredentials = e, this.connection = n, \n this.C = r, this.Z = !1;\n }\n tt() {\n if (this.Z) throw new U(S, \"The client has already been terminated.\");\n }\n /** Invokes the provided RPC with auth and AppCheck tokens. */ I(t, e, n) {\n return this.tt(), Promise.all([ this.authCredentials.getToken(), this.appCheckCredentials.getToken() ]).then((([r, s]) => this.connection.I(t, e, n, r, s))).catch((t => {\n throw \"FirebaseError\" === t.name ? (t.code === F && (this.authCredentials.invalidateToken(), \n this.appCheckCredentials.invalidateToken()), t) : new U(R, t.toString());\n }));\n }\n /** Invokes the provided RPC with streamed results with auth and AppCheck tokens. */ P(t, e, n, r) {\n return this.tt(), Promise.all([ this.authCredentials.getToken(), this.appCheckCredentials.getToken() ]).then((([s, i]) => this.connection.P(t, e, n, s, i, r))).catch((t => {\n throw \"FirebaseError\" === t.name ? (t.code === F && (this.authCredentials.invalidateToken(), \n this.appCheckCredentials.invalidateToken()), t) : new U(R, t.toString());\n }));\n }\n terminate() {\n this.Z = !0;\n }\n}\n\n// TODO(firestorexp): Make sure there is only one Datastore instance per\n// firestore-exp client.\nasync function fn(t, e) {\n const n = I(t), r = He(n.C) + \"/documents\", s = {\n writes: e.map((t => Ze(n.C, t)))\n };\n await n.I(\"Commit\", r, s);\n}\n\nasync function dn(t, e) {\n const n = I(t), r = He(n.C) + \"/documents\", s = {\n documents: e.map((t => Ge(n.C, t)))\n }, i = await n.P(\"BatchGetDocuments\", r, s, e.length), o = new Map;\n i.forEach((t => {\n const e = Xe(n.C, t);\n o.set(e.key.toString(), e);\n }));\n const u = [];\n return e.forEach((t => {\n const e = o.get(t.toString());\n E(!!e), u.push(e);\n })), u;\n}\n\nasync function wn(t, e) {\n const n = I(t), r = tn(n.C, Ee(e));\n return (await n.P(\"RunQuery\", r.parent, {\n structuredQuery: r.structuredQuery\n })).filter((t => !!t.document)).map((t => function(t, e, n) {\n const r = Ke(t, e.name), s = ze(e.updateTime), i = e.createTime ? ze(e.createTime) : oe.min(), o = new de({\n mapValue: {\n fields: e.fields\n }\n }), u = we.newFoundDocument(r, s, i, o);\n return n && u.setHasCommittedMutations(), n ? u.setHasCommittedMutations() : u;\n }(n.C, t.document, void 0)));\n}\n\nasync function mn(t, e) {\n const n = I(t), r = function(t, e) {\n const n = tn(t, e);\n return {\n structuredAggregationQuery: {\n aggregations: [ {\n count: {},\n alias: \"count_alias\"\n } ],\n structuredQuery: n.structuredQuery\n },\n parent: n.parent\n };\n }(n.C, Ee(e)), s = r.parent;\n n.connection.v || delete r.parent;\n return (await n.P(\"RunAggregationQuery\", s, r, /*expectedResponseCount=*/ 1)).filter((t => !!t.result)).map((t => t.result.aggregateFields));\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ const pn = new Map;\n\n/**\n * An instance map that ensures only one Datastore exists per Firestore\n * instance.\n */\n/**\n * Returns an initialized and started Datastore for the given Firestore\n * instance. Callers must invoke removeComponents() when the Firestore\n * instance is terminated.\n */\nfunction yn(t) {\n if (t._terminated) throw new U(S, \"The client has already been terminated.\");\n if (!pn.has(t)) {\n y(\"ComponentProvider\", \"Initializing Datastore\");\n const i = function(t) {\n return new pt(t, fetch.bind(null));\n }((e = t._databaseId, n = t.app.options.appId || \"\", r = t._persistenceKey, s = t._freezeSettings(), \n new J(e, n, r, s.host, s.ssl, s.experimentalForceLongPolling, s.experimentalAutoDetectLongPolling, s.useFetchStreams))), o = an(t._databaseId), u = function(t, e, n, r) {\n return new ln(t, e, n, r);\n }(t._authCredentials, t._appCheckCredentials, i, o);\n pn.set(t, u);\n }\n var e, n, r, s;\n /**\n * @license\n * Copyright 2018 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ return pn.get(t);\n}\n\n/**\n * Removes all components associated with the provided instance. Must be called\n * when the `Firestore` instance is terminated.\n */\n/**\n * A concrete type describing all the values that can be applied via a\n * user-supplied `FirestoreSettings` object. This is a separate type so that\n * defaults can be supplied and the value can be checked for equality.\n */\nclass gn {\n constructor(t) {\n var e;\n if (void 0 === t.host) {\n if (void 0 !== t.ssl) throw new U(P, \"Can't provide ssl option if host option is not set\");\n this.host = \"firestore.googleapis.com\", this.ssl = true;\n } else this.host = t.host, this.ssl = null === (e = t.ssl) || void 0 === e || e;\n if (this.credentials = t.credentials, this.ignoreUndefinedProperties = !!t.ignoreUndefinedProperties, \n void 0 === t.cacheSizeBytes) this.cacheSizeBytes = 41943040; else {\n if (-1 !== t.cacheSizeBytes && t.cacheSizeBytes < 1048576) throw new U(P, \"cacheSizeBytes must be at least 1048576\");\n this.cacheSizeBytes = t.cacheSizeBytes;\n }\n this.experimentalForceLongPolling = !!t.experimentalForceLongPolling, this.experimentalAutoDetectLongPolling = !!t.experimentalAutoDetectLongPolling, \n this.useFetchStreams = !!t.useFetchStreams, function(t, e, n, r) {\n if (!0 === e && !0 === r) throw new U(P, `${t} and ${n} cannot be used together.`);\n }(\"experimentalForceLongPolling\", t.experimentalForceLongPolling, \"experimentalAutoDetectLongPolling\", t.experimentalAutoDetectLongPolling);\n }\n isEqual(t) {\n return this.host === t.host && this.ssl === t.ssl && this.credentials === t.credentials && this.cacheSizeBytes === t.cacheSizeBytes && this.experimentalForceLongPolling === t.experimentalForceLongPolling && this.experimentalAutoDetectLongPolling === t.experimentalAutoDetectLongPolling && this.ignoreUndefinedProperties === t.ignoreUndefinedProperties && this.useFetchStreams === t.useFetchStreams;\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * The Cloud Firestore service interface.\n *\n * Do not call this constructor directly. Instead, use {@link (getFirestore:1)}.\n */ class _n {\n /** @hideconstructor */\n constructor(t, e, n, r) {\n this._authCredentials = t, this._appCheckCredentials = e, this._databaseId = n, \n this._app = r, \n /**\n * Whether it's a Firestore or Firestore Lite instance.\n */\n this.type = \"firestore-lite\", this._persistenceKey = \"(lite)\", this._settings = new gn({}), \n this._settingsFrozen = !1;\n }\n /**\n * The {@link @firebase/app#FirebaseApp} associated with this `Firestore` service\n * instance.\n */ get app() {\n if (!this._app) throw new U(S, \"Firestore was not initialized using the Firebase SDK. 'app' is not available\");\n return this._app;\n }\n get _initialized() {\n return this._settingsFrozen;\n }\n get _terminated() {\n return void 0 !== this._terminateTask;\n }\n _setSettings(t) {\n if (this._settingsFrozen) throw new U(S, \"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.\");\n this._settings = new gn(t), void 0 !== t.credentials && (this._authCredentials = function(t) {\n if (!t) return new Q;\n switch (t.type) {\n case \"gapi\":\n const e = t.client;\n return new K(e, t.sessionIndex || \"0\", t.iamToken || null, t.authTokenFactory || null);\n\n case \"provider\":\n return t.client;\n\n default:\n throw new U(P, \"makeAuthCredentialsProvider failed due to invalid credential type\");\n }\n }(t.credentials));\n }\n _getSettings() {\n return this._settings;\n }\n _freezeSettings() {\n return this._settingsFrozen = !0, this._settings;\n }\n _delete() {\n return this._terminateTask || (this._terminateTask = this._terminate()), this._terminateTask;\n }\n /** Returns a JSON-serializable representation of this `Firestore` instance. */ toJSON() {\n return {\n app: this._app,\n databaseId: this._databaseId,\n settings: this._settings\n };\n }\n /**\n * Terminates all components used by this client. Subclasses can override\n * this method to clean up their own dependencies, but must also call this\n * method.\n *\n * Only ever called once.\n */ _terminate() {\n return function(t) {\n const e = pn.get(t);\n e && (y(\"ComponentProvider\", \"Removing Datastore\"), pn.delete(t), e.terminate());\n }(this), Promise.resolve();\n }\n}\n\nfunction vn(t, e, n) {\n n || (n = \"(default)\");\n const r = _getProvider(t, \"firestore/lite\");\n if (r.isInitialized(n)) throw new U(S, \"Firestore can only be initialized once per app.\");\n return r.initialize({\n options: e,\n instanceIdentifier: n\n });\n}\n\nfunction bn(e, n) {\n const r = \"object\" == typeof e ? e : t(), s = \"string\" == typeof e ? e : n || \"(default)\", i = _getProvider(r, \"firestore/lite\").getImmediate({\n identifier: s\n });\n if (!i._initialized) {\n const t = a(\"firestore\");\n t && En(i, ...t);\n }\n return i;\n}\n\n/**\n * Modify this instance to communicate with the Cloud Firestore emulator.\n *\n * Note: This must be called before this instance has been used to do any\n * operations.\n *\n * @param firestore - The `Firestore` instance to configure to connect to the\n * emulator.\n * @param host - the emulator host (ex: localhost).\n * @param port - the emulator port (ex: 9000).\n * @param options.mockUserToken - the mock auth token to use for unit testing\n * Security Rules.\n */ function En(t, e, n, r = {}) {\n var s;\n const i = (t = ct(t, _n))._getSettings();\n if (\"firestore.googleapis.com\" !== i.host && i.host !== e && _(\"Host has been set in both settings() and useEmulator(), emulator host will be used\"), \n t._setSettings(Object.assign(Object.assign({}, i), {\n host: `${e}:${n}`,\n ssl: !1\n })), r.mockUserToken) {\n let e, n;\n if (\"string\" == typeof r.mockUserToken) e = r.mockUserToken, n = d.MOCK_USER; else {\n // Let createMockUserToken validate first (catches common mistakes like\n // invalid field \"uid\" and missing field \"sub\" / \"user_id\".)\n e = h(r.mockUserToken, null === (s = t._app) || void 0 === s ? void 0 : s.options.projectId);\n const i = r.mockUserToken.sub || r.mockUserToken.user_id;\n if (!i) throw new U(P, \"mockUserToken must contain 'sub' or 'user_id' field!\");\n n = new d(i);\n }\n t._authCredentials = new z(new B(e, n));\n }\n}\n\n/**\n * Terminates the provided `Firestore` instance.\n *\n * After calling `terminate()` only the `clearIndexedDbPersistence()` functions\n * may be used. Any other function will throw a `FirestoreError`. Termination\n * does not cancel any pending writes, and any promises that are awaiting a\n * response from the server will not be resolved.\n *\n * To restart after termination, create a new instance of `Firestore` with\n * {@link (getFirestore:1)}.\n *\n * Note: Under normal circumstances, calling `terminate()` is not required. This\n * function is useful only when you want to force this instance to release all of\n * its resources or in combination with {@link clearIndexedDbPersistence} to\n * ensure that all local state is destroyed between test runs.\n *\n * @param firestore - The `Firestore` instance to terminate.\n * @returns A `Promise` that is resolved when the instance has been successfully\n * terminated.\n */ function In(t) {\n return t = ct(t, _n), e(t.app, \"firestore/lite\"), t._delete();\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Represents an aggregation that can be performed by Firestore.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nclass Tn {\n constructor() {\n /** A type string to uniquely identify instances of this class. */\n this.type = \"AggregateField\";\n }\n}\n\n/**\n * The results of executing an aggregation query.\n */ class An {\n /** @hideconstructor */\n constructor(t, e) {\n this._data = e, \n /** A type string to uniquely identify instances of this class. */\n this.type = \"AggregateQuerySnapshot\", this.query = t;\n }\n /**\n * Returns the results of the aggregations performed over the underlying\n * query.\n *\n * The keys of the returned object will be the same as those of the\n * `AggregateSpec` object specified to the aggregation method, and the values\n * will be the corresponding aggregation result.\n *\n * @returns The results of the aggregations performed over the underlying\n * query.\n */ data() {\n return this._data;\n }\n}\n\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * CountQueryRunner encapsulates the logic needed to run the count aggregation\n * queries.\n */ class Rn {\n constructor(t, e, n) {\n this.query = t, this.datastore = e, this.userDataWriter = n;\n }\n run() {\n return mn(this.datastore, this.query._query).then((t => {\n E(void 0 !== t[0]);\n const e = Object.entries(t[0]).filter((([t, e]) => \"count_alias\" === t)).map((([t, e]) => this.userDataWriter.convertValue(e)))[0];\n return E(\"number\" == typeof e), Promise.resolve(new An(this.query, {\n count: e\n }));\n }));\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A `DocumentReference` refers to a document location in a Firestore database\n * and can be used to write, read, or listen to the location. The document at\n * the referenced location may or may not exist.\n */ class Pn {\n /** @hideconstructor */\n constructor(t, \n /**\n * If provided, the `FirestoreDataConverter` associated with this instance.\n */\n e, n) {\n this.converter = e, this._key = n, \n /** The type of this Firestore reference. */\n this.type = \"document\", this.firestore = t;\n }\n get _path() {\n return this._key.path;\n }\n /**\n * The document's identifier within its collection.\n */ get id() {\n return this._key.path.lastSegment();\n }\n /**\n * A string representing the path of the referenced document (relative\n * to the root of the database).\n */ get path() {\n return this._key.path.canonicalString();\n }\n /**\n * The collection this `DocumentReference` belongs to.\n */ get parent() {\n return new $n(this.firestore, this.converter, this._key.path.popLast());\n }\n withConverter(t) {\n return new Pn(this.firestore, t, this._key);\n }\n}\n\n/**\n * A `Query` refers to a query which you can read or listen to. You can also\n * construct refined `Query` objects by adding filters and ordering.\n */ class Vn {\n // This is the lite version of the Query class in the main SDK.\n /** @hideconstructor protected */\n constructor(t, \n /**\n * If provided, the `FirestoreDataConverter` associated with this instance.\n */\n e, n) {\n this.converter = e, this._query = n, \n /** The type of this Firestore reference. */\n this.type = \"query\", this.firestore = t;\n }\n withConverter(t) {\n return new Vn(this.firestore, t, this._query);\n }\n}\n\n/**\n * A `CollectionReference` object can be used for adding documents, getting\n * document references, and querying for documents (using {@link query}).\n */ class $n extends Vn {\n /** @hideconstructor */\n constructor(t, e, n) {\n super(t, e, new ye(n)), this._path = n, \n /** The type of this Firestore reference. */\n this.type = \"collection\";\n }\n /** The collection's identifier. */ get id() {\n return this._query.path.lastSegment();\n }\n /**\n * A string representing the path of the referenced collection (relative\n * to the root of the database).\n */ get path() {\n return this._query.path.canonicalString();\n }\n /**\n * A reference to the containing `DocumentReference` if this is a\n * subcollection. If this isn't a subcollection, the reference is null.\n */ get parent() {\n const t = this._path.popLast();\n return t.isEmpty() ? null : new Pn(this.firestore, \n /* converter= */ null, new rt(t));\n }\n withConverter(t) {\n return new $n(this.firestore, t, this._path);\n }\n}\n\nfunction Nn(t, e, ...n) {\n if (t = l(t), st(\"collection\", \"path\", e), t instanceof _n) {\n const r = tt.fromString(e, ...n);\n return ot(r), new $n(t, /* converter= */ null, r);\n }\n {\n if (!(t instanceof Pn || t instanceof $n)) throw new U(P, \"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore\");\n const r = t._path.child(tt.fromString(e, ...n));\n return ot(r), new $n(t.firestore, \n /* converter= */ null, r);\n }\n}\n\n// TODO(firestorelite): Consider using ErrorFactory -\n// https://github.com/firebase/firebase-js-sdk/blob/0131e1f/packages/util/src/errors.ts#L106\n/**\n * Creates and returns a new `Query` instance that includes all documents in the\n * database that are contained in a collection or subcollection with the\n * given `collectionId`.\n *\n * @param firestore - A reference to the root `Firestore` instance.\n * @param collectionId - Identifies the collections to query over. Every\n * collection or subcollection with this ID as the last segment of its path\n * will be included. Cannot contain a slash.\n * @returns The created `Query`.\n */ function Dn(t, e) {\n if (t = ct(t, _n), st(\"collectionGroup\", \"collection id\", e), e.indexOf(\"/\") >= 0) throw new U(P, `Invalid collection ID '${e}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);\n return new Vn(t, \n /* converter= */ null, function(t) {\n return new ye(tt.emptyPath(), t);\n }(e));\n}\n\nfunction Fn(t, e, ...n) {\n if (t = l(t), \n // We allow omission of 'pathString' but explicitly prohibit passing in both\n // 'undefined' and 'null'.\n 1 === arguments.length && (e = gt.N()), st(\"doc\", \"path\", e), t instanceof _n) {\n const r = tt.fromString(e, ...n);\n return it(r), new Pn(t, \n /* converter= */ null, new rt(r));\n }\n {\n if (!(t instanceof Pn || t instanceof $n)) throw new U(P, \"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore\");\n const r = t._path.child(tt.fromString(e, ...n));\n return it(r), new Pn(t.firestore, t instanceof $n ? t.converter : null, new rt(r));\n }\n}\n\n/**\n * Returns true if the provided references are equal.\n *\n * @param left - A reference to compare.\n * @param right - A reference to compare.\n * @returns true if the references point to the same location in the same\n * Firestore database.\n */ function xn(t, e) {\n return t = l(t), e = l(e), (t instanceof Pn || t instanceof $n) && (e instanceof Pn || e instanceof $n) && (t.firestore === e.firestore && t.path === e.path && t.converter === e.converter);\n}\n\n/**\n * Returns true if the provided queries point to the same collection and apply\n * the same constraints.\n *\n * @param left - A `Query` to compare.\n * @param right - A `Query` to compare.\n * @returns true if the references point to the same location in the same\n * Firestore database.\n */ function Sn(t, e) {\n return t = l(t), e = l(e), t instanceof Vn && e instanceof Vn && (t.firestore === e.firestore && Te(t._query, e._query) && t.converter === e.converter);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An immutable object representing an array of bytes.\n */ class qn {\n /** @hideconstructor */\n constructor(t) {\n this._byteString = t;\n }\n /**\n * Creates a new `Bytes` object from the given Base64 string, converting it to\n * bytes.\n *\n * @param base64 - The Base64 string used to create the `Bytes` object.\n */ static fromBase64String(t) {\n try {\n return new qn(It.fromBase64String(t));\n } catch (t) {\n throw new U(P, \"Failed to construct data from Base64 string: \" + t);\n }\n }\n /**\n * Creates a new `Bytes` object from the given Uint8Array.\n *\n * @param array - The Uint8Array used to create the `Bytes` object.\n */ static fromUint8Array(t) {\n return new qn(It.fromUint8Array(t));\n }\n /**\n * Returns the underlying bytes as a Base64-encoded string.\n *\n * @returns The Base64-encoded string created from the `Bytes` object.\n */ toBase64() {\n return this._byteString.toBase64();\n }\n /**\n * Returns the underlying bytes in a new `Uint8Array`.\n *\n * @returns The Uint8Array created from the `Bytes` object.\n */ toUint8Array() {\n return this._byteString.toUint8Array();\n }\n /**\n * Returns a string representation of the `Bytes` object.\n *\n * @returns A string representation of the `Bytes` object.\n */ toString() {\n return \"Bytes(base64: \" + this.toBase64() + \")\";\n }\n /**\n * Returns true if this `Bytes` object is equal to the provided one.\n *\n * @param other - The `Bytes` object to compare against.\n * @returns true if this `Bytes` object is equal to the provided one.\n */ isEqual(t) {\n return this._byteString.isEqual(t._byteString);\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A `FieldPath` refers to a field in a document. The path may consist of a\n * single field name (referring to a top-level field in the document), or a\n * list of field names (referring to a nested field in the document).\n *\n * Create a `FieldPath` by providing field names. If more than one field\n * name is provided, the path will point to a nested field in a document.\n */ class On {\n /**\n * Creates a `FieldPath` from the provided field names. If more than one field\n * name is provided, the path will point to a nested field in a document.\n *\n * @param fieldNames - A list of field names.\n */\n constructor(...t) {\n for (let e = 0; e < t.length; ++e) if (0 === t[e].length) throw new U(P, \"Invalid field name at argument $(i + 1). Field names must not be empty.\");\n this._internalPath = new nt(t);\n }\n /**\n * Returns true if this `FieldPath` is equal to the provided one.\n *\n * @param other - The `FieldPath` to compare against.\n * @returns true if this `FieldPath` is equal to the provided one.\n */ isEqual(t) {\n return this._internalPath.isEqual(t._internalPath);\n }\n}\n\n/**\n * Returns a special sentinel `FieldPath` to refer to the ID of a document.\n * It can be used in queries to sort or filter by the document ID.\n */ function kn() {\n return new On(\"__name__\");\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Sentinel values that can be used when writing document fields with `set()`\n * or `update()`.\n */ class Cn {\n /**\n * @param _methodName - The public API endpoint that returns this class.\n * @hideconstructor\n */\n constructor(t) {\n this._methodName = t;\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An immutable object representing a geographic location in Firestore. The\n * location is represented as latitude/longitude pair.\n *\n * Latitude values are in the range of [-90, 90].\n * Longitude values are in the range of [-180, 180].\n */ class Ln {\n /**\n * Creates a new immutable `GeoPoint` object with the provided latitude and\n * longitude values.\n * @param latitude - The latitude as number between -90 and 90.\n * @param longitude - The longitude as number between -180 and 180.\n */\n constructor(t, e) {\n if (!isFinite(t) || t < -90 || t > 90) throw new U(P, \"Latitude must be a number between -90 and 90, but was: \" + t);\n if (!isFinite(e) || e < -180 || e > 180) throw new U(P, \"Longitude must be a number between -180 and 180, but was: \" + e);\n this._lat = t, this._long = e;\n }\n /**\n * The latitude of this `GeoPoint` instance.\n */ get latitude() {\n return this._lat;\n }\n /**\n * The longitude of this `GeoPoint` instance.\n */ get longitude() {\n return this._long;\n }\n /**\n * Returns true if this `GeoPoint` is equal to the provided one.\n *\n * @param other - The `GeoPoint` to compare against.\n * @returns true if this `GeoPoint` is equal to the provided one.\n */ isEqual(t) {\n return this._lat === t._lat && this._long === t._long;\n }\n /** Returns a JSON-serializable representation of this GeoPoint. */ toJSON() {\n return {\n latitude: this._lat,\n longitude: this._long\n };\n }\n /**\n * Actually private to JS consumers of our API, so this function is prefixed\n * with an underscore.\n */ _compareTo(t) {\n return _t(this._lat, t._lat) || _t(this._long, t._long);\n }\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ const Mn = /^__.*__$/;\n\n/** The result of parsing document data (e.g. for a setData call). */ class Un {\n constructor(t, e, n) {\n this.data = t, this.fieldMask = e, this.fieldTransforms = n;\n }\n toMutation(t, e) {\n return null !== this.fieldMask ? new qe(t, this.data, this.fieldMask, e, this.fieldTransforms) : new Se(t, this.data, e, this.fieldTransforms);\n }\n}\n\n/** The result of parsing \"update\" data (i.e. for an updateData call). */ class jn {\n constructor(t, \n // The fieldMask does not include document transforms.\n e, n) {\n this.data = t, this.fieldMask = e, this.fieldTransforms = n;\n }\n toMutation(t, e) {\n return new qe(t, this.data, this.fieldMask, e, this.fieldTransforms);\n }\n}\n\nfunction Bn(t) {\n switch (t) {\n case 0 /* UserDataSource.Set */ :\n // fall through\n case 2 /* UserDataSource.MergeSet */ :\n // fall through\n case 1 /* UserDataSource.Update */ :\n return !0;\n\n case 3 /* UserDataSource.Argument */ :\n case 4 /* UserDataSource.ArrayArgument */ :\n return !1;\n\n default:\n throw b();\n }\n}\n\n/** A \"context\" object passed around while parsing user data. */ class Qn {\n /**\n * Initializes a ParseContext with the given source and path.\n *\n * @param settings - The settings for the parser.\n * @param databaseId - The database ID of the Firestore instance.\n * @param serializer - The serializer to use to generate the Value proto.\n * @param ignoreUndefinedProperties - Whether to ignore undefined properties\n * rather than throw.\n * @param fieldTransforms - A mutable list of field transforms encountered\n * while parsing the data.\n * @param fieldMask - A mutable list of field paths encountered while parsing\n * the data.\n *\n * TODO(b/34871131): We don't support array paths right now, so path can be\n * null to indicate the context represents any location within an array (in\n * which case certain features will not work and errors will be somewhat\n * compromised).\n */\n constructor(t, e, n, r, s, i) {\n this.settings = t, this.databaseId = e, this.C = n, this.ignoreUndefinedProperties = r, \n // Minor hack: If fieldTransforms is undefined, we assume this is an\n // external call and we need to validate the entire path.\n void 0 === s && this.et(), this.fieldTransforms = s || [], this.fieldMask = i || [];\n }\n get path() {\n return this.settings.path;\n }\n get nt() {\n return this.settings.nt;\n }\n /** Returns a new context with the specified settings overwritten. */ rt(t) {\n return new Qn(Object.assign(Object.assign({}, this.settings), t), this.databaseId, this.C, this.ignoreUndefinedProperties, this.fieldTransforms, this.fieldMask);\n }\n st(t) {\n var e;\n const n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t), r = this.rt({\n path: n,\n it: !1\n });\n return r.ot(t), r;\n }\n ut(t) {\n var e;\n const n = null === (e = this.path) || void 0 === e ? void 0 : e.child(t), r = this.rt({\n path: n,\n it: !1\n });\n return r.et(), r;\n }\n ct(t) {\n // TODO(b/34871131): We don't support array paths right now; so make path\n // undefined.\n return this.rt({\n path: void 0,\n it: !0\n });\n }\n at(t) {\n return hr(t, this.settings.methodName, this.settings.ht || !1, this.path, this.settings.lt);\n }\n /** Returns 'true' if 'fieldPath' was traversed when creating this context. */ contains(t) {\n return void 0 !== this.fieldMask.find((e => t.isPrefixOf(e))) || void 0 !== this.fieldTransforms.find((e => t.isPrefixOf(e.field)));\n }\n et() {\n // TODO(b/34871131): Remove null check once we have proper paths for fields\n // within arrays.\n if (this.path) for (let t = 0; t < this.path.length; t++) this.ot(this.path.get(t));\n }\n ot(t) {\n if (0 === t.length) throw this.at(\"Document fields must not be empty\");\n if (Bn(this.nt) && Mn.test(t)) throw this.at('Document fields cannot begin and end with \"__\"');\n }\n}\n\n/**\n * Helper for parsing raw user input (provided via the API) into internal model\n * classes.\n */ class zn {\n constructor(t, e, n) {\n this.databaseId = t, this.ignoreUndefinedProperties = e, this.C = n || an(t);\n }\n /** Creates a new top-level parse context. */ ft(t, e, n, r = !1) {\n return new Qn({\n nt: t,\n methodName: e,\n lt: n,\n path: nt.emptyPath(),\n it: !1,\n ht: r\n }, this.databaseId, this.C, this.ignoreUndefinedProperties);\n }\n}\n\nfunction Wn(t) {\n const e = t._freezeSettings(), n = an(t._databaseId);\n return new zn(t._databaseId, !!e.ignoreUndefinedProperties, n);\n}\n\n/** Parse document data from a set() call. */ function Gn(t, e, n, r, s, i = {}) {\n const o = t.ft(i.merge || i.mergeFields ? 2 /* UserDataSource.MergeSet */ : 0 /* UserDataSource.Set */ , e, n, s);\n or(\"Data must be an object, but it was:\", o, r);\n const u = sr(r, o);\n let c, a;\n if (i.merge) c = new fe(o.fieldMask), a = o.fieldTransforms; else if (i.mergeFields) {\n const t = [];\n for (const r of i.mergeFields) {\n const s = ur(e, r, n);\n if (!o.contains(s)) throw new U(P, `Field '${s}' is specified in your field mask but missing from your input data.`);\n lr(t, s) || t.push(s);\n }\n c = new fe(t), a = o.fieldTransforms.filter((t => c.covers(t.field)));\n } else c = null, a = o.fieldTransforms;\n return new Un(new de(u), c, a);\n}\n\nclass Kn extends Cn {\n _toFieldTransform(t) {\n if (2 /* UserDataSource.MergeSet */ !== t.nt) throw 1 /* UserDataSource.Update */ === t.nt ? t.at(`${this._methodName}() can only appear at the top level of your update data`) : t.at(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);\n // No transform to add for a delete, but we need to add it to our\n // fieldMask so it gets deleted.\n return t.fieldMask.push(t.path), null;\n }\n isEqual(t) {\n return t instanceof Kn;\n }\n}\n\n/**\n * Creates a child context for parsing SerializableFieldValues.\n *\n * This is different than calling `ParseContext.contextWith` because it keeps\n * the fieldTransforms and fieldMask separate.\n *\n * The created context has its `dataSource` set to `UserDataSource.Argument`.\n * Although these values are used with writes, any elements in these FieldValues\n * are not considered writes since they cannot contain any FieldValue sentinels,\n * etc.\n *\n * @param fieldValue - The sentinel FieldValue for which to create a child\n * context.\n * @param context - The parent context.\n * @param arrayElement - Whether or not the FieldValue has an array.\n */ function Yn(t, e, n) {\n return new Qn({\n nt: 3 /* UserDataSource.Argument */ ,\n lt: e.settings.lt,\n methodName: t._methodName,\n it: n\n }, e.databaseId, e.C, e.ignoreUndefinedProperties);\n}\n\nclass Hn extends Cn {\n _toFieldTransform(t) {\n return new De(t.path, new Pe);\n }\n isEqual(t) {\n return t instanceof Hn;\n }\n}\n\nclass Jn extends Cn {\n constructor(t, e) {\n super(t), this.dt = e;\n }\n _toFieldTransform(t) {\n const e = Yn(this, t, \n /*array=*/ !0), n = this.dt.map((t => rr(t, e))), r = new Ve(n);\n return new De(t.path, r);\n }\n isEqual(t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }\n}\n\nclass Xn extends Cn {\n constructor(t, e) {\n super(t), this.dt = e;\n }\n _toFieldTransform(t) {\n const e = Yn(this, t, \n /*array=*/ !0), n = this.dt.map((t => rr(t, e))), r = new $e(n);\n return new De(t.path, r);\n }\n isEqual(t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }\n}\n\nclass Zn extends Cn {\n constructor(t, e) {\n super(t), this.wt = e;\n }\n _toFieldTransform(t) {\n const e = new Ne(t.C, Ae(t.C, this.wt));\n return new De(t.path, e);\n }\n isEqual(t) {\n // TODO(mrschmidt): Implement isEquals\n return this === t;\n }\n}\n\n/** Parse update data from an update() call. */ function tr(t, e, n, r) {\n const s = t.ft(1 /* UserDataSource.Update */ , e, n);\n or(\"Data must be an object, but it was:\", s, r);\n const i = [], o = de.empty();\n Et(r, ((t, r) => {\n const u = ar(e, t, n);\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n r = l(r);\n const c = s.ut(u);\n if (r instanceof Kn) \n // Add it to the field mask, but don't add anything to updateData.\n i.push(u); else {\n const t = rr(r, c);\n null != t && (i.push(u), o.set(u, t));\n }\n }));\n const u = new fe(i);\n return new jn(o, u, s.fieldTransforms);\n}\n\n/** Parse update data from a list of field/value arguments. */ function er(t, e, n, r, s, i) {\n const o = t.ft(1 /* UserDataSource.Update */ , e, n), u = [ ur(e, r, n) ], c = [ s ];\n if (i.length % 2 != 0) throw new U(P, `Function ${e}() needs to be called with an even number of arguments that alternate between field names and values.`);\n for (let t = 0; t < i.length; t += 2) u.push(ur(e, i[t])), c.push(i[t + 1]);\n const a = [], h = de.empty();\n // We iterate in reverse order to pick the last value for a field if the\n // user specified the field multiple times.\n for (let t = u.length - 1; t >= 0; --t) if (!lr(a, u[t])) {\n const e = u[t];\n let n = c[t];\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n n = l(n);\n const r = o.ut(e);\n if (n instanceof Kn) \n // Add it to the field mask, but don't add anything to updateData.\n a.push(e); else {\n const t = rr(n, r);\n null != t && (a.push(e), h.set(e, t));\n }\n }\n const f = new fe(a);\n return new jn(h, f, o.fieldTransforms);\n}\n\n/**\n * Parse a \"query value\" (e.g. value in a where filter or a value in a cursor\n * bound).\n *\n * @param allowArrays - Whether the query value is an array that may directly\n * contain additional arrays (e.g. the operand of an `in` query).\n */ function nr(t, e, n, r = !1) {\n return rr(n, t.ft(r ? 4 /* UserDataSource.ArrayArgument */ : 3 /* UserDataSource.Argument */ , e));\n}\n\n/**\n * Parses user data to Protobuf Values.\n *\n * @param input - Data to be parsed.\n * @param context - A context object representing the current path being parsed,\n * the source of the data being parsed, etc.\n * @returns The parsed value, or null if the value was a FieldValue sentinel\n * that should not be included in the resulting parsed data.\n */ function rr(t, e) {\n if (ir(\n // Unwrap the API type from the Compat SDK. This will return the API type\n // from firestore-exp.\n t = l(t))) return or(\"Unsupported field value:\", e, t), sr(t, e);\n if (t instanceof Cn) \n // FieldValues usually parse into transforms (except deleteField())\n // in which case we do not want to include this field in our parsed data\n // (as doing so will overwrite the field directly prior to the transform\n // trying to transform it). So we don't add this location to\n // context.fieldMask and we return null as our parsing result.\n /**\n * \"Parses\" the provided FieldValueImpl, adding any necessary transforms to\n * context.fieldTransforms.\n */\n return function(t, e) {\n // Sentinels are only supported with writes, and not within arrays.\n if (!Bn(e.nt)) throw e.at(`${t._methodName}() can only be used with update() and set()`);\n if (!e.path) throw e.at(`${t._methodName}() is not currently supported inside arrays`);\n const n = t._toFieldTransform(e);\n n && e.fieldTransforms.push(n);\n }\n /**\n * Helper to parse a scalar value (i.e. not an Object, Array, or FieldValue)\n *\n * @returns The parsed value\n */ (t, e), null;\n if (void 0 === t && e.ignoreUndefinedProperties) \n // If the input is undefined it can never participate in the fieldMask, so\n // don't handle this below. If `ignoreUndefinedProperties` is false,\n // `parseScalarValue` will reject an undefined value.\n return null;\n if (\n // If context.path is null we are inside an array and we don't support\n // field mask paths more granular than the top-level array.\n e.path && e.fieldMask.push(e.path), t instanceof Array) {\n // TODO(b/34871131): Include the path containing the array in the error\n // message.\n // In the case of IN queries, the parsed data is an array (representing\n // the set of values to be included for the IN query) that may directly\n // contain additional arrays (each representing an individual field\n // value), so we disable this validation.\n if (e.settings.it && 4 /* UserDataSource.ArrayArgument */ !== e.nt) throw e.at(\"Nested arrays are not supported\");\n return function(t, e) {\n const n = [];\n let r = 0;\n for (const s of t) {\n let t = rr(s, e.ct(r));\n null == t && (\n // Just include nulls in the array for fields being replaced with a\n // sentinel.\n t = {\n nullValue: \"NULL_VALUE\"\n }), n.push(t), r++;\n }\n return {\n arrayValue: {\n values: n\n }\n };\n }(t, e);\n }\n return function(t, e) {\n if (null === (t = l(t))) return {\n nullValue: \"NULL_VALUE\"\n };\n if (\"number\" == typeof t) return Ae(e.C, t);\n if (\"boolean\" == typeof t) return {\n booleanValue: t\n };\n if (\"string\" == typeof t) return {\n stringValue: t\n };\n if (t instanceof Date) {\n const n = Vt.fromDate(t);\n return {\n timestampValue: je(e.C, n)\n };\n }\n if (t instanceof Vt) {\n // Firestore backend truncates precision down to microseconds. To ensure\n // offline mode works the same with regards to truncation, perform the\n // truncation immediately without waiting for the backend to do that.\n const n = new Vt(t.seconds, 1e3 * Math.floor(t.nanoseconds / 1e3));\n return {\n timestampValue: je(e.C, n)\n };\n }\n if (t instanceof Ln) return {\n geoPointValue: {\n latitude: t.latitude,\n longitude: t.longitude\n }\n };\n if (t instanceof qn) return {\n bytesValue: Be(e.C, t._byteString)\n };\n if (t instanceof Pn) {\n const n = e.databaseId, r = t.firestore._databaseId;\n if (!r.isEqual(n)) throw e.at(`Document reference is for database ${r.projectId}/${r.database} but should be for database ${n.projectId}/${n.database}`);\n return {\n referenceValue: We(t.firestore._databaseId || e.databaseId, t._key.path)\n };\n }\n throw e.at(`Unsupported field value: ${ut(t)}`);\n }\n /**\n * Checks whether an object looks like a JSON object that should be converted\n * into a struct. Normal class/prototype instances are considered to look like\n * JSON objects since they should be converted to a struct value. Arrays, Dates,\n * GeoPoints, etc. are not considered to look like JSON objects since they map\n * to specific FieldValue types other than ObjectValue.\n */ (t, e);\n}\n\nfunction sr(t, e) {\n const n = {};\n return !function(t) {\n for (const e in t) if (Object.prototype.hasOwnProperty.call(t, e)) return !1;\n return !0;\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /** Converts a Base64 encoded string to a binary string. */ (t) ? Et(t, ((t, r) => {\n const s = rr(r, e.st(t));\n null != s && (n[t] = s);\n })) : \n // If we encounter an empty object, we explicitly add it to the update\n // mask to ensure that the server creates a map entry.\n e.path && e.path.length > 0 && e.fieldMask.push(e.path), {\n mapValue: {\n fields: n\n }\n };\n}\n\nfunction ir(t) {\n return !(\"object\" != typeof t || null === t || t instanceof Array || t instanceof Date || t instanceof Vt || t instanceof Ln || t instanceof qn || t instanceof Pn || t instanceof Cn);\n}\n\nfunction or(t, e, n) {\n if (!ir(n) || !function(t) {\n return \"object\" == typeof t && null !== t && (Object.getPrototypeOf(t) === Object.prototype || null === Object.getPrototypeOf(t));\n }(n)) {\n const r = ut(n);\n throw \"an object\" === r ? e.at(t + \" a custom object\") : e.at(t + \" \" + r);\n }\n}\n\n/**\n * Helper that calls fromDotSeparatedString() but wraps any error thrown.\n */ function ur(t, e, n) {\n if ((\n // If required, replace the FieldPath Compat class with with the firestore-exp\n // FieldPath.\n e = l(e)) instanceof On) return e._internalPath;\n if (\"string\" == typeof e) return ar(t, e);\n throw hr(\"Field path arguments must be of type string or \", t, \n /* hasConverter= */ !1, \n /* path= */ void 0, n);\n}\n\n/**\n * Matches any characters in a field path string that are reserved.\n */ const cr = new RegExp(\"[~\\\\*/\\\\[\\\\]]\");\n\n/**\n * Wraps fromDotSeparatedString with an error message about the method that\n * was thrown.\n * @param methodName - The publicly visible method name\n * @param path - The dot-separated string form of a field path which will be\n * split on dots.\n * @param targetDoc - The document against which the field path will be\n * evaluated.\n */ function ar(t, e, n) {\n if (e.search(cr) >= 0) throw hr(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`, t, \n /* hasConverter= */ !1, \n /* path= */ void 0, n);\n try {\n return new On(...e.split(\".\"))._internalPath;\n } catch (r) {\n throw hr(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`, t, \n /* hasConverter= */ !1, \n /* path= */ void 0, n);\n }\n}\n\nfunction hr(t, e, n, r, s) {\n const i = r && !r.isEmpty(), o = void 0 !== s;\n let u = `Function ${e}() called with invalid data`;\n n && (u += \" (via `toFirestore()`)\"), u += \". \";\n let c = \"\";\n return (i || o) && (c += \" (found\", i && (c += ` in field ${r}`), o && (c += ` in document ${s}`), \n c += \")\"), new U(P, u + t + c);\n}\n\n/** Checks `haystack` if FieldPath `needle` is present. Runs in O(n). */ function lr(t, e) {\n return t.some((t => t.isEqual(e)));\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A `DocumentSnapshot` contains data read from a document in your Firestore\n * database. The data can be extracted with `.data()` or `.get()` to\n * get a specific field.\n *\n * For a `DocumentSnapshot` that points to a non-existing document, any data\n * access will return 'undefined'. You can use the `exists()` method to\n * explicitly verify a document's existence.\n */ class fr {\n // Note: This class is stripped down version of the DocumentSnapshot in\n // the legacy SDK. The changes are:\n // - No support for SnapshotMetadata.\n // - No support for SnapshotOptions.\n /** @hideconstructor protected */\n constructor(t, e, n, r, s) {\n this._firestore = t, this._userDataWriter = e, this._key = n, this._document = r, \n this._converter = s;\n }\n /** Property of the `DocumentSnapshot` that provides the document's ID. */ get id() {\n return this._key.path.lastSegment();\n }\n /**\n * The `DocumentReference` for the document included in the `DocumentSnapshot`.\n */ get ref() {\n return new Pn(this._firestore, this._converter, this._key);\n }\n /**\n * Signals whether or not the document at the snapshot's location exists.\n *\n * @returns true if the document exists.\n */ exists() {\n return null !== this._document;\n }\n /**\n * Retrieves all fields in the document as an `Object`. Returns `undefined` if\n * the document doesn't exist.\n *\n * @returns An `Object` containing all fields in the document or `undefined`\n * if the document doesn't exist.\n */ data() {\n if (this._document) {\n if (this._converter) {\n // We only want to use the converter and create a new DocumentSnapshot\n // if a converter has been provided.\n const t = new dr(this._firestore, this._userDataWriter, this._key, this._document, \n /* converter= */ null);\n return this._converter.fromFirestore(t);\n }\n return this._userDataWriter.convertValue(this._document.data.value);\n }\n }\n /**\n * Retrieves the field specified by `fieldPath`. Returns `undefined` if the\n * document or field doesn't exist.\n *\n * @param fieldPath - The path (for example 'foo' or 'foo.bar') to a specific\n * field.\n * @returns The data at the specified field location or undefined if no such\n * field exists in the document.\n */\n // We are using `any` here to avoid an explicit cast by our users.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get(t) {\n if (this._document) {\n const e = this._document.data.field(pr(\"DocumentSnapshot.get\", t));\n if (null !== e) return this._userDataWriter.convertValue(e);\n }\n }\n}\n\n/**\n * A `QueryDocumentSnapshot` contains data read from a document in your\n * Firestore database as part of a query. The document is guaranteed to exist\n * and its data can be extracted with `.data()` or `.get()` to get a\n * specific field.\n *\n * A `QueryDocumentSnapshot` offers the same API surface as a\n * `DocumentSnapshot`. Since query results contain only existing documents, the\n * `exists` property will always be true and `data()` will never return\n * 'undefined'.\n */ class dr extends fr {\n /**\n * Retrieves all fields in the document as an `Object`.\n *\n * @override\n * @returns An `Object` containing all fields in the document.\n */\n data() {\n return super.data();\n }\n}\n\n/**\n * A `QuerySnapshot` contains zero or more `DocumentSnapshot` objects\n * representing the results of a query. The documents can be accessed as an\n * array via the `docs` property or enumerated using the `forEach` method. The\n * number of documents can be determined via the `empty` and `size`\n * properties.\n */ class wr {\n /** @hideconstructor */\n constructor(t, e) {\n this._docs = e, this.query = t;\n }\n /** An array of all the documents in the `QuerySnapshot`. */ get docs() {\n return [ ...this._docs ];\n }\n /** The number of documents in the `QuerySnapshot`. */ get size() {\n return this.docs.length;\n }\n /** True if there are no documents in the `QuerySnapshot`. */ get empty() {\n return 0 === this.docs.length;\n }\n /**\n * Enumerates all of the documents in the `QuerySnapshot`.\n *\n * @param callback - A callback to be called with a `QueryDocumentSnapshot` for\n * each document in the snapshot.\n * @param thisArg - The `this` binding for the callback.\n */ forEach(t, e) {\n this._docs.forEach(t, e);\n }\n}\n\n/**\n * Returns true if the provided snapshots are equal.\n *\n * @param left - A snapshot to compare.\n * @param right - A snapshot to compare.\n * @returns true if the snapshots are equal.\n */ function mr(t, e) {\n return t = l(t), e = l(e), t instanceof fr && e instanceof fr ? t._firestore === e._firestore && t._key.isEqual(e._key) && (null === t._document ? null === e._document : t._document.isEqual(e._document)) && t._converter === e._converter : t instanceof wr && e instanceof wr && (Sn(t.query, e.query) && vt(t.docs, e.docs, mr));\n}\n\n/**\n * Helper that calls `fromDotSeparatedString()` but wraps any error thrown.\n */ function pr(t, e) {\n return \"string\" == typeof e ? ar(t, e) : e instanceof On ? e._internalPath : e._delegate._internalPath;\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * An `AppliableConstraint` is an abstraction of a constraint that can be applied\n * to a Firestore query.\n */\nclass yr {}\n\n/**\n * A `QueryConstraint` is used to narrow the set of documents returned by a\n * Firestore query. `QueryConstraint`s are created by invoking {@link where},\n * {@link orderBy}, {@link startAt}, {@link startAfter}, {@link\n * endBefore}, {@link endAt}, {@link limit}, {@link limitToLast} and\n * can then be passed to {@link query} to create a new query instance that\n * also contains this `QueryConstraint`.\n */ class gr extends yr {}\n\nfunction _r(t, e, ...n) {\n let r = [];\n e instanceof yr && r.push(e), r = r.concat(n), function(t) {\n const e = t.filter((t => t instanceof Er)).length, n = t.filter((t => t instanceof vr)).length;\n if (e > 1 || e > 0 && n > 0) throw new U(P, \"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(...)))`.\");\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /**\n * Converts Firestore's internal types to the JavaScript types that we expose\n * to the user.\n *\n * @internal\n */ (r);\n for (const e of r) t = e._apply(t);\n return t;\n}\n\n/**\n * A `QueryFieldFilterConstraint` is used to narrow the set of documents returned by\n * a Firestore query by filtering on one or more document fields.\n * `QueryFieldFilterConstraint`s are created by invoking {@link where} and can then\n * be passed to {@link query} to create a new query instance that also contains\n * this `QueryFieldFilterConstraint`.\n */ class vr extends gr {\n /**\n * @internal\n */\n constructor(t, e, n) {\n super(), this._field = t, this._op = e, this._value = n, \n /** The type of this query constraint */\n this.type = \"where\";\n }\n static _create(t, e, n) {\n return new vr(t, e, n);\n }\n _apply(t) {\n const e = this._parse(t);\n return Lr(t._query, e), new Vn(t.firestore, t.converter, Ie(t._query, e));\n }\n _parse(t) {\n const e = Wn(t.firestore), n = function(t, e, n, r, s, i, o) {\n let u;\n if (s.isKeyField()) {\n if (\"array-contains\" /* Operator.ARRAY_CONTAINS */ === i || \"array-contains-any\" /* Operator.ARRAY_CONTAINS_ANY */ === i) throw new U(P, `Invalid Query. You can't perform '${i}' queries on documentId().`);\n if (\"in\" /* Operator.IN */ === i || \"not-in\" /* Operator.NOT_IN */ === i) {\n Cr(o, i);\n const e = [];\n for (const n of o) e.push(kr(r, t, n));\n u = {\n arrayValue: {\n values: e\n }\n };\n } else u = kr(r, t, o);\n } else \"in\" /* Operator.IN */ !== i && \"not-in\" /* Operator.NOT_IN */ !== i && \"array-contains-any\" /* Operator.ARRAY_CONTAINS_ANY */ !== i || Cr(o, i), \n u = nr(n, e, o, \n /* allowArrays= */ \"in\" /* Operator.IN */ === i || \"not-in\" /* Operator.NOT_IN */ === i);\n return Gt.create(s, i, u);\n }(t._query, \"where\", e, t.firestore._databaseId, this._field, this._op, this._value);\n return n;\n }\n}\n\n/**\n * Creates a {@link QueryFieldFilterConstraint} that enforces that documents\n * must contain the specified field and that the value should satisfy the\n * relation constraint provided.\n *\n * @param fieldPath - The path to compare\n * @param opStr - The operation string (e.g \"<\", \"<=\", \"==\", \"<\",\n * \"<=\", \"!=\").\n * @param value - The value for comparison\n * @returns The created {@link QueryFieldFilterConstraint}.\n */ function br(t, e, n) {\n const r = e, s = pr(\"where\", t);\n return vr._create(s, r, n);\n}\n\n/**\n * A `QueryCompositeFilterConstraint` is used to narrow the set of documents\n * returned by a Firestore query by performing the logical OR or AND of multiple\n * {@link QueryFieldFilterConstraint}s or {@link QueryCompositeFilterConstraint}s.\n * `QueryCompositeFilterConstraint`s are created by invoking {@link or} or\n * {@link and} and can then be passed to {@link query} to create a new query\n * instance that also contains the `QueryCompositeFilterConstraint`.\n * @internal TODO remove this internal tag with OR Query support in the server\n */ class Er extends yr {\n /**\n * @internal\n */\n constructor(\n /** The type of this query constraint */\n t, e) {\n super(), this.type = t, this._queryConstraints = e;\n }\n static _create(t, e) {\n return new Er(t, e);\n }\n _parse(t) {\n const e = this._queryConstraints.map((e => e._parse(t))).filter((t => t.getFilters().length > 0));\n return 1 === e.length ? e[0] : Kt.create(e, this._getOperator());\n }\n _apply(t) {\n const e = this._parse(t);\n return 0 === e.getFilters().length ? t : (function(t, e) {\n let n = t;\n const r = e.getFlattenedFilters();\n for (const t of r) Lr(n, t), n = Ie(n, t);\n }\n // Checks if any of the provided filter operators are included in the given list of filters and\n // returns the first one that is, or null if none are.\n (t._query, e), new Vn(t.firestore, t.converter, Ie(t._query, e)));\n }\n _getQueryConstraints() {\n return this._queryConstraints;\n }\n _getOperator() {\n return \"and\" === this.type ? \"and\" /* CompositeOperator.AND */ : \"or\" /* CompositeOperator.OR */;\n }\n}\n\n/**\n * Creates a new {@link QueryCompositeFilterConstraint} that is a disjunction of\n * the given filter constraints. A disjunction filter includes a document if it\n * satisfies any of the given filters.\n *\n * @param queryConstraints - Optional. The list of\n * {@link QueryFilterConstraint}s to perform a disjunction for. These must be\n * created with calls to {@link where}, {@link or}, or {@link and}.\n * @returns The newly created {@link QueryCompositeFilterConstraint}.\n * @internal TODO remove this internal tag with OR Query support in the server\n */ function Ir(...t) {\n // Only support QueryFilterConstraints\n return t.forEach((t => Ur(\"or\", t))), Er._create(\"or\" /* CompositeOperator.OR */ , t);\n}\n\n/**\n * Creates a new {@link QueryCompositeFilterConstraint} that is a conjunction of\n * the given filter constraints. A conjunction filter includes a document if it\n * satisfies all of the given filters.\n *\n * @param queryConstraints - Optional. The list of\n * {@link QueryFilterConstraint}s to perform a conjunction for. These must be\n * created with calls to {@link where}, {@link or}, or {@link and}.\n * @returns The newly created {@link QueryCompositeFilterConstraint}.\n * @internal TODO remove this internal tag with OR Query support in the server\n */ function Tr(...t) {\n // Only support QueryFilterConstraints\n return t.forEach((t => Ur(\"and\", t))), Er._create(\"and\" /* CompositeOperator.AND */ , t);\n}\n\n/**\n * A `QueryOrderByConstraint` is used to sort the set of documents returned by a\n * Firestore query. `QueryOrderByConstraint`s are created by invoking\n * {@link orderBy} and can then be passed to {@link query} to create a new query\n * instance that also contains this `QueryOrderByConstraint`.\n *\n * Note: Documents that do not contain the orderBy field will not be present in\n * the query result.\n */ class Ar extends gr {\n /**\n * @internal\n */\n constructor(t, e) {\n super(), this._field = t, this._direction = e, \n /** The type of this query constraint */\n this.type = \"orderBy\";\n }\n static _create(t, e) {\n return new Ar(t, e);\n }\n _apply(t) {\n const e = function(t, e, n) {\n if (null !== t.startAt) throw new U(P, \"Invalid query. You must not call startAt() or startAfter() before calling orderBy().\");\n if (null !== t.endAt) throw new U(P, \"Invalid query. You must not call endAt() or endBefore() before calling orderBy().\");\n const r = new se(e, n);\n return function(t, e) {\n if (null === ge(t)) {\n // This is the first order by. It must match any inequality.\n const n = _e(t);\n null !== n && Mr(t, n, e.field);\n }\n }(t, r), r;\n }\n /**\n * Create a `Bound` from a query and a document.\n *\n * Note that the `Bound` will always include the key of the document\n * and so only the provided document will compare equal to the returned\n * position.\n *\n * Will throw if the document does not contain all fields of the order by\n * of the query or if any of the fields in the order by are an uncommitted\n * server timestamp.\n */ (t._query, this._field, this._direction);\n return new Vn(t.firestore, t.converter, function(t, e) {\n // TODO(dimond): validate that orderBy does not list the same key twice.\n const n = t.explicitOrderBy.concat([ e ]);\n return new ye(t.path, t.collectionGroup, n, t.filters.slice(), t.limit, t.limitType, t.startAt, t.endAt);\n }(t._query, e));\n }\n}\n\n/**\n * Creates a {@link QueryOrderByConstraint} that sorts the query result by the\n * specified field, optionally in descending order instead of ascending.\n *\n * Note: Documents that do not contain the specified field will not be present\n * in the query result.\n *\n * @param fieldPath - The field to sort by.\n * @param directionStr - Optional direction to sort by ('asc' or 'desc'). If\n * not specified, order will be ascending.\n * @returns The created {@link QueryOrderByConstraint}.\n */ function Rr(t, e = \"asc\") {\n const n = e, r = pr(\"orderBy\", t);\n return Ar._create(r, n);\n}\n\n/**\n * A `QueryLimitConstraint` is used to limit the number of documents returned by\n * a Firestore query.\n * `QueryLimitConstraint`s are created by invoking {@link limit} or\n * {@link limitToLast} and can then be passed to {@link query} to create a new\n * query instance that also contains this `QueryLimitConstraint`.\n */ class Pr extends gr {\n /**\n * @internal\n */\n constructor(\n /** The type of this query constraint */\n t, e, n) {\n super(), this.type = t, this._limit = e, this._limitType = n;\n }\n static _create(t, e, n) {\n return new Pr(t, e, n);\n }\n _apply(t) {\n return new Vn(t.firestore, t.converter, function(t, e, n) {\n return new ye(t.path, t.collectionGroup, t.explicitOrderBy.slice(), t.filters.slice(), e, n, t.startAt, t.endAt);\n }(t._query, this._limit, this._limitType));\n }\n}\n\n/**\n * Creates a {@link QueryLimitConstraint} that only returns the first matching\n * documents.\n *\n * @param limit - The maximum number of items to return.\n * @returns The created {@link QueryLimitConstraint}.\n */ function Vr(t) {\n return at(\"limit\", t), Pr._create(\"limit\", t, \"F\" /* LimitType.First */);\n}\n\n/**\n * Creates a {@link QueryLimitConstraint} that only returns the last matching\n * documents.\n *\n * You must specify at least one `orderBy` clause for `limitToLast` queries,\n * otherwise an exception will be thrown during execution.\n *\n * @param limit - The maximum number of items to return.\n * @returns The created {@link QueryLimitConstraint}.\n */ function $r(t) {\n return at(\"limitToLast\", t), Pr._create(\"limitToLast\", t, \"L\" /* LimitType.Last */);\n}\n\n/**\n * A `QueryStartAtConstraint` is used to exclude documents from the start of a\n * result set returned by a Firestore query.\n * `QueryStartAtConstraint`s are created by invoking {@link (startAt:1)} or\n * {@link (startAfter:1)} and can then be passed to {@link query} to create a\n * new query instance that also contains this `QueryStartAtConstraint`.\n */ class Nr extends gr {\n /**\n * @internal\n */\n constructor(\n /** The type of this query constraint */\n t, e, n) {\n super(), this.type = t, this._docOrFields = e, this._inclusive = n;\n }\n static _create(t, e, n) {\n return new Nr(t, e, n);\n }\n _apply(t) {\n const e = Or(t, this.type, this._docOrFields, this._inclusive);\n return new Vn(t.firestore, t.converter, function(t, e) {\n return new ye(t.path, t.collectionGroup, t.explicitOrderBy.slice(), t.filters.slice(), t.limit, t.limitType, e, t.endAt);\n }(t._query, e));\n }\n}\n\nfunction Dr(...t) {\n return Nr._create(\"startAt\", t, \n /*inclusive=*/ !0);\n}\n\nfunction Fr(...t) {\n return Nr._create(\"startAfter\", t, \n /*inclusive=*/ !1);\n}\n\n/**\n * A `QueryEndAtConstraint` is used to exclude documents from the end of a\n * result set returned by a Firestore query.\n * `QueryEndAtConstraint`s are created by invoking {@link (endAt:1)} or\n * {@link (endBefore:1)} and can then be passed to {@link query} to create a new\n * query instance that also contains this `QueryEndAtConstraint`.\n */ class xr extends gr {\n /**\n * @internal\n */\n constructor(\n /** The type of this query constraint */\n t, e, n) {\n super(), this.type = t, this._docOrFields = e, this._inclusive = n;\n }\n static _create(t, e, n) {\n return new xr(t, e, n);\n }\n _apply(t) {\n const e = Or(t, this.type, this._docOrFields, this._inclusive);\n return new Vn(t.firestore, t.converter, function(t, e) {\n return new ye(t.path, t.collectionGroup, t.explicitOrderBy.slice(), t.filters.slice(), t.limit, t.limitType, t.startAt, e);\n }(t._query, e));\n }\n}\n\nfunction Sr(...t) {\n return xr._create(\"endBefore\", t, \n /*inclusive=*/ !1);\n}\n\nfunction qr(...t) {\n return xr._create(\"endAt\", t, \n /*inclusive=*/ !0);\n}\n\n/** Helper function to create a bound from a document or fields */ function Or(t, e, n, r) {\n if (n[0] = l(n[0]), n[0] instanceof fr) return function(t, e, n, r, s) {\n if (!r) throw new U($, `Can't use a DocumentSnapshot that doesn't exist for ${n}().`);\n const i = [];\n // Because people expect to continue/end a query at the exact document\n // provided, we need to use the implicit sort order rather than the explicit\n // sort order, because it's guaranteed to contain the document key. That way\n // the position becomes unambiguous and the query continues/ends exactly at\n // the provided document. Without the key (by using the explicit sort\n // orders), multiple documents could match the position, yielding duplicate\n // results.\n for (const n of be(t)) if (n.field.isKeyField()) i.push(Ct(e, r.key)); else {\n const t = r.data.field(n.field);\n if ($t(t)) throw new U(P, '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.)');\n if (null === t) {\n const t = n.field.canonicalString();\n throw new U(P, `Invalid query. You are trying to start or end a query using a document for which the field '${t}' (used as the orderBy) does not exist.`);\n }\n i.push(t);\n }\n return new Qt(i, s);\n }\n /**\n * Converts a list of field values to a `Bound` for the given query.\n */ (t._query, t.firestore._databaseId, e, n[0]._document, r);\n {\n const s = Wn(t.firestore);\n return function(t, e, n, r, s, i) {\n // Use explicit order by's because it has to match the query the user made\n const o = t.explicitOrderBy;\n if (s.length > o.length) throw new U(P, `Too many arguments provided to ${r}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);\n const u = [];\n for (let i = 0; i < s.length; i++) {\n const c = s[i];\n if (o[i].field.isKeyField()) {\n if (\"string\" != typeof c) throw new U(P, `Invalid query. Expected a string for document ID in ${r}(), but got a ${typeof c}`);\n if (!ve(t) && -1 !== c.indexOf(\"/\")) throw new U(P, `Invalid query. When querying a collection and ordering by documentId(), the value passed to ${r}() must be a plain document ID, but '${c}' contains a slash.`);\n const n = t.path.child(tt.fromString(c));\n if (!rt.isDocumentKey(n)) throw new U(P, `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.`);\n const s = new rt(n);\n u.push(Ct(e, s));\n } else {\n const t = nr(n, r, c);\n u.push(t);\n }\n }\n return new Qt(u, i);\n }\n /**\n * Parses the given `documentIdValue` into a `ReferenceValue`, throwing\n * appropriate errors if the value is anything other than a `DocumentReference`\n * or `string`, or if the string is malformed.\n */ (t._query, t.firestore._databaseId, s, e, n, r);\n }\n}\n\nfunction kr(t, e, n) {\n if (\"string\" == typeof (n = l(n))) {\n if (\"\" === n) throw new U(P, \"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.\");\n if (!ve(e) && -1 !== n.indexOf(\"/\")) throw new U(P, `Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`);\n const r = e.path.child(tt.fromString(n));\n if (!rt.isDocumentKey(r)) throw new U(P, `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}).`);\n return Ct(t, new rt(r));\n }\n if (n instanceof Pn) return Ct(t, n._key);\n throw new U(P, `Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${ut(n)}.`);\n}\n\n/**\n * Validates that the value passed into a disjunctive filter satisfies all\n * array requirements.\n */ function Cr(t, e) {\n if (!Array.isArray(t) || 0 === t.length) throw new U(P, `Invalid Query. A non-empty array is required for '${e.toString()}' filters.`);\n if (t.length > 10) throw new U(P, `Invalid Query. '${e.toString()}' filters support a maximum of 10 elements in the value array.`);\n}\n\n/**\n * Given an operator, returns the set of operators that cannot be used with it.\n *\n * Operators in a query must adhere to the following set of rules:\n * 1. Only one array operator is allowed.\n * 2. Only one disjunctive operator is allowed.\n * 3. `NOT_EQUAL` cannot be used with another `NOT_EQUAL` operator.\n * 4. `NOT_IN` cannot be used with array, disjunctive, or `NOT_EQUAL` operators.\n *\n * Array operators: `ARRAY_CONTAINS`, `ARRAY_CONTAINS_ANY`\n * Disjunctive operators: `IN`, `ARRAY_CONTAINS_ANY`, `NOT_IN`\n */ function Lr(t, e) {\n if (e.isInequality()) {\n const n = _e(t), r = e.field;\n if (null !== n && !n.isEqual(r)) throw new U(P, `Invalid query. All where filters with an inequality (<, <=, !=, not-in, >, or >=) must be on the same field. But you have inequality filters on '${n.toString()}' and '${r.toString()}'`);\n const s = ge(t);\n null !== s && Mr(t, r, s);\n }\n const n = function(t, e) {\n for (const n of t) for (const t of n.getFlattenedFilters()) if (e.indexOf(t.op) >= 0) return t.op;\n return null;\n }(t.filters, function(t) {\n switch (t) {\n case \"!=\" /* Operator.NOT_EQUAL */ :\n return [ \"!=\" /* Operator.NOT_EQUAL */ , \"not-in\" /* Operator.NOT_IN */ ];\n\n case \"array-contains\" /* Operator.ARRAY_CONTAINS */ :\n return [ \"array-contains\" /* Operator.ARRAY_CONTAINS */ , \"array-contains-any\" /* Operator.ARRAY_CONTAINS_ANY */ , \"not-in\" /* Operator.NOT_IN */ ];\n\n case \"in\" /* Operator.IN */ :\n return [ \"array-contains-any\" /* Operator.ARRAY_CONTAINS_ANY */ , \"in\" /* Operator.IN */ , \"not-in\" /* Operator.NOT_IN */ ];\n\n case \"array-contains-any\" /* Operator.ARRAY_CONTAINS_ANY */ :\n return [ \"array-contains\" /* Operator.ARRAY_CONTAINS */ , \"array-contains-any\" /* Operator.ARRAY_CONTAINS_ANY */ , \"in\" /* Operator.IN */ , \"not-in\" /* Operator.NOT_IN */ ];\n\n case \"not-in\" /* Operator.NOT_IN */ :\n return [ \"array-contains\" /* Operator.ARRAY_CONTAINS */ , \"array-contains-any\" /* Operator.ARRAY_CONTAINS_ANY */ , \"in\" /* Operator.IN */ , \"not-in\" /* Operator.NOT_IN */ , \"!=\" /* Operator.NOT_EQUAL */ ];\n\n default:\n return [];\n }\n }(e.op));\n if (null !== n) \n // Special case when it's a duplicate op to give a slightly clearer error message.\n throw n === e.op ? new U(P, `Invalid query. You cannot use more than one '${e.op.toString()}' filter.`) : new U(P, `Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`);\n}\n\nfunction Mr(t, e, n) {\n if (!n.isEqual(e)) throw new U(P, `Invalid query. You have a where filter with an inequality (<, <=, !=, not-in, >, or >=) on field '${e.toString()}' and so you must also use '${e.toString()}' as your first argument to orderBy(), but your first orderBy() is on field '${n.toString()}' instead.`);\n}\n\nfunction Ur(t, e) {\n if (!(e instanceof vr || e instanceof Er)) throw new U(P, `Function ${t}() requires AppliableConstraints created with a call to 'where(...)', 'or(...)', or 'and(...)'.`);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Converts custom model object of type T into `DocumentData` by applying the\n * converter if it exists.\n *\n * This function is used when converting user objects to `DocumentData`\n * because we want to provide the user with a more specific error message if\n * their `set()` or fails due to invalid data originating from a `toFirestore()`\n * call.\n */\nfunction jr(t, e, n) {\n let r;\n // Cast to `any` in order to satisfy the union type constraint on\n // toFirestore().\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return r = t ? n && (n.merge || n.mergeFields) ? t.toFirestore(e, n) : t.toFirestore(e) : e, \n r;\n}\n\nclass Br extends class {\n convertValue(t, e = \"none\") {\n switch (xt(t)) {\n case 0 /* TypeOrder.NullValue */ :\n return null;\n\n case 1 /* TypeOrder.BooleanValue */ :\n return t.booleanValue;\n\n case 2 /* TypeOrder.NumberValue */ :\n return Rt(t.integerValue || t.doubleValue);\n\n case 3 /* TypeOrder.TimestampValue */ :\n return this.convertTimestamp(t.timestampValue);\n\n case 4 /* TypeOrder.ServerTimestampValue */ :\n return this.convertServerTimestamp(t, e);\n\n case 5 /* TypeOrder.StringValue */ :\n return t.stringValue;\n\n case 6 /* TypeOrder.BlobValue */ :\n return this.convertBytes(Pt(t.bytesValue));\n\n case 7 /* TypeOrder.RefValue */ :\n return this.convertReference(t.referenceValue);\n\n case 8 /* TypeOrder.GeoPointValue */ :\n return this.convertGeoPoint(t.geoPointValue);\n\n case 9 /* TypeOrder.ArrayValue */ :\n return this.convertArray(t.arrayValue, e);\n\n case 10 /* TypeOrder.ObjectValue */ :\n return this.convertObject(t.mapValue, e);\n\n default:\n throw b();\n }\n }\n convertObject(t, e) {\n const n = {};\n return Et(t.fields, ((t, r) => {\n n[t] = this.convertValue(r, e);\n })), n;\n }\n convertGeoPoint(t) {\n return new Ln(Rt(t.latitude), Rt(t.longitude));\n }\n convertArray(t, e) {\n return (t.values || []).map((t => this.convertValue(t, e)));\n }\n convertServerTimestamp(t, e) {\n switch (e) {\n case \"previous\":\n const n = Nt(t);\n return null == n ? null : this.convertValue(n, e);\n\n case \"estimate\":\n return this.convertTimestamp(Dt(t));\n\n default:\n return null;\n }\n }\n convertTimestamp(t) {\n const e = At(t);\n return new Vt(e.seconds, e.nanos);\n }\n convertDocumentKey(t, e) {\n const n = tt.fromString(t);\n E(cn(n));\n const r = new X(n.get(1), n.get(3)), s = new rt(n.popFirst(5));\n return r.isEqual(e) || \n // TODO(b/64130202): Somehow support foreign references.\n g(`Document ${s} contains a document reference within a different database (${r.projectId}/${r.database}) which is not supported. It will be treated as a reference in the current database (${e.projectId}/${e.database}) instead.`), \n s;\n }\n} {\n constructor(t) {\n super(), this.firestore = t;\n }\n convertBytes(t) {\n return new qn(t);\n }\n convertReference(t) {\n const e = this.convertDocumentKey(t, this.firestore._databaseId);\n return new Pn(this.firestore, /* converter= */ null, e);\n }\n}\n\n/**\n * Reads the document referred to by the specified document reference.\n *\n * All documents are directly fetched from the server, even if the document was\n * previously read or modified. Recent modifications are only reflected in the\n * retrieved `DocumentSnapshot` if they have already been applied by the\n * backend. If the client is offline, the read fails. If you like to use\n * caching or see local modifications, please use the full Firestore SDK.\n *\n * @param reference - The reference of the document to fetch.\n * @returns A Promise resolved with a `DocumentSnapshot` containing the current\n * document contents.\n */ function Qr(t) {\n const e = yn((t = ct(t, Pn)).firestore), n = new Br(t.firestore);\n return dn(e, [ t._key ]).then((e => {\n E(1 === e.length);\n const r = e[0];\n return new fr(t.firestore, n, t._key, r.isFoundDocument() ? r : null, t.converter);\n }));\n}\n\n/**\n * Executes the query and returns the results as a {@link QuerySnapshot}.\n *\n * All queries are executed directly by the server, even if the the query was\n * previously executed. Recent modifications are only reflected in the retrieved\n * results if they have already been applied by the backend. If the client is\n * offline, the operation fails. To see previously cached result and local\n * modifications, use the full Firestore SDK.\n *\n * @param query - The `Query` to execute.\n * @returns A Promise that will be resolved with the results of the query.\n */ function zr(t) {\n !function(t) {\n if (\"L\" /* LimitType.Last */ === t.limitType && 0 === t.explicitOrderBy.length) throw new U(k, \"limitToLast() queries require specifying at least one orderBy() clause\");\n }((t = ct(t, Vn))._query);\n const e = yn(t.firestore), n = new Br(t.firestore);\n return wn(e, t._query).then((e => {\n const r = e.map((e => new dr(t.firestore, n, e.key, e, t.converter)));\n return \"L\" /* LimitType.Last */ === t._query.limitType && \n // Limit to last queries reverse the orderBy constraint that was\n // specified by the user. As such, we need to reverse the order of the\n // results to return the documents in the expected order.\n r.reverse(), new wr(t, r);\n }));\n}\n\nfunction Wr(t, e, n) {\n const r = jr((t = ct(t, Pn)).converter, e, n), s = Gn(Wn(t.firestore), \"setDoc\", t._key, r, null !== t.converter, n);\n return fn(yn(t.firestore), [ s.toMutation(t._key, Fe.none()) ]);\n}\n\nfunction Gr(t, e, n, ...r) {\n const s = Wn((t = ct(t, Pn)).firestore);\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n let i;\n i = \"string\" == typeof (e = l(e)) || e instanceof On ? er(s, \"updateDoc\", t._key, e, n, r) : tr(s, \"updateDoc\", t._key, e);\n return fn(yn(t.firestore), [ i.toMutation(t._key, Fe.exists(!0)) ]);\n}\n\n/**\n * Deletes the document referred to by the specified `DocumentReference`.\n *\n * The deletion will only be reflected in document reads that occur after the\n * returned promise resolves. If the client is offline, the\n * delete fails. If you would like to see local modifications or buffer writes\n * until the client is online, use the full Firestore SDK.\n *\n * @param reference - A reference to the document to delete.\n * @returns A `Promise` resolved once the document has been successfully\n * deleted from the backend.\n */ function Kr(t) {\n return fn(yn((t = ct(t, Pn)).firestore), [ new Oe(t._key, Fe.none()) ]);\n}\n\n/**\n * Add a new document to specified `CollectionReference` with the given data,\n * assigning it a document ID automatically.\n *\n * The result of this write will only be reflected in document reads that occur\n * after the returned promise resolves. If the client is offline, the\n * write fails. If you would like to see local modifications or buffer writes\n * until the client is online, use the full Firestore SDK.\n *\n * @param reference - A reference to the collection to add this document to.\n * @param data - An Object containing the data for the new document.\n * @throws Error - If the provided input is not a valid Firestore document.\n * @returns A `Promise` resolved with a `DocumentReference` pointing to the\n * newly created document after it has been written to the backend.\n */ function Yr(t, e) {\n const n = Fn(t = ct(t, $n)), r = jr(t.converter, e), s = Gn(Wn(t.firestore), \"addDoc\", n._key, r, null !== n.converter, {});\n return fn(yn(t.firestore), [ s.toMutation(n._key, Fe.exists(!1)) ]).then((() => n));\n}\n\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Calculates the number of documents in the result set of the given query,\n * without actually downloading the documents.\n *\n * Using this function to count the documents is efficient because only the\n * final count, not the documents' data, is downloaded. This function can even\n * count the documents if the result set would be prohibitively large to\n * download entirely (e.g. thousands of documents).\n *\n * @param query - The query whose result set size to calculate.\n * @returns A Promise that will be resolved with the count; the count can be\n * retrieved from `snapshot.data().count`, where `snapshot` is the\n * `AggregateQuerySnapshot` to which the returned Promise resolves.\n */ function Hr(t) {\n const e = ct(t.firestore, _n), n = yn(e), r = new Br(e);\n return new Rn(t, n, r).run();\n}\n\n/**\n * Compares two `AggregateQuerySnapshot` instances for equality.\n *\n * Two `AggregateQuerySnapshot` instances are considered \"equal\" if they have\n * underlying queries that compare equal, and the same data.\n *\n * @param left - The first `AggregateQuerySnapshot` to compare.\n * @param right - The second `AggregateQuerySnapshot` to compare.\n *\n * @returns `true` if the objects are \"equal\", as defined above, or `false`\n * otherwise.\n */ function Jr(t, e) {\n return Sn(t.query, e.query) && f(t.data(), e.data());\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Returns a sentinel for use with {@link @firebase/firestore/lite#(updateDoc:1)} or\n * {@link @firebase/firestore/lite#(setDoc:1)} with `{merge: true}` to mark a field for deletion.\n */ function Xr() {\n return new Kn(\"deleteField\");\n}\n\n/**\n * Returns a sentinel used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link @firebase/firestore/lite#(updateDoc:1)} to\n * include a server-generated timestamp in the written data.\n */ function Zr() {\n return new Hn(\"serverTimestamp\");\n}\n\n/**\n * Returns a special value that can be used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link\n * @firebase/firestore/lite#(updateDoc:1)} that tells the server to union the given elements with any array\n * value that already exists on the server. Each specified element that doesn't\n * already exist in the array will be added to the end. If the field being\n * modified is not already an array it will be overwritten with an array\n * containing exactly the specified elements.\n *\n * @param elements - The elements to union into the array.\n * @returns The `FieldValue` sentinel for use in a call to `setDoc()` or\n * `updateDoc()`.\n */ function ts(...t) {\n // NOTE: We don't actually parse the data until it's used in set() or\n // update() since we'd need the Firestore instance to do this.\n return new Jn(\"arrayUnion\", t);\n}\n\n/**\n * Returns a special value that can be used with {@link (setDoc:1)} or {@link\n * updateDoc:1} that tells the server to remove the given elements from any\n * array value that already exists on the server. All instances of each element\n * specified will be removed from the array. If the field being modified is not\n * already an array it will be overwritten with an empty array.\n *\n * @param elements - The elements to remove from the array.\n * @returns The `FieldValue` sentinel for use in a call to `setDoc()` or\n * `updateDoc()`\n */ function es(...t) {\n // NOTE: We don't actually parse the data until it's used in set() or\n // update() since we'd need the Firestore instance to do this.\n return new Xn(\"arrayRemove\", t);\n}\n\n/**\n * Returns a special value that can be used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link\n * @firebase/firestore/lite#(updateDoc:1)} that tells the server to increment the field's current value by\n * the given value.\n *\n * If either the operand or the current field value uses floating point\n * precision, all arithmetic follows IEEE 754 semantics. If both values are\n * integers, values outside of JavaScript's safe number range\n * (`Number.MIN_SAFE_INTEGER` to `Number.MAX_SAFE_INTEGER`) are also subject to\n * precision loss. Furthermore, once processed by the Firestore backend, all\n * integer operations are capped between -2^63 and 2^63-1.\n *\n * If the current field value is not of type `number`, or if the field does not\n * yet exist, the transformation sets the field to the given value.\n *\n * @param n - The value to increment by.\n * @returns The `FieldValue` sentinel for use in a call to `setDoc()` or\n * `updateDoc()`\n */ function ns(t) {\n return new Zn(\"increment\", t);\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A write batch, used to perform multiple writes as a single atomic unit.\n *\n * A `WriteBatch` object can be acquired by calling {@link writeBatch}. It\n * provides methods for adding writes to the write batch. None of the writes\n * will be committed (or visible locally) until {@link WriteBatch.commit} is\n * called.\n */ class rs {\n /** @hideconstructor */\n constructor(t, e) {\n this._firestore = t, this._commitHandler = e, this._mutations = [], this._committed = !1, \n this._dataReader = Wn(t);\n }\n set(t, e, n) {\n this._verifyNotCommitted();\n const r = ss(t, this._firestore), s = jr(r.converter, e, n), i = Gn(this._dataReader, \"WriteBatch.set\", r._key, s, null !== r.converter, n);\n return this._mutations.push(i.toMutation(r._key, Fe.none())), this;\n }\n update(t, e, n, ...r) {\n this._verifyNotCommitted();\n const s = ss(t, this._firestore);\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n let i;\n return i = \"string\" == typeof (e = l(e)) || e instanceof On ? er(this._dataReader, \"WriteBatch.update\", s._key, e, n, r) : tr(this._dataReader, \"WriteBatch.update\", s._key, e), \n this._mutations.push(i.toMutation(s._key, Fe.exists(!0))), this;\n }\n /**\n * Deletes the document referred to by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be deleted.\n * @returns This `WriteBatch` instance. Used for chaining method calls.\n */ delete(t) {\n this._verifyNotCommitted();\n const e = ss(t, this._firestore);\n return this._mutations = this._mutations.concat(new Oe(e._key, Fe.none())), this;\n }\n /**\n * Commits all of the writes in this write batch as a single atomic unit.\n *\n * The result of these writes will only be reflected in document reads that\n * occur after the returned promise resolves. If the client is offline, the\n * write fails. If you would like to see local modifications or buffer writes\n * until the client is online, use the full Firestore SDK.\n *\n * @returns A `Promise` resolved once all of the writes in the batch have been\n * successfully written to the backend as an atomic unit (note that it won't\n * resolve while you're offline).\n */ commit() {\n return this._verifyNotCommitted(), this._committed = !0, this._mutations.length > 0 ? this._commitHandler(this._mutations) : Promise.resolve();\n }\n _verifyNotCommitted() {\n if (this._committed) throw new U(S, \"A write batch can no longer be used after commit() has been called.\");\n }\n}\n\nfunction ss(t, e) {\n if ((t = l(t)).firestore !== e) throw new U(P, \"Provided document reference is from a different Firestore instance.\");\n return t;\n}\n\n/**\n * Creates a write batch, used for performing multiple writes as a single\n * atomic operation. The maximum number of writes allowed in a single WriteBatch\n * is 500.\n *\n * The result of these writes will only be reflected in document reads that\n * occur after the returned promise resolves. If the client is offline, the\n * write fails. If you would like to see local modifications or buffer writes\n * until the client is online, use the full Firestore SDK.\n *\n * @returns A `WriteBatch` that can be used to atomically execute multiple\n * writes.\n */ function is(t) {\n const e = yn(t = ct(t, _n));\n return new rs(t, (t => fn(e, t)));\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Internal transaction object responsible for accumulating the mutations to\n * perform and the base versions for any documents read.\n */ class os {\n constructor(t) {\n this.datastore = t, \n // The version of each document that was read during this transaction.\n this.readVersions = new Map, this.mutations = [], this.committed = !1, \n /**\n * A deferred usage error that occurred previously in this transaction that\n * will cause the transaction to fail once it actually commits.\n */\n this.lastWriteError = null, \n /**\n * Set of documents that have been written in the transaction.\n *\n * When there's more than one write to the same key in a transaction, any\n * writes after the first are handled differently.\n */\n this.writtenDocs = new Set;\n }\n async lookup(t) {\n if (this.ensureCommitNotCalled(), this.mutations.length > 0) throw new U(P, \"Firestore transactions require all reads to be executed before all writes.\");\n const e = await dn(this.datastore, t);\n return e.forEach((t => this.recordVersion(t))), e;\n }\n set(t, e) {\n this.write(e.toMutation(t, this.precondition(t))), this.writtenDocs.add(t.toString());\n }\n update(t, e) {\n try {\n this.write(e.toMutation(t, this.preconditionForUpdate(t)));\n } catch (t) {\n this.lastWriteError = t;\n }\n this.writtenDocs.add(t.toString());\n }\n delete(t) {\n this.write(new Oe(t, this.precondition(t))), this.writtenDocs.add(t.toString());\n }\n async commit() {\n if (this.ensureCommitNotCalled(), this.lastWriteError) throw this.lastWriteError;\n const t = this.readVersions;\n // For each mutation, note that the doc was written.\n this.mutations.forEach((e => {\n t.delete(e.key.toString());\n })), \n // For each document that was read but not written to, we want to perform\n // a `verify` operation.\n t.forEach(((t, e) => {\n const n = rt.fromPath(e);\n this.mutations.push(new ke(n, this.precondition(n)));\n })), await fn(this.datastore, this.mutations), this.committed = !0;\n }\n recordVersion(t) {\n let e;\n if (t.isFoundDocument()) e = t.version; else {\n if (!t.isNoDocument()) throw b();\n // Represent a deleted doc using SnapshotVersion.min().\n e = oe.min();\n }\n const n = this.readVersions.get(t.key.toString());\n if (n) {\n if (!e.isEqual(n)) \n // This transaction will fail no matter what.\n throw new U(q, \"Document version changed between two reads.\");\n } else this.readVersions.set(t.key.toString(), e);\n }\n /**\n * Returns the version of this document when it was read in this transaction,\n * as a precondition, or no precondition if it was not read.\n */ precondition(t) {\n const e = this.readVersions.get(t.toString());\n return !this.writtenDocs.has(t.toString()) && e ? e.isEqual(oe.min()) ? Fe.exists(!1) : Fe.updateTime(e) : Fe.none();\n }\n /**\n * Returns the precondition for a document if the operation is an update.\n */ preconditionForUpdate(t) {\n const e = this.readVersions.get(t.toString());\n // The first time a document is written, we want to take into account the\n // read time and existence\n if (!this.writtenDocs.has(t.toString()) && e) {\n if (e.isEqual(oe.min())) \n // The document doesn't exist, so fail the transaction.\n // This has to be validated locally because you can't send a\n // precondition that a document does not exist without changing the\n // semantics of the backend write to be an insert. This is the reverse\n // of what we want, since we want to assert that the document doesn't\n // exist but then send the update and have it fail. Since we can't\n // express that to the backend, we have to validate locally.\n // Note: this can change once we can send separate verify writes in the\n // transaction.\n throw new U(P, \"Can't update a document that doesn't exist.\");\n // Document exists, base precondition on document update time.\n return Fe.updateTime(e);\n }\n // Document was not read, so we just use the preconditions for a blind\n // update.\n return Fe.exists(!0);\n }\n write(t) {\n this.ensureCommitNotCalled(), this.mutations.push(t);\n }\n ensureCommitNotCalled() {}\n}\n\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ const us = {\n maxAttempts: 5\n};\n\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * TransactionRunner encapsulates the logic needed to run and retry transactions\n * with backoff.\n */\nclass cs {\n constructor(t, e, n, r, s) {\n this.asyncQueue = t, this.datastore = e, this.options = n, this.updateFunction = r, \n this.deferred = s, this.yt = n.maxAttempts, this.gt = new hn(this.asyncQueue, \"transaction_retry\" /* TimerId.TransactionRetry */);\n }\n /** Runs the transaction and sets the result on deferred. */ run() {\n this.yt -= 1, this._t();\n }\n _t() {\n this.gt.H((async () => {\n const t = new os(this.datastore), e = this.vt(t);\n e && e.then((e => {\n this.asyncQueue.enqueueAndForget((() => t.commit().then((() => {\n this.deferred.resolve(e);\n })).catch((t => {\n this.bt(t);\n }))));\n })).catch((t => {\n this.bt(t);\n }));\n }));\n }\n vt(t) {\n try {\n const e = this.updateFunction(t);\n return !ht(e) && e.catch && e.then ? e : (this.deferred.reject(Error(\"Transaction callback must return a Promise\")), \n null);\n } catch (t) {\n // Do not retry errors thrown by user provided updateFunction.\n return this.deferred.reject(t), null;\n }\n }\n bt(t) {\n this.yt > 0 && this.Et(t) ? (this.yt -= 1, this.asyncQueue.enqueueAndForget((() => (this._t(), \n Promise.resolve())))) : this.deferred.reject(t);\n }\n Et(t) {\n if (\"FirebaseError\" === t.name) {\n // In transactions, the backend will fail outdated reads with FAILED_PRECONDITION and\n // non-matching document versions with ABORTED. These errors should be retried.\n const e = t.code;\n return \"aborted\" === e || \"failed-precondition\" === e || \"already-exists\" === e || !\n /**\n * Determines whether an error code represents a permanent error when received\n * in response to a non-write operation.\n *\n * See isPermanentWriteError for classifying write errors.\n */\n function(t) {\n switch (t) {\n default:\n return b();\n\n case A:\n case R:\n case V:\n case x:\n case C:\n case L:\n // Unauthenticated means something went wrong with our token and we need\n // to retry with new credentials which will happen automatically.\n case F:\n return !1;\n\n case P:\n case $:\n case N:\n case D:\n case S:\n // Aborted might be retried in some scenarios, but that is dependant on\n // the context and should handled individually by the calling code.\n // See https://cloud.google.com/apis/design/errors.\n case q:\n case O:\n case k:\n case M:\n return !0;\n }\n }(e);\n }\n return !1;\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/** The Platform's 'document' implementation or null if not available. */ function as() {\n // `document` is not always available, e.g. in ReactNative and WebWorkers.\n // eslint-disable-next-line no-restricted-globals\n return \"undefined\" != typeof document ? document : null;\n}\n\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Represents an operation scheduled to be run in the future on an AsyncQueue.\n *\n * It is created via DelayedOperation.createAndSchedule().\n *\n * Supports cancellation (via cancel()) and early execution (via skipDelay()).\n *\n * Note: We implement `PromiseLike` instead of `Promise`, as the `Promise` type\n * in newer versions of TypeScript defines `finally`, which is not available in\n * IE.\n */ class hs {\n constructor(t, e, n, r, s) {\n this.asyncQueue = t, this.timerId = e, this.targetTimeMs = n, this.op = r, this.removalCallback = s, \n this.deferred = new j, this.then = this.deferred.promise.then.bind(this.deferred.promise), \n // It's normal for the deferred promise to be canceled (due to cancellation)\n // and so we attach a dummy catch callback to avoid\n // 'UnhandledPromiseRejectionWarning' log spam.\n this.deferred.promise.catch((t => {}));\n }\n /**\n * Creates and returns a DelayedOperation that has been scheduled to be\n * executed on the provided asyncQueue after the provided delayMs.\n *\n * @param asyncQueue - The queue to schedule the operation on.\n * @param id - A Timer ID identifying the type of operation this is.\n * @param delayMs - The delay (ms) before the operation should be scheduled.\n * @param op - The operation to run.\n * @param removalCallback - A callback to be called synchronously once the\n * operation is executed or canceled, notifying the AsyncQueue to remove it\n * from its delayedOperations list.\n * PORTING NOTE: This exists to prevent making removeDelayedOperation() and\n * the DelayedOperation class public.\n */ static createAndSchedule(t, e, n, r, s) {\n const i = Date.now() + n, o = new hs(t, e, i, r, s);\n return o.start(n), o;\n }\n /**\n * Starts the timer. This is called immediately after construction by\n * createAndSchedule().\n */ start(t) {\n this.timerHandle = setTimeout((() => this.handleDelayElapsed()), t);\n }\n /**\n * Queues the operation to run immediately (if it hasn't already been run or\n * canceled).\n */ skipDelay() {\n return this.handleDelayElapsed();\n }\n /**\n * Cancels the operation if it hasn't already been executed or canceled. The\n * promise will be rejected.\n *\n * As long as the operation has not yet been run, calling cancel() provides a\n * guarantee that the operation will not be run.\n */ cancel(t) {\n null !== this.timerHandle && (this.clearTimeout(), this.deferred.reject(new U(A, \"Operation cancelled\" + (t ? \": \" + t : \"\"))));\n }\n handleDelayElapsed() {\n this.asyncQueue.enqueueAndForget((() => null !== this.timerHandle ? (this.clearTimeout(), \n this.op().then((t => this.deferred.resolve(t)))) : Promise.resolve()));\n }\n clearTimeout() {\n null !== this.timerHandle && (this.removalCallback(this), clearTimeout(this.timerHandle), \n this.timerHandle = null);\n }\n}\n\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ class ls {\n constructor() {\n // The last promise in the queue.\n this.It = Promise.resolve(), \n // A list of retryable operations. Retryable operations are run in order and\n // retried with backoff.\n this.Tt = [], \n // Is this AsyncQueue being shut down? Once it is set to true, it will not\n // be changed again.\n this.At = !1, \n // Operations scheduled to be queued in the future. Operations are\n // automatically removed after they are run or canceled.\n this.Rt = [], \n // visible for testing\n this.Pt = null, \n // Flag set while there's an outstanding AsyncQueue operation, used for\n // assertion sanity-checks.\n this.Vt = !1, \n // Enabled during shutdown on Safari to prevent future access to IndexedDB.\n this.$t = !1, \n // List of TimerIds to fast-forward delays for.\n this.Nt = [], \n // Backoff timer used to schedule retries for retryable operations\n this.gt = new hn(this, \"async_queue_retry\" /* TimerId.AsyncQueueRetry */), \n // Visibility handler that triggers an immediate retry of all retryable\n // operations. Meant to speed up recovery when we regain file system access\n // after page comes into foreground.\n this.Dt = () => {\n const t = as();\n t && y(\"AsyncQueue\", \"Visibility state changed to \" + t.visibilityState), this.gt.X();\n };\n const t = as();\n t && \"function\" == typeof t.addEventListener && t.addEventListener(\"visibilitychange\", this.Dt);\n }\n get isShuttingDown() {\n return this.At;\n }\n /**\n * Adds a new operation to the queue without waiting for it to complete (i.e.\n * we ignore the Promise result).\n */ enqueueAndForget(t) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.enqueue(t);\n }\n enqueueAndForgetEvenWhileRestricted(t) {\n this.Ft(), \n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.xt(t);\n }\n enterRestrictedMode(t) {\n if (!this.At) {\n this.At = !0, this.$t = t || !1;\n const e = as();\n e && \"function\" == typeof e.removeEventListener && e.removeEventListener(\"visibilitychange\", this.Dt);\n }\n }\n enqueue(t) {\n if (this.Ft(), this.At) \n // Return a Promise which never resolves.\n return new Promise((() => {}));\n // Create a deferred Promise that we can return to the callee. This\n // allows us to return a \"hanging Promise\" only to the callee and still\n // advance the queue even when the operation is not run.\n const e = new j;\n return this.xt((() => this.At && this.$t ? Promise.resolve() : (t().then(e.resolve, e.reject), \n e.promise))).then((() => e.promise));\n }\n enqueueRetryable(t) {\n this.enqueueAndForget((() => (this.Tt.push(t), this.St())));\n }\n /**\n * Runs the next operation from the retryable queue. If the operation fails,\n * reschedules with backoff.\n */ async St() {\n if (0 !== this.Tt.length) {\n try {\n await this.Tt[0](), this.Tt.shift(), this.gt.reset();\n } catch (t) {\n if (!\n /**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n /** Verifies whether `e` is an IndexedDbTransactionError. */\n function(t) {\n // Use name equality, as instanceof checks on errors don't work with errors\n // that wrap other errors.\n return \"IndexedDbTransactionError\" === t.name;\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ (t)) throw t;\n // Failure will be handled by AsyncQueue\n y(\"AsyncQueue\", \"Operation failed with retryable error: \" + t);\n }\n this.Tt.length > 0 && \n // If there are additional operations, we re-schedule `retryNextOp()`.\n // This is necessary to run retryable operations that failed during\n // their initial attempt since we don't know whether they are already\n // enqueued. If, for example, `op1`, `op2`, `op3` are enqueued and `op1`\n // needs to be re-run, we will run `op1`, `op1`, `op2` using the\n // already enqueued calls to `retryNextOp()`. `op3()` will then run in the\n // call scheduled here.\n // Since `backoffAndRun()` cancels an existing backoff and schedules a\n // new backoff on every call, there is only ever a single additional\n // operation in the queue.\n this.gt.H((() => this.St()));\n }\n }\n xt(t) {\n const e = this.It.then((() => (this.Vt = !0, t().catch((t => {\n this.Pt = t, this.Vt = !1;\n const e = \n /**\n * Chrome includes Error.message in Error.stack. Other browsers do not.\n * This returns expected output of message + stack when available.\n * @param error - Error or FirestoreError\n */\n function(t) {\n let e = t.message || \"\";\n t.stack && (e = t.stack.includes(t.message) ? t.stack : t.message + \"\\n\" + t.stack);\n return e;\n }\n /**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n // TODO(mrschmidt) Consider using `BaseTransaction` as the base class in the\n // legacy SDK.\n /**\n * A reference to a transaction.\n *\n * The `Transaction` object passed to a transaction's `updateFunction` provides\n * the methods to read and write data within the transaction context. See\n * {@link runTransaction}.\n */ (t);\n // Re-throw the error so that this.tail becomes a rejected Promise and\n // all further attempts to chain (via .then) will just short-circuit\n // and return the rejected Promise.\n throw g(\"INTERNAL UNHANDLED ERROR: \", e), t;\n })).then((t => (this.Vt = !1, t))))));\n return this.It = e, e;\n }\n enqueueAfterDelay(t, e, n) {\n this.Ft(), \n // Fast-forward delays for timerIds that have been overriden.\n this.Nt.indexOf(t) > -1 && (e = 0);\n const r = hs.createAndSchedule(this, t, e, n, (t => this.qt(t)));\n return this.Rt.push(r), r;\n }\n Ft() {\n this.Pt && b();\n }\n verifyOperationInProgress() {}\n /**\n * Waits until all currently queued tasks are finished executing. Delayed\n * operations are not run.\n */ async Ot() {\n // Operations in the queue prior to draining may have enqueued additional\n // operations. Keep draining the queue until the tail is no longer advanced,\n // which indicates that no more new operations were enqueued and that all\n // operations were executed.\n let t;\n do {\n t = this.It, await t;\n } while (t !== this.It);\n }\n /**\n * For Tests: Determine if a delayed operation with a particular TimerId\n * exists.\n */ kt(t) {\n for (const e of this.Rt) if (e.timerId === t) return !0;\n return !1;\n }\n /**\n * For Tests: Runs some or all delayed operations early.\n *\n * @param lastTimerId - Delayed operations up to and including this TimerId\n * will be drained. Pass TimerId.All to run all delayed operations.\n * @returns a Promise that resolves once all operations have been run.\n */ Ct(t) {\n // Note that draining may generate more delayed ops, so we do that first.\n return this.Ot().then((() => {\n // Run ops in the same order they'd run if they ran naturally.\n this.Rt.sort(((t, e) => t.targetTimeMs - e.targetTimeMs));\n for (const e of this.Rt) if (e.skipDelay(), \"all\" /* TimerId.All */ !== t && e.timerId === t) break;\n return this.Ot();\n }));\n }\n /**\n * For Tests: Skip all subsequent delays for a timer id.\n */ Lt(t) {\n this.Nt.push(t);\n }\n /** Called once a DelayedOperation is run or canceled. */ qt(t) {\n // NOTE: indexOf / slice are O(n), but delayedOperations is expected to be small.\n const e = this.Rt.indexOf(t);\n this.Rt.splice(e, 1);\n }\n}\n\nclass fs {\n /** @hideconstructor */\n constructor(t, e) {\n this._firestore = t, this._transaction = e, this._dataReader = Wn(t);\n }\n /**\n * Reads the document referenced by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be read.\n * @returns A `DocumentSnapshot` with the read data.\n */ get(t) {\n const e = ss(t, this._firestore), n = new Br(this._firestore);\n return this._transaction.lookup([ e._key ]).then((t => {\n if (!t || 1 !== t.length) return b();\n const r = t[0];\n if (r.isFoundDocument()) return new fr(this._firestore, n, r.key, r, e.converter);\n if (r.isNoDocument()) return new fr(this._firestore, n, e._key, null, e.converter);\n throw b();\n }));\n }\n set(t, e, n) {\n const r = ss(t, this._firestore), s = jr(r.converter, e, n), i = Gn(this._dataReader, \"Transaction.set\", r._key, s, null !== r.converter, n);\n return this._transaction.set(r._key, i), this;\n }\n update(t, e, n, ...r) {\n const s = ss(t, this._firestore);\n // For Compat types, we have to \"extract\" the underlying types before\n // performing validation.\n let i;\n return i = \"string\" == typeof (e = l(e)) || e instanceof On ? er(this._dataReader, \"Transaction.update\", s._key, e, n, r) : tr(this._dataReader, \"Transaction.update\", s._key, e), \n this._transaction.update(s._key, i), this;\n }\n /**\n * Deletes the document referred to by the provided {@link DocumentReference}.\n *\n * @param documentRef - A reference to the document to be deleted.\n * @returns This `Transaction` instance. Used for chaining method calls.\n */ delete(t) {\n const e = ss(t, this._firestore);\n return this._transaction.delete(e._key), this;\n }\n}\n\n/**\n * Executes the given `updateFunction` and then attempts to commit the changes\n * applied within the transaction. If any document read within the transaction\n * has changed, Cloud Firestore retries the `updateFunction`. If it fails to\n * commit after 5 attempts, the transaction fails.\n *\n * The maximum number of writes allowed in a single transaction is 500.\n *\n * @param firestore - A reference to the Firestore database to run this\n * transaction against.\n * @param updateFunction - The function to execute within the transaction\n * context.\n * @param options - An options object to configure maximum number of attempts to\n * commit.\n * @returns If the transaction completed successfully or was explicitly aborted\n * (the `updateFunction` returned a failed promise), the promise returned by the\n * `updateFunction `is returned here. Otherwise, if the transaction failed, a\n * rejected promise with the corresponding failure error is returned.\n */ function ds(t, e, n) {\n const r = yn(t = ct(t, _n)), s = Object.assign(Object.assign({}, us), n);\n !function(t) {\n if (t.maxAttempts < 1) throw new U(P, \"Max attempts must be at least 1\");\n }(s);\n const i = new j;\n return new cs(new ls, r, s, (n => e(new fs(t, n))), i).run(), i.promise;\n}\n\n/**\n * Firestore Lite\n *\n * @remarks Firestore Lite is a small online-only SDK that allows read\n * and write access to your Firestore database. All operations connect\n * directly to the backend, and `onSnapshot()` APIs are not supported.\n * @packageDocumentation\n */ !function(t) {\n w = t;\n}(`${s}_lite`), n(new i(\"firestore/lite\", ((t, {instanceIdentifier: e, options: n}) => {\n const r = t.getProvider(\"app\").getImmediate(), s = new _n(new W(t.getProvider(\"auth-internal\")), new H(t.getProvider(\"app-check-internal\")), function(t, e) {\n if (!Object.prototype.hasOwnProperty.apply(t.options, [ \"projectId\" ])) throw new U(P, '\"projectId\" not provided in firebase.initializeApp.');\n return new X(t.options.projectId, e);\n }\n /**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */ (r, e), r);\n return n && s._setSettings(n), s;\n}), \"PUBLIC\").setMultipleInstances(!0)), \n// RUNTIME_ENV and BUILD_TARGET are replaced by real values during the compilation\nr(\"firestore-lite\", \"3.8.1\", \"\"), r(\"firestore-lite\", \"3.8.1\", \"__BUILD_TARGET__\");\n\nexport { Tn as AggregateField, An as AggregateQuerySnapshot, qn as Bytes, $n as CollectionReference, Pn as DocumentReference, fr as DocumentSnapshot, On as FieldPath, Cn as FieldValue, _n as Firestore, U as FirestoreError, Ln as GeoPoint, Vn as Query, Er as QueryCompositeFilterConstraint, gr as QueryConstraint, dr as QueryDocumentSnapshot, xr as QueryEndAtConstraint, vr as QueryFieldFilterConstraint, Pr as QueryLimitConstraint, Ar as QueryOrderByConstraint, wr as QuerySnapshot, Nr as QueryStartAtConstraint, Vt as Timestamp, fs as Transaction, rs as WriteBatch, Yr as addDoc, Jr as aggregateQuerySnapshotEqual, Tr as and, es as arrayRemove, ts as arrayUnion, Nn as collection, Dn as collectionGroup, En as connectFirestoreEmulator, Kr as deleteDoc, Xr as deleteField, Fn as doc, kn as documentId, qr as endAt, Sr as endBefore, Hr as getCount, Qr as getDoc, zr as getDocs, bn as getFirestore, ns as increment, vn as initializeFirestore, Vr as limit, $r as limitToLast, Ir as or, Rr as orderBy, _r as query, Sn as queryEqual, xn as refEqual, ds as runTransaction, Zr as serverTimestamp, Wr as setDoc, p as setLogLevel, mr as snapshotEqual, Fr as startAfter, Dr as startAt, In as terminate, Gr as updateDoc, br as where, is as writeBatch };\n//# sourceMappingURL=index.browser.esm2017.js.map\n"],"names":["o","u","c","t","a","h","e","l","f","s","n","i","r"],"mappings":"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"}