diff --git a/README.md b/README.md
index 213aafd2..1430b291 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ Overall, it's a lot like open source WhatsApp or Telegram web apps.
Although the app is generally usable, keep in mind that this is work in progress. Some bugs probably exist, some features are missing. The app was tested in the latest Chrome & Firefox only. NPM package is [available](https://www.npmjs.com/package/tinode-webapp).
-Try possibly newer or older version live at https://web.tinode.co/.
+Try possibly newer or older version live at https://sandbox.tinode.co/.
diff --git a/package-lock.json b/package-lock.json
index 932a5b34..9500ba0d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,19 +1,20 @@
{
"name": "tinode-webapp",
- "version": "0.18.3-beta1",
+ "version": "0.19.0-alpha1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "tinode-webapp",
- "version": "0.18.3-beta1",
+ "version": "0.19.0-alpha1",
"license": "Apache-2.0",
"dependencies": {
"firebase": "^9.6.7",
+ "fix-webm-duration": "^1.0.5",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-intl": "^5.20.2",
- "tinode-sdk": "^0.18.2"
+ "tinode-sdk": "^0.18.3"
},
"devDependencies": {
"@babel/core": "^7.14.5",
@@ -4274,6 +4275,11 @@
"@firebase/util": "1.4.3"
}
},
+ "node_modules/fix-webm-duration": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/fix-webm-duration/-/fix-webm-duration-1.0.5.tgz",
+ "integrity": "sha512-b6oula3OfSknx0aWoLsxvp4DVIYbwsf+UAkr6EDAK3iuMYk/OSNKzmeSI61GXK0MmFTEuzle19BPvTxMIKjkZg=="
+ },
"node_modules/fs-extra": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz",
@@ -6616,9 +6622,9 @@
"dev": true
},
"node_modules/tinode-sdk": {
- "version": "0.18.2",
- "resolved": "https://registry.npmjs.org/tinode-sdk/-/tinode-sdk-0.18.2.tgz",
- "integrity": "sha512-K1Yt5akrRsBPmZwhpK0alhhxJ1F8EJai1svDjxbUbFfFQeTE4y4rXck+sqCQwfVjrPGCgjA/JIbuMpGTapMjbQ=="
+ "version": "0.18.3",
+ "resolved": "https://registry.npmjs.org/tinode-sdk/-/tinode-sdk-0.18.3.tgz",
+ "integrity": "sha512-MKI8KL43oF3K5OEYp2Dfyfj9LYogKyE0hw0MYNmHMsg1+rHM/IbnnLLaEnlwD9hAAgmamCPY2AS6Oo2OeiCr1w=="
},
"node_modules/tmp": {
"version": "0.2.1",
@@ -10345,6 +10351,11 @@
"@firebase/util": "1.4.3"
}
},
+ "fix-webm-duration": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/fix-webm-duration/-/fix-webm-duration-1.0.5.tgz",
+ "integrity": "sha512-b6oula3OfSknx0aWoLsxvp4DVIYbwsf+UAkr6EDAK3iuMYk/OSNKzmeSI61GXK0MmFTEuzle19BPvTxMIKjkZg=="
+ },
"fs-extra": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz",
@@ -12005,9 +12016,9 @@
"dev": true
},
"tinode-sdk": {
- "version": "0.18.2",
- "resolved": "https://registry.npmjs.org/tinode-sdk/-/tinode-sdk-0.18.2.tgz",
- "integrity": "sha512-K1Yt5akrRsBPmZwhpK0alhhxJ1F8EJai1svDjxbUbFfFQeTE4y4rXck+sqCQwfVjrPGCgjA/JIbuMpGTapMjbQ=="
+ "version": "0.18.3",
+ "resolved": "https://registry.npmjs.org/tinode-sdk/-/tinode-sdk-0.18.3.tgz",
+ "integrity": "sha512-MKI8KL43oF3K5OEYp2Dfyfj9LYogKyE0hw0MYNmHMsg1+rHM/IbnnLLaEnlwD9hAAgmamCPY2AS6Oo2OeiCr1w=="
},
"tmp": {
"version": "0.2.1",
diff --git a/package.json b/package.json
index 6b117af2..85c42562 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,6 @@
"name": "tinode-webapp",
"description": "Tinode messenger for the web",
"version": "0.19.0-alpha1",
-
"repository": {
"type": "git",
"url": "https://github.com/tinode/example-react-js.git"
@@ -68,6 +67,7 @@
"license": "Apache-2.0",
"dependencies": {
"firebase": "^9.6.7",
+ "fix-webm-duration": "^1.0.5",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-intl": "^5.20.2",
diff --git a/src/widgets/audio-recorder.jsx b/src/widgets/audio-recorder.jsx
index daf26b54..5c4f6d2a 100644
--- a/src/widgets/audio-recorder.jsx
+++ b/src/widgets/audio-recorder.jsx
@@ -3,6 +3,8 @@
import React from 'react';
import AudioPlayer from './audio-player.jsx';
+// Workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=642012
+import fixWebmDuration from 'fix-webm-duration';
import { intArrayToBase64 } from '../lib/blob-helpers.js'
import { secondsToTime } from '../lib/strformat';
@@ -30,6 +32,9 @@ const VISUALIZATION_BARS = 96;
// Maximum number of samples per bar.
const MAX_SAMPLES_PER_BAR = 10;
+// Recording format.
+const AUDIO_MIME_TYPE = 'audio/webm';
+
export default class AudioRecorder extends React.PureComponent {
constructor(props) {
super(props);
@@ -224,7 +229,7 @@ export default class AudioRecorder extends React.PureComponent {
initMediaRecording(stream) {
this.stream = stream;
- this.mediaRecorder = new MediaRecorder(stream);
+ this.mediaRecorder = new MediaRecorder(stream, {mimeType: AUDIO_MIME_TYPE});
// The following code is needed for visualization.
this.audioContext = new AudioContext();
@@ -235,7 +240,7 @@ export default class AudioRecorder extends React.PureComponent {
this.mediaRecorder.onstop = _ => {
if (this.durationMillis > MIN_DURATION) {
- this.getRecording()
+ this.getRecording(this.mediaRecorder.mimeType, this.durationMillis)
.then(result => this.props.onFinished(result.url, result.preview, this.durationMillis));
} else {
this.props.onDeleted();
@@ -249,7 +254,7 @@ export default class AudioRecorder extends React.PureComponent {
}
if (this.mediaRecorder.state != 'inactive') {
- this.getRecording().then(result => {
+ this.getRecording(this.mediaRecorder.mimeType).then(result => {
this.setState({
blobUrl: result.url,
preview: result.preview
@@ -265,14 +270,14 @@ export default class AudioRecorder extends React.PureComponent {
}
// Obtain data in a form sutable for sending or playing back.
- getRecording() {
- const blob = new Blob(this.audioChunks, {'type' : 'audio/mp3; codecs=mp3'});
- const url = window.URL.createObjectURL(blob);
- return blob.arrayBuffer().then(ab => this.audioContext.decodeAudioData(ab))
- .then(data => this.createPreview(data))
- .then(preview => {
- return {url: url, preview: intArrayToBase64(preview)}
- });
+ // If duration is valid, apply fix for Chrome's WebM duration bug.
+ getRecording(mimeType, duration) {
+ let blob = new Blob(this.audioChunks, {type: mimeType || AUDIO_MIME_TYPE});
+ return (duration > 0 ? fixWebmDuration(blob, duration, {logger: false}) : Promise.resolve(blob))
+ .then(fixedBlob => { blob = fixedBlob; return fixedBlob.arrayBuffer(); })
+ .then(arrayBuff => this.audioContext.decodeAudioData(arrayBuff))
+ .then(decoded => this.createPreview(decoded))
+ .then(preview => ({url: window.URL.createObjectURL(blob), preview: intArrayToBase64(preview)}));
}
// Preview must be calculated at the source: Chrome does not allow background AudioContext.
diff --git a/umd/index.dev.js b/umd/index.dev.js
index e2139793..d0cc3035 100644
--- a/umd/index.dev.js
+++ b/umd/index.dev.js
@@ -9958,8 +9958,11 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _audio_player_jsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./audio-player.jsx */ "./src/widgets/audio-player.jsx");
-/* harmony import */ var _lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../lib/blob-helpers.js */ "./src/lib/blob-helpers.js");
-/* harmony import */ var _lib_strformat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib/strformat */ "./src/lib/strformat.js");
+/* harmony import */ var fix_webm_duration__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! fix-webm-duration */ "./node_modules/fix-webm-duration/fix-webm-duration.js");
+/* harmony import */ var fix_webm_duration__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(fix_webm_duration__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib/blob-helpers.js */ "./src/lib/blob-helpers.js");
+/* harmony import */ var _lib_strformat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../lib/strformat */ "./src/lib/strformat.js");
+
@@ -9975,6 +9978,7 @@ const MIN_DURATION = 200;
const MAX_DURATION = 600000;
const VISUALIZATION_BARS = 96;
const MAX_SAMPLES_PER_BAR = 10;
+const AUDIO_MIME_TYPE = 'audio/webm';
class AudioRecorder extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureComponent) {
constructor(props) {
super(props);
@@ -10049,7 +10053,7 @@ class AudioRecorder extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
window.requestAnimationFrame(drawFrame);
const duration = this.durationMillis + (Date.now() - this.startedOn);
this.setState({
- duration: (0,_lib_strformat__WEBPACK_IMPORTED_MODULE_3__.secondsToTime)(duration / 1000)
+ duration: (0,_lib_strformat__WEBPACK_IMPORTED_MODULE_4__.secondsToTime)(duration / 1000)
});
if (duration > MAX_DURATION) {
@@ -10059,7 +10063,7 @@ class AudioRecorder extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
this.setState({
enabled: false,
recording: false,
- duration: (0,_lib_strformat__WEBPACK_IMPORTED_MODULE_3__.secondsToTime)(this.durationMillis / 1000)
+ duration: (0,_lib_strformat__WEBPACK_IMPORTED_MODULE_4__.secondsToTime)(this.durationMillis / 1000)
});
}
@@ -10164,7 +10168,9 @@ class AudioRecorder extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
initMediaRecording(stream) {
this.stream = stream;
- this.mediaRecorder = new MediaRecorder(stream);
+ this.mediaRecorder = new MediaRecorder(stream, {
+ mimeType: AUDIO_MIME_TYPE
+ });
this.audioContext = new AudioContext();
this.audioInput = this.audioContext.createMediaStreamSource(stream);
this.analyser = this.audioContext.createAnalyser();
@@ -10173,7 +10179,7 @@ class AudioRecorder extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
this.mediaRecorder.onstop = _ => {
if (this.durationMillis > MIN_DURATION) {
- this.getRecording().then(result => this.props.onFinished(result.url, result.preview, this.durationMillis));
+ this.getRecording(this.mediaRecorder.mimeType, this.durationMillis).then(result => this.props.onFinished(result.url, result.preview, this.durationMillis));
} else {
this.props.onDeleted();
}
@@ -10187,7 +10193,7 @@ class AudioRecorder extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
}
if (this.mediaRecorder.state != 'inactive') {
- this.getRecording().then(result => {
+ this.getRecording(this.mediaRecorder.mimeType).then(result => {
this.setState({
blobUrl: result.url,
preview: result.preview
@@ -10202,17 +10208,19 @@ class AudioRecorder extends (react__WEBPACK_IMPORTED_MODULE_0___default().PureCo
this.visualize();
}
- getRecording() {
- const blob = new Blob(this.audioChunks, {
- 'type': 'audio/mp3; codecs=mp3'
- });
- const url = window.URL.createObjectURL(blob);
- return blob.arrayBuffer().then(ab => this.audioContext.decodeAudioData(ab)).then(data => this.createPreview(data)).then(preview => {
- return {
- url: url,
- preview: (0,_lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_2__.intArrayToBase64)(preview)
- };
+ getRecording(mimeType, duration) {
+ let blob = new Blob(this.audioChunks, {
+ type: mimeType || AUDIO_MIME_TYPE
});
+ return (duration > 0 ? fix_webm_duration__WEBPACK_IMPORTED_MODULE_2___default()(blob, duration, {
+ logger: false
+ }) : Promise.resolve(blob)).then(fixedBlob => {
+ blob = fixedBlob;
+ return fixedBlob.arrayBuffer();
+ }).then(arrayBuff => this.audioContext.decodeAudioData(arrayBuff)).then(decoded => this.createPreview(decoded)).then(preview => ({
+ url: window.URL.createObjectURL(blob),
+ preview: (0,_lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_3__.intArrayToBase64)(preview)
+ }));
}
createPreview(audio) {
@@ -16333,6 +16341,529 @@ __webpack_require__.r(__webpack_exports__);
//# sourceMappingURL=index.esm.js.map
+/***/ }),
+
+/***/ "./node_modules/fix-webm-duration/fix-webm-duration.js":
+/*!*************************************************************!*\
+ !*** ./node_modules/fix-webm-duration/fix-webm-duration.js ***!
+ \*************************************************************/
+/***/ ((module, exports, __webpack_require__) => {
+
+var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (name, definition) {
+ if (true) { // RequireJS / AMD
+ !(__WEBPACK_AMD_DEFINE_FACTORY__ = (definition),
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
+ (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
+ __WEBPACK_AMD_DEFINE_FACTORY__),
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
+ } else {}
+})('fix-webm-duration', function () {
+ /*
+ * This is the list of possible WEBM file sections by their IDs.
+ * Possible types: Container, Binary, Uint, Int, String, Float, Date
+ */
+ var sections = {
+ 0xa45dfa3: { name: 'EBML', type: 'Container' },
+ 0x286: { name: 'EBMLVersion', type: 'Uint' },
+ 0x2f7: { name: 'EBMLReadVersion', type: 'Uint' },
+ 0x2f2: { name: 'EBMLMaxIDLength', type: 'Uint' },
+ 0x2f3: { name: 'EBMLMaxSizeLength', type: 'Uint' },
+ 0x282: { name: 'DocType', type: 'String' },
+ 0x287: { name: 'DocTypeVersion', type: 'Uint' },
+ 0x285: { name: 'DocTypeReadVersion', type: 'Uint' },
+ 0x6c: { name: 'Void', type: 'Binary' },
+ 0x3f: { name: 'CRC-32', type: 'Binary' },
+ 0xb538667: { name: 'SignatureSlot', type: 'Container' },
+ 0x3e8a: { name: 'SignatureAlgo', type: 'Uint' },
+ 0x3e9a: { name: 'SignatureHash', type: 'Uint' },
+ 0x3ea5: { name: 'SignaturePublicKey', type: 'Binary' },
+ 0x3eb5: { name: 'Signature', type: 'Binary' },
+ 0x3e5b: { name: 'SignatureElements', type: 'Container' },
+ 0x3e7b: { name: 'SignatureElementList', type: 'Container' },
+ 0x2532: { name: 'SignedElement', type: 'Binary' },
+ 0x8538067: { name: 'Segment', type: 'Container' },
+ 0x14d9b74: { name: 'SeekHead', type: 'Container' },
+ 0xdbb: { name: 'Seek', type: 'Container' },
+ 0x13ab: { name: 'SeekID', type: 'Binary' },
+ 0x13ac: { name: 'SeekPosition', type: 'Uint' },
+ 0x549a966: { name: 'Info', type: 'Container' },
+ 0x33a4: { name: 'SegmentUID', type: 'Binary' },
+ 0x3384: { name: 'SegmentFilename', type: 'String' },
+ 0x1cb923: { name: 'PrevUID', type: 'Binary' },
+ 0x1c83ab: { name: 'PrevFilename', type: 'String' },
+ 0x1eb923: { name: 'NextUID', type: 'Binary' },
+ 0x1e83bb: { name: 'NextFilename', type: 'String' },
+ 0x444: { name: 'SegmentFamily', type: 'Binary' },
+ 0x2924: { name: 'ChapterTranslate', type: 'Container' },
+ 0x29fc: { name: 'ChapterTranslateEditionUID', type: 'Uint' },
+ 0x29bf: { name: 'ChapterTranslateCodec', type: 'Uint' },
+ 0x29a5: { name: 'ChapterTranslateID', type: 'Binary' },
+ 0xad7b1: { name: 'TimecodeScale', type: 'Uint' },
+ 0x489: { name: 'Duration', type: 'Float' },
+ 0x461: { name: 'DateUTC', type: 'Date' },
+ 0x3ba9: { name: 'Title', type: 'String' },
+ 0xd80: { name: 'MuxingApp', type: 'String' },
+ 0x1741: { name: 'WritingApp', type: 'String' },
+ // 0xf43b675: { name: 'Cluster', type: 'Container' },
+ 0x67: { name: 'Timecode', type: 'Uint' },
+ 0x1854: { name: 'SilentTracks', type: 'Container' },
+ 0x18d7: { name: 'SilentTrackNumber', type: 'Uint' },
+ 0x27: { name: 'Position', type: 'Uint' },
+ 0x2b: { name: 'PrevSize', type: 'Uint' },
+ 0x23: { name: 'SimpleBlock', type: 'Binary' },
+ 0x20: { name: 'BlockGroup', type: 'Container' },
+ 0x21: { name: 'Block', type: 'Binary' },
+ 0x22: { name: 'BlockVirtual', type: 'Binary' },
+ 0x35a1: { name: 'BlockAdditions', type: 'Container' },
+ 0x26: { name: 'BlockMore', type: 'Container' },
+ 0x6e: { name: 'BlockAddID', type: 'Uint' },
+ 0x25: { name: 'BlockAdditional', type: 'Binary' },
+ 0x1b: { name: 'BlockDuration', type: 'Uint' },
+ 0x7a: { name: 'ReferencePriority', type: 'Uint' },
+ 0x7b: { name: 'ReferenceBlock', type: 'Int' },
+ 0x7d: { name: 'ReferenceVirtual', type: 'Int' },
+ 0x24: { name: 'CodecState', type: 'Binary' },
+ 0x35a2: { name: 'DiscardPadding', type: 'Int' },
+ 0xe: { name: 'Slices', type: 'Container' },
+ 0x68: { name: 'TimeSlice', type: 'Container' },
+ 0x4c: { name: 'LaceNumber', type: 'Uint' },
+ 0x4d: { name: 'FrameNumber', type: 'Uint' },
+ 0x4b: { name: 'BlockAdditionID', type: 'Uint' },
+ 0x4e: { name: 'Delay', type: 'Uint' },
+ 0x4f: { name: 'SliceDuration', type: 'Uint' },
+ 0x48: { name: 'ReferenceFrame', type: 'Container' },
+ 0x49: { name: 'ReferenceOffset', type: 'Uint' },
+ 0x4a: { name: 'ReferenceTimeCode', type: 'Uint' },
+ 0x2f: { name: 'EncryptedBlock', type: 'Binary' },
+ 0x654ae6b: { name: 'Tracks', type: 'Container' },
+ 0x2e: { name: 'TrackEntry', type: 'Container' },
+ 0x57: { name: 'TrackNumber', type: 'Uint' },
+ 0x33c5: { name: 'TrackUID', type: 'Uint' },
+ 0x3: { name: 'TrackType', type: 'Uint' },
+ 0x39: { name: 'FlagEnabled', type: 'Uint' },
+ 0x8: { name: 'FlagDefault', type: 'Uint' },
+ 0x15aa: { name: 'FlagForced', type: 'Uint' },
+ 0x1c: { name: 'FlagLacing', type: 'Uint' },
+ 0x2de7: { name: 'MinCache', type: 'Uint' },
+ 0x2df8: { name: 'MaxCache', type: 'Uint' },
+ 0x3e383: { name: 'DefaultDuration', type: 'Uint' },
+ 0x34e7a: { name: 'DefaultDecodedFieldDuration', type: 'Uint' },
+ 0x3314f: { name: 'TrackTimecodeScale', type: 'Float' },
+ 0x137f: { name: 'TrackOffset', type: 'Int' },
+ 0x15ee: { name: 'MaxBlockAdditionID', type: 'Uint' },
+ 0x136e: { name: 'Name', type: 'String' },
+ 0x2b59c: { name: 'Language', type: 'String' },
+ 0x6: { name: 'CodecID', type: 'String' },
+ 0x23a2: { name: 'CodecPrivate', type: 'Binary' },
+ 0x58688: { name: 'CodecName', type: 'String' },
+ 0x3446: { name: 'AttachmentLink', type: 'Uint' },
+ 0x1a9697: { name: 'CodecSettings', type: 'String' },
+ 0x1b4040: { name: 'CodecInfoURL', type: 'String' },
+ 0x6b240: { name: 'CodecDownloadURL', type: 'String' },
+ 0x2a: { name: 'CodecDecodeAll', type: 'Uint' },
+ 0x2fab: { name: 'TrackOverlay', type: 'Uint' },
+ 0x16aa: { name: 'CodecDelay', type: 'Uint' },
+ 0x16bb: { name: 'SeekPreRoll', type: 'Uint' },
+ 0x2624: { name: 'TrackTranslate', type: 'Container' },
+ 0x26fc: { name: 'TrackTranslateEditionUID', type: 'Uint' },
+ 0x26bf: { name: 'TrackTranslateCodec', type: 'Uint' },
+ 0x26a5: { name: 'TrackTranslateTrackID', type: 'Binary' },
+ 0x60: { name: 'Video', type: 'Container' },
+ 0x1a: { name: 'FlagInterlaced', type: 'Uint' },
+ 0x13b8: { name: 'StereoMode', type: 'Uint' },
+ 0x13c0: { name: 'AlphaMode', type: 'Uint' },
+ 0x13b9: { name: 'OldStereoMode', type: 'Uint' },
+ 0x30: { name: 'PixelWidth', type: 'Uint' },
+ 0x3a: { name: 'PixelHeight', type: 'Uint' },
+ 0x14aa: { name: 'PixelCropBottom', type: 'Uint' },
+ 0x14bb: { name: 'PixelCropTop', type: 'Uint' },
+ 0x14cc: { name: 'PixelCropLeft', type: 'Uint' },
+ 0x14dd: { name: 'PixelCropRight', type: 'Uint' },
+ 0x14b0: { name: 'DisplayWidth', type: 'Uint' },
+ 0x14ba: { name: 'DisplayHeight', type: 'Uint' },
+ 0x14b2: { name: 'DisplayUnit', type: 'Uint' },
+ 0x14b3: { name: 'AspectRatioType', type: 'Uint' },
+ 0xeb524: { name: 'ColourSpace', type: 'Binary' },
+ 0xfb523: { name: 'GammaValue', type: 'Float' },
+ 0x383e3: { name: 'FrameRate', type: 'Float' },
+ 0x61: { name: 'Audio', type: 'Container' },
+ 0x35: { name: 'SamplingFrequency', type: 'Float' },
+ 0x38b5: { name: 'OutputSamplingFrequency', type: 'Float' },
+ 0x1f: { name: 'Channels', type: 'Uint' },
+ 0x3d7b: { name: 'ChannelPositions', type: 'Binary' },
+ 0x2264: { name: 'BitDepth', type: 'Uint' },
+ 0x62: { name: 'TrackOperation', type: 'Container' },
+ 0x63: { name: 'TrackCombinePlanes', type: 'Container' },
+ 0x64: { name: 'TrackPlane', type: 'Container' },
+ 0x65: { name: 'TrackPlaneUID', type: 'Uint' },
+ 0x66: { name: 'TrackPlaneType', type: 'Uint' },
+ 0x69: { name: 'TrackJoinBlocks', type: 'Container' },
+ 0x6d: { name: 'TrackJoinUID', type: 'Uint' },
+ 0x40: { name: 'TrickTrackUID', type: 'Uint' },
+ 0x41: { name: 'TrickTrackSegmentUID', type: 'Binary' },
+ 0x46: { name: 'TrickTrackFlag', type: 'Uint' },
+ 0x47: { name: 'TrickMasterTrackUID', type: 'Uint' },
+ 0x44: { name: 'TrickMasterTrackSegmentUID', type: 'Binary' },
+ 0x2d80: { name: 'ContentEncodings', type: 'Container' },
+ 0x2240: { name: 'ContentEncoding', type: 'Container' },
+ 0x1031: { name: 'ContentEncodingOrder', type: 'Uint' },
+ 0x1032: { name: 'ContentEncodingScope', type: 'Uint' },
+ 0x1033: { name: 'ContentEncodingType', type: 'Uint' },
+ 0x1034: { name: 'ContentCompression', type: 'Container' },
+ 0x254: { name: 'ContentCompAlgo', type: 'Uint' },
+ 0x255: { name: 'ContentCompSettings', type: 'Binary' },
+ 0x1035: { name: 'ContentEncryption', type: 'Container' },
+ 0x7e1: { name: 'ContentEncAlgo', type: 'Uint' },
+ 0x7e2: { name: 'ContentEncKeyID', type: 'Binary' },
+ 0x7e3: { name: 'ContentSignature', type: 'Binary' },
+ 0x7e4: { name: 'ContentSigKeyID', type: 'Binary' },
+ 0x7e5: { name: 'ContentSigAlgo', type: 'Uint' },
+ 0x7e6: { name: 'ContentSigHashAlgo', type: 'Uint' },
+ 0xc53bb6b: { name: 'Cues', type: 'Container' },
+ 0x3b: { name: 'CuePoint', type: 'Container' },
+ 0x33: { name: 'CueTime', type: 'Uint' },
+ 0x37: { name: 'CueTrackPositions', type: 'Container' },
+ 0x77: { name: 'CueTrack', type: 'Uint' },
+ 0x71: { name: 'CueClusterPosition', type: 'Uint' },
+ 0x70: { name: 'CueRelativePosition', type: 'Uint' },
+ 0x32: { name: 'CueDuration', type: 'Uint' },
+ 0x1378: { name: 'CueBlockNumber', type: 'Uint' },
+ 0x6a: { name: 'CueCodecState', type: 'Uint' },
+ 0x5b: { name: 'CueReference', type: 'Container' },
+ 0x16: { name: 'CueRefTime', type: 'Uint' },
+ 0x17: { name: 'CueRefCluster', type: 'Uint' },
+ 0x135f: { name: 'CueRefNumber', type: 'Uint' },
+ 0x6b: { name: 'CueRefCodecState', type: 'Uint' },
+ 0x941a469: { name: 'Attachments', type: 'Container' },
+ 0x21a7: { name: 'AttachedFile', type: 'Container' },
+ 0x67e: { name: 'FileDescription', type: 'String' },
+ 0x66e: { name: 'FileName', type: 'String' },
+ 0x660: { name: 'FileMimeType', type: 'String' },
+ 0x65c: { name: 'FileData', type: 'Binary' },
+ 0x6ae: { name: 'FileUID', type: 'Uint' },
+ 0x675: { name: 'FileReferral', type: 'Binary' },
+ 0x661: { name: 'FileUsedStartTime', type: 'Uint' },
+ 0x662: { name: 'FileUsedEndTime', type: 'Uint' },
+ 0x43a770: { name: 'Chapters', type: 'Container' },
+ 0x5b9: { name: 'EditionEntry', type: 'Container' },
+ 0x5bc: { name: 'EditionUID', type: 'Uint' },
+ 0x5bd: { name: 'EditionFlagHidden', type: 'Uint' },
+ 0x5db: { name: 'EditionFlagDefault', type: 'Uint' },
+ 0x5dd: { name: 'EditionFlagOrdered', type: 'Uint' },
+ 0x36: { name: 'ChapterAtom', type: 'Container' },
+ 0x33c4: { name: 'ChapterUID', type: 'Uint' },
+ 0x1654: { name: 'ChapterStringUID', type: 'String' },
+ 0x11: { name: 'ChapterTimeStart', type: 'Uint' },
+ 0x12: { name: 'ChapterTimeEnd', type: 'Uint' },
+ 0x18: { name: 'ChapterFlagHidden', type: 'Uint' },
+ 0x598: { name: 'ChapterFlagEnabled', type: 'Uint' },
+ 0x2e67: { name: 'ChapterSegmentUID', type: 'Binary' },
+ 0x2ebc: { name: 'ChapterSegmentEditionUID', type: 'Uint' },
+ 0x23c3: { name: 'ChapterPhysicalEquiv', type: 'Uint' },
+ 0xf: { name: 'ChapterTrack', type: 'Container' },
+ 0x9: { name: 'ChapterTrackNumber', type: 'Uint' },
+ 0x0: { name: 'ChapterDisplay', type: 'Container' },
+ 0x5: { name: 'ChapString', type: 'String' },
+ 0x37c: { name: 'ChapLanguage', type: 'String' },
+ 0x37e: { name: 'ChapCountry', type: 'String' },
+ 0x2944: { name: 'ChapProcess', type: 'Container' },
+ 0x2955: { name: 'ChapProcessCodecID', type: 'Uint' },
+ 0x50d: { name: 'ChapProcessPrivate', type: 'Binary' },
+ 0x2911: { name: 'ChapProcessCommand', type: 'Container' },
+ 0x2922: { name: 'ChapProcessTime', type: 'Uint' },
+ 0x2933: { name: 'ChapProcessData', type: 'Binary' },
+ 0x254c367: { name: 'Tags', type: 'Container' },
+ 0x3373: { name: 'Tag', type: 'Container' },
+ 0x23c0: { name: 'Targets', type: 'Container' },
+ 0x28ca: { name: 'TargetTypeValue', type: 'Uint' },
+ 0x23ca: { name: 'TargetType', type: 'String' },
+ 0x23c5: { name: 'TagTrackUID', type: 'Uint' },
+ 0x23c9: { name: 'TagEditionUID', type: 'Uint' },
+ 0x23c4: { name: 'TagChapterUID', type: 'Uint' },
+ 0x23c6: { name: 'TagAttachmentUID', type: 'Uint' },
+ 0x27c8: { name: 'SimpleTag', type: 'Container' },
+ 0x5a3: { name: 'TagName', type: 'String' },
+ 0x47a: { name: 'TagLanguage', type: 'String' },
+ 0x484: { name: 'TagDefault', type: 'Uint' },
+ 0x487: { name: 'TagString', type: 'String' },
+ 0x485: { name: 'TagBinary', type: 'Binary' }
+ };
+
+ function doInherit(newClass, baseClass) {
+ newClass.prototype = Object.create(baseClass.prototype);
+ newClass.prototype.constructor = newClass;
+ }
+
+ function WebmBase(name, type) {
+ this.name = name || 'Unknown';
+ this.type = type || 'Unknown';
+ }
+ WebmBase.prototype.updateBySource = function() { };
+ WebmBase.prototype.setSource = function(source) {
+ this.source = source;
+ this.updateBySource();
+ };
+ WebmBase.prototype.updateByData = function() { };
+ WebmBase.prototype.setData = function(data) {
+ this.data = data;
+ this.updateByData();
+ };
+
+ function WebmUint(name, type) {
+ WebmBase.call(this, name, type || 'Uint');
+ }
+ doInherit(WebmUint, WebmBase);
+ function padHex(hex) {
+ return hex.length % 2 === 1 ? '0' + hex : hex;
+ }
+ WebmUint.prototype.updateBySource = function() {
+ // use hex representation of a number instead of number value
+ this.data = '';
+ for (var i = 0; i < this.source.length; i++) {
+ var hex = this.source[i].toString(16);
+ this.data += padHex(hex);
+ }
+ };
+ WebmUint.prototype.updateByData = function() {
+ var length = this.data.length / 2;
+ this.source = new Uint8Array(length);
+ for (var i = 0; i < length; i++) {
+ var hex = this.data.substr(i * 2, 2);
+ this.source[i] = parseInt(hex, 16);
+ }
+ };
+ WebmUint.prototype.getValue = function() {
+ return parseInt(this.data, 16);
+ };
+ WebmUint.prototype.setValue = function(value) {
+ this.setData(padHex(value.toString(16)));
+ };
+
+ function WebmFloat(name, type) {
+ WebmBase.call(this, name, type || 'Float');
+ }
+ doInherit(WebmFloat, WebmBase);
+ WebmFloat.prototype.getFloatArrayType = function() {
+ return this.source && this.source.length === 4 ? Float32Array : Float64Array;
+ };
+ WebmFloat.prototype.updateBySource = function() {
+ var byteArray = this.source.reverse();
+ var floatArrayType = this.getFloatArrayType();
+ var floatArray = new floatArrayType(byteArray.buffer);
+ this.data = floatArray[0];
+ };
+ WebmFloat.prototype.updateByData = function() {
+ var floatArrayType = this.getFloatArrayType();
+ var floatArray = new floatArrayType([ this.data ]);
+ var byteArray = new Uint8Array(floatArray.buffer);
+ this.source = byteArray.reverse();
+ };
+ WebmFloat.prototype.getValue = function() {
+ return this.data;
+ };
+ WebmFloat.prototype.setValue = function(value) {
+ this.setData(value);
+ };
+
+ function WebmContainer(name, type) {
+ WebmBase.call(this, name, type || 'Container');
+ }
+ doInherit(WebmContainer, WebmBase);
+ WebmContainer.prototype.readByte = function() {
+ return this.source[this.offset++];
+ };
+ WebmContainer.prototype.readUint = function() {
+ var firstByte = this.readByte();
+ var bytes = 8 - firstByte.toString(2).length;
+ var value = firstByte - (1 << (7 - bytes));
+ for (var i = 0; i < bytes; i++) {
+ // don't use bit operators to support x86
+ value *= 256;
+ value += this.readByte();
+ }
+ return value;
+ };
+ WebmContainer.prototype.updateBySource = function() {
+ this.data = [];
+ for (this.offset = 0; this.offset < this.source.length; this.offset = end) {
+ var id = this.readUint();
+ var len = this.readUint();
+ var end = Math.min(this.offset + len, this.source.length);
+ var data = this.source.slice(this.offset, end);
+
+ var info = sections[id] || { name: 'Unknown', type: 'Unknown' };
+ var ctr = WebmBase;
+ switch (info.type) {
+ case 'Container':
+ ctr = WebmContainer;
+ break;
+ case 'Uint':
+ ctr = WebmUint;
+ break;
+ case 'Float':
+ ctr = WebmFloat;
+ break;
+ }
+ var section = new ctr(info.name, info.type);
+ section.setSource(data);
+ this.data.push({
+ id: id,
+ idHex: id.toString(16),
+ data: section
+ });
+ }
+ };
+ WebmContainer.prototype.writeUint = function(x, draft) {
+ for (var bytes = 1, flag = 0x80; x >= flag && bytes < 8; bytes++, flag *= 0x80) { }
+
+ if (!draft) {
+ var value = flag + x;
+ for (var i = bytes - 1; i >= 0; i--) {
+ // don't use bit operators to support x86
+ var c = value % 256;
+ this.source[this.offset + i] = c;
+ value = (value - c) / 256;
+ }
+ }
+
+ this.offset += bytes;
+ };
+ WebmContainer.prototype.writeSections = function(draft) {
+ this.offset = 0;
+ for (var i = 0; i < this.data.length; i++) {
+ var section = this.data[i],
+ content = section.data.source,
+ contentLength = content.length;
+ this.writeUint(section.id, draft);
+ this.writeUint(contentLength, draft);
+ if (!draft) {
+ this.source.set(content, this.offset);
+ }
+ this.offset += contentLength;
+ }
+ return this.offset;
+ };
+ WebmContainer.prototype.updateByData = function() {
+ // run without accessing this.source to determine total length - need to know it to create Uint8Array
+ var length = this.writeSections('draft');
+ this.source = new Uint8Array(length);
+ // now really write data
+ this.writeSections();
+ };
+ WebmContainer.prototype.getSectionById = function(id) {
+ for (var i = 0; i < this.data.length; i++) {
+ var section = this.data[i];
+ if (section.id === id) {
+ return section.data;
+ }
+ }
+ return null;
+ };
+
+ function WebmFile(source) {
+ WebmContainer.call(this, 'File', 'File');
+ this.setSource(source);
+ }
+ doInherit(WebmFile, WebmContainer);
+ WebmFile.prototype.fixDuration = function(duration, options) {
+ var logger = options && options.logger;
+ if (logger === undefined) {
+ logger = function(message) {
+ console.log(message);
+ };
+ } else if (!logger) {
+ logger = function() { };
+ }
+
+ var segmentSection = this.getSectionById(0x8538067);
+ if (!segmentSection) {
+ logger('[fix-webm-duration] Segment section is missing');
+ return false;
+ }
+
+ var infoSection = segmentSection.getSectionById(0x549a966);
+ if (!infoSection) {
+ logger('[fix-webm-duration] Info section is missing');
+ return false;
+ }
+
+ var timeScaleSection = infoSection.getSectionById(0xad7b1);
+ if (!timeScaleSection) {
+ logger('[fix-webm-duration] TimecodeScale section is missing');
+ return false;
+ }
+
+ var durationSection = infoSection.getSectionById(0x489);
+ if (durationSection) {
+ if (durationSection.getValue() <= 0) {
+ logger('[fix-webm-duration] Duration section is present, but the value is empty');
+ durationSection.setValue(duration);
+ } else {
+ logger('[fix-webm-duration] Duration section is present');
+ return false;
+ }
+ } else {
+ logger('[fix-webm-duration] Duration section is missing');
+ // append Duration section
+ durationSection = new WebmFloat('Duration', 'Float');
+ durationSection.setValue(duration);
+ infoSection.data.push({
+ id: 0x489,
+ data: durationSection
+ });
+ }
+
+ // set default time scale to 1 millisecond (1000000 nanoseconds)
+ timeScaleSection.setValue(1000000);
+ infoSection.updateByData();
+ segmentSection.updateByData();
+ this.updateByData();
+
+ return true;
+ };
+ WebmFile.prototype.toBlob = function(mimeType) {
+ return new Blob([ this.source.buffer ], { type: mimeType || 'video/webm' });
+ };
+
+ function fixWebmDuration(blob, duration, callback, options) {
+ // The callback may be omitted - then the third argument is options
+ if (typeof callback === "object") {
+ options = callback;
+ callback = undefined;
+ }
+
+ if (!callback) {
+ return new Promise(function(resolve) {
+ fixWebmDuration(blob, duration, resolve, options);
+ });
+ }
+
+ try {
+ var reader = new FileReader();
+ reader.onloadend = function() {
+ try {
+ var file = new WebmFile(new Uint8Array(reader.result));
+ if (file.fixDuration(duration, options)) {
+ blob = file.toBlob(blob.type);
+ }
+ } catch (ex) {
+ // ignore
+ }
+ callback(blob);
+ };
+ reader.readAsArrayBuffer(blob);
+ } catch (ex) {
+ callback(blob);
+ }
+ }
+
+ // Support AMD import default
+ fixWebmDuration.default = fixWebmDuration;
+
+ return fixWebmDuration;
+});
+
+
/***/ }),
/***/ "./node_modules/idb/build/idb.js":
diff --git a/umd/index.dev.js.map b/umd/index.dev.js.map
index 54497d6a..40ef14a3 100644
--- a/umd/index.dev.js.map
+++ b/umd/index.dev.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.dev.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qBAAM;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAM;AACrB,eAAe,qBAAM;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,MAAM;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa,GAAG,KAAK;AACjD;AACA;AACA;AACA,+BAA+B,iBAAiB,IAAI,SAAS,GAAG,SAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD,KAAK;AACL;AACA,mBAAmB,MAAM,IAAI;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,GAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,UAAU,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEkzB;AAClzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC12DA;AAGO,MAAMC,QAAQ,GAAG,gBAAgBD,wDAAe,IAAI,MAAnC,CAAjB;AAGA,MAAME,OAAO,GAAG,kCAAhB;AAGA,MAAMC,WAAW,GAAG;AAACC,EAAAA,MAAM,EAAE,eAAT;AAA0BC,EAAAA,KAAK,EAAE;AAAjC,CAApB;AAGA,MAAMC,YAAY,GAAGH,WAAW,CAACC,MAAjC;AAGA,MAAMG,eAAe,GAAG,IAAxB;AAGA,MAAMC,cAAc,GAAG,IAAE,IAAzB;AAEA,MAAMC,cAAc,GAAG,GAAvB;AAEA,MAAMC,UAAU,GAAG,IAAnB;AAGA,MAAMC,cAAc,GAAG,CAAvB;AAEA,MAAMC,cAAc,GAAG,EAAvB;AAEA,MAAMC,aAAa,GAAG,EAAtB;AAGA,MAAMC,uBAAuB,GAAG,OAAhC;AAEA,MAAMC,mBAAmB,GAAG,SAA5B;AAEA,MAAMC,mBAAmB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EA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iDAAiD,aAAa;;AAE9D,CAAC;;;;;;;;;;;;AC3TD;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAoE;AACuB;AAClC;AACV;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB,GAAG,gBAAgB;AAC7D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oDAAM;;AAEzB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gBAAgB,sCAAsC,SAAS;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,cAAc;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA,8DAA8D,SAAS;AACvE,iEAAiE,SAAS;AAC1E,6DAA6D,SAAS;AACtE,oEAAoE,SAAS;AAC7E;AACA;AACA;AACA,0BAA0B,wDAAY;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,uCAAuC;AACvC;AACA;AACA;AACA;AACA,wCAAwC,0DAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,qBAAqB;AAC/F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,sBAAsB;AACtB;AACA,mCAAmC,iEAAiE;AACpG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,YAAY,yDAAS;AACrB,YAAY,yDAAS;AACrB;AACA;AACA;AACA,8EAA8E,eAAe;AAC7F;AACA;AACA,0BAA0B,mEAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iCAAiC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,eAAe;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ,kBAAkB,QAAQ;AAC7E;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA,2BAA2B,0DAAS,IAAI,QAAQ,oBAAoB,kBAAkB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mEAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAa;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE2R;AAC3R;;;;;;;;;;;;;;;;;;;ACjlB0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oDAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB,eAAe,UAAU;AAC1F;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,wCAAwC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,gBAAgB,eAAe;AAC/B;AACA;AACA,2BAA2B,UAAU,GAAG,qBAAqB;AAC7D;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB,mCAAmC,UAAU;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmD;AACnD;;;;;;;;;;;;;;;;;;;;;;;;ACxZ0F;AAC1C;AACa;AAChC;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA,gDAAgD;AAChD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,WAAW;AAClH;AACA;AACA,+CAA+C,cAAc,4BAA4B,cAAc,cAAc,GAAG,eAAe;AACvI;AACA;AACA;AACA,0BAA0B,wDAAY;AACtC;AACA;AACA,6BAA6B,yDAAa;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;AAC/C,cAAc,sBAAsB,YAAY,UAAU;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,yCAAyC,cAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB,EAAE,aAAa;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,KAAK;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,GAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kBAAkB,GAAG,gBAAgB;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2CAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mCAAmC;AAC7E;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,KAAK;AACxD,cAAc,oCAAoC,GAAG,IAAI;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,eAAe,aAAa,sCAAsC;AACnH;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uEAAuE,wBAAwB,WAAW;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,wBAAwB,aAAa,sCAAsC;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe,gCAAgC;AACxF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yCAAyC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,KAAK;AAC7C,cAAc,oCAAoC,GAAG,IAAI;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD,IAAI,iCAAiC;AACrC,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA,gCAAgC,qDAAM;AACtC,8BAA8B,2DAAY;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2DAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,iEAAkB,KAAK,0DAAS;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8DAAe;AACf;AACA,8DAAe;;AAE+D;AAC9E;;;;;;;;;;;;;;;;;;;ACjnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,KAAK,cAAc;AACnD;AACA;AACA,sFAAsF,QAAQ;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAE4D;AAC5D;;;;;;;;;;;;;;;;;;;;;;;;;AC1NiC;AACe;AACT;AAC+F;AAC5C;;AAE1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;;AAEvC;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2CAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,UAAU,6CAAQ;AAClB,UAAU,6CAAQ;AAClB,UAAU,6CAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2CAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,WAAW;AAClH;AACA;AACA;AACA;AACA;AACA;AACA,sIAAsI,qBAAqB;AAC3J,qHAAqH,WAAW;AAChI;AACA;AACA,yBAAyB,WAAW;AACpC,8GAA8G,WAAW;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wDAAY;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAA4C,GAAG,mBAAmB;AAC1G;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAA4C,GAAG,MAAM;AAC7F;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,WAAW;AAClC,cAAc,SAAS,YAAY,UAAU;AAC7C;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAU;AAC/D,KAAK;AACL;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mBAAmB,6CAA6C;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,8DAAe;AACnB;AACA,IAAI,8DAAe;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yEAAyB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAoB;AAC5B,QAAQ,iEAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qDAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,WAAW,2DAAY,CAAC,kEAAkB;AAC1C;AACA;AACA,mBAAmB,iBAAiB;AACpC,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;AACA;AACA,wDAAwD,iBAAiB;AACzE,QAAQ,iBAAiB;AACzB;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEoH;AACpH;;;;;;;;;;;;;;;;;;UCtsCA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;;ACHA;AACA;AAEA;AAEA;AACA;AACA;AAIA,MAAM;AAAE/6B,EAAAA;AAAF,IAAaJ,uEAAA,CAA4BpG,MAAM,CAAC+E,QAAP,CAAgBuB,IAA5C,CAAnB;AACA,MAAMyB,QAAQ,GAAIvB,MAAM,IAAIA,MAAM,CAACm7C,EAAlB,IACd95C,SAAS,CAAC+5C,SAAV,IAAuB/5C,SAAS,CAAC+5C,SAAV,CAAoB,CAApB,CADT,IAEf/5C,SAAS,CAACE,QAFK,IAGfF,SAAS,CAACC,YAHK,IAIf,IAJF;AAOA,MAAM+5C,YAAY,GAAG95C,QAAQ,CAACunC,WAAT,GAAuBlyC,KAAvB,CAA6B,MAA7B,EAAqC,CAArC,CAArB;AAGA,MAAM0kD,QAAQ,GAAGJ,2CAAW,CAAC35C,QAAD,CAAX,GAAwBA,QAAxB,GAAmC25C,2CAAW,CAACG,YAAD,CAAX,GAA4BA,YAA5B,GAA2C,IAA/F;AACA,MAAM7gD,QAAQ,GAAG0gD,2CAAW,CAACI,QAAD,CAA5B;AAGAnmD,QAAQ,CAAC4O,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,EAAyCw3C,YAAzC,CAAsD,MAAtD,EAA8DD,QAA9D;AAEAN,uDAAA,CACE,2DAAC,yDAAD,QACE,2DAAC,oDAAD;AAAc,QAAM,EAAEz5C,QAAtB;AAAgC,UAAQ,EAAE/G,QAA1C;AAAoD,eAAa,EAAEX,uDAAcoD;AAAjF,GACE,2DAAC,6DAAD,OADF,CADF,CADF,EAME9H,QAAQ,CAAC0O,cAAT,CAAwB,YAAxB,CANF,E","sources":["webpack://tinode-webapp/./node_modules/@firebase/util/dist/index.esm2017.js","webpack://tinode-webapp/./src/config.js","webpack://tinode-webapp/./src/lib/blob-helpers.js","webpack://tinode-webapp/./src/lib/formatters.js","webpack://tinode-webapp/./src/lib/host-name.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/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/account-settings-view.jsx","webpack://tinode-webapp/./src/views/contacts-view.jsx","webpack://tinode-webapp/./src/views/create-account-view.jsx","webpack://tinode-webapp/./src/views/info-view.jsx","webpack://tinode-webapp/./src/views/login-view.jsx","webpack://tinode-webapp/./src/views/logo-view.jsx","webpack://tinode-webapp/./src/views/messages-view.jsx","webpack://tinode-webapp/./src/views/new-topic-view.jsx","webpack://tinode-webapp/./src/views/password-reset-view.jsx","webpack://tinode-webapp/./src/views/settings-view.jsx","webpack://tinode-webapp/./src/views/sidepanel-view.jsx","webpack://tinode-webapp/./src/views/tinode-web.jsx","webpack://tinode-webapp/./src/views/validation-view.jsx","webpack://tinode-webapp/./src/widgets/alert.jsx","webpack://tinode-webapp/./src/widgets/attachment.jsx","webpack://tinode-webapp/./src/widgets/audio-player.jsx","webpack://tinode-webapp/./src/widgets/audio-recorder.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/button-back.jsx","webpack://tinode-webapp/./src/widgets/chat-message.jsx","webpack://tinode-webapp/./src/widgets/checkbox.jsx","webpack://tinode-webapp/./src/widgets/chip-input.jsx","webpack://tinode-webapp/./src/widgets/chip.jsx","webpack://tinode-webapp/./src/widgets/contact-action.jsx","webpack://tinode-webapp/./src/widgets/contact-badges.jsx","webpack://tinode-webapp/./src/widgets/contact-list.jsx","webpack://tinode-webapp/./src/widgets/contact.jsx","webpack://tinode-webapp/./src/widgets/context-menu.jsx","webpack://tinode-webapp/./src/widgets/cropper.jsx","webpack://tinode-webapp/./src/widgets/doc-preview.jsx","webpack://tinode-webapp/./src/widgets/error-panel.jsx","webpack://tinode-webapp/./src/widgets/file-progress.jsx","webpack://tinode-webapp/./src/widgets/forward-dialog.jsx","webpack://tinode-webapp/./src/widgets/group-manager.jsx","webpack://tinode-webapp/./src/widgets/group-subs.jsx","webpack://tinode-webapp/./src/widgets/host-selector.jsx","webpack://tinode-webapp/./src/widgets/image-preview.jsx","webpack://tinode-webapp/./src/widgets/in-place-edit.jsx","webpack://tinode-webapp/./src/widgets/invitation.jsx","webpack://tinode-webapp/./src/widgets/lazy-image.jsx","webpack://tinode-webapp/./src/widgets/letter-tile.jsx","webpack://tinode-webapp/./src/widgets/load-spinner.jsx","webpack://tinode-webapp/./src/widgets/menu-cancel.jsx","webpack://tinode-webapp/./src/widgets/menu-contacts.jsx","webpack://tinode-webapp/./src/widgets/menu-start.jsx","webpack://tinode-webapp/./src/widgets/meta-message.jsx","webpack://tinode-webapp/./src/widgets/new-topic-by-id.jsx","webpack://tinode-webapp/./src/widgets/new-topic-group.jsx","webpack://tinode-webapp/./src/widgets/permissions-editor.jsx","webpack://tinode-webapp/./src/widgets/received-marker.jsx","webpack://tinode-webapp/./src/widgets/search-contacts.jsx","webpack://tinode-webapp/./src/widgets/send-message.jsx","webpack://tinode-webapp/./src/widgets/side-navbar.jsx","webpack://tinode-webapp/./src/widgets/tag-manager.jsx","webpack://tinode-webapp/./src/widgets/topic-common.jsx","webpack://tinode-webapp/./src/widgets/topic-desc-edit.jsx","webpack://tinode-webapp/./src/widgets/topic-security.jsx","webpack://tinode-webapp/./src/widgets/unread-badge.jsx","webpack://tinode-webapp/./src/widgets/uploading-image.jsx","webpack://tinode-webapp/./src/widgets/visible-password.jsx","webpack://tinode-webapp/./node_modules/firebase/app/dist/index.esm.js","webpack://tinode-webapp/./node_modules/firebase/messaging/dist/index.esm.js","webpack://tinode-webapp/./node_modules/idb/build/idb.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/./node_modules/@firebase/app/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/component/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/installations/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/logger/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/messaging/dist/esm/index.esm2017.js","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/global","webpack://tinode-webapp/webpack/runtime/hasOwnProperty shorthand","webpack://tinode-webapp/webpack/runtime/make namespace object","webpack://tinode-webapp/./src/index.js"],"sourcesContent":["/**\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 Error();\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 * 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 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 promiseified 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.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\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 */\r\nfunction isBrowser() {\r\n return typeof self === 'object' && self.self === self;\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.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 return typeof indexedDB === 'object';\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}\r\n/**\r\n * Polyfill for `globalThis` object.\r\n * @returns the `globalThis` object for the given environment.\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 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.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 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 sychronously 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 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, 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, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, issuedAtTime, jsonEval, map, ordinal, querystring, querystringDecode, safeGet, stringLength, stringToByteArray, stringify, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };\n//# sourceMappingURL=index.esm2017.js.map\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.17');\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*1000;\n// Delay before sending a {note} for reciving a message, milliseconds.\nexport const RECEIVED_DELAY = 500;\n// Delay before sending a read notification, milliseconds.\nexport const READ_DELAY = 1000;\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// 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 = 262144;\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 image thumbnail: shrink image under this size for thumbnails in reply quote previews.\nexport const IMAGE_THUMBNAIL_DIM = 36;\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\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\n// Link for \"Contact Us\".\nexport const LINK_CONTACT_US = 'email: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","// 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 = (err) => {\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 = (evt) => {\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 (!Array.isArray(items)) {\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","import React from 'react';\nimport { defineMessages } from 'react-intl';\n\nimport { Drafty } from 'tinode-sdk';\n\nimport AudioPlayer from '../widgets/audio-player.jsx'\nimport LazyImage from '../widgets/lazy-image.jsx'\nimport UploadingImage from '../widgets/uploading-image.jsx'\n\nimport { IMAGE_THUMBNAIL_DIM, BROKEN_IMAGE_SIZE, REM_SIZE } from '../config.js';\nimport { base64ToBlob, blobToBase64, fitImageSize, imageScaled } from './blob-helpers.js';\nimport { idToColorClass, secondsToTime, shortenFileName } from './strformat.js';\nimport { cancelablePromise, 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_unknown: {\n id: 'drafty_unknown',\n defaultMessage: 'Unsupported',\n description: 'Unsupported entity in drafty'\n }\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 = 'img/broken_image.png';\n }\n } else {\n // Use custom element instead of .\n el = UploadingImage;\n }\n\n return el;\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: this.props.viewportWidth;\n// authorizeURL: this.props.tinode.authorizeURL\n// onImagePreview: this.handleImagePreview\n// onFormButtonClick: this.handleFormButtonClick\n// onQuoteClick: this.handleQuoteClick (optional)\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 '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 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// 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 'QQ':\n case 'HD':\n el = null;\n values = null;\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 }\n attr.title = attr.alt;\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'].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 '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 quoteImage(data) {\n let promise;\n // Get the blob from the image data.\n if (data.val) {\n const blob = base64ToBlob(data.val, data.mime);\n if (!blob) {\n throw new Error(\"Invalid image\");\n }\n promise = Promise.resolve(blob);\n } else if (data.ref) {\n promise = fetch(this.authorizeURL(sanitizeUrlForMime(data.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 // Cut the square from the center of the image and shrink it.\n return imageScaled(blob, IMAGE_THUMBNAIL_DIM, IMAGE_THUMBNAIL_DIM, -1, true)\n }).then(scaled => {\n data.mime = scaled.mime;\n data.size = scaled.blob.size;\n data.width = scaled.width;\n data.height = scaled.height;\n delete data.ref;\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 data.val = b64.bits;\n return data;\n }).catch(err => {\n delete data.val;\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') {\n const attr = inlineImageAttr.call(this, {key: key}, data);\n let loadedPromise;\n try {\n loadedPromise = cancelablePromise(quoteImage.call(this, data));\n } catch (error) {\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","import { KNOWN_HOSTS, DEFAULT_HOST } from '../config.js';\n\n// Detect server address from the URL\nexport function detectServerAddress() {\n let host = DEFAULT_HOST;\n if (typeof window.location == 'object') {\n if (window.location.protocol == 'file:' || window.location.hostname == 'localhost') {\n host = KNOWN_HOSTS.local;\n } else if (window.location.hostname) {\n host = window.location.hostname + (window.location.port ? ':' + window.location.port : '');\n }\n }\n return host;\n}\n\n// Detect if the page is served over HTTPS.\nexport function isSecureConnection() {\n if (typeof window.location == 'object') {\n return window.location.protocol == 'https:';\n }\n return false;\n}\n\nexport function isLocalHost() {\n if (typeof window.location == 'object') {\n return window.location.hostname == 'localhost';\n }\n return false;\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\n// Parse hash as in http://www.example.com/path#hash as if it were\n// path and arguments.\nexport default class HashNavigation {\n static parseUrlHash(hash) {\n // Split path from 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(function(part) {\n const item = part.split('=');\n if (item[0]) {\n params[decodeURIComponent(item[0])] = decodeURIComponent(item[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 args.push(key + '=' + params[key]);\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 = this.parseUrlHash(hash);\n parsed.params[key] = value;\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static removeUrlParam(hash, key) {\n const parsed = this.parseUrlHash(hash);\n delete parsed.params[key];\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlSidePanel(hash, sidepanel) {\n const parsed = this.parseUrlHash(hash);\n parsed.path[0] = sidepanel;\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlInfoPanel(hash, infopanel) {\n const parsed = this.parseUrlHash(hash);\n if (infopanel) {\n parsed.params.info = infopanel;\n } else {\n delete parsed.params.info;\n }\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlTopic(hash, topic) {\n const parsed = this.parseUrlHash(hash);\n parsed.path[1] = topic;\n // Close InfoView on topic change.\n delete parsed.params.info;\n return this.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// Convert seconds to minutes:seconds, i.e. 156 sec -> 2:36.\n// If fixedMins is true, then minutes are represented by at least two digits.\nexport function secondsToTime(seconds, fixedMin) {\n let min = Math.floor(seconds / 60) | 0;\n if (fixedMin) {\n min = min < 10 ? `0${min}` : min;\n }\n let sec = (seconds % 60) | 0;\n sec = sec < 10 ? `0${sec}` : sec;\n return `${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","// 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// ' ↲ https://example.com' - not ok. (↲ means carriage return)\nexport function isUrlRelative(url) {\n return url && !/^\\s*([a-z][a-z0-9+.-]*:|\\/\\/)/im.test(url);\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(/[^\\x20-\\x7E]/gmi, '').trim();\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// 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 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","// This is a generated file. Don't edit.\n\nexport const PACKAGE_VERSION = \"0.19.0-alpha1\";\n","// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport CheckBox from '../widgets/checkbox.jsx';\n\nexport default class EditAccountView extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleCheckboxClick = this.handleCheckboxClick.bind(this);\n }\n\n handleCheckboxClick(what, checked) {\n if (what == 'sound') {\n this.props.onToggleMessageSounds(checked);\n } else if (what == 'alert') {\n this.props.onTogglePushNotifications(checked);\n } else if (what == 'incognito') {\n this.props.onToggleIncognitoMode(checked);\n }\n }\n\n render() {\n return (\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n );\n }\n};\n","// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport InPlaceEdit from '../widgets/in-place-edit.jsx';\nimport PermissionsEditor from '../widgets/permissions-editor.jsx';\n\nconst messages = defineMessages({\n delete_account: {\n id: 'delete_account',\n defaultMessage: 'Delete account',\n description: 'Title for delete account warning'\n },\n delete_account_warning: {\n id: 'delete_account_warning',\n defaultMessage: 'Are you sure you want to delete your account? It cannot be undone.',\n description: 'Warning message when deleting an account'\n }\n});\n\nclass AccSecurityView extends React.Component {\n constructor(props) {\n super(props);\n\n const me = this.props.tinode.getMeTopic();\n let blockedCount = 0;\n me.contacts((c) => {\n if (c.acs && !c.acs.isJoiner()) {\n blockedCount ++;\n }\n });\n const defacs = me.getDefaultAccess();\n this.state = {\n auth: defacs ? defacs.auth : null,\n anon: defacs ? defacs.anon : null,\n showPermissionEditorFor: undefined,\n blockedCount: blockedCount,\n };\n\n this.handlePasswordUpdate = this.handlePasswordUpdate.bind(this);\n this.handleLaunchPermissionsEditor = this.handleLaunchPermissionsEditor.bind(this);\n this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this);\n this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this);\n this.handleDeleteAccount = this.handleDeleteAccount.bind(this);\n }\n\n handlePasswordUpdate(pwd) {\n this.setState({password: pwd});\n this.props.onUpdatePassword(pwd);\n }\n\n handleLaunchPermissionsEditor(which) {\n this.setState({\n showPermissionEditorFor: which,\n editedPermissions: this.state[which]\n });\n }\n\n handleHidePermissionsEditor() {\n this.setState({showPermissionEditorFor: undefined});\n }\n\n handlePermissionsChanged(perm) {\n let defacs = {};\n defacs[this.state.showPermissionEditorFor] = perm;\n this.props.onUpdateAccountDesc('me', undefined, undefined, defacs);\n\n let newState = {showPermissionEditorFor: undefined};\n newState[this.state.showPermissionEditorFor] = perm;\n this.setState(newState);\n }\n\n handleDeleteAccount(e) {\n e.preventDefault();\n const {formatMessage} = this.props.intl;\n this.props.onShowAlert(\n formatMessage(messages.delete_account), // title\n formatMessage(messages.delete_account_warning), // content\n (() => { this.props.onDeleteAccount(); }), // onConfirm\n null, // use default text \"OK\"\n true, // Show Reject button\n null // use default text \"Cancel\"\n );\n }\n\n render() {\n return (\n <>{this.state.showPermissionEditorFor ?\n \n :\n
\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","// 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\nexport default injectIntl(Contact);\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 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(message.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 '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 (() => {\n return this.topicPermissionSetter('-JP', params, errorHandler).then((ctrl) => {\n this.props.onTopicRemoved(params.topicName);\n return ctrl;\n });\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 // Can't cancel. Delete instead.\n const promise = all ?\n topic.delMessagesAll(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) => {\n errorHandler(err.message, 'err');\n });\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 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","// Image zoom and crop widget.\n\nimport React from 'react';\n\nconst DEFAULT_MAX_ZOOM = 2.5;\n\nexport default class Cropper extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n // Coordinates of the top left corner of the image in container coordinates.\n panX: 0,\n panY: 0,\n // Origin of the zoom in image coordinates.\n originX: 0,\n originY: 0,\n // Zoom scale.\n zoom: 1,\n // Zoom min and max.\n minZoom: 0,\n maxZoom: DEFAULT_MAX_ZOOM,\n };\n\n // References to DOM elements for hooking up events and getting screen dimensions.\n // The transparent element which captures mouse moves (moves with the image).\n this.overlay = React.createRef();\n // The image cutout window or view port (static).\n this.cutout = React.createRef();\n // Scaled and translated image preview.\n this.preview = React.createRef();\n // The main container (static).\n this.boundingBox = React.createRef();\n\n // The original image width and height before any scaling.\n this.imageWidth = 0;\n this.imageHeight = 0;\n\n // Mouse position when dragging.\n this.mouseX = 0\n this.mouseY = 0;\n // Length of the previous mouse move when dragging.\n this.prevDistance = 0;\n\n // Bounding rectangles of static elements.\n this.cutoutRect = {};\n this.bBoxRect = {};\n // Center of the bounding box.\n this.originX = 0;\n this.originY = 0;\n\n this.initScaling = this.initScaling.bind(this);\n this.onZoom = this.onZoom.bind(this);\n this.handleZoom = this.handleZoom.bind(this);\n this.mouseDown = this.mouseDown.bind(this);\n this.mouseUp = this.mouseUp.bind(this);\n this.mouseMove = this.mouseMove.bind(this);\n this.mouseTouch = this.mouseTouch.bind(this);\n this.positionAll = this.positionAll.bind(this);\n this.translate = this.translate.bind(this);\n }\n\n componentDidMount() {\n this.overlay.current.addEventListener('mousedown', this.mouseDown, { passive: true });\n this.overlay.current.addEventListener('touchstart', this.mouseDown, { passive: true });\n\n // The rectangle position is in viewport coordinates.\n this.bBoxRect = this.boundingBox.current.getBoundingClientRect();\n // Center of the bounding box in container coordinates.\n this.originX = this.bBoxRect.width / 2;\n this.originY = this.bBoxRect.height / 2;\n\n // The rectangle position is in viewport coordinates.\n this.cutoutRect = this.cutout.current.getBoundingClientRect();\n }\n\n componentWillUnmount() {\n this.overlay.current.removeEventListener('mousedown', this.mouseDown);\n this.overlay.current.removeEventListener('touchstart', this.mouseDown);\n }\n\n // Position all elements.\n positionAll(panX, panY, zoom) {\n // Zoom origin in image preview coordinates.\n this.setState({\n panX: panX,\n panY: panY,\n zoom: zoom,\n originX: this.originX - panX,\n originY: this.originY - panY,\n });\n\n // Pass cut out coordinates to caller.\n const left = (this.originX - panX) * zoom - this.originX;\n const top = (this.originY - panY) * zoom - this.originY;\n this.props.onChange(\n (left + this.cutoutRect.left - this.bBoxRect.left) / zoom,\n (top + this.cutoutRect.top - this.bBoxRect.top) / zoom,\n this.cutoutRect.width / zoom,\n this.cutoutRect.height / zoom,\n zoom);\n }\n\n // Check if new location is within the limits.\n static checkBound(currPan, img, cutout, delta) {\n let nextDiff = Math.min(0, cutout[0] - img[0] - delta, img[1] - cutout[1] + delta);\n if (nextDiff == 0) {\n // Cutout is completely within the image.\n currPan += delta;\n } else if (Math.min(0, cutout[0] - img[0], img[1] - cutout[1]) < nextDiff) {\n // Cutout is outside of the range but closer to the bound.\n currPan += delta;\n }\n return currPan;\n }\n\n initScaling() {\n // Initialize components.\n const imgRect = this.preview.current.getBoundingClientRect();\n\n this.imageWidth = imgRect.width;\n this.imageHeight = imgRect.height;\n\n // Set zoom slider's min and max values. Make sure the scaled image cannot be smaller than the cutout.\n const minZoom = Math.max(this.cutoutRect.width / imgRect.width, this.cutoutRect.height / imgRect.height);\n this.setState({\n minZoom: minZoom,\n maxZoom: Math.max(DEFAULT_MAX_ZOOM, minZoom + 1)\n });\n\n // Initial zoom level fills the bounding box at the smallest image dimension and overflows the largest, i.e. \"fill\" not \"fit\".\n const zoom = Math.max(this.bBoxRect.width / imgRect.width, this.bBoxRect.height / imgRect.height);\n // Converting from viewport coordinates to container, then panning.\n const panX = this.cutoutRect.left - this.bBoxRect.left -\n (imgRect.width - this.cutoutRect.width) / 2;\n const panY = this.cutoutRect.top - this.bBoxRect.top -\n (imgRect.height - this.cutoutRect.height) / 2;\n\n this.positionAll(panX, panY, zoom);\n }\n\n onZoom(e) {\n this.handleZoom(e.target.value);\n }\n\n handleZoom(zoom) {\n let panX = this.state.panX;\n let panY = this.state.panY;\n\n // Ensure that the image at the new zoom is not outside of the cutout boundaries.\n // Calculate image coordinates at the new zoom.\n const imgLeft = this.originX - (this.originX - panX) * zoom;\n const imgRight = imgLeft + this.imageWidth * zoom;\n // Cutout in the same coordinates as the image.\n const coLeft = this.cutoutRect.left - this.bBoxRect.left;\n const coRight = coLeft + this.cutoutRect.width;\n if (coLeft < imgLeft) {\n panX -= imgLeft - coLeft;\n } else if (coRight > imgRight) {\n panX += coRight - imgRight;\n }\n const imgTop = this.originY - (this.originY - panY) * zoom;\n const imgBottom = imgTop + this.imageHeight * zoom;\n const coTop = this.cutoutRect.top - this.bBoxRect.top;\n const coBottom = coTop + this.cutoutRect.height;\n if (coTop < imgTop) {\n panY -= imgTop - coTop;\n } else if (coBottom > imgBottom) {\n panY += coBottom - imgBottom;\n }\n\n this.positionAll(panX, panY, zoom);\n }\n\n mouseDown(e) {\n if (e.touches) {\n this.mouseX = e.touches[0].pageX;\n this.mouseY = e.touches[0].pageY;\n } else {\n this.mouseX = e.pageX;\n this.mouseY = e.pageY;\n }\n\n window.addEventListener('mousemove', this.mouseMove, { passive: false });\n window.addEventListener('touchmove', this.mouseTouch, { passive: false });\n window.addEventListener('mouseup', this.mouseUp, { passive: true });\n window.addEventListener('touchend', this.mouseUp, { passive: true });\n // Disable text selection in the entire document.\n document.body.style['userSelect'] = 'none';\n }\n\n // Perform image panning.\n translate(pageX, pageY) {\n const dX = pageX - this.mouseX;\n const dY = pageY - this.mouseY;\n\n this.mouseX = pageX;\n this.mouseY = pageY;\n\n // Make sure the image is within the cutout window.\n const imgRect = this.preview.current.getBoundingClientRect();\n\n // Check if the new position is within the boundaries, and if not if it's closer to them.\n let panX = Cropper.checkBound(this.state.panX, [imgRect.left, imgRect.right],\n [this.cutoutRect.left, this.cutoutRect.right], dX);\n let panY = Cropper.checkBound(this.state.panY, [imgRect.top, imgRect.bottom],\n [this.cutoutRect.top, this.cutoutRect.bottom], dY);\n\n this.positionAll(panX, panY, this.state.zoom);\n }\n\n // Image panning.\n mouseMove(e) {\n e.preventDefault();\n this.translate(e.pageX, e.pageY);\n }\n\n mouseTouch(e) {\n e.preventDefault();\n\n if (e.touches.length == 1) {\n this.translate(e.touches[0].pageX, e.touches[0].pageY);\n return;\n }\n\n // Image zooming by pinching.\n const [touch0, touch1] = e.touches;\n const distance = Math.sqrt((touch0.pageX - touch1.pageX) * (touch0.pageX - touch1.pageX) +\n (touch0.pageY - touch1.pageY) * (touch0.pageY - touch1.pageY));\n\n if (!this.prevDistance) {\n this.prevDistance = distance / this.state.zoom;\n }\n\n let scale = (distance / this.prevDistance);\n this.handleZoom(Math.max(this.minZoom, Math.min(this.maxZoom, scale)));\n }\n\n mouseUp(e) {\n window.removeEventListener('mousemove', this.mouseMove);\n window.removeEventListener('touchmove', this.mouseTouch);\n window.removeEventListener('mouseup', this.mouseUp);\n window.removeEventListener('touchend', this.mouseUp);\n // Re-enable text selection.\n document.body.style['userSelect'] = '';\n\n this.positionAll(this.state.panX, this.state.panY, this.state.zoom);\n }\n\n render() {\n // transform3d: position and scale.\n const t3d = `translate3d(${this.state.panX}px, ${this.state.panY}px, 0) scale(${this.state.zoom})`;\n // transformOrigin: zoom origin.\n const orig = `${this.state.originX}px ${this.state.originY}px`;\n\n // Overlay position and size are exactly equal to the position and size of the transformed image\n // except it uses different coordinates.\n const overlay = {\n top: `${this.originY - this.state.originY * this.state.zoom}px`,\n left: `${this.originX - this.state.originX * this.state.zoom}px`,\n width: `${this.imageWidth * this.state.zoom}px`,\n height: `${this.imageHeight * this.state.zoom}px`\n };\n return (\n
\n
\n \n \n \n
\n
\n \n
\n
\n );\n }\n}\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport SendMessage from '../widgets/send-message.jsx';\n\nimport { bytesToHumanSize, shortenFileName } from '../lib/strformat.js';\n\n// Get material icon name from mime type.\nfunction iconFromMime(mime) {\n // If more icons become available in material icons, add them to this mime-to-icon mapping.\n const mimeToIcon = {default: 'insert_drive_file', image: 'image', text: 'description', video: 'theaters'};\n\n return mimeToIcon[mime] || mimeToIcon[(mime || '').split('/')[0]] || mimeToIcon['default'];\n}\n\nexport default class DocPreview extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleSendDoc = this.handleSendDoc.bind(this);\n }\n\n handleSendDoc(caption) {\n this.props.onClose();\n this.props.onSendMessage(this.props.content.file);\n }\n\n render() {\n if (!this.props.content) {\n return null;\n }\n return (\n
\n );\n }\n}\n","// GroupMembers: control for managing a list of group members.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport ChipInput from './chip-input.jsx';\nimport ContactList from './contact-list.jsx';\n\nconst messages = defineMessages({\n no_contacts: {\n id: 'no_contacts',\n defaultMessage: 'You have no contacts :-(',\n description: 'Shown in ContactsView when the user has no contacts'\n },\n contacts_not_found_short: {\n id: 'contacts_not_found_short',\n defaultMessage: \"No contacts match ''{query}''\",\n description: 'Shown in ContactsView when search returned no results'\n }\n});\n\nclass GroupManager extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n // Array of topic members\n members: props.members,\n index: GroupManager.indexMembers(props.members),\n staticMembers: GroupManager.staticMembers(props.members, props.keepInitialMembers, props.requiredMember),\n contactFilter: '',\n noContactsMessage: props.intl.formatMessage(messages.no_contacts),\n selectedContacts: GroupManager.selectedContacts(props.members)\n };\n\n this.handleContactSelected = this.handleContactSelected.bind(this);\n this.handleMemberRemoved = this.handleMemberRemoved.bind(this);\n this.handleContactFilter = this.handleContactFilter.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n }\n\n static indexMembers(members) {\n let index = {};\n members.map((m) => {\n index[m.user] = {delta: 0, present: true}; // Delta: 0 unchanged, +1 added, -1 removed\n });\n return index;\n }\n\n static staticMembers(members, keepInitial, requiredMember) {\n let stat = [];\n members.map((m) => {\n if (keepInitial || m.user == requiredMember) {\n stat.push(m.user);\n }\n });\n return stat;\n }\n\n static selectedContacts(members) {\n let sel = [];\n members.map((m) => {\n sel.push(m.user);\n });\n return sel;\n }\n\n handleContactSelected(userId, index) {\n let status = this.state.index[userId];\n if (status) {\n if (status.present) {\n // Prevent duplicate members\n return;\n }\n status.delta += 1;\n status.present = true;\n } else {\n status = {delta: 1, present: true};\n }\n\n let m = this.state.members.slice();\n m.push(this.props.contacts[index]);\n\n const sel = GroupManager.selectedContacts(m);\n\n const i = this.state.index;\n i[userId] = status;\n\n this.setState({members: m, index: i, selectedContacts: sel});\n }\n\n handleMemberRemoved(userId, index) {\n const status = this.state.index[userId];\n if (!status || !status.present) {\n return;\n }\n status.present = false;\n status.delta -= 1;\n\n let m = this.state.members.slice();\n m.splice(index, 1);\n\n const sel = GroupManager.selectedContacts(m);\n\n const i = this.state.index;\n i[userId] = status;\n\n this.setState({members: m, index: i, selectedContacts: sel});\n }\n\n handleContactFilter(val) {\n const {formatMessage} = this.props.intl;\n const msg = !val ?\n formatMessage(messages.no_contacts) :\n formatMessage(messages.contacts_not_found_short, {query: val});\n\n this.setState({contactFilter: val, noContactsMessage: msg});\n }\n\n static doContactFiltering(filter, values) {\n if (filter) {\n for (let i=0; i= 0) {\n return true;\n }\n }\n return false;\n }\n return true;\n }\n\n handleSubmit() {\n var instance = this;\n var members = [];\n var added = [];\n var removed = [];\n\n var keys = Object.keys(this.state.index);\n keys.map(function(k) {\n if (instance.state.index[k].present) {\n members.push(k);\n }\n\n if (instance.state.index[k].delta > 0) {\n added.push(k);\n } else if (instance.state.index[k].delta < 0) {\n removed.push(k);\n }\n });\n this.props.onSubmit(members, added, removed);\n }\n\n handleCancel() {\n this.props.onCancel();\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n return (\n
\n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n \n \n
\n
\n );\n }\n};\n\nexport default injectIntl(GroupManager);\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
: null);\n }\n}\n","// The X menu to be displayed in title bars.\nimport React from 'react';\n\nexport default class MenuCancel extends React.PureComponent {\n render() {\n return (\n {e.preventDefault(); this.props.onCancel();}}>\n close\n \n );\n }\n}\n","import React from 'react';\n\nexport default class MenuContacts extends React.PureComponent {\n render() {\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';\nimport { FormattedMessage } from 'react-intl';\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.deleted) {\n // Message represents a range of deleted messages.\n content = <>block\n \n >\n bubbleClass += ' deleted';\n } else 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","import { registerVersion } from '@firebase/app';\nexport * from '@firebase/app';\n\nvar name = \"firebase\";\nvar version = \"9.6.7\";\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","export * from '@firebase/messaging';\n//# sourceMappingURL=index.esm.js.map\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.idb = {}));\n}(this, function (exports) { 'use strict';\n\n function toArray(arr) {\n return Array.prototype.slice.call(arr);\n }\n\n function promisifyRequest(request) {\n return new Promise(function(resolve, reject) {\n request.onsuccess = function() {\n resolve(request.result);\n };\n\n request.onerror = function() {\n reject(request.error);\n };\n });\n }\n\n function promisifyRequestCall(obj, method, args) {\n var request;\n var p = new Promise(function(resolve, reject) {\n request = obj[method].apply(obj, args);\n promisifyRequest(request).then(resolve, reject);\n });\n\n p.request = request;\n return p;\n }\n\n function promisifyCursorRequestCall(obj, method, args) {\n var p = promisifyRequestCall(obj, method, args);\n return p.then(function(value) {\n if (!value) return;\n return new Cursor(value, p.request);\n });\n }\n\n function proxyProperties(ProxyClass, targetProp, properties) {\n properties.forEach(function(prop) {\n Object.defineProperty(ProxyClass.prototype, prop, {\n get: function() {\n return this[targetProp][prop];\n },\n set: function(val) {\n this[targetProp][prop] = val;\n }\n });\n });\n }\n\n function proxyRequestMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function(prop) {\n if (!(prop in Constructor.prototype)) return;\n ProxyClass.prototype[prop] = function() {\n return promisifyRequestCall(this[targetProp], prop, arguments);\n };\n });\n }\n\n function proxyMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function(prop) {\n if (!(prop in Constructor.prototype)) return;\n ProxyClass.prototype[prop] = function() {\n return this[targetProp][prop].apply(this[targetProp], arguments);\n };\n });\n }\n\n function proxyCursorRequestMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function(prop) {\n if (!(prop in Constructor.prototype)) return;\n ProxyClass.prototype[prop] = function() {\n return promisifyCursorRequestCall(this[targetProp], prop, arguments);\n };\n });\n }\n\n function Index(index) {\n this._index = index;\n }\n\n proxyProperties(Index, '_index', [\n 'name',\n 'keyPath',\n 'multiEntry',\n 'unique'\n ]);\n\n proxyRequestMethods(Index, '_index', IDBIndex, [\n 'get',\n 'getKey',\n 'getAll',\n 'getAllKeys',\n 'count'\n ]);\n\n proxyCursorRequestMethods(Index, '_index', IDBIndex, [\n 'openCursor',\n 'openKeyCursor'\n ]);\n\n function Cursor(cursor, request) {\n this._cursor = cursor;\n this._request = request;\n }\n\n proxyProperties(Cursor, '_cursor', [\n 'direction',\n 'key',\n 'primaryKey',\n 'value'\n ]);\n\n proxyRequestMethods(Cursor, '_cursor', IDBCursor, [\n 'update',\n 'delete'\n ]);\n\n // proxy 'next' methods\n ['advance', 'continue', 'continuePrimaryKey'].forEach(function(methodName) {\n if (!(methodName in IDBCursor.prototype)) return;\n Cursor.prototype[methodName] = function() {\n var cursor = this;\n var args = arguments;\n return Promise.resolve().then(function() {\n cursor._cursor[methodName].apply(cursor._cursor, args);\n return promisifyRequest(cursor._request).then(function(value) {\n if (!value) return;\n return new Cursor(value, cursor._request);\n });\n });\n };\n });\n\n function ObjectStore(store) {\n this._store = store;\n }\n\n ObjectStore.prototype.createIndex = function() {\n return new Index(this._store.createIndex.apply(this._store, arguments));\n };\n\n ObjectStore.prototype.index = function() {\n return new Index(this._store.index.apply(this._store, arguments));\n };\n\n proxyProperties(ObjectStore, '_store', [\n 'name',\n 'keyPath',\n 'indexNames',\n 'autoIncrement'\n ]);\n\n proxyRequestMethods(ObjectStore, '_store', IDBObjectStore, [\n 'put',\n 'add',\n 'delete',\n 'clear',\n 'get',\n 'getAll',\n 'getKey',\n 'getAllKeys',\n 'count'\n ]);\n\n proxyCursorRequestMethods(ObjectStore, '_store', IDBObjectStore, [\n 'openCursor',\n 'openKeyCursor'\n ]);\n\n proxyMethods(ObjectStore, '_store', IDBObjectStore, [\n 'deleteIndex'\n ]);\n\n function Transaction(idbTransaction) {\n this._tx = idbTransaction;\n this.complete = new Promise(function(resolve, reject) {\n idbTransaction.oncomplete = function() {\n resolve();\n };\n idbTransaction.onerror = function() {\n reject(idbTransaction.error);\n };\n idbTransaction.onabort = function() {\n reject(idbTransaction.error);\n };\n });\n }\n\n Transaction.prototype.objectStore = function() {\n return new ObjectStore(this._tx.objectStore.apply(this._tx, arguments));\n };\n\n proxyProperties(Transaction, '_tx', [\n 'objectStoreNames',\n 'mode'\n ]);\n\n proxyMethods(Transaction, '_tx', IDBTransaction, [\n 'abort'\n ]);\n\n function UpgradeDB(db, oldVersion, transaction) {\n this._db = db;\n this.oldVersion = oldVersion;\n this.transaction = new Transaction(transaction);\n }\n\n UpgradeDB.prototype.createObjectStore = function() {\n return new ObjectStore(this._db.createObjectStore.apply(this._db, arguments));\n };\n\n proxyProperties(UpgradeDB, '_db', [\n 'name',\n 'version',\n 'objectStoreNames'\n ]);\n\n proxyMethods(UpgradeDB, '_db', IDBDatabase, [\n 'deleteObjectStore',\n 'close'\n ]);\n\n function DB(db) {\n this._db = db;\n }\n\n DB.prototype.transaction = function() {\n return new Transaction(this._db.transaction.apply(this._db, arguments));\n };\n\n proxyProperties(DB, '_db', [\n 'name',\n 'version',\n 'objectStoreNames'\n ]);\n\n proxyMethods(DB, '_db', IDBDatabase, [\n 'close'\n ]);\n\n // Add cursor iterators\n // TODO: remove this once browsers do the right thing with promises\n ['openCursor', 'openKeyCursor'].forEach(function(funcName) {\n [ObjectStore, Index].forEach(function(Constructor) {\n // Don't create iterateKeyCursor if openKeyCursor doesn't exist.\n if (!(funcName in Constructor.prototype)) return;\n\n Constructor.prototype[funcName.replace('open', 'iterate')] = function() {\n var args = toArray(arguments);\n var callback = args[args.length - 1];\n var nativeObject = this._store || this._index;\n var request = nativeObject[funcName].apply(nativeObject, args.slice(0, -1));\n request.onsuccess = function() {\n callback(request.result);\n };\n };\n });\n });\n\n // polyfill getAll\n [Index, ObjectStore].forEach(function(Constructor) {\n if (Constructor.prototype.getAll) return;\n Constructor.prototype.getAll = function(query, count) {\n var instance = this;\n var items = [];\n\n return new Promise(function(resolve) {\n instance.iterateCursor(query, function(cursor) {\n if (!cursor) {\n resolve(items);\n return;\n }\n items.push(cursor.value);\n\n if (count !== undefined && items.length == count) {\n resolve(items);\n return;\n }\n cursor.continue();\n });\n });\n };\n });\n\n function openDb(name, version, upgradeCallback) {\n var p = promisifyRequestCall(indexedDB, 'open', [name, version]);\n var request = p.request;\n\n if (request) {\n request.onupgradeneeded = function(event) {\n if (upgradeCallback) {\n upgradeCallback(new UpgradeDB(request.result, event.oldVersion, request.transaction));\n }\n };\n }\n\n return p.then(function(db) {\n return new DB(db);\n });\n }\n\n function deleteDb(name) {\n return promisifyRequestCall(indexedDB, 'deleteDatabase', [name]);\n }\n\n exports.openDb = openDb;\n exports.deleteDb = deleteDb;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","module.exports = React;","module.exports = ReactDOM;","module.exports = ReactIntl;","module.exports = Tinode;","import { Component, ComponentContainer } from '@firebase/component';\nimport { Logger, setUserLogHandler, setLogLevel as setLogLevel$1 } from '@firebase/logger';\nimport { ErrorFactory, deepEqual } from '@firebase/util';\nexport { FirebaseError } from '@firebase/util';\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\" /* VERSION */;\r\n}\n\nconst name$o = \"@firebase/app\";\nconst version$1 = \"0.7.17\";\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$n = \"@firebase/app-compat\";\n\nconst name$m = \"@firebase/analytics-compat\";\n\nconst name$l = \"@firebase/analytics\";\n\nconst name$k = \"@firebase/app-check-compat\";\n\nconst name$j = \"@firebase/app-check\";\n\nconst name$i = \"@firebase/auth\";\n\nconst name$h = \"@firebase/auth-compat\";\n\nconst name$g = \"@firebase/database\";\n\nconst name$f = \"@firebase/database-compat\";\n\nconst name$e = \"@firebase/functions\";\n\nconst name$d = \"@firebase/functions-compat\";\n\nconst name$c = \"@firebase/installations\";\n\nconst name$b = \"@firebase/installations-compat\";\n\nconst name$a = \"@firebase/messaging\";\n\nconst name$9 = \"@firebase/messaging-compat\";\n\nconst name$8 = \"@firebase/performance\";\n\nconst name$7 = \"@firebase/performance-compat\";\n\nconst name$6 = \"@firebase/remote-config\";\n\nconst name$5 = \"@firebase/remote-config-compat\";\n\nconst name$4 = \"@firebase/storage\";\n\nconst name$3 = \"@firebase/storage-compat\";\n\nconst name$2 = \"@firebase/firestore\";\n\nconst name$1 = \"@firebase/firestore-compat\";\n\nconst name = \"firebase\";\nconst version = \"9.6.7\";\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$o]: 'fire-core',\r\n [name$n]: 'fire-core-compat',\r\n [name$l]: 'fire-analytics',\r\n [name$m]: 'fire-analytics-compat',\r\n [name$j]: 'fire-app-check',\r\n [name$k]: 'fire-app-check-compat',\r\n [name$i]: 'fire-auth',\r\n [name$h]: 'fire-auth-compat',\r\n [name$g]: 'fire-rtdb',\r\n [name$f]: 'fire-rtdb-compat',\r\n [name$e]: 'fire-fn',\r\n [name$d]: 'fire-fn-compat',\r\n [name$c]: 'fire-iid',\r\n [name$b]: 'fire-iid-compat',\r\n [name$a]: 'fire-fcm',\r\n [name$9]: 'fire-fcm-compat',\r\n [name$8]: 'fire-perf',\r\n [name$7]: 'fire-perf-compat',\r\n [name$6]: 'fire-rc',\r\n [name$5]: 'fire-rc-compat',\r\n [name$4]: 'fire-gcs',\r\n [name$3]: 'fire-gcs-compat',\r\n [name$2]: 'fire-fst',\r\n [name$1]: 'fire-fst-compat',\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 * 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 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 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 * 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\" /* NO_APP */]: \"No Firebase App '{$appName}' has been created - \" +\r\n 'call Firebase App.initializeApp()',\r\n [\"bad-app-name\" /* BAD_APP_NAME */]: \"Illegal App name: '{$appName}\",\r\n [\"duplicate-app\" /* DUPLICATE_APP */]: \"Firebase App named '{$appName}' already exists with different options or config\",\r\n [\"app-deleted\" /* APP_DELETED */]: \"Firebase App named '{$appName}' already deleted\",\r\n [\"invalid-app-argument\" /* INVALID_APP_ARGUMENT */]: 'firebase.{$appName}() takes either no argument or a ' +\r\n 'Firebase App instance.',\r\n [\"invalid-log-argument\" /* INVALID_LOG_ARGUMENT */]: 'First argument to `onLog` must be null or a function.'\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\" /* 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\" /* APP_DELETED */, { appName: this._name });\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 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\" /* BAD_APP_NAME */, {\r\n appName: String(name)\r\n });\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\" /* 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\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) {\r\n throw ERROR_FACTORY.create(\"no-app\" /* 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 const name = app.name;\r\n if (_apps.has(name)) {\r\n _apps.delete(name);\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\" /* 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\" /* 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 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\" /* PRIVATE */));\r\n // Register `app` package.\r\n registerVersion(name$o, version$1, variant);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name$o, 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, _registerComponent, _removeServiceInstance, deleteApp, getApp, getApps, initializeApp, onLog, registerVersion, setLogLevel };\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\" /* 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 mulitple 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/can not 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\" /* 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\" /* 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","import { getApp, _getProvider, _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.5.5\";\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\" /* MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"not-registered\" /* NOT_REGISTERED */]: 'Firebase Installation is not registered.',\r\n [\"installation-not-found\" /* INSTALLATION_NOT_FOUND */]: 'Firebase Installation not found.',\r\n [\"request-failed\" /* REQUEST_FAILED */]: '{$requestName} request failed with error \"{$serverCode} {$serverStatus}: {$serverMessage}\"',\r\n [\"app-offline\" /* APP_OFFLINE */]: 'Could not process request. Application offline.',\r\n [\"delete-pending-registration\" /* 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\" /* 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 /* 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\" /* 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, { fid }) {\r\n const endpoint = getInstallationsEndpoint(appConfig);\r\n const headers = getHeaders(appConfig);\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 /* 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, upgradeDB => {\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 (upgradeDB.oldVersion) {\r\n case 0:\r\n upgradeDB.createObjectStore(OBJECT_STORE_NAME);\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.complete;\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.complete;\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.complete;\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(appConfig) {\r\n let registrationPromise;\r\n const installationEntry = await update(appConfig, oldEntry => {\r\n const installationEntry = updateOrCreateInstallationEntry(oldEntry);\r\n const entryWithPromise = triggerRegistrationIfNecessary(appConfig, 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 /* 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(appConfig, installationEntry) {\r\n if (installationEntry.registrationStatus === 0 /* 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\" /* 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 /* IN_PROGRESS */,\r\n registrationTime: Date.now()\r\n };\r\n const registrationPromise = registerInstallation(appConfig, inProgressEntry);\r\n return { installationEntry: inProgressEntry, registrationPromise };\r\n }\r\n else if (installationEntry.registrationStatus === 1 /* IN_PROGRESS */) {\r\n return {\r\n installationEntry,\r\n registrationPromise: waitUntilFidRegistration(appConfig)\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(appConfig, installationEntry) {\r\n try {\r\n const registeredInstallationEntry = await createInstallationRequest(appConfig, installationEntry);\r\n return set(appConfig, registeredInstallationEntry);\r\n }\r\n catch (e) {\r\n if (isServerError(e) && e.customData.serverCode === 409) {\r\n // Server returned a \"FID can not be used\" error.\r\n // Generate a new ID next time.\r\n await remove(appConfig);\r\n }\r\n else {\r\n // Registration failed. Set FID as not registered.\r\n await set(appConfig, {\r\n fid: installationEntry.fid,\r\n registrationStatus: 0 /* 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(appConfig) {\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(appConfig);\r\n while (entry.registrationStatus === 1 /* IN_PROGRESS */) {\r\n // createInstallation request still in progress.\r\n await sleep(100);\r\n entry = await updateInstallationRequest(appConfig);\r\n }\r\n if (entry.registrationStatus === 0 /* NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(appConfig);\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\" /* 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 /* NOT_STARTED */\r\n };\r\n }\r\n return entry;\r\n}\r\nfunction hasInstallationRequestTimedOut(installationEntry) {\r\n return (installationEntry.registrationStatus === 1 /* 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, platformLoggerProvider }, installationEntry) {\r\n const endpoint = getGenerateAuthTokenEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n // If platform logger exists, add the platform info string to the header.\r\n const platformLogger = platformLoggerProvider.getImmediate({\r\n optional: true\r\n });\r\n if (platformLogger) {\r\n headers.append('x-firebase-client', platformLogger.getPlatformInfoString());\r\n }\r\n const body = {\r\n installation: {\r\n sdkVersion: PACKAGE_VERSION\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\" /* 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 /* 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\" /* 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 /* 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 /* 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\" /* 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 /* 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 /* 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 /* COMPLETED */);\r\n}\r\nfunction isAuthTokenValid(authToken) {\r\n return (authToken.requestStatus === 2 /* 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 /* 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 /* 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.appConfig);\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.appConfig);\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(appConfig) {\r\n const { registrationPromise } = await getInstallationEntry(appConfig);\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 /* 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 /* IN_PROGRESS */) {\r\n // Can't delete while trying to register.\r\n throw ERROR_FACTORY.create(\"delete-pending-registration\" /* DELETE_PENDING_REGISTRATION */);\r\n }\r\n else if (entry.registrationStatus === 2 /* COMPLETED */) {\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* 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\" /* 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 platformLoggerProvider = _getProvider(app, 'platform-logger');\r\n const installationsImpl = {\r\n app,\r\n appConfig,\r\n platformLoggerProvider,\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\" /* PUBLIC */));\r\n _registerComponent(new Component(INSTALLATIONS_NAME_INTERNAL, internalFactory, \"PRIVATE\" /* PRIVATE */));\r\n}\n\n/**\r\n * Firebase Installations\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","/**\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","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, getApp, _getProvider } 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, async (db) => {\r\n var _a;\r\n if (db.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 = db.transaction.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 (db.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 (db.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 (db.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 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, upgradeDb => {\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 (upgradeDb.oldVersion) {\r\n case 0:\r\n upgradeDb.createObjectStore(OBJECT_STORE_NAME);\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.complete;\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.complete;\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\" /* MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"only-available-in-window\" /* AVAILABLE_IN_WINDOW */]: 'This method is available in a Window context.',\r\n [\"only-available-in-sw\" /* AVAILABLE_IN_SW */]: 'This method is available in a service worker context.',\r\n [\"permission-default\" /* PERMISSION_DEFAULT */]: 'The notification permission was not granted and dismissed instead.',\r\n [\"permission-blocked\" /* PERMISSION_BLOCKED */]: 'The notification permission was not granted and blocked instead.',\r\n [\"unsupported-browser\" /* UNSUPPORTED_BROWSER */]: \"This browser doesn't support the API's required to use the Firebase SDK.\",\r\n [\"indexed-db-unsupported\" /* INDEXED_DB_UNSUPPORTED */]: \"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)\",\r\n [\"failed-service-worker-registration\" /* FAILED_DEFAULT_REGISTRATION */]: 'We are unable to register the default service worker. {$browserErrorMessage}',\r\n [\"token-subscribe-failed\" /* TOKEN_SUBSCRIBE_FAILED */]: 'A problem occurred while subscribing the user to FCM: {$errorInfo}',\r\n [\"token-subscribe-no-token\" /* TOKEN_SUBSCRIBE_NO_TOKEN */]: 'FCM returned no token when subscribing the user to push.',\r\n [\"token-unsubscribe-failed\" /* TOKEN_UNSUBSCRIBE_FAILED */]: 'A problem occurred while unsubscribing the ' +\r\n 'user from FCM: {$errorInfo}',\r\n [\"token-update-failed\" /* TOKEN_UPDATE_FAILED */]: 'A problem occurred while updating the user from FCM: {$errorInfo}',\r\n [\"token-update-no-token\" /* TOKEN_UPDATE_NO_TOKEN */]: 'FCM returned no token when updating the user to push.',\r\n [\"use-sw-after-get-token\" /* 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\" /* INVALID_SW_REGISTRATION */]: 'The input to useServiceWorker() must be a ServiceWorkerRegistration.',\r\n [\"invalid-bg-handler\" /* INVALID_BG_HANDLER */]: 'The input to setBackgroundMessageHandler() must be a function.',\r\n [\"invalid-vapid-key\" /* INVALID_VAPID_KEY */]: 'The public VAPID key must be a string.',\r\n [\"use-vapid-key-after-get-token\" /* 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\" /* TOKEN_SUBSCRIBE_FAILED */, {\r\n errorInfo: err\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\" /* 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\" /* 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\" /* TOKEN_UPDATE_FAILED */, {\r\n errorInfo: err\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\" /* 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\" /* 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\" /* 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\" /* TOKEN_UNSUBSCRIBE_FAILED */, {\r\n errorInfo: err\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 await deleteTokenInternal(messaging);\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}\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 if (!messagePayloadInternal.fcmOptions) {\r\n return;\r\n }\r\n payload.fcmOptions = {};\r\n const link = messagePayloadInternal.fcmOptions.link;\r\n if (!!link) {\r\n payload.fcmOptions.link = link;\r\n }\r\n // eslint-disable-next-line camelcase\r\n const analyticsLabel = messagePayloadInternal.fcmOptions.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('hts/frbslgigp.ogepscmv/ieo/eaylg', 'tp:/ieaeogn-agolai.o/1frlglgc/o');\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\" /* 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\" /* FAILED_DEFAULT_REGISTRATION */, {\r\n browserErrorMessage: 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\" /* 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\" /* 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\" /* 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.9.8\";\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\" /* PUBLIC */));\r\n _registerComponent(new Component('messaging-internal', WindowMessagingInternalFactory, \"PRIVATE\" /* 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\" /* 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\" /* 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\" /* UNSUPPORTED_BROWSER */);\r\n }\r\n }, _ => {\r\n // If `isWindowSupported()` rejected.\r\n throw ERROR_FACTORY.create(\"indexed-db-unsupported\" /* 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 an 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 a 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 optinoal 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 * Firebase Cloud Messaging\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","// 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","// 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__.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};","// Put all packages together.\n// Used to generate umd/index.prod.js\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { IntlProvider } from 'react-intl';\n\nimport allMessages from './messages.json';\nimport TinodeWeb from './views/tinode-web.jsx';\nimport HashNavigation from './lib/navigation.js';\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// Get the base language 'en' from a more specific 'en_GB' or 'en-US' as a partial fallback.\nconst baseLanguage = language.toLowerCase().split(/[-_]/)[0];\n\n// Try the full locale first, then the locale without the region code, fallback to 'en'.\nconst htmlLang = allMessages[language] ? language : allMessages[baseLanguage] ? baseLanguage : 'en';\nconst messages = allMessages[htmlLang];\n\n// Set lang attribute of the HTML element: \ndocument.getElementsByTagName('html')[0].setAttribute('lang', htmlLang);\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('mountPoint')\n);\n"],"names":["PACKAGE_VERSION","APP_NAME","API_KEY","KNOWN_HOSTS","hosted","local","DEFAULT_HOST","LOGGING_ENABLED","KEYPRESS_DELAY","RECEIVED_DELAY","READ_DELAY","MIN_TAG_LENGTH","MAX_TAG_LENGTH","MAX_TAG_COUNT","DEFAULT_P2P_ACCESS_MODE","NEW_GRP_ACCESS_MODE","CHANNEL_ACCESS_MODE","NO_ACCESS_MODE","MEDIA_BREAKPOINT","REM_SIZE","AVATAR_SIZE","MAX_AVATAR_BYTES","BROKEN_IMAGE_SIZE","MESSAGES_PAGE","MAX_INBAND_ATTACHMENT_SIZE","MAX_EXTERN_ATTACHMENT_SIZE","MAX_IMAGE_DIM","IMAGE_PREVIEW_DIM","IMAGE_THUMBNAIL_DIM","MAX_ONLINE_IN_TOPIC","MAX_TITLE_LENGTH","MAX_TOPIC_DESCRIPTION_LENGTH","MESSAGE_PREVIEW_LENGTH","QUOTED_REPLY_LENGTH","FORWARDED_PREVIEW_LENGTH","LINK_CONTACT_US","LINK_PRIVACY_POLICY","LINK_TERMS_OF_SERVICE","SUPPORTED_IMAGE_FORMATS","MIME_EXTENSIONS","makeImageUrl","photo","ref","data","type","mime","startsWith","fitImageSize","width","height","maxWidth","maxHeight","forceSquare","Math","min","scale","size","dstWidth","dstHeight","srcWidth","srcHeight","xoffset","yoffset","fileNameForMime","fname","idx","indexOf","ext","at","lastIndexOf","substring","imageScaled","fileOrBlob","maxSize","Promise","resolve","reject","img","Image","crossOrigin","onerror","err","Error","onload","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","evt","error","bits","result","split","readAsDataURL","blobToBase64","_","filePasted","event","onImageSuccess","onAttachmentSuccess","onError","items","clipboardData","originalEvent","Array","isArray","i","item","kind","getAsFile","console","getMimeType","header","exec","base64EncodedLen","n","floor","base64DecodedLen","base64ReEncode","str","replace","btoa","atob","base64ToBlob","bin","buf","ArrayBuffer","arr","Uint8Array","charCodeAt","Blob","intArrayToBase64","forEach","b","String","fromCharCode","window","base64ToIntArray","b64","c","push","React","defineMessages","Drafty","AudioPlayer","LazyImage","UploadingImage","idToColorClass","secondsToTime","shortenFileName","cancelablePromise","sanitizeUrlForMime","messages","drafty_form","id","defaultMessage","drafty_attachment","drafty_image","drafty_unknown","handleImageData","el","attr","style","className","viewportWidth","minWidth","minHeight","isProcessing","authorizeURL","alt","max","onClick","onImagePreview","loading","fullFormatter","values","key","stack","quoteFormatter","call","tagName","attrValue","duration","undefined","preview","onFormButtonClick","inner","Children","map","child","join","val","onQuoteClick","Fragment","body","trim","formatMessage","concat","previewFormatter","inlineImageAttr","title","quoteImage","promise","fetch","then","ok","status","statusText","scaled","catch","replyFormatter","loadedPromise","whenDone","detectServerAddress","host","location","protocol","hostname","port","isSecureConnection","isLocalHost","LocalStorageUtil","setObject","value","localStorage","setItem","JSON","stringify","getObject","getItem","parse","updateObject","oldVal","Object","assign","removeItem","HashNavigation","parseUrlHash","hash","parts","params","path","part","decodeURIComponent","navigateTo","url","composeUrlHash","args","hasOwnProperty","addUrlParam","parsed","removeUrlParam","setUrlSidePanel","sidepanel","setUrlInfoPanel","infopanel","info","setUrlTopic","topic","shortDateFormat","locale","navigator","userLanguage","language","now","Date","getFullYear","getMonth","getDate","toLocaleTimeString","hour12","hour","minute","toLocaleDateString","month","day","year","seconds","fixedMin","sec","bytesToHumanSize","bytes","sizes","bucket","log2","count","pow","round","toFixed","filename","maxLength","slice","stringToColorHash","letterTileColorId","userId","abs","light","fg","Tinode","updateFavicon","oldIcon","getElementById","head","getElementsByTagName","newIcon","rel","href","removeChild","appendChild","theCard","fn","imageUrl","imageMimeType","note","card","DEL_CHAR","mimeType","matches","arrayEqual","a","sort","l","asPhone","test","asEmail","isUrlRelative","sanitizeUrl","allowedSchemes","schemes","re","RegExp","mimeMajor","sanitizedUrl","deliveryMarker","received","MESSAGE_STATUS_SENDING","MESSAGE_STATUS_FAILED","color","MESSAGE_STATUS_SENT","MESSAGE_STATUS_RECEIVED","MESSAGE_STATUS_READ","hasCanceled","wrappedPromise","isCanceled","cancel","FormattedMessage","CheckBox","EditAccountView","PureComponent","constructor","props","handleCheckboxClick","bind","what","checked","onToggleMessageSounds","onTogglePushNotifications","onToggleIncognitoMode","render","messageSounds","desktopAlertsEnabled","desktopAlerts","incognitoMode","injectIntl","InPlaceEdit","PermissionsEditor","delete_account","delete_account_warning","AccSecurityView","Component","me","tinode","getMeTopic","blockedCount","contacts","acs","isJoiner","defacs","getDefaultAccess","state","auth","anon","showPermissionEditorFor","handlePasswordUpdate","handleLaunchPermissionsEditor","handleHidePermissionsEditor","handlePermissionsChanged","handleDeleteAccount","pwd","setState","password","onUpdatePassword","which","editedPermissions","perm","onUpdateAccountDesc","newState","e","preventDefault","intl","onShowAlert","onDeleteAccount","password_unchanged","onLogout","onShowBlocked","AccSupportView","getLibrary","serverVersion","serverAddress","AvatarUpload","BadgeList","_clip","AccountSettingsView","fullName","public","description","avatar","onNavigate","myUserId","trustedBadges","ContactList","archived_contacts_title","ContactsView","handleAction","deriveStateFromProps","unreadThreads","archivedCount","chatList","blocked","private","arch","archive","unread","touched","action","contactList","componentDidUpdate","prevProps","prevState","action_ignored","onShowArchive","no_contacts","connected","topicSelected","onTopicSelected","showContextMenu","VisiblePassword","CreateAccountView","login","email","imageDataUrl","errorCleared","saveToken","handleLoginChange","handlePasswordChange","handleEmailChange","handleFnChange","handleImageChanged","handleToggleSaveToken","handleSubmit","target","onCreateAccount","submitClasses","disabled","login_prompt","password_prompt","full_name_prompt","email_prompt","stay_logged_in","ErrorPanel","GroupManager","MenuCancel","TopicCommon","TopicSecurity","general","security","members","crop","perm_want","perm_given","perm_auth","perm_anon","perm_user","edit_permissions","InfoView","owner","admin","sharer","deleter","muted","address","groupTopic","channel","selectedContact","access","modeGiven","modeWant","modeGiven2","modeWant2","previousMetaDesc","previousSubsUpdated","resetSubs","resetDesc","resetTags","onMetaDesc","onSubsUpdated","handleMuted","handleUnarchive","handleShowAddMembers","handleMemberUpdateRequest","handleMemberSelected","handleContextMenu","handleBackNavigate","getTopic","componentWillUnmount","getType","user2","subscriber","getGiven","getWant","subscribers","sub","getAccessMode","badges","trusted","entries","isOwner","isAdmin","isSharer","isDeleter","isMuted","comment","archived","isArchived","isGroupType","isChannelType","chan","getMode","getMeta","startMetaQuery","withTags","build","desc","subs","onTopicDescUpdate","ignored","onChangePermissions","ignored2","onTopicUnArchive","onTopicDescUpdateRequest","userPermissionsEdited","uid","toEdit","toCompare","toSkip","titleEdit","titleCompare","userTitle","userAvatar","AccessMode","encode","diff","user","userPermissionsTitle","userPermissionsAvatar","immutablePermissions","editedPermissionsTitle","immutablePermissionsTitle","editedPermissionsSkipped","onInitFind","added","removed","onMemberUpdateRequest","panel","topicName","isMe","menuItems","handler","x","y","view","shift","panelTitle","displayMobile","errorLevel","errorText","searchableContacts","mode","onCredAdd","onTopicTagsUpdateRequest","onCredConfirm","onCredDelete","onDeleteMessages","onLeaveTopic","onBlockTopic","onReportTopic","no_members","LoginView","hostName","persist","onPersistenceChange","onLogin","LogoView","version","ChatMessage","ContactBadges","DocPreview","GroupSubs","ImagePreview","Invitation","LetterTile","LoadSpinner","MetaMessage","SendMessage","NOTIFICATION_EXEC_INTERVAL","SHOW_GO_TO_LAST_DIST","online_now","last_seen","not_found","file_attachment_too_large","invalid_content","isUnconfirmed","ex","getExcessive","isPeerRestricted","ms","getMissing","MessagesView","getDerivedStateFromProps","leave","sendMessage","retrySend","sendImageAttachment","sendFileAttachment","sendAudioAttachment","sendKeyPress","subscribe","handleScrollReference","handleScrollEvent","handleDescChange","handleSubsUpdated","handleMessageUpdate","handleAllMessagesReceived","handleInfoReceipt","handleImagePostview","handleClosePreview","handleFormResponse","handleContextClick","handleShowMessageContextMenu","handleNewChatAcceptance","handleEnablePeer","handleAttachFile","handleAttachImage","handleCancelUpload","postReadNotification","clearNotificationQueue","goToLatestMessage","handlePickReply","handleCancelReply","handleQuoteClick","chatMessageRefs","getOrCreateMessageRef","readNotificationQueue","readNotificationTimer","seqId","createRef","componentDidMount","messagesScroller","addEventListener","removeEventListener","messageCount","scrollPosition","scrollTop","scrollHeight","offsetHeight","isNewGroupTopicName","onData","onAllMessagesReceived","onInfo","onPres","applicationVisible","ready","_new","isP2PType","withDesc","nextProps","nextState","latestClearId","onlineSubs","isVerified","isStaff","isDangerous","deleted","docPreview","imagePreview","imagePostview","typingIndicator","fetchingMessages","peerMessagingDisabled","reply","showGoToLastButton","forwardMessage","content","seq","_deleted","online","peer","p2pPeerDesc","maxClearId","isWriter","isReader","readingBlocked","unconformed","unconfirmed","isSubscribed","newTopic","newTopicParams","_topicName","getQuery","withLaterDesc","withLaterSub","withLaterData","withLaterDel","setQuery","ctrl","code","onNewTopicCreated","queuedMessages","pub","_sending","message","blankState","oldTopicName","isTopicCached","oldTopic","finally","node","pos","msgHasMoreMessages","getMessagesPage","setInterval","clearInterval","sendAt","noteRead","setMilliseconds","getMilliseconds","msg","clearTimeout","keyPressTimer","isNewMessage","msgStatus","from","setTimeout","forceUpdate","text","attachJSON","searchParams","resp","set","search","open","stopPropagation","pageY","pageX","messageSpecificMenuItems","userFrom","userName","onNewChat","noteKeyPress","uploadCompletionPromise","uploader","append","sanitizeEntities","maxInbandAttachmentSize","getServerLimit","getLargeFileHelper","cannot_initiate_upload","upload","attachFile","urlPromise","maxExternAttachmentSize","limit","caption","insertImage","_tempPreview","appendLineBreak","appendAudio","found","findMessage","_cancelled","senderId","senderName","init","isValid","replyContent","wrapInto","quote","onCancelForwardMessage","replyToSeq","current","scrollIntoView","block","behavior","classList","add","remove","component","hideSelf","component2","isChannel","icon_badges","verified","icon","staff","danger","messageNodes","previousFrom","prevDate","chatBoxClass","dateFmt","Intl","DateTimeFormat","prev","next","nextFrom","sequence","thisFrom","isReply","deliveryStatus","userDesc","parseInt","isNaN","hi","thisDate","ts","toDateString","format","_uploader","lastSeen","cont","getContact","isP2PTopicName","seen","when","titleClass","onHideMessagesView","NewTopicById","NewTopicGroup","SearchContacts","search_for_contacts","search_no_results","search_placeholder","NewTopicView","tabSelected","searchQuery","handleTabClick","handleSearchContacts","handleSearchResultSelected","handleNewGroupSubmit","handleGroupByID","currentTarget","dataset","query","onSearchContacts","isNullValue","onCreateTopic","dataUrl","priv","tags","no_contacts_placeholder","searchResults","PasswordResetView","sent","token","scheme","onReset","onCancel","onRequest","placeholder","HostSelector","SettingsView","transport","handleTransportSelected","handleServerAddressChange","onUpdate","names","def","ws","lp","transportOptions","SideNavbar","AccNotificationsView","ValidationView","register","settings","edit","notif","support","newtpk","cred","reset","SidepanelView","handleNewTopic","onSignUp","onSettings","errorAction","errorActionText","loadSpinnerVisible","loginDisabled","onLoginRequest","onGlobalSettings","onUpdateAccountTags","credCode","credMethod","onValidateCredentials","onPasswordResetRequest","onResetPassword","initializeApp","firebaseInitApp","getMessaging","firebaseGetMessaging","getToken","firebaseGetToken","deleteToken","firebaseDelToken","onMessage","firebaseOnMessage","Alert","ContextMenu","ForwardDialog","POP_SOUND","Audio","reconnect_countdown","reconnect_now","push_init_failed","invalid_security_token","no_connection","code_doesnot_match","menu_item_info","TinodeWeb","selfRef","getBlankState","handleResize","handleHashRoute","handleOnline","checkForAppUpdate","handleVisibilityEvent","handleError","handleLoginRequest","handlePersistenceChange","handleConnected","handleAutoreconnectIteration","doLogin","handleCredentialsRequest","handleLoginSuccessful","handleDisconnect","tnMeMetaDesc","tnMeContactUpdate","tnMeSubsUpdated","resetContactList","tnData","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","handleShowForwardDialog","handleHideForwardDialog","sendMessageToTopic","autoLogin","messageSoundsOff","FIREBASE_INIT","firebaseToken","hidden","sidePanelSelected","sidePanelTitle","sidePanelAvatar","myTrustedBadges","liveConnection","onLine","topicSelectedOnline","topicSelectedAcs","innerWidth","infoPanel","mobilePanel","contextMenuVisible","contextMenuBounds","contextMenuClickAt","contextMenuParams","contextMenuItems","forwardDialogVisible","alertVisible","alertParams","requestedTopic","BroadcastChannel","serviceWorkerChannel","warn","documentElement","clientWidth","viewportHeight","clientHeight","tnSetup","onConnect","onDisconnect","onAutoreconnectIteration","setDeviceToken","parsedNav","expires","setAuthToken","connect","readTimer","readTimerCallback","persistentCache","onSetupCompleted","appName","apiKey","secure","setHumanLanguage","enableLogging","payload","isChannelTopicName","oobNotification","fcm","serviceWorker","reg","active","postMessage","requestFCMToken","sw","serviceWorkerRegistration","vapidKey","messagingVapidKey","Notification","requestPermission","permission","mobile","onupdatefound","installingWorker","installing","onstatechange","controller","topicType","getTopicAccessMode","method","newTopicTabSelected","tab","reconnectCountdown","reconnect","level","actionText","isConnected","meth","initStorage","clearStorage","getServerInfo","ver","prom","timeLeft","isAuthenticated","credential","getAuthToken","loginBasic","loginToken","goToTopic","onContactUpdate","getCurrentUserID","withCred","disconnect","urlHash","isPresencer","play","unused","prepareSearchableContacts","foundContacts","merged","updated","past","getTime","receivedTimer","noteRecv","fnd","getFndTopic","withSub","s","setMeta","isTopicOnline","createMessage","completion","subscribePromise","publishMessage","publishDraft","all","response","delTopic","am","updateWant","login_","password_","public_","cred_","tags_","createAccountBasic","on","enabled","delCredential","basicNavigator","infoNavigator","newGroupTopicName","oldName","newName","attachments","updateAccountBasic","getCurrentLogin","updateGiven","cleared","Promose","delCurrentUser","delMessagesAll","updateMode","report","getBoundingClientRect","forwardedContent","mention","msgPreview","forwarded","self_blocked","subscribed","keepForwardedMessage","onConfirm","confirmText","onReject","rejectText","confirm","invite","delSubscription","requestResetAuthSecret","newPassword","handleManageGroupMembers","phone","handleChange","handleKeyPress","handleCancel","onSubmit","methods","numbers_only","visible","FileProgress","Attachment","downloader","progress","downloadFile","mimetype","download","loaded","uploading","onCancelUpload","substr","helperFunc","downloadUrl","downloadWidget","CANVAS_UPSCALING","LINE_WIDTH","SPACING","BAR_COLOR","BAR_COLOR_DARK","THUMB_COLOR","MIN_PREVIEW_LENGTH","canPlay","playing","currentTime","longMin","initAudio","initCanvas","resampleBars","visualize","handlePlay","handleSeek","audioPlayer","viewBuffer","canvasRef","oncanplay","ontimeupdate","onended","pause","offsetWidth","canvasContext","lineCap","effectiveWidth","lineWidth","drawFrame","requestAnimationFrame","thumbAt","beginPath","strokeStyle","stroke","moveTo","lineTo","arc","PI","fillStyle","fill","original","barCount","factor","amps","lo","amp","j","log","rect","offset","clientX","playClass","short","BUFFER_SIZE","MILLIS_PER_BAR","BAR_SCALE","MIN_DURATION","MAX_DURATION","VISUALIZATION_BARS","MAX_SAMPLES_PER_BAR","AudioRecorder","audioRecord","recording","paused","blobUrl","initMediaRecording","getRecording","cleanUp","handleResume","handlePause","handleDelete","handleDone","durationMillis","startedOn","stream","mediaRecorder","audioContext","audioInput","analyser","audioChunks","mediaDevices","getUserMedia","audio","video","pcmData","frequencyBinCount","canvasWidth","canvasHeight","viewLength","viewDuration","prevBarCount","volume","countPerBar","getByteTimeDomainData","amplitude","sqrt","dx","requestData","resume","stop","translate","MediaRecorder","AudioContext","createMediaStreamSource","createAnalyser","fftSize","onstop","onFinished","onDeleted","ondataavailable","start","arrayBuffer","ab","decodeAudioData","createPreview","getChannelData","totalSPB","samplingRate","buffer","getTracks","track","resumeClass","Cropper","AvatarCrop","source","handleFileReceived","image","files","onImageUpdated","randId","random","readOnly","icon_mapping","badge_verified","badge_staff","badge_danger","ButtonBack","onBack","ReceivedMarker","BaseChatMessage","onProgress","handleProgress","handleImagePreview","handleFormButtonClick","formatterContext","act","onFormResponse","userIsWriter","MESSAGE_STATUS_DEL_RANGE","pickReply","ratio","sideClass","bubbleClass","fullDisplay","isGroup","getContentType","att","getDownloadUrl","getEntitySize","tree","innerRef","timestamp","IntlChatMessage","forwardRef","onChange","Chip","ChipInput","input","focused","handleTextInput","removeChipAt","handleChipCancel","handleFocusGained","handleFocusLost","handleKeyDown","chips","prompt","sortedChips","sortChips","staticMembers","chipIndex","indexChips","index","keep","required","normal","filterFunc","onChipRemoved","onFocusLost","onEnter","avatarDisabled","invalid","autoFocus","tabIndex","noAvatar","ContactAction","handleClick","onAction","Contact","badge_you","badge_owner","showCheckmark","contactNodes","contactsCount","showMode","filter","filterOn","toLowerCase","selected","latestMessage","_status","showUnread","showOnline","noScroll","__html","emptyListMessage","UnreadBadge","onSelected","marker","small","clear_messages","clear_for_all","delete","delete_for_all","send_retry","mute","unmute","forward","topic_delete","topic_delete_warning","delete_messages_warning","unblock","topic_block_warning","member_delete","unarchive","clear_messages_warning","handlePageClick","handleEscapeKey","MenuItems","errorHandler","deleteMessages","retryMessage","replyToMessage","topicPermissionSetter","onTopicRemoved","contains","hide","keyCode","hard","cancelSend","delMessagesList","flushMessage","menu","hSize","vSize","bounds","right","clickAt","bottom","position","DEFAULT_MAX_ZOOM","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","passive","checkBound","currPan","delta","nextDiff","imgRect","imgLeft","imgRight","coLeft","coRight","imgTop","imgBottom","coTop","coBottom","touches","dX","dY","touch0","touch1","distance","t3d","orig","transform","transformOrigin","iconFromMime","mimeToIcon","default","handleSendDoc","onClose","onSendMessage","onCancelReply","show","onClearError","icons","whiteSpace","handleClose","handleContactSelected","not_found_placeholder","contacts_not_found_short","indexMembers","keepInitialMembers","requiredMember","contactFilter","noContactsMessage","selectedContacts","handleMemberRemoved","handleContactFilter","m","present","keepInitial","stat","sel","splice","doContactFiltering","instance","keys","k","usersOnline","totalCount","countToShow","some","overflow","changed","handleHostNameChange","handleEditingFinished","onServerAddressChange","hostOptions","handleSendImage","assignWidth","maxlength","initialValue","handeTextChange","handleStartEditing","handlePasswordFinished","newValue","focus","checkValidity","spanText","spanClass","multiline","element","rows","onKeyDown","onBlur","autoComplete","handleButtonAction","padding","isGroupTopicName","iconColor","letter","charAt","large","clear","centered","MenuContacts","onNewTopic","MenuStart","date","invalid_id","groupId","prefix","TagManager","handleFieldEdit","handleTagsChanged","handleChannelToggle","joiner","writer","preser","approver","before","skip","compare","modeTitle","compareTitle","message_sending","message_sending_failed","timeStyle","edited","handleSearchChange","handleSearch","handleClear","messaging_disabled","type_new_message","add_image_caption","audioRec","audioAvailable","keypressTimestamp","handlePasteEvent","handleAttachAudio","handleSend","handleMessageTyping","formatReply","messageEditArea","onAttachImage","onAttachFile","onAttachAudio","acceptBlank","noInput","shiftKey","onKeyPress","messagePrompt","audioEnabled","attachImage","click","display","tagInput","activated","handleTagInput","handleAddTag","handleRemoveTag","last","tag","maxTagCount","onTagsChanged","minTagLength","maxTagLength","add_tags_prompt","TopicDescEdit","credentials","getCredentials","addCredActive","addCredInvalid","newCred","previousTagsUpdated","onTagsUpdated","handleTagsUpdated","tnCredsUpdated","handleCredChange","handleCredKeyDown","handleCredEntered","onCredsUpdated","creds","done","onUpdateTopicDesc","isMeTopicName","newAvatar","newAvatarMime","previousOnTags","tnNewTags","handleFullNameUpdate","handleImageUpdated","handleAvatarCropped","handlePrivateUpdate","handleDescriptionUpdate","uploadAvatar","handleAvatarCropCancel","readyToUpload","du","onUpdateTags","editable","full_name_placeholder","group_name_placeholder","private_placeholder","title_tag_manager","delete_messages","leave_chat","leave_chat_warning","block_contact","block_contact_warning","report_chat","report_chat_warning","other_user","handleDeleteTopic","handleDeleteMessages","handleLeave","handleBlock","handleReport","onDeleteTopic","onLaunchPermissionsEditor","handleVisibility","activeElement","ReactDOM","IntlProvider","allMessages","hl","languages","baseLanguage","htmlLang","setAttribute"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"index.dev.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qBAAM;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAM;AACrB,eAAe,qBAAM;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,MAAM;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa,GAAG,KAAK;AACjD;AACA;AACA;AACA,+BAA+B,iBAAiB,IAAI,SAAS,GAAG,SAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD,KAAK;AACL;AACA,mBAAmB,MAAM,IAAI;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,GAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,UAAU,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEkzB;AAClzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC12DA;AAGO,MAAMC,QAAQ,GAAG,gBAAgBD,wDAAe,IAAI,MAAnC,CAAjB;AAGA,MAAME,OAAO,GAAG,kCAAhB;AAGA,MAAMC,WAAW,GAAG;AAACC,EAAAA,MAAM,EAAE,eAAT;AAA0BC,EAAAA,KAAK,EAAE;AAAjC,CAApB;AAGA,MAAMC,YAAY,GAAGH,WAAW,CAACC,MAAjC;AAGA,MAAMG,eAAe,GAAG,IAAxB;AAGA,MAAMC,cAAc,GAAG,IAAE,IAAzB;AAEA,MAAMC,cAAc,GAAG,GAAvB;AAEA,MAAMC,UAAU,GAAG,IAAnB;AAGA,MAAMC,cAAc,GAAG,CAAvB;AAEA,MAAMC,cAAc,GAAG,EAAvB;AAEA,MAAMC,aAAa,GAAG,EAAtB;AAGA,MAAMC,uBAAuB,GAAG,OAAhC;AAEA,MAAMC,mBAAmB,GAAG,SAA5B;AAEA,MAAMC,mBAAmB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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kCAAkC;AAChE;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AChgBD;AACA,EAAE,KAA4D;AAC9D,EAAE,CACmD;AACrD,CAAC,4BAA4B;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iDAAiD,aAAa;;AAE9D,CAAC;;;;;;;;;;;;AC3TD;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAoE;AACuB;AAClC;AACV;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB,GAAG,gBAAgB;AAC7D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oDAAM;;AAEzB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gBAAgB,sCAAsC,SAAS;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,cAAc;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA,8DAA8D,SAAS;AACvE,iEAAiE,SAAS;AAC1E,6DAA6D,SAAS;AACtE,oEAAoE,SAAS;AAC7E;AACA;AACA;AACA,0BAA0B,wDAAY;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,uCAAuC;AACvC;AACA;AACA;AACA;AACA,wCAAwC,0DAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,qBAAqB;AAC/F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,sBAAsB;AACtB;AACA,mCAAmC,iEAAiE;AACpG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,YAAY,yDAAS;AACrB,YAAY,yDAAS;AACrB;AACA;AACA;AACA,8EAA8E,eAAe;AAC7F;AACA;AACA,0BAA0B,mEAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iCAAiC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,eAAe;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ,kBAAkB,QAAQ;AAC7E;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA,2BAA2B,0DAAS,IAAI,QAAQ,oBAAoB,kBAAkB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mEAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAAa;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE2R;AAC3R;;;;;;;;;;;;;;;;;;;ACjlB0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oDAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB,eAAe,UAAU;AAC1F;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,wCAAwC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,gBAAgB,eAAe;AAC/B;AACA;AACA,2BAA2B,UAAU,GAAG,qBAAqB;AAC7D;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB,mCAAmC,UAAU;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmD;AACnD;;;;;;;;;;;;;;;;;;;;;;;;ACxZ0F;AAC1C;AACa;AAChC;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA,gDAAgD;AAChD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,WAAW;AAClH;AACA;AACA,+CAA+C,cAAc,4BAA4B,cAAc,cAAc,GAAG,eAAe;AACvI;AACA;AACA;AACA,0BAA0B,wDAAY;AACtC;AACA;AACA,6BAA6B,yDAAa;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;AAC/C,cAAc,sBAAsB,YAAY,UAAU;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,yCAAyC,cAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB,EAAE,aAAa;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,KAAK;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,GAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kBAAkB,GAAG,gBAAgB;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2CAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mCAAmC;AAC7E;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,KAAK;AACxD,cAAc,oCAAoC,GAAG,IAAI;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,eAAe,aAAa,sCAAsC;AACnH;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uEAAuE,wBAAwB,WAAW;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,wBAAwB,aAAa,sCAAsC;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe,gCAAgC;AACxF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yCAAyC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,KAAK;AAC7C,cAAc,oCAAoC,GAAG,IAAI;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD,IAAI,iCAAiC;AACrC,qBAAqB,iCAAiC;AACtD;AACA;AACA;AACA,gCAAgC,qDAAM;AACtC,8BAA8B,2DAAY;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2DAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,iEAAkB,KAAK,0DAAS;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8DAAe;AACf;AACA,8DAAe;;AAE+D;AAC9E;;;;;;;;;;;;;;;;;;;ACjnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,KAAK,cAAc;AACnD;AACA;AACA,sFAAsF,QAAQ;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAE4D;AAC5D;;;;;;;;;;;;;;;;;;;;;;;;;AC1NiC;AACe;AACT;AAC+F;AAC5C;;AAE1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;;AAEvC;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2CAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,UAAU,6CAAQ;AAClB,UAAU,6CAAQ;AAClB,UAAU,6CAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2CAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,WAAW;AAClH;AACA;AACA;AACA;AACA;AACA;AACA,sIAAsI,qBAAqB;AAC3J,qHAAqH,WAAW;AAChI;AACA;AACA,yBAAyB,WAAW;AACpC,8GAA8G,WAAW;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wDAAY;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAA4C,GAAG,mBAAmB;AAC1G;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAA4C,GAAG,MAAM;AAC7F;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,WAAW;AAClC,cAAc,SAAS,YAAY,UAAU;AAC7C;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAU;AAC/D,KAAK;AACL;AACA,mBAAmB,kCAAkC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mBAAmB,6CAA6C;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,iEAAkB,KAAK,0DAAS;AACpC,IAAI,8DAAe;AACnB;AACA,IAAI,8DAAe;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yEAAyB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAoB;AAC5B,QAAQ,iEAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qDAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,WAAW,2DAAY,CAAC,kEAAkB;AAC1C;AACA;AACA,mBAAmB,iBAAiB;AACpC,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;AACA;AACA,wDAAwD,iBAAiB;AACzE,QAAQ,iBAAiB;AACzB;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAkB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEoH;AACpH;;;;;;;;;;;;;;;;;;UCtsCA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;;ACHA;AACA;AAEA;AAEA;AACA;AACA;AAIA,MAAM;AAAE/6B,EAAAA;AAAF,IAAaJ,uEAAA,CAA4BpG,MAAM,CAAC+E,QAAP,CAAgBuB,IAA5C,CAAnB;AACA,MAAMyB,QAAQ,GAAIvB,MAAM,IAAIA,MAAM,CAACw7C,EAAlB,IACdn6C,SAAS,CAACo6C,SAAV,IAAuBp6C,SAAS,CAACo6C,SAAV,CAAoB,CAApB,CADT,IAEfp6C,SAAS,CAACE,QAFK,IAGfF,SAAS,CAACC,YAHK,IAIf,IAJF;AAOA,MAAMo6C,YAAY,GAAGn6C,QAAQ,CAAC4nC,WAAT,GAAuBvyC,KAAvB,CAA6B,MAA7B,EAAqC,CAArC,CAArB;AAGA,MAAM+kD,QAAQ,GAAGJ,2CAAW,CAACh6C,QAAD,CAAX,GAAwBA,QAAxB,GAAmCg6C,2CAAW,CAACG,YAAD,CAAX,GAA4BA,YAA5B,GAA2C,IAA/F;AACA,MAAMlhD,QAAQ,GAAG+gD,2CAAW,CAACI,QAAD,CAA5B;AAGAxmD,QAAQ,CAAC4O,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,EAAyC63C,YAAzC,CAAsD,MAAtD,EAA8DD,QAA9D;AAEAN,uDAAA,CACE,2DAAC,yDAAD,QACE,2DAAC,oDAAD;AAAc,QAAM,EAAE95C,QAAtB;AAAgC,UAAQ,EAAE/G,QAA1C;AAAoD,eAAa,EAAEX,uDAAcoD;AAAjF,GACE,2DAAC,6DAAD,OADF,CADF,CADF,EAME9H,QAAQ,CAAC0O,cAAT,CAAwB,YAAxB,CANF,E","sources":["webpack://tinode-webapp/./node_modules/@firebase/util/dist/index.esm2017.js","webpack://tinode-webapp/./src/config.js","webpack://tinode-webapp/./src/lib/blob-helpers.js","webpack://tinode-webapp/./src/lib/formatters.js","webpack://tinode-webapp/./src/lib/host-name.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/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/account-settings-view.jsx","webpack://tinode-webapp/./src/views/contacts-view.jsx","webpack://tinode-webapp/./src/views/create-account-view.jsx","webpack://tinode-webapp/./src/views/info-view.jsx","webpack://tinode-webapp/./src/views/login-view.jsx","webpack://tinode-webapp/./src/views/logo-view.jsx","webpack://tinode-webapp/./src/views/messages-view.jsx","webpack://tinode-webapp/./src/views/new-topic-view.jsx","webpack://tinode-webapp/./src/views/password-reset-view.jsx","webpack://tinode-webapp/./src/views/settings-view.jsx","webpack://tinode-webapp/./src/views/sidepanel-view.jsx","webpack://tinode-webapp/./src/views/tinode-web.jsx","webpack://tinode-webapp/./src/views/validation-view.jsx","webpack://tinode-webapp/./src/widgets/alert.jsx","webpack://tinode-webapp/./src/widgets/attachment.jsx","webpack://tinode-webapp/./src/widgets/audio-player.jsx","webpack://tinode-webapp/./src/widgets/audio-recorder.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/button-back.jsx","webpack://tinode-webapp/./src/widgets/chat-message.jsx","webpack://tinode-webapp/./src/widgets/checkbox.jsx","webpack://tinode-webapp/./src/widgets/chip-input.jsx","webpack://tinode-webapp/./src/widgets/chip.jsx","webpack://tinode-webapp/./src/widgets/contact-action.jsx","webpack://tinode-webapp/./src/widgets/contact-badges.jsx","webpack://tinode-webapp/./src/widgets/contact-list.jsx","webpack://tinode-webapp/./src/widgets/contact.jsx","webpack://tinode-webapp/./src/widgets/context-menu.jsx","webpack://tinode-webapp/./src/widgets/cropper.jsx","webpack://tinode-webapp/./src/widgets/doc-preview.jsx","webpack://tinode-webapp/./src/widgets/error-panel.jsx","webpack://tinode-webapp/./src/widgets/file-progress.jsx","webpack://tinode-webapp/./src/widgets/forward-dialog.jsx","webpack://tinode-webapp/./src/widgets/group-manager.jsx","webpack://tinode-webapp/./src/widgets/group-subs.jsx","webpack://tinode-webapp/./src/widgets/host-selector.jsx","webpack://tinode-webapp/./src/widgets/image-preview.jsx","webpack://tinode-webapp/./src/widgets/in-place-edit.jsx","webpack://tinode-webapp/./src/widgets/invitation.jsx","webpack://tinode-webapp/./src/widgets/lazy-image.jsx","webpack://tinode-webapp/./src/widgets/letter-tile.jsx","webpack://tinode-webapp/./src/widgets/load-spinner.jsx","webpack://tinode-webapp/./src/widgets/menu-cancel.jsx","webpack://tinode-webapp/./src/widgets/menu-contacts.jsx","webpack://tinode-webapp/./src/widgets/menu-start.jsx","webpack://tinode-webapp/./src/widgets/meta-message.jsx","webpack://tinode-webapp/./src/widgets/new-topic-by-id.jsx","webpack://tinode-webapp/./src/widgets/new-topic-group.jsx","webpack://tinode-webapp/./src/widgets/permissions-editor.jsx","webpack://tinode-webapp/./src/widgets/received-marker.jsx","webpack://tinode-webapp/./src/widgets/search-contacts.jsx","webpack://tinode-webapp/./src/widgets/send-message.jsx","webpack://tinode-webapp/./src/widgets/side-navbar.jsx","webpack://tinode-webapp/./src/widgets/tag-manager.jsx","webpack://tinode-webapp/./src/widgets/topic-common.jsx","webpack://tinode-webapp/./src/widgets/topic-desc-edit.jsx","webpack://tinode-webapp/./src/widgets/topic-security.jsx","webpack://tinode-webapp/./src/widgets/unread-badge.jsx","webpack://tinode-webapp/./src/widgets/uploading-image.jsx","webpack://tinode-webapp/./src/widgets/visible-password.jsx","webpack://tinode-webapp/./node_modules/firebase/app/dist/index.esm.js","webpack://tinode-webapp/./node_modules/firebase/messaging/dist/index.esm.js","webpack://tinode-webapp/./node_modules/fix-webm-duration/fix-webm-duration.js","webpack://tinode-webapp/./node_modules/idb/build/idb.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/./node_modules/@firebase/app/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/component/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/installations/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/logger/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/@firebase/messaging/dist/esm/index.esm2017.js","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/global","webpack://tinode-webapp/webpack/runtime/hasOwnProperty shorthand","webpack://tinode-webapp/webpack/runtime/make namespace object","webpack://tinode-webapp/./src/index.js"],"sourcesContent":["/**\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 Error();\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 * 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 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 promiseified 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.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\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 */\r\nfunction isBrowser() {\r\n return typeof self === 'object' && self.self === self;\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.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 return typeof indexedDB === 'object';\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}\r\n/**\r\n * Polyfill for `globalThis` object.\r\n * @returns the `globalThis` object for the given environment.\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 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.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 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 sychronously 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 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, 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, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, issuedAtTime, jsonEval, map, ordinal, querystring, querystringDecode, safeGet, stringLength, stringToByteArray, stringify, validateArgCount, validateCallback, validateContextObject, validateIndexedDBOpenable, validateNamespace };\n//# sourceMappingURL=index.esm2017.js.map\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.17');\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*1000;\n// Delay before sending a {note} for reciving a message, milliseconds.\nexport const RECEIVED_DELAY = 500;\n// Delay before sending a read notification, milliseconds.\nexport const READ_DELAY = 1000;\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// 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 = 262144;\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 image thumbnail: shrink image under this size for thumbnails in reply quote previews.\nexport const IMAGE_THUMBNAIL_DIM = 36;\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\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\n// Link for \"Contact Us\".\nexport const LINK_CONTACT_US = 'email: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","// 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 = (err) => {\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 = (evt) => {\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 (!Array.isArray(items)) {\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","import React from 'react';\nimport { defineMessages } from 'react-intl';\n\nimport { Drafty } from 'tinode-sdk';\n\nimport AudioPlayer from '../widgets/audio-player.jsx'\nimport LazyImage from '../widgets/lazy-image.jsx'\nimport UploadingImage from '../widgets/uploading-image.jsx'\n\nimport { IMAGE_THUMBNAIL_DIM, BROKEN_IMAGE_SIZE, REM_SIZE } from '../config.js';\nimport { base64ToBlob, blobToBase64, fitImageSize, imageScaled } from './blob-helpers.js';\nimport { idToColorClass, secondsToTime, shortenFileName } from './strformat.js';\nimport { cancelablePromise, 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_unknown: {\n id: 'drafty_unknown',\n defaultMessage: 'Unsupported',\n description: 'Unsupported entity in drafty'\n }\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 = 'img/broken_image.png';\n }\n } else {\n // Use custom element instead of .\n el = UploadingImage;\n }\n\n return el;\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: this.props.viewportWidth;\n// authorizeURL: this.props.tinode.authorizeURL\n// onImagePreview: this.handleImagePreview\n// onFormButtonClick: this.handleFormButtonClick\n// onQuoteClick: this.handleQuoteClick (optional)\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 '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 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// 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 'QQ':\n case 'HD':\n el = null;\n values = null;\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 }\n attr.title = attr.alt;\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'].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 '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 quoteImage(data) {\n let promise;\n // Get the blob from the image data.\n if (data.val) {\n const blob = base64ToBlob(data.val, data.mime);\n if (!blob) {\n throw new Error(\"Invalid image\");\n }\n promise = Promise.resolve(blob);\n } else if (data.ref) {\n promise = fetch(this.authorizeURL(sanitizeUrlForMime(data.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 // Cut the square from the center of the image and shrink it.\n return imageScaled(blob, IMAGE_THUMBNAIL_DIM, IMAGE_THUMBNAIL_DIM, -1, true)\n }).then(scaled => {\n data.mime = scaled.mime;\n data.size = scaled.blob.size;\n data.width = scaled.width;\n data.height = scaled.height;\n delete data.ref;\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 data.val = b64.bits;\n return data;\n }).catch(err => {\n delete data.val;\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') {\n const attr = inlineImageAttr.call(this, {key: key}, data);\n let loadedPromise;\n try {\n loadedPromise = cancelablePromise(quoteImage.call(this, data));\n } catch (error) {\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","import { KNOWN_HOSTS, DEFAULT_HOST } from '../config.js';\n\n// Detect server address from the URL\nexport function detectServerAddress() {\n let host = DEFAULT_HOST;\n if (typeof window.location == 'object') {\n if (window.location.protocol == 'file:' || window.location.hostname == 'localhost') {\n host = KNOWN_HOSTS.local;\n } else if (window.location.hostname) {\n host = window.location.hostname + (window.location.port ? ':' + window.location.port : '');\n }\n }\n return host;\n}\n\n// Detect if the page is served over HTTPS.\nexport function isSecureConnection() {\n if (typeof window.location == 'object') {\n return window.location.protocol == 'https:';\n }\n return false;\n}\n\nexport function isLocalHost() {\n if (typeof window.location == 'object') {\n return window.location.hostname == 'localhost';\n }\n return false;\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\n// Parse hash as in http://www.example.com/path#hash as if it were\n// path and arguments.\nexport default class HashNavigation {\n static parseUrlHash(hash) {\n // Split path from 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(function(part) {\n const item = part.split('=');\n if (item[0]) {\n params[decodeURIComponent(item[0])] = decodeURIComponent(item[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 args.push(key + '=' + params[key]);\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 = this.parseUrlHash(hash);\n parsed.params[key] = value;\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static removeUrlParam(hash, key) {\n const parsed = this.parseUrlHash(hash);\n delete parsed.params[key];\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlSidePanel(hash, sidepanel) {\n const parsed = this.parseUrlHash(hash);\n parsed.path[0] = sidepanel;\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlInfoPanel(hash, infopanel) {\n const parsed = this.parseUrlHash(hash);\n if (infopanel) {\n parsed.params.info = infopanel;\n } else {\n delete parsed.params.info;\n }\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlTopic(hash, topic) {\n const parsed = this.parseUrlHash(hash);\n parsed.path[1] = topic;\n // Close InfoView on topic change.\n delete parsed.params.info;\n return this.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// Convert seconds to minutes:seconds, i.e. 156 sec -> 2:36.\n// If fixedMins is true, then minutes are represented by at least two digits.\nexport function secondsToTime(seconds, fixedMin) {\n let min = Math.floor(seconds / 60) | 0;\n if (fixedMin) {\n min = min < 10 ? `0${min}` : min;\n }\n let sec = (seconds % 60) | 0;\n sec = sec < 10 ? `0${sec}` : sec;\n return `${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","// 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// ' ↲ https://example.com' - not ok. (↲ means carriage return)\nexport function isUrlRelative(url) {\n return url && !/^\\s*([a-z][a-z0-9+.-]*:|\\/\\/)/im.test(url);\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(/[^\\x20-\\x7E]/gmi, '').trim();\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// 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 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","// This is a generated file. Don't edit.\n\nexport const PACKAGE_VERSION = \"0.19.0-alpha1\";\n","// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport CheckBox from '../widgets/checkbox.jsx';\n\nexport default class EditAccountView extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleCheckboxClick = this.handleCheckboxClick.bind(this);\n }\n\n handleCheckboxClick(what, checked) {\n if (what == 'sound') {\n this.props.onToggleMessageSounds(checked);\n } else if (what == 'alert') {\n this.props.onTogglePushNotifications(checked);\n } else if (what == 'incognito') {\n this.props.onToggleIncognitoMode(checked);\n }\n }\n\n render() {\n return (\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n );\n }\n};\n","// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport InPlaceEdit from '../widgets/in-place-edit.jsx';\nimport PermissionsEditor from '../widgets/permissions-editor.jsx';\n\nconst messages = defineMessages({\n delete_account: {\n id: 'delete_account',\n defaultMessage: 'Delete account',\n description: 'Title for delete account warning'\n },\n delete_account_warning: {\n id: 'delete_account_warning',\n defaultMessage: 'Are you sure you want to delete your account? It cannot be undone.',\n description: 'Warning message when deleting an account'\n }\n});\n\nclass AccSecurityView extends React.Component {\n constructor(props) {\n super(props);\n\n const me = this.props.tinode.getMeTopic();\n let blockedCount = 0;\n me.contacts((c) => {\n if (c.acs && !c.acs.isJoiner()) {\n blockedCount ++;\n }\n });\n const defacs = me.getDefaultAccess();\n this.state = {\n auth: defacs ? defacs.auth : null,\n anon: defacs ? defacs.anon : null,\n showPermissionEditorFor: undefined,\n blockedCount: blockedCount,\n };\n\n this.handlePasswordUpdate = this.handlePasswordUpdate.bind(this);\n this.handleLaunchPermissionsEditor = this.handleLaunchPermissionsEditor.bind(this);\n this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this);\n this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this);\n this.handleDeleteAccount = this.handleDeleteAccount.bind(this);\n }\n\n handlePasswordUpdate(pwd) {\n this.setState({password: pwd});\n this.props.onUpdatePassword(pwd);\n }\n\n handleLaunchPermissionsEditor(which) {\n this.setState({\n showPermissionEditorFor: which,\n editedPermissions: this.state[which]\n });\n }\n\n handleHidePermissionsEditor() {\n this.setState({showPermissionEditorFor: undefined});\n }\n\n handlePermissionsChanged(perm) {\n let defacs = {};\n defacs[this.state.showPermissionEditorFor] = perm;\n this.props.onUpdateAccountDesc('me', undefined, undefined, defacs);\n\n let newState = {showPermissionEditorFor: undefined};\n newState[this.state.showPermissionEditorFor] = perm;\n this.setState(newState);\n }\n\n handleDeleteAccount(e) {\n e.preventDefault();\n const {formatMessage} = this.props.intl;\n this.props.onShowAlert(\n formatMessage(messages.delete_account), // title\n formatMessage(messages.delete_account_warning), // content\n (() => { this.props.onDeleteAccount(); }), // onConfirm\n null, // use default text \"OK\"\n true, // Show Reject button\n null // use default text \"Cancel\"\n );\n }\n\n render() {\n return (\n <>{this.state.showPermissionEditorFor ?\n \n :\n
\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","// 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\nexport default injectIntl(Contact);\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 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(message.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 '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 (() => {\n return this.topicPermissionSetter('-JP', params, errorHandler).then((ctrl) => {\n this.props.onTopicRemoved(params.topicName);\n return ctrl;\n });\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 // Can't cancel. Delete instead.\n const promise = all ?\n topic.delMessagesAll(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) => {\n errorHandler(err.message, 'err');\n });\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 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","// Image zoom and crop widget.\n\nimport React from 'react';\n\nconst DEFAULT_MAX_ZOOM = 2.5;\n\nexport default class Cropper extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n // Coordinates of the top left corner of the image in container coordinates.\n panX: 0,\n panY: 0,\n // Origin of the zoom in image coordinates.\n originX: 0,\n originY: 0,\n // Zoom scale.\n zoom: 1,\n // Zoom min and max.\n minZoom: 0,\n maxZoom: DEFAULT_MAX_ZOOM,\n };\n\n // References to DOM elements for hooking up events and getting screen dimensions.\n // The transparent element which captures mouse moves (moves with the image).\n this.overlay = React.createRef();\n // The image cutout window or view port (static).\n this.cutout = React.createRef();\n // Scaled and translated image preview.\n this.preview = React.createRef();\n // The main container (static).\n this.boundingBox = React.createRef();\n\n // The original image width and height before any scaling.\n this.imageWidth = 0;\n this.imageHeight = 0;\n\n // Mouse position when dragging.\n this.mouseX = 0\n this.mouseY = 0;\n // Length of the previous mouse move when dragging.\n this.prevDistance = 0;\n\n // Bounding rectangles of static elements.\n this.cutoutRect = {};\n this.bBoxRect = {};\n // Center of the bounding box.\n this.originX = 0;\n this.originY = 0;\n\n this.initScaling = this.initScaling.bind(this);\n this.onZoom = this.onZoom.bind(this);\n this.handleZoom = this.handleZoom.bind(this);\n this.mouseDown = this.mouseDown.bind(this);\n this.mouseUp = this.mouseUp.bind(this);\n this.mouseMove = this.mouseMove.bind(this);\n this.mouseTouch = this.mouseTouch.bind(this);\n this.positionAll = this.positionAll.bind(this);\n this.translate = this.translate.bind(this);\n }\n\n componentDidMount() {\n this.overlay.current.addEventListener('mousedown', this.mouseDown, { passive: true });\n this.overlay.current.addEventListener('touchstart', this.mouseDown, { passive: true });\n\n // The rectangle position is in viewport coordinates.\n this.bBoxRect = this.boundingBox.current.getBoundingClientRect();\n // Center of the bounding box in container coordinates.\n this.originX = this.bBoxRect.width / 2;\n this.originY = this.bBoxRect.height / 2;\n\n // The rectangle position is in viewport coordinates.\n this.cutoutRect = this.cutout.current.getBoundingClientRect();\n }\n\n componentWillUnmount() {\n this.overlay.current.removeEventListener('mousedown', this.mouseDown);\n this.overlay.current.removeEventListener('touchstart', this.mouseDown);\n }\n\n // Position all elements.\n positionAll(panX, panY, zoom) {\n // Zoom origin in image preview coordinates.\n this.setState({\n panX: panX,\n panY: panY,\n zoom: zoom,\n originX: this.originX - panX,\n originY: this.originY - panY,\n });\n\n // Pass cut out coordinates to caller.\n const left = (this.originX - panX) * zoom - this.originX;\n const top = (this.originY - panY) * zoom - this.originY;\n this.props.onChange(\n (left + this.cutoutRect.left - this.bBoxRect.left) / zoom,\n (top + this.cutoutRect.top - this.bBoxRect.top) / zoom,\n this.cutoutRect.width / zoom,\n this.cutoutRect.height / zoom,\n zoom);\n }\n\n // Check if new location is within the limits.\n static checkBound(currPan, img, cutout, delta) {\n let nextDiff = Math.min(0, cutout[0] - img[0] - delta, img[1] - cutout[1] + delta);\n if (nextDiff == 0) {\n // Cutout is completely within the image.\n currPan += delta;\n } else if (Math.min(0, cutout[0] - img[0], img[1] - cutout[1]) < nextDiff) {\n // Cutout is outside of the range but closer to the bound.\n currPan += delta;\n }\n return currPan;\n }\n\n initScaling() {\n // Initialize components.\n const imgRect = this.preview.current.getBoundingClientRect();\n\n this.imageWidth = imgRect.width;\n this.imageHeight = imgRect.height;\n\n // Set zoom slider's min and max values. Make sure the scaled image cannot be smaller than the cutout.\n const minZoom = Math.max(this.cutoutRect.width / imgRect.width, this.cutoutRect.height / imgRect.height);\n this.setState({\n minZoom: minZoom,\n maxZoom: Math.max(DEFAULT_MAX_ZOOM, minZoom + 1)\n });\n\n // Initial zoom level fills the bounding box at the smallest image dimension and overflows the largest, i.e. \"fill\" not \"fit\".\n const zoom = Math.max(this.bBoxRect.width / imgRect.width, this.bBoxRect.height / imgRect.height);\n // Converting from viewport coordinates to container, then panning.\n const panX = this.cutoutRect.left - this.bBoxRect.left -\n (imgRect.width - this.cutoutRect.width) / 2;\n const panY = this.cutoutRect.top - this.bBoxRect.top -\n (imgRect.height - this.cutoutRect.height) / 2;\n\n this.positionAll(panX, panY, zoom);\n }\n\n onZoom(e) {\n this.handleZoom(e.target.value);\n }\n\n handleZoom(zoom) {\n let panX = this.state.panX;\n let panY = this.state.panY;\n\n // Ensure that the image at the new zoom is not outside of the cutout boundaries.\n // Calculate image coordinates at the new zoom.\n const imgLeft = this.originX - (this.originX - panX) * zoom;\n const imgRight = imgLeft + this.imageWidth * zoom;\n // Cutout in the same coordinates as the image.\n const coLeft = this.cutoutRect.left - this.bBoxRect.left;\n const coRight = coLeft + this.cutoutRect.width;\n if (coLeft < imgLeft) {\n panX -= imgLeft - coLeft;\n } else if (coRight > imgRight) {\n panX += coRight - imgRight;\n }\n const imgTop = this.originY - (this.originY - panY) * zoom;\n const imgBottom = imgTop + this.imageHeight * zoom;\n const coTop = this.cutoutRect.top - this.bBoxRect.top;\n const coBottom = coTop + this.cutoutRect.height;\n if (coTop < imgTop) {\n panY -= imgTop - coTop;\n } else if (coBottom > imgBottom) {\n panY += coBottom - imgBottom;\n }\n\n this.positionAll(panX, panY, zoom);\n }\n\n mouseDown(e) {\n if (e.touches) {\n this.mouseX = e.touches[0].pageX;\n this.mouseY = e.touches[0].pageY;\n } else {\n this.mouseX = e.pageX;\n this.mouseY = e.pageY;\n }\n\n window.addEventListener('mousemove', this.mouseMove, { passive: false });\n window.addEventListener('touchmove', this.mouseTouch, { passive: false });\n window.addEventListener('mouseup', this.mouseUp, { passive: true });\n window.addEventListener('touchend', this.mouseUp, { passive: true });\n // Disable text selection in the entire document.\n document.body.style['userSelect'] = 'none';\n }\n\n // Perform image panning.\n translate(pageX, pageY) {\n const dX = pageX - this.mouseX;\n const dY = pageY - this.mouseY;\n\n this.mouseX = pageX;\n this.mouseY = pageY;\n\n // Make sure the image is within the cutout window.\n const imgRect = this.preview.current.getBoundingClientRect();\n\n // Check if the new position is within the boundaries, and if not if it's closer to them.\n let panX = Cropper.checkBound(this.state.panX, [imgRect.left, imgRect.right],\n [this.cutoutRect.left, this.cutoutRect.right], dX);\n let panY = Cropper.checkBound(this.state.panY, [imgRect.top, imgRect.bottom],\n [this.cutoutRect.top, this.cutoutRect.bottom], dY);\n\n this.positionAll(panX, panY, this.state.zoom);\n }\n\n // Image panning.\n mouseMove(e) {\n e.preventDefault();\n this.translate(e.pageX, e.pageY);\n }\n\n mouseTouch(e) {\n e.preventDefault();\n\n if (e.touches.length == 1) {\n this.translate(e.touches[0].pageX, e.touches[0].pageY);\n return;\n }\n\n // Image zooming by pinching.\n const [touch0, touch1] = e.touches;\n const distance = Math.sqrt((touch0.pageX - touch1.pageX) * (touch0.pageX - touch1.pageX) +\n (touch0.pageY - touch1.pageY) * (touch0.pageY - touch1.pageY));\n\n if (!this.prevDistance) {\n this.prevDistance = distance / this.state.zoom;\n }\n\n let scale = (distance / this.prevDistance);\n this.handleZoom(Math.max(this.minZoom, Math.min(this.maxZoom, scale)));\n }\n\n mouseUp(e) {\n window.removeEventListener('mousemove', this.mouseMove);\n window.removeEventListener('touchmove', this.mouseTouch);\n window.removeEventListener('mouseup', this.mouseUp);\n window.removeEventListener('touchend', this.mouseUp);\n // Re-enable text selection.\n document.body.style['userSelect'] = '';\n\n this.positionAll(this.state.panX, this.state.panY, this.state.zoom);\n }\n\n render() {\n // transform3d: position and scale.\n const t3d = `translate3d(${this.state.panX}px, ${this.state.panY}px, 0) scale(${this.state.zoom})`;\n // transformOrigin: zoom origin.\n const orig = `${this.state.originX}px ${this.state.originY}px`;\n\n // Overlay position and size are exactly equal to the position and size of the transformed image\n // except it uses different coordinates.\n const overlay = {\n top: `${this.originY - this.state.originY * this.state.zoom}px`,\n left: `${this.originX - this.state.originX * this.state.zoom}px`,\n width: `${this.imageWidth * this.state.zoom}px`,\n height: `${this.imageHeight * this.state.zoom}px`\n };\n return (\n
\n
\n \n \n \n
\n
\n \n
\n
\n );\n }\n}\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport SendMessage from '../widgets/send-message.jsx';\n\nimport { bytesToHumanSize, shortenFileName } from '../lib/strformat.js';\n\n// Get material icon name from mime type.\nfunction iconFromMime(mime) {\n // If more icons become available in material icons, add them to this mime-to-icon mapping.\n const mimeToIcon = {default: 'insert_drive_file', image: 'image', text: 'description', video: 'theaters'};\n\n return mimeToIcon[mime] || mimeToIcon[(mime || '').split('/')[0]] || mimeToIcon['default'];\n}\n\nexport default class DocPreview extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleSendDoc = this.handleSendDoc.bind(this);\n }\n\n handleSendDoc(caption) {\n this.props.onClose();\n this.props.onSendMessage(this.props.content.file);\n }\n\n render() {\n if (!this.props.content) {\n return null;\n }\n return (\n
\n );\n }\n}\n","// GroupMembers: control for managing a list of group members.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport ChipInput from './chip-input.jsx';\nimport ContactList from './contact-list.jsx';\n\nconst messages = defineMessages({\n no_contacts: {\n id: 'no_contacts',\n defaultMessage: 'You have no contacts :-(',\n description: 'Shown in ContactsView when the user has no contacts'\n },\n contacts_not_found_short: {\n id: 'contacts_not_found_short',\n defaultMessage: \"No contacts match ''{query}''\",\n description: 'Shown in ContactsView when search returned no results'\n }\n});\n\nclass GroupManager extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n // Array of topic members\n members: props.members,\n index: GroupManager.indexMembers(props.members),\n staticMembers: GroupManager.staticMembers(props.members, props.keepInitialMembers, props.requiredMember),\n contactFilter: '',\n noContactsMessage: props.intl.formatMessage(messages.no_contacts),\n selectedContacts: GroupManager.selectedContacts(props.members)\n };\n\n this.handleContactSelected = this.handleContactSelected.bind(this);\n this.handleMemberRemoved = this.handleMemberRemoved.bind(this);\n this.handleContactFilter = this.handleContactFilter.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n }\n\n static indexMembers(members) {\n let index = {};\n members.map((m) => {\n index[m.user] = {delta: 0, present: true}; // Delta: 0 unchanged, +1 added, -1 removed\n });\n return index;\n }\n\n static staticMembers(members, keepInitial, requiredMember) {\n let stat = [];\n members.map((m) => {\n if (keepInitial || m.user == requiredMember) {\n stat.push(m.user);\n }\n });\n return stat;\n }\n\n static selectedContacts(members) {\n let sel = [];\n members.map((m) => {\n sel.push(m.user);\n });\n return sel;\n }\n\n handleContactSelected(userId, index) {\n let status = this.state.index[userId];\n if (status) {\n if (status.present) {\n // Prevent duplicate members\n return;\n }\n status.delta += 1;\n status.present = true;\n } else {\n status = {delta: 1, present: true};\n }\n\n let m = this.state.members.slice();\n m.push(this.props.contacts[index]);\n\n const sel = GroupManager.selectedContacts(m);\n\n const i = this.state.index;\n i[userId] = status;\n\n this.setState({members: m, index: i, selectedContacts: sel});\n }\n\n handleMemberRemoved(userId, index) {\n const status = this.state.index[userId];\n if (!status || !status.present) {\n return;\n }\n status.present = false;\n status.delta -= 1;\n\n let m = this.state.members.slice();\n m.splice(index, 1);\n\n const sel = GroupManager.selectedContacts(m);\n\n const i = this.state.index;\n i[userId] = status;\n\n this.setState({members: m, index: i, selectedContacts: sel});\n }\n\n handleContactFilter(val) {\n const {formatMessage} = this.props.intl;\n const msg = !val ?\n formatMessage(messages.no_contacts) :\n formatMessage(messages.contacts_not_found_short, {query: val});\n\n this.setState({contactFilter: val, noContactsMessage: msg});\n }\n\n static doContactFiltering(filter, values) {\n if (filter) {\n for (let i=0; i= 0) {\n return true;\n }\n }\n return false;\n }\n return true;\n }\n\n handleSubmit() {\n var instance = this;\n var members = [];\n var added = [];\n var removed = [];\n\n var keys = Object.keys(this.state.index);\n keys.map(function(k) {\n if (instance.state.index[k].present) {\n members.push(k);\n }\n\n if (instance.state.index[k].delta > 0) {\n added.push(k);\n } else if (instance.state.index[k].delta < 0) {\n removed.push(k);\n }\n });\n this.props.onSubmit(members, added, removed);\n }\n\n handleCancel() {\n this.props.onCancel();\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n return (\n
\n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n \n \n
\n
\n );\n }\n};\n\nexport default injectIntl(GroupManager);\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
: null);\n }\n}\n","// The X menu to be displayed in title bars.\nimport React from 'react';\n\nexport default class MenuCancel extends React.PureComponent {\n render() {\n return (\n {e.preventDefault(); this.props.onCancel();}}>\n close\n \n );\n }\n}\n","import React from 'react';\n\nexport default class MenuContacts extends React.PureComponent {\n render() {\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';\nimport { FormattedMessage } from 'react-intl';\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.deleted) {\n // Message represents a range of deleted messages.\n content = <>block\n \n >\n bubbleClass += ' deleted';\n } else 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","// Image view with progress bar and a cancel button.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\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 LazyImage from '../widgets/lazy-image.jsx'\nimport UploadingImage from '../widgets/uploading-image.jsx'\n\nimport { IMAGE_THUMBNAIL_DIM, BROKEN_IMAGE_SIZE, REM_SIZE } from '../config.js';\nimport { base64ToBlob, blobToBase64, fitImageSize, imageScaled } from './blob-helpers.js';\nimport { idToColorClass, secondsToTime, shortenFileName } from './strformat.js';\nimport { cancelablePromise, 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_unknown: {\n id: 'drafty_unknown',\n defaultMessage: 'Unsupported',\n description: 'Unsupported entity in drafty'\n }\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 = 'img/broken_image.png';\n }\n } else {\n // Use custom element instead of .\n el = UploadingImage;\n }\n\n return el;\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: this.props.viewportWidth;\n// authorizeURL: this.props.tinode.authorizeURL\n// onImagePreview: this.handleImagePreview\n// onFormButtonClick: this.handleFormButtonClick\n// onQuoteClick: this.handleQuoteClick (optional)\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 '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 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// 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 'QQ':\n case 'HD':\n el = null;\n values = null;\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 }\n attr.title = attr.alt;\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'].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 '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 quoteImage(data) {\n let promise;\n // Get the blob from the image data.\n if (data.val) {\n const blob = base64ToBlob(data.val, data.mime);\n if (!blob) {\n throw new Error(\"Invalid image\");\n }\n promise = Promise.resolve(blob);\n } else if (data.ref) {\n promise = fetch(this.authorizeURL(sanitizeUrlForMime(data.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 // Cut the square from the center of the image and shrink it.\n return imageScaled(blob, IMAGE_THUMBNAIL_DIM, IMAGE_THUMBNAIL_DIM, -1, true)\n }).then(scaled => {\n data.mime = scaled.mime;\n data.size = scaled.blob.size;\n data.width = scaled.width;\n data.height = scaled.height;\n delete data.ref;\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 data.val = b64.bits;\n return data;\n }).catch(err => {\n delete data.val;\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') {\n const attr = inlineImageAttr.call(this, {key: key}, data);\n let loadedPromise;\n try {\n loadedPromise = cancelablePromise(quoteImage.call(this, data));\n } catch (error) {\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}));\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
: null);\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\nexport default injectIntl(SendMessage);\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport SendMessage from '../widgets/send-message.jsx';\n\nimport { bytesToHumanSize, shortenFileName } from '../lib/strformat.js';\n\n// Get material icon name from mime type.\nfunction iconFromMime(mime) {\n // If more icons become available in material icons, add them to this mime-to-icon mapping.\n const mimeToIcon = {default: 'insert_drive_file', image: 'image', text: 'description', video: 'theaters'};\n\n return mimeToIcon[mime] || mimeToIcon[(mime || '').split('/')[0]] || mimeToIcon['default'];\n}\n\nexport default class DocPreview extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleSendDoc = this.handleSendDoc.bind(this);\n }\n\n handleSendDoc(caption) {\n this.props.onClose();\n this.props.onSendMessage(this.props.content.file);\n }\n\n render() {\n if (!this.props.content) {\n return null;\n }\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';\nimport { FormattedMessage } from 'react-intl';\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.deleted) {\n // Message represents a range of deleted messages.\n content = <>block\n \n >\n bubbleClass += ' deleted';\n } else 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 {content}\n
\n
\n
\n );\n }\n};\n","// Utility class for hash navigation.\n\n// Parse hash as in http://www.example.com/path#hash as if it were\n// path and arguments.\nexport default class HashNavigation {\n static parseUrlHash(hash) {\n // Split path from 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(function(part) {\n const item = part.split('=');\n if (item[0]) {\n params[decodeURIComponent(item[0])] = decodeURIComponent(item[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 args.push(key + '=' + params[key]);\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 = this.parseUrlHash(hash);\n parsed.params[key] = value;\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static removeUrlParam(hash, key) {\n const parsed = this.parseUrlHash(hash);\n delete parsed.params[key];\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlSidePanel(hash, sidepanel) {\n const parsed = this.parseUrlHash(hash);\n parsed.path[0] = sidepanel;\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlInfoPanel(hash, infopanel) {\n const parsed = this.parseUrlHash(hash);\n if (infopanel) {\n parsed.params.info = infopanel;\n } else {\n delete parsed.params.info;\n }\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlTopic(hash, topic) {\n const parsed = this.parseUrlHash(hash);\n parsed.path[1] = topic;\n // Close InfoView on topic change.\n delete parsed.params.info;\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n}\n","// Panel with a chat.\n\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport { Drafty, Tinode } from 'tinode-sdk';\n\nimport ChatMessage from '../widgets/chat-message.jsx';\nimport ContactBadges from '../widgets/contact-badges.jsx';\nimport DocPreview from '../widgets/doc-preview.jsx';\nimport ErrorPanel from '../widgets/error-panel.jsx';\nimport GroupSubs from '../widgets/group-subs.jsx';\nimport ImagePreview from '../widgets/image-preview.jsx';\nimport Invitation from '../widgets/invitation.jsx';\nimport LetterTile from '../widgets/letter-tile.jsx';\nimport LoadSpinner from '../widgets/load-spinner.jsx';\nimport LogoView from './logo-view.jsx';\nimport MetaMessage from '../widgets/meta-message.jsx';\nimport SendMessage from '../widgets/send-message.jsx';\n\nimport { DEFAULT_P2P_ACCESS_MODE, IMAGE_PREVIEW_DIM, KEYPRESS_DELAY,\n MESSAGES_PAGE, MAX_EXTERN_ATTACHMENT_SIZE, MAX_IMAGE_DIM, MAX_INBAND_ATTACHMENT_SIZE,\n READ_DELAY, QUOTED_REPLY_LENGTH } from '../config.js';\nimport { blobToBase64, fileToBase64, imageScaled, makeImageUrl } from '../lib/blob-helpers.js';\nimport HashNavigation from '../lib/navigation.js';\nimport { bytesToHumanSize, shortDateFormat } from '../lib/strformat.js';\n\n// Run timer with this frequency (ms) for checking notification queue.\nconst NOTIFICATION_EXEC_INTERVAL = 300;\n// Scroll distance before [go to latest message] button is shown.\nconst SHOW_GO_TO_LAST_DIST = 100;\n\nconst messages = defineMessages({\n online_now: {\n id: 'online_now',\n defaultMessage: 'online now',\n description: 'Indicator that the user or topic is currently online',\n },\n last_seen: {\n id: 'last_seen_timestamp',\n defaultMessage: 'Last seen',\n description: 'Label for the timestamp of when the user or topic was last online'\n },\n not_found: {\n id: 'title_not_found',\n defaultMessage: 'Not found',\n description: 'Title shown when topic is not found'\n },\n channel: {\n id: 'channel',\n defaultMessage: 'channel',\n description: 'Subtitle shown for channels in MessagesView instead of last seen'\n },\n file_attachment_too_large: {\n id: 'file_attachment_too_large',\n defaultMessage: 'The file size {size} exceeds the {limit} limit.',\n description: 'Error message when attachment is too large'\n },\n invalid_content: {\n id: 'invalid_content',\n defaultMessage: 'invalid content',\n description: 'Shown when the message is unreadable'\n },\n});\n\n// Checks if the access permissions are granted but not yet accepted.\nfunction isUnconfirmed(acs) {\n if (acs) {\n const ex = acs.getExcessive() || '';\n return acs.isJoiner('given') && (ex.includes('R') || ex.includes('W'));\n }\n return false;\n}\n\nfunction isPeerRestricted(acs) {\n if (acs) {\n const ms = acs.getMissing() || '';\n return acs.isJoiner('want') && (ms.includes('R') || ms.includes('W'));\n }\n return false;\n}\n\nclass MessagesView extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = MessagesView.getDerivedStateFromProps(props, {});\n\n this.leave = this.leave.bind(this);\n this.sendMessage = this.sendMessage.bind(this);\n this.retrySend = this.retrySend.bind(this);\n this.sendImageAttachment = this.sendImageAttachment.bind(this);\n this.sendFileAttachment = this.sendFileAttachment.bind(this);\n this.sendAudioAttachment = this.sendAudioAttachment.bind(this);\n this.sendKeyPress = this.sendKeyPress.bind(this);\n this.subscribe = this.subscribe.bind(this);\n this.handleScrollReference = this.handleScrollReference.bind(this);\n this.handleScrollEvent = this.handleScrollEvent.bind(this);\n this.handleDescChange = this.handleDescChange.bind(this);\n this.handleSubsUpdated = this.handleSubsUpdated.bind(this);\n this.handleMessageUpdate = this.handleMessageUpdate.bind(this);\n this.handleAllMessagesReceived = this.handleAllMessagesReceived.bind(this);\n this.handleInfoReceipt = this.handleInfoReceipt.bind(this);\n this.handleImagePostview = this.handleImagePostview.bind(this);\n this.handleClosePreview = this.handleClosePreview.bind(this);\n this.handleFormResponse = this.handleFormResponse.bind(this);\n this.handleContextClick = this.handleContextClick.bind(this);\n this.handleShowMessageContextMenu = this.handleShowMessageContextMenu.bind(this);\n this.handleNewChatAcceptance = this.handleNewChatAcceptance.bind(this);\n this.handleEnablePeer = this.handleEnablePeer.bind(this);\n this.handleAttachFile = this.handleAttachFile.bind(this);\n this.handleAttachImage = this.handleAttachImage.bind(this);\n this.handleCancelUpload = this.handleCancelUpload.bind(this);\n this.postReadNotification = this.postReadNotification.bind(this);\n this.clearNotificationQueue = this.clearNotificationQueue.bind(this);\n this.goToLatestMessage = this.goToLatestMessage.bind(this);\n\n this.handlePickReply = this.handlePickReply.bind(this);\n this.handleCancelReply = this.handleCancelReply.bind(this);\n this.handleQuoteClick = this.handleQuoteClick.bind(this);\n\n this.chatMessageRefs = {};\n this.getOrCreateMessageRef = this.getOrCreateMessageRef.bind(this);\n\n this.readNotificationQueue = [];\n this.readNotificationTimer = null;\n }\n\n getOrCreateMessageRef(seqId) {\n if (this.chatMessageRefs.hasOwnProperty(seqId)) {\n return this.chatMessageRefs[seqId];\n }\n const ref = React.createRef();\n this.chatMessageRefs[seqId] = ref;\n return ref;\n }\n\n componentDidMount() {\n if (this.messagesScroller) {\n this.messagesScroller.addEventListener('scroll', this.handleScrollEvent);\n }\n }\n\n componentWillUnmount() {\n if (this.messagesScroller) {\n this.messagesScroller.removeEventListener('scroll', this.handleScrollEvent);\n }\n\n // Flush all notifications.\n this.clearNotificationQueue();\n }\n\n // Scroll last message into view on component update e.g. on message received\n // or vertical shrinking.\n componentDidUpdate(prevProps, prevState) {\n if (this.messagesScroller &&\n (prevState.topic != this.state.topic || prevState.messageCount != this.state.messageCount)) {\n // New message.\n if (this.state.scrollPosition < SHOW_GO_TO_LAST_DIST) {\n this.messagesScroller.scrollTop = this.messagesScroller.scrollHeight -\n this.state.scrollPosition -\n this.messagesScroller.offsetHeight;\n }\n }\n\n const topic = this.props.tinode ? this.props.tinode.getTopic(this.state.topic) : undefined;\n if (this.state.topic != prevState.topic) {\n if (prevState.topic && !Tinode.isNewGroupTopicName(prevState.topic)) {\n this.leave(prevState.topic);\n }\n\n if (topic) {\n topic.onData = this.handleMessageUpdate;\n topic.onAllMessagesReceived = this.handleAllMessagesReceived;\n topic.onInfo = this.handleInfoReceipt;\n topic.onMetaDesc = this.handleDescChange;\n topic.onSubsUpdated = this.handleSubsUpdated;\n topic.onPres = this.handleSubsUpdated;\n }\n }\n\n if (!this.props.applicationVisible) {\n // If application is not visible, flush all unsent 'read' notifications.\n this.clearNotificationQueue();\n } else {\n // Otherwise assume there are unread messages.\n this.postReadNotification(0);\n }\n\n if (topic && ((this.state.topic != prevState.topic) || !prevProps.ready)) {\n // Don't immediately subscribe to a new p2p topic, wait for the first message.\n if (topic._new && topic.isP2PType()) {\n topic.getMeta(topic.startMetaQuery().withDesc().build());\n } else {\n this.subscribe(topic);\n }\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n let nextState = {};\n if (!nextProps.topic) {\n // Default state: no topic.\n nextState = {\n messageCount: 0,\n latestClearId: -1,\n onlineSubs: [],\n topic: null,\n title: '',\n avatar: null,\n isVerified: false,\n isStaff: false,\n isDangerous: false,\n deleted: false,\n docPreview: null,\n imagePreview: null,\n imagePostview: null,\n typingIndicator: false,\n scrollPosition: 0,\n fetchingMessages: false,\n peerMessagingDisabled: false,\n channel: false,\n reply: null,\n showGoToLastButton: false\n };\n } else if (nextProps.topic != prevState.topic) {\n const topic = nextProps.tinode.getTopic(nextProps.topic);\n\n let reply = null;\n if (nextProps.forwardMessage) {\n // We are forwarding a message. Show preview.\n const preview = nextProps.forwardMessage.preview;\n reply = {\n content: preview,\n seq: null\n };\n }\n\n nextState = {\n topic: nextProps.topic,\n docPreview: null,\n imagePreview: null,\n imagePostview: null,\n typingIndicator: false,\n scrollPosition: 0,\n fetchingMessages: false,\n reply: reply,\n showGoToLastButton: false,\n deleted: topic._deleted\n };\n\n if (topic) {\n // Topic exists.\n const subs = [];\n\n if (nextProps.connected) {\n topic.subscribers((sub) => {\n if (sub.online && sub.user != nextProps.myUserId) {\n subs.push(sub);\n }\n });\n }\n\n Object.assign(nextState, {\n onlineSubs: subs\n });\n\n if (topic.public) {\n Object.assign(nextState, {\n title: topic.public.fn,\n avatar: makeImageUrl(topic.public.photo)\n });\n } else {\n Object.assign(nextState, {\n title: '',\n avatar: null\n });\n }\n\n const peer = topic.p2pPeerDesc();\n if (peer) {\n Object.assign(nextState, {\n peerMessagingDisabled: isPeerRestricted(peer.acs)\n });\n } else if (prevState.peerMessagingDisabled) {\n Object.assign(nextState, {\n peerMessagingDisabled: false\n });\n }\n Object.assign(nextState, {\n messageCount: topic.messageCount(),\n latestClearId: topic.maxClearId(),\n channel: topic.isChannelType()\n });\n } else {\n // Invalid topic.\n Object.assign(nextState, {\n messageCount: 0,\n latestClearId: -1,\n onlineSubs: [],\n title: '',\n avatar: null,\n peerMessagingDisabled: false,\n channel: false\n });\n }\n }\n\n if (nextProps.acs) {\n if (nextProps.acs.isWriter() != prevState.isWriter) {\n nextState.isWriter = !prevState.isWriter;\n }\n if (nextProps.acs.isReader() != prevState.isReader) {\n nextState.isReader = !prevState.isReader;\n }\n if (!nextProps.acs.isReader('given') != prevState.readingBlocked) {\n nextState.readingBlocked = !prevState.readingBlocked;\n }\n if (nextProps.acs.isSharer() != prevState.isSharer) {\n nextState.isSharer = !prevState.isSharer;\n }\n } else {\n if (prevState.isWriter) {\n nextState.isWriter = false;\n }\n if (prevState.isReader) {\n nextState.isReader = false;\n }\n if (!prevState.readingBlocked) {\n prevState.readingBlocked = true;\n }\n if (prevState.isSharer) {\n nextState.isSharer = false;\n }\n }\n\n if (isUnconfirmed(nextProps.acs) == !prevState.unconformed) {\n nextState.unconfirmed = !prevState.unconformed;\n }\n\n // Clear subscribers online when there is no connection.\n if (!nextProps.connected && prevState.onlineSubs && prevState.onlineSubs.length > 0) {\n nextState.onlineSubs = [];\n }\n\n return nextState;\n }\n\n subscribe(topic) {\n if (topic.isSubscribed() || !this.props.ready) {\n return;\n }\n\n // Is this a new topic?\n const newTopic = (this.props.newTopicParams && this.props.newTopicParams._topicName == this.props.topic);\n\n // Don't request the tags. They are useless unless the user\n // is the owner and is editing the topic.\n let getQuery = topic.startMetaQuery().withLaterDesc().withLaterSub();\n if (this.state.isReader || newTopic) {\n // Reading is either permitted or we don't know because it's a new topic. Ask for messages.\n getQuery = getQuery.withLaterData(MESSAGES_PAGE);\n if (this.state.isReader) {\n getQuery = getQuery.withLaterDel();\n }\n // And show \"loading\" spinner.\n this.setState({ fetchingMessages: true });\n }\n\n const setQuery = newTopic ? this.props.newTopicParams : undefined;\n topic.subscribe(getQuery.build(), setQuery)\n .then((ctrl) => {\n if (ctrl.code == 303) {\n // Redirect to another topic requested.\n HashNavigation.navigateTo(HashNavigation.setUrlTopic('', ctrl.params.topic));\n return;\n }\n if (this.state.topic != ctrl.topic) {\n this.setState({topic: ctrl.topic});\n }\n this.props.onNewTopicCreated(this.props.topic, ctrl.topic);\n // If there are unsent messages, try sending them now.\n topic.queuedMessages((pub) => {\n if (pub._sending) {\n return;\n }\n if (topic.isSubscribed()) {\n this.retrySend(pub);\n }\n });\n })\n .catch((err) => {\n console.error(\"Failed subscription to\", this.state.topic);\n this.props.onError(err.message, 'err');\n const blankState = MessagesView.getDerivedStateFromProps({}, {});\n blankState.title = this.props.intl.formatMessage(messages.not_found);\n this.setState(blankState);\n });\n }\n\n leave(oldTopicName) {\n if (!oldTopicName || !this.props.tinode.isTopicCached(oldTopicName)) {\n return;\n }\n const oldTopic = this.props.tinode.getTopic(oldTopicName);\n if (oldTopic && oldTopic.isSubscribed()) {\n oldTopic.leave(false)\n .catch(() => { /* do nothing here */ })\n .finally(() => {\n // We don't care if the request succeeded or failed.\n // The topic is dead regardless.\n this.setState({fetchingMessages: false});\n oldTopic.onData = undefined;\n oldTopic.onAllMessagesReceived = undefined;\n oldTopic.onInfo = undefined;\n oldTopic.onMetaDesc = undefined;\n oldTopic.onSubsUpdated = undefined;\n oldTopic.onPres = undefined;\n });\n }\n }\n\n // Don't use React.createRef as the ref.current is not available in componentDidMount in this component.\n handleScrollReference(node) {\n if (node) {\n node.addEventListener('scroll', this.handleScrollEvent);\n this.messagesScroller = node;\n this.messagesScroller.scrollTop = this.messagesScroller.scrollHeight - this.state.scrollPosition;\n }\n }\n\n // Get older messages and show/hide [go to latest message] button.\n handleScrollEvent(event) {\n const pos = event.target.scrollHeight - event.target.scrollTop - event.target.offsetHeight;\n this.setState({\n scrollPosition: pos,\n showGoToLastButton: pos > SHOW_GO_TO_LAST_DIST,\n });\n\n if (this.state.fetchingMessages) {\n return;\n }\n\n if (event.target.scrollTop <= 0) {\n const topic = this.props.tinode.getTopic(this.state.topic);\n if (topic && topic.isSubscribed() && topic.msgHasMoreMessages()) {\n this.setState({fetchingMessages: true}, () => {\n topic.getMessagesPage(MESSAGES_PAGE)\n .catch((err) => this.props.onError(err.message, 'err'))\n .finally(() => this.setState({fetchingMessages: false}));\n });\n }\n }\n }\n\n goToLatestMessage() {\n this.setState({scrollPosition: 0});\n if (this.messagesScroller) {\n this.messagesScroller.scrollTop = this.messagesScroller.scrollHeight;\n }\n }\n\n handleDescChange(desc) {\n if (desc.public) {\n this.setState({\n title: desc.public.fn,\n avatar: makeImageUrl(desc.public.photo)\n });\n } else {\n this.setState({\n title: '',\n avatar: null\n });\n }\n\n if (desc.acs) {\n this.setState({\n isWriter: desc.acs.isWriter(),\n isReader: desc.acs.isReader(),\n readingBlocked: !desc.acs.isReader('given'),\n unconfirmed: isUnconfirmed(desc.acs),\n });\n }\n }\n\n postReadNotification(seq) {\n // Ignore notifications if the app is invisible.\n if (!this.props.applicationVisible) {\n return;\n }\n\n // Set up the timer if it's not running already.\n if (!this.readNotificationTimer) {\n this.readNotificationTimer = setInterval(() => {\n if (this.readNotificationQueue.length == 0) {\n // Shut down the timer if the queue is empty.\n clearInterval(this.readNotificationTimer);\n this.readNotificationTimer = null;\n return;\n }\n\n let seq = -1;\n while (this.readNotificationQueue.length > 0) {\n const n = this.readNotificationQueue[0];\n if (n.topicName != this.state.topic) {\n // Topic has changed. Drop the notification.\n this.readNotificationQueue.shift();\n continue;\n }\n\n const now = new Date();\n if (n.sendAt <= now) {\n // Remove expired notification from queue.\n this.readNotificationQueue.shift();\n seq = Math.max(seq, n.seq);\n } else {\n break;\n }\n }\n\n // Send only one notification for the whole batch of messages.\n if (seq >= 0) {\n const topic = this.props.tinode.getTopic(this.state.topic);\n if (topic) {\n topic.noteRead(seq);\n }\n }\n }, NOTIFICATION_EXEC_INTERVAL);\n }\n\n const now = new Date();\n this.readNotificationQueue.push({\n topicName: this.state.topic,\n seq: seq,\n sendAt: now.setMilliseconds(now.getMilliseconds() + READ_DELAY)\n });\n }\n\n // Clear notification queue and timer.\n clearNotificationQueue() {\n this.readNotificationQueue = [];\n if (this.readNotificationTimer) {\n clearInterval(this.readNotificationTimer);\n this.readNotificationTimer = null;\n }\n }\n\n handleSubsUpdated() {\n if (this.state.topic) {\n const subs = [];\n const topic = this.props.tinode.getTopic(this.state.topic);\n topic.subscribers((sub) => {\n if (sub.online && sub.user != this.props.myUserId) {\n subs.push(sub);\n }\n });\n const newState = {onlineSubs: subs};\n const peer = topic.p2pPeerDesc();\n if (peer) {\n Object.assign(newState, {\n peerMessagingDisabled: isPeerRestricted(peer.acs)\n });\n } else if (this.state.peerMessagingDisabled) {\n Object.assign(newState, {\n peerMessagingDisabled: false\n });\n }\n this.setState(newState);\n }\n }\n\n // The 'msg' could be false-ish if some message ranges were deleted.\n handleMessageUpdate(msg) {\n const topic = this.props.tinode.getTopic(this.state.topic);\n if (!msg) {\n // msg could be null if one or more messages were deleted.\n // Updating state to force redraw.\n this.setState({latestClearId: topic.maxClearId()});\n return;\n }\n\n clearTimeout(this.keyPressTimer)\n this.setState({messageCount: topic.messageCount(), typingIndicator: false});\n\n // Scroll to the bottom if the message is added to the end of the message list.\n // TODO: This should be replaced by showing a \"scroll to bottom\" button.\n if (topic.isNewMessage(msg.seq)) {\n if (this.state.scrollPosition > SHOW_GO_TO_LAST_DIST) {\n this.setState({showGoToLastButton: true});\n } else {\n this.setState({scrollPosition: 0});\n }\n }\n\n // Aknowledge messages except own messages. They are\n // automatically assumed to be read and recived.\n const status = topic.msgStatus(msg, true);\n if (status >= Tinode.MESSAGE_STATUS_SENT && msg.from != this.props.myUserId) {\n this.postReadNotification(msg.seq);\n }\n // This will send \"received\" notifications right away.\n this.props.onData(msg);\n }\n\n handleAllMessagesReceived(count) {\n this.setState({fetchingMessages: false});\n if (count > 0) {\n // 0 means \"latest\".\n this.postReadNotification(0);\n }\n }\n\n handleInfoReceipt(info) {\n switch (info.what) {\n case 'kp': {\n clearTimeout(this.keyPressTimer);\n this.keyPressTimer = setTimeout(() => {\n this.setState({typingIndicator: false});\n }, KEYPRESS_DELAY + 1000);\n if (!this.state.typingIndicator) {\n this.setState({typingIndicator: true});\n }\n break;\n }\n case 'read':\n case 'recv':\n // Redraw due to changed recv/read status.\n this.forceUpdate();\n break;\n default:\n console.info(\"Other change in topic: \", info.what);\n }\n }\n\n handleImagePostview(content) {\n this.setState({ imagePostview: content });\n }\n\n handleClosePreview() {\n if (this.state.imagePreview && this.state.imagePreview.url) {\n URL.revokeObjectURL(this.state.imagePreview.url);\n }\n this.setState({ imagePostview: null, imagePreview: null, docPreview: null });\n }\n\n handleFormResponse(action, text, data) {\n if (action == 'pub') {\n this.sendMessage(Drafty.attachJSON(Drafty.parse(text), data));\n } else if (action == 'url') {\n const url = new URL(data.ref);\n const params = url.searchParams;\n for (let key in data.resp) {\n if (data.resp.hasOwnProperty(key)) {\n params.set(key, data.resp[key]);\n }\n }\n ['name', 'seq'].map((key) => {\n if (data[key]) {\n params.set(key, data[key]);\n }\n });\n params.set('uid', this.props.myUserId);\n params.set('topic', this.state.topic);\n url.search = params;\n window.open(url, '_blank');\n } else {\n console.info(\"Unknown action in form\", action);\n }\n }\n\n handleContextClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.showContextMenu({ topicName: this.state.topic, y: e.pageY, x: e.pageX });\n }\n\n handleShowMessageContextMenu(params, messageSpecificMenuItems) {\n if (params.userFrom == 'chan') {\n params.userFrom = this.state.topic;\n params.userName = this.state.title;\n }\n params.topicName = this.state.topic;\n const menuItems = messageSpecificMenuItems || [];\n const topic = this.props.tinode.getTopic(params.topicName);\n if (topic) {\n if (!topic.isChannelType()) {\n menuItems.push('message_delete');\n }\n const acs = topic.getAccessMode();\n if (acs && acs.isDeleter()) {\n menuItems.push('message_delete_hard');\n }\n }\n this.props.showContextMenu(params, menuItems);\n }\n\n handleNewChatAcceptance(action) {\n this.props.onNewChat(this.state.topic, action);\n }\n\n handleEnablePeer(e) {\n e.preventDefault();\n this.props.onChangePermissions(this.state.topic, DEFAULT_P2P_ACCESS_MODE, this.state.topic);\n }\n\n sendKeyPress() {\n const topic = this.props.tinode.getTopic(this.state.topic);\n if (topic.isSubscribed()) {\n topic.noteKeyPress();\n }\n }\n\n // sendMessage sends the message with an optional subscription to topic first.\n sendMessage(msg, uploadCompletionPromise, uploader) {\n let head;\n if (this.props.forwardMessage) {\n // We are forwarding a message.\n msg = this.props.forwardMessage.msg;\n head = this.props.forwardMessage.head;\n this.handleCancelReply();\n } else if (this.state.reply && this.state.reply.content) {\n // We are replying to a message in this topic.\n head = {reply: '' + this.state.reply.seq};\n // Turn it into Drafty so we can make a quoted Drafty object later.\n if (typeof msg == 'string') {\n msg = Drafty.parse(msg);\n }\n msg = Drafty.append(Drafty.sanitizeEntities(this.state.reply.content), msg);\n this.handleCancelReply();\n }\n this.props.sendMessage(msg, uploadCompletionPromise, uploader, head);\n }\n\n // Retry sending a message.\n retrySend(pub) {\n this.props.sendMessage(pub.content, undefined, undefined, pub.head);\n }\n\n // Send attachment as Drafty message:\n // - if file is too large, upload it and send a s link.\n // - if file is small enough, just send it in-band.\n sendFileAttachment(file) {\n // Server-provided limit reduced for base64 encoding and overhead.\n const maxInbandAttachmentSize = (this.props.tinode.getServerLimit('maxMessageSize',\n MAX_INBAND_ATTACHMENT_SIZE) * 0.75 - 1024) | 0;\n\n if (file.size > maxInbandAttachmentSize) {\n // Too large to send inband - uploading out of band and sending as a link.\n const uploader = this.props.tinode.getLargeFileHelper();\n if (!uploader) {\n this.props.onError(this.props.intl.formatMessage(messages.cannot_initiate_upload));\n return;\n }\n const uploadCompletionPromise = uploader.upload(file);\n const msg = Drafty.attachFile(null, {\n mime: file.type,\n filename: file.name,\n size: file.size,\n urlPromise: uploadCompletionPromise\n });\n // Pass data and the uploader to the TinodeWeb.\n this.sendMessage(msg, uploadCompletionPromise, uploader);\n } else {\n // Small enough to send inband.\n fileToBase64(file)\n .then(b64 => this.sendMessage(Drafty.attachFile(null, {mime: b64.mime, data: b64.bits, filename: b64.name})))\n .catch(err => this.props.onError(err));\n }\n }\n\n // handleAttachFile method is called when [Attach file] button is clicked: launch attachment preview.\n handleAttachFile(file) {\n const maxExternAttachmentSize = this.props.tinode.getServerLimit('maxFileUploadSize', MAX_EXTERN_ATTACHMENT_SIZE);\n\n if (file.size > maxExternAttachmentSize) {\n // Too large.\n this.props.onError(this.props.intl.formatMessage(messages.file_attachment_too_large,\n {size: bytesToHumanSize(file.size), limit: bytesToHumanSize(maxExternAttachmentSize)}), 'err');\n } else {\n this.setState({\n docPreview: {\n file: file,\n name: file.name,\n size: file.size,\n type: file.type\n }\n });\n }\n }\n\n // sendImageAttachment sends the image bits inband as Drafty message.\n sendImageAttachment(caption, blob) {\n const mime = this.state.imagePreview.mime;\n const width = this.state.imagePreview.width;\n const height = this.state.imagePreview.height;\n const fname = this.state.imagePreview.name;\n\n // Server-provided limit reduced for base64 encoding and overhead.\n const maxInbandAttachmentSize = (this.props.tinode.getServerLimit('maxMessageSize',\n MAX_INBAND_ATTACHMENT_SIZE) * 0.75 - 1024) | 0;\n\n if (blob.size > maxInbandAttachmentSize) {\n // Too large to send inband - uploading out of band and sending as a link.\n const uploader = this.props.tinode.getLargeFileHelper();\n if (!uploader) {\n this.props.onError(this.props.intl.formatMessage(messages.cannot_initiate_upload));\n return;\n }\n const uploadCompletionPromise = uploader.upload(blob);\n\n // Make small preview to show while uploading.\n imageScaled(blob, IMAGE_PREVIEW_DIM, IMAGE_PREVIEW_DIM, -1, false)\n // Convert tiny image into base64 for serialization and previewing.\n .then(scaled => blobToBase64(scaled.blob))\n .then(b64 => {\n let msg = Drafty.insertImage(null, 0, {\n mime: mime,\n _tempPreview: b64.bits, // This preview will not be serialized.\n width: width,\n height: height,\n filename: fname,\n size: blob.size,\n urlPromise: uploadCompletionPromise\n });\n if (caption) {\n msg = Drafty.appendLineBreak(msg);\n msg = Drafty.append(msg, Drafty.parse(caption));\n }\n // Pass data and the uploader to the TinodeWeb.\n this.sendMessage(msg, uploadCompletionPromise, uploader);\n }).catch((err) => {\n this.props.onError(err, 'err');\n });\n return;\n }\n\n // Upload the image if it's too big to be send inband.\n blobToBase64(blob)\n .then(b64 => {\n let msg = Drafty.insertImage(null, 0, {\n mime: b64.mime,\n preview: b64.bits, // Serializable preview\n width: width,\n height: height,\n filename: fname,\n size: blob.size\n });\n if (caption) {\n msg = Drafty.appendLineBreak(msg);\n msg = Drafty.append(msg, Drafty.parse(caption));\n }\n this.sendMessage(msg);\n });\n }\n\n // handleAttachImage method is called when [Attach image] button is clicked: launch image preview.\n handleAttachImage(file) {\n const maxExternAttachmentSize = this.props.tinode.getServerLimit('maxFileUploadSize', MAX_EXTERN_ATTACHMENT_SIZE);\n\n // Get image dimensions and size, optionally scale it down.\n imageScaled(file, MAX_IMAGE_DIM, MAX_IMAGE_DIM, maxExternAttachmentSize, false)\n .then(scaled => {\n this.setState({imagePreview: {\n url: URL.createObjectURL(scaled.blob),\n blob: scaled.blob,\n name: scaled.name,\n width: scaled.width,\n height: scaled.height,\n size: scaled.blob.size,\n mime: scaled.mime\n }});\n }).catch(err => {\n this.props.onError(err, 'err');\n });\n }\n\n // sendAudioAttachment sends audio bits inband as Drafty message (no preview).\n sendAudioAttachment(url, preview, duration) {\n fetch(url)\n .then(result => result.blob())\n .then(blob => {\n // Server-provided limit reduced for base64 encoding and overhead.\n const maxInbandAttachmentSize = this.props.tinode.getServerLimit('maxMessageSize', MAX_INBAND_ATTACHMENT_SIZE) * 0.75 - 1024;\n if (blob.size > maxInbandAttachmentSize) {\n // Too large to send inband - uploading out of band and sending as a link.\n const uploader = this.props.tinode.getLargeFileHelper();\n if (!uploader) {\n this.props.onError(this.props.intl.formatMessage(messages.cannot_initiate_upload));\n return;\n }\n const uploadCompletionPromise = uploader.upload(blob);\n const msg = Drafty.appendAudio(null, {\n mime: blob.type,\n size: blob.size,\n duration: duration,\n preview: preview,\n urlPromise: uploadCompletionPromise\n });\n // Pass data and the uploader to the TinodeWeb.\n this.sendMessage(msg, uploadCompletionPromise, uploader);\n } else {\n // Small enough to send inband.\n blobToBase64(blob)\n .then(b64 => {\n this.sendMessage(Drafty.appendAudio(null, {\n mime: b64.mime,\n size: blob.size,\n data: b64.bits,\n duration: duration,\n preview: preview,\n }))\n })\n }\n })\n .catch(err => {this.props.onError(err)});;\n }\n\n handleCancelUpload(seq, uploader) {\n const topic = this.props.tinode.getTopic(this.state.topic);\n const found = topic.findMessage(seq);\n if (found) {\n found._cancelled = true;\n }\n uploader.cancel();\n }\n\n // seq: seq ID of the source message\n // context: message content.\n // forwarded: true if the source message is also a forwarded message.\n // senderId: UID of the sender of the source message.\n // senderName: full name of the sender of the original message.\n handlePickReply(seq, content, senderId, senderName) {\n this.setState({reply: null});\n\n if (!seq || !content) {\n return;\n }\n\n content = typeof content == 'string' ? Drafty.init(content) : content;\n if (Drafty.isValid(content)) {\n content = Drafty.replyContent(content, QUOTED_REPLY_LENGTH);\n } else {\n // /!\\ invalid content.\n content = Drafty.append(Drafty.init('\\u26A0 '),\n Drafty.wrapInto(this.props.intl.formatMessage(messages.invalid_content), 'EM'));\n }\n\n this.setState({\n reply: {\n content: Drafty.quote(senderName, senderId, content),\n seq: seq\n }\n });\n this.props.onCancelForwardMessage();\n }\n\n handleCancelReply() {\n this.setState({reply: null});\n this.props.onCancelForwardMessage();\n }\n\n handleQuoteClick(replyToSeq) {\n const ref = this.getOrCreateMessageRef(replyToSeq);\n if (ref && ref.current) {\n ref.current.scrollIntoView({block: \"center\", behavior: \"smooth\"});\n ref.current.classList.add('flash');\n setTimeout(() => { ref.current.classList.remove('flash') } , 1000);\n } else {\n console.error(\"Unresolved message ref\", replyToSeq);\n }\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n\n let component;\n if (this.props.hideSelf) {\n component = null;\n } else if (!this.state.topic) {\n component = (\n \n );\n } else {\n let component2;\n if (this.state.imagePreview) {\n // Preview image before sending.\n component2 = (\n \n );\n } else if (this.state.imagePostview) {\n // Expand received image.\n component2 = (\n \n );\n } else if (this.state.docPreview) {\n // Preview attachment before sending.\n component2 = (\n \n );\n } else {\n const topic = this.props.tinode.getTopic(this.state.topic);\n const isChannel = topic.isChannelType();\n const groupTopic = topic.isGroupType() && !isChannel;\n const icon_badges = [];\n if (topic.trusted) {\n if (topic.trusted.verified) {\n icon_badges.push({icon: 'verified', color: 'badge-inv'});\n }\n if (topic.trusted.staff) {\n icon_badges.push({icon: 'staff', color: 'badge-inv'});\n }\n if (topic.trusted.danger) {\n icon_badges.push({icon: 'dangerous', color: 'badge-inv'});\n }\n }\n\n const messageNodes = [];\n let previousFrom = null;\n let prevDate = null;\n let chatBoxClass = null;\n const dateFmt = new Intl.DateTimeFormat(this.props.intl.locale);\n topic.messages((msg, prev, next, i) => {\n let nextFrom = next ? (next.from || 'chan') : null;\n\n let sequence = 'single';\n let thisFrom = msg.from || 'chan';\n if (thisFrom == previousFrom) {\n if (thisFrom == nextFrom) {\n sequence = 'middle';\n } else {\n sequence = 'last';\n }\n } else if (thisFrom == nextFrom) {\n sequence = 'first';\n }\n previousFrom = thisFrom;\n\n const isReply = !(thisFrom == this.props.myUserId);\n const deliveryStatus = topic.msgStatus(msg, true);\n\n let userFrom = thisFrom, userName, userAvatar;\n const user = topic.userDesc(thisFrom);\n if (user && user.public) {\n userName = user.public.fn;\n userAvatar = makeImageUrl(user.public.photo);\n }\n chatBoxClass = groupTopic ? 'chat-box group' : 'chat-box';\n\n // Ref for this chat message.\n const ref = this.getOrCreateMessageRef(msg.seq);\n let replyToSeq = msg.head ? parseInt(msg.head.reply) : null;\n if (!replyToSeq || isNaN(replyToSeq)) {\n replyToSeq = null;\n }\n\n if (msg.hi) {\n // Deleted message.\n messageNodes.push(\n \n );\n } else {\n const thisDate = new Date(msg.ts);\n // This message was sent on a different date than the previous.\n if (!prevDate || prevDate.toDateString() != thisDate.toDateString()) {\n messageNodes.push(\n \n );\n prevDate = thisDate;\n }\n messageNodes.push(\n \n );\n }\n });\n\n let lastSeen = null;\n if (isChannel) {\n lastSeen = formatMessage(messages.channel);\n } else {\n const cont = this.props.tinode.getMeTopic().getContact(this.state.topic);\n if (cont && Tinode.isP2PTopicName(cont.topic)) {\n if (cont.online) {\n lastSeen = formatMessage(messages.online_now);\n } else if (cont.seen) {\n lastSeen = formatMessage(messages.last_seen) + \": \" +\n shortDateFormat(cont.seen.when, this.props.intl.locale);\n // TODO: also handle user agent in c.seen.ua\n }\n }\n }\n const avatar = this.state.avatar || true;\n const online = this.state.deleted ? null :\n this.props.online ? 'online' + (this.state.typingIndicator ? ' typing' : '') : 'offline';\n\n const titleClass = 'panel-title' + (this.state.deleted ? ' deleted' : '');\n\n component2 = (\n <>\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 ReactDOM from 'react-dom';\n\nimport { IntlProvider } from 'react-intl';\n\nimport allMessages from './messages.json';\nimport TinodeWeb from './views/tinode-web.jsx';\nimport HashNavigation from './lib/navigation.js';\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// Get the base language 'en' from a more specific 'en_GB' or 'en-US' as a partial fallback.\nconst baseLanguage = language.toLowerCase().split(/[-_]/)[0];\n\n// Try the full locale first, then the locale without the region code, fallback to 'en'.\nconst htmlLang = allMessages[language] ? language : allMessages[baseLanguage] ? baseLanguage : 'en';\nconst messages = allMessages[htmlLang];\n\n// Set lang attribute of the HTML element: \ndocument.getElementsByTagName('html')[0].setAttribute('lang', htmlLang);\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('mountPoint')\n);\n"],"names":["exports","toArray","arr","Array","prototype","slice","call","promisifyRequest","request","Promise","resolve","reject","onsuccess","result","onerror","error","promisifyRequestCall","obj","method","args","p","apply","then","promisifyCursorRequestCall","value","Cursor","proxyProperties","ProxyClass","targetProp","properties","forEach","prop","Object","defineProperty","get","this","set","val","proxyRequestMethods","Constructor","arguments","proxyMethods","proxyCursorRequestMethods","Index","index","_index","cursor","_cursor","_request","ObjectStore","store","_store","Transaction","idbTransaction","_tx","complete","oncomplete","onabort","UpgradeDB","db","oldVersion","transaction","_db","DB","openDb","name","version","upgradeCallback","indexedDB","onupgradeneeded","event","deleteDb","IDBIndex","IDBCursor","methodName","createIndex","IDBObjectStore","objectStore","IDBTransaction","createObjectStore","IDBDatabase","funcName","replace","callback","length","nativeObject","getAll","query","count","instance","items","iterateCursor","push","undefined","continue","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","enumerable","g","globalThis","Function","e","window","hasOwnProperty","React","ReactDOM","ReactIntl","stringToByteArray$1","str","out","i","c","charCodeAt","Deferred","constructor","promise","wrapCallback","catch","FirebaseError","Error","code","message","customData","super","setPrototypeOf","captureStackTrace","ErrorFactory","create","service","serviceName","errors","data","fullCode","template","PATTERN","_","String","replaceTemplate","fullMessage","deepEqual","b","aKeys","keys","bKeys","k","includes","aProp","bProp","isObject","thing","getModularInstance","_delegate","Component","instanceFactory","type","multipleInstances","serviceProps","instantiationMode","onInstanceCreated","setInstantiationMode","mode","setMultipleInstances","setServiceProps","props","setInstanceCreatedCallback","DEFAULT_ENTRY_NAME","Provider","container","component","instances","Map","instancesDeferred","instancesOptions","onInitCallbacks","identifier","normalizedIdentifier","normalizeInstanceIdentifier","has","deferred","isInitialized","shouldAutoInitialize","getOrInitializeService","instanceIdentifier","getImmediate","options","_a","optional","getComponent","setComponent","isComponentEager","instanceDeferred","entries","clearInstance","delete","async","services","from","values","all","filter","map","INTERNAL","_delete","isComponentSet","getOptions","initialize","opts","onInit","existingCallbacks","Set","add","existingInstance","invokeOnInitCallbacks","callbacks","ComponentContainer","providers","addComponent","provider","getProvider","addOrOverwriteComponent","getProviders","LogLevel","levelStringToEnum","DEBUG","VERBOSE","INFO","WARN","ERROR","SILENT","defaultLogLevel","ConsoleMethod","defaultLogHandler","logType","logLevel","now","Date","toISOString","console","PlatformLoggerServiceImpl","getPlatformInfoString","isVersionServiceProvider","library","logString","join","name$o","version$1","logger","_logLevel","_logHandler","_userLogHandler","TypeError","setLogLevel","logHandler","userLogHandler","debug","log","info","warn","PLATFORM_LOG_STRING","_apps","_components","_addComponent","app","_registerComponent","componentName","ERROR_FACTORY","FirebaseAppImpl","config","_isDeleted","_options","assign","_config","_name","_automaticDataCollectionEnabled","automaticDataCollectionEnabled","_container","checkDestroyed","isDeleted","appName","initializeApp","rawConfig","existingApp","newApp","registerVersion","libraryKeyOrName","variant","libraryMismatch","match","versionMismatch","warning","PENDING_TIMEOUT_MS","PACKAGE_VERSION","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","append","getAuthorizationHeader","retryIfServerError","fn","sleep","ms","setTimeout","VALID_FID_PATTERN","generateFid","fidByteArray","Uint8Array","self","crypto","msCrypto","getRandomValues","fid","array","btoa","fromCharCode","substr","encode","test","getKey","appId","fidChangeCallbacks","fidChanged","callFidChangeCallbacks","channel","getBroadcastChannel","postMessage","closeBroadcastChannel","broadcastFidChange","broadcastChannel","BroadcastChannel","onmessage","size","close","OBJECT_STORE_NAME","dbPromise","getDbPromise","upgradeDB","tx","oldValue","put","remove","update","updateFn","newValue","getInstallationEntry","registrationPromise","installationEntry","oldEntry","clearTimedOutRequest","registrationStatus","updateOrCreateInstallationEntry","entryWithPromise","navigator","onLine","inProgressEntry","registrationTime","registeredInstallationEntry","endpoint","body","authVersion","sdkVersion","JSON","stringify","fetch","ok","responseValue","authToken","createInstallationRequest","registerInstallation","waitUntilFidRegistration","triggerRegistrationIfNecessary","entry","updateInstallationRequest","generateAuthTokenRequest","platformLoggerProvider","getGenerateAuthTokenEndpoint","platformLogger","installation","refreshAuthToken","installations","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","base64","repeat","rawData","atob","outputArray","OLD_DB_NAME","OLD_OBJECT_STORE_NAME","upgradeDb","dbGet","firebaseDependencies","tokenDetails","oldTokenDetails","senderId","dbNames","databases","objectStoreNames","contains","clear","oldDetails","auth","p256dh","fcmToken","createTime","subscriptionOptions","swScope","vapidKey","checkTokenDetails","migrateOldDatabase","dbSet","requestDeleteToken","unsubscribeOptions","getEndpoint","responseData","errorInfo","err","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","deleteTokenInternal","updateToken","getNewToken","dbRemove","unsubscribe","subscribeOptions","requestGetToken","externalizePayload","internalPayload","payload","collapseKey","collapse_key","messageId","fcmMessageId","messagePayloadInternal","notification","title","image","propagateNotificationPayload","propagateDataPayload","fcmOptions","link","analyticsLabel","analytics_label","propagateFcmOptions","_mergeStrings","s1","s2","resultArray","charAt","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","Math","floor","messageEventListener","isFirebaseMessaging","next","dataPayload","WindowMessagingInternalFactory","isWindowSupported","preExist","DB_CHECK_NAME","open","deleteDatabase","cookieEnabled","PushSubscription","getMessagingInWindow","isSupported","deleteToken","deleteToken$1","onMessage","nextOrObserver","onMessage$1","addEventListener","Tinode","Alert","render","visible","className","content","onReject","onClick","FormattedMessage","id","defaultMessage","onConfirm","confirm","APP_NAME","KNOWN_HOSTS","hosted","local","DEFAULT_HOST","KEYPRESS_DELAY","DEFAULT_P2P_ACCESS_MODE","REM_SIZE","AVATAR_SIZE","MAX_INBAND_ATTACHMENT_SIZE","MAX_EXTERN_ATTACHMENT_SIZE","IMAGE_THUMBNAIL_DIM","MAX_TITLE_LENGTH","MAX_TOPIC_DESCRIPTION_LENGTH","messages","defineMessages","clear_messages","clear_for_all","delete_for_all","send_retry","mute","unmute","reply","forward","topic_delete","topic_delete_warning","delete_messages_warning","unblock","block","topic_block_warning","member_delete","archive","unarchive","edit_permissions","clear_messages_warning","ContextMenu","selfRef","formatMessage","intl","handlePageClick","bind","handleEscapeKey","handleClick","MenuItems","handler","params","errorHandler","onShowAlert","deleteMessages","retryMessage","replyToMessage","topicPermissionSetter","ctrl","onTopicRemoved","topicName","topic","tinode","getTopic","delTopic","user","delSubscription","componentDidMount","document","componentWillUnmount","removeEventListener","current","target","preventDefault","stopPropagation","hide","keyCode","item","currentTarget","dataset","onAction","onError","hard","cancelSend","seq","delMessagesAll","delMessagesList","flushMessage","msg","createMessage","publishDraft","updateMode","pickReply","userFrom","userName","menu","vSize","position","left","bounds","right","clickAt","x","top","bottom","y","style","ref","injectIntl","icon_mapping","ContactBadges","badges","color","icon","secondsToTime","seconds","fixedMin","min","sec","bytesToHumanSize","bytes","sizes","bucket","log2","pow","round","toFixed","shortenFileName","filename","maxLength","idToColorClass","light","fg","userId","abs","hash","stringToColorHash","updateFavicon","oldIcon","getElementById","head","getElementsByTagName","newIcon","createElement","rel","href","removeChild","appendChild","theCard","imageUrl","imageMimeType","note","card","trim","mimeType","matches","exec","photo","substring","indexOf","arrayEqual","isArray","sort","l","sanitizeUrl","url","allowedSchemes","schemes","RegExp","sanitizeUrlForMime","mimeMajor","sanitizedUrl","deliveryMarker","received","cancelablePromise","hasCanceled","isCanceled","cancel","LetterTile","avatar","isGroup","iconColor","letter","deleted","authorizeURL","alt","src","UnreadBadge","SUPPORTED_IMAGE_FORMATS","MIME_EXTENSIONS","makeImageUrl","startsWith","fitImageSize","width","height","maxWidth","maxHeight","forceSquare","scale","dstWidth","dstHeight","srcWidth","srcHeight","xoffset","yoffset","fileNameForMime","fname","mime","idx","ext","at","lastIndexOf","imageScaled","fileOrBlob","maxSize","img","Image","crossOrigin","onload","URL","revokeObjectURL","dim","canvas","ctx","getContext","imageSmoothingEnabled","drawImage","blob","toBlob","clearRect","createObjectURL","blobToBase64","reader","FileReader","bits","split","readAsDataURL","intArrayToBase64","bin","base64ToIntArray","b64","BAR_COLOR_DARK","AudioPlayer","preview","state","canPlay","playing","currentTime","duration","longMin","initAudio","initCanvas","resampleBars","visualize","handlePlay","handleSeek","handleError","audioPlayer","viewBuffer","canvasRef","oncanplay","ontimeupdate","onended","pause","componentDidUpdate","prevProps","setState","Audio","offsetWidth","offsetHeight","canvasContext","lineCap","effectiveWidth","lineWidth","drawFrame","requestAnimationFrame","thumbAt","max","LINE_WIDTH","beginPath","strokeStyle","stroke","moveTo","lineTo","arc","PI","fillStyle","fill","original","barCount","factor","amps","lo","hi","amp","j","play","rect","getBoundingClientRect","offset","clientX","playClass","short","LazyImage","padding","whenDone","FileProgress","progress","onCancel","UploadingImage","onCancelUpload","drafty_form","drafty_attachment","drafty_image","drafty_unknown","handleImageData","el","attr","viewportWidth","minWidth","minHeight","Drafty","onImagePreview","loading","fullFormatter","stack","quoteFormatter","onFormButtonClick","inner","child","onQuoteClick","concat","previewFormatter","inlineImageAttr","quoteImage","buf","ArrayBuffer","Blob","base64ToBlob","evt","statusText","scaled","replyFormatter","loadedPromise","Contact","handleContextClick","onSelected","showContextMenu","pageY","pageX","online","icon_badges","isVerified","isStaff","isDangerous","acs","showMode","getMode","isMuted","isJoiner","marker","titleClass","showCheckmark","selected","showOnline","isChannel","unread","small","comment","ContactAction","action","badge_you","badge_owner","ContactList","topicSelected","contactNodes","contactsCount","contacts","filterFunc","filterOn","private","toLowerCase","public","myUserId","isOwner","forwarded","deliveryStatus","latestMessage","_status","msgStatus","showUnread","connected","onTopicSelected","trusted","verified","staff","danger","_deleted","noScroll","dangerouslySetInnerHTML","__html","emptyListMessage","SearchContacts","edited","search","handleSearchChange","handleSearch","handleClear","handleKeyDown","onSearchContacts","placeholder","onChange","onKeyDown","required","autoFocus","ForwardDialog","handleClose","handleSearchContacts","handleContactSelected","onInitFind","uid","searchResults","isWriter","desription","search_placeholder","not_found_placeholder","LoadSpinner","large","centered","show","AvatarUpload","source","handleFileReceived","files","onImageUpdated","randId","random","readOnly","accept","htmlFor","uploading","badge_verified","badge_staff","badge_danger","BadgeList","trustedBadges","CheckBox","handleChange","checked","MenuCancel","ErrorPanel","level","onClearError","text","whiteSpace","actionText","Chip","handleCancel","invalid","noAvatar","ChipInput","deriveStateFromProps","input","focused","handleTextInput","removeChipAt","handleChipCancel","handleFocusGained","handleFocusLost","chips","prompt","sortedChips","sortChips","staticMembers","chipIndex","indexChips","prevState","keep","normal","removed","onChipRemoved","onFocusLost","onEnter","avatarDisabled","tabIndex","onFocus","onBlur","no_contacts","contacts_not_found_short","GroupManager","members","indexMembers","keepInitialMembers","requiredMember","contactFilter","noContactsMessage","selectedContacts","handleMemberRemoved","handleContactFilter","handleSubmit","m","delta","present","keepInitial","stat","sel","splice","added","onSubmit","doContactFiltering","joiner","writer","preser","approver","sharer","deleter","owner","PermissionsEditor","names","skip","compare","userTitle","userAvatar","modeTitle","compareTitle","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","passive","currPan","nextDiff","imgRect","imgLeft","imgRight","coLeft","coRight","imgTop","imgBottom","coTop","coBottom","touches","dX","dY","checkBound","touch0","touch1","distance","sqrt","t3d","orig","transform","transformOrigin","onLoad","step","AvatarCrop","objURL","VisiblePassword","handleVisibility","handeTextChange","handleEditingFinished","onFinished","activeElement","autoComplete","InPlaceEdit","active","initialValue","handleStartEditing","handlePasswordFinished","focus","checkValidity","spanText","spanClass","multiline","element","rows","TagManager","tags","tagInput","activated","handleTagInput","handleAddTag","handleRemoveTag","nextProps","last","tag","maxTagCount","getServerLimit","onTagsChanged","minTagLength","maxTagLength","add_tags_prompt","TopicDescEdit","getAccessMode","isMe","fullName","description","newAvatar","newAvatarMime","previousOnTags","tnNewTags","handleFullNameUpdate","handleImageUpdated","handleAvatarCropped","handlePrivateUpdate","handleDescriptionUpdate","uploadAvatar","handleAvatarCropCancel","handleTagsUpdated","onTagsUpdated","onUpdateTopicDesc","desc","readyToUpload","uploader","getLargeFileHelper","upload","finally","du","onUpdateTags","editable","full_name_placeholder","group_name_placeholder","private_placeholder","title_tag_manager","TopicCommon","credentials","getCredentials","addCredActive","addCredInvalid","newCred","previousTagsUpdated","tnCredsUpdated","handleCredChange","handleCredKeyDown","handleCredEntered","onCredsUpdated","getType","creds","asPhone","asEmail","onCredAdd","onTopicTagsUpdateRequest","cred","meth","done","onCredConfirm","onCredDelete","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","_clip","InfoView","admin","muted","address","selectedContact","modeGiven","modeWant","modeWant2","contactList","previousMetaDesc","previousSubsUpdated","resetSubs","resetDesc","resetTags","onMetaDesc","onSubsUpdated","handleImageChanged","handleMuted","handleUnarchive","handlePermissionsChanged","handleLaunchPermissionsEditor","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","userPermissionsTitle","userPermissionsAvatar","editedPermissions","immutablePermissions","editedPermissionsTitle","immutablePermissionsTitle","editedPermissionsSkipped","onNavigate","onMemberUpdateRequest","panel","menuItems","view","shift","panelTitle","displayMobile","errorLevel","errorText","searchableContacts","no_members","Attachment","downloader","downloadFile","mimetype","download","loaded","helperFunc","isUrlRelative","downloadUrl","downloadWidget","message_sending","message_sending_failed","ReceivedMarker","timestamp","toLocaleTimeString","locale","timeStyle","BaseChatMessage","onProgress","handleProgress","handleImagePreview","handleFormButtonClick","handleCancelUpload","handleQuoteClick","formatterContext","resp","act","onFormResponse","userIsWriter","ratio","replyToSeq","sideClass","sequence","bubbleClass","fullDisplay","attachments","att","tree","innerRef","IntlChatMessage","MILLIS_PER_BAR","AudioRecorder","enabled","audioRecord","recording","paused","blobUrl","initMediaRecording","getRecording","cleanUp","handleResume","handlePause","handleDelete","handleDone","durationMillis","startedOn","stream","mediaRecorder","audioContext","audioInput","analyser","audioChunks","mediaDevices","getUserMedia","audio","video","pcmData","frequencyBinCount","canvasWidth","canvasHeight","viewLength","viewDuration","prevBarCount","volume","countPerBar","getByteTimeDomainData","amplitude","dx","requestData","resume","stop","MediaRecorder","AudioContext","createMediaStreamSource","createAnalyser","fftSize","connect","onstop","onDeleted","ondataavailable","start","arrayBuffer","ab","decodeAudioData","createPreview","getChannelData","totalSPB","samplingRate","buffer","disconnect","getTracks","track","resumeClass","messaging_disabled","type_new_message","add_image_caption","file_attachment_too_large","cannot_initiate_upload","SendMessage","quote","audioRec","audioAvailable","keypressTimestamp","getTime","handlePasteEvent","handleAttachImage","handleAttachFile","handleAttachAudio","handleSend","handleKeyPress","handleMessageTyping","formatReply","messageEditArea","disabled","onImageSuccess","onAttachmentSuccess","clipboardData","originalEvent","kind","file","getAsFile","filePasted","onAttachImage","onAttachFile","onAttachAudio","acceptBlank","noInput","onSendMessage","shiftKey","onKeyPress","messagePrompt","onCancelReply","audioEnabled","attachImage","click","attachFile","display","DocPreview","handleSendDoc","caption","onClose","mimeToIcon","default","iconFromMime","GroupSubs","usersOnline","totalCount","countToShow","some","overflow","ImagePreview","handleSendImage","assignWidth","node","maxlength","Invitation","handleButtonAction","LogoView","serverVersion","serverAddress","MetaMessage","date","HashNavigation","parts","path","part","decodeURIComponent","location","parsed","parseUrlHash","composeUrlHash","sidepanel","infopanel","online_now","last_seen","not_found","invalid_content","isUnconfirmed","ex","getExcessive","isPeerRestricted","getMissing","MessagesView","getDerivedStateFromProps","leave","sendMessage","retrySend","sendImageAttachment","sendFileAttachment","sendAudioAttachment","sendKeyPress","handleScrollReference","handleScrollEvent","handleDescChange","handleSubsUpdated","handleMessageUpdate","handleAllMessagesReceived","handleInfoReceipt","handleImagePostview","handleClosePreview","handleFormResponse","handleShowMessageContextMenu","handleNewChatAcceptance","handleEnablePeer","postReadNotification","clearNotificationQueue","goToLatestMessage","handlePickReply","handleCancelReply","chatMessageRefs","getOrCreateMessageRef","readNotificationQueue","readNotificationTimer","seqId","messagesScroller","messageCount","scrollPosition","scrollTop","scrollHeight","onData","onAllMessagesReceived","onInfo","onPres","applicationVisible","ready","_new","isP2PType","withDesc","nextState","forwardMessage","docPreview","imagePreview","imagePostview","typingIndicator","fetchingMessages","showGoToLastButton","onlineSubs","peer","p2pPeerDesc","peerMessagingDisabled","latestClearId","maxClearId","isReader","readingBlocked","unconformed","unconfirmed","isSubscribed","newTopic","newTopicParams","_topicName","getQuery","withLaterDesc","withLaterSub","withLaterData","withLaterDel","setQuery","onNewTopicCreated","queuedMessages","pub","_sending","navigateTo","setUrlTopic","blankState","oldTopicName","isTopicCached","oldTopic","pos","msgHasMoreMessages","getMessagesPage","setInterval","clearInterval","sendAt","noteRead","setMilliseconds","getMilliseconds","clearTimeout","keyPressTimer","isNewMessage","what","forceUpdate","searchParams","messageSpecificMenuItems","onNewChat","noteKeyPress","uploadCompletionPromise","maxInbandAttachmentSize","urlPromise","fileToBase64","maxExternAttachmentSize","limit","_tempPreview","found","findMessage","_cancelled","senderName","onCancelForwardMessage","scrollIntoView","behavior","classList","hideSelf","component2","messageNodes","previousFrom","prevDate","chatBoxClass","dateFmt","Intl","DateTimeFormat","prev","nextFrom","thisFrom","isReply","userDesc","parseInt","isNaN","thisDate","ts","toDateString","format","isChan","_uploader","lastSeen","cont","getMeTopic","getContact","seen","userLanguage","language","getFullYear","getMonth","getDate","hour12","hour","minute","toLocaleDateString","month","day","year","shortDateFormat","when","onHideMessagesView","ButtonBack","onBack","MenuContacts","onNewTopic","onSettings","MenuStart","onSignUp","SideNavbar","AccountSettingsView","me","archived_contacts_title","ContactsView","handleAction","unreadThreads","archivedCount","chatList","blocked","arch","touched","action_ignored","onShowArchive","LocalStorageUtil","localStorage","setItem","getItem","parse","oldVal","getObject","setObject","removeItem","CreateAccountView","login","password","email","imageDataUrl","errorCleared","saveToken","handleLoginChange","handlePasswordChange","handleEmailChange","handleFnChange","handleToggleSaveToken","onCreateAccount","submitClasses","login_prompt","password_prompt","onImageChanged","full_name_prompt","email_prompt","stay_logged_in","EditAccountView","handleCheckboxClick","onToggleMessageSounds","onTogglePushNotifications","onToggleIncognitoMode","messageSounds","desktopAlertsEnabled","desktopAlerts","incognitoMode","delete_account","delete_account_warning","AccSecurityView","blockedCount","showPermissionEditorFor","handlePasswordUpdate","handleHidePermissionsEditor","handleDeleteAccount","pwd","onUpdatePassword","onUpdateAccountDesc","onDeleteAccount","password_unchanged","onLogout","onShowBlocked","AccSupportView","LoginView","hostName","persist","onPersistenceChange","onLogin","autoCorrect","autoCapitalize","invalid_id","NewTopicById","groupId","prefix","NewTopicGroup","handleFieldEdit","handleTagsChanged","handleChannelToggle","search_for_contacts","search_no_results","NewTopicView","tabSelected","searchQuery","handleTabClick","handleSearchResultSelected","handleNewGroupSubmit","handleGroupByID","addUrlParam","removeUrlParam","onCreateTopic","dataUrl","priv","no_contacts_placeholder","PasswordResetView","sent","scheme","onReset","onRequest","HostSelector","changed","handleHostNameChange","onServerAddressChange","hostOptions","list","SettingsView","transport","handleTransportSelected","handleServerAddressChange","onUpdate","def","ws","lp","transportOptions","phone","ValidationView","credCode","credMethod","numbers_only","settings","edit","notif","support","newtpk","reset","SidepanelView","handleNewTopic","errorAction","errorActionText","loadSpinnerVisible","loginDisabled","onLoginRequest","onGlobalSettings","onUpdateAccountTags","onValidateCredentials","onPasswordResetRequest","onResetPassword","detectServerAddress","host","protocol","hostname","port","isSecureConnection","POP_SOUND","reconnect_countdown","reconnect_now","push_init_failed","invalid_security_token","no_connection","code_doesnot_match","menu_item_info","TinodeWeb","getBlankState","handleResize","handleHashRoute","handleOnline","checkForAppUpdate","handleVisibilityEvent","handleLoginRequest","handlePersistenceChange","handleConnected","handleAutoreconnectIteration","doLogin","handleCredentialsRequest","handleLoginSuccessful","handleDisconnect","tnMeMetaDesc","tnMeContactUpdate","tnMeSubsUpdated","resetContactList","tnData","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","handleShowForwardDialog","handleHideForwardDialog","sendMessageToTopic","autoLogin","messageSoundsOff","FIREBASE_INIT","firebaseToken","hidden","sidePanelSelected","sidePanelTitle","sidePanelAvatar","myTrustedBadges","liveConnection","topicSelectedOnline","topicSelectedAcs","innerWidth","infoPanel","mobilePanel","contextMenuVisible","contextMenuBounds","contextMenuClickAt","contextMenuParams","contextMenuItems","forwardDialogVisible","alertVisible","alertParams","requestedTopic","documentElement","clientWidth","viewportHeight","clientHeight","tnSetup","onConnect","onDisconnect","onAutoreconnectIteration","setDeviceToken","parsedNav","expires","setAuthToken","readTimer","readTimerCallback","persistentCache","onSetupCompleted","secure","setHumanLanguage","enableLogging","oobNotification","updateObject","fcm","firebaseGetMessaging","firebaseInitApp","reg","requestFCMToken","firebaseOnMessage","sw","firebaseGetToken","messagingVapidKey","mobile","onupdatefound","installingWorker","installing","onstatechange","controller","getTopicAccessMode","newTopicTabSelected","tab","reconnectCountdown","reconnect","isConnected","initStorage","clearStorage","getServerInfo","ver","prom","timeLeft","isAuthenticated","getAuthToken","loginBasic","loginToken","goToTopic","onContactUpdate","getCurrentUserID","withCred","urlHash","setUrlSidePanel","isPresencer","unused","foundContacts","merged","updated","past","prepareSearchableContacts","receivedTimer","noteRecv","fnd","getFndTopic","withSub","s","setMeta","isTopicOnline","completion","subscribePromise","publishMessage","am","updateWant","login_","password_","public_","cred_","tags_","createAccountBasic","on","firebaseDelToken","delCredential","basicNavigator","infoNavigator","setUrlInfoPanel","newGroupTopicName","oldName","newName","updateAccountBasic","getCurrentLogin","updateGiven","cleared","Promose","delCurrentUser","report","header","msgPreview","self_blocked","subscribed","keepForwardedMessage","confirmText","rejectText","invite","requestResetAuthSecret","newPassword","base64ReEncode","myUserName","onAddMember","handleManageGroupMembers","hl","languages","baseLanguage","htmlLang","allMessages","setAttribute","IntlProvider","textComponent"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"index.prod.js","mappings":"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","sources":["webpack://tinode-webapp/./node_modules/fix-webm-duration/fix-webm-duration.js","webpack://tinode-webapp/./node_modules/idb/build/idb.js","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/global","webpack://tinode-webapp/webpack/runtime/hasOwnProperty shorthand","webpack://tinode-webapp/external var \"React\"","webpack://tinode-webapp/external var \"ReactDOM\"","webpack://tinode-webapp/external var \"ReactIntl\"","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/@firebase/app/dist/esm/index.esm2017.js","webpack://tinode-webapp/./node_modules/firebase/app/dist/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/external var \"Tinode\"","webpack://tinode-webapp/./src/widgets/alert.jsx","webpack://tinode-webapp/./src/version.js","webpack://tinode-webapp/./src/config.js","webpack://tinode-webapp/./src/widgets/context-menu.jsx","webpack://tinode-webapp/./src/widgets/contact-badges.jsx","webpack://tinode-webapp/./src/lib/strformat.js","webpack://tinode-webapp/./src/lib/utils.js","webpack://tinode-webapp/./src/widgets/letter-tile.jsx","webpack://tinode-webapp/./src/widgets/unread-badge.jsx","webpack://tinode-webapp/./src/lib/blob-helpers.js","webpack://tinode-webapp/./src/widgets/audio-player.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/widgets/load-spinner.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/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/./src/widgets/cropper.jsx","webpack://tinode-webapp/./src/widgets/avatar-crop.jsx","webpack://tinode-webapp/./src/widgets/visible-password.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/widgets/topic-common.jsx","webpack://tinode-webapp/./src/widgets/topic-security.jsx","webpack://tinode-webapp/./src/views/info-view.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/audio-recorder.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/lib/navigation.js","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/account-settings-view.jsx","webpack://tinode-webapp/./src/views/contacts-view.jsx","webpack://tinode-webapp/./src/lib/local-storage.js","webpack://tinode-webapp/./src/views/create-account-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/views/password-reset-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":["(function (name, definition) {\r\n if (typeof define === 'function' && define.amd) { // RequireJS / AMD\r\n define(definition);\r\n } else if (typeof module !== 'undefined' && module.exports) { // CommonJS / Node.js\r\n module.exports = definition();\r\n } else { // Direct include\r\n window.ysFixWebmDuration = definition();\r\n }\r\n})('fix-webm-duration', function () {\r\n /*\r\n * This is the list of possible WEBM file sections by their IDs.\r\n * Possible types: Container, Binary, Uint, Int, String, Float, Date\r\n */\r\n var sections = {\r\n 0xa45dfa3: { name: 'EBML', type: 'Container' },\r\n 0x286: { name: 'EBMLVersion', type: 'Uint' },\r\n 0x2f7: { name: 'EBMLReadVersion', type: 'Uint' },\r\n 0x2f2: { name: 'EBMLMaxIDLength', type: 'Uint' },\r\n 0x2f3: { name: 'EBMLMaxSizeLength', type: 'Uint' },\r\n 0x282: { name: 'DocType', type: 'String' },\r\n 0x287: { name: 'DocTypeVersion', type: 'Uint' },\r\n 0x285: { name: 'DocTypeReadVersion', type: 'Uint' },\r\n 0x6c: { name: 'Void', type: 'Binary' },\r\n 0x3f: { name: 'CRC-32', type: 'Binary' },\r\n 0xb538667: { name: 'SignatureSlot', type: 'Container' },\r\n 0x3e8a: { name: 'SignatureAlgo', type: 'Uint' },\r\n 0x3e9a: { name: 'SignatureHash', type: 'Uint' },\r\n 0x3ea5: { name: 'SignaturePublicKey', type: 'Binary' },\r\n 0x3eb5: { name: 'Signature', type: 'Binary' },\r\n 0x3e5b: { name: 'SignatureElements', type: 'Container' },\r\n 0x3e7b: { name: 'SignatureElementList', type: 'Container' },\r\n 0x2532: { name: 'SignedElement', type: 'Binary' },\r\n 0x8538067: { name: 'Segment', type: 'Container' },\r\n 0x14d9b74: { name: 'SeekHead', type: 'Container' },\r\n 0xdbb: { name: 'Seek', type: 'Container' },\r\n 0x13ab: { name: 'SeekID', type: 'Binary' },\r\n 0x13ac: { name: 'SeekPosition', type: 'Uint' },\r\n 0x549a966: { name: 'Info', type: 'Container' },\r\n 0x33a4: { name: 'SegmentUID', type: 'Binary' },\r\n 0x3384: { name: 'SegmentFilename', type: 'String' },\r\n 0x1cb923: { name: 'PrevUID', type: 'Binary' },\r\n 0x1c83ab: { name: 'PrevFilename', type: 'String' },\r\n 0x1eb923: { name: 'NextUID', type: 'Binary' },\r\n 0x1e83bb: { name: 'NextFilename', type: 'String' },\r\n 0x444: { name: 'SegmentFamily', type: 'Binary' },\r\n 0x2924: { name: 'ChapterTranslate', type: 'Container' },\r\n 0x29fc: { name: 'ChapterTranslateEditionUID', type: 'Uint' },\r\n 0x29bf: { name: 'ChapterTranslateCodec', type: 'Uint' },\r\n 0x29a5: { name: 'ChapterTranslateID', type: 'Binary' },\r\n 0xad7b1: { name: 'TimecodeScale', type: 'Uint' },\r\n 0x489: { name: 'Duration', type: 'Float' },\r\n 0x461: { name: 'DateUTC', type: 'Date' },\r\n 0x3ba9: { name: 'Title', type: 'String' },\r\n 0xd80: { name: 'MuxingApp', type: 'String' },\r\n 0x1741: { name: 'WritingApp', type: 'String' },\r\n // 0xf43b675: { name: 'Cluster', type: 'Container' },\r\n 0x67: { name: 'Timecode', type: 'Uint' },\r\n 0x1854: { name: 'SilentTracks', type: 'Container' },\r\n 0x18d7: { name: 'SilentTrackNumber', type: 'Uint' },\r\n 0x27: { name: 'Position', type: 'Uint' },\r\n 0x2b: { name: 'PrevSize', type: 'Uint' },\r\n 0x23: { name: 'SimpleBlock', type: 'Binary' },\r\n 0x20: { name: 'BlockGroup', type: 'Container' },\r\n 0x21: { name: 'Block', type: 'Binary' },\r\n 0x22: { name: 'BlockVirtual', type: 'Binary' },\r\n 0x35a1: { name: 'BlockAdditions', type: 'Container' },\r\n 0x26: { name: 'BlockMore', type: 'Container' },\r\n 0x6e: { name: 'BlockAddID', type: 'Uint' },\r\n 0x25: { name: 'BlockAdditional', type: 'Binary' },\r\n 0x1b: { name: 'BlockDuration', type: 'Uint' },\r\n 0x7a: { name: 'ReferencePriority', type: 'Uint' },\r\n 0x7b: { name: 'ReferenceBlock', type: 'Int' },\r\n 0x7d: { name: 'ReferenceVirtual', type: 'Int' },\r\n 0x24: { name: 'CodecState', type: 'Binary' },\r\n 0x35a2: { name: 'DiscardPadding', type: 'Int' },\r\n 0xe: { name: 'Slices', type: 'Container' },\r\n 0x68: { name: 'TimeSlice', type: 'Container' },\r\n 0x4c: { name: 'LaceNumber', type: 'Uint' },\r\n 0x4d: { name: 'FrameNumber', type: 'Uint' },\r\n 0x4b: { name: 'BlockAdditionID', type: 'Uint' },\r\n 0x4e: { name: 'Delay', type: 'Uint' },\r\n 0x4f: { name: 'SliceDuration', type: 'Uint' },\r\n 0x48: { name: 'ReferenceFrame', type: 'Container' },\r\n 0x49: { name: 'ReferenceOffset', type: 'Uint' },\r\n 0x4a: { name: 'ReferenceTimeCode', type: 'Uint' },\r\n 0x2f: { name: 'EncryptedBlock', type: 'Binary' },\r\n 0x654ae6b: { name: 'Tracks', type: 'Container' },\r\n 0x2e: { name: 'TrackEntry', type: 'Container' },\r\n 0x57: { name: 'TrackNumber', type: 'Uint' },\r\n 0x33c5: { name: 'TrackUID', type: 'Uint' },\r\n 0x3: { name: 'TrackType', type: 'Uint' },\r\n 0x39: { name: 'FlagEnabled', type: 'Uint' },\r\n 0x8: { name: 'FlagDefault', type: 'Uint' },\r\n 0x15aa: { name: 'FlagForced', type: 'Uint' },\r\n 0x1c: { name: 'FlagLacing', type: 'Uint' },\r\n 0x2de7: { name: 'MinCache', type: 'Uint' },\r\n 0x2df8: { name: 'MaxCache', type: 'Uint' },\r\n 0x3e383: { name: 'DefaultDuration', type: 'Uint' },\r\n 0x34e7a: { name: 'DefaultDecodedFieldDuration', type: 'Uint' },\r\n 0x3314f: { name: 'TrackTimecodeScale', type: 'Float' },\r\n 0x137f: { name: 'TrackOffset', type: 'Int' },\r\n 0x15ee: { name: 'MaxBlockAdditionID', type: 'Uint' },\r\n 0x136e: { name: 'Name', type: 'String' },\r\n 0x2b59c: { name: 'Language', type: 'String' },\r\n 0x6: { name: 'CodecID', type: 'String' },\r\n 0x23a2: { name: 'CodecPrivate', type: 'Binary' },\r\n 0x58688: { name: 'CodecName', type: 'String' },\r\n 0x3446: { name: 'AttachmentLink', type: 'Uint' },\r\n 0x1a9697: { name: 'CodecSettings', type: 'String' },\r\n 0x1b4040: { name: 'CodecInfoURL', type: 'String' },\r\n 0x6b240: { name: 'CodecDownloadURL', type: 'String' },\r\n 0x2a: { name: 'CodecDecodeAll', type: 'Uint' },\r\n 0x2fab: { name: 'TrackOverlay', type: 'Uint' },\r\n 0x16aa: { name: 'CodecDelay', type: 'Uint' },\r\n 0x16bb: { name: 'SeekPreRoll', type: 'Uint' },\r\n 0x2624: { name: 'TrackTranslate', type: 'Container' },\r\n 0x26fc: { name: 'TrackTranslateEditionUID', type: 'Uint' },\r\n 0x26bf: { name: 'TrackTranslateCodec', type: 'Uint' },\r\n 0x26a5: { name: 'TrackTranslateTrackID', type: 'Binary' },\r\n 0x60: { name: 'Video', type: 'Container' },\r\n 0x1a: { name: 'FlagInterlaced', type: 'Uint' },\r\n 0x13b8: { name: 'StereoMode', type: 'Uint' },\r\n 0x13c0: { name: 'AlphaMode', type: 'Uint' },\r\n 0x13b9: { name: 'OldStereoMode', type: 'Uint' },\r\n 0x30: { name: 'PixelWidth', type: 'Uint' },\r\n 0x3a: { name: 'PixelHeight', type: 'Uint' },\r\n 0x14aa: { name: 'PixelCropBottom', type: 'Uint' },\r\n 0x14bb: { name: 'PixelCropTop', type: 'Uint' },\r\n 0x14cc: { name: 'PixelCropLeft', type: 'Uint' },\r\n 0x14dd: { name: 'PixelCropRight', type: 'Uint' },\r\n 0x14b0: { name: 'DisplayWidth', type: 'Uint' },\r\n 0x14ba: { name: 'DisplayHeight', type: 'Uint' },\r\n 0x14b2: { name: 'DisplayUnit', type: 'Uint' },\r\n 0x14b3: { name: 'AspectRatioType', type: 'Uint' },\r\n 0xeb524: { name: 'ColourSpace', type: 'Binary' },\r\n 0xfb523: { name: 'GammaValue', type: 'Float' },\r\n 0x383e3: { name: 'FrameRate', type: 'Float' },\r\n 0x61: { name: 'Audio', type: 'Container' },\r\n 0x35: { name: 'SamplingFrequency', type: 'Float' },\r\n 0x38b5: { name: 'OutputSamplingFrequency', type: 'Float' },\r\n 0x1f: { name: 'Channels', type: 'Uint' },\r\n 0x3d7b: { name: 'ChannelPositions', type: 'Binary' },\r\n 0x2264: { name: 'BitDepth', type: 'Uint' },\r\n 0x62: { name: 'TrackOperation', type: 'Container' },\r\n 0x63: { name: 'TrackCombinePlanes', type: 'Container' },\r\n 0x64: { name: 'TrackPlane', type: 'Container' },\r\n 0x65: { name: 'TrackPlaneUID', type: 'Uint' },\r\n 0x66: { name: 'TrackPlaneType', type: 'Uint' },\r\n 0x69: { name: 'TrackJoinBlocks', type: 'Container' },\r\n 0x6d: { name: 'TrackJoinUID', type: 'Uint' },\r\n 0x40: { name: 'TrickTrackUID', type: 'Uint' },\r\n 0x41: { name: 'TrickTrackSegmentUID', type: 'Binary' },\r\n 0x46: { name: 'TrickTrackFlag', type: 'Uint' },\r\n 0x47: { name: 'TrickMasterTrackUID', type: 'Uint' },\r\n 0x44: { name: 'TrickMasterTrackSegmentUID', type: 'Binary' },\r\n 0x2d80: { name: 'ContentEncodings', type: 'Container' },\r\n 0x2240: { name: 'ContentEncoding', type: 'Container' },\r\n 0x1031: { name: 'ContentEncodingOrder', type: 'Uint' },\r\n 0x1032: { name: 'ContentEncodingScope', type: 'Uint' },\r\n 0x1033: { name: 'ContentEncodingType', type: 'Uint' },\r\n 0x1034: { name: 'ContentCompression', type: 'Container' },\r\n 0x254: { name: 'ContentCompAlgo', type: 'Uint' },\r\n 0x255: { name: 'ContentCompSettings', type: 'Binary' },\r\n 0x1035: { name: 'ContentEncryption', type: 'Container' },\r\n 0x7e1: { name: 'ContentEncAlgo', type: 'Uint' },\r\n 0x7e2: { name: 'ContentEncKeyID', type: 'Binary' },\r\n 0x7e3: { name: 'ContentSignature', type: 'Binary' },\r\n 0x7e4: { name: 'ContentSigKeyID', type: 'Binary' },\r\n 0x7e5: { name: 'ContentSigAlgo', type: 'Uint' },\r\n 0x7e6: { name: 'ContentSigHashAlgo', type: 'Uint' },\r\n 0xc53bb6b: { name: 'Cues', type: 'Container' },\r\n 0x3b: { name: 'CuePoint', type: 'Container' },\r\n 0x33: { name: 'CueTime', type: 'Uint' },\r\n 0x37: { name: 'CueTrackPositions', type: 'Container' },\r\n 0x77: { name: 'CueTrack', type: 'Uint' },\r\n 0x71: { name: 'CueClusterPosition', type: 'Uint' },\r\n 0x70: { name: 'CueRelativePosition', type: 'Uint' },\r\n 0x32: { name: 'CueDuration', type: 'Uint' },\r\n 0x1378: { name: 'CueBlockNumber', type: 'Uint' },\r\n 0x6a: { name: 'CueCodecState', type: 'Uint' },\r\n 0x5b: { name: 'CueReference', type: 'Container' },\r\n 0x16: { name: 'CueRefTime', type: 'Uint' },\r\n 0x17: { name: 'CueRefCluster', type: 'Uint' },\r\n 0x135f: { name: 'CueRefNumber', type: 'Uint' },\r\n 0x6b: { name: 'CueRefCodecState', type: 'Uint' },\r\n 0x941a469: { name: 'Attachments', type: 'Container' },\r\n 0x21a7: { name: 'AttachedFile', type: 'Container' },\r\n 0x67e: { name: 'FileDescription', type: 'String' },\r\n 0x66e: { name: 'FileName', type: 'String' },\r\n 0x660: { name: 'FileMimeType', type: 'String' },\r\n 0x65c: { name: 'FileData', type: 'Binary' },\r\n 0x6ae: { name: 'FileUID', type: 'Uint' },\r\n 0x675: { name: 'FileReferral', type: 'Binary' },\r\n 0x661: { name: 'FileUsedStartTime', type: 'Uint' },\r\n 0x662: { name: 'FileUsedEndTime', type: 'Uint' },\r\n 0x43a770: { name: 'Chapters', type: 'Container' },\r\n 0x5b9: { name: 'EditionEntry', type: 'Container' },\r\n 0x5bc: { name: 'EditionUID', type: 'Uint' },\r\n 0x5bd: { name: 'EditionFlagHidden', type: 'Uint' },\r\n 0x5db: { name: 'EditionFlagDefault', type: 'Uint' },\r\n 0x5dd: { name: 'EditionFlagOrdered', type: 'Uint' },\r\n 0x36: { name: 'ChapterAtom', type: 'Container' },\r\n 0x33c4: { name: 'ChapterUID', type: 'Uint' },\r\n 0x1654: { name: 'ChapterStringUID', type: 'String' },\r\n 0x11: { name: 'ChapterTimeStart', type: 'Uint' },\r\n 0x12: { name: 'ChapterTimeEnd', type: 'Uint' },\r\n 0x18: { name: 'ChapterFlagHidden', type: 'Uint' },\r\n 0x598: { name: 'ChapterFlagEnabled', type: 'Uint' },\r\n 0x2e67: { name: 'ChapterSegmentUID', type: 'Binary' },\r\n 0x2ebc: { name: 'ChapterSegmentEditionUID', type: 'Uint' },\r\n 0x23c3: { name: 'ChapterPhysicalEquiv', type: 'Uint' },\r\n 0xf: { name: 'ChapterTrack', type: 'Container' },\r\n 0x9: { name: 'ChapterTrackNumber', type: 'Uint' },\r\n 0x0: { name: 'ChapterDisplay', type: 'Container' },\r\n 0x5: { name: 'ChapString', type: 'String' },\r\n 0x37c: { name: 'ChapLanguage', type: 'String' },\r\n 0x37e: { name: 'ChapCountry', type: 'String' },\r\n 0x2944: { name: 'ChapProcess', type: 'Container' },\r\n 0x2955: { name: 'ChapProcessCodecID', type: 'Uint' },\r\n 0x50d: { name: 'ChapProcessPrivate', type: 'Binary' },\r\n 0x2911: { name: 'ChapProcessCommand', type: 'Container' },\r\n 0x2922: { name: 'ChapProcessTime', type: 'Uint' },\r\n 0x2933: { name: 'ChapProcessData', type: 'Binary' },\r\n 0x254c367: { name: 'Tags', type: 'Container' },\r\n 0x3373: { name: 'Tag', type: 'Container' },\r\n 0x23c0: { name: 'Targets', type: 'Container' },\r\n 0x28ca: { name: 'TargetTypeValue', type: 'Uint' },\r\n 0x23ca: { name: 'TargetType', type: 'String' },\r\n 0x23c5: { name: 'TagTrackUID', type: 'Uint' },\r\n 0x23c9: { name: 'TagEditionUID', type: 'Uint' },\r\n 0x23c4: { name: 'TagChapterUID', type: 'Uint' },\r\n 0x23c6: { name: 'TagAttachmentUID', type: 'Uint' },\r\n 0x27c8: { name: 'SimpleTag', type: 'Container' },\r\n 0x5a3: { name: 'TagName', type: 'String' },\r\n 0x47a: { name: 'TagLanguage', type: 'String' },\r\n 0x484: { name: 'TagDefault', type: 'Uint' },\r\n 0x487: { name: 'TagString', type: 'String' },\r\n 0x485: { name: 'TagBinary', type: 'Binary' }\r\n };\r\n\r\n function doInherit(newClass, baseClass) {\r\n newClass.prototype = Object.create(baseClass.prototype);\r\n newClass.prototype.constructor = newClass;\r\n }\r\n\r\n function WebmBase(name, type) {\r\n this.name = name || 'Unknown';\r\n this.type = type || 'Unknown';\r\n }\r\n WebmBase.prototype.updateBySource = function() { };\r\n WebmBase.prototype.setSource = function(source) {\r\n this.source = source;\r\n this.updateBySource();\r\n };\r\n WebmBase.prototype.updateByData = function() { };\r\n WebmBase.prototype.setData = function(data) {\r\n this.data = data;\r\n this.updateByData();\r\n };\r\n\r\n function WebmUint(name, type) {\r\n WebmBase.call(this, name, type || 'Uint');\r\n }\r\n doInherit(WebmUint, WebmBase);\r\n function padHex(hex) {\r\n return hex.length % 2 === 1 ? '0' + hex : hex;\r\n }\r\n WebmUint.prototype.updateBySource = function() {\r\n // use hex representation of a number instead of number value\r\n this.data = '';\r\n for (var i = 0; i < this.source.length; i++) {\r\n var hex = this.source[i].toString(16);\r\n this.data += padHex(hex);\r\n }\r\n };\r\n WebmUint.prototype.updateByData = function() {\r\n var length = this.data.length / 2;\r\n this.source = new Uint8Array(length);\r\n for (var i = 0; i < length; i++) {\r\n var hex = this.data.substr(i * 2, 2);\r\n this.source[i] = parseInt(hex, 16);\r\n }\r\n };\r\n WebmUint.prototype.getValue = function() {\r\n return parseInt(this.data, 16);\r\n };\r\n WebmUint.prototype.setValue = function(value) {\r\n this.setData(padHex(value.toString(16)));\r\n };\r\n\r\n function WebmFloat(name, type) {\r\n WebmBase.call(this, name, type || 'Float');\r\n }\r\n doInherit(WebmFloat, WebmBase);\r\n WebmFloat.prototype.getFloatArrayType = function() {\r\n return this.source && this.source.length === 4 ? Float32Array : Float64Array;\r\n };\r\n WebmFloat.prototype.updateBySource = function() {\r\n var byteArray = this.source.reverse();\r\n var floatArrayType = this.getFloatArrayType();\r\n var floatArray = new floatArrayType(byteArray.buffer);\r\n this.data = floatArray[0];\r\n };\r\n WebmFloat.prototype.updateByData = function() {\r\n var floatArrayType = this.getFloatArrayType();\r\n var floatArray = new floatArrayType([ this.data ]);\r\n var byteArray = new Uint8Array(floatArray.buffer);\r\n this.source = byteArray.reverse();\r\n };\r\n WebmFloat.prototype.getValue = function() {\r\n return this.data;\r\n };\r\n WebmFloat.prototype.setValue = function(value) {\r\n this.setData(value);\r\n };\r\n\r\n function WebmContainer(name, type) {\r\n WebmBase.call(this, name, type || 'Container');\r\n }\r\n doInherit(WebmContainer, WebmBase);\r\n WebmContainer.prototype.readByte = function() {\r\n return this.source[this.offset++];\r\n };\r\n WebmContainer.prototype.readUint = function() {\r\n var firstByte = this.readByte();\r\n var bytes = 8 - firstByte.toString(2).length;\r\n var value = firstByte - (1 << (7 - bytes));\r\n for (var i = 0; i < bytes; i++) {\r\n // don't use bit operators to support x86\r\n value *= 256;\r\n value += this.readByte();\r\n }\r\n return value;\r\n };\r\n WebmContainer.prototype.updateBySource = function() {\r\n this.data = [];\r\n for (this.offset = 0; this.offset < this.source.length; this.offset = end) {\r\n var id = this.readUint();\r\n var len = this.readUint();\r\n var end = Math.min(this.offset + len, this.source.length);\r\n var data = this.source.slice(this.offset, end);\r\n\r\n var info = sections[id] || { name: 'Unknown', type: 'Unknown' };\r\n var ctr = WebmBase;\r\n switch (info.type) {\r\n case 'Container':\r\n ctr = WebmContainer;\r\n break;\r\n case 'Uint':\r\n ctr = WebmUint;\r\n break;\r\n case 'Float':\r\n ctr = WebmFloat;\r\n break;\r\n }\r\n var section = new ctr(info.name, info.type);\r\n section.setSource(data);\r\n this.data.push({\r\n id: id,\r\n idHex: id.toString(16),\r\n data: section\r\n });\r\n }\r\n };\r\n WebmContainer.prototype.writeUint = function(x, draft) {\r\n for (var bytes = 1, flag = 0x80; x >= flag && bytes < 8; bytes++, flag *= 0x80) { }\r\n\r\n if (!draft) {\r\n var value = flag + x;\r\n for (var i = bytes - 1; i >= 0; i--) {\r\n // don't use bit operators to support x86\r\n var c = value % 256;\r\n this.source[this.offset + i] = c;\r\n value = (value - c) / 256;\r\n }\r\n }\r\n\r\n this.offset += bytes;\r\n };\r\n WebmContainer.prototype.writeSections = function(draft) {\r\n this.offset = 0;\r\n for (var i = 0; i < this.data.length; i++) {\r\n var section = this.data[i],\r\n content = section.data.source,\r\n contentLength = content.length;\r\n this.writeUint(section.id, draft);\r\n this.writeUint(contentLength, draft);\r\n if (!draft) {\r\n this.source.set(content, this.offset);\r\n }\r\n this.offset += contentLength;\r\n }\r\n return this.offset;\r\n };\r\n WebmContainer.prototype.updateByData = function() {\r\n // run without accessing this.source to determine total length - need to know it to create Uint8Array\r\n var length = this.writeSections('draft');\r\n this.source = new Uint8Array(length);\r\n // now really write data\r\n this.writeSections();\r\n };\r\n WebmContainer.prototype.getSectionById = function(id) {\r\n for (var i = 0; i < this.data.length; i++) {\r\n var section = this.data[i];\r\n if (section.id === id) {\r\n return section.data;\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n function WebmFile(source) {\r\n WebmContainer.call(this, 'File', 'File');\r\n this.setSource(source);\r\n }\r\n doInherit(WebmFile, WebmContainer);\r\n WebmFile.prototype.fixDuration = function(duration, options) {\r\n var logger = options && options.logger;\r\n if (logger === undefined) {\r\n logger = function(message) {\r\n console.log(message);\r\n };\r\n } else if (!logger) {\r\n logger = function() { };\r\n }\r\n\r\n var segmentSection = this.getSectionById(0x8538067);\r\n if (!segmentSection) {\r\n logger('[fix-webm-duration] Segment section is missing');\r\n return false;\r\n }\r\n\r\n var infoSection = segmentSection.getSectionById(0x549a966);\r\n if (!infoSection) {\r\n logger('[fix-webm-duration] Info section is missing');\r\n return false;\r\n }\r\n\r\n var timeScaleSection = infoSection.getSectionById(0xad7b1);\r\n if (!timeScaleSection) {\r\n logger('[fix-webm-duration] TimecodeScale section is missing');\r\n return false;\r\n }\r\n\r\n var durationSection = infoSection.getSectionById(0x489);\r\n if (durationSection) {\r\n if (durationSection.getValue() <= 0) {\r\n logger('[fix-webm-duration] Duration section is present, but the value is empty');\r\n durationSection.setValue(duration);\r\n } else {\r\n logger('[fix-webm-duration] Duration section is present');\r\n return false;\r\n }\r\n } else {\r\n logger('[fix-webm-duration] Duration section is missing');\r\n // append Duration section\r\n durationSection = new WebmFloat('Duration', 'Float');\r\n durationSection.setValue(duration);\r\n infoSection.data.push({\r\n id: 0x489,\r\n data: durationSection\r\n });\r\n }\r\n\r\n // set default time scale to 1 millisecond (1000000 nanoseconds)\r\n timeScaleSection.setValue(1000000);\r\n infoSection.updateByData();\r\n segmentSection.updateByData();\r\n this.updateByData();\r\n\r\n return true;\r\n };\r\n WebmFile.prototype.toBlob = function(mimeType) {\r\n return new Blob([ this.source.buffer ], { type: mimeType || 'video/webm' });\r\n };\r\n\r\n function fixWebmDuration(blob, duration, callback, options) {\r\n // The callback may be omitted - then the third argument is options\r\n if (typeof callback === \"object\") {\r\n options = callback;\r\n callback = undefined;\r\n }\r\n\r\n if (!callback) {\r\n return new Promise(function(resolve) {\r\n fixWebmDuration(blob, duration, resolve, options);\r\n });\r\n }\r\n\r\n try {\r\n var reader = new FileReader();\r\n reader.onloadend = function() {\r\n try {\r\n var file = new WebmFile(new Uint8Array(reader.result));\r\n if (file.fixDuration(duration, options)) {\r\n blob = file.toBlob(blob.type);\r\n }\r\n } catch (ex) {\r\n // ignore\r\n }\r\n callback(blob);\r\n };\r\n reader.readAsArrayBuffer(blob);\r\n } catch (ex) {\r\n callback(blob);\r\n }\r\n }\r\n\r\n // Support AMD import default\r\n fixWebmDuration.default = fixWebmDuration;\r\n\r\n return fixWebmDuration;\r\n});\r\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.idb = {}));\n}(this, function (exports) { 'use strict';\n\n function toArray(arr) {\n return Array.prototype.slice.call(arr);\n }\n\n function promisifyRequest(request) {\n return new Promise(function(resolve, reject) {\n request.onsuccess = function() {\n resolve(request.result);\n };\n\n request.onerror = function() {\n reject(request.error);\n };\n });\n }\n\n function promisifyRequestCall(obj, method, args) {\n var request;\n var p = new Promise(function(resolve, reject) {\n request = obj[method].apply(obj, args);\n promisifyRequest(request).then(resolve, reject);\n });\n\n p.request = request;\n return p;\n }\n\n function promisifyCursorRequestCall(obj, method, args) {\n var p = promisifyRequestCall(obj, method, args);\n return p.then(function(value) {\n if (!value) return;\n return new Cursor(value, p.request);\n });\n }\n\n function proxyProperties(ProxyClass, targetProp, properties) {\n properties.forEach(function(prop) {\n Object.defineProperty(ProxyClass.prototype, prop, {\n get: function() {\n return this[targetProp][prop];\n },\n set: function(val) {\n this[targetProp][prop] = val;\n }\n });\n });\n }\n\n function proxyRequestMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function(prop) {\n if (!(prop in Constructor.prototype)) return;\n ProxyClass.prototype[prop] = function() {\n return promisifyRequestCall(this[targetProp], prop, arguments);\n };\n });\n }\n\n function proxyMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function(prop) {\n if (!(prop in Constructor.prototype)) return;\n ProxyClass.prototype[prop] = function() {\n return this[targetProp][prop].apply(this[targetProp], arguments);\n };\n });\n }\n\n function proxyCursorRequestMethods(ProxyClass, targetProp, Constructor, properties) {\n properties.forEach(function(prop) {\n if (!(prop in Constructor.prototype)) return;\n ProxyClass.prototype[prop] = function() {\n return promisifyCursorRequestCall(this[targetProp], prop, arguments);\n };\n });\n }\n\n function Index(index) {\n this._index = index;\n }\n\n proxyProperties(Index, '_index', [\n 'name',\n 'keyPath',\n 'multiEntry',\n 'unique'\n ]);\n\n proxyRequestMethods(Index, '_index', IDBIndex, [\n 'get',\n 'getKey',\n 'getAll',\n 'getAllKeys',\n 'count'\n ]);\n\n proxyCursorRequestMethods(Index, '_index', IDBIndex, [\n 'openCursor',\n 'openKeyCursor'\n ]);\n\n function Cursor(cursor, request) {\n this._cursor = cursor;\n this._request = request;\n }\n\n proxyProperties(Cursor, '_cursor', [\n 'direction',\n 'key',\n 'primaryKey',\n 'value'\n ]);\n\n proxyRequestMethods(Cursor, '_cursor', IDBCursor, [\n 'update',\n 'delete'\n ]);\n\n // proxy 'next' methods\n ['advance', 'continue', 'continuePrimaryKey'].forEach(function(methodName) {\n if (!(methodName in IDBCursor.prototype)) return;\n Cursor.prototype[methodName] = function() {\n var cursor = this;\n var args = arguments;\n return Promise.resolve().then(function() {\n cursor._cursor[methodName].apply(cursor._cursor, args);\n return promisifyRequest(cursor._request).then(function(value) {\n if (!value) return;\n return new Cursor(value, cursor._request);\n });\n });\n };\n });\n\n function ObjectStore(store) {\n this._store = store;\n }\n\n ObjectStore.prototype.createIndex = function() {\n return new Index(this._store.createIndex.apply(this._store, arguments));\n };\n\n ObjectStore.prototype.index = function() {\n return new Index(this._store.index.apply(this._store, arguments));\n };\n\n proxyProperties(ObjectStore, '_store', [\n 'name',\n 'keyPath',\n 'indexNames',\n 'autoIncrement'\n ]);\n\n proxyRequestMethods(ObjectStore, '_store', IDBObjectStore, [\n 'put',\n 'add',\n 'delete',\n 'clear',\n 'get',\n 'getAll',\n 'getKey',\n 'getAllKeys',\n 'count'\n ]);\n\n proxyCursorRequestMethods(ObjectStore, '_store', IDBObjectStore, [\n 'openCursor',\n 'openKeyCursor'\n ]);\n\n proxyMethods(ObjectStore, '_store', IDBObjectStore, [\n 'deleteIndex'\n ]);\n\n function Transaction(idbTransaction) {\n this._tx = idbTransaction;\n this.complete = new Promise(function(resolve, reject) {\n idbTransaction.oncomplete = function() {\n resolve();\n };\n idbTransaction.onerror = function() {\n reject(idbTransaction.error);\n };\n idbTransaction.onabort = function() {\n reject(idbTransaction.error);\n };\n });\n }\n\n Transaction.prototype.objectStore = function() {\n return new ObjectStore(this._tx.objectStore.apply(this._tx, arguments));\n };\n\n proxyProperties(Transaction, '_tx', [\n 'objectStoreNames',\n 'mode'\n ]);\n\n proxyMethods(Transaction, '_tx', IDBTransaction, [\n 'abort'\n ]);\n\n function UpgradeDB(db, oldVersion, transaction) {\n this._db = db;\n this.oldVersion = oldVersion;\n this.transaction = new Transaction(transaction);\n }\n\n UpgradeDB.prototype.createObjectStore = function() {\n return new ObjectStore(this._db.createObjectStore.apply(this._db, arguments));\n };\n\n proxyProperties(UpgradeDB, '_db', [\n 'name',\n 'version',\n 'objectStoreNames'\n ]);\n\n proxyMethods(UpgradeDB, '_db', IDBDatabase, [\n 'deleteObjectStore',\n 'close'\n ]);\n\n function DB(db) {\n this._db = db;\n }\n\n DB.prototype.transaction = function() {\n return new Transaction(this._db.transaction.apply(this._db, arguments));\n };\n\n proxyProperties(DB, '_db', [\n 'name',\n 'version',\n 'objectStoreNames'\n ]);\n\n proxyMethods(DB, '_db', IDBDatabase, [\n 'close'\n ]);\n\n // Add cursor iterators\n // TODO: remove this once browsers do the right thing with promises\n ['openCursor', 'openKeyCursor'].forEach(function(funcName) {\n [ObjectStore, Index].forEach(function(Constructor) {\n // Don't create iterateKeyCursor if openKeyCursor doesn't exist.\n if (!(funcName in Constructor.prototype)) return;\n\n Constructor.prototype[funcName.replace('open', 'iterate')] = function() {\n var args = toArray(arguments);\n var callback = args[args.length - 1];\n var nativeObject = this._store || this._index;\n var request = nativeObject[funcName].apply(nativeObject, args.slice(0, -1));\n request.onsuccess = function() {\n callback(request.result);\n };\n };\n });\n });\n\n // polyfill getAll\n [Index, ObjectStore].forEach(function(Constructor) {\n if (Constructor.prototype.getAll) return;\n Constructor.prototype.getAll = function(query, count) {\n var instance = this;\n var items = [];\n\n return new Promise(function(resolve) {\n instance.iterateCursor(query, function(cursor) {\n if (!cursor) {\n resolve(items);\n return;\n }\n items.push(cursor.value);\n\n if (count !== undefined && items.length == count) {\n resolve(items);\n return;\n }\n cursor.continue();\n });\n });\n };\n });\n\n function openDb(name, version, upgradeCallback) {\n var p = promisifyRequestCall(indexedDB, 'open', [name, version]);\n var request = p.request;\n\n if (request) {\n request.onupgradeneeded = function(event) {\n if (upgradeCallback) {\n upgradeCallback(new UpgradeDB(request.result, event.oldVersion, request.transaction));\n }\n };\n }\n\n return p.then(function(db) {\n return new DB(db);\n });\n }\n\n function deleteDb(name) {\n return promisifyRequestCall(indexedDB, 'deleteDatabase', [name]);\n }\n\n exports.openDb = openDb;\n exports.deleteDb = deleteDb;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n","// 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","// 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__.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))","const __WEBPACK_NAMESPACE_OBJECT__ = React;","const __WEBPACK_NAMESPACE_OBJECT__ = ReactDOM;","const __WEBPACK_NAMESPACE_OBJECT__ = ReactIntl;","/**\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 Error();\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 * 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 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 promiseified 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.\r\n */\r\n// Node detection logic from: https://github.com/iliakan/detect-node/\r\nfunction isNode() {\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 */\r\nfunction isBrowser() {\r\n return typeof self === 'object' && self.self === self;\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.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 return typeof indexedDB === 'object';\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}\r\n/**\r\n * Polyfill for `globalThis` object.\r\n * @returns the `globalThis` object for the given environment.\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 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.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 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 sychronously 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 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, 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, getGlobal, getModularInstance, getUA, isAdmin, isBrowser, isBrowserExtension, isElectron, isEmpty, isIE, isIndexedDBAvailable, isMobileCordova, isNode, isNodeSdk, isReactNative, isSafari, isUWP, isValidFormat, isValidTimestamp, issuedAtTime, jsonEval, map, ordinal, querystring, querystringDecode, safeGet, stringLength, stringToByteArray, stringify, 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\" /* 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 mulitple 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/can not 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\" /* 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\" /* 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","import { Component, ComponentContainer } from '@firebase/component';\nimport { Logger, setUserLogHandler, setLogLevel as setLogLevel$1 } from '@firebase/logger';\nimport { ErrorFactory, deepEqual } from '@firebase/util';\nexport { FirebaseError } from '@firebase/util';\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\" /* VERSION */;\r\n}\n\nconst name$o = \"@firebase/app\";\nconst version$1 = \"0.7.17\";\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$n = \"@firebase/app-compat\";\n\nconst name$m = \"@firebase/analytics-compat\";\n\nconst name$l = \"@firebase/analytics\";\n\nconst name$k = \"@firebase/app-check-compat\";\n\nconst name$j = \"@firebase/app-check\";\n\nconst name$i = \"@firebase/auth\";\n\nconst name$h = \"@firebase/auth-compat\";\n\nconst name$g = \"@firebase/database\";\n\nconst name$f = \"@firebase/database-compat\";\n\nconst name$e = \"@firebase/functions\";\n\nconst name$d = \"@firebase/functions-compat\";\n\nconst name$c = \"@firebase/installations\";\n\nconst name$b = \"@firebase/installations-compat\";\n\nconst name$a = \"@firebase/messaging\";\n\nconst name$9 = \"@firebase/messaging-compat\";\n\nconst name$8 = \"@firebase/performance\";\n\nconst name$7 = \"@firebase/performance-compat\";\n\nconst name$6 = \"@firebase/remote-config\";\n\nconst name$5 = \"@firebase/remote-config-compat\";\n\nconst name$4 = \"@firebase/storage\";\n\nconst name$3 = \"@firebase/storage-compat\";\n\nconst name$2 = \"@firebase/firestore\";\n\nconst name$1 = \"@firebase/firestore-compat\";\n\nconst name = \"firebase\";\nconst version = \"9.6.7\";\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$o]: 'fire-core',\r\n [name$n]: 'fire-core-compat',\r\n [name$l]: 'fire-analytics',\r\n [name$m]: 'fire-analytics-compat',\r\n [name$j]: 'fire-app-check',\r\n [name$k]: 'fire-app-check-compat',\r\n [name$i]: 'fire-auth',\r\n [name$h]: 'fire-auth-compat',\r\n [name$g]: 'fire-rtdb',\r\n [name$f]: 'fire-rtdb-compat',\r\n [name$e]: 'fire-fn',\r\n [name$d]: 'fire-fn-compat',\r\n [name$c]: 'fire-iid',\r\n [name$b]: 'fire-iid-compat',\r\n [name$a]: 'fire-fcm',\r\n [name$9]: 'fire-fcm-compat',\r\n [name$8]: 'fire-perf',\r\n [name$7]: 'fire-perf-compat',\r\n [name$6]: 'fire-rc',\r\n [name$5]: 'fire-rc-compat',\r\n [name$4]: 'fire-gcs',\r\n [name$3]: 'fire-gcs-compat',\r\n [name$2]: 'fire-fst',\r\n [name$1]: 'fire-fst-compat',\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 * 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 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 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 * 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\" /* NO_APP */]: \"No Firebase App '{$appName}' has been created - \" +\r\n 'call Firebase App.initializeApp()',\r\n [\"bad-app-name\" /* BAD_APP_NAME */]: \"Illegal App name: '{$appName}\",\r\n [\"duplicate-app\" /* DUPLICATE_APP */]: \"Firebase App named '{$appName}' already exists with different options or config\",\r\n [\"app-deleted\" /* APP_DELETED */]: \"Firebase App named '{$appName}' already deleted\",\r\n [\"invalid-app-argument\" /* INVALID_APP_ARGUMENT */]: 'firebase.{$appName}() takes either no argument or a ' +\r\n 'Firebase App instance.',\r\n [\"invalid-log-argument\" /* INVALID_LOG_ARGUMENT */]: 'First argument to `onLog` must be null or a function.'\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\" /* 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\" /* APP_DELETED */, { appName: this._name });\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 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\" /* BAD_APP_NAME */, {\r\n appName: String(name)\r\n });\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\" /* 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\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) {\r\n throw ERROR_FACTORY.create(\"no-app\" /* 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 const name = app.name;\r\n if (_apps.has(name)) {\r\n _apps.delete(name);\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\" /* 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\" /* 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 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\" /* PRIVATE */));\r\n // Register `app` package.\r\n registerVersion(name$o, version$1, variant);\r\n // BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation\r\n registerVersion(name$o, 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, _registerComponent, _removeServiceInstance, deleteApp, getApp, getApps, initializeApp, 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 = \"9.6.7\";\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 { getApp, _getProvider, _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.5.5\";\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\" /* MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"not-registered\" /* NOT_REGISTERED */]: 'Firebase Installation is not registered.',\r\n [\"installation-not-found\" /* INSTALLATION_NOT_FOUND */]: 'Firebase Installation not found.',\r\n [\"request-failed\" /* REQUEST_FAILED */]: '{$requestName} request failed with error \"{$serverCode} {$serverStatus}: {$serverMessage}\"',\r\n [\"app-offline\" /* APP_OFFLINE */]: 'Could not process request. Application offline.',\r\n [\"delete-pending-registration\" /* 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\" /* 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 /* 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\" /* 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, { fid }) {\r\n const endpoint = getInstallationsEndpoint(appConfig);\r\n const headers = getHeaders(appConfig);\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 /* 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, upgradeDB => {\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 (upgradeDB.oldVersion) {\r\n case 0:\r\n upgradeDB.createObjectStore(OBJECT_STORE_NAME);\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.complete;\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.complete;\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.complete;\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(appConfig) {\r\n let registrationPromise;\r\n const installationEntry = await update(appConfig, oldEntry => {\r\n const installationEntry = updateOrCreateInstallationEntry(oldEntry);\r\n const entryWithPromise = triggerRegistrationIfNecessary(appConfig, 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 /* 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(appConfig, installationEntry) {\r\n if (installationEntry.registrationStatus === 0 /* 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\" /* 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 /* IN_PROGRESS */,\r\n registrationTime: Date.now()\r\n };\r\n const registrationPromise = registerInstallation(appConfig, inProgressEntry);\r\n return { installationEntry: inProgressEntry, registrationPromise };\r\n }\r\n else if (installationEntry.registrationStatus === 1 /* IN_PROGRESS */) {\r\n return {\r\n installationEntry,\r\n registrationPromise: waitUntilFidRegistration(appConfig)\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(appConfig, installationEntry) {\r\n try {\r\n const registeredInstallationEntry = await createInstallationRequest(appConfig, installationEntry);\r\n return set(appConfig, registeredInstallationEntry);\r\n }\r\n catch (e) {\r\n if (isServerError(e) && e.customData.serverCode === 409) {\r\n // Server returned a \"FID can not be used\" error.\r\n // Generate a new ID next time.\r\n await remove(appConfig);\r\n }\r\n else {\r\n // Registration failed. Set FID as not registered.\r\n await set(appConfig, {\r\n fid: installationEntry.fid,\r\n registrationStatus: 0 /* 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(appConfig) {\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(appConfig);\r\n while (entry.registrationStatus === 1 /* IN_PROGRESS */) {\r\n // createInstallation request still in progress.\r\n await sleep(100);\r\n entry = await updateInstallationRequest(appConfig);\r\n }\r\n if (entry.registrationStatus === 0 /* NOT_STARTED */) {\r\n // The request timed out or failed in a different call. Try again.\r\n const { installationEntry, registrationPromise } = await getInstallationEntry(appConfig);\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\" /* 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 /* NOT_STARTED */\r\n };\r\n }\r\n return entry;\r\n}\r\nfunction hasInstallationRequestTimedOut(installationEntry) {\r\n return (installationEntry.registrationStatus === 1 /* 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, platformLoggerProvider }, installationEntry) {\r\n const endpoint = getGenerateAuthTokenEndpoint(appConfig, installationEntry);\r\n const headers = getHeadersWithAuth(appConfig, installationEntry);\r\n // If platform logger exists, add the platform info string to the header.\r\n const platformLogger = platformLoggerProvider.getImmediate({\r\n optional: true\r\n });\r\n if (platformLogger) {\r\n headers.append('x-firebase-client', platformLogger.getPlatformInfoString());\r\n }\r\n const body = {\r\n installation: {\r\n sdkVersion: PACKAGE_VERSION\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\" /* 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 /* 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\" /* 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 /* 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 /* 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\" /* 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 /* 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 /* 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 /* COMPLETED */);\r\n}\r\nfunction isAuthTokenValid(authToken) {\r\n return (authToken.requestStatus === 2 /* 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 /* 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 /* 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.appConfig);\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.appConfig);\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(appConfig) {\r\n const { registrationPromise } = await getInstallationEntry(appConfig);\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 /* 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 /* IN_PROGRESS */) {\r\n // Can't delete while trying to register.\r\n throw ERROR_FACTORY.create(\"delete-pending-registration\" /* DELETE_PENDING_REGISTRATION */);\r\n }\r\n else if (entry.registrationStatus === 2 /* COMPLETED */) {\r\n if (!navigator.onLine) {\r\n throw ERROR_FACTORY.create(\"app-offline\" /* 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\" /* 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 platformLoggerProvider = _getProvider(app, 'platform-logger');\r\n const installationsImpl = {\r\n app,\r\n appConfig,\r\n platformLoggerProvider,\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\" /* PUBLIC */));\r\n _registerComponent(new Component(INSTALLATIONS_NAME_INTERNAL, internalFactory, \"PRIVATE\" /* PRIVATE */));\r\n}\n\n/**\r\n * Firebase Installations\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, getApp, _getProvider } 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, async (db) => {\r\n var _a;\r\n if (db.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 = db.transaction.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 (db.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 (db.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 (db.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 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, upgradeDb => {\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 (upgradeDb.oldVersion) {\r\n case 0:\r\n upgradeDb.createObjectStore(OBJECT_STORE_NAME);\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.complete;\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.complete;\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\" /* MISSING_APP_CONFIG_VALUES */]: 'Missing App configuration value: \"{$valueName}\"',\r\n [\"only-available-in-window\" /* AVAILABLE_IN_WINDOW */]: 'This method is available in a Window context.',\r\n [\"only-available-in-sw\" /* AVAILABLE_IN_SW */]: 'This method is available in a service worker context.',\r\n [\"permission-default\" /* PERMISSION_DEFAULT */]: 'The notification permission was not granted and dismissed instead.',\r\n [\"permission-blocked\" /* PERMISSION_BLOCKED */]: 'The notification permission was not granted and blocked instead.',\r\n [\"unsupported-browser\" /* UNSUPPORTED_BROWSER */]: \"This browser doesn't support the API's required to use the Firebase SDK.\",\r\n [\"indexed-db-unsupported\" /* INDEXED_DB_UNSUPPORTED */]: \"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)\",\r\n [\"failed-service-worker-registration\" /* FAILED_DEFAULT_REGISTRATION */]: 'We are unable to register the default service worker. {$browserErrorMessage}',\r\n [\"token-subscribe-failed\" /* TOKEN_SUBSCRIBE_FAILED */]: 'A problem occurred while subscribing the user to FCM: {$errorInfo}',\r\n [\"token-subscribe-no-token\" /* TOKEN_SUBSCRIBE_NO_TOKEN */]: 'FCM returned no token when subscribing the user to push.',\r\n [\"token-unsubscribe-failed\" /* TOKEN_UNSUBSCRIBE_FAILED */]: 'A problem occurred while unsubscribing the ' +\r\n 'user from FCM: {$errorInfo}',\r\n [\"token-update-failed\" /* TOKEN_UPDATE_FAILED */]: 'A problem occurred while updating the user from FCM: {$errorInfo}',\r\n [\"token-update-no-token\" /* TOKEN_UPDATE_NO_TOKEN */]: 'FCM returned no token when updating the user to push.',\r\n [\"use-sw-after-get-token\" /* 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\" /* INVALID_SW_REGISTRATION */]: 'The input to useServiceWorker() must be a ServiceWorkerRegistration.',\r\n [\"invalid-bg-handler\" /* INVALID_BG_HANDLER */]: 'The input to setBackgroundMessageHandler() must be a function.',\r\n [\"invalid-vapid-key\" /* INVALID_VAPID_KEY */]: 'The public VAPID key must be a string.',\r\n [\"use-vapid-key-after-get-token\" /* 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\" /* TOKEN_SUBSCRIBE_FAILED */, {\r\n errorInfo: err\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\" /* 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\" /* 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\" /* TOKEN_UPDATE_FAILED */, {\r\n errorInfo: err\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\" /* 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\" /* 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\" /* 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\" /* TOKEN_UNSUBSCRIBE_FAILED */, {\r\n errorInfo: err\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 await deleteTokenInternal(messaging);\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}\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 if (!messagePayloadInternal.fcmOptions) {\r\n return;\r\n }\r\n payload.fcmOptions = {};\r\n const link = messagePayloadInternal.fcmOptions.link;\r\n if (!!link) {\r\n payload.fcmOptions.link = link;\r\n }\r\n // eslint-disable-next-line camelcase\r\n const analyticsLabel = messagePayloadInternal.fcmOptions.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('hts/frbslgigp.ogepscmv/ieo/eaylg', 'tp:/ieaeogn-agolai.o/1frlglgc/o');\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\" /* 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\" /* FAILED_DEFAULT_REGISTRATION */, {\r\n browserErrorMessage: 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\" /* 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\" /* 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\" /* 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.9.8\";\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\" /* PUBLIC */));\r\n _registerComponent(new Component('messaging-internal', WindowMessagingInternalFactory, \"PRIVATE\" /* 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\" /* 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\" /* 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\" /* UNSUPPORTED_BROWSER */);\r\n }\r\n }, _ => {\r\n // If `isWindowSupported()` rejected.\r\n throw ERROR_FACTORY.create(\"indexed-db-unsupported\" /* 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 an 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 a 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 optinoal 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 * Firebase Cloud Messaging\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","const __WEBPACK_NAMESPACE_OBJECT__ = Tinode;","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class Alert extends React.PureComponent {\n render() {\n return this.props.visible ?\n
\n
\n
{this.props.title}
\n
{this.props.content}
\n
\n {this.props.onReject ?\n \n :\n null\n }\n \n
\n
\n
\n :\n null;\n }\n};\n","// This is a generated file. Don't edit.\n\nexport const PACKAGE_VERSION = \"0.19.0-alpha1\";\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.17');\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*1000;\n// Delay before sending a {note} for reciving a message, milliseconds.\nexport const RECEIVED_DELAY = 500;\n// Delay before sending a read notification, milliseconds.\nexport const READ_DELAY = 1000;\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// 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 = 262144;\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 image thumbnail: shrink image under this size for thumbnails in reply quote previews.\nexport const IMAGE_THUMBNAIL_DIM = 36;\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\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\n// Link for \"Contact Us\".\nexport const LINK_CONTACT_US = 'email: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","// 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 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(message.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 '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 (() => {\n return this.topicPermissionSetter('-JP', params, errorHandler).then((ctrl) => {\n this.props.onTopicRemoved(params.topicName);\n return ctrl;\n });\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 // Can't cancel. Delete instead.\n const promise = all ?\n topic.delMessagesAll(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) => {\n errorHandler(err.message, 'err');\n });\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 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","// 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// Convert seconds to minutes:seconds, i.e. 156 sec -> 2:36.\n// If fixedMins is true, then minutes are represented by at least two digits.\nexport function secondsToTime(seconds, fixedMin) {\n let min = Math.floor(seconds / 60) | 0;\n if (fixedMin) {\n min = min < 10 ? `0${min}` : min;\n }\n let sec = (seconds % 60) | 0;\n sec = sec < 10 ? `0${sec}` : sec;\n return `${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","// 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// ' ↲ https://example.com' - not ok. (↲ means carriage return)\nexport function isUrlRelative(url) {\n return url && !/^\\s*([a-z][a-z0-9+.-]*:|\\/\\/)/im.test(url);\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(/[^\\x20-\\x7E]/gmi, '').trim();\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// 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 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","import React from 'react';\n\nimport { Tinode } from 'tinode-sdk';\n\nimport { idToColorClass } from '../lib/strformat.js';\nimport { sanitizeUrlForMime } from '../lib/utils.js';\n\nexport default class LetterTile extends React.PureComponent {\n render() {\n let avatar;\n if (this.props.avatar === true) {\n const isGroup = Tinode.isGroupTopicName(this.props.topic);\n const iconColor = idToColorClass(this.props.topic, isGroup);\n if (this.props.topic && this.props.title && this.props.title.trim()) {\n const letter = this.props.title.trim().charAt(0);\n const className = 'lettertile ' + iconColor + (this.props.deleted ? ' disabled' : '');\n avatar = (
{letter}
)\n } else {\n const className = 'material-icons ' + iconColor + (this.props.deleted ? ' disabled' : '');\n avatar = isGroup ? group : person;\n }\n } else if (this.props.avatar) {\n const url = this.props.tinode.authorizeURL(sanitizeUrlForMime(this.props.avatar, 'image'));\n // If avatar image is invalid, show a placeholder.\n const className = 'avatar' + (this.props.deleted ? ' deleted' : '');\n avatar = {e.target.onerror = null; e.target.src=\"../img/broken_image.png\"}} />;\n } else {\n avatar = null;\n }\n return avatar;\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","// 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 = (err) => {\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 = (evt) => {\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 (!Array.isArray(items)) {\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","// Audio recorder widget.\n\nimport React from 'react';\nimport { FormattedMessage } 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 = '#bbb';\nconst BAR_COLOR_DARK = '#888';\nconst THUMB_COLOR = '#666';\n// Minimum number of amplitude bars to draw.\nconst MIN_PREVIEW_LENGTH = 16;\n\nexport default class 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 if (this.state.preview) {\n this.initCanvas();\n }\n }\n\n componentWillUnmount() {\n if (this.audioPlayer) {\n this.audioPlayer.oncanplay = 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.oncanplay = _ => 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 ration 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) {\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 pplayback 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 = this.viewBuffer[i] * height * 0.9;\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 * 0.5 + 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 barCount = Math.min(original.length, ((this.canvasRef.current.width - SPACING) / (LINE_WIDTH + SPACING)) | 0);\n const factor = original.length / barCount;\n let amps = [];\n let max = -1;\n for (let i=0;i 0) {\n // Remove extra padding on the right due to fractional bar which is not drawn.\n this.effectiveWidth = barCount * (LINE_WIDTH + SPACING) + SPACING;\n return amps.map(a => a / max);\n }\n return null;\n }\n\n handlePlay(e) {\n e.preventDefault();\n if (!this.state.canPlay) {\n return;\n }\n if (this.state.playing) {\n this.audioPlayer.pause();\n this.setState({playing: false});\n } else {\n this.audioPlayer.play();\n this.setState({playing: true}, this.visualize);\n }\n }\n\n handleError(err) {\n console.log(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 && this.state.preview) {\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 (
{this.props.short ?\n <>\n
\n {this.state.preview ?\n :\n
-
\n }\n
\n {play}\n >\n :\n <>\n {play}\n
\n {this.state.preview ?\n :\n
\n \n
\n }\n
{this.state.currentTime}/{this.state.duration}
\n
\n >\n }\n
);\n }\n}\n","// Image with a placeholder which is replaced when the promise is resolved.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class LazyImage extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n src: 'img/placeholder.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: '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: 'img/placeholder.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: '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';\nimport { FormattedMessage } from 'react-intl';\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 LazyImage from '../widgets/lazy-image.jsx'\nimport UploadingImage from '../widgets/uploading-image.jsx'\n\nimport { IMAGE_THUMBNAIL_DIM, BROKEN_IMAGE_SIZE, REM_SIZE } from '../config.js';\nimport { base64ToBlob, blobToBase64, fitImageSize, imageScaled } from './blob-helpers.js';\nimport { idToColorClass, secondsToTime, shortenFileName } from './strformat.js';\nimport { cancelablePromise, 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_unknown: {\n id: 'drafty_unknown',\n defaultMessage: 'Unsupported',\n description: 'Unsupported entity in drafty'\n }\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 = 'img/broken_image.png';\n }\n } else {\n // Use custom element instead of .\n el = UploadingImage;\n }\n\n return el;\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: this.props.viewportWidth;\n// authorizeURL: this.props.tinode.authorizeURL\n// onImagePreview: this.handleImagePreview\n// onFormButtonClick: this.handleFormButtonClick\n// onQuoteClick: this.handleQuoteClick (optional)\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 '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 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// 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 'QQ':\n case 'HD':\n el = null;\n values = null;\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 }\n attr.title = attr.alt;\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'].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 '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 quoteImage(data) {\n let promise;\n // Get the blob from the image data.\n if (data.val) {\n const blob = base64ToBlob(data.val, data.mime);\n if (!blob) {\n throw new Error(\"Invalid image\");\n }\n promise = Promise.resolve(blob);\n } else if (data.ref) {\n promise = fetch(this.authorizeURL(sanitizeUrlForMime(data.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 // Cut the square from the center of the image and shrink it.\n return imageScaled(blob, IMAGE_THUMBNAIL_DIM, IMAGE_THUMBNAIL_DIM, -1, true)\n }).then(scaled => {\n data.mime = scaled.mime;\n data.size = scaled.blob.size;\n data.width = scaled.width;\n data.height = scaled.height;\n delete data.ref;\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 data.val = b64.bits;\n return data;\n }).catch(err => {\n delete data.val;\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') {\n const attr = inlineImageAttr.call(this, {key: key}, data);\n let loadedPromise;\n try {\n loadedPromise = cancelablePromise(quoteImage.call(this, data));\n } catch (error) {\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}));\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
: null);\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\nexport default injectIntl(SendMessage);\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport SendMessage from '../widgets/send-message.jsx';\n\nimport { bytesToHumanSize, shortenFileName } from '../lib/strformat.js';\n\n// Get material icon name from mime type.\nfunction iconFromMime(mime) {\n // If more icons become available in material icons, add them to this mime-to-icon mapping.\n const mimeToIcon = {default: 'insert_drive_file', image: 'image', text: 'description', video: 'theaters'};\n\n return mimeToIcon[mime] || mimeToIcon[(mime || '').split('/')[0]] || mimeToIcon['default'];\n}\n\nexport default class DocPreview extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.handleSendDoc = this.handleSendDoc.bind(this);\n }\n\n handleSendDoc(caption) {\n this.props.onClose();\n this.props.onSendMessage(this.props.content.file);\n }\n\n render() {\n if (!this.props.content) {\n return null;\n }\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';\nimport { FormattedMessage } from 'react-intl';\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.deleted) {\n // Message represents a range of deleted messages.\n content = <>block\n \n >\n bubbleClass += ' deleted';\n } else 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 {content}\n
\n
\n
\n );\n }\n};\n","// Utility class for hash navigation.\n\n// Parse hash as in http://www.example.com/path#hash as if it were\n// path and arguments.\nexport default class HashNavigation {\n static parseUrlHash(hash) {\n // Split path from 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(function(part) {\n const item = part.split('=');\n if (item[0]) {\n params[decodeURIComponent(item[0])] = decodeURIComponent(item[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 args.push(key + '=' + params[key]);\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 = this.parseUrlHash(hash);\n parsed.params[key] = value;\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static removeUrlParam(hash, key) {\n const parsed = this.parseUrlHash(hash);\n delete parsed.params[key];\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlSidePanel(hash, sidepanel) {\n const parsed = this.parseUrlHash(hash);\n parsed.path[0] = sidepanel;\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlInfoPanel(hash, infopanel) {\n const parsed = this.parseUrlHash(hash);\n if (infopanel) {\n parsed.params.info = infopanel;\n } else {\n delete parsed.params.info;\n }\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n\n static setUrlTopic(hash, topic) {\n const parsed = this.parseUrlHash(hash);\n parsed.path[1] = topic;\n // Close InfoView on topic change.\n delete parsed.params.info;\n return this.composeUrlHash(parsed.path, parsed.params);\n }\n}\n","// Panel with a chat.\n\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport { Drafty, Tinode } from 'tinode-sdk';\n\nimport ChatMessage from '../widgets/chat-message.jsx';\nimport ContactBadges from '../widgets/contact-badges.jsx';\nimport DocPreview from '../widgets/doc-preview.jsx';\nimport ErrorPanel from '../widgets/error-panel.jsx';\nimport GroupSubs from '../widgets/group-subs.jsx';\nimport ImagePreview from '../widgets/image-preview.jsx';\nimport Invitation from '../widgets/invitation.jsx';\nimport LetterTile from '../widgets/letter-tile.jsx';\nimport LoadSpinner from '../widgets/load-spinner.jsx';\nimport LogoView from './logo-view.jsx';\nimport MetaMessage from '../widgets/meta-message.jsx';\nimport SendMessage from '../widgets/send-message.jsx';\n\nimport { DEFAULT_P2P_ACCESS_MODE, IMAGE_PREVIEW_DIM, KEYPRESS_DELAY,\n MESSAGES_PAGE, MAX_EXTERN_ATTACHMENT_SIZE, MAX_IMAGE_DIM, MAX_INBAND_ATTACHMENT_SIZE,\n READ_DELAY, QUOTED_REPLY_LENGTH } from '../config.js';\nimport { blobToBase64, fileToBase64, imageScaled, makeImageUrl } from '../lib/blob-helpers.js';\nimport HashNavigation from '../lib/navigation.js';\nimport { bytesToHumanSize, shortDateFormat } from '../lib/strformat.js';\n\n// Run timer with this frequency (ms) for checking notification queue.\nconst NOTIFICATION_EXEC_INTERVAL = 300;\n// Scroll distance before [go to latest message] button is shown.\nconst SHOW_GO_TO_LAST_DIST = 100;\n\nconst messages = defineMessages({\n online_now: {\n id: 'online_now',\n defaultMessage: 'online now',\n description: 'Indicator that the user or topic is currently online',\n },\n last_seen: {\n id: 'last_seen_timestamp',\n defaultMessage: 'Last seen',\n description: 'Label for the timestamp of when the user or topic was last online'\n },\n not_found: {\n id: 'title_not_found',\n defaultMessage: 'Not found',\n description: 'Title shown when topic is not found'\n },\n channel: {\n id: 'channel',\n defaultMessage: 'channel',\n description: 'Subtitle shown for channels in MessagesView instead of last seen'\n },\n file_attachment_too_large: {\n id: 'file_attachment_too_large',\n defaultMessage: 'The file size {size} exceeds the {limit} limit.',\n description: 'Error message when attachment is too large'\n },\n invalid_content: {\n id: 'invalid_content',\n defaultMessage: 'invalid content',\n description: 'Shown when the message is unreadable'\n },\n});\n\n// Checks if the access permissions are granted but not yet accepted.\nfunction isUnconfirmed(acs) {\n if (acs) {\n const ex = acs.getExcessive() || '';\n return acs.isJoiner('given') && (ex.includes('R') || ex.includes('W'));\n }\n return false;\n}\n\nfunction isPeerRestricted(acs) {\n if (acs) {\n const ms = acs.getMissing() || '';\n return acs.isJoiner('want') && (ms.includes('R') || ms.includes('W'));\n }\n return false;\n}\n\nclass MessagesView extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = MessagesView.getDerivedStateFromProps(props, {});\n\n this.leave = this.leave.bind(this);\n this.sendMessage = this.sendMessage.bind(this);\n this.retrySend = this.retrySend.bind(this);\n this.sendImageAttachment = this.sendImageAttachment.bind(this);\n this.sendFileAttachment = this.sendFileAttachment.bind(this);\n this.sendAudioAttachment = this.sendAudioAttachment.bind(this);\n this.sendKeyPress = this.sendKeyPress.bind(this);\n this.subscribe = this.subscribe.bind(this);\n this.handleScrollReference = this.handleScrollReference.bind(this);\n this.handleScrollEvent = this.handleScrollEvent.bind(this);\n this.handleDescChange = this.handleDescChange.bind(this);\n this.handleSubsUpdated = this.handleSubsUpdated.bind(this);\n this.handleMessageUpdate = this.handleMessageUpdate.bind(this);\n this.handleAllMessagesReceived = this.handleAllMessagesReceived.bind(this);\n this.handleInfoReceipt = this.handleInfoReceipt.bind(this);\n this.handleImagePostview = this.handleImagePostview.bind(this);\n this.handleClosePreview = this.handleClosePreview.bind(this);\n this.handleFormResponse = this.handleFormResponse.bind(this);\n this.handleContextClick = this.handleContextClick.bind(this);\n this.handleShowMessageContextMenu = this.handleShowMessageContextMenu.bind(this);\n this.handleNewChatAcceptance = this.handleNewChatAcceptance.bind(this);\n this.handleEnablePeer = this.handleEnablePeer.bind(this);\n this.handleAttachFile = this.handleAttachFile.bind(this);\n this.handleAttachImage = this.handleAttachImage.bind(this);\n this.handleCancelUpload = this.handleCancelUpload.bind(this);\n this.postReadNotification = this.postReadNotification.bind(this);\n this.clearNotificationQueue = this.clearNotificationQueue.bind(this);\n this.goToLatestMessage = this.goToLatestMessage.bind(this);\n\n this.handlePickReply = this.handlePickReply.bind(this);\n this.handleCancelReply = this.handleCancelReply.bind(this);\n this.handleQuoteClick = this.handleQuoteClick.bind(this);\n\n this.chatMessageRefs = {};\n this.getOrCreateMessageRef = this.getOrCreateMessageRef.bind(this);\n\n this.readNotificationQueue = [];\n this.readNotificationTimer = null;\n }\n\n getOrCreateMessageRef(seqId) {\n if (this.chatMessageRefs.hasOwnProperty(seqId)) {\n return this.chatMessageRefs[seqId];\n }\n const ref = React.createRef();\n this.chatMessageRefs[seqId] = ref;\n return ref;\n }\n\n componentDidMount() {\n if (this.messagesScroller) {\n this.messagesScroller.addEventListener('scroll', this.handleScrollEvent);\n }\n }\n\n componentWillUnmount() {\n if (this.messagesScroller) {\n this.messagesScroller.removeEventListener('scroll', this.handleScrollEvent);\n }\n\n // Flush all notifications.\n this.clearNotificationQueue();\n }\n\n // Scroll last message into view on component update e.g. on message received\n // or vertical shrinking.\n componentDidUpdate(prevProps, prevState) {\n if (this.messagesScroller &&\n (prevState.topic != this.state.topic || prevState.messageCount != this.state.messageCount)) {\n // New message.\n if (this.state.scrollPosition < SHOW_GO_TO_LAST_DIST) {\n this.messagesScroller.scrollTop = this.messagesScroller.scrollHeight -\n this.state.scrollPosition -\n this.messagesScroller.offsetHeight;\n }\n }\n\n const topic = this.props.tinode ? this.props.tinode.getTopic(this.state.topic) : undefined;\n if (this.state.topic != prevState.topic) {\n if (prevState.topic && !Tinode.isNewGroupTopicName(prevState.topic)) {\n this.leave(prevState.topic);\n }\n\n if (topic) {\n topic.onData = this.handleMessageUpdate;\n topic.onAllMessagesReceived = this.handleAllMessagesReceived;\n topic.onInfo = this.handleInfoReceipt;\n topic.onMetaDesc = this.handleDescChange;\n topic.onSubsUpdated = this.handleSubsUpdated;\n topic.onPres = this.handleSubsUpdated;\n }\n }\n\n if (!this.props.applicationVisible) {\n // If application is not visible, flush all unsent 'read' notifications.\n this.clearNotificationQueue();\n } else {\n // Otherwise assume there are unread messages.\n this.postReadNotification(0);\n }\n\n if (topic && ((this.state.topic != prevState.topic) || !prevProps.ready)) {\n // Don't immediately subscribe to a new p2p topic, wait for the first message.\n if (topic._new && topic.isP2PType()) {\n topic.getMeta(topic.startMetaQuery().withDesc().build());\n } else {\n this.subscribe(topic);\n }\n }\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n let nextState = {};\n if (!nextProps.topic) {\n // Default state: no topic.\n nextState = {\n messageCount: 0,\n latestClearId: -1,\n onlineSubs: [],\n topic: null,\n title: '',\n avatar: null,\n isVerified: false,\n isStaff: false,\n isDangerous: false,\n deleted: false,\n docPreview: null,\n imagePreview: null,\n imagePostview: null,\n typingIndicator: false,\n scrollPosition: 0,\n fetchingMessages: false,\n peerMessagingDisabled: false,\n channel: false,\n reply: null,\n showGoToLastButton: false\n };\n } else if (nextProps.topic != prevState.topic) {\n const topic = nextProps.tinode.getTopic(nextProps.topic);\n\n let reply = null;\n if (nextProps.forwardMessage) {\n // We are forwarding a message. Show preview.\n const preview = nextProps.forwardMessage.preview;\n reply = {\n content: preview,\n seq: null\n };\n }\n\n nextState = {\n topic: nextProps.topic,\n docPreview: null,\n imagePreview: null,\n imagePostview: null,\n typingIndicator: false,\n scrollPosition: 0,\n fetchingMessages: false,\n reply: reply,\n showGoToLastButton: false,\n deleted: topic._deleted\n };\n\n if (topic) {\n // Topic exists.\n const subs = [];\n\n if (nextProps.connected) {\n topic.subscribers((sub) => {\n if (sub.online && sub.user != nextProps.myUserId) {\n subs.push(sub);\n }\n });\n }\n\n Object.assign(nextState, {\n onlineSubs: subs\n });\n\n if (topic.public) {\n Object.assign(nextState, {\n title: topic.public.fn,\n avatar: makeImageUrl(topic.public.photo)\n });\n } else {\n Object.assign(nextState, {\n title: '',\n avatar: null\n });\n }\n\n const peer = topic.p2pPeerDesc();\n if (peer) {\n Object.assign(nextState, {\n peerMessagingDisabled: isPeerRestricted(peer.acs)\n });\n } else if (prevState.peerMessagingDisabled) {\n Object.assign(nextState, {\n peerMessagingDisabled: false\n });\n }\n Object.assign(nextState, {\n messageCount: topic.messageCount(),\n latestClearId: topic.maxClearId(),\n channel: topic.isChannelType()\n });\n } else {\n // Invalid topic.\n Object.assign(nextState, {\n messageCount: 0,\n latestClearId: -1,\n onlineSubs: [],\n title: '',\n avatar: null,\n peerMessagingDisabled: false,\n channel: false\n });\n }\n }\n\n if (nextProps.acs) {\n if (nextProps.acs.isWriter() != prevState.isWriter) {\n nextState.isWriter = !prevState.isWriter;\n }\n if (nextProps.acs.isReader() != prevState.isReader) {\n nextState.isReader = !prevState.isReader;\n }\n if (!nextProps.acs.isReader('given') != prevState.readingBlocked) {\n nextState.readingBlocked = !prevState.readingBlocked;\n }\n if (nextProps.acs.isSharer() != prevState.isSharer) {\n nextState.isSharer = !prevState.isSharer;\n }\n } else {\n if (prevState.isWriter) {\n nextState.isWriter = false;\n }\n if (prevState.isReader) {\n nextState.isReader = false;\n }\n if (!prevState.readingBlocked) {\n prevState.readingBlocked = true;\n }\n if (prevState.isSharer) {\n nextState.isSharer = false;\n }\n }\n\n if (isUnconfirmed(nextProps.acs) == !prevState.unconformed) {\n nextState.unconfirmed = !prevState.unconformed;\n }\n\n // Clear subscribers online when there is no connection.\n if (!nextProps.connected && prevState.onlineSubs && prevState.onlineSubs.length > 0) {\n nextState.onlineSubs = [];\n }\n\n return nextState;\n }\n\n subscribe(topic) {\n if (topic.isSubscribed() || !this.props.ready) {\n return;\n }\n\n // Is this a new topic?\n const newTopic = (this.props.newTopicParams && this.props.newTopicParams._topicName == this.props.topic);\n\n // Don't request the tags. They are useless unless the user\n // is the owner and is editing the topic.\n let getQuery = topic.startMetaQuery().withLaterDesc().withLaterSub();\n if (this.state.isReader || newTopic) {\n // Reading is either permitted or we don't know because it's a new topic. Ask for messages.\n getQuery = getQuery.withLaterData(MESSAGES_PAGE);\n if (this.state.isReader) {\n getQuery = getQuery.withLaterDel();\n }\n // And show \"loading\" spinner.\n this.setState({ fetchingMessages: true });\n }\n\n const setQuery = newTopic ? this.props.newTopicParams : undefined;\n topic.subscribe(getQuery.build(), setQuery)\n .then((ctrl) => {\n if (ctrl.code == 303) {\n // Redirect to another topic requested.\n HashNavigation.navigateTo(HashNavigation.setUrlTopic('', ctrl.params.topic));\n return;\n }\n if (this.state.topic != ctrl.topic) {\n this.setState({topic: ctrl.topic});\n }\n this.props.onNewTopicCreated(this.props.topic, ctrl.topic);\n // If there are unsent messages, try sending them now.\n topic.queuedMessages((pub) => {\n if (pub._sending) {\n return;\n }\n if (topic.isSubscribed()) {\n this.retrySend(pub);\n }\n });\n })\n .catch((err) => {\n console.error(\"Failed subscription to\", this.state.topic);\n this.props.onError(err.message, 'err');\n const blankState = MessagesView.getDerivedStateFromProps({}, {});\n blankState.title = this.props.intl.formatMessage(messages.not_found);\n this.setState(blankState);\n });\n }\n\n leave(oldTopicName) {\n if (!oldTopicName || !this.props.tinode.isTopicCached(oldTopicName)) {\n return;\n }\n const oldTopic = this.props.tinode.getTopic(oldTopicName);\n if (oldTopic && oldTopic.isSubscribed()) {\n oldTopic.leave(false)\n .catch(() => { /* do nothing here */ })\n .finally(() => {\n // We don't care if the request succeeded or failed.\n // The topic is dead regardless.\n this.setState({fetchingMessages: false});\n oldTopic.onData = undefined;\n oldTopic.onAllMessagesReceived = undefined;\n oldTopic.onInfo = undefined;\n oldTopic.onMetaDesc = undefined;\n oldTopic.onSubsUpdated = undefined;\n oldTopic.onPres = undefined;\n });\n }\n }\n\n // Don't use React.createRef as the ref.current is not available in componentDidMount in this component.\n handleScrollReference(node) {\n if (node) {\n node.addEventListener('scroll', this.handleScrollEvent);\n this.messagesScroller = node;\n this.messagesScroller.scrollTop = this.messagesScroller.scrollHeight - this.state.scrollPosition;\n }\n }\n\n // Get older messages and show/hide [go to latest message] button.\n handleScrollEvent(event) {\n const pos = event.target.scrollHeight - event.target.scrollTop - event.target.offsetHeight;\n this.setState({\n scrollPosition: pos,\n showGoToLastButton: pos > SHOW_GO_TO_LAST_DIST,\n });\n\n if (this.state.fetchingMessages) {\n return;\n }\n\n if (event.target.scrollTop <= 0) {\n const topic = this.props.tinode.getTopic(this.state.topic);\n if (topic && topic.isSubscribed() && topic.msgHasMoreMessages()) {\n this.setState({fetchingMessages: true}, () => {\n topic.getMessagesPage(MESSAGES_PAGE)\n .catch((err) => this.props.onError(err.message, 'err'))\n .finally(() => this.setState({fetchingMessages: false}));\n });\n }\n }\n }\n\n goToLatestMessage() {\n this.setState({scrollPosition: 0});\n if (this.messagesScroller) {\n this.messagesScroller.scrollTop = this.messagesScroller.scrollHeight;\n }\n }\n\n handleDescChange(desc) {\n if (desc.public) {\n this.setState({\n title: desc.public.fn,\n avatar: makeImageUrl(desc.public.photo)\n });\n } else {\n this.setState({\n title: '',\n avatar: null\n });\n }\n\n if (desc.acs) {\n this.setState({\n isWriter: desc.acs.isWriter(),\n isReader: desc.acs.isReader(),\n readingBlocked: !desc.acs.isReader('given'),\n unconfirmed: isUnconfirmed(desc.acs),\n });\n }\n }\n\n postReadNotification(seq) {\n // Ignore notifications if the app is invisible.\n if (!this.props.applicationVisible) {\n return;\n }\n\n // Set up the timer if it's not running already.\n if (!this.readNotificationTimer) {\n this.readNotificationTimer = setInterval(() => {\n if (this.readNotificationQueue.length == 0) {\n // Shut down the timer if the queue is empty.\n clearInterval(this.readNotificationTimer);\n this.readNotificationTimer = null;\n return;\n }\n\n let seq = -1;\n while (this.readNotificationQueue.length > 0) {\n const n = this.readNotificationQueue[0];\n if (n.topicName != this.state.topic) {\n // Topic has changed. Drop the notification.\n this.readNotificationQueue.shift();\n continue;\n }\n\n const now = new Date();\n if (n.sendAt <= now) {\n // Remove expired notification from queue.\n this.readNotificationQueue.shift();\n seq = Math.max(seq, n.seq);\n } else {\n break;\n }\n }\n\n // Send only one notification for the whole batch of messages.\n if (seq >= 0) {\n const topic = this.props.tinode.getTopic(this.state.topic);\n if (topic) {\n topic.noteRead(seq);\n }\n }\n }, NOTIFICATION_EXEC_INTERVAL);\n }\n\n const now = new Date();\n this.readNotificationQueue.push({\n topicName: this.state.topic,\n seq: seq,\n sendAt: now.setMilliseconds(now.getMilliseconds() + READ_DELAY)\n });\n }\n\n // Clear notification queue and timer.\n clearNotificationQueue() {\n this.readNotificationQueue = [];\n if (this.readNotificationTimer) {\n clearInterval(this.readNotificationTimer);\n this.readNotificationTimer = null;\n }\n }\n\n handleSubsUpdated() {\n if (this.state.topic) {\n const subs = [];\n const topic = this.props.tinode.getTopic(this.state.topic);\n topic.subscribers((sub) => {\n if (sub.online && sub.user != this.props.myUserId) {\n subs.push(sub);\n }\n });\n const newState = {onlineSubs: subs};\n const peer = topic.p2pPeerDesc();\n if (peer) {\n Object.assign(newState, {\n peerMessagingDisabled: isPeerRestricted(peer.acs)\n });\n } else if (this.state.peerMessagingDisabled) {\n Object.assign(newState, {\n peerMessagingDisabled: false\n });\n }\n this.setState(newState);\n }\n }\n\n // The 'msg' could be false-ish if some message ranges were deleted.\n handleMessageUpdate(msg) {\n const topic = this.props.tinode.getTopic(this.state.topic);\n if (!msg) {\n // msg could be null if one or more messages were deleted.\n // Updating state to force redraw.\n this.setState({latestClearId: topic.maxClearId()});\n return;\n }\n\n clearTimeout(this.keyPressTimer)\n this.setState({messageCount: topic.messageCount(), typingIndicator: false});\n\n // Scroll to the bottom if the message is added to the end of the message list.\n // TODO: This should be replaced by showing a \"scroll to bottom\" button.\n if (topic.isNewMessage(msg.seq)) {\n if (this.state.scrollPosition > SHOW_GO_TO_LAST_DIST) {\n this.setState({showGoToLastButton: true});\n } else {\n this.setState({scrollPosition: 0});\n }\n }\n\n // Aknowledge messages except own messages. They are\n // automatically assumed to be read and recived.\n const status = topic.msgStatus(msg, true);\n if (status >= Tinode.MESSAGE_STATUS_SENT && msg.from != this.props.myUserId) {\n this.postReadNotification(msg.seq);\n }\n // This will send \"received\" notifications right away.\n this.props.onData(msg);\n }\n\n handleAllMessagesReceived(count) {\n this.setState({fetchingMessages: false});\n if (count > 0) {\n // 0 means \"latest\".\n this.postReadNotification(0);\n }\n }\n\n handleInfoReceipt(info) {\n switch (info.what) {\n case 'kp': {\n clearTimeout(this.keyPressTimer);\n this.keyPressTimer = setTimeout(() => {\n this.setState({typingIndicator: false});\n }, KEYPRESS_DELAY + 1000);\n if (!this.state.typingIndicator) {\n this.setState({typingIndicator: true});\n }\n break;\n }\n case 'read':\n case 'recv':\n // Redraw due to changed recv/read status.\n this.forceUpdate();\n break;\n default:\n console.info(\"Other change in topic: \", info.what);\n }\n }\n\n handleImagePostview(content) {\n this.setState({ imagePostview: content });\n }\n\n handleClosePreview() {\n if (this.state.imagePreview && this.state.imagePreview.url) {\n URL.revokeObjectURL(this.state.imagePreview.url);\n }\n this.setState({ imagePostview: null, imagePreview: null, docPreview: null });\n }\n\n handleFormResponse(action, text, data) {\n if (action == 'pub') {\n this.sendMessage(Drafty.attachJSON(Drafty.parse(text), data));\n } else if (action == 'url') {\n const url = new URL(data.ref);\n const params = url.searchParams;\n for (let key in data.resp) {\n if (data.resp.hasOwnProperty(key)) {\n params.set(key, data.resp[key]);\n }\n }\n ['name', 'seq'].map((key) => {\n if (data[key]) {\n params.set(key, data[key]);\n }\n });\n params.set('uid', this.props.myUserId);\n params.set('topic', this.state.topic);\n url.search = params;\n window.open(url, '_blank');\n } else {\n console.info(\"Unknown action in form\", action);\n }\n }\n\n handleContextClick(e) {\n e.preventDefault();\n e.stopPropagation();\n this.props.showContextMenu({ topicName: this.state.topic, y: e.pageY, x: e.pageX });\n }\n\n handleShowMessageContextMenu(params, messageSpecificMenuItems) {\n if (params.userFrom == 'chan') {\n params.userFrom = this.state.topic;\n params.userName = this.state.title;\n }\n params.topicName = this.state.topic;\n const menuItems = messageSpecificMenuItems || [];\n const topic = this.props.tinode.getTopic(params.topicName);\n if (topic) {\n if (!topic.isChannelType()) {\n menuItems.push('message_delete');\n }\n const acs = topic.getAccessMode();\n if (acs && acs.isDeleter()) {\n menuItems.push('message_delete_hard');\n }\n }\n this.props.showContextMenu(params, menuItems);\n }\n\n handleNewChatAcceptance(action) {\n this.props.onNewChat(this.state.topic, action);\n }\n\n handleEnablePeer(e) {\n e.preventDefault();\n this.props.onChangePermissions(this.state.topic, DEFAULT_P2P_ACCESS_MODE, this.state.topic);\n }\n\n sendKeyPress() {\n const topic = this.props.tinode.getTopic(this.state.topic);\n if (topic.isSubscribed()) {\n topic.noteKeyPress();\n }\n }\n\n // sendMessage sends the message with an optional subscription to topic first.\n sendMessage(msg, uploadCompletionPromise, uploader) {\n let head;\n if (this.props.forwardMessage) {\n // We are forwarding a message.\n msg = this.props.forwardMessage.msg;\n head = this.props.forwardMessage.head;\n this.handleCancelReply();\n } else if (this.state.reply && this.state.reply.content) {\n // We are replying to a message in this topic.\n head = {reply: '' + this.state.reply.seq};\n // Turn it into Drafty so we can make a quoted Drafty object later.\n if (typeof msg == 'string') {\n msg = Drafty.parse(msg);\n }\n msg = Drafty.append(Drafty.sanitizeEntities(this.state.reply.content), msg);\n this.handleCancelReply();\n }\n this.props.sendMessage(msg, uploadCompletionPromise, uploader, head);\n }\n\n // Retry sending a message.\n retrySend(pub) {\n this.props.sendMessage(pub.content, undefined, undefined, pub.head);\n }\n\n // Send attachment as Drafty message:\n // - if file is too large, upload it and send a s link.\n // - if file is small enough, just send it in-band.\n sendFileAttachment(file) {\n // Server-provided limit reduced for base64 encoding and overhead.\n const maxInbandAttachmentSize = (this.props.tinode.getServerLimit('maxMessageSize',\n MAX_INBAND_ATTACHMENT_SIZE) * 0.75 - 1024) | 0;\n\n if (file.size > maxInbandAttachmentSize) {\n // Too large to send inband - uploading out of band and sending as a link.\n const uploader = this.props.tinode.getLargeFileHelper();\n if (!uploader) {\n this.props.onError(this.props.intl.formatMessage(messages.cannot_initiate_upload));\n return;\n }\n const uploadCompletionPromise = uploader.upload(file);\n const msg = Drafty.attachFile(null, {\n mime: file.type,\n filename: file.name,\n size: file.size,\n urlPromise: uploadCompletionPromise\n });\n // Pass data and the uploader to the TinodeWeb.\n this.sendMessage(msg, uploadCompletionPromise, uploader);\n } else {\n // Small enough to send inband.\n fileToBase64(file)\n .then(b64 => this.sendMessage(Drafty.attachFile(null, {mime: b64.mime, data: b64.bits, filename: b64.name})))\n .catch(err => this.props.onError(err));\n }\n }\n\n // handleAttachFile method is called when [Attach file] button is clicked: launch attachment preview.\n handleAttachFile(file) {\n const maxExternAttachmentSize = this.props.tinode.getServerLimit('maxFileUploadSize', MAX_EXTERN_ATTACHMENT_SIZE);\n\n if (file.size > maxExternAttachmentSize) {\n // Too large.\n this.props.onError(this.props.intl.formatMessage(messages.file_attachment_too_large,\n {size: bytesToHumanSize(file.size), limit: bytesToHumanSize(maxExternAttachmentSize)}), 'err');\n } else {\n this.setState({\n docPreview: {\n file: file,\n name: file.name,\n size: file.size,\n type: file.type\n }\n });\n }\n }\n\n // sendImageAttachment sends the image bits inband as Drafty message.\n sendImageAttachment(caption, blob) {\n const mime = this.state.imagePreview.mime;\n const width = this.state.imagePreview.width;\n const height = this.state.imagePreview.height;\n const fname = this.state.imagePreview.name;\n\n // Server-provided limit reduced for base64 encoding and overhead.\n const maxInbandAttachmentSize = (this.props.tinode.getServerLimit('maxMessageSize',\n MAX_INBAND_ATTACHMENT_SIZE) * 0.75 - 1024) | 0;\n\n if (blob.size > maxInbandAttachmentSize) {\n // Too large to send inband - uploading out of band and sending as a link.\n const uploader = this.props.tinode.getLargeFileHelper();\n if (!uploader) {\n this.props.onError(this.props.intl.formatMessage(messages.cannot_initiate_upload));\n return;\n }\n const uploadCompletionPromise = uploader.upload(blob);\n\n // Make small preview to show while uploading.\n imageScaled(blob, IMAGE_PREVIEW_DIM, IMAGE_PREVIEW_DIM, -1, false)\n // Convert tiny image into base64 for serialization and previewing.\n .then(scaled => blobToBase64(scaled.blob))\n .then(b64 => {\n let msg = Drafty.insertImage(null, 0, {\n mime: mime,\n _tempPreview: b64.bits, // This preview will not be serialized.\n width: width,\n height: height,\n filename: fname,\n size: blob.size,\n urlPromise: uploadCompletionPromise\n });\n if (caption) {\n msg = Drafty.appendLineBreak(msg);\n msg = Drafty.append(msg, Drafty.parse(caption));\n }\n // Pass data and the uploader to the TinodeWeb.\n this.sendMessage(msg, uploadCompletionPromise, uploader);\n }).catch((err) => {\n this.props.onError(err, 'err');\n });\n return;\n }\n\n // Upload the image if it's too big to be send inband.\n blobToBase64(blob)\n .then(b64 => {\n let msg = Drafty.insertImage(null, 0, {\n mime: b64.mime,\n preview: b64.bits, // Serializable preview\n width: width,\n height: height,\n filename: fname,\n size: blob.size\n });\n if (caption) {\n msg = Drafty.appendLineBreak(msg);\n msg = Drafty.append(msg, Drafty.parse(caption));\n }\n this.sendMessage(msg);\n });\n }\n\n // handleAttachImage method is called when [Attach image] button is clicked: launch image preview.\n handleAttachImage(file) {\n const maxExternAttachmentSize = this.props.tinode.getServerLimit('maxFileUploadSize', MAX_EXTERN_ATTACHMENT_SIZE);\n\n // Get image dimensions and size, optionally scale it down.\n imageScaled(file, MAX_IMAGE_DIM, MAX_IMAGE_DIM, maxExternAttachmentSize, false)\n .then(scaled => {\n this.setState({imagePreview: {\n url: URL.createObjectURL(scaled.blob),\n blob: scaled.blob,\n name: scaled.name,\n width: scaled.width,\n height: scaled.height,\n size: scaled.blob.size,\n mime: scaled.mime\n }});\n }).catch(err => {\n this.props.onError(err, 'err');\n });\n }\n\n // sendAudioAttachment sends audio bits inband as Drafty message (no preview).\n sendAudioAttachment(url, preview, duration) {\n fetch(url)\n .then(result => result.blob())\n .then(blob => {\n // Server-provided limit reduced for base64 encoding and overhead.\n const maxInbandAttachmentSize = this.props.tinode.getServerLimit('maxMessageSize', MAX_INBAND_ATTACHMENT_SIZE) * 0.75 - 1024;\n if (blob.size > maxInbandAttachmentSize) {\n // Too large to send inband - uploading out of band and sending as a link.\n const uploader = this.props.tinode.getLargeFileHelper();\n if (!uploader) {\n this.props.onError(this.props.intl.formatMessage(messages.cannot_initiate_upload));\n return;\n }\n const uploadCompletionPromise = uploader.upload(blob);\n const msg = Drafty.appendAudio(null, {\n mime: blob.type,\n size: blob.size,\n duration: duration,\n preview: preview,\n urlPromise: uploadCompletionPromise\n });\n // Pass data and the uploader to the TinodeWeb.\n this.sendMessage(msg, uploadCompletionPromise, uploader);\n } else {\n // Small enough to send inband.\n blobToBase64(blob)\n .then(b64 => {\n this.sendMessage(Drafty.appendAudio(null, {\n mime: b64.mime,\n size: blob.size,\n data: b64.bits,\n duration: duration,\n preview: preview,\n }))\n })\n }\n })\n .catch(err => {this.props.onError(err)});;\n }\n\n handleCancelUpload(seq, uploader) {\n const topic = this.props.tinode.getTopic(this.state.topic);\n const found = topic.findMessage(seq);\n if (found) {\n found._cancelled = true;\n }\n uploader.cancel();\n }\n\n // seq: seq ID of the source message\n // context: message content.\n // forwarded: true if the source message is also a forwarded message.\n // senderId: UID of the sender of the source message.\n // senderName: full name of the sender of the original message.\n handlePickReply(seq, content, senderId, senderName) {\n this.setState({reply: null});\n\n if (!seq || !content) {\n return;\n }\n\n content = typeof content == 'string' ? Drafty.init(content) : content;\n if (Drafty.isValid(content)) {\n content = Drafty.replyContent(content, QUOTED_REPLY_LENGTH);\n } else {\n // /!\\ invalid content.\n content = Drafty.append(Drafty.init('\\u26A0 '),\n Drafty.wrapInto(this.props.intl.formatMessage(messages.invalid_content), 'EM'));\n }\n\n this.setState({\n reply: {\n content: Drafty.quote(senderName, senderId, content),\n seq: seq\n }\n });\n this.props.onCancelForwardMessage();\n }\n\n handleCancelReply() {\n this.setState({reply: null});\n this.props.onCancelForwardMessage();\n }\n\n handleQuoteClick(replyToSeq) {\n const ref = this.getOrCreateMessageRef(replyToSeq);\n if (ref && ref.current) {\n ref.current.scrollIntoView({block: \"center\", behavior: \"smooth\"});\n ref.current.classList.add('flash');\n setTimeout(() => { ref.current.classList.remove('flash') } , 1000);\n } else {\n console.error(\"Unresolved message ref\", replyToSeq);\n }\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n\n let component;\n if (this.props.hideSelf) {\n component = null;\n } else if (!this.state.topic) {\n component = (\n \n );\n } else {\n let component2;\n if (this.state.imagePreview) {\n // Preview image before sending.\n component2 = (\n \n );\n } else if (this.state.imagePostview) {\n // Expand received image.\n component2 = (\n \n );\n } else if (this.state.docPreview) {\n // Preview attachment before sending.\n component2 = (\n \n );\n } else {\n const topic = this.props.tinode.getTopic(this.state.topic);\n const isChannel = topic.isChannelType();\n const groupTopic = topic.isGroupType() && !isChannel;\n const icon_badges = [];\n if (topic.trusted) {\n if (topic.trusted.verified) {\n icon_badges.push({icon: 'verified', color: 'badge-inv'});\n }\n if (topic.trusted.staff) {\n icon_badges.push({icon: 'staff', color: 'badge-inv'});\n }\n if (topic.trusted.danger) {\n icon_badges.push({icon: 'dangerous', color: 'badge-inv'});\n }\n }\n\n const messageNodes = [];\n let previousFrom = null;\n let prevDate = null;\n let chatBoxClass = null;\n const dateFmt = new Intl.DateTimeFormat(this.props.intl.locale);\n topic.messages((msg, prev, next, i) => {\n let nextFrom = next ? (next.from || 'chan') : null;\n\n let sequence = 'single';\n let thisFrom = msg.from || 'chan';\n if (thisFrom == previousFrom) {\n if (thisFrom == nextFrom) {\n sequence = 'middle';\n } else {\n sequence = 'last';\n }\n } else if (thisFrom == nextFrom) {\n sequence = 'first';\n }\n previousFrom = thisFrom;\n\n const isReply = !(thisFrom == this.props.myUserId);\n const deliveryStatus = topic.msgStatus(msg, true);\n\n let userFrom = thisFrom, userName, userAvatar;\n const user = topic.userDesc(thisFrom);\n if (user && user.public) {\n userName = user.public.fn;\n userAvatar = makeImageUrl(user.public.photo);\n }\n chatBoxClass = groupTopic ? 'chat-box group' : 'chat-box';\n\n // Ref for this chat message.\n const ref = this.getOrCreateMessageRef(msg.seq);\n let replyToSeq = msg.head ? parseInt(msg.head.reply) : null;\n if (!replyToSeq || isNaN(replyToSeq)) {\n replyToSeq = null;\n }\n\n if (msg.hi) {\n // Deleted message.\n messageNodes.push(\n \n );\n } else {\n const thisDate = new Date(msg.ts);\n // This message was sent on a different date than the previous.\n if (!prevDate || prevDate.toDateString() != thisDate.toDateString()) {\n messageNodes.push(\n \n );\n prevDate = thisDate;\n }\n messageNodes.push(\n \n );\n }\n });\n\n let lastSeen = null;\n if (isChannel) {\n lastSeen = formatMessage(messages.channel);\n } else {\n const cont = this.props.tinode.getMeTopic().getContact(this.state.topic);\n if (cont && Tinode.isP2PTopicName(cont.topic)) {\n if (cont.online) {\n lastSeen = formatMessage(messages.online_now);\n } else if (cont.seen) {\n lastSeen = formatMessage(messages.last_seen) + \": \" +\n shortDateFormat(cont.seen.when, this.props.intl.locale);\n // TODO: also handle user agent in c.seen.ua\n }\n }\n }\n const avatar = this.state.avatar || true;\n const online = this.state.deleted ? null :\n this.props.online ? 'online' + (this.state.typingIndicator ? ' typing' : '') : 'offline';\n\n const titleClass = 'panel-title' + (this.state.deleted ? ' deleted' : '');\n\n component2 = (\n <>\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 ReactDOM from 'react-dom';\n\nimport { IntlProvider } from 'react-intl';\n\nimport allMessages from './messages.json';\nimport TinodeWeb from './views/tinode-web.jsx';\nimport HashNavigation from './lib/navigation.js';\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// Get the base language 'en' from a more specific 'en_GB' or 'en-US' as a partial fallback.\nconst baseLanguage = language.toLowerCase().split(/[-_]/)[0];\n\n// Try the full locale first, then the locale without the region code, fallback to 'en'.\nconst htmlLang = allMessages[language] ? language : allMessages[baseLanguage] ? baseLanguage : 'en';\nconst messages = allMessages[htmlLang];\n\n// Set lang attribute of the HTML element: \ndocument.getElementsByTagName('html')[0].setAttribute('lang', htmlLang);\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('mountPoint')\n);\n"],"names":["sections","name","type","doInherit","newClass","baseClass","prototype","Object","create","constructor","WebmBase","this","WebmUint","call","padHex","hex","length","WebmFloat","WebmContainer","WebmFile","source","setSource","fixWebmDuration","blob","duration","callback","options","undefined","Promise","resolve","reader","FileReader","onloadend","file","Uint8Array","result","fixDuration","toBlob","ex","readAsArrayBuffer","updateBySource","updateByData","setData","data","i","toString","substr","parseInt","getValue","setValue","value","getFloatArrayType","Float32Array","Float64Array","byteArray","reverse","floatArray","buffer","readByte","offset","readUint","firstByte","bytes","end","id","len","Math","min","slice","info","ctr","section","push","idHex","writeUint","x","draft","flag","c","writeSections","content","contentLength","set","getSectionById","logger","message","console","log","segmentSection","infoSection","timeScaleSection","durationSection","mimeType","Blob","default","exports","toArray","arr","Array","promisifyRequest","request","reject","onsuccess","onerror","error","promisifyRequestCall","obj","method","args","p","apply","then","promisifyCursorRequestCall","Cursor","proxyProperties","ProxyClass","targetProp","properties","forEach","prop","defineProperty","get","val","proxyRequestMethods","Constructor","arguments","proxyMethods","proxyCursorRequestMethods","Index","index","_index","cursor","_cursor","_request","ObjectStore","store","_store","Transaction","idbTransaction","_tx","complete","oncomplete","onabort","UpgradeDB","db","oldVersion","transaction","_db","DB","openDb","version","upgradeCallback","indexedDB","onupgradeneeded","event","deleteDb","IDBIndex","IDBCursor","methodName","createIndex","IDBObjectStore","objectStore","IDBTransaction","createObjectStore","IDBDatabase","funcName","replace","nativeObject","getAll","query","count","instance","items","iterateCursor","continue","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","enumerable","g","globalThis","Function","e","window","hasOwnProperty","React","ReactDOM","ReactIntl","stringToByteArray$1","str","out","charCodeAt","Deferred","promise","wrapCallback","catch","FirebaseError","Error","code","customData","super","setPrototypeOf","captureStackTrace","ErrorFactory","service","serviceName","errors","fullCode","template","PATTERN","_","String","replaceTemplate","fullMessage","deepEqual","b","aKeys","keys","bKeys","k","includes","aProp","bProp","isObject","thing","getModularInstance","_delegate","Component","instanceFactory","multipleInstances","serviceProps","instantiationMode","onInstanceCreated","setInstantiationMode","mode","setMultipleInstances","setServiceProps","props","setInstanceCreatedCallback","DEFAULT_ENTRY_NAME","Provider","container","component","instances","Map","instancesDeferred","instancesOptions","onInitCallbacks","identifier","normalizedIdentifier","normalizeInstanceIdentifier","has","deferred","isInitialized","shouldAutoInitialize","getOrInitializeService","instanceIdentifier","getImmediate","_a","optional","getComponent","setComponent","isComponentEager","instanceDeferred","entries","clearInstance","delete","async","services","from","values","all","filter","map","INTERNAL","_delete","isComponentSet","getOptions","initialize","opts","onInit","existingCallbacks","Set","add","existingInstance","invokeOnInitCallbacks","callbacks","ComponentContainer","providers","addComponent","provider","getProvider","addOrOverwriteComponent","getProviders","LogLevel","levelStringToEnum","DEBUG","VERBOSE","INFO","WARN","ERROR","SILENT","defaultLogLevel","ConsoleMethod","defaultLogHandler","logType","logLevel","now","Date","toISOString","PlatformLoggerServiceImpl","getPlatformInfoString","isVersionServiceProvider","library","logString","join","name$o","version$1","_logLevel","_logHandler","_userLogHandler","TypeError","setLogLevel","logHandler","userLogHandler","debug","warn","PLATFORM_LOG_STRING","_apps","_components","_addComponent","app","_registerComponent","componentName","ERROR_FACTORY","FirebaseAppImpl","config","_isDeleted","_options","assign","_config","_name","_automaticDataCollectionEnabled","automaticDataCollectionEnabled","_container","checkDestroyed","isDeleted","appName","initializeApp","rawConfig","existingApp","newApp","registerVersion","libraryKeyOrName","variant","libraryMismatch","match","versionMismatch","warning","PENDING_TIMEOUT_MS","PACKAGE_VERSION","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","append","getAuthorizationHeader","retryIfServerError","fn","sleep","ms","setTimeout","VALID_FID_PATTERN","generateFid","fidByteArray","self","crypto","msCrypto","getRandomValues","fid","array","btoa","fromCharCode","encode","test","getKey","appId","fidChangeCallbacks","fidChanged","callFidChangeCallbacks","channel","getBroadcastChannel","postMessage","closeBroadcastChannel","broadcastFidChange","broadcastChannel","BroadcastChannel","onmessage","size","close","OBJECT_STORE_NAME","dbPromise","getDbPromise","upgradeDB","tx","oldValue","put","remove","update","updateFn","newValue","getInstallationEntry","registrationPromise","installationEntry","oldEntry","clearTimedOutRequest","registrationStatus","updateOrCreateInstallationEntry","entryWithPromise","navigator","onLine","inProgressEntry","registrationTime","registeredInstallationEntry","endpoint","body","authVersion","sdkVersion","JSON","stringify","fetch","ok","responseValue","authToken","createInstallationRequest","registerInstallation","waitUntilFidRegistration","triggerRegistrationIfNecessary","entry","updateInstallationRequest","generateAuthTokenRequest","platformLoggerProvider","getGenerateAuthTokenEndpoint","platformLogger","installation","refreshAuthToken","installations","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","base64","repeat","rawData","atob","outputArray","OLD_DB_NAME","OLD_OBJECT_STORE_NAME","upgradeDb","dbGet","firebaseDependencies","tokenDetails","oldTokenDetails","senderId","dbNames","databases","objectStoreNames","contains","clear","oldDetails","auth","p256dh","fcmToken","createTime","subscriptionOptions","swScope","vapidKey","checkTokenDetails","migrateOldDatabase","dbSet","requestDeleteToken","unsubscribeOptions","getEndpoint","responseData","errorInfo","err","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","deleteTokenInternal","updateToken","getNewToken","dbRemove","unsubscribe","subscribeOptions","requestGetToken","externalizePayload","internalPayload","payload","collapseKey","collapse_key","messageId","fcmMessageId","messagePayloadInternal","notification","title","image","propagateNotificationPayload","propagateDataPayload","fcmOptions","link","analyticsLabel","analytics_label","propagateFcmOptions","_mergeStrings","s1","s2","resultArray","charAt","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","floor","messageEventListener","isFirebaseMessaging","next","dataPayload","WindowMessagingInternalFactory","isWindowSupported","preExist","DB_CHECK_NAME","open","deleteDatabase","cookieEnabled","PushSubscription","getMessagingInWindow","isSupported","deleteToken","deleteToken$1","onMessage","nextOrObserver","onMessage$1","addEventListener","Tinode","Alert","render","visible","className","onReject","onClick","FormattedMessage","defaultMessage","onConfirm","confirm","APP_NAME","KNOWN_HOSTS","hosted","local","DEFAULT_HOST","KEYPRESS_DELAY","DEFAULT_P2P_ACCESS_MODE","REM_SIZE","AVATAR_SIZE","MAX_INBAND_ATTACHMENT_SIZE","MAX_EXTERN_ATTACHMENT_SIZE","IMAGE_THUMBNAIL_DIM","MAX_TITLE_LENGTH","MAX_TOPIC_DESCRIPTION_LENGTH","messages","defineMessages","clear_messages","clear_for_all","delete_for_all","send_retry","mute","unmute","reply","forward","topic_delete","topic_delete_warning","delete_messages_warning","unblock","block","topic_block_warning","member_delete","archive","unarchive","edit_permissions","clear_messages_warning","ContextMenu","selfRef","formatMessage","intl","handlePageClick","bind","handleEscapeKey","handleClick","MenuItems","handler","params","errorHandler","onShowAlert","deleteMessages","retryMessage","replyToMessage","topicPermissionSetter","ctrl","onTopicRemoved","topicName","topic","tinode","getTopic","delTopic","user","delSubscription","componentDidMount","document","componentWillUnmount","removeEventListener","current","target","preventDefault","stopPropagation","hide","keyCode","item","currentTarget","dataset","onAction","onError","hard","cancelSend","seq","delMessagesAll","delMessagesList","flushMessage","msg","createMessage","publishDraft","updateMode","pickReply","userFrom","userName","menu","vSize","position","left","bounds","right","clickAt","top","bottom","y","style","ref","injectIntl","icon_mapping","ContactBadges","badges","color","icon","secondsToTime","seconds","fixedMin","sec","bytesToHumanSize","sizes","bucket","log2","pow","round","toFixed","shortenFileName","filename","maxLength","idToColorClass","light","fg","userId","abs","hash","stringToColorHash","updateFavicon","oldIcon","getElementById","head","getElementsByTagName","newIcon","createElement","rel","href","removeChild","appendChild","theCard","imageUrl","imageMimeType","note","card","trim","matches","exec","photo","substring","indexOf","arrayEqual","isArray","sort","l","sanitizeUrl","url","allowedSchemes","schemes","RegExp","sanitizeUrlForMime","mimeMajor","sanitizedUrl","deliveryMarker","received","cancelablePromise","hasCanceled","isCanceled","cancel","LetterTile","avatar","isGroup","iconColor","letter","deleted","authorizeURL","alt","src","UnreadBadge","SUPPORTED_IMAGE_FORMATS","MIME_EXTENSIONS","makeImageUrl","startsWith","fitImageSize","width","height","maxWidth","maxHeight","forceSquare","scale","dstWidth","dstHeight","srcWidth","srcHeight","xoffset","yoffset","fileNameForMime","fname","mime","idx","ext","at","lastIndexOf","imageScaled","fileOrBlob","maxSize","img","Image","crossOrigin","onload","URL","revokeObjectURL","dim","canvas","ctx","getContext","imageSmoothingEnabled","drawImage","clearRect","createObjectURL","blobToBase64","bits","split","readAsDataURL","intArrayToBase64","bin","base64ToIntArray","b64","BAR_COLOR_DARK","AudioPlayer","preview","state","canPlay","playing","currentTime","longMin","initAudio","initCanvas","resampleBars","visualize","handlePlay","handleSeek","handleError","audioPlayer","viewBuffer","canvasRef","oncanplay","ontimeupdate","onended","pause","componentDidUpdate","prevProps","setState","Audio","offsetWidth","offsetHeight","canvasContext","lineCap","effectiveWidth","lineWidth","drawFrame","requestAnimationFrame","thumbAt","max","LINE_WIDTH","beginPath","strokeStyle","stroke","moveTo","lineTo","arc","PI","fillStyle","fill","original","barCount","factor","amps","lo","hi","amp","j","play","rect","getBoundingClientRect","clientX","playClass","short","LazyImage","padding","whenDone","FileProgress","progress","onCancel","UploadingImage","onCancelUpload","drafty_form","drafty_attachment","drafty_image","drafty_unknown","handleImageData","el","attr","viewportWidth","minWidth","minHeight","Drafty","onImagePreview","loading","fullFormatter","stack","quoteFormatter","onFormButtonClick","inner","child","onQuoteClick","concat","previewFormatter","inlineImageAttr","quoteImage","buf","ArrayBuffer","base64ToBlob","evt","statusText","scaled","replyFormatter","loadedPromise","Contact","handleContextClick","onSelected","showContextMenu","pageY","pageX","online","icon_badges","isVerified","isStaff","isDangerous","acs","showMode","getMode","isMuted","isJoiner","marker","titleClass","showCheckmark","selected","showOnline","isChannel","unread","small","comment","ContactAction","action","badge_you","badge_owner","ContactList","topicSelected","contactNodes","contactsCount","contacts","filterFunc","filterOn","private","toLowerCase","public","myUserId","isOwner","forwarded","deliveryStatus","latestMessage","_status","msgStatus","showUnread","connected","onTopicSelected","trusted","verified","staff","danger","_deleted","noScroll","dangerouslySetInnerHTML","__html","emptyListMessage","SearchContacts","edited","search","handleSearchChange","handleSearch","handleClear","handleKeyDown","onSearchContacts","placeholder","onChange","onKeyDown","required","autoFocus","ForwardDialog","handleClose","handleSearchContacts","handleContactSelected","onInitFind","uid","searchResults","isWriter","desription","search_placeholder","not_found_placeholder","LoadSpinner","large","centered","show","AvatarUpload","handleFileReceived","files","onImageUpdated","randId","random","readOnly","accept","htmlFor","uploading","badge_verified","badge_staff","badge_danger","BadgeList","trustedBadges","CheckBox","handleChange","checked","MenuCancel","ErrorPanel","level","onClearError","text","whiteSpace","actionText","Chip","handleCancel","invalid","noAvatar","ChipInput","deriveStateFromProps","input","focused","handleTextInput","removeChipAt","handleChipCancel","handleFocusGained","handleFocusLost","chips","prompt","sortedChips","sortChips","staticMembers","chipIndex","indexChips","prevState","keep","normal","removed","onChipRemoved","onFocusLost","onEnter","avatarDisabled","tabIndex","onFocus","onBlur","no_contacts","contacts_not_found_short","GroupManager","members","indexMembers","keepInitialMembers","requiredMember","contactFilter","noContactsMessage","selectedContacts","handleMemberRemoved","handleContactFilter","handleSubmit","m","delta","present","keepInitial","stat","sel","splice","added","onSubmit","doContactFiltering","joiner","writer","preser","approver","sharer","deleter","owner","PermissionsEditor","names","skip","compare","userTitle","userAvatar","modeTitle","compareTitle","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","passive","currPan","nextDiff","imgRect","imgLeft","imgRight","coLeft","coRight","imgTop","imgBottom","coTop","coBottom","touches","dX","dY","checkBound","touch0","touch1","distance","sqrt","t3d","orig","transform","transformOrigin","onLoad","step","AvatarCrop","objURL","VisiblePassword","handleVisibility","handeTextChange","handleEditingFinished","onFinished","activeElement","autoComplete","InPlaceEdit","active","initialValue","handleStartEditing","handlePasswordFinished","focus","checkValidity","spanText","spanClass","multiline","element","rows","TagManager","tags","tagInput","activated","handleTagInput","handleAddTag","handleRemoveTag","nextProps","last","tag","maxTagCount","getServerLimit","onTagsChanged","minTagLength","maxTagLength","add_tags_prompt","TopicDescEdit","getAccessMode","isMe","fullName","description","newAvatar","newAvatarMime","previousOnTags","tnNewTags","handleFullNameUpdate","handleImageUpdated","handleAvatarCropped","handlePrivateUpdate","handleDescriptionUpdate","uploadAvatar","handleAvatarCropCancel","handleTagsUpdated","onTagsUpdated","onUpdateTopicDesc","desc","readyToUpload","uploader","getLargeFileHelper","upload","finally","du","onUpdateTags","editable","full_name_placeholder","group_name_placeholder","private_placeholder","title_tag_manager","TopicCommon","credentials","getCredentials","addCredActive","addCredInvalid","newCred","previousTagsUpdated","tnCredsUpdated","handleCredChange","handleCredKeyDown","handleCredEntered","onCredsUpdated","getType","creds","asPhone","asEmail","onCredAdd","onTopicTagsUpdateRequest","cred","meth","done","onCredConfirm","onCredDelete","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","_clip","InfoView","admin","muted","address","selectedContact","modeGiven","modeWant","modeWant2","contactList","previousMetaDesc","previousSubsUpdated","resetSubs","resetDesc","resetTags","onMetaDesc","onSubsUpdated","handleImageChanged","handleMuted","handleUnarchive","handlePermissionsChanged","handleLaunchPermissionsEditor","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","userPermissionsTitle","userPermissionsAvatar","editedPermissions","immutablePermissions","editedPermissionsTitle","immutablePermissionsTitle","editedPermissionsSkipped","onNavigate","onMemberUpdateRequest","panel","menuItems","view","shift","panelTitle","displayMobile","errorLevel","errorText","searchableContacts","no_members","Attachment","downloader","downloadFile","mimetype","download","loaded","helperFunc","isUrlRelative","downloadUrl","downloadWidget","message_sending","message_sending_failed","ReceivedMarker","timestamp","toLocaleTimeString","locale","timeStyle","BaseChatMessage","onProgress","handleProgress","handleImagePreview","handleFormButtonClick","handleCancelUpload","handleQuoteClick","formatterContext","resp","act","onFormResponse","userIsWriter","ratio","replyToSeq","sideClass","sequence","bubbleClass","fullDisplay","attachments","att","tree","innerRef","IntlChatMessage","MILLIS_PER_BAR","AUDIO_MIME_TYPE","AudioRecorder","enabled","audioRecord","recording","paused","blobUrl","initMediaRecording","getRecording","cleanUp","handleResume","handlePause","handleDelete","handleDone","durationMillis","startedOn","stream","mediaRecorder","audioContext","audioInput","analyser","audioChunks","mediaDevices","getUserMedia","audio","video","pcmData","frequencyBinCount","canvasWidth","canvasHeight","viewLength","viewDuration","prevBarCount","volume","countPerBar","getByteTimeDomainData","amplitude","dx","requestData","resume","stop","MediaRecorder","AudioContext","createMediaStreamSource","createAnalyser","fftSize","connect","onstop","onDeleted","ondataavailable","start","fixedBlob","arrayBuffer","arrayBuff","decodeAudioData","decoded","createPreview","getChannelData","totalSPB","samplingRate","disconnect","getTracks","track","resumeClass","messaging_disabled","type_new_message","add_image_caption","file_attachment_too_large","cannot_initiate_upload","SendMessage","quote","audioRec","audioAvailable","keypressTimestamp","getTime","handlePasteEvent","handleAttachImage","handleAttachFile","handleAttachAudio","handleSend","handleKeyPress","handleMessageTyping","formatReply","messageEditArea","disabled","onImageSuccess","onAttachmentSuccess","clipboardData","originalEvent","kind","getAsFile","filePasted","onAttachImage","onAttachFile","onAttachAudio","acceptBlank","noInput","onSendMessage","shiftKey","onKeyPress","messagePrompt","onCancelReply","audioEnabled","attachImage","click","attachFile","display","DocPreview","handleSendDoc","caption","onClose","mimeToIcon","iconFromMime","GroupSubs","usersOnline","totalCount","countToShow","some","overflow","ImagePreview","handleSendImage","assignWidth","node","maxlength","Invitation","handleButtonAction","LogoView","serverVersion","serverAddress","MetaMessage","date","HashNavigation","parts","path","part","decodeURIComponent","location","parsed","parseUrlHash","composeUrlHash","sidepanel","infopanel","online_now","last_seen","not_found","invalid_content","isUnconfirmed","getExcessive","isPeerRestricted","getMissing","MessagesView","getDerivedStateFromProps","leave","sendMessage","retrySend","sendImageAttachment","sendFileAttachment","sendAudioAttachment","sendKeyPress","handleScrollReference","handleScrollEvent","handleDescChange","handleSubsUpdated","handleMessageUpdate","handleAllMessagesReceived","handleInfoReceipt","handleImagePostview","handleClosePreview","handleFormResponse","handleShowMessageContextMenu","handleNewChatAcceptance","handleEnablePeer","postReadNotification","clearNotificationQueue","goToLatestMessage","handlePickReply","handleCancelReply","chatMessageRefs","getOrCreateMessageRef","readNotificationQueue","readNotificationTimer","seqId","messagesScroller","messageCount","scrollPosition","scrollTop","scrollHeight","onData","onAllMessagesReceived","onInfo","onPres","applicationVisible","ready","_new","isP2PType","withDesc","nextState","forwardMessage","docPreview","imagePreview","imagePostview","typingIndicator","fetchingMessages","showGoToLastButton","onlineSubs","peer","p2pPeerDesc","peerMessagingDisabled","latestClearId","maxClearId","isReader","readingBlocked","unconformed","unconfirmed","isSubscribed","newTopic","newTopicParams","_topicName","getQuery","withLaterDesc","withLaterSub","withLaterData","withLaterDel","setQuery","onNewTopicCreated","queuedMessages","pub","_sending","navigateTo","setUrlTopic","blankState","oldTopicName","isTopicCached","oldTopic","pos","msgHasMoreMessages","getMessagesPage","setInterval","clearInterval","sendAt","noteRead","setMilliseconds","getMilliseconds","clearTimeout","keyPressTimer","isNewMessage","what","forceUpdate","searchParams","messageSpecificMenuItems","onNewChat","noteKeyPress","uploadCompletionPromise","maxInbandAttachmentSize","urlPromise","fileToBase64","maxExternAttachmentSize","limit","_tempPreview","found","findMessage","_cancelled","senderName","onCancelForwardMessage","scrollIntoView","behavior","classList","hideSelf","component2","messageNodes","previousFrom","prevDate","chatBoxClass","dateFmt","Intl","DateTimeFormat","prev","nextFrom","thisFrom","isReply","userDesc","isNaN","thisDate","ts","toDateString","format","isChan","_uploader","lastSeen","cont","getMeTopic","getContact","seen","userLanguage","language","getFullYear","getMonth","getDate","hour12","hour","minute","toLocaleDateString","month","day","year","shortDateFormat","when","onHideMessagesView","ButtonBack","onBack","MenuContacts","onNewTopic","onSettings","MenuStart","onSignUp","SideNavbar","AccountSettingsView","me","archived_contacts_title","ContactsView","handleAction","unreadThreads","archivedCount","chatList","blocked","arch","touched","action_ignored","onShowArchive","LocalStorageUtil","localStorage","setItem","getItem","parse","oldVal","getObject","setObject","removeItem","CreateAccountView","login","password","email","imageDataUrl","errorCleared","saveToken","handleLoginChange","handlePasswordChange","handleEmailChange","handleFnChange","handleToggleSaveToken","onCreateAccount","submitClasses","login_prompt","password_prompt","onImageChanged","full_name_prompt","email_prompt","stay_logged_in","EditAccountView","handleCheckboxClick","onToggleMessageSounds","onTogglePushNotifications","onToggleIncognitoMode","messageSounds","desktopAlertsEnabled","desktopAlerts","incognitoMode","delete_account","delete_account_warning","AccSecurityView","blockedCount","showPermissionEditorFor","handlePasswordUpdate","handleHidePermissionsEditor","handleDeleteAccount","pwd","onUpdatePassword","onUpdateAccountDesc","onDeleteAccount","password_unchanged","onLogout","onShowBlocked","AccSupportView","LoginView","hostName","persist","onPersistenceChange","onLogin","autoCorrect","autoCapitalize","invalid_id","NewTopicById","groupId","prefix","NewTopicGroup","handleFieldEdit","handleTagsChanged","handleChannelToggle","search_for_contacts","search_no_results","NewTopicView","tabSelected","searchQuery","handleTabClick","handleSearchResultSelected","handleNewGroupSubmit","handleGroupByID","addUrlParam","removeUrlParam","onCreateTopic","dataUrl","priv","no_contacts_placeholder","PasswordResetView","sent","scheme","onReset","onRequest","HostSelector","changed","handleHostNameChange","onServerAddressChange","hostOptions","list","SettingsView","transport","handleTransportSelected","handleServerAddressChange","onUpdate","def","ws","lp","transportOptions","phone","ValidationView","credCode","credMethod","numbers_only","settings","edit","notif","support","newtpk","reset","SidepanelView","handleNewTopic","errorAction","errorActionText","loadSpinnerVisible","loginDisabled","onLoginRequest","onGlobalSettings","onUpdateAccountTags","onValidateCredentials","onPasswordResetRequest","onResetPassword","detectServerAddress","host","protocol","hostname","port","isSecureConnection","POP_SOUND","reconnect_countdown","reconnect_now","push_init_failed","invalid_security_token","no_connection","code_doesnot_match","menu_item_info","TinodeWeb","getBlankState","handleResize","handleHashRoute","handleOnline","checkForAppUpdate","handleVisibilityEvent","handleLoginRequest","handlePersistenceChange","handleConnected","handleAutoreconnectIteration","doLogin","handleCredentialsRequest","handleLoginSuccessful","handleDisconnect","tnMeMetaDesc","tnMeContactUpdate","tnMeSubsUpdated","resetContactList","tnData","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","handleShowForwardDialog","handleHideForwardDialog","sendMessageToTopic","autoLogin","messageSoundsOff","FIREBASE_INIT","firebaseToken","hidden","sidePanelSelected","sidePanelTitle","sidePanelAvatar","myTrustedBadges","liveConnection","topicSelectedOnline","topicSelectedAcs","innerWidth","infoPanel","mobilePanel","contextMenuVisible","contextMenuBounds","contextMenuClickAt","contextMenuParams","contextMenuItems","forwardDialogVisible","alertVisible","alertParams","requestedTopic","documentElement","clientWidth","viewportHeight","clientHeight","tnSetup","onConnect","onDisconnect","onAutoreconnectIteration","setDeviceToken","parsedNav","expires","setAuthToken","readTimer","readTimerCallback","persistentCache","onSetupCompleted","secure","setHumanLanguage","enableLogging","oobNotification","updateObject","fcm","firebaseGetMessaging","firebaseInitApp","reg","requestFCMToken","firebaseOnMessage","sw","firebaseGetToken","messagingVapidKey","mobile","onupdatefound","installingWorker","installing","onstatechange","controller","getTopicAccessMode","newTopicTabSelected","tab","reconnectCountdown","reconnect","isConnected","initStorage","clearStorage","getServerInfo","ver","prom","timeLeft","isAuthenticated","getAuthToken","loginBasic","loginToken","goToTopic","onContactUpdate","getCurrentUserID","withCred","urlHash","setUrlSidePanel","isPresencer","unused","foundContacts","merged","updated","past","prepareSearchableContacts","receivedTimer","noteRecv","fnd","getFndTopic","withSub","s","setMeta","isTopicOnline","completion","subscribePromise","publishMessage","am","updateWant","login_","password_","public_","cred_","tags_","createAccountBasic","on","firebaseDelToken","delCredential","basicNavigator","infoNavigator","setUrlInfoPanel","newGroupTopicName","oldName","newName","updateAccountBasic","getCurrentLogin","updateGiven","cleared","Promose","delCurrentUser","report","header","msgPreview","self_blocked","subscribed","keepForwardedMessage","confirmText","rejectText","invite","requestResetAuthSecret","newPassword","base64ReEncode","myUserName","onAddMember","handleManageGroupMembers","hl","languages","baseLanguage","htmlLang","allMessages","setAttribute","IntlProvider","textComponent"],"sourceRoot":""}
\ No newline at end of file
diff --git a/webpack.config.js b/webpack.config.js
index 2e764d80..38c69de1 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -52,8 +52,8 @@ module.exports = (env, argv) => {
]
},
performance: {
- maxEntrypointSize: 320000,
- maxAssetSize: 320000
+ maxEntrypointSize: 360000,
+ maxAssetSize: 360000
},
plugins: [
new CopyPlugin({