{"version":3,"file":"static/chunks/d91e9ae9-5f306a88e9f5ad42.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@firebase/database/dist/index.esm.js"],"sourcesContent":["import firebase from '@firebase/app';\nimport { Provider, ComponentContainer, Component } from '@firebase/component';\nimport { stringify, jsonEval, contains, assert, isNodeSdk, base64, stringToByteArray, Sha1, deepCopy, base64Encode, isMobileCordova, stringLength, Deferred, safeGet, isAdmin, isValidFormat, isEmpty, isReactNative, assertionError, map, querystring, errorPrefix, getModularInstance, createMockUserToken, validateArgCount, validateCallback, validateContextObject } from '@firebase/util';\nimport { __spreadArray, __read, __values, __extends, __awaiter, __generator, __assign } from 'tslib';\nimport { Logger, LogLevel } from '@firebase/logger';\n\nvar name = \"@firebase/database\";\nvar version = \"0.11.0\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** The semver (www.semver.org) version of the SDK. */\r\nvar SDK_VERSION = '';\r\n// SDK_VERSION should be set before any database instance is created\r\nfunction setSDKVersion(version) {\r\n SDK_VERSION = version;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Wraps a DOM Storage object and:\r\n * - automatically encode objects as JSON strings before storing them to allow us to store arbitrary types.\r\n * - prefixes names with \"firebase:\" to avoid collisions with app data.\r\n *\r\n * We automatically (see storage.js) create two such wrappers, one for sessionStorage,\r\n * and one for localStorage.\r\n *\r\n */\r\nvar DOMStorageWrapper = /** @class */ (function () {\r\n /**\r\n * @param domStorage_ - The underlying storage object (e.g. localStorage or sessionStorage)\r\n */\r\n function DOMStorageWrapper(domStorage_) {\r\n this.domStorage_ = domStorage_;\r\n // Use a prefix to avoid collisions with other stuff saved by the app.\r\n this.prefix_ = 'firebase:';\r\n }\r\n /**\r\n * @param key - The key to save the value under\r\n * @param value - The value being stored, or null to remove the key.\r\n */\r\n DOMStorageWrapper.prototype.set = function (key, value) {\r\n if (value == null) {\r\n this.domStorage_.removeItem(this.prefixedName_(key));\r\n }\r\n else {\r\n this.domStorage_.setItem(this.prefixedName_(key), stringify(value));\r\n }\r\n };\r\n /**\r\n * @returns The value that was stored under this key, or null\r\n */\r\n DOMStorageWrapper.prototype.get = function (key) {\r\n var storedVal = this.domStorage_.getItem(this.prefixedName_(key));\r\n if (storedVal == null) {\r\n return null;\r\n }\r\n else {\r\n return jsonEval(storedVal);\r\n }\r\n };\r\n DOMStorageWrapper.prototype.remove = function (key) {\r\n this.domStorage_.removeItem(this.prefixedName_(key));\r\n };\r\n DOMStorageWrapper.prototype.prefixedName_ = function (name) {\r\n return this.prefix_ + name;\r\n };\r\n DOMStorageWrapper.prototype.toString = function () {\r\n return this.domStorage_.toString();\r\n };\r\n return DOMStorageWrapper;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * An in-memory storage implementation that matches the API of DOMStorageWrapper\r\n * (TODO: create interface for both to implement).\r\n */\r\nvar MemoryStorage = /** @class */ (function () {\r\n function MemoryStorage() {\r\n this.cache_ = {};\r\n this.isInMemoryStorage = true;\r\n }\r\n MemoryStorage.prototype.set = function (key, value) {\r\n if (value == null) {\r\n delete this.cache_[key];\r\n }\r\n else {\r\n this.cache_[key] = value;\r\n }\r\n };\r\n MemoryStorage.prototype.get = function (key) {\r\n if (contains(this.cache_, key)) {\r\n return this.cache_[key];\r\n }\r\n return null;\r\n };\r\n MemoryStorage.prototype.remove = function (key) {\r\n delete this.cache_[key];\r\n };\r\n return MemoryStorage;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Helper to create a DOMStorageWrapper or else fall back to MemoryStorage.\r\n * TODO: Once MemoryStorage and DOMStorageWrapper have a shared interface this method annotation should change\r\n * to reflect this type\r\n *\r\n * @param domStorageName - Name of the underlying storage object\r\n * (e.g. 'localStorage' or 'sessionStorage').\r\n * @returns Turning off type information until a common interface is defined.\r\n */\r\nvar createStoragefor = function (domStorageName) {\r\n try {\r\n // NOTE: just accessing \"localStorage\" or \"window['localStorage']\" may throw a security exception,\r\n // so it must be inside the try/catch.\r\n if (typeof window !== 'undefined' &&\r\n typeof window[domStorageName] !== 'undefined') {\r\n // Need to test cache. Just because it's here doesn't mean it works\r\n var domStorage = window[domStorageName];\r\n domStorage.setItem('firebase:sentinel', 'cache');\r\n domStorage.removeItem('firebase:sentinel');\r\n return new DOMStorageWrapper(domStorage);\r\n }\r\n }\r\n catch (e) { }\r\n // Failed to create wrapper. Just return in-memory storage.\r\n // TODO: log?\r\n return new MemoryStorage();\r\n};\r\n/** A storage object that lasts across sessions */\r\nvar PersistentStorage = createStoragefor('localStorage');\r\n/** A storage object that only lasts one session */\r\nvar SessionStorage = createStoragefor('sessionStorage');\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar logClient = new Logger('@firebase/database');\r\n/**\r\n * Returns a locally-unique ID (generated by just incrementing up from 0 each time its called).\r\n */\r\nvar LUIDGenerator = (function () {\r\n var id = 1;\r\n return function () {\r\n return id++;\r\n };\r\n})();\r\n/**\r\n * Sha1 hash of the input string\r\n * @param str - The string to hash\r\n * @returns {!string} The resulting hash\r\n */\r\nvar sha1 = function (str) {\r\n var utf8Bytes = stringToByteArray(str);\r\n var sha1 = new Sha1();\r\n sha1.update(utf8Bytes);\r\n var sha1Bytes = sha1.digest();\r\n return base64.encodeByteArray(sha1Bytes);\r\n};\r\nvar buildLogMessage_ = function () {\r\n var varArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n varArgs[_i] = arguments[_i];\r\n }\r\n var message = '';\r\n for (var i = 0; i < varArgs.length; i++) {\r\n var arg = varArgs[i];\r\n if (Array.isArray(arg) ||\r\n (arg &&\r\n typeof arg === 'object' &&\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n typeof arg.length === 'number')) {\r\n message += buildLogMessage_.apply(null, arg);\r\n }\r\n else if (typeof arg === 'object') {\r\n message += stringify(arg);\r\n }\r\n else {\r\n message += arg;\r\n }\r\n message += ' ';\r\n }\r\n return message;\r\n};\r\n/**\r\n * Use this for all debug messages in Firebase.\r\n */\r\nvar logger = null;\r\n/**\r\n * Flag to check for log availability on first log message\r\n */\r\nvar firstLog_ = true;\r\n/**\r\n * The implementation of Firebase.enableLogging (defined here to break dependencies)\r\n * @param logger_ - A flag to turn on logging, or a custom logger\r\n * @param persistent - Whether or not to persist logging settings across refreshes\r\n */\r\nvar enableLogging = function (logger_, persistent) {\r\n assert(!persistent || logger_ === true || logger_ === false, \"Can't turn on custom loggers persistently.\");\r\n if (logger_ === true) {\r\n logClient.logLevel = LogLevel.VERBOSE;\r\n logger = logClient.log.bind(logClient);\r\n if (persistent) {\r\n SessionStorage.set('logging_enabled', true);\r\n }\r\n }\r\n else if (typeof logger_ === 'function') {\r\n logger = logger_;\r\n }\r\n else {\r\n logger = null;\r\n SessionStorage.remove('logging_enabled');\r\n }\r\n};\r\nvar log = function () {\r\n var varArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n varArgs[_i] = arguments[_i];\r\n }\r\n if (firstLog_ === true) {\r\n firstLog_ = false;\r\n if (logger === null && SessionStorage.get('logging_enabled') === true) {\r\n enableLogging(true);\r\n }\r\n }\r\n if (logger) {\r\n var message = buildLogMessage_.apply(null, varArgs);\r\n logger(message);\r\n }\r\n};\r\nvar logWrapper = function (prefix) {\r\n return function () {\r\n var varArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n varArgs[_i] = arguments[_i];\r\n }\r\n log.apply(void 0, __spreadArray([prefix], __read(varArgs)));\r\n };\r\n};\r\nvar error = function () {\r\n var varArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n varArgs[_i] = arguments[_i];\r\n }\r\n var message = 'FIREBASE INTERNAL ERROR: ' + buildLogMessage_.apply(void 0, __spreadArray([], __read(varArgs)));\r\n logClient.error(message);\r\n};\r\nvar fatal = function () {\r\n var varArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n varArgs[_i] = arguments[_i];\r\n }\r\n var message = \"FIREBASE FATAL ERROR: \" + buildLogMessage_.apply(void 0, __spreadArray([], __read(varArgs)));\r\n logClient.error(message);\r\n throw new Error(message);\r\n};\r\nvar warn = function () {\r\n var varArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n varArgs[_i] = arguments[_i];\r\n }\r\n var message = 'FIREBASE WARNING: ' + buildLogMessage_.apply(void 0, __spreadArray([], __read(varArgs)));\r\n logClient.warn(message);\r\n};\r\n/**\r\n * Logs a warning if the containing page uses https. Called when a call to new Firebase\r\n * does not use https.\r\n */\r\nvar warnIfPageIsSecure = function () {\r\n // Be very careful accessing browser globals. Who knows what may or may not exist.\r\n if (typeof window !== 'undefined' &&\r\n window.location &&\r\n window.location.protocol &&\r\n window.location.protocol.indexOf('https:') !== -1) {\r\n warn('Insecure Firebase access from a secure page. ' +\r\n 'Please use https in calls to new Firebase().');\r\n }\r\n};\r\n/**\r\n * Returns true if data is NaN, or +/- Infinity.\r\n */\r\nvar isInvalidJSONNumber = function (data) {\r\n return (typeof data === 'number' &&\r\n (data !== data || // NaN\r\n data === Number.POSITIVE_INFINITY ||\r\n data === Number.NEGATIVE_INFINITY));\r\n};\r\nvar executeWhenDOMReady = function (fn) {\r\n if (isNodeSdk() || document.readyState === 'complete') {\r\n fn();\r\n }\r\n else {\r\n // Modeled after jQuery. Try DOMContentLoaded and onreadystatechange (which\r\n // fire before onload), but fall back to onload.\r\n var called_1 = false;\r\n var wrappedFn_1 = function () {\r\n if (!document.body) {\r\n setTimeout(wrappedFn_1, Math.floor(10));\r\n return;\r\n }\r\n if (!called_1) {\r\n called_1 = true;\r\n fn();\r\n }\r\n };\r\n if (document.addEventListener) {\r\n document.addEventListener('DOMContentLoaded', wrappedFn_1, false);\r\n // fallback to onload.\r\n window.addEventListener('load', wrappedFn_1, false);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n }\r\n else if (document.attachEvent) {\r\n // IE.\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n document.attachEvent('onreadystatechange', function () {\r\n if (document.readyState === 'complete') {\r\n wrappedFn_1();\r\n }\r\n });\r\n // fallback to onload.\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n window.attachEvent('onload', wrappedFn_1);\r\n // jQuery has an extra hack for IE that we could employ (based on\r\n // http://javascript.nwbox.com/IEContentLoaded/) But it looks really old.\r\n // I'm hoping we don't need it.\r\n }\r\n }\r\n};\r\n/**\r\n * Minimum key name. Invalid for actual data, used as a marker to sort before any valid names\r\n */\r\nvar MIN_NAME = '[MIN_NAME]';\r\n/**\r\n * Maximum key name. Invalid for actual data, used as a marker to sort above any valid names\r\n */\r\nvar MAX_NAME = '[MAX_NAME]';\r\n/**\r\n * Compares valid Firebase key names, plus min and max name\r\n */\r\nvar nameCompare = function (a, b) {\r\n if (a === b) {\r\n return 0;\r\n }\r\n else if (a === MIN_NAME || b === MAX_NAME) {\r\n return -1;\r\n }\r\n else if (b === MIN_NAME || a === MAX_NAME) {\r\n return 1;\r\n }\r\n else {\r\n var aAsInt = tryParseInt(a), bAsInt = tryParseInt(b);\r\n if (aAsInt !== null) {\r\n if (bAsInt !== null) {\r\n return aAsInt - bAsInt === 0 ? a.length - b.length : aAsInt - bAsInt;\r\n }\r\n else {\r\n return -1;\r\n }\r\n }\r\n else if (bAsInt !== null) {\r\n return 1;\r\n }\r\n else {\r\n return a < b ? -1 : 1;\r\n }\r\n }\r\n};\r\n/**\r\n * @returns {!number} comparison result.\r\n */\r\nvar stringCompare = function (a, b) {\r\n if (a === b) {\r\n return 0;\r\n }\r\n else if (a < b) {\r\n return -1;\r\n }\r\n else {\r\n return 1;\r\n }\r\n};\r\nvar requireKey = function (key, obj) {\r\n if (obj && key in obj) {\r\n return obj[key];\r\n }\r\n else {\r\n throw new Error('Missing required key (' + key + ') in object: ' + stringify(obj));\r\n }\r\n};\r\nvar ObjectToUniqueKey = function (obj) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return stringify(obj);\r\n }\r\n var keys = [];\r\n // eslint-disable-next-line guard-for-in\r\n for (var k in obj) {\r\n keys.push(k);\r\n }\r\n // Export as json, but with the keys sorted.\r\n keys.sort();\r\n var key = '{';\r\n for (var i = 0; i < keys.length; i++) {\r\n if (i !== 0) {\r\n key += ',';\r\n }\r\n key += stringify(keys[i]);\r\n key += ':';\r\n key += ObjectToUniqueKey(obj[keys[i]]);\r\n }\r\n key += '}';\r\n return key;\r\n};\r\n/**\r\n * Splits a string into a number of smaller segments of maximum size\r\n * @param str - The string\r\n * @param segsize - The maximum number of chars in the string.\r\n * @returns The string, split into appropriately-sized chunks\r\n */\r\nvar splitStringBySize = function (str, segsize) {\r\n var len = str.length;\r\n if (len <= segsize) {\r\n return [str];\r\n }\r\n var dataSegs = [];\r\n for (var c = 0; c < len; c += segsize) {\r\n if (c + segsize > len) {\r\n dataSegs.push(str.substring(c, len));\r\n }\r\n else {\r\n dataSegs.push(str.substring(c, c + segsize));\r\n }\r\n }\r\n return dataSegs;\r\n};\r\n/**\r\n * Apply a function to each (key, value) pair in an object or\r\n * apply a function to each (index, value) pair in an array\r\n * @param obj - The object or array to iterate over\r\n * @param fn - The function to apply\r\n */\r\nfunction each(obj, fn) {\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n fn(key, obj[key]);\r\n }\r\n }\r\n}\r\n/**\r\n * Borrowed from http://hg.secondlife.com/llsd/src/tip/js/typedarray.js (MIT License)\r\n * I made one modification at the end and removed the NaN / Infinity\r\n * handling (since it seemed broken [caused an overflow] and we don't need it). See MJL comments.\r\n * @param v - A double\r\n *\r\n */\r\nvar doubleToIEEE754String = function (v) {\r\n assert(!isInvalidJSONNumber(v), 'Invalid JSON number'); // MJL\r\n var ebits = 11, fbits = 52;\r\n var bias = (1 << (ebits - 1)) - 1;\r\n var s, e, f, ln, i;\r\n // Compute sign, exponent, fraction\r\n // Skip NaN / Infinity handling --MJL.\r\n if (v === 0) {\r\n e = 0;\r\n f = 0;\r\n s = 1 / v === -Infinity ? 1 : 0;\r\n }\r\n else {\r\n s = v < 0;\r\n v = Math.abs(v);\r\n if (v >= Math.pow(2, 1 - bias)) {\r\n // Normalized\r\n ln = Math.min(Math.floor(Math.log(v) / Math.LN2), bias);\r\n e = ln + bias;\r\n f = Math.round(v * Math.pow(2, fbits - ln) - Math.pow(2, fbits));\r\n }\r\n else {\r\n // Denormalized\r\n e = 0;\r\n f = Math.round(v / Math.pow(2, 1 - bias - fbits));\r\n }\r\n }\r\n // Pack sign, exponent, fraction\r\n var bits = [];\r\n for (i = fbits; i; i -= 1) {\r\n bits.push(f % 2 ? 1 : 0);\r\n f = Math.floor(f / 2);\r\n }\r\n for (i = ebits; i; i -= 1) {\r\n bits.push(e % 2 ? 1 : 0);\r\n e = Math.floor(e / 2);\r\n }\r\n bits.push(s ? 1 : 0);\r\n bits.reverse();\r\n var str = bits.join('');\r\n // Return the data as a hex string. --MJL\r\n var hexByteString = '';\r\n for (i = 0; i < 64; i += 8) {\r\n var hexByte = parseInt(str.substr(i, 8), 2).toString(16);\r\n if (hexByte.length === 1) {\r\n hexByte = '0' + hexByte;\r\n }\r\n hexByteString = hexByteString + hexByte;\r\n }\r\n return hexByteString.toLowerCase();\r\n};\r\n/**\r\n * Used to detect if we're in a Chrome content script (which executes in an\r\n * isolated environment where long-polling doesn't work).\r\n */\r\nvar isChromeExtensionContentScript = function () {\r\n return !!(typeof window === 'object' &&\r\n window['chrome'] &&\r\n window['chrome']['extension'] &&\r\n !/^chrome/.test(window.location.href));\r\n};\r\n/**\r\n * Used to detect if we're in a Windows 8 Store app.\r\n */\r\nvar isWindowsStoreApp = function () {\r\n // Check for the presence of a couple WinRT globals\r\n return typeof Windows === 'object' && typeof Windows.UI === 'object';\r\n};\r\n/**\r\n * Converts a server error code to a Javascript Error\r\n */\r\nfunction errorForServerCode(code, query) {\r\n var reason = 'Unknown Error';\r\n if (code === 'too_big') {\r\n reason =\r\n 'The data requested exceeds the maximum size ' +\r\n 'that can be accessed with a single request.';\r\n }\r\n else if (code === 'permission_denied') {\r\n reason = \"Client doesn't have permission to access the desired data.\";\r\n }\r\n else if (code === 'unavailable') {\r\n reason = 'The service is unavailable';\r\n }\r\n var error = new Error(code + ' at ' + query._path.toString() + ': ' + reason);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n error.code = code.toUpperCase();\r\n return error;\r\n}\r\n/**\r\n * Used to test for integer-looking strings\r\n */\r\nvar INTEGER_REGEXP_ = new RegExp('^-?(0*)\\\\d{1,10}$');\r\n/**\r\n * For use in keys, the minimum possible 32-bit integer.\r\n */\r\nvar INTEGER_32_MIN = -2147483648;\r\n/**\r\n * For use in kyes, the maximum possible 32-bit integer.\r\n */\r\nvar INTEGER_32_MAX = 2147483647;\r\n/**\r\n * If the string contains a 32-bit integer, return it. Else return null.\r\n */\r\nvar tryParseInt = function (str) {\r\n if (INTEGER_REGEXP_.test(str)) {\r\n var intVal = Number(str);\r\n if (intVal >= INTEGER_32_MIN && intVal <= INTEGER_32_MAX) {\r\n return intVal;\r\n }\r\n }\r\n return null;\r\n};\r\n/**\r\n * Helper to run some code but catch any exceptions and re-throw them later.\r\n * Useful for preventing user callbacks from breaking internal code.\r\n *\r\n * Re-throwing the exception from a setTimeout is a little evil, but it's very\r\n * convenient (we don't have to try to figure out when is a safe point to\r\n * re-throw it), and the behavior seems reasonable:\r\n *\r\n * * If you aren't pausing on exceptions, you get an error in the console with\r\n * the correct stack trace.\r\n * * If you're pausing on all exceptions, the debugger will pause on your\r\n * exception and then again when we rethrow it.\r\n * * If you're only pausing on uncaught exceptions, the debugger will only pause\r\n * on us re-throwing it.\r\n *\r\n * @param fn - The code to guard.\r\n */\r\nvar exceptionGuard = function (fn) {\r\n try {\r\n fn();\r\n }\r\n catch (e) {\r\n // Re-throw exception when it's safe.\r\n setTimeout(function () {\r\n // It used to be that \"throw e\" would result in a good console error with\r\n // relevant context, but as of Chrome 39, you just get the firebase.js\r\n // file/line number where we re-throw it, which is useless. So we log\r\n // e.stack explicitly.\r\n var stack = e.stack || '';\r\n warn('Exception was thrown by user callback.', stack);\r\n throw e;\r\n }, Math.floor(0));\r\n }\r\n};\r\n/**\r\n * @returns {boolean} true if we think we're currently being crawled.\r\n */\r\nvar beingCrawled = function () {\r\n var userAgent = (typeof window === 'object' &&\r\n window['navigator'] &&\r\n window['navigator']['userAgent']) ||\r\n '';\r\n // For now we whitelist the most popular crawlers. We should refine this to be the set of crawlers we\r\n // believe to support JavaScript/AJAX rendering.\r\n // NOTE: Google Webmaster Tools doesn't really belong, but their \"This is how a visitor to your website\r\n // would have seen the page\" is flaky if we don't treat it as a crawler.\r\n return (userAgent.search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i) >= 0);\r\n};\r\n/**\r\n * Same as setTimeout() except on Node.JS it will /not/ prevent the process from exiting.\r\n *\r\n * It is removed with clearTimeout() as normal.\r\n *\r\n * @param fn - Function to run.\r\n * @param time - Milliseconds to wait before running.\r\n * @returns The setTimeout() return value.\r\n */\r\nvar setTimeoutNonBlocking = function (fn, time) {\r\n var timeout = setTimeout(fn, time);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (typeof timeout === 'object' && timeout['unref']) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n timeout['unref']();\r\n }\r\n return timeout;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Abstraction around AppCheck's token fetching capabilities.\r\n */\r\nvar AppCheckTokenProvider = /** @class */ (function () {\r\n function AppCheckTokenProvider(appName_, appCheckProvider) {\r\n var _this = this;\r\n this.appName_ = appName_;\r\n this.appCheckProvider = appCheckProvider;\r\n this.appCheck = appCheckProvider === null || appCheckProvider === void 0 ? void 0 : appCheckProvider.getImmediate({ optional: true });\r\n if (!this.appCheck) {\r\n appCheckProvider === null || appCheckProvider === void 0 ? void 0 : appCheckProvider.get().then(function (appCheck) { return (_this.appCheck = appCheck); });\r\n }\r\n }\r\n AppCheckTokenProvider.prototype.getToken = function (forceRefresh) {\r\n var _this = this;\r\n if (!this.appCheck) {\r\n return new Promise(function (resolve, reject) {\r\n // Support delayed initialization of FirebaseAppCheck. This allows our\r\n // customers to initialize the RTDB SDK before initializing Firebase\r\n // AppCheck and ensures that all requests are authenticated if a token\r\n // becomes available before the timoeout below expires.\r\n setTimeout(function () {\r\n if (_this.appCheck) {\r\n _this.getToken(forceRefresh).then(resolve, reject);\r\n }\r\n else {\r\n resolve(null);\r\n }\r\n }, 0);\r\n });\r\n }\r\n return this.appCheck.getToken(forceRefresh);\r\n };\r\n AppCheckTokenProvider.prototype.addTokenChangeListener = function (listener) {\r\n var _a;\r\n (_a = this.appCheckProvider) === null || _a === void 0 ? void 0 : _a.get().then(function (appCheck) { return appCheck.addTokenListener(listener); });\r\n };\r\n AppCheckTokenProvider.prototype.notifyForInvalidToken = function () {\r\n warn(\"Provided AppCheck credentials for the app named \\\"\" + this.appName_ + \"\\\" \" +\r\n 'are invalid. This usually indicates your app was not initialized correctly.');\r\n };\r\n return AppCheckTokenProvider;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Abstraction around FirebaseApp's token fetching capabilities.\r\n */\r\nvar FirebaseAuthTokenProvider = /** @class */ (function () {\r\n function FirebaseAuthTokenProvider(appName_, firebaseOptions_, authProvider_) {\r\n var _this = this;\r\n this.appName_ = appName_;\r\n this.firebaseOptions_ = firebaseOptions_;\r\n this.authProvider_ = authProvider_;\r\n this.auth_ = null;\r\n this.auth_ = authProvider_.getImmediate({ optional: true });\r\n if (!this.auth_) {\r\n authProvider_.onInit(function (auth) { return (_this.auth_ = auth); });\r\n }\r\n }\r\n FirebaseAuthTokenProvider.prototype.getToken = function (forceRefresh) {\r\n var _this = this;\r\n if (!this.auth_) {\r\n return new Promise(function (resolve, reject) {\r\n // Support delayed initialization of FirebaseAuth. This allows our\r\n // customers to initialize the RTDB SDK before initializing Firebase\r\n // Auth and ensures that all requests are authenticated if a token\r\n // becomes available before the timoeout below expires.\r\n setTimeout(function () {\r\n if (_this.auth_) {\r\n _this.getToken(forceRefresh).then(resolve, reject);\r\n }\r\n else {\r\n resolve(null);\r\n }\r\n }, 0);\r\n });\r\n }\r\n return this.auth_.getToken(forceRefresh).catch(function (error) {\r\n // TODO: Need to figure out all the cases this is raised and whether\r\n // this makes sense.\r\n if (error && error.code === 'auth/token-not-initialized') {\r\n log('Got auth/token-not-initialized error. Treating as null token.');\r\n return null;\r\n }\r\n else {\r\n return Promise.reject(error);\r\n }\r\n });\r\n };\r\n FirebaseAuthTokenProvider.prototype.addTokenChangeListener = function (listener) {\r\n // TODO: We might want to wrap the listener and call it with no args to\r\n // avoid a leaky abstraction, but that makes removing the listener harder.\r\n if (this.auth_) {\r\n this.auth_.addAuthTokenListener(listener);\r\n }\r\n else {\r\n this.authProvider_\r\n .get()\r\n .then(function (auth) { return auth.addAuthTokenListener(listener); });\r\n }\r\n };\r\n FirebaseAuthTokenProvider.prototype.removeTokenChangeListener = function (listener) {\r\n this.authProvider_\r\n .get()\r\n .then(function (auth) { return auth.removeAuthTokenListener(listener); });\r\n };\r\n FirebaseAuthTokenProvider.prototype.notifyForInvalidToken = function () {\r\n var errorMessage = 'Provided authentication credentials for the app named \"' +\r\n this.appName_ +\r\n '\" are invalid. This usually indicates your app was not ' +\r\n 'initialized correctly. ';\r\n if ('credential' in this.firebaseOptions_) {\r\n errorMessage +=\r\n 'Make sure the \"credential\" property provided to initializeApp() ' +\r\n 'is authorized to access the specified \"databaseURL\" and is from the correct ' +\r\n 'project.';\r\n }\r\n else if ('serviceAccount' in this.firebaseOptions_) {\r\n errorMessage +=\r\n 'Make sure the \"serviceAccount\" property provided to initializeApp() ' +\r\n 'is authorized to access the specified \"databaseURL\" and is from the correct ' +\r\n 'project.';\r\n }\r\n else {\r\n errorMessage +=\r\n 'Make sure the \"apiKey\" and \"databaseURL\" properties provided to ' +\r\n 'initializeApp() match the values provided for your app at ' +\r\n 'https://console.firebase.google.com/.';\r\n }\r\n warn(errorMessage);\r\n };\r\n return FirebaseAuthTokenProvider;\r\n}());\r\n/* AuthTokenProvider that supplies a constant token. Used by Admin SDK or mockUserToken with emulators. */\r\nvar EmulatorTokenProvider = /** @class */ (function () {\r\n function EmulatorTokenProvider(accessToken) {\r\n this.accessToken = accessToken;\r\n }\r\n EmulatorTokenProvider.prototype.getToken = function (forceRefresh) {\r\n return Promise.resolve({\r\n accessToken: this.accessToken\r\n });\r\n };\r\n EmulatorTokenProvider.prototype.addTokenChangeListener = function (listener) {\r\n // Invoke the listener immediately to match the behavior in Firebase Auth\r\n // (see packages/auth/src/auth.js#L1807)\r\n listener(this.accessToken);\r\n };\r\n EmulatorTokenProvider.prototype.removeTokenChangeListener = function (listener) { };\r\n EmulatorTokenProvider.prototype.notifyForInvalidToken = function () { };\r\n /** A string that is treated as an admin access token by the RTDB emulator. Used by Admin SDK. */\r\n EmulatorTokenProvider.OWNER = 'owner';\r\n return EmulatorTokenProvider;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar PROTOCOL_VERSION = '5';\r\nvar VERSION_PARAM = 'v';\r\nvar TRANSPORT_SESSION_PARAM = 's';\r\nvar REFERER_PARAM = 'r';\r\nvar FORGE_REF = 'f';\r\n// Matches console.firebase.google.com, firebase-console-*.corp.google.com and\r\n// firebase.corp.google.com\r\nvar FORGE_DOMAIN_RE = /(console\\.firebase|firebase-console-\\w+\\.corp|firebase\\.corp)\\.google\\.com/;\r\nvar LAST_SESSION_PARAM = 'ls';\r\nvar APPLICATION_ID_PARAM = 'p';\r\nvar APP_CHECK_TOKEN_PARAM = 'ac';\r\nvar WEBSOCKET = 'websocket';\r\nvar LONG_POLLING = 'long_polling';\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A class that holds metadata about a Repo object\r\n */\r\nvar RepoInfo = /** @class */ (function () {\r\n /**\r\n * @param host - Hostname portion of the url for the repo\r\n * @param secure - Whether or not this repo is accessed over ssl\r\n * @param namespace - The namespace represented by the repo\r\n * @param webSocketOnly - Whether to prefer websockets over all other transports (used by Nest).\r\n * @param nodeAdmin - Whether this instance uses Admin SDK credentials\r\n * @param persistenceKey - Override the default session persistence storage key\r\n */\r\n function RepoInfo(host, secure, namespace, webSocketOnly, nodeAdmin, persistenceKey, includeNamespaceInQueryParams) {\r\n if (nodeAdmin === void 0) { nodeAdmin = false; }\r\n if (persistenceKey === void 0) { persistenceKey = ''; }\r\n if (includeNamespaceInQueryParams === void 0) { includeNamespaceInQueryParams = false; }\r\n this.secure = secure;\r\n this.namespace = namespace;\r\n this.webSocketOnly = webSocketOnly;\r\n this.nodeAdmin = nodeAdmin;\r\n this.persistenceKey = persistenceKey;\r\n this.includeNamespaceInQueryParams = includeNamespaceInQueryParams;\r\n this._host = host.toLowerCase();\r\n this._domain = this._host.substr(this._host.indexOf('.') + 1);\r\n this.internalHost =\r\n PersistentStorage.get('host:' + host) || this._host;\r\n }\r\n RepoInfo.prototype.isCacheableHost = function () {\r\n return this.internalHost.substr(0, 2) === 's-';\r\n };\r\n RepoInfo.prototype.isCustomHost = function () {\r\n return (this._domain !== 'firebaseio.com' &&\r\n this._domain !== 'firebaseio-demo.com');\r\n };\r\n Object.defineProperty(RepoInfo.prototype, \"host\", {\r\n get: function () {\r\n return this._host;\r\n },\r\n set: function (newHost) {\r\n if (newHost !== this.internalHost) {\r\n this.internalHost = newHost;\r\n if (this.isCacheableHost()) {\r\n PersistentStorage.set('host:' + this._host, this.internalHost);\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n RepoInfo.prototype.toString = function () {\r\n var str = this.toURLString();\r\n if (this.persistenceKey) {\r\n str += '<' + this.persistenceKey + '>';\r\n }\r\n return str;\r\n };\r\n RepoInfo.prototype.toURLString = function () {\r\n var protocol = this.secure ? 'https://' : 'http://';\r\n var query = this.includeNamespaceInQueryParams\r\n ? \"?ns=\" + this.namespace\r\n : '';\r\n return \"\" + protocol + this.host + \"/\" + query;\r\n };\r\n return RepoInfo;\r\n}());\r\nfunction repoInfoNeedsQueryParam(repoInfo) {\r\n return (repoInfo.host !== repoInfo.internalHost ||\r\n repoInfo.isCustomHost() ||\r\n repoInfo.includeNamespaceInQueryParams);\r\n}\r\n/**\r\n * Returns the websocket URL for this repo\r\n * @param repoInfo - RepoInfo object\r\n * @param type - of connection\r\n * @param params - list\r\n * @returns The URL for this repo\r\n */\r\nfunction repoInfoConnectionURL(repoInfo, type, params) {\r\n assert(typeof type === 'string', 'typeof type must == string');\r\n assert(typeof params === 'object', 'typeof params must == object');\r\n var connURL;\r\n if (type === WEBSOCKET) {\r\n connURL =\r\n (repoInfo.secure ? 'wss://' : 'ws://') + repoInfo.internalHost + '/.ws?';\r\n }\r\n else if (type === LONG_POLLING) {\r\n connURL =\r\n (repoInfo.secure ? 'https://' : 'http://') +\r\n repoInfo.internalHost +\r\n '/.lp?';\r\n }\r\n else {\r\n throw new Error('Unknown connection type: ' + type);\r\n }\r\n if (repoInfoNeedsQueryParam(repoInfo)) {\r\n params['ns'] = repoInfo.namespace;\r\n }\r\n var pairs = [];\r\n each(params, function (key, value) {\r\n pairs.push(key + '=' + value);\r\n });\r\n return connURL + pairs.join('&');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Tracks a collection of stats.\r\n */\r\nvar StatsCollection = /** @class */ (function () {\r\n function StatsCollection() {\r\n this.counters_ = {};\r\n }\r\n StatsCollection.prototype.incrementCounter = function (name, amount) {\r\n if (amount === void 0) { amount = 1; }\r\n if (!contains(this.counters_, name)) {\r\n this.counters_[name] = 0;\r\n }\r\n this.counters_[name] += amount;\r\n };\r\n StatsCollection.prototype.get = function () {\r\n return deepCopy(this.counters_);\r\n };\r\n return StatsCollection;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar collections = {};\r\nvar reporters = {};\r\nfunction statsManagerGetCollection(repoInfo) {\r\n var hashString = repoInfo.toString();\r\n if (!collections[hashString]) {\r\n collections[hashString] = new StatsCollection();\r\n }\r\n return collections[hashString];\r\n}\r\nfunction statsManagerGetOrCreateReporter(repoInfo, creatorFunction) {\r\n var hashString = repoInfo.toString();\r\n if (!reporters[hashString]) {\r\n reporters[hashString] = creatorFunction();\r\n }\r\n return reporters[hashString];\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * This class ensures the packets from the server arrive in order\r\n * This class takes data from the server and ensures it gets passed into the callbacks in order.\r\n */\r\nvar PacketReceiver = /** @class */ (function () {\r\n /**\r\n * @param onMessage_\r\n */\r\n function PacketReceiver(onMessage_) {\r\n this.onMessage_ = onMessage_;\r\n this.pendingResponses = [];\r\n this.currentResponseNum = 0;\r\n this.closeAfterResponse = -1;\r\n this.onClose = null;\r\n }\r\n PacketReceiver.prototype.closeAfter = function (responseNum, callback) {\r\n this.closeAfterResponse = responseNum;\r\n this.onClose = callback;\r\n if (this.closeAfterResponse < this.currentResponseNum) {\r\n this.onClose();\r\n this.onClose = null;\r\n }\r\n };\r\n /**\r\n * Each message from the server comes with a response number, and an array of data. The responseNumber\r\n * allows us to ensure that we process them in the right order, since we can't be guaranteed that all\r\n * browsers will respond in the same order as the requests we sent\r\n */\r\n PacketReceiver.prototype.handleResponse = function (requestNum, data) {\r\n var _this = this;\r\n this.pendingResponses[requestNum] = data;\r\n var _loop_1 = function () {\r\n var toProcess = this_1.pendingResponses[this_1.currentResponseNum];\r\n delete this_1.pendingResponses[this_1.currentResponseNum];\r\n var _loop_2 = function (i) {\r\n if (toProcess[i]) {\r\n exceptionGuard(function () {\r\n _this.onMessage_(toProcess[i]);\r\n });\r\n }\r\n };\r\n for (var i = 0; i < toProcess.length; ++i) {\r\n _loop_2(i);\r\n }\r\n if (this_1.currentResponseNum === this_1.closeAfterResponse) {\r\n if (this_1.onClose) {\r\n this_1.onClose();\r\n this_1.onClose = null;\r\n }\r\n return \"break\";\r\n }\r\n this_1.currentResponseNum++;\r\n };\r\n var this_1 = this;\r\n while (this.pendingResponses[this.currentResponseNum]) {\r\n var state_1 = _loop_1();\r\n if (state_1 === \"break\")\r\n break;\r\n }\r\n };\r\n return PacketReceiver;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// URL query parameters associated with longpolling\r\nvar FIREBASE_LONGPOLL_START_PARAM = 'start';\r\nvar FIREBASE_LONGPOLL_CLOSE_COMMAND = 'close';\r\nvar FIREBASE_LONGPOLL_COMMAND_CB_NAME = 'pLPCommand';\r\nvar FIREBASE_LONGPOLL_DATA_CB_NAME = 'pRTLPCB';\r\nvar FIREBASE_LONGPOLL_ID_PARAM = 'id';\r\nvar FIREBASE_LONGPOLL_PW_PARAM = 'pw';\r\nvar FIREBASE_LONGPOLL_SERIAL_PARAM = 'ser';\r\nvar FIREBASE_LONGPOLL_CALLBACK_ID_PARAM = 'cb';\r\nvar FIREBASE_LONGPOLL_SEGMENT_NUM_PARAM = 'seg';\r\nvar FIREBASE_LONGPOLL_SEGMENTS_IN_PACKET = 'ts';\r\nvar FIREBASE_LONGPOLL_DATA_PARAM = 'd';\r\nvar FIREBASE_LONGPOLL_DISCONN_FRAME_REQUEST_PARAM = 'dframe';\r\n//Data size constants.\r\n//TODO: Perf: the maximum length actually differs from browser to browser.\r\n// We should check what browser we're on and set accordingly.\r\nvar MAX_URL_DATA_SIZE = 1870;\r\nvar SEG_HEADER_SIZE = 30; //ie: &seg=8299234&ts=982389123&d=\r\nvar MAX_PAYLOAD_SIZE = MAX_URL_DATA_SIZE - SEG_HEADER_SIZE;\r\n/**\r\n * Keepalive period\r\n * send a fresh request at minimum every 25 seconds. Opera has a maximum request\r\n * length of 30 seconds that we can't exceed.\r\n */\r\nvar KEEPALIVE_REQUEST_INTERVAL = 25000;\r\n/**\r\n * How long to wait before aborting a long-polling connection attempt.\r\n */\r\nvar LP_CONNECT_TIMEOUT = 30000;\r\n/**\r\n * This class manages a single long-polling connection.\r\n */\r\nvar BrowserPollConnection = /** @class */ (function () {\r\n /**\r\n * @param connId An identifier for this connection, used for logging\r\n * @param repoInfo The info for the endpoint to send data to.\r\n * @param applicationId The Firebase App ID for this project.\r\n * @param appCheckToken The AppCheck token for this client.\r\n * @param authToken The AuthToken to use for this connection.\r\n * @param transportSessionId Optional transportSessionid if we are\r\n * reconnecting for an existing transport session\r\n * @param lastSessionId Optional lastSessionId if the PersistentConnection has\r\n * already created a connection previously\r\n */\r\n function BrowserPollConnection(connId, repoInfo, applicationId, appCheckToken, authToken, transportSessionId, lastSessionId) {\r\n var _this = this;\r\n this.connId = connId;\r\n this.repoInfo = repoInfo;\r\n this.applicationId = applicationId;\r\n this.appCheckToken = appCheckToken;\r\n this.authToken = authToken;\r\n this.transportSessionId = transportSessionId;\r\n this.lastSessionId = lastSessionId;\r\n this.bytesSent = 0;\r\n this.bytesReceived = 0;\r\n this.everConnected_ = false;\r\n this.log_ = logWrapper(connId);\r\n this.stats_ = statsManagerGetCollection(repoInfo);\r\n this.urlFn = function (params) {\r\n // Always add the token if we have one.\r\n if (_this.appCheckToken) {\r\n params[APP_CHECK_TOKEN_PARAM] = _this.appCheckToken;\r\n }\r\n return repoInfoConnectionURL(repoInfo, LONG_POLLING, params);\r\n };\r\n }\r\n /**\r\n * @param onMessage - Callback when messages arrive\r\n * @param onDisconnect - Callback with connection lost.\r\n */\r\n BrowserPollConnection.prototype.open = function (onMessage, onDisconnect) {\r\n var _this = this;\r\n this.curSegmentNum = 0;\r\n this.onDisconnect_ = onDisconnect;\r\n this.myPacketOrderer = new PacketReceiver(onMessage);\r\n this.isClosed_ = false;\r\n this.connectTimeoutTimer_ = setTimeout(function () {\r\n _this.log_('Timed out trying to connect.');\r\n // Make sure we clear the host cache\r\n _this.onClosed_();\r\n _this.connectTimeoutTimer_ = null;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n }, Math.floor(LP_CONNECT_TIMEOUT));\r\n // Ensure we delay the creation of the iframe until the DOM is loaded.\r\n executeWhenDOMReady(function () {\r\n if (_this.isClosed_) {\r\n return;\r\n }\r\n //Set up a callback that gets triggered once a connection is set up.\r\n _this.scriptTagHolder = new FirebaseIFrameScriptHolder(function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _a = __read(args, 5), command = _a[0], arg1 = _a[1], arg2 = _a[2]; _a[3]; _a[4];\r\n _this.incrementIncomingBytes_(args);\r\n if (!_this.scriptTagHolder) {\r\n return; // we closed the connection.\r\n }\r\n if (_this.connectTimeoutTimer_) {\r\n clearTimeout(_this.connectTimeoutTimer_);\r\n _this.connectTimeoutTimer_ = null;\r\n }\r\n _this.everConnected_ = true;\r\n if (command === FIREBASE_LONGPOLL_START_PARAM) {\r\n _this.id = arg1;\r\n _this.password = arg2;\r\n }\r\n else if (command === FIREBASE_LONGPOLL_CLOSE_COMMAND) {\r\n // Don't clear the host cache. We got a response from the server, so we know it's reachable\r\n if (arg1) {\r\n // We aren't expecting any more data (other than what the server's already in the process of sending us\r\n // through our already open polls), so don't send any more.\r\n _this.scriptTagHolder.sendNewPolls = false;\r\n // arg1 in this case is the last response number sent by the server. We should try to receive\r\n // all of the responses up to this one before closing\r\n _this.myPacketOrderer.closeAfter(arg1, function () {\r\n _this.onClosed_();\r\n });\r\n }\r\n else {\r\n _this.onClosed_();\r\n }\r\n }\r\n else {\r\n throw new Error('Unrecognized command received: ' + command);\r\n }\r\n }, function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _a = __read(args, 2), pN = _a[0], data = _a[1];\r\n _this.incrementIncomingBytes_(args);\r\n _this.myPacketOrderer.handleResponse(pN, data);\r\n }, function () {\r\n _this.onClosed_();\r\n }, _this.urlFn);\r\n //Send the initial request to connect. The serial number is simply to keep the browser from pulling previous results\r\n //from cache.\r\n var urlParams = {};\r\n urlParams[FIREBASE_LONGPOLL_START_PARAM] = 't';\r\n urlParams[FIREBASE_LONGPOLL_SERIAL_PARAM] = Math.floor(Math.random() * 100000000);\r\n if (_this.scriptTagHolder.uniqueCallbackIdentifier) {\r\n urlParams[FIREBASE_LONGPOLL_CALLBACK_ID_PARAM] = _this.scriptTagHolder.uniqueCallbackIdentifier;\r\n }\r\n urlParams[VERSION_PARAM] = PROTOCOL_VERSION;\r\n if (_this.transportSessionId) {\r\n urlParams[TRANSPORT_SESSION_PARAM] = _this.transportSessionId;\r\n }\r\n if (_this.lastSessionId) {\r\n urlParams[LAST_SESSION_PARAM] = _this.lastSessionId;\r\n }\r\n if (_this.applicationId) {\r\n urlParams[APPLICATION_ID_PARAM] = _this.applicationId;\r\n }\r\n if (_this.appCheckToken) {\r\n urlParams[APP_CHECK_TOKEN_PARAM] = _this.appCheckToken;\r\n }\r\n if (typeof location !== 'undefined' &&\r\n location.hostname &&\r\n FORGE_DOMAIN_RE.test(location.hostname)) {\r\n urlParams[REFERER_PARAM] = FORGE_REF;\r\n }\r\n var connectURL = _this.urlFn(urlParams);\r\n _this.log_('Connecting via long-poll to ' + connectURL);\r\n _this.scriptTagHolder.addTag(connectURL, function () {\r\n /* do nothing */\r\n });\r\n });\r\n };\r\n /**\r\n * Call this when a handshake has completed successfully and we want to consider the connection established\r\n */\r\n BrowserPollConnection.prototype.start = function () {\r\n this.scriptTagHolder.startLongPoll(this.id, this.password);\r\n this.addDisconnectPingFrame(this.id, this.password);\r\n };\r\n /**\r\n * Forces long polling to be considered as a potential transport\r\n */\r\n BrowserPollConnection.forceAllow = function () {\r\n BrowserPollConnection.forceAllow_ = true;\r\n };\r\n /**\r\n * Forces longpolling to not be considered as a potential transport\r\n */\r\n BrowserPollConnection.forceDisallow = function () {\r\n BrowserPollConnection.forceDisallow_ = true;\r\n };\r\n // Static method, use string literal so it can be accessed in a generic way\r\n BrowserPollConnection.isAvailable = function () {\r\n if (isNodeSdk()) {\r\n return false;\r\n }\r\n else if (BrowserPollConnection.forceAllow_) {\r\n return true;\r\n }\r\n else {\r\n // NOTE: In React-Native there's normally no 'document', but if you debug a React-Native app in\r\n // the Chrome debugger, 'document' is defined, but document.createElement is null (2015/06/08).\r\n return (!BrowserPollConnection.forceDisallow_ &&\r\n typeof document !== 'undefined' &&\r\n document.createElement != null &&\r\n !isChromeExtensionContentScript() &&\r\n !isWindowsStoreApp());\r\n }\r\n };\r\n /**\r\n * No-op for polling\r\n */\r\n BrowserPollConnection.prototype.markConnectionHealthy = function () { };\r\n /**\r\n * Stops polling and cleans up the iframe\r\n */\r\n BrowserPollConnection.prototype.shutdown_ = function () {\r\n this.isClosed_ = true;\r\n if (this.scriptTagHolder) {\r\n this.scriptTagHolder.close();\r\n this.scriptTagHolder = null;\r\n }\r\n //remove the disconnect frame, which will trigger an XHR call to the server to tell it we're leaving.\r\n if (this.myDisconnFrame) {\r\n document.body.removeChild(this.myDisconnFrame);\r\n this.myDisconnFrame = null;\r\n }\r\n if (this.connectTimeoutTimer_) {\r\n clearTimeout(this.connectTimeoutTimer_);\r\n this.connectTimeoutTimer_ = null;\r\n }\r\n };\r\n /**\r\n * Triggered when this transport is closed\r\n */\r\n BrowserPollConnection.prototype.onClosed_ = function () {\r\n if (!this.isClosed_) {\r\n this.log_('Longpoll is closing itself');\r\n this.shutdown_();\r\n if (this.onDisconnect_) {\r\n this.onDisconnect_(this.everConnected_);\r\n this.onDisconnect_ = null;\r\n }\r\n }\r\n };\r\n /**\r\n * External-facing close handler. RealTime has requested we shut down. Kill our connection and tell the server\r\n * that we've left.\r\n */\r\n BrowserPollConnection.prototype.close = function () {\r\n if (!this.isClosed_) {\r\n this.log_('Longpoll is being closed.');\r\n this.shutdown_();\r\n }\r\n };\r\n /**\r\n * Send the JSON object down to the server. It will need to be stringified, base64 encoded, and then\r\n * broken into chunks (since URLs have a small maximum length).\r\n * @param data - The JSON data to transmit.\r\n */\r\n BrowserPollConnection.prototype.send = function (data) {\r\n var dataStr = stringify(data);\r\n this.bytesSent += dataStr.length;\r\n this.stats_.incrementCounter('bytes_sent', dataStr.length);\r\n //first, lets get the base64-encoded data\r\n var base64data = base64Encode(dataStr);\r\n //We can only fit a certain amount in each URL, so we need to split this request\r\n //up into multiple pieces if it doesn't fit in one request.\r\n var dataSegs = splitStringBySize(base64data, MAX_PAYLOAD_SIZE);\r\n //Enqueue each segment for transmission. We assign each chunk a sequential ID and a total number\r\n //of segments so that we can reassemble the packet on the server.\r\n for (var i = 0; i < dataSegs.length; i++) {\r\n this.scriptTagHolder.enqueueSegment(this.curSegmentNum, dataSegs.length, dataSegs[i]);\r\n this.curSegmentNum++;\r\n }\r\n };\r\n /**\r\n * This is how we notify the server that we're leaving.\r\n * We aren't able to send requests with DHTML on a window close event, but we can\r\n * trigger XHR requests in some browsers (everything but Opera basically).\r\n */\r\n BrowserPollConnection.prototype.addDisconnectPingFrame = function (id, pw) {\r\n if (isNodeSdk()) {\r\n return;\r\n }\r\n this.myDisconnFrame = document.createElement('iframe');\r\n var urlParams = {};\r\n urlParams[FIREBASE_LONGPOLL_DISCONN_FRAME_REQUEST_PARAM] = 't';\r\n urlParams[FIREBASE_LONGPOLL_ID_PARAM] = id;\r\n urlParams[FIREBASE_LONGPOLL_PW_PARAM] = pw;\r\n this.myDisconnFrame.src = this.urlFn(urlParams);\r\n this.myDisconnFrame.style.display = 'none';\r\n document.body.appendChild(this.myDisconnFrame);\r\n };\r\n /**\r\n * Used to track the bytes received by this client\r\n */\r\n BrowserPollConnection.prototype.incrementIncomingBytes_ = function (args) {\r\n // TODO: This is an annoying perf hit just to track the number of incoming bytes. Maybe it should be opt-in.\r\n var bytesReceived = stringify(args).length;\r\n this.bytesReceived += bytesReceived;\r\n this.stats_.incrementCounter('bytes_received', bytesReceived);\r\n };\r\n return BrowserPollConnection;\r\n}());\r\n/*********************************************************************************************\r\n * A wrapper around an iframe that is used as a long-polling script holder.\r\n *********************************************************************************************/\r\nvar FirebaseIFrameScriptHolder = /** @class */ (function () {\r\n /**\r\n * @param commandCB - The callback to be called when control commands are recevied from the server.\r\n * @param onMessageCB - The callback to be triggered when responses arrive from the server.\r\n * @param onDisconnect - The callback to be triggered when this tag holder is closed\r\n * @param urlFn - A function that provides the URL of the endpoint to send data to.\r\n */\r\n function FirebaseIFrameScriptHolder(commandCB, onMessageCB, onDisconnect, urlFn) {\r\n this.onDisconnect = onDisconnect;\r\n this.urlFn = urlFn;\r\n //We maintain a count of all of the outstanding requests, because if we have too many active at once it can cause\r\n //problems in some browsers.\r\n this.outstandingRequests = new Set();\r\n //A queue of the pending segments waiting for transmission to the server.\r\n this.pendingSegs = [];\r\n //A serial number. We use this for two things:\r\n // 1) A way to ensure the browser doesn't cache responses to polls\r\n // 2) A way to make the server aware when long-polls arrive in a different order than we started them. The\r\n // server needs to release both polls in this case or it will cause problems in Opera since Opera can only execute\r\n // JSONP code in the order it was added to the iframe.\r\n this.currentSerial = Math.floor(Math.random() * 100000000);\r\n // This gets set to false when we're \"closing down\" the connection (e.g. we're switching transports but there's still\r\n // incoming data from the server that we're waiting for).\r\n this.sendNewPolls = true;\r\n if (!isNodeSdk()) {\r\n //Each script holder registers a couple of uniquely named callbacks with the window. These are called from the\r\n //iframes where we put the long-polling script tags. We have two callbacks:\r\n // 1) Command Callback - Triggered for control issues, like starting a connection.\r\n // 2) Message Callback - Triggered when new data arrives.\r\n this.uniqueCallbackIdentifier = LUIDGenerator();\r\n window[FIREBASE_LONGPOLL_COMMAND_CB_NAME + this.uniqueCallbackIdentifier] = commandCB;\r\n window[FIREBASE_LONGPOLL_DATA_CB_NAME + this.uniqueCallbackIdentifier] = onMessageCB;\r\n //Create an iframe for us to add script tags to.\r\n this.myIFrame = FirebaseIFrameScriptHolder.createIFrame_();\r\n // Set the iframe's contents.\r\n var script = '';\r\n // if we set a javascript url, it's IE and we need to set the document domain. The javascript url is sufficient\r\n // for ie9, but ie8 needs to do it again in the document itself.\r\n if (this.myIFrame.src &&\r\n this.myIFrame.src.substr(0, 'javascript:'.length) === 'javascript:') {\r\n var currentDomain = document.domain;\r\n script = '';\r\n }\r\n var iframeContents = '
' + script + '';\r\n try {\r\n this.myIFrame.doc.open();\r\n this.myIFrame.doc.write(iframeContents);\r\n this.myIFrame.doc.close();\r\n }\r\n catch (e) {\r\n log('frame writing exception');\r\n if (e.stack) {\r\n log(e.stack);\r\n }\r\n log(e);\r\n }\r\n }\r\n else {\r\n this.commandCB = commandCB;\r\n this.onMessageCB = onMessageCB;\r\n }\r\n }\r\n /**\r\n * Each browser has its own funny way to handle iframes. Here we mush them all together into one object that I can\r\n * actually use.\r\n */\r\n FirebaseIFrameScriptHolder.createIFrame_ = function () {\r\n var iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n // This is necessary in order to initialize the document inside the iframe\r\n if (document.body) {\r\n document.body.appendChild(iframe);\r\n try {\r\n // If document.domain has been modified in IE, this will throw an error, and we need to set the\r\n // domain of the iframe's document manually. We can do this via a javascript: url as the src attribute\r\n // Also note that we must do this *after* the iframe has been appended to the page. Otherwise it doesn't work.\r\n var a = iframe.contentWindow.document;\r\n if (!a) {\r\n // Apologies for the log-spam, I need to do something to keep closure from optimizing out the assignment above.\r\n log('No IE domain setting required');\r\n }\r\n }\r\n catch (e) {\r\n var domain = document.domain;\r\n iframe.src =\r\n \"javascript:void((function(){document.open();document.domain='\" +\r\n domain +\r\n \"';document.close();})())\";\r\n }\r\n }\r\n else {\r\n // LongPollConnection attempts to delay initialization until the document is ready, so hopefully this\r\n // never gets hit.\r\n throw 'Document body has not initialized. Wait to initialize Firebase until after the document is ready.';\r\n }\r\n // Get the document of the iframe in a browser-specific way.\r\n if (iframe.contentDocument) {\r\n iframe.doc = iframe.contentDocument; // Firefox, Opera, Safari\r\n }\r\n else if (iframe.contentWindow) {\r\n iframe.doc = iframe.contentWindow.document; // Internet Explorer\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n }\r\n else if (iframe.document) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n iframe.doc = iframe.document; //others?\r\n }\r\n return iframe;\r\n };\r\n /**\r\n * Cancel all outstanding queries and remove the frame.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.close = function () {\r\n var _this = this;\r\n //Mark this iframe as dead, so no new requests are sent.\r\n this.alive = false;\r\n if (this.myIFrame) {\r\n //We have to actually remove all of the html inside this iframe before removing it from the\r\n //window, or IE will continue loading and executing the script tags we've already added, which\r\n //can lead to some errors being thrown. Setting innerHTML seems to be the easiest way to do this.\r\n this.myIFrame.doc.body.innerHTML = '';\r\n setTimeout(function () {\r\n if (_this.myIFrame !== null) {\r\n document.body.removeChild(_this.myIFrame);\r\n _this.myIFrame = null;\r\n }\r\n }, Math.floor(0));\r\n }\r\n // Protect from being called recursively.\r\n var onDisconnect = this.onDisconnect;\r\n if (onDisconnect) {\r\n this.onDisconnect = null;\r\n onDisconnect();\r\n }\r\n };\r\n /**\r\n * Actually start the long-polling session by adding the first script tag(s) to the iframe.\r\n * @param id - The ID of this connection\r\n * @param pw - The password for this connection\r\n */\r\n FirebaseIFrameScriptHolder.prototype.startLongPoll = function (id, pw) {\r\n this.myID = id;\r\n this.myPW = pw;\r\n this.alive = true;\r\n //send the initial request. If there are requests queued, make sure that we transmit as many as we are currently able to.\r\n while (this.newRequest_()) { }\r\n };\r\n /**\r\n * This is called any time someone might want a script tag to be added. It adds a script tag when there aren't\r\n * too many outstanding requests and we are still alive.\r\n *\r\n * If there are outstanding packet segments to send, it sends one. If there aren't, it sends a long-poll anyways if\r\n * needed.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.newRequest_ = function () {\r\n // We keep one outstanding request open all the time to receive data, but if we need to send data\r\n // (pendingSegs.length > 0) then we create a new request to send the data. The server will automatically\r\n // close the old request.\r\n if (this.alive &&\r\n this.sendNewPolls &&\r\n this.outstandingRequests.size < (this.pendingSegs.length > 0 ? 2 : 1)) {\r\n //construct our url\r\n this.currentSerial++;\r\n var urlParams = {};\r\n urlParams[FIREBASE_LONGPOLL_ID_PARAM] = this.myID;\r\n urlParams[FIREBASE_LONGPOLL_PW_PARAM] = this.myPW;\r\n urlParams[FIREBASE_LONGPOLL_SERIAL_PARAM] = this.currentSerial;\r\n var theURL = this.urlFn(urlParams);\r\n //Now add as much data as we can.\r\n var curDataString = '';\r\n var i = 0;\r\n while (this.pendingSegs.length > 0) {\r\n //first, lets see if the next segment will fit.\r\n var nextSeg = this.pendingSegs[0];\r\n if (nextSeg.d.length +\r\n SEG_HEADER_SIZE +\r\n curDataString.length <=\r\n MAX_URL_DATA_SIZE) {\r\n //great, the segment will fit. Lets append it.\r\n var theSeg = this.pendingSegs.shift();\r\n curDataString =\r\n curDataString +\r\n '&' +\r\n FIREBASE_LONGPOLL_SEGMENT_NUM_PARAM +\r\n i +\r\n '=' +\r\n theSeg.seg +\r\n '&' +\r\n FIREBASE_LONGPOLL_SEGMENTS_IN_PACKET +\r\n i +\r\n '=' +\r\n theSeg.ts +\r\n '&' +\r\n FIREBASE_LONGPOLL_DATA_PARAM +\r\n i +\r\n '=' +\r\n theSeg.d;\r\n i++;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n theURL = theURL + curDataString;\r\n this.addLongPollTag_(theURL, this.currentSerial);\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n /**\r\n * Queue a packet for transmission to the server.\r\n * @param segnum - A sequential id for this packet segment used for reassembly\r\n * @param totalsegs - The total number of segments in this packet\r\n * @param data - The data for this segment.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.enqueueSegment = function (segnum, totalsegs, data) {\r\n //add this to the queue of segments to send.\r\n this.pendingSegs.push({ seg: segnum, ts: totalsegs, d: data });\r\n //send the data immediately if there isn't already data being transmitted, unless\r\n //startLongPoll hasn't been called yet.\r\n if (this.alive) {\r\n this.newRequest_();\r\n }\r\n };\r\n /**\r\n * Add a script tag for a regular long-poll request.\r\n * @param url - The URL of the script tag.\r\n * @param serial - The serial number of the request.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.addLongPollTag_ = function (url, serial) {\r\n var _this = this;\r\n //remember that we sent this request.\r\n this.outstandingRequests.add(serial);\r\n var doNewRequest = function () {\r\n _this.outstandingRequests.delete(serial);\r\n _this.newRequest_();\r\n };\r\n // If this request doesn't return on its own accord (by the server sending us some data), we'll\r\n // create a new one after the KEEPALIVE interval to make sure we always keep a fresh request open.\r\n var keepaliveTimeout = setTimeout(doNewRequest, Math.floor(KEEPALIVE_REQUEST_INTERVAL));\r\n var readyStateCB = function () {\r\n // Request completed. Cancel the keepalive.\r\n clearTimeout(keepaliveTimeout);\r\n // Trigger a new request so we can continue receiving data.\r\n doNewRequest();\r\n };\r\n this.addTag(url, readyStateCB);\r\n };\r\n /**\r\n * Add an arbitrary script tag to the iframe.\r\n * @param url - The URL for the script tag source.\r\n * @param loadCB - A callback to be triggered once the script has loaded.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.addTag = function (url, loadCB) {\r\n var _this = this;\r\n if (isNodeSdk()) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n this.doNodeLongPoll(url, loadCB);\r\n }\r\n else {\r\n setTimeout(function () {\r\n try {\r\n // if we're already closed, don't add this poll\r\n if (!_this.sendNewPolls) {\r\n return;\r\n }\r\n var newScript_1 = _this.myIFrame.doc.createElement('script');\r\n newScript_1.type = 'text/javascript';\r\n newScript_1.async = true;\r\n newScript_1.src = url;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n newScript_1.onload = newScript_1.onreadystatechange = function () {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var rstate = newScript_1.readyState;\r\n if (!rstate || rstate === 'loaded' || rstate === 'complete') {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n newScript_1.onload = newScript_1.onreadystatechange = null;\r\n if (newScript_1.parentNode) {\r\n newScript_1.parentNode.removeChild(newScript_1);\r\n }\r\n loadCB();\r\n }\r\n };\r\n newScript_1.onerror = function () {\r\n log('Long-poll script failed to load: ' + url);\r\n _this.sendNewPolls = false;\r\n _this.close();\r\n };\r\n _this.myIFrame.doc.body.appendChild(newScript_1);\r\n }\r\n catch (e) {\r\n // TODO: we should make this error visible somehow\r\n }\r\n }, Math.floor(1));\r\n }\r\n };\r\n return FirebaseIFrameScriptHolder;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar WEBSOCKET_MAX_FRAME_SIZE = 16384;\r\nvar WEBSOCKET_KEEPALIVE_INTERVAL = 45000;\r\nvar WebSocketImpl = null;\r\nif (typeof MozWebSocket !== 'undefined') {\r\n WebSocketImpl = MozWebSocket;\r\n}\r\nelse if (typeof WebSocket !== 'undefined') {\r\n WebSocketImpl = WebSocket;\r\n}\r\n/**\r\n * Create a new websocket connection with the given callbacks.\r\n */\r\nvar WebSocketConnection = /** @class */ (function () {\r\n /**\r\n * @param connId identifier for this transport\r\n * @param repoInfo The info for the websocket endpoint.\r\n * @param applicationId The Firebase App ID for this project.\r\n * @param appCheckToken The App Check Token for this client.\r\n * @param authToken The Auth Token for this client.\r\n * @param transportSessionId Optional transportSessionId if this is connecting\r\n * to an existing transport session\r\n * @param lastSessionId Optional lastSessionId if there was a previous\r\n * connection\r\n */\r\n function WebSocketConnection(connId, repoInfo, applicationId, appCheckToken, authToken, transportSessionId, lastSessionId) {\r\n this.connId = connId;\r\n this.applicationId = applicationId;\r\n this.appCheckToken = appCheckToken;\r\n this.authToken = authToken;\r\n this.keepaliveTimer = null;\r\n this.frames = null;\r\n this.totalFrames = 0;\r\n this.bytesSent = 0;\r\n this.bytesReceived = 0;\r\n this.log_ = logWrapper(this.connId);\r\n this.stats_ = statsManagerGetCollection(repoInfo);\r\n this.connURL = WebSocketConnection.connectionURL_(repoInfo, transportSessionId, lastSessionId, appCheckToken);\r\n this.nodeAdmin = repoInfo.nodeAdmin;\r\n }\r\n /**\r\n * @param repoInfo - The info for the websocket endpoint.\r\n * @param transportSessionId - Optional transportSessionId if this is connecting to an existing transport\r\n * session\r\n * @param lastSessionId - Optional lastSessionId if there was a previous connection\r\n * @returns connection url\r\n */\r\n WebSocketConnection.connectionURL_ = function (repoInfo, transportSessionId, lastSessionId, appCheckToken) {\r\n var urlParams = {};\r\n urlParams[VERSION_PARAM] = PROTOCOL_VERSION;\r\n if (!isNodeSdk() &&\r\n typeof location !== 'undefined' &&\r\n location.hostname &&\r\n FORGE_DOMAIN_RE.test(location.hostname)) {\r\n urlParams[REFERER_PARAM] = FORGE_REF;\r\n }\r\n if (transportSessionId) {\r\n urlParams[TRANSPORT_SESSION_PARAM] = transportSessionId;\r\n }\r\n if (lastSessionId) {\r\n urlParams[LAST_SESSION_PARAM] = lastSessionId;\r\n }\r\n if (appCheckToken) {\r\n urlParams[APP_CHECK_TOKEN_PARAM] = appCheckToken;\r\n }\r\n return repoInfoConnectionURL(repoInfo, WEBSOCKET, urlParams);\r\n };\r\n /**\r\n * @param onMessage - Callback when messages arrive\r\n * @param onDisconnect - Callback with connection lost.\r\n */\r\n WebSocketConnection.prototype.open = function (onMessage, onDisconnect) {\r\n var _this = this;\r\n this.onDisconnect = onDisconnect;\r\n this.onMessage = onMessage;\r\n this.log_('Websocket connecting to ' + this.connURL);\r\n this.everConnected_ = false;\r\n // Assume failure until proven otherwise.\r\n PersistentStorage.set('previous_websocket_failure', true);\r\n try {\r\n if (isNodeSdk()) {\r\n var device = this.nodeAdmin ? 'AdminNode' : 'Node';\r\n // UA Format: Firebase/Note: This method must be called before performing any other operation.\r\n *\r\n * @param db - The instance to modify.\r\n * @param host - The emulator host (ex: localhost)\r\n * @param port - The emulator port (ex: 8080)\r\n * @param options.mockUserToken - the mock auth token to use for unit testing Security Rules\r\n */\r\nfunction connectDatabaseEmulator(db, host, port, options) {\r\n if (options === void 0) { options = {}; }\r\n db = getModularInstance(db);\r\n db._checkNotDeleted('useEmulator');\r\n if (db._instanceStarted) {\r\n fatal('Cannot call useEmulator() after instance has already been initialized.');\r\n }\r\n var repo = db._repoInternal;\r\n var tokenProvider = undefined;\r\n if (repo.repoInfo_.nodeAdmin) {\r\n if (options.mockUserToken) {\r\n fatal('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the \"firebase\" package instead of \"firebase-admin\".');\r\n }\r\n tokenProvider = new EmulatorTokenProvider(EmulatorTokenProvider.OWNER);\r\n }\r\n else if (options.mockUserToken) {\r\n var token = typeof options.mockUserToken === 'string'\r\n ? options.mockUserToken\r\n : createMockUserToken(options.mockUserToken, db.app.options.projectId);\r\n tokenProvider = new EmulatorTokenProvider(token);\r\n }\r\n // Modify the repo to apply emulator settings\r\n repoManagerApplyEmulatorSettings(repo, host, port, tokenProvider);\r\n}\r\n/**\r\n * Disconnects from the server (all Database operations will be completed\r\n * offline).\r\n *\r\n * The client automatically maintains a persistent connection to the Database\r\n * server, which will remain active indefinitely and reconnect when\r\n * disconnected. However, the `goOffline()` and `goOnline()` methods may be used\r\n * to control the client connection in cases where a persistent connection is\r\n * undesirable.\r\n *\r\n * While offline, the client will no longer receive data updates from the\r\n * Database. However, all Database operations performed locally will continue to\r\n * immediately fire events, allowing your application to continue behaving\r\n * normally. Additionally, each operation performed locally will automatically\r\n * be queued and retried upon reconnection to the Database server.\r\n *\r\n * To reconnect to the Database and begin receiving remote events, see\r\n * `goOnline()`.\r\n *\r\n * @param db - The instance to disconnect.\r\n */\r\nfunction goOffline(db) {\r\n db = getModularInstance(db);\r\n db._checkNotDeleted('goOffline');\r\n repoInterrupt(db._repo);\r\n}\r\n/**\r\n * Reconnects to the server and synchronizes the offline Database state\r\n * with the server state.\r\n *\r\n * This method should be used after disabling the active connection with\r\n * `goOffline()`. Once reconnected, the client will transmit the proper data\r\n * and fire the appropriate events so that your client \"catches up\"\r\n * automatically.\r\n *\r\n * @param db - The instance to reconnect.\r\n */\r\nfunction goOnline(db) {\r\n db = getModularInstance(db);\r\n db._checkNotDeleted('goOnline');\r\n repoResume(db._repo);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar SERVER_TIMESTAMP = {\r\n '.sv': 'timestamp'\r\n};\r\n/**\r\n * Returns a placeholder value for auto-populating the current timestamp (time\r\n * since the Unix epoch, in milliseconds) as determined by the Firebase\r\n * servers.\r\n */\r\nfunction serverTimestamp() {\r\n return SERVER_TIMESTAMP;\r\n}\r\n/**\r\n * Returns a placeholder value that can be used to atomically increment the\r\n * current database value by the provided delta.\r\n *\r\n * @param delta - the amount to modify the current value atomically.\r\n * @returns A placeholder value for modifying data atomically server-side.\r\n */\r\nfunction increment(delta) {\r\n return {\r\n '.sv': {\r\n 'increment': delta\r\n }\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A type for the resolve value of Firebase.transaction.\r\n */\r\nvar TransactionResult$1 = /** @class */ (function () {\r\n /** @hideconstructor */\r\n function TransactionResult(\r\n /** Whether the transaction was successfully committed. */\r\n committed, \r\n /** The resulting data snapshot. */\r\n snapshot) {\r\n this.committed = committed;\r\n this.snapshot = snapshot;\r\n }\r\n /** Returns a JSON-serializable representation of this object. */\r\n TransactionResult.prototype.toJSON = function () {\r\n return { committed: this.committed, snapshot: this.snapshot.toJSON() };\r\n };\r\n return TransactionResult;\r\n}());\r\n/**\r\n * Atomically modifies the data at this location.\r\n *\r\n * Atomically modify the data at this location. Unlike a normal `set()`, which\r\n * just overwrites the data regardless of its previous value, `transaction()` is\r\n * used to modify the existing value to a new value, ensuring there are no\r\n * conflicts with other clients writing to the same location at the same time.\r\n *\r\n * To accomplish this, you pass `runTransaction()` an update function which is\r\n * used to transform the current value into a new value. If another client\r\n * writes to the location before your new value is successfully written, your\r\n * update function will be called again with the new current value, and the\r\n * write will be retried. This will happen repeatedly until your write succeeds\r\n * without conflict or you abort the transaction by not returning a value from\r\n * your update function.\r\n *\r\n * Note: Modifying data with `set()` will cancel any pending transactions at\r\n * that location, so extreme care should be taken if mixing `set()` and\r\n * `transaction()` to update the same data.\r\n *\r\n * Note: When using transactions with Security and Firebase Rules in place, be\r\n * aware that a client needs `.read` access in addition to `.write` access in\r\n * order to perform a transaction. This is because the client-side nature of\r\n * transactions requires the client to read the data in order to transactionally\r\n * update it.\r\n *\r\n * @param ref - The location to atomically modify.\r\n * @param transactionUpdate - A developer-supplied function which will be passed\r\n * the current data stored at this location (as a JavaScript object). The\r\n * function should return the new value it would like written (as a JavaScript\r\n * object). If `undefined` is returned (i.e. you return with no arguments) the\r\n * transaction will be aborted and the data at this location will not be\r\n * modified.\r\n * @param options - An options object to configure transactions.\r\n * @returns A Promise that can optionally be used instead of the onComplete\r\n * callback to handle success and failure.\r\n */\r\nfunction runTransaction(ref, \r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\ntransactionUpdate, options) {\r\n var _a;\r\n ref = getModularInstance(ref);\r\n validateWritablePath('Reference.transaction', ref._path);\r\n if (ref.key === '.length' || ref.key === '.keys') {\r\n throw ('Reference.transaction failed: ' + ref.key + ' is a read-only object.');\r\n }\r\n var applyLocally = (_a = options === null || options === void 0 ? void 0 : options.applyLocally) !== null && _a !== void 0 ? _a : true;\r\n var deferred = new Deferred();\r\n var promiseComplete = function (error, committed, node) {\r\n var dataSnapshot = null;\r\n if (error) {\r\n deferred.reject(error);\r\n }\r\n else {\r\n dataSnapshot = new DataSnapshot$1(node, new ReferenceImpl(ref._repo, ref._path), PRIORITY_INDEX);\r\n deferred.resolve(new TransactionResult$1(committed, dataSnapshot));\r\n }\r\n };\r\n // Add a watch to make sure we get server updates.\r\n var unwatcher = onValue(ref, function () { });\r\n repoStartTransaction(ref._repo, ref._path, transactionUpdate, promiseComplete, unwatcher, applyLocally);\r\n return deferred.promise;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar OnDisconnect = /** @class */ (function () {\r\n function OnDisconnect(_delegate) {\r\n this._delegate = _delegate;\r\n }\r\n OnDisconnect.prototype.cancel = function (onComplete) {\r\n validateArgCount('OnDisconnect.cancel', 0, 1, arguments.length);\r\n validateCallback('OnDisconnect.cancel', 'onComplete', onComplete, true);\r\n var result = this._delegate.cancel();\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n OnDisconnect.prototype.remove = function (onComplete) {\r\n validateArgCount('OnDisconnect.remove', 0, 1, arguments.length);\r\n validateCallback('OnDisconnect.remove', 'onComplete', onComplete, true);\r\n var result = this._delegate.remove();\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n OnDisconnect.prototype.set = function (value, onComplete) {\r\n validateArgCount('OnDisconnect.set', 1, 2, arguments.length);\r\n validateCallback('OnDisconnect.set', 'onComplete', onComplete, true);\r\n var result = this._delegate.set(value);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n OnDisconnect.prototype.setWithPriority = function (value, priority, onComplete) {\r\n validateArgCount('OnDisconnect.setWithPriority', 2, 3, arguments.length);\r\n validateCallback('OnDisconnect.setWithPriority', 'onComplete', onComplete, true);\r\n var result = this._delegate.setWithPriority(value, priority);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n OnDisconnect.prototype.update = function (objectToMerge, onComplete) {\r\n validateArgCount('OnDisconnect.update', 1, 2, arguments.length);\r\n if (Array.isArray(objectToMerge)) {\r\n var newObjectToMerge = {};\r\n for (var i = 0; i < objectToMerge.length; ++i) {\r\n newObjectToMerge['' + i] = objectToMerge[i];\r\n }\r\n objectToMerge = newObjectToMerge;\r\n warn('Passing an Array to firebase.database.onDisconnect().update() is deprecated. Use set() if you want to overwrite the ' +\r\n 'existing data, or an Object with integer keys if you really do want to only update some of the children.');\r\n }\r\n validateCallback('OnDisconnect.update', 'onComplete', onComplete, true);\r\n var result = this._delegate.update(objectToMerge);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n return OnDisconnect;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar TransactionResult = /** @class */ (function () {\r\n /**\r\n * A type for the resolve value of Firebase.transaction.\r\n */\r\n function TransactionResult(committed, snapshot) {\r\n this.committed = committed;\r\n this.snapshot = snapshot;\r\n }\r\n // Do not create public documentation. This is intended to make JSON serialization work but is otherwise unnecessary\r\n // for end-users\r\n TransactionResult.prototype.toJSON = function () {\r\n validateArgCount('TransactionResult.toJSON', 0, 1, arguments.length);\r\n return { committed: this.committed, snapshot: this.snapshot.toJSON() };\r\n };\r\n return TransactionResult;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Class representing a firebase data snapshot. It wraps a SnapshotNode and\r\n * surfaces the public methods (val, forEach, etc.) we want to expose.\r\n */\r\nvar DataSnapshot = /** @class */ (function () {\r\n function DataSnapshot(_database, _delegate) {\r\n this._database = _database;\r\n this._delegate = _delegate;\r\n }\r\n /**\r\n * Retrieves the snapshot contents as JSON. Returns null if the snapshot is\r\n * empty.\r\n *\r\n * @returns JSON representation of the DataSnapshot contents, or null if empty.\r\n */\r\n DataSnapshot.prototype.val = function () {\r\n validateArgCount('DataSnapshot.val', 0, 0, arguments.length);\r\n return this._delegate.val();\r\n };\r\n /**\r\n * Returns the snapshot contents as JSON, including priorities of node. Suitable for exporting\r\n * the entire node contents.\r\n * @returns JSON representation of the DataSnapshot contents, or null if empty.\r\n */\r\n DataSnapshot.prototype.exportVal = function () {\r\n validateArgCount('DataSnapshot.exportVal', 0, 0, arguments.length);\r\n return this._delegate.exportVal();\r\n };\r\n // Do not create public documentation. This is intended to make JSON serialization work but is otherwise unnecessary\r\n // for end-users\r\n DataSnapshot.prototype.toJSON = function () {\r\n // Optional spacer argument is unnecessary because we're depending on recursion rather than stringifying the content\r\n validateArgCount('DataSnapshot.toJSON', 0, 1, arguments.length);\r\n return this._delegate.toJSON();\r\n };\r\n /**\r\n * Returns whether the snapshot contains a non-null value.\r\n *\r\n * @returns Whether the snapshot contains a non-null value, or is empty.\r\n */\r\n DataSnapshot.prototype.exists = function () {\r\n validateArgCount('DataSnapshot.exists', 0, 0, arguments.length);\r\n return this._delegate.exists();\r\n };\r\n /**\r\n * Returns a DataSnapshot of the specified child node's contents.\r\n *\r\n * @param path - Path to a child.\r\n * @returns DataSnapshot for child node.\r\n */\r\n DataSnapshot.prototype.child = function (path) {\r\n validateArgCount('DataSnapshot.child', 0, 1, arguments.length);\r\n // Ensure the childPath is a string (can be a number)\r\n path = String(path);\r\n validatePathString('DataSnapshot.child', 'path', path, false);\r\n return new DataSnapshot(this._database, this._delegate.child(path));\r\n };\r\n /**\r\n * Returns whether the snapshot contains a child at the specified path.\r\n *\r\n * @param path - Path to a child.\r\n * @returns Whether the child exists.\r\n */\r\n DataSnapshot.prototype.hasChild = function (path) {\r\n validateArgCount('DataSnapshot.hasChild', 1, 1, arguments.length);\r\n validatePathString('DataSnapshot.hasChild', 'path', path, false);\r\n return this._delegate.hasChild(path);\r\n };\r\n /**\r\n * Returns the priority of the object, or null if no priority was set.\r\n *\r\n * @returns The priority.\r\n */\r\n DataSnapshot.prototype.getPriority = function () {\r\n validateArgCount('DataSnapshot.getPriority', 0, 0, arguments.length);\r\n return this._delegate.priority;\r\n };\r\n /**\r\n * Iterates through child nodes and calls the specified action for each one.\r\n *\r\n * @param action - Callback function to be called\r\n * for each child.\r\n * @returns True if forEach was canceled by action returning true for\r\n * one of the child nodes.\r\n */\r\n DataSnapshot.prototype.forEach = function (action) {\r\n var _this = this;\r\n validateArgCount('DataSnapshot.forEach', 1, 1, arguments.length);\r\n validateCallback('DataSnapshot.forEach', 'action', action, false);\r\n return this._delegate.forEach(function (expDataSnapshot) {\r\n return action(new DataSnapshot(_this._database, expDataSnapshot));\r\n });\r\n };\r\n /**\r\n * Returns whether this DataSnapshot has children.\r\n * @returns True if the DataSnapshot contains 1 or more child nodes.\r\n */\r\n DataSnapshot.prototype.hasChildren = function () {\r\n validateArgCount('DataSnapshot.hasChildren', 0, 0, arguments.length);\r\n return this._delegate.hasChildren();\r\n };\r\n Object.defineProperty(DataSnapshot.prototype, \"key\", {\r\n get: function () {\r\n return this._delegate.key;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Returns the number of children for this DataSnapshot.\r\n * @returns The number of children that this DataSnapshot contains.\r\n */\r\n DataSnapshot.prototype.numChildren = function () {\r\n validateArgCount('DataSnapshot.numChildren', 0, 0, arguments.length);\r\n return this._delegate.size;\r\n };\r\n /**\r\n * @returns The Firebase reference for the location this snapshot's data came\r\n * from.\r\n */\r\n DataSnapshot.prototype.getRef = function () {\r\n validateArgCount('DataSnapshot.ref', 0, 0, arguments.length);\r\n return new Reference(this._database, this._delegate.ref);\r\n };\r\n Object.defineProperty(DataSnapshot.prototype, \"ref\", {\r\n get: function () {\r\n return this.getRef();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return DataSnapshot;\r\n}());\r\n/**\r\n * A Query represents a filter to be applied to a firebase location. This object purely represents the\r\n * query expression (and exposes our public API to build the query). The actual query logic is in ViewBase.js.\r\n *\r\n * Since every Firebase reference is a query, Firebase inherits from this object.\r\n */\r\nvar Query = /** @class */ (function () {\r\n function Query(database, _delegate) {\r\n this.database = database;\r\n this._delegate = _delegate;\r\n }\r\n Query.prototype.on = function (eventType, callback, cancelCallbackOrContext, context) {\r\n var _this = this;\r\n var _a;\r\n validateArgCount('Query.on', 2, 4, arguments.length);\r\n validateCallback('Query.on', 'callback', callback, false);\r\n var ret = Query.getCancelAndContextArgs_('Query.on', cancelCallbackOrContext, context);\r\n var valueCallback = function (expSnapshot, previousChildName) {\r\n callback.call(ret.context, new DataSnapshot(_this.database, expSnapshot), previousChildName);\r\n };\r\n valueCallback.userCallback = callback;\r\n valueCallback.context = ret.context;\r\n var cancelCallback = (_a = ret.cancel) === null || _a === void 0 ? void 0 : _a.bind(ret.context);\r\n switch (eventType) {\r\n case 'value':\r\n onValue(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n case 'child_added':\r\n onChildAdded(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n case 'child_removed':\r\n onChildRemoved(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n case 'child_changed':\r\n onChildChanged(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n case 'child_moved':\r\n onChildMoved(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n default:\r\n throw new Error(errorPrefix('Query.on', 'eventType') +\r\n 'must be a valid event type = \"value\", \"child_added\", \"child_removed\", ' +\r\n '\"child_changed\", or \"child_moved\".');\r\n }\r\n };\r\n Query.prototype.off = function (eventType, callback, context) {\r\n validateArgCount('Query.off', 0, 3, arguments.length);\r\n validateEventType('Query.off', eventType, true);\r\n validateCallback('Query.off', 'callback', callback, true);\r\n validateContextObject('Query.off', 'context', context, true);\r\n if (callback) {\r\n var valueCallback = function () { };\r\n valueCallback.userCallback = callback;\r\n valueCallback.context = context;\r\n off(this._delegate, eventType, valueCallback);\r\n }\r\n else {\r\n off(this._delegate, eventType);\r\n }\r\n };\r\n /**\r\n * Get the server-value for this query, or return a cached value if not connected.\r\n */\r\n Query.prototype.get = function () {\r\n var _this = this;\r\n return get(this._delegate).then(function (expSnapshot) {\r\n return new DataSnapshot(_this.database, expSnapshot);\r\n });\r\n };\r\n /**\r\n * Attaches a listener, waits for the first event, and then removes the listener\r\n */\r\n Query.prototype.once = function (eventType, callback, failureCallbackOrContext, context) {\r\n var _this = this;\r\n validateArgCount('Query.once', 1, 4, arguments.length);\r\n validateCallback('Query.once', 'callback', callback, true);\r\n var ret = Query.getCancelAndContextArgs_('Query.once', failureCallbackOrContext, context);\r\n var deferred = new Deferred();\r\n var valueCallback = function (expSnapshot, previousChildName) {\r\n var result = new DataSnapshot(_this.database, expSnapshot);\r\n if (callback) {\r\n callback.call(ret.context, result, previousChildName);\r\n }\r\n deferred.resolve(result);\r\n };\r\n valueCallback.userCallback = callback;\r\n valueCallback.context = ret.context;\r\n var cancelCallback = function (error) {\r\n if (ret.cancel) {\r\n ret.cancel.call(ret.context, error);\r\n }\r\n deferred.reject(error);\r\n };\r\n switch (eventType) {\r\n case 'value':\r\n onValue(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n case 'child_added':\r\n onChildAdded(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n case 'child_removed':\r\n onChildRemoved(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n case 'child_changed':\r\n onChildChanged(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n case 'child_moved':\r\n onChildMoved(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n default:\r\n throw new Error(errorPrefix('Query.once', 'eventType') +\r\n 'must be a valid event type = \"value\", \"child_added\", \"child_removed\", ' +\r\n '\"child_changed\", or \"child_moved\".');\r\n }\r\n return deferred.promise;\r\n };\r\n /**\r\n * Set a limit and anchor it to the start of the window.\r\n */\r\n Query.prototype.limitToFirst = function (limit) {\r\n validateArgCount('Query.limitToFirst', 1, 1, arguments.length);\r\n return new Query(this.database, query(this._delegate, limitToFirst(limit)));\r\n };\r\n /**\r\n * Set a limit and anchor it to the end of the window.\r\n */\r\n Query.prototype.limitToLast = function (limit) {\r\n validateArgCount('Query.limitToLast', 1, 1, arguments.length);\r\n return new Query(this.database, query(this._delegate, limitToLast(limit)));\r\n };\r\n /**\r\n * Given a child path, return a new query ordered by the specified grandchild path.\r\n */\r\n Query.prototype.orderByChild = function (path) {\r\n validateArgCount('Query.orderByChild', 1, 1, arguments.length);\r\n return new Query(this.database, query(this._delegate, orderByChild(path)));\r\n };\r\n /**\r\n * Return a new query ordered by the KeyIndex\r\n */\r\n Query.prototype.orderByKey = function () {\r\n validateArgCount('Query.orderByKey', 0, 0, arguments.length);\r\n return new Query(this.database, query(this._delegate, orderByKey()));\r\n };\r\n /**\r\n * Return a new query ordered by the PriorityIndex\r\n */\r\n Query.prototype.orderByPriority = function () {\r\n validateArgCount('Query.orderByPriority', 0, 0, arguments.length);\r\n return new Query(this.database, query(this._delegate, orderByPriority()));\r\n };\r\n /**\r\n * Return a new query ordered by the ValueIndex\r\n */\r\n Query.prototype.orderByValue = function () {\r\n validateArgCount('Query.orderByValue', 0, 0, arguments.length);\r\n return new Query(this.database, query(this._delegate, orderByValue()));\r\n };\r\n Query.prototype.startAt = function (value, name) {\r\n if (value === void 0) { value = null; }\r\n validateArgCount('Query.startAt', 0, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, startAt(value, name)));\r\n };\r\n Query.prototype.startAfter = function (value, name) {\r\n if (value === void 0) { value = null; }\r\n validateArgCount('Query.startAfter', 0, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, startAfter(value, name)));\r\n };\r\n Query.prototype.endAt = function (value, name) {\r\n if (value === void 0) { value = null; }\r\n validateArgCount('Query.endAt', 0, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, endAt(value, name)));\r\n };\r\n Query.prototype.endBefore = function (value, name) {\r\n if (value === void 0) { value = null; }\r\n validateArgCount('Query.endBefore', 0, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, endBefore(value, name)));\r\n };\r\n /**\r\n * Load the selection of children with exactly the specified value, and, optionally,\r\n * the specified name.\r\n */\r\n Query.prototype.equalTo = function (value, name) {\r\n validateArgCount('Query.equalTo', 1, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, equalTo(value, name)));\r\n };\r\n /**\r\n * @returns URL for this location.\r\n */\r\n Query.prototype.toString = function () {\r\n validateArgCount('Query.toString', 0, 0, arguments.length);\r\n return this._delegate.toString();\r\n };\r\n // Do not create public documentation. This is intended to make JSON serialization work but is otherwise unnecessary\r\n // for end-users.\r\n Query.prototype.toJSON = function () {\r\n // An optional spacer argument is unnecessary for a string.\r\n validateArgCount('Query.toJSON', 0, 1, arguments.length);\r\n return this._delegate.toJSON();\r\n };\r\n /**\r\n * Return true if this query and the provided query are equivalent; otherwise, return false.\r\n */\r\n Query.prototype.isEqual = function (other) {\r\n validateArgCount('Query.isEqual', 1, 1, arguments.length);\r\n if (!(other instanceof Query)) {\r\n var error = 'Query.isEqual failed: First argument must be an instance of firebase.database.Query.';\r\n throw new Error(error);\r\n }\r\n return this._delegate.isEqual(other._delegate);\r\n };\r\n /**\r\n * Helper used by .on and .once to extract the context and or cancel arguments.\r\n * @param fnName - The function name (on or once)\r\n *\r\n */\r\n Query.getCancelAndContextArgs_ = function (fnName, cancelOrContext, context) {\r\n var ret = { cancel: undefined, context: undefined };\r\n if (cancelOrContext && context) {\r\n ret.cancel = cancelOrContext;\r\n validateCallback(fnName, 'cancel', ret.cancel, true);\r\n ret.context = context;\r\n validateContextObject(fnName, 'context', ret.context, true);\r\n }\r\n else if (cancelOrContext) {\r\n // we have either a cancel callback or a context.\r\n if (typeof cancelOrContext === 'object' && cancelOrContext !== null) {\r\n // it's a context!\r\n ret.context = cancelOrContext;\r\n }\r\n else if (typeof cancelOrContext === 'function') {\r\n ret.cancel = cancelOrContext;\r\n }\r\n else {\r\n throw new Error(errorPrefix(fnName, 'cancelOrContext') +\r\n ' must either be a cancel callback or a context object.');\r\n }\r\n }\r\n return ret;\r\n };\r\n Object.defineProperty(Query.prototype, \"ref\", {\r\n get: function () {\r\n return new Reference(this.database, new ReferenceImpl(this._delegate._repo, this._delegate._path));\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Query;\r\n}());\r\nvar Reference = /** @class */ (function (_super) {\r\n __extends(Reference, _super);\r\n /**\r\n * Call options:\r\n * new Reference(Repo, Path) or\r\n * new Reference(url: string, string|RepoManager)\r\n *\r\n * Externally - this is the firebase.database.Reference type.\r\n */\r\n function Reference(database, _delegate) {\r\n var _this = _super.call(this, database, new QueryImpl(_delegate._repo, _delegate._path, new QueryParams(), false)) || this;\r\n _this.database = database;\r\n _this._delegate = _delegate;\r\n return _this;\r\n }\r\n /** @returns {?string} */\r\n Reference.prototype.getKey = function () {\r\n validateArgCount('Reference.key', 0, 0, arguments.length);\r\n return this._delegate.key;\r\n };\r\n Reference.prototype.child = function (pathString) {\r\n validateArgCount('Reference.child', 1, 1, arguments.length);\r\n if (typeof pathString === 'number') {\r\n pathString = String(pathString);\r\n }\r\n return new Reference(this.database, child(this._delegate, pathString));\r\n };\r\n /** @returns {?Reference} */\r\n Reference.prototype.getParent = function () {\r\n validateArgCount('Reference.parent', 0, 0, arguments.length);\r\n var parent = this._delegate.parent;\r\n return parent ? new Reference(this.database, parent) : null;\r\n };\r\n /** @returns {!Reference} */\r\n Reference.prototype.getRoot = function () {\r\n validateArgCount('Reference.root', 0, 0, arguments.length);\r\n return new Reference(this.database, this._delegate.root);\r\n };\r\n Reference.prototype.set = function (newVal, onComplete) {\r\n validateArgCount('Reference.set', 1, 2, arguments.length);\r\n validateCallback('Reference.set', 'onComplete', onComplete, true);\r\n var result = set(this._delegate, newVal);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.update = function (values, onComplete) {\r\n validateArgCount('Reference.update', 1, 2, arguments.length);\r\n if (Array.isArray(values)) {\r\n var newObjectToMerge = {};\r\n for (var i = 0; i < values.length; ++i) {\r\n newObjectToMerge['' + i] = values[i];\r\n }\r\n values = newObjectToMerge;\r\n warn('Passing an Array to Firebase.update() is deprecated. ' +\r\n 'Use set() if you want to overwrite the existing data, or ' +\r\n 'an Object with integer keys if you really do want to ' +\r\n 'only update some of the children.');\r\n }\r\n validateWritablePath('Reference.update', this._delegate._path);\r\n validateCallback('Reference.update', 'onComplete', onComplete, true);\r\n var result = update(this._delegate, values);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.setWithPriority = function (newVal, newPriority, onComplete) {\r\n validateArgCount('Reference.setWithPriority', 2, 3, arguments.length);\r\n validateCallback('Reference.setWithPriority', 'onComplete', onComplete, true);\r\n var result = setWithPriority(this._delegate, newVal, newPriority);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.remove = function (onComplete) {\r\n validateArgCount('Reference.remove', 0, 1, arguments.length);\r\n validateCallback('Reference.remove', 'onComplete', onComplete, true);\r\n var result = remove(this._delegate);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.transaction = function (transactionUpdate, onComplete, applyLocally) {\r\n var _this = this;\r\n validateArgCount('Reference.transaction', 1, 3, arguments.length);\r\n validateCallback('Reference.transaction', 'transactionUpdate', transactionUpdate, false);\r\n validateCallback('Reference.transaction', 'onComplete', onComplete, true);\r\n validateBoolean('Reference.transaction', 'applyLocally', applyLocally, true);\r\n var result = runTransaction(this._delegate, transactionUpdate, {\r\n applyLocally: applyLocally\r\n }).then(function (transactionResult) {\r\n return new TransactionResult(transactionResult.committed, new DataSnapshot(_this.database, transactionResult.snapshot));\r\n });\r\n if (onComplete) {\r\n result.then(function (transactionResult) {\r\n return onComplete(null, transactionResult.committed, transactionResult.snapshot);\r\n }, function (error) { return onComplete(error, false, null); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.setPriority = function (priority, onComplete) {\r\n validateArgCount('Reference.setPriority', 1, 2, arguments.length);\r\n validateCallback('Reference.setPriority', 'onComplete', onComplete, true);\r\n var result = setPriority(this._delegate, priority);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.push = function (value, onComplete) {\r\n var _this = this;\r\n validateArgCount('Reference.push', 0, 2, arguments.length);\r\n validateCallback('Reference.push', 'onComplete', onComplete, true);\r\n var expPromise = push(this._delegate, value);\r\n var promise = expPromise.then(function (expRef) { return new Reference(_this.database, expRef); });\r\n if (onComplete) {\r\n promise.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n var result = new Reference(this.database, expPromise);\r\n result.then = promise.then.bind(promise);\r\n result.catch = promise.catch.bind(promise, undefined);\r\n return result;\r\n };\r\n Reference.prototype.onDisconnect = function () {\r\n validateWritablePath('Reference.onDisconnect', this._delegate._path);\r\n return new OnDisconnect(new OnDisconnect$1(this._delegate._repo, this._delegate._path));\r\n };\r\n Object.defineProperty(Reference.prototype, \"key\", {\r\n get: function () {\r\n return this.getKey();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Reference.prototype, \"parent\", {\r\n get: function () {\r\n return this.getParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Reference.prototype, \"root\", {\r\n get: function () {\r\n return this.getRoot();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Reference;\r\n}(Query));\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Class representing a firebase database.\r\n */\r\nvar Database = /** @class */ (function () {\r\n /**\r\n * The constructor should not be called by users of our public API.\r\n */\r\n function Database(_delegate, app) {\r\n var _this = this;\r\n this._delegate = _delegate;\r\n this.app = app;\r\n this.INTERNAL = {\r\n delete: function () { return _this._delegate._delete(); }\r\n };\r\n }\r\n /**\r\n * Modify this instance to communicate with the Realtime Database emulator.\r\n *\r\n *
Note: This method must be called before performing any other operation.\r\n *\r\n * @param host - the emulator host (ex: localhost)\r\n * @param port - the emulator port (ex: 8080)\r\n * @param options.mockUserToken - the mock auth token to use for unit testing Security Rules\r\n */\r\n Database.prototype.useEmulator = function (host, port, options) {\r\n if (options === void 0) { options = {}; }\r\n connectDatabaseEmulator(this._delegate, host, port, options);\r\n };\r\n Database.prototype.ref = function (path) {\r\n validateArgCount('database.ref', 0, 1, arguments.length);\r\n if (path instanceof Reference) {\r\n var childRef = refFromURL(this._delegate, path.toString());\r\n return new Reference(this, childRef);\r\n }\r\n else {\r\n var childRef = ref(this._delegate, path);\r\n return new Reference(this, childRef);\r\n }\r\n };\r\n /**\r\n * Returns a reference to the root or the path specified in url.\r\n * We throw a exception if the url is not in the same domain as the\r\n * current repo.\r\n * @returns Firebase reference.\r\n */\r\n Database.prototype.refFromURL = function (url) {\r\n var apiName = 'database.refFromURL';\r\n validateArgCount(apiName, 1, 1, arguments.length);\r\n var childRef = refFromURL(this._delegate, url);\r\n return new Reference(this, childRef);\r\n };\r\n // Make individual repo go offline.\r\n Database.prototype.goOffline = function () {\r\n validateArgCount('database.goOffline', 0, 0, arguments.length);\r\n return goOffline(this._delegate);\r\n };\r\n Database.prototype.goOnline = function () {\r\n validateArgCount('database.goOnline', 0, 0, arguments.length);\r\n return goOnline(this._delegate);\r\n };\r\n Database.ServerValue = {\r\n TIMESTAMP: serverTimestamp(),\r\n increment: function (delta) { return increment(delta); }\r\n };\r\n return Database;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * INTERNAL methods for internal-use only (tests, etc.).\r\n *\r\n * Customers shouldn't use these or else should be aware that they could break at any time.\r\n */\r\nvar forceLongPolling = function () {\r\n WebSocketConnection.forceDisallow();\r\n BrowserPollConnection.forceAllow();\r\n};\r\nvar forceWebSockets = function () {\r\n BrowserPollConnection.forceDisallow();\r\n};\r\n/* Used by App Manager */\r\nvar isWebSocketsAvailable = function () {\r\n return WebSocketConnection['isAvailable']();\r\n};\r\nvar setSecurityDebugCallback = function (ref, callback) {\r\n var connection = ref._delegate._repo.persistentConnection_;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n connection.securityDebugCallback_ = callback;\r\n};\r\nvar stats = function (ref, showDelta) {\r\n repoStats(ref._delegate._repo, showDelta);\r\n};\r\nvar statsIncrementCounter = function (ref, metric) {\r\n repoStatsIncrementCounter(ref._delegate._repo, metric);\r\n};\r\nvar dataUpdateCount = function (ref) {\r\n return ref._delegate._repo.dataUpdateCount;\r\n};\r\nvar interceptServerData = function (ref, callback) {\r\n return repoInterceptServerData(ref._delegate._repo, callback);\r\n};\r\n/**\r\n * Used by console to create a database based on the app,\r\n * passed database URL and a custom auth implementation.\r\n *\r\n * @param app - A valid FirebaseApp-like object\r\n * @param url - A valid Firebase databaseURL\r\n * @param version - custom version e.g. firebase-admin version\r\n * @param customAuthImpl - custom auth implementation\r\n */\r\nfunction initStandalone(_a) {\r\n var app = _a.app, url = _a.url, version = _a.version, customAuthImpl = _a.customAuthImpl, namespace = _a.namespace, _b = _a.nodeAdmin, nodeAdmin = _b === void 0 ? false : _b;\r\n setSDKVersion(version);\r\n /**\r\n * ComponentContainer('database-standalone') is just a placeholder that doesn't perform\r\n * any actual function.\r\n */\r\n var authProvider = new Provider('auth-internal', new ComponentContainer('database-standalone'));\r\n authProvider.setComponent(new Component('auth-internal', function () { return customAuthImpl; }, \"PRIVATE\" /* PRIVATE */));\r\n return {\r\n instance: new Database(repoManagerDatabaseFromApp(app, authProvider, \r\n /* appCheckProvider= */ undefined, url, nodeAdmin), app),\r\n namespace: namespace\r\n };\r\n}\n\nvar INTERNAL = /*#__PURE__*/Object.freeze({\n __proto__: null,\n forceLongPolling: forceLongPolling,\n forceWebSockets: forceWebSockets,\n isWebSocketsAvailable: isWebSocketsAvailable,\n setSecurityDebugCallback: setSecurityDebugCallback,\n stats: stats,\n statsIncrementCounter: statsIncrementCounter,\n dataUpdateCount: dataUpdateCount,\n interceptServerData: interceptServerData,\n initStandalone: initStandalone\n});\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar DataConnection = PersistentConnection;\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nPersistentConnection.prototype.simpleListen = function (pathString, onComplete) {\r\n this.sendRequest('q', { p: pathString }, onComplete);\r\n};\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nPersistentConnection.prototype.echo = function (data, onEcho) {\r\n this.sendRequest('echo', { d: data }, onEcho);\r\n};\r\n// RealTimeConnection properties that we use in tests.\r\nvar RealTimeConnection = Connection;\r\nvar hijackHash = function (newHash) {\r\n var oldPut = PersistentConnection.prototype.put;\r\n PersistentConnection.prototype.put = function (pathString, data, onComplete, hash) {\r\n if (hash !== undefined) {\r\n hash = newHash();\r\n }\r\n oldPut.call(this, pathString, data, onComplete, hash);\r\n };\r\n return function () {\r\n PersistentConnection.prototype.put = oldPut;\r\n };\r\n};\r\nvar ConnectionTarget = RepoInfo;\r\nvar queryIdentifier = function (query) {\r\n return query._delegate._queryIdentifier;\r\n};\r\n/**\r\n * Forces the RepoManager to create Repos that use ReadonlyRestClient instead of PersistentConnection.\r\n */\r\nvar forceRestClient = function (forceRestClient) {\r\n repoManagerForceRestClient(forceRestClient);\r\n};\n\nvar TEST_ACCESS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DataConnection: DataConnection,\n RealTimeConnection: RealTimeConnection,\n hijackHash: hijackHash,\n ConnectionTarget: ConnectionTarget,\n queryIdentifier: queryIdentifier,\n forceRestClient: forceRestClient\n});\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar ServerValue = Database.ServerValue;\r\nfunction registerDatabase(instance) {\r\n // set SDK_VERSION\r\n setSDKVersion(instance.SDK_VERSION);\r\n // Register the Database Service with the 'firebase' namespace.\r\n var namespace = instance.INTERNAL.registerComponent(new Component('database', function (container, _a) {\r\n var url = _a.instanceIdentifier;\r\n /* Dependencies */\r\n // getImmediate for FirebaseApp will always succeed\r\n var app = container.getProvider('app').getImmediate();\r\n var authProvider = container.getProvider('auth-internal');\r\n var appCheckProvider = container.getProvider('app-check-internal');\r\n return new Database(repoManagerDatabaseFromApp(app, authProvider, appCheckProvider, url), app);\r\n }, \"PUBLIC\" /* PUBLIC */)\r\n .setServiceProps(\r\n // firebase.database namespace properties\r\n {\r\n Reference: Reference,\r\n Query: Query,\r\n Database: Database,\r\n DataSnapshot: DataSnapshot,\r\n enableLogging: enableLogging,\r\n INTERNAL: INTERNAL,\r\n ServerValue: ServerValue,\r\n TEST_ACCESS: TEST_ACCESS\r\n })\r\n .setMultipleInstances(true));\r\n instance.registerVersion(name, version);\r\n if (isNodeSdk()) {\r\n module.exports = namespace;\r\n }\r\n}\r\nregisterDatabase(firebase);\n\nexport { DataSnapshot, Database, OnDisconnect, Query, Reference, ServerValue, enableLogging, registerDatabase };\n//# sourceMappingURL=index.esm.js.map\n"],"names":["SDK_VERSION","setSDKVersion","version","DOMStorageWrapper","domStorage_","this","prefix_","prototype","set","key","value","removeItem","prefixedName_","setItem","stringify","get","storedVal","getItem","jsonEval","remove","name","toString","MemoryStorage","cache_","isInMemoryStorage","contains","createStoragefor","domStorageName","window","domStorage","e","PersistentStorage","SessionStorage","logClient","Logger","LUIDGenerator","id","sha1","str","utf8Bytes","stringToByteArray","Sha1","update","sha1Bytes","digest","base64","buildLogMessage_","varArgs","_i","arguments","length","message","i","arg","Array","isArray","apply","logger","firstLog_","enableLogging","logger_","persistent","assert","logLevel","LogLevel","log","bind","logWrapper","prefix","__spreadArray","__read","error","fatal","Error","warn","isInvalidJSONNumber","data","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","MIN_NAME","MAX_NAME","nameCompare","a","b","aAsInt","tryParseInt","bAsInt","stringCompare","requireKey","obj","ObjectToUniqueKey","keys","k","push","sort","splitStringBySize","segsize","len","dataSegs","c","substring","each","fn","hasOwnProperty","doubleToIEEE754String","v","s","f","ln","bias","Infinity","Math","abs","pow","min","floor","LN2","round","bits","reverse","join","hexByteString","hexByte","parseInt","substr","toLowerCase","INTEGER_REGEXP_","RegExp","INTEGER_32_MIN","INTEGER_32_MAX","test","intVal","exceptionGuard","setTimeout","stack","setTimeoutNonBlocking","time","timeout","AppCheckTokenProvider","appName_","appCheckProvider","_this","appCheck","getImmediate","optional","then","getToken","forceRefresh","Promise","resolve","reject","addTokenChangeListener","listener","_a","addTokenListener","notifyForInvalidToken","FirebaseAuthTokenProvider","firebaseOptions_","authProvider_","auth_","onInit","auth","catch","code","addAuthTokenListener","removeTokenChangeListener","removeAuthTokenListener","errorMessage","EmulatorTokenProvider","accessToken","OWNER","PROTOCOL_VERSION","FORGE_DOMAIN_RE","WEBSOCKET","LONG_POLLING","RepoInfo","host","secure","namespace","webSocketOnly","nodeAdmin","persistenceKey","includeNamespaceInQueryParams","_host","_domain","indexOf","internalHost","isCacheableHost","isCustomHost","Object","defineProperty","newHost","enumerable","configurable","toURLString","protocol","query","repoInfoConnectionURL","repoInfo","type","params","connURL","repoInfoNeedsQueryParam","pairs","StatsCollection","counters_","incrementCounter","amount","deepCopy","collections","reporters","statsManagerGetCollection","hashString","PacketReceiver","onMessage_","pendingResponses","currentResponseNum","closeAfterResponse","onClose","closeAfter","responseNum","callback","handleResponse","requestNum","_loop_1","toProcess","this_1","_loop_2","FIREBASE_LONGPOLL_START_PARAM","FIREBASE_LONGPOLL_CLOSE_COMMAND","BrowserPollConnection","connId","applicationId","appCheckToken","authToken","transportSessionId","lastSessionId","bytesSent","bytesReceived","everConnected_","log_","stats_","urlFn","open","onMessage","onDisconnect","curSegmentNum","onDisconnect_","myPacketOrderer","isClosed_","connectTimeoutTimer_","onClosed_","isNodeSdk","document","readyState","called_1","wrappedFn_1","body","addEventListener","attachEvent","executeWhenDOMReady","scriptTagHolder","FirebaseIFrameScriptHolder","args","command","arg1","arg2","incrementIncomingBytes_","clearTimeout","password","sendNewPolls","pN","urlParams","random","uniqueCallbackIdentifier","location","hostname","connectURL","addTag","start","startLongPoll","addDisconnectPingFrame","forceAllow","forceAllow_","forceDisallow","forceDisallow_","isAvailable","createElement","href","Windows","UI","markConnectionHealthy","shutdown_","close","myDisconnFrame","removeChild","send","dataStr","base64data","base64Encode","MAX_URL_DATA_SIZE","enqueueSegment","pw","src","style","display","appendChild","commandCB","onMessageCB","outstandingRequests","Set","pendingSegs","currentSerial","myIFrame","createIFrame_","script","domain","iframeContents","doc","write","iframe","contentWindow","contentDocument","alive","innerHTML","myID","myPW","newRequest_","size","theURL","curDataString","d","theSeg","shift","seg","ts","addLongPollTag_","segnum","totalsegs","url","serial","add","doNewRequest","delete","keepaliveTimeout","loadCB","doNodeLongPoll","newScript_1","async","onload","onreadystatechange","rstate","parentNode","onerror","WebSocketImpl","MozWebSocket","WebSocket","WebSocketConnection","keepaliveTimer","frames","totalFrames","connectionURL_","device","options","headers","process","platform","env","proxy","origin","mySock","onopen","onclose","onmessage","m","handleIncomingFrame","isOldAndroid","navigator","userAgent","oldAndroidMatch","match","parseFloat","previouslyFailed","appendFrame_","fullMess","jsonMess","handleNewFrameCount_","frameCount","extractFrameCount_","isNaN","mess","resetKeepAlive","remainingData","sendString_","String","clearInterval","setInterval","responsesRequiredToBeHealthy","healthyTimeout","TransportManager","initTransports_","e_1","isWebSocketsAvailable","isSkipPollConnection","transports_","transports","_b","__values","ALL_TRANSPORTS","_c","next","done","transport","e_1_1","return","call","initialTransport","upgradeTransport","Connection","repoInfo_","applicationId_","appCheckToken_","authToken_","onReady_","onKill_","connectionCount","pendingDataMessages","state_","transportManager_","start_","conn","conn_","nextTransportId_","primaryResponsesRequired_","onMessageReceived","connReceiver_","onConnectionLost","disconnReceiver_","tx_","rx_","secondaryConn_","isHealthy_","healthyTimeoutMS","healthyTimeout_","everConnected","onConnectionLost_","onSecondaryConnectionLost_","onPrimaryMessageReceived_","onSecondaryMessageReceived_","sendRequest","dataMsg","msg","t","sendData_","tryCleanupConnection","onSecondaryControl_","controlData","cmd","upgradeIfSecondaryHealthy_","secondaryResponsesRequired_","parsedData","layer","proceedWithUpgrade_","onControl_","onDataMessage_","onPrimaryResponse_","payload","onHandshake_","onConnectionShutdown_","onReset_","sendPingOnPrimaryIfNecessary_","handshake","timestamp","h","sessionId","onConnectionEstablished_","tryStartUpgrade_","startUpgrade_","closeConnections_","reason","ServerActions","put","pathString","onComplete","hash","merge","refreshAuthToken","token","refreshAppCheckToken","onDisconnectPut","onDisconnectMerge","onDisconnectCancel","reportStats","stats","EventEmitter","allowedEvents_","listeners_","trigger","eventType","listeners","context","on","validateEventType_","eventData","getInitialEvent","off","splice","find","et","OnlineMonitor","_super","online_","isMobileCordova","__extends","getInstance","currentlyOnline","Path","pathOrString","pieceNum","pieces_","split","copyTo","pieceNum_","newEmptyPath","pathGetFront","path","pathGetLength","pathPopFront","pathGetBack","pathSlice","begin","slice","pathParent","pieces","pathChild","childPathObj","childPieces","pathIsEmpty","newRelativePath","outerPath","innerPath","outer","inner","pathCompare","left","right","leftKeys","rightKeys","cmp","pathEquals","other","j","pathContains","ValidationPath","errorPrefix_","parts_","byteLength_","max","stringLength","validationPathCheckValid","validationPath","validationPathToErrorString","__EMPTY_NODE","MAX_NODE$2","VisibilityMonitor","hidden","visibilityChange","visible_","visible","RECONNECT_MIN_DELAY","PersistentConnection","onDataUpdate_","onConnectStatus_","onServerInfoUpdate_","authTokenProvider_","appCheckTokenProvider_","authOverride_","nextPersistentConnectionId_","interruptReasons_","listens","Map","outstandingPuts_","outstandingGets_","outstandingPutCount_","outstandingGetCount_","onDisconnectRequestQueue_","connected_","reconnectDelay_","maxReconnectDelay_","securityDebugCallback_","establishConnectionTimer_","requestCBHash_","requestNumber_","realtime_","forceTokenRefresh_","invalidAuthTokenCount_","invalidAppCheckTokenCount_","firstConnection_","lastConnectionAttemptTime_","lastConnectionEstablishedTime_","onVisible_","onOnline_","action","onResponse","curReqNum","r","initConnection_","deferred","Deferred","request","p","_path","q","_queryObject","outstandingGet","index","undefined","sendGet_","promise","listen","currentHashFn","tag","queryId","_queryIdentifier","has","_queryParams","isDefault","loadsAllData","listenSpec","hashFn","sendListen_","req","status","warnOnListenWarnings_","removeListen_","warnings","safeGet","indexSpec","getIndex","indexPath","tryAuth","reduceReconnectDelayIfAdminCredential_","credential","isAdmin","tryAppCheck","token_1","authMethod","isValidFormat","requestData","cred","res","onAuthRevoked_","onAppCheckRevoked_","unlisten","sendUnlisten_","queryObj","sendOnDisconnect_","response","putInternal","sendPut_","queued","result","errorReason","reqNum","onDataPush_","onListenRevoked_","onSecurityDebugPacket_","Date","getTime","handleTimestamp_","sendConnectStats_","restoreState_","scheduleConnect_","establishConnection_","online","onRealtimeDisconnect_","cancelSentTransactions_","shouldReconnect_","timeSinceLastConnectAttempt","reconnectDelay","__awaiter","onDataMessage","onReady","onDisconnect_1","canceled_1","connection_1","closeFn","sendRequestFn","error_1","__generator","label","nextConnectionId_","trys","all","sent","interrupt","resume","isEmpty","delta","serverTimeOffset","map","normalizedPathString","statusCode","explanation","console","replace","e_2","values","_d","queries","_e","_f","e_2_1","clientName","isReactNative","NamedNode","node","Wrap","Index","getCompare","compare","indexedValueChanged","oldNode","newNode","oldWrapped","newWrapped","minPost","MIN","KeyIndex","val","isDefinedOn","assertionError","maxPost","makePost","indexValue","KEY_INDEX","SortedMapIterator","startKey","comparator","isReverse_","resultGenerator_","nodeStack_","getNext","pop","hasNext","peek","LLRBNode","color","RED","SortedMap","EMPTY_NODE","copy","count","inorderTraversal","reverseTraversal","min_","minKey","maxKey","insert","n","fixUp_","removeMin_","isRed_","moveRedLeft_","smallest","rotateRight_","moveRedRight_","rotateLeft_","colorFlip_","nl","nr","checkMaxDepth_","blackDepth","check_","BLACK","LLRBEmptyNode","comparator_","root_","getPredecessorKey","rightParent","getIterator","resultGenerator","getIteratorFrom","getReverseIteratorFrom","getReverseIterator","NAME_ONLY_COMPARATOR","NAME_COMPARATOR","__childrenNodeConstructor","nodeFromJSON$1","MAX_NODE$1","priorityHashText","priority","validatePriorityNode","priorityNode","isLeafNode","getPriority","LeafNode","value_","priorityNode_","lazyHash_","updatePriority","newPriorityNode","getImmediateChild","childName","getChild","hasChild","getPredecessorChildName","childNode","updateImmediateChild","newChildNode","updateChild","front","numChildren","forEachChild","exportFormat","getValue","toHash","compareTo","compareToLeafNode_","otherLeaf","otherLeafType","thisLeafType","otherIndex","VALUE_TYPE_ORDER","thisIndex","withIndex","isIndexed","equals","_defaultIndexMap","PriorityIndex","aPriority","bPriority","indexCmp","PRIORITY_INDEX","LOG_2","Base12Num","num","current_","mask","bits_","nextBitIsOne","buildChildSet","childList","keyFn","mapSortFn","buildBalancedTree","low","high","namedNode","middle","root","base12","buildPennant","chunkSize","childTree","attachPennant","pennant","isOne","buildFrom12Array","fallbackObject","IndexMap","indexes_","indexSet_","indexKey","sortedMap","hasIndex","indexDefinition","addIndex","existingChildren","newIndex","sawIndexedValue","iter","indexName","newIndexSet","__assign","newIndexes","addToIndexes","indexedChildren","existingSnap","newChildren","removeFromIndexes","ChildrenNode","children_","indexMap_","Default","child","newIndexMap","newPriority","newImmediateChild","numKeys","allIntegerKeys","array","toHash_1","childHash","idx","resolveIndex_","predecessor","getFirstChildName","getFirstChild","getLastChildName","getLastChild","wrappedNode","startPost","iterator","endPost","MAX_NODE","otherChildrenNode","thisIter","otherIter","thisCurrent","otherCurrent","MaxNode","defineProperties","MAX","setMaxNode","nodeFromJSON","json","node_1","childData","children_1","childrenHavePriority_1","childSet","sortedChildSet","setNodeFromJSON","PathIndex","indexPath_","extractChild","snap","aChild","bChild","valueNode","ValueIndex","VALUE_INDEX","PUSH_CHARS","nextPushId","lastPushTime","lastRandChars","now","duplicateTime","timeStampChars","charAt","successor","keyAsInt","i_1","source","sourcePlusOne","repeat","changeValue","snapshotNode","changeChildAdded","changeChildRemoved","changeChildChanged","oldSnap","IndexedFilter","index_","newChild","affectedPath","optChangeAccumulator","oldChild","trackChildChange","updateFullNode","newSnap","filtersNodes","getIndexedFilter","RangedFilter","indexedFilter_","startPost_","getStartPost_","endPost_","getEndPost_","getStartPost","getEndPost","matches","filtered","self","hasStart","startName","getIndexStartName","getIndexStartValue","hasEnd","endName","getIndexEndName","getIndexEndValue","LimitedFilter","rangedFilter_","limit_","getLimit","reverse_","isViewFromLeft","fullLimitUpdateChild_","indexCompare_1","foundStartPost","childKey","childSnap","changeAccumulator","indexCmp_1","oldEventCache","newChildNamedNode","windowBoundary","inRange","oldChildSnap","nextChild","getChildAfterChild","compareNext","newEventCache","QueryParams","limitSet_","startSet_","startNameSet_","startAfterSet_","endSet_","endNameSet_","endBeforeSet_","viewFrom_","indexStartValue_","indexStartName_","indexEndValue_","indexEndName_","hasStartAfter","hasEndBefore","hasLimit","hasAnchoredLimit","queryParamsStartAt","queryParams","newParams","queryParamsEndAt","queryParamsOrderBy","queryParamsToRestQueryStringParameters","orderBy","qs","queryParamsGetQueryObject","viewFrom","ReadonlyRestClient","listens_","getListenId_","listenId","thisListen","queryStringParameters","restRequest_","querystring","xhr","XMLHttpRequest","responseText","SnapshotHolder","rootNode_","getNode","updateSnapshot","newSnapshotNode","newSparseSnapshotTree","children","sparseSnapshotTreeRemember","sparseSnapshotTree","clear","sparseSnapshotTreeForget","tree","sparseSnapshotTreeForEachTree","prefixPath","func","forEach","sparseSnapshotTreeForEachChild","OperationType","StatsListener","collection_","last_","newStats","stat","StatsReporter","collection","server_","statsToReport_","statsListener_","reportStats_","reportedStats","haveStatsToReport","newOperationSourceServerTaggedQuery","fromUser","fromServer","tagged","emptyChildrenSingleton","AckUserWrite","affectedTree","revert","ACK_USER_WRITE","operationForChild","subtree","ListenComplete","LISTEN_COMPLETE","Overwrite","OVERWRITE","Merge","MERGE","CacheNode","node_","fullyInitialized_","filtered_","isFullyInitialized","isFiltered","isCompleteForPath","isCompleteForChild","EventGenerator","query_","eventGeneratorGenerateEventsForType","eventGenerator","events","changes","registrations","eventCache","filteredChanges","filter","change","aWrapped","bWrapped","eventGeneratorCompareChanges","materializedChange","prevName","eventGeneratorMaterializeSingleChange","registration","respondsTo","createEvent","newViewCache","serverCache","viewCacheUpdateEventSnap","viewCache","eventSnap","complete","viewCacheUpdateServerSnap","serverSnap","viewCacheGetCompleteEventSnap","viewCacheGetCompleteServerSnap","ImmutableTree","fromObject","childPath","findRootMostMatchingPathAndValue","relativePath","predicate","childExistingPathAndValue","findRootMostValueAndPath","toSet","setTree","newTree","fold","fold_","pathSoFar","accum","findOnPath","findOnPath_","pathToFollow","foreachOnPath","foreachOnPath_","currentRelativePath","foreach","foreach_","foreachChild","CompoundWrite","writeTree_","empty","compoundWriteAddWrite","compoundWrite","rootmost","rootMostPath","newWriteTree","compoundWriteAddWrites","updates","newWrite","compoundWriteRemoveWrite","compoundWriteHasCompleteWrite","compoundWriteGetCompleteNode","compoundWriteGetCompleteChildren","compoundWriteChildCompoundWrite","shadowingNode","compoundWriteIsEmpty","compoundWriteApply","applySubtreeWrite","writeTree","priorityWrite_1","writeTreeChildWrites","newWriteTreeRef","writeTreeRemoveWrite","writeId","allWrites","findIndex","writeToRemove","removedWriteWasVisible","removedWriteOverlapsWithOtherWrites","currentWrite","writeTreeRecordContainsPath_","visibleWrites","writeTreeLayerTree_","writeTreeDefaultFilter_","lastWriteId","writeTreeResetTree_","writeRecord","writes","treeRoot","writePath","deepNode","writeTreeCalcCompleteEventCache","treePath","completeServerCache","writeIdsToExclude","includeHiddenWrites","subMerge","writeTreeRefCalcCompleteEventCache","writeTreeRef","writeTreeRefCalcCompleteEventChildren","completeServerChildren","completeChildren","topLevelSet","merge_1","writeTreeCalcCompleteEventChildren","writeTreeRefCalcEventCacheAfterServerOverwrite","existingEventSnap","existingServerSnap","childMerge","writeTreeCalcEventCacheAfterServerOverwrite","writeTreeRefShadowingWrite","writeTreeShadowingWrite","writeTreeRefCalcIndexedSlice","completeServerData","toIterate","nodes","writeTreeCalcIndexedSlice","writeTreeRefCalcCompleteChild","existingServerCache","writeTreeCalcCompleteChild","writeTreeRefChild","ChildChangeAccumulator","changeMap","oldChange","oldType","getChanges","from","NO_COMPLETE_CHILD_SOURCE","NoCompleteChildSource_","getCompleteChild","WriteTreeCompleteChildSource","writes_","viewCache_","optCompleteServerCache_","serverNode","viewProcessorApplyOperation","viewProcessor","oldViewCache","operation","writesCache","completeCache","filterServerNode","accumulator","overwrite","viewProcessorApplyUserOverwrite","viewProcessorApplyServerOverwrite","changedChildren","curViewCache","viewProcessorCacheHasChild","viewProcessorApplyUserMerge","viewProcessorApplyServerMerge","ackUserWrite","serverChildren","viewProcessorRevertUserWrite","ackPath","changedChildren_1","changedChildren_2","mergePath","serverCachePath","viewProcessorAckUserWrite","oldServerNode","viewProcessorGenerateEventCacheAfterServerEvent","viewProcessorListenComplete","isLeafOrEmpty","oldCompleteSnap","viewProcessorMaybeAddValueEvent","changePath","oldEventSnap","completeEventChildren","completeNode","oldEventNode","updatedPriority","childChangePath","newEventChild","eventChildUpdate","changedSnap","newServerCache","oldServerSnap","serverFilter","newServerNode","viewProcessorApplyMerge","viewMergeTree","childMergeTree","isUnknownDeepMerge","referenceConstructor$1","View","initialViewCache","eventRegistrations_","indexFilter","processor_","newViewProcessor","initialServerCache","initialEventCache","eventGenerator_","viewGetCompleteServerCache","view","cache","viewIsEmpty","viewRemoveEventRegistration","eventRegistration","cancelError","cancelEvents","path_1","maybeEvent","createCancelEvent","remaining","existing","hasAnyCallback","concat","viewApplyOperation","viewGenerateEventsForChanges_","eventRegistrations","moves","eventGeneratorGenerateEventsForChanges","referenceConstructor","SyncPoint","views","syncPointApplyOperation","syncPoint","optCompleteServerCache","syncPointGetView","serverCacheComplete","eventCacheComplete","syncPointAddEventRegistration","viewAddEventRegistration","initialChanges","viewGetInitialEvents","syncPointRemoveEventRegistration","removed","hadCompleteView","syncPointHasCompleteView","entries","viewQueryId","_repo","syncPointGetQueryViews","e_3","e_3_1","syncPointGetCompleteServerCache","e_4","e_4_1","syncPointViewForQuery","syncPointGetCompleteView","syncPointViewExistsForQuery","e_5","e_5_1","syncTreeNextQueryTag_","SyncTree","listenProvider_","syncPointTree_","pendingWriteTree_","tagToQueryMap","queryToTagMap","syncTreeApplyUserOverwrite","syncTree","newData","writeTreeAddOverwrite","syncTreeApplyOperationToSyncPoints_","syncTreeApplyUserMerge","writeTreeAddMerge","changeTree","syncTreeAckUserWrite","record","writeTreeGetWrite","affectedTree_1","syncTreeApplyServerOverwrite","syncTreeRemoveEventRegistration","maybeSyncPoint","removedAndEvents","removingDefault","covered","parentSyncPoint","newViews","maybeChildSyncPoint","childMap","views_1","_key","childViews","syncTreeCollectDistinctViewsForSubTree_","newQuery","syncTreeCreateListenerForView_","startListening","syncTreeQueryForListening_","syncTreeTagForQuery_","stopListening","queryToRemove","tagToRemove","syncTreeMakeQueryKey_","removedQuery","removedQueryKey","removedQueryTag","syncTreeRemoveTags_","syncTreeAddEventRegistration","foundAncestorDefaultView","pathToSyncPoint","sp","childSyncPoint","viewAlreadyExists","queryKey","queriesToStop","queries_1","childQueries","queryToStop","syncTreeSetupListener_","syncTreeCalcCompleteEventCache","syncTreeGetServerValue","serverCacheNode","viewGetCompleteNode","syncTreeApplyOperationHelper_","syncPointTree","syncTreeApplyOperationDescendantsHelper_","childOperation","childServerCache","childWritesCache","viewGetServerCache","syncTreeQueryKeyForTag_","syncTreeParseQueryKey_","queryPath","syncTreeApplyTaggedOperation_","syncTreeApplyTaggedListenComplete","syncTreeApplyListenComplete","toUpperCase","errorForServerCode","splitIndex","ExistingValueProvider","DeferredValueProvider","syncTree_","path_","resolveDeferredLeafValue","existingVal","serverValues","resolveScalarDeferredValue","resolveComplexDeferredValue","JSON","op","unused","existingNode","resolveDeferredValueTree","resolveDeferredValue","resolveDeferredValueSnapshot","rawPri","leafNode","childrenNode","Tree","parent","childCount","treeSubTree","pathObj","treeGetValue","treeSetValue","treeUpdateParents","treeHasChildren","treeForEachChild","treeForEachDescendant","includeSelf","childrenFirst","treeGetPath","childEmpty","treeIsEmpty","childExists","treeUpdateChild","INVALID_KEY_REGEX_","INVALID_PATH_REGEX_","MAX_LEAF_SIZE_","isValidKey","isValidPathString","isValidPriority","validateFirebaseDataArg","fnName","validateFirebaseData","errorPrefix","hasDotValue_1","hasActualChild_1","validationPathPush","last","validationPathPop","validateFirebaseMergeDataArg","errorPrefix$1","mergePaths","curPath","prevPath","validateFirebaseMergePaths","validatePriority","validateEventType","validateKey","argumentName","validatePathString","validateWritablePath","validateUrl","parsedUrl","isValidRootPathString","validateBoolean","bool","EventQueue","eventLists_","recursionDepth_","eventQueueQueueEvents","eventQueue","eventDataList","currList","getPath","eventQueueRaiseEventsAtPath","eventQueueRaiseQueuedEventsMatchingPredicate","eventPath","eventQueueRaiseEventsForChangedPath","changedPath","sentAll","eventList","eventListRaise","eventFn","getEventRunner","INTERRUPT_REASON","Repo","forceRestClient_","appCheckProvider_","dataUpdateCount","eventQueue_","nextWriteId_","interceptServerDataCallback_","transactionQueueTree_","persistentConnection_","repoStart","repo","appId","authOverride","search","isMerge","repoOnDataUpdate","repoOnConnectStatus","connectStatus","repoUpdateInfo","repoOnServerInfoUpdate","statsReporter_","creatorFunction","statsManagerGetOrCreateReporter","infoData_","infoSyncTree_","infoEvents","serverSyncTree_","repoServerTime","offset","repoGenerateServerValues","taggedChildren","raw","syncTreeApplyTaggedQueryMerge","taggedSnap","syncTreeApplyTaggedQueryOverwrite","syncTreeApplyServerMerge","repoRerunTransactions","repoLog","resolvedOnDisconnectTree","resolved","repoAbortTransactions","repoRunOnDisconnectEvents","repoGetNextWriteId","repoSetWithPriority","newVal","newNodeUnresolved","success","clearEvents","repoCallOnCompleteCallback","repoOnDisconnectCancel","repoOnDisconnectSet","repoRemoveEventCallbackForQuery","repoInterrupt","repoGetLatestState","excludeSets","repoSendReadyTransactions","repoPruneCompletedTransactionsBelowNode","queue","repoBuildTransactionQueue","every","transaction","setsToIgnore","txn","currentWriteId","latestState","snapToSend","latestHash","retryCount","currentOutputSnapshotRaw","dataToSend","pathToSend","callbacks","currentOutputSnapshotResolved","unwatcher","abortReason","repoSendTransactionQueue","rootMostTransactionNode","repoGetAncestorTransactionNode","abortTransaction","currentNode","currentInputSnapshot","newDataNode","oldWriteId","newNodeResolved","applyLocally","repoRerunTransactionQueue","transactionNode","transactionQueue","repoAggregateTransactionQueuesForNode","order","nodeQueue","to","treeForEachAncestor","repoAbortTransactionsOnNode","lastSent","parseRepoInfo","dataURL","parseDatabaseURL","scheme","subdomain","port","colonInd","slashInd","questionMarkInd","pathStringDecoded","piece","decodeURIComponent","decodePath","queryString","results","segment","kv","decodeQuery","hostWithoutPort","dotInd","DataEvent","snapshot","ref","getEventType","exportVal","CancelEvent","CallbackContext","snapshotCallback","cancelCallback","onValue","expDataSnapshot","previousChildName","onCancel","hasCancelCallback","userCallback","OnDisconnect$1","OnDisconnect","cancel","wrapCallback","setWithPriority","repoOnDisconnectSetWithPriority","childrenToMerge","repoOnDisconnectUpdate","QueryImpl","_orderByCalled","ReferenceImpl","isEqual","getModularInstance","sameRepo","samePath","sameQueryIdentifier","toJSON","encodeURIComponent","pathToUrlEncodedString","validateNoPreviousOrderByCall","validateQueryEndpoints","startNode","endNode","tooManyArgsError","wrongArgTypeError","validateLimit","parentPath","DataSnapshot$1","DataSnapshot","_node","_index","childRef","exists","hasChildren","db","_checkNotDeleted","_root","refFromURL","parsedURL","thennablePushRef","pushRef","setPriority","changedKey","changedValue","writeId_1","repoUpdate","cached","err","repoGetValue","ValueEventRegistration","callbackContext","ChildEventRegistration","eventToCheck","cancelCallbackOrListenOptions","onlyOnce","userCallback_1","onceCallback","dataSnapshot","container","repoAddEventCallbackForQuery","onChildAdded","onChildChanged","onChildMoved","onChildRemoved","expCallback","QueryConstraint","QueryEndAtConstraint","_value","_apply","endAt","QueryEndBeforeConstraint","queryParamsEndBefore","endBefore","QueryStartAtConstraint","startAt","QueryStartAfterConstraint","queryParamsStartAfter","startAfter","QueryLimitToFirstConstraint","_limit","newLimit","queryParamsLimitToFirst","limitToFirst","limit","QueryLimitToLastConstraint","queryParamsLimitToLast","limitToLast","QueryOrderByChildConstraint","parsedPath","orderByChild","QueryOrderByKeyConstraint","orderByKey","QueryOrderByPriorityConstraint","orderByPriority","QueryOrderByValueConstraint","orderByValue","QueryEqualToValueConstraint","equalTo","queryConstraints","queryImpl","queryConstraints_1","queryConstraints_1_1","constraint","syncPointSetReferenceConstructor","syncTreeSetReferenceConstructor","repos","useRestClient","repoManagerDatabaseFromApp","app","authProvider","dbUrl","databaseURL","projectId","isEmulator","dbEmulatorHost","authTokenProvider","appRepos","repoManagerCreateRepo","Database$1","Database","_repoInternal","_instanceStarted","_rootInternal","_delete","appName","repoManagerDeleteRepo","apiName","connectDatabaseEmulator","tokenProvider","mockUserToken","createMockUserToken","repoManagerApplyEmulatorSettings","goOffline","goOnline","SERVER_TIMESTAMP","TransactionResult$1","TransactionResult","committed","runTransaction","transactionUpdate","currentState","queueNode","priorityForNode","repoStartTransaction","_delegate","validateArgCount","validateCallback","objectToMerge","newObjectToMerge","_database","getRef","Reference","Query","database","cancelCallbackOrContext","ret","getCancelAndContextArgs_","valueCallback","expSnapshot","validateContextObject","once","failureCallbackOrContext","cancelOrContext","getKey","getParent","getRoot","transactionResult","expPromise","expRef","INTERNAL","useEmulator","ServerValue","TIMESTAMP","increment","freeze","__proto__","forceLongPolling","forceWebSockets","setSecurityDebugCallback","showDelta","longestName","reduce","previousValue","currentValue","paddedStat","repoStats","statsIncrementCounter","metric","reporter","repoStatsIncrementCounter","interceptServerData","repoInterceptServerData","initStandalone","customAuthImpl","Provider","ComponentContainer","setComponent","Component","instance","DataConnection","simpleListen","echo","onEcho","RealTimeConnection","ConnectionTarget","TEST_ACCESS","hijackHash","newHash","oldPut","queryIdentifier","forceRestClient","repoManagerForceRestClient","registerComponent","instanceIdentifier","getProvider","setServiceProps","setMultipleInstances","registerVersion","module","exports","registerDatabase"],"sourceRoot":""}