{"version":3,"file":"index.prod.js","mappings":"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","sources":["webpack://tinode-webapp/webpack/runtime/create fake namespace object","webpack://tinode-webapp/webpack/runtime/load script","webpack://tinode-webapp/./src/config.js","webpack://tinode-webapp/./src/lib/blob-helpers.js","webpack://tinode-webapp/./src/lib/local-storage.js","webpack://tinode-webapp/./src/lib/navigation.js","webpack://tinode-webapp/./src/lib/strformat.js","webpack://tinode-webapp/./src/lib/utils.js","webpack://tinode-webapp/./src/version.js","webpack://tinode-webapp/./src/widgets/audio-player.jsx","webpack://tinode-webapp/./src/widgets/cropper.jsx","webpack://tinode-webapp/./src/widgets/avatar-crop.jsx","webpack://tinode-webapp/./src/widgets/avatar-upload.jsx","webpack://tinode-webapp/./src/widgets/badge-list.jsx","webpack://tinode-webapp/./src/widgets/checkbox.jsx","webpack://tinode-webapp/./src/widgets/letter-tile.jsx","webpack://tinode-webapp/./src/widgets/load-spinner.jsx","webpack://tinode-webapp/./src/widgets/visible-password.jsx","webpack://tinode-webapp/./node_modules/react-dom/client.js","webpack://tinode-webapp/external var \"React\"","webpack://tinode-webapp/external var \"ReactDOM\"","webpack://tinode-webapp/external var \"ReactIntl\"","webpack://tinode-webapp/external var \"tinode\"","webpack://tinode-webapp/webpack/bootstrap","webpack://tinode-webapp/webpack/runtime/compat get default export","webpack://tinode-webapp/webpack/runtime/define property getters","webpack://tinode-webapp/webpack/runtime/ensure chunk","webpack://tinode-webapp/webpack/runtime/get javascript chunk filename","webpack://tinode-webapp/webpack/runtime/global","webpack://tinode-webapp/webpack/runtime/hasOwnProperty shorthand","webpack://tinode-webapp/webpack/runtime/make namespace object","webpack://tinode-webapp/webpack/runtime/publicPath","webpack://tinode-webapp/webpack/runtime/jsonp chunk loading","webpack://tinode-webapp/./node_modules/@firebase/util/dist/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/component/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/logger/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/idb/build/wrap-idb-value.js","webpack://tinode-webapp/./node_modules/idb/build/index.js","webpack://tinode-webapp/./node_modules/@firebase/app/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/firebase/app/dist/esm/index.esm.js","webpack://tinode-webapp/./node_modules/@firebase/installations/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/messaging/dist/esm/index.esm2017.js","webpack://tinode-webapp/./src/widgets/alert.jsx","webpack://tinode-webapp/./src/widgets/context-menu.jsx","webpack://tinode-webapp/./src/widgets/contact-badges.jsx","webpack://tinode-webapp/./src/widgets/unread-badge.jsx","webpack://tinode-webapp/./src/widgets/call-message.jsx","webpack://tinode-webapp/./src/widgets/call-status.jsx","webpack://tinode-webapp/./src/widgets/inline-video.jsx","webpack://tinode-webapp/./src/widgets/lazy-image.jsx","webpack://tinode-webapp/./src/widgets/file-progress.jsx","webpack://tinode-webapp/./src/widgets/uploading-image.jsx","webpack://tinode-webapp/./src/lib/formatters.js","webpack://tinode-webapp/./src/widgets/contact.jsx","webpack://tinode-webapp/./src/widgets/contact-action.jsx","webpack://tinode-webapp/./src/widgets/contact-list.jsx","webpack://tinode-webapp/./src/widgets/search-contacts.jsx","webpack://tinode-webapp/./src/widgets/forward-dialog.jsx","webpack://tinode-webapp/./src/constants.js","webpack://tinode-webapp/./src/widgets/call-incoming.jsx","webpack://tinode-webapp/./src/widgets/menu-cancel.jsx","webpack://tinode-webapp/./src/widgets/error-panel.jsx","webpack://tinode-webapp/./src/widgets/chip.jsx","webpack://tinode-webapp/./src/widgets/chip-input.jsx","webpack://tinode-webapp/./src/widgets/group-manager.jsx","webpack://tinode-webapp/./src/widgets/permissions-editor.jsx","webpack://tinode-webapp/external var \"QRCode\"","webpack://tinode-webapp/./src/widgets/show-qrcode.jsx","webpack://tinode-webapp/./src/widgets/in-place-edit.jsx","webpack://tinode-webapp/./src/widgets/tag-manager.jsx","webpack://tinode-webapp/./src/widgets/topic-desc-edit.jsx","webpack://tinode-webapp/./src/views/topic-common-view.jsx","webpack://tinode-webapp/./src/widgets/topic-security.jsx","webpack://tinode-webapp/./src/views/info-view.jsx","webpack://tinode-webapp/./src/widgets/call-panel.jsx","webpack://tinode-webapp/./src/widgets/attachment.jsx","webpack://tinode-webapp/./src/widgets/received-marker.jsx","webpack://tinode-webapp/./src/widgets/chat-message.jsx","webpack://tinode-webapp/./src/widgets/send-message.jsx","webpack://tinode-webapp/./src/widgets/doc-preview.jsx","webpack://tinode-webapp/./src/widgets/group-subs.jsx","webpack://tinode-webapp/./src/widgets/image-preview.jsx","webpack://tinode-webapp/./src/widgets/invitation.jsx","webpack://tinode-webapp/./src/views/logo-view.jsx","webpack://tinode-webapp/./src/widgets/meta-message.jsx","webpack://tinode-webapp/./src/widgets/video-preview.jsx","webpack://tinode-webapp/./src/views/messages-view.jsx","webpack://tinode-webapp/./src/widgets/button-back.jsx","webpack://tinode-webapp/./src/widgets/menu-contacts.jsx","webpack://tinode-webapp/./src/widgets/menu-start.jsx","webpack://tinode-webapp/./src/widgets/side-navbar.jsx","webpack://tinode-webapp/./src/views/contacts-view.jsx","webpack://tinode-webapp/./src/views/acc-notifications-view.jsx","webpack://tinode-webapp/./src/views/acc-security-view.jsx","webpack://tinode-webapp/./src/views/acc-support-view.jsx","webpack://tinode-webapp/./src/views/login-view.jsx","webpack://tinode-webapp/./src/widgets/new-topic-by-id.jsx","webpack://tinode-webapp/./src/widgets/new-topic-group.jsx","webpack://tinode-webapp/./src/views/new-topic-view.jsx","webpack://tinode-webapp/./src/widgets/host-selector.jsx","webpack://tinode-webapp/./src/views/settings-view.jsx","webpack://tinode-webapp/./src/views/validation-view.jsx","webpack://tinode-webapp/./src/views/sidepanel-view.jsx","webpack://tinode-webapp/./src/lib/host-name.js","webpack://tinode-webapp/./src/views/tinode-web.jsx","webpack://tinode-webapp/./src/index.js"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"tinode-webapp:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import { PACKAGE_VERSION } from './version.js';\n\n// Name of this application, used in the User-Agent.\nexport const APP_NAME = 'TinodeWeb/' + (PACKAGE_VERSION || '0.21');\n\n// API key. Use https://github.com/tinode/chat/tree/master/keygen to generate your own\nexport const API_KEY = 'AQEAAAABAAD_rAp4DJh05a1HAwFT3A6K';\n\n// The array of possible hosts to connect to.\nexport const KNOWN_HOSTS = {hosted: 'web.tinode.co', local: 'localhost:6060'};\n\n// Default host name and port to connect to.\nexport const DEFAULT_HOST = KNOWN_HOSTS.hosted;\n\n// Enable console logging.\nexport const LOGGING_ENABLED = true;\n\n// Minimum time between two keypress notifications, milliseconds.\nexport const KEYPRESS_DELAY = 3_000;\n// Delay before sending a read notification, milliseconds.\nexport const READ_DELAY = 1_500;\n\n// The default shortest allowed tag length. Matches the value on the server.\nexport const MIN_TAG_LENGTH = 2;\n// The default greatest allowed tag length. Matches the value on the server.\nexport const MAX_TAG_LENGTH = 96;\n// The default maximum number of tags allowed. Matches the value on the server.\nexport const MAX_TAG_COUNT = 16;\n\n// Access mode for P2P subscriptions initiated by the current user.\nexport const DEFAULT_P2P_ACCESS_MODE = 'JRWPS';\n// Access mode for new group topics created by the current user.\nexport const NEW_GRP_ACCESS_MODE = 'JRWPSAO';\n// Access mode for a channel.\nexport const CHANNEL_ACCESS_MODE = 'JR';\n\n// Access mode for no access.\nexport const NO_ACCESS_MODE = 'N';\n\n// Mediaquery breakpoint between desktop and mobile, in px. Should match the value\n// in @media (max-size: 640px) in base.css\nexport const MEDIA_BREAKPOINT = 640;\n// Size of css 'rem' unit in pixels. Default 1rem = 10pt = 13px.\nexport const REM_SIZE = 13;\n\n// Size of the avatar image: when image dimensions are greater or the image is not square, it's resized to\n// a square of this size or less.\nexport const AVATAR_SIZE = 384;\n\n// Maximum size of an avatar in bytes for sending in-band. Bigger avatars will be sent out of band (as uploads).\nexport const MAX_AVATAR_BYTES = 4096;\n\n// Size of the broken_image shown in MessagesView\nexport const BROKEN_IMAGE_SIZE = 32;\n\n// Size of video preview when dimensions are missing.\nexport const NO_DIMENSIONS_VIDEO = 128;\n\n// Number of chat messages to fetch in one call.\nexport const MESSAGES_PAGE = 24;\n\n// Default maximum in-band (included directly into the message) attachment size which fits into\n// a message of 256K in size. Used when the server-provided value is unavailable. The actual\n// binary size of the attachment should be smaller due to base64 encoding expansion and some overhead,\n// for instance 1024 bytes.\n// Increase this limit to a greater value in production, if desired. Also increase\n// max_message_size in the server config.\nexport const MAX_INBAND_ATTACHMENT_SIZE = 262_144;\n\n// Default absolute maximum attachment size to be used with the server = 8MB.\n// Used when the server-provided value is unavailable. Increase to something like 100MB in production.\nexport const MAX_EXTERN_ATTACHMENT_SIZE = 1 << 23;\n\n// Maximum allowed linear dimension (pixels) of an image sent inline. Larger images will be shrunk\n// to make the larger dimension fit under this size. You may want to adjust it to 1600 or\n// 2400 for production.\nexport const MAX_IMAGE_DIM = 1024;\n\n// Linear dimensions of image preview: shrink image under this size for previews.\nexport const IMAGE_PREVIEW_DIM = 64;\n\n// Linear dimensions of video screencapture: shrink image under this size for previews.\nexport const VIDEO_PREVIEW_DIM = 96;\n\n// Linear dimensions of image thumbnail: shrink image under this size for thumbnails in reply quote previews.\nexport const IMAGE_THUMBNAIL_DIM = 36;\n// Width of video thumbnail: allow it to be wider, but not taller. Use IMAGE_THUMBNAIL_DIM for height.\nexport const VIDEO_THUMBNAIL_WIDTH = 48;\n\n// Maximum number of online users to be shown in a topic title bar. Others will be\n// hidden under \"+X more\"\nexport const MAX_ONLINE_IN_TOPIC = 4;\n\n// Maximum length of user name, topic title, and private comment.\nexport const MAX_TITLE_LENGTH = 60;\n// Maximum length of topic description.\nexport const MAX_TOPIC_DESCRIPTION_LENGTH = 360;\n// Maximum length of user name when displaying a video call.\nexport const MAX_PEER_TITLE_LENGTH = 20;\n\n// Length of message previews in chat list, in characters.\nexport const MESSAGE_PREVIEW_LENGTH = 80;\n\n// Length of a quote in quoted reply (for outgoing messages).\nexport const QUOTED_REPLY_LENGTH = 30;\n// Length of a preview of a forwarded message.\nexport const FORWARDED_PREVIEW_LENGTH = 84;\n// Length of preview for a message being edited.\nexport const EDIT_PREVIEW_LENGTH = 48;\n\n// Minimum duration of an audio recording in milliseconds (2 sec).\nexport const MIN_DURATION = 2_000;\n// Maximum duration of an audio recording in milliseconds (10 min).\nexport const MAX_DURATION = 600_000;\n\n// Link for \"Contact Us\".\nexport const LINK_CONTACT_US = 'mailto:support@tinode.co';\n\n// Link to Privacy Policy.\nexport const LINK_PRIVACY_POLICY = 'https://tinode.co/privacy.html';\n\n// Link to Terms of Service.\nexport const LINK_TERMS_OF_SERVICE = 'https://tinode.co/terms.html';\n\n// When user starts a P2P topic, automatic subscription does not\n// happen until the first message. Setting this option to true enables\n// immediate subscription.\nexport const IMMEDIATE_P2P_SUBSCRIPTION = false;\n\n// URL schemes permitted to appear in links (i.e. no javascript: scheme).\nexport const CLICKABLE_URL_SCHEMES = ['http', 'https', 'ftp', 'ftps'];\n\n// Size of the QR code in the app.\nexport const QRCODE_SIZE = 128;\n","// File and image helper functions.\n\n// Supported image MIME types and corresponding file extensions.\nexport const SUPPORTED_IMAGE_FORMATS = ['image/jpeg', 'image/gif', 'image/png', 'image/svg', 'image/svg+xml'];\nexport const MIME_EXTENSIONS = ['jpg', 'gif', 'png', 'svg', 'svg'];\n\n// Get an URL from a theCard photo: either create a data: URL or return reference URL.\nexport function makeImageUrl(photo) {\n if (photo && typeof photo == 'object') {\n if (photo.ref) {\n return photo.ref\n }\n if (photo.data && photo.type) {\n const mime = photo.type.startsWith('image/') ? photo.type : ('image/' + photo.type);\n return 'data:' + mime + ';base64,' + photo.data;\n }\n }\n return null;\n}\n\n// Calculate linear dimensions for scaling image down to fit under a certain size.\n// Returns an object which contains destination sizes, source sizes, and offsets\n// into source (when making square images).\nexport function fitImageSize(width, height, maxWidth, maxHeight, forceSquare) {\n // Sanitize input\n width = width | 0;\n height = height | 0;\n maxWidth = maxWidth | 0;\n maxHeight = maxHeight | 0;\n\n if (width <= 0 || height <= 0 || maxWidth <= 0 || maxHeight <= 0) {\n return null;\n }\n\n if (forceSquare) {\n maxWidth = maxHeight = Math.min(maxWidth, maxHeight);\n }\n\n const scale = Math.min(\n Math.min(width, maxWidth) / width,\n Math.min(height, maxHeight) / height\n );\n\n const size = {\n dstWidth: (width * scale) | 0,\n dstHeight: (height * scale) | 0,\n };\n\n if (forceSquare) {\n // Also calculate parameters for making the image square.\n size.dstWidth = size.dstHeight = Math.min(size.dstWidth, size.dstHeight);\n size.srcWidth = size.srcHeight = Math.min(width, height);\n size.xoffset = ((width - size.srcWidth) / 2) | 0;\n size.yoffset = ((height - size.srcWidth) / 2) | 0;\n } else {\n size.xoffset = size.yoffset = 0;\n size.srcWidth = width;\n size.srcHeight = height;\n }\n return size;\n}\n\n// Ensure file's extension matches mime content type\nexport function fileNameForMime(fname, mime) {\n const idx = SUPPORTED_IMAGE_FORMATS.indexOf(mime);\n if (idx < 0 || !fname) {\n // Unknown mime or empty name.\n return fname;\n }\n const ext = MIME_EXTENSIONS[idx];\n\n const at = fname.lastIndexOf('.');\n if (at >= 0) {\n fname = fname.substring(0, at);\n }\n return fname + '.' + ext;\n}\n\n// Scale uploaded image to fit under certain dimensions and byte size, optionally constraining to a square.\n// Returns a promise which is resolven on success or rejected on failure.\nexport function imageScaled(fileOrBlob, maxWidth, maxHeight, maxSize, forceSquare) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.onerror = function(err) {\n reject(new Error(\"Image format unrecognized\"));\n }\n img.onload = async function() {\n // Once the image is loaded, the URL is no longer needed.\n URL.revokeObjectURL(img.src);\n\n // Calculate the desired image dimensions.\n const dim = fitImageSize(img.width, img.height, maxWidth, maxHeight, forceSquare);\n if (!dim) {\n reject(new Error(\"Invalid image\"));\n return;\n }\n let canvas = document.createElement('canvas');\n canvas.width = dim.dstWidth;\n canvas.height = dim.dstHeight;\n let ctx = canvas.getContext('2d');\n ctx.imageSmoothingEnabled = true;\n ctx.drawImage(img, dim.xoffset, dim.yoffset, dim.srcWidth, dim.srcHeight,\n 0, 0, dim.dstWidth, dim.dstHeight);\n\n const mime = SUPPORTED_IMAGE_FORMATS.includes(fileOrBlob.type) ? fileOrBlob.type : 'image/jpeg';\n // Generate blob to check size of the image.\n let blob = await new Promise(resolve => canvas.toBlob(resolve, mime));\n if (!blob) {\n reject(new Error(\"Unsupported image format\"));\n return;\n }\n // Ensure the image is not too large. Shrink the image keeping the aspect ratio.\n // Do nothing if maxsize is <= 0.\n while (maxSize > 0 && blob.length > maxSize) {\n dim.dstWidth = (dim.dstWidth * 0.70710678118) | 0;\n dim.dstHeight = (dim.dstHeight * 0.70710678118) | 0;\n canvas.width = dim.dstWidth;\n canvas.height = dim.dstHeight;\n ctx = canvas.getContext('2d');\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.drawImage(img, dim.xoffset, dim.yoffset, dim.srcWidth, dim.srcHeight,\n 0, 0, dim.dstWidth, dim.dstHeight);\n blob = await new Promise(resolve => canvas.toBlob(resolve, mime));\n }\n\n canvas = null;\n resolve({mime: mime, blob: blob, width: dim.dstWidth, height: dim.dstHeight, name: fileNameForMime(fileOrBlob.name, mime)});\n };\n img.src = URL.createObjectURL(fileOrBlob);\n });\n}\n\n// Scale and crop image according to specified dimensions.\n// The coordinates are in unscaled image pixels, i.e. cut the rectangle first then scale it.\n// returns a promise.\nexport function imageCrop(mime, objURL, left, top, width, height, scale) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.onerror = _ => {\n reject(new Error(\"Image format unrecognized\"));\n };\n img.onload = _ => {\n // Once the image is loaded, the URL is no longer needed.\n URL.revokeObjectURL(img.src);\n\n let canvas = document.createElement('canvas');\n canvas.width = width * scale;\n canvas.height = height * scale;\n let ctx = canvas.getContext('2d');\n ctx.imageSmoothingEnabled = true;\n ctx.drawImage(img, left, top, width, height, 0, 0, canvas.width, canvas.height);\n\n mime = SUPPORTED_IMAGE_FORMATS.includes(mime) ? mime : 'image/jpeg';\n // Generate blob to check size of the image.\n canvas.toBlob((blob) => {\n // Allow GC.\n canvas = null;\n if (blob) {\n resolve({mime: mime, blob: blob, width: width, height: height});\n } else {\n reject(new Error(\"Unsupported image format\"));\n }\n }, mime);\n };\n img.src = objURL;\n });\n}\n\n// Convert file to base64 string.\nexport function fileToBase64(file) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = _ => {\n reject(reader.error);\n };\n reader.onload = _ => {\n resolve({mime: file.type, bits: reader.result.split(',')[1], name: file.name});\n };\n reader.readAsDataURL(file);\n });\n}\n\n// Convert Blob to base64 string. Returns a promise resolved with the base64 string and mime.\nexport function blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = _ => {\n reject(reader.error);\n };\n reader.onload = _ => {\n resolve({mime: blob.type, bits: reader.result.split(',')[1]});\n };\n reader.readAsDataURL(blob);\n });\n}\n\n// File pasted from the clipboard. It's either an inline image or a file attachment.\nexport function filePasted(event, onImageSuccess, onAttachmentSuccess, onError) {\n const items = (event.clipboardData || event.originalEvent.clipboardData || {}).items;\n if (!items || !items.length) {\n return false;\n }\n\n for (let i in items) {\n const item = items[i];\n if (item.kind === 'file') {\n const file = item.getAsFile();\n if (!file) {\n console.error(\"Failed to get file object from pasted file item\", item.kind, item.type);\n onError(\"Failed to get file object from pasted file item\");\n continue;\n }\n if (file.type && file.type.split('/')[0] == 'image') {\n onImageSuccess(file);\n } else {\n onAttachmentSuccess(file);\n }\n // Indicate that the pasted data contains a file.\n return true;\n }\n }\n // No file found.\n return false;\n}\n\n// Get mime type from data URL header.\nexport function getMimeType(header) {\n var mime = /^data:(image\\/[-+a-z0-9.]+);base64/.exec(header);\n return (mime && mime.length > 1) ? mime[1] : null;\n}\n\n// Given length of a binary object in bytes, calculate the length after\n// base64 encoding.\nexport function base64EncodedLen(n) {\n return Math.floor((n + 2) / 3) * 4;\n}\n\n// Given length of a base64-encoded object, calculate decoded size of the\n// pbject in bytes.\nexport function base64DecodedLen(n) {\n return Math.floor(n / 4) * 3;\n}\n\n// Re-encode string to standard base64 encoding with padding.\n// The string may be base64-URL encoded without the padding.\nexport function base64ReEncode(str) {\n if (str) {\n str = str.replace(/-/g, '+').replace(/_/g, '/');\n try {\n str = btoa(atob(str));\n } catch(err) {\n console.error(\"Failed to base64 re-encode string.\", err);\n str = null;\n }\n }\n return str;\n}\n\n// Convert a base64 encoded string with the provided mime type into a Blob.\nexport function base64ToBlob(str, mime) {\n if (!str) {\n return null;\n }\n\n try {\n // Make blob.\n const bin = atob(str);\n const length = bin.length;\n const buf = new ArrayBuffer(length);\n const arr = new Uint8Array(buf);\n for (let i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n\n return new Blob([buf], { type: mime });\n } catch(err) {\n console.error(\"Failed to convert base64 to blob: \", err);\n }\n\n return null;\n}\n\nexport function intArrayToBase64(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n try {\n let bin = '';\n new Uint8Array(arr).forEach(b => bin += String.fromCharCode(b));\n return window.btoa(bin);\n } catch (err) {}\n return null;\n}\n\nexport function base64ToIntArray(b64) {\n const arr = [];\n try {\n const bin = window.atob(b64);\n [...bin].forEach(c => {\n arr.push(c.charCodeAt(0));\n });\n return arr;\n } catch (err) {}\n return null;\n}\n","// Helper functions for storing values in localStorage.\n// By default localStorage can store only strings, not objects or other types.\n\nexport default class LocalStorageUtil {\n // Replace old object with the new one.\n static setObject(key, value) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n // Get stored object.\n static getObject(key) {\n const value = localStorage.getItem(key);\n return value && JSON.parse(value);\n }\n\n // Partially or wholly update stored object.\n static updateObject(key, value) {\n const oldVal = this.getObject(key);\n this.setObject(key, Object.assign(oldVal || {}, value));\n }\n\n // Just a wrapper.\n static removeItem(key) {\n localStorage.removeItem(key);\n }\n}\n","// Utility class for hash navigation.\n\nexport default class HashNavigation {\n // Parse hash as in http://www.example.com/path#hash as if it were\n // path and arguments.\n static parseUrlHash(hash) {\n // Split 'path/?args' into 'path/' and 'args', path -> parts[0], args->path[1].\n const parts = hash.split('?', 2);\n const params = {};\n let path = [];\n if (parts[0]) {\n path = parts[0].replace('#', '').split('/');\n }\n if (parts[1]) {\n parts[1].split('&').forEach((arg) => {\n // Can't use split() because the value may contain '='.\n const eq = arg.indexOf('=');\n if (eq > 0) {\n params[arg.slice(0, eq)] = decodeURIComponent(arg.slice(eq + 1));\n }\n });\n }\n return {path: path, params: params};\n }\n\n static navigateTo(url) {\n window.location.hash = url;\n }\n\n static composeUrlHash(path, params) {\n let url = path.join('/');\n const args = [];\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n if (params[key] !== undefined) {\n args.push(key + '=' + encodeURIComponent(params[key]));\n }\n }\n }\n if (args.length > 0) {\n url += '?' + args.join('&');\n }\n return url;\n }\n\n static addUrlParam(hash, key, value) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.params[key] = value;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static removeUrlParam(hash, key) {\n const parsed = HashNavigation.parseUrlHash(hash);\n delete parsed.params[key];\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlSidePanel(hash, sidepanel) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.path[0] = sidepanel;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlInfoPanel(hash, infopanel) {\n const parsed = HashNavigation.parseUrlHash(hash);\n if (infopanel) {\n parsed.params.info = infopanel;\n } else {\n delete parsed.params.info;\n }\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlTopic(hash, topic) {\n const parsed = HashNavigation.parseUrlHash(hash);\n parsed.path[1] = topic;\n // Close InfoView on topic change.\n delete parsed.params.info;\n return HashNavigation.composeUrlHash(parsed.path, parsed.params);\n }\n}\n","// Short representation of time in the past.\nexport function shortDateFormat(then, locale) {\n locale = locale || window.navigator.userLanguage || window.navigator.language;\n const now = new Date();\n if (then.getFullYear() == now.getFullYear()) {\n // Same year.\n if (then.getMonth() == now.getMonth() && then.getDate() == now.getDate()) {\n // Same month and day, show time only.\n return then.toLocaleTimeString(locale, {hour12: false, hour: '2-digit', minute: '2-digit'});\n }\n // Different month and/or day, show month day, time.\n return then.toLocaleDateString(locale,\n {hour12: false, month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit'});\n }\n // Different year: just show the date.\n return then.toLocaleDateString(locale, {year: 'numeric', month: 'short', day: 'numeric'});\n}\n\n// Representation a date relative to now.\nexport function relativeDateFormat(then, locale) {\n locale = locale || window.navigator.userLanguage || window.navigator.language;\n const now = new Date();\n const thenDays = Math.floor((then.getTime() - then.getTimezoneOffset() * 60_000) / 86_400_000);\n const nowDays = Math.floor((now.getTime() - now.getTimezoneOffset() * 60_000) / 86_400_000);\n const diff = thenDays - nowDays;\n if (Math.abs(diff) < 2) {\n // Today or yesterday.\n return new Intl.RelativeTimeFormat(locale, { numeric: 'auto' }).format(diff, 'day')\n }\n // More than two days: just show the date.\n return new Intl.DateTimeFormat(locale).format(then);\n}\n\n// Convert seconds to [hours:]minutes:seconds, i.e. 156 sec -> 2:36, 3756 sec -> 1:02:36.\n// If fixedMins is true, then minutes are represented by at least two digits.\nexport function secondsToTime(seconds, fixedMin) {\n if (typeof seconds != 'number') {\n return '';\n }\n\n let min = (Math.floor(seconds / 60) | 0) % 60;\n let hours = Math.floor(seconds / 3600) | 0;\n\n if (fixedMin || hours > 0) {\n min = min < 10 ? `0${min}` : min;\n }\n let sec = (seconds | 0) % 60;\n sec = sec < 10 ? `0${sec}` : sec;\n if (hours == 0) {\n return `${min}:${sec}`;\n }\n return `${hours}:${min}:${sec}`;\n}\n\n// Convert a number of bytes to human-readable format.\nexport function bytesToHumanSize(bytes) {\n if (!bytes || bytes == 0) {\n return '0 Bytes';\n }\n\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n const bucket = Math.min(Math.floor(Math.log2(bytes) / 10) | 0, sizes.length-1);\n const count = bytes / Math.pow(1024, bucket);\n const round = bucket > 0 ? (count < 3 ? 2 : (count < 30 ? 1 : 0)) : 0;\n return count.toFixed(round) + ' ' + sizes[bucket];\n}\n\n// Shorten a file name to be under maxLength by clipping out the middle.\nexport function shortenFileName(filename, maxLength) {\n if (typeof filename != 'string') {\n return filename;\n }\n return filename.length > maxLength ?\n filename.slice(0, maxLength/2 - 1) + '…' + filename.slice(1 - maxLength/2) : filename;\n}\n\n// Get 32 bit integer hash value for a string. Ideally it should produce the same value\n// as Java's String#hash().\nfunction stringToColorHash(value) {\n let hash = 0;\n value = '' + value;\n for (let i = 0; i < value.length; i++) {\n hash = ((hash << 5) - hash) + value.charCodeAt(i);\n hash = hash & hash; // Convert to 32bit integer\n }\n return hash;\n}\n\n// User avatar letter color id.\nexport function letterTileColorId(userId) {\n return Math.abs(stringToColorHash(userId)) % 16;\n}\n\n// Converts user or topic ID to a CSS color class. Ideally it should produce the same color value as Java version.\n// params:\n// - {string} id: user or topic ID\n// - {boolean} light: light or dark version of the color.\n// - {boolean} fg: foreground (text) or background color.\nexport function idToColorClass(id, light, fg) {\n return (light ? 'lt-' : 'dk-') + (fg ? 'fg-' : 'bg-') + letterTileColorId(id);\n}\n\n// Takes ISO Alpha-2 country code, like 'US' and converts it to a flag emoji.\nexport function flagEmoji(countryCode) {\n const codePoints = countryCode\n .toUpperCase()\n .split('')\n .map(char => 0x1F1A5 + char.charCodeAt());\n return String.fromCodePoint(...codePoints);\n}\n","// Odds and ends\n\nimport { Tinode } from 'tinode-sdk';\n\n// Make shortcut icon appear with a green dot + show unread count in title.\nexport function updateFavicon(count) {\n const oldIcon = document.getElementById('shortcut-icon');\n const head = document.head || document.getElementsByTagName('head')[0];\n const newIcon = document.createElement('link');\n newIcon.type = 'image/png';\n newIcon.id = 'shortcut-icon';\n newIcon.rel = 'shortcut icon';\n newIcon.href = 'img/logo32x32' + (count > 0 ? 'a' : '') + '.png';\n if (oldIcon) {\n head.removeChild(oldIcon);\n }\n head.appendChild(newIcon);\n\n document.title = (count > 0 ? '('+count+') ' : '') + 'Tinode';\n}\n\n// Create theCard which represents user's or topic's \"public\" info.\nexport function theCard(fn, imageUrl, imageMimeType, note) {\n let card = null;\n fn = fn && fn.trim();\n note = note && note.trim();\n\n if (fn) {\n card = {\n fn: fn\n };\n }\n\n if (typeof note == 'string') {\n card = card || {};\n card.note = note ? note : Tinode.DEL_CHAR;\n }\n\n if (imageUrl) {\n card = card || {};\n let mimeType = imageMimeType;\n // Is this a data URL \"data:[][;base64],\"?\n const matches = /^data:(image\\/[-a-z0-9+.]+)?(;base64)?,/i.exec(imageUrl);\n if (matches) {\n mimeType = matches[1];\n card.photo = {\n data: imageUrl.substring(imageUrl.indexOf(',') + 1),\n ref: Tinode.DEL_CHAR\n };\n } else {\n card.photo = {\n data: Tinode.DEL_CHAR,\n ref: imageUrl\n };\n }\n card.photo.type = (mimeType || 'image/jpeg').substring('image/'.length);\n }\n\n return card;\n}\n\n// Deep-shallow compare two arrays: shallow compare each element.\nexport function arrayEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (!Array.isArray(a) || !Array.isArray(b)) {\n return false;\n }\n\n // Compare lengths first.\n if (a.length != b.length) {\n return false;\n }\n // Order of elements is ignored.\n a.sort();\n b.sort();\n for (let i = 0, l = a.length; i < l; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n\n// Checks (loosely) if the given string is a phone. If so, returns the phone number in a format\n// as close to E.164 as possible.\nexport function asPhone(val) {\n val = val.trim();\n if (/^(?:\\+?(\\d{1,3}))?[- (.]*(\\d{3})[- ).]*(\\d{3})[- .]*(\\d{2})[- .]*(\\d{2})?$/.test(val)) {\n return val.replace(/[- ().]*/, '');\n }\n return null;\n}\n\n// Checks (loosely) if the given string is an email. If so returns the email.\nexport function asEmail(val) {\n val = val.trim();\n if (/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/.test(val)) {\n return val;\n }\n return null;\n}\n\n// Checks if URL is a relative url, i.e. has no 'scheme://', including the case of missing scheme '//'.\n// The scheme is expected to be RFC-compliant, e.g. [a-z][a-z0-9+.-]*\n// example.html - ok\n// https:example.com - not ok.\n// http:/example.com - not ok.\n// //example.com or \\\\example.com - not ok.\n// ' ↲ https://example.com' - not ok. (↲ means carriage return)\nexport function isUrlRelative(url) {\n // Replacing backslashes with forward slashes to mimic JS URL parser then testing for\n // 'scheme:' and '//' with optional space at the start.\n return url && !/^\\s*([a-z][a-z0-9+.-]*:|\\/\\/)/im.test(url.replace(/\\\\/g, '/'));\n}\n\n// Ensure URL does not present an XSS risk. Optional allowedSchemes may contain an array of\n// strings with permitted URL schemes, such as ['ftp', 'ftps']; otherwise accept http and https only.\nexport function sanitizeUrl(url, allowedSchemes) {\n if (typeof url != 'string') {\n return url;\n }\n\n // Strip control characters and whitespace. They are not valid URL characters anyway.\n url = url.replace(/[^\\x21-\\x7E]/gmi, '').trim();\n\n // Replace backslashes with forward slashes. They will be replaced in the URL parser anyway.\n url = url.replace(/\\\\/g, '/');\n\n // Relative URLs are safe.\n // Relative URL does not start with ':', abcd123: or '//'.\n if (!/^([a-z][a-z0-9+.-]*:|\\/\\/)/i.test(url)) {\n return url;\n }\n\n // Blob URLs are safe.\n if (/^blob:http/.test(url)) {\n return url;\n }\n\n // Absolute URL. Accept only safe schemes, or no scheme.\n const schemes = Array.isArray(allowedSchemes) ? allowedSchemes.join('|') : 'http|https';\n const re = new RegExp('^((' + schemes + '):|//)', 'i');\n if (!re.test(url)) {\n return null;\n }\n\n return url;\n}\n\n// Ensure URL is suitable as a source like field: the URL must be a relative URL or\n// have http:, https:, blob: or data: scheme.\n// In case of data: scheme, the URL must must be of the right MIME type such as 'data:{mimeMajor}/XXXX;base64,'.\nexport function sanitizeUrlForMime(url, mimeMajor) {\n if (!url) {\n return null;\n }\n\n const sanitizedUrl = sanitizeUrl(url);\n if (sanitizedUrl) {\n return sanitizedUrl;\n }\n\n // Is this a data: URL of the appropriate mime type?\n const re = new RegExp(`data:${mimeMajor}\\/[a-z0-9.-]+;base64,`, 'i');\n if (re.test(url.trim())) {\n return url;\n }\n\n return null;\n}\n\n// Append query parameter 'asatt=1' to the URL.\n// It will cause Tinode server to add 'Content-Disposition: attachment' header when serving it.\n// The URL is a string. The URL here is always absolute.\nexport function urlAsAttachment(url) {\n // TODO: check if URL is local or remote, i.e. compare to window.location.origin.\n /*\n if (typeof window.location == 'object') {\n if (!url.startsWith(window.location.origin)) {\n return url;\n }\n }\n */\n // Check if the URL is a data or blob. Do not alter such URLs.\n if (url.startsWith('data:') || url.startsWith('blob:')) {\n return url;\n }\n\n // Split URL into host+path, query, fragment.\n let query = '', fragment = '';\n const idxF = url.indexOf('#');\n if (idxF > 0) {\n fragment = url.substring(idxF+1);\n url = url.substring(0, idxF);\n }\n const idxQ = url.indexOf('?');\n if (idxQ > 0) {\n query = url.substring(idxQ+1);\n url = url.substring(0, idxQ);\n }\n // Add parameter and reassemble.\n const params = new URLSearchParams(query);\n params.append('asatt', '1');\n return `${url}?${params.toString()}` + (fragment ? `#${fragment}` : '');\n}\n\n// Given message's received status, return name and color of a delivery indicator icon.\nexport function deliveryMarker(received) {\n switch (received) {\n case Tinode.MESSAGE_STATUS_SENDING:\n return { name: 'access_time' }; // watch face\n case Tinode.MESSAGE_STATUS_FAILED:\n case Tinode.MESSAGE_STATUS_FATAL:\n return { name: 'warning', color: 'danger-color' }; // yellow icon /!\\\n case Tinode.MESSAGE_STATUS_SENT:\n return { name: 'done' }; // checkmark\n case Tinode.MESSAGE_STATUS_RECEIVED:\n return { name: 'done_all' }; // double checkmark\n case Tinode.MESSAGE_STATUS_READ:\n return { name: 'done_all', color: 'blue' }; // blue double checkmark\n }\n return null;\n}\n\n// Wraps a promise to make it cancelable.\n// The parameter can be either a promise or an error. If it's an error, the wrapped promise is\n// created in a rejected state.\nexport function cancelablePromise(promise) {\n let hasCanceled = false;\n\n const wrappedPromise = promise instanceof Error ?\n Promise.reject(promise) :\n new Promise((resolve, reject) => {\n promise.then(\n result => hasCanceled ? reject({isCanceled: true}) : resolve(result),\n error => hasCanceled ? reject({isCanceled: true}) : reject(error)\n );\n });\n\n return {\n promise: wrappedPromise,\n cancel() {\n hasCanceled = true;\n },\n };\n};\n\n// Clips string to the specified length.\nexport function clipStr(str, length) {\n return str && str.substring(0, length);\n}\n","// This is a generated file. Don't edit.\n\nexport const PACKAGE_VERSION = \"0.23.0\";\n","// Audio recorder widget.\n\nimport React from 'react';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nimport { secondsToTime } from '../lib/strformat';\nimport { base64ToIntArray } from '../lib/blob-helpers';\n\n// Make canvas bigger than the element size to reduce blurring.\nconst CANVAS_UPSCALING = 2.0;\n// Thickness of a visualization bar.\nconst LINE_WIDTH = 3 * CANVAS_UPSCALING;\n// Spacing between two visualization bars.\nconst SPACING = 2 * CANVAS_UPSCALING;\n// Color of histogram bars.\nconst BAR_COLOR = '#888A';\nconst BAR_COLOR_DARK = '#666C';\nconst THUMB_COLOR = '#444E';\n// Minimum number of amplitude bars to draw.\nconst MIN_PREVIEW_LENGTH = 16;\n\nconst messages = defineMessages({\n icon_title_play: {\n id: 'icon_title_play',\n defaultMessage: 'Play recording',\n description: 'Icon tool tip for starting audio playback'\n }\n});\n\nclass AudioPlayer extends React.PureComponent {\n constructor(props) {\n super(props);\n\n let preview = base64ToIntArray(this.props.preview);\n if (!Array.isArray(preview) || preview.length < MIN_PREVIEW_LENGTH) {\n preview = null;\n }\n\n this.state = {\n canPlay: false,\n playing: false,\n currentTime: '0:00',\n duration: this.props.duration > 0 ? secondsToTime(this.props.duration / 1000) : '-:--',\n longMin: this.props.duration >= 600000,\n preview: preview\n };\n\n this.initAudio = this.initAudio.bind(this);\n this.initCanvas = this.initCanvas.bind(this);\n this.resampleBars = this.resampleBars.bind(this);\n this.visualize = this.visualize.bind(this);\n\n this.handlePlay = this.handlePlay.bind(this);\n this.handleSeek = this.handleSeek.bind(this);\n this.handleError = this.handleError.bind(this);\n\n this.audioPlayer = null;\n\n this.viewBuffer = [];\n this.canvasRef = React.createRef();\n }\n\n componentDidMount() {\n if (this.props.src) {\n this.initAudio();\n }\n\n this.initCanvas();\n }\n\n componentWillUnmount() {\n if (this.audioPlayer) {\n this.audioPlayer.onloadedmetadata = null;\n this.audioPlayer.ontimeupdate = null;\n this.audioPlayer.onended = null;\n this.audioPlayer.pause();\n this.audioPlayer = null;\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.src != prevProps.src) {\n this.initAudio();\n }\n\n if (this.props.preview != prevProps.preview) {\n let preview = base64ToIntArray(this.props.preview);\n if (!Array.isArray(preview) || preview.length < MIN_PREVIEW_LENGTH) {\n preview = null;\n }\n this.setState({preview: preview}, this.initCanvas);\n }\n }\n\n initAudio() {\n this.audioPlayer = new Audio(this.props.src);\n this.audioPlayer.onloadedmetadata = _ => this.setState({canPlay: true});\n this.audioPlayer.ontimeupdate = _ => this.setState({\n currentTime: secondsToTime(this.audioPlayer.currentTime, this.state.longMin)\n });\n this.audioPlayer.onended = _ => {\n this.audioPlayer.currentTime = 0;\n this.setState({playing: false, currentTime: secondsToTime(0, this.state.longMin)})\n }\n }\n\n initCanvas() {\n // Force canvas aspect ratio to match one of the element + upscale canvas to reduce blurring.\n this.canvasRef.current.width = this.canvasRef.current.offsetWidth * CANVAS_UPSCALING;\n this.canvasRef.current.height = this.canvasRef.current.offsetHeight * CANVAS_UPSCALING;\n\n this.canvasContext = this.canvasRef.current.getContext('2d');\n this.canvasContext.lineCap = 'round';\n\n this.viewBuffer = this.resampleBars(this.state.preview);\n this.visualize();\n }\n\n // Draw amplitude of sound.\n visualize() {\n if (!this.canvasRef.current) {\n return;\n }\n\n const width = this.effectiveWidth;\n const height = this.canvasRef.current.height;\n\n this.canvasContext.lineWidth = LINE_WIDTH;\n\n const drawFrame = _ => {\n if (!this.canvasRef.current || !this.audioPlayer) {\n // The component is unmounted.\n return;\n }\n\n this.canvasContext.clearRect(0, 0, this.canvasRef.current.width, height);\n\n if (this.viewBuffer) {\n if (this.state.playing) {\n window.requestAnimationFrame(drawFrame);\n }\n\n // Current playback position.\n const thumbAt = this.props.duration ?\n Math.max(0, Math.min(this.audioPlayer.currentTime * 1000 / this.props.duration, 1)) * (width - LINE_WIDTH * 2) : -1;\n\n // Draw amplitude bars.\n this.canvasContext.beginPath();\n this.canvasContext.strokeStyle = BAR_COLOR_DARK;\n for (let i = 0; i < this.viewBuffer.length; i++) {\n let x = 1 + i * (LINE_WIDTH + SPACING) + LINE_WIDTH * 0.5;\n let y = Math.max(this.viewBuffer[i] * height * 0.9, 1);\n\n const color = x < thumbAt ? BAR_COLOR_DARK : BAR_COLOR;\n if (this.canvasContext.strokeStyle != color) {\n this.canvasContext.stroke();\n this.canvasContext.beginPath();\n this.canvasContext.strokeStyle = color;\n }\n\n this.canvasContext.moveTo(x, (height - y) * 0.5);\n this.canvasContext.lineTo(x, (height + y) * 0.5);\n }\n // Actually draw the bars on canvas.\n this.canvasContext.stroke();\n\n // Draw thumb.\n if (this.props.duration) {\n this.canvasContext.beginPath();\n this.canvasContext.arc(thumbAt + LINE_WIDTH * 2, height * 0.5, LINE_WIDTH * 2, 0, 2 * Math.PI);\n this.canvasContext.fillStyle = THUMB_COLOR;\n this.canvasContext.fill();\n }\n }\n }\n\n drawFrame();\n }\n\n // Quick and dirty downsampling of the original preview bars into a smaller (or equal) number of bars we can display here.\n resampleBars(original) {\n const dstCount = ((this.canvasRef.current.width - SPACING) / (LINE_WIDTH + SPACING)) | 0;\n // Remove extra padding on the right due to fractional bar which is not drawn.\n this.effectiveWidth = dstCount * (LINE_WIDTH + SPACING) + SPACING;\n\n if (!Array.isArray(original) || original.length == 0) {\n return Array.apply(null, Array(dstCount)).map(_ => 0.01);\n }\n\n const factor = original.length / dstCount;\n let amps = [];\n let maxAmp = -1;\n for (let i=0; i 0) {\n return amps.map(a => a / maxAmp);\n }\n return Array.apply(null, Array(dstCount)).map(_ => 0.01);\n }\n\n handlePlay(e) {\n e.preventDefault();\n if (!this.state.canPlay) {\n return;\n }\n\n if (this.state.playing) {\n this.audioPlayer.pause();\n this.setState({playing: false});\n } else if (this.audioPlayer.readyState >= 2) {\n this.audioPlayer.play();\n this.setState({playing: true}, this.visualize);\n }\n }\n\n handleError(err) {\n console.error(err);\n }\n\n handleSeek(e) {\n e.preventDefault();\n if (e.target && this.props.duration) {\n const rect = e.target.getBoundingClientRect();\n const offset = (e.clientX - rect.left) / this.effectiveWidth * CANVAS_UPSCALING;\n this.audioPlayer.currentTime = this.props.duration * offset / 1000;\n this.setState({currentTime: secondsToTime(this.audioPlayer.currentTime, this.state.longMin)});\n if (!this.state.playing) {\n this.visualize();\n }\n }\n }\n\n render() {\n const playClass = 'material-icons' +\n (this.props.short ? '' : ' large') +\n (this.state.canPlay ? '' : ' disabled');\n const play = (\n {this.state.playing ? 'pause_circle' :\n (this.state.canPlay ? 'play_circle' : 'not_interested')}\n );\n return (
\n );\n }\n};\n","import React from 'react';\n\nimport LetterTile from './letter-tile.jsx';\nimport LoadSpinner from './load-spinner.jsx';\n\nimport { sanitizeUrlForMime } from '../lib/utils.js';\n\nimport { AVATAR_SIZE } from '../config.js';\n\nexport default class AvatarUpload extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n source: props.avatar\n };\n\n this.handleFileReceived = this.handleFileReceived.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.avatar != prevProps.avatar) {\n this.setState({source: this.props.avatar});\n }\n }\n\n handleFileReceived(e) {\n const image = e.target.files[0];\n this.props.onImageUpdated(image.type, URL.createObjectURL(image), image.name);\n // Clear the value so the same file can be uploaded again.\n e.target.value = '';\n }\n\n render() {\n // Randomize id value in case more than one AvatarUpload is shown\n // at the same time.\n const randId = 'file-input-avatar-' + ('' + Math.random()).substring(0, 4);\n const className = 'avatar-upload' + (this.props.readOnly ? ' read-only' : '');\n return (\n
\n );\n }\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","module.exports = React;","module.exports = ReactDOM;","module.exports = ReactIntl;","module.exports = tinode;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".prod.js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/umd/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t57: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunktinode_webapp\"] = globalThis[\"webpackChunktinode_webapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","/**\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 * @fileoverview Firebase constants. Some of these (@defines) can be overridden at compile-time.\r\n */\r\nconst CONSTANTS = {\r\n /**\r\n * @define {boolean} Whether this is the client Node.js SDK.\r\n */\r\n NODE_CLIENT: false,\r\n /**\r\n * @define {boolean} Whether this is the Admin Node.js SDK.\r\n */\r\n NODE_ADMIN: false,\r\n /**\r\n * Firebase SDK Version\r\n */\r\n SDK_VERSION: '${JSCORE_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 * Throws an error if the provided assertion is falsy\r\n */\r\nconst assert = function (assertion, message) {\r\n if (!assertion) {\r\n throw assertionError(message);\r\n }\r\n};\r\n/**\r\n * Returns an Error object suitable for throwing.\r\n */\r\nconst assertionError = function (message) {\r\n return new Error('Firebase Database (' +\r\n CONSTANTS.SDK_VERSION +\r\n ') INTERNAL ASSERT FAILED: ' +\r\n message);\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\nconst stringToByteArray$1 = function (str) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if ((c & 0xfc00) === 0xd800 &&\r\n i + 1 < str.length &&\r\n (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\r\n // Surrogate Pair\r\n c = 0x10000 + ((c & 0x03ff) << 10) + (str.charCodeAt(++i) & 0x03ff);\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Turns an array of numbers into the string given by the concatenation of the\r\n * characters to which the numbers correspond.\r\n * @param bytes Array of numbers representing characters.\r\n * @return Stringification of the array.\r\n */\r\nconst byteArrayToString = function (bytes) {\r\n // TODO(user): Use native implementations if/when available\r\n const out = [];\r\n let pos = 0, c = 0;\r\n while (pos < bytes.length) {\r\n const c1 = bytes[pos++];\r\n if (c1 < 128) {\r\n out[c++] = String.fromCharCode(c1);\r\n }\r\n else if (c1 > 191 && c1 < 224) {\r\n const c2 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));\r\n }\r\n else if (c1 > 239 && c1 < 365) {\r\n // Surrogate Pair\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n const c4 = bytes[pos++];\r\n const u = (((c1 & 7) << 18) | ((c2 & 63) << 12) | ((c3 & 63) << 6) | (c4 & 63)) -\r\n 0x10000;\r\n out[c++] = String.fromCharCode(0xd800 + (u >> 10));\r\n out[c++] = String.fromCharCode(0xdc00 + (u & 1023));\r\n }\r\n else {\r\n const c2 = bytes[pos++];\r\n const c3 = bytes[pos++];\r\n out[c++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n }\r\n }\r\n return out.join('');\r\n};\r\n// We define it as an object literal instead of a class because a class compiled down to es5 can't\r\n// be treeshaked. https://github.com/rollup/rollup/issues/1691\r\n// Static lookup maps, lazily populated by init_()\r\nconst base64 = {\r\n /**\r\n * Maps bytes to characters.\r\n */\r\n byteToCharMap_: null,\r\n /**\r\n * Maps characters to bytes.\r\n */\r\n charToByteMap_: null,\r\n /**\r\n * Maps bytes to websafe characters.\r\n * @private\r\n */\r\n byteToCharMapWebSafe_: null,\r\n /**\r\n * Maps websafe characters to bytes.\r\n * @private\r\n */\r\n charToByteMapWebSafe_: null,\r\n /**\r\n * Our default alphabet, shared between\r\n * ENCODED_VALS and ENCODED_VALS_WEBSAFE\r\n */\r\n ENCODED_VALS_BASE: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789',\r\n /**\r\n * Our default alphabet. Value 64 (=) is special; it means \"nothing.\"\r\n */\r\n get ENCODED_VALS() {\r\n return this.ENCODED_VALS_BASE + '+/=';\r\n },\r\n /**\r\n * Our websafe alphabet.\r\n */\r\n get ENCODED_VALS_WEBSAFE() {\r\n return this.ENCODED_VALS_BASE + '-_.';\r\n },\r\n /**\r\n * Whether this browser supports the atob and btoa functions. This extension\r\n * started at Mozilla but is now implemented by many browsers. We use the\r\n * ASSUME_* variables to avoid pulling in the full useragent detection library\r\n * but still allowing the standard per-browser compilations.\r\n *\r\n */\r\n HAS_NATIVE_SUPPORT: typeof atob === 'function',\r\n /**\r\n * Base64-encode an array of bytes.\r\n *\r\n * @param input An array of bytes (numbers with\r\n * value in [0, 255]) to encode.\r\n * @param webSafe Boolean indicating we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeByteArray(input, webSafe) {\r\n if (!Array.isArray(input)) {\r\n throw Error('encodeByteArray takes an array as a parameter');\r\n }\r\n this.init_();\r\n const byteToCharMap = webSafe\r\n ? this.byteToCharMapWebSafe_\r\n : this.byteToCharMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length; i += 3) {\r\n const byte1 = input[i];\r\n const haveByte2 = i + 1 < input.length;\r\n const byte2 = haveByte2 ? input[i + 1] : 0;\r\n const haveByte3 = i + 2 < input.length;\r\n const byte3 = haveByte3 ? input[i + 2] : 0;\r\n const outByte1 = byte1 >> 2;\r\n const outByte2 = ((byte1 & 0x03) << 4) | (byte2 >> 4);\r\n let outByte3 = ((byte2 & 0x0f) << 2) | (byte3 >> 6);\r\n let outByte4 = byte3 & 0x3f;\r\n if (!haveByte3) {\r\n outByte4 = 64;\r\n if (!haveByte2) {\r\n outByte3 = 64;\r\n }\r\n }\r\n output.push(byteToCharMap[outByte1], byteToCharMap[outByte2], byteToCharMap[outByte3], byteToCharMap[outByte4]);\r\n }\r\n return output.join('');\r\n },\r\n /**\r\n * Base64-encode a string.\r\n *\r\n * @param input A string to encode.\r\n * @param webSafe If true, we should use the\r\n * alternative alphabet.\r\n * @return The base64 encoded string.\r\n */\r\n encodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return btoa(input);\r\n }\r\n return this.encodeByteArray(stringToByteArray$1(input), webSafe);\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * @param input to decode.\r\n * @param webSafe True if we should use the\r\n * alternative alphabet.\r\n * @return string representing the decoded value.\r\n */\r\n decodeString(input, webSafe) {\r\n // Shortcut for Mozilla browsers that implement\r\n // a native base64 encoder in the form of \"btoa/atob\"\r\n if (this.HAS_NATIVE_SUPPORT && !webSafe) {\r\n return atob(input);\r\n }\r\n return byteArrayToString(this.decodeStringToByteArray(input, webSafe));\r\n },\r\n /**\r\n * Base64-decode a string.\r\n *\r\n * In base-64 decoding, groups of four characters are converted into three\r\n * bytes. If the encoder did not apply padding, the input length may not\r\n * be a multiple of 4.\r\n *\r\n * In this case, the last group will have fewer than 4 characters, and\r\n * padding will be inferred. If the group has one or two characters, it decodes\r\n * to one byte. If the group has three characters, it decodes to two bytes.\r\n *\r\n * @param input Input to decode.\r\n * @param webSafe True if we should use the web-safe alphabet.\r\n * @return bytes representing the decoded value.\r\n */\r\n decodeStringToByteArray(input, webSafe) {\r\n this.init_();\r\n const charToByteMap = webSafe\r\n ? this.charToByteMapWebSafe_\r\n : this.charToByteMap_;\r\n const output = [];\r\n for (let i = 0; i < input.length;) {\r\n const byte1 = charToByteMap[input.charAt(i++)];\r\n const haveByte2 = i < input.length;\r\n const byte2 = haveByte2 ? charToByteMap[input.charAt(i)] : 0;\r\n ++i;\r\n const haveByte3 = i < input.length;\r\n const byte3 = haveByte3 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n const haveByte4 = i < input.length;\r\n const byte4 = haveByte4 ? charToByteMap[input.charAt(i)] : 64;\r\n ++i;\r\n if (byte1 == null || byte2 == null || byte3 == null || byte4 == null) {\r\n throw new DecodeBase64StringError();\r\n }\r\n const outByte1 = (byte1 << 2) | (byte2 >> 4);\r\n output.push(outByte1);\r\n if (byte3 !== 64) {\r\n const outByte2 = ((byte2 << 4) & 0xf0) | (byte3 >> 2);\r\n output.push(outByte2);\r\n if (byte4 !== 64) {\r\n const outByte3 = ((byte3 << 6) & 0xc0) | byte4;\r\n output.push(outByte3);\r\n }\r\n }\r\n }\r\n return output;\r\n },\r\n /**\r\n * Lazy static initialization function. Called before\r\n * accessing any of the static map variables.\r\n * @private\r\n */\r\n init_() {\r\n if (!this.byteToCharMap_) {\r\n this.byteToCharMap_ = {};\r\n this.charToByteMap_ = {};\r\n this.byteToCharMapWebSafe_ = {};\r\n this.charToByteMapWebSafe_ = {};\r\n // We want quick mappings back and forth, so we precompute two maps.\r\n for (let i = 0; i < this.ENCODED_VALS.length; i++) {\r\n this.byteToCharMap_[i] = this.ENCODED_VALS.charAt(i);\r\n this.charToByteMap_[this.byteToCharMap_[i]] = i;\r\n this.byteToCharMapWebSafe_[i] = this.ENCODED_VALS_WEBSAFE.charAt(i);\r\n this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[i]] = i;\r\n // Be forgiving when decoding and correctly decode both encodings.\r\n if (i >= this.ENCODED_VALS_BASE.length) {\r\n this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(i)] = i;\r\n this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(i)] = i;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n/**\r\n * An error encountered while decoding base64 string.\r\n */\r\nclass DecodeBase64StringError extends Error {\r\n constructor() {\r\n super(...arguments);\r\n this.name = 'DecodeBase64StringError';\r\n }\r\n}\r\n/**\r\n * URL-safe base64 encoding\r\n */\r\nconst base64Encode = function (str) {\r\n const utf8Bytes = stringToByteArray$1(str);\r\n return base64.encodeByteArray(utf8Bytes, true);\r\n};\r\n/**\r\n * URL-safe base64 encoding (without \".\" padding in the end).\r\n * e.g. Used in JSON Web Token (JWT) parts.\r\n */\r\nconst base64urlEncodeWithoutPadding = function (str) {\r\n // Use base64url encoding and remove padding in the end (dot characters).\r\n return base64Encode(str).replace(/\\./g, '');\r\n};\r\n/**\r\n * URL-safe base64 decoding\r\n *\r\n * NOTE: DO NOT use the global atob() function - it does NOT support the\r\n * base64Url variant encoding.\r\n *\r\n * @param str To be decoded\r\n * @return Decoded result, if possible\r\n */\r\nconst base64Decode = function (str) {\r\n try {\r\n return base64.decodeString(str, true);\r\n }\r\n catch (e) {\r\n console.error('base64Decode failed: ', e);\r\n }\r\n return null;\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 * Do a deep-copy of basic JavaScript Objects or Arrays.\r\n */\r\nfunction deepCopy(value) {\r\n return deepExtend(undefined, value);\r\n}\r\n/**\r\n * Copy properties from source to target (recursively allows extension\r\n * of Objects and Arrays). Scalar values in the target are over-written.\r\n * If target is undefined, an object of the appropriate type will be created\r\n * (and returned).\r\n *\r\n * We recursively copy all child properties of plain Objects in the source- so\r\n * that namespace- like dictionaries are merged.\r\n *\r\n * Note that the target can be a function, in which case the properties in\r\n * the source Object are copied onto it as static properties of the Function.\r\n *\r\n * Note: we don't merge __proto__ to prevent prototype pollution\r\n */\r\nfunction deepExtend(target, source) {\r\n if (!(source instanceof Object)) {\r\n return source;\r\n }\r\n switch (source.constructor) {\r\n case Date:\r\n // Treat Dates like scalars; if the target date object had any child\r\n // properties - they will be lost!\r\n const dateValue = source;\r\n return new Date(dateValue.getTime());\r\n case Object:\r\n if (target === undefined) {\r\n target = {};\r\n }\r\n break;\r\n case Array:\r\n // Always copy the array source and overwrite the target.\r\n target = [];\r\n break;\r\n default:\r\n // Not a plain Object - treat it as a scalar.\r\n return source;\r\n }\r\n for (const prop in source) {\r\n // use isValidKey to guard against prototype pollution. See https://snyk.io/vuln/SNYK-JS-LODASH-450202\r\n if (!source.hasOwnProperty(prop) || !isValidKey(prop)) {\r\n continue;\r\n }\r\n target[prop] = deepExtend(target[prop], source[prop]);\r\n }\r\n return target;\r\n}\r\nfunction isValidKey(key) {\r\n return key !== '__proto__';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 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 * Polyfill for `globalThis` object.\r\n * @returns the `globalThis` object for the given environment.\r\n * @public\r\n */\r\nfunction getGlobal() {\r\n if (typeof self !== 'undefined') {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined') {\r\n return window;\r\n }\r\n if (typeof global !== 'undefined') {\r\n return global;\r\n }\r\n throw new Error('Unable to locate global object.');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 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\nconst getDefaultsFromGlobal = () => getGlobal().__FIREBASE_DEFAULTS__;\r\n/**\r\n * Attempt to read defaults from a JSON string provided to\r\n * process(.)env(.)__FIREBASE_DEFAULTS__ or a JSON file whose path is in\r\n * process(.)env(.)__FIREBASE_DEFAULTS_PATH__\r\n * The dots are in parens because certain compilers (Vite?) cannot\r\n * handle seeing that variable in comments.\r\n * See https://github.com/firebase/firebase-js-sdk/issues/6838\r\n */\r\nconst getDefaultsFromEnvVariable = () => {\r\n if (typeof process === 'undefined' || typeof process.env === 'undefined') {\r\n return;\r\n }\r\n const defaultsJsonString = process.env.__FIREBASE_DEFAULTS__;\r\n if (defaultsJsonString) {\r\n return JSON.parse(defaultsJsonString);\r\n }\r\n};\r\nconst getDefaultsFromCookie = () => {\r\n if (typeof document === 'undefined') {\r\n return;\r\n }\r\n let match;\r\n try {\r\n match = document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/);\r\n }\r\n catch (e) {\r\n // Some environments such as Angular Universal SSR have a\r\n // `document` object but error on accessing `document.cookie`.\r\n return;\r\n }\r\n const decoded = match && base64Decode(match[1]);\r\n return decoded && JSON.parse(decoded);\r\n};\r\n/**\r\n * Get the __FIREBASE_DEFAULTS__ object. It checks in order:\r\n * (1) if such an object exists as a property of `globalThis`\r\n * (2) if such an object was provided on a shell environment variable\r\n * (3) if such an object exists in a cookie\r\n * @public\r\n */\r\nconst getDefaults = () => {\r\n try {\r\n return (getDefaultsFromGlobal() ||\r\n getDefaultsFromEnvVariable() ||\r\n getDefaultsFromCookie());\r\n }\r\n catch (e) {\r\n /**\r\n * Catch-all for being unable to get __FIREBASE_DEFAULTS__ due\r\n * to any environment case we have not accounted for. Log to\r\n * info instead of swallowing so we can find these unknown cases\r\n * and add paths for them if needed.\r\n */\r\n console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);\r\n return;\r\n }\r\n};\r\n/**\r\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHost = (productName) => { var _a, _b; return (_b = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.emulatorHosts) === null || _b === void 0 ? void 0 : _b[productName]; };\r\n/**\r\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\r\n * for the given product.\r\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\r\n * @public\r\n */\r\nconst getDefaultEmulatorHostnameAndPort = (productName) => {\r\n const host = getDefaultEmulatorHost(productName);\r\n if (!host) {\r\n return undefined;\r\n }\r\n const separatorIndex = host.lastIndexOf(':'); // Finding the last since IPv6 addr also has colons.\r\n if (separatorIndex <= 0 || separatorIndex + 1 === host.length) {\r\n throw new Error(`Invalid host ${host} with no separate hostname and port!`);\r\n }\r\n // eslint-disable-next-line no-restricted-globals\r\n const port = parseInt(host.substring(separatorIndex + 1), 10);\r\n if (host[0] === '[') {\r\n // Bracket-quoted `[ipv6addr]:port` => return \"ipv6addr\" (without brackets).\r\n return [host.substring(1, separatorIndex - 1), port];\r\n }\r\n else {\r\n return [host.substring(0, separatorIndex), port];\r\n }\r\n};\r\n/**\r\n * Returns Firebase app config stored in the __FIREBASE_DEFAULTS__ object.\r\n * @public\r\n */\r\nconst getDefaultAppConfig = () => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.config; };\r\n/**\r\n * Returns an experimental setting on the __FIREBASE_DEFAULTS__ object (properties\r\n * prefixed by \"_\")\r\n * @public\r\n */\r\nconst getExperimentalSetting = (name) => { var _a; return (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a[`_${name}`]; };\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\nclass Deferred {\r\n constructor() {\r\n this.reject = () => { };\r\n this.resolve = () => { };\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n });\r\n }\r\n /**\r\n * Our API internals are not promisified and cannot because our callback APIs have subtle expectations around\r\n * invoking promises inline, which Promises are forbidden to do. This method accepts an optional node-style callback\r\n * and returns a node-style callback which will resolve or reject the Deferred's promise.\r\n */\r\n wrapCallback(callback) {\r\n return (error, value) => {\r\n if (error) {\r\n this.reject(error);\r\n }\r\n else {\r\n this.resolve(value);\r\n }\r\n if (typeof callback === 'function') {\r\n // Attaching noop handler just in case developer wasn't expecting\r\n // promises\r\n this.promise.catch(() => { });\r\n // Some of our callbacks don't expect a value and our own tests\r\n // assert that the parameter length is 1\r\n if (callback.length === 1) {\r\n callback(error);\r\n }\r\n else {\r\n callback(error, value);\r\n }\r\n }\r\n };\r\n }\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\nfunction createMockUserToken(token, projectId) {\r\n if (token.uid) {\r\n throw new Error('The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.');\r\n }\r\n // Unsecured JWTs use \"none\" as the algorithm.\r\n const header = {\r\n alg: 'none',\r\n type: 'JWT'\r\n };\r\n const project = projectId || 'demo-project';\r\n const iat = token.iat || 0;\r\n const sub = token.sub || token.user_id;\r\n if (!sub) {\r\n throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");\r\n }\r\n const payload = Object.assign({ \r\n // Set all required fields to decent defaults\r\n iss: `https://securetoken.google.com/${project}`, aud: project, iat, exp: iat + 3600, auth_time: iat, sub, user_id: sub, firebase: {\r\n sign_in_provider: 'custom',\r\n identities: {}\r\n } }, token);\r\n // Unsecured JWTs use the empty string as a signature.\r\n const signature = '';\r\n return [\r\n base64urlEncodeWithoutPadding(JSON.stringify(header)),\r\n base64urlEncodeWithoutPadding(JSON.stringify(payload)),\r\n signature\r\n ].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 * Returns navigator.userAgent string or '' if it's not defined.\r\n * @return user agent string\r\n */\r\nfunction getUA() {\r\n if (typeof navigator !== 'undefined' &&\r\n typeof navigator['userAgent'] === 'string') {\r\n return navigator['userAgent'];\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\n/**\r\n * Detect Cordova / PhoneGap / Ionic frameworks on a mobile device.\r\n *\r\n * Deliberately does not rely on checking `file://` URLs (as this fails PhoneGap\r\n * in the Ripple emulator) nor Cordova `onDeviceReady`, which would normally\r\n * wait for a callback.\r\n */\r\nfunction isMobileCordova() {\r\n return (typeof window !== 'undefined' &&\r\n // @ts-ignore Setting up an broadly applicable index signature for Window\r\n // just to deal with this case would probably be a bad idea.\r\n !!(window['cordova'] || window['phonegap'] || window['PhoneGap']) &&\r\n /ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA()));\r\n}\r\n/**\r\n * Detect Node.js.\r\n *\r\n * @return true if Node.js environment is detected or specified.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\r\n var _a;\r\n const forceEnvironment = (_a = getDefaults()) === null || _a === void 0 ? void 0 : _a.forceEnvironment;\r\n if (forceEnvironment === 'node') {\r\n return true;\r\n }\r\n else if (forceEnvironment === 'browser') {\r\n return false;\r\n }\r\n try {\r\n return (Object.prototype.toString.call(global.process) === '[object process]');\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Detect Browser Environment.\r\n * Note: This will return true for certain test frameworks that are incompletely\r\n * mimicking a browser, and should not lead to assuming all browser APIs are\r\n * available.\r\n */\r\nfunction isBrowser() {\r\n return typeof window !== 'undefined' || isWebWorker();\r\n}\r\n/**\r\n * Detect Web Worker context.\r\n */\r\nfunction isWebWorker() {\r\n return (typeof WorkerGlobalScope !== 'undefined' &&\r\n typeof self !== 'undefined' &&\r\n self instanceof WorkerGlobalScope);\r\n}\r\n/**\r\n * Detect Cloudflare Worker context.\r\n */\r\nfunction isCloudflareWorker() {\r\n return (typeof navigator !== 'undefined' &&\r\n navigator.userAgent === 'Cloudflare-Workers');\r\n}\r\nfunction isBrowserExtension() {\r\n const runtime = typeof chrome === 'object'\r\n ? chrome.runtime\r\n : typeof browser === 'object'\r\n ? browser.runtime\r\n : undefined;\r\n return typeof runtime === 'object' && runtime.id !== undefined;\r\n}\r\n/**\r\n * Detect React Native.\r\n *\r\n * @return true if ReactNative environment is detected.\r\n */\r\nfunction isReactNative() {\r\n return (typeof navigator === 'object' && navigator['product'] === 'ReactNative');\r\n}\r\n/** Detects Electron apps. */\r\nfunction isElectron() {\r\n return getUA().indexOf('Electron/') >= 0;\r\n}\r\n/** Detects Internet Explorer. */\r\nfunction isIE() {\r\n const ua = getUA();\r\n return ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\r\n}\r\n/** Detects Universal Windows Platform apps. */\r\nfunction isUWP() {\r\n return getUA().indexOf('MSAppHost/') >= 0;\r\n}\r\n/**\r\n * Detect whether the current SDK build is the Node version.\r\n *\r\n * @return true if it's the Node SDK build.\r\n */\r\nfunction isNodeSdk() {\r\n return CONSTANTS.NODE_CLIENT === true || CONSTANTS.NODE_ADMIN === true;\r\n}\r\n/** Returns true if we are running in Safari. */\r\nfunction isSafari() {\r\n return (!isNode() &&\r\n !!navigator.userAgent &&\r\n navigator.userAgent.includes('Safari') &&\r\n !navigator.userAgent.includes('Chrome'));\r\n}\r\n/**\r\n * This method checks if indexedDB is supported by current browser/service worker context\r\n * @return true if indexedDB is supported by current browser/service worker context\r\n */\r\nfunction isIndexedDBAvailable() {\r\n try {\r\n return typeof indexedDB === 'object';\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n}\r\n/**\r\n * This method validates browser/sw context for indexedDB by opening a dummy indexedDB database and reject\r\n * if errors occur during the database open operation.\r\n *\r\n * @throws exception if current browser/sw context can't run idb.open (ex: Safari iframe, Firefox\r\n * private browsing)\r\n */\r\nfunction validateIndexedDBOpenable() {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let preExist = true;\r\n const DB_CHECK_NAME = 'validate-browser-context-for-indexeddb-analytics-module';\r\n const request = self.indexedDB.open(DB_CHECK_NAME);\r\n request.onsuccess = () => {\r\n request.result.close();\r\n // delete database only when it doesn't pre-exist\r\n if (!preExist) {\r\n self.indexedDB.deleteDatabase(DB_CHECK_NAME);\r\n }\r\n resolve(true);\r\n };\r\n request.onupgradeneeded = () => {\r\n preExist = false;\r\n };\r\n request.onerror = () => {\r\n var _a;\r\n reject(((_a = request.error) === null || _a === void 0 ? void 0 : _a.message) || '');\r\n };\r\n }\r\n catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n/**\r\n *\r\n * This method checks whether cookie is enabled within current browser\r\n * @return true if cookie is enabled within current browser\r\n */\r\nfunction areCookiesEnabled() {\r\n if (typeof navigator === 'undefined' || !navigator.cookieEnabled) {\r\n return false;\r\n }\r\n return true;\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 * @fileoverview Standardized Firebase Error.\r\n *\r\n * Usage:\r\n *\r\n * // TypeScript string literals for type-safe codes\r\n * type Err =\r\n * 'unknown' |\r\n * 'object-not-found'\r\n * ;\r\n *\r\n * // Closure enum for type-safe error codes\r\n * // at-enum {string}\r\n * var Err = {\r\n * UNKNOWN: 'unknown',\r\n * OBJECT_NOT_FOUND: 'object-not-found',\r\n * }\r\n *\r\n * let errors: Map = {\r\n * 'generic-error': \"Unknown error\",\r\n * 'file-not-found': \"Could not find file: {$file}\",\r\n * };\r\n *\r\n * // Type-safe function - must pass a valid error code as param.\r\n * let error = new ErrorFactory('service', 'Service', errors);\r\n *\r\n * ...\r\n * throw error.create(Err.GENERIC);\r\n * ...\r\n * throw error.create(Err.FILE_NOT_FOUND, {'file': fileName});\r\n * ...\r\n * // Service: Could not file file: foo.txt (service/file-not-found).\r\n *\r\n * catch (e) {\r\n * assert(e.message === \"Could not find file: foo.txt.\");\r\n * if ((e as FirebaseError)?.code === 'service/file-not-found') {\r\n * console.log(\"Could not read file: \" + e['file']);\r\n * }\r\n * }\r\n */\r\nconst ERROR_NAME = 'FirebaseError';\r\n// Based on code from:\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Custom_Error_Types\r\nclass FirebaseError extends Error {\r\n constructor(\r\n /** The error code for this error. */\r\n code, message, \r\n /** Custom data for this error. */\r\n customData) {\r\n super(message);\r\n this.code = code;\r\n this.customData = customData;\r\n /** The custom name for all FirebaseErrors. */\r\n this.name = ERROR_NAME;\r\n // Fix For ES5\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(this, FirebaseError.prototype);\r\n // Maintains proper stack trace for where our error was thrown.\r\n // Only available on V8.\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, ErrorFactory.prototype.create);\r\n }\r\n }\r\n}\r\nclass ErrorFactory {\r\n constructor(service, serviceName, errors) {\r\n this.service = service;\r\n this.serviceName = serviceName;\r\n this.errors = errors;\r\n }\r\n create(code, ...data) {\r\n const customData = data[0] || {};\r\n const fullCode = `${this.service}/${code}`;\r\n const template = this.errors[code];\r\n const message = template ? replaceTemplate(template, customData) : 'Error';\r\n // Service Name: Error message (service/code).\r\n const fullMessage = `${this.serviceName}: ${message} (${fullCode}).`;\r\n const error = new FirebaseError(fullCode, fullMessage, customData);\r\n return error;\r\n }\r\n}\r\nfunction replaceTemplate(template, data) {\r\n return template.replace(PATTERN, (_, key) => {\r\n const value = data[key];\r\n return value != null ? String(value) : `<${key}?>`;\r\n });\r\n}\r\nconst PATTERN = /\\{\\$([^}]+)}/g;\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 * Evaluates a JSON string into a javascript object.\r\n *\r\n * @param {string} str A string containing JSON.\r\n * @return {*} The javascript object representing the specified JSON.\r\n */\r\nfunction jsonEval(str) {\r\n return JSON.parse(str);\r\n}\r\n/**\r\n * Returns JSON representing a javascript object.\r\n * @param {*} data JavaScript object to be stringified.\r\n * @return {string} The JSON contents of the object.\r\n */\r\nfunction stringify(data) {\r\n return JSON.stringify(data);\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 * Decodes a Firebase auth. token into constituent parts.\r\n *\r\n * Notes:\r\n * - May return with invalid / incomplete claims if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst decode = function (token) {\r\n let header = {}, claims = {}, data = {}, signature = '';\r\n try {\r\n const parts = token.split('.');\r\n header = jsonEval(base64Decode(parts[0]) || '');\r\n claims = jsonEval(base64Decode(parts[1]) || '');\r\n signature = parts[2];\r\n data = claims['d'] || {};\r\n delete claims['d'];\r\n }\r\n catch (e) { }\r\n return {\r\n header,\r\n claims,\r\n data,\r\n signature\r\n };\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its time-based claims. Will return true if the\r\n * token is within the time window authorized by the 'nbf' (not-before) and 'iat' (issued-at) claims.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidTimestamp = function (token) {\r\n const claims = decode(token).claims;\r\n const now = Math.floor(new Date().getTime() / 1000);\r\n let validSince = 0, validUntil = 0;\r\n if (typeof claims === 'object') {\r\n if (claims.hasOwnProperty('nbf')) {\r\n validSince = claims['nbf'];\r\n }\r\n else if (claims.hasOwnProperty('iat')) {\r\n validSince = claims['iat'];\r\n }\r\n if (claims.hasOwnProperty('exp')) {\r\n validUntil = claims['exp'];\r\n }\r\n else {\r\n // token will expire after 24h by default\r\n validUntil = validSince + 86400;\r\n }\r\n }\r\n return (!!now &&\r\n !!validSince &&\r\n !!validUntil &&\r\n now >= validSince &&\r\n now <= validUntil);\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and returns its issued at time if valid, null otherwise.\r\n *\r\n * Notes:\r\n * - May return null if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst issuedAtTime = function (token) {\r\n const claims = decode(token).claims;\r\n if (typeof claims === 'object' && claims.hasOwnProperty('iat')) {\r\n return claims['iat'];\r\n }\r\n return null;\r\n};\r\n/**\r\n * Decodes a Firebase auth. token and checks the validity of its format. Expects a valid issued-at time.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isValidFormat = function (token) {\r\n const decoded = decode(token), claims = decoded.claims;\r\n return !!claims && typeof claims === 'object' && claims.hasOwnProperty('iat');\r\n};\r\n/**\r\n * Attempts to peer into an auth token and determine if it's an admin auth token by looking at the claims portion.\r\n *\r\n * Notes:\r\n * - May return a false negative if there's no native base64 decoding support.\r\n * - Doesn't check if the token is actually valid.\r\n */\r\nconst isAdmin = function (token) {\r\n const claims = decode(token).claims;\r\n return typeof claims === 'object' && claims['admin'] === true;\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\nfunction contains(obj, key) {\r\n return Object.prototype.hasOwnProperty.call(obj, key);\r\n}\r\nfunction safeGet(obj, key) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return obj[key];\r\n }\r\n else {\r\n return undefined;\r\n }\r\n}\r\nfunction isEmpty(obj) {\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction map(obj, fn, contextObj) {\r\n const res = {};\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n res[key] = fn.call(contextObj, obj[key], key, obj);\r\n }\r\n }\r\n return res;\r\n}\r\n/**\r\n * Deep equal two objects. Support Arrays and Objects.\r\n */\r\nfunction deepEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n const aKeys = Object.keys(a);\r\n const bKeys = Object.keys(b);\r\n for (const k of aKeys) {\r\n if (!bKeys.includes(k)) {\r\n return false;\r\n }\r\n const aProp = a[k];\r\n const bProp = b[k];\r\n if (isObject(aProp) && isObject(bProp)) {\r\n if (!deepEqual(aProp, bProp)) {\r\n return false;\r\n }\r\n }\r\n else if (aProp !== bProp) {\r\n return false;\r\n }\r\n }\r\n for (const k of bKeys) {\r\n if (!aKeys.includes(k)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isObject(thing) {\r\n return thing !== null && typeof thing === 'object';\r\n}\n\n/**\r\n * @license\r\n * Copyright 2022 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 * Rejects if the given promise doesn't resolve in timeInMS milliseconds.\r\n * @internal\r\n */\r\nfunction promiseWithTimeout(promise, timeInMS = 2000) {\r\n const deferredPromise = new Deferred();\r\n setTimeout(() => deferredPromise.reject('timeout!'), timeInMS);\r\n promise.then(deferredPromise.resolve, deferredPromise.reject);\r\n return deferredPromise.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\n/**\r\n * Returns a querystring-formatted string (e.g. &arg=val&arg2=val2) from a\r\n * params object (e.g. {arg: 'val', arg2: 'val2'})\r\n * Note: You must prepend it with ? when adding it to a URL.\r\n */\r\nfunction querystring(querystringParams) {\r\n const params = [];\r\n for (const [key, value] of Object.entries(querystringParams)) {\r\n if (Array.isArray(value)) {\r\n value.forEach(arrayVal => {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(arrayVal));\r\n });\r\n }\r\n else {\r\n params.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\r\n }\r\n }\r\n return params.length ? '&' + params.join('&') : '';\r\n}\r\n/**\r\n * Decodes a querystring (e.g. ?arg=val&arg2=val2) into a params object\r\n * (e.g. {arg: 'val', arg2: 'val2'})\r\n */\r\nfunction querystringDecode(querystring) {\r\n const obj = {};\r\n const tokens = querystring.replace(/^\\?/, '').split('&');\r\n tokens.forEach(token => {\r\n if (token) {\r\n const [key, value] = token.split('=');\r\n obj[decodeURIComponent(key)] = decodeURIComponent(value);\r\n }\r\n });\r\n return obj;\r\n}\r\n/**\r\n * Extract the query string part of a URL, including the leading question mark (if present).\r\n */\r\nfunction extractQuerystring(url) {\r\n const queryStart = url.indexOf('?');\r\n if (!queryStart) {\r\n return '';\r\n }\r\n const fragmentStart = url.indexOf('#', queryStart);\r\n return url.substring(queryStart, fragmentStart > 0 ? fragmentStart : undefined);\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 * @fileoverview SHA-1 cryptographic hash.\r\n * Variable names follow the notation in FIPS PUB 180-3:\r\n * http://csrc.nist.gov/publications/fips/fips180-3/fips180-3_final.pdf.\r\n *\r\n * Usage:\r\n * var sha1 = new sha1();\r\n * sha1.update(bytes);\r\n * var hash = sha1.digest();\r\n *\r\n * Performance:\r\n * Chrome 23: ~400 Mbit/s\r\n * Firefox 16: ~250 Mbit/s\r\n *\r\n */\r\n/**\r\n * SHA-1 cryptographic hash constructor.\r\n *\r\n * The properties declared here are discussed in the above algorithm document.\r\n * @constructor\r\n * @final\r\n * @struct\r\n */\r\nclass Sha1 {\r\n constructor() {\r\n /**\r\n * Holds the previous values of accumulated variables a-e in the compress_\r\n * function.\r\n * @private\r\n */\r\n this.chain_ = [];\r\n /**\r\n * A buffer holding the partially computed hash result.\r\n * @private\r\n */\r\n this.buf_ = [];\r\n /**\r\n * An array of 80 bytes, each a part of the message to be hashed. Referred to\r\n * as the message schedule in the docs.\r\n * @private\r\n */\r\n this.W_ = [];\r\n /**\r\n * Contains data needed to pad messages less than 64 bytes.\r\n * @private\r\n */\r\n this.pad_ = [];\r\n /**\r\n * @private {number}\r\n */\r\n this.inbuf_ = 0;\r\n /**\r\n * @private {number}\r\n */\r\n this.total_ = 0;\r\n this.blockSize = 512 / 8;\r\n this.pad_[0] = 128;\r\n for (let i = 1; i < this.blockSize; ++i) {\r\n this.pad_[i] = 0;\r\n }\r\n this.reset();\r\n }\r\n reset() {\r\n this.chain_[0] = 0x67452301;\r\n this.chain_[1] = 0xefcdab89;\r\n this.chain_[2] = 0x98badcfe;\r\n this.chain_[3] = 0x10325476;\r\n this.chain_[4] = 0xc3d2e1f0;\r\n this.inbuf_ = 0;\r\n this.total_ = 0;\r\n }\r\n /**\r\n * Internal compress helper function.\r\n * @param buf Block to compress.\r\n * @param offset Offset of the block in the buffer.\r\n * @private\r\n */\r\n compress_(buf, offset) {\r\n if (!offset) {\r\n offset = 0;\r\n }\r\n const W = this.W_;\r\n // get 16 big endian words\r\n if (typeof buf === 'string') {\r\n for (let i = 0; i < 16; i++) {\r\n // TODO(user): [bug 8140122] Recent versions of Safari for Mac OS and iOS\r\n // have a bug that turns the post-increment ++ operator into pre-increment\r\n // during JIT compilation. We have code that depends heavily on SHA-1 for\r\n // correctness and which is affected by this bug, so I've removed all uses\r\n // of post-increment ++ in which the result value is used. We can revert\r\n // this change once the Safari bug\r\n // (https://bugs.webkit.org/show_bug.cgi?id=109036) has been fixed and\r\n // most clients have been updated.\r\n W[i] =\r\n (buf.charCodeAt(offset) << 24) |\r\n (buf.charCodeAt(offset + 1) << 16) |\r\n (buf.charCodeAt(offset + 2) << 8) |\r\n buf.charCodeAt(offset + 3);\r\n offset += 4;\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < 16; i++) {\r\n W[i] =\r\n (buf[offset] << 24) |\r\n (buf[offset + 1] << 16) |\r\n (buf[offset + 2] << 8) |\r\n buf[offset + 3];\r\n offset += 4;\r\n }\r\n }\r\n // expand to 80 words\r\n for (let i = 16; i < 80; i++) {\r\n const t = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\r\n W[i] = ((t << 1) | (t >>> 31)) & 0xffffffff;\r\n }\r\n let a = this.chain_[0];\r\n let b = this.chain_[1];\r\n let c = this.chain_[2];\r\n let d = this.chain_[3];\r\n let e = this.chain_[4];\r\n let f, k;\r\n // TODO(user): Try to unroll this loop to speed up the computation.\r\n for (let i = 0; i < 80; i++) {\r\n if (i < 40) {\r\n if (i < 20) {\r\n f = d ^ (b & (c ^ d));\r\n k = 0x5a827999;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0x6ed9eba1;\r\n }\r\n }\r\n else {\r\n if (i < 60) {\r\n f = (b & c) | (d & (b | c));\r\n k = 0x8f1bbcdc;\r\n }\r\n else {\r\n f = b ^ c ^ d;\r\n k = 0xca62c1d6;\r\n }\r\n }\r\n const t = (((a << 5) | (a >>> 27)) + f + e + k + W[i]) & 0xffffffff;\r\n e = d;\r\n d = c;\r\n c = ((b << 30) | (b >>> 2)) & 0xffffffff;\r\n b = a;\r\n a = t;\r\n }\r\n this.chain_[0] = (this.chain_[0] + a) & 0xffffffff;\r\n this.chain_[1] = (this.chain_[1] + b) & 0xffffffff;\r\n this.chain_[2] = (this.chain_[2] + c) & 0xffffffff;\r\n this.chain_[3] = (this.chain_[3] + d) & 0xffffffff;\r\n this.chain_[4] = (this.chain_[4] + e) & 0xffffffff;\r\n }\r\n update(bytes, length) {\r\n // TODO(johnlenz): tighten the function signature and remove this check\r\n if (bytes == null) {\r\n return;\r\n }\r\n if (length === undefined) {\r\n length = bytes.length;\r\n }\r\n const lengthMinusBlock = length - this.blockSize;\r\n let n = 0;\r\n // Using local instead of member variables gives ~5% speedup on Firefox 16.\r\n const buf = this.buf_;\r\n let inbuf = this.inbuf_;\r\n // The outer while loop should execute at most twice.\r\n while (n < length) {\r\n // When we have no data in the block to top up, we can directly process the\r\n // input buffer (assuming it contains sufficient data). This gives ~25%\r\n // speedup on Chrome 23 and ~15% speedup on Firefox 16, but requires that\r\n // the data is provided in large chunks (or in multiples of 64 bytes).\r\n if (inbuf === 0) {\r\n while (n <= lengthMinusBlock) {\r\n this.compress_(bytes, n);\r\n n += this.blockSize;\r\n }\r\n }\r\n if (typeof bytes === 'string') {\r\n while (n < length) {\r\n buf[inbuf] = bytes.charCodeAt(n);\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n while (n < length) {\r\n buf[inbuf] = bytes[n];\r\n ++inbuf;\r\n ++n;\r\n if (inbuf === this.blockSize) {\r\n this.compress_(buf);\r\n inbuf = 0;\r\n // Jump to the outer loop so we use the full-block optimization.\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.inbuf_ = inbuf;\r\n this.total_ += length;\r\n }\r\n /** @override */\r\n digest() {\r\n const digest = [];\r\n let totalBits = this.total_ * 8;\r\n // Add pad 0x80 0x00*.\r\n if (this.inbuf_ < 56) {\r\n this.update(this.pad_, 56 - this.inbuf_);\r\n }\r\n else {\r\n this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));\r\n }\r\n // Add # bits.\r\n for (let i = this.blockSize - 1; i >= 56; i--) {\r\n this.buf_[i] = totalBits & 255;\r\n totalBits /= 256; // Don't use bit-shifting here!\r\n }\r\n this.compress_(this.buf_);\r\n let n = 0;\r\n for (let i = 0; i < 5; i++) {\r\n for (let j = 24; j >= 0; j -= 8) {\r\n digest[n] = (this.chain_[i] >> j) & 255;\r\n ++n;\r\n }\r\n }\r\n return digest;\r\n }\r\n}\n\n/**\r\n * Helper to make a Subscribe function (just like Promise helps make a\r\n * Thenable).\r\n *\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\nfunction createSubscribe(executor, onNoObservers) {\r\n const proxy = new ObserverProxy(executor, onNoObservers);\r\n return proxy.subscribe.bind(proxy);\r\n}\r\n/**\r\n * Implement fan-out for any number of Observers attached via a subscribe\r\n * function.\r\n */\r\nclass ObserverProxy {\r\n /**\r\n * @param executor Function which can make calls to a single Observer\r\n * as a proxy.\r\n * @param onNoObservers Callback when count of Observers goes to zero.\r\n */\r\n constructor(executor, onNoObservers) {\r\n this.observers = [];\r\n this.unsubscribes = [];\r\n this.observerCount = 0;\r\n // Micro-task scheduling by calling task.then().\r\n this.task = Promise.resolve();\r\n this.finalized = false;\r\n this.onNoObservers = onNoObservers;\r\n // Call the executor asynchronously so subscribers that are called\r\n // synchronously after the creation of the subscribe function\r\n // can still receive the very first value generated in the executor.\r\n this.task\r\n .then(() => {\r\n executor(this);\r\n })\r\n .catch(e => {\r\n this.error(e);\r\n });\r\n }\r\n next(value) {\r\n this.forEachObserver((observer) => {\r\n observer.next(value);\r\n });\r\n }\r\n error(error) {\r\n this.forEachObserver((observer) => {\r\n observer.error(error);\r\n });\r\n this.close(error);\r\n }\r\n complete() {\r\n this.forEachObserver((observer) => {\r\n observer.complete();\r\n });\r\n this.close();\r\n }\r\n /**\r\n * Subscribe function that can be used to add an Observer to the fan-out list.\r\n *\r\n * - We require that no event is sent to a subscriber synchronously to their\r\n * call to subscribe().\r\n */\r\n subscribe(nextOrObserver, error, complete) {\r\n let observer;\r\n if (nextOrObserver === undefined &&\r\n error === undefined &&\r\n complete === undefined) {\r\n throw new Error('Missing Observer.');\r\n }\r\n // Assemble an Observer object when passed as callback functions.\r\n if (implementsAnyMethods(nextOrObserver, [\r\n 'next',\r\n 'error',\r\n 'complete'\r\n ])) {\r\n observer = nextOrObserver;\r\n }\r\n else {\r\n observer = {\r\n next: nextOrObserver,\r\n error,\r\n complete\r\n };\r\n }\r\n if (observer.next === undefined) {\r\n observer.next = noop;\r\n }\r\n if (observer.error === undefined) {\r\n observer.error = noop;\r\n }\r\n if (observer.complete === undefined) {\r\n observer.complete = noop;\r\n }\r\n const unsub = this.unsubscribeOne.bind(this, this.observers.length);\r\n // Attempt to subscribe to a terminated Observable - we\r\n // just respond to the Observer with the final error or complete\r\n // event.\r\n if (this.finalized) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n try {\r\n if (this.finalError) {\r\n observer.error(this.finalError);\r\n }\r\n else {\r\n observer.complete();\r\n }\r\n }\r\n catch (e) {\r\n // nothing\r\n }\r\n return;\r\n });\r\n }\r\n this.observers.push(observer);\r\n return unsub;\r\n }\r\n // Unsubscribe is synchronous - we guarantee that no events are sent to\r\n // any unsubscribed Observer.\r\n unsubscribeOne(i) {\r\n if (this.observers === undefined || this.observers[i] === undefined) {\r\n return;\r\n }\r\n delete this.observers[i];\r\n this.observerCount -= 1;\r\n if (this.observerCount === 0 && this.onNoObservers !== undefined) {\r\n this.onNoObservers(this);\r\n }\r\n }\r\n forEachObserver(fn) {\r\n if (this.finalized) {\r\n // Already closed by previous event....just eat the additional values.\r\n return;\r\n }\r\n // Since sendOne calls asynchronously - there is no chance that\r\n // this.observers will become undefined.\r\n for (let i = 0; i < this.observers.length; i++) {\r\n this.sendOne(i, fn);\r\n }\r\n }\r\n // Call the Observer via one of it's callback function. We are careful to\r\n // confirm that the observe has not been unsubscribed since this asynchronous\r\n // function had been queued.\r\n sendOne(i, fn) {\r\n // Execute the callback asynchronously\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n if (this.observers !== undefined && this.observers[i] !== undefined) {\r\n try {\r\n fn(this.observers[i]);\r\n }\r\n catch (e) {\r\n // Ignore exceptions raised in Observers or missing methods of an\r\n // Observer.\r\n // Log error to console. b/31404806\r\n if (typeof console !== 'undefined' && console.error) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n close(err) {\r\n if (this.finalized) {\r\n return;\r\n }\r\n this.finalized = true;\r\n if (err !== undefined) {\r\n this.finalError = err;\r\n }\r\n // Proxy is no longer needed - garbage collect references\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.task.then(() => {\r\n this.observers = undefined;\r\n this.onNoObservers = undefined;\r\n });\r\n }\r\n}\r\n/** Turn synchronous function into one called asynchronously. */\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nfunction async(fn, onError) {\r\n return (...args) => {\r\n Promise.resolve(true)\r\n .then(() => {\r\n fn(...args);\r\n })\r\n .catch((error) => {\r\n if (onError) {\r\n onError(error);\r\n }\r\n });\r\n };\r\n}\r\n/**\r\n * Return true if the object passed in implements any of the named methods.\r\n */\r\nfunction implementsAnyMethods(obj, methods) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return false;\r\n }\r\n for (const method of methods) {\r\n if (method in obj && typeof obj[method] === 'function') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction noop() {\r\n // do nothing\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 * Check to make sure the appropriate number of arguments are provided for a public function.\r\n * Throws an error if it fails.\r\n *\r\n * @param fnName The function name\r\n * @param minCount The minimum number of arguments to allow for the function call\r\n * @param maxCount The maximum number of argument to allow for the function call\r\n * @param argCount The actual number of arguments provided.\r\n */\r\nconst validateArgCount = function (fnName, minCount, maxCount, argCount) {\r\n let argError;\r\n if (argCount < minCount) {\r\n argError = 'at least ' + minCount;\r\n }\r\n else if (argCount > maxCount) {\r\n argError = maxCount === 0 ? 'none' : 'no more than ' + maxCount;\r\n }\r\n if (argError) {\r\n const error = fnName +\r\n ' failed: Was called with ' +\r\n argCount +\r\n (argCount === 1 ? ' argument.' : ' arguments.') +\r\n ' Expects ' +\r\n argError +\r\n '.';\r\n throw new Error(error);\r\n }\r\n};\r\n/**\r\n * Generates a string to prefix an error message about failed argument validation\r\n *\r\n * @param fnName The function name\r\n * @param argName The name of the argument\r\n * @return The prefix to add to the error thrown for validation.\r\n */\r\nfunction errorPrefix(fnName, argName) {\r\n return `${fnName} failed: ${argName} argument `;\r\n}\r\n/**\r\n * @param fnName\r\n * @param argumentNumber\r\n * @param namespace\r\n * @param optional\r\n */\r\nfunction validateNamespace(fnName, namespace, optional) {\r\n if (optional && !namespace) {\r\n return;\r\n }\r\n if (typeof namespace !== 'string') {\r\n //TODO: I should do more validation here. We only allow certain chars in namespaces.\r\n throw new Error(errorPrefix(fnName, 'namespace') + 'must be a valid firebase namespace.');\r\n }\r\n}\r\nfunction validateCallback(fnName, argumentName, \r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\ncallback, optional) {\r\n if (optional && !callback) {\r\n return;\r\n }\r\n if (typeof callback !== 'function') {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid function.');\r\n }\r\n}\r\nfunction validateContextObject(fnName, argumentName, context, optional) {\r\n if (optional && !context) {\r\n return;\r\n }\r\n if (typeof context !== 'object' || context === null) {\r\n throw new Error(errorPrefix(fnName, argumentName) + 'must be a valid context object.');\r\n }\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// Code originally came from goog.crypt.stringToUtf8ByteArray, but for some reason they\r\n// automatically replaced '\\r\\n' with '\\n', and they didn't handle surrogate pairs,\r\n// so it's been modified.\r\n// Note that not all Unicode characters appear as single characters in JavaScript strings.\r\n// fromCharCode returns the UTF-16 encoding of a character - so some Unicode characters\r\n// use 2 characters in JavaScript. All 4-byte UTF-8 characters begin with a first\r\n// character in the range 0xD800 - 0xDBFF (the first character of a so-called surrogate\r\n// pair).\r\n// See http://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3\r\n/**\r\n * @param {string} str\r\n * @return {Array}\r\n */\r\nconst stringToByteArray = function (str) {\r\n const out = [];\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n let c = str.charCodeAt(i);\r\n // Is this the lead surrogate in a surrogate pair?\r\n if (c >= 0xd800 && c <= 0xdbff) {\r\n const high = c - 0xd800; // the high 10 bits.\r\n i++;\r\n assert(i < str.length, 'Surrogate pair missing trail surrogate.');\r\n const low = str.charCodeAt(i) - 0xdc00; // the low 10 bits.\r\n c = 0x10000 + (high << 10) + low;\r\n }\r\n if (c < 128) {\r\n out[p++] = c;\r\n }\r\n else if (c < 2048) {\r\n out[p++] = (c >> 6) | 192;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else if (c < 65536) {\r\n out[p++] = (c >> 12) | 224;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n else {\r\n out[p++] = (c >> 18) | 240;\r\n out[p++] = ((c >> 12) & 63) | 128;\r\n out[p++] = ((c >> 6) & 63) | 128;\r\n out[p++] = (c & 63) | 128;\r\n }\r\n }\r\n return out;\r\n};\r\n/**\r\n * Calculate length without actually converting; useful for doing cheaper validation.\r\n * @param {string} str\r\n * @return {number}\r\n */\r\nconst stringLength = function (str) {\r\n let p = 0;\r\n for (let i = 0; i < str.length; i++) {\r\n const c = str.charCodeAt(i);\r\n if (c < 128) {\r\n p++;\r\n }\r\n else if (c < 2048) {\r\n p += 2;\r\n }\r\n else if (c >= 0xd800 && c <= 0xdbff) {\r\n // Lead surrogate of a surrogate pair. The pair together will take 4 bytes to represent.\r\n p += 4;\r\n i++; // skip trail surrogate.\r\n }\r\n else {\r\n p += 3;\r\n }\r\n }\r\n return p;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2022 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 * Copied from https://stackoverflow.com/a/2117523\r\n * Generates a new uuid.\r\n * @public\r\n */\r\nconst uuidv4 = function () {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n const r = (Math.random() * 16) | 0, v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n};\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/**\r\n * The amount of milliseconds to exponentially increase.\r\n */\r\nconst DEFAULT_INTERVAL_MILLIS = 1000;\r\n/**\r\n * The factor to backoff by.\r\n * Should be a number greater than 1.\r\n */\r\nconst DEFAULT_BACKOFF_FACTOR = 2;\r\n/**\r\n * The maximum milliseconds to increase to.\r\n *\r\n *
Visible for testing\r\n */\r\nconst MAX_VALUE_MILLIS = 4 * 60 * 60 * 1000; // Four hours, like iOS and Android.\r\n/**\r\n * The percentage of backoff time to randomize by.\r\n * See\r\n * http://go/safe-client-behavior#step-1-determine-the-appropriate-retry-interval-to-handle-spike-traffic\r\n * for context.\r\n *\r\n *
Visible for testing\r\n */\r\nconst RANDOM_FACTOR = 0.5;\r\n/**\r\n * Based on the backoff method from\r\n * https://github.com/google/closure-library/blob/master/closure/goog/math/exponentialbackoff.js.\r\n * Extracted here so we don't need to pass metadata and a stateful ExponentialBackoff object around.\r\n */\r\nfunction calculateBackoffMillis(backoffCount, intervalMillis = DEFAULT_INTERVAL_MILLIS, backoffFactor = DEFAULT_BACKOFF_FACTOR) {\r\n // Calculates an exponentially increasing value.\r\n // Deviation: calculates value from count and a constant interval, so we only need to save value\r\n // and count to restore state.\r\n const currBaseValue = intervalMillis * Math.pow(backoffFactor, backoffCount);\r\n // A random \"fuzz\" to avoid waves of retries.\r\n // Deviation: randomFactor is required.\r\n const randomWait = Math.round(\r\n // A fraction of the backoff value to add/subtract.\r\n // Deviation: changes multiplication order to improve readability.\r\n RANDOM_FACTOR *\r\n currBaseValue *\r\n // A random float (rounded to int by Math.round above) in the range [-1, 1]. Determines\r\n // if we add or subtract.\r\n (Math.random() - 0.5) *\r\n 2);\r\n // Limits backoff to max to avoid effectively permanent backoff.\r\n return Math.min(MAX_VALUE_MILLIS, currBaseValue + randomWait);\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 * Provide English ordinal letters after a number\r\n */\r\nfunction ordinal(i) {\r\n if (!Number.isFinite(i)) {\r\n return `${i}`;\r\n }\r\n return i + indicator(i);\r\n}\r\nfunction indicator(i) {\r\n i = Math.abs(i);\r\n const cent = i % 100;\r\n if (cent >= 10 && cent <= 20) {\r\n return 'th';\r\n }\r\n const dec = i % 10;\r\n if (dec === 1) {\r\n return 'st';\r\n }\r\n if (dec === 2) {\r\n return 'nd';\r\n }\r\n if (dec === 3) {\r\n return 'rd';\r\n }\r\n return 'th';\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\nfunction getModularInstance(service) {\r\n if (service && service._delegate) {\r\n return service._delegate;\r\n }\r\n else {\r\n return service;\r\n }\r\n}\n\nexport { CONSTANTS, DecodeBase64StringError, Deferred, ErrorFactory, FirebaseError, MAX_VALUE_MILLIS, RANDOM_FACTOR, Sha1, areCookiesEnabled, assert, assertionError, async, base64, base64Decode, base64Encode, base64urlEncodeWithoutPadding, calculateBackoffMillis, contains, createMockUserToken, createSubscribe, decode, deepCopy, deepEqual, deepExtend, errorPrefix, extractQuerystring, getDefaultAppConfig, getDefaultEmulatorHost, getDefaultEmulatorHostnameAndPort, getDefaults, getExperimentalSetting, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isCloudflareWorker, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, isWebWorker, issuedAtTime, jsonEval, map, ordinal, promiseWithTimeout, querystring, querystringDecode, safeGet, stringLength, stringToByteArray, stringify, uuidv4, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };\n//# sourceMappingURL=index.esm2017.js.map\n","import { Deferred } from '@firebase/util';\n\n/**\r\n * Component for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass Component {\r\n /**\r\n *\r\n * @param name The public service name, e.g. app, auth, firestore, database\r\n * @param instanceFactory Service factory responsible for creating the public interface\r\n * @param type whether the service provided by the component is public or private\r\n */\r\n constructor(name, instanceFactory, type) {\r\n this.name = name;\r\n this.instanceFactory = instanceFactory;\r\n this.type = type;\r\n this.multipleInstances = false;\r\n /**\r\n * Properties to be added to the service namespace\r\n */\r\n this.serviceProps = {};\r\n this.instantiationMode = \"LAZY\" /* InstantiationMode.LAZY */;\r\n this.onInstanceCreated = null;\r\n }\r\n setInstantiationMode(mode) {\r\n this.instantiationMode = mode;\r\n return this;\r\n }\r\n setMultipleInstances(multipleInstances) {\r\n this.multipleInstances = multipleInstances;\r\n return this;\r\n }\r\n setServiceProps(props) {\r\n this.serviceProps = props;\r\n return this;\r\n }\r\n setInstanceCreatedCallback(callback) {\r\n this.onInstanceCreated = callback;\r\n return this;\r\n }\r\n}\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\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\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/**\r\n * Provider for instance for service name T, e.g. 'auth', 'auth-internal'\r\n * NameServiceMapping[T] is an alias for the type of the instance\r\n */\r\nclass Provider {\r\n constructor(name, container) {\r\n this.name = name;\r\n this.container = container;\r\n this.component = null;\r\n this.instances = new Map();\r\n this.instancesDeferred = new Map();\r\n this.instancesOptions = new Map();\r\n this.onInitCallbacks = new Map();\r\n }\r\n /**\r\n * @param identifier A provider can provide multiple instances of a service\r\n * if this.component.multipleInstances is true.\r\n */\r\n get(identifier) {\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n if (!this.instancesDeferred.has(normalizedIdentifier)) {\r\n const deferred = new Deferred();\r\n this.instancesDeferred.set(normalizedIdentifier, deferred);\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n // initialize the service if it can be auto-initialized\r\n try {\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n if (instance) {\r\n deferred.resolve(instance);\r\n }\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception during get(), it should not cause\r\n // a fatal error. We just return the unresolved promise in this case.\r\n }\r\n }\r\n }\r\n return this.instancesDeferred.get(normalizedIdentifier).promise;\r\n }\r\n getImmediate(options) {\r\n var _a;\r\n // if multipleInstances is not supported, use the default name\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(options === null || options === void 0 ? void 0 : options.identifier);\r\n const optional = (_a = options === null || options === void 0 ? void 0 : options.optional) !== null && _a !== void 0 ? _a : false;\r\n if (this.isInitialized(normalizedIdentifier) ||\r\n this.shouldAutoInitialize()) {\r\n try {\r\n return this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n }\r\n catch (e) {\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n else {\r\n // In case a component is not initialized and should/cannot be auto-initialized at the moment, return null if the optional flag is set, or throw\r\n if (optional) {\r\n return null;\r\n }\r\n else {\r\n throw Error(`Service ${this.name} is not available`);\r\n }\r\n }\r\n }\r\n getComponent() {\r\n return this.component;\r\n }\r\n setComponent(component) {\r\n if (component.name !== this.name) {\r\n throw Error(`Mismatching Component ${component.name} for Provider ${this.name}.`);\r\n }\r\n if (this.component) {\r\n throw Error(`Component for ${this.name} has already been provided`);\r\n }\r\n this.component = component;\r\n // return early without attempting to initialize the component if the component requires explicit initialization (calling `Provider.initialize()`)\r\n if (!this.shouldAutoInitialize()) {\r\n return;\r\n }\r\n // if the service is eager, initialize the default instance\r\n if (isComponentEager(component)) {\r\n try {\r\n this.getOrInitializeService({ instanceIdentifier: DEFAULT_ENTRY_NAME });\r\n }\r\n catch (e) {\r\n // when the instance factory for an eager Component throws an exception during the eager\r\n // initialization, it should not cause a fatal error.\r\n // TODO: Investigate if we need to make it configurable, because some component may want to cause\r\n // a fatal error in this case?\r\n }\r\n }\r\n // Create service instances for the pending promises and resolve them\r\n // NOTE: if this.multipleInstances is false, only the default instance will be created\r\n // and all promises with resolve with it regardless of the identifier.\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n try {\r\n // `getOrInitializeService()` should always return a valid instance since a component is guaranteed. use ! to make typescript happy.\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier\r\n });\r\n instanceDeferred.resolve(instance);\r\n }\r\n catch (e) {\r\n // when the instance factory throws an exception, it should not cause\r\n // a fatal error. We just leave the promise unresolved.\r\n }\r\n }\r\n }\r\n clearInstance(identifier = DEFAULT_ENTRY_NAME) {\r\n this.instancesDeferred.delete(identifier);\r\n this.instancesOptions.delete(identifier);\r\n this.instances.delete(identifier);\r\n }\r\n // app.delete() will call this method on every provider to delete the services\r\n // TODO: should we mark the provider as deleted?\r\n async delete() {\r\n const services = Array.from(this.instances.values());\r\n await Promise.all([\r\n ...services\r\n .filter(service => 'INTERNAL' in service) // legacy services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service.INTERNAL.delete()),\r\n ...services\r\n .filter(service => '_delete' in service) // modularized services\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map(service => service._delete())\r\n ]);\r\n }\r\n isComponentSet() {\r\n return this.component != null;\r\n }\r\n isInitialized(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instances.has(identifier);\r\n }\r\n getOptions(identifier = DEFAULT_ENTRY_NAME) {\r\n return this.instancesOptions.get(identifier) || {};\r\n }\r\n initialize(opts = {}) {\r\n const { options = {} } = opts;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(opts.instanceIdentifier);\r\n if (this.isInitialized(normalizedIdentifier)) {\r\n throw Error(`${this.name}(${normalizedIdentifier}) has already been initialized`);\r\n }\r\n if (!this.isComponentSet()) {\r\n throw Error(`Component ${this.name} has not been registered yet`);\r\n }\r\n const instance = this.getOrInitializeService({\r\n instanceIdentifier: normalizedIdentifier,\r\n options\r\n });\r\n // resolve any pending promise waiting for the service instance\r\n for (const [instanceIdentifier, instanceDeferred] of this.instancesDeferred.entries()) {\r\n const normalizedDeferredIdentifier = this.normalizeInstanceIdentifier(instanceIdentifier);\r\n if (normalizedIdentifier === normalizedDeferredIdentifier) {\r\n instanceDeferred.resolve(instance);\r\n }\r\n }\r\n return instance;\r\n }\r\n /**\r\n *\r\n * @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().\r\n * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\r\n *\r\n * @param identifier An optional instance identifier\r\n * @returns a function to unregister the callback\r\n */\r\n onInit(callback, identifier) {\r\n var _a;\r\n const normalizedIdentifier = this.normalizeInstanceIdentifier(identifier);\r\n const existingCallbacks = (_a = this.onInitCallbacks.get(normalizedIdentifier)) !== null && _a !== void 0 ? _a : new Set();\r\n existingCallbacks.add(callback);\r\n this.onInitCallbacks.set(normalizedIdentifier, existingCallbacks);\r\n const existingInstance = this.instances.get(normalizedIdentifier);\r\n if (existingInstance) {\r\n callback(existingInstance, normalizedIdentifier);\r\n }\r\n return () => {\r\n existingCallbacks.delete(callback);\r\n };\r\n }\r\n /**\r\n * Invoke onInit callbacks synchronously\r\n * @param instance the service instance`\r\n */\r\n invokeOnInitCallbacks(instance, identifier) {\r\n const callbacks = this.onInitCallbacks.get(identifier);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n try {\r\n callback(instance, identifier);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInit callback\r\n }\r\n }\r\n }\r\n getOrInitializeService({ instanceIdentifier, options = {} }) {\r\n let instance = this.instances.get(instanceIdentifier);\r\n if (!instance && this.component) {\r\n instance = this.component.instanceFactory(this.container, {\r\n instanceIdentifier: normalizeIdentifierForFactory(instanceIdentifier),\r\n options\r\n });\r\n this.instances.set(instanceIdentifier, instance);\r\n this.instancesOptions.set(instanceIdentifier, options);\r\n /**\r\n * Invoke onInit listeners.\r\n * Note this.component.onInstanceCreated is different, which is used by the component creator,\r\n * while onInit listeners are registered by consumers of the provider.\r\n */\r\n this.invokeOnInitCallbacks(instance, instanceIdentifier);\r\n /**\r\n * Order is important\r\n * onInstanceCreated() should be called after this.instances.set(instanceIdentifier, instance); which\r\n * makes `isInitialized()` return true.\r\n */\r\n if (this.component.onInstanceCreated) {\r\n try {\r\n this.component.onInstanceCreated(this.container, instanceIdentifier, instance);\r\n }\r\n catch (_a) {\r\n // ignore errors in the onInstanceCreatedCallback\r\n }\r\n }\r\n }\r\n return instance || null;\r\n }\r\n normalizeInstanceIdentifier(identifier = DEFAULT_ENTRY_NAME) {\r\n if (this.component) {\r\n return this.component.multipleInstances ? identifier : DEFAULT_ENTRY_NAME;\r\n }\r\n else {\r\n return identifier; // assume multiple instances are supported before the component is provided.\r\n }\r\n }\r\n shouldAutoInitialize() {\r\n return (!!this.component &&\r\n this.component.instantiationMode !== \"EXPLICIT\" /* InstantiationMode.EXPLICIT */);\r\n }\r\n}\r\n// undefined should be passed to the service factory for the default instance\r\nfunction normalizeIdentifierForFactory(identifier) {\r\n return identifier === DEFAULT_ENTRY_NAME ? undefined : identifier;\r\n}\r\nfunction isComponentEager(component) {\r\n return component.instantiationMode === \"EAGER\" /* InstantiationMode.EAGER */;\r\n}\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/**\r\n * ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`\r\n */\r\nclass ComponentContainer {\r\n constructor(name) {\r\n this.name = name;\r\n this.providers = new Map();\r\n }\r\n /**\r\n *\r\n * @param component Component being added\r\n * @param overwrite When a component with the same name has already been registered,\r\n * if overwrite is true: overwrite the existing component with the new component and create a new\r\n * provider with the new component. It can be useful in tests where you want to use different mocks\r\n * for different tests.\r\n * if overwrite is false: throw an exception\r\n */\r\n addComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n throw new Error(`Component ${component.name} has already been registered with ${this.name}`);\r\n }\r\n provider.setComponent(component);\r\n }\r\n addOrOverwriteComponent(component) {\r\n const provider = this.getProvider(component.name);\r\n if (provider.isComponentSet()) {\r\n // delete the existing provider from the container, so we can register the new component\r\n this.providers.delete(component.name);\r\n }\r\n this.addComponent(component);\r\n }\r\n /**\r\n * getProvider provides a type safe interface where it can only be called with a field name\r\n * present in NameServiceMapping interface.\r\n *\r\n * Firebase SDKs providing services should extend NameServiceMapping interface to register\r\n * themselves.\r\n */\r\n getProvider(name) {\r\n if (this.providers.has(name)) {\r\n return this.providers.get(name);\r\n }\r\n // create a Provider for a service that hasn't registered with Firebase\r\n const provider = new Provider(name, this);\r\n this.providers.set(name, provider);\r\n return provider;\r\n }\r\n getProviders() {\r\n return Array.from(this.providers.values());\r\n }\r\n}\n\nexport { Component, ComponentContainer, Provider };\n//# sourceMappingURL=index.esm2017.js.map\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 container for all of the Logger instances\r\n */\r\nconst instances = [];\r\n/**\r\n * The JS SDK supports 5 log levels and also allows a user the ability to\r\n * silence the logs altogether.\r\n *\r\n * The order is a follows:\r\n * DEBUG < VERBOSE < INFO < WARN < ERROR\r\n *\r\n * All of the log types above the current log level will be captured (i.e. if\r\n * you set the log level to `INFO`, errors will still be logged, but `DEBUG` and\r\n * `VERBOSE` logs will not)\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"DEBUG\"] = 0] = \"DEBUG\";\r\n LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\r\n LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\r\n LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\r\n LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\r\n LogLevel[LogLevel[\"SILENT\"] = 5] = \"SILENT\";\r\n})(LogLevel || (LogLevel = {}));\r\nconst levelStringToEnum = {\r\n 'debug': LogLevel.DEBUG,\r\n 'verbose': LogLevel.VERBOSE,\r\n 'info': LogLevel.INFO,\r\n 'warn': LogLevel.WARN,\r\n 'error': LogLevel.ERROR,\r\n 'silent': LogLevel.SILENT\r\n};\r\n/**\r\n * The default log level\r\n */\r\nconst defaultLogLevel = LogLevel.INFO;\r\n/**\r\n * By default, `console.debug` is not displayed in the developer console (in\r\n * chrome). To avoid forcing users to have to opt-in to these logs twice\r\n * (i.e. once for firebase, and once in the console), we are sending `DEBUG`\r\n * logs to the `console.log` function.\r\n */\r\nconst ConsoleMethod = {\r\n [LogLevel.DEBUG]: 'log',\r\n [LogLevel.VERBOSE]: 'log',\r\n [LogLevel.INFO]: 'info',\r\n [LogLevel.WARN]: 'warn',\r\n [LogLevel.ERROR]: 'error'\r\n};\r\n/**\r\n * The default log handler will forward DEBUG, VERBOSE, INFO, WARN, and ERROR\r\n * messages on to their corresponding console counterparts (if the log method\r\n * is supported by the current log level)\r\n */\r\nconst defaultLogHandler = (instance, logType, ...args) => {\r\n if (logType < instance.logLevel) {\r\n return;\r\n }\r\n const now = new Date().toISOString();\r\n const method = ConsoleMethod[logType];\r\n if (method) {\r\n console[method](`[${now}] ${instance.name}:`, ...args);\r\n }\r\n else {\r\n throw new Error(`Attempted to log a message with an invalid logType (value: ${logType})`);\r\n }\r\n};\r\nclass Logger {\r\n /**\r\n * Gives you an instance of a Logger to capture messages according to\r\n * Firebase's logging scheme.\r\n *\r\n * @param name The name that the logs will be associated with\r\n */\r\n constructor(name) {\r\n this.name = name;\r\n /**\r\n * The log level of the given Logger instance.\r\n */\r\n this._logLevel = defaultLogLevel;\r\n /**\r\n * The main (internal) log handler for the Logger instance.\r\n * Can be set to a new function in internal package code but not by user.\r\n */\r\n this._logHandler = defaultLogHandler;\r\n /**\r\n * The optional, additional, user-defined log handler for the Logger instance.\r\n */\r\n this._userLogHandler = null;\r\n /**\r\n * Capture the current instance for later use\r\n */\r\n instances.push(this);\r\n }\r\n get logLevel() {\r\n return this._logLevel;\r\n }\r\n set logLevel(val) {\r\n if (!(val in LogLevel)) {\r\n throw new TypeError(`Invalid value \"${val}\" assigned to \\`logLevel\\``);\r\n }\r\n this._logLevel = val;\r\n }\r\n // Workaround for setter/getter having to be the same type.\r\n setLogLevel(val) {\r\n this._logLevel = typeof val === 'string' ? levelStringToEnum[val] : val;\r\n }\r\n get logHandler() {\r\n return this._logHandler;\r\n }\r\n set logHandler(val) {\r\n if (typeof val !== 'function') {\r\n throw new TypeError('Value assigned to `logHandler` must be a function');\r\n }\r\n this._logHandler = val;\r\n }\r\n get userLogHandler() {\r\n return this._userLogHandler;\r\n }\r\n set userLogHandler(val) {\r\n this._userLogHandler = val;\r\n }\r\n /**\r\n * The functions below are all based on the `console` interface\r\n */\r\n debug(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.DEBUG, ...args);\r\n this._logHandler(this, LogLevel.DEBUG, ...args);\r\n }\r\n log(...args) {\r\n this._userLogHandler &&\r\n this._userLogHandler(this, LogLevel.VERBOSE, ...args);\r\n this._logHandler(this, LogLevel.VERBOSE, ...args);\r\n }\r\n info(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.INFO, ...args);\r\n this._logHandler(this, LogLevel.INFO, ...args);\r\n }\r\n warn(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.WARN, ...args);\r\n this._logHandler(this, LogLevel.WARN, ...args);\r\n }\r\n error(...args) {\r\n this._userLogHandler && this._userLogHandler(this, LogLevel.ERROR, ...args);\r\n this._logHandler(this, LogLevel.ERROR, ...args);\r\n }\r\n}\r\nfunction setLogLevel(level) {\r\n instances.forEach(inst => {\r\n inst.setLogLevel(level);\r\n });\r\n}\r\nfunction setUserLogHandler(logCallback, options) {\r\n for (const instance of instances) {\r\n let customLogLevel = null;\r\n if (options && options.level) {\r\n customLogLevel = levelStringToEnum[options.level];\r\n }\r\n if (logCallback === null) {\r\n instance.userLogHandler = null;\r\n }\r\n else {\r\n instance.userLogHandler = (instance, level, ...args) => {\r\n const message = args\r\n .map(arg => {\r\n if (arg == null) {\r\n return null;\r\n }\r\n else if (typeof arg === 'string') {\r\n return arg;\r\n }\r\n else if (typeof arg === 'number' || typeof arg === 'boolean') {\r\n return arg.toString();\r\n }\r\n else if (arg instanceof Error) {\r\n return arg.message;\r\n }\r\n else {\r\n try {\r\n return JSON.stringify(arg);\r\n }\r\n catch (ignored) {\r\n return null;\r\n }\r\n }\r\n })\r\n .filter(arg => arg)\r\n .join(' ');\r\n if (level >= (customLogLevel !== null && customLogLevel !== void 0 ? customLogLevel : instance.logLevel)) {\r\n logCallback({\r\n level: LogLevel[level].toLowerCase(),\r\n message,\r\n args,\r\n type: instance.name\r\n });\r\n }\r\n };\r\n }\r\n }\r\n}\n\nexport { LogLevel, Logger, setLogLevel, setUserLogHandler };\n//# sourceMappingURL=index.esm2017.js.map\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","import { Component, ComponentContainer } from '@firebase/component';\nimport { Logger, setUserLogHandler, setLogLevel as setLogLevel$1 } from '@firebase/logger';\nimport { ErrorFactory, getDefaultAppConfig, deepEqual, isBrowser, isWebWorker, FirebaseError, base64urlEncodeWithoutPadding, isIndexedDBAvailable, validateIndexedDBOpenable } from '@firebase/util';\nexport { FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\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\nclass PlatformLoggerServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n }\r\n // In initial implementation, this will be called by installations on\r\n // auth token refresh, and installations will send this string.\r\n getPlatformInfoString() {\r\n const providers = this.container.getProviders();\r\n // Loop through providers and get library/version pairs from any that are\r\n // version components.\r\n return providers\r\n .map(provider => {\r\n if (isVersionServiceProvider(provider)) {\r\n const service = provider.getImmediate();\r\n return `${service.library}/${service.version}`;\r\n }\r\n else {\r\n return null;\r\n }\r\n })\r\n .filter(logString => logString)\r\n .join(' ');\r\n }\r\n}\r\n/**\r\n *\r\n * @param provider check if this provider provides a VersionService\r\n *\r\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\r\n * provides VersionService. The provider is not necessarily a 'app-version'\r\n * provider.\r\n */\r\nfunction isVersionServiceProvider(provider) {\r\n const component = provider.getComponent();\r\n return (component === null || component === void 0 ? void 0 : component.type) === \"VERSION\" /* ComponentType.VERSION */;\r\n}\n\nconst name$q = \"@firebase/app\";\nconst version$1 = \"0.10.13\";\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\nconst logger = new Logger('@firebase/app');\n\nconst name$p = \"@firebase/app-compat\";\n\nconst name$o = \"@firebase/analytics-compat\";\n\nconst name$n = \"@firebase/analytics\";\n\nconst name$m = \"@firebase/app-check-compat\";\n\nconst name$l = \"@firebase/app-check\";\n\nconst name$k = \"@firebase/auth\";\n\nconst name$j = \"@firebase/auth-compat\";\n\nconst name$i = \"@firebase/database\";\n\nconst name$h = \"@firebase/data-connect\";\n\nconst name$g = \"@firebase/database-compat\";\n\nconst name$f = \"@firebase/functions\";\n\nconst name$e = \"@firebase/functions-compat\";\n\nconst name$d = \"@firebase/installations\";\n\nconst name$c = \"@firebase/installations-compat\";\n\nconst name$b = \"@firebase/messaging\";\n\nconst name$a = \"@firebase/messaging-compat\";\n\nconst name$9 = \"@firebase/performance\";\n\nconst name$8 = \"@firebase/performance-compat\";\n\nconst name$7 = \"@firebase/remote-config\";\n\nconst name$6 = \"@firebase/remote-config-compat\";\n\nconst name$5 = \"@firebase/storage\";\n\nconst name$4 = \"@firebase/storage-compat\";\n\nconst name$3 = \"@firebase/firestore\";\n\nconst name$2 = \"@firebase/vertexai-preview\";\n\nconst name$1 = \"@firebase/firestore-compat\";\n\nconst name = \"firebase\";\nconst version = \"10.14.1\";\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/**\r\n * The default app name\r\n *\r\n * @internal\r\n */\r\nconst DEFAULT_ENTRY_NAME = '[DEFAULT]';\r\nconst PLATFORM_LOG_STRING = {\r\n [name$q]: 'fire-core',\r\n [name$p]: 'fire-core-compat',\r\n [name$n]: 'fire-analytics',\r\n [name$o]: 'fire-analytics-compat',\r\n [name$l]: 'fire-app-check',\r\n [name$m]: 'fire-app-check-compat',\r\n [name$k]: 'fire-auth',\r\n [name$j]: 'fire-auth-compat',\r\n [name$i]: 'fire-rtdb',\r\n [name$h]: 'fire-data-connect',\r\n [name$g]: 'fire-rtdb-compat',\r\n [name$f]: 'fire-fn',\r\n [name$e]: 'fire-fn-compat',\r\n [name$d]: 'fire-iid',\r\n [name$c]: 'fire-iid-compat',\r\n [name$b]: 'fire-fcm',\r\n [name$a]: 'fire-fcm-compat',\r\n [name$9]: 'fire-perf',\r\n [name$8]: 'fire-perf-compat',\r\n [name$7]: 'fire-rc',\r\n [name$6]: 'fire-rc-compat',\r\n [name$5]: 'fire-gcs',\r\n [name$4]: 'fire-gcs-compat',\r\n [name$3]: 'fire-fst',\r\n [name$1]: 'fire-fst-compat',\r\n [name$2]: 'fire-vertex',\r\n 'fire-js': 'fire-js',\r\n [name]: 'fire-js-all'\r\n};\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/**\r\n * @internal\r\n */\r\nconst _apps = new Map();\r\n/**\r\n * @internal\r\n */\r\nconst _serverApps = new Map();\r\n/**\r\n * Registered components.\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst _components = new Map();\r\n/**\r\n * @param component - the component being added to this app's container\r\n *\r\n * @internal\r\n */\r\nfunction _addComponent(app, component) {\r\n try {\r\n app.container.addComponent(component);\r\n }\r\n catch (e) {\r\n logger.debug(`Component ${component.name} failed to register with FirebaseApp ${app.name}`, e);\r\n }\r\n}\r\n/**\r\n *\r\n * @internal\r\n */\r\nfunction _addOrOverwriteComponent(app, component) {\r\n app.container.addOrOverwriteComponent(component);\r\n}\r\n/**\r\n *\r\n * @param component - the component to register\r\n * @returns whether or not the component is registered successfully\r\n *\r\n * @internal\r\n */\r\nfunction _registerComponent(component) {\r\n const componentName = component.name;\r\n if (_components.has(componentName)) {\r\n logger.debug(`There were multiple attempts to register component ${componentName}.`);\r\n return false;\r\n }\r\n _components.set(componentName, component);\r\n // add the component to existing app instances\r\n for (const app of _apps.values()) {\r\n _addComponent(app, component);\r\n }\r\n for (const serverApp of _serverApps.values()) {\r\n _addComponent(serverApp, component);\r\n }\r\n return true;\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n *\r\n * @returns the provider for the service with the matching name\r\n *\r\n * @internal\r\n */\r\nfunction _getProvider(app, name) {\r\n const heartbeatController = app.container\r\n .getProvider('heartbeat')\r\n .getImmediate({ optional: true });\r\n if (heartbeatController) {\r\n void heartbeatController.triggerHeartbeat();\r\n }\r\n return app.container.getProvider(name);\r\n}\r\n/**\r\n *\r\n * @param app - FirebaseApp instance\r\n * @param name - service name\r\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\r\n *\r\n * @internal\r\n */\r\nfunction _removeServiceInstance(app, name, instanceIdentifier = DEFAULT_ENTRY_NAME) {\r\n _getProvider(app, name).clearInstance(instanceIdentifier);\r\n}\r\n/**\r\n *\r\n * @param obj - an object of type FirebaseApp or FirebaseOptions.\r\n *\r\n * @returns true if the provide object is of type FirebaseApp.\r\n *\r\n * @internal\r\n */\r\nfunction _isFirebaseApp(obj) {\r\n return obj.options !== undefined;\r\n}\r\n/**\r\n *\r\n * @param obj - an object of type FirebaseApp.\r\n *\r\n * @returns true if the provided object is of type FirebaseServerAppImpl.\r\n *\r\n * @internal\r\n */\r\nfunction _isFirebaseServerApp(obj) {\r\n return obj.settings !== undefined;\r\n}\r\n/**\r\n * Test only\r\n *\r\n * @internal\r\n */\r\nfunction _clearComponents() {\r\n _components.clear();\r\n}\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\nconst ERRORS = {\r\n [\"no-app\" /* AppError.NO_APP */]: \"No Firebase App '{$appName}' has been created - \" +\r\n 'call initializeApp() first',\r\n [\"bad-app-name\" /* AppError.BAD_APP_NAME */]: \"Illegal App name: '{$appName}'\",\r\n [\"duplicate-app\" /* AppError.DUPLICATE_APP */]: \"Firebase App named '{$appName}' already exists with different options or config\",\r\n [\"app-deleted\" /* AppError.APP_DELETED */]: \"Firebase App named '{$appName}' already deleted\",\r\n [\"server-app-deleted\" /* AppError.SERVER_APP_DELETED */]: 'Firebase Server App has been deleted',\r\n [\"no-options\" /* AppError.NO_OPTIONS */]: 'Need to provide options, when not being deployed to hosting via source.',\r\n [\"invalid-app-argument\" /* AppError.INVALID_APP_ARGUMENT */]: 'firebase.{$appName}() takes either no argument or a ' +\r\n 'Firebase App instance.',\r\n [\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */]: 'First argument to `onLog` must be null or a function.',\r\n [\"idb-open\" /* AppError.IDB_OPEN */]: 'Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-get\" /* AppError.IDB_GET */]: 'Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-set\" /* AppError.IDB_WRITE */]: 'Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"idb-delete\" /* AppError.IDB_DELETE */]: 'Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.',\r\n [\"finalization-registry-not-supported\" /* AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED */]: 'FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.',\r\n [\"invalid-server-app-environment\" /* AppError.INVALID_SERVER_APP_ENVIRONMENT */]: 'FirebaseServerApp is not for use in browser environments.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('app', 'Firebase', ERRORS);\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\nclass FirebaseAppImpl {\r\n constructor(options, config, container) {\r\n this._isDeleted = false;\r\n this._options = Object.assign({}, options);\r\n this._config = Object.assign({}, config);\r\n this._name = config.name;\r\n this._automaticDataCollectionEnabled =\r\n config.automaticDataCollectionEnabled;\r\n this._container = container;\r\n this.container.addComponent(new Component('app', () => this, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n }\r\n get automaticDataCollectionEnabled() {\r\n this.checkDestroyed();\r\n return this._automaticDataCollectionEnabled;\r\n }\r\n set automaticDataCollectionEnabled(val) {\r\n this.checkDestroyed();\r\n this._automaticDataCollectionEnabled = val;\r\n }\r\n get name() {\r\n this.checkDestroyed();\r\n return this._name;\r\n }\r\n get options() {\r\n this.checkDestroyed();\r\n return this._options;\r\n }\r\n get config() {\r\n this.checkDestroyed();\r\n return this._config;\r\n }\r\n get container() {\r\n return this._container;\r\n }\r\n get isDeleted() {\r\n return this._isDeleted;\r\n }\r\n set isDeleted(val) {\r\n this._isDeleted = val;\r\n }\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n checkDestroyed() {\r\n if (this.isDeleted) {\r\n throw ERROR_FACTORY.create(\"app-deleted\" /* AppError.APP_DELETED */, { appName: this._name });\r\n }\r\n }\r\n}\n\n/**\r\n * @license\r\n * Copyright 2023 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\nclass FirebaseServerAppImpl extends FirebaseAppImpl {\r\n constructor(options, serverConfig, name, container) {\r\n // Build configuration parameters for the FirebaseAppImpl base class.\r\n const automaticDataCollectionEnabled = serverConfig.automaticDataCollectionEnabled !== undefined\r\n ? serverConfig.automaticDataCollectionEnabled\r\n : false;\r\n // Create the FirebaseAppSettings object for the FirebaseAppImp constructor.\r\n const config = {\r\n name,\r\n automaticDataCollectionEnabled\r\n };\r\n if (options.apiKey !== undefined) {\r\n // Construct the parent FirebaseAppImp object.\r\n super(options, config, container);\r\n }\r\n else {\r\n const appImpl = options;\r\n super(appImpl.options, config, container);\r\n }\r\n // Now construct the data for the FirebaseServerAppImpl.\r\n this._serverConfig = Object.assign({ automaticDataCollectionEnabled }, serverConfig);\r\n this._finalizationRegistry = null;\r\n if (typeof FinalizationRegistry !== 'undefined') {\r\n this._finalizationRegistry = new FinalizationRegistry(() => {\r\n this.automaticCleanup();\r\n });\r\n }\r\n this._refCount = 0;\r\n this.incRefCount(this._serverConfig.releaseOnDeref);\r\n // Do not retain a hard reference to the dref object, otherwise the FinalizationRegistry\r\n // will never trigger.\r\n this._serverConfig.releaseOnDeref = undefined;\r\n serverConfig.releaseOnDeref = undefined;\r\n registerVersion(name$q, version$1, 'serverapp');\r\n }\r\n toJSON() {\r\n return undefined;\r\n }\r\n get refCount() {\r\n return this._refCount;\r\n }\r\n // Increment the reference count of this server app. If an object is provided, register it\r\n // with the finalization registry.\r\n incRefCount(obj) {\r\n if (this.isDeleted) {\r\n return;\r\n }\r\n this._refCount++;\r\n if (obj !== undefined && this._finalizationRegistry !== null) {\r\n this._finalizationRegistry.register(obj, this);\r\n }\r\n }\r\n // Decrement the reference count.\r\n decRefCount() {\r\n if (this.isDeleted) {\r\n return 0;\r\n }\r\n return --this._refCount;\r\n }\r\n // Invoked by the FinalizationRegistry callback to note that this app should go through its\r\n // reference counts and delete itself if no reference count remain. The coordinating logic that\r\n // handles this is in deleteApp(...).\r\n automaticCleanup() {\r\n void deleteApp(this);\r\n }\r\n get settings() {\r\n this.checkDestroyed();\r\n return this._serverConfig;\r\n }\r\n /**\r\n * This function will throw an Error if the App has already been deleted -\r\n * use before performing API actions on the App.\r\n */\r\n checkDestroyed() {\r\n if (this.isDeleted) {\r\n throw ERROR_FACTORY.create(\"server-app-deleted\" /* AppError.SERVER_APP_DELETED */);\r\n }\r\n }\r\n}\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/**\r\n * The current SDK version.\r\n *\r\n * @public\r\n */\r\nconst SDK_VERSION = version;\r\nfunction initializeApp(_options, rawConfig = {}) {\r\n let options = _options;\r\n if (typeof rawConfig !== 'object') {\r\n const name = rawConfig;\r\n rawConfig = { name };\r\n }\r\n const config = Object.assign({ name: DEFAULT_ENTRY_NAME, automaticDataCollectionEnabled: false }, rawConfig);\r\n const name = config.name;\r\n if (typeof name !== 'string' || !name) {\r\n throw ERROR_FACTORY.create(\"bad-app-name\" /* AppError.BAD_APP_NAME */, {\r\n appName: String(name)\r\n });\r\n }\r\n options || (options = getDefaultAppConfig());\r\n if (!options) {\r\n throw ERROR_FACTORY.create(\"no-options\" /* AppError.NO_OPTIONS */);\r\n }\r\n const existingApp = _apps.get(name);\r\n if (existingApp) {\r\n // return the existing app if options and config deep equal the ones in the existing app.\r\n if (deepEqual(options, existingApp.options) &&\r\n deepEqual(config, existingApp.config)) {\r\n return existingApp;\r\n }\r\n else {\r\n throw ERROR_FACTORY.create(\"duplicate-app\" /* AppError.DUPLICATE_APP */, { appName: name });\r\n }\r\n }\r\n const container = new ComponentContainer(name);\r\n for (const component of _components.values()) {\r\n container.addComponent(component);\r\n }\r\n const newApp = new FirebaseAppImpl(options, config, container);\r\n _apps.set(name, newApp);\r\n return newApp;\r\n}\r\nfunction initializeServerApp(_options, _serverAppConfig) {\r\n if (isBrowser() && !isWebWorker()) {\r\n // FirebaseServerApp isn't designed to be run in browsers.\r\n throw ERROR_FACTORY.create(\"invalid-server-app-environment\" /* AppError.INVALID_SERVER_APP_ENVIRONMENT */);\r\n }\r\n if (_serverAppConfig.automaticDataCollectionEnabled === undefined) {\r\n _serverAppConfig.automaticDataCollectionEnabled = false;\r\n }\r\n let appOptions;\r\n if (_isFirebaseApp(_options)) {\r\n appOptions = _options.options;\r\n }\r\n else {\r\n appOptions = _options;\r\n }\r\n // Build an app name based on a hash of the configuration options.\r\n const nameObj = Object.assign(Object.assign({}, _serverAppConfig), appOptions);\r\n // However, Do not mangle the name based on releaseOnDeref, since it will vary between the\r\n // construction of FirebaseServerApp instances. For example, if the object is the request headers.\r\n if (nameObj.releaseOnDeref !== undefined) {\r\n delete nameObj.releaseOnDeref;\r\n }\r\n const hashCode = (s) => {\r\n return [...s].reduce((hash, c) => (Math.imul(31, hash) + c.charCodeAt(0)) | 0, 0);\r\n };\r\n if (_serverAppConfig.releaseOnDeref !== undefined) {\r\n if (typeof FinalizationRegistry === 'undefined') {\r\n throw ERROR_FACTORY.create(\"finalization-registry-not-supported\" /* AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED */, {});\r\n }\r\n }\r\n const nameString = '' + hashCode(JSON.stringify(nameObj));\r\n const existingApp = _serverApps.get(nameString);\r\n if (existingApp) {\r\n existingApp.incRefCount(_serverAppConfig.releaseOnDeref);\r\n return existingApp;\r\n }\r\n const container = new ComponentContainer(nameString);\r\n for (const component of _components.values()) {\r\n container.addComponent(component);\r\n }\r\n const newApp = new FirebaseServerAppImpl(appOptions, _serverAppConfig, nameString, container);\r\n _serverApps.set(nameString, newApp);\r\n return newApp;\r\n}\r\n/**\r\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * When called with no arguments, the default app is returned. When an app name\r\n * is provided, the app corresponding to that name is returned.\r\n *\r\n * An exception is thrown if the app being retrieved has not yet been\r\n * initialized.\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return the default app\r\n * const app = getApp();\r\n * ```\r\n *\r\n * @example\r\n * ```javascript\r\n * // Return a named app\r\n * const otherApp = getApp(\"otherApp\");\r\n * ```\r\n *\r\n * @param name - Optional name of the app to return. If no name is\r\n * provided, the default is `\"[DEFAULT]\"`.\r\n *\r\n * @returns The app corresponding to the provided app name.\r\n * If no app name is provided, the default app is returned.\r\n *\r\n * @public\r\n */\r\nfunction getApp(name = DEFAULT_ENTRY_NAME) {\r\n const app = _apps.get(name);\r\n if (!app && name === DEFAULT_ENTRY_NAME && getDefaultAppConfig()) {\r\n return initializeApp();\r\n }\r\n if (!app) {\r\n throw ERROR_FACTORY.create(\"no-app\" /* AppError.NO_APP */, { appName: name });\r\n }\r\n return app;\r\n}\r\n/**\r\n * A (read-only) array of all initialized apps.\r\n * @public\r\n */\r\nfunction getApps() {\r\n return Array.from(_apps.values());\r\n}\r\n/**\r\n * Renders this app unusable and frees the resources of all associated\r\n * services.\r\n *\r\n * @example\r\n * ```javascript\r\n * deleteApp(app)\r\n * .then(function() {\r\n * console.log(\"App deleted successfully\");\r\n * })\r\n * .catch(function(error) {\r\n * console.log(\"Error deleting app:\", error);\r\n * });\r\n * ```\r\n *\r\n * @public\r\n */\r\nasync function deleteApp(app) {\r\n let cleanupProviders = false;\r\n const name = app.name;\r\n if (_apps.has(name)) {\r\n cleanupProviders = true;\r\n _apps.delete(name);\r\n }\r\n else if (_serverApps.has(name)) {\r\n const firebaseServerApp = app;\r\n if (firebaseServerApp.decRefCount() <= 0) {\r\n _serverApps.delete(name);\r\n cleanupProviders = true;\r\n }\r\n }\r\n if (cleanupProviders) {\r\n await Promise.all(app.container\r\n .getProviders()\r\n .map(provider => provider.delete()));\r\n app.isDeleted = true;\r\n }\r\n}\r\n/**\r\n * Registers a library's name and version for platform logging purposes.\r\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\r\n * @param version - Current version of that library.\r\n * @param variant - Bundle variant, e.g., node, rn, etc.\r\n *\r\n * @public\r\n */\r\nfunction registerVersion(libraryKeyOrName, version, variant) {\r\n var _a;\r\n // TODO: We can use this check to whitelist strings when/if we set up\r\n // a good whitelist system.\r\n let library = (_a = PLATFORM_LOG_STRING[libraryKeyOrName]) !== null && _a !== void 0 ? _a : libraryKeyOrName;\r\n if (variant) {\r\n library += `-${variant}`;\r\n }\r\n const libraryMismatch = library.match(/\\s|\\//);\r\n const versionMismatch = version.match(/\\s|\\//);\r\n if (libraryMismatch || versionMismatch) {\r\n const warning = [\r\n `Unable to register library \"${library}\" with version \"${version}\":`\r\n ];\r\n if (libraryMismatch) {\r\n warning.push(`library name \"${library}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n if (libraryMismatch && versionMismatch) {\r\n warning.push('and');\r\n }\r\n if (versionMismatch) {\r\n warning.push(`version name \"${version}\" contains illegal characters (whitespace or \"/\")`);\r\n }\r\n logger.warn(warning.join(' '));\r\n return;\r\n }\r\n _registerComponent(new Component(`${library}-version`, () => ({ library, version }), \"VERSION\" /* ComponentType.VERSION */));\r\n}\r\n/**\r\n * Sets log handler for all Firebase SDKs.\r\n * @param logCallback - An optional custom log handler that executes user code whenever\r\n * the Firebase SDK makes a logging call.\r\n *\r\n * @public\r\n */\r\nfunction onLog(logCallback, options) {\r\n if (logCallback !== null && typeof logCallback !== 'function') {\r\n throw ERROR_FACTORY.create(\"invalid-log-argument\" /* AppError.INVALID_LOG_ARGUMENT */);\r\n }\r\n setUserLogHandler(logCallback, options);\r\n}\r\n/**\r\n * Sets log level for all Firebase SDKs.\r\n *\r\n * All of the log types above the current log level are captured (i.e. if\r\n * you set the log level to `info`, errors are logged, but `debug` and\r\n * `verbose` logs are not).\r\n *\r\n * @public\r\n */\r\nfunction setLogLevel(logLevel) {\r\n setLogLevel$1(logLevel);\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\nconst DB_NAME = 'firebase-heartbeat-database';\r\nconst DB_VERSION = 1;\r\nconst STORE_NAME = 'firebase-heartbeat-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DB_NAME, DB_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n try {\r\n db.createObjectStore(STORE_NAME);\r\n }\r\n catch (e) {\r\n // Safari/iOS browsers throw occasional exceptions on\r\n // db.createObjectStore() that may be a bug. Avoid blocking\r\n // the rest of the app functionality.\r\n console.warn(e);\r\n }\r\n }\r\n }\r\n }).catch(e => {\r\n throw ERROR_FACTORY.create(\"idb-open\" /* AppError.IDB_OPEN */, {\r\n originalErrorMessage: e.message\r\n });\r\n });\r\n }\r\n return dbPromise;\r\n}\r\nasync function readHeartbeatsFromIndexedDB(app) {\r\n try {\r\n const db = await getDbPromise();\r\n const tx = db.transaction(STORE_NAME);\r\n const result = await tx.objectStore(STORE_NAME).get(computeKey(app));\r\n // We already have the value but tx.done can throw,\r\n // so we need to await it here to catch errors\r\n await tx.done;\r\n return result;\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-get\" /* AppError.IDB_GET */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nasync function writeHeartbeatsToIndexedDB(app, heartbeatObject) {\r\n try {\r\n const db = await getDbPromise();\r\n const tx = db.transaction(STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(STORE_NAME);\r\n await objectStore.put(heartbeatObject, computeKey(app));\r\n await tx.done;\r\n }\r\n catch (e) {\r\n if (e instanceof FirebaseError) {\r\n logger.warn(e.message);\r\n }\r\n else {\r\n const idbGetError = ERROR_FACTORY.create(\"idb-set\" /* AppError.IDB_WRITE */, {\r\n originalErrorMessage: e === null || e === void 0 ? void 0 : e.message\r\n });\r\n logger.warn(idbGetError.message);\r\n }\r\n }\r\n}\r\nfunction computeKey(app) {\r\n return `${app.name}!${app.options.appId}`;\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\nconst MAX_HEADER_BYTES = 1024;\r\n// 30 days\r\nconst STORED_HEARTBEAT_RETENTION_MAX_MILLIS = 30 * 24 * 60 * 60 * 1000;\r\nclass HeartbeatServiceImpl {\r\n constructor(container) {\r\n this.container = container;\r\n /**\r\n * In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate\r\n * the header string.\r\n * Stores one record per date. This will be consolidated into the standard\r\n * format of one record per user agent string before being sent as a header.\r\n * Populated from indexedDB when the controller is instantiated and should\r\n * be kept in sync with indexedDB.\r\n * Leave public for easier testing.\r\n */\r\n this._heartbeatsCache = null;\r\n const app = this.container.getProvider('app').getImmediate();\r\n this._storage = new HeartbeatStorageImpl(app);\r\n this._heartbeatsCachePromise = this._storage.read().then(result => {\r\n this._heartbeatsCache = result;\r\n return result;\r\n });\r\n }\r\n /**\r\n * Called to report a heartbeat. The function will generate\r\n * a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it\r\n * to IndexedDB.\r\n * Note that we only store one heartbeat per day. So if a heartbeat for today is\r\n * already logged, subsequent calls to this function in the same day will be ignored.\r\n */\r\n async triggerHeartbeat() {\r\n var _a, _b;\r\n try {\r\n const platformLogger = this.container\r\n .getProvider('platform-logger')\r\n .getImmediate();\r\n // This is the \"Firebase user agent\" string from the platform logger\r\n // service, not the browser user agent.\r\n const agent = platformLogger.getPlatformInfoString();\r\n const date = getUTCDateString();\r\n if (((_a = this._heartbeatsCache) === null || _a === void 0 ? void 0 : _a.heartbeats) == null) {\r\n this._heartbeatsCache = await this._heartbeatsCachePromise;\r\n // If we failed to construct a heartbeats cache, then return immediately.\r\n if (((_b = this._heartbeatsCache) === null || _b === void 0 ? void 0 : _b.heartbeats) == null) {\r\n return;\r\n }\r\n }\r\n // Do not store a heartbeat if one is already stored for this day\r\n // or if a header has already been sent today.\r\n if (this._heartbeatsCache.lastSentHeartbeatDate === date ||\r\n this._heartbeatsCache.heartbeats.some(singleDateHeartbeat => singleDateHeartbeat.date === date)) {\r\n return;\r\n }\r\n else {\r\n // There is no entry for this date. Create one.\r\n this._heartbeatsCache.heartbeats.push({ date, agent });\r\n }\r\n // Remove entries older than 30 days.\r\n this._heartbeatsCache.heartbeats =\r\n this._heartbeatsCache.heartbeats.filter(singleDateHeartbeat => {\r\n const hbTimestamp = new Date(singleDateHeartbeat.date).valueOf();\r\n const now = Date.now();\r\n return now - hbTimestamp <= STORED_HEARTBEAT_RETENTION_MAX_MILLIS;\r\n });\r\n return this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n catch (e) {\r\n logger.warn(e);\r\n }\r\n }\r\n /**\r\n * Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.\r\n * It also clears all heartbeats from memory as well as in IndexedDB.\r\n *\r\n * NOTE: Consuming product SDKs should not send the header if this method\r\n * returns an empty string.\r\n */\r\n async getHeartbeatsHeader() {\r\n var _a;\r\n try {\r\n if (this._heartbeatsCache === null) {\r\n await this._heartbeatsCachePromise;\r\n }\r\n // If it's still null or the array is empty, there is no data to send.\r\n if (((_a = this._heartbeatsCache) === null || _a === void 0 ? void 0 : _a.heartbeats) == null ||\r\n this._heartbeatsCache.heartbeats.length === 0) {\r\n return '';\r\n }\r\n const date = getUTCDateString();\r\n // Extract as many heartbeats from the cache as will fit under the size limit.\r\n const { heartbeatsToSend, unsentEntries } = extractHeartbeatsForHeader(this._heartbeatsCache.heartbeats);\r\n const headerString = base64urlEncodeWithoutPadding(JSON.stringify({ version: 2, heartbeats: heartbeatsToSend }));\r\n // Store last sent date to prevent another being logged/sent for the same day.\r\n this._heartbeatsCache.lastSentHeartbeatDate = date;\r\n if (unsentEntries.length > 0) {\r\n // Store any unsent entries if they exist.\r\n this._heartbeatsCache.heartbeats = unsentEntries;\r\n // This seems more likely than emptying the array (below) to lead to some odd state\r\n // since the cache isn't empty and this will be called again on the next request,\r\n // and is probably safest if we await it.\r\n await this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n else {\r\n this._heartbeatsCache.heartbeats = [];\r\n // Do not wait for this, to reduce latency.\r\n void this._storage.overwrite(this._heartbeatsCache);\r\n }\r\n return headerString;\r\n }\r\n catch (e) {\r\n logger.warn(e);\r\n return '';\r\n }\r\n }\r\n}\r\nfunction getUTCDateString() {\r\n const today = new Date();\r\n // Returns date format 'YYYY-MM-DD'\r\n return today.toISOString().substring(0, 10);\r\n}\r\nfunction extractHeartbeatsForHeader(heartbeatsCache, maxSize = MAX_HEADER_BYTES) {\r\n // Heartbeats grouped by user agent in the standard format to be sent in\r\n // the header.\r\n const heartbeatsToSend = [];\r\n // Single date format heartbeats that are not sent.\r\n let unsentEntries = heartbeatsCache.slice();\r\n for (const singleDateHeartbeat of heartbeatsCache) {\r\n // Look for an existing entry with the same user agent.\r\n const heartbeatEntry = heartbeatsToSend.find(hb => hb.agent === singleDateHeartbeat.agent);\r\n if (!heartbeatEntry) {\r\n // If no entry for this user agent exists, create one.\r\n heartbeatsToSend.push({\r\n agent: singleDateHeartbeat.agent,\r\n dates: [singleDateHeartbeat.date]\r\n });\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n // If the header would exceed max size, remove the added heartbeat\r\n // entry and stop adding to the header.\r\n heartbeatsToSend.pop();\r\n break;\r\n }\r\n }\r\n else {\r\n heartbeatEntry.dates.push(singleDateHeartbeat.date);\r\n // If the header would exceed max size, remove the added date\r\n // and stop adding to the header.\r\n if (countBytes(heartbeatsToSend) > maxSize) {\r\n heartbeatEntry.dates.pop();\r\n break;\r\n }\r\n }\r\n // Pop unsent entry from queue. (Skipped if adding the entry exceeded\r\n // quota and the loop breaks early.)\r\n unsentEntries = unsentEntries.slice(1);\r\n }\r\n return {\r\n heartbeatsToSend,\r\n unsentEntries\r\n };\r\n}\r\nclass HeartbeatStorageImpl {\r\n constructor(app) {\r\n this.app = app;\r\n this._canUseIndexedDBPromise = this.runIndexedDBEnvironmentCheck();\r\n }\r\n async runIndexedDBEnvironmentCheck() {\r\n if (!isIndexedDBAvailable()) {\r\n return false;\r\n }\r\n else {\r\n return validateIndexedDBOpenable()\r\n .then(() => true)\r\n .catch(() => false);\r\n }\r\n }\r\n /**\r\n * Read all heartbeats.\r\n */\r\n async read() {\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return { heartbeats: [] };\r\n }\r\n else {\r\n const idbHeartbeatObject = await readHeartbeatsFromIndexedDB(this.app);\r\n if (idbHeartbeatObject === null || idbHeartbeatObject === void 0 ? void 0 : idbHeartbeatObject.heartbeats) {\r\n return idbHeartbeatObject;\r\n }\r\n else {\r\n return { heartbeats: [] };\r\n }\r\n }\r\n }\r\n // overwrite the storage with the provided heartbeats\r\n async overwrite(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: heartbeatsObject.heartbeats\r\n });\r\n }\r\n }\r\n // add heartbeats\r\n async add(heartbeatsObject) {\r\n var _a;\r\n const canUseIndexedDB = await this._canUseIndexedDBPromise;\r\n if (!canUseIndexedDB) {\r\n return;\r\n }\r\n else {\r\n const existingHeartbeatsObject = await this.read();\r\n return writeHeartbeatsToIndexedDB(this.app, {\r\n lastSentHeartbeatDate: (_a = heartbeatsObject.lastSentHeartbeatDate) !== null && _a !== void 0 ? _a : existingHeartbeatsObject.lastSentHeartbeatDate,\r\n heartbeats: [\r\n ...existingHeartbeatsObject.heartbeats,\r\n ...heartbeatsObject.heartbeats\r\n ]\r\n });\r\n }\r\n }\r\n}\r\n/**\r\n * Calculate bytes of a HeartbeatsByUserAgent array after being wrapped\r\n * in a platform logging header JSON object, stringified, and converted\r\n * to base 64.\r\n */\r\nfunction countBytes(heartbeatsCache) {\r\n // base64 has a restricted set of characters, all of which should be 1 byte.\r\n return base64urlEncodeWithoutPadding(\r\n // heartbeatsCache wrapper properties\r\n JSON.stringify({ version: 2, heartbeats: heartbeatsCache })).length;\r\n}\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\nfunction registerCoreComponents(variant) {\r\n _registerComponent(new Component('platform-logger', container => new PlatformLoggerServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n _registerComponent(new Component('heartbeat', container => new HeartbeatServiceImpl(container), \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n // Register `app` package.\r\n registerVersion(name$q, version$1, variant);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name$q, version$1, 'esm2017');\r\n // Register platform SDK identifier (no version).\r\n registerVersion('fire-js', '');\r\n}\n\n/**\r\n * Firebase App\r\n *\r\n * @remarks This package coordinates the communication between the different Firebase components\r\n * @packageDocumentation\r\n */\r\nregisterCoreComponents('');\n\nexport { SDK_VERSION, DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME, _addComponent, _addOrOverwriteComponent, _apps, _clearComponents, _components, _getProvider, _isFirebaseApp, _isFirebaseServerApp, _registerComponent, _removeServiceInstance, _serverApps, deleteApp, getApp, getApps, initializeApp, initializeServerApp, onLog, registerVersion, setLogLevel };\n//# sourceMappingURL=index.esm2017.js.map\n","import { registerVersion } from '@firebase/app';\nexport * from '@firebase/app';\n\nvar name = \"firebase\";\nvar version = \"10.14.1\";\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\nregisterVersion(name, version, 'app');\n//# sourceMappingURL=index.esm.js.map\n","import { _getProvider, getApp, _registerComponent, registerVersion } from '@firebase/app';\nimport { Component } from '@firebase/component';\nimport { ErrorFactory, FirebaseError } from '@firebase/util';\nimport { openDB } from 'idb';\n\nconst name = \"@firebase/installations\";\nconst version = \"0.6.9\";\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\nconst PENDING_TIMEOUT_MS = 10000;\r\nconst PACKAGE_VERSION = `w:${version}`;\r\nconst INTERNAL_AUTH_VERSION = 'FIS_v2';\r\nconst INSTALLATIONS_API_URL = 'https://firebaseinstallations.googleapis.com/v1';\r\nconst TOKEN_EXPIRATION_BUFFER = 60 * 60 * 1000; // One hour\r\nconst SERVICE = 'installations';\r\nconst SERVICE_NAME = 'Installations';\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\nconst ERROR_DESCRIPTION_MAP = {\r\n [\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"not-registered\" /* ErrorCode.NOT_REGISTERED */]: 'Firebase Installation is not registered.',\r\n [\"installation-not-found\" /* ErrorCode.INSTALLATION_NOT_FOUND */]: 'Firebase Installation not found.',\r\n [\"request-failed\" /* ErrorCode.REQUEST_FAILED */]: '{$requestName} request failed with error \"{$serverCode} {$serverStatus}: {$serverMessage}\"',\r\n [\"app-offline\" /* ErrorCode.APP_OFFLINE */]: 'Could not process request. Application offline.',\r\n [\"delete-pending-registration\" /* ErrorCode.DELETE_PENDING_REGISTRATION */]: \"Can't delete installation while there is a pending registration request.\"\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory(SERVICE, SERVICE_NAME, ERROR_DESCRIPTION_MAP);\r\n/** Returns true if error is a FirebaseError that is based on an error from the server. */\r\nfunction isServerError(error) {\r\n return (error instanceof FirebaseError &&\r\n error.code.includes(\"request-failed\" /* ErrorCode.REQUEST_FAILED */));\r\n}\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\nfunction getInstallationsEndpoint({ projectId }) {\r\n return `${INSTALLATIONS_API_URL}/projects/${projectId}/installations`;\r\n}\r\nfunction extractAuthTokenInfoFromResponse(response) {\r\n return {\r\n token: response.token,\r\n requestStatus: 2 /* RequestStatus.COMPLETED */,\r\n expiresIn: getExpiresInFromResponseExpiresIn(response.expiresIn),\r\n creationTime: Date.now()\r\n };\r\n}\r\nasync function getErrorFromResponse(requestName, response) {\r\n const responseJson = await response.json();\r\n const errorData = responseJson.error;\r\n return ERROR_FACTORY.create(\"request-failed\" /* ErrorCode.REQUEST_FAILED */, {\r\n requestName,\r\n serverCode: errorData.code,\r\n serverMessage: errorData.message,\r\n serverStatus: errorData.status\r\n });\r\n}\r\nfunction getHeaders({ apiKey }) {\r\n return new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n 'x-goog-api-key': apiKey\r\n });\r\n}\r\nfunction getHeadersWithAuth(appConfig, { refreshToken }) {\r\n const headers = getHeaders(appConfig);\r\n headers.append('Authorization', getAuthorizationHeader(refreshToken));\r\n return headers;\r\n}\r\n/**\r\n * Calls the passed in fetch wrapper and returns the response.\r\n * If the returned response has a status of 5xx, re-runs the function once and\r\n * returns the response.\r\n */\r\nasync function retryIfServerError(fn) {\r\n const result = await fn();\r\n if (result.status >= 500 && result.status < 600) {\r\n // Internal Server Error. Retry request.\r\n return fn();\r\n }\r\n return result;\r\n}\r\nfunction getExpiresInFromResponseExpiresIn(responseExpiresIn) {\r\n // This works because the server will never respond with fractions of a second.\r\n return Number(responseExpiresIn.replace('s', '000'));\r\n}\r\nfunction getAuthorizationHeader(refreshToken) {\r\n return `${INTERNAL_AUTH_VERSION} ${refreshToken}`;\r\n}\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\nasync function createInstallationRequest({ appConfig, heartbeatServiceProvider }, { fid }) {\r\n const endpoint = getInstallationsEndpoint(appConfig);\r\n const headers = getHeaders(appConfig);\r\n // If heartbeat service exists, add the heartbeat string to the header.\r\n const heartbeatService = heartbeatServiceProvider.getImmediate({\r\n optional: true\r\n });\r\n if (heartbeatService) {\r\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\r\n if (heartbeatsHeader) {\r\n headers.append('x-firebase-client', heartbeatsHeader);\r\n }\r\n }\r\n const body = {\r\n fid,\r\n authVersion: INTERNAL_AUTH_VERSION,\r\n appId: appConfig.appId,\r\n sdkVersion: PACKAGE_VERSION\r\n };\r\n const request = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (response.ok) {\r\n const responseValue = await response.json();\r\n const registeredInstallationEntry = {\r\n fid: responseValue.fid || fid,\r\n registrationStatus: 2 /* RequestStatus.COMPLETED */,\r\n refreshToken: responseValue.refreshToken,\r\n authToken: extractAuthTokenInfoFromResponse(responseValue.authToken)\r\n };\r\n return registeredInstallationEntry;\r\n }\r\n else {\r\n throw await getErrorFromResponse('Create Installation', response);\r\n }\r\n}\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/** Returns a promise that resolves after given time passes. */\r\nfunction sleep(ms) {\r\n return new Promise(resolve => {\r\n setTimeout(resolve, ms);\r\n });\r\n}\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\nfunction bufferToBase64UrlSafe(array) {\r\n const b64 = btoa(String.fromCharCode(...array));\r\n return b64.replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\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\nconst VALID_FID_PATTERN = /^[cdef][\\w-]{21}$/;\r\nconst INVALID_FID = '';\r\n/**\r\n * Generates a new FID using random values from Web Crypto API.\r\n * Returns an empty string if FID generation fails for any reason.\r\n */\r\nfunction generateFid() {\r\n try {\r\n // A valid FID has exactly 22 base64 characters, which is 132 bits, or 16.5\r\n // bytes. our implementation generates a 17 byte array instead.\r\n const fidByteArray = new Uint8Array(17);\r\n const crypto = self.crypto || self.msCrypto;\r\n crypto.getRandomValues(fidByteArray);\r\n // Replace the first 4 random bits with the constant FID header of 0b0111.\r\n fidByteArray[0] = 0b01110000 + (fidByteArray[0] % 0b00010000);\r\n const fid = encode(fidByteArray);\r\n return VALID_FID_PATTERN.test(fid) ? fid : INVALID_FID;\r\n }\r\n catch (_a) {\r\n // FID generation errored\r\n return INVALID_FID;\r\n }\r\n}\r\n/** Converts a FID Uint8Array to a base64 string representation. */\r\nfunction encode(fidByteArray) {\r\n const b64String = bufferToBase64UrlSafe(fidByteArray);\r\n // Remove the 23rd character that was added because of the extra 4 bits at the\r\n // end of our 17 byte array, and the '=' padding.\r\n return b64String.substr(0, 22);\r\n}\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/** Returns a string key that can be used to identify the app. */\r\nfunction getKey(appConfig) {\r\n return `${appConfig.appName}!${appConfig.appId}`;\r\n}\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\nconst fidChangeCallbacks = new Map();\r\n/**\r\n * Calls the onIdChange callbacks with the new FID value, and broadcasts the\r\n * change to other tabs.\r\n */\r\nfunction fidChanged(appConfig, fid) {\r\n const key = getKey(appConfig);\r\n callFidChangeCallbacks(key, fid);\r\n broadcastFidChange(key, fid);\r\n}\r\nfunction addCallback(appConfig, callback) {\r\n // Open the broadcast channel if it's not already open,\r\n // to be able to listen to change events from other tabs.\r\n getBroadcastChannel();\r\n const key = getKey(appConfig);\r\n let callbackSet = fidChangeCallbacks.get(key);\r\n if (!callbackSet) {\r\n callbackSet = new Set();\r\n fidChangeCallbacks.set(key, callbackSet);\r\n }\r\n callbackSet.add(callback);\r\n}\r\nfunction removeCallback(appConfig, callback) {\r\n const key = getKey(appConfig);\r\n const callbackSet = fidChangeCallbacks.get(key);\r\n if (!callbackSet) {\r\n return;\r\n }\r\n callbackSet.delete(callback);\r\n if (callbackSet.size === 0) {\r\n fidChangeCallbacks.delete(key);\r\n }\r\n // Close broadcast channel if there are no more callbacks.\r\n closeBroadcastChannel();\r\n}\r\nfunction callFidChangeCallbacks(key, fid) {\r\n const callbacks = fidChangeCallbacks.get(key);\r\n if (!callbacks) {\r\n return;\r\n }\r\n for (const callback of callbacks) {\r\n callback(fid);\r\n }\r\n}\r\nfunction broadcastFidChange(key, fid) {\r\n const channel = getBroadcastChannel();\r\n if (channel) {\r\n channel.postMessage({ key, fid });\r\n }\r\n closeBroadcastChannel();\r\n}\r\nlet broadcastChannel = null;\r\n/** Opens and returns a BroadcastChannel if it is supported by the browser. */\r\nfunction getBroadcastChannel() {\r\n if (!broadcastChannel && 'BroadcastChannel' in self) {\r\n broadcastChannel = new BroadcastChannel('[Firebase] FID Change');\r\n broadcastChannel.onmessage = e => {\r\n callFidChangeCallbacks(e.data.key, e.data.fid);\r\n };\r\n }\r\n return broadcastChannel;\r\n}\r\nfunction closeBroadcastChannel() {\r\n if (fidChangeCallbacks.size === 0 && broadcastChannel) {\r\n broadcastChannel.close();\r\n broadcastChannel = null;\r\n }\r\n}\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\nconst DATABASE_NAME = 'firebase-installations-database';\r\nconst DATABASE_VERSION = 1;\r\nconst OBJECT_STORE_NAME = 'firebase-installations-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DATABASE_NAME, DATABASE_VERSION, {\r\n upgrade: (db, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through\r\n // behavior is what we want, because if there are multiple versions between\r\n // the old version and the current version, we want ALL the migrations\r\n // that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n db.createObjectStore(OBJECT_STORE_NAME);\r\n }\r\n }\r\n });\r\n }\r\n return dbPromise;\r\n}\r\n/** Assigns or overwrites the record for the given key with the given value. */\r\nasync function set(appConfig, value) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n const objectStore = tx.objectStore(OBJECT_STORE_NAME);\r\n const oldValue = (await objectStore.get(key));\r\n await objectStore.put(value, key);\r\n await tx.done;\r\n if (!oldValue || oldValue.fid !== value.fid) {\r\n fidChanged(appConfig, value.fid);\r\n }\r\n return value;\r\n}\r\n/** Removes record(s) from the objectStore that match the given key. */\r\nasync function remove(appConfig) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).delete(key);\r\n await tx.done;\r\n}\r\n/**\r\n * Atomically updates a record with the result of updateFn, which gets\r\n * called with the current value. If newValue is undefined, the record is\r\n * deleted instead.\r\n * @return Updated value\r\n */\r\nasync function update(appConfig, updateFn) {\r\n const key = getKey(appConfig);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n const store = tx.objectStore(OBJECT_STORE_NAME);\r\n const oldValue = (await store.get(key));\r\n const newValue = updateFn(oldValue);\r\n if (newValue === undefined) {\r\n await store.delete(key);\r\n }\r\n else {\r\n await store.put(newValue, key);\r\n }\r\n await tx.done;\r\n if (newValue && (!oldValue || oldValue.fid !== newValue.fid)) {\r\n fidChanged(appConfig, newValue.fid);\r\n }\r\n return newValue;\r\n}\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/**\r\n * Updates and returns the InstallationEntry from the database.\r\n * Also triggers a registration request if it is necessary and possible.\r\n */\r\nasync function getInstallationEntry(installations) {\r\n let registrationPromise;\r\n const installationEntry = await update(installations.appConfig, oldEntry => {\r\n const installationEntry = updateOrCreateInstallationEntry(oldEntry);\r\n const entryWithPromise = triggerRegistrationIfNecessary(installations, installationEntry);\r\n registrationPromise = entryWithPromise.registrationPromise;\r\n return entryWithPromise.installationEntry;\r\n });\r\n if (installationEntry.fid === INVALID_FID) {\r\n // FID generation failed. Waiting for the FID from the server.\r\n return { installationEntry: await registrationPromise };\r\n }\r\n return {\r\n installationEntry,\r\n registrationPromise\r\n };\r\n}\r\n/**\r\n * Creates a new Installation Entry if one does not exist.\r\n * Also clears timed out pending requests.\r\n */\r\nfunction updateOrCreateInstallationEntry(oldEntry) {\r\n const entry = oldEntry || {\r\n fid: generateFid(),\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n };\r\n return clearTimedOutRequest(entry);\r\n}\r\n/**\r\n * If the Firebase Installation is not registered yet, this will trigger the\r\n * registration and return an InProgressInstallationEntry.\r\n *\r\n * If registrationPromise does not exist, the installationEntry is guaranteed\r\n * to be registered.\r\n */\r\nfunction triggerRegistrationIfNecessary(installations, installationEntry) {\r\n if (installationEntry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n if (!navigator.onLine) {\r\n // Registration required but app is offline.\r\n const registrationPromiseWithError = Promise.reject(ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */));\r\n return {\r\n installationEntry,\r\n registrationPromise: registrationPromiseWithError\r\n };\r\n }\r\n // Try registering. Change status to IN_PROGRESS.\r\n const inProgressEntry = {\r\n fid: installationEntry.fid,\r\n registrationStatus: 1 /* RequestStatus.IN_PROGRESS */,\r\n registrationTime: Date.now()\r\n };\r\n const registrationPromise = registerInstallation(installations, inProgressEntry);\r\n return { installationEntry: inProgressEntry, registrationPromise };\r\n }\r\n else if (installationEntry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n return {\r\n installationEntry,\r\n registrationPromise: waitUntilFidRegistration(installations)\r\n };\r\n }\r\n else {\r\n return { installationEntry };\r\n }\r\n}\r\n/** This will be executed only once for each new Firebase Installation. */\r\nasync function registerInstallation(installations, installationEntry) {\r\n try {\r\n const registeredInstallationEntry = await createInstallationRequest(installations, installationEntry);\r\n return set(installations.appConfig, registeredInstallationEntry);\r\n }\r\n catch (e) {\r\n if (isServerError(e) && e.customData.serverCode === 409) {\r\n // Server returned a \"FID cannot be used\" error.\r\n // Generate a new ID next time.\r\n await remove(installations.appConfig);\r\n }\r\n else {\r\n // Registration failed. Set FID as not registered.\r\n await set(installations.appConfig, {\r\n fid: installationEntry.fid,\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n });\r\n }\r\n throw e;\r\n }\r\n}\r\n/** Call if FID registration is pending in another request. */\r\nasync function waitUntilFidRegistration(installations) {\r\n // Unfortunately, there is no way of reliably observing when a value in\r\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\r\n // so we need to poll.\r\n let entry = await updateInstallationRequest(installations.appConfig);\r\n while (entry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // createInstallation request still in progress.\r\n await sleep(100);\r\n entry = await updateInstallationRequest(installations.appConfig);\r\n }\r\n if (entry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(installations);\r\n if (registrationPromise) {\r\n return registrationPromise;\r\n }\r\n else {\r\n // if there is no registrationPromise, entry is registered.\r\n return installationEntry;\r\n }\r\n }\r\n return entry;\r\n}\r\n/**\r\n * Called only if there is a CreateInstallation request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * CreateInstallation request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\r\nfunction updateInstallationRequest(appConfig) {\r\n return update(appConfig, oldEntry => {\r\n if (!oldEntry) {\r\n throw ERROR_FACTORY.create(\"installation-not-found\" /* ErrorCode.INSTALLATION_NOT_FOUND */);\r\n }\r\n return clearTimedOutRequest(oldEntry);\r\n });\r\n}\r\nfunction clearTimedOutRequest(entry) {\r\n if (hasInstallationRequestTimedOut(entry)) {\r\n return {\r\n fid: entry.fid,\r\n registrationStatus: 0 /* RequestStatus.NOT_STARTED */\r\n };\r\n }\r\n return entry;\r\n}\r\nfunction hasInstallationRequestTimedOut(installationEntry) {\r\n return (installationEntry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */ &&\r\n installationEntry.registrationTime + PENDING_TIMEOUT_MS < Date.now());\r\n}\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\nasync function generateAuthTokenRequest({ appConfig, heartbeatServiceProvider }, installationEntry) {\r\n const endpoint = getGenerateAuthTokenEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n // If heartbeat service exists, add the heartbeat string to the header.\r\n const heartbeatService = heartbeatServiceProvider.getImmediate({\r\n optional: true\r\n });\r\n if (heartbeatService) {\r\n const heartbeatsHeader = await heartbeatService.getHeartbeatsHeader();\r\n if (heartbeatsHeader) {\r\n headers.append('x-firebase-client', heartbeatsHeader);\r\n }\r\n }\r\n const body = {\r\n installation: {\r\n sdkVersion: PACKAGE_VERSION,\r\n appId: appConfig.appId\r\n }\r\n };\r\n const request = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (response.ok) {\r\n const responseValue = await response.json();\r\n const completedAuthToken = extractAuthTokenInfoFromResponse(responseValue);\r\n return completedAuthToken;\r\n }\r\n else {\r\n throw await getErrorFromResponse('Generate Auth Token', response);\r\n }\r\n}\r\nfunction getGenerateAuthTokenEndpoint(appConfig, { fid }) {\r\n return `${getInstallationsEndpoint(appConfig)}/${fid}/authTokens:generate`;\r\n}\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/**\r\n * Returns a valid authentication token for the installation. Generates a new\r\n * token if one doesn't exist, is expired or about to expire.\r\n *\r\n * Should only be called if the Firebase Installation is registered.\r\n */\r\nasync function refreshAuthToken(installations, forceRefresh = false) {\r\n let tokenPromise;\r\n const entry = await update(installations.appConfig, oldEntry => {\r\n if (!isEntryRegistered(oldEntry)) {\r\n throw ERROR_FACTORY.create(\"not-registered\" /* ErrorCode.NOT_REGISTERED */);\r\n }\r\n const oldAuthToken = oldEntry.authToken;\r\n if (!forceRefresh && isAuthTokenValid(oldAuthToken)) {\r\n // There is a valid token in the DB.\r\n return oldEntry;\r\n }\r\n else if (oldAuthToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // There already is a token request in progress.\r\n tokenPromise = waitUntilAuthTokenRequest(installations, forceRefresh);\r\n return oldEntry;\r\n }\r\n else {\r\n // No token or token expired.\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */);\r\n }\r\n const inProgressEntry = makeAuthTokenRequestInProgressEntry(oldEntry);\r\n tokenPromise = fetchAuthTokenFromServer(installations, inProgressEntry);\r\n return inProgressEntry;\r\n }\r\n });\r\n const authToken = tokenPromise\r\n ? await tokenPromise\r\n : entry.authToken;\r\n return authToken;\r\n}\r\n/**\r\n * Call only if FID is registered and Auth Token request is in progress.\r\n *\r\n * Waits until the current pending request finishes. If the request times out,\r\n * tries once in this thread as well.\r\n */\r\nasync function waitUntilAuthTokenRequest(installations, forceRefresh) {\r\n // Unfortunately, there is no way of reliably observing when a value in\r\n // IndexedDB changes (yet, see https://github.com/WICG/indexed-db-observers),\r\n // so we need to poll.\r\n let entry = await updateAuthTokenRequest(installations.appConfig);\r\n while (entry.authToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // generateAuthToken still in progress.\r\n await sleep(100);\r\n entry = await updateAuthTokenRequest(installations.appConfig);\r\n }\r\n const authToken = entry.authToken;\r\n if (authToken.requestStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n return refreshAuthToken(installations, forceRefresh);\r\n }\r\n else {\r\n return authToken;\r\n }\r\n}\r\n/**\r\n * Called only if there is a GenerateAuthToken request in progress.\r\n *\r\n * Updates the InstallationEntry in the DB based on the status of the\r\n * GenerateAuthToken request.\r\n *\r\n * Returns the updated InstallationEntry.\r\n */\r\nfunction updateAuthTokenRequest(appConfig) {\r\n return update(appConfig, oldEntry => {\r\n if (!isEntryRegistered(oldEntry)) {\r\n throw ERROR_FACTORY.create(\"not-registered\" /* ErrorCode.NOT_REGISTERED */);\r\n }\r\n const oldAuthToken = oldEntry.authToken;\r\n if (hasAuthTokenRequestTimedOut(oldAuthToken)) {\r\n return Object.assign(Object.assign({}, oldEntry), { authToken: { requestStatus: 0 /* RequestStatus.NOT_STARTED */ } });\r\n }\r\n return oldEntry;\r\n });\r\n}\r\nasync function fetchAuthTokenFromServer(installations, installationEntry) {\r\n try {\r\n const authToken = await generateAuthTokenRequest(installations, installationEntry);\r\n const updatedInstallationEntry = Object.assign(Object.assign({}, installationEntry), { authToken });\r\n await set(installations.appConfig, updatedInstallationEntry);\r\n return authToken;\r\n }\r\n catch (e) {\r\n if (isServerError(e) &&\r\n (e.customData.serverCode === 401 || e.customData.serverCode === 404)) {\r\n // Server returned a \"FID not found\" or a \"Invalid authentication\" error.\r\n // Generate a new ID next time.\r\n await remove(installations.appConfig);\r\n }\r\n else {\r\n const updatedInstallationEntry = Object.assign(Object.assign({}, installationEntry), { authToken: { requestStatus: 0 /* RequestStatus.NOT_STARTED */ } });\r\n await set(installations.appConfig, updatedInstallationEntry);\r\n }\r\n throw e;\r\n }\r\n}\r\nfunction isEntryRegistered(installationEntry) {\r\n return (installationEntry !== undefined &&\r\n installationEntry.registrationStatus === 2 /* RequestStatus.COMPLETED */);\r\n}\r\nfunction isAuthTokenValid(authToken) {\r\n return (authToken.requestStatus === 2 /* RequestStatus.COMPLETED */ &&\r\n !isAuthTokenExpired(authToken));\r\n}\r\nfunction isAuthTokenExpired(authToken) {\r\n const now = Date.now();\r\n return (now < authToken.creationTime ||\r\n authToken.creationTime + authToken.expiresIn < now + TOKEN_EXPIRATION_BUFFER);\r\n}\r\n/** Returns an updated InstallationEntry with an InProgressAuthToken. */\r\nfunction makeAuthTokenRequestInProgressEntry(oldEntry) {\r\n const inProgressAuthToken = {\r\n requestStatus: 1 /* RequestStatus.IN_PROGRESS */,\r\n requestTime: Date.now()\r\n };\r\n return Object.assign(Object.assign({}, oldEntry), { authToken: inProgressAuthToken });\r\n}\r\nfunction hasAuthTokenRequestTimedOut(authToken) {\r\n return (authToken.requestStatus === 1 /* RequestStatus.IN_PROGRESS */ &&\r\n authToken.requestTime + PENDING_TIMEOUT_MS < Date.now());\r\n}\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/**\r\n * Creates a Firebase Installation if there isn't one for the app and\r\n * returns the Installation ID.\r\n * @param installations - The `Installations` instance.\r\n *\r\n * @public\r\n */\r\nasync function getId(installations) {\r\n const installationsImpl = installations;\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(installationsImpl);\r\n if (registrationPromise) {\r\n registrationPromise.catch(console.error);\r\n }\r\n else {\r\n // If the installation is already registered, update the authentication\r\n // token if needed.\r\n refreshAuthToken(installationsImpl).catch(console.error);\r\n }\r\n return installationEntry.fid;\r\n}\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/**\r\n * Returns a Firebase Installations auth token, identifying the current\r\n * Firebase Installation.\r\n * @param installations - The `Installations` instance.\r\n * @param forceRefresh - Force refresh regardless of token expiration.\r\n *\r\n * @public\r\n */\r\nasync function getToken(installations, forceRefresh = false) {\r\n const installationsImpl = installations;\r\n await completeInstallationRegistration(installationsImpl);\r\n // At this point we either have a Registered Installation in the DB, or we've\r\n // already thrown an error.\r\n const authToken = await refreshAuthToken(installationsImpl, forceRefresh);\r\n return authToken.token;\r\n}\r\nasync function completeInstallationRegistration(installations) {\r\n const { registrationPromise } = await getInstallationEntry(installations);\r\n if (registrationPromise) {\r\n // A createInstallation request is in progress. Wait until it finishes.\r\n await registrationPromise;\r\n }\r\n}\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\nasync function deleteInstallationRequest(appConfig, installationEntry) {\r\n const endpoint = getDeleteEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n const request = {\r\n method: 'DELETE',\r\n headers\r\n };\r\n const response = await retryIfServerError(() => fetch(endpoint, request));\r\n if (!response.ok) {\r\n throw await getErrorFromResponse('Delete Installation', response);\r\n }\r\n}\r\nfunction getDeleteEndpoint(appConfig, { fid }) {\r\n return `${getInstallationsEndpoint(appConfig)}/${fid}`;\r\n}\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/**\r\n * Deletes the Firebase Installation and all associated data.\r\n * @param installations - The `Installations` instance.\r\n *\r\n * @public\r\n */\r\nasync function deleteInstallations(installations) {\r\n const { appConfig } = installations;\r\n const entry = await update(appConfig, oldEntry => {\r\n if (oldEntry && oldEntry.registrationStatus === 0 /* RequestStatus.NOT_STARTED */) {\r\n // Delete the unregistered entry without sending a deleteInstallation request.\r\n return undefined;\r\n }\r\n return oldEntry;\r\n });\r\n if (entry) {\r\n if (entry.registrationStatus === 1 /* RequestStatus.IN_PROGRESS */) {\r\n // Can't delete while trying to register.\r\n throw ERROR_FACTORY.create(\"delete-pending-registration\" /* ErrorCode.DELETE_PENDING_REGISTRATION */);\r\n }\r\n else if (entry.registrationStatus === 2 /* RequestStatus.COMPLETED */) {\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* ErrorCode.APP_OFFLINE */);\r\n }\r\n else {\r\n await deleteInstallationRequest(appConfig, entry);\r\n await remove(appConfig);\r\n }\r\n }\r\n }\r\n}\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/**\r\n * Sets a new callback that will get called when Installation ID changes.\r\n * Returns an unsubscribe function that will remove the callback when called.\r\n * @param installations - The `Installations` instance.\r\n * @param callback - The callback function that is invoked when FID changes.\r\n * @returns A function that can be called to unsubscribe.\r\n *\r\n * @public\r\n */\r\nfunction onIdChange(installations, callback) {\r\n const { appConfig } = installations;\r\n addCallback(appConfig, callback);\r\n return () => {\r\n removeCallback(appConfig, callback);\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 * Returns an instance of {@link Installations} associated with the given\r\n * {@link @firebase/app#FirebaseApp} instance.\r\n * @param app - The {@link @firebase/app#FirebaseApp} instance.\r\n *\r\n * @public\r\n */\r\nfunction getInstallations(app = getApp()) {\r\n const installationsImpl = _getProvider(app, 'installations').getImmediate();\r\n return installationsImpl;\r\n}\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\nfunction extractAppConfig(app) {\r\n if (!app || !app.options) {\r\n throw getMissingValueError('App Configuration');\r\n }\r\n if (!app.name) {\r\n throw getMissingValueError('App Name');\r\n }\r\n // Required app config keys\r\n const configKeys = [\r\n 'projectId',\r\n 'apiKey',\r\n 'appId'\r\n ];\r\n for (const keyName of configKeys) {\r\n if (!app.options[keyName]) {\r\n throw getMissingValueError(keyName);\r\n }\r\n }\r\n return {\r\n appName: app.name,\r\n projectId: app.options.projectId,\r\n apiKey: app.options.apiKey,\r\n appId: app.options.appId\r\n };\r\n}\r\nfunction getMissingValueError(valueName) {\r\n return ERROR_FACTORY.create(\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */, {\r\n valueName\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\nconst INSTALLATIONS_NAME = 'installations';\r\nconst INSTALLATIONS_NAME_INTERNAL = 'installations-internal';\r\nconst publicFactory = (container) => {\r\n const app = container.getProvider('app').getImmediate();\r\n // Throws if app isn't configured properly.\r\n const appConfig = extractAppConfig(app);\r\n const heartbeatServiceProvider = _getProvider(app, 'heartbeat');\r\n const installationsImpl = {\r\n app,\r\n appConfig,\r\n heartbeatServiceProvider,\r\n _delete: () => Promise.resolve()\r\n };\r\n return installationsImpl;\r\n};\r\nconst internalFactory = (container) => {\r\n const app = container.getProvider('app').getImmediate();\r\n // Internal FIS instance relies on public FIS instance.\r\n const installations = _getProvider(app, INSTALLATIONS_NAME).getImmediate();\r\n const installationsInternal = {\r\n getId: () => getId(installations),\r\n getToken: (forceRefresh) => getToken(installations, forceRefresh)\r\n };\r\n return installationsInternal;\r\n};\r\nfunction registerInstallations() {\r\n _registerComponent(new Component(INSTALLATIONS_NAME, publicFactory, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n _registerComponent(new Component(INSTALLATIONS_NAME_INTERNAL, internalFactory, \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n}\n\n/**\r\n * The Firebase Installations Web SDK.\r\n * This SDK does not work in a Node.js environment.\r\n *\r\n * @packageDocumentation\r\n */\r\nregisterInstallations();\r\nregisterVersion(name, version);\r\n// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\nregisterVersion(name, version, 'esm2017');\n\nexport { deleteInstallations, getId, getInstallations, getToken, onIdChange };\n//# sourceMappingURL=index.esm2017.js.map\n","import '@firebase/installations';\nimport { Component } from '@firebase/component';\nimport { openDB, deleteDB } from 'idb';\nimport { ErrorFactory, validateIndexedDBOpenable, isIndexedDBAvailable, areCookiesEnabled, getModularInstance } from '@firebase/util';\nimport { _registerComponent, registerVersion, _getProvider, getApp } from '@firebase/app';\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\nconst DEFAULT_SW_PATH = '/firebase-messaging-sw.js';\r\nconst DEFAULT_SW_SCOPE = '/firebase-cloud-messaging-push-scope';\r\nconst DEFAULT_VAPID_KEY = 'BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4';\r\nconst ENDPOINT = 'https://fcmregistrations.googleapis.com/v1';\r\nconst CONSOLE_CAMPAIGN_ID = 'google.c.a.c_id';\r\nconst CONSOLE_CAMPAIGN_NAME = 'google.c.a.c_l';\r\nconst CONSOLE_CAMPAIGN_TIME = 'google.c.a.ts';\r\n/** Set to '1' if Analytics is enabled for the campaign */\r\nconst CONSOLE_CAMPAIGN_ANALYTICS_ENABLED = 'google.c.a.e';\r\nvar MessageType$1;\r\n(function (MessageType) {\r\n MessageType[MessageType[\"DATA_MESSAGE\"] = 1] = \"DATA_MESSAGE\";\r\n MessageType[MessageType[\"DISPLAY_NOTIFICATION\"] = 3] = \"DISPLAY_NOTIFICATION\";\r\n})(MessageType$1 || (MessageType$1 = {}));\n\n/**\r\n * @license\r\n * Copyright 2018 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except\r\n * in compliance with the License. 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 distributed under the License\r\n * is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express\r\n * or implied. See the License for the specific language governing permissions and limitations under\r\n * the License.\r\n */\r\nvar MessageType;\r\n(function (MessageType) {\r\n MessageType[\"PUSH_RECEIVED\"] = \"push-received\";\r\n MessageType[\"NOTIFICATION_CLICKED\"] = \"notification-clicked\";\r\n})(MessageType || (MessageType = {}));\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\nfunction arrayToBase64(array) {\r\n const uint8Array = new Uint8Array(array);\r\n const base64String = btoa(String.fromCharCode(...uint8Array));\r\n return base64String.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\r\n}\r\nfunction base64ToArray(base64String) {\r\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\r\n const base64 = (base64String + padding)\r\n .replace(/\\-/g, '+')\r\n .replace(/_/g, '/');\r\n const rawData = atob(base64);\r\n const outputArray = new Uint8Array(rawData.length);\r\n for (let i = 0; i < rawData.length; ++i) {\r\n outputArray[i] = rawData.charCodeAt(i);\r\n }\r\n return outputArray;\r\n}\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\nconst OLD_DB_NAME = 'fcm_token_details_db';\r\n/**\r\n * The last DB version of 'fcm_token_details_db' was 4. This is one higher, so that the upgrade\r\n * callback is called for all versions of the old DB.\r\n */\r\nconst OLD_DB_VERSION = 5;\r\nconst OLD_OBJECT_STORE_NAME = 'fcm_token_object_Store';\r\nasync function migrateOldDatabase(senderId) {\r\n if ('databases' in indexedDB) {\r\n // indexedDb.databases() is an IndexedDB v3 API and does not exist in all browsers. TODO: Remove\r\n // typecast when it lands in TS types.\r\n const databases = await indexedDB.databases();\r\n const dbNames = databases.map(db => db.name);\r\n if (!dbNames.includes(OLD_DB_NAME)) {\r\n // old DB didn't exist, no need to open.\r\n return null;\r\n }\r\n }\r\n let tokenDetails = null;\r\n const db = await openDB(OLD_DB_NAME, OLD_DB_VERSION, {\r\n upgrade: async (db, oldVersion, newVersion, upgradeTransaction) => {\r\n var _a;\r\n if (oldVersion < 2) {\r\n // Database too old, skip migration.\r\n return;\r\n }\r\n if (!db.objectStoreNames.contains(OLD_OBJECT_STORE_NAME)) {\r\n // Database did not exist. Nothing to do.\r\n return;\r\n }\r\n const objectStore = upgradeTransaction.objectStore(OLD_OBJECT_STORE_NAME);\r\n const value = await objectStore.index('fcmSenderId').get(senderId);\r\n await objectStore.clear();\r\n if (!value) {\r\n // No entry in the database, nothing to migrate.\r\n return;\r\n }\r\n if (oldVersion === 2) {\r\n const oldDetails = value;\r\n if (!oldDetails.auth || !oldDetails.p256dh || !oldDetails.endpoint) {\r\n return;\r\n }\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: (_a = oldDetails.createTime) !== null && _a !== void 0 ? _a : Date.now(),\r\n subscriptionOptions: {\r\n auth: oldDetails.auth,\r\n p256dh: oldDetails.p256dh,\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: typeof oldDetails.vapidKey === 'string'\r\n ? oldDetails.vapidKey\r\n : arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n else if (oldVersion === 3) {\r\n const oldDetails = value;\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: oldDetails.createTime,\r\n subscriptionOptions: {\r\n auth: arrayToBase64(oldDetails.auth),\r\n p256dh: arrayToBase64(oldDetails.p256dh),\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n else if (oldVersion === 4) {\r\n const oldDetails = value;\r\n tokenDetails = {\r\n token: oldDetails.fcmToken,\r\n createTime: oldDetails.createTime,\r\n subscriptionOptions: {\r\n auth: arrayToBase64(oldDetails.auth),\r\n p256dh: arrayToBase64(oldDetails.p256dh),\r\n endpoint: oldDetails.endpoint,\r\n swScope: oldDetails.swScope,\r\n vapidKey: arrayToBase64(oldDetails.vapidKey)\r\n }\r\n };\r\n }\r\n }\r\n });\r\n db.close();\r\n // Delete all old databases.\r\n await deleteDB(OLD_DB_NAME);\r\n await deleteDB('fcm_vapid_details_db');\r\n await deleteDB('undefined');\r\n return checkTokenDetails(tokenDetails) ? tokenDetails : null;\r\n}\r\nfunction checkTokenDetails(tokenDetails) {\r\n if (!tokenDetails || !tokenDetails.subscriptionOptions) {\r\n return false;\r\n }\r\n const { subscriptionOptions } = tokenDetails;\r\n return (typeof tokenDetails.createTime === 'number' &&\r\n tokenDetails.createTime > 0 &&\r\n typeof tokenDetails.token === 'string' &&\r\n tokenDetails.token.length > 0 &&\r\n typeof subscriptionOptions.auth === 'string' &&\r\n subscriptionOptions.auth.length > 0 &&\r\n typeof subscriptionOptions.p256dh === 'string' &&\r\n subscriptionOptions.p256dh.length > 0 &&\r\n typeof subscriptionOptions.endpoint === 'string' &&\r\n subscriptionOptions.endpoint.length > 0 &&\r\n typeof subscriptionOptions.swScope === 'string' &&\r\n subscriptionOptions.swScope.length > 0 &&\r\n typeof subscriptionOptions.vapidKey === 'string' &&\r\n subscriptionOptions.vapidKey.length > 0);\r\n}\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// Exported for tests.\r\nconst DATABASE_NAME = 'firebase-messaging-database';\r\nconst DATABASE_VERSION = 1;\r\nconst OBJECT_STORE_NAME = 'firebase-messaging-store';\r\nlet dbPromise = null;\r\nfunction getDbPromise() {\r\n if (!dbPromise) {\r\n dbPromise = openDB(DATABASE_NAME, DATABASE_VERSION, {\r\n upgrade: (upgradeDb, oldVersion) => {\r\n // We don't use 'break' in this switch statement, the fall-through behavior is what we want,\r\n // because if there are multiple versions between the old version and the current version, we\r\n // want ALL the migrations that correspond to those versions to run, not only the last one.\r\n // eslint-disable-next-line default-case\r\n switch (oldVersion) {\r\n case 0:\r\n upgradeDb.createObjectStore(OBJECT_STORE_NAME);\r\n }\r\n }\r\n });\r\n }\r\n return dbPromise;\r\n}\r\n/** Gets record(s) from the objectStore that match the given key. */\r\nasync function dbGet(firebaseDependencies) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tokenDetails = (await db\r\n .transaction(OBJECT_STORE_NAME)\r\n .objectStore(OBJECT_STORE_NAME)\r\n .get(key));\r\n if (tokenDetails) {\r\n return tokenDetails;\r\n }\r\n else {\r\n // Check if there is a tokenDetails object in the old DB.\r\n const oldTokenDetails = await migrateOldDatabase(firebaseDependencies.appConfig.senderId);\r\n if (oldTokenDetails) {\r\n await dbSet(firebaseDependencies, oldTokenDetails);\r\n return oldTokenDetails;\r\n }\r\n }\r\n}\r\n/** Assigns or overwrites the record for the given key with the given value. */\r\nasync function dbSet(firebaseDependencies, tokenDetails) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).put(tokenDetails, key);\r\n await tx.done;\r\n return tokenDetails;\r\n}\r\n/** Removes record(s) from the objectStore that match the given key. */\r\nasync function dbRemove(firebaseDependencies) {\r\n const key = getKey(firebaseDependencies);\r\n const db = await getDbPromise();\r\n const tx = db.transaction(OBJECT_STORE_NAME, 'readwrite');\r\n await tx.objectStore(OBJECT_STORE_NAME).delete(key);\r\n await tx.done;\r\n}\r\nfunction getKey({ appConfig }) {\r\n return appConfig.appId;\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\nconst ERROR_MAP = {\r\n [\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */]: 'This method is available in a Window context.',\r\n [\"only-available-in-sw\" /* ErrorCode.AVAILABLE_IN_SW */]: 'This method is available in a service worker context.',\r\n [\"permission-default\" /* ErrorCode.PERMISSION_DEFAULT */]: 'The notification permission was not granted and dismissed instead.',\r\n [\"permission-blocked\" /* ErrorCode.PERMISSION_BLOCKED */]: 'The notification permission was not granted and blocked instead.',\r\n [\"unsupported-browser\" /* ErrorCode.UNSUPPORTED_BROWSER */]: \"This browser doesn't support the API's required to use the Firebase SDK.\",\r\n [\"indexed-db-unsupported\" /* ErrorCode.INDEXED_DB_UNSUPPORTED */]: \"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)\",\r\n [\"failed-service-worker-registration\" /* ErrorCode.FAILED_DEFAULT_REGISTRATION */]: 'We are unable to register the default service worker. {$browserErrorMessage}',\r\n [\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */]: 'A problem occurred while subscribing the user to FCM: {$errorInfo}',\r\n [\"token-subscribe-no-token\" /* ErrorCode.TOKEN_SUBSCRIBE_NO_TOKEN */]: 'FCM returned no token when subscribing the user to push.',\r\n [\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */]: 'A problem occurred while unsubscribing the ' +\r\n 'user from FCM: {$errorInfo}',\r\n [\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */]: 'A problem occurred while updating the user from FCM: {$errorInfo}',\r\n [\"token-update-no-token\" /* ErrorCode.TOKEN_UPDATE_NO_TOKEN */]: 'FCM returned no token when updating the user to push.',\r\n [\"use-sw-after-get-token\" /* ErrorCode.USE_SW_AFTER_GET_TOKEN */]: 'The useServiceWorker() method may only be called once and must be ' +\r\n 'called before calling getToken() to ensure your service worker is used.',\r\n [\"invalid-sw-registration\" /* ErrorCode.INVALID_SW_REGISTRATION */]: 'The input to useServiceWorker() must be a ServiceWorkerRegistration.',\r\n [\"invalid-bg-handler\" /* ErrorCode.INVALID_BG_HANDLER */]: 'The input to setBackgroundMessageHandler() must be a function.',\r\n [\"invalid-vapid-key\" /* ErrorCode.INVALID_VAPID_KEY */]: 'The public VAPID key must be a string.',\r\n [\"use-vapid-key-after-get-token\" /* ErrorCode.USE_VAPID_KEY_AFTER_GET_TOKEN */]: 'The usePublicVapidKey() method may only be called once and must be ' +\r\n 'called before calling getToken() to ensure your VAPID key is used.'\r\n};\r\nconst ERROR_FACTORY = new ErrorFactory('messaging', 'Messaging', ERROR_MAP);\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\nasync function requestGetToken(firebaseDependencies, subscriptionOptions) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const body = getBody(subscriptionOptions);\r\n const subscribeOptions = {\r\n method: 'POST',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n let responseData;\r\n try {\r\n const response = await fetch(getEndpoint(firebaseDependencies.appConfig), subscribeOptions);\r\n responseData = await response.json();\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-subscribe-failed\" /* ErrorCode.TOKEN_SUBSCRIBE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n if (!responseData.token) {\r\n throw ERROR_FACTORY.create(\"token-subscribe-no-token\" /* ErrorCode.TOKEN_SUBSCRIBE_NO_TOKEN */);\r\n }\r\n return responseData.token;\r\n}\r\nasync function requestUpdateToken(firebaseDependencies, tokenDetails) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const body = getBody(tokenDetails.subscriptionOptions);\r\n const updateOptions = {\r\n method: 'PATCH',\r\n headers,\r\n body: JSON.stringify(body)\r\n };\r\n let responseData;\r\n try {\r\n const response = await fetch(`${getEndpoint(firebaseDependencies.appConfig)}/${tokenDetails.token}`, updateOptions);\r\n responseData = await response.json();\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-update-failed\" /* ErrorCode.TOKEN_UPDATE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n if (!responseData.token) {\r\n throw ERROR_FACTORY.create(\"token-update-no-token\" /* ErrorCode.TOKEN_UPDATE_NO_TOKEN */);\r\n }\r\n return responseData.token;\r\n}\r\nasync function requestDeleteToken(firebaseDependencies, token) {\r\n const headers = await getHeaders(firebaseDependencies);\r\n const unsubscribeOptions = {\r\n method: 'DELETE',\r\n headers\r\n };\r\n try {\r\n const response = await fetch(`${getEndpoint(firebaseDependencies.appConfig)}/${token}`, unsubscribeOptions);\r\n const responseData = await response.json();\r\n if (responseData.error) {\r\n const message = responseData.error.message;\r\n throw ERROR_FACTORY.create(\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */, {\r\n errorInfo: message\r\n });\r\n }\r\n }\r\n catch (err) {\r\n throw ERROR_FACTORY.create(\"token-unsubscribe-failed\" /* ErrorCode.TOKEN_UNSUBSCRIBE_FAILED */, {\r\n errorInfo: err === null || err === void 0 ? void 0 : err.toString()\r\n });\r\n }\r\n}\r\nfunction getEndpoint({ projectId }) {\r\n return `${ENDPOINT}/projects/${projectId}/registrations`;\r\n}\r\nasync function getHeaders({ appConfig, installations }) {\r\n const authToken = await installations.getToken();\r\n return new Headers({\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n 'x-goog-api-key': appConfig.apiKey,\r\n 'x-goog-firebase-installations-auth': `FIS ${authToken}`\r\n });\r\n}\r\nfunction getBody({ p256dh, auth, endpoint, vapidKey }) {\r\n const body = {\r\n web: {\r\n endpoint,\r\n auth,\r\n p256dh\r\n }\r\n };\r\n if (vapidKey !== DEFAULT_VAPID_KEY) {\r\n body.web.applicationPubKey = vapidKey;\r\n }\r\n return body;\r\n}\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// UpdateRegistration will be called once every week.\r\nconst TOKEN_EXPIRATION_MS = 7 * 24 * 60 * 60 * 1000; // 7 days\r\nasync function getTokenInternal(messaging) {\r\n const pushSubscription = await getPushSubscription(messaging.swRegistration, messaging.vapidKey);\r\n const subscriptionOptions = {\r\n vapidKey: messaging.vapidKey,\r\n swScope: messaging.swRegistration.scope,\r\n endpoint: pushSubscription.endpoint,\r\n auth: arrayToBase64(pushSubscription.getKey('auth')),\r\n p256dh: arrayToBase64(pushSubscription.getKey('p256dh'))\r\n };\r\n const tokenDetails = await dbGet(messaging.firebaseDependencies);\r\n if (!tokenDetails) {\r\n // No token, get a new one.\r\n return getNewToken(messaging.firebaseDependencies, subscriptionOptions);\r\n }\r\n else if (!isTokenValid(tokenDetails.subscriptionOptions, subscriptionOptions)) {\r\n // Invalid token, get a new one.\r\n try {\r\n await requestDeleteToken(messaging.firebaseDependencies, tokenDetails.token);\r\n }\r\n catch (e) {\r\n // Suppress errors because of #2364\r\n console.warn(e);\r\n }\r\n return getNewToken(messaging.firebaseDependencies, subscriptionOptions);\r\n }\r\n else if (Date.now() >= tokenDetails.createTime + TOKEN_EXPIRATION_MS) {\r\n // Weekly token refresh\r\n return updateToken(messaging, {\r\n token: tokenDetails.token,\r\n createTime: Date.now(),\r\n subscriptionOptions\r\n });\r\n }\r\n else {\r\n // Valid token, nothing to do.\r\n return tokenDetails.token;\r\n }\r\n}\r\n/**\r\n * This method deletes the token from the database, unsubscribes the token from FCM, and unregisters\r\n * the push subscription if it exists.\r\n */\r\nasync function deleteTokenInternal(messaging) {\r\n const tokenDetails = await dbGet(messaging.firebaseDependencies);\r\n if (tokenDetails) {\r\n await requestDeleteToken(messaging.firebaseDependencies, tokenDetails.token);\r\n await dbRemove(messaging.firebaseDependencies);\r\n }\r\n // Unsubscribe from the push subscription.\r\n const pushSubscription = await messaging.swRegistration.pushManager.getSubscription();\r\n if (pushSubscription) {\r\n return pushSubscription.unsubscribe();\r\n }\r\n // If there's no SW, consider it a success.\r\n return true;\r\n}\r\nasync function updateToken(messaging, tokenDetails) {\r\n try {\r\n const updatedToken = await requestUpdateToken(messaging.firebaseDependencies, tokenDetails);\r\n const updatedTokenDetails = Object.assign(Object.assign({}, tokenDetails), { token: updatedToken, createTime: Date.now() });\r\n await dbSet(messaging.firebaseDependencies, updatedTokenDetails);\r\n return updatedToken;\r\n }\r\n catch (e) {\r\n throw e;\r\n }\r\n}\r\nasync function getNewToken(firebaseDependencies, subscriptionOptions) {\r\n const token = await requestGetToken(firebaseDependencies, subscriptionOptions);\r\n const tokenDetails = {\r\n token,\r\n createTime: Date.now(),\r\n subscriptionOptions\r\n };\r\n await dbSet(firebaseDependencies, tokenDetails);\r\n return tokenDetails.token;\r\n}\r\n/**\r\n * Gets a PushSubscription for the current user.\r\n */\r\nasync function getPushSubscription(swRegistration, vapidKey) {\r\n const subscription = await swRegistration.pushManager.getSubscription();\r\n if (subscription) {\r\n return subscription;\r\n }\r\n return swRegistration.pushManager.subscribe({\r\n userVisibleOnly: true,\r\n // Chrome <= 75 doesn't support base64-encoded VAPID key. For backward compatibility, VAPID key\r\n // submitted to pushManager#subscribe must be of type Uint8Array.\r\n applicationServerKey: base64ToArray(vapidKey)\r\n });\r\n}\r\n/**\r\n * Checks if the saved tokenDetails object matches the configuration provided.\r\n */\r\nfunction isTokenValid(dbOptions, currentOptions) {\r\n const isVapidKeyEqual = currentOptions.vapidKey === dbOptions.vapidKey;\r\n const isEndpointEqual = currentOptions.endpoint === dbOptions.endpoint;\r\n const isAuthEqual = currentOptions.auth === dbOptions.auth;\r\n const isP256dhEqual = currentOptions.p256dh === dbOptions.p256dh;\r\n return isVapidKeyEqual && isEndpointEqual && isAuthEqual && isP256dhEqual;\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\nfunction externalizePayload(internalPayload) {\r\n const payload = {\r\n from: internalPayload.from,\r\n // eslint-disable-next-line camelcase\r\n collapseKey: internalPayload.collapse_key,\r\n // eslint-disable-next-line camelcase\r\n messageId: internalPayload.fcmMessageId\r\n };\r\n propagateNotificationPayload(payload, internalPayload);\r\n propagateDataPayload(payload, internalPayload);\r\n propagateFcmOptions(payload, internalPayload);\r\n return payload;\r\n}\r\nfunction propagateNotificationPayload(payload, messagePayloadInternal) {\r\n if (!messagePayloadInternal.notification) {\r\n return;\r\n }\r\n payload.notification = {};\r\n const title = messagePayloadInternal.notification.title;\r\n if (!!title) {\r\n payload.notification.title = title;\r\n }\r\n const body = messagePayloadInternal.notification.body;\r\n if (!!body) {\r\n payload.notification.body = body;\r\n }\r\n const image = messagePayloadInternal.notification.image;\r\n if (!!image) {\r\n payload.notification.image = image;\r\n }\r\n const icon = messagePayloadInternal.notification.icon;\r\n if (!!icon) {\r\n payload.notification.icon = icon;\r\n }\r\n}\r\nfunction propagateDataPayload(payload, messagePayloadInternal) {\r\n if (!messagePayloadInternal.data) {\r\n return;\r\n }\r\n payload.data = messagePayloadInternal.data;\r\n}\r\nfunction propagateFcmOptions(payload, messagePayloadInternal) {\r\n var _a, _b, _c, _d, _e;\r\n // fcmOptions.link value is written into notification.click_action. see more in b/232072111\r\n if (!messagePayloadInternal.fcmOptions &&\r\n !((_a = messagePayloadInternal.notification) === null || _a === void 0 ? void 0 : _a.click_action)) {\r\n return;\r\n }\r\n payload.fcmOptions = {};\r\n const link = (_c = (_b = messagePayloadInternal.fcmOptions) === null || _b === void 0 ? void 0 : _b.link) !== null && _c !== void 0 ? _c : (_d = messagePayloadInternal.notification) === null || _d === void 0 ? void 0 : _d.click_action;\r\n if (!!link) {\r\n payload.fcmOptions.link = link;\r\n }\r\n // eslint-disable-next-line camelcase\r\n const analyticsLabel = (_e = messagePayloadInternal.fcmOptions) === null || _e === void 0 ? void 0 : _e.analytics_label;\r\n if (!!analyticsLabel) {\r\n payload.fcmOptions.analyticsLabel = analyticsLabel;\r\n }\r\n}\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\nfunction isConsoleMessage(data) {\r\n // This message has a campaign ID, meaning it was sent using the Firebase Console.\r\n return typeof data === 'object' && !!data && CONSOLE_CAMPAIGN_ID in data;\r\n}\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_mergeStrings('AzSCbw63g1R0nCw85jG8', 'Iaya3yLKwmgvh7cF0q4');\r\nfunction _mergeStrings(s1, s2) {\r\n const resultArray = [];\r\n for (let i = 0; i < s1.length; i++) {\r\n resultArray.push(s1.charAt(i));\r\n if (i < s2.length) {\r\n resultArray.push(s2.charAt(i));\r\n }\r\n }\r\n return resultArray.join('');\r\n}\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\nfunction extractAppConfig(app) {\r\n if (!app || !app.options) {\r\n throw getMissingValueError('App Configuration Object');\r\n }\r\n if (!app.name) {\r\n throw getMissingValueError('App Name');\r\n }\r\n // Required app config keys\r\n const configKeys = [\r\n 'projectId',\r\n 'apiKey',\r\n 'appId',\r\n 'messagingSenderId'\r\n ];\r\n const { options } = app;\r\n for (const keyName of configKeys) {\r\n if (!options[keyName]) {\r\n throw getMissingValueError(keyName);\r\n }\r\n }\r\n return {\r\n appName: app.name,\r\n projectId: options.projectId,\r\n apiKey: options.apiKey,\r\n appId: options.appId,\r\n senderId: options.messagingSenderId\r\n };\r\n}\r\nfunction getMissingValueError(valueName) {\r\n return ERROR_FACTORY.create(\"missing-app-config-values\" /* ErrorCode.MISSING_APP_CONFIG_VALUES */, {\r\n valueName\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\nclass MessagingService {\r\n constructor(app, installations, analyticsProvider) {\r\n // logging is only done with end user consent. Default to false.\r\n this.deliveryMetricsExportedToBigQueryEnabled = false;\r\n this.onBackgroundMessageHandler = null;\r\n this.onMessageHandler = null;\r\n this.logEvents = [];\r\n this.isLogServiceStarted = false;\r\n const appConfig = extractAppConfig(app);\r\n this.firebaseDependencies = {\r\n app,\r\n appConfig,\r\n installations,\r\n analyticsProvider\r\n };\r\n }\r\n _delete() {\r\n return Promise.resolve();\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\nasync function registerDefaultSw(messaging) {\r\n try {\r\n messaging.swRegistration = await navigator.serviceWorker.register(DEFAULT_SW_PATH, {\r\n scope: DEFAULT_SW_SCOPE\r\n });\r\n // The timing when browser updates sw when sw has an update is unreliable from experiment. It\r\n // leads to version conflict when the SDK upgrades to a newer version in the main page, but sw\r\n // is stuck with the old version. For example,\r\n // https://github.com/firebase/firebase-js-sdk/issues/2590 The following line reliably updates\r\n // sw if there was an update.\r\n messaging.swRegistration.update().catch(() => {\r\n /* it is non blocking and we don't care if it failed */\r\n });\r\n }\r\n catch (e) {\r\n throw ERROR_FACTORY.create(\"failed-service-worker-registration\" /* ErrorCode.FAILED_DEFAULT_REGISTRATION */, {\r\n browserErrorMessage: e === null || e === void 0 ? void 0 : e.message\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\nasync function updateSwReg(messaging, swRegistration) {\r\n if (!swRegistration && !messaging.swRegistration) {\r\n await registerDefaultSw(messaging);\r\n }\r\n if (!swRegistration && !!messaging.swRegistration) {\r\n return;\r\n }\r\n if (!(swRegistration instanceof ServiceWorkerRegistration)) {\r\n throw ERROR_FACTORY.create(\"invalid-sw-registration\" /* ErrorCode.INVALID_SW_REGISTRATION */);\r\n }\r\n messaging.swRegistration = swRegistration;\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\nasync function updateVapidKey(messaging, vapidKey) {\r\n if (!!vapidKey) {\r\n messaging.vapidKey = vapidKey;\r\n }\r\n else if (!messaging.vapidKey) {\r\n messaging.vapidKey = DEFAULT_VAPID_KEY;\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\nasync function getToken$1(messaging, options) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n if (Notification.permission === 'default') {\r\n await Notification.requestPermission();\r\n }\r\n if (Notification.permission !== 'granted') {\r\n throw ERROR_FACTORY.create(\"permission-blocked\" /* ErrorCode.PERMISSION_BLOCKED */);\r\n }\r\n await updateVapidKey(messaging, options === null || options === void 0 ? void 0 : options.vapidKey);\r\n await updateSwReg(messaging, options === null || options === void 0 ? void 0 : options.serviceWorkerRegistration);\r\n return getTokenInternal(messaging);\r\n}\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\nasync function logToScion(messaging, messageType, data) {\r\n const eventType = getEventType(messageType);\r\n const analytics = await messaging.firebaseDependencies.analyticsProvider.get();\r\n analytics.logEvent(eventType, {\r\n /* eslint-disable camelcase */\r\n message_id: data[CONSOLE_CAMPAIGN_ID],\r\n message_name: data[CONSOLE_CAMPAIGN_NAME],\r\n message_time: data[CONSOLE_CAMPAIGN_TIME],\r\n message_device_time: Math.floor(Date.now() / 1000)\r\n /* eslint-enable camelcase */\r\n });\r\n}\r\nfunction getEventType(messageType) {\r\n switch (messageType) {\r\n case MessageType.NOTIFICATION_CLICKED:\r\n return 'notification_open';\r\n case MessageType.PUSH_RECEIVED:\r\n return 'notification_foreground';\r\n default:\r\n throw new Error();\r\n }\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\nasync function messageEventListener(messaging, event) {\r\n const internalPayload = event.data;\r\n if (!internalPayload.isFirebaseMessaging) {\r\n return;\r\n }\r\n if (messaging.onMessageHandler &&\r\n internalPayload.messageType === MessageType.PUSH_RECEIVED) {\r\n if (typeof messaging.onMessageHandler === 'function') {\r\n messaging.onMessageHandler(externalizePayload(internalPayload));\r\n }\r\n else {\r\n messaging.onMessageHandler.next(externalizePayload(internalPayload));\r\n }\r\n }\r\n // Log to Scion if applicable\r\n const dataPayload = internalPayload.data;\r\n if (isConsoleMessage(dataPayload) &&\r\n dataPayload[CONSOLE_CAMPAIGN_ANALYTICS_ENABLED] === '1') {\r\n await logToScion(messaging, internalPayload.messageType, dataPayload);\r\n }\r\n}\n\nconst name = \"@firebase/messaging\";\nconst version = \"0.12.12\";\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\nconst WindowMessagingFactory = (container) => {\r\n const messaging = new MessagingService(container.getProvider('app').getImmediate(), container.getProvider('installations-internal').getImmediate(), container.getProvider('analytics-internal'));\r\n navigator.serviceWorker.addEventListener('message', e => messageEventListener(messaging, e));\r\n return messaging;\r\n};\r\nconst WindowMessagingInternalFactory = (container) => {\r\n const messaging = container\r\n .getProvider('messaging')\r\n .getImmediate();\r\n const messagingInternal = {\r\n getToken: (options) => getToken$1(messaging, options)\r\n };\r\n return messagingInternal;\r\n};\r\nfunction registerMessagingInWindow() {\r\n _registerComponent(new Component('messaging', WindowMessagingFactory, \"PUBLIC\" /* ComponentType.PUBLIC */));\r\n _registerComponent(new Component('messaging-internal', WindowMessagingInternalFactory, \"PRIVATE\" /* ComponentType.PRIVATE */));\r\n registerVersion(name, version);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name, version, 'esm2017');\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 * Checks if all required APIs exist in the browser.\r\n * @returns a Promise that resolves to a boolean.\r\n *\r\n * @public\r\n */\r\nasync function isWindowSupported() {\r\n try {\r\n // This throws if open() is unsupported, so adding it to the conditional\r\n // statement below can cause an uncaught error.\r\n await validateIndexedDBOpenable();\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n // firebase-js-sdk/issues/2393 reveals that idb#open in Safari iframe and Firefox private browsing\r\n // might be prohibited to run. In these contexts, an error would be thrown during the messaging\r\n // instantiating phase, informing the developers to import/call isSupported for special handling.\r\n return (typeof window !== 'undefined' &&\r\n isIndexedDBAvailable() &&\r\n areCookiesEnabled() &&\r\n 'serviceWorker' in navigator &&\r\n 'PushManager' in window &&\r\n 'Notification' in window &&\r\n 'fetch' in window &&\r\n ServiceWorkerRegistration.prototype.hasOwnProperty('showNotification') &&\r\n PushSubscription.prototype.hasOwnProperty('getKey'));\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\nasync function deleteToken$1(messaging) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n if (!messaging.swRegistration) {\r\n await registerDefaultSw(messaging);\r\n }\r\n return deleteTokenInternal(messaging);\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\nfunction onMessage$1(messaging, nextOrObserver) {\r\n if (!navigator) {\r\n throw ERROR_FACTORY.create(\"only-available-in-window\" /* ErrorCode.AVAILABLE_IN_WINDOW */);\r\n }\r\n messaging.onMessageHandler = nextOrObserver;\r\n return () => {\r\n messaging.onMessageHandler = null;\r\n };\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 * Retrieves a Firebase Cloud Messaging instance.\r\n *\r\n * @returns The Firebase Cloud Messaging instance associated with the provided firebase app.\r\n *\r\n * @public\r\n */\r\nfunction getMessagingInWindow(app = getApp()) {\r\n // Conscious decision to make this async check non-blocking during the messaging instance\r\n // initialization phase for performance consideration. An error would be thrown latter for\r\n // developer's information. Developers can then choose to import and call `isSupported` for\r\n // special handling.\r\n isWindowSupported().then(isSupported => {\r\n // If `isWindowSupported()` resolved, but returned false.\r\n if (!isSupported) {\r\n throw ERROR_FACTORY.create(\"unsupported-browser\" /* ErrorCode.UNSUPPORTED_BROWSER */);\r\n }\r\n }, _ => {\r\n // If `isWindowSupported()` rejected.\r\n throw ERROR_FACTORY.create(\"indexed-db-unsupported\" /* ErrorCode.INDEXED_DB_UNSUPPORTED */);\r\n });\r\n return _getProvider(getModularInstance(app), 'messaging').getImmediate();\r\n}\r\n/**\r\n * Subscribes the {@link Messaging} instance to push notifications. Returns a Firebase Cloud\r\n * Messaging registration token that can be used to send push messages to that {@link Messaging}\r\n * instance.\r\n *\r\n * If notification permission isn't already granted, this method asks the user for permission. The\r\n * returned promise rejects if the user does not allow the app to show notifications.\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n * @param options - Provides an optional vapid key and an optional service worker registration.\r\n *\r\n * @returns The promise resolves with an FCM registration token.\r\n *\r\n * @public\r\n */\r\nasync function getToken(messaging, options) {\r\n messaging = getModularInstance(messaging);\r\n return getToken$1(messaging, options);\r\n}\r\n/**\r\n * Deletes the registration token associated with this {@link Messaging} instance and unsubscribes\r\n * the {@link Messaging} instance from the push subscription.\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n *\r\n * @returns The promise resolves when the token has been successfully deleted.\r\n *\r\n * @public\r\n */\r\nfunction deleteToken(messaging) {\r\n messaging = getModularInstance(messaging);\r\n return deleteToken$1(messaging);\r\n}\r\n/**\r\n * When a push message is received and the user is currently on a page for your origin, the\r\n * message is passed to the page and an `onMessage()` event is dispatched with the payload of\r\n * the push message.\r\n *\r\n *\r\n * @param messaging - The {@link Messaging} instance.\r\n * @param nextOrObserver - This function, or observer object with `next` defined,\r\n * is called when a message is received and the user is currently viewing your page.\r\n * @returns To stop listening for messages execute this returned function.\r\n *\r\n * @public\r\n */\r\nfunction onMessage(messaging, nextOrObserver) {\r\n messaging = getModularInstance(messaging);\r\n return onMessage$1(messaging, nextOrObserver);\r\n}\n\n/**\r\n * The Firebase Cloud Messaging Web SDK.\r\n * This SDK does not work in a Node.js environment.\r\n *\r\n * @packageDocumentation\r\n */\r\nregisterMessagingInWindow();\n\nexport { deleteToken, getMessagingInWindow as getMessaging, getToken, isWindowSupported as isSupported, onMessage };\n//# sourceMappingURL=index.esm2017.js.map\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class Alert extends React.PureComponent {\n render() {\n return (
);\n }\n};\n","// Context Menu: popup/dropdown menu.\nimport React from 'react';\nimport { injectIntl, defineMessages } from 'react-intl';\n\nimport { REM_SIZE } from '../config.js';\n\nconst messages = defineMessages({\n info: {\n id: 'menu_item_info',\n defaultMessage: 'Info',\n description: 'Show extended topic information'\n },\n clear_messages: {\n id: 'menu_item_clear_messages',\n defaultMessage: 'Clear messages',\n description: 'Delete all messages'\n },\n clear_for_all: {\n id: 'menu_item_clear_messages_for_all',\n defaultMessage: 'Clear for All',\n description: 'Delete all message(s) for all members'\n },\n delete: {\n id: 'menu_item_delete',\n defaultMessage: 'Delete',\n description: 'Delete selected messages'\n },\n delete_for_all: {\n id: 'menu_item_delete_for_all',\n defaultMessage: 'Delete for All',\n description: 'Delete selected message(s) for all members'\n },\n send_retry: {\n id: 'menu_item_send_retry',\n defaultMessage: 'Retry',\n description: 'Retry sending message'\n },\n mute: {\n id: 'menu_item_mute',\n defaultMessage: 'Mute',\n description: 'Turn off notifications'\n },\n unmute: {\n id: 'menu_item_unmute',\n defaultMessage: 'Unmute',\n description: 'Turn notifications on'\n },\n reply: {\n id: 'menu_item_reply',\n defaultMessage: 'Reply',\n description: 'Reply to message'\n },\n forward: {\n id: 'menu_item_forward',\n defaultMessage: 'Forward',\n description: 'Forward message'\n },\n edit: {\n id: 'menu_item_edit',\n defaultMessage: 'Edit',\n description: 'Edit message'\n },\n topic_delete: {\n id: 'menu_item_delete_topic',\n defaultMessage: 'Delete',\n description: 'Delete entire topic'\n },\n topic_delete_warning: {\n id: 'topic_delete_warning',\n defaultMessage: 'Are you sure you want to delete this conversation? It cannot be undone.',\n description: 'Alert warning when deleting entire topic'\n },\n delete_messages_warning: {\n id: 'delete_messages_warning',\n defaultMessage: 'Are you sure you want to delete all messages for everyone? It cannot be undone.',\n description: 'Alert dialog warning when hard-deleting all messages.'\n },\n unblock: {\n id: 'menu_item_unblock',\n defaultMessage: 'Unblock',\n description: 'Unblock topic or user'\n },\n // Generic string suitable for either topic or user.\n block: {\n id: 'menu_item_block',\n defaultMessage: 'Block',\n description: 'Block topic or user'\n },\n topic_block_warning: {\n id: 'topic_block_warning',\n defaultMessage: 'Are you sure you want to block this conversation?',\n description: 'Alert warning when blocking a topic.'\n },\n member_delete: {\n id: 'menu_item_member_delete',\n defaultMessage: 'Remove',\n description: 'Remove user from topic'\n },\n archive: {\n id: 'menu_item_archive_topic',\n defaultMessage: 'Archive',\n description: 'Move topic from the list of active chats to archive'\n },\n unarchive: {\n id: 'menu_item_restore_topic',\n defaultMessage: 'Restore',\n description: 'Restore topic from archive'\n },\n edit_permissions: {\n id: 'menu_item_edit_permissions',\n defaultMessage: 'Edit permissions',\n description: 'Menu item [Edit permissions]'\n },\n clear_messages_warning: {\n id: 'clear_messages_warning',\n defaultMessage: 'Are you sure you want to clear all messages? It cannot be undone.',\n description: 'Alert dialog warning when deleting all messages.'\n },\n});\n\nclass ContextMenu extends React.Component {\n constructor(props) {\n super(props);\n\n this.selfRef = React.createRef();\n\n const {formatMessage} = props.intl;\n\n this.handlePageClick = this.handlePageClick.bind(this);\n this.handleEscapeKey = this.handleEscapeKey.bind(this);\n this.handleClick = this.handleClick.bind(this);\n\n // Preconfigured menu items.\n this.MenuItems = {\n 'topic_info': {\n id: 'topic_info',\n title: formatMessage(messages.info),\n handler: null\n },\n 'messages_clear': {\n id: 'messages_clear',\n title: formatMessage(messages.clear_messages),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.clear_messages), // title\n formatMessage(messages.clear_messages_warning), // content\n (_ => { this.deleteMessages(true, false, params, errorHandler); }), // onConfirm\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'messages_clear_hard': {\n id: 'messages_clear_hard',\n title: formatMessage(messages.clear_for_all),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.clear_for_all), // title\n formatMessage(messages.delete_messages_warning), // content\n (_ => { return this.deleteMessages(true, true, params, errorHandler); }),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'message_delete': {\n id: 'message_delete',\n title: formatMessage(messages.delete),\n handler: (params, errorHandler) => {\n return this.deleteMessages(false, false, params, errorHandler);\n }\n },\n 'message_delete_hard': {\n id: 'message_delete_hard',\n title: formatMessage(messages.delete_for_all),\n handler: (params, errorHandler) => {\n return this.deleteMessages(false, true, params, errorHandler);\n }\n },\n 'menu_item_send_retry': {\n id: 'menu_item_send_retry',\n title: formatMessage(messages.send_retry),\n handler: (params, errorHandler) => {\n return this.retryMessage(params, errorHandler);\n }\n },\n 'menu_item_reply': {\n id: 'menu_item_reply',\n title: formatMessage(messages.reply),\n handler: (params, errorHandler) => {\n return this.replyToMessage(params, errorHandler);\n }\n },\n 'menu_item_forward': {\n id: 'menu_item_forward',\n title: formatMessage(messages.forward),\n handler: _ => {} /* the action is taken directly in tinode-web */\n },\n 'menu_item_edit': {\n id: 'menu_item_edit',\n title: formatMessage(messages.edit),\n handler: (params, errorHandler) => {\n return this.editMessage(params, errorHandler);\n }\n },\n 'topic_unmute': {\n id: 'topic_unmute',\n title: formatMessage(messages.unmute),\n handler: this.topicPermissionSetter.bind(this, '+P')\n },\n 'topic_mute': {\n id: 'topic_mute',\n title: formatMessage(messages.mute),\n handler: this.topicPermissionSetter.bind(this, '-P')\n },\n 'topic_unblock': {\n id: 'topic_unblock',\n title: formatMessage(messages.unblock),\n handler: this.topicPermissionSetter.bind(this, '+JP')\n },\n 'topic_block': {\n id: 'topic_block',\n title: formatMessage(messages.block),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.block), // title\n formatMessage(messages.topic_block_warning), // content\n (_ => this.topicPermissionSetter('-JP', params, errorHandler).then(ctrl => {\n this.props.onTopicRemoved(params.topicName);\n return ctrl;\n })),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'topic_delete': {\n id: 'topic_delete',\n title: formatMessage(messages.topic_delete),\n handler: (params, errorHandler) => {\n return props.onShowAlert(\n formatMessage(messages.topic_delete), // title\n formatMessage(messages.topic_delete_warning), // content\n (_ => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.delTopic(true).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }),\n null, // \"OK\"\n true, // Show Reject button\n null // \"Cancel\"\n );\n }\n },\n 'topic_archive': {\n id: 'topic_archive',\n title: formatMessage(messages.archive),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.archive(true).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n 'topic_restore': {\n id: 'topic_restore',\n title: formatMessage(messages.unarchive),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n return topic.archive(false).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n // menu_item_edit_permissions is defined elsewhere.\n 'permissions': {\n id: 'permissions',\n title: formatMessage(messages.edit_permissions),\n handler: null\n },\n 'member_delete': {\n id: 'member_delete',\n title: formatMessage(messages.member_delete),\n handler: (params, errorHandler) => {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic || !params.user) {\n console.warn(\"Topic or user not found: '\" + params.topicName + \"', '\" + params.user + \"'\");\n return;\n }\n return topic.delSubscription(params.user).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n },\n 'member_mute': {\n id: 'member_mute',\n title: formatMessage(messages.mute),\n handler: this.topicPermissionSetter.bind(this, '-P')\n },\n 'member_unmute': {\n id: 'member_unmute',\n title: formatMessage(messages.unmute),\n handler: this.topicPermissionSetter.bind(this, '+P')\n },\n 'member_block': {\n id: 'member_block',\n title: formatMessage(messages.block),\n handler: this.topicPermissionSetter.bind(this, '-JP')\n },\n 'member_unblock': {\n id: 'member_unblock',\n title: formatMessage(messages.unblock),\n handler: this.topicPermissionSetter.bind(this, '+JP')\n },\n };\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.handlePageClick, false);\n document.addEventListener('keyup', this.handleEscapeKey, false);\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handlePageClick, false);\n document.removeEventListener('keyup', this.handleEscapeKey, false);\n }\n\n handlePageClick(e) {\n if (this.selfRef.current.contains(e.target)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n this.props.hide();\n }\n\n handleEscapeKey(e) {\n if (e.keyCode === 27) {\n this.props.hide();\n }\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.hide();\n let item = this.props.items[e.currentTarget.dataset.id];\n if (typeof item == 'string') {\n item = this.MenuItems[item];\n }\n\n if (!item) {\n console.error(\"Invalid menu item ID\", e.currentTarget.dataset.id);\n } else {\n this.props.onAction(\n item.id,\n item.handler(this.props.params, this.props.onError),\n this.props.params);\n }\n }\n\n // Menu Actions\n\n deleteMessages(all, hard, params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found: \", params.topicName);\n return;\n }\n\n // We don't know if the message is still pending (e.g. attachment is being uploaded),\n // so try cancelling first. No harm if we can't cancel.\n // The message can be cancelled if transmission to the server has not\n // started yet or if the message send has failed.\n if (!all && topic.cancelSend(params.seq)) {\n return;\n }\n\n const promise = all ?\n topic.delMessagesAll(hard) :\n params.replace > 0 ?\n topic.delMessagesEdits(params.replace, hard) :\n topic.delMessagesList([params.seq], hard);\n\n return promise.catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n\n // Retries sending failed message.\n retryMessage(params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n // Remove the existing message entry.\n if (!topic || !topic.flushMessage(params.seq)) {\n return;\n }\n const msg = topic.createMessage(params.content, false);\n return topic.publishDraft(msg).catch(err => {\n if (errorHandler) {\n errorHandler(err.message, 'err');\n }\n });\n }\n\n // Function is used by context menu to set permissions.\n topicPermissionSetter(mode, params, errorHandler) {\n const topic = this.props.tinode.getTopic(params.topicName);\n if (!topic) {\n console.warn(\"Topic not found\", params.topicName);\n return;\n }\n\n let result = topic.updateMode(params.user, mode);\n if (errorHandler) {\n result = result.catch(err => errorHandler(err.message, 'err'));\n }\n return result;\n }\n\n replyToMessage(params, errorHandler) {\n params.pickReply(params.seq, params.content, params.userFrom, params.userName, errorHandler);\n }\n\n editMessage(params, errorHandler) {\n params.editMessage(params.replace || params.seq, params.content, errorHandler);\n }\n\n render() {\n const menu = [];\n let count = 0;\n this.props.items.map((item) => {\n if (typeof item == 'string') {\n item = this.MenuItems[item];\n }\n if (item && item.title) {\n menu.push(\n item.title == '-' ?\n \n :\n
{item.title}
\n );\n }\n count++;\n });\n\n // Ensure that menu is inside the app-container.\n const hSize = 12 * REM_SIZE;\n const vSize = REM_SIZE * (0.7 + menu.length * 2.5);\n const left = (this.props.bounds.right - this.props.clickAt.x < hSize) ?\n (this.props.clickAt.x - this.props.bounds.left - hSize) :\n (this.props.clickAt.x - this.props.bounds.left);\n const top = (this.props.bounds.bottom - this.props.clickAt.y < vSize) ?\n (this.props.clickAt.y - this.props.bounds.top - vSize) :\n (this.props.clickAt.y - this.props.bounds.top);\n\n const position = {\n left: left + 'px',\n top: top + 'px'\n };\n\n return (\n
\n {menu}\n
\n );\n }\n}\n\nexport default injectIntl(ContextMenu);\n","import React from 'react';\n\nconst icon_mapping = {'muted': 'notifications_off', 'banned': 'block', 'staff': 'verified_user'};\n\n/* Contact's labels: [you], or icons [muted], [blocked] */\nexport default class ContactBadges extends React.PureComponent {\n render() {\n let badges = null;\n if (this.props.badges && this.props.badges.length > 0) {\n badges = [];\n this.props.badges.map((b) => {\n const color = (b.color ? ' ' + b.color : '');\n if (b.icon) {\n badges.push({icon_mapping[b.icon] || b.icon});\n } else {\n badges.push({b.name});\n }\n });\n return <>{badges}>;\n }\n return null;\n }\n};\n","// The counter of unread messages in the topic.\nimport React from 'react';\n\nexport default class UnreadBadge extends React.PureComponent {\n render() {\n return (this.props.count > 0 ?\n {this.props.count > 9 ? \"9+\" : this.props.count}\n : null);\n }\n};\n","// Chat message describing a video or voice call.\n\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { secondsToTime } from '../lib/strformat.js';\n\nexport default class CallMessage extends React.PureComponent {\n render() {\n const isCallDropped = ['busy', 'declined', 'disconnected', 'missed'].includes(this.props.callState);\n const successClass = 'material-icons medium ' + (isCallDropped ? 'red' : 'green');\n const callIcon = this.props.incoming ?\n (isCallDropped ? 'call_missed' : 'call_received') :\n (isCallDropped ? 'call_missed_outgoing' : 'call_made');\n let duration;\n if (isCallDropped) {\n switch (this.props.callState) {\n case 'busy':\n duration = ;\n break;\n case 'declined':\n duration = ;\n break;\n case 'missed':\n duration = this.props.incoming ?\n :\n ;\n break;\n default:\n duration = ;\n break;\n }\n } else {\n duration = {secondsToTime(this.props.duration / 1000)};\n }\n return
\n
call
\n
\n
{this.props.incoming ?\n :\n \n }
\n
{callIcon} {duration}
\n
\n
;\n }\n}\n","// The counter of unread messages in the topic.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { secondsToTime } from '../lib/strformat.js';\n\n// Props:\n// incoming: true | false.\n// success: true | false.\nexport default class CallStatus extends React.PureComponent {\n render() {\n const isCallDropped = ['busy', 'declined', 'disconnected', 'missed'].includes(this.props.callState);\n const icon2 = this.props.incoming ?\n (isCallDropped ? 'call_missed' : 'call_received') :\n (isCallDropped ? 'call_missed_outgoing' : 'call_made');\n let duration;\n if (isCallDropped) {\n switch (this.props.callState) {\n case 'busy':\n duration = ;\n break;\n case 'declined':\n duration = ;\n break;\n case 'missed':\n duration = this.props.incoming ?\n :\n ;\n break;\n default:\n duration = ;\n break;\n }\n } else if (['accepted', 'started'].includes(this.props.callState) && !this.props.duration) {\n duration = \n } else {\n duration = {secondsToTime(this.props.duration / 1000)};\n }\n return (\n <>\n
\n call{icon2}\n
{duration}\n >\n );\n }\n};\n","// Element which shows static video preview:\n// an image with duration and a play button in the middle.\n\nimport React from 'react';\n\nimport { secondsToTime } from '../lib/strformat.js'\n\nexport default class InlineVideo extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.videoRef = React.createRef();\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(e) {\n if (this.props.onClick) {\n // the click target has to be the image element.\n this.props.onClick(e);\n }\n }\n\n render() {\n const duration = secondsToTime(this.props['data-duration'] / 1000);\n const className = 'inline-video' + (this.props.onClick ? ' image-clickable' : '');\n return (\n
\n {React.createElement('img', this.props)}\n
\n {this.props.onClick ?\n play_arrow\n :\n }\n
\n {duration ?
{duration}
: null}\n
\n );\n }\n};\n","// Image with a placeholder which is replaced when the promise is resolved.\nimport React from 'react';\n\nexport default class LazyImage extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n src: this.props.isvideo ? 'img/blankvid.png' : 'img/blankimg.png',\n style: Object.assign({padding: '4px'}, this.props.style),\n className: this.props.className,\n alt: this.props.alt,\n onClick: this.props.onClick,\n };\n }\n\n componentDidMount() {\n // whenDone is a wrapper around an actual promise to be able to cancel it.\n this.props.whenDone\n .promise\n .then(data => this.setState({src: data.src, style: {...this.state.style, padding: 0}}))\n .catch(_ => this.setState({src: this.props.isvideo ? 'img/broken_video.png' : 'img/broken_image.png'}));\n }\n\n componentWillUnmount() {\n this.props.whenDone.cancel();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.whenDone != this.props.whenDone) {\n this.setState({src: this.props.isvideo ? 'img/blankvid.png' : 'img/blankimg.png', style: {...this.state.style, padding: '4px'}});\n this.props.whenDone\n .promise\n .then(data => this.setState({src: data.src, style: {...this.state.style, padding: 0}}))\n .catch(_ => this.setState({src: this.props.isvideo ? 'img/broken_video.png' : 'img/broken_image.png'}));\n }\n }\n\n render() {\n return React.createElement('img', this.state);\n }\n};\n","// File uload/download progress indicator with a cancel inside.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class FileProgress extends React.PureComponent {\n render() {\n return (\n
\n );\n }\n}\n","// Image view with progress bar and a cancel button.\nimport React from 'react';\n\nimport FileProgress from './file-progress.jsx';\n\nexport default class UploadingImage extends React.PureComponent {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n
\n {React.createElement('img', this.props)}\n
\n \n
\n
\n );\n }\n};\n","import React from 'react';\nimport { defineMessages } from 'react-intl';\n\nimport { Drafty } from 'tinode-sdk';\n\nimport AudioPlayer from '../widgets/audio-player.jsx'\nimport CallMessage from '../widgets/call-message.jsx'\nimport CallStatus from '../widgets/call-status.jsx';\nimport InlineVideo from '../widgets/inline-video.jsx';\nimport LazyImage from '../widgets/lazy-image.jsx'\nimport UploadingImage from '../widgets/uploading-image.jsx'\n\nimport { BROKEN_IMAGE_SIZE, CLICKABLE_URL_SCHEMES, IMAGE_THUMBNAIL_DIM, NO_DIMENSIONS_VIDEO, REM_SIZE,\n VIDEO_THUMBNAIL_WIDTH } from '../config.js';\nimport { base64ToBlob, blobToBase64, fitImageSize, imageScaled } from './blob-helpers.js';\nimport { idToColorClass, secondsToTime, shortenFileName } from './strformat.js';\nimport { cancelablePromise, sanitizeUrl, sanitizeUrlForMime } from './utils.js';\n\nconst messages = defineMessages({\n drafty_form: {\n id: 'drafty_form',\n defaultMessage: 'Form: ',\n description: 'Comment for form in Drafty'\n },\n drafty_attachment: {\n id: 'drafty_attachment',\n defaultMessage: 'Attachment',\n description: 'Comment for attachment in Drafty'\n },\n drafty_image: {\n id: 'drafty_image',\n defaultMessage: 'Picture',\n description: 'Comment for embedded images in Drafty'\n },\n drafty_video: {\n id: 'drafty_video',\n defaultMessage: 'Video recording',\n description: 'Comment for videos embedded in Drafty'\n },\n drafty_unknown: {\n id: 'drafty_unknown',\n defaultMessage: 'Unsupported',\n description: 'Unsupported entity in drafty'\n }\n});\n\n// The main Drafty formatter: converts Drafty elements into React classes. 'this' is set by the caller.\n// 'this' must contain:\n// viewportWidth:\n// authorizeURL:\n// onImagePreview:\n// onVideoPreview:\n// onFormButtonClick:\n// onQuoteClick:\nexport function fullFormatter(style, data, values, key, stack) {\n if (stack.includes('QQ')) {\n return quoteFormatter.call(this, style, data, values, key);\n }\n\n if (!style) {\n // Unformatted.\n return values;\n }\n\n let el = Drafty.tagName(style);\n let attr = Drafty.attrValue(style, data) || {};\n attr.key = key;\n switch (style) {\n case 'AU':\n // Show audio player.\n if (attr.src) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'audio'));\n attr.duration = data.duration > 0 ? (data.duration | 0) : undefined;\n attr.preview = data.preview;\n attr.loading = 'lazy';\n }\n el = AudioPlayer;\n // Audio element cannot have content.\n values = null;\n break;\n case 'BR':\n values = null;\n break;\n case 'EX':\n // Ignore.\n break;\n case 'HL':\n // Highlighted text. Assign class name.\n attr.className = 'highlight';\n break;\n case 'HD':\n el = null;\n values = null;\n break;\n case 'IM':\n // Additional processing for images\n el = handleImageData.call(this, el, data, attr);\n // Image element cannot have content.\n values = null;\n break;\n case 'BN':\n // Button\n attr.onClick = this.onFormButtonClick;\n let inner = React.Children.map(values, (child) => {\n return typeof child == 'string' ? child : undefined;\n });\n if (!inner || inner.length == 0) {\n inner = [attr.name]\n }\n // Get text which will be sent back when the button is clicked.\n attr['data-title'] = inner.join('');\n break;\n case 'LN':\n if (attr) {\n // Ensure only safe URL schemes are clickable.\n attr.href = typeof attr.href == 'string' ? sanitizeUrl(attr.href, CLICKABLE_URL_SCHEMES) : '';\n }\n break;\n case 'MN':\n // Mention\n attr.className = 'mention'\n if (data) {\n attr.className += ' ' + idToColorClass(data.val, false, true);\n }\n break;\n case 'FM':\n // Form\n attr.className = 'bot-form';\n break;\n case 'RW':\n // Form element formatting is dependent on element content.\n break;\n case 'QQ':\n // Quote/citation.\n attr.className = 'reply-quote'\n attr.onClick = this.onQuoteClick;\n break;\n case 'VC':\n el = CallMessage;\n // Video call messages do not have content.\n values = null;\n if (data) {\n attr.callState = data.state;\n attr.incoming = data.incoming;\n attr.duration = data.duration;\n }\n break;\n case 'VD':\n // Additional processing for videos.\n el = handleVideoData.call(this, el, data, attr);\n // Video element cannot have content.\n values = null;\n break;\n default:\n if (!el) {\n // Unknown element.\n el = React.Fragment;\n attr = {key: key};\n // Generate comment for unknown element.\n let body = values;\n if (!Array.isArray(values) || !values.join('').trim()) {\n body = [{this.formatMessage(messages.drafty_unknown)}];\n }\n values = [extension, ' '].concat(body);\n }\n break;\n }\n if (!el) {\n return values;\n }\n return React.createElement(el, attr, values);\n}\n\n// Additional processing of image data.\nfunction handleImageData(el, data, attr) {\n if (!data) {\n attr.src = 'img/broken_image.png';\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n };\n return el;\n }\n\n attr.className = 'inline-image';\n const dim = fitImageSize(data.width, data.height,\n this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :\n REM_SIZE * 34.5, REM_SIZE * 24, false) ||\n {dstWidth: BROKEN_IMAGE_SIZE, dstHeight: BROKEN_IMAGE_SIZE};\n attr.style = {\n width: dim.dstWidth + 'px',\n height: dim.dstHeight + 'px',\n // Looks like a Chrome bug: broken image does not respect 'width' and 'height'.\n minWidth: dim.dstWidth + 'px',\n minHeight: dim.dstHeight + 'px'\n };\n if (!Drafty.isProcessing(data)) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'image'));\n attr.alt = data.name;\n if (attr.src) {\n if (Math.max(data.width || 0, data.height || 0) > IMAGE_THUMBNAIL_DIM) {\n // Allow previews for large enough images.\n attr.onClick = this.onImagePreview;\n attr.className += ' image-clickable';\n }\n attr.loading = 'lazy';\n } else {\n attr.src = null;\n }\n } else {\n // Use custom element instead of .\n el = UploadingImage;\n }\n\n return el;\n}\n\n// Additional processing of image data.\nfunction handleVideoData(el, data, attr) {\n if (!data) {\n attr.src = 'img/broken_video.png';\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n };\n return el;\n }\n attr.className = 'inline-image';\n const dim = fitImageSize(data.width, data.height,\n this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :\n REM_SIZE * 34.5, REM_SIZE * 24, false) ||\n {dstWidth: NO_DIMENSIONS_VIDEO, dstHeight: NO_DIMENSIONS_VIDEO};\n attr.style = {\n width: dim.dstWidth + 'px',\n height: dim.dstHeight + 'px',\n // Looks like a Chrome bug: broken image does not respect 'width' and 'height'.\n minWidth: dim.dstWidth + 'px',\n minHeight: dim.dstHeight + 'px'\n };\n if (!Drafty.isProcessing(data)) {\n attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'image'));\n attr.alt = data.name;\n if (data.ref || data.val) {\n attr.onClick = this.onVideoPreview;\n attr.loading = 'lazy';\n }\n el = InlineVideo;\n } else {\n // Use custom element instead of .\n el = UploadingImage;\n }\n\n return el;\n}\n\n// Converts Drafty object into a one-line preview. 'this' is set by the caller.\n// 'this' must contain:\n// formatMessage: this.props.intl.formatMessage\n// messages: formatjs messages defined with defineMessages.\nexport function previewFormatter(style, data, values, key) {\n if (!style) {\n // Unformatted.\n return values;\n }\n\n let el = Drafty.tagName(style);\n const attr = { key: key };\n switch (style) {\n case 'AU':\n // Voicemail as '[mic] 0:00'.\n el = React.Fragment;\n values = [mic, ' ', secondsToTime(data.duration/1000)];\n break;\n case 'BR':\n // Replace new line with a space.\n el = React.Fragment;\n values = [' '];\n break;\n case 'HL':\n // Make highlight less prominent in preview.\n attr.className = 'highlight preview';\n break;\n case 'LN':\n case 'MN':\n // Disable links in previews.\n el = 'span';\n break;\n case 'IM':\n // Replace image with '[icon] Image'.\n el = React.Fragment;\n values = [photo, ' ', this.formatMessage(messages.drafty_image)];\n break;\n case 'BN':\n el = 'span';\n attr.className = 'flat-button faux';\n break;\n case 'FM':\n el = React.Fragment;\n values = [dashboard,\n this.formatMessage(messages.drafty_form)].concat(' ', values || []);\n break;\n case 'RW':\n el = React.Fragment;\n break;\n case 'EX':\n if (data) {\n if (data.mime == 'application/json') {\n // Ignore JSON attachments: they are form response payloads.\n return null;\n }\n // Clear payload.\n delete data.val;\n delete data.ref;\n }\n el = React.Fragment;\n values = [attachment, ' ', this.formatMessage(messages.drafty_attachment)];\n break;\n case 'VC':\n el = CallStatus;\n if (data) {\n attr.callState = data.state;\n attr.incoming = data.incoming;\n attr.duration = data.duration;\n }\n values = null;\n break;\n case 'QQ':\n case 'HD':\n el = null;\n values = null;\n break;\n case 'VD':\n // Replace image with '[icon] Video'.\n el = React.Fragment;\n values = [play_circle_outline, ' ', this.formatMessage(messages.drafty_video)];\n break;\n default:\n if (!el) {\n // Unknown element.\n el = React.Fragment;\n values = [extension, ' ', this.formatMessage(messages.drafty_unknown)];\n }\n break;\n }\n if (!el) {\n return values;\n }\n return React.createElement(el, attr, values);\n};\n\n// Converts Drafty object into a quoted reply; 'this' is set by the caller.\nfunction inlineImageAttr(attr, data) {\n attr.style = {\n width: IMAGE_THUMBNAIL_DIM + 'px',\n height: IMAGE_THUMBNAIL_DIM + 'px',\n maxWidth: IMAGE_THUMBNAIL_DIM + 'px',\n maxHeight: IMAGE_THUMBNAIL_DIM + 'px',\n }\n attr.className = 'inline-image';\n attr.alt = this.formatMessage(messages.drafty_image);\n if (!data) {\n attr.src = 'img/broken_image.png';\n } else {\n attr.src = attr.src || 'img/broken_image.png';\n }\n attr.title = attr.alt;\n return attr;\n}\n\n// Converts Drafty object into a quoted reply; 'this' is set by the caller.\nfunction inlineVideoAttr(attr, data) {\n const dim = fitImageSize(data.width, data.height, VIDEO_THUMBNAIL_WIDTH, IMAGE_THUMBNAIL_DIM);\n attr.style = {\n width: dim.width + 'px',\n height: dim.height + 'px',\n maxWidth: VIDEO_THUMBNAIL_WIDTH + 'px',\n maxHeight: IMAGE_THUMBNAIL_DIM + 'px',\n }\n attr.className = 'inline-image';\n attr.alt = this.formatMessage(messages.drafty_video);\n attr.title = attr.alt;\n if (!data) {\n attr.src = 'img/broken_video.png';\n } else {\n attr.src = attr.src || 'img/broken_video.png';\n }\n return attr;\n}\n\n// Displays a portion of Drafty within 'QQ' quotes. 'this' is set by the caller.\n// 'this' must contain:\n// formatMessage: this.props.intl.formatMessage\n// messages: formatjs messages defined with defineMessages.\n// authorizeURL: this.props.tinode.authorizeURL\n// onQuoteClick: this.handleQuoteClick (optional)\nfunction quoteFormatter(style, data, values, key) {\n if (['BR', 'EX', 'IM', 'MN', 'VD'].includes(style)) {\n let el = Drafty.tagName(style);\n let attr = Drafty.attrValue(style, data) || {};\n attr.key = key;\n switch(style) {\n case 'BR':\n values = null;\n break;\n case 'IM':\n attr = inlineImageAttr.call(this, attr, data);\n values = [React.createElement('img', attr, null), ' ', attr.alt];\n el = React.Fragment;\n // Fragment attributes.\n attr = {key: key};\n break;\n case 'VD':\n attr = inlineVideoAttr.call(this, attr, data);\n values = [React.createElement('img', attr, null), ' ', attr.alt];\n el = React.Fragment;\n // Fragment attributes.\n attr = {key: key};\n break;\n case 'MN':\n el = 'span';\n attr.className = 'mention'\n if (data) {\n attr.className += ' ' + idToColorClass(data.val, false, true);\n }\n break;\n case 'EX':\n let fname;\n if (data) {\n if (data.mime == 'application/json') {\n // Ignore JSON attachments: they are form response payloads.\n return null;\n }\n fname = data.name;\n // Clear payload.\n delete data.val;\n delete data.ref;\n }\n el = React.Fragment;\n values = [attachment,\n shortenFileName(fname, 16) || this.formatMessage(messages.drafty_attachment)];\n break;\n }\n return React.createElement(el, attr, values);\n }\n return previewFormatter.call(this, style, data, values, key);\n}\n\n// Create image thumbnail suitable for inclusion in a quote.\nfunction quoteImageOrVideo(data, isVideo) {\n let promise;\n let bits, ref, mime;\n if (isVideo) {\n bits = data.preview;\n mime = data.premime || 'image/jpeg';\n ref = data.preref;\n } else {\n bits = data.val;\n mime = data.mime;\n ref = data.ref;\n }\n // Get the blob from the image data.\n if (bits) {\n const blob = base64ToBlob(bits, mime);\n if (!blob) {\n throw new Error(\"Invalid image\");\n }\n promise = Promise.resolve(blob);\n } else if (ref) {\n promise = fetch(this.authorizeURL(sanitizeUrlForMime(ref, 'image')))\n .then(evt => {\n if (evt.ok) {\n return evt.blob();\n } else {\n throw new Error(`Image fetch unsuccessful: ${evt.status} ${evt.statusText}`);\n }\n });\n } else {\n throw new Error(\"Missing image data\");\n }\n\n // Scale the blob.\n return promise\n .then(blob => {\n // If it's an image, cut the square from the center of the image and shrink it.\n // If it's a video, allow it to be rectantular.\n return imageScaled(blob, isVideo ? VIDEO_THUMBNAIL_WIDTH : IMAGE_THUMBNAIL_DIM, IMAGE_THUMBNAIL_DIM, -1, !isVideo)\n }).then(scaled => {\n if (isVideo) {\n data.premime = scaled.mime;\n } else {\n data.mime = scaled.mime;\n }\n data.size = scaled.blob.size;\n data.width = scaled.width;\n data.height = scaled.height;\n delete data.ref;\n delete data.preref;\n // Keeping the original file name, if provided: ex.data.name;\n\n data.src = URL.createObjectURL(scaled.blob);\n return blobToBase64(scaled.blob);\n }).then(b64 => {\n if (isVideo) {\n data.preview = b64.bits;\n } else {\n data.val = b64.bits;\n }\n return data;\n }).catch(err => {\n delete data.val;\n delete data.preview;\n delete data.src;\n data.width = IMAGE_THUMBNAIL_DIM;\n data.height = IMAGE_THUMBNAIL_DIM;\n // Rethrow.\n throw err;\n });\n}\n\n// Create a preview of a reply.\nexport function replyFormatter(style, data, values, key, stack) {\n if (style == 'IM' || style == 'VD') {\n const isImage = style == 'IM';\n const attr = isImage ? inlineImageAttr.call(this, {key: key}, data) :\n inlineVideoAttr.call(this, {key: key}, data);\n\n let loadedPromise;\n try {\n loadedPromise = cancelablePromise(quoteImageOrVideo.call(this, data, style == 'VD'));\n } catch (error) {\n console.warn(\"Failed to quote image:\", error.message);\n loadedPromise = cancelablePromise(error);\n }\n attr.whenDone = loadedPromise;\n values = [React.createElement(LazyImage, attr, null), ' ', attr.alt];\n return React.createElement(React.Fragment, {key: key}, values);\n } else if (style == 'QQ') {\n if (stack.includes('QQ')) {\n // Quote inside quote when forwarding a message.\n return React.createElement('span', {key: key},\n [format_quote, ' ']);\n }\n\n const attr = Drafty.attrValue('QQ', data) || {};\n attr.key = key;\n attr.className = 'reply-quote'\n return React.createElement(Drafty.tagName('QQ'), attr, values);\n }\n return quoteFormatter.call(this, style, data, values, key);\n}\n","// A single topic or user.\nimport React from 'react';\nimport { FormattedMessage, injectIntl } from 'react-intl';\n\nimport ContactBadges from './contact-badges.jsx';\nimport LetterTile from './letter-tile.jsx';\nimport UnreadBadge from './unread-badge.jsx';\n\nimport { Drafty } from 'tinode-sdk';\n\nimport { previewFormatter } from '../lib/formatters.js';\nimport { deliveryMarker } from '../lib/utils.js';\n\nclass Contact extends React.Component {\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleContextClick = this.handleContextClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n if (this.props.onSelected) {\n // Index this.props.index is used by GroupManager.\n this.props.onSelected(this.props.item, this.props.index);\n }\n }\n\n handleContextClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.showContextMenu({ topicName: this.props.item, y: e.pageY, x: e.pageX });\n }\n\n render() {\n let title = this.props.title;\n if (!title) {\n title = ;\n } else if (title.length > 30) {\n // FIXME: this is probably wrong for RTL languages.\n title = title.substring(0, 28) + '…';\n }\n const online = this.props.now ? 'online' : 'offline';\n const avatar = this.props.avatar ? this.props.avatar : true;\n const badges = this.props.badges ? this.props.badges.slice() : [];\n const icon_badges = [];\n if (this.props.isVerified) {\n icon_badges.push({icon: 'verified', color: 'verified-color'});\n }\n if (this.props.isStaff) {\n icon_badges.push({icon: 'staff', color: 'staff-color'});\n }\n if (this.props.isDangerous) {\n icon_badges.push({icon: 'dangerous', color: 'danger-color'});\n }\n if (this.props.acs) {\n if (this.props.showMode) {\n badges.push({name: this.props.acs.getMode(), key: 'mode'});\n }\n if (this.props.acs.isMuted()) {\n icon_badges.push({icon: 'muted'});\n }\n if (!this.props.acs.isJoiner()) {\n icon_badges.push({icon: 'banned'});\n }\n }\n\n // The this.props.preview contains alreay shortened Drafty or string.\n let preview;\n if (typeof this.props.preview == 'string') {\n preview = this.props.preview;\n } else if (Drafty.isValid(this.props.preview)) {\n preview = React.createElement(React.Fragment, null, Drafty.format(this.props.preview, previewFormatter,\n {formatMessage: this.props.intl.formatMessage, previewIsResponse: this.props.previewIsResponse}));\n } else if (this.props.preview) {\n preview =\n <>warning_amber\n \n >;\n }\n\n const icon = deliveryMarker(this.props.received);\n const marker = icon ? {icon.name} : null;\n const titleClass = 'contact-title' + (this.props.deleted ? ' deleted' : '');\n\n return (\n
\n );\n }\n};\n\nexport default injectIntl(Contact);\n","// A panel included into a list of contacts with an action text.\nimport React from 'react';\nimport { injectIntl } from 'react-intl';\n\nclass ContactAction extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.onAction(this.props.action);\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n return (\n
\n );\n }\n};\n","// GroupSubs: a list of group subscribers currently online.\n// Show in the topic title bar\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { MAX_ONLINE_IN_TOPIC } from '../config.js'\n\nimport LetterTile from './letter-tile.jsx';\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\nexport default class GroupSubs extends React.Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n const usersOnline = [];\n const totalCount = (this.props.subscribers || []).length;\n const countToShow = Math.min(MAX_ONLINE_IN_TOPIC, totalCount);\n\n (this.props.subscribers || []).some((sub) => {\n usersOnline.push(\n
\n );\n }\n};\n","// A single topic or user.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class Invitation extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleButtonAction = this.handleButtonAction.bind(this);\n }\n\n handleButtonAction(evt, data) {\n evt.preventDefault();\n this.props.onAction(data);\n }\n\n render() {\n return (\n
\n
\n \n
\n
\n \n \n \n
\n
\n );\n }\n};\n","/* This is just a static page to display when no conversation is selected. */\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport { Tinode } from 'tinode-sdk';\n\nimport { APP_NAME } from '../config.js';\n\nexport default class LogoView extends React.PureComponent {\n render() {\n const version = APP_NAME + ' (' + Tinode.getLibrary() + ')';\n return (\n
\n );\n }\n};\n","// Message bubble with non-payload content, such as an indicator of deleted content or a date stamp.\n\nimport React from 'react';\n\nexport default class MetaMessage extends React.PureComponent {\n constructor(props) {\n super(props);\n }\n\n render() {\n let content = null;\n let bubbleClass = 'bubble';\n if (this.props.date) {\n // A date badge.\n content = <>{this.props.date}>\n bubbleClass += ' date';\n }\n\n if (!content) {\n return <>{null}>\n }\n\n return (\n
\n );\n }\n};\n\nexport default injectIntl(TinodeWeb);\n","// Put all packages together.\n// Used to generate umd/index.prod.js\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { IntlProvider } from 'react-intl';\n\nimport TinodeWeb from './views/tinode-web.jsx';\nimport HashNavigation from './lib/navigation.js';\n\n// Insert google analytics script and tag if configured.\nif (typeof FIREBASE_INIT != 'undefined' && FIREBASE_INIT && FIREBASE_INIT.measurementId) {\n const head = document.getElementsByTagName('head')[0];\n let script = document.createElement('script');\n script.src = 'https://www.googletagmanager.com/gtag/js?id=' + FIREBASE_INIT.measurementId;\n script.async = true;\n head.prepend(script);\n window.dataLayer = window.dataLayer || [];\n function gtag(){dataLayer.push(arguments);}\n gtag('js', new Date());\n gtag('config', FIREBASE_INIT.measurementId);\n}\n\n// Allow loading translation strings for just one language.\nconst messageLoader = {\n 'de': _ => import('./i18n.min/de.json'),\n 'en': _ => import('./i18n.min/en.json'),\n 'es': _ => import('./i18n.min/es.json'),\n 'fr': _ => import('./i18n.min/fr.json'),\n 'ko': _ => import('./i18n.min/ko.json'),\n 'ro': _ => import('./i18n.min/ro.json'),\n 'ru': _ => import('./i18n.min/ru.json'),\n 'th': _ => import('./i18n.min/th.json'),\n 'uk': _ => import('./i18n.min/uk.json'),\n 'zh': _ => import('./i18n.min/zh.json'),\n 'zh-TW': _ => import('./i18n.min/zh-TW.json')\n};\n\n// Detect human language to use in the UI:\n// Check parameters from URL hash #?hl=ru, then browser, then use 'en' as a fallback.\nconst { params } = HashNavigation.parseUrlHash(window.location.hash);\nconst language = (params && params.hl) ||\n (navigator.languages && navigator.languages[0]) ||\n navigator.language ||\n navigator.userLanguage ||\n 'en';\n\n// Make sure names like 'en_GB' and 'en-GB' consistently use '-'.\nconst normalized = language.replace('_', '-');\n// Get the base language 'en' from a more specific 'en-US' as a partial fallback.\nconst baseLanguage = normalized.split('-')[0].toLowerCase();\n\n// Try the full locale first, then the locale without the region code, fallback to 'en'.\nconst htmlLang = messageLoader[normalized] ? language : messageLoader[baseLanguage] ? baseLanguage : 'en';\n\n// Set lang attribute of the HTML element: \ndocument.getElementsByTagName('html')[0].setAttribute('lang', htmlLang);\n\n// Render the app.\nconst root = createRoot(document.getElementById('mountPoint'));\nmessageLoader[htmlLang]().then(messages =>\n root.render(\n \n \n \n));\n"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","APP_NAME","PACKAGE_VERSION","API_KEY","KNOWN_HOSTS","hosted","local","DEFAULT_HOST","LOGGING_ENABLED","KEYPRESS_DELAY","READ_DELAY","MIN_TAG_LENGTH","MAX_TAG_LENGTH","MAX_TAG_COUNT","DEFAULT_P2P_ACCESS_MODE","NO_ACCESS_MODE","MEDIA_BREAKPOINT","REM_SIZE","AVATAR_SIZE","MAX_AVATAR_BYTES","BROKEN_IMAGE_SIZE","NO_DIMENSIONS_VIDEO","MESSAGES_PAGE","MAX_INBAND_ATTACHMENT_SIZE","MAX_EXTERN_ATTACHMENT_SIZE","MAX_IMAGE_DIM","IMAGE_PREVIEW_DIM","VIDEO_PREVIEW_DIM","IMAGE_THUMBNAIL_DIM","VIDEO_THUMBNAIL_WIDTH","MAX_ONLINE_IN_TOPIC","MAX_TITLE_LENGTH","MAX_TOPIC_DESCRIPTION_LENGTH","MAX_PEER_TITLE_LENGTH","MESSAGE_PREVIEW_LENGTH","QUOTED_REPLY_LENGTH","FORWARDED_PREVIEW_LENGTH","EDIT_PREVIEW_LENGTH","MIN_DURATION","MAX_DURATION","LINK_CONTACT_US","LINK_PRIVACY_POLICY","LINK_TERMS_OF_SERVICE","IMMEDIATE_P2P_SUBSCRIPTION","CLICKABLE_URL_SCHEMES","QRCODE_SIZE","SUPPORTED_IMAGE_FORMATS","MIME_EXTENSIONS","makeImageUrl","photo","ref","data","type","startsWith","fitImageSize","width","height","maxWidth","maxHeight","forceSquare","Math","min","scale","size","dstWidth","dstHeight","srcWidth","srcHeight","xoffset","yoffset","fileNameForMime","fname","mime","idx","indexOf","ext","at","lastIndexOf","substring","imageScaled","fileOrBlob","maxSize","Promise","resolve","reject","img","Image","crossOrigin","onerror","err","Error","onload","async","URL","revokeObjectURL","src","dim","canvas","document","createElement","ctx","getContext","imageSmoothingEnabled","drawImage","includes","blob","toBlob","length","clearRect","name","createObjectURL","imageCrop","objURL","left","top","_","fileToBase64","file","reader","FileReader","error","bits","result","split","readAsDataURL","blobToBase64","filePasted","event","onImageSuccess","onAttachmentSuccess","onError","items","clipboardData","originalEvent","i","item","kind","getAsFile","console","base64ReEncode","str","replace","btoa","atob","base64ToBlob","bin","buf","ArrayBuffer","arr","Uint8Array","charCodeAt","Blob","intArrayToBase64","Array","isArray","forEach","b","String","fromCharCode","window","base64ToIntArray","b64","c","push","LocalStorageUtil","setObject","key","value","localStorage","setItem","JSON","stringify","getObject","getItem","parse","updateObject","oldVal","this","Object","assign","removeItem","HashNavigation","parseUrlHash","hash","parts","params","path","arg","eq","slice","decodeURIComponent","navigateTo","url","location","composeUrlHash","join","args","hasOwnProperty","undefined","encodeURIComponent","addUrlParam","parsed","removeUrlParam","setUrlSidePanel","sidepanel","setUrlInfoPanel","infopanel","info","setUrlTopic","topic","shortDateFormat","then","locale","navigator","userLanguage","language","now","Date","getFullYear","getMonth","getDate","toLocaleTimeString","hour12","hour","minute","toLocaleDateString","month","day","year","relativeDateFormat","diff","floor","getTime","getTimezoneOffset","abs","Intl","RelativeTimeFormat","numeric","format","DateTimeFormat","secondsToTime","seconds","fixedMin","hours","sec","bytesToHumanSize","bytes","sizes","bucket","log2","count","pow","round","toFixed","shortenFileName","filename","maxLength","idToColorClass","id","light","fg","userId","stringToColorHash","flagEmoji","countryCode","codePoints","toUpperCase","map","char","fromCodePoint","updateFavicon","oldIcon","getElementById","head","getElementsByTagName","newIcon","rel","href","removeChild","appendChild","title","theCard","fn","imageUrl","imageMimeType","note","card","trim","Tinode","DEL_CHAR","mimeType","matches","exec","arrayEqual","a","sort","l","isUrlRelative","test","sanitizeUrl","allowedSchemes","schemes","RegExp","sanitizeUrlForMime","mimeMajor","sanitizedUrl","urlAsAttachment","query","fragment","idxF","idxQ","URLSearchParams","append","toString","deliveryMarker","received","MESSAGE_STATUS_SENDING","MESSAGE_STATUS_FAILED","MESSAGE_STATUS_FATAL","color","MESSAGE_STATUS_SENT","MESSAGE_STATUS_RECEIVED","MESSAGE_STATUS_READ","cancelablePromise","promise","hasCanceled","isCanceled","cancel","clipStr","BAR_COLOR_DARK","messages","defineMessages","icon_title_play","defaultMessage","AudioPlayer","React","constructor","props","super","preview","state","canPlay","playing","currentTime","duration","longMin","initAudio","bind","initCanvas","resampleBars","visualize","handlePlay","handleSeek","handleError","audioPlayer","viewBuffer","canvasRef","componentDidMount","componentWillUnmount","onloadedmetadata","ontimeupdate","onended","pause","componentDidUpdate","prevProps","setState","Audio","current","offsetWidth","offsetHeight","canvasContext","lineCap","effectiveWidth","lineWidth","drawFrame","requestAnimationFrame","thumbAt","max","LINE_WIDTH","beginPath","strokeStyle","x","y","stroke","moveTo","lineTo","arc","PI","fillStyle","fill","original","dstCount","apply","factor","amps","maxAmp","lo","hi","amp","j","e","preventDefault","readyState","play","target","rect","getBoundingClientRect","offset","clientX","render","playClass","short","onClick","intl","formatMessage","className","injectIntl","Cropper","panX","panY","originX","originY","zoom","minZoom","maxZoom","overlay","cutout","boundingBox","imageWidth","imageHeight","mouseX","mouseY","prevDistance","cutoutRect","bBoxRect","initScaling","onZoom","handleZoom","mouseDown","mouseUp","mouseMove","mouseTouch","positionAll","translate","addEventListener","passive","removeEventListener","onChange","checkBound","currPan","delta","nextDiff","imgRect","imgLeft","imgRight","coLeft","coRight","imgTop","imgBottom","coTop","coBottom","touches","pageX","pageY","body","style","dX","dY","right","bottom","touch0","touch1","distance","sqrt","t3d","orig","source","alt","transform","transformOrigin","onLoad","step","AvatarCrop","handleSubmit","handleChange","avatar","onSubmit","catch","onCancel","FormattedMessage","AvatarUpload","handleFileReceived","image","files","onImageUpdated","randId","random","readOnly","tinode","authorizeURL","uid","LetterTile","accept","htmlFor","LoadSpinner","show","uploading","large","clear","centered","icon_mapping","badge_verified","badge_staff","badge_danger","BadgeList","badges","trustedBadges","comment","CheckBox","checked","iconName","classList","attrs","isGroup","isGroupTopicName","iconColor","letter","charAt","deleted","VisiblePassword","inputRef","visible","handleVisibility","handeTextChange","handleKeyDown","handleEditingFinished","autoFocus","focus","keyCode","onFinished","currentTarget","setTimeout","contains","activeElement","tabIndex","onBlur","placeholder","required","autoComplete","onKeyDown","m","exports","createRoot","hydrateRoot","module","ReactDOM","ReactIntl","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call","n","getter","__esModule","d","getPrototypeOf","obj","t","mode","ns","create","r","def","getOwnPropertyNames","definition","o","defineProperty","enumerable","get","f","chunkId","all","keys","reduce","promises","u","g","globalThis","Function","prop","prototype","done","script","needAttach","scripts","s","getAttribute","charset","timeout","nc","setAttribute","onScriptComplete","prev","clearTimeout","doneFns","parentNode","Symbol","toStringTag","p","installedChunks","installedChunkData","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","stringToByteArray$1","out","base64","byteToCharMap_","charToByteMap_","byteToCharMapWebSafe_","charToByteMapWebSafe_","ENCODED_VALS_BASE","ENCODED_VALS","ENCODED_VALS_WEBSAFE","HAS_NATIVE_SUPPORT","encodeByteArray","input","webSafe","init_","byteToCharMap","output","byte1","haveByte2","byte2","haveByte3","byte3","outByte1","outByte2","outByte3","outByte4","encodeString","decodeString","pos","c1","c2","c3","byteArrayToString","decodeStringToByteArray","charToByteMap","byte4","DecodeBase64StringError","arguments","base64urlEncodeWithoutPadding","utf8Bytes","base64Encode","base64Decode","getDefaultsFromGlobal","self","getGlobal","__FIREBASE_DEFAULTS__","getDefaults","process","env","defaultsJsonString","getDefaultsFromEnvVariable","match","cookie","decoded","getDefaultsFromCookie","getDefaultAppConfig","_a","config","Deferred","wrapCallback","callback","isIndexedDBAvailable","indexedDB","validateIndexedDBOpenable","preExist","DB_CHECK_NAME","open","onsuccess","close","deleteDatabase","onupgradeneeded","FirebaseError","code","customData","setPrototypeOf","captureStackTrace","ErrorFactory","service","serviceName","errors","fullCode","template","PATTERN","replaceTemplate","fullMessage","deepEqual","aKeys","bKeys","k","aProp","bProp","isObject","thing","getModularInstance","_delegate","Component","instanceFactory","multipleInstances","serviceProps","instantiationMode","onInstanceCreated","setInstantiationMode","setMultipleInstances","setServiceProps","setInstanceCreatedCallback","DEFAULT_ENTRY_NAME","Provider","container","component","instances","Map","instancesDeferred","instancesOptions","onInitCallbacks","identifier","normalizedIdentifier","normalizeInstanceIdentifier","has","deferred","set","isInitialized","shouldAutoInitialize","instance","getOrInitializeService","instanceIdentifier","getImmediate","options","optional","getComponent","setComponent","isComponentEager","instanceDeferred","entries","clearInstance","delete","services","from","values","filter","INTERNAL","_delete","isComponentSet","getOptions","initialize","opts","onInit","existingCallbacks","Set","add","existingInstance","invokeOnInitCallbacks","callbacks","providers","addComponent","provider","getProvider","addOrOverwriteComponent","getProviders","LogLevel","levelStringToEnum","DEBUG","VERBOSE","INFO","WARN","ERROR","SILENT","defaultLogLevel","ConsoleMethod","defaultLogHandler","logType","logLevel","toISOString","method","idbProxyableTypes","cursorAdvanceMethods","cursorRequestMap","WeakMap","transactionDoneMap","transactionStoreNamesMap","transformCache","reverseTransformCache","idbProxyTraps","receiver","IDBTransaction","objectStoreNames","objectStore","wrap","wrapFunction","func","IDBDatabase","transaction","IDBCursor","advance","continue","continuePrimaryKey","unwrap","storeNames","tx","transformCachableValue","unlisten","complete","DOMException","cacheDonePromiseForTransaction","object","IDBObjectStore","IDBIndex","Proxy","IDBRequest","success","promisifyRequest","newValue","openDB","version","blocked","upgrade","blocking","terminated","openPromise","oldVersion","newVersion","db","deleteDB","readMethods","writeMethods","cachedMethods","getMethod","targetFuncName","useIndex","isWrite","storeName","store","index","shift","oldTraps","PlatformLoggerServiceImpl","getPlatformInfoString","isVersionServiceProvider","library","logString","name$q","version$1","logger","_logLevel","_logHandler","_userLogHandler","val","TypeError","setLogLevel","logHandler","userLogHandler","debug","log","warn","name$p","name$o","name$n","name$m","name$l","name$k","name$j","name$i","name$h","name$g","name$f","name$e","name$d","name$c","name$b","name$a","name$9","name$8","name$7","name$6","name$5","name$4","name$3","name$2","name$1","PLATFORM_LOG_STRING","_apps","_serverApps","_components","_addComponent","app","_registerComponent","componentName","serverApp","heartbeatController","triggerHeartbeat","ERROR_FACTORY","FirebaseAppImpl","_isDeleted","_options","_config","_name","_automaticDataCollectionEnabled","automaticDataCollectionEnabled","_container","checkDestroyed","isDeleted","appName","initializeApp","rawConfig","existingApp","newApp","registerVersion","libraryKeyOrName","variant","libraryMismatch","versionMismatch","warning","STORE_NAME","dbPromise","getDbPromise","createObjectStore","originalErrorMessage","writeHeartbeatsToIndexedDB","heartbeatObject","put","computeKey","idbGetError","appId","HeartbeatServiceImpl","_heartbeatsCache","_storage","HeartbeatStorageImpl","_heartbeatsCachePromise","read","_b","agent","date","getUTCDateString","heartbeats","lastSentHeartbeatDate","singleDateHeartbeat","hbTimestamp","valueOf","overwrite","getHeartbeatsHeader","heartbeatsToSend","unsentEntries","heartbeatsCache","heartbeatEntry","find","hb","dates","countBytes","pop","extractHeartbeatsForHeader","headerString","_canUseIndexedDBPromise","runIndexedDBEnvironmentCheck","idbHeartbeatObject","readHeartbeatsFromIndexedDB","heartbeatsObject","existingHeartbeatsObject","PENDING_TIMEOUT_MS","INTERNAL_AUTH_VERSION","TOKEN_EXPIRATION_BUFFER","isServerError","getInstallationsEndpoint","projectId","extractAuthTokenInfoFromResponse","response","token","requestStatus","expiresIn","responseExpiresIn","Number","creationTime","getErrorFromResponse","requestName","errorData","json","serverCode","serverMessage","serverStatus","status","getHeaders","apiKey","Headers","Accept","getHeadersWithAuth","appConfig","refreshToken","headers","getAuthorizationHeader","retryIfServerError","sleep","ms","VALID_FID_PATTERN","generateFid","fidByteArray","crypto","msCrypto","getRandomValues","fid","b64String","array","substr","encode","getKey","fidChangeCallbacks","fidChanged","callFidChangeCallbacks","channel","getBroadcastChannel","postMessage","closeBroadcastChannel","broadcastFidChange","broadcastChannel","BroadcastChannel","onmessage","OBJECT_STORE_NAME","oldValue","remove","update","updateFn","getInstallationEntry","installations","registrationPromise","installationEntry","oldEntry","entry","registrationStatus","clearTimedOutRequest","updateOrCreateInstallationEntry","entryWithPromise","onLine","inProgressEntry","registrationTime","registeredInstallationEntry","heartbeatServiceProvider","endpoint","heartbeatService","heartbeatsHeader","authVersion","sdkVersion","fetch","ok","responseValue","authToken","createInstallationRequest","registerInstallation","waitUntilFidRegistration","triggerRegistrationIfNecessary","updateInstallationRequest","generateAuthTokenRequest","getGenerateAuthTokenEndpoint","installation","refreshAuthToken","forceRefresh","tokenPromise","isEntryRegistered","oldAuthToken","isAuthTokenExpired","isAuthTokenValid","updateAuthTokenRequest","waitUntilAuthTokenRequest","inProgressAuthToken","requestTime","makeAuthTokenRequestInProgressEntry","updatedInstallationEntry","fetchAuthTokenFromServer","getToken","installationsImpl","completeInstallationRegistration","getMissingValueError","valueName","INSTALLATIONS_NAME","internalFactory","getId","configKeys","keyName","extractAppConfig","DEFAULT_VAPID_KEY","CONSOLE_CAMPAIGN_ID","MessageType$1","MessageType","arrayToBase64","uint8Array","base64ToArray","base64String","repeat","rawData","outputArray","OLD_DB_NAME","OLD_OBJECT_STORE_NAME","upgradeDb","dbGet","firebaseDependencies","tokenDetails","oldTokenDetails","senderId","dbNames","databases","upgradeTransaction","oldDetails","auth","p256dh","fcmToken","createTime","subscriptionOptions","swScope","vapidKey","checkTokenDetails","migrateOldDatabase","dbSet","requestDeleteToken","unsubscribeOptions","getEndpoint","responseData","errorInfo","getBody","web","applicationPubKey","getTokenInternal","messaging","pushSubscription","swRegistration","subscription","pushManager","getSubscription","subscribe","userVisibleOnly","applicationServerKey","getPushSubscription","scope","dbOptions","currentOptions","isVapidKeyEqual","isEndpointEqual","isAuthEqual","isP256dhEqual","isTokenValid","updatedToken","updateOptions","requestUpdateToken","updatedTokenDetails","updateToken","getNewToken","deleteTokenInternal","dbRemove","unsubscribe","subscribeOptions","requestGetToken","externalizePayload","internalPayload","payload","collapseKey","collapse_key","messageId","fcmMessageId","messagePayloadInternal","notification","icon","propagateNotificationPayload","propagateDataPayload","_c","_d","_e","fcmOptions","click_action","link","analyticsLabel","analytics_label","propagateFcmOptions","s1","s2","resultArray","_mergeStrings","MessagingService","analyticsProvider","deliveryMetricsExportedToBigQueryEnabled","onBackgroundMessageHandler","onMessageHandler","logEvents","isLogServiceStarted","messagingSenderId","registerDefaultSw","serviceWorker","register","browserErrorMessage","getToken$1","Notification","permission","requestPermission","updateVapidKey","ServiceWorkerRegistration","updateSwReg","serviceWorkerRegistration","logToScion","messageType","eventType","NOTIFICATION_CLICKED","PUSH_RECEIVED","getEventType","logEvent","message_id","message_name","message_time","message_device_time","messageEventListener","isFirebaseMessaging","next","dataPayload","WindowMessagingInternalFactory","isWindowSupported","cookieEnabled","PushSubscription","getMessagingInWindow","isSupported","deleteToken","deleteToken$1","onMessage","nextOrObserver","onMessage$1","Alert","content","onReject","onConfirm","confirm","clear_messages","clear_for_all","delete_for_all","send_retry","mute","unmute","reply","forward","edit","topic_delete","topic_delete_warning","delete_messages_warning","unblock","block","topic_block_warning","member_delete","archive","unarchive","edit_permissions","clear_messages_warning","ContextMenu","selfRef","handlePageClick","handleEscapeKey","handleClick","MenuItems","handler","errorHandler","onShowAlert","deleteMessages","retryMessage","replyToMessage","editMessage","topicPermissionSetter","ctrl","onTopicRemoved","topicName","getTopic","delTopic","user","delSubscription","stopPropagation","hide","dataset","onAction","hard","cancelSend","seq","delMessagesAll","delMessagesEdits","delMessagesList","flushMessage","msg","createMessage","publishDraft","updateMode","pickReply","userFrom","userName","menu","hSize","vSize","position","bounds","clickAt","ContactBadges","UnreadBadge","CallMessage","isCallDropped","callState","successClass","callIcon","incoming","CallStatus","icon2","InlineVideo","videoRef","LazyImage","isvideo","padding","whenDone","FileProgress","progress","UploadingImage","onCancelUpload","drafty_form","drafty_attachment","drafty_image","drafty_video","drafty_unknown","fullFormatter","stack","quoteFormatter","el","Drafty","tagName","attr","attrValue","loading","handleImageData","onFormButtonClick","inner","child","onQuoteClick","handleVideoData","concat","viewportWidth","minWidth","minHeight","isProcessing","onImagePreview","onVideoPreview","previewFormatter","inlineImageAttr","inlineVideoAttr","quoteImageOrVideo","isVideo","premime","preref","evt","statusText","scaled","replyFormatter","loadedPromise","Contact","handleContextClick","onSelected","showContextMenu","online","icon_badges","isVerified","isStaff","isDangerous","acs","showMode","getMode","isMuted","isJoiner","isValid","previewIsResponse","marker","titleClass","showCheckmark","selected","showOnline","isChannel","unread","small","ContactAction","action","badge_you","badge_owner","ContactList","topicSelected","contactNodes","contactsCount","contacts","filterFunc","filterOn","private","toLowerCase","public","isChannelTopicName","myUserId","isOwner","forwarded","deliveryStatus","latestMessage","_status","msgStatus","showUnread","connected","trusted","verified","staff","danger","_deleted","onTopicSelected","noScroll","dangerouslySetInnerHTML","__html","emptyListMessage","SearchContacts","edited","search","handleSearchChange","handleSearch","handleClear","onSearchContacts","ForwardDialog","handleClose","handleSearchContacts","handleContactSelected","onInitFind","isNullValue","searchResults","isWriter","desription","search_placeholder","not_found_placeholder","CALL_HEAD_STARTED","RING_SOUND","CallIncoming","fullName","previousMetaDesc","resetDesc","onMetaDesc","handleRejectCall","handleAcceptCall","ringTimer","setInterval","onRinging","clearInterval","desc","onAcceptCall","onClose","MenuCancel","ErrorPanel","level","onClearError","text","whiteSpace","actionText","Chip","handleCancel","invalid","noAvatar","ChipInput","deriveStateFromProps","focused","handleTextInput","removeChipAt","handleChipCancel","handleFocusGained","handleFocusLost","chips","prompt","sortedChips","sortChips","staticMembers","chipIndex","indexChips","prevState","keep","normal","removed","onChipRemoved","onFocusLost","onEnter","avatarDisabled","onFocus","no_contacts","contacts_not_found_short","GroupManager","members","indexMembers","keepInitialMembers","requiredMember","contactFilter","noContactsMessage","selectedContacts","handleMemberRemoved","handleContactFilter","present","keepInitial","stat","sel","splice","doContactFiltering","added","joiner","writer","preser","approver","sharer","deleter","owner","PermissionsEditor","names","skip","compare","userTitle","userAvatar","modeTitle","compareTitle","QRCode","ShowQRCode","qrCodeRef","uri","InPlaceEdit","active","initialValue","handleStartEditing","handlePasswordFinished","checkValidity","spanText","spanClass","multiline","element","rows","TagManager","tags","tagInput","activated","handleTagInput","handleAddTag","handleRemoveTag","getDerivedStateFromProps","nextProps","last","tag","maxTagCount","getServerParam","onTagsChanged","minTagLength","maxTagLength","add_tags_prompt","TopicDescEdit","getAccessMode","isMe","isMeTopicName","description","newAvatar","newAvatarMime","previousOnTags","tnNewTags","handleFullNameUpdate","handleImageUpdated","handleAvatarCropped","handleAvatarCropCancel","uploadAvatar","handlePrivateUpdate","handleDescriptionUpdate","handleTagsUpdated","onTagsUpdated","onUpdateTopicDesc","readyToUpload","getLargeFileHelper","upload","du","onUpdateTags","editable","full_name_placeholder","group_name_placeholder","private_placeholder","title_tag_manager","TopicCommonView","previousTagsUpdated","getType","onUpdateTagsRequest","delete_messages","leave_chat","leave_chat_warning","block_contact","block_contact_warning","report_chat","report_chat_warning","other_user","TopicSecurity","handleDeleteTopic","handleDeleteMessages","handleLeave","handleBlock","handleReport","onDeleteTopic","onDeleteMessages","onLeaveTopic","onBlockTopic","onReportTopic","groupTopic","onLaunchPermissionsEditor","access","anon","modeGiven2","general","security","crop","perm_want","perm_given","perm_auth","perm_anon","perm_user","qrcode","InfoView","admin","muted","address","selectedContact","modeGiven","modeWant","modeWant2","contactList","previousSubsUpdated","resetSubs","resetTags","onSubsUpdated","handleImageChanged","handleMuted","handleUnarchive","handlePermissionsChanged","handleLaunchPermissionsEditor","handleCopyID","handleShowQRCode","handleShowAddMembers","handleMemberUpdateRequest","handleMemberSelected","handleContextMenu","handleBackNavigate","newState","user2","subscriber","getGiven","getWant","subscribers","sub","defacs","getDefaultAccess","isAdmin","isSharer","isDeleter","archived","isArchived","isGroupType","isChannelType","chan","getMeta","startMetaQuery","withTags","build","subs","onTopicDescUpdate","ignored","onChangePermissions","ignored2","onTopicUnArchive","which","perm","onTopicDescUpdateRequest","userPermissionsEdited","toEdit","toCompare","toSkip","titleEdit","titleCompare","AccessMode","userPermissionsTitle","userPermissionsAvatar","editedPermissions","immutablePermissions","editedPermissionsTitle","immutablePermissionsTitle","editedPermissionsSkipped","onNavigate","clipboard","writeText","onMemberUpdateRequest","panel","menuItems","view","panelTitle","displayMobile","errorLevel","errorText","searchableContacts","reqCredMethod","onCredAdd","onTopicTagsUpdateRequest","onCredConfirm","onCredDelete","URI_TOPIC_ID_PREFIX","marginLeft","no_members","loop","CALL_ENDED_SOUND","DIALING_SOUND","VIDEO_MUTED_EVENT","VIDEO_UNMUTED_EVENT","already_in_call","CallPanel","localStream","remoteStream","pc","dataChannel","previousOnInfo","waitingForPeer","callInitialSetupComplete","audioOnly","callAudioOnly","videoToggleInProgress","remoteVideoLive","localStreamConstraints","audio","video","isOutgoingCall","localRef","remoteRef","remoteIceCandidatesCache","onInfo","start","stop","createPeerConnection","canSendOffer","drainRemoteIceCandidatesCache","handleNegotiationNeededEvent","handleICECandidateEvent","handleNewICECandidateMsg","handleICEConnectionStateChangeEvent","handleSignalingStateChangeEvent","handleICEGatheringStateChangeEvent","handleIceCandidateErrorEvent","handleTrackEvent","handleVideoOfferMsg","handleVideoAnswerMsg","reportError","handleGetUserMediaError","stopTracks","disconnectMedia","handleCloseClick","handleToggleCameraClick","handleToggleMicClick","handleRemoteHangup","handleVideoCallAccepted","muteVideo","unmuteVideo","emptyVideoTrack","handleDataChannelEvent","handleDataChannelError","handleDataChannelMessage","handleDataChannelOpen","handleDataChannelClose","stream","getTracks","track","addTrack","enabled","removeTrack","what","fillRect","captureStream","getVideoTracks","mediaDevices","getUserMedia","srcObject","onInvite","ontrack","onremovetrack","onremovestream","onicecandidate","oniceconnectionstatechange","onsignalingstatechange","onicegatheringstatechange","onnegotiationneeded","onicecandidateerror","ondatachannel","tracks","send","onopen","onclose","withDataChannel","iceServers","RTCPeerConnection","stateUpdate","createDataChannel","ordered","RTCSessionDescription","setRemoteDescription","createOffer","offer","setLocalDescription","onSendOffer","localDescription","toJSON","candidate","onIceCandidate","RTCIceCandidate","addIceCandidate","iceConnectionState","signalingState","streams","dummyVideo","createAnswer","answer","onSendAnswer","onHangup","sender","getSenders","replaceTrack","finally","getAudioTracks","forceUpdate","audioTracks","videoTracks","disabled","audioIcon","videoIcon","peerTitle","pulseAnimation","remoteActive","rstream","autoPlay","playsInline","Attachment","downloader","downloadFile","mimetype","download","loaded","helperFunc","downloadUrl","downloadWidget","message_sending","message_sending_failed","message_edited_marker","ReceivedMarker","timestamp","timeStyle","BaseChatMessage","uploader","onProgress","handleProgress","handleExpandImage","handlePlayVideo","handleFormButtonClick","handleCancelUpload","handleQuoteClick","formatterContext","onExpandMedia","resp","act","onFormResponse","userIsWriter","immutable","entities","_0","_1","tp","styles","parseInt","ratio","replyToSeq","sideClass","sequence","bubbleClass","textSizeClass","fullDisplay","attachments","getContentType","att","getDownloadUrl","getEntitySize","tree","innerRef","IntlChatMessage","_extends","AudioRecorder","messaging_disabled","type_new_message","add_image_caption","file_attachment_too_large","cannot_initiate_upload","icon_title_record_voice","icon_title_attach_file","icon_title_add_image","icon_title_send","SendMessage","quote","audioRec","audioAvailable","keypressTimestamp","handlePasteEvent","handleAttachImage","handleAttachFile","handleAttachAudio","handleSend","handleKeyPress","handleMessageTyping","handleDropAttach","formatReply","messageEditArea","getComputedStyle","getPropertyValue","scrollHeight","initMessage","scrollTop","setSelectionRange","onAttachImage","onAttachFile","onAttachAudio","acceptBlank","noInput","onSendMessage","shiftKey","onKeyPress","messagePrompt","sendIcon","editing","onCancelReply","audioEnabled","attachImage","click","attachFile","Suspense","fallback","onRecordingProgress","onDeleted","display","DocPreview","handleSendDoc","caption","mimeToIcon","default","iconFromMime","GroupSubs","usersOnline","totalCount","countToShow","overflow","ImagePreview","handleSendImage","assignWidth","node","maxlength","download_url","Invitation","handleButtonAction","LogoView","getLibrary","serverVersion","serverAddress","MetaMessage","unrecognized_video_format","VideoPreview","handleSendVideo","videoWidth","videoHeight","controlist","controls","controlsList","disablePictureInPicture","poster","online_now","last_seen","not_found","invalid_content","editing_message","drag_file","isUnconfirmed","ex","getExcessive","isPeerRestricted","getMissing","shouldPresentCallPanel","MessagesView","componentSetup","leave","sendMessage","retrySend","sendImageAttachment","sendVideoAttachment","sendFileAttachment","sendAudioAttachment","sendKeyPress","handleScrollReference","mountDnDEvents","handleScrollEvent","handleDescChange","handleSubsUpdated","handleMessageUpdate","handleAllMessagesReceived","handleInfoReceipt","handleExpandMedia","handleClosePreview","handleFormResponse","handleShowMessageContextMenu","handleNewChatAcceptance","handleEnablePeer","handleAttachImageOrVideo","postReadNotification","clearNotificationQueue","goToLatestMessage","handleFileDrop","handlePickReply","handleEditMessage","handleCancelReply","handleCallHangup","isDragEnabled","handleDragStart","handleDragIn","handleDragOut","handleDrag","handleDrop","chatMessageRefs","getOrCreateMessageRef","dragCounter","dndRef","readNotificationQueue","readNotificationTimer","keyPressTimer","seqId","messagesScroller","maxSeqId","minSeqId","scrollPosition","applicationVisible","isNewGroupTopicName","rtcPanel","callSeq","onData","onAllMessagesReceived","onPres","newTopic","newTopicParams","_topicName","isP2PType","withDesc","isSubscribed","isReader","withLaterData","nextState","docPreview","imagePreview","imagePostview","videoPreview","videoPostview","typingIndicator","fetchingMessages","showGoToLastButton","contentToEdit","dragging","forwardMessage","onlineSubs","peer","p2pPeerDesc","peerMessagingDisabled","minMsgSeq","maxMsgSeq","latestClearId","maxClearId","callTopic","subsVersion","readingBlocked","unconformed","unconfirmed","ready","getQuery","withLaterDesc","withLaterSub","withLaterDel","setQuery","onNewTopicCreated","discard","queuedMessages","pub","_sending","_fatal","webrtc","blankState","oldTopicName","isTopicCached","oldTopic","msgHasMoreMessages","getMessagesPage","dnd","sendAt","noteRead","setMilliseconds","getMilliseconds","isNewMessage","attachJSON","searchParams","messageSpecificMenuItems","onNewChat","noteRecording","noteKeyPress","uploadCompletionPromise","sanitizeEntities","maxInbandAttachmentSize","urlPromise","maxExternAttachmentSize","limit","onVideoCallClosed","onCallHangup","insertImage","_tempPreview","appendLineBreak","videoBlob","previewBlob","uploads","b64s","v64","i64","insertVideo","b64conv","appendAudio","found","findMessage","_cancelled","senderName","init","replyContent","wrapInto","onCancelForwardMessage","toMarkdown","scrollIntoView","behavior","dataTransfer","clearData","component2","onCallInvite","onCallSendOffer","onCallIceCandidate","onCallSendAnswer","messageNodes","previousFrom","prevDate","chatBoxClass","nextFrom","thisFrom","isReply","userDesc","isNaN","thisDate","ts","toDateString","ChatMessage","isChan","_uploader","lastSeen","cont","getMeTopic","getContact","isP2PTopicName","seen","when","messagesComponent","onHideMessagesView","ButtonBack","onBack","MenuContacts","onNewTopic","onSettings","MenuStart","onSignUp","SideNavbar","archived_contacts_title","ContactsView","handleAction","unreadThreads","archivedCount","chatList","arch","touched","action_ignored","onShowArchive","EditAccountView","handleCheckboxClick","onToggleMessageSounds","onTogglePushNotifications","onToggleIncognitoMode","messageSounds","desktopAlertsEnabled","desktopAlerts","incognitoMode","delete_account","delete_account_warning","AccSecurityView","me","blockedCount","showPermissionEditorFor","handlePasswordUpdate","handleHidePermissionsEditor","handleDeleteAccount","pwd","password","onUpdatePassword","onUpdateAccountDesc","onDeleteAccount","password_unchanged","onLogout","onShowBlocked","AccSupportView","LoginView","login","hostName","saveToken","persist","handleLoginChange","handlePasswordChange","handleToggleSaveToken","onPersistenceChange","onLogin","submitClasses","login_prompt","autoCorrect","autoCapitalize","password_prompt","invalid_id","NewTopicById","groupId","myURI","prefix","NewTopicGroup","handleFieldEdit","handleTagsChanged","handleChannelToggle","search_for_contacts","search_no_results","NewTopicView","tabSelected","searchQuery","handleTabClick","handleSearchResultSelected","handleNewGroupSubmit","handleGroupByID","onCreateTopic","dataUrl","priv","no_contacts_placeholder","getCurrentUserID","HostSelector","changed","handleHostNameChange","onServerAddressChange","hostOptions","list","SettingsView","transport","secureConnection","handleTransportSelected","handleServerAddressChange","handleToggleSecure","onUpdate","ws","lp","transportOptions","phone","email","ValidationView","credCode","codeReceived","handleCodeChange","credMethod","credToken","numbers_only","AccountSettingsView","CreateAccountView","PasswordResetView","settings","notif","support","newtpk","cred","reset","SidepanelView","handleNewTopic","errorAction","errorActionText","loadSpinnerVisible","loginDisabled","onLoginRequest","onShowCountrySelector","onCreateAccount","onGlobalSettings","onUpdateAccountTags","AccNotificationsView","onValidateCredentials","onRequest","onPasswordResetRequest","onReset","onResetPassword","detectServerAddress","host","protocol","hostname","port","isSecureConnection","PhoneCountrySelector","POP_SOUND","reconnect_countdown","reconnect_now","push_init_failed","invalid_security_token","no_connection","code_doesnot_match","menu_item_info","menu_item_audio_call","menu_item_video_call","cred_confirmed_successfully","password_reset_success","TinodeWeb","getBlankState","handleResize","handleHashRoute","handleOnline","checkForAppUpdate","handleVisibilityEvent","handleLoginRequest","handlePersistenceChange","handleConnected","handleAutoreconnectIteration","doLogin","handleLoginSuccessful","handleDisconnect","tnMeMetaDesc","tnMeContactUpdate","tnMeSubsUpdated","resetContactList","tnInitFind","tnFndSubsUpdated","handleTopicSelected","handleHideMessagesView","handleSendMessage","handleNewChatInvitation","handleNewAccount","handleNewAccountRequest","handleUpdatePasswordRequest","handleUpdateAccountTagsRequest","handleToggleIncognitoMode","handleSettings","handleGlobalSettings","handleShowArchive","handleShowBlocked","handleToggleMessageSounds","handleCredAdd","handleCredDelete","handleCredConfirm","initFCMessaging","toggleFCMToken","handlePushMessage","handleSidepanelCancel","handleStartTopicRequest","handleNewTopicCreated","handleTopicUpdateRequest","handleChangePermissions","handleTagsUpdateRequest","handleLogout","handleDeleteTopicRequest","handleDeleteMessagesRequest","handleLeaveUnsubRequest","handleBlockTopicRequest","handleReportTopic","handleShowContextMenu","defaultTopicContextMenu","handleHideContextMenu","handleShowAlert","handleShowInfoView","handleValidateCredentialsRequest","handlePasswordResetRequest","handleResetPassword","handleContextMenuAction","handleShowCountrySelector","handleShowForwardDialog","handleHideForwardDialog","handleStartVideoCall","handleStartAudioCall","handleInfoMessage","handleDataMessage","handleCallClose","handleCallInvite","handleCallRinging","handleCallSendOffer","handleCallIceCandidate","handleCallSendAnswer","handleCallAccept","sendMessageToTopic","callTimeoutTimer","autoLogin","messageSoundsOff","firebaseInitApp","FIREBASE_INIT","firebaseToken","hidden","sidePanelSelected","sidePanelTitle","sidePanelAvatar","myTrustedBadges","liveConnection","topicSelectedOnline","topicSelectedAcs","innerWidth","infoPanel","mobilePanel","callShouldStart","contextMenuVisible","contextMenuBounds","contextMenuClickAt","contextMenuParams","contextMenuItems","forwardDialogVisible","alertVisible","alertParams","requestedTopic","handleOnlineOn","handleOnlineOff","lastWakeUpCheck","wakeUpTicker","documentElement","clientWidth","viewportHeight","clientHeight","tnSetup","onConnect","onDisconnect","onAutoreconnectIteration","onInfoMessage","onDataMessage","expires","setAuthToken","connect","parsedNav","cred_done","persistentCache","onSetupCompleted","secure","setHumanLanguage","enableLogging","oobNotification","fcm","firebaseGetMessaging","getRegistration","reg","installing","requestFCMToken","setDeviceToken","firebaseOnMessage","sw","firebaseGetToken","messagingVapidKey","mobile","onupdatefound","installingWorker","onstatechange","controller","newTopicTabSelected","tab","topicType","getTopicAccessMode","stateForError","reconnectCountdown","reconnect","isConnected","meth","initStorage","clearStorage","getServerInfo","ver","reqCred","prom","fmtTime","tmpToken","isAuthenticated","getAuthToken","credential","loginPromise","connectionPromise","loginBasic","loginToken","navigateToCredentialsView","goToTopic","onContactUpdate","withCred","disconnect","urlHash","isPresencer","unused","prepareSearchableContacts","foundContacts","merged","updated","past","fnd","getFndTopic","withSub","setMeta","isTopicOnline","completion","subscribePromise","calls","publishMessage","am","updateWant","login_","password_","public_","cred_","tags_","createAccountBasic","on","firebaseDelToken","delCredential","scheme","basicNavigator","infoNavigator","newGroupTopicName","oldName","newName","updateAccountBasic","getCurrentLogin","updateGiven","cleared","Promose","delCurrentUser","report","header","forwardedContent","mention","msgPreview","self_blocked","subscribed","keepForwardedMessage","confirmText","rejectText","invite","requestResetAuthSecret","newPassword","tempAuth","secret","dial","selectedCallback","aonly","videoCall","sdp","latestMsgVersion","myUserName","onAddMember","handleManageGroupMembers","measurementId","gtag","dataLayer","prepend","messageLoader","hl","languages","normalized","baseLanguage","htmlLang","root","IntlProvider","textComponent"],"sourceRoot":""}