diff --git a/changelog.html b/changelog.html index 6e718a9..6e886d6 100644 --- a/changelog.html +++ b/changelog.html @@ -43,9 +43,14 @@

inVerse Plugin Changelog

-

10.1.6 Release 2 -- (tbd)

+

10.1.7 Release 1 -- March 15, 2024

10.1.6 Release 1 -- September 4, 2023

diff --git a/classes/css/images/logo/conversejs-filled-192.png b/classes/css/images/logo/conversejs-filled-192.png new file mode 100644 index 0000000..f85f008 Binary files /dev/null and b/classes/css/images/logo/conversejs-filled-192.png differ diff --git a/classes/css/images/logo/conversejs-filled-192.svg b/classes/css/images/logo/conversejs-filled-192.svg new file mode 100644 index 0000000..f8e6c6c --- /dev/null +++ b/classes/css/images/logo/conversejs-filled-192.svg @@ -0,0 +1,90 @@ + + + + diff --git a/classes/css/images/logo/conversejs-filled-512.png b/classes/css/images/logo/conversejs-filled-512.png new file mode 100644 index 0000000..b52f575 Binary files /dev/null and b/classes/css/images/logo/conversejs-filled-512.png differ diff --git a/classes/css/images/logo/conversejs-filled-512.svg b/classes/css/images/logo/conversejs-filled-512.svg new file mode 100644 index 0000000..c0b5dbb --- /dev/null +++ b/classes/css/images/logo/conversejs-filled-512.svg @@ -0,0 +1,310 @@ + + + + diff --git a/classes/css/images/logo/conversejs-filled.svg b/classes/css/images/logo/conversejs-filled.svg index 22feee5..7f710b2 100644 --- a/classes/css/images/logo/conversejs-filled.svg +++ b/classes/css/images/logo/conversejs-filled.svg @@ -6,6 +6,7 @@ Converse + { "use strict"; @@ -6352,9 +6352,9 @@ __webpack_require__.d(strophe_shims_namespaceObject, { }); // NAMESPACE OBJECT: ./node_modules/strophe.js/src/utils.js -var utils_namespaceObject = {}; -__webpack_require__.r(utils_namespaceObject); -__webpack_require__.d(utils_namespaceObject, { +var src_utils_namespaceObject = {}; +__webpack_require__.r(src_utils_namespaceObject); +__webpack_require__.d(src_utils_namespaceObject, { addCookies: () => (addCookies), arrayBufToBase64: () => (arrayBufToBase64), base64ToArrayBuf: () => (base64ToArrayBuf), @@ -6369,7 +6369,7 @@ __webpack_require__.d(utils_namespaceObject, { getResourceFromJid: () => (getResourceFromJid), getText: () => (getText), isTagEqual: () => (isTagEqual), - serialize: () => (serialize), + serialize: () => (utils_serialize), stringToArrayBuf: () => (stringToArrayBuf), unescapeNode: () => (unescapeNode), utf16to8: () => (utf16to8), @@ -12940,4687 +12940,3191 @@ Object.assign(Model.prototype, Events, { return false; } }); -;// CONCATENATED MODULE: ./src/strophe-shims.js -var WebSocket = window.WebSocket; -var DOMParser = window.DOMParser; -function getDummyXMLDOMDocument() { - return document.implementation.createDocument('jabber:client', 'strophe', null); -} -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/constants.js -/** Constants: XMPP Namespace Constants - * Common namespace constants from the XMPP RFCs and XEPs. - * - * Strophe.NS.HTTPBIND - HTTP BIND namespace from XEP 124. - * Strophe.NS.BOSH - BOSH namespace from XEP 206. - * Strophe.NS.CLIENT - Main XMPP client namespace. - * Strophe.NS.AUTH - Legacy authentication namespace. - * Strophe.NS.ROSTER - Roster operations namespace. - * Strophe.NS.PROFILE - Profile namespace. - * Strophe.NS.DISCO_INFO - Service discovery info namespace from XEP 30. - * Strophe.NS.DISCO_ITEMS - Service discovery items namespace from XEP 30. - * Strophe.NS.MUC - Multi-User Chat namespace from XEP 45. - * Strophe.NS.SASL - XMPP SASL namespace from RFC 3920. - * Strophe.NS.STREAM - XMPP Streams namespace from RFC 3920. - * Strophe.NS.BIND - XMPP Binding namespace from RFC 3920 and RFC 6120. - * Strophe.NS.SESSION - XMPP Session namespace from RFC 3920. - * Strophe.NS.XHTML_IM - XHTML-IM namespace from XEP 71. - * Strophe.NS.XHTML - XHTML body namespace from XEP 71. - */ -var NS = { - HTTPBIND: 'http://jabber.org/protocol/httpbind', - BOSH: 'urn:xmpp:xbosh', - CLIENT: 'jabber:client', - AUTH: 'jabber:iq:auth', - ROSTER: 'jabber:iq:roster', - PROFILE: 'jabber:iq:profile', - DISCO_INFO: 'http://jabber.org/protocol/disco#info', - DISCO_ITEMS: 'http://jabber.org/protocol/disco#items', - MUC: 'http://jabber.org/protocol/muc', - SASL: 'urn:ietf:params:xml:ns:xmpp-sasl', - STREAM: 'http://etherx.jabber.org/streams', - FRAMING: 'urn:ietf:params:xml:ns:xmpp-framing', - BIND: 'urn:ietf:params:xml:ns:xmpp-bind', - SESSION: 'urn:ietf:params:xml:ns:xmpp-session', - VERSION: 'jabber:iq:version', - STANZAS: 'urn:ietf:params:xml:ns:xmpp-stanzas', - XHTML_IM: 'http://jabber.org/protocol/xhtml-im', - XHTML: 'http://www.w3.org/1999/xhtml' -}; - -/** Constants: XHTML_IM Namespace - * contains allowed tags, tag attributes, and css properties. - * Used in the createHtml function to filter incoming html into the allowed XHTML-IM subset. - * See http://xmpp.org/extensions/xep-0071.html#profile-summary for the list of recommended - * allowed tags and their attributes. - */ -var XHTML = { - tags: ['a', 'blockquote', 'br', 'cite', 'em', 'img', 'li', 'ol', 'p', 'span', 'strong', 'ul', 'body'], - attributes: { - 'a': ['href'], - 'blockquote': ['style'], - 'br': [], - 'cite': ['style'], - 'em': [], - 'img': ['src', 'alt', 'style', 'height', 'width'], - 'li': ['style'], - 'ol': ['style'], - 'p': ['style'], - 'span': ['style'], - 'strong': [], - 'ul': ['style'], - 'body': [] - }, - css: ['background-color', 'color', 'font-family', 'font-size', 'font-style', 'font-weight', 'margin-left', 'margin-right', 'text-align', 'text-decoration'] -}; - -/** Constants: Connection Status Constants - * Connection status constants for use by the connection handler - * callback. - * - * Strophe.Status.ERROR - An error has occurred - * Strophe.Status.CONNECTING - The connection is currently being made - * Strophe.Status.CONNFAIL - The connection attempt failed - * Strophe.Status.AUTHENTICATING - The connection is authenticating - * Strophe.Status.AUTHFAIL - The authentication attempt failed - * Strophe.Status.CONNECTED - The connection has succeeded - * Strophe.Status.DISCONNECTED - The connection has been terminated - * Strophe.Status.DISCONNECTING - The connection is currently being terminated - * Strophe.Status.ATTACHED - The connection has been attached - * Strophe.Status.REDIRECT - The connection has been redirected - * Strophe.Status.CONNTIMEOUT - The connection has timed out - */ -var Status = { - ERROR: 0, - CONNECTING: 1, - CONNFAIL: 2, - AUTHENTICATING: 3, - AUTHFAIL: 4, - CONNECTED: 5, - DISCONNECTED: 6, - DISCONNECTING: 7, - ATTACHED: 8, - REDIRECT: 9, - CONNTIMEOUT: 10, - BINDREQUIRED: 11, - ATTACHFAIL: 12 -}; -var ErrorCondition = { - BAD_FORMAT: 'bad-format', - CONFLICT: 'conflict', - MISSING_JID_NODE: 'x-strophe-bad-non-anon-jid', - NO_AUTH_MECH: 'no-auth-mech', - UNKNOWN_REASON: 'unknown' -}; +;// CONCATENATED MODULE: external "strophe" +const external_strophe_namespaceObject = strophe; +;// CONCATENATED MODULE: ./src/headless/shared/constants.js -/** Constants: Log Level Constants - * Logging level indicators. - * - * Strophe.LogLevel.DEBUG - Debug output - * Strophe.LogLevel.INFO - Informational output - * Strophe.LogLevel.WARN - Warnings - * Strophe.LogLevel.ERROR - Errors - * Strophe.LogLevel.FATAL - Fatal errors - */ -var LogLevel = { - DEBUG: 0, - INFO: 1, - WARN: 2, - ERROR: 3, - FATAL: 4 +var BOSH_WAIT = 59; +var VERSION_NAME = "v10.1.7"; +var STATUS_WEIGHTS = { + offline: 6, + unavailable: 5, + xa: 4, + away: 3, + dnd: 2, + chat: 1, + // We don't differentiate between "chat" and "online" + online: 1 }; +var ANONYMOUS = 'anonymous'; +var CLOSED = 'closed'; +var EXTERNAL = 'external'; +var LOGIN = 'login'; +var LOGOUT = 'logout'; +var OPENED = 'opened'; +var PREBIND = 'prebind'; +var SUCCESS = 'success'; +var FAILURE = 'failure'; -/** PrivateConstants: DOM Element Type Constants - * DOM element types. - * - * ElementType.NORMAL - Normal element. - * ElementType.TEXT - Text data element. - * ElementType.FRAGMENT - XHTML fragment element. - */ -var ElementType = { - NORMAL: 1, - TEXT: 3, - CDATA: 4, - FRAGMENT: 11 -}; +// Generated from css/images/user.svg +var DEFAULT_IMAGE_TYPE = 'image/svg+xml'; +var DEFAULT_IMAGE = 'PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+CiA8cmVjdCB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgZmlsbD0iIzU1NSIvPgogPGNpcmNsZSBjeD0iNjQiIGN5PSI0MSIgcj0iMjQiIGZpbGw9IiNmZmYiLz4KIDxwYXRoIGQ9Im0yOC41IDExMiB2LTEyIGMwLTEyIDEwLTI0IDI0LTI0IGgyMyBjMTQgMCAyNCAxMiAyNCAyNCB2MTIiIGZpbGw9IiNmZmYiLz4KPC9zdmc+Cg=='; -/** PrivateConstants: Timeout Values - * Timeout values for error states. These values are in seconds. - * These should not be changed unless you know exactly what you are - * doing. - * - * TIMEOUT - Timeout multiplier. A waiting request will be considered - * failed after Math.floor(TIMEOUT * wait) seconds have elapsed. - * This defaults to 1.1, and with default wait, 66 seconds. - * SECONDARY_TIMEOUT - Secondary timeout multiplier. In cases where - * Strophe can detect early failure, it will consider the request - * failed if it doesn't return after - * Math.floor(SECONDARY_TIMEOUT * wait) seconds have elapsed. - * This defaults to 0.1, and with default wait, 6 seconds. - */ -var TIMEOUT = 1.1; -var SECONDARY_TIMEOUT = 0.1; -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/utils.js -function _toConsumableArray(arr) { - return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); -} -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} -function _unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return _arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); -} -function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); -} -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return _arrayLikeToArray(arr); -} -function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; -} -function utils_typeof(obj) { - "@babel/helpers - typeof"; +// XEP-0085 Chat states +// https =//xmpp.org/extensions/xep-0085.html +var INACTIVE = 'inactive'; +var ACTIVE = 'active'; +var COMPOSING = 'composing'; +var PAUSED = 'paused'; +var GONE = 'gone'; - return utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, utils_typeof(obj); -} -/* global btoa, ActiveXObject */ +// Chat types +var PRIVATE_CHAT_TYPE = 'chatbox'; +var CHATROOMS_TYPE = 'chatroom'; +var HEADLINES_TYPE = 'headline'; +var CONTROLBOX_TYPE = 'controlbox'; +var CONNECTION_STATUS = {}; +CONNECTION_STATUS[external_strophe_namespaceObject.Strophe.Status.ATTACHED] = 'ATTACHED'; +CONNECTION_STATUS[external_strophe_namespaceObject.Strophe.Status.AUTHENTICATING] = 'AUTHENTICATING'; +CONNECTION_STATUS[external_strophe_namespaceObject.Strophe.Status.AUTHFAIL] = 'AUTHFAIL'; +CONNECTION_STATUS[external_strophe_namespaceObject.Strophe.Status.CONNECTED] = 'CONNECTED'; +CONNECTION_STATUS[external_strophe_namespaceObject.Strophe.Status.CONNECTING] = 'CONNECTING'; +CONNECTION_STATUS[external_strophe_namespaceObject.Strophe.Status.CONNFAIL] = 'CONNFAIL'; +CONNECTION_STATUS[external_strophe_namespaceObject.Strophe.Status.DISCONNECTED] = 'DISCONNECTED'; +CONNECTION_STATUS[external_strophe_namespaceObject.Strophe.Status.DISCONNECTING] = 'DISCONNECTING'; +CONNECTION_STATUS[external_strophe_namespaceObject.Strophe.Status.ERROR] = 'ERROR'; +CONNECTION_STATUS[external_strophe_namespaceObject.Strophe.Status.RECONNECTING] = 'RECONNECTING'; +CONNECTION_STATUS[external_strophe_namespaceObject.Strophe.Status.REDIRECT] = 'REDIRECT'; +// Add Strophe Namespaces +external_strophe_namespaceObject.Strophe.addNamespace('ACTIVITY', 'http://jabber.org/protocol/activity'); +external_strophe_namespaceObject.Strophe.addNamespace('CARBONS', 'urn:xmpp:carbons:2'); +external_strophe_namespaceObject.Strophe.addNamespace('CHATSTATES', 'http://jabber.org/protocol/chatstates'); +external_strophe_namespaceObject.Strophe.addNamespace('CSI', 'urn:xmpp:csi:0'); +external_strophe_namespaceObject.Strophe.addNamespace('DELAY', 'urn:xmpp:delay'); +external_strophe_namespaceObject.Strophe.addNamespace('EME', 'urn:xmpp:eme:0'); +external_strophe_namespaceObject.Strophe.addNamespace('FASTEN', 'urn:xmpp:fasten:0'); +external_strophe_namespaceObject.Strophe.addNamespace('FORWARD', 'urn:xmpp:forward:0'); +external_strophe_namespaceObject.Strophe.addNamespace('HINTS', 'urn:xmpp:hints'); +external_strophe_namespaceObject.Strophe.addNamespace('HTTPUPLOAD', 'urn:xmpp:http:upload:0'); +external_strophe_namespaceObject.Strophe.addNamespace('MAM', 'urn:xmpp:mam:2'); +external_strophe_namespaceObject.Strophe.addNamespace('MARKERS', 'urn:xmpp:chat-markers:0'); +external_strophe_namespaceObject.Strophe.addNamespace('MENTIONS', 'urn:xmpp:mmn:0'); +external_strophe_namespaceObject.Strophe.addNamespace('MESSAGE_CORRECT', 'urn:xmpp:message-correct:0'); +external_strophe_namespaceObject.Strophe.addNamespace('MODERATE', 'urn:xmpp:message-moderate:0'); +external_strophe_namespaceObject.Strophe.addNamespace('NICK', 'http://jabber.org/protocol/nick'); +external_strophe_namespaceObject.Strophe.addNamespace('OCCUPANTID', 'urn:xmpp:occupant-id:0'); +external_strophe_namespaceObject.Strophe.addNamespace('OMEMO', 'eu.siacs.conversations.axolotl'); +external_strophe_namespaceObject.Strophe.addNamespace('OUTOFBAND', 'jabber:x:oob'); +external_strophe_namespaceObject.Strophe.addNamespace('PUBSUB', 'http://jabber.org/protocol/pubsub'); +external_strophe_namespaceObject.Strophe.addNamespace('RAI', 'urn:xmpp:rai:0'); +external_strophe_namespaceObject.Strophe.addNamespace('RECEIPTS', 'urn:xmpp:receipts'); +external_strophe_namespaceObject.Strophe.addNamespace('REFERENCE', 'urn:xmpp:reference:0'); +external_strophe_namespaceObject.Strophe.addNamespace('REGISTER', 'jabber:iq:register'); +external_strophe_namespaceObject.Strophe.addNamespace('RETRACT', 'urn:xmpp:message-retract:0'); +external_strophe_namespaceObject.Strophe.addNamespace('ROSTERX', 'http://jabber.org/protocol/rosterx'); +external_strophe_namespaceObject.Strophe.addNamespace('RSM', 'http://jabber.org/protocol/rsm'); +external_strophe_namespaceObject.Strophe.addNamespace('SID', 'urn:xmpp:sid:0'); +external_strophe_namespaceObject.Strophe.addNamespace('SPOILER', 'urn:xmpp:spoiler:0'); +external_strophe_namespaceObject.Strophe.addNamespace('STANZAS', 'urn:ietf:params:xml:ns:xmpp-stanzas'); +external_strophe_namespaceObject.Strophe.addNamespace('STYLING', 'urn:xmpp:styling:0'); +external_strophe_namespaceObject.Strophe.addNamespace('VCARD', 'vcard-temp'); +external_strophe_namespaceObject.Strophe.addNamespace('VCARDUPDATE', 'vcard-temp:x:update'); +external_strophe_namespaceObject.Strophe.addNamespace('XFORM', 'jabber:x:data'); +external_strophe_namespaceObject.Strophe.addNamespace('XHTML', 'http://www.w3.org/1999/xhtml'); +// Core plugins are whitelisted automatically +// These are just the @converse/headless plugins, for the full converse, +// the other plugins are whitelisted in src/consts.js +var CORE_PLUGINS = ['converse-adhoc', 'converse-bookmarks', 'converse-bosh', 'converse-caps', 'converse-chat', 'converse-chatboxes', 'converse-disco', 'converse-emoji', 'converse-headlines', 'converse-mam', 'converse-muc', 'converse-ping', 'converse-pubsub', 'converse-roster', 'converse-smacks', 'converse-status', 'converse-vcard']; +var URL_PARSE_OPTIONS = { + 'start': /(\b|_)(?:([a-z][a-z0-9.+-]*:\/\/)|xmpp:|mailto:|www\.)/gi +}; +var CHAT_STATES = ['active', 'composing', 'gone', 'inactive', 'paused']; +var KEYCODES = { + TAB: 9, + ENTER: 13, + SHIFT: 16, + CTRL: 17, + ALT: 18, + ESCAPE: 27, + LEFT_ARROW: 37, + UP_ARROW: 38, + RIGHT_ARROW: 39, + DOWN_ARROW: 40, + FORWARD_SLASH: 47, + AT: 50, + META: 91, + META_RIGHT: 93 +}; +// EXTERNAL MODULE: ./node_modules/sprintf-js/src/sprintf.js +var sprintf = __webpack_require__(8137); +;// CONCATENATED MODULE: ./src/headless/shared/i18n.js -function utf16to8(str) { - var out = ''; - var len = str.length; - for (var i = 0; i < len; i++) { - var c = str.charCodeAt(i); - if (c >= 0x0000 && c <= 0x007f) { - out += str.charAt(i); - } else if (c > 0x07ff) { - out += String.fromCharCode(0xe0 | c >> 12 & 0x0f); - out += String.fromCharCode(0x80 | c >> 6 & 0x3f); - out += String.fromCharCode(0x80 | c >> 0 & 0x3f); - } else { - out += String.fromCharCode(0xc0 | c >> 6 & 0x1f); - out += String.fromCharCode(0x80 | c >> 0 & 0x3f); - } - } - return out; -} -function xorArrayBuffers(x, y) { - var xIntArray = new Uint8Array(x); - var yIntArray = new Uint8Array(y); - var zIntArray = new Uint8Array(x.byteLength); - for (var i = 0; i < x.byteLength; i++) { - zIntArray[i] = xIntArray[i] ^ yIntArray[i]; - } - return zIntArray.buffer; -} -function arrayBufToBase64(buffer) { - // This function is due to mobz (https://stackoverflow.com/users/1234628/mobz) - // and Emmanuel (https://stackoverflow.com/users/288564/emmanuel) - var binary = ''; - var bytes = new Uint8Array(buffer); - var len = bytes.byteLength; - for (var i = 0; i < len; i++) { - binary += String.fromCharCode(bytes[i]); - } - return btoa(binary); -} -function base64ToArrayBuf(str) { - var _Uint8Array$from; - return (_Uint8Array$from = Uint8Array.from(atob(str), function (c) { - return c.charCodeAt(0); - })) === null || _Uint8Array$from === void 0 ? void 0 : _Uint8Array$from.buffer; -} -function stringToArrayBuf(str) { - var bytes = new TextEncoder('utf-8').encode(str); - return bytes.buffer; -} -function addCookies(cookies) { - if (typeof document === 'undefined') { - Strophe.log(Strophe.LogLevel.ERROR, "addCookies: not adding any cookies, since there's no document object"); - } - /* Parameters: - * (Object) cookies - either a map of cookie names - * to string values or to maps of cookie values. - * - * For example: - * { "myCookie": "1234" } +/** + * @namespace i18n + */ +/* harmony default export */ const i18n = ({ + initialize: function initialize() {}, + /** + * Overridable string wrapper method which can be used to provide i18n + * support. * - * or: - * { "myCookie": { - * "value": "1234", - * "domain": ".example.org", - * "path": "/", - * "expires": expirationDate - * } - * } + * The default implementation in @converse/headless simply calls sprintf + * with the passed in arguments. * - * These values get passed to Strophe.Connection via - * options.cookies + * If you install the full version of Converse, then this method gets + * overwritten in src/i18n/index.js to return a translated string. + * @method __ + * @private + * @memberOf i18n + * @param { String } str */ - cookies = cookies || {}; - for (var cookieName in cookies) { - if (Object.prototype.hasOwnProperty.call(cookies, cookieName)) { - var expires = ''; - var domain = ''; - var path = ''; - var cookieObj = cookies[cookieName]; - var isObj = utils_typeof(cookieObj) === 'object'; - var cookieValue = escape(unescape(isObj ? cookieObj.value : cookieObj)); - if (isObj) { - expires = cookieObj.expires ? ';expires=' + cookieObj.expires : ''; - domain = cookieObj.domain ? ';domain=' + cookieObj.domain : ''; - path = cookieObj.path ? ';path=' + cookieObj.path : ''; - } - document.cookie = cookieName + '=' + cookieValue + expires + domain + path; - } + __: function __() { + return sprintf.sprintf.apply(void 0, arguments); } -} -var _xmlGenerator = null; - -/** Function: Strophe.xmlGenerator - * Get the DOM document to generate elements. +}); +// EXTERNAL MODULE: ./node_modules/dompurify/dist/purify.js +var purify = __webpack_require__(1754); +var purify_default = /*#__PURE__*/__webpack_require__.n(purify); +;// CONCATENATED MODULE: ./node_modules/lodash-es/compact.js +/** + * Creates an array with all falsey values removed. The values `false`, `null`, + * `0`, `""`, `undefined`, and `NaN` are falsey. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to compact. + * @returns {Array} Returns the new array of filtered values. + * @example * - * Returns: - * The currently used DOM document. + * _.compact([0, 1, false, 2, '', 3]); + * // => [1, 2, 3] */ -function xmlGenerator() { - if (!_xmlGenerator) { - _xmlGenerator = getDummyXMLDOMDocument(); +function compact(array) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + while (++index < length) { + var value = array[index]; + if (value) { + result[resIndex++] = value; + } } - return _xmlGenerator; + return result; +} +/* harmony default export */ const lodash_es_compact = (compact); +;// CONCATENATED MODULE: external "sizzle" +const external_sizzle_namespaceObject = sizzle; +var external_sizzle_default = /*#__PURE__*/__webpack_require__.n(external_sizzle_namespaceObject); +;// CONCATENATED MODULE: ./node_modules/@converse/openpromise/openpromise.js +function getOpenPromise() { + var wrapper = { + isResolved: false, + isPending: true, + isRejected: false + }; + var promise = new Promise(function (resolve, reject) { + wrapper.resolve = resolve; + wrapper.reject = reject; + }); + Object.assign(promise, wrapper); + promise.then(function (v) { + promise.isResolved = true; + promise.isPending = false; + promise.isRejected = false; + return v; + }, function (e) { + promise.isResolved = false; + promise.isPending = false; + promise.isRejected = true; + throw e; + }); + return promise; } +;// CONCATENATED MODULE: ./src/headless/shared/settings/constants.js +/** + * @typedef { Object } ConfigurationSettings + * Converse's core configuration values + * @property { Boolean } [allow_non_roster_messaging=false] + * @property { Boolean } [allow_url_history_change=true] + * @property { String } [assets_path='/dist'] + * @property { ('login'|'prebind'|'anonymous'|'external') } [authentication='login'] + * @property { Boolean } [auto_login=false] - Currently only used in connection with anonymous login + * @property { Boolean } [reuse_scram_keys=false] - Save SCRAM keys after login to allow for future auto login + * @property { Boolean } [auto_reconnect=true] + * @property { Array} [blacklisted_plugins] + * @property { Boolean } [clear_cache_on_logout=false] + * @property { Object } [connection_options] + * @property { String } [credentials_url] - URL from where login credentials can be fetched + * @property { Boolean } [discover_connection_methods=true] + * @property { RegExp } [geouri_regex] + * @property { RegExp } [geouri_replacement='https://www.openstreetmap.org/?mlat=$1&mlon=$2#map=18/$1/$2'] + * @property { String } [i18n] + * @property { String } [jid] + * @property { Boolean } [keepalive=true] + * @property { ('debug'|'info'|'eror') } [loglevel='info'] + * @property { Array } [locales] + * @property { String } [nickname] + * @property { String } [password] + * @property { ('IndexedDB'|'localStorage') } [persistent_store='IndexedDB'] + * @property { String } [rid] + * @property { Element } [root=window.document] + * @property { String } [sid] + * @property { Boolean } [singleton=false] + * @property { Boolean } [strict_plugin_dependencies=false] + * @property { ('overlayed'|'fullscreen'|'mobile') } [view_mode='overlayed'] + * @property { String } [websocket_url] + * @property { Array} [whitelisted_plugins] + */ +var DEFAULT_SETTINGS = { + allow_non_roster_messaging: false, + allow_url_history_change: true, + assets_path: '/dist', + authentication: 'login', + // Available values are "login", "prebind", "anonymous" and "external". + auto_login: false, + // Currently only used in connection with anonymous login + reuse_scram_keys: false, + auto_reconnect: true, + blacklisted_plugins: [], + clear_cache_on_logout: false, + connection_options: {}, + credentials_url: null, + // URL from where login credentials can be fetched + discover_connection_methods: true, + geouri_regex: /https\:\/\/www.openstreetmap.org\/.*#map=[0-9]+\/([\-0-9.]+)\/([\-0-9.]+)\S*/g, + geouri_replacement: 'https://www.openstreetmap.org/?mlat=$1&mlon=$2#map=18/$1/$2', + i18n: undefined, + jid: undefined, + keepalive: true, + loglevel: 'info', + locales: ['af', 'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'eo', 'es', 'eu', 'fa', 'fi', 'fr', 'gl', 'he', 'hi', 'hu', 'id', 'it', 'ja', 'lt', 'mr', 'nb', 'nl', 'oc', 'pl', 'pt', 'pt_BR', 'ro', 'ru', 'sv', 'th', 'tr', 'ug', 'uk', 'vi', 'zh_CN', 'zh_TW'], + nickname: undefined, + password: undefined, + persistent_store: 'IndexedDB', + rid: undefined, + root: window.document, + sid: undefined, + singleton: false, + strict_plugin_dependencies: false, + stanza_timeout: 20000, + view_mode: 'overlayed', + // Choices are 'overlayed', 'fullscreen', 'mobile' + websocket_url: undefined, + whitelisted_plugins: [] +}; +// EXTERNAL MODULE: ./node_modules/localforage-driver-memory/_bundle/umd.js +var umd = __webpack_require__(388); +;// CONCATENATED MODULE: ./node_modules/lodash-es/cloneDeep.js + + +/** Used to compose bitmasks for cloning. */ +var cloneDeep_CLONE_DEEP_FLAG = 1, + cloneDeep_CLONE_SYMBOLS_FLAG = 4; -/** Function: Strophe.xmlTextNode - * Creates an XML DOM text node. +/** + * This method is like `_.clone` except that it recursively clones `value`. * - * Provides a cross implementation version of document.createTextNode. + * @static + * @memberOf _ + * @since 1.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @returns {*} Returns the deep cloned value. + * @see _.clone + * @example * - * Parameters: - * (String) text - The content of the text node. + * var objects = [{ 'a': 1 }, { 'b': 2 }]; * - * Returns: - * A new XML DOM text node. + * var deep = _.cloneDeep(objects); + * console.log(deep[0] === objects[0]); + * // => false */ -function xmlTextNode(text) { - return xmlGenerator().createTextNode(text); +function cloneDeep(value) { + return _baseClone(value, cloneDeep_CLONE_DEEP_FLAG | cloneDeep_CLONE_SYMBOLS_FLAG); } +/* harmony default export */ const lodash_es_cloneDeep = (cloneDeep); +;// CONCATENATED MODULE: ./node_modules/lodash-es/isString.js -/** Function: Strophe.xmlHtmlNode - * Creates an XML DOM html node. - * - * Parameters: - * (String) html - The content of the html node. - * - * Returns: - * A new XML DOM text node. - */ -function xmlHtmlNode(html) { - var node; - //ensure text is escaped - if (DOMParser) { - var parser = new DOMParser(); - node = parser.parseFromString(html, 'text/xml'); - } else { - node = new ActiveXObject('Microsoft.XMLDOM'); - node.async = 'false'; - node.loadXML(html); - } - return node; -} -/** Function: Strophe.xmlElement - * Create an XML DOM element. + + +/** `Object#toString` result references. */ +var isString_stringTag = '[object String]'; + +/** + * Checks if `value` is classified as a `String` primitive or object. * - * This function creates an XML DOM element correctly across all - * implementations. Note that these are not HTML DOM elements, which - * aren't appropriate for XMPP stanzas. + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example * - * Parameters: - * (String) name - The name for the element. - * (Array|Object) attrs - An optional array or object containing - * key/value pairs to use as element attributes. The object should - * be in the format {'key': 'value'} or {key: 'value'}. The array - * should have the format [['key1', 'value1'], ['key2', 'value2']]. - * (String) text - The text child data for the element. + * _.isString('abc'); + * // => true * - * Returns: - * A new XML DOM element. + * _.isString(1); + * // => false */ -function xmlElement(name) { - if (!name) { - return null; - } - var node = xmlGenerator().createElement(name); - // FIXME: this should throw errors if args are the wrong type or - // there are more than two optional args - for (var a = 1; a < arguments.length; a++) { - var arg = arguments[a]; - if (!arg) { - continue; +function isString(value) { + return typeof value == 'string' || !lodash_es_isArray(value) && lodash_es_isObjectLike(value) && _baseGetTag(value) == isString_stringTag; +} +/* harmony default export */ const lodash_es_isString = (isString); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/idb.js +function getIDB() { + /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */ + try { + if (typeof indexedDB !== 'undefined') { + return indexedDB; } - if (typeof arg === 'string' || typeof arg === 'number') { - node.appendChild(xmlTextNode(arg)); - } else if (utils_typeof(arg) === 'object' && typeof arg.sort === 'function') { - for (var i = 0; i < arg.length; i++) { - var attr = arg[i]; - if (utils_typeof(attr) === 'object' && typeof attr.sort === 'function' && attr[1] !== undefined && attr[1] !== null) { - node.setAttribute(attr[0], attr[1]); - } - } - } else if (utils_typeof(arg) === 'object') { - for (var k in arg) { - if (Object.prototype.hasOwnProperty.call(arg, k) && arg[k] !== undefined && arg[k] !== null) { - node.setAttribute(k, arg[k]); - } - } + if (typeof webkitIndexedDB !== 'undefined') { + return webkitIndexedDB; } - } - return node; -} - -/** Function: Strophe.XHTML.validTag - * - * Utility method to determine whether a tag is allowed - * in the XHTML_IM namespace. - * - * XHTML tag names are case sensitive and must be lower case. - */ -function validTag(tag) { - for (var i = 0; i < XHTML.tags.length; i++) { - if (tag === XHTML.tags[i]) { - return true; + if (typeof mozIndexedDB !== 'undefined') { + return mozIndexedDB; + } + if (typeof OIndexedDB !== 'undefined') { + return OIndexedDB; + } + if (typeof msIndexedDB !== 'undefined') { + return msIndexedDB; } + } catch (e) { + return; } - return false; } +var idb = getIDB(); +/* harmony default export */ const utils_idb = (idb); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/isIndexedDBValid.js -/** Function: Strophe.XHTML.validAttribute - * - * Utility method to determine whether an attribute is allowed - * as recommended per XEP-0071 - * - * XHTML attribute names are case sensitive and must be lower case. - */ -function validAttribute(tag, attribute) { - if (typeof XHTML.attributes[tag] !== 'undefined' && XHTML.attributes[tag].length > 0) { - for (var i = 0; i < XHTML.attributes[tag].length; i++) { - if (attribute === XHTML.attributes[tag][i]) { - return true; - } - } - } - return false; -} - -/** Function: Strophe.XHTML.validCSS */ -function validCSS(style) { - for (var i = 0; i < XHTML.css.length; i++) { - if (style === XHTML.css[i]) { - return true; +function isIndexedDBValid() { + try { + // Initialize IndexedDB; fall back to vendor-prefixed versions + // if needed. + if (!utils_idb || !utils_idb.open) { + return false; } - } - return false; -} + // We mimic PouchDB here; + // + // We test for openDatabase because IE Mobile identifies itself + // as Safari. Oh the lulz... + var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform); + var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1; -/** Function: Strophe.createHtml - * - * Copy an HTML DOM element into an XML DOM. - * - * This function copies a DOM element and all its descendants and returns - * the new copy. - * - * Parameters: - * (HTMLElement) elem - A DOM element. - * - * Returns: - * A new, copied DOM element tree. - */ -function createHtml(elem) { - var el; - if (elem.nodeType === ElementType.NORMAL) { - var tag = elem.nodeName.toLowerCase(); // XHTML tags must be lower case. - if (validTag(tag)) { - try { - el = xmlElement(tag); - for (var i = 0; i < XHTML.attributes[tag].length; i++) { - var attribute = XHTML.attributes[tag][i]; - var value = elem.getAttribute(attribute); - if (typeof value === 'undefined' || value === null || value === '' || value === false || value === 0) { - continue; - } - if (attribute === 'style' && utils_typeof(value) === 'object' && typeof value.cssText !== 'undefined') { - value = value.cssText; // we're dealing with IE, need to get CSS out - } - // filter out invalid css styles - if (attribute === 'style') { - var css = []; - var cssAttrs = value.split(';'); - for (var j = 0; j < cssAttrs.length; j++) { - var attr = cssAttrs[j].split(':'); - var cssName = attr[0].replace(/^\s*/, '').replace(/\s*$/, '').toLowerCase(); - if (validCSS(cssName)) { - var cssValue = attr[1].replace(/^\s*/, '').replace(/\s*$/, ''); - css.push(cssName + ': ' + cssValue); - } - } - if (css.length > 0) { - value = css.join('; '); - el.setAttribute(attribute, value); - } - } else { - el.setAttribute(attribute, value); - } - } - for (var _i = 0; _i < elem.childNodes.length; _i++) { - el.appendChild(createHtml(elem.childNodes[_i])); - } - } catch (e) { - // invalid elements - el = xmlTextNode(''); - } - } else { - el = xmlGenerator().createDocumentFragment(); - for (var _i2 = 0; _i2 < elem.childNodes.length; _i2++) { - el.appendChild(createHtml(elem.childNodes[_i2])); - } - } - } else if (elem.nodeType === ElementType.FRAGMENT) { - el = xmlGenerator().createDocumentFragment(); - for (var _i3 = 0; _i3 < elem.childNodes.length; _i3++) { - el.appendChild(createHtml(elem.childNodes[_i3])); - } - } else if (elem.nodeType === ElementType.TEXT) { - el = xmlTextNode(elem.nodeValue); + // Safari <10.1 does not meet our requirements for IDB support + // (see: https://github.com/pouchdb/pouchdb/issues/5572). + // Safari 10.1 shipped with fetch, we can use that to detect it. + // Note: this creates issues with `window.fetch` polyfills and + // overrides; see: + // https://github.com/localForage/localForage/issues/856 + return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' && + // some outdated implementations of IDB that appear on Samsung + // and HTC Android devices <4.4 are missing IDBKeyRange + // See: https://github.com/mozilla/localForage/issues/128 + // See: https://github.com/mozilla/localForage/issues/272 + typeof IDBKeyRange !== 'undefined'; + } catch (e) { + return false; } - return el; } - -/** Function: Strophe.copyElement - * Copy an XML DOM element. - * - * This function copies a DOM element and all its descendants and returns - * the new copy. - * - * Parameters: - * (XMLElement) elem - A DOM element. - * - * Returns: - * A new, copied DOM element tree. - */ -function copyElement(elem) { - var el; - if (elem.nodeType === ElementType.NORMAL) { - el = xmlElement(elem.tagName); - for (var i = 0; i < elem.attributes.length; i++) { - el.setAttribute(elem.attributes[i].nodeName, elem.attributes[i].value); +/* harmony default export */ const utils_isIndexedDBValid = (isIndexedDBValid); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/createBlob.js +// Abstracts constructing a Blob object, so it also works in older +// browsers that don't support the native Blob constructor. (i.e. +// old QtWebKit versions, at least). +// Abstracts constructing a Blob object, so it also works in older +// browsers that don't support the native Blob constructor. (i.e. +// old QtWebKit versions, at least). +function createBlob(parts, properties) { + /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */ + parts = parts || []; + properties = properties || {}; + try { + return new Blob(parts, properties); + } catch (e) { + if (e.name !== 'TypeError') { + throw e; } - for (var _i4 = 0; _i4 < elem.childNodes.length; _i4++) { - el.appendChild(copyElement(elem.childNodes[_i4])); + var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder; + var builder = new Builder(); + for (var i = 0; i < parts.length; i += 1) { + builder.append(parts[i]); } - } else if (elem.nodeType === ElementType.TEXT) { - el = xmlGenerator().createTextNode(elem.nodeValue); + return builder.getBlob(properties.type); } - return el; } - -/* Function: Strophe.xmlescape - * Excapes invalid xml characters. - * - * Parameters: - * (String) text - text to escape. - * - * Returns: - * Escaped text. - */ -function xmlescape(text) { - text = text.replace(/\&/g, '&'); - text = text.replace(//g, '>'); - text = text.replace(/'/g, '''); - text = text.replace(/"/g, '"'); - return text; +/* harmony default export */ const utils_createBlob = (createBlob); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/promise.js +// This is CommonJS because lie is an external dependency, so Rollup +// can just ignore it. +if (typeof Promise === 'undefined') { + // In the "nopromises" build this will just throw if you don't have + // a global promise object, but it would throw anyway later. + __webpack_require__(3968); } - -/* Function: Strophe.xmlunescape - * Unexcapes invalid xml characters. - * - * Parameters: - * (String) text - text to unescape. - * - * Returns: - * Unescaped text. - */ -function xmlunescape(text) { - text = text.replace(/\&/g, '&'); - text = text.replace(/</g, '<'); - text = text.replace(/>/g, '>'); - text = text.replace(/'/g, "'"); - text = text.replace(/"/g, '"'); - return text; +/* harmony default export */ const utils_promise = (Promise); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/executeCallback.js +function executeCallback(promise, callback) { + if (callback) { + promise.then(function (result) { + callback(null, result); + }, function (error) { + callback(error); + }); + } } - -/** Function: Strophe.serialize - * Render a DOM element and all descendants to a String. - * - * Parameters: - * (XMLElement) elem - A DOM element. - * - * Returns: - * The serialized element tree as a String. - */ -function serialize(elem) { - if (!elem) { - return null; +/* harmony default export */ const utils_executeCallback = (executeCallback); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/executeTwoCallbacks.js +function executeTwoCallbacks(promise, callback, errorCallback) { + if (typeof callback === 'function') { + promise.then(callback); } - if (typeof elem.tree === 'function') { - elem = elem.tree(); + if (typeof errorCallback === 'function') { + promise.catch(errorCallback); } - var names = _toConsumableArray(Array(elem.attributes.length).keys()).map(function (i) { - return elem.attributes[i].nodeName; - }); - names.sort(); - var result = names.reduce(function (a, n) { - return "".concat(a, " ").concat(n, "=\"").concat(xmlescape(elem.attributes.getNamedItem(n).value), "\""); - }, "<".concat(elem.nodeName)); - if (elem.childNodes.length > 0) { - result += '>'; - for (var i = 0; i < elem.childNodes.length; i++) { - var child = elem.childNodes[i]; - switch (child.nodeType) { - case ElementType.NORMAL: - // normal element, so recurse - result += serialize(child); - break; - case ElementType.TEXT: - // text element to escape values - result += xmlescape(child.nodeValue); - break; - case ElementType.CDATA: - // cdata section so don't escape values - result += ''; - } - } - result += ''; - } else { - result += '/>'; +} +/* harmony default export */ const utils_executeTwoCallbacks = (executeTwoCallbacks); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/normalizeKey.js +function normalizeKey(key) { + // Cast the key to a string, as that's all we can set as a key. + if (typeof key !== 'string') { + console.warn("".concat(key, " used as a key, but it is not a string.")); + key = String(key); } - return result; + return key; } - -/** Function: Strophe.forEachChild - * Map a function over some or all child elements of a given element. - * - * This is a small convenience function for mapping a function over - * some or all of the children of an element. If elemName is null, all - * children will be passed to the function, otherwise only children - * whose tag names match elemName will be passed. - * - * Parameters: - * (XMLElement) elem - The element to operate on. - * (String) elemName - The child element tag name filter. - * (Function) func - The function to apply to each child. This - * function should take a single argument, a DOM element. - */ -function forEachChild(elem, elemName, func) { - for (var i = 0; i < elem.childNodes.length; i++) { - var childNode = elem.childNodes[i]; - if (childNode.nodeType === ElementType.NORMAL && (!elemName || this.isTagEqual(childNode, elemName))) { - func(childNode); - } +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/getCallback.js +function getCallback() { + if (arguments.length && typeof arguments[arguments.length - 1] === 'function') { + return arguments[arguments.length - 1]; } } +;// CONCATENATED MODULE: ./node_modules/localforage/src/drivers/indexeddb.js -/** Function: Strophe.isTagEqual - * Compare an element's tag name with a string. - * - * This function is case sensitive. - * - * Parameters: - * (XMLElement) el - A DOM element. - * (String) name - The element name. - * - * Returns: - * true if the element's tag name matches _el_, and false - * otherwise. - */ -function isTagEqual(el, name) { - return el.tagName === name; -} -/** Function: Strophe.getText - * Get the concatenation of all text children of an element. - * - * Parameters: - * (XMLElement) elem - A DOM element. - * - * Returns: - * A String with the concatenated text of all text element children. - */ -function getText(elem) { - var _elem$childNodes; - if (!elem) { - return null; - } - var str = ''; - if (!((_elem$childNodes = elem.childNodes) !== null && _elem$childNodes !== void 0 && _elem$childNodes.length) && elem.nodeType === ElementType.TEXT) { - str += elem.nodeValue; - } - for (var i = 0; (_ref = i < ((_elem$childNodes2 = elem.childNodes) === null || _elem$childNodes2 === void 0 ? void 0 : _elem$childNodes2.length)) !== null && _ref !== void 0 ? _ref : 0; i++) { - var _ref, _elem$childNodes2; - if (elem.childNodes[i].nodeType === ElementType.TEXT) { - str += elem.childNodes[i].nodeValue; - } - } - return xmlescape(str); -} -/** Function: Strophe.escapeNode - * Escape the node part (also called local part) of a JID. - * - * Parameters: - * (String) node - A node (or local part). - * - * Returns: - * An escaped node (or local part). - */ -function escapeNode(node) { - if (typeof node !== 'string') { - return node; - } - return node.replace(/^\s+|\s+$/g, '').replace(/\\/g, '\\5c').replace(/ /g, '\\20').replace(/\"/g, '\\22').replace(/\&/g, '\\26').replace(/\'/g, '\\27').replace(/\//g, '\\2f').replace(/:/g, '\\3a').replace(//g, '\\3e').replace(/@/g, '\\40'); -} -/** Function: Strophe.unescapeNode - * Unescape a node part (also called local part) of a JID. - * - * Parameters: - * (String) node - A node (or local part). - * - * Returns: - * An unescaped node (or local part). - */ -function unescapeNode(node) { - if (typeof node !== 'string') { - return node; - } - return node.replace(/\\20/g, ' ').replace(/\\22/g, '"').replace(/\\26/g, '&').replace(/\\27/g, "'").replace(/\\2f/g, '/').replace(/\\3a/g, ':').replace(/\\3c/g, '<').replace(/\\3e/g, '>').replace(/\\40/g, '@').replace(/\\5c/g, '\\'); -} -/** Function: Strophe.getNodeFromJid - * Get the node portion of a JID String. - * - * Parameters: - * (String) jid - A JID. - * - * Returns: - * A String containing the node. - */ -function getNodeFromJid(jid) { - if (jid.indexOf('@') < 0) { - return null; - } - return jid.split('@')[0]; -} -/** Function: Strophe.getDomainFromJid - * Get the domain portion of a JID String. - * - * Parameters: - * (String) jid - A JID. - * - * Returns: - * A String containing the domain. - */ -function getDomainFromJid(jid) { - var bare = getBareJidFromJid(jid); - if (bare.indexOf('@') < 0) { - return bare; - } else { - var parts = bare.split('@'); - parts.splice(0, 1); - return parts.join('@'); - } -} -/** Function: Strophe.getResourceFromJid - * Get the resource portion of a JID String. - * - * Parameters: - * (String) jid - A JID. - * - * Returns: - * A String containing the resource. - */ -function getResourceFromJid(jid) { - if (!jid) { - return null; - } - var s = jid.split('/'); - if (s.length < 2) { - return null; - } - s.splice(0, 1); - return s.join('/'); -} -/** Function: Strophe.getBareJidFromJid - * Get the bare JID from a JID String. - * - * Parameters: - * (String) jid - A JID. - * - * Returns: - * A String containing the bare JID. - */ -function getBareJidFromJid(jid) { - return jid ? jid.split('/')[0] : null; -} -var utils = { - utf16to8: utf16to8, - xorArrayBuffers: xorArrayBuffers, - arrayBufToBase64: arrayBufToBase64, - base64ToArrayBuf: base64ToArrayBuf, - stringToArrayBuf: stringToArrayBuf, - addCookies: addCookies -}; -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/builder.js -function builder_typeof(obj) { - "@babel/helpers - typeof"; +// Some code originally from async_storage.js in +// [Gaia](https://github.com/mozilla-b2g/gaia). - return builder_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, builder_typeof(obj); -} -function builder_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} -function builder_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, builder_toPropertyKey(descriptor.key), descriptor); +var DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support'; +var supportsBlobs; +var dbContexts = {}; +var indexeddb_toString = Object.prototype.toString; + +// Transaction Modes +var READ_ONLY = 'readonly'; +var READ_WRITE = 'readwrite'; + +// Transform a binary string to an array buffer, because otherwise +// weird stuff happens when you try to work with the binary string directly. +// It is known. +// From http://stackoverflow.com/questions/14967647/ (continues on next line) +// encode-decode-image-with-base64-breaks-image (2013-04-21) +function _binStringToArrayBuffer(bin) { + var length = bin.length; + var buf = new ArrayBuffer(length); + var arr = new Uint8Array(buf); + for (var i = 0; i < length; i++) { + arr[i] = bin.charCodeAt(i); } + return buf; } -function builder_createClass(Constructor, protoProps, staticProps) { - if (protoProps) builder_defineProperties(Constructor.prototype, protoProps); - if (staticProps) builder_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false + +// +// Blobs are not supported in all versions of IndexedDB, notably +// Chrome <37 and Android <5. In those versions, storing a blob will throw. +// +// Various other blob bugs exist in Chrome v37-42 (inclusive). +// Detecting them is expensive and confusing to users, and Chrome 37-42 +// is at very low usage worldwide, so we do a hacky userAgent check instead. +// +// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120 +// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916 +// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836 +// +// Code borrowed from PouchDB. See: +// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js +// +function _checkBlobSupportWithoutCaching(idb) { + return new utils_promise(function (resolve) { + var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE); + var blob = utils_createBlob(['']); + txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key'); + txn.onabort = function (e) { + // If the transaction aborts now its due to not being able to + // write to the database, likely due to the disk being full + e.preventDefault(); + e.stopPropagation(); + resolve(false); + }; + txn.oncomplete = function () { + var matchedChrome = navigator.userAgent.match(/Chrome\/(\d+)/); + var matchedEdge = navigator.userAgent.match(/Edge\//); + // MS Edge pretends to be Chrome 42: + // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx + resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43); + }; + }).catch(function () { + return false; // error, so assume unsupported }); - return Constructor; -} -function builder_toPropertyKey(arg) { - var key = builder_toPrimitive(arg, "string"); - return builder_typeof(key) === "symbol" ? key : String(key); } -function builder_toPrimitive(input, hint) { - if (builder_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (builder_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); + +function _checkBlobSupport(idb) { + if (typeof supportsBlobs === 'boolean') { + return utils_promise.resolve(supportsBlobs); } - return (hint === "string" ? String : Number)(input); + return _checkBlobSupportWithoutCaching(idb).then(function (value) { + supportsBlobs = value; + return supportsBlobs; + }); } +function _deferReadiness(dbInfo) { + var dbContext = dbContexts[dbInfo.name]; + // Create a deferred object representing the current database operation. + var deferredOperation = {}; + deferredOperation.promise = new utils_promise(function (resolve, reject) { + deferredOperation.resolve = resolve; + deferredOperation.reject = reject; + }); + // Enqueue the deferred operation. + dbContext.deferredOperations.push(deferredOperation); -/** Function: $build - * Create a Strophe.Builder. - * This is an alias for 'new Strophe.Builder(name, attrs)'. - * - * Parameters: - * (String) name - The root element name. - * (Object) attrs - The attributes for the root element in object notation. - * - * Returns: - * A new Strophe.Builder object. - */ -function $build(name, attrs) { - return new Builder(name, attrs); -} - -/** Function: $msg - * Create a Strophe.Builder with a element as the root. - * - * Parameters: - * (Object) attrs - The element attributes in object notation. - * - * Returns: - * A new Strophe.Builder object. - */ -function $msg(attrs) { - return new Builder('message', attrs); + // Chain its promise to the database readiness. + if (!dbContext.dbReady) { + dbContext.dbReady = deferredOperation.promise; + } else { + dbContext.dbReady = dbContext.dbReady.then(function () { + return deferredOperation.promise; + }); + } } +function _advanceReadiness(dbInfo) { + var dbContext = dbContexts[dbInfo.name]; -/** Function: $iq - * Create a Strophe.Builder with an element as the root. - * - * Parameters: - * (Object) attrs - The element attributes in object notation. - * - * Returns: - * A new Strophe.Builder object. - */ -function $iq(attrs) { - return new Builder('iq', attrs); -} + // Dequeue a deferred operation. + var deferredOperation = dbContext.deferredOperations.pop(); -/** Function: $pres - * Create a Strophe.Builder with a element as the root. - * - * Parameters: - * (Object) attrs - The element attributes in object notation. - * - * Returns: - * A new Strophe.Builder object. - */ -function $pres(attrs) { - return new Builder('presence', attrs); + // Resolve its promise (which is part of the database readiness + // chain of promises). + if (deferredOperation) { + deferredOperation.resolve(); + return deferredOperation.promise; + } } +function _rejectReadiness(dbInfo, err) { + var dbContext = dbContexts[dbInfo.name]; -/** Class: Strophe.Builder - * XML DOM builder. - * - * This object provides an interface similar to JQuery but for building - * DOM elements easily and rapidly. All the functions except for toString() - * and tree() return the object, so calls can be chained. Here's an - * example using the $iq() builder helper. - * > $iq({to: 'you', from: 'me', type: 'get', id: '1'}) - * > .c('query', {xmlns: 'strophe:example'}) - * > .c('example') - * > .toString() - * - * The above generates this XML fragment - * > - * > - * > - * > - * > - * The corresponding DOM manipulations to get a similar fragment would be - * a lot more tedious and probably involve several helper variables. - * - * Since adding children makes new operations operate on the child, up() - * is provided to traverse up the tree. To add two children, do - * > builder.c('child1', ...).up().c('child2', ...) - * The next operation on the Builder will be relative to the second child. - */ + // Dequeue a deferred operation. + var deferredOperation = dbContext.deferredOperations.pop(); -/** Constructor: Strophe.Builder - * Create a Strophe.Builder object. - * - * The attributes should be passed in object notation. For example - * > let b = new Builder('message', {to: 'you', from: 'me'}); - * or - * > let b = new Builder('messsage', {'xml:lang': 'en'}); - * - * Parameters: - * (String) name - The name of the root element. - * (Object) attrs - The attributes for the root element in object notation. - * - * Returns: - * A new Strophe.Builder. - */ -var Builder = /*#__PURE__*/function () { - function Builder(name, attrs) { - builder_classCallCheck(this, Builder); - // Set correct namespace for jabber:client elements - if (name === 'presence' || name === 'message' || name === 'iq') { - if (attrs && !attrs.xmlns) { - attrs.xmlns = NS.CLIENT; - } else if (!attrs) { - attrs = { - xmlns: NS.CLIENT - }; + // Reject its promise (which is part of the database readiness + // chain of promises). + if (deferredOperation) { + deferredOperation.reject(err); + return deferredOperation.promise; + } +} +function _getConnection(dbInfo, upgradeNeeded) { + return new utils_promise(function (resolve, reject) { + dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext(); + if (dbInfo.db) { + if (upgradeNeeded) { + _deferReadiness(dbInfo); + dbInfo.db.close(); + } else { + return resolve(dbInfo.db); } } - // Holds the tree being built. - this.nodeTree = xmlElement(name, attrs); - // Points to the current operation node. - this.node = this.nodeTree; - } - - /** Function: tree - * Return the DOM tree. - * - * This function returns the current DOM tree as an element object. This - * is suitable for passing to functions like Strophe.Connection.send(). - * - * Returns: - * The DOM tree as a element object. - */ - builder_createClass(Builder, [{ - key: "tree", - value: function tree() { - return this.nodeTree; - } - - /** Function: toString - * Serialize the DOM tree to a String. - * - * This function returns a string serialization of the current DOM - * tree. It is often used internally to pass data to a - * Strophe.Request object. - * - * Returns: - * The serialized DOM tree in a String. - */ - }, { - key: "toString", - value: function toString() { - return serialize(this.nodeTree); - } - - /** Function: up - * Make the current parent element the new current element. - * - * This function is often used after c() to traverse back up the tree. - * For example, to add two children to the same element - * > builder.c('child1', {}).up().c('child2', {}); - * - * Returns: - * The Stophe.Builder object. - */ - }, { - key: "up", - value: function up() { - this.node = this.node.parentNode; - return this; - } - - /** Function: root - * Make the root element the new current element. - * - * When at a deeply nested element in the tree, this function can be used - * to jump back to the root of the tree, instead of having to repeatedly - * call up(). - * - * Returns: - * The Stophe.Builder object. - */ - }, { - key: "root", - value: function root() { - this.node = this.nodeTree; - return this; + var dbArgs = [dbInfo.name]; + if (upgradeNeeded) { + dbArgs.push(dbInfo.version); } - - /** Function: attrs - * Add or modify attributes of the current element. - * - * The attributes should be passed in object notation. This function - * does not move the current element pointer. - * - * Parameters: - * (Object) moreattrs - The attributes to add/modify in object notation. - * - * Returns: - * The Strophe.Builder object. - */ - }, { - key: "attrs", - value: function attrs(moreattrs) { - for (var k in moreattrs) { - if (Object.prototype.hasOwnProperty.call(moreattrs, k)) { - if (moreattrs[k] === undefined) { - this.node.removeAttribute(k); + var openreq = utils_idb.open.apply(utils_idb, dbArgs); + if (upgradeNeeded) { + openreq.onupgradeneeded = function (e) { + var db = openreq.result; + try { + db.createObjectStore(dbInfo.storeName); + if (e.oldVersion <= 1) { + // Added when support for blob shims was added + db.createObjectStore(DETECT_BLOB_SUPPORT_STORE); + } + } catch (ex) { + if (ex.name === 'ConstraintError') { + console.warn('The database "' + dbInfo.name + '"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage "' + dbInfo.storeName + '" already exists.'); } else { - this.node.setAttribute(k, moreattrs[k]); + throw ex; } } - } - return this; - } - - /** Function: c - * Add a child to the current element and make it the new current - * element. - * - * This function moves the current element pointer to the child, - * unless text is provided. If you need to add another child, it - * is necessary to use up() to go back to the parent in the tree. - * - * Parameters: - * (String) name - The name of the child. - * (Object) attrs - The attributes of the child in object notation. - * (String) text - The text to add to the child. - * - * Returns: - * The Strophe.Builder object. - */ - }, { - key: "c", - value: function c(name, attrs, text) { - var child = xmlElement(name, attrs, text); - this.node.appendChild(child); - if (typeof text !== 'string' && typeof text !== 'number') { - this.node = child; - } - return this; - } - - /** Function: cnode - * Add a child to the current element and make it the new current - * element. - * - * This function is the same as c() except that instead of using a - * name and an attributes object to create the child it uses an - * existing DOM element object. - * - * Parameters: - * (XMLElement) elem - A DOM element. - * - * Returns: - * The Strophe.Builder object. - */ - }, { - key: "cnode", - value: function cnode(elem) { - var impNode; - var xmlGen = xmlGenerator(); - try { - impNode = xmlGen.importNode !== undefined; - } catch (e) { - impNode = false; - } - var newElem = impNode ? xmlGen.importNode(elem, true) : copyElement(elem); - this.node.appendChild(newElem); - this.node = newElem; - return this; + }; } - - /** Function: t - * Add a child text element. - * - * This *does not* make the child the new current element since there - * are no children of text elements. - * - * Parameters: - * (String) text - The text data to append to the current element. - * - * Returns: - * The Strophe.Builder object. - */ - }, { - key: "t", - value: function t(text) { - var child = xmlTextNode(text); - this.node.appendChild(child); - return this; + openreq.onerror = function (e) { + e.preventDefault(); + reject(openreq.error); + }; + openreq.onsuccess = function () { + var db = openreq.result; + db.onversionchange = function (e) { + // Triggered when the database is modified (e.g. adding an objectStore) or + // deleted (even when initiated by other sessions in different tabs). + // Closing the connection here prevents those operations from being blocked. + // If the database is accessed again later by this instance, the connection + // will be reopened or the database recreated as needed. + e.target.close(); + }; + resolve(db); + _advanceReadiness(dbInfo); + }; + }); +} +function _getOriginalConnection(dbInfo) { + return _getConnection(dbInfo, false); +} +function _getUpgradedConnection(dbInfo) { + return _getConnection(dbInfo, true); +} +function _isUpgradeNeeded(dbInfo, defaultVersion) { + if (!dbInfo.db) { + return true; + } + var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName); + var isDowngrade = dbInfo.version < dbInfo.db.version; + var isUpgrade = dbInfo.version > dbInfo.db.version; + if (isDowngrade) { + // If the version is not the default one + // then warn for impossible downgrade. + if (dbInfo.version !== defaultVersion) { + console.warn('The database "' + dbInfo.name + '"' + " can't be downgraded from version " + dbInfo.db.version + ' to version ' + dbInfo.version + '.'); } - - /** Function: h - * Replace current element contents with the HTML passed in. - * - * This *does not* make the child the new current element - * - * Parameters: - * (String) html - The html to insert as contents of current element. - * - * Returns: - * The Strophe.Builder object. - */ - }, { - key: "h", - value: function h(html) { - var fragment = xmlGenerator().createElement('body'); - // force the browser to try and fix any invalid HTML tags - fragment.innerHTML = html; - // copy cleaned html into an xml dom - var xhtml = createHtml(fragment); - while (xhtml.childNodes.length > 0) { - this.node.appendChild(xhtml.childNodes[0]); + // Align the versions to prevent errors. + dbInfo.version = dbInfo.db.version; + } + if (isUpgrade || isNewStore) { + // If the store is new then increment the version (if needed). + // This will trigger an "upgradeneeded" event which is required + // for creating a store. + if (isNewStore) { + var incVersion = dbInfo.db.version + 1; + if (incVersion > dbInfo.version) { + dbInfo.version = incVersion; } - return this; } - }]); - return Builder; -}(); - -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/handler.js -function handler_typeof(obj) { - "@babel/helpers - typeof"; - - return handler_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, handler_typeof(obj); -} -function handler_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} -function handler_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, handler_toPropertyKey(descriptor.key), descriptor); + return true; } + return false; } -function handler_createClass(Constructor, protoProps, staticProps) { - if (protoProps) handler_defineProperties(Constructor.prototype, protoProps); - if (staticProps) handler_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false + +// encode a blob for indexeddb engines that don't support blobs +function _encodeBlob(blob) { + return new utils_promise(function (resolve, reject) { + var reader = new FileReader(); + reader.onerror = reject; + reader.onloadend = function (e) { + var base64 = btoa(e.target.result || ''); + resolve({ + __local_forage_encoded_blob: true, + data: base64, + type: blob.type + }); + }; + reader.readAsBinaryString(blob); }); - return Constructor; -} -function handler_toPropertyKey(arg) { - var key = handler_toPrimitive(arg, "string"); - return handler_typeof(key) === "symbol" ? key : String(key); -} -function handler_toPrimitive(input, hint) { - if (handler_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (handler_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); } +// decode an encoded blob +function _decodeBlob(encodedBlob) { + var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data)); + return utils_createBlob([arrayBuff], { + type: encodedBlob.type + }); +} +// is this one of our fancy encoded blobs? +function _isEncodedBlob(value) { + return value && value.__local_forage_encoded_blob; +} -/** PrivateClass: Strophe.Handler - * _Private_ helper class for managing stanza handlers. - * - * A Strophe.Handler encapsulates a user provided callback function to be - * executed when matching stanzas are received by the connection. - * Handlers can be either one-off or persistant depending on their - * return value. Returning true will cause a Handler to remain active, and - * returning false will remove the Handler. - * - * Users will not use Strophe.Handler objects directly, but instead they - * will use Strophe.Connection.addHandler() and - * Strophe.Connection.deleteHandler(). - */ - -/** PrivateConstructor: Strophe.Handler - * Create and initialize a new Strophe.Handler. - * - * Parameters: - * (Function) handler - A function to be executed when the handler is run. - * (String) ns - The namespace to match. - * (String) name - The element name to match. - * (String) type - The element type to match. - * (String) id - The element id attribute to match. - * (String) from - The element from attribute to match. - * (Object) options - Handler options - * - * Returns: - * A new Strophe.Handler object. - */ -var Handler = /*#__PURE__*/function () { - function Handler(handler, ns, name, type, id, from, options) { - handler_classCallCheck(this, Handler); - this.handler = handler; - this.ns = ns; - this.name = name; - this.type = type; - this.id = id; - this.options = options || { - 'matchBareFromJid': false, - 'ignoreNamespaceFragment': false - }; - // BBB: Maintain backward compatibility with old `matchBare` option - if (this.options.matchBare) { - Strophe.warn('The "matchBare" option is deprecated, use "matchBareFromJid" instead.'); - this.options.matchBareFromJid = this.options.matchBare; - delete this.options.matchBare; +// Specialize the default `ready()` function by making it dependent +// on the current database operations. Thus, the driver will be actually +// ready when it's been initialized (default) *and* there are no pending +// operations on the database (initiated by some other instances). +function _fullyReady(callback) { + var self = this; + var promise = self._initReady().then(function () { + var dbContext = dbContexts[self._dbInfo.name]; + if (dbContext && dbContext.dbReady) { + return dbContext.dbReady; } - if (this.options.matchBareFromJid) { - this.from = from ? getBareJidFromJid(from) : null; - } else { - this.from = from; + }); + utils_executeTwoCallbacks(promise, callback, callback); + return promise; +} + +// Try to establish a new db connection to replace the +// current one which is broken (i.e. experiencing +// InvalidStateError while creating a transaction). +function _tryReconnect(dbInfo) { + _deferReadiness(dbInfo); + var dbContext = dbContexts[dbInfo.name]; + var forages = dbContext.forages; + for (var i = 0; i < forages.length; i++) { + var forage = forages[i]; + if (forage._dbInfo.db) { + forage._dbInfo.db.close(); + forage._dbInfo.db = null; } - // whether the handler is a user handler or a system handler - this.user = true; } - - /** PrivateFunction: getNamespace - * Returns the XML namespace attribute on an element. - * If `ignoreNamespaceFragment` was passed in for this handler, then the - * URL fragment will be stripped. - * - * Parameters: - * (XMLElement) elem - The XML element with the namespace. - * - * Returns: - * The namespace, with optionally the fragment stripped. - */ - handler_createClass(Handler, [{ - key: "getNamespace", - value: function getNamespace(elem) { - var elNamespace = elem.getAttribute('xmlns'); - if (elNamespace && this.options.ignoreNamespaceFragment) { - elNamespace = elNamespace.split('#')[0]; - } - return elNamespace; + dbInfo.db = null; + return _getOriginalConnection(dbInfo).then(function (db) { + dbInfo.db = db; + if (_isUpgradeNeeded(dbInfo)) { + // Reopen the database for upgrading. + return _getUpgradedConnection(dbInfo); + } + return db; + }).then(function (db) { + // store the latest db reference + // in case the db was upgraded + dbInfo.db = dbContext.db = db; + for (var i = 0; i < forages.length; i++) { + forages[i]._dbInfo.db = db; } + }).catch(function (err) { + _rejectReadiness(dbInfo, err); + throw err; + }); +} - /** PrivateFunction: namespaceMatch - * Tests if a stanza matches the namespace set for this Strophe.Handler. - * - * Parameters: - * (XMLElement) elem - The XML element to test. - * - * Returns: - * true if the stanza matches and false otherwise. - */ - }, { - key: "namespaceMatch", - value: function namespaceMatch(elem) { - var _this = this; - var nsMatch = false; - if (!this.ns) { - return true; - } else { - forEachChild(elem, null, function (elem) { - if (_this.getNamespace(elem) === _this.ns) { - nsMatch = true; +// FF doesn't like Promises (micro-tasks) and IDDB store operations, +// so we have to do it with callbacks +function createTransaction(dbInfo, mode, callback, retries) { + if (retries === undefined) { + retries = 1; + } + try { + var tx = dbInfo.db.transaction(dbInfo.storeName, mode); + callback(null, tx); + } catch (err) { + if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) { + return utils_promise.resolve().then(function () { + if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) { + // increase the db version, to create the new ObjectStore + if (dbInfo.db) { + dbInfo.version = dbInfo.db.version + 1; } + // Reopen the database for upgrading. + return _getUpgradedConnection(dbInfo); + } + }).then(function () { + return _tryReconnect(dbInfo).then(function () { + createTransaction(dbInfo, mode, callback, retries - 1); }); - return nsMatch || this.getNamespace(elem) === this.ns; - } + }).catch(callback); } + callback(err); + } +} +function createDbContext() { + return { + // Running localForages sharing a database. + forages: [], + // Shared database. + db: null, + // Database readiness (promise). + dbReady: null, + // Deferred operations on the database. + deferredOperations: [] + }; +} - /** PrivateFunction: isMatch - * Tests if a stanza matches the Strophe.Handler. - * - * Parameters: - * (XMLElement) elem - The XML element to test. - * - * Returns: - * true if the stanza matches and false otherwise. - */ - }, { - key: "isMatch", - value: function isMatch(elem) { - var from = elem.getAttribute('from'); - if (this.options.matchBareFromJid) { - from = getBareJidFromJid(from); - } - var elem_type = elem.getAttribute('type'); - if (this.namespaceMatch(elem) && (!this.name || Strophe.isTagEqual(elem, this.name)) && (!this.type || (Array.isArray(this.type) ? this.type.indexOf(elem_type) !== -1 : elem_type === this.type)) && (!this.id || elem.getAttribute('id') === this.id) && (!this.from || from === this.from)) { - return true; - } - return false; +// Open the IndexedDB database (automatically creates one if one didn't +// previously exist), using any options set in the config. +function _initStorage(options) { + var self = this; + var dbInfo = { + db: null + }; + if (options) { + for (var i in options) { + dbInfo[i] = options[i]; } + } - /** PrivateFunction: run - * Run the callback on a matching stanza. - * - * Parameters: - * (XMLElement) elem - The DOM element that triggered the - * Strophe.Handler. - * - * Returns: - * A boolean indicating if the handler should remain active. - */ - }, { - key: "run", - value: function run(elem) { - var result = null; - try { - result = this.handler(elem); - } catch (e) { - Strophe._handleError(e); - throw e; - } - return result; - } + // Get the current context of the database; + var dbContext = dbContexts[dbInfo.name]; - /** PrivateFunction: toString - * Get a String representation of the Strophe.Handler object. - * - * Returns: - * A String. - */ - }, { - key: "toString", - value: function toString() { - return '{Handler: ' + this.handler + '(' + this.name + ',' + this.id + ',' + this.ns + ')}'; - } - }]); - return Handler; -}(); + // ...or create a new context. + if (!dbContext) { + dbContext = createDbContext(); + // Register the new context in the global container. + dbContexts[dbInfo.name] = dbContext; + } -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/timed-handler.js -function timed_handler_typeof(obj) { - "@babel/helpers - typeof"; + // Register itself as a running localForage in the current context. + dbContext.forages.push(self); - return timed_handler_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, timed_handler_typeof(obj); -} -function timed_handler_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} -function timed_handler_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, timed_handler_toPropertyKey(descriptor.key), descriptor); + // Replace the default `ready()` function with the specialized one. + if (!self._initReady) { + self._initReady = self.ready; + self.ready = _fullyReady; } -} -function timed_handler_createClass(Constructor, protoProps, staticProps) { - if (protoProps) timed_handler_defineProperties(Constructor.prototype, protoProps); - if (staticProps) timed_handler_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function timed_handler_toPropertyKey(arg) { - var key = timed_handler_toPrimitive(arg, "string"); - return timed_handler_typeof(key) === "symbol" ? key : String(key); -} -function timed_handler_toPrimitive(input, hint) { - if (timed_handler_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (timed_handler_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); + + // Create an array of initialization states of the related localForages. + var initPromises = []; + function ignoreErrors() { + // Don't handle errors here, + // just makes sure related localForages aren't pending. + return utils_promise.resolve(); } - return (hint === "string" ? String : Number)(input); -} -/** PrivateClass: Strophe.TimedHandler - * _Private_ helper class for managing timed handlers. - * - * A Strophe.TimedHandler encapsulates a user provided callback that - * should be called after a certain period of time or at regular - * intervals. The return value of the callback determines whether the - * Strophe.TimedHandler will continue to fire. - * - * Users will not use Strophe.TimedHandler objects directly, but instead - * they will use Strophe.Connection.addTimedHandler() and - * Strophe.Connection.deleteTimedHandler(). - */ -var TimedHandler = /*#__PURE__*/function () { - /** PrivateConstructor: Strophe.TimedHandler - * Create and initialize a new Strophe.TimedHandler object. - * - * Parameters: - * (Integer) period - The number of milliseconds to wait before the - * handler is called. - * (Function) handler - The callback to run when the handler fires. This - * function should take no arguments. - * - * Returns: - * A new Strophe.TimedHandler object. - */ - function TimedHandler(period, handler) { - timed_handler_classCallCheck(this, TimedHandler); - this.period = period; - this.handler = handler; - this.lastCalled = new Date().getTime(); - this.user = true; + for (var j = 0; j < dbContext.forages.length; j++) { + var forage = dbContext.forages[j]; + if (forage !== self) { + // Don't wait for itself... + initPromises.push(forage._initReady().catch(ignoreErrors)); + } } - /** PrivateFunction: run - * Run the callback for the Strophe.TimedHandler. - * - * Returns: - * true if the Strophe.TimedHandler should be called again, and false - * otherwise. - */ - timed_handler_createClass(TimedHandler, [{ - key: "run", - value: function run() { - this.lastCalled = new Date().getTime(); - return this.handler(); - } + // Take a snapshot of the related localForages. + var forages = dbContext.forages.slice(0); - /** PrivateFunction: reset - * Reset the last called time for the Strophe.TimedHandler. - */ - }, { - key: "reset", - value: function reset() { - this.lastCalled = new Date().getTime(); + // Initialize the connection process only when + // all the related localForages aren't pending. + return utils_promise.all(initPromises).then(function () { + dbInfo.db = dbContext.db; + // Get the connection or open a new one without upgrade. + return _getOriginalConnection(dbInfo); + }).then(function (db) { + dbInfo.db = db; + if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) { + // Reopen the database for upgrading. + return _getUpgradedConnection(dbInfo); } - - /** PrivateFunction: toString - * Get a string representation of the Strophe.TimedHandler object. - * - * Returns: - * The string representation. - */ - }, { - key: "toString", - value: function toString() { - return '{TimedHandler: ' + this.handler + '(' + this.period + ')}'; + return db; + }).then(function (db) { + dbInfo.db = dbContext.db = db; + self._dbInfo = dbInfo; + // Share the final connection amongst related localForages. + for (var k = 0; k < forages.length; k++) { + var forage = forages[k]; + if (forage !== self) { + // Self is already up-to-date. + forage._dbInfo.db = dbInfo.db; + forage._dbInfo.version = dbInfo.version; + } } - }]); - return TimedHandler; -}(); - -// EXTERNAL MODULE: ./node_modules/abab/index.js -var abab = __webpack_require__(3208); -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/connection.js -function connection_typeof(obj) { - "@babel/helpers - typeof"; - - return connection_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, connection_typeof(obj); + }); } -function _regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - _regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; - } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; +function getItem(key, callback) { + var self = this; + key = normalizeKey(key); + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.get(key); + req.onsuccess = function () { + var value = req.result; + if (value === undefined) { + value = null; + } + if (_isEncodedBlob(value)) { + value = _decodeBlob(value); + } + resolve(value); + }; + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } + }); + }).catch(reject); }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); + utils_executeCallback(promise, callback); + return promise; +} + +// Iterate over all items stored in database. +function iterate(iterator, callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.openCursor(); + var iterationNumber = 1; + req.onsuccess = function () { + var cursor = req.result; + if (cursor) { + var value = cursor.value; + if (_isEncodedBlob(value)) { + value = _decodeBlob(value); + } + var result = iterator(value, cursor.key, iterationNumber++); + + // when the iterator callback returns any + // (non-`undefined`) value, then we stop + // the iteration immediately + if (result !== void 0) { + resolve(result); + } else { + cursor.continue(); + } + } else { + resolve(); + } + }; + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } }); - }); - } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == connection_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} +function setItem(key, value, callback) { + var self = this; + key = normalizeKey(key); + var promise = new utils_promise(function (resolve, reject) { + var dbInfo; + self.ready().then(function () { + dbInfo = self._dbInfo; + if (indexeddb_toString.call(value) === '[object Blob]') { + return _checkBlobSupport(dbInfo.db).then(function (blobSupport) { + if (blobSupport) { + return value; + } + return _encodeBlob(value); }); } - reject(record.arg); - } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); + return value; + }).then(function (value) { + createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { + if (err) { + return reject(err); } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); - } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; + try { + var store = transaction.objectStore(self._dbInfo.storeName); + + // The reason we don't _save_ null is because IE 10 does + // not support saving the `null` type in IndexedDB. How + // ironic, given the bug below! + // See: https://github.com/mozilla/localForage/issues/161 + if (value === null) { + value = undefined; } - } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done + var req = store.put(value, key); + transaction.oncomplete = function () { + // Cast to undefined so the value passed to + // callback/promise is the same as what one would get out + // of `getItem()` later. This leads to some weirdness + // (setItem('foo', undefined) will return `null`), but + // it's not my fault localStorage is our baseline and that + // it's weird. + if (value === undefined) { + value = null; + } + resolve(value); }; - } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); - } - }; - } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); - } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); - } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal", delete record.arg, entry.completion = record; - } - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); - } - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) return iteratorMethod.call(iterable); - if ("function" == typeof iterable.next) return iterable; - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; - return next.value = undefined, next.done = !0, next; + transaction.onabort = transaction.onerror = function () { + var err = req.error ? req.error : req.transaction.error; + reject(err); }; - return next.next = next; - } - } - return { - next: doneResult - }; - } - function doneResult() { - return { - value: undefined, - done: !0 - }; - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { - var ctor = "function" == typeof genFun && genFun.constructor; - return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); - }, exports.mark = function (genFun) { - return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; - }, exports.awrap = function (arg) { - return { - __await: arg - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - void 0 === PromiseImpl && (PromiseImpl = Promise); - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { - return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; - } - return next.done = !0, next; - }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; - } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } + } catch (e) { + reject(e); } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} +function removeItem(key, callback) { + var self = this; + key = normalizeKey(key); + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { + if (err) { + return reject(err); } - } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; - } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; + try { + var store = transaction.objectStore(self._dbInfo.storeName); + // We use a Grunt task to make this safe for IE and some + // versions of Android (including those used by Cordova). + // Normally IE won't like `.delete()` and will insist on + // using `['delete']()`, but we have a build step that + // fixes this for us now. + var req = store.delete(key); + transaction.oncomplete = function () { + resolve(); + }; + transaction.onerror = function () { + reject(req.error); + }; + + // The request will be also be aborted if we've exceeded our storage + // space. + transaction.onabort = function () { + var err = req.error ? req.error : req.transaction.error; + reject(err); + }; + } catch (e) { + reject(e); } - } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; - } - }, exports; -} -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} -function _asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); - }); - }; + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; } -function connection_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } +function clear(callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { + if (err) { + return reject(err); + } + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.clear(); + transaction.oncomplete = function () { + resolve(); + }; + transaction.onabort = transaction.onerror = function () { + var err = req.error ? req.error : req.transaction.error; + reject(err); + }; + } catch (e) { + reject(e); + } + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; } -function connection_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, connection_toPropertyKey(descriptor.key), descriptor); - } +function indexeddb_length(callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.count(); + req.onsuccess = function () { + resolve(req.result); + }; + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; } -function connection_createClass(Constructor, protoProps, staticProps) { - if (protoProps) connection_defineProperties(Constructor.prototype, protoProps); - if (staticProps) connection_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false +function key(n, callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + if (n < 0) { + resolve(null); + return; + } + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var advanced = false; + var req = store.openKeyCursor(); + req.onsuccess = function () { + var cursor = req.result; + if (!cursor) { + // this means there weren't enough keys + resolve(null); + return; + } + if (n === 0) { + // We have the first key, return it if that's what they + // wanted. + resolve(cursor.key); + } else { + if (!advanced) { + // Otherwise, ask the cursor to skip ahead n + // records. + advanced = true; + cursor.advance(n); + } else { + // When we get here, we've got the nth key. + resolve(cursor.key); + } + } + }; + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } + }); + }).catch(reject); }); - return Constructor; + utils_executeCallback(promise, callback); + return promise; } -function connection_toPropertyKey(arg) { - var key = connection_toPrimitive(arg, "string"); - return connection_typeof(key) === "symbol" ? key : String(key); +function indexeddb_keys(callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { + if (err) { + return reject(err); + } + try { + var store = transaction.objectStore(self._dbInfo.storeName); + var req = store.openKeyCursor(); + var keys = []; + req.onsuccess = function () { + var cursor = req.result; + if (!cursor) { + resolve(keys); + return; + } + keys.push(cursor.key); + cursor.continue(); + }; + req.onerror = function () { + reject(req.error); + }; + } catch (e) { + reject(e); + } + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; } -function connection_toPrimitive(input, hint) { - if (connection_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (connection_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); +function dropInstance(options, callback) { + callback = getCallback.apply(this, arguments); + var currentConfig = this.config(); + options = typeof options !== 'function' && options || {}; + if (!options.name) { + options.name = options.name || currentConfig.name; + options.storeName = options.storeName || currentConfig.storeName; } - return (hint === "string" ? String : Number)(input); + var self = this; + var promise; + if (!options.name) { + promise = utils_promise.reject('Invalid arguments'); + } else { + var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db; + var dbPromise = isCurrentDb ? utils_promise.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) { + var dbContext = dbContexts[options.name]; + var forages = dbContext.forages; + dbContext.db = db; + for (var i = 0; i < forages.length; i++) { + forages[i]._dbInfo.db = db; + } + return db; + }); + if (!options.storeName) { + promise = dbPromise.then(function (db) { + _deferReadiness(options); + var dbContext = dbContexts[options.name]; + var forages = dbContext.forages; + db.close(); + for (var i = 0; i < forages.length; i++) { + var forage = forages[i]; + forage._dbInfo.db = null; + } + var dropDBPromise = new utils_promise(function (resolve, reject) { + var req = utils_idb.deleteDatabase(options.name); + req.onerror = function () { + var db = req.result; + if (db) { + db.close(); + } + reject(req.error); + }; + req.onblocked = function () { + // Closing all open connections in onversionchange handler should prevent this situation, but if + // we do get here, it just means the request remains pending - eventually it will succeed or error + console.warn('dropInstance blocked for database "' + options.name + '" until all open connections are closed'); + }; + req.onsuccess = function () { + var db = req.result; + if (db) { + db.close(); + } + resolve(db); + }; + }); + return dropDBPromise.then(function (db) { + dbContext.db = db; + for (var i = 0; i < forages.length; i++) { + var _forage = forages[i]; + _advanceReadiness(_forage._dbInfo); + } + }).catch(function (err) { + (_rejectReadiness(options, err) || utils_promise.resolve()).catch(function () {}); + throw err; + }); + }); + } else { + promise = dbPromise.then(function (db) { + if (!db.objectStoreNames.contains(options.storeName)) { + return; + } + var newVersion = db.version + 1; + _deferReadiness(options); + var dbContext = dbContexts[options.name]; + var forages = dbContext.forages; + db.close(); + for (var i = 0; i < forages.length; i++) { + var forage = forages[i]; + forage._dbInfo.db = null; + forage._dbInfo.version = newVersion; + } + var dropObjectPromise = new utils_promise(function (resolve, reject) { + var req = utils_idb.open(options.name, newVersion); + req.onerror = function (err) { + var db = req.result; + db.close(); + reject(err); + }; + req.onupgradeneeded = function () { + var db = req.result; + db.deleteObjectStore(options.storeName); + }; + req.onsuccess = function () { + var db = req.result; + db.close(); + resolve(db); + }; + }); + return dropObjectPromise.then(function (db) { + dbContext.db = db; + for (var j = 0; j < forages.length; j++) { + var _forage2 = forages[j]; + _forage2._dbInfo.db = db; + _advanceReadiness(_forage2._dbInfo); + } + }).catch(function (err) { + (_rejectReadiness(options, err) || utils_promise.resolve()).catch(function () {}); + throw err; + }); + }); + } + } + utils_executeCallback(promise, callback); + return promise; +} +var asyncStorage = { + _driver: 'asyncStorage', + _initStorage: _initStorage, + _support: utils_isIndexedDBValid(), + iterate: iterate, + getItem: getItem, + setItem: setItem, + removeItem: removeItem, + clear: clear, + length: indexeddb_length, + key: key, + keys: indexeddb_keys, + dropInstance: dropInstance +}; +/* harmony default export */ const indexeddb = (asyncStorage); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/isWebSQLValid.js +function isWebSQLValid() { + return typeof openDatabase === 'function'; } -/*sessionStorage, setTimeout, clearTimeout */ +/* harmony default export */ const utils_isWebSQLValid = (isWebSQLValid); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/serializer.js +/* eslint-disable no-bitwise */ +// Sadly, the best way to save binary data in WebSQL/localStorage is serializing +// it to Base64, so this is how we store it to prevent very strange errors with less +// verbose ways of binary <-> string data storage. +var BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; +var BLOB_TYPE_PREFIX = '~~local_forage_type~'; +var BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/; +var SERIALIZED_MARKER = '__lfsc__:'; +var SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length; +// OMG the serializations! +var TYPE_ARRAYBUFFER = 'arbf'; +var TYPE_BLOB = 'blob'; +var TYPE_INT8ARRAY = 'si08'; +var TYPE_UINT8ARRAY = 'ui08'; +var TYPE_UINT8CLAMPEDARRAY = 'uic8'; +var TYPE_INT16ARRAY = 'si16'; +var TYPE_INT32ARRAY = 'si32'; +var TYPE_UINT16ARRAY = 'ur16'; +var TYPE_UINT32ARRAY = 'ui32'; +var TYPE_FLOAT32ARRAY = 'fl32'; +var TYPE_FLOAT64ARRAY = 'fl64'; +var TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length; +var serializer_toString = Object.prototype.toString; +function stringToBuffer(serializedString) { + // Fill the string into a ArrayBuffer. + var bufferLength = serializedString.length * 0.75; + var len = serializedString.length; + var i; + var p = 0; + var encoded1, encoded2, encoded3, encoded4; + if (serializedString[serializedString.length - 1] === '=') { + bufferLength--; + if (serializedString[serializedString.length - 2] === '=') { + bufferLength--; + } + } + var buffer = new ArrayBuffer(bufferLength); + var bytes = new Uint8Array(buffer); + for (i = 0; i < len; i += 4) { + encoded1 = BASE_CHARS.indexOf(serializedString[i]); + encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]); + encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]); + encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]); + /*jslint bitwise: true */ + bytes[p++] = encoded1 << 2 | encoded2 >> 4; + bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2; + bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63; + } + return buffer; +} +// Converts a buffer to a string to store, serialized, in the backend +// storage library. +function bufferToString(buffer) { + // base64-arraybuffer + var bytes = new Uint8Array(buffer); + var base64String = ''; + var i; + for (i = 0; i < bytes.length; i += 3) { + /*jslint bitwise: true */ + base64String += BASE_CHARS[bytes[i] >> 2]; + base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4]; + base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6]; + base64String += BASE_CHARS[bytes[i + 2] & 63]; + } + if (bytes.length % 3 === 2) { + base64String = base64String.substring(0, base64String.length - 1) + '='; + } else if (bytes.length % 3 === 1) { + base64String = base64String.substring(0, base64String.length - 2) + '=='; + } + return base64String; +} +// Serialize a value, afterwards executing a callback (which usually +// instructs the `setItem()` callback/promise to be executed). This is how +// we store binary data with localStorage. +function serialize(value, callback) { + var valueType = ''; + if (value) { + valueType = serializer_toString.call(value); + } + // Cannot use `value instanceof ArrayBuffer` or such here, as these + // checks fail when running the tests using casper.js... + // + // TODO: See why those tests fail and use a better solution. + if (value && (valueType === '[object ArrayBuffer]' || value.buffer && serializer_toString.call(value.buffer) === '[object ArrayBuffer]')) { + // Convert binary arrays to a string and prefix the string with + // a special marker. + var buffer; + var marker = SERIALIZED_MARKER; + if (value instanceof ArrayBuffer) { + buffer = value; + marker += TYPE_ARRAYBUFFER; + } else { + buffer = value.buffer; + if (valueType === '[object Int8Array]') { + marker += TYPE_INT8ARRAY; + } else if (valueType === '[object Uint8Array]') { + marker += TYPE_UINT8ARRAY; + } else if (valueType === '[object Uint8ClampedArray]') { + marker += TYPE_UINT8CLAMPEDARRAY; + } else if (valueType === '[object Int16Array]') { + marker += TYPE_INT16ARRAY; + } else if (valueType === '[object Uint16Array]') { + marker += TYPE_UINT16ARRAY; + } else if (valueType === '[object Int32Array]') { + marker += TYPE_INT32ARRAY; + } else if (valueType === '[object Uint32Array]') { + marker += TYPE_UINT32ARRAY; + } else if (valueType === '[object Float32Array]') { + marker += TYPE_FLOAT32ARRAY; + } else if (valueType === '[object Float64Array]') { + marker += TYPE_FLOAT64ARRAY; + } else { + callback(new Error('Failed to get type for BinaryArray')); + } + } + callback(marker + bufferToString(buffer)); + } else if (valueType === '[object Blob]') { + // Conver the blob to a binaryArray and then to a string. + var fileReader = new FileReader(); + fileReader.onload = function () { + // Backwards-compatible prefix for the blob type. + var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result); + callback(SERIALIZED_MARKER + TYPE_BLOB + str); + }; + fileReader.readAsArrayBuffer(value); + } else { + try { + callback(JSON.stringify(value)); + } catch (e) { + console.error("Couldn't convert value into a JSON string: ", value); + callback(null, e); + } + } +} +// Deserialize data we've inserted into a value column/field. We place +// special markers into our strings to mark them as encoded; this isn't +// as nice as a meta field, but it's the only sane thing we can do whilst +// keeping localStorage support intact. +// +// Oftentimes this will just deserialize JSON content, but if we have a +// special marker (SERIALIZED_MARKER, defined above), we will extract +// some kind of arraybuffer/binary data/typed array out of the string. +function deserialize(value) { + // If we haven't marked this string as being specially serialized (i.e. + // something other than serialized JSON), we can just return it and be + // done with it. + if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) { + return JSON.parse(value); + } -/** Class: Strophe.Connection - * XMPP Connection manager. - * - * This class is the main part of Strophe. It manages a BOSH or websocket - * connection to an XMPP server and dispatches events to the user callbacks - * as data arrives. It supports SASL PLAIN, SASL SCRAM-SHA-1 - * and legacy authentication. - * - * After creating a Strophe.Connection object, the user will typically - * call connect() with a user supplied callback to handle connection level - * events like authentication failure, disconnection, or connection - * complete. - * - * The user will also have several event handlers defined by using - * addHandler() and addTimedHandler(). These will allow the user code to - * respond to interesting stanzas or do something periodically with the - * connection. These handlers will be active once authentication is - * finished. - * - * To send data to the connection, use send(). - */ + // The following code deals with deserializing some kind of Blob or + // TypedArray. First we separate out the type of data we're dealing + // with from the data itself. + var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH); + var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH); + var blobType; + // Backwards-compatible blob type serialization strategy. + // DBs created with older versions of localForage will simply not have the blob type. + if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) { + var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX); + blobType = matcher[1]; + serializedString = serializedString.substring(matcher[0].length); + } + var buffer = stringToBuffer(serializedString); -/** Constructor: Strophe.Connection - * Create and initialize a Strophe.Connection object. - * - * The transport-protocol for this connection will be chosen automatically - * based on the given service parameter. URLs starting with "ws://" or - * "wss://" will use WebSockets, URLs starting with "http://", "https://" - * or without a protocol will use BOSH. - * - * To make Strophe connect to the current host you can leave out the protocol - * and host part and just pass the path, e.g. - * - * > let conn = new Strophe.Connection("/http-bind/"); - * - * Options common to both Websocket and BOSH: - * ------------------------------------------ - * - * cookies: - * - * The *cookies* option allows you to pass in cookies to be added to the - * document. These cookies will then be included in the BOSH XMLHttpRequest - * or in the websocket connection. - * - * The passed in value must be a map of cookie names and string values. - * - * > { "myCookie": { - * > "value": "1234", - * > "domain": ".example.org", - * > "path": "/", - * > "expires": expirationDate - * > } - * > } - * - * Note that cookies can't be set in this way for other domains (i.e. cross-domain). - * Those cookies need to be set under those domains, for example they can be - * set server-side by making a XHR call to that domain to ask it to set any - * necessary cookies. - * - * mechanisms: - * - * The *mechanisms* option allows you to specify the SASL mechanisms that this - * instance of Strophe.Connection (and therefore your XMPP client) will - * support. - * - * The value must be an array of objects with Strophe.SASLMechanism - * prototypes. - * - * If nothing is specified, then the following mechanisms (and their - * priorities) are registered: - * - * SCRAM-SHA-512 - 72 - * SCRAM-SHA-384 - 71 - * SCRAM-SHA-256 - 70 - * SCRAM-SHA-1 - 60 - * PLAIN - 50 - * OAUTHBEARER - 40 - * X-OAUTH2 - 30 - * ANONYMOUS - 20 - * EXTERNAL - 10 - * - * explicitResourceBinding: - * - * If `explicitResourceBinding` is set to a truthy value, then the XMPP client - * needs to explicitly call `Strophe.Connection.prototype.bind` once the XMPP - * server has advertised the "urn:ietf:params:xml:ns:xmpp-bind" feature. - * - * Making this step explicit allows client authors to first finish other - * stream related tasks, such as setting up an XEP-0198 Stream Management - * session, before binding the JID resource for this session. - * - * WebSocket options: - * ------------------ - * - * protocol: - * - * If you want to connect to the current host with a WebSocket connection you - * can tell Strophe to use WebSockets through a "protocol" attribute in the - * optional options parameter. Valid values are "ws" for WebSocket and "wss" - * for Secure WebSocket. - * So to connect to "wss://CURRENT_HOSTNAME/xmpp-websocket" you would call - * - * > let conn = new Strophe.Connection("/xmpp-websocket/", {protocol: "wss"}); - * - * Note that relative URLs _NOT_ starting with a "/" will also include the path - * of the current site. - * - * Also because downgrading security is not permitted by browsers, when using - * relative URLs both BOSH and WebSocket connections will use their secure - * variants if the current connection to the site is also secure (https). - * - * worker: - * - * Set this option to URL from where the shared worker script should be loaded. - * - * To run the websocket connection inside a shared worker. - * This allows you to share a single websocket-based connection between - * multiple Strophe.Connection instances, for example one per browser tab. - * - * The script to use is the one in `src/shared-connection-worker.js`. - * - * BOSH options: - * ------------- - * - * By adding "sync" to the options, you can control if requests will - * be made synchronously or not. The default behaviour is asynchronous. - * If you want to make requests synchronous, make "sync" evaluate to true. - * > let conn = new Strophe.Connection("/http-bind/", {sync: true}); - * - * You can also toggle this on an already established connection. - * > conn.options.sync = true; - * - * The *customHeaders* option can be used to provide custom HTTP headers to be - * included in the XMLHttpRequests made. - * - * The *keepalive* option can be used to instruct Strophe to maintain the - * current BOSH session across interruptions such as webpage reloads. - * - * It will do this by caching the sessions tokens in sessionStorage, and when - * "restore" is called it will check whether there are cached tokens with - * which it can resume an existing session. - * - * The *withCredentials* option should receive a Boolean value and is used to - * indicate wether cookies should be included in ajax requests (by default - * they're not). - * Set this value to true if you are connecting to a BOSH service - * and for some reason need to send cookies to it. - * In order for this to work cross-domain, the server must also enable - * credentials by setting the Access-Control-Allow-Credentials response header - * to "true". For most usecases however this setting should be false (which - * is the default). - * Additionally, when using Access-Control-Allow-Credentials, the - * Access-Control-Allow-Origin header can't be set to the wildcard "*", but - * instead must be restricted to actual domains. - * - * The *contentType* option can be set to change the default Content-Type - * of "text/xml; charset=utf-8", which can be useful to reduce the amount of - * CORS preflight requests that are sent to the server. - * - * Parameters: - * (String) service - The BOSH or WebSocket service URL. - * (Object) options - A hash of configuration options - * - * Returns: - * A new Strophe.Connection object. - */ -var Connection = /*#__PURE__*/function () { - function Connection(service, options) { - var _this = this; - connection_classCallCheck(this, Connection); - // The service URL - this.service = service; - // Configuration options - this.options = options || {}; - this.setProtocol(); - - /* The connected JID. */ - this.jid = ''; - /* the JIDs domain */ - this.domain = null; - /* stream:features */ - this.features = null; - - // SASL - this._sasl_data = {}; - this.do_bind = false; - this.do_session = false; - this.mechanisms = {}; - - // handler lists - this.timedHandlers = []; - this.handlers = []; - this.removeTimeds = []; - this.removeHandlers = []; - this.addTimeds = []; - this.addHandlers = []; - this.protocolErrorHandlers = { - 'HTTP': {}, - 'websocket': {} - }; - this._idleTimeout = null; - this._disconnectTimeout = null; - this.authenticated = false; - this.connected = false; - this.disconnecting = false; - this.do_authentication = true; - this.paused = false; - this.restored = false; - this._data = []; - this._uniqueId = 0; - this._sasl_success_handler = null; - this._sasl_failure_handler = null; - this._sasl_challenge_handler = null; + // Return the right type based on the code/type set during + // serialization. + switch (type) { + case TYPE_ARRAYBUFFER: + return buffer; + case TYPE_BLOB: + return utils_createBlob([buffer], { + type: blobType + }); + case TYPE_INT8ARRAY: + return new Int8Array(buffer); + case TYPE_UINT8ARRAY: + return new Uint8Array(buffer); + case TYPE_UINT8CLAMPEDARRAY: + return new Uint8ClampedArray(buffer); + case TYPE_INT16ARRAY: + return new Int16Array(buffer); + case TYPE_UINT16ARRAY: + return new Uint16Array(buffer); + case TYPE_INT32ARRAY: + return new Int32Array(buffer); + case TYPE_UINT32ARRAY: + return new Uint32Array(buffer); + case TYPE_FLOAT32ARRAY: + return new Float32Array(buffer); + case TYPE_FLOAT64ARRAY: + return new Float64Array(buffer); + default: + throw new Error('Unkown type: ' + type); + } +} +var localforageSerializer = { + serialize: serialize, + deserialize: deserialize, + stringToBuffer: stringToBuffer, + bufferToString: bufferToString +}; +/* harmony default export */ const serializer = (localforageSerializer); +;// CONCATENATED MODULE: ./node_modules/localforage/src/drivers/websql.js - // Max retries before disconnecting - this.maxRetries = 5; - // Call onIdle callback every 1/10th of a second - this._idleTimeout = setTimeout(function () { - return _this._onIdle(); - }, 100); - addCookies(this.options.cookies); - this.registerSASLMechanisms(this.options.mechanisms); - // A client must always respond to incoming IQ "set" and "get" stanzas. - // See https://datatracker.ietf.org/doc/html/rfc6120#section-8.2.3 - // - // This is a fallback handler which gets called when no other handler - // was called for a received IQ "set" or "get". - this.iqFallbackHandler = new Handler(function (iq) { - return _this.send($iq({ - type: 'error', - id: iq.getAttribute('id') - }).c('error', { - 'type': 'cancel' - }).c('service-unavailable', { - 'xmlns': Strophe.NS.STANZAS - })); - }, null, 'iq', ['get', 'set']); - // initialize plugins - for (var k in Strophe._connectionPlugins) { - if (Object.prototype.hasOwnProperty.call(Strophe._connectionPlugins, k)) { - var F = function F() {}; - F.prototype = Strophe._connectionPlugins[k]; - this[k] = new F(); - this[k].init(this); - } - } - } - /** Function: setProtocol - * Select protocal based on this.options or this.service - */ - connection_createClass(Connection, [{ - key: "setProtocol", - value: function setProtocol() { - var proto = this.options.protocol || ''; - if (this.options.worker) { - this._proto = new Strophe.WorkerWebsocket(this); - } else if (this.service.indexOf('ws:') === 0 || this.service.indexOf('wss:') === 0 || proto.indexOf('ws') === 0) { - this._proto = new Strophe.Websocket(this); - } else { - this._proto = new Strophe.Bosh(this); - } - } - /** Function: reset - * Reset the connection. - * - * This function should be called after a connection is disconnected - * before that connection is reused. - */ - }, { - key: "reset", - value: function reset() { - this._proto._reset(); - // SASL - this.do_session = false; - this.do_bind = false; +/* + * Includes code from: + * + * base64-arraybuffer + * https://github.com/niklasvh/base64-arraybuffer + * + * Copyright (c) 2012 Niklas von Hertzen + * Licensed under the MIT license. + */ - // handler lists - this.timedHandlers = []; - this.handlers = []; - this.removeTimeds = []; - this.removeHandlers = []; - this.addTimeds = []; - this.addHandlers = []; - this.authenticated = false; - this.connected = false; - this.disconnecting = false; - this.restored = false; - this._data = []; - this._requests = []; - this._uniqueId = 0; - } +function createDbTable(t, dbInfo, callback, errorCallback) { + t.executeSql("CREATE TABLE IF NOT EXISTS ".concat(dbInfo.storeName, " ") + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback); +} - /** Function: pause - * Pause the request manager. - * - * This will prevent Strophe from sending any more requests to the - * server. This is very useful for temporarily pausing - * BOSH-Connections while a lot of send() calls are happening quickly. - * This causes Strophe to send the data in a single request, saving - * many request trips. - */ - }, { - key: "pause", - value: function pause() { - this.paused = true; +// Open the WebSQL database (automatically creates one if one didn't +// previously exist), using any options set in the config. +function websql_initStorage(options) { + var self = this; + var dbInfo = { + db: null + }; + if (options) { + for (var i in options) { + dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i]; } - - /** Function: resume - * Resume the request manager. - * - * This resumes after pause() has been called. - */ - }, { - key: "resume", - value: function resume() { - this.paused = false; + } + var dbInfoPromise = new utils_promise(function (resolve, reject) { + // Open the database; the openDatabase API will automatically + // create it for us if it doesn't exist. + try { + dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size); + } catch (e) { + return reject(e); } - /** Function: getUniqueId - * Generate a unique ID for use in elements. - * - * All stanzas are required to have unique id attributes. This - * function makes creating these easy. Each connection instance has - * a counter which starts from zero, and the value of this counter - * plus a colon followed by the suffix becomes the unique id. If no - * suffix is supplied, the counter is used as the unique id. - * - * Suffixes are used to make debugging easier when reading the stream - * data, and their use is recommended. The counter resets to 0 for - * every new connection for the same reason. For connections to the - * same server that authenticate the same way, all the ids should be - * the same, which makes it easy to see changes. This is useful for - * automated testing as well. - * - * Parameters: - * (String) suffix - A optional suffix to append to the id. - * - * Returns: - * A unique string to be used for the id attribute. - */ - // eslint-disable-next-line class-methods-use-this - }, { - key: "getUniqueId", - value: function getUniqueId(suffix) { - var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { - var r = Math.random() * 16 | 0, - v = c === 'x' ? r : r & 0x3 | 0x8; - return v.toString(16); + // Create our key/value table if it doesn't exist. + dbInfo.db.transaction(function (t) { + createDbTable(t, dbInfo, function () { + self._dbInfo = dbInfo; + resolve(); + }, function (t, error) { + reject(error); }); - if (typeof suffix === 'string' || typeof suffix === 'number') { - return uuid + ':' + suffix; - } else { - return uuid + ''; - } - } - - /** Function: addProtocolErrorHandler - * Register a handler function for when a protocol (websocker or HTTP) - * error occurs. - * - * NOTE: Currently only HTTP errors for BOSH requests are handled. - * Patches that handle websocket errors would be very welcome. - * - * Parameters: - * (String) protocol - 'HTTP' or 'websocket' - * (Integer) status_code - Error status code (e.g 500, 400 or 404) - * (Function) callback - Function that will fire on Http error - * - * Example: - * function onError(err_code){ - * //do stuff - * } - * - * let conn = Strophe.connect('http://example.com/http-bind'); - * conn.addProtocolErrorHandler('HTTP', 500, onError); - * // Triggers HTTP 500 error and onError handler will be called - * conn.connect('user_jid@incorrect_jabber_host', 'secret', onConnect); - */ - }, { - key: "addProtocolErrorHandler", - value: function addProtocolErrorHandler(protocol, status_code, callback) { - this.protocolErrorHandlers[protocol][status_code] = callback; + }, reject); + }); + dbInfo.serializer = serializer; + return dbInfoPromise; +} +function tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) { + t.executeSql(sqlStatement, args, callback, function (t, error) { + if (error.code === error.SYNTAX_ERR) { + t.executeSql('SELECT name FROM sqlite_master ' + "WHERE type='table' AND name = ?", [dbInfo.storeName], function (t, results) { + if (!results.rows.length) { + // if the table is missing (was deleted) + // re-create it table and retry + createDbTable(t, dbInfo, function () { + t.executeSql(sqlStatement, args, callback, errorCallback); + }, errorCallback); + } else { + errorCallback(t, error); + } + }, errorCallback); + } else { + errorCallback(t, error); } + }, errorCallback); +} +function websql_getItem(key, callback) { + var self = this; + key = normalizeKey(key); + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + tryExecuteSql(t, dbInfo, "SELECT * FROM ".concat(dbInfo.storeName, " WHERE key = ? LIMIT 1"), [key], function (t, results) { + var result = results.rows.length ? results.rows.item(0).value : null; - /** Function: connect - * Starts the connection process. - * - * As the connection process proceeds, the user supplied callback will - * be triggered multiple times with status updates. The callback - * should take two arguments - the status code and the error condition. - * - * The status code will be one of the values in the Strophe.Status - * constants. The error condition will be one of the conditions - * defined in RFC 3920 or the condition 'strophe-parsererror'. - * - * The Parameters _wait_, _hold_ and _route_ are optional and only relevant - * for BOSH connections. Please see XEP 124 for a more detailed explanation - * of the optional parameters. - * - * Parameters: - * (String) jid - The user's JID. This may be a bare JID, - * or a full JID. If a node is not supplied, SASL OAUTHBEARER or - * SASL ANONYMOUS authentication will be attempted (OAUTHBEARER will - * process the provided password value as an access token). - * (String or Object) pass - The user's password, or an object containing - * the users SCRAM client and server keys, in a fashion described as follows: - * - * { name: String, representing the hash used (eg. SHA-1), - * salt: String, base64 encoded salt used to derive the client key, - * iter: Int, the iteration count used to derive the client key, - * ck: String, the base64 encoding of the SCRAM client key - * sk: String, the base64 encoding of the SCRAM server key - * } - * - * (Function) callback - The connect callback function. - * (Integer) wait - The optional HTTPBIND wait value. This is the - * time the server will wait before returning an empty result for - * a request. The default setting of 60 seconds is recommended. - * (Integer) hold - The optional HTTPBIND hold value. This is the - * number of connections the server will hold at one time. This - * should almost always be set to 1 (the default). - * (String) route - The optional route value. - * (String) authcid - The optional alternative authentication identity - * (username) if intending to impersonate another user. - * When using the SASL-EXTERNAL authentication mechanism, for example - * with client certificates, then the authcid value is used to - * determine whether an authorization JID (authzid) should be sent to - * the server. The authzid should NOT be sent to the server if the - * authzid and authcid are the same. So to prevent it from being sent - * (for example when the JID is already contained in the client - * certificate), set authcid to that same JID. See XEP-178 for more - * details. - * (Integer) disconnection_timeout - The optional disconnection timeout - * in milliseconds before _doDisconnect will be called. - */ - }, { - key: "connect", - value: function connect(jid, pass, callback, wait, hold, route, authcid) { - var disconnection_timeout = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 3000; - this.jid = jid; - /** Variable: authzid - * Authorization identity. - */ - this.authzid = Strophe.getBareJidFromJid(this.jid); - - /** Variable: authcid - * Authentication identity (User name). - */ - this.authcid = authcid || Strophe.getNodeFromJid(this.jid); - - /** Variable: pass - * Authentication identity (User password). - * - */ - this.pass = pass; - - /** Variable: scram_keys - * The SASL SCRAM client and server keys. This variable will be populated with a non-null - * object of the above described form after a successful SCRAM connection - * - */ - this.scram_keys = null; - this.connect_callback = callback; - this.disconnecting = false; - this.connected = false; - this.authenticated = false; - this.restored = false; - this.disconnection_timeout = disconnection_timeout; - - // parse jid for domain - this.domain = Strophe.getDomainFromJid(this.jid); - this._changeConnectStatus(Status.CONNECTING, null); - this._proto._connect(wait, hold, route); - } + // Check to see if this is serialized content we need to + // unpack. + if (result) { + result = dbInfo.serializer.deserialize(result); + } + resolve(result); + }, function (t, error) { + reject(error); + }); + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} +function websql_iterate(iterator, callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + tryExecuteSql(t, dbInfo, "SELECT * FROM ".concat(dbInfo.storeName), [], function (t, results) { + var rows = results.rows; + var length = rows.length; + for (var i = 0; i < length; i++) { + var item = rows.item(i); + var result = item.value; - /** Function: attach - * Attach to an already created and authenticated BOSH session. - * - * This function is provided to allow Strophe to attach to BOSH - * sessions which have been created externally, perhaps by a Web - * application. This is often used to support auto-login type features - * without putting user credentials into the page. - * - * Parameters: - * (String) jid - The full JID that is bound by the session. - * (String) sid - The SID of the BOSH session. - * (String) rid - The current RID of the BOSH session. This RID - * will be used by the next request. - * (Function) callback The connect callback function. - * (Integer) wait - The optional HTTPBIND wait value. This is the - * time the server will wait before returning an empty result for - * a request. The default setting of 60 seconds is recommended. - * Other settings will require tweaks to the Strophe.TIMEOUT value. - * (Integer) hold - The optional HTTPBIND hold value. This is the - * number of connections the server will hold at one time. This - * should almost always be set to 1 (the default). - * (Integer) wind - The optional HTTBIND window value. This is the - * allowed range of request ids that are valid. The default is 5. - */ - }, { - key: "attach", - value: function attach(jid, sid, rid, callback, wait, hold, wind) { - if (this._proto._attach) { - return this._proto._attach(jid, sid, rid, callback, wait, hold, wind); - } else { - var error = new Error('The "attach" method is not available for your connection protocol'); - error.name = 'StropheSessionError'; - throw error; - } - } + // Check to see if this is serialized content + // we need to unpack. + if (result) { + result = dbInfo.serializer.deserialize(result); + } + result = iterator(result, item.key, i + 1); - /** Function: restore - * Attempt to restore a cached BOSH session. - * - * This function is only useful in conjunction with providing the - * "keepalive":true option when instantiating a new Strophe.Connection. - * - * When "keepalive" is set to true, Strophe will cache the BOSH tokens - * RID (Request ID) and SID (Session ID) and then when this function is - * called, it will attempt to restore the session from those cached - * tokens. - * - * This function must therefore be called instead of connect or attach. - * - * For an example on how to use it, please see examples/restore.js - * - * Parameters: - * (String) jid - The user's JID. This may be a bare JID or a full JID. - * (Function) callback - The connect callback function. - * (Integer) wait - The optional HTTPBIND wait value. This is the - * time the server will wait before returning an empty result for - * a request. The default setting of 60 seconds is recommended. - * (Integer) hold - The optional HTTPBIND hold value. This is the - * number of connections the server will hold at one time. This - * should almost always be set to 1 (the default). - * (Integer) wind - The optional HTTBIND window value. This is the - * allowed range of request ids that are valid. The default is 5. - */ - }, { - key: "restore", - value: function restore(jid, callback, wait, hold, wind) { - if (this._sessionCachingSupported()) { - this._proto._restore(jid, callback, wait, hold, wind); - } else { - var error = new Error('The "restore" method can only be used with a BOSH connection.'); - error.name = 'StropheSessionError'; - throw error; + // void(0) prevents problems with redefinition + // of `undefined`. + if (result !== void 0) { + resolve(result); + return; + } + } + resolve(); + }, function (t, error) { + reject(error); + }); + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} +function _setItem(key, value, callback, retriesLeft) { + var self = this; + key = normalizeKey(key); + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + // The localStorage API doesn't return undefined values in an + // "expected" way, so undefined is always cast to null in all + // drivers. See: https://github.com/mozilla/localForage/pull/42 + if (value === undefined) { + value = null; } - } - /** PrivateFunction: _sessionCachingSupported - * Checks whether sessionStorage and JSON are supported and whether we're - * using BOSH. - */ - }, { - key: "_sessionCachingSupported", - value: function _sessionCachingSupported() { - if (this._proto instanceof Strophe.Bosh) { - if (!JSON) { - return false; - } - try { - sessionStorage.setItem('_strophe_', '_strophe_'); - sessionStorage.removeItem('_strophe_'); - } catch (e) { - return false; + // Save the original value to pass to the callback. + var originalValue = value; + var dbInfo = self._dbInfo; + dbInfo.serializer.serialize(value, function (value, error) { + if (error) { + reject(error); + } else { + dbInfo.db.transaction(function (t) { + tryExecuteSql(t, dbInfo, "INSERT OR REPLACE INTO ".concat(dbInfo.storeName, " ") + '(key, value) VALUES (?, ?)', [key, value], function () { + resolve(originalValue); + }, function (t, error) { + reject(error); + }); + }, function (sqlError) { + // The transaction failed; check + // to see if it's a quota error. + if (sqlError.code === sqlError.QUOTA_ERR) { + // We reject the callback outright for now, but + // it's worth trying to re-run the transaction. + // Even if the user accepts the prompt to use + // more storage on Safari, this error will + // be called. + // + // Try to re-run the transaction. + if (retriesLeft > 0) { + resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1])); + return; + } + reject(sqlError); + } + }); } - return true; - } - return false; - } + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} +function websql_setItem(key, value, callback) { + return _setItem.apply(this, [key, value, callback, 1]); +} +function websql_removeItem(key, callback) { + var self = this; + key = normalizeKey(key); + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + tryExecuteSql(t, dbInfo, "DELETE FROM ".concat(dbInfo.storeName, " WHERE key = ?"), [key], function () { + resolve(); + }, function (t, error) { + reject(error); + }); + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} - /** Function: xmlInput - * User overrideable function that receives XML data coming into the - * connection. - * - * The default function does nothing. User code can override this with - * > Strophe.Connection.xmlInput = function (elem) { - * > (user code) - * > }; - * - * Due to limitations of current Browsers' XML-Parsers the opening and closing - * tag for WebSocket-Connoctions will be passed as selfclosing here. - * - * BOSH-Connections will have all stanzas wrapped in a tag. See - * if you want to strip this tag. - * - * Parameters: - * (XMLElement) elem - The XML data received by the connection. - */ - // eslint-disable-next-line no-unused-vars, class-methods-use-this - }, { - key: "xmlInput", - value: function xmlInput(elem) { - return; - } +// Deletes every item in the table. +// TODO: Find out if this resets the AUTO_INCREMENT number. +function websql_clear(callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + tryExecuteSql(t, dbInfo, "DELETE FROM ".concat(dbInfo.storeName), [], function () { + resolve(); + }, function (t, error) { + reject(error); + }); + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} - /** Function: xmlOutput - * User overrideable function that receives XML data sent to the - * connection. - * - * The default function does nothing. User code can override this with - * > Strophe.Connection.xmlOutput = function (elem) { - * > (user code) - * > }; - * - * Due to limitations of current Browsers' XML-Parsers the opening and closing - * tag for WebSocket-Connoctions will be passed as selfclosing here. - * - * BOSH-Connections will have all stanzas wrapped in a tag. See - * if you want to strip this tag. - * - * Parameters: - * (XMLElement) elem - The XMLdata sent by the connection. - */ - // eslint-disable-next-line no-unused-vars, class-methods-use-this - }, { - key: "xmlOutput", - value: function xmlOutput(elem) { - return; - } - - /** Function: rawInput - * User overrideable function that receives raw data coming into the - * connection. - * - * The default function does nothing. User code can override this with - * > Strophe.Connection.rawInput = function (data) { - * > (user code) - * > }; - * - * Parameters: - * (String) data - The data received by the connection. - */ - // eslint-disable-next-line no-unused-vars, class-methods-use-this - }, { - key: "rawInput", - value: function rawInput(data) { - return; - } - - /** Function: rawOutput - * User overrideable function that receives raw data sent to the - * connection. - * - * The default function does nothing. User code can override this with - * > Strophe.Connection.rawOutput = function (data) { - * > (user code) - * > }; - * - * Parameters: - * (String) data - The data sent by the connection. - */ - // eslint-disable-next-line no-unused-vars, class-methods-use-this - }, { - key: "rawOutput", - value: function rawOutput(data) { - return; - } +// Does a simple `COUNT(key)` to get the number of items stored in +// localForage. +function websql_length(callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + // Ahhh, SQL makes this one soooooo easy. + tryExecuteSql(t, dbInfo, "SELECT COUNT(key) as c FROM ".concat(dbInfo.storeName), [], function (t, results) { + var result = results.rows.item(0).c; + resolve(result); + }, function (t, error) { + reject(error); + }); + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} - /** Function: nextValidRid - * User overrideable function that receives the new valid rid. - * - * The default function does nothing. User code can override this with - * > Strophe.Connection.nextValidRid = function (rid) { - * > (user code) - * > }; - * - * Parameters: - * (Number) rid - The next valid rid - */ - // eslint-disable-next-line no-unused-vars, class-methods-use-this - }, { - key: "nextValidRid", - value: function nextValidRid(rid) { - return; - } +// Return the key located at key index X; essentially gets the key from a +// `WHERE id = ?`. This is the most efficient way I can think to implement +// this rarely-used (in my experience) part of the API, but it can seem +// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so +// the ID of each key will change every time it's updated. Perhaps a stored +// procedure for the `setItem()` SQL would solve this problem? +// TODO: Don't change ID on `setItem()`. +function websql_key(n, callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + tryExecuteSql(t, dbInfo, "SELECT key FROM ".concat(dbInfo.storeName, " WHERE id = ? LIMIT 1"), [n + 1], function (t, results) { + var result = results.rows.length ? results.rows.item(0).key : null; + resolve(result); + }, function (t, error) { + reject(error); + }); + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} +function websql_keys(callback) { + var self = this; + var promise = new utils_promise(function (resolve, reject) { + self.ready().then(function () { + var dbInfo = self._dbInfo; + dbInfo.db.transaction(function (t) { + tryExecuteSql(t, dbInfo, "SELECT key FROM ".concat(dbInfo.storeName), [], function (t, results) { + var keys = []; + for (var i = 0; i < results.rows.length; i++) { + keys.push(results.rows.item(i).key); + } + resolve(keys); + }, function (t, error) { + reject(error); + }); + }); + }).catch(reject); + }); + utils_executeCallback(promise, callback); + return promise; +} - /** Function: send - * Send a stanza. - * - * This function is called to push data onto the send queue to - * go out over the wire. Whenever a request is sent to the BOSH - * server, all pending data is sent and the queue is flushed. - * - * Parameters: - * (XMLElement | - * [XMLElement] | - * Strophe.Builder) elem - The stanza to send. - */ - }, { - key: "send", - value: function send(elem) { - if (elem === null) { - return; - } - if (typeof elem.sort === 'function') { - for (var i = 0; i < elem.length; i++) { - this._queueData(elem[i]); +// https://www.w3.org/TR/webdatabase/#databases +// > There is no way to enumerate or delete the databases available for an origin from this API. +function getAllStoreNames(db) { + return new utils_promise(function (resolve, reject) { + db.transaction(function (t) { + t.executeSql('SELECT name FROM sqlite_master ' + "WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'", [], function (t, results) { + var storeNames = []; + for (var i = 0; i < results.rows.length; i++) { + storeNames.push(results.rows.item(i).name); } - } else if (typeof elem.tree === 'function') { - this._queueData(elem.tree()); + resolve({ + db: db, + storeNames: storeNames + }); + }, function (t, error) { + reject(error); + }); + }, function (sqlError) { + reject(sqlError); + }); + }); +} +function websql_dropInstance(options, callback) { + callback = getCallback.apply(this, arguments); + var currentConfig = this.config(); + options = typeof options !== 'function' && options || {}; + if (!options.name) { + options.name = options.name || currentConfig.name; + options.storeName = options.storeName || currentConfig.storeName; + } + var self = this; + var promise; + if (!options.name) { + promise = utils_promise.reject('Invalid arguments'); + } else { + promise = new utils_promise(function (resolve) { + var db; + if (options.name === currentConfig.name) { + // use the db reference of the current instance + db = self._dbInfo.db; } else { - this._queueData(elem); - } - this._proto._send(); - } - - /** Function: flush - * Immediately send any pending outgoing data. - * - * Normally send() queues outgoing data until the next idle period - * (100ms), which optimizes network use in the common cases when - * several send()s are called in succession. flush() can be used to - * immediately send all pending data. - */ - }, { - key: "flush", - value: function flush() { - // cancel the pending idle period and run the idle function - // immediately - clearTimeout(this._idleTimeout); - this._onIdle(); - } - - /** Function: sendPresence - * Helper function to send presence stanzas. The main benefit is for - * sending presence stanzas for which you expect a responding presence - * stanza with the same id (for example when leaving a chat room). - * - * Parameters: - * (XMLElement) elem - The stanza to send. - * (Function) callback - The callback function for a successful request. - * (Function) errback - The callback function for a failed or timed - * out request. On timeout, the stanza will be null. - * (Integer) timeout - The time specified in milliseconds for a - * timeout to occur. - * - * Returns: - * The id used to send the presence. - */ - }, { - key: "sendPresence", - value: function sendPresence(elem, callback, errback, timeout) { - var _this2 = this; - var timeoutHandler = null; - if (typeof elem.tree === 'function') { - elem = elem.tree(); + db = openDatabase(options.name, '', '', 0); } - var id = elem.getAttribute('id'); - if (!id) { - // inject id if not found - id = this.getUniqueId('sendPresence'); - elem.setAttribute('id', id); + if (!options.storeName) { + // drop all database tables + resolve(getAllStoreNames(db)); + } else { + resolve({ + db: db, + storeNames: [options.storeName] + }); } - if (typeof callback === 'function' || typeof errback === 'function') { - var handler = this.addHandler(function (stanza) { - // remove timeout handler if there is one - if (timeoutHandler) { - _this2.deleteTimedHandler(timeoutHandler); + }).then(function (operationInfo) { + return new utils_promise(function (resolve, reject) { + operationInfo.db.transaction(function (t) { + function dropTable(storeName) { + return new utils_promise(function (resolve, reject) { + t.executeSql("DROP TABLE IF EXISTS ".concat(storeName), [], function () { + resolve(); + }, function (t, error) { + reject(error); + }); + }); } - if (stanza.getAttribute('type') === 'error') { - if (errback) { - errback(stanza); - } - } else if (callback) { - callback(stanza); + var operations = []; + for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) { + operations.push(dropTable(operationInfo.storeNames[i])); } - }, null, 'presence', null, id); - - // if timeout specified, set up a timeout handler. - if (timeout) { - timeoutHandler = this.addTimedHandler(timeout, function () { - // get rid of normal handler - _this2.deleteHandler(handler); - // call errback on timeout with null stanza - if (errback) { - errback(null); - } - return false; + utils_promise.all(operations).then(function () { + resolve(); + }).catch(function (e) { + reject(e); }); - } - } - this.send(elem); - return id; - } + }, function (sqlError) { + reject(sqlError); + }); + }); + }); + } + utils_executeCallback(promise, callback); + return promise; +} +var webSQLStorage = { + _driver: 'webSQLStorage', + _initStorage: websql_initStorage, + _support: utils_isWebSQLValid(), + iterate: websql_iterate, + getItem: websql_getItem, + setItem: websql_setItem, + removeItem: websql_removeItem, + clear: websql_clear, + length: websql_length, + key: websql_key, + keys: websql_keys, + dropInstance: websql_dropInstance +}; +/* harmony default export */ const websql = (webSQLStorage); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/isLocalStorageValid.js +function isLocalStorageValid() { + try { + return typeof localStorage !== 'undefined' && 'setItem' in localStorage && + // in IE8 typeof localStorage.setItem === 'object' + !!localStorage.setItem; + } catch (e) { + return false; + } +} +/* harmony default export */ const utils_isLocalStorageValid = (isLocalStorageValid); +;// CONCATENATED MODULE: ./node_modules/localforage/src/drivers/localstorage.js +// If IndexedDB isn't available, we'll fall back to localStorage. +// Note that this will have considerable performance and storage +// side-effects (all data will be serialized on save and only data that +// can be converted to a string via `JSON.stringify()` will be saved). - /** Function: sendIQ - * Helper function to send IQ stanzas. - * - * Parameters: - * (XMLElement) elem - The stanza to send. - * (Function) callback - The callback function for a successful request. - * (Function) errback - The callback function for a failed or timed - * out request. On timeout, the stanza will be null. - * (Integer) timeout - The time specified in milliseconds for a - * timeout to occur. - * - * Returns: - * The id used to send the IQ. - */ - }, { - key: "sendIQ", - value: function sendIQ(elem, callback, errback, timeout) { - var _this3 = this; - var timeoutHandler = null; - if (typeof elem.tree === 'function') { - elem = elem.tree(); - } - var id = elem.getAttribute('id'); - if (!id) { - // inject id if not found - id = this.getUniqueId('sendIQ'); - elem.setAttribute('id', id); - } - if (typeof callback === 'function' || typeof errback === 'function') { - var handler = this.addHandler(function (stanza) { - // remove timeout handler if there is one - if (timeoutHandler) { - _this3.deleteTimedHandler(timeoutHandler); - } - var iqtype = stanza.getAttribute('type'); - if (iqtype === 'result') { - if (callback) { - callback(stanza); - } - } else if (iqtype === 'error') { - if (errback) { - errback(stanza); - } - } else { - var error = new Error("Got bad IQ type of ".concat(iqtype)); - error.name = 'StropheError'; - throw error; - } - }, null, 'iq', ['error', 'result'], id); - // if timeout specified, set up a timeout handler. - if (timeout) { - timeoutHandler = this.addTimedHandler(timeout, function () { - // get rid of normal handler - _this3.deleteHandler(handler); - // call errback on timeout with null stanza - if (errback) { - errback(null); - } - return false; - }); - } - } - this.send(elem); - return id; - } - /** PrivateFunction: _queueData - * Queue outgoing data for later sending. Also ensures that the data - * is a DOMElement. - */ - }, { - key: "_queueData", - value: function _queueData(element) { - if (element === null || !element.tagName || !element.childNodes) { - var error = new Error('Cannot queue non-DOMElement.'); - error.name = 'StropheError'; - throw error; - } - this._data.push(element); - } - /** PrivateFunction: _sendRestart - * Send an xmpp:restart stanza. - */ - }, { - key: "_sendRestart", - value: function _sendRestart() { - var _this4 = this; - this._data.push('restart'); - this._proto._sendRestart(); - this._idleTimeout = setTimeout(function () { - return _this4._onIdle(); - }, 100); - } - /** Function: addTimedHandler - * Add a timed handler to the connection. - * - * This function adds a timed handler. The provided handler will - * be called every period milliseconds until it returns false, - * the connection is terminated, or the handler is removed. Handlers - * that wish to continue being invoked should return true. - * - * Because of method binding it is necessary to save the result of - * this function if you wish to remove a handler with - * deleteTimedHandler(). - * - * Note that user handlers are not active until authentication is - * successful. - * - * Parameters: - * (Integer) period - The period of the handler. - * (Function) handler - The callback function. - * - * Returns: - * A reference to the handler that can be used to remove it. - */ - }, { - key: "addTimedHandler", - value: function addTimedHandler(period, handler) { - var thand = new Strophe.TimedHandler(period, handler); - this.addTimeds.push(thand); - return thand; - } - /** Function: deleteTimedHandler - * Delete a timed handler for a connection. - * - * This function removes a timed handler from the connection. The - * handRef parameter is *not* the function passed to addTimedHandler(), - * but is the reference returned from addTimedHandler(). - * - * Parameters: - * (Strophe.TimedHandler) handRef - The handler reference. - */ - }, { - key: "deleteTimedHandler", - value: function deleteTimedHandler(handRef) { - // this must be done in the Idle loop so that we don't change - // the handlers during iteration - this.removeTimeds.push(handRef); - } - /** Function: addHandler - * Add a stanza handler for the connection. - * - * This function adds a stanza handler to the connection. The - * handler callback will be called for any stanza that matches - * the parameters. Note that if multiple parameters are supplied, - * they must all match for the handler to be invoked. - * - * The handler will receive the stanza that triggered it as its argument. - * *The handler should return true if it is to be invoked again; - * returning false will remove the handler after it returns.* - * - * As a convenience, the ns parameters applies to the top level element - * and also any of its immediate children. This is primarily to make - * matching /iq/query elements easy. - * - * Options - * ~~~~~~~ - * With the options argument, you can specify boolean flags that affect how - * matches are being done. - * - * Currently two flags exist: - * - * - matchBareFromJid: - * When set to true, the from parameter and the - * from attribute on the stanza will be matched as bare JIDs instead - * of full JIDs. To use this, pass {matchBareFromJid: true} as the - * value of options. The default value for matchBareFromJid is false. - * - * - ignoreNamespaceFragment: - * When set to true, a fragment specified on the stanza's namespace - * URL will be ignored when it's matched with the one configured for - * the handler. - * - * This means that if you register like this: - * > connection.addHandler( - * > handler, - * > 'http://jabber.org/protocol/muc', - * > null, null, null, null, - * > {'ignoreNamespaceFragment': true} - * > ); - * - * Then a stanza with XML namespace of - * 'http://jabber.org/protocol/muc#user' will also be matched. If - * 'ignoreNamespaceFragment' is false, then only stanzas with - * 'http://jabber.org/protocol/muc' will be matched. - * - * Deleting the handler - * ~~~~~~~~~~~~~~~~~~~~ - * The return value should be saved if you wish to remove the handler - * with deleteHandler(). - * - * Parameters: - * (Function) handler - The user callback. - * (String) ns - The namespace to match. - * (String) name - The stanza name to match. - * (String|Array) type - The stanza type (or types if an array) to match. - * (String) id - The stanza id attribute to match. - * (String) from - The stanza from attribute to match. - * (String) options - The handler options - * - * Returns: - * A reference to the handler that can be used to remove it. - */ - }, { - key: "addHandler", - value: function addHandler(handler, ns, name, type, id, from, options) { - var hand = new Handler(handler, ns, name, type, id, from, options); - this.addHandlers.push(hand); - return hand; +function _getKeyPrefix(options, defaultConfig) { + var keyPrefix = options.name + '/'; + if (options.storeName !== defaultConfig.storeName) { + keyPrefix += options.storeName + '/'; + } + return keyPrefix; +} + +// Check if localStorage throws when saving an item +function checkIfLocalStorageThrows() { + var localStorageTestKey = '_localforage_support_test'; + try { + localStorage.setItem(localStorageTestKey, true); + localStorage.removeItem(localStorageTestKey); + return false; + } catch (e) { + return true; + } +} + +// Check if localStorage is usable and allows to save an item +// This method checks if localStorage is usable in Safari Private Browsing +// mode, or in any other case where the available quota for localStorage +// is 0 and there wasn't any saved items yet. +function _isLocalStorageUsable() { + return !checkIfLocalStorageThrows() || localStorage.length > 0; +} + +// Config the localStorage backend, using options set in the config. +function localstorage_initStorage(options) { + var self = this; + var dbInfo = {}; + if (options) { + for (var i in options) { + dbInfo[i] = options[i]; } + } + dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig); + if (!_isLocalStorageUsable()) { + return utils_promise.reject(); + } + self._dbInfo = dbInfo; + dbInfo.serializer = serializer; + return utils_promise.resolve(); +} - /** Function: deleteHandler - * Delete a stanza handler for a connection. - * - * This function removes a stanza handler from the connection. The - * handRef parameter is *not* the function passed to addHandler(), - * but is the reference returned from addHandler(). - * - * Parameters: - * (Handler) handRef - The handler reference. - */ - }, { - key: "deleteHandler", - value: function deleteHandler(handRef) { - // this must be done in the Idle loop so that we don't change - // the handlers during iteration - this.removeHandlers.push(handRef); - // If a handler is being deleted while it is being added, - // prevent it from getting added - var i = this.addHandlers.indexOf(handRef); - if (i >= 0) { - this.addHandlers.splice(i, 1); +// Remove all keys from the datastore, effectively destroying all data in +// the app's key/value store! +function localstorage_clear(callback) { + var self = this; + var promise = self.ready().then(function () { + var keyPrefix = self._dbInfo.keyPrefix; + for (var i = localStorage.length - 1; i >= 0; i--) { + var key = localStorage.key(i); + if (key.indexOf(keyPrefix) === 0) { + localStorage.removeItem(key); } } + }); + utils_executeCallback(promise, callback); + return promise; +} - /** Function: registerSASLMechanisms - * - * Register the SASL mechanisms which will be supported by this instance of - * Strophe.Connection (i.e. which this XMPP client will support). - * - * Parameters: - * (Array) mechanisms - Array of objects with Strophe.SASLMechanism prototypes - * - */ - }, { - key: "registerSASLMechanisms", - value: function registerSASLMechanisms(mechanisms) { - var _this5 = this; - this.mechanisms = {}; - mechanisms = mechanisms || [Strophe.SASLAnonymous, Strophe.SASLExternal, Strophe.SASLOAuthBearer, Strophe.SASLXOAuth2, Strophe.SASLPlain, Strophe.SASLSHA1, Strophe.SASLSHA256, Strophe.SASLSHA384, Strophe.SASLSHA512]; - mechanisms.forEach(function (m) { - return _this5.registerSASLMechanism(m); - }); - } +// Retrieve an item from the store. Unlike the original async_storage +// library in Gaia, we don't modify return values at all. If a key's value +// is `undefined`, we pass that value to the callback function. +function localstorage_getItem(key, callback) { + var self = this; + key = normalizeKey(key); + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + var result = localStorage.getItem(dbInfo.keyPrefix + key); - /** Function: registerSASLMechanism - * - * Register a single SASL mechanism, to be supported by this client. - * - * Parameters: - * (Object) mechanism - Object with a Strophe.SASLMechanism prototype - * - */ - }, { - key: "registerSASLMechanism", - value: function registerSASLMechanism(Mechanism) { - var mechanism = new Mechanism(); - this.mechanisms[mechanism.mechname] = mechanism; + // If a result was found, parse it from the serialized + // string into a JS object. If result isn't truthy, the key + // is likely undefined and we'll pass it straight to the + // callback. + if (result) { + result = dbInfo.serializer.deserialize(result); } + return result; + }); + utils_executeCallback(promise, callback); + return promise; +} - /** Function: disconnect - * Start the graceful disconnection process. - * - * This function starts the disconnection process. This process starts - * by sending unavailable presence and sending BOSH body of type - * terminate. A timeout handler makes sure that disconnection happens - * even if the BOSH server does not respond. - * If the Connection object isn't connected, at least tries to abort all pending requests - * so the connection object won't generate successful requests (which were already opened). - * - * The user supplied connection callback will be notified of the - * progress as this process happens. - * - * Parameters: - * (String) reason - The reason the disconnect is occuring. - */ - }, { - key: "disconnect", - value: function disconnect(reason) { - this._changeConnectStatus(Status.DISCONNECTING, reason); - if (reason) { - Strophe.warn('Disconnect was called because: ' + reason); - } else { - Strophe.info('Disconnect was called'); +// Iterate over all items in the store. +function localstorage_iterate(iterator, callback) { + var self = this; + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + var keyPrefix = dbInfo.keyPrefix; + var keyPrefixLength = keyPrefix.length; + var length = localStorage.length; + + // We use a dedicated iterator instead of the `i` variable below + // so other keys we fetch in localStorage aren't counted in + // the `iterationNumber` argument passed to the `iterate()` + // callback. + // + // See: github.com/mozilla/localForage/pull/435#discussion_r38061530 + var iterationNumber = 1; + for (var i = 0; i < length; i++) { + var key = localStorage.key(i); + if (key.indexOf(keyPrefix) !== 0) { + continue; } - if (this.connected) { - var pres = false; - this.disconnecting = true; - if (this.authenticated) { - pres = $pres({ - 'xmlns': Strophe.NS.CLIENT, - 'type': 'unavailable' - }); - } - // setup timeout handler - this._disconnectTimeout = this._addSysTimedHandler(this.disconnection_timeout, this._onDisconnectTimeout.bind(this)); - this._proto._disconnect(pres); - } else { - Strophe.warn('Disconnect was called before Strophe connected to the server'); - this._proto._abortAllRequests(); - this._doDisconnect(); - } - } + var value = localStorage.getItem(key); - /** PrivateFunction: _changeConnectStatus - * _Private_ helper function that makes sure plugins and the user's - * callback are notified of connection status changes. - * - * Parameters: - * (Integer) status - the new connection status, one of the values - * in Strophe.Status - * (String) condition - the error condition or null - * (XMLElement) elem - The triggering stanza. - */ - }, { - key: "_changeConnectStatus", - value: function _changeConnectStatus(status, condition, elem) { - // notify all plugins listening for status changes - for (var k in Strophe._connectionPlugins) { - if (Object.prototype.hasOwnProperty.call(Strophe._connectionPlugins, k)) { - var plugin = this[k]; - if (plugin.statusChanged) { - try { - plugin.statusChanged(status, condition); - } catch (err) { - Strophe.error("".concat(k, " plugin caused an exception changing status: ").concat(err)); - } - } - } + // If a result was found, parse it from the serialized + // string into a JS object. If result isn't truthy, the + // key is likely undefined and we'll pass it straight + // to the iterator. + if (value) { + value = dbInfo.serializer.deserialize(value); } - // notify the user's callback - if (this.connect_callback) { - try { - this.connect_callback(status, condition, elem); - } catch (e) { - Strophe._handleError(e); - Strophe.error("User connection callback caused an exception: ".concat(e)); - } + value = iterator(value, key.substring(keyPrefixLength), iterationNumber++); + if (value !== void 0) { + return value; } } + }); + utils_executeCallback(promise, callback); + return promise; +} - /** PrivateFunction: _doDisconnect - * _Private_ function to disconnect. - * - * This is the last piece of the disconnection logic. This resets the - * connection and alerts the user's connection callback. - */ - }, { - key: "_doDisconnect", - value: function _doDisconnect(condition) { - if (typeof this._idleTimeout === 'number') { - clearTimeout(this._idleTimeout); - } +// Same as localStorage's key() method, except takes a callback. +function localstorage_key(n, callback) { + var self = this; + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + var result; + try { + result = localStorage.key(n); + } catch (error) { + result = null; + } - // Cancel Disconnect Timeout - if (this._disconnectTimeout !== null) { - this.deleteTimedHandler(this._disconnectTimeout); - this._disconnectTimeout = null; + // Remove the prefix from the key, if a key is found. + if (result) { + result = result.substring(dbInfo.keyPrefix.length); + } + return result; + }); + utils_executeCallback(promise, callback); + return promise; +} +function localstorage_keys(callback) { + var self = this; + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + var length = localStorage.length; + var keys = []; + for (var i = 0; i < length; i++) { + var itemKey = localStorage.key(i); + if (itemKey.indexOf(dbInfo.keyPrefix) === 0) { + keys.push(itemKey.substring(dbInfo.keyPrefix.length)); } - Strophe.debug('_doDisconnect was called'); - this._proto._doDisconnect(); - this.authenticated = false; - this.disconnecting = false; - this.restored = false; + } + return keys; + }); + utils_executeCallback(promise, callback); + return promise; +} - // delete handlers - this.handlers = []; - this.timedHandlers = []; - this.removeTimeds = []; - this.removeHandlers = []; - this.addTimeds = []; - this.addHandlers = []; +// Supply the number of keys in the datastore to the callback function. +function localstorage_length(callback) { + var self = this; + var promise = self.keys().then(function (keys) { + return keys.length; + }); + utils_executeCallback(promise, callback); + return promise; +} - // tell the parent we disconnected - this._changeConnectStatus(Status.DISCONNECTED, condition); - this.connected = false; +// Remove an item from the store, nice and simple. +function localstorage_removeItem(key, callback) { + var self = this; + key = normalizeKey(key); + var promise = self.ready().then(function () { + var dbInfo = self._dbInfo; + localStorage.removeItem(dbInfo.keyPrefix + key); + }); + utils_executeCallback(promise, callback); + return promise; +} + +// Set a key's value and run an optional callback once the value is set. +// Unlike Gaia's implementation, the callback function is passed the value, +// in case you want to operate on that value only after you're sure it +// saved, or something like that. +function localstorage_setItem(key, value, callback) { + var self = this; + key = normalizeKey(key); + var promise = self.ready().then(function () { + // Convert undefined values to null. + // https://github.com/mozilla/localForage/pull/42 + if (value === undefined) { + value = null; } - /** PrivateFunction: _dataRecv - * _Private_ handler to processes incoming data from the the connection. - * - * Except for _connect_cb handling the initial connection request, - * this function handles the incoming data for all requests. This - * function also fires stanza handlers that match each incoming - * stanza. - * - * Parameters: - * (Strophe.Request) req - The request that has data ready. - * (string) req - The stanza a raw string (optiona). - */ - }, { - key: "_dataRecv", - value: function _dataRecv(req, raw) { - var _this6 = this; - var elem = this._proto._reqToData(req); - if (elem === null) { - return; - } - if (this.xmlInput !== Strophe.Connection.prototype.xmlInput) { - if (elem.nodeName === this._proto.strip && elem.childNodes.length) { - this.xmlInput(elem.childNodes[0]); + // Save the original value to pass to the callback. + var originalValue = value; + return new utils_promise(function (resolve, reject) { + var dbInfo = self._dbInfo; + dbInfo.serializer.serialize(value, function (value, error) { + if (error) { + reject(error); } else { - this.xmlInput(elem); + try { + localStorage.setItem(dbInfo.keyPrefix + key, value); + resolve(originalValue); + } catch (e) { + // localStorage capacity exceeded. + // TODO: Make this a specific error/event. + if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') { + reject(e); + } + reject(e); + } } + }); + }); + }); + utils_executeCallback(promise, callback); + return promise; +} +function localstorage_dropInstance(options, callback) { + callback = getCallback.apply(this, arguments); + options = typeof options !== 'function' && options || {}; + if (!options.name) { + var currentConfig = this.config(); + options.name = options.name || currentConfig.name; + options.storeName = options.storeName || currentConfig.storeName; + } + var self = this; + var promise; + if (!options.name) { + promise = utils_promise.reject('Invalid arguments'); + } else { + promise = new utils_promise(function (resolve) { + if (!options.storeName) { + resolve("".concat(options.name, "/")); + } else { + resolve(_getKeyPrefix(options, self._defaultConfig)); } - if (this.rawInput !== Strophe.Connection.prototype.rawInput) { - if (raw) { - this.rawInput(raw); - } else { - this.rawInput(Strophe.serialize(elem)); + }).then(function (keyPrefix) { + for (var i = localStorage.length - 1; i >= 0; i--) { + var key = localStorage.key(i); + if (key.indexOf(keyPrefix) === 0) { + localStorage.removeItem(key); } } + }); + } + utils_executeCallback(promise, callback); + return promise; +} +var localStorageWrapper = { + _driver: 'localStorageWrapper', + _initStorage: localstorage_initStorage, + _support: utils_isLocalStorageValid(), + iterate: localstorage_iterate, + getItem: localstorage_getItem, + setItem: localstorage_setItem, + removeItem: localstorage_removeItem, + clear: localstorage_clear, + length: localstorage_length, + key: localstorage_key, + keys: localstorage_keys, + dropInstance: localstorage_dropInstance +}; +/* harmony default export */ const localstorage = (localStorageWrapper); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/includes.js +var sameValue = function sameValue(x, y) { + return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y); +}; +var includes = function includes(array, searchElement) { + var len = array.length; + var i = 0; + while (i < len) { + if (sameValue(array[i], searchElement)) { + return true; + } + i++; + } + return false; +}; +/* harmony default export */ const utils_includes = (includes); +;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/isArray.js +var isArray_isArray = Array.isArray || function (arg) { + return Object.prototype.toString.call(arg) === '[object Array]'; +}; +/* harmony default export */ const utils_isArray = (isArray_isArray); +;// CONCATENATED MODULE: ./node_modules/localforage/src/localforage.js +function localforage_typeof(obj) { + "@babel/helpers - typeof"; - // remove handlers scheduled for deletion - while (this.removeHandlers.length > 0) { - var hand = this.removeHandlers.pop(); - var i = this.handlers.indexOf(hand); - if (i >= 0) { - this.handlers.splice(i, 1); - } - } + return localforage_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, localforage_typeof(obj); +} +function localforage_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function localforage_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, localforage_toPropertyKey(descriptor.key), descriptor); + } +} +function localforage_createClass(Constructor, protoProps, staticProps) { + if (protoProps) localforage_defineProperties(Constructor.prototype, protoProps); + if (staticProps) localforage_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function localforage_toPropertyKey(arg) { + var key = localforage_toPrimitive(arg, "string"); + return localforage_typeof(key) === "symbol" ? key : String(key); +} +function localforage_toPrimitive(input, hint) { + if (localforage_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (localforage_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} - // add handlers scheduled for addition - while (this.addHandlers.length > 0) { - this.handlers.push(this.addHandlers.pop()); - } - // handle graceful disconnect - if (this.disconnecting && this._proto._emptyQueue()) { - this._doDisconnect(); - return; - } - var type = elem.getAttribute('type'); - if (type !== null && type === 'terminate') { - // Don't process stanzas that come in after disconnect - if (this.disconnecting) { - return; - } - // an error occurred - var cond = elem.getAttribute('condition'); - var conflict = elem.getElementsByTagName('conflict'); - if (cond !== null) { - if (cond === 'remote-stream-error' && conflict.length > 0) { - cond = 'conflict'; - } - this._changeConnectStatus(Status.CONNFAIL, cond); - } else { - this._changeConnectStatus(Status.CONNFAIL, Strophe.ErrorCondition.UNKOWN_REASON); - } - this._doDisconnect(cond); - return; - } - // send each incoming stanza through the handler chain - Strophe.forEachChild(elem, null, function (child) { - var matches = []; - _this6.handlers = _this6.handlers.reduce(function (handlers, handler) { - try { - if (handler.isMatch(child) && (_this6.authenticated || !handler.user)) { - if (handler.run(child)) { - handlers.push(handler); - } - matches.push(handler); - } else { - handlers.push(handler); - } - } catch (e) { - // if the handler throws an exception, we consider it as false - Strophe.warn('Removing Strophe handlers due to uncaught exception: ' + e.message); - } - return handlers; - }, []); - // If no handler was fired for an incoming IQ with type="set", - // then we return an IQ error stanza with service-unavailable. - if (!matches.length && _this6.iqFallbackHandler.isMatch(child)) { - _this6.iqFallbackHandler.run(child); - } - }); - } - /** PrivateFunction: _connect_cb - * _Private_ handler for initial connection request. - * - * This handler is used to process the initial connection request - * response from the BOSH server. It is used to set up authentication - * handlers and start the authentication process. - * - * SASL authentication will be attempted if available, otherwise - * the code will fall back to legacy authentication. - * - * Parameters: - * (Strophe.Request) req - The current request. - * (Function) _callback - low level (xmpp) connect callback function. - * Useful for plugins with their own xmpp connect callback (when they - * want to do something special). - */ - }, { - key: "_connect_cb", - value: function _connect_cb(req, _callback, raw) { - var _this7 = this; - Strophe.debug('_connect_cb was called'); - this.connected = true; - var bodyWrap; - try { - bodyWrap = this._proto._reqToData(req); - } catch (e) { - if (e.name !== Strophe.ErrorCondition.BAD_FORMAT) { - throw e; + + + + + +// Drivers are stored here when `defineDriver()` is called. +// They are shared across all instances of localForage. +var DefinedDrivers = {}; +var DriverSupport = {}; +var DefaultDrivers = { + INDEXEDDB: indexeddb, + WEBSQL: websql, + LOCALSTORAGE: localstorage +}; +var DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver]; +var OptionalDriverMethods = ['dropInstance']; +var LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods); +var DefaultConfig = { + description: '', + driver: DefaultDriverOrder.slice(), + name: 'localforage', + // Default DB size is _JUST UNDER_ 5MB, as it's the highest size + // we can use without a prompt. + size: 4980736, + storeName: 'keyvaluepairs', + version: 1.0 +}; +function callWhenReady(localForageInstance, libraryMethod) { + localForageInstance[libraryMethod] = function () { + var _args = arguments; + return localForageInstance.ready().then(function () { + return localForageInstance[libraryMethod].apply(localForageInstance, _args); + }); + }; +} +function extend() { + for (var i = 1; i < arguments.length; i++) { + var arg = arguments[i]; + if (arg) { + for (var key in arg) { + if (arg.hasOwnProperty(key)) { + if (utils_isArray(arg[key])) { + arguments[0][key] = arg[key].slice(); + } else { + arguments[0][key] = arg[key]; + } } - this._changeConnectStatus(Status.CONNFAIL, Strophe.ErrorCondition.BAD_FORMAT); - this._doDisconnect(Strophe.ErrorCondition.BAD_FORMAT); - } - if (!bodyWrap) { - return; } - if (this.xmlInput !== Strophe.Connection.prototype.xmlInput) { - if (bodyWrap.nodeName === this._proto.strip && bodyWrap.childNodes.length) { - this.xmlInput(bodyWrap.childNodes[0]); - } else { - this.xmlInput(bodyWrap); + } + } + return arguments[0]; +} +var LocalForage = /*#__PURE__*/function () { + function LocalForage(options) { + localforage_classCallCheck(this, LocalForage); + for (var driverTypeKey in DefaultDrivers) { + if (DefaultDrivers.hasOwnProperty(driverTypeKey)) { + var driver = DefaultDrivers[driverTypeKey]; + var driverName = driver._driver; + this[driverTypeKey] = driverName; + if (!DefinedDrivers[driverName]) { + // we don't need to wait for the promise, + // since the default drivers can be defined + // in a blocking manner + this.defineDriver(driver); } } - if (this.rawInput !== Strophe.Connection.prototype.rawInput) { - if (raw) { - this.rawInput(raw); - } else { - this.rawInput(Strophe.serialize(bodyWrap)); + } + this._defaultConfig = extend({}, DefaultConfig); + this._config = extend({}, this._defaultConfig, options); + this._driverSet = null; + this._initDriver = null; + this._ready = false; + this._dbInfo = null; + this._wrapLibraryMethodsWithReady(); + this.setDriver(this._config.driver).catch(function () {}); + } + + // Set any config values for localForage; can be called anytime before + // the first API call (e.g. `getItem`, `setItem`). + // We loop through options so we don't overwrite existing config + // values. + localforage_createClass(LocalForage, [{ + key: "config", + value: function config(options) { + // If the options argument is an object, we use it to set values. + // Otherwise, we return either a specified config value or all + // config values. + if (localforage_typeof(options) === 'object') { + // If localforage is ready and fully initialized, we can't set + // any new configuration values. Instead, we return an error. + if (this._ready) { + return new Error("Can't call config() after localforage " + 'has been used.'); + } + for (var i in options) { + if (i === 'storeName') { + options[i] = options[i].replace(/\W/g, '_'); + } + if (i === 'version' && typeof options[i] !== 'number') { + return new Error('Database version must be a number.'); + } + this._config[i] = options[i]; } - } - var conncheck = this._proto._connect_cb(bodyWrap); - if (conncheck === Status.CONNFAIL) { - return; - } - // Check for the stream:features tag - var hasFeatures; - if (bodyWrap.getElementsByTagNameNS) { - hasFeatures = bodyWrap.getElementsByTagNameNS(Strophe.NS.STREAM, 'features').length > 0; - } else { - hasFeatures = bodyWrap.getElementsByTagName('stream:features').length > 0 || bodyWrap.getElementsByTagName('features').length > 0; - } - if (!hasFeatures) { - this._proto._no_auth_received(_callback); - return; - } - var matched = Array.from(bodyWrap.getElementsByTagName('mechanism')).map(function (m) { - return _this7.mechanisms[m.textContent]; - }).filter(function (m) { - return m; - }); - if (matched.length === 0) { - if (bodyWrap.getElementsByTagName('auth').length === 0) { - // There are no matching SASL mechanisms and also no legacy - // auth available. - this._proto._no_auth_received(_callback); - return; + // after all config options are set and + // the driver option is used, try setting it + if ('driver' in options && options.driver) { + return this.setDriver(this._config.driver); } - } - if (this.do_authentication !== false) { - this.authenticate(matched); + return true; + } else if (typeof options === 'string') { + return this._config[options]; + } else { + return this._config; } } - /** Function: sortMechanismsByPriority - * - * Sorts an array of objects with prototype SASLMechanism according to - * their priorities. - * - * Parameters: - * (Array) mechanisms - Array of SASL mechanisms. - * - */ - // eslint-disable-next-line class-methods-use-this + // Used to define a custom driver, shared across all instances of + // localForage. }, { - key: "sortMechanismsByPriority", - value: function sortMechanismsByPriority(mechanisms) { - // Sorting mechanisms according to priority. - for (var i = 0; i < mechanisms.length - 1; ++i) { - var higher = i; - for (var j = i + 1; j < mechanisms.length; ++j) { - if (mechanisms[j].priority > mechanisms[higher].priority) { - higher = j; + key: "defineDriver", + value: function defineDriver(driverObject, callback, errorCallback) { + var promise = new utils_promise(function (resolve, reject) { + try { + var driverName = driverObject._driver; + var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver'); + + // A driver name should be defined and not overlap with the + // library-defined, default drivers. + if (!driverObject._driver) { + reject(complianceError); + return; } + var driverMethods = LibraryMethods.concat('_initStorage'); + for (var i = 0, len = driverMethods.length; i < len; i++) { + var driverMethodName = driverMethods[i]; + + // when the property is there, + // it should be a method even when optional + var isRequired = !utils_includes(OptionalDriverMethods, driverMethodName); + if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') { + reject(complianceError); + return; + } + } + var configureMissingMethods = function configureMissingMethods() { + var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) { + return function () { + var error = new Error("Method ".concat(methodName, " is not implemented by the current driver")); + var promise = utils_promise.reject(error); + utils_executeCallback(promise, arguments[arguments.length - 1]); + return promise; + }; + }; + for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) { + var optionalDriverMethod = OptionalDriverMethods[_i]; + if (!driverObject[optionalDriverMethod]) { + driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod); + } + } + }; + configureMissingMethods(); + var setDriverSupport = function setDriverSupport(support) { + if (DefinedDrivers[driverName]) { + console.info("Redefining LocalForage driver: ".concat(driverName)); + } + DefinedDrivers[driverName] = driverObject; + DriverSupport[driverName] = support; + // don't use a then, so that we can define + // drivers that have simple _support methods + // in a blocking manner + resolve(); + }; + if ('_support' in driverObject) { + if (driverObject._support && typeof driverObject._support === 'function') { + driverObject._support().then(setDriverSupport, reject); + } else { + setDriverSupport(!!driverObject._support); + } + } else { + setDriverSupport(true); + } + } catch (e) { + reject(e); } - if (higher !== i) { - var swap = mechanisms[i]; - mechanisms[i] = mechanisms[higher]; - mechanisms[higher] = swap; - } - } - return mechanisms; + }); + utils_executeTwoCallbacks(promise, callback, errorCallback); + return promise; } - - /** Function: authenticate - * Set up authentication - * - * Continues the initial connection request by setting up authentication - * handlers and starting the authentication process. - * - * SASL authentication will be attempted if available, otherwise - * the code will fall back to legacy authentication. - * - * Parameters: - * (Array) matched - Array of SASL mechanisms supported. - * - */ }, { - key: "authenticate", - value: function authenticate(matched) { - if (!this._attemptSASLAuth(matched)) { - this._attemptLegacyAuth(); - } + key: "driver", + value: function driver() { + return this._driver || null; } - - /** PrivateFunction: _attemptSASLAuth - * - * Iterate through an array of SASL mechanisms and attempt authentication - * with the highest priority (enabled) mechanism. - * - * Parameters: - * (Array) mechanisms - Array of SASL mechanisms. - * - * Returns: - * (Boolean) mechanism_found - true or false, depending on whether a - * valid SASL mechanism was found with which authentication could be - * started. - */ }, { - key: "_attemptSASLAuth", - value: function _attemptSASLAuth(mechanisms) { - mechanisms = this.sortMechanismsByPriority(mechanisms || []); - var mechanism_found = false; - for (var i = 0; i < mechanisms.length; ++i) { - if (!mechanisms[i].test(this)) { - continue; - } - this._sasl_success_handler = this._addSysHandler(this._sasl_success_cb.bind(this), null, 'success', null, null); - this._sasl_failure_handler = this._addSysHandler(this._sasl_failure_cb.bind(this), null, 'failure', null, null); - this._sasl_challenge_handler = this._addSysHandler(this._sasl_challenge_cb.bind(this), null, 'challenge', null, null); - this._sasl_mechanism = mechanisms[i]; - this._sasl_mechanism.onStart(this); - var request_auth_exchange = $build('auth', { - 'xmlns': Strophe.NS.SASL, - 'mechanism': this._sasl_mechanism.mechname - }); - if (this._sasl_mechanism.isClientFirst) { - var response = this._sasl_mechanism.clientChallenge(this); - request_auth_exchange.t((0,abab.btoa)(response)); - } - this.send(request_auth_exchange.tree()); - mechanism_found = true; - break; - } - return mechanism_found; + key: "getDriver", + value: function getDriver(driverName, callback, errorCallback) { + var getDriverPromise = DefinedDrivers[driverName] ? utils_promise.resolve(DefinedDrivers[driverName]) : utils_promise.reject(new Error('Driver not found.')); + utils_executeTwoCallbacks(getDriverPromise, callback, errorCallback); + return getDriverPromise; } - - /** PrivateFunction: _sasl_challenge_cb - * _Private_ handler for the SASL challenge - * - */ - }, { - key: "_sasl_challenge_cb", - value: function () { - var _sasl_challenge_cb2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(elem) { - var challenge, response, stanza; - return _regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - challenge = (0,abab.atob)(getText(elem)); - _context.next = 3; - return this._sasl_mechanism.onChallenge(this, challenge); - case 3: - response = _context.sent; - stanza = $build('response', { - 'xmlns': Strophe.NS.SASL - }); - if (response !== '') { - stanza.t((0,abab.btoa)(response)); - } - this.send(stanza.tree()); - return _context.abrupt("return", true); - case 8: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function _sasl_challenge_cb(_x) { - return _sasl_challenge_cb2.apply(this, arguments); - } - return _sasl_challenge_cb; - }() - /** PrivateFunction: _attemptLegacyAuth - * - * Attempt legacy (i.e. non-SASL) authentication. - */ }, { - key: "_attemptLegacyAuth", - value: function _attemptLegacyAuth() { - if (Strophe.getNodeFromJid(this.jid) === null) { - // we don't have a node, which is required for non-anonymous - // client connections - this._changeConnectStatus(Status.CONNFAIL, Strophe.ErrorCondition.MISSING_JID_NODE); - this.disconnect(Strophe.ErrorCondition.MISSING_JID_NODE); - } else { - // Fall back to legacy authentication - this._changeConnectStatus(Status.AUTHENTICATING, null); - this._addSysHandler(this._onLegacyAuthIQResult.bind(this), null, null, null, '_auth_1'); - this.send($iq({ - 'type': 'get', - 'to': this.domain, - 'id': '_auth_1' - }).c('query', { - xmlns: Strophe.NS.AUTH - }).c('username', {}).t(Strophe.getNodeFromJid(this.jid)).tree()); - } + key: "getSerializer", + value: function getSerializer(callback) { + var serializerPromise = utils_promise.resolve(serializer); + utils_executeTwoCallbacks(serializerPromise, callback); + return serializerPromise; } - - /** PrivateFunction: _onLegacyAuthIQResult - * _Private_ handler for legacy authentication. - * - * This handler is called in response to the initial - * for legacy authentication. It builds an authentication and - * sends it, creating a handler (calling back to _auth2_cb()) to - * handle the result - * - * Parameters: - * (XMLElement) elem - The stanza that triggered the callback. - * - * Returns: - * false to remove the handler. - */ - // eslint-disable-next-line no-unused-vars }, { - key: "_onLegacyAuthIQResult", - value: function _onLegacyAuthIQResult(elem) { - // build plaintext auth iq - var iq = $iq({ - type: 'set', - id: '_auth_2' - }).c('query', { - xmlns: Strophe.NS.AUTH - }).c('username', {}).t(Strophe.getNodeFromJid(this.jid)).up().c('password').t(this.pass); - if (!Strophe.getResourceFromJid(this.jid)) { - // since the user has not supplied a resource, we pick - // a default one here. unlike other auth methods, the server - // cannot do this for us. - this.jid = Strophe.getBareJidFromJid(this.jid) + '/strophe'; - } - iq.up().c('resource', {}).t(Strophe.getResourceFromJid(this.jid)); - this._addSysHandler(this._auth2_cb.bind(this), null, null, null, '_auth_2'); - this.send(iq.tree()); - return false; + key: "ready", + value: function ready(callback) { + var self = this; + var promise = self._driverSet.then(function () { + if (self._ready === null) { + self._ready = self._initDriver(); + } + return self._ready; + }); + utils_executeTwoCallbacks(promise, callback, callback); + return promise; } - - /** PrivateFunction: _sasl_success_cb - * _Private_ handler for succesful SASL authentication. - * - * Parameters: - * (XMLElement) elem - The matching stanza. - * - * Returns: - * false to remove the handler. - */ }, { - key: "_sasl_success_cb", - value: function _sasl_success_cb(elem) { - var _this8 = this; - if (this._sasl_data['server-signature']) { - var serverSignature; - var success = (0,abab.atob)(getText(elem)); - var attribMatch = /([a-z]+)=([^,]+)(,|$)/; - var matches = success.match(attribMatch); - if (matches[1] === 'v') { - serverSignature = matches[2]; - } - if (serverSignature !== this._sasl_data['server-signature']) { - // remove old handlers - this.deleteHandler(this._sasl_failure_handler); - this._sasl_failure_handler = null; - if (this._sasl_challenge_handler) { - this.deleteHandler(this._sasl_challenge_handler); - this._sasl_challenge_handler = null; - } - this._sasl_data = {}; - return this._sasl_failure_cb(null); - } + key: "setDriver", + value: function setDriver(drivers, callback, errorCallback) { + var self = this; + if (!utils_isArray(drivers)) { + drivers = [drivers]; } - Strophe.info('SASL authentication succeeded.'); - if (this._sasl_data.keys) { - this.scram_keys = this._sasl_data.keys; + var supportedDrivers = this._getSupportedDrivers(drivers); + function setDriverToConfig() { + self._config.driver = self.driver(); } - if (this._sasl_mechanism) { - this._sasl_mechanism.onSuccess(); + function extendSelfWithDriver(driver) { + self._extend(driver); + setDriverToConfig(); + self._ready = self._initStorage(self._config); + return self._ready; } - // remove old handlers - this.deleteHandler(this._sasl_failure_handler); - this._sasl_failure_handler = null; - if (this._sasl_challenge_handler) { - this.deleteHandler(this._sasl_challenge_handler); - this._sasl_challenge_handler = null; + function initDriver(supportedDrivers) { + return function () { + var currentDriverIndex = 0; + function driverPromiseLoop() { + while (currentDriverIndex < supportedDrivers.length) { + var driverName = supportedDrivers[currentDriverIndex]; + currentDriverIndex++; + self._dbInfo = null; + self._ready = null; + return self.getDriver(driverName).then(extendSelfWithDriver).catch(driverPromiseLoop); + } + setDriverToConfig(); + var error = new Error('No available storage method found.'); + self._driverSet = utils_promise.reject(error); + return self._driverSet; + } + return driverPromiseLoop(); + }; } - var streamfeature_handlers = []; - var wrapper = function wrapper(handlers, elem) { - while (handlers.length) { - _this8.deleteHandler(handlers.pop()); - } - _this8._onStreamFeaturesAfterSASL(elem); - return false; - }; - streamfeature_handlers.push(this._addSysHandler(function (elem) { - return wrapper(streamfeature_handlers, elem); - }, null, 'stream:features', null, null)); - streamfeature_handlers.push(this._addSysHandler(function (elem) { - return wrapper(streamfeature_handlers, elem); - }, Strophe.NS.STREAM, 'features', null, null)); - // we must send an xmpp:restart now - this._sendRestart(); - return false; + // There might be a driver initialization in progress + // so wait for it to finish in order to avoid a possible + // race condition to set _dbInfo + var oldDriverSetDone = this._driverSet !== null ? this._driverSet.catch(function () { + return utils_promise.resolve(); + }) : utils_promise.resolve(); + this._driverSet = oldDriverSetDone.then(function () { + var driverName = supportedDrivers[0]; + self._dbInfo = null; + self._ready = null; + return self.getDriver(driverName).then(function (driver) { + self._driver = driver._driver; + setDriverToConfig(); + self._wrapLibraryMethodsWithReady(); + self._initDriver = initDriver(supportedDrivers); + }); + }).catch(function () { + setDriverToConfig(); + var error = new Error('No available storage method found.'); + self._driverSet = utils_promise.reject(error); + return self._driverSet; + }); + utils_executeTwoCallbacks(this._driverSet, callback, errorCallback); + return this._driverSet; } - - /** PrivateFunction: _onStreamFeaturesAfterSASL - * Parameters: - * (XMLElement) elem - The matching stanza. - * - * Returns: - * false to remove the handler. - */ }, { - key: "_onStreamFeaturesAfterSASL", - value: function _onStreamFeaturesAfterSASL(elem) { - // save stream:features for future usage - this.features = elem; - for (var i = 0; i < elem.childNodes.length; i++) { - var child = elem.childNodes[i]; - if (child.nodeName === 'bind') { - this.do_bind = true; - } - if (child.nodeName === 'session') { - this.do_session = true; - } - } - if (!this.do_bind) { - this._changeConnectStatus(Status.AUTHFAIL, null); - return false; - } else if (!this.options.explicitResourceBinding) { - this.bind(); - } else { - this._changeConnectStatus(Status.BINDREQUIRED, null); - } - return false; + key: "supports", + value: function supports(driverName) { + return !!DriverSupport[driverName]; } - - /** Function: bind - * - * Sends an IQ to the XMPP server to bind a JID resource for this session. - * - * https://tools.ietf.org/html/rfc6120#section-7.5 - * - * If `explicitResourceBinding` was set to a truthy value in the options - * passed to the Strophe.Connection constructor, then this function needs - * to be called explicitly by the client author. - * - * Otherwise it'll be called automatically as soon as the XMPP server - * advertises the "urn:ietf:params:xml:ns:xmpp-bind" stream feature. - */ }, { - key: "bind", - value: function bind() { - if (!this.do_bind) { - Strophe.log(Strophe.LogLevel.INFO, "Strophe.Connection.prototype.bind called but \"do_bind\" is false"); - return; - } - this._addSysHandler(this._onResourceBindResultIQ.bind(this), null, null, null, '_bind_auth_2'); - var resource = Strophe.getResourceFromJid(this.jid); - if (resource) { - this.send($iq({ - type: 'set', - id: '_bind_auth_2' - }).c('bind', { - xmlns: Strophe.NS.BIND - }).c('resource', {}).t(resource).tree()); - } else { - this.send($iq({ - type: 'set', - id: '_bind_auth_2' - }).c('bind', { - xmlns: Strophe.NS.BIND - }).tree()); - } + key: "_extend", + value: function _extend(libraryMethodsAndProperties) { + extend(this, libraryMethodsAndProperties); } - - /** PrivateFunction: _onResourceBindIQ - * _Private_ handler for binding result and session start. - * - * Parameters: - * (XMLElement) elem - The matching stanza. - * - * Returns: - * false to remove the handler. - */ }, { - key: "_onResourceBindResultIQ", - value: function _onResourceBindResultIQ(elem) { - if (elem.getAttribute('type') === 'error') { - Strophe.warn('Resource binding failed.'); - var conflict = elem.getElementsByTagName('conflict'); - var condition; - if (conflict.length > 0) { - condition = Strophe.ErrorCondition.CONFLICT; - } - this._changeConnectStatus(Status.AUTHFAIL, condition, elem); - return false; - } - // TODO - need to grab errors - var bind = elem.getElementsByTagName('bind'); - if (bind.length > 0) { - var jidNode = bind[0].getElementsByTagName('jid'); - if (jidNode.length > 0) { - this.authenticated = true; - this.jid = getText(jidNode[0]); - if (this.do_session) { - this._establishSession(); - } else { - this._changeConnectStatus(Status.CONNECTED, null); - } + key: "_getSupportedDrivers", + value: function _getSupportedDrivers(drivers) { + var supportedDrivers = []; + for (var i = 0, len = drivers.length; i < len; i++) { + var driverName = drivers[i]; + if (this.supports(driverName)) { + supportedDrivers.push(driverName); } - } else { - Strophe.warn('Resource binding failed.'); - this._changeConnectStatus(Status.AUTHFAIL, null, elem); - return false; } + return supportedDrivers; } - - /** PrivateFunction: _establishSession - * Send IQ request to establish a session with the XMPP server. - * - * See https://xmpp.org/rfcs/rfc3921.html#session - * - * Note: The protocol for session establishment has been determined as - * unnecessary and removed in RFC-6121. - */ }, { - key: "_establishSession", - value: function _establishSession() { - if (!this.do_session) { - throw new Error("Strophe.Connection.prototype._establishSession " + "called but apparently ".concat(Strophe.NS.SESSION, " wasn't advertised by the server")); + key: "_wrapLibraryMethodsWithReady", + value: function _wrapLibraryMethodsWithReady() { + // Add a stub for each driver API method that delays the call to the + // corresponding driver method until localForage is ready. These stubs + // will be replaced by the driver methods as soon as the driver is + // loaded, so there is no performance impact. + for (var i = 0, len = LibraryMethods.length; i < len; i++) { + callWhenReady(this, LibraryMethods[i]); } - this._addSysHandler(this._onSessionResultIQ.bind(this), null, null, null, '_session_auth_2'); - this.send($iq({ - type: 'set', - id: '_session_auth_2' - }).c('session', { - xmlns: Strophe.NS.SESSION - }).tree()); } - - /** PrivateFunction: _onSessionResultIQ - * _Private_ handler for the server's IQ response to a client's session - * request. - * - * This sets Connection.authenticated to true on success, which - * starts the processing of user handlers. - * - * See https://xmpp.org/rfcs/rfc3921.html#session - * - * Note: The protocol for session establishment has been determined as - * unnecessary and removed in RFC-6121. - * - * Parameters: - * (XMLElement) elem - The matching stanza. - * - * Returns: - * false to remove the handler. - */ }, { - key: "_onSessionResultIQ", - value: function _onSessionResultIQ(elem) { - if (elem.getAttribute('type') === 'result') { - this.authenticated = true; - this._changeConnectStatus(Status.CONNECTED, null); - } else if (elem.getAttribute('type') === 'error') { - this.authenticated = false; - Strophe.warn('Session creation failed.'); - this._changeConnectStatus(Status.AUTHFAIL, null, elem); - return false; - } - return false; + key: "createInstance", + value: function createInstance(options) { + return new LocalForage(options); } + }]); + return LocalForage; +}(); // The actual localForage object that we expose as a module or via a +// global. It's extended by pulling in one of our other libraries. +/* harmony default export */ const localforage = (new LocalForage()); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_assignMergeValue.js - /** PrivateFunction: _sasl_failure_cb - * _Private_ handler for SASL authentication failure. - * - * Parameters: - * (XMLElement) elem - The matching stanza. - * - * Returns: - * false to remove the handler. - */ - }, { - key: "_sasl_failure_cb", - value: function _sasl_failure_cb(elem) { - // delete unneeded handlers - if (this._sasl_success_handler) { - this.deleteHandler(this._sasl_success_handler); - this._sasl_success_handler = null; - } - if (this._sasl_challenge_handler) { - this.deleteHandler(this._sasl_challenge_handler); - this._sasl_challenge_handler = null; - } - if (this._sasl_mechanism) this._sasl_mechanism.onFailure(); - this._changeConnectStatus(Status.AUTHFAIL, null, elem); - return false; - } - /** PrivateFunction: _auth2_cb - * _Private_ handler to finish legacy authentication. - * - * This handler is called when the result from the jabber:iq:auth - * stanza is returned. - * - * Parameters: - * (XMLElement) elem - The stanza that triggered the callback. - * - * Returns: - * false to remove the handler. - */ - }, { - key: "_auth2_cb", - value: function _auth2_cb(elem) { - if (elem.getAttribute('type') === 'result') { - this.authenticated = true; - this._changeConnectStatus(Status.CONNECTED, null); - } else if (elem.getAttribute('type') === 'error') { - this._changeConnectStatus(Status.AUTHFAIL, null, elem); - this.disconnect('authentication failed'); - } - return false; - } - /** PrivateFunction: _addSysTimedHandler - * _Private_ function to add a system level timed handler. - * - * This function is used to add a Strophe.TimedHandler for the - * library code. System timed handlers are allowed to run before - * authentication is complete. - * - * Parameters: - * (Integer) period - The period of the handler. - * (Function) handler - The callback function. - */ - }, { - key: "_addSysTimedHandler", - value: function _addSysTimedHandler(period, handler) { - var thand = new TimedHandler(period, handler); - thand.user = false; - this.addTimeds.push(thand); - return thand; - } +/** + * This function is like `assignValue` except that it doesn't assign + * `undefined` values. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignMergeValue(object, key, value) { + if (value !== undefined && !lodash_es_eq(object[key], value) || value === undefined && !(key in object)) { + _baseAssignValue(object, key, value); + } +} +/* harmony default export */ const _assignMergeValue = (assignMergeValue); +;// CONCATENATED MODULE: ./node_modules/lodash-es/isArrayLikeObject.js - /** PrivateFunction: _addSysHandler - * _Private_ function to add a system level stanza handler. - * - * This function is used to add a Handler for the - * library code. System stanza handlers are allowed to run before - * authentication is complete. - * - * Parameters: - * (Function) handler - The callback function. - * (String) ns - The namespace to match. - * (String) name - The stanza name to match. - * (String) type - The stanza type attribute to match. - * (String) id - The stanza id attribute to match. - */ - }, { - key: "_addSysHandler", - value: function _addSysHandler(handler, ns, name, type, id) { - var hand = new Handler(handler, ns, name, type, id); - hand.user = false; - this.addHandlers.push(hand); - return hand; - } - - /** PrivateFunction: _onDisconnectTimeout - * _Private_ timeout handler for handling non-graceful disconnection. - * - * If the graceful disconnect process does not complete within the - * time allotted, this handler finishes the disconnect anyway. - * - * Returns: - * false to remove the handler. - */ - }, { - key: "_onDisconnectTimeout", - value: function _onDisconnectTimeout() { - Strophe.debug('_onDisconnectTimeout was called'); - this._changeConnectStatus(Status.CONNTIMEOUT, null); - this._proto._onDisconnectTimeout(); - // actually disconnect - this._doDisconnect(); - return false; - } - - /** PrivateFunction: _onIdle - * _Private_ handler to process events during idle cycle. - * - * This handler is called every 100ms to fire timed handlers that - * are ready and keep poll requests going. - */ - }, { - key: "_onIdle", - value: function _onIdle() { - var _this9 = this; - // add timed handlers scheduled for addition - // NOTE: we add before remove in the case a timed handler is - // added and then deleted before the next _onIdle() call. - while (this.addTimeds.length > 0) { - this.timedHandlers.push(this.addTimeds.pop()); - } - - // remove timed handlers that have been scheduled for deletion - while (this.removeTimeds.length > 0) { - var thand = this.removeTimeds.pop(); - var i = this.timedHandlers.indexOf(thand); - if (i >= 0) { - this.timedHandlers.splice(i, 1); - } - } - - // call ready timed handlers - var now = new Date().getTime(); - var newList = []; - for (var _i = 0; _i < this.timedHandlers.length; _i++) { - var _thand = this.timedHandlers[_i]; - if (this.authenticated || !_thand.user) { - var since = _thand.lastCalled + _thand.period; - if (since - now <= 0) { - if (_thand.run()) { - newList.push(_thand); - } - } else { - newList.push(_thand); - } - } - } - this.timedHandlers = newList; - clearTimeout(this._idleTimeout); - this._proto._onIdle(); - - // reactivate the timer only if connected - if (this.connected) { - this._idleTimeout = setTimeout(function () { - return _this9._onIdle(); - }, 100); - } - } - }]); - return Connection; -}(); -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl.js -function sasl_typeof(obj) { - "@babel/helpers - typeof"; - return sasl_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, sasl_typeof(obj); -} -function sasl_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } +/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ +function isArrayLikeObject(value) { + return lodash_es_isObjectLike(value) && lodash_es_isArrayLike(value); } -function sasl_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, sasl_toPropertyKey(descriptor.key), descriptor); +/* harmony default export */ const lodash_es_isArrayLikeObject = (isArrayLikeObject); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_safeGet.js +/** + * Gets the value at `key`, unless `key` is "__proto__" or "constructor". + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function safeGet(object, key) { + if (key === 'constructor' && typeof object[key] === 'function') { + return; } -} -function sasl_createClass(Constructor, protoProps, staticProps) { - if (protoProps) sasl_defineProperties(Constructor.prototype, protoProps); - if (staticProps) sasl_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function sasl_toPropertyKey(arg) { - var key = sasl_toPrimitive(arg, "string"); - return sasl_typeof(key) === "symbol" ? key : String(key); -} -function sasl_toPrimitive(input, hint) { - if (sasl_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (sasl_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); + if (key == '__proto__') { + return; } - return (hint === "string" ? String : Number)(input); + return object[key]; } -/** Class: Strophe.SASLMechanism +/* harmony default export */ const _safeGet = (safeGet); +;// CONCATENATED MODULE: ./node_modules/lodash-es/toPlainObject.js + + + +/** + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. * - * Encapsulates an SASL authentication mechanism. + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. + * @example * - * User code may override the priority for each mechanism or disable it completely. - * See for information about changing priority and for informatian on - * how to disable a mechanism. + * function Foo() { + * this.b = 2; + * } * - * By default, all mechanisms are enabled and the priorities are + * Foo.prototype.c = 3; * - * SCRAM-SHA-512 - 72 - * SCRAM-SHA-384 - 71 - * SCRAM-SHA-256 - 70 - * SCRAM-SHA-1 - 60 - * PLAIN - 50 - * OAUTHBEARER - 40 - * X-OAUTH2 - 30 - * ANONYMOUS - 20 - * EXTERNAL - 10 + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } * - * See: Strophe.Connection.addSupportedSASLMechanisms + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } */ -var SASLMechanism = /*#__PURE__*/function () { - /** - * PrivateConstructor: Strophe.SASLMechanism - * SASL auth mechanism abstraction. - * - * Parameters: - * (String) name - SASL Mechanism name. - * (Boolean) isClientFirst - If client should send response first without challenge. - * (Number) priority - Priority. - * - * Returns: - * A new Strophe.SASLMechanism object. - */ - function SASLMechanism(name, isClientFirst, priority) { - sasl_classCallCheck(this, SASLMechanism); - /** PrivateVariable: mechname - * Mechanism name. - */ - this.mechname = name; +function toPlainObject(value) { + return _copyObject(value, lodash_es_keysIn(value)); +} +/* harmony default export */ const lodash_es_toPlainObject = (toPlainObject); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseMergeDeep.js - /** PrivateVariable: isClientFirst - * If client sends response without initial server challenge. - */ - this.isClientFirst = isClientFirst; - /** Variable: priority - * Determines which is chosen for authentication (Higher is better). - * Users may override this to prioritize mechanisms differently. - * - * Example: (This will cause Strophe to choose the mechanism that the server sent first) - * - * > Strophe.SASLPlain.priority = Strophe.SASLSHA1.priority; - * - * See for a list of available mechanisms. - * - */ - this.priority = priority; - } - /** - * Function: test - * Checks if mechanism able to run. - * To disable a mechanism, make this return false; - * - * To disable plain authentication run - * > Strophe.SASLPlain.test = function() { - * > return false; - * > } - * - * See for a list of available mechanisms. - * - * Parameters: - * (Strophe.Connection) connection - Target Connection. - * - * Returns: - * (Boolean) If mechanism was able to run. - */ - // eslint-disable-next-line class-methods-use-this - sasl_createClass(SASLMechanism, [{ - key: "test", - value: function test() { - return true; - } - /** PrivateFunction: onStart - * Called before starting mechanism on some connection. - * - * Parameters: - * (Strophe.Connection) connection - Target Connection. - */ - }, { - key: "onStart", - value: function onStart(connection) { - this._connection = connection; - } - /** PrivateFunction: onChallenge - * Called by protocol implementation on incoming challenge. - * - * By deafult, if the client is expected to send data first (isClientFirst === true), - * this method is called with `challenge` as null on the first call, - * unless `clientChallenge` is overridden in the relevant subclass. - * - * Parameters: - * (Strophe.Connection) connection - Target Connection. - * (String) challenge - current challenge to handle. - * - * Returns: - * (String) Mechanism response. - */ - // eslint-disable-next-line no-unused-vars, class-methods-use-this - }, { - key: "onChallenge", - value: function onChallenge(connection, challenge) { - throw new Error('You should implement challenge handling!'); - } - /** PrivateFunction: clientChallenge - * Called by the protocol implementation if the client is expected to send - * data first in the authentication exchange (i.e. isClientFirst === true). - * - * Parameters: - * (Strophe.Connection) connection - Target Connection. - * - * Returns: - * (String) Mechanism response. - */ - }, { - key: "clientChallenge", - value: function clientChallenge(connection) { - if (!this.isClientFirst) { - throw new Error('clientChallenge should not be called if isClientFirst is false!'); - } - return this.onChallenge(connection); - } - /** PrivateFunction: onFailure - * Protocol informs mechanism implementation about SASL failure. - */ - }, { - key: "onFailure", - value: function onFailure() { - this._connection = null; - } - /** PrivateFunction: onSuccess - * Protocol informs mechanism implementation about SASL success. - */ - }, { - key: "onSuccess", - value: function onSuccess() { - this._connection = null; - } - }]); - return SASLMechanism; -}(); -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-anon.js -function sasl_anon_typeof(obj) { - "@babel/helpers - typeof"; - return sasl_anon_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, sasl_anon_typeof(obj); -} -function sasl_anon_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} -function sasl_anon_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, sasl_anon_toPropertyKey(descriptor.key), descriptor); - } -} -function sasl_anon_createClass(Constructor, protoProps, staticProps) { - if (protoProps) sasl_anon_defineProperties(Constructor.prototype, protoProps); - if (staticProps) sasl_anon_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function sasl_anon_toPropertyKey(arg) { - var key = sasl_anon_toPrimitive(arg, "string"); - return sasl_anon_typeof(key) === "symbol" ? key : String(key); -} -function sasl_anon_toPrimitive(input, hint) { - if (sasl_anon_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (sasl_anon_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); -} -function sasl_anon_inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); + + + + + + +/** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {number} srcIndex The index of `source`. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize assigned values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = _safeGet(object, key), + srcValue = _safeGet(source, key), + stacked = stack.get(srcValue); + if (stacked) { + _assignMergeValue(object, key, stacked); + return; } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) sasl_anon_setPrototypeOf(subClass, superClass); -} -function sasl_anon_setPrototypeOf(o, p) { - sasl_anon_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return sasl_anon_setPrototypeOf(o, p); -} -function sasl_anon_createSuper(Derived) { - var hasNativeReflectConstruct = sasl_anon_isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = sasl_anon_getPrototypeOf(Derived), - result; - if (hasNativeReflectConstruct) { - var NewTarget = sasl_anon_getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); + var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined; + var isCommon = newValue === undefined; + if (isCommon) { + var isArr = lodash_es_isArray(srcValue), + isBuff = !isArr && lodash_es_isBuffer(srcValue), + isTyped = !isArr && !isBuff && lodash_es_isTypedArray(srcValue); + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (lodash_es_isArray(objValue)) { + newValue = objValue; + } else if (lodash_es_isArrayLikeObject(objValue)) { + newValue = _copyArray(objValue); + } else if (isBuff) { + isCommon = false; + newValue = _cloneBuffer(srcValue, true); + } else if (isTyped) { + isCommon = false; + newValue = _cloneTypedArray(srcValue, true); + } else { + newValue = []; + } + } else if (lodash_es_isPlainObject(srcValue) || lodash_es_isArguments(srcValue)) { + newValue = objValue; + if (lodash_es_isArguments(objValue)) { + newValue = lodash_es_toPlainObject(objValue); + } else if (!lodash_es_isObject(objValue) || lodash_es_isFunction(objValue)) { + newValue = _initCloneObject(srcValue); + } } else { - result = Super.apply(this, arguments); + isCommon = false; } - return sasl_anon_possibleConstructorReturn(this, result); - }; -} -function sasl_anon_possibleConstructorReturn(self, call) { - if (call && (sasl_anon_typeof(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return sasl_anon_assertThisInitialized(self); -} -function sasl_anon_assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } - return self; -} -function sasl_anon_isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; + if (isCommon) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack['delete'](srcValue); } + _assignMergeValue(object, key, newValue); } -function sasl_anon_getPrototypeOf(o) { - sasl_anon_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return sasl_anon_getPrototypeOf(o); -} +/* harmony default export */ const _baseMergeDeep = (baseMergeDeep); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseMerge.js -// Building SASL callbacks -var SASLAnonymous = /*#__PURE__*/function (_SASLMechanism) { - sasl_anon_inherits(SASLAnonymous, _SASLMechanism); - var _super = sasl_anon_createSuper(SASLAnonymous); - /** PrivateConstructor: SASLAnonymous - * SASL ANONYMOUS authentication. - */ - function SASLAnonymous() { - var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'ANONYMOUS'; - var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 20; - sasl_anon_classCallCheck(this, SASLAnonymous); - return _super.call(this, mechname, isClientFirst, priority); - } - // eslint-disable-next-line class-methods-use-this - sasl_anon_createClass(SASLAnonymous, [{ - key: "test", - value: function test(connection) { - return connection.authcid === null; - } - }]); - return SASLAnonymous; -}(SASLMechanism); -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-external.js -function sasl_external_typeof(obj) { - "@babel/helpers - typeof"; - return sasl_external_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, sasl_external_typeof(obj); -} -function sasl_external_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} -function sasl_external_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, sasl_external_toPropertyKey(descriptor.key), descriptor); + + + +/** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; } + _baseFor(source, function (srcValue, key) { + stack || (stack = new _Stack()); + if (lodash_es_isObject(srcValue)) { + _baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } else { + var newValue = customizer ? customizer(_safeGet(object, key), srcValue, key + '', object, source, stack) : undefined; + if (newValue === undefined) { + newValue = srcValue; + } + _assignMergeValue(object, key, newValue); + } + }, lodash_es_keysIn); } -function sasl_external_createClass(Constructor, protoProps, staticProps) { - if (protoProps) sasl_external_defineProperties(Constructor.prototype, protoProps); - if (staticProps) sasl_external_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function sasl_external_toPropertyKey(arg) { - var key = sasl_external_toPrimitive(arg, "string"); - return sasl_external_typeof(key) === "symbol" ? key : String(key); -} -function sasl_external_toPrimitive(input, hint) { - if (sasl_external_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (sasl_external_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); +/* harmony default export */ const _baseMerge = (baseMerge); +;// CONCATENATED MODULE: ./node_modules/lodash-es/merge.js + + + +/** + * This method is like `_.assign` except that it recursively merges own and + * inherited enumerable string keyed properties of source objects into the + * destination object. Source properties that resolve to `undefined` are + * skipped if a destination value exists. Array and plain object properties + * are merged recursively. Other objects and value types are overridden by + * assignment. Source objects are applied from left to right. Subsequent + * sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @example + * + * var object = { + * 'a': [{ 'b': 2 }, { 'd': 4 }] + * }; + * + * var other = { + * 'a': [{ 'c': 3 }, { 'e': 5 }] + * }; + * + * _.merge(object, other); + * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } + */ +var merge = _createAssigner(function (object, source, srcIndex) { + _baseMerge(object, source, srcIndex); +}); +/* harmony default export */ const lodash_es_merge = (merge); +;// CONCATENATED MODULE: ./node_modules/lodash-es/mergeWith.js + + + +/** + * This method is like `_.merge` except that it accepts `customizer` which + * is invoked to produce the merged values of the destination and source + * properties. If `customizer` returns `undefined`, merging is handled by the + * method instead. The `customizer` is invoked with six arguments: + * (objValue, srcValue, key, object, source, stack). + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} sources The source objects. + * @param {Function} customizer The function to customize assigned values. + * @returns {Object} Returns `object`. + * @example + * + * function customizer(objValue, srcValue) { + * if (_.isArray(objValue)) { + * return objValue.concat(srcValue); + * } + * } + * + * var object = { 'a': [1], 'b': [2] }; + * var other = { 'a': [3], 'b': [4] }; + * + * _.mergeWith(object, other, customizer); + * // => { 'a': [1, 3], 'b': [2, 4] } + */ +var mergeWith = _createAssigner(function (object, source, srcIndex, customizer) { + _baseMerge(object, source, srcIndex, customizer); +}); +/* harmony default export */ const lodash_es_mergeWith = (mergeWith); +;// CONCATENATED MODULE: ./node_modules/lodash-es/now.js + + +/** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ +var now = function now() { + return _root.Date.now(); +}; +/* harmony default export */ const lodash_es_now = (now); +;// CONCATENATED MODULE: ./node_modules/mergebounce/mergebounce.js + + + + + + + +/** Error message constants. */ +var mergebounce_FUNC_ERROR_TEXT = 'Expected a function'; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var mergebounce_nativeMax = Math.max; +var nativeMin = Math.min; + +/** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * + * This function differs from lodash's debounce by merging all passed objects + * before passing them to the final invoked function. + * + * Because of this, invoking can only happen on the trailing edge, since + * passed-in data would be discarded if invoking happened on the leading edge. + * + * If `wait` is `0`, `func` invocation is deferred until to the next tick, + * similar to `setTimeout` with a timeout of `0`. + * + * @static + * @category Function + * @param {Function} func The function to mergebounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.concatArrays=false] + * By default arrays will be treated as objects when being merged. When + * merging two arrays, the values in the 2nd arrray will replace the + * corresponding values (i.e. those with the same indexes) in the first array. + * When `concatArrays` is set to `true`, arrays will be concatenated instead. + * @param {boolean} [options.dedupeArrays=false] + * This option is similar to `concatArrays`, except that the concatenated + * array will also be deduplicated. Thus any entries that are concatenated to the + * existing array, which are already contained in the existing array, will + * first be removed. + * @param {boolean} [options.promise=false] + * By default, when calling a merge-debounced function that doesn't execute + * immediately, you'll receive the result from its previous execution, or + * `undefined` if it has never executed before. By setting the `promise` + * option to `true`, a promise will be returned instead of the previous + * execution result when the function is debounced. The promise will resolve + * with the result of the next execution, as soon as it happens. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * window.addEventListener('resize', mergebounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * element.addEventListner('click', mergebounce(sendMail, 300)); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * const mergebounced = mergebounce(batchLog, 250, { 'maxWait': 1000 }); + * const source = new EventSource('/stream'); + * jQuery(source).on('message', mergebounced); + * + * // Cancel the trailing debounced invocation. + * window.addEventListener('popstate', mergebounced.cancel); + */ +function mergebounce(func, wait) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + maxing = false; + var promise = options.promise ? getOpenPromise() : null; + if (typeof func != 'function') { + throw new TypeError(mergebounce_FUNC_ERROR_TEXT); } - return (hint === "string" ? String : Number)(input); -} -function sasl_external_inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); + wait = lodash_es_toNumber(wait) || 0; + if (lodash_es_isObject(options)) { + maxing = 'maxWait' in options; + maxWait = maxing ? mergebounce_nativeMax(lodash_es_toNumber(options.maxWait) || 0, wait) : maxWait; } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) sasl_external_setPrototypeOf(subClass, superClass); -} -function sasl_external_setPrototypeOf(o, p) { - sasl_external_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return sasl_external_setPrototypeOf(o, p); -} -function sasl_external_createSuper(Derived) { - var hasNativeReflectConstruct = sasl_external_isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = sasl_external_getPrototypeOf(Derived), - result; - if (hasNativeReflectConstruct) { - var NewTarget = sasl_external_getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); + function invokeFunc(time) { + var args = lastArgs; + var thisArg = lastThis; + var existingPromise = promise; + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + if (options.promise) { + existingPromise.resolve(result); + promise = getOpenPromise(); } - return sasl_external_possibleConstructorReturn(this, result); - }; -} -function sasl_external_possibleConstructorReturn(self, call) { - if (call && (sasl_external_typeof(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); + return options.promise ? existingPromise : result; } - return sasl_external_assertThisInitialized(self); -} -function sasl_external_assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + return options.promise ? promise : result; } - return self; -} -function sasl_external_isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime; + var timeSinceLastInvoke = time - lastInvokeTime; + var timeWaiting = wait - timeSinceLastCall; + return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; } -} -function sasl_external_getPrototypeOf(o) { - sasl_external_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return sasl_external_getPrototypeOf(o); -} + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime; + var timeSinceLastInvoke = time - lastInvokeTime; -var SASLExternal = /*#__PURE__*/function (_SASLMechanism) { - sasl_external_inherits(SASLExternal, _SASLMechanism); - var _super = sasl_external_createSuper(SASLExternal); - /** PrivateConstructor: SASLExternal - * SASL EXTERNAL authentication. - * - * The EXTERNAL mechanism allows a client to request the server to use - * credentials established by means external to the mechanism to - * authenticate the client. The external means may be, for instance, - * TLS services. - */ - function SASLExternal() { - var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'EXTERNAL'; - var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10; - sasl_external_classCallCheck(this, SASLExternal); - return _super.call(this, mechname, isClientFirst, priority); + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; } - - // eslint-disable-next-line class-methods-use-this - sasl_external_createClass(SASLExternal, [{ - key: "onChallenge", - value: function onChallenge(connection) { - /** According to XEP-178, an authzid SHOULD NOT be presented when the - * authcid contained or implied in the client certificate is the JID (i.e. - * authzid) with which the user wants to log in as. - * - * To NOT send the authzid, the user should therefore set the authcid equal - * to the JID when instantiating a new Strophe.Connection object. - */ - return connection.authcid === connection.authzid ? '' : connection.authzid; + function timerExpired() { + var time = lodash_es_now(); + if (shouldInvoke(time)) { + return trailingEdge(time); } - }]); - return SASLExternal; -}(SASLMechanism); - -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-oauthbearer.js -function sasl_oauthbearer_typeof(obj) { - "@babel/helpers - typeof"; - - return sasl_oauthbearer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, sasl_oauthbearer_typeof(obj); -} -function sasl_oauthbearer_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); } -} -function sasl_oauthbearer_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, sasl_oauthbearer_toPropertyKey(descriptor.key), descriptor); + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; + return options.promise ? promise : result; } -} -function sasl_oauthbearer_createClass(Constructor, protoProps, staticProps) { - if (protoProps) sasl_oauthbearer_defineProperties(Constructor.prototype, protoProps); - if (staticProps) sasl_oauthbearer_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function sasl_oauthbearer_toPropertyKey(arg) { - var key = sasl_oauthbearer_toPrimitive(arg, "string"); - return sasl_oauthbearer_typeof(key) === "symbol" ? key : String(key); -} -function sasl_oauthbearer_toPrimitive(input, hint) { - if (sasl_oauthbearer_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (sasl_oauthbearer_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; } - return (hint === "string" ? String : Number)(input); -} -function sasl_oauthbearer_inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); + function flush() { + return timerId === undefined ? result : trailingEdge(lodash_es_now()); } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true + function concatArrays(objValue, srcValue) { + if (Array.isArray(objValue) && Array.isArray(srcValue)) { + if (options !== null && options !== void 0 && options.dedupeArrays) { + return objValue.concat(srcValue.filter(function (i) { + return objValue.indexOf(i) === -1; + })); + } else { + return objValue.concat(srcValue); + } } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) sasl_oauthbearer_setPrototypeOf(subClass, superClass); -} -function sasl_oauthbearer_setPrototypeOf(o, p) { - sasl_oauthbearer_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return sasl_oauthbearer_setPrototypeOf(o, p); -} -function sasl_oauthbearer_createSuper(Derived) { - var hasNativeReflectConstruct = sasl_oauthbearer_isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = sasl_oauthbearer_getPrototypeOf(Derived), - result; - if (hasNativeReflectConstruct) { - var NewTarget = sasl_oauthbearer_getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); + } + function mergeArguments(args) { + var _lastArgs; + if ((_lastArgs = lastArgs) !== null && _lastArgs !== void 0 && _lastArgs.length) { + if (!args.length) { + return lastArgs; + } + if (options !== null && options !== void 0 && options.concatArrays || options !== null && options !== void 0 && options.dedupeArrays) { + return lodash_es_mergeWith(lastArgs, args, concatArrays); + } else { + return lodash_es_merge(lastArgs, args); + } } else { - result = Super.apply(this, arguments); + return args || []; } - return sasl_oauthbearer_possibleConstructorReturn(this, result); - }; -} -function sasl_oauthbearer_possibleConstructorReturn(self, call) { - if (call && (sasl_oauthbearer_typeof(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return sasl_oauthbearer_assertThisInitialized(self); -} -function sasl_oauthbearer_assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } - return self; -} -function sasl_oauthbearer_isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; + function debounced() { + var time = lodash_es_now(); + var isInvoking = shouldInvoke(time); + lastArgs = mergeArguments(Array.from(arguments)); + lastThis = this; + lastCallTime = time; + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return options.promise ? promise : result; } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; } -function sasl_oauthbearer_getPrototypeOf(o) { - sasl_oauthbearer_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return sasl_oauthbearer_getPrototypeOf(o); -} +/* harmony default export */ const mergebounce_mergebounce = (mergebounce); +;// CONCATENATED MODULE: ./node_modules/@converse/skeletor/src/drivers/sessionStorage.js +function sessionStorage_typeof(obj) { + "@babel/helpers - typeof"; - -var SASLOAuthBearer = /*#__PURE__*/function (_SASLMechanism) { - sasl_oauthbearer_inherits(SASLOAuthBearer, _SASLMechanism); - var _super = sasl_oauthbearer_createSuper(SASLOAuthBearer); - /** PrivateConstructor: SASLOAuthBearer - * SASL OAuth Bearer authentication. - */ - function SASLOAuthBearer() { - var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'OAUTHBEARER'; - var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 40; - sasl_oauthbearer_classCallCheck(this, SASLOAuthBearer); - return _super.call(this, mechname, isClientFirst, priority); - } - - // eslint-disable-next-line class-methods-use-this - sasl_oauthbearer_createClass(SASLOAuthBearer, [{ - key: "test", - value: function test(connection) { - return connection.pass !== null; - } - - // eslint-disable-next-line class-methods-use-this - }, { - key: "onChallenge", - value: function onChallenge(connection) { - var auth_str = 'n,'; - if (connection.authcid !== null) { - auth_str = auth_str + 'a=' + connection.authzid; - } - auth_str = auth_str + ','; - auth_str = auth_str + "\x01"; - auth_str = auth_str + 'auth=Bearer '; - auth_str = auth_str + connection.pass; - auth_str = auth_str + "\x01"; - auth_str = auth_str + "\x01"; - return utils.utf16to8(auth_str); - } - }]); - return SASLOAuthBearer; -}(SASLMechanism); - -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-plain.js -function sasl_plain_typeof(obj) { - "@babel/helpers - typeof"; - - return sasl_plain_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, sasl_plain_typeof(obj); -} -function sasl_plain_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} -function sasl_plain_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, sasl_plain_toPropertyKey(descriptor.key), descriptor); - } -} -function sasl_plain_createClass(Constructor, protoProps, staticProps) { - if (protoProps) sasl_plain_defineProperties(Constructor.prototype, protoProps); - if (staticProps) sasl_plain_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function sasl_plain_toPropertyKey(arg) { - var key = sasl_plain_toPrimitive(arg, "string"); - return sasl_plain_typeof(key) === "symbol" ? key : String(key); -} -function sasl_plain_toPrimitive(input, hint) { - if (sasl_plain_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (sasl_plain_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); -} -function sasl_plain_inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) sasl_plain_setPrototypeOf(subClass, superClass); -} -function sasl_plain_setPrototypeOf(o, p) { - sasl_plain_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return sasl_plain_setPrototypeOf(o, p); -} -function sasl_plain_createSuper(Derived) { - var hasNativeReflectConstruct = sasl_plain_isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = sasl_plain_getPrototypeOf(Derived), - result; - if (hasNativeReflectConstruct) { - var NewTarget = sasl_plain_getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return sasl_plain_possibleConstructorReturn(this, result); - }; -} -function sasl_plain_possibleConstructorReturn(self, call) { - if (call && (sasl_plain_typeof(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return sasl_plain_assertThisInitialized(self); -} -function sasl_plain_assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self; -} -function sasl_plain_isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; - } -} -function sasl_plain_getPrototypeOf(o) { - sasl_plain_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return sasl_plain_getPrototypeOf(o); -} - - -var SASLPlain = /*#__PURE__*/function (_SASLMechanism) { - sasl_plain_inherits(SASLPlain, _SASLMechanism); - var _super = sasl_plain_createSuper(SASLPlain); - /** PrivateConstructor: SASLPlain - * SASL PLAIN authentication. - */ - function SASLPlain() { - var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'PLAIN'; - var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 50; - sasl_plain_classCallCheck(this, SASLPlain); - return _super.call(this, mechname, isClientFirst, priority); - } - - // eslint-disable-next-line class-methods-use-this - sasl_plain_createClass(SASLPlain, [{ - key: "test", - value: function test(connection) { - return connection.authcid !== null; - } - - // eslint-disable-next-line class-methods-use-this - }, { - key: "onChallenge", - value: function onChallenge(connection) { - var authcid = connection.authcid, - authzid = connection.authzid, - domain = connection.domain, - pass = connection.pass; - if (!domain) { - throw new Error('SASLPlain onChallenge: domain is not defined!'); - } - // Only include authzid if it differs from authcid. - // See: https://tools.ietf.org/html/rfc6120#section-6.3.8 - var auth_str = authzid !== "".concat(authcid, "@").concat(domain) ? authzid : ''; - auth_str = auth_str + "\0"; - auth_str = auth_str + authcid; - auth_str = auth_str + "\0"; - auth_str = auth_str + pass; - return utils.utf16to8(auth_str); - } - }]); - return SASLPlain; -}(SASLMechanism); - -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/scram.js -function scram_typeof(obj) { - "@babel/helpers - typeof"; - - return scram_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, scram_typeof(obj); -} -function scram_regeneratorRuntime() { - "use strict"; + return sessionStorage_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, sessionStorage_typeof(obj); +} +function _regeneratorRuntime() { + "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - scram_regeneratorRuntime = function _regeneratorRuntime() { + _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -17695,7 +16199,7 @@ function scram_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == scram_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == sessionStorage_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -17920,7 +16424,7 @@ function scram_regeneratorRuntime() { } }, exports; } -function scram_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -17934,302 +16438,330 @@ function scram_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) Promise.resolve(value).then(_next, _throw); } } -function scram_asyncToGenerator(fn) { +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - scram_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - scram_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +// Copyright 2014 Mozilla +// Copyright 2015 Thodoris Greasidis +// Copyright 2018 JC Brand +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. -function scramClientProof(_x, _x2, _x3) { - return _scramClientProof.apply(this, arguments); + + + +var sessionStorage_serialize = serializer["serialize"]; +var sessionStorage_deserialize = serializer["deserialize"]; +function isSessionStorageValid() { + // If the app is running inside a Google Chrome packaged webapp, or some + // other context where sessionStorage isn't available, we don't use + // sessionStorage. This feature detection is preferred over the old + // `if (window.chrome && window.chrome.runtime)` code. + // See: https://github.com/mozilla/localForage/issues/68 + try { + // If sessionStorage isn't available, we get outta here! + // This should be inside a try catch + if (sessionStorage && 'setItem' in sessionStorage) { + return true; + } + } catch (e) { + console.log(e); + } + return false; } -/* This function parses the information in a SASL SCRAM challenge response, - * into an object of the form - * { nonce: String, - * salt: ArrayBuffer, - * iter: Int - * } - * Returns undefined on failure. - */ -function _scramClientProof() { - _scramClientProof = scram_asyncToGenerator( /*#__PURE__*/scram_regeneratorRuntime().mark(function _callee2(authMessage, clientKey, hashName) { - var storedKey, clientSignature; - return scram_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - _context2.t0 = crypto.subtle; - _context2.next = 3; - return crypto.subtle.digest(hashName, clientKey); - case 3: - _context2.t1 = _context2.sent; - _context2.t2 = { - 'name': 'HMAC', - 'hash': hashName - }; - _context2.t3 = ['sign']; - _context2.next = 8; - return _context2.t0.importKey.call(_context2.t0, 'raw', _context2.t1, _context2.t2, false, _context2.t3); - case 8: - storedKey = _context2.sent; - _context2.next = 11; - return crypto.subtle.sign('HMAC', storedKey, utils.stringToArrayBuf(authMessage)); - case 11: - clientSignature = _context2.sent; - return _context2.abrupt("return", utils.xorArrayBuffers(clientKey, clientSignature)); - case 13: - case "end": - return _context2.stop(); - } - }, _callee2); - })); - return _scramClientProof.apply(this, arguments); +function sessionStorage_getKeyPrefix(options, defaultConfig) { + var keyPrefix = options.name + '/'; + if (options.storeName !== defaultConfig.storeName) { + keyPrefix += options.storeName + '/'; + } + return keyPrefix; } -function scramParseChallenge(challenge) { - var nonce, salt, iter; - var attribMatch = /([a-z]+)=([^,]+)(,|$)/; - while (challenge.match(attribMatch)) { - var matches = challenge.match(attribMatch); - challenge = challenge.replace(matches[0], ''); - switch (matches[1]) { - case 'r': - nonce = matches[2]; - break; - case 's': - salt = utils.base64ToArrayBuf(matches[2]); - break; - case 'i': - iter = parseInt(matches[2], 10); - break; - default: - return undefined; +var dbInfo = { + 'serializer': { + 'serialize': sessionStorage_serialize, + 'deserialize': sessionStorage_deserialize + } +}; +function sessionStorage_initStorage(options) { + dbInfo.keyPrefix = sessionStorage_getKeyPrefix(options, this._defaultConfig); + if (options) { + for (var i in options) { + // eslint-disable-line guard-for-in + dbInfo[i] = options[i]; } } +} - // Consider iteration counts less than 4096 insecure, as reccommended by - // RFC 5802 - if (isNaN(iter) || iter < 4096) { - Strophe.warn('Failing SCRAM authentication because server supplied iteration count < 4096.'); - return undefined; - } - if (!salt) { - Strophe.warn('Failing SCRAM authentication because server supplied incorrect salt.'); - return undefined; - } - return { - 'nonce': nonce, - 'salt': salt, - 'iter': iter - }; +// Remove all keys from the datastore, effectively destroying all data in +// the app's key/value store! +function sessionStorage_clear(callback) { + var promise = this.ready().then(function () { + var keyPrefix = dbInfo.keyPrefix; + for (var i = sessionStorage.length - 1; i >= 0; i--) { + var _key = sessionStorage.key(i); + if (_key.indexOf(keyPrefix) === 0) { + sessionStorage.removeItem(_key); + } + } + }); + utils_executeCallback(promise, callback); + return promise; } -/* Derive the client and server keys given a string password, - * a hash name, and a bit length. - * Returns an object of the following form: - * { ck: ArrayBuffer, the client key - * sk: ArrayBuffer, the server key - * } - */ -function scramDeriveKeys(_x4, _x5, _x6, _x7, _x8) { - return _scramDeriveKeys.apply(this, arguments); +// Retrieve an item from the store. Unlike the original async_storage +// library in Gaia, we don't modify return values at all. If a key's value +// is `undefined`, we pass that value to the callback function. +function sessionStorage_getItem(key, callback) { + key = normalizeKey(key); + var promise = this.ready().then(function () { + var result = sessionStorage.getItem(dbInfo.keyPrefix + key); + // If a result was found, parse it from the serialized + // string into a JS object. If result isn't truthy, the key + // is likely undefined and we'll pass it straight to the + // callback. + if (result) { + result = dbInfo.serializer.deserialize(result); + } + return result; + }); + utils_executeCallback(promise, callback); + return promise; } -function _scramDeriveKeys() { - _scramDeriveKeys = scram_asyncToGenerator( /*#__PURE__*/scram_regeneratorRuntime().mark(function _callee3(password, salt, iter, hashName, hashBits) { - var saltedPasswordBits, saltedPassword; - return scram_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - _context3.t0 = crypto.subtle; - _context3.t1 = { - 'name': 'PBKDF2', - 'salt': salt, - 'iterations': iter, - 'hash': { - 'name': hashName - } - }; - _context3.next = 4; - return crypto.subtle.importKey('raw', utils.stringToArrayBuf(password), 'PBKDF2', false, ['deriveBits']); - case 4: - _context3.t2 = _context3.sent; - _context3.t3 = hashBits; - _context3.next = 8; - return _context3.t0.deriveBits.call(_context3.t0, _context3.t1, _context3.t2, _context3.t3); - case 8: - saltedPasswordBits = _context3.sent; - _context3.next = 11; - return crypto.subtle.importKey('raw', saltedPasswordBits, { - 'name': 'HMAC', - 'hash': hashName - }, false, ['sign']); - case 11: - saltedPassword = _context3.sent; - _context3.next = 14; - return crypto.subtle.sign('HMAC', saltedPassword, utils.stringToArrayBuf('Client Key')); - case 14: - _context3.t4 = _context3.sent; - _context3.next = 17; - return crypto.subtle.sign('HMAC', saltedPassword, utils.stringToArrayBuf('Server Key')); - case 17: - _context3.t5 = _context3.sent; - return _context3.abrupt("return", { - 'ck': _context3.t4, - 'sk': _context3.t5 - }); - case 19: - case "end": - return _context3.stop(); + +// Iterate over all items in the store. +function sessionStorage_iterate(iterator, callback) { + var self = this; + var promise = self.ready().then(function () { + var keyPrefix = dbInfo.keyPrefix; + var keyPrefixLength = keyPrefix.length; + var length = sessionStorage.length; + + // We use a dedicated iterator instead of the `i` variable below + // so other keys we fetch in sessionStorage aren't counted in + // the `iterationNumber` argument passed to the `iterate()` + // callback. + // + // See: github.com/mozilla/localForage/pull/435#discussion_r38061530 + var iterationNumber = 1; + for (var i = 0; i < length; i++) { + var _key2 = sessionStorage.key(i); + if (_key2.indexOf(keyPrefix) !== 0) { + continue; } - }, _callee3); - })); - return _scramDeriveKeys.apply(this, arguments); -} -function scramServerSign(_x9, _x10, _x11) { - return _scramServerSign.apply(this, arguments); -} // Generate an ASCII nonce (not containing the ',' character) -function _scramServerSign() { - _scramServerSign = scram_asyncToGenerator( /*#__PURE__*/scram_regeneratorRuntime().mark(function _callee4(authMessage, sk, hashName) { - var serverKey; - return scram_regeneratorRuntime().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - _context4.next = 2; - return crypto.subtle.importKey('raw', sk, { - 'name': 'HMAC', - 'hash': hashName - }, false, ['sign']); - case 2: - serverKey = _context4.sent; - return _context4.abrupt("return", crypto.subtle.sign('HMAC', serverKey, utils.stringToArrayBuf(authMessage))); - case 4: - case "end": - return _context4.stop(); + var value = sessionStorage.getItem(_key2); + + // If a result was found, parse it from the serialized + // string into a JS object. If result isn't truthy, the + // key is likely undefined and we'll pass it straight + // to the iterator. + if (value) { + value = dbInfo.serializer.deserialize(value); } - }, _callee4); - })); - return _scramServerSign.apply(this, arguments); -} -function generate_cnonce() { - // generate 16 random bytes of nonce, base64 encoded - var bytes = new Uint8Array(16); - return utils.arrayBufToBase64(crypto.getRandomValues(bytes).buffer); + value = iterator(value, _key2.substring(keyPrefixLength), iterationNumber++); + if (value !== void 0) { + // eslint-disable-line no-void + return value; + } + } + }); + utils_executeCallback(promise, callback); + return promise; } -var scram = { - /* On success, sets - * connection_sasl_data["server-signature"] - * and - * connection._sasl_data.keys - * - * The server signature should be verified after this function completes.. - * - * On failure, returns connection._sasl_failure_cb(); - */ - scramResponse: function scramResponse(connection, challenge, hashName, hashBits) { - return scram_asyncToGenerator( /*#__PURE__*/scram_regeneratorRuntime().mark(function _callee() { - var _connection$pass, _connection$pass2, _connection$pass3; - var cnonce, challengeData, clientKey, serverKey, keys, clientFirstMessageBare, serverFirstMessage, clientFinalMessageBare, authMessage, clientProof, serverSignature; - return scram_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - cnonce = connection._sasl_data.cnonce; - challengeData = scramParseChallenge(challenge); // The RFC requires that we verify the (server) nonce has the client - // nonce as an initial substring. - if (!(!challengeData && (challengeData === null || challengeData === void 0 ? void 0 : challengeData.nonce.slice(0, cnonce.length)) !== cnonce)) { - _context.next = 6; - break; - } - Strophe.warn('Failing SCRAM authentication because server supplied incorrect nonce.'); - connection._sasl_data = {}; - return _context.abrupt("return", connection._sasl_failure_cb()); - case 6: - if (!(((_connection$pass = connection.pass) === null || _connection$pass === void 0 ? void 0 : _connection$pass.name) === hashName && ((_connection$pass2 = connection.pass) === null || _connection$pass2 === void 0 ? void 0 : _connection$pass2.salt) === utils.arrayBufToBase64(challengeData.salt) && ((_connection$pass3 = connection.pass) === null || _connection$pass3 === void 0 ? void 0 : _connection$pass3.iter) === challengeData.iter)) { - _context.next = 11; - break; - } - clientKey = utils.base64ToArrayBuf(connection.pass.ck); - serverKey = utils.base64ToArrayBuf(connection.pass.sk); - _context.next = 20; - break; - case 11: - if (!(typeof connection.pass === 'string' || connection.pass instanceof String)) { - _context.next = 19; - break; + +// Same as sessionStorage's key() method, except takes a callback. +function sessionStorage_key(n, callback) { + var self = this; + var promise = self.ready().then(function () { + var result; + try { + result = sessionStorage.key(n); + } catch (error) { + result = null; + } + + // Remove the prefix from the key, if a key is found. + if (result) { + result = result.substring(dbInfo.keyPrefix.length); + } + return result; + }); + utils_executeCallback(promise, callback); + return promise; +} +function sessionStorage_keys(callback) { + var self = this; + var promise = self.ready().then(function () { + var length = sessionStorage.length; + var keys = []; + for (var i = 0; i < length; i++) { + var itemKey = sessionStorage.key(i); + if (itemKey.indexOf(dbInfo.keyPrefix) === 0) { + keys.push(itemKey.substring(dbInfo.keyPrefix.length)); + } + } + return keys; + }); + utils_executeCallback(promise, callback); + return promise; +} + +// Supply the number of keys in the datastore to the callback function. +function sessionStorage_length(callback) { + var self = this; + var promise = self.keys().then(function (keys) { + return keys.length; + }); + utils_executeCallback(promise, callback); + return promise; +} + +// Remove an item from the store, nice and simple. +function sessionStorage_removeItem(key, callback) { + key = normalizeKey(key); + var promise = this.ready().then(function () { + sessionStorage.removeItem(dbInfo.keyPrefix + key); + }); + utils_executeCallback(promise, callback); + return promise; +} + +// Set a key's value and run an optional callback once the value is set. +// Unlike Gaia's implementation, the callback function is passed the value, +// in case you want to operate on that value only after you're sure it +// saved, or something like that. +function sessionStorage_setItem(_x, _x2, _x3) { + return drivers_sessionStorage_setItem.apply(this, arguments); +} +function drivers_sessionStorage_setItem() { + drivers_sessionStorage_setItem = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(key, value, callback) { + var _value; + var originalValue; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + key = normalizeKey(key); + _context.next = 3; + return this.ready(); + case 3: + // Convert undefined values to null. + // https://github.com/mozilla/localForage/pull/42 + value = (_value = value) !== null && _value !== void 0 ? _value : null; + + // Save the original value to pass to the callback. + originalValue = value; + dbInfo.serializer.serialize(value, function (value, error) { + if (error) { + throw error; + } else { + try { + sessionStorage.setItem(dbInfo.keyPrefix + key, value); + utils_executeCallback(Promise.resolve(originalValue), callback); + } catch (e) { + if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') { + console.error("Your sesionStorage capacity is used up."); + throw e; + } + throw e; + } } - _context.next = 14; - return scramDeriveKeys(connection.pass, challengeData.salt, challengeData.iter, hashName, hashBits); - case 14: - keys = _context.sent; - clientKey = keys.ck; - serverKey = keys.sk; - _context.next = 20; - break; - case 19: - return _context.abrupt("return", connection._sasl_failure_cb()); - case 20: - clientFirstMessageBare = connection._sasl_data['client-first-message-bare']; - serverFirstMessage = challenge; - clientFinalMessageBare = "c=biws,r=".concat(challengeData.nonce); - authMessage = "".concat(clientFirstMessageBare, ",").concat(serverFirstMessage, ",").concat(clientFinalMessageBare); - _context.next = 26; - return scramClientProof(authMessage, clientKey, hashName); - case 26: - clientProof = _context.sent; - _context.next = 29; - return scramServerSign(authMessage, serverKey, hashName); - case 29: - serverSignature = _context.sent; - connection._sasl_data['server-signature'] = utils.arrayBufToBase64(serverSignature); - connection._sasl_data.keys = { - 'name': hashName, - 'iter': challengeData.iter, - 'salt': utils.arrayBufToBase64(challengeData.salt), - 'ck': utils.arrayBufToBase64(clientKey), - 'sk': utils.arrayBufToBase64(serverKey) - }; - return _context.abrupt("return", "".concat(clientFinalMessageBare, ",p=").concat(utils.arrayBufToBase64(clientProof))); - case 33: - case "end": - return _context.stop(); + }); + case 6: + case "end": + return _context.stop(); + } + }, _callee, this); + })); + return drivers_sessionStorage_setItem.apply(this, arguments); +} +function sessionStorage_dropInstance(options, callback) { + callback = getCallback.apply(this, arguments); + options = typeof options !== 'function' && options || {}; + if (!options.name) { + var currentConfig = this.config(); + options.name = options.name || currentConfig.name; + options.storeName = options.storeName || currentConfig.storeName; + } + var self = this; + var promise; + if (!options.name) { + promise = Promise.reject(new Error('Invalid arguments')); + } else { + promise = new Promise(function (resolve) { + if (!options.storeName) { + resolve("".concat(options.name, "/")); + } else { + resolve(sessionStorage_getKeyPrefix(options, self._defaultConfig)); + } + }).then(function (keyPrefix) { + for (var i = sessionStorage.length - 1; i >= 0; i--) { + var _key3 = sessionStorage.key(i); + if (_key3.indexOf(keyPrefix) === 0) { + sessionStorage.removeItem(_key3); } - }, _callee); - }))(); - }, - // Returns a string containing the client first message - clientChallenge: function clientChallenge(connection, test_cnonce) { - var cnonce = test_cnonce || generate_cnonce(); - var client_first_message_bare = "n=".concat(connection.authcid, ",r=").concat(cnonce); - connection._sasl_data.cnonce = cnonce; - connection._sasl_data['client-first-message-bare'] = client_first_message_bare; - return "n,,".concat(client_first_message_bare); + } + }); } + utils_executeCallback(promise, callback); + return promise; +} +var sessionStorageWrapper = { + _driver: 'sessionStorageWrapper', + _initStorage: sessionStorage_initStorage, + _support: isSessionStorageValid(), + iterate: sessionStorage_iterate, + getItem: sessionStorage_getItem, + setItem: sessionStorage_setItem, + removeItem: sessionStorage_removeItem, + clear: sessionStorage_clear, + length: sessionStorage_length, + key: sessionStorage_key, + keys: sessionStorage_keys, + dropInstance: sessionStorage_dropInstance }; - -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-sha1.js -function sasl_sha1_typeof(obj) { +/* harmony default export */ const drivers_sessionStorage = (sessionStorageWrapper); +// EXTERNAL MODULE: ./node_modules/localforage-setitems/dist/localforage-setitems.js +var localforage_setitems = __webpack_require__(829); +// EXTERNAL MODULE: ./node_modules/@converse/localforage-getitems/dist/localforage-getitems.js +var localforage_getitems = __webpack_require__(5246); +;// CONCATENATED MODULE: ./node_modules/@converse/skeletor/src/storage.js +function storage_typeof(obj) { "@babel/helpers - typeof"; - return sasl_sha1_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return storage_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, sasl_sha1_typeof(obj); + }, storage_typeof(obj); } -function sasl_sha1_regeneratorRuntime() { +function storage_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - sasl_sha1_regeneratorRuntime = function _regeneratorRuntime() { + storage_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -18304,7 +16836,7 @@ function sasl_sha1_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == sasl_sha1_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == storage_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -18529,7 +17061,7 @@ function sasl_sha1_regeneratorRuntime() { } }, exports; } -function sasl_sha1_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function storage_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -18543,237 +17075,605 @@ function sasl_sha1_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, Promise.resolve(value).then(_next, _throw); } } -function sasl_sha1_asyncToGenerator(fn) { +function storage_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - sasl_sha1_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + storage_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - sasl_sha1_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + storage_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -function sasl_sha1_classCallCheck(instance, Constructor) { +function storage_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function sasl_sha1_defineProperties(target, props) { +function storage_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, sasl_sha1_toPropertyKey(descriptor.key), descriptor); + Object.defineProperty(target, storage_toPropertyKey(descriptor.key), descriptor); } } -function sasl_sha1_createClass(Constructor, protoProps, staticProps) { - if (protoProps) sasl_sha1_defineProperties(Constructor.prototype, protoProps); - if (staticProps) sasl_sha1_defineProperties(Constructor, staticProps); +function storage_createClass(Constructor, protoProps, staticProps) { + if (protoProps) storage_defineProperties(Constructor.prototype, protoProps); + if (staticProps) storage_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function sasl_sha1_toPropertyKey(arg) { - var key = sasl_sha1_toPrimitive(arg, "string"); - return sasl_sha1_typeof(key) === "symbol" ? key : String(key); +function storage_toPropertyKey(arg) { + var key = storage_toPrimitive(arg, "string"); + return storage_typeof(key) === "symbol" ? key : String(key); } -function sasl_sha1_toPrimitive(input, hint) { - if (sasl_sha1_typeof(input) !== "object" || input === null) return input; +function storage_toPrimitive(input, hint) { + if (storage_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); - if (sasl_sha1_typeof(res) !== "object") return res; + if (storage_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -function sasl_sha1_inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) sasl_sha1_setPrototypeOf(subClass, superClass); -} -function sasl_sha1_setPrototypeOf(o, p) { - sasl_sha1_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return sasl_sha1_setPrototypeOf(o, p); -} -function sasl_sha1_createSuper(Derived) { - var hasNativeReflectConstruct = sasl_sha1_isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = sasl_sha1_getPrototypeOf(Derived), - result; - if (hasNativeReflectConstruct) { - var NewTarget = sasl_sha1_getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return sasl_sha1_possibleConstructorReturn(this, result); - }; -} -function sasl_sha1_possibleConstructorReturn(self, call) { - if (call && (sasl_sha1_typeof(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return sasl_sha1_assertThisInitialized(self); -} -function sasl_sha1_assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self; -} -function sasl_sha1_isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; - } -} -function sasl_sha1_getPrototypeOf(o) { - sasl_sha1_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return sasl_sha1_getPrototypeOf(o); -} +/** + * IndexedDB, localStorage and sessionStorage adapter + */ -var SASLSHA1 = /*#__PURE__*/function (_SASLMechanism) { - sasl_sha1_inherits(SASLSHA1, _SASLMechanism); - var _super = sasl_sha1_createSuper(SASLSHA1); - /** PrivateConstructor: SASLSHA1 - * SASL SCRAM SHA 1 authentication. - */ - function SASLSHA1() { - var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'SCRAM-SHA-1'; - var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60; - sasl_sha1_classCallCheck(this, SASLSHA1); - return _super.call(this, mechname, isClientFirst, priority); - } - // eslint-disable-next-line class-methods-use-this - sasl_sha1_createClass(SASLSHA1, [{ - key: "test", - value: function test(connection) { - return connection.authcid !== null; - } - // eslint-disable-next-line class-methods-use-this - }, { - key: "onChallenge", + + + + + +var IN_MEMORY = umd._driver; +localforage.defineDriver(umd); +(0,localforage_setitems.extendPrototype)(localforage); +(0,localforage_getitems.extendPrototype)(localforage); +var Storage = /*#__PURE__*/function () { + function Storage(id, type) { + var _this = this; + var batchedWrites = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + storage_classCallCheck(this, Storage); + if (type === 'local' && !window.localStorage) { + throw new Error("Skeletor.storage: Environment does not support localStorage."); + } else if (type === 'session' && !window.sessionStorage) { + throw new Error("Skeletor.storage: Environment does not support sessionStorage."); + } + if (lodash_es_isString(type)) { + this.storeInitialized = this.initStore(type, batchedWrites); + } else { + this.store = type; + if (batchedWrites) { + this.store.debouncedSetItems = mergebounce_mergebounce(function (items) { + return _this.store.setItems(items); + }, 50, { + 'promise': true + }); + } + this.storeInitialized = Promise.resolve(); + } + this.name = id; + } + storage_createClass(Storage, [{ + key: "initStore", value: function () { - var _onChallenge = sasl_sha1_asyncToGenerator( /*#__PURE__*/sasl_sha1_regeneratorRuntime().mark(function _callee(connection, challenge) { - return sasl_sha1_regeneratorRuntime().wrap(function _callee$(_context) { + var _initStore = storage_asyncToGenerator( /*#__PURE__*/storage_regeneratorRuntime().mark(function _callee(type, batchedWrites) { + var _this2 = this; + return storage_regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: - _context.next = 2; - return scram.scramResponse(connection, challenge, 'SHA-1', 160); - case 2: - return _context.abrupt("return", _context.sent); - case 3: + if (!(type === 'session')) { + _context.next = 4; + break; + } + localforage.setDriver(drivers_sessionStorage._driver); + _context.next = 15; + break; + case 4: + if (!(type === 'local')) { + _context.next = 9; + break; + } + _context.next = 7; + return localforage.config({ + 'driver': localforage.LOCALSTORAGE + }); + case 7: + _context.next = 15; + break; + case 9: + if (!(type === 'in_memory')) { + _context.next = 13; + break; + } + localforage.config({ + 'driver': IN_MEMORY + }); + _context.next = 15; + break; + case 13: + if (!(type !== 'indexed')) { + _context.next = 15; + break; + } + throw new Error("Skeletor.storage: No storage type was specified"); + case 15: + this.store = localforage; + if (batchedWrites) { + this.store.debouncedSetItems = mergebounce_mergebounce(function (items) { + return _this2.store.setItems(items); + }, 50, { + 'promise': true + }); + } + case 17: case "end": return _context.stop(); } - }, _callee); + }, _callee, this); })); - function onChallenge(_x, _x2) { - return _onChallenge.apply(this, arguments); + function initStore(_x, _x2) { + return _initStore.apply(this, arguments); } - return onChallenge; - }() // eslint-disable-next-line class-methods-use-this + return initStore; + }() }, { - key: "clientChallenge", - value: function clientChallenge(connection, test_cnonce) { - return scram.clientChallenge(connection, test_cnonce); + key: "flush", + value: function flush() { + var _this$store$debounced; + return (_this$store$debounced = this.store.debouncedSetItems) === null || _this$store$debounced === void 0 ? void 0 : _this$store$debounced.flush(); } - }]); - return SASLSHA1; -}(SASLMechanism); - -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-sha256.js -function sasl_sha256_typeof(obj) { - "@babel/helpers - typeof"; - - return sasl_sha256_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, sasl_sha256_typeof(obj); -} -function sasl_sha256_regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - sasl_sha256_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; - } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; + }, { + key: "clear", + value: function () { + var _clear = storage_asyncToGenerator( /*#__PURE__*/storage_regeneratorRuntime().mark(function _callee2() { + var _this3 = this; + var re, keys, removed_keys; + return storage_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return this.store.removeItem(this.name).catch(function (e) { + return console.error(e); + }); + case 2: + re = new RegExp("^".concat(this.name, "-")); + _context2.next = 5; + return this.store.keys(); + case 5: + keys = _context2.sent; + removed_keys = keys.filter(function (k) { + return re.test(k); + }); + _context2.next = 9; + return Promise.all(removed_keys.map(function (k) { + return _this3.store.removeItem(k).catch(function (e) { + return console.error(e); + }); + })); + case 9: + case "end": + return _context2.stop(); + } + }, _callee2, this); + })); + function clear() { + return _clear.apply(this, arguments); + } + return clear; + }() + }, { + key: "sync", + value: function sync() { + var that = this; + function localSync(_x3, _x4, _x5) { + return _localSync.apply(this, arguments); + } + function _localSync() { + _localSync = storage_asyncToGenerator( /*#__PURE__*/storage_regeneratorRuntime().mark(function _callee3(method, model, options) { + var resp, errorMessage, promise, new_attributes, collection, original_attributes, data; + return storage_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + // We get the collection (and if necessary the model attribute. + // Waiting for storeInitialized will cause another iteration of + // the event loop, after which the collection reference will + // be removed from the model. + collection = model.collection; + if (['patch', 'update'].includes(method)) { + new_attributes = lodash_es_cloneDeep(model.attributes); + } + _context3.next = 4; + return that.storeInitialized; + case 4: + _context3.prev = 4; + original_attributes = model.attributes; + _context3.t0 = method; + _context3.next = _context3.t0 === "read" ? 9 : _context3.t0 === "create" ? 19 : _context3.t0 === 'patch' ? 23 : _context3.t0 === "update" ? 23 : _context3.t0 === "delete" ? 30 : 34; + break; + case 9: + if (!(model.id !== undefined)) { + _context3.next = 15; + break; + } + _context3.next = 12; + return that.find(model); + case 12: + resp = _context3.sent; + _context3.next = 18; + break; + case 15: + _context3.next = 17; + return that.findAll(); + case 17: + resp = _context3.sent; + case 18: + return _context3.abrupt("break", 34); + case 19: + _context3.next = 21; + return that.create(model, options); + case 21: + resp = _context3.sent; + return _context3.abrupt("break", 34); + case 23: + if (options.wait) { + // When `wait` is set to true, Skeletor waits until + // confirmation of storage before setting the values on + // the model. + // However, the new attributes needs to be sent, so it + // sets them manually on the model and then removes + // them after calling `sync`. + // Because our `sync` method is asynchronous and we + // wait for `storeInitialized`, the attributes are + // already restored once we get here, so we need to do + // the attributes dance again. + model.attributes = new_attributes; + } + promise = that.update(model, options); + if (options.wait) { + model.attributes = original_attributes; + } + _context3.next = 28; + return promise; + case 28: + resp = _context3.sent; + return _context3.abrupt("break", 34); + case 30: + _context3.next = 32; + return that.destroy(model, collection); + case 32: + resp = _context3.sent; + return _context3.abrupt("break", 34); + case 34: + _context3.next = 39; + break; + case 36: + _context3.prev = 36; + _context3.t1 = _context3["catch"](4); + if (_context3.t1.code === 22 && that.getStorageSize() === 0) { + errorMessage = "Private browsing is unsupported"; + } else { + errorMessage = _context3.t1.message; + } + case 39: + if (resp) { + if (options && options.success) { + // When storing, we don't pass back the response (which is + // the set attributes returned from localforage because + // Skeletor sets them again on the model and due to the async + // nature of localforage it can cause stale attributes to be + // set on a model after it's been updated in the meantime. + data = method === "read" ? resp : null; + options.success(data, options); + } + } else { + errorMessage = errorMessage ? errorMessage : "Record Not Found"; + if (options && options.error) { + options.error(errorMessage); + } + } + case 40: + case "end": + return _context3.stop(); + } + }, _callee3, null, [[4, 36]]); + })); + return _localSync.apply(this, arguments); + } + localSync.__name__ = 'localSync'; + return localSync; + } + }, { + key: "removeCollectionReference", + value: function removeCollectionReference(model, collection) { + var _this4 = this; + if (!collection) { + return; + } + var ids = collection.filter(function (m) { + return m.id !== model.id; + }).map(function (m) { + return _this4.getItemName(m.id); + }); + return this.store.setItem(this.name, ids); + } + }, { + key: "addCollectionReference", + value: function addCollectionReference(model, collection) { + var _this5 = this; + if (!collection) { + return; + } + var ids = collection.map(function (m) { + return _this5.getItemName(m.id); + }); + var new_id = this.getItemName(model.id); + if (!ids.includes(new_id)) { + ids.push(new_id); + } + return this.store.setItem(this.name, ids); + } + }, { + key: "getCollectionReferenceData", + value: function getCollectionReferenceData(model) { + var _this6 = this; + if (!model.collection) { + return {}; + } + var ids = model.collection.map(function (m) { + return _this6.getItemName(m.id); + }); + var new_id = this.getItemName(model.id); + if (!ids.includes(new_id)) { + ids.push(new_id); + } + var result = {}; + result[this.name] = ids; + return result; + } + }, { + key: "save", + value: function () { + var _save = storage_asyncToGenerator( /*#__PURE__*/storage_regeneratorRuntime().mark(function _callee4(model) { + var items, key, data; + return storage_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + if (!this.store.setItems) { + _context4.next = 7; + break; + } + items = {}; + items[this.getItemName(model.id)] = model.toJSON(); + Object.assign(items, this.getCollectionReferenceData(model)); + return _context4.abrupt("return", this.store.debouncedSetItems ? this.store.debouncedSetItems(items) : this.store.setItems(items)); + case 7: + key = this.getItemName(model.id); + _context4.next = 10; + return this.store.setItem(key, model.toJSON()); + case 10: + data = _context4.sent; + _context4.next = 13; + return this.addCollectionReference(model, model.collection); + case 13: + return _context4.abrupt("return", data); + case 14: + case "end": + return _context4.stop(); + } + }, _callee4, this); + })); + function save(_x6) { + return _save.apply(this, arguments); + } + return save; + }() + }, { + key: "create", + value: function create(model, options) { + /* Add a model, giving it a (hopefully)-unique GUID, if it doesn't already + * have an id of it's own. + */ + if (!model.id) { + model.id = guid(); + model.set(model.idAttribute, model.id, options); + } + return this.save(model); + } + }, { + key: "update", + value: function update(model) { + return this.save(model); + } + }, { + key: "find", + value: function find(model) { + return this.store.getItem(this.getItemName(model.id)); + } + }, { + key: "findAll", + value: function () { + var _findAll = storage_asyncToGenerator( /*#__PURE__*/storage_regeneratorRuntime().mark(function _callee5() { + var keys, items; + return storage_regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + _context5.next = 2; + return this.store.getItem(this.name); + case 2: + keys = _context5.sent; + if (!(keys !== null && keys !== void 0 && keys.length)) { + _context5.next = 8; + break; + } + _context5.next = 6; + return this.store.getItems(keys); + case 6: + items = _context5.sent; + return _context5.abrupt("return", Object.values(items)); + case 8: + return _context5.abrupt("return", []); + case 9: + case "end": + return _context5.stop(); + } + }, _callee5, this); + })); + function findAll() { + return _findAll.apply(this, arguments); + } + return findAll; + }() + }, { + key: "destroy", + value: function () { + var _destroy = storage_asyncToGenerator( /*#__PURE__*/storage_regeneratorRuntime().mark(function _callee6(model, collection) { + return storage_regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + _context6.next = 2; + return this.flush(); + case 2: + _context6.next = 4; + return this.store.removeItem(this.getItemName(model.id)); + case 4: + _context6.next = 6; + return this.removeCollectionReference(model, collection); + case 6: + return _context6.abrupt("return", model); + case 7: + case "end": + return _context6.stop(); + } + }, _callee6, this); + })); + function destroy(_x7, _x8) { + return _destroy.apply(this, arguments); + } + return destroy; + }() + }, { + key: "getStorageSize", + value: function getStorageSize() { + return this.store.length; + } + }, { + key: "getItemName", + value: function getItemName(id) { + return this.name + "-" + id; + } + }]); + return Storage; +}(); +Storage.sessionStorageInitialized = localforage.defineDriver(drivers_sessionStorage); +Storage.localForage = localforage; +/* harmony default export */ const storage = (Storage); +;// CONCATENATED MODULE: ./src/headless/utils/storage.js + + +function getDefaultStore() { + if (shared_converse.config.get('trusted')) { + var is_non_persistent = shared_api.settings.get('persistent_store') === 'sessionStorage'; + return is_non_persistent ? 'session' : 'persistent'; + } else { + return 'session'; + } +} +function storeUsesIndexedDB(store) { + return store === 'persistent' && shared_api.settings.get('persistent_store') === 'IndexedDB'; +} +function createStore(id, store) { + var name = store || getDefaultStore(); + var s = shared_converse.storage[name]; + if (typeof s === 'undefined') { + throw new TypeError("createStore: Could not find store for ".concat(id)); + } + return new storage(id, s, storeUsesIndexedDB(store)); +} +function initStorage(model, id, type) { + var store = type || getDefaultStore(); + model.browserStorage = createStore(id, store); + if (storeUsesIndexedDB(store)) { + var flush = function flush() { + return model.browserStorage.flush(); + }; + window.addEventListener(shared_converse.unloadevent, flush); + model.on('destroy', function () { + return window.removeEventListener(shared_converse.unloadevent, flush); + }); + model.listenTo(shared_converse, 'beforeLogout', flush); + } +} +;// CONCATENATED MODULE: ./src/headless/shared/settings/utils.js +function utils_typeof(obj) { + "@babel/helpers - typeof"; + + return utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, utils_typeof(obj); +} +function utils_regeneratorRuntime() { + "use strict"; + + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + utils_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; + } + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; } catch (err) { return { type: "throw", @@ -18807,7 +17707,7 @@ function sasl_sha256_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == sasl_sha256_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == utils_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -19032,7 +17932,7 @@ function sasl_sha256_regeneratorRuntime() { } }, exports; } -function sasl_sha256_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -19046,196 +17946,194 @@ function sasl_sha256_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key Promise.resolve(value).then(_next, _throw); } } -function sasl_sha256_asyncToGenerator(fn) { +function utils_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - sasl_sha256_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - sasl_sha256_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -function sasl_sha256_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} -function sasl_sha256_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, sasl_sha256_toPropertyKey(descriptor.key), descriptor); - } + + + + + + + + + + + +var app_settings; +var init_settings = {}; // Container for settings passed in via converse.initialize +var user_settings; // User settings, populated via api.users.settings + +function getAppSettings() { + return app_settings; } -function sasl_sha256_createClass(Constructor, protoProps, staticProps) { - if (protoProps) sasl_sha256_defineProperties(Constructor.prototype, protoProps); - if (staticProps) sasl_sha256_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; +function initAppSettings(settings) { + init_settings = settings; + app_settings = {}; + Object.assign(app_settings, Events); + + // Allow only whitelisted settings to be overwritten via converse.initialize + var allowed_settings = lodash_es_pick(settings, Object.keys(DEFAULT_SETTINGS)); + lodash_es_assignIn(app_settings, DEFAULT_SETTINGS, allowed_settings); } -function sasl_sha256_toPropertyKey(arg) { - var key = sasl_sha256_toPrimitive(arg, "string"); - return sasl_sha256_typeof(key) === "symbol" ? key : String(key); +function getInitSettings() { + return init_settings; } -function sasl_sha256_toPrimitive(input, hint) { - if (sasl_sha256_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (sasl_sha256_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); +function getAppSetting(key) { + if (Object.keys(DEFAULT_SETTINGS).includes(key)) { + return app_settings[key]; } - return (hint === "string" ? String : Number)(input); } -function sasl_sha256_inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true +function extendAppSettings(settings) { + core.merge(DEFAULT_SETTINGS, settings); + // When updating the settings, we need to avoid overwriting the + // initialization_settings (i.e. the settings passed in via converse.initialize). + var allowed_keys = Object.keys(lodash_es_pick(settings, Object.keys(DEFAULT_SETTINGS))); + var allowed_site_settings = lodash_es_pick(init_settings, allowed_keys); + var updated_settings = lodash_es_assignIn(lodash_es_pick(settings, allowed_keys), allowed_site_settings); + core.merge(app_settings, updated_settings); +} +function registerListener(name, func, context) { + app_settings.on(name, func, context); +} +function unregisterListener(name, func) { + app_settings.off(name, func); +} +function updateAppSettings(key, val) { + if (key == null) return this; // eslint-disable-line no-eq-null + + var attrs; + if (lodash_es_isObject(key)) { + attrs = key; + } else if (typeof key === 'string') { + attrs = {}; + attrs[key] = val; + } + var allowed_keys = Object.keys(lodash_es_pick(attrs, Object.keys(DEFAULT_SETTINGS))); + var changed = {}; + allowed_keys.forEach(function (k) { + var val = attrs[k]; + if (!lodash_es_isEqual(app_settings[k], val)) { + changed[k] = val; + app_settings[k] = val; } }); - Object.defineProperty(subClass, "prototype", { - writable: false + Object.keys(changed).forEach(function (k) { + return app_settings.trigger('change:' + k, changed[k]); }); - if (superClass) sasl_sha256_setPrototypeOf(subClass, superClass); + app_settings.trigger('change', changed); } -function sasl_sha256_setPrototypeOf(o, p) { - sasl_sha256_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return sasl_sha256_setPrototypeOf(o, p); + +/** + * @async + */ +function initUserSettings() { + var _user_settings; + if (!shared_converse.bare_jid) { + var msg = "No JID to fetch user settings for"; + log.error(msg); + throw Error(msg); + } + if (!((_user_settings = user_settings) !== null && _user_settings !== void 0 && _user_settings.fetched)) { + var id = "converse.user-settings.".concat(shared_converse.bare_jid); + user_settings = new Model({ + id: id + }); + initStorage(user_settings, id); + user_settings.fetched = user_settings.fetch({ + 'promise': true + }); + } + return user_settings.fetched; } -function sasl_sha256_createSuper(Derived) { - var hasNativeReflectConstruct = sasl_sha256_isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = sasl_sha256_getPrototypeOf(Derived), - result; - if (hasNativeReflectConstruct) { - var NewTarget = sasl_sha256_getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return sasl_sha256_possibleConstructorReturn(this, result); - }; +function getUserSettings() { + return _getUserSettings.apply(this, arguments); } -function sasl_sha256_possibleConstructorReturn(self, call) { - if (call && (sasl_sha256_typeof(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return sasl_sha256_assertThisInitialized(self); +function _getUserSettings() { + _getUserSettings = utils_asyncToGenerator( /*#__PURE__*/utils_regeneratorRuntime().mark(function _callee() { + return utils_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return initUserSettings(); + case 2: + return _context.abrupt("return", user_settings); + case 3: + case "end": + return _context.stop(); + } + }, _callee); + })); + return _getUserSettings.apply(this, arguments); } -function sasl_sha256_assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self; +function updateUserSettings(_x, _x2) { + return _updateUserSettings.apply(this, arguments); } -function sasl_sha256_isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; - } +function _updateUserSettings() { + _updateUserSettings = utils_asyncToGenerator( /*#__PURE__*/utils_regeneratorRuntime().mark(function _callee2(data, options) { + return utils_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return initUserSettings(); + case 2: + return _context2.abrupt("return", user_settings.save(data, options)); + case 3: + case "end": + return _context2.stop(); + } + }, _callee2); + })); + return _updateUserSettings.apply(this, arguments); } -function sasl_sha256_getPrototypeOf(o) { - sasl_sha256_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return sasl_sha256_getPrototypeOf(o); +function clearUserSettings() { + return _clearUserSettings.apply(this, arguments); } - - -var SASLSHA256 = /*#__PURE__*/function (_SASLMechanism) { - sasl_sha256_inherits(SASLSHA256, _SASLMechanism); - var _super = sasl_sha256_createSuper(SASLSHA256); - /** PrivateConstructor: SASLSHA256 - * SASL SCRAM SHA 256 authentication. - */ - function SASLSHA256() { - var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'SCRAM-SHA-256'; - var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 70; - sasl_sha256_classCallCheck(this, SASLSHA256); - return _super.call(this, mechname, isClientFirst, priority); - } - - // eslint-disable-next-line class-methods-use-this - sasl_sha256_createClass(SASLSHA256, [{ - key: "test", - value: function test(connection) { - return connection.authcid !== null; - } - - // eslint-disable-next-line class-methods-use-this - }, { - key: "onChallenge", - value: function () { - var _onChallenge = sasl_sha256_asyncToGenerator( /*#__PURE__*/sasl_sha256_regeneratorRuntime().mark(function _callee(connection, challenge) { - return sasl_sha256_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return scram.scramResponse(connection, challenge, 'SHA-256', 256); - case 2: - return _context.abrupt("return", _context.sent); - case 3: - case "end": - return _context.stop(); - } - }, _callee); - })); - function onChallenge(_x, _x2) { - return _onChallenge.apply(this, arguments); +function _clearUserSettings() { + _clearUserSettings = utils_asyncToGenerator( /*#__PURE__*/utils_regeneratorRuntime().mark(function _callee3() { + return utils_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return initUserSettings(); + case 2: + return _context3.abrupt("return", user_settings.clear()); + case 3: + case "end": + return _context3.stop(); } - return onChallenge; - }() // eslint-disable-next-line class-methods-use-this - }, { - key: "clientChallenge", - value: function clientChallenge(connection, test_cnonce) { - return scram.clientChallenge(connection, test_cnonce); - } - }]); - return SASLSHA256; -}(SASLMechanism); - -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-sha384.js -function sasl_sha384_typeof(obj) { + }, _callee3); + })); + return _clearUserSettings.apply(this, arguments); +} +;// CONCATENATED MODULE: ./src/headless/shared/settings/api.js +function api_typeof(obj) { "@babel/helpers - typeof"; - return sasl_sha384_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return api_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, sasl_sha384_typeof(obj); + }, api_typeof(obj); } -function sasl_sha384_regeneratorRuntime() { +function api_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - sasl_sha384_regeneratorRuntime = function _regeneratorRuntime() { + api_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -19310,7 +18208,7 @@ function sasl_sha384_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == sasl_sha384_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == api_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -19535,7 +18433,7 @@ function sasl_sha384_regeneratorRuntime() { } }, exports; } -function sasl_sha384_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -19549,196 +18447,320 @@ function sasl_sha384_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key Promise.resolve(value).then(_next, _throw); } } -function sasl_sha384_asyncToGenerator(fn) { +function api_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - sasl_sha384_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - sasl_sha384_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -function sasl_sha384_classCallCheck(instance, Constructor) { + + + + +/** + * This grouping allows access to the + * [configuration settings](/docs/html/configuration.html#configuration-settings) + * of Converse. + * + * @namespace _converse.api.settings + * @memberOf _converse.api + */ +var settings_api = { + /** + * Allows new configuration settings to be specified, or new default values for + * existing configuration settings to be specified. + * + * Note, calling this method *after* converse.initialize has been + * called will *not* change the initialization settings provided via + * `converse.initialize`. + * + * @method _converse.api.settings.extend + * @param { object } settings The configuration settings + * @example + * _converse.api.settings.extend({ + * 'enable_foo': true + * }); + * + * // The user can then override the default value of the configuration setting when + * // calling `converse.initialize`. + * converse.initialize({ + * 'enable_foo': false + * }); + */ + extend: function extend(settings) { + return extendAppSettings(settings); + }, + update: function update(settings) { + log.warn('The api.settings.update method has been deprecated and will be removed. ' + 'Please use api.settings.extend instead.'); + return this.extend(settings); + }, + /** + * @method _converse.api.settings.get + * @returns {*} Value of the particular configuration setting. + * @example _converse.api.settings.get("play_sounds"); + */ + get: function get(key) { + return getAppSetting(key); + }, + /** + * Set one or many configuration settings. + * + * Note, this is not an alternative to calling {@link converse.initialize}, which still needs + * to be called. Generally, you'd use this method after Converse is already + * running and you want to change the configuration on-the-fly. + * + * @method _converse.api.settings.set + * @param { Object | string } [settings_or_key] + * An object containing configuration settings. + * Alternatively to passing in an object, you can pass in a key and a value. + * @param { string } [value] + * @example _converse.api.settings.set("play_sounds", true); + * @example + * _converse.api.settings.set({ + * "play_sounds": true, + * "hide_offline_users": true + * }); + */ + set: function set(settings_or_key, value) { + updateAppSettings(settings_or_key, value); + }, + /** + * The `listen` namespace exposes methods for creating event listeners + * (aka handlers) for events related to settings. + * + * @namespace _converse.api.settings.listen + * @memberOf _converse.api.settings + */ + listen: { + /** + * Register an event listener for the passed in event. + * @method _converse.api.settings.listen.on + * @param { ('change') } name - The name of the event to listen for. + * Currently there is only the 'change' event. + * @param { Function } handler - The event handler function + * @param { Object } [context] - The context of the `this` attribute of the + * handler function. + * @example _converse.api.settings.listen.on('change', callback); + */ + on: function on(name, handler, context) { + registerListener(name, handler, context); + }, + /** + * To stop listening to an event, you can use the `not` method. + * @method _converse.api.settings.listen.not + * @param { String } name The event's name + * @param { Function } handler The callback method that is to no longer be called when the event fires + * @example _converse.api.settings.listen.not('change', callback); + */ + not: function not(name, handler) { + unregisterListener(name, handler); + } + } +}; + +/** + * API for accessing and setting user settings. User settings are + * different from the application settings from {@link _converse.api.settings} + * because they are per-user and set via user action. + * @namespace _converse.api.user.settings + * @memberOf _converse.api.user + */ +var user_settings_api = { + /** + * Returns the user settings model. Useful when you want to listen for change events. + * @async + * @method _converse.api.user.settings.getModel + * @returns {Promise} + * @example const settings = await _converse.api.user.settings.getModel(); + */ + getModel: function getModel() { + return getUserSettings(); + }, + /** + * Get the value of a particular user setting. + * @method _converse.api.user.settings.get + * @param { String } key - The setting name + * @param {*} [fallback] - An optional fallback value if the user setting is undefined + * @returns {Promise} Promise which resolves with the value of the particular configuration setting. + * @example _converse.api.user.settings.get("foo"); + */ + get: function get(key, fallback) { + return api_asyncToGenerator( /*#__PURE__*/api_regeneratorRuntime().mark(function _callee() { + var user_settings; + return api_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return getUserSettings(); + case 2: + user_settings = _context.sent; + return _context.abrupt("return", user_settings.get(key) === undefined ? fallback : user_settings.get(key)); + case 4: + case "end": + return _context.stop(); + } + }, _callee); + }))(); + }, + /** + * Set one or many user settings. + * @async + * @method _converse.api.user.settings.set + * @param { Object } [settings] An object containing configuration settings. + * @param { string } [key] Alternatively to passing in an object, you can pass in a key and a value. + * @param { string } [value] + * @example _converse.api.user.settings.set("foo", "bar"); + * @example + * _converse.api.user.settings.set({ + * "foo": "bar", + * "baz": "buz" + * }); + */ + set: function set(key, val) { + if (lodash_es_isObject(key)) { + return updateUserSettings(key, { + 'promise': true + }); + } else { + var o = {}; + o[key] = val; + return updateUserSettings(o, { + 'promise': true + }); + } + }, + /** + * Clears all the user settings + * @async + * @method _converse.api.user.settings.clear + */ + clear: function clear() { + return clearUserSettings(); + } +}; +;// CONCATENATED MODULE: ./src/headless/utils/stanza.js +function stanza_typeof(obj) { + "@babel/helpers - typeof"; + + return stanza_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, stanza_typeof(obj); +} +function stanza_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function sasl_sha384_defineProperties(target, props) { +function stanza_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, sasl_sha384_toPropertyKey(descriptor.key), descriptor); + Object.defineProperty(target, stanza_toPropertyKey(descriptor.key), descriptor); } } -function sasl_sha384_createClass(Constructor, protoProps, staticProps) { - if (protoProps) sasl_sha384_defineProperties(Constructor.prototype, protoProps); - if (staticProps) sasl_sha384_defineProperties(Constructor, staticProps); +function stanza_createClass(Constructor, protoProps, staticProps) { + if (protoProps) stanza_defineProperties(Constructor.prototype, protoProps); + if (staticProps) stanza_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function sasl_sha384_toPropertyKey(arg) { - var key = sasl_sha384_toPrimitive(arg, "string"); - return sasl_sha384_typeof(key) === "symbol" ? key : String(key); +function stanza_toPropertyKey(arg) { + var key = stanza_toPrimitive(arg, "string"); + return stanza_typeof(key) === "symbol" ? key : String(key); } -function sasl_sha384_toPrimitive(input, hint) { - if (sasl_sha384_typeof(input) !== "object" || input === null) return input; +function stanza_toPrimitive(input, hint) { + if (stanza_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); - if (sasl_sha384_typeof(res) !== "object") return res; + if (stanza_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -function sasl_sha384_inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); + + +var PARSE_ERROR_NS = 'http://www.w3.org/1999/xhtml'; +function toStanza(string, throwErrorIfInvalidNS) { + var doc = external_strophe_namespaceObject.Strophe.xmlHtmlNode(string); + if (doc.getElementsByTagNameNS(PARSE_ERROR_NS, 'parsererror').length) { + throw new Error("Parser Error: ".concat(string)); } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) sasl_sha384_setPrototypeOf(subClass, superClass); -} -function sasl_sha384_setPrototypeOf(o, p) { - sasl_sha384_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return sasl_sha384_setPrototypeOf(o, p); -} -function sasl_sha384_createSuper(Derived) { - var hasNativeReflectConstruct = sasl_sha384_isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = sasl_sha384_getPrototypeOf(Derived), - result; - if (hasNativeReflectConstruct) { - var NewTarget = sasl_sha384_getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return sasl_sha384_possibleConstructorReturn(this, result); - }; -} -function sasl_sha384_possibleConstructorReturn(self, call) { - if (call && (sasl_sha384_typeof(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); + var node = doc.firstElementChild; + if (['message', 'iq', 'presence'].includes(node.nodeName.toLowerCase()) && node.namespaceURI !== 'jabber:client' && node.namespaceURI !== 'jabber:server') { + var err_msg = "Invalid namespaceURI ".concat(node.namespaceURI); + log.error(err_msg); + if (throwErrorIfInvalidNS) throw new Error(err_msg); } - return sasl_sha384_assertThisInitialized(self); + return node; } -function sasl_sha384_assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self; -} -function sasl_sha384_isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; - } -} -function sasl_sha384_getPrototypeOf(o) { - sasl_sha384_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return sasl_sha384_getPrototypeOf(o); -} - -var SASLSHA384 = /*#__PURE__*/function (_SASLMechanism) { - sasl_sha384_inherits(SASLSHA384, _SASLMechanism); - var _super = sasl_sha384_createSuper(SASLSHA384); - /** PrivateConstructor: SASLSHA384 - * SASL SCRAM SHA 384 authentication. - */ - function SASLSHA384() { - var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'SCRAM-SHA-384'; - var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 71; - sasl_sha384_classCallCheck(this, SASLSHA384); - return _super.call(this, mechname, isClientFirst, priority); +/** + * A Stanza represents a XML element used in XMPP (commonly referred to as + * stanzas). + */ +var Stanza = /*#__PURE__*/function () { + function Stanza(strings, values) { + stanza_classCallCheck(this, Stanza); + this.strings = strings; + this.values = values; } - - // eslint-disable-next-line class-methods-use-this - sasl_sha384_createClass(SASLSHA384, [{ - key: "test", - value: function test(connection) { - return connection.authcid !== null; + stanza_createClass(Stanza, [{ + key: "toString", + value: function toString() { + var _this = this; + this.string = this.string || this.strings.reduce(function (acc, str) { + var idx = _this.strings.indexOf(str); + var value = _this.values.length > idx ? _this.values[idx].toString() : ''; + return acc + str + value; + }, ''); + return this.string; } - - // eslint-disable-next-line class-methods-use-this - }, { - key: "onChallenge", - value: function () { - var _onChallenge = sasl_sha384_asyncToGenerator( /*#__PURE__*/sasl_sha384_regeneratorRuntime().mark(function _callee(connection, challenge) { - return sasl_sha384_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return scram.scramResponse(connection, challenge, 'SHA-384', 384); - case 2: - return _context.abrupt("return", _context.sent); - case 3: - case "end": - return _context.stop(); - } - }, _callee); - })); - function onChallenge(_x, _x2) { - return _onChallenge.apply(this, arguments); - } - return onChallenge; - }() // eslint-disable-next-line class-methods-use-this }, { - key: "clientChallenge", - value: function clientChallenge(connection, test_cnonce) { - return scram.clientChallenge(connection, test_cnonce); + key: "tree", + value: function tree() { + var _this$node; + this.node = (_this$node = this.node) !== null && _this$node !== void 0 ? _this$node : toStanza(this.toString(), true); + return this.node; } }]); - return SASLSHA384; -}(SASLMechanism); - -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-sha512.js -function sasl_sha512_typeof(obj) { - "@babel/helpers - typeof"; - - return sasl_sha512_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, sasl_sha512_typeof(obj); + return Stanza; +}(); +/** + * Tagged template literal function which generates {@link Stanza } objects + * + * Similar to the `html` function, from Lit. + * + * @example stx`${show}` + */ +function stx(strings) { + for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + values[_key - 1] = arguments[_key]; + } + return new Stanza(strings, values); } -function sasl_sha512_regeneratorRuntime() { +;// CONCATENATED MODULE: ./src/headless/utils/core.js +function core_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - sasl_sha512_regeneratorRuntime = function _regeneratorRuntime() { + core_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -19813,7 +18835,7 @@ function sasl_sha512_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == sasl_sha512_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == core_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -20038,7 +19060,65 @@ function sasl_sha512_regeneratorRuntime() { } }, exports; } -function sasl_sha512_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); +} +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; +} +function _iterableToArrayLimit(arr, i) { + var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; + if (null != _i) { + var _s, + _e, + _x, + _r, + _arr = [], + _n = !0, + _d = !1; + try { + if (_x = (_i = _i.call(arr)).next, 0 === i) { + if (Object(_i) !== _i) return; + _n = !1; + } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); + } catch (err) { + _d = !0, _e = err; + } finally { + try { + if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; + } finally { + if (_d) throw _e; + } + } + return _arr; + } +} +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} +function core_typeof(obj) { + "@babel/helpers - typeof"; + + return core_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, core_typeof(obj); +} +function core_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -20052,4075 +19132,3713 @@ function sasl_sha512_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key Promise.resolve(value).then(_next, _throw); } } -function sasl_sha512_asyncToGenerator(fn) { +function core_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - sasl_sha512_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + core_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - sasl_sha512_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + core_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -function sasl_sha512_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } +/** + * @copyright The Converse.js contributors + * @license Mozilla Public License (MPLv2) + * @description This is the core utilities module. + */ + + + + + + + + + + + + + +/** + * The utils object + * @namespace u + */ +var u = {}; +function isElement(el) { + return el instanceof Element || el instanceof HTMLDocument; } -function sasl_sha512_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, sasl_sha512_toPropertyKey(descriptor.key), descriptor); +function isError(obj) { + return Object.prototype.toString.call(obj) === "[object Error]"; +} +function core_isFunction(val) { + return typeof val === 'function'; +} +function isEmptyMessage(attrs) { + if (attrs instanceof Model) { + attrs = attrs.attributes; } + return !attrs['oob_url'] && !attrs['file'] && !(attrs['is_encrypted'] && attrs['plaintext']) && !attrs['message'] && !attrs['body']; } -function sasl_sha512_createClass(Constructor, protoProps, staticProps) { - if (protoProps) sasl_sha512_defineProperties(Constructor.prototype, protoProps); - if (staticProps) sasl_sha512_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; + +/** + * We distinguish between UniView and MultiView instances. + * + * UniView means that only one chat is visible, even though there might be multiple ongoing chats. + * MultiView means that multiple chats may be visible simultaneously. + */ +function isUniView() { + return ['mobile', 'fullscreen', 'embedded'].includes(settings_api.get("view_mode")); } -function sasl_sha512_toPropertyKey(arg) { - var key = sasl_sha512_toPrimitive(arg, "string"); - return sasl_sha512_typeof(key) === "symbol" ? key : String(key); +function shouldClearCache() { + var api = shared_converse.api; + return !shared_converse.config.get('trusted') || api.settings.get('clear_cache_on_logout') || shared_converse.isTestEnv(); } -function sasl_sha512_toPrimitive(input, hint) { - if (sasl_sha512_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (sasl_sha512_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); +function tearDown() { + return _tearDown.apply(this, arguments); } -function sasl_sha512_inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - Object.defineProperty(subClass, "prototype", { - writable: false +function _tearDown() { + _tearDown = core_asyncToGenerator( /*#__PURE__*/core_regeneratorRuntime().mark(function _callee() { + var api; + return core_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + api = shared_converse.api; + _context.next = 3; + return api.trigger('beforeTearDown', { + 'synchronous': true + }); + case 3: + window.removeEventListener('click', shared_converse.onUserActivity); + window.removeEventListener('focus', shared_converse.onUserActivity); + window.removeEventListener('keypress', shared_converse.onUserActivity); + window.removeEventListener('mousemove', shared_converse.onUserActivity); + window.removeEventListener(shared_converse.unloadevent, shared_converse.onUserActivity); + window.clearInterval(shared_converse.everySecondTrigger); + api.trigger('afterTearDown'); + return _context.abrupt("return", shared_converse); + case 11: + case "end": + return _context.stop(); + } + }, _callee); + })); + return _tearDown.apply(this, arguments); +} +function clearSession() { + var _converse$session; + (_converse$session = shared_converse.session) === null || _converse$session === void 0 ? void 0 : _converse$session.destroy(); + delete shared_converse.session; + shouldClearCache() && shared_converse.api.user.settings.clear(); + /** + * Synchronouse event triggered once the user session has been cleared, + * for example when the user has logged out or when Converse has + * disconnected for some other reason. + * @event _converse#clearSession + */ + return shared_converse.api.trigger('clearSession', { + 'synchronous': true }); - if (superClass) sasl_sha512_setPrototypeOf(subClass, superClass); } -function sasl_sha512_setPrototypeOf(o, p) { - sasl_sha512_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return sasl_sha512_setPrototypeOf(o, p); + +/** + * Given a message object, return its text with @ chars + * inserted before the mentioned nicknames. + */ +function prefixMentions(message) { + var text = message.getMessageText(); + (message.get('references') || []).sort(function (a, b) { + return b.begin - a.begin; + }).forEach(function (ref) { + text = "".concat(text.slice(0, ref.begin), "@").concat(text.slice(ref.begin)); + }); + return text; } -function sasl_sha512_createSuper(Derived) { - var hasNativeReflectConstruct = sasl_sha512_isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = sasl_sha512_getPrototypeOf(Derived), - result; - if (hasNativeReflectConstruct) { - var NewTarget = sasl_sha512_getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); +u.isTagEqual = function (stanza, name) { + var _stanza$tree; + if ((_stanza$tree = stanza.tree) !== null && _stanza$tree !== void 0 && _stanza$tree.call(stanza)) { + return u.isTagEqual(stanza.tree(), name); + } else if (!(stanza instanceof Element)) { + throw Error("isTagEqual called with value which isn't " + "an element or Strophe.Builder instance"); + } else { + return external_strophe_namespaceObject.Strophe.isTagEqual(stanza, name); + } +}; +u.getJIDFromURI = function (jid) { + return jid.startsWith('xmpp:') && jid.endsWith('?join') ? jid.replace(/^xmpp:/, '').replace(/\?join$/, '') : jid; +}; +u.getLongestSubstring = function (string, candidates) { + function reducer(accumulator, current_value) { + if (string.startsWith(current_value)) { + if (current_value.length > accumulator.length) { + return current_value; + } else { + return accumulator; + } } else { - result = Super.apply(this, arguments); + return accumulator; } - return sasl_sha512_possibleConstructorReturn(this, result); - }; -} -function sasl_sha512_possibleConstructorReturn(self, call) { - if (call && (sasl_sha512_typeof(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); } - return sasl_sha512_assertThisInitialized(self); -} -function sasl_sha512_assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return candidates.reduce(reducer, ''); +}; +function isValidJID(jid) { + if (typeof jid === 'string') { + return lodash_es_compact(jid.split('@')).length === 2 && !jid.startsWith('@') && !jid.endsWith('@'); } - return self; + return false; } -function sasl_sha512_isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { +u.isValidMUCJID = function (jid) { + return !jid.startsWith('@') && !jid.endsWith('@'); +}; +u.isSameBareJID = function (jid1, jid2) { + if (typeof jid1 !== 'string' || typeof jid2 !== 'string') { return false; } -} -function sasl_sha512_getPrototypeOf(o) { - sasl_sha512_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return sasl_sha512_getPrototypeOf(o); -} - - -var SASLSHA512 = /*#__PURE__*/function (_SASLMechanism) { - sasl_sha512_inherits(SASLSHA512, _SASLMechanism); - var _super = sasl_sha512_createSuper(SASLSHA512); - /** PrivateConstructor: SASLSHA512 - * SASL SCRAM SHA 512 authentication. + return external_strophe_namespaceObject.Strophe.getBareJidFromJid(jid1).toLowerCase() === external_strophe_namespaceObject.Strophe.getBareJidFromJid(jid2).toLowerCase(); +}; +u.isSameDomain = function (jid1, jid2) { + if (typeof jid1 !== 'string' || typeof jid2 !== 'string') { + return false; + } + return external_strophe_namespaceObject.Strophe.getDomainFromJid(jid1).toLowerCase() === external_strophe_namespaceObject.Strophe.getDomainFromJid(jid2).toLowerCase(); +}; +u.isNewMessage = function (message) { + /* Given a stanza, determine whether it's a new + * message, i.e. not a MAM archived one. */ - function SASLSHA512() { - var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'SCRAM-SHA-512'; - var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 72; - sasl_sha512_classCallCheck(this, SASLSHA512); - return _super.call(this, mechname, isClientFirst, priority); + if (message instanceof Element) { + return !(external_sizzle_default()("result[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.MAM, "\"]"), message).length && external_sizzle_default()("delay[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.DELAY, "\"]"), message).length); + } else if (message instanceof Model) { + message = message.attributes; } - - // eslint-disable-next-line class-methods-use-this - sasl_sha512_createClass(SASLSHA512, [{ - key: "test", - value: function test(connection) { - return connection.authcid !== null; - } - - // eslint-disable-next-line class-methods-use-this - }, { - key: "onChallenge", - value: function () { - var _onChallenge = sasl_sha512_asyncToGenerator( /*#__PURE__*/sasl_sha512_regeneratorRuntime().mark(function _callee(connection, challenge) { - return sasl_sha512_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return scram.scramResponse(connection, challenge, 'SHA-512', 512); - case 2: - return _context.abrupt("return", _context.sent); - case 3: - case "end": - return _context.stop(); - } - }, _callee); - })); - function onChallenge(_x, _x2) { - return _onChallenge.apply(this, arguments); - } - return onChallenge; - }() // eslint-disable-next-line class-methods-use-this - }, { - key: "clientChallenge", - value: function clientChallenge(connection, test_cnonce) { - return scram.clientChallenge(connection, test_cnonce); - } - }]); - return SASLSHA512; -}(SASLMechanism); - -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-xoauth2.js -function sasl_xoauth2_typeof(obj) { - "@babel/helpers - typeof"; - - return sasl_xoauth2_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, sasl_xoauth2_typeof(obj); + return !(message['is_delayed'] && message['is_archived']); +}; +u.shouldCreateMessage = function (attrs) { + return attrs['retracted'] || + // Retraction received *before* the message + !isEmptyMessage(attrs); +}; +u.shouldCreateGroupchatMessage = function (attrs) { + return attrs.nick && (u.shouldCreateMessage(attrs) || attrs.is_tombstone); +}; +u.isChatRoom = function (model) { + return model && model.get('type') === 'chatroom'; +}; +function isErrorObject(o) { + return o instanceof Error; } -function sasl_xoauth2_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); +u.isErrorStanza = function (stanza) { + if (!isElement(stanza)) { + return false; } -} -function sasl_xoauth2_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, sasl_xoauth2_toPropertyKey(descriptor.key), descriptor); + return stanza.getAttribute('type') === 'error'; +}; +u.isForbiddenError = function (stanza) { + if (!isElement(stanza)) { + return false; } -} -function sasl_xoauth2_createClass(Constructor, protoProps, staticProps) { - if (protoProps) sasl_xoauth2_defineProperties(Constructor.prototype, protoProps); - if (staticProps) sasl_xoauth2_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function sasl_xoauth2_toPropertyKey(arg) { - var key = sasl_xoauth2_toPrimitive(arg, "string"); - return sasl_xoauth2_typeof(key) === "symbol" ? key : String(key); -} -function sasl_xoauth2_toPrimitive(input, hint) { - if (sasl_xoauth2_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (sasl_xoauth2_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); + return external_sizzle_default()("error[type=\"auth\"] forbidden[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.STANZAS, "\"]"), stanza).length > 0; +}; +u.isServiceUnavailableError = function (stanza) { + if (!isElement(stanza)) { + return false; + } + return external_sizzle_default()("error[type=\"cancel\"] service-unavailable[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.STANZAS, "\"]"), stanza).length > 0; +}; + +/** + * Merge the second object into the first one. + * @method u#merge + * @param { Object } dst + * @param { Object } src + */ +function core_merge(dst, src) { + for (var k in src) { + if (!Object.prototype.hasOwnProperty.call(src, k)) continue; + if (k === "__proto__" || k === "constructor") continue; + if (lodash_es_isObject(dst[k])) { + core_merge(dst[k], src[k]); + } else { + dst[k] = src[k]; + } } - return (hint === "string" ? String : Number)(input); } -function sasl_xoauth2_inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); +u.getOuterWidth = function (el) { + var include_margin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var width = el.offsetWidth; + if (!include_margin) { + return width; } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - Object.defineProperty(subClass, "prototype", { - writable: false + var style = window.getComputedStyle(el); + width += parseInt(style.marginLeft ? style.marginLeft : 0, 10) + parseInt(style.marginRight ? style.marginRight : 0, 10); + return width; +}; + +/** + * Converts an HTML string into a DOM element. + * Expects that the HTML string has only one top-level element, + * i.e. not multiple ones. + * @private + * @method u#stringToElement + * @param { String } s - The HTML string + */ +u.stringToElement = function (s) { + var div = document.createElement('div'); + div.innerHTML = s; + return div.firstElementChild; +}; + +/** + * Checks whether the DOM element matches the given selector. + * @private + * @method u#matchesSelector + * @param { Element } el - The DOM element + * @param { String } selector - The selector + */ +u.matchesSelector = function (el, selector) { + var match = el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector; + return match ? match.call(el, selector) : false; +}; + +/** + * Returns a list of children of the DOM element that match the selector. + * @private + * @method u#queryChildren + * @param { Element } el - the DOM element + * @param { String } selector - the selector they should be matched against + */ +u.queryChildren = function (el, selector) { + return Array.from(el.childNodes).filter(function (el) { + return u.matchesSelector(el, selector); }); - if (superClass) sasl_xoauth2_setPrototypeOf(subClass, superClass); -} -function sasl_xoauth2_setPrototypeOf(o, p) { - sasl_xoauth2_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; +}; +u.contains = function (attr, query) { + var checker = function checker(item, key) { + return item.get(key).toLowerCase().includes(query.toLowerCase()); }; - return sasl_xoauth2_setPrototypeOf(o, p); -} -function sasl_xoauth2_createSuper(Derived) { - var hasNativeReflectConstruct = sasl_xoauth2_isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = sasl_xoauth2_getPrototypeOf(Derived), - result; - if (hasNativeReflectConstruct) { - var NewTarget = sasl_xoauth2_getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); + return function (item) { + if (core_typeof(attr) === 'object') { + return Object.keys(attr).reduce(function (acc, k) { + return acc || checker(item, k); + }, false); + } else if (typeof attr === 'string') { + return checker(item, attr); } else { - result = Super.apply(this, arguments); + throw new TypeError('contains: wrong attribute type. Must be string or array.'); } - return sasl_xoauth2_possibleConstructorReturn(this, result); }; -} -function sasl_xoauth2_possibleConstructorReturn(self, call) { - if (call && (sasl_xoauth2_typeof(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); +}; +u.isOfType = function (type, item) { + return item.get('type') == type; +}; +u.isInstance = function (type, item) { + return item instanceof type; +}; +u.getAttribute = function (key, item) { + return item.get(key); +}; +u.contains.not = function (attr, query) { + return function (item) { + return !u.contains(attr, query)(item); + }; +}; +u.rootContains = function (root, el) { + // The document element does not have the contains method in IE. + if (root === document && !root.contains) { + return document.head.contains(el) || document.body.contains(el); } - return sasl_xoauth2_assertThisInitialized(self); -} -function sasl_xoauth2_assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return root.contains ? root.contains(el) : window.HTMLElement.prototype.contains.call(root, el); +}; +u.createFragmentFromText = function (markup) { + /* Returns a DocumentFragment containing DOM nodes based on the + * passed-in markup text. + */ + // http://stackoverflow.com/questions/9334645/create-node-from-markup-string + var frag = document.createDocumentFragment(), + tmp = document.createElement('body'), + child; + tmp.innerHTML = markup; + // Append elements in a loop to a DocumentFragment, so that the + // browser does not re-render the document for each node. + while (child = tmp.firstChild) { + // eslint-disable-line no-cond-assign + frag.appendChild(child); + } + return frag; +}; +u.isPersistableModel = function (model) { + return model.collection && model.collection.browserStorage; +}; +u.getResolveablePromise = getOpenPromise; +u.getOpenPromise = getOpenPromise; +u.interpolate = function (string, o) { + return string.replace(/{{{([^{}]*)}}}/g, function (a, b) { + var r = o[b]; + return typeof r === 'string' || typeof r === 'number' ? r : a; + }); +}; + +/** + * Call the callback once all the events have been triggered + * @private + * @method u#onMultipleEvents + * @param { Array } events: An array of objects, with keys `object` and + * `event`, representing the event name and the object it's triggered upon. + * @param { Function } callback: The function to call once all events have + * been triggered. + */ +u.onMultipleEvents = function () { + var events = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var callback = arguments.length > 1 ? arguments[1] : undefined; + var triggered = []; + function handler(result) { + triggered.push(result); + if (events.length === triggered.length) { + callback(triggered); + triggered = []; + } + } + events.forEach(function (e) { + return e.object.on(e.event, handler); + }); +}; +function safeSave(model, attributes, options) { + if (u.isPersistableModel(model)) { + model.save(attributes, options); + } else { + model.set(attributes, options); } - return self; } -function sasl_xoauth2_isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; +u.safeSave = safeSave; +u.siblingIndex = function (el) { + /* eslint-disable no-cond-assign */ + for (var i = 0; el = el.previousElementSibling; i++); + return i; +}; + +/** + * Returns the current word being written in the input element + * @method u#getCurrentWord + * @param { HTMLElement } input - The HTMLElement in which text is being entered + * @param { number } [index] - An optional rightmost boundary index. If given, the text + * value of the input element will only be considered up until this index. + * @param { string } [delineator] - An optional string delineator to + * differentiate between words. + * @private + */ +u.getCurrentWord = function (input, index, delineator) { + if (!index) { + index = input.selectionEnd || undefined; + } + var _input$value$slice$sp = input.value.slice(0, index).split(/\s/).slice(-1), + _input$value$slice$sp2 = _slicedToArray(_input$value$slice$sp, 1), + word = _input$value$slice$sp2[0]; + if (delineator) { + var _word$split$slice = word.split(delineator).slice(-1); + var _word$split$slice2 = _slicedToArray(_word$split$slice, 1); + word = _word$split$slice2[0]; + } + return word; +}; +u.isMentionBoundary = function (s) { + return s !== '@' && RegExp("(\\p{Z}|\\p{P})", 'u').test(s); +}; +u.replaceCurrentWord = function (input, new_value) { + var caret = input.selectionEnd || undefined; + var current_word = lodash_es_last(input.value.slice(0, caret).split(/\s/)); + var value = input.value; + var mention_boundary = u.isMentionBoundary(current_word[0]) ? current_word[0] : ''; + input.value = value.slice(0, caret - current_word.length) + mention_boundary + "".concat(new_value, " ") + value.slice(caret); + var selection_end = caret - current_word.length + new_value.length + 1; + input.selectionEnd = mention_boundary ? selection_end + 1 : selection_end; +}; +u.triggerEvent = function (el, name) { + var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "Event"; + var bubbles = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var cancelable = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; + var evt = document.createEvent(type); + evt.initEvent(name, bubbles, cancelable); + el.dispatchEvent(evt); +}; +u.getSelectValues = function (select) { + var result = []; + var options = select && select.options; + for (var i = 0, iLen = options.length; i < iLen; i++) { + var opt = options[i]; + if (opt.selected) { + result.push(opt.value || opt.text); + } } + return result; +}; +function getRandomInt(max) { + return Math.random() * max | 0; } -function sasl_xoauth2_getPrototypeOf(o) { - sasl_xoauth2_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return sasl_xoauth2_getPrototypeOf(o); +u.placeCaretAtEnd = function (textarea) { + if (textarea !== document.activeElement) { + textarea.focus(); + } + // Double the length because Opera is inconsistent about whether a carriage return is one character or two. + var len = textarea.value.length * 2; + // Timeout seems to be required for Blink + setTimeout(function () { + return textarea.setSelectionRange(len, len); + }, 1); + // Scroll to the bottom, in case we're in a tall textarea + // (Necessary for Firefox and Chrome) + this.scrollTop = 999999; +}; +function getUniqueId(suffix) { + var _crypto$randomUUID, _crypto$randomUUID2, _crypto; + var uuid = (_crypto$randomUUID = (_crypto$randomUUID2 = (_crypto = crypto).randomUUID) === null || _crypto$randomUUID2 === void 0 ? void 0 : _crypto$randomUUID2.call(_crypto)) !== null && _crypto$randomUUID !== void 0 ? _crypto$randomUUID : 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { + var r = getRandomInt(16); + var v = c === 'x' ? r : r & 0x3 | 0x8; + return v.toString(16); + }); + if (typeof suffix === "string" || typeof suffix === "number") { + return uuid + ":" + suffix; + } else { + return uuid; + } } +/** + * Clears the specified timeout and interval. + * @method u#clearTimers + * @param { number } timeout - Id if the timeout to clear. + * @param { number } interval - Id of the interval to clear. + * @private + * @copyright Simen Bekkhus 2016 + * @license MIT + */ +function clearTimers(timeout, interval) { + clearTimeout(timeout); + clearInterval(interval); +} -var SASLXOAuth2 = /*#__PURE__*/function (_SASLMechanism) { - sasl_xoauth2_inherits(SASLXOAuth2, _SASLMechanism); - var _super = sasl_xoauth2_createSuper(SASLXOAuth2); - /** PrivateConstructor: SASLXOAuth2 - * SASL X-OAuth2 authentication. - */ - function SASLXOAuth2() { - var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'X-OAUTH2'; - var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 30; - sasl_xoauth2_classCallCheck(this, SASLXOAuth2); - return _super.call(this, mechname, isClientFirst, priority); - } - - // eslint-disable-next-line class-methods-use-this - sasl_xoauth2_createClass(SASLXOAuth2, [{ - key: "test", - value: function test(connection) { - return connection.pass !== null; +/** + * Creates a {@link Promise} that resolves if the passed in function returns a truthy value. + * Rejects if it throws or does not return truthy within the given max_wait. + * @method u#waitUntil + * @param { Function } func - The function called every check_delay, + * and the result of which is the resolved value of the promise. + * @param { number } [max_wait=300] - The time to wait before rejecting the promise. + * @param { number } [check_delay=3] - The time to wait before each invocation of {func}. + * @returns {Promise} A promise resolved with the value of func, + * or rejected with the exception thrown by it or it times out. + * @copyright Simen Bekkhus 2016 + * @license MIT + */ +function core_waitUntil(func) { + var max_wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300; + var check_delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3; + // Run the function once without setting up any listeners in case it's already true + try { + var result = func(); + if (result) { + return Promise.resolve(result); } - - // eslint-disable-next-line class-methods-use-this - }, { - key: "onChallenge", - value: function onChallenge(connection) { - var auth_str = "\0"; - if (connection.authcid !== null) { - auth_str = auth_str + connection.authzid; + } catch (e) { + return Promise.reject(e); + } + var promise = getOpenPromise(); + var timeout_err = new Error(); + function checker() { + try { + var _result = func(); + if (_result) { + clearTimers(max_wait_timeout, interval); + promise.resolve(_result); } - auth_str = auth_str + "\0"; - auth_str = auth_str + connection.pass; - return utils.utf16to8(auth_str); + } catch (e) { + clearTimers(max_wait_timeout, interval); + promise.reject(e); } - }]); - return SASLXOAuth2; -}(SASLMechanism); - -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/core.js -function core_typeof(obj) { - "@babel/helpers - typeof"; - - return core_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, core_typeof(obj); -} -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - enumerableOnly && (symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - })), keys.push.apply(keys, symbols); } - return keys; + var interval = setInterval(checker, check_delay); + function handler() { + clearTimers(max_wait_timeout, interval); + var err_msg = "Wait until promise timed out: \n\n".concat(timeout_err.stack); + console.trace(); + log.error(err_msg); + promise.reject(new Error(err_msg)); + } + var max_wait_timeout = setTimeout(handler, max_wait); + return promise; } -function _objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = null != arguments[i] ? arguments[i] : {}; - i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { - core_defineProperty(target, key, source[key]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); +; +function setUnloadEvent() { + if ('onpagehide' in window) { + // Pagehide gets thrown in more cases than unload. Specifically it + // gets thrown when the page is cached and not just + // closed/destroyed. It's the only viable event on mobile Safari. + // https://www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/ + shared_converse.unloadevent = 'pagehide'; + } else if ('onbeforeunload' in window) { + shared_converse.unloadevent = 'beforeunload'; + } else if ('onunload' in window) { + shared_converse.unloadevent = 'unload'; } - return target; } -function core_defineProperty(obj, key, value) { - key = core_toPropertyKey(key); - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); +function replacePromise(name) { + var existing_promise = shared_converse.promises[name]; + if (!existing_promise) { + throw new Error("Tried to replace non-existing promise: ".concat(name)); + } + if (existing_promise.replace) { + var promise = getOpenPromise(); + promise.replace = existing_promise.replace; + shared_converse.promises[name] = promise; } else { - obj[key] = value; + log.debug("Not replacing promise \"".concat(name, "\"")); } - return obj; } -function core_toPropertyKey(arg) { - var key = core_toPrimitive(arg, "string"); - return core_typeof(key) === "symbol" ? key : String(key); -} -function core_toPrimitive(input, hint) { - if (core_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (core_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); +var core_element = document.createElement('div'); +function decodeHTMLEntities(str) { + if (str && typeof str === 'string') { + core_element.innerHTML = purify_default().sanitize(str); + str = core_element.textContent; + core_element.textContent = ''; } - return (hint === "string" ? String : Number)(input); + return str; } -/* - This program is distributed under the terms of the MIT license. - Please see the LICENSE file for details. - - Copyright 2006-2018, OGG, LLC -*/ - - - - - - - - - - - - - - - - - - -/** Class: Strophe - * An object container for all Strophe library functions. - * - * This class is just a container for all the objects and constants - * used in the library. It is not meant to be instantiated, but to - * provide a namespace for library objects, constants, and functions. - */ -var Strophe = _objectSpread(_objectSpread({ - /** Constant: VERSION */ - VERSION: '1.6.1', - Builder: Builder, - Connection: Connection, - ElementType: ElementType, - ErrorCondition: ErrorCondition, - Handler: Handler, - LogLevel: LogLevel, - NS: NS, - SASLMechanism: SASLMechanism, - Status: Status, - TimedHandler: TimedHandler -}, utils_namespaceObject), {}, { - XHTML: _objectSpread(_objectSpread({}, XHTML), {}, { - validTag: validTag, - validCSS: validCSS, - validAttribute: validAttribute - }), - /** Function: addNamespace - * This function is used to extend the current namespaces in - * Strophe.NS. It takes a key and a value with the key being the - * name of the new namespace, with its actual value. - * For example: - * Strophe.addNamespace('PUBSUB', "http://jabber.org/protocol/pubsub"); - * - * Parameters: - * (String) name - The name under which the namespace will be - * referenced under Strophe.NS - * (String) value - The actual namespace. +function saveWindowState(ev) { + // XXX: eventually we should be able to just use + // document.visibilityState (when we drop support for older + // browsers). + var state; + var event_map = { + 'focus': "visible", + 'focusin': "visible", + 'pageshow': "visible", + 'blur': "hidden", + 'focusout': "hidden", + 'pagehide': "hidden" + }; + ev = ev || document.createEvent('Events'); + if (ev.type in event_map) { + state = event_map[ev.type]; + } else { + state = document.hidden ? "hidden" : "visible"; + } + shared_converse.windowState = state; + /** + * Triggered when window state has changed. + * Used to determine when a user left the page and when came back. + * @event _converse#windowStateChanged + * @type { object } + * @property{ string } state - Either "hidden" or "visible" + * @example _converse.api.listen.on('windowStateChanged', obj => { ... }); */ - addNamespace: function addNamespace(name, value) { - Strophe.NS[name] = value; - }, - /** PrivateFunction: _handleError - * _Private_ function that properly logs an error to the console + shared_converse.api.trigger('windowStateChanged', { + state: state + }); +} +/* harmony default export */ const core = (Object.assign({ + shouldClearCache: shouldClearCache, + waitUntil: core_waitUntil, + // TODO: remove. Only the API should be used + isErrorObject: isErrorObject, + getRandomInt: getRandomInt, + getUniqueId: getUniqueId, + isElement: isElement, + isEmptyMessage: isEmptyMessage, + isValidJID: isValidJID, + merge: core_merge, + prefixMentions: prefixMentions, + saveWindowState: saveWindowState, + stx: stx, + toStanza: toStanza +}, u)); +;// CONCATENATED MODULE: ./src/headless/log.js +var _console, _console2, _console3, _console4; + +var LEVELS = { + 'debug': 0, + 'info': 1, + 'warn': 2, + 'error': 3, + 'fatal': 4 +}; + +/* eslint-disable @typescript-eslint/no-empty-function */ +var logger = Object.assign({ + 'debug': (_console = console) !== null && _console !== void 0 && _console.log ? console.log.bind(console) : function noop() {}, + 'error': (_console2 = console) !== null && _console2 !== void 0 && _console2.log ? console.log.bind(console) : function noop() {}, + 'info': (_console3 = console) !== null && _console3 !== void 0 && _console3.log ? console.log.bind(console) : function noop() {}, + 'warn': (_console4 = console) !== null && _console4 !== void 0 && _console4.log ? console.log.bind(console) : function noop() {} +}, console); +/* eslint-enable @typescript-eslint/no-empty-function */ + +/** + * The log namespace + * @namespace log + */ +/* harmony default export */ const log = ({ + /** + * The the log-level, which determines how verbose the logging is. + * @method log#setLogLevel + * @param { number } level - The loglevel which allows for filtering of log messages */ - _handleError: function _handleError(e) { - if (typeof e.stack !== 'undefined') { - Strophe.fatal(e.stack); - } - if (e.sourceURL) { - Strophe.fatal('error: ' + this.handler + ' ' + e.sourceURL + ':' + e.line + ' - ' + e.name + ': ' + e.message); - } else if (e.fileName) { - Strophe.fatal('error: ' + this.handler + ' ' + e.fileName + ':' + e.lineNumber + ' - ' + e.name + ': ' + e.message); - } else { - Strophe.fatal('error: ' + e.message); + setLogLevel: function setLogLevel(level) { + if (!['debug', 'info', 'warn', 'error', 'fatal'].includes(level)) { + throw new Error("Invalid loglevel: ".concat(level)); } + this.loglevel = level; }, - /** Function: log - * User overrideable logging function. - * - * This function is called whenever the Strophe library calls any - * of the logging functions. The default implementation of this - * function logs only fatal errors. If client code wishes to handle the logging - * messages, it should override this with - * > Strophe.log = function (level, msg) { - * > (user code here) - * > }; - * - * Please note that data sent and received over the wire is logged - * via Strophe.Connection.rawInput() and Strophe.Connection.rawOutput(). - * - * The different levels and their meanings are - * - * DEBUG - Messages useful for debugging purposes. - * INFO - Informational messages. This is mostly information like - * 'disconnect was called' or 'SASL auth succeeded'. - * WARN - Warnings about potential problems. This is mostly used - * to report transient connection errors like request timeouts. - * ERROR - Some error occurred. - * FATAL - A non-recoverable fatal error occurred. - * - * Parameters: - * (Integer) level - The log level of the log message. This will - * be one of the values in Strophe.LogLevel. - * (String) msg - The log message. + /** + * Logs messages to the browser's developer console. + * Available loglevels are 0 for 'debug', 1 for 'info', 2 for 'warn', + * 3 for 'error' and 4 for 'fatal'. + * When using the 'error' or 'warn' loglevels, a full stacktrace will be + * logged as well. + * @method log#log + * @param { string | Error } message - The message to be logged + * @param { number } level - The loglevel which allows for filtering of log messages */ - log: function log(level, msg) { - if (level === this.LogLevel.FATAL) { - var _console; - (_console = console) === null || _console === void 0 ? void 0 : _console.error(msg); + log: function log(message, level) { + var style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; + if (LEVELS[level] < LEVELS[this.loglevel]) { + return; + } + if (level === 'error' || level === 'fatal') { + style = style || 'color: maroon'; + } else if (level === 'debug') { + style = style || 'color: green'; + } + if (message instanceof Error) { + message = message.stack; + } else if (isElement(message)) { + message = message.outerHTML; + } + var prefix = style ? '%c' : ''; + if (level === 'error') { + logger.error("".concat(prefix, " ERROR: ").concat(message), style); + } else if (level === 'warn') { + logger.warn("".concat(prefix, " ").concat(new Date().toISOString(), " WARNING: ").concat(message), style); + } else if (level === 'fatal') { + logger.error("".concat(prefix, " FATAL: ").concat(message), style); + } else if (level === 'debug') { + logger.debug("".concat(prefix, " ").concat(new Date().toISOString(), " DEBUG: ").concat(message), style); + } else { + logger.info("".concat(prefix, " ").concat(new Date().toISOString(), " INFO: ").concat(message), style); } }, - /** Function: debug - * Log a message at the Strophe.LogLevel.DEBUG level. - * - * Parameters: - * (String) msg - The log message. - */ - debug: function debug(msg) { - this.log(this.LogLevel.DEBUG, msg); - }, - /** Function: info - * Log a message at the Strophe.LogLevel.INFO level. - * - * Parameters: - * (String) msg - The log message. - */ - info: function info(msg) { - this.log(this.LogLevel.INFO, msg); + debug: function debug(message, style) { + this.log(message, 'debug', style); }, - /** Function: warn - * Log a message at the Strophe.LogLevel.WARN level. - * - * Parameters: - * (String) msg - The log message. - */ - warn: function warn(msg) { - this.log(this.LogLevel.WARN, msg); + error: function error(message, style) { + this.log(message, 'error', style); }, - /** Function: error - * Log a message at the Strophe.LogLevel.ERROR level. - * - * Parameters: - * (String) msg - The log message. - */ - error: function error(msg) { - this.log(this.LogLevel.ERROR, msg); + info: function info(message, style) { + this.log(message, 'info', style); }, - /** Function: fatal - * Log a message at the Strophe.LogLevel.FATAL level. - * - * Parameters: - * (String) msg - The log message. - */ - fatal: function fatal(msg) { - this.log(this.LogLevel.FATAL, msg); + warn: function warn(message, style) { + this.log(message, 'warn', style); }, - /** PrivateVariable: _requestId - * _Private_ variable that keeps track of the request ids for - * connections. - */ - _requestId: 0, - /** PrivateVariable: Strophe.connectionPlugins - * _Private_ variable Used to store plugin names that need - * initialization on Strophe.Connection construction. - */ - _connectionPlugins: {}, - /** Function: addConnectionPlugin - * Extends the Strophe.Connection object with the given plugin. - * - * Parameters: - * (String) name - The name of the extension. - * (Object) ptype - The plugin's prototype. - */ - addConnectionPlugin: function addConnectionPlugin(name, ptype) { - Strophe._connectionPlugins[name] = ptype; + fatal: function fatal(message, style) { + this.log(message, 'fatal', style); } }); - -/** Constants: SASL mechanisms - * Available authentication mechanisms - * - * Strophe.SASLAnonymous - SASL ANONYMOUS authentication. - * Strophe.SASLPlain - SASL PLAIN authentication. - * Strophe.SASLSHA1 - SASL SCRAM-SHA-1 authentication - * Strophe.SASLSHA256 - SASL SCRAM-SHA-256 authentication - * Strophe.SASLSHA384 - SASL SCRAM-SHA-384 authentication - * Strophe.SASLSHA512 - SASL SCRAM-SHA-512 authentication - * Strophe.SASLOAuthBearer - SASL OAuth Bearer authentication - * Strophe.SASLExternal - SASL EXTERNAL authentication - * Strophe.SASLXOAuth2 - SASL X-OAuth2 authentication - */ -Strophe.SASLAnonymous = SASLAnonymous; -Strophe.SASLPlain = SASLPlain; -Strophe.SASLSHA1 = SASLSHA1; -Strophe.SASLSHA256 = SASLSHA256; -Strophe.SASLSHA384 = SASLSHA384; -Strophe.SASLSHA512 = SASLSHA512; -Strophe.SASLOAuthBearer = SASLOAuthBearer; -Strophe.SASLExternal = SASLExternal; -Strophe.SASLXOAuth2 = SASLXOAuth2; - -/* harmony default export */ const core = ({ - 'Strophe': Strophe, - '$build': $build, - '$iq': $iq, - '$msg': $msg, - '$pres': $pres -}); -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/bosh.js -function bosh_typeof(obj) { +;// CONCATENATED MODULE: ./node_modules/pluggable.js/src/pluggable.js +function pluggable_typeof(obj) { "@babel/helpers - typeof"; - return bosh_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return pluggable_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, bosh_typeof(obj); + }, pluggable_typeof(obj); } -function bosh_classCallCheck(instance, Constructor) { +function pluggable_slicedToArray(arr, i) { + return pluggable_arrayWithHoles(arr) || pluggable_iterableToArrayLimit(arr, i) || pluggable_unsupportedIterableToArray(arr, i) || pluggable_nonIterableRest(); +} +function pluggable_nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function pluggable_unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return pluggable_arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return pluggable_arrayLikeToArray(o, minLen); +} +function pluggable_arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; +} +function pluggable_iterableToArrayLimit(arr, i) { + var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; + if (null != _i) { + var _s, + _e, + _x, + _r, + _arr = [], + _n = !0, + _d = !1; + try { + if (_x = (_i = _i.call(arr)).next, 0 === i) { + if (Object(_i) !== _i) return; + _n = !1; + } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); + } catch (err) { + _d = !0, _e = err; + } finally { + try { + if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; + } finally { + if (_d) throw _e; + } + } + return _arr; + } +} +function pluggable_arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} +function pluggable_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function bosh_defineProperties(target, props) { +function pluggable_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, bosh_toPropertyKey(descriptor.key), descriptor); + Object.defineProperty(target, pluggable_toPropertyKey(descriptor.key), descriptor); } } -function bosh_createClass(Constructor, protoProps, staticProps) { - if (protoProps) bosh_defineProperties(Constructor.prototype, protoProps); - if (staticProps) bosh_defineProperties(Constructor, staticProps); +function pluggable_createClass(Constructor, protoProps, staticProps) { + if (protoProps) pluggable_defineProperties(Constructor.prototype, protoProps); + if (staticProps) pluggable_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function bosh_toPropertyKey(arg) { - var key = bosh_toPrimitive(arg, "string"); - return bosh_typeof(key) === "symbol" ? key : String(key); +function pluggable_toPropertyKey(arg) { + var key = pluggable_toPrimitive(arg, "string"); + return pluggable_typeof(key) === "symbol" ? key : String(key); } -function bosh_toPrimitive(input, hint) { - if (bosh_typeof(input) !== "object" || input === null) return input; +function pluggable_toPrimitive(input, hint) { + if (pluggable_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); - if (bosh_typeof(res) !== "object") return res; + if (pluggable_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /* - This program is distributed under the terms of the MIT license. - Please see the LICENSE file for details. - - Copyright 2006-2008, OGG, LLC -*/ - -/* global ActiveXObject, XMLHttpRequest, sessionStorage, globalThis */ + ____ __ __ __ _ + / __ \/ /_ __ ___ ___ ____ _/ /_ / /__ (_)____ + / /_/ / / / / / __ \/ __ \/ __/ / __ \/ / _ \ / / ___/ + / ____/ / /_/ / /_/ / /_/ / /_/ / /_/ / / __/ / (__ ) + /_/ /_/\__,_/\__, /\__, /\__/_/_.___/_/\___(_)_/ /____/ + /____//____/ /___/ + */ +// Pluggable.js lets you to make your Javascript code pluggable while still +// keeping sensitive objects and data private through closures. +// `wrappedOverride` creates a partially applied wrapper function +// that makes sure to set the proper super method when the +// overriding method is called. This is done to enable +// chaining of plugin methods, all the way up to the +// original method. +function wrappedOverride(key, value, super_method, default_super) { + if (typeof super_method === "function") { + if (typeof this.__super__ === "undefined") { + /* We're not on the context of the plugged object. + * This can happen when the overridden method is called via + * an event handler or when it's a constructor. + * + * In this case, we simply tack on the __super__ obj. + */ + this.__super__ = default_super; + } + this.__super__[key] = super_method.bind(this); + } + for (var _len = arguments.length, args = new Array(_len > 4 ? _len - 4 : 0), _key = 4; _key < _len; _key++) { + args[_key - 4] = arguments[_key]; + } + return value.apply(this, args); +} +// The `PluginSocket` class contains the plugin architecture, and gets +// created whenever `pluggable.enable(obj);` is called on the object +// that you want to make pluggable. +// You can also see it as the thing into which the plugins are plugged. +// It takes two parameters, first, the object being made pluggable, and +// then the name by which the pluggable object may be referenced on the +// __super__ object (inside overrides). +var PluginSocket = /*#__PURE__*/function () { + function PluginSocket(plugged, name) { + pluggable_classCallCheck(this, PluginSocket); + this.name = name; + this.plugged = plugged; + if (typeof this.plugged.__super__ === 'undefined') { + this.plugged.__super__ = {}; + } else if (typeof this.plugged.__super__ === 'string') { + this.plugged.__super__ = { + '__string__': this.plugged.__super__ + }; + } + this.plugged.__super__[name] = this.plugged; + this.plugins = {}; + this.initialized_plugins = []; + } -/** PrivateClass: Strophe.Request - * _Private_ helper class that provides a cross implementation abstraction - * for a BOSH related XMLHttpRequest. - * - * The Strophe.Request class is used internally to encapsulate BOSH request - * information. It is not meant to be used from user's code. - */ -Strophe.Request = /*#__PURE__*/function () { - /** PrivateConstructor: Strophe.Request - * Create and initialize a new Strophe.Request object. - * - * Parameters: - * (XMLElement) elem - The XML data to be sent in the request. - * (Function) func - The function that will be called when the - * XMLHttpRequest readyState changes. - * (Integer) rid - The BOSH rid attribute associated with this request. - * (Integer) sends - The number of times this same request has been sent. - */ - function Request(elem, func, rid, sends) { - bosh_classCallCheck(this, Request); - this.id = ++Strophe._requestId; - this.xmlData = elem; - this.data = Strophe.serialize(elem); - // save original function in case we need to make a new request - // from this one. - this.origFunc = func; - this.func = func; - this.rid = rid; - this.date = NaN; - this.sends = sends || 0; - this.abort = false; - this.dead = null; - this.age = function () { - if (!this.date) { - return 0; + // `_overrideAttribute` overrides an attribute on the original object + // (the thing being plugged into). + // + // If the attribute being overridden is a function, then the original + // function will still be available via the `__super__` attribute. + // + // If the same function is being overridden multiple times, then + // the original function will be available at the end of a chain of + // functions, starting from the most recent override, all the way + // back to the original function, each being referenced by the + // previous' __super__ attribute. + // + // For example: + // + // `plugin2.MyFunc.__super__.myFunc => plugin1.MyFunc.__super__.myFunc => original.myFunc` + pluggable_createClass(PluginSocket, [{ + key: "_overrideAttribute", + value: function _overrideAttribute(key, plugin) { + var value = plugin.overrides[key]; + if (typeof value === "function") { + var default_super = {}; + default_super[this.name] = this.plugged; + var super_method = this.plugged[key]; + this.plugged[key] = function () { + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + return wrappedOverride.apply(this, [key, value, super_method, default_super].concat(args)); + }; + } else { + this.plugged[key] = value; } - var now = new Date(); - return (now - this.date) / 1000; - }; - this.timeDead = function () { - if (!this.dead) { - return 0; + } + }, { + key: "_extendObject", + value: function _extendObject(obj, attributes) { + var _this = this; + if (!obj.prototype.__super__) { + obj.prototype.__super__ = {}; + obj.prototype.__super__[this.name] = this.plugged; } - var now = new Date(); - return (now - this.dead) / 1000; - }; - this.xhr = this._newXHR(); - } - - /** PrivateFunction: getResponse - * Get a response from the underlying XMLHttpRequest. - * - * This function attempts to get a response from the request and checks - * for errors. - * - * Throws: - * "parsererror" - A parser error occured. - * "bad-format" - The entity has sent XML that cannot be processed. - * - * Returns: - * The DOM element tree of the response. - */ - bosh_createClass(Request, [{ - key: "getResponse", - value: function getResponse() { - var node = null; - if (this.xhr.responseXML && this.xhr.responseXML.documentElement) { - node = this.xhr.responseXML.documentElement; - if (node.tagName === 'parsererror') { - Strophe.error('invalid response received'); - Strophe.error('responseText: ' + this.xhr.responseText); - Strophe.error('responseXML: ' + Strophe.serialize(this.xhr.responseXML)); - throw new Error('parsererror'); + var _loop = function _loop() { + var _Object$entries$_i = pluggable_slicedToArray(_Object$entries[_i], 2), + key = _Object$entries$_i[0], + value = _Object$entries$_i[1]; + if (key === 'events') { + obj.prototype[key] = Object.assign(value, obj.prototype[key]); + } else if (typeof value === 'function') { + // We create a partially applied wrapper function, that + // makes sure to set the proper super method when the + // overriding method is called. This is done to enable + // chaining of plugin methods, all the way up to the + // original method. + var default_super = {}; + default_super[_this.name] = _this.plugged; + var super_method = obj.prototype[key]; + obj.prototype[key] = function () { + for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { + args[_key3] = arguments[_key3]; + } + return wrappedOverride.apply(this, [key, value, super_method, default_super].concat(args)); + }; + } else { + obj.prototype[key] = value; } - } else if (this.xhr.responseText) { - var _node; - // In Node (with xhr2) or React Native, we may get responseText but no responseXML. - // We can try to parse it manually. - Strophe.debug('Got responseText but no responseXML; attempting to parse it with DOMParser...'); - node = new DOMParser().parseFromString(this.xhr.responseText, 'application/xml').documentElement; - var parserError = (_node = node) === null || _node === void 0 ? void 0 : _node.querySelector('parsererror'); - if (!node || parserError) { - if (parserError) { - Strophe.error('invalid response received: ' + parserError.textContent); - Strophe.error('responseText: ' + this.xhr.responseText); + }; + for (var _i = 0, _Object$entries = Object.entries(attributes); _i < _Object$entries.length; _i++) { + _loop(); + } + } + + // Plugins can specify dependencies (by means of the + // `dependencies` list attribute) which refers to dependencies + // which will be initialized first, before the plugin itself gets initialized. + // + // If `strict_plugin_dependencies` is set to `false` (on the object being + // made pluggable), then no error will be thrown if any of these plugins aren't + // available. + }, { + key: "loadPluginDependencies", + value: function loadPluginDependencies(plugin) { + var _plugin$dependencies, + _this2 = this; + (_plugin$dependencies = plugin.dependencies) === null || _plugin$dependencies === void 0 ? void 0 : _plugin$dependencies.forEach(function (name) { + var dep = _this2.plugins[name]; + if (dep) { + var _dep$dependencies; + if ((_dep$dependencies = dep.dependencies) !== null && _dep$dependencies !== void 0 && _dep$dependencies.includes(plugin.__name__)) { + /* FIXME: circular dependency checking is only one level deep. */ + throw "Found a circular dependency between the plugins \"" + plugin.__name__ + "\" and \"" + name + "\""; } - var error = new Error(); - error.name = Strophe.ErrorCondition.BAD_FORMAT; - throw error; + _this2.initializePlugin(dep); + } else { + _this2.throwUndefinedDependencyError("Could not find dependency \"" + name + "\" " + "for the plugin \"" + plugin.__name__ + "\". " + "If it's needed, make sure it's loaded by require.js"); + } + }); + } + }, { + key: "throwUndefinedDependencyError", + value: function throwUndefinedDependencyError(msg) { + if (this.plugged.strict_plugin_dependencies) { + throw msg; + } else { + if (console.warn) { + console.warn(msg); + } else { + console.log(msg); } } - return node; } - /** PrivateFunction: _newXHR - * _Private_ helper function to create XMLHttpRequests. - * - * This function creates XMLHttpRequests across all implementations. - * - * Returns: - * A new XMLHttpRequest. - */ + // `applyOverrides` is called by initializePlugin. It applies any + // and all overrides of methods or Backbone views and models that + // are defined on any of the plugins. }, { - key: "_newXHR", - value: function _newXHR() { - var xhr = null; - if (globalThis.XMLHttpRequest) { - xhr = new XMLHttpRequest(); - if (xhr.overrideMimeType) { - xhr.overrideMimeType('text/xml; charset=utf-8'); + key: "applyOverrides", + value: function applyOverrides(plugin) { + var _this3 = this; + Object.keys(plugin.overrides || {}).forEach(function (key) { + var override = plugin.overrides[key]; + if (pluggable_typeof(override) === "object") { + if (typeof _this3.plugged[key] === 'undefined') { + _this3.throwUndefinedDependencyError("Plugin \"".concat(plugin.__name__, "\" tried to override \"").concat(key, "\" but it's not found.")); + } else { + _this3._extendObject(_this3.plugged[key], override); + } + } else { + _this3._overrideAttribute(key, plugin); } - } else if (globalThis.ActiveXObject) { - xhr = new ActiveXObject('Microsoft.XMLHTTP'); - } - // use Function.bind() to prepend ourselves as an argument - xhr.onreadystatechange = this.func.bind(null, this); - return xhr; + }); } - }]); - return Request; -}(); -/** Class: Strophe.Bosh - * _Private_ helper class that handles BOSH Connections - * - * The Strophe.Bosh class is used internally by Strophe.Connection - * to encapsulate BOSH sessions. It is not meant to be used from user's code. - */ + // `initializePlugin` applies the overrides (if any) defined on all + // the registered plugins and then calls the initialize method of the plugin + }, { + key: "initializePlugin", + value: function initializePlugin(plugin) { + var _plugin$enabled; + if (!Object.keys(this.allowed_plugins).includes(plugin.__name__)) { + /* Don't initialize disallowed plugins. */ + return; + } + if (this.initialized_plugins.includes(plugin.__name__)) { + /* Don't initialize plugins twice, otherwise we get + * infinite recursion in overridden methods. + */ + return; + } + if (typeof plugin.enabled === 'boolean' && plugin.enabled || (_plugin$enabled = plugin.enabled) !== null && _plugin$enabled !== void 0 && _plugin$enabled.call(plugin, this.plugged) || plugin.enabled == null) { + // isNil -/** File: bosh.js - * A JavaScript library to enable BOSH in Strophejs. - * - * this library uses Bidirectional-streams Over Synchronous HTTP (BOSH) - * to emulate a persistent, stateful, two-way connection to an XMPP server. - * More information on BOSH can be found in XEP 124. - */ - -/** PrivateConstructor: Strophe.Bosh - * Create and initialize a Strophe.Bosh object. - * - * Parameters: - * (Strophe.Connection) connection - The Strophe.Connection that will use BOSH. - * - * Returns: - * A new Strophe.Bosh object. - */ -Strophe.Bosh = /*#__PURE__*/function () { - function Bosh(connection) { - bosh_classCallCheck(this, Bosh); - this._conn = connection; - /* request id for body tags */ - this.rid = Math.floor(Math.random() * 4294967295); - /* The current session ID. */ - this.sid = null; - - // default BOSH values - this.hold = 1; - this.wait = 60; - this.window = 5; - this.errors = 0; - this.inactivity = null; - this.lastResponseHeaders = null; - this._requests = []; - } - - /** PrivateFunction: _buildBody - * _Private_ helper function to generate the wrapper for BOSH. - * - * Returns: - * A Strophe.Builder with a element. - */ - bosh_createClass(Bosh, [{ - key: "_buildBody", - value: function _buildBody() { - var bodyWrap = $build('body', { - 'rid': this.rid++, - 'xmlns': Strophe.NS.HTTPBIND - }); - if (this.sid !== null) { - bodyWrap.attrs({ - 'sid': this.sid - }); - } - if (this._conn.options.keepalive && this._conn._sessionCachingSupported()) { - this._cacheSession(); - } - return bodyWrap; - } - - /** PrivateFunction: _reset - * Reset the connection. - * - * This function is called by the reset function of the Strophe Connection - */ - }, { - key: "_reset", - value: function _reset() { - this.rid = Math.floor(Math.random() * 4294967295); - this.sid = null; - this.errors = 0; - if (this._conn._sessionCachingSupported()) { - sessionStorage.removeItem('strophe-bosh-session'); + Object.assign(plugin, this.properties); + if (plugin.dependencies) { + this.loadPluginDependencies(plugin); + } + this.applyOverrides(plugin); + if (typeof plugin.initialize === "function") { + plugin.initialize.bind(plugin)(this); + } + this.initialized_plugins.push(plugin.__name__); } - this._conn.nextValidRid(this.rid); } - /** PrivateFunction: _connect - * _Private_ function that initializes the BOSH connection. - * - * Creates and sends the Request that initializes the BOSH connection. - */ + // `registerPlugin` registers (or inserts, if you'd like) a plugin, + // by adding it to the `plugins` map on the PluginSocket instance. }, { - key: "_connect", - value: function _connect(wait, hold, route) { - this.wait = wait || this.wait; - this.hold = hold || this.hold; - this.errors = 0; - var body = this._buildBody().attrs({ - 'to': this._conn.domain, - 'xml:lang': 'en', - 'wait': this.wait, - 'hold': this.hold, - 'content': 'text/xml; charset=utf-8', - 'ver': '1.6', - 'xmpp:version': '1.0', - 'xmlns:xmpp': Strophe.NS.BOSH - }); - if (route) { - body.attrs({ - 'route': route - }); + key: "registerPlugin", + value: function registerPlugin(name, plugin) { + if (name in this.plugins) { + throw new Error('Error: Plugin name ' + name + ' is already taken'); } - var _connect_cb = this._conn._connect_cb; - this._requests.push(new Strophe.Request(body.tree(), this._onRequestStateChange.bind(this, _connect_cb.bind(this._conn)), body.tree().getAttribute('rid'))); - this._throttledRequestHandler(); - } - - /** PrivateFunction: _attach - * Attach to an already created and authenticated BOSH session. - * - * This function is provided to allow Strophe to attach to BOSH - * sessions which have been created externally, perhaps by a Web - * application. This is often used to support auto-login type features - * without putting user credentials into the page. - * - * Parameters: - * (String) jid - The full JID that is bound by the session. - * (String) sid - The SID of the BOSH session. - * (String) rid - The current RID of the BOSH session. This RID - * will be used by the next request. - * (Function) callback The connect callback function. - * (Integer) wait - The optional HTTPBIND wait value. This is the - * time the server will wait before returning an empty result for - * a request. The default setting of 60 seconds is recommended. - * Other settings will require tweaks to the Strophe.TIMEOUT value. - * (Integer) hold - The optional HTTPBIND hold value. This is the - * number of connections the server will hold at one time. This - * should almost always be set to 1 (the default). - * (Integer) wind - The optional HTTBIND window value. This is the - * allowed range of request ids that are valid. The default is 5. - */ - }, { - key: "_attach", - value: function _attach(jid, sid, rid, callback, wait, hold, wind) { - this._conn.jid = jid; - this.sid = sid; - this.rid = rid; - this._conn.connect_callback = callback; - this._conn.domain = Strophe.getDomainFromJid(this._conn.jid); - this._conn.authenticated = true; - this._conn.connected = true; - this.wait = wait || this.wait; - this.hold = hold || this.hold; - this.window = wind || this.window; - this._conn._changeConnectStatus(Strophe.Status.ATTACHED, null); + plugin.__name__ = name; + this.plugins[name] = plugin; } - /** PrivateFunction: _restore - * Attempt to restore a cached BOSH session - * - * Parameters: - * (String) jid - The full JID that is bound by the session. - * This parameter is optional but recommended, specifically in cases - * where prebinded BOSH sessions are used where it's important to know - * that the right session is being restored. - * (Function) callback The connect callback function. - * (Integer) wait - The optional HTTPBIND wait value. This is the - * time the server will wait before returning an empty result for - * a request. The default setting of 60 seconds is recommended. - * Other settings will require tweaks to the Strophe.TIMEOUT value. - * (Integer) hold - The optional HTTPBIND hold value. This is the - * number of connections the server will hold at one time. This - * should almost always be set to 1 (the default). - * (Integer) wind - The optional HTTBIND window value. This is the - * allowed range of request ids that are valid. The default is 5. - */ + // `initializePlugins` should get called once all plugins have been + // registered. It will then iterate through all the plugins, calling + // `initializePlugin` for each. + // The passed in properties variable is an object with attributes and methods + // which will be attached to the plugins. }, { - key: "_restore", - value: function _restore(jid, callback, wait, hold, wind) { - var session = JSON.parse(sessionStorage.getItem('strophe-bosh-session')); - if (typeof session !== 'undefined' && session !== null && session.rid && session.sid && session.jid && (typeof jid === 'undefined' || jid === null || Strophe.getBareJidFromJid(session.jid) === Strophe.getBareJidFromJid(jid) || - // If authcid is null, then it's an anonymous login, so - // we compare only the domains: - Strophe.getNodeFromJid(jid) === null && Strophe.getDomainFromJid(session.jid) === jid)) { - this._conn.restored = true; - this._attach(session.jid, session.sid, session.rid, callback, wait, hold, wind); - } else { - var error = new Error('_restore: no restoreable session.'); - error.name = 'StropheSessionError'; - throw error; + key: "initializePlugins", + value: function initializePlugins() { + var _this4 = this; + var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var whitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + var blacklist = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; + if (!Object.keys(this.plugins).length) { + return; } - } - - /** PrivateFunction: _cacheSession - * _Private_ handler for the beforeunload event. - * - * This handler is used to process the Bosh-part of the initial request. - * Parameters: - * (Strophe.Request) bodyWrap - The received stanza. - */ - }, { - key: "_cacheSession", - value: function _cacheSession() { - if (this._conn.authenticated) { - if (this._conn.jid && this.rid && this.sid) { - sessionStorage.setItem('strophe-bosh-session', JSON.stringify({ - 'jid': this._conn.jid, - 'rid': this.rid, - 'sid': this.sid - })); + this.properties = properties; + this.allowed_plugins = {}; + for (var _i2 = 0, _Object$entries2 = Object.entries(this.plugins); _i2 < _Object$entries2.length; _i2++) { + var _Object$entries2$_i = pluggable_slicedToArray(_Object$entries2[_i2], 2), + key = _Object$entries2$_i[0], + plugin = _Object$entries2$_i[1]; + if ((!whitelist.length || whitelist.includes(key)) && !blacklist.includes(key)) { + this.allowed_plugins[key] = plugin; } - } else { - sessionStorage.removeItem('strophe-bosh-session'); } + Object.values(this.allowed_plugins).forEach(function (o) { + return _this4.initializePlugin(o); + }); } + }]); + return PluginSocket; +}(); +function enable(object, name, attrname) { + // Call the `enable` method to make an object pluggable + // + // It takes three parameters: + // - `object`: The object that gets made pluggable. + // - `name`: The string name by which the now pluggable object + // may be referenced on the __super__ obj (in overrides). + // The default value is "plugged". + // - `attrname`: The string name of the attribute on the now + // pluggable object, which refers to the PluginSocket instance + // that gets created. + if (typeof attrname === "undefined") { + attrname = "pluginSocket"; + } + if (typeof name === 'undefined') { + name = 'plugged'; + } + object[attrname] = new PluginSocket(object, name); + return object; +} - /** PrivateFunction: _connect_cb - * _Private_ handler for initial connection request. - * - * This handler is used to process the Bosh-part of the initial request. - * Parameters: - * (Strophe.Request) bodyWrap - The received stanza. - */ - }, { - key: "_connect_cb", - value: function _connect_cb(bodyWrap) { - var typ = bodyWrap.getAttribute('type'); - if (typ !== null && typ === 'terminate') { - // an error occurred - var cond = bodyWrap.getAttribute('condition'); - Strophe.error('BOSH-Connection failed: ' + cond); - var conflict = bodyWrap.getElementsByTagName('conflict'); - if (cond !== null) { - if (cond === 'remote-stream-error' && conflict.length > 0) { - cond = 'conflict'; - } - this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, cond); - } else { - this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, 'unknown'); - } - this._conn._doDisconnect(cond); - return Strophe.Status.CONNFAIL; - } +/* harmony default export */ const pluggable = ({ + enable: enable +}); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_createBaseEach.js - // check to make sure we don't overwrite these if _connect_cb is - // called multiple times in the case of missing stream:features - if (!this.sid) { - this.sid = bodyWrap.getAttribute('sid'); - } - var wind = bodyWrap.getAttribute('requests'); - if (wind) { - this.window = parseInt(wind, 10); - } - var hold = bodyWrap.getAttribute('hold'); - if (hold) { - this.hold = parseInt(hold, 10); - } - var wait = bodyWrap.getAttribute('wait'); - if (wait) { - this.wait = parseInt(wait, 10); - } - var inactivity = bodyWrap.getAttribute('inactivity'); - if (inactivity) { - this.inactivity = parseInt(inactivity, 10); - } - } - /** PrivateFunction: _disconnect - * _Private_ part of Connection.disconnect for Bosh - * - * Parameters: - * (Request) pres - This stanza will be sent before disconnecting. - */ - }, { - key: "_disconnect", - value: function _disconnect(pres) { - this._sendTerminate(pres); +/** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseEach(eachFunc, fromRight) { + return function (collection, iteratee) { + if (collection == null) { + return collection; } - - /** PrivateFunction: _doDisconnect - * _Private_ function to disconnect. - * - * Resets the SID and RID. - */ - }, { - key: "_doDisconnect", - value: function _doDisconnect() { - this.sid = null; - this.rid = Math.floor(Math.random() * 4294967295); - if (this._conn._sessionCachingSupported()) { - sessionStorage.removeItem('strophe-bosh-session'); + if (!lodash_es_isArrayLike(collection)) { + return eachFunc(collection, iteratee); + } + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); + while (fromRight ? index-- : ++index < length) { + if (iteratee(iterable[index], index, iterable) === false) { + break; } - this._conn.nextValidRid(this.rid); } + return collection; + }; +} +/* harmony default export */ const _createBaseEach = (createBaseEach); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseEach.js - /** PrivateFunction: _emptyQueue - * _Private_ function to check if the Request queue is empty. - * - * Returns: - * True, if there are no Requests queued, False otherwise. - */ - }, { - key: "_emptyQueue", - value: function _emptyQueue() { - return this._requests.length === 0; - } - /** PrivateFunction: _callProtocolErrorHandlers - * _Private_ function to call error handlers registered for HTTP errors. - * - * Parameters: - * (Strophe.Request) req - The request that is changing readyState. - */ - }, { - key: "_callProtocolErrorHandlers", - value: function _callProtocolErrorHandlers(req) { - var reqStatus = Bosh._getRequestStatus(req); - var err_callback = this._conn.protocolErrorHandlers.HTTP[reqStatus]; - if (err_callback) { - err_callback.call(this, reqStatus); - } - } - /** PrivateFunction: _hitError - * _Private_ function to handle the error count. - * - * Requests are resent automatically until their error count reaches - * 5. Each time an error is encountered, this function is called to - * increment the count and disconnect if the count is too high. - * - * Parameters: - * (Integer) reqStatus - The request status. - */ - }, { - key: "_hitError", - value: function _hitError(reqStatus) { - this.errors++; - Strophe.warn('request errored, status: ' + reqStatus + ', number of errors: ' + this.errors); - if (this.errors > 4) { - this._conn._onDisconnectTimeout(); - } - } +/** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ +var baseEach = _createBaseEach(_baseForOwn); +/* harmony default export */ const _baseEach = (baseEach); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseSome.js - /** PrivateFunction: _no_auth_received - * - * Called on stream start/restart when no stream:features - * has been received and sends a blank poll request. - */ - }, { - key: "_no_auth_received", - value: function _no_auth_received(callback) { - Strophe.warn('Server did not yet offer a supported authentication ' + 'mechanism. Sending a blank poll request.'); - if (callback) { - callback = callback.bind(this._conn); - } else { - callback = this._conn._connect_cb.bind(this._conn); - } - var body = this._buildBody(); - this._requests.push(new Strophe.Request(body.tree(), this._onRequestStateChange.bind(this, callback), body.tree().getAttribute('rid'))); - this._throttledRequestHandler(); - } - /** PrivateFunction: _onDisconnectTimeout - * _Private_ timeout handler for handling non-graceful disconnection. - * - * Cancels all remaining Requests and clears the queue. - */ - }, { - key: "_onDisconnectTimeout", - value: function _onDisconnectTimeout() { - this._abortAllRequests(); - } +/** + * The base implementation of `_.some` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function baseSome(collection, predicate) { + var result; + _baseEach(collection, function (value, index, collection) { + result = predicate(value, index, collection); + return !result; + }); + return !!result; +} +/* harmony default export */ const _baseSome = (baseSome); +;// CONCATENATED MODULE: ./node_modules/lodash-es/some.js - /** PrivateFunction: _abortAllRequests - * _Private_ helper function that makes sure all pending requests are aborted. - */ - }, { - key: "_abortAllRequests", - value: function _abortAllRequests() { - while (this._requests.length > 0) { - var req = this._requests.pop(); - req.abort = true; - req.xhr.abort(); - req.xhr.onreadystatechange = function () {}; - } - } - /** PrivateFunction: _onIdle - * _Private_ handler called by Strophe.Connection._onIdle - * - * Sends all queued Requests or polls with empty Request if there are none. - */ - }, { - key: "_onIdle", - value: function _onIdle() { - var data = this._conn._data; - // if no requests are in progress, poll - if (this._conn.authenticated && this._requests.length === 0 && data.length === 0 && !this._conn.disconnecting) { - Strophe.debug('no requests during idle cycle, sending blank request'); - data.push(null); - } - if (this._conn.paused) { - return; - } - if (this._requests.length < 2 && data.length > 0) { - var body = this._buildBody(); - for (var i = 0; i < data.length; i++) { - if (data[i] !== null) { - if (data[i] === 'restart') { - body.attrs({ - 'to': this._conn.domain, - 'xml:lang': 'en', - 'xmpp:restart': 'true', - 'xmlns:xmpp': Strophe.NS.BOSH - }); - } else { - body.cnode(data[i]).up(); - } - } - } - delete this._conn._data; - this._conn._data = []; - this._requests.push(new Strophe.Request(body.tree(), this._onRequestStateChange.bind(this, this._conn._dataRecv.bind(this._conn)), body.tree().getAttribute('rid'))); - this._throttledRequestHandler(); - } - if (this._requests.length > 0) { - var time_elapsed = this._requests[0].age(); - if (this._requests[0].dead !== null) { - if (this._requests[0].timeDead() > Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait)) { - this._throttledRequestHandler(); - } - } - if (time_elapsed > Math.floor(Strophe.TIMEOUT * this.wait)) { - Strophe.warn('Request ' + this._requests[0].id + ' timed out, over ' + Math.floor(Strophe.TIMEOUT * this.wait) + ' seconds since last activity'); - this._throttledRequestHandler(); - } - } - } - /** PrivateFunction: _getRequestStatus - * - * Returns the HTTP status code from a Strophe.Request - * - * Parameters: - * (Strophe.Request) req - The Strophe.Request instance. - * (Integer) def - The default value that should be returned if no - * status value was found. - */ - }, { - key: "_onRequestStateChange", - value: - /** PrivateFunction: _onRequestStateChange - * _Private_ handler for Strophe.Request state changes. - * - * This function is called when the XMLHttpRequest readyState changes. - * It contains a lot of error handling logic for the many ways that - * requests can fail, and calls the request callback when requests - * succeed. - * - * Parameters: - * (Function) func - The handler for the request. - * (Strophe.Request) req - The request that is changing readyState. - */ - function _onRequestStateChange(func, req) { - Strophe.debug('request id ' + req.id + '.' + req.sends + ' state changed to ' + req.xhr.readyState); - if (req.abort) { - req.abort = false; - return; - } - if (req.xhr.readyState !== 4) { - // The request is not yet complete - return; - } - var reqStatus = Bosh._getRequestStatus(req); - this.lastResponseHeaders = req.xhr.getAllResponseHeaders(); - if (this._conn.disconnecting && reqStatus >= 400) { - this._hitError(reqStatus); - this._callProtocolErrorHandlers(req); - return; - } - var reqIs0 = this._requests[0] === req; - var reqIs1 = this._requests[1] === req; - var valid_request = reqStatus > 0 && reqStatus < 500; - var too_many_retries = req.sends > this._conn.maxRetries; - if (valid_request || too_many_retries) { - // remove from internal queue - this._removeRequest(req); - Strophe.debug('request id ' + req.id + ' should now be removed'); - } - if (reqStatus === 200) { - // request succeeded - // if request 1 finished, or request 0 finished and request - // 1 is over Strophe.SECONDARY_TIMEOUT seconds old, we need to - // restart the other - both will be in the first spot, as the - // completed request has been removed from the queue already - if (reqIs1 || reqIs0 && this._requests.length > 0 && this._requests[0].age() > Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait)) { - this._restartRequest(0); - } - this._conn.nextValidRid(Number(req.rid) + 1); - Strophe.debug('request id ' + req.id + '.' + req.sends + ' got 200'); - func(req); // call handler - this.errors = 0; - } else if (reqStatus === 0 || reqStatus >= 400 && reqStatus < 600 || reqStatus >= 12000) { - // request failed - Strophe.error('request id ' + req.id + '.' + req.sends + ' error ' + reqStatus + ' happened'); - this._hitError(reqStatus); - this._callProtocolErrorHandlers(req); - if (reqStatus >= 400 && reqStatus < 500) { - this._conn._changeConnectStatus(Strophe.Status.DISCONNECTING, null); - this._conn._doDisconnect(); - } - } else { - Strophe.error('request id ' + req.id + '.' + req.sends + ' error ' + reqStatus + ' happened'); - } - if (!valid_request && !too_many_retries) { - this._throttledRequestHandler(); - } else if (too_many_retries && !this._conn.connected) { - this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, 'giving-up'); - } - } - /** PrivateFunction: _processRequest - * _Private_ function to process a request in the queue. - * - * This function takes requests off the queue and sends them and - * restarts dead requests. - * - * Parameters: - * (Integer) i - The index of the request in the queue. - */ - }, { - key: "_processRequest", - value: function _processRequest(i) { - var _this = this; - var req = this._requests[i]; - var reqStatus = Bosh._getRequestStatus(req, -1); - // make sure we limit the number of retries - if (req.sends > this._conn.maxRetries) { - this._conn._onDisconnectTimeout(); - return; - } - var time_elapsed = req.age(); - var primary_timeout = !isNaN(time_elapsed) && time_elapsed > Math.floor(Strophe.TIMEOUT * this.wait); - var secondary_timeout = req.dead !== null && req.timeDead() > Math.floor(Strophe.SECONDARY_TIMEOUT * this.wait); - var server_error = req.xhr.readyState === 4 && (reqStatus < 1 || reqStatus >= 500); - if (primary_timeout || secondary_timeout || server_error) { - if (secondary_timeout) { - Strophe.error("Request ".concat(this._requests[i].id, " timed out (secondary), restarting")); - } - req.abort = true; - req.xhr.abort(); - // setting to null fails on IE6, so set to empty function - req.xhr.onreadystatechange = function () {}; - this._requests[i] = new Strophe.Request(req.xmlData, req.origFunc, req.rid, req.sends); - req = this._requests[i]; - } - if (req.xhr.readyState === 0) { - Strophe.debug('request id ' + req.id + '.' + req.sends + ' posting'); - try { - var content_type = this._conn.options.contentType || 'text/xml; charset=utf-8'; - req.xhr.open('POST', this._conn.service, this._conn.options.sync ? false : true); - if (typeof req.xhr.setRequestHeader !== 'undefined') { - // IE9 doesn't have setRequestHeader - req.xhr.setRequestHeader('Content-Type', content_type); - } - if (this._conn.options.withCredentials) { - req.xhr.withCredentials = true; - } - } catch (e2) { - Strophe.error('XHR open failed: ' + e2.toString()); - if (!this._conn.connected) { - this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, 'bad-service'); - } - this._conn.disconnect(); - return; - } - // Fires the XHR request -- may be invoked immediately - // or on a gradually expanding retry window for reconnects - var sendFunc = function sendFunc() { - req.date = new Date(); - if (_this._conn.options.customHeaders) { - var headers = _this._conn.options.customHeaders; - for (var header in headers) { - if (Object.prototype.hasOwnProperty.call(headers, header)) { - req.xhr.setRequestHeader(header, headers[header]); - } - } - } - req.xhr.send(req.data); - }; +/** + * Checks if `predicate` returns truthy for **any** element of `collection`. + * Iteration is stopped once `predicate` returns truthy. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + * @example + * + * _.some([null, 0, 'yes', false], Boolean); + * // => true + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.some(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.some(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.some(users, 'active'); + * // => true + */ +function some(collection, predicate, guard) { + var func = lodash_es_isArray(collection) ? _arraySome : _baseSome; + if (guard && _isIterateeCall(collection, predicate, guard)) { + predicate = undefined; + } + return func(collection, _baseIteratee(predicate, 3)); +} +/* harmony default export */ const lodash_es_some = (some); +;// CONCATENATED MODULE: ./node_modules/@converse/skeletor/src/history.js +// Backbone.js 1.4.0 +// (c) 2010-2019 Jeremy Ashkenas and DocumentCloud +// Backbone may be freely distributed under the MIT license. - // Implement progressive backoff for reconnects -- - // First retry (send === 1) should also be instantaneous - if (req.sends > 1) { - // Using a cube of the retry number creates a nicely - // expanding retry window - var backoff = Math.min(Math.floor(Strophe.TIMEOUT * this.wait), Math.pow(req.sends, 3)) * 1000; - setTimeout(function () { - // XXX: setTimeout should be called only with function expressions (23974bc1) - sendFunc(); - }, backoff); - } else { - sendFunc(); - } - req.sends++; - if (this._conn.xmlOutput !== Strophe.Connection.prototype.xmlOutput) { - if (req.xmlData.nodeName === this.strip && req.xmlData.childNodes.length) { - this._conn.xmlOutput(req.xmlData.childNodes[0]); - } else { - this._conn.xmlOutput(req.xmlData); - } - } - if (this._conn.rawOutput !== Strophe.Connection.prototype.rawOutput) { - this._conn.rawOutput(req.data); - } + + + + + +// History +// ------- + +// Handles cross-browser history management, based on either +// [pushState](http://diveintohtml5.info/history.html) and real URLs, or +// [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange) +// and URL fragments. If the browser supports neither (old IE, natch), +// falls back to polling. +var history_History = function History() { + this.handlers = []; + this.checkUrl = this.checkUrl.bind(this); + + // Ensure that `History` can be used outside of the browser. + if (typeof window !== 'undefined') { + this.location = window.location; + this.history = window.history; + } +}; +history_History.extend = inherits; + +// Cached regex for stripping a leading hash/slash and trailing space. +var routeStripper = /^[#\/]|\s+$/g; +// Cached regex for stripping leading and trailing slashes. +var rootStripper = /^\/+|\/+$/g; +// Cached regex for stripping urls of hash. +var pathStripper = /#.*$/; + +// Has the history handling already been started? +history_History.started = false; + +// Set up all inheritable **History** properties and methods. +Object.assign(history_History.prototype, Events, { + // The default interval to poll for hash changes, if necessary, is + // twenty times a second. + interval: 50, + // Are we at the app root? + atRoot: function atRoot() { + var path = this.location.pathname.replace(/[^\/]$/, '$&/'); + return path === this.root && !this.getSearch(); + }, + // Does the pathname match the root? + matchRoot: function matchRoot() { + var path = this.decodeFragment(this.location.pathname); + var rootPath = path.slice(0, this.root.length - 1) + '/'; + return rootPath === this.root; + }, + // Unicode characters in `location.pathname` are percent encoded so they're + // decoded for comparison. `%25` should not be decoded since it may be part + // of an encoded parameter. + decodeFragment: function decodeFragment(fragment) { + return decodeURI(fragment.replace(/%25/g, '%2525')); + }, + // In IE6, the hash fragment and search params are incorrect if the + // fragment contains `?`. + getSearch: function getSearch() { + var match = this.location.href.replace(/#.*/, '').match(/\?.+/); + return match ? match[0] : ''; + }, + // Gets the true hash value. Cannot use location.hash directly due to bug + // in Firefox where location.hash will always be decoded. + getHash: function getHash(window) { + var match = (window || this).location.href.match(/#(.*)$/); + return match ? match[1] : ''; + }, + // Get the pathname and search params, without the root. + getPath: function getPath() { + var path = this.decodeFragment(this.location.pathname + this.getSearch()).slice(this.root.length - 1); + return path.charAt(0) === '/' ? path.slice(1) : path; + }, + // Get the cross-browser normalized URL fragment from the path or hash. + getFragment: function getFragment(fragment) { + if (fragment == null) { + if (this._usePushState || !this._wantsHashChange) { + fragment = this.getPath(); } else { - Strophe.debug('_processRequest: ' + (i === 0 ? 'first' : 'second') + ' request has readyState of ' + req.xhr.readyState); + fragment = this.getHash(); } } + return fragment.replace(routeStripper, ''); + }, + // Start the hash change handling, returning `true` if the current URL matches + // an existing route, and `false` otherwise. + start: function start(options) { + if (history_History.started) throw new Error('history has already been started'); + history_History.started = true; - /** PrivateFunction: _removeRequest - * _Private_ function to remove a request from the queue. - * - * Parameters: - * (Strophe.Request) req - The request to remove. - */ - }, { - key: "_removeRequest", - value: function _removeRequest(req) { - Strophe.debug('removing request'); - for (var i = this._requests.length - 1; i >= 0; i--) { - if (req === this._requests[i]) { - this._requests.splice(i, 1); - } - } - // IE6 fails on setting to null, so set to empty function - req.xhr.onreadystatechange = function () {}; - this._throttledRequestHandler(); - } + // Figure out the initial configuration. Do we need an iframe? + // Is pushState desired ... is it available? + this.options = lodash_es_assignIn({ + root: '/' + }, this.options, options); + this.root = this.options.root; + this._wantsHashChange = this.options.hashChange !== false; + this._hasHashChange = 'onhashchange' in window && (document.documentMode === undefined || document.documentMode > 7); + this._useHashChange = this._wantsHashChange && this._hasHashChange; + this._wantsPushState = !!this.options.pushState; + this._hasPushState = !!(this.history && this.history.pushState); + this._usePushState = this._wantsPushState && this._hasPushState; + this.fragment = this.getFragment(); - /** PrivateFunction: _restartRequest - * _Private_ function to restart a request that is presumed dead. - * - * Parameters: - * (Integer) i - The index of the request in the queue. - */ - }, { - key: "_restartRequest", - value: function _restartRequest(i) { - var req = this._requests[i]; - if (req.dead === null) { - req.dead = new Date(); - } - this._processRequest(i); - } + // Normalize root to always include a leading and trailing slash. + this.root = ('/' + this.root + '/').replace(rootStripper, '/'); - /** PrivateFunction: _reqToData - * _Private_ function to get a stanza out of a request. - * - * Tries to extract a stanza out of a Request Object. - * When this fails the current connection will be disconnected. - * - * Parameters: - * (Object) req - The Request. - * - * Returns: - * The stanza that was passed. - */ - }, { - key: "_reqToData", - value: function _reqToData(req) { - try { - return req.getResponse(); - } catch (e) { - if (e.message !== 'parsererror') { - throw e; - } - this._conn.disconnect('strophe-parsererror'); + // Transition from hashChange to pushState or vice versa if both are + // requested. + if (this._wantsHashChange && this._wantsPushState) { + // If we've started off with a route from a `pushState`-enabled + // browser, but we're currently in a browser that doesn't support it... + if (!this._hasPushState && !this.atRoot()) { + var rootPath = this.root.slice(0, -1) || '/'; + this.location.replace(rootPath + '#' + this.getPath()); + // Return immediately as browser will do redirect to new url + return true; + + // Or if we've started out with a hash-based route, but we're currently + // in a browser where it could be `pushState`-based instead... + } else if (this._hasPushState && this.atRoot()) { + this.navigate(this.getHash(), { + replace: true + }); } } - /** PrivateFunction: _sendTerminate - * _Private_ function to send initial disconnect sequence. - * - * This is the first step in a graceful disconnect. It sends - * the BOSH server a terminate body and includes an unavailable - * presence if authentication has completed. - */ - }, { - key: "_sendTerminate", - value: function _sendTerminate(pres) { - Strophe.debug('_sendTerminate was called'); - var body = this._buildBody().attrs({ - type: 'terminate' - }); - if (pres) { - body.cnode(pres.tree()); - } - var req = new Strophe.Request(body.tree(), this._onRequestStateChange.bind(this, this._conn._dataRecv.bind(this._conn)), body.tree().getAttribute('rid')); - this._requests.push(req); - this._throttledRequestHandler(); + // Proxy an iframe to handle location events if the browser doesn't + // support the `hashchange` event, HTML5 history, or the user wants + // `hashChange` but not `pushState`. + if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) { + this.iframe = document.createElement('iframe'); + this.iframe.src = 'javascript:0'; + this.iframe.style.display = 'none'; + this.iframe.tabIndex = -1; + var body = document.body; + // Using `appendChild` will throw on IE < 9 if the document is not ready. + var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow; + iWindow.document.open(); + iWindow.document.close(); + iWindow.location.hash = '#' + this.fragment; } - /** PrivateFunction: _send - * _Private_ part of the Connection.send function for BOSH - * - * Just triggers the RequestHandler to send the messages that are in the queue - */ - }, { - key: "_send", - value: function _send() { - var _this2 = this; - clearTimeout(this._conn._idleTimeout); - this._throttledRequestHandler(); - this._conn._idleTimeout = setTimeout(function () { - return _this2._conn._onIdle(); - }, 100); + // Depending on whether we're using pushState or hashes, and whether + // 'onhashchange' is supported, determine how we check the URL state. + if (this._usePushState) { + addEventListener('popstate', this.checkUrl, false); + } else if (this._useHashChange && !this.iframe) { + addEventListener('hashchange', this.checkUrl, false); + } else if (this._wantsHashChange) { + this._checkUrlInterval = setInterval(this.checkUrl, this.interval); + } + if (!this.options.silent) return this.loadUrl(); + }, + // Disable history, perhaps temporarily. Not useful in a real app, + // but possibly useful for unit testing Routers. + stop: function stop() { + // Remove window listeners. + if (this._usePushState) { + removeEventListener('popstate', this.checkUrl, false); + } else if (this._useHashChange && !this.iframe) { + removeEventListener('hashchange', this.checkUrl, false); } - /** PrivateFunction: _sendRestart - * - * Send an xmpp:restart stanza. - */ - }, { - key: "_sendRestart", - value: function _sendRestart() { - this._throttledRequestHandler(); - clearTimeout(this._conn._idleTimeout); + // Clean up the iframe if necessary. + if (this.iframe) { + document.body.removeChild(this.iframe); + this.iframe = null; } - /** PrivateFunction: _throttledRequestHandler - * _Private_ function to throttle requests to the connection window. - * - * This function makes sure we don't send requests so fast that the - * request ids overflow the connection window in the case that one - * request died. - */ - }, { - key: "_throttledRequestHandler", - value: function _throttledRequestHandler() { - if (!this._requests) { - Strophe.debug('_throttledRequestHandler called with ' + 'undefined requests'); - } else { - Strophe.debug('_throttledRequestHandler called with ' + this._requests.length + ' requests'); - } - if (!this._requests || this._requests.length === 0) { - return; - } - if (this._requests.length > 0) { - this._processRequest(0); - } - if (this._requests.length > 1 && Math.abs(this._requests[0].rid - this._requests[1].rid) < this.window) { - this._processRequest(1); - } + // Some environments will throw when clearing an undefined interval. + if (this._checkUrlInterval) clearInterval(this._checkUrlInterval); + history_History.started = false; + }, + // Add a route to be tested when the fragment changes. Routes added later + // may override previous routes. + route: function route(_route, callback) { + this.handlers.unshift({ + route: _route, + callback: callback + }); + }, + // Checks the current URL to see if it has changed, and if it has, + // calls `loadUrl`, normalizing across the hidden iframe. + checkUrl: function checkUrl(e) { + var current = this.getFragment(); + + // If the user pressed the back button, the iframe's hash will have + // changed and we should use that for comparison. + if (current === this.fragment && this.iframe) { + current = this.getHash(this.iframe.contentWindow); } - }], [{ - key: "_getRequestStatus", - value: function _getRequestStatus(req, def) { - var reqStatus; - if (req.xhr.readyState === 4) { - try { - reqStatus = req.xhr.status; - } catch (e) { - // ignore errors from undefined status attribute. Works - // around a browser bug - Strophe.error("Caught an error while retrieving a request's status, " + 'reqStatus: ' + reqStatus); - } - } - if (typeof reqStatus === 'undefined') { - reqStatus = typeof def === 'number' ? def : 0; + if (current === this.fragment) return false; + if (this.iframe) this.navigate(current); + this.loadUrl(); + }, + // Attempt to load the current URL fragment. If a route succeeds with a + // match, returns `true`. If no defined routes matches the fragment, + // returns `false`. + loadUrl: function loadUrl(fragment) { + // If the root doesn't match, no routes can match either. + if (!this.matchRoot()) return false; + fragment = this.fragment = this.getFragment(fragment); + return lodash_es_some(this.handlers, function (handler) { + if (handler.route.test(fragment)) { + handler.callback(fragment); + return true; } - return reqStatus; + }); + }, + // Save a fragment into the hash history, or replace the URL state if the + // 'replace' option is passed. You are responsible for properly URL-encoding + // the fragment in advance. + // + // The options object can contain `trigger: true` if you wish to have the + // route callback be fired (not usually desirable), or `replace: true`, if + // you wish to modify the current URL without adding an entry to the history. + navigate: function navigate(fragment, options) { + if (!history_History.started) return false; + if (!options || options === true) options = { + trigger: !!options + }; + + // Normalize the fragment. + fragment = this.getFragment(fragment || ''); + + // Don't include a trailing slash on the root. + var rootPath = this.root; + if (fragment === '' || fragment.charAt(0) === '?') { + rootPath = rootPath.slice(0, -1) || '/'; } - }]); - return Bosh; -}(); + var url = rootPath + fragment; -/** Variable: strip - * - * BOSH-Connections will have all stanzas wrapped in a tag when - * passed to or . - * To strip this tag, User code can set to "body": - * - * > Strophe.Bosh.prototype.strip = "body"; - * - * This will enable stripping of the body tag in both - * and . - */ -Strophe.Bosh.prototype.strip = null; -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/websocket.js -function websocket_typeof(obj) { - "@babel/helpers - typeof"; + // Strip the fragment of the query and hash for matching. + fragment = fragment.replace(pathStripper, ''); - return websocket_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, websocket_typeof(obj); -} -function websocket_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} -function websocket_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, websocket_toPropertyKey(descriptor.key), descriptor); - } -} -function websocket_createClass(Constructor, protoProps, staticProps) { - if (protoProps) websocket_defineProperties(Constructor.prototype, protoProps); - if (staticProps) websocket_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function websocket_toPropertyKey(arg) { - var key = websocket_toPrimitive(arg, "string"); - return websocket_typeof(key) === "symbol" ? key : String(key); -} -function websocket_toPrimitive(input, hint) { - if (websocket_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (websocket_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); -} -/* - This program is distributed under the terms of the MIT license. - Please see the LICENSE file for details. + // Decode for matching. + var decodedFragment = this.decodeFragment(fragment); + if (this.fragment === decodedFragment) return; + this.fragment = decodedFragment; - Copyright 2006-2008, OGG, LLC -*/ + // If pushState is available, we use it to set the fragment as a real URL. + if (this._usePushState) { + this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url); -/* global clearTimeout, location */ + // If hash changes haven't been explicitly disabled, update the hash + // fragment to store history. + } else if (this._wantsHashChange) { + this._updateHash(this.location, fragment, options.replace); + if (this.iframe && fragment !== this.getHash(this.iframe.contentWindow)) { + var iWindow = this.iframe.contentWindow; + + // Opening and closing the iframe tricks IE7 and earlier to push a + // history entry on hash-tag change. When replace is true, we don't + // want this. + if (!options.replace) { + iWindow.document.open(); + iWindow.document.close(); + } + this._updateHash(iWindow.location, fragment, options.replace); + } + // If you've told us that you explicitly don't want fallback hashchange- + // based history, then `navigate` becomes a page refresh. + } else { + return this.location.assign(url); + } + if (options.trigger) return this.loadUrl(fragment); + }, + // Update the hash location, either replacing the current entry, or adding + // a new one to the browser history. + _updateHash: function _updateHash(location, fragment, replace) { + if (replace) { + var href = location.href.replace(/(javascript:|#).*$/, ''); + location.replace(href + '#' + fragment); + } else { + // Some browsers require that `hash` contains a leading #. + location.hash = '#' + fragment; + } + } +}); +/* harmony default export */ const src_history = (history_History); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseIsRegExp.js +/** `Object#toString` result references. */ +var _baseIsRegExp_regexpTag = '[object RegExp]'; -/** Class: Strophe.WebSocket - * _Private_ helper class that handles WebSocket Connections +/** + * The base implementation of `_.isRegExp` without Node.js optimizations. * - * The Strophe.WebSocket class is used internally by Strophe.Connection - * to encapsulate WebSocket sessions. It is not meant to be used from user's code. + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. */ +function baseIsRegExp(value) { + return lodash_es_isObjectLike(value) && _baseGetTag(value) == _baseIsRegExp_regexpTag; +} +/* harmony default export */ const _baseIsRegExp = (baseIsRegExp); +;// CONCATENATED MODULE: ./node_modules/lodash-es/isRegExp.js -/** File: websocket.js - * A JavaScript library to enable XMPP over Websocket in Strophejs. - * - * This file implements XMPP over WebSockets for Strophejs. - * If a Connection is established with a Websocket url (ws://...) - * Strophe will use WebSockets. - * For more information on XMPP-over-WebSocket see RFC 7395: - * http://tools.ietf.org/html/rfc7395 + + + +/* Node.js helper references. */ +var nodeIsRegExp = _nodeUtil && _nodeUtil.isRegExp; + +/** + * Checks if `value` is classified as a `RegExp` object. * - * WebSocket support implemented by Andreas Guth (andreas.guth@rwth-aachen.de) - */ -Strophe.Websocket = /*#__PURE__*/function () { - /** PrivateConstructor: Strophe.Websocket - * Create and initialize a Strophe.WebSocket object. - * Currently only sets the connection Object. - * - * Parameters: - * (Strophe.Connection) connection - The Strophe.Connection that will use WebSockets. - * - * Returns: - * A new Strophe.WebSocket object. - */ - function Websocket(connection) { - websocket_classCallCheck(this, Websocket); - this._conn = connection; - this.strip = 'wrapper'; - var service = connection.service; - if (service.indexOf('ws:') !== 0 && service.indexOf('wss:') !== 0) { - // If the service is not an absolute URL, assume it is a path and put the absolute - // URL together from options, current URL and the path. - var new_service = ''; - if (connection.options.protocol === 'ws' && location.protocol !== 'https:') { - new_service += 'ws'; - } else { - new_service += 'wss'; - } - new_service += '://' + location.host; - if (service.indexOf('/') !== 0) { - new_service += location.pathname + service; - } else { - new_service += service; - } - connection.service = new_service; - } - } - - /** PrivateFunction: _buildStream - * _Private_ helper function to generate the start tag for WebSockets - * - * Returns: - * A Strophe.Builder with a element. - */ - websocket_createClass(Websocket, [{ - key: "_buildStream", - value: function _buildStream() { - return $build('open', { - 'xmlns': Strophe.NS.FRAMING, - 'to': this._conn.domain, - 'version': '1.0' - }); - } + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + * @example + * + * _.isRegExp(/abc/); + * // => true + * + * _.isRegExp('/abc/'); + * // => false + */ +var isRegExp = nodeIsRegExp ? _baseUnary(nodeIsRegExp) : _baseIsRegExp; +/* harmony default export */ const lodash_es_isRegExp = (isRegExp); +;// CONCATENATED MODULE: ./node_modules/@converse/skeletor/src/router.js +// Backbone.js 1.4.0 +// (c) 2010-2019 Jeremy Ashkenas and DocumentCloud +// Backbone may be freely distributed under the MIT license. - /** PrivateFunction: _checkStreamError - * _Private_ checks a message for stream:error - * - * Parameters: - * (Strophe.Request) bodyWrap - The received stanza. - * connectstatus - The ConnectStatus that will be set on error. - * Returns: - * true if there was a streamerror, false otherwise. - */ - }, { - key: "_checkStreamError", - value: function _checkStreamError(bodyWrap, connectstatus) { - var errors; - if (bodyWrap.getElementsByTagNameNS) { - errors = bodyWrap.getElementsByTagNameNS(Strophe.NS.STREAM, 'error'); - } else { - errors = bodyWrap.getElementsByTagName('stream:error'); - } - if (errors.length === 0) { - return false; - } - var error = errors[0]; - var condition = ''; - var text = ''; - var ns = 'urn:ietf:params:xml:ns:xmpp-streams'; - for (var i = 0; i < error.childNodes.length; i++) { - var e = error.childNodes[i]; - if (e.getAttribute('xmlns') !== ns) { - break; - } - if (e.nodeName === 'text') { - text = e.textContent; - } else { - condition = e.nodeName; - } - } - var errorString = 'WebSocket stream error: '; - if (condition) { - errorString += condition; - } else { - errorString += 'unknown'; - } - if (text) { - errorString += ' - ' + text; - } - Strophe.error(errorString); +// Router +// ------ - // close the connection on stream_error - this._conn._changeConnectStatus(connectstatus, condition); - this._conn._doDisconnect(); - return true; - } - /** PrivateFunction: _reset - * Reset the connection. - * - * This function is called by the reset function of the Strophe Connection. - * Is not needed by WebSockets. - */ - // eslint-disable-next-line class-methods-use-this - }, { - key: "_reset", - value: function _reset() { - return; - } - /** PrivateFunction: _connect - * _Private_ function called by Strophe.Connection.connect - * - * Creates a WebSocket for a connection and assigns Callbacks to it. - * Does nothing if there already is a WebSocket. - */ - }, { - key: "_connect", - value: function _connect() { - var _this = this; - // Ensure that there is no open WebSocket from a previous Connection. - this._closeSocket(); - this.socket = new WebSocket(this._conn.service, 'xmpp'); - this.socket.onopen = function () { - return _this._onOpen(); - }; - this.socket.onerror = function (e) { - return _this._onError(e); - }; - this.socket.onclose = function (e) { - return _this._onClose(e); - }; - // Gets replaced with this._onMessage once _onInitialMessage is called - this.socket.onmessage = function (message) { - return _this._onInitialMessage(message); - }; - } - /** PrivateFunction: _connect_cb - * _Private_ function called by Strophe.Connection._connect_cb - * - * checks for stream:error - * - * Parameters: - * (Strophe.Request) bodyWrap - The received stanza. - */ - }, { - key: "_connect_cb", - value: function _connect_cb(bodyWrap) { - var error = this._checkStreamError(bodyWrap, Strophe.Status.CONNFAIL); - if (error) { - return Strophe.Status.CONNFAIL; - } - } - /** PrivateFunction: _handleStreamStart - * _Private_ function that checks the opening tag for errors. - * - * Disconnects if there is an error and returns false, true otherwise. - * - * Parameters: - * (Node) message - Stanza containing the tag. - */ - }, { - key: "_handleStreamStart", - value: function _handleStreamStart(message) { - var error = false; - // Check for errors in the tag - var ns = message.getAttribute('xmlns'); - if (typeof ns !== 'string') { - error = 'Missing xmlns in '; - } else if (ns !== Strophe.NS.FRAMING) { - error = 'Wrong xmlns in : ' + ns; - } - var ver = message.getAttribute('version'); - if (typeof ver !== 'string') { - error = 'Missing version in '; - } else if (ver !== '1.0') { - error = 'Wrong version in : ' + ver; - } - if (error) { - this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, error); - this._conn._doDisconnect(); - return false; - } - return true; - } - /** PrivateFunction: _onInitialMessage - * _Private_ function that handles the first connection messages. - * - * On receiving an opening stream tag this callback replaces itself with the real - * message handler. On receiving a stream error the connection is terminated. - */ - }, { - key: "_onInitialMessage", - value: function _onInitialMessage(message) { - if (message.data.indexOf('\s*)*/, ''); - if (data === '') return; - var streamStart = new DOMParser().parseFromString(data, 'text/xml').documentElement; - this._conn.xmlInput(streamStart); - this._conn.rawInput(message.data); - //_handleStreamSteart will check for XML errors and disconnect on error - if (this._handleStreamStart(streamStart)) { - //_connect_cb will check for stream:error and disconnect on error - this._connect_cb(streamStart); - } - } else if (message.data.indexOf(' tag."); - } - } - setTimeout(function () { - return _this3._conn._doDisconnect(); - }, 0); - } +// Routers map faux-URLs to actions, and fire events when routes are +// matched. Creating a new one sets its `routes` hash, if not set statically. +var Router = function Router() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + this.history = options.history || new src_history(); + this.preinitialize.apply(this, arguments); + if (options.routes) this.routes = options.routes; + this._bindRoutes(); + this.initialize.apply(this, arguments); +}; +Router.extend = inherits; - /** PrivateFunction: _doDisconnect - * _Private_ function to disconnect. - * - * Just closes the Socket for WebSockets - */ - }, { - key: "_doDisconnect", - value: function _doDisconnect() { - Strophe.debug('WebSockets _doDisconnect was called'); - this._closeSocket(); - } +// Cached regular expressions for matching named param parts and splatted +// parts of route strings. +var optionalParam = /\((.*?)\)/g; +var namedParam = /(\(\?)?:\w+/g; +var splatParam = /\*\w+/g; +var escapeRegExp = /[\-{}\[\]+?.,\\\^$|#\s]/g; - /** PrivateFunction _streamWrap - * _Private_ helper function to wrap a stanza in a tag. - * This is used so Strophe can process stanzas from WebSockets like BOSH - */ - // eslint-disable-next-line class-methods-use-this - }, { - key: "_streamWrap", - value: function _streamWrap(stanza) { - return '' + stanza + ''; +// Set up all inheritable **Router** properties and methods. +Object.assign(Router.prototype, Events, { + // preinitialize is an empty function by default. You can override it with a function + // or object. preinitialize will run before any instantiation logic is run in the Router. + preinitialize: function preinitialize() {}, + // Initialize is an empty function by default. Override it with your own + // initialization logic. + initialize: function initialize() {}, + // Manually bind a single named route to a callback. For example: + // + // this.route('search/:query/p:num', 'search', function(query, num) { + // ... + // }); + // + route: function route(_route, name, callback) { + var _this = this; + if (!lodash_es_isRegExp(_route)) _route = this._routeToRegExp(_route); + if (lodash_es_isFunction(name)) { + callback = name; + name = ''; } - - /** PrivateFunction: _closeSocket - * _Private_ function to close the WebSocket. - * - * Closes the socket if it is still open and deletes it - */ - }, { - key: "_closeSocket", - value: function _closeSocket() { - if (this.socket) { - try { - this.socket.onclose = null; - this.socket.onerror = null; - this.socket.onmessage = null; - this.socket.close(); - } catch (e) { - Strophe.debug(e.message); - } + if (!callback) callback = this[name]; + this.history.route(_route, function (fragment) { + var args = _this._extractParameters(_route, fragment); + if (_this.execute(callback, args, name) !== false) { + _this.trigger.apply(_this, ['route:' + name].concat(args)); + _this.trigger('route', name, args); + _this.history.trigger('route', _this, name, args); } - this.socket = null; - } - - /** PrivateFunction: _emptyQueue - * _Private_ function to check if the message queue is empty. - * - * Returns: - * True, because WebSocket messages are send immediately after queueing. - */ - // eslint-disable-next-line class-methods-use-this - }, { - key: "_emptyQueue", - value: function _emptyQueue() { - return true; + }); + return this; + }, + // Execute a route handler with the provided parameters. This is an + // excellent place to do pre-route setup or post-route cleanup. + execute: function execute(callback, args, name) { + if (callback) callback.apply(this, args); + }, + // Simple proxy to `history` to save a fragment into the history. + navigate: function navigate(fragment, options) { + this.history.navigate(fragment, options); + return this; + }, + // Bind all defined routes to `history`. We have to reverse the + // order of the routes here to support behavior where the most general + // routes can be defined at the bottom of the route map. + _bindRoutes: function _bindRoutes() { + if (!this.routes) return; + this.routes = lodash_es_result(this, 'routes'); + var route; + var routes = lodash_es_keys(this.routes); + while ((route = routes.pop()) != null) { + this.route(route, this.routes[route]); } + }, + // Convert a route string into a regular expression, suitable for matching + // against the current location hash. + _routeToRegExp: function _routeToRegExp(route) { + route = route.replace(escapeRegExp, '\\$&').replace(optionalParam, '(?:$1)?').replace(namedParam, function (match, optional) { + return optional ? match : '([^/?]+)'; + }).replace(splatParam, '([^?]*?)'); + return new RegExp('^' + route + '(?:\\?([\\s\\S]*))?$'); + }, + // Given a route, and a URL fragment that it matches, return the array of + // extracted decoded parameters. Empty or unmatched parameters will be + // treated as `null` to normalize cross-browser behavior. + _extractParameters: function _extractParameters(route, fragment) { + var params = route.exec(fragment).slice(1); + return params.map(function (param, i) { + // Don't decode the search params. + if (i === params.length - 1) return param || null; + return param ? decodeURIComponent(param) : null; + }); + } +}); +;// CONCATENATED MODULE: ./src/headless/shared/_converse.js - /** PrivateFunction: _onClose - * _Private_ function to handle websockets closing. - */ - }, { - key: "_onClose", - value: function _onClose(e) { - if (this._conn.connected && !this._conn.disconnecting) { - Strophe.error('Websocket closed unexpectedly'); - this._conn._doDisconnect(); - } else if (e && e.code === 1006 && !this._conn.connected && this.socket) { - // in case the onError callback was not called (Safari 10 does not - // call onerror when the initial connection fails) we need to - // dispatch a CONNFAIL status update to be consistent with the - // behavior on other browsers. - Strophe.error('Websocket closed unexcectedly'); - this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, 'The WebSocket connection could not be established or was disconnected.'); - this._conn._doDisconnect(); - } else { - Strophe.debug('Websocket closed'); - } - } - /** PrivateFunction: _no_auth_received - * - * Called on stream start/restart when no stream:features - * has been received. - */ - }, { - key: "_no_auth_received", - value: function _no_auth_received(callback) { - Strophe.error('Server did not offer a supported authentication mechanism'); - this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, Strophe.ErrorCondition.NO_AUTH_MECH); - if (callback) { - callback.call(this._conn); - } - this._conn._doDisconnect(); - } - /** PrivateFunction: _onDisconnectTimeout - * _Private_ timeout handler for handling non-graceful disconnection. - * - * This does nothing for WebSockets - */ - }, { - key: "_onDisconnectTimeout", - value: function _onDisconnectTimeout() {} // eslint-disable-line class-methods-use-this - /** PrivateFunction: _abortAllRequests - * _Private_ helper function that makes sure all pending requests are aborted. - */ - }, { - key: "_abortAllRequests", - value: function _abortAllRequests() {} // eslint-disable-line class-methods-use-this - /** PrivateFunction: _onError - * _Private_ function to handle websockets errors. - * - * Parameters: - * (Object) error - The websocket error. - */ - }, { - key: "_onError", - value: function _onError(error) { - Strophe.error('Websocket error ' + JSON.stringify(error)); - this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, 'The WebSocket connection could not be established or was disconnected.'); - this._disconnect(); - } - /** PrivateFunction: _onIdle - * _Private_ function called by Strophe.Connection._onIdle - * - * sends all queued stanzas - */ - }, { - key: "_onIdle", - value: function _onIdle() { - var data = this._conn._data; - if (data.length > 0 && !this._conn.paused) { - for (var i = 0; i < data.length; i++) { - if (data[i] !== null) { - var stanza = void 0; - if (data[i] === 'restart') { - stanza = this._buildStream().tree(); - } else { - stanza = data[i]; - } - var rawStanza = Strophe.serialize(stanza); - this._conn.xmlOutput(stanza); - this._conn.rawOutput(rawStanza); - this.socket.send(rawStanza); - } - } - this._conn._data = []; - } - } - /** PrivateFunction: _onMessage - * _Private_ function to handle websockets messages. - * - * This function parses each of the messages as if they are full documents. - * [TODO : We may actually want to use a SAX Push parser]. - * - * Since all XMPP traffic starts with - * - * - * The first stanza will always fail to be parsed. - * - * Additionally, the seconds stanza will always be with - * the stream NS defined in the previous stanza, so we need to 'force' - * the inclusion of the NS in this stanza. - * - * Parameters: - * (string) message - The websocket message. - */ - }, { - key: "_onMessage", - value: function _onMessage(message) { - var elem; - // check for closing stream - var close = ''; - if (message.data === close) { - this._conn.rawInput(close); - this._conn.xmlInput(message); - if (!this._conn.disconnecting) { - this._conn._doDisconnect(); - } - return; - } else if (message.data.search(' tag before we close the connection - return; - } - this._conn._dataRecv(elem, message.data); - } - /** PrivateFunction: _onOpen - * _Private_ function to handle websockets connection setup. - * - * The opening stream tag is sent here. - */ - }, { - key: "_onOpen", - value: function _onOpen() { - Strophe.debug('Websocket open'); - var start = this._buildStream(); - this._conn.xmlOutput(start.tree()); - var startString = Strophe.serialize(start); - this._conn.rawOutput(startString); - this.socket.send(startString); - } - /** PrivateFunction: _reqToData - * _Private_ function to get a stanza out of a request. - * - * WebSockets don't use requests, so the passed argument is just returned. - * - * Parameters: - * (Object) stanza - The stanza. - * - * Returns: - * The stanza that was passed. - */ - // eslint-disable-next-line class-methods-use-this - }, { - key: "_reqToData", - value: function _reqToData(stanza) { - return stanza; - } - /** PrivateFunction: _send - * _Private_ part of the Connection.send function for WebSocket - * - * Just flushes the messages that are in the queue - */ - }, { - key: "_send", - value: function _send() { - this._conn.flush(); - } +/** + * A private, closured object containing the private api (via {@link _converse.api}) + * as well as private methods and internal data-structures. + * @global + * @namespace _converse + */ +var _converse = { + log: log, + shouldClearCache: shouldClearCache, + // TODO: Should be moved to utils with next major release + VERSION_NAME: VERSION_NAME, + templates: {}, + promises: { + 'initialized': getOpenPromise() + }, + // TODO: remove constants in next major release + ANONYMOUS: ANONYMOUS, + CLOSED: CLOSED, + EXTERNAL: EXTERNAL, + LOGIN: LOGIN, + LOGOUT: LOGOUT, + OPENED: OPENED, + PREBIND: PREBIND, + SUCCESS: SUCCESS, + FAILURE: FAILURE, + DEFAULT_IMAGE_TYPE: DEFAULT_IMAGE_TYPE, + DEFAULT_IMAGE: DEFAULT_IMAGE, + INACTIVE: INACTIVE, + ACTIVE: ACTIVE, + COMPOSING: COMPOSING, + PAUSED: PAUSED, + GONE: GONE, + PRIVATE_CHAT_TYPE: PRIVATE_CHAT_TYPE, + CHATROOMS_TYPE: CHATROOMS_TYPE, + HEADLINES_TYPE: HEADLINES_TYPE, + CONTROLBOX_TYPE: CONTROLBOX_TYPE, + // Set as module attr so that we can override in tests. + // TODO: replace with config settings + TIMEOUTS: { + PAUSED: 10000, + INACTIVE: 90000 + }, + default_connection_options: { + 'explicitResourceBinding': true + }, + router: new Router(), + isTestEnv: function isTestEnv() { + return getInitSettings()['bosh_service_url'] === 'montague.lit/http-bind'; + }, + getDefaultStore: getDefaultStore, + createStore: createStore, + /** + * Translate the given string based on the current locale. + * @method __ + * @private + * @memberOf _converse + * @param { String } str + */ + '__': function __() { + return i18n.__.apply(i18n, arguments); + }, + /** + * A no-op method which is used to signal to gettext that the passed in string + * should be included in the pot translation file. + * + * In contrast to the double-underscore method, the triple underscore method + * doesn't actually translate the strings. + * + * One reason for this method might be because we're using strings we cannot + * send to the translation function because they require variable interpolation + * and we don't yet have the variables at scan time. + * + * @method ___ + * @private + * @memberOf _converse + * @param { String } str + */ + '___': function ___(str) { + return str; + } +}; - /** PrivateFunction: _sendRestart - * - * Send an xmpp:restart stanza. - */ - }, { - key: "_sendRestart", - value: function _sendRestart() { - clearTimeout(this._conn._idleTimeout); - this._conn._onIdle.bind(this._conn)(); +// Make _converse an event emitter +Object.assign(_converse, Events); + +// Make _converse pluggable +pluggable.enable(_converse, '_converse', 'pluggable'); +/* harmony default export */ const shared_converse = (_converse); +// EXTERNAL MODULE: ./node_modules/dayjs/plugin/advancedFormat.js +var advancedFormat = __webpack_require__(4289); +var advancedFormat_default = /*#__PURE__*/__webpack_require__.n(advancedFormat); +;// CONCATENATED MODULE: ./src/headless/shared/connection/api.js + + + +/** + * This grouping collects API functions related to the XMPP connection. + * + * @namespace _converse.api.connection + * @memberOf _converse.api + */ +/* harmony default export */ const api = ({ + /** + * @method _converse.api.connection.authenticated + * @memberOf _converse.api.connection + * @returns {boolean} Whether we're authenticated to the XMPP server or not + */ + authenticated: function authenticated() { + var _converse$connection; + return (shared_converse === null || shared_converse === void 0 ? void 0 : (_converse$connection = shared_converse.connection) === null || _converse$connection === void 0 ? void 0 : _converse$connection.authenticated) && true; + }, + /** + * @method _converse.api.connection.connected + * @memberOf _converse.api.connection + * @returns {boolean} Whether there is an established connection or not. + */ + connected: function connected() { + var _converse$connection2; + return (shared_converse === null || shared_converse === void 0 ? void 0 : (_converse$connection2 = shared_converse.connection) === null || _converse$connection2 === void 0 ? void 0 : _converse$connection2.connected) && true; + }, + /** + * Terminates the connection. + * + * @method _converse.api.connection.disconnect + * @memberOf _converse.api.connection + */ + disconnect: function disconnect() { + if (shared_converse.connection) { + shared_converse.connection.disconnect(); } - }]); - return Websocket; -}(); -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/worker-websocket.js -function worker_websocket_typeof(obj) { + }, + /** + * Can be called once the XMPP connection has dropped and we want + * to attempt reconnection. + * Only needs to be called once, if reconnect fails Converse will + * attempt to reconnect every two seconds, alternating between BOSH and + * Websocket if URLs for both were provided. + * @method reconnect + * @memberOf _converse.api.connection + */ + reconnect: function reconnect() { + var __ = shared_converse.__, + connection = shared_converse.connection; + connection.setConnectionStatus(external_strophe_namespaceObject.Strophe.Status.RECONNECTING, __('The connection has dropped, attempting to reconnect.')); + if (connection !== null && connection !== void 0 && connection.reconnecting) { + return connection.debouncedReconnect(); + } else { + return connection.reconnect(); + } + }, + /** + * Utility method to determine the type of connection we have + * @method isType + * @memberOf _converse.api.connection + * @returns {boolean} + */ + isType: function isType(type) { + return shared_converse.connection.isType(type); + } +}); +;// CONCATENATED MODULE: ./src/headless/shared/api/events.js +function api_events_typeof(obj) { "@babel/helpers - typeof"; - return worker_websocket_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return api_events_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, worker_websocket_typeof(obj); -} -function worker_websocket_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} -function worker_websocket_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, worker_websocket_toPropertyKey(descriptor.key), descriptor); - } -} -function worker_websocket_createClass(Constructor, protoProps, staticProps) { - if (protoProps) worker_websocket_defineProperties(Constructor.prototype, protoProps); - if (staticProps) worker_websocket_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function worker_websocket_toPropertyKey(arg) { - var key = worker_websocket_toPrimitive(arg, "string"); - return worker_websocket_typeof(key) === "symbol" ? key : String(key); -} -function worker_websocket_toPrimitive(input, hint) { - if (worker_websocket_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (worker_websocket_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); -} -function worker_websocket_inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) worker_websocket_setPrototypeOf(subClass, superClass); -} -function worker_websocket_setPrototypeOf(o, p) { - worker_websocket_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return worker_websocket_setPrototypeOf(o, p); + }, api_events_typeof(obj); } -function worker_websocket_createSuper(Derived) { - var hasNativeReflectConstruct = worker_websocket_isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = worker_websocket_getPrototypeOf(Derived), - result; - if (hasNativeReflectConstruct) { - var NewTarget = worker_websocket_getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return worker_websocket_possibleConstructorReturn(this, result); +function events_regeneratorRuntime() { + "use strict"; + + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + events_regeneratorRuntime = function _regeneratorRuntime() { + return exports; }; -} -function worker_websocket_possibleConstructorReturn(self, call) { - if (call && (worker_websocket_typeof(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return worker_websocket_assertThisInitialized(self); -} -function worker_websocket_assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; } - return self; -} -function worker_websocket_isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; - } -} -function worker_websocket_getPrototypeOf(o) { - worker_websocket_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return worker_websocket_getPrototypeOf(o); -} -/* - This program is distributed under the terms of the MIT license. - Please see the LICENSE file for details. - - Copyright 2020, JC Brand -*/ - - - -var lmap = {}; -lmap['debug'] = Strophe.LogLevel.DEBUG; -lmap['info'] = Strophe.LogLevel.INFO; -lmap['warn'] = Strophe.LogLevel.WARN; -lmap['error'] = Strophe.LogLevel.ERROR; -lmap['fatal'] = Strophe.LogLevel.FATAL; - -/** Class: Strophe.WorkerWebsocket - * _Private_ helper class that handles a websocket connection inside a shared worker. - */ -Strophe.WorkerWebsocket = /*#__PURE__*/function (_Strophe$Websocket) { - worker_websocket_inherits(WorkerWebsocket, _Strophe$Websocket); - var _super = worker_websocket_createSuper(WorkerWebsocket); - /** PrivateConstructor: Strophe.WorkerWebsocket - * Create and initialize a Strophe.WorkerWebsocket object. - * - * Parameters: - * (Strophe.Connection) connection - The Strophe.Connection - * - * Returns: - * A new Strophe.WorkerWebsocket object. - */ - function WorkerWebsocket(connection) { - var _this; - worker_websocket_classCallCheck(this, WorkerWebsocket); - _this = _super.call(this, connection); - _this._conn = connection; - _this.worker = new SharedWorker(_this._conn.options.worker, 'Strophe XMPP Connection'); - _this.worker.onerror = function (e) { - var _console; - (_console = console) === null || _console === void 0 ? void 0 : _console.error(e); - Strophe.log(Strophe.LogLevel.ERROR, "Shared Worker Error: ".concat(e)); + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; }; - return _this; } - worker_websocket_createClass(WorkerWebsocket, [{ - key: "socket", - get: function get() { - var _this2 = this; + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { return { - 'send': function send(str) { - return _this2.worker.port.postMessage(['send', str]); - } - }; - } - }, { - key: "_connect", - value: function _connect() { - var _this3 = this; - this._messageHandler = function (m) { - return _this3._onInitialMessage(m); - }; - this.worker.port.start(); - this.worker.port.onmessage = function (ev) { - return _this3._onWorkerMessage(ev); - }; - this.worker.port.postMessage(['_connect', this._conn.service, this._conn.jid]); - } - }, { - key: "_attach", - value: function _attach(callback) { - var _this4 = this; - this._messageHandler = function (m) { - return _this4._onMessage(m); + type: "normal", + arg: fn.call(obj, arg) }; - this._conn.connect_callback = callback; - this.worker.port.start(); - this.worker.port.onmessage = function (ev) { - return _this4._onWorkerMessage(ev); + } catch (err) { + return { + type: "throw", + arg: err }; - this.worker.port.postMessage(['_attach', this._conn.service]); - } - }, { - key: "_attachCallback", - value: function _attachCallback(status, jid) { - if (status === Strophe.Status.ATTACHED) { - this._conn.jid = jid; - this._conn.authenticated = true; - this._conn.connected = true; - this._conn.restored = true; - this._conn._changeConnectStatus(Strophe.Status.ATTACHED); - } else if (status === Strophe.Status.ATTACHFAIL) { - this._conn.authenticated = false; - this._conn.connected = false; - this._conn.restored = false; - this._conn._changeConnectStatus(Strophe.Status.ATTACHFAIL); - } } - }, { - key: "_disconnect", - value: function _disconnect(readyState, pres) { - pres && this._conn.send(pres); - var close = $build('close', { - 'xmlns': Strophe.NS.FRAMING + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); }); - this._conn.xmlOutput(close.tree()); - var closeString = Strophe.serialize(close); - this._conn.rawOutput(closeString); - this.worker.port.postMessage(['send', closeString]); - this._conn._doDisconnect(); - } - }, { - key: "_onClose", - value: function _onClose(e) { - if (this._conn.connected && !this._conn.disconnecting) { - Strophe.error('Websocket closed unexpectedly'); - this._conn._doDisconnect(); - } else if (e && e.code === 1006 && !this._conn.connected) { - // in case the onError callback was not called (Safari 10 does not - // call onerror when the initial connection fails) we need to - // dispatch a CONNFAIL status update to be consistent with the - // behavior on other browsers. - Strophe.error('Websocket closed unexcectedly'); - this._conn._changeConnectStatus(Strophe.Status.CONNFAIL, 'The WebSocket connection could not be established or was disconnected.'); - this._conn._doDisconnect(); - } else { - Strophe.debug('Websocket closed'); + }); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == api_events_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); } + reject(record.arg); } - }, { - key: "_closeSocket", - value: function _closeSocket() { - this.worker.port.postMessage(['_closeSocket']); - } - - /** PrivateFunction: _replaceMessageHandler - * - * Called by _onInitialMessage in order to replace itself with the general message handler. - * This method is overridden by Strophe.WorkerWebsocket, which manages a - * websocket connection via a service worker and doesn't have direct access - * to the socket. - */ - }, { - key: "_replaceMessageHandler", - value: function _replaceMessageHandler() { - var _this5 = this; - this._messageHandler = function (m) { - return _this5._onMessage(m); - }; - } - - /** PrivateFunction: _onWorkerMessage - * _Private_ function that handles messages received from the service worker - */ - }, { - key: "_onWorkerMessage", - value: function _onWorkerMessage(ev) { - var data = ev.data; - var method_name = data[0]; - if (method_name === '_onMessage') { - this._messageHandler(data[1]); - } else if (method_name in this) { - try { - this[method_name].apply(this, ev.data.slice(1)); - } catch (e) { - Strophe.log(Strophe.LogLevel.ERROR, e); + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); } - } else if (method_name === 'log') { - var level = data[1]; - var msg = data[2]; - Strophe.log(lmap[level], msg); - } else { - Strophe.log(Strophe.LogLevel.ERROR, "Found unhandled service worker message: ".concat(data)); + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } - } - }]); - return WorkerWebsocket; -}(Strophe.Websocket); -;// CONCATENATED MODULE: ./node_modules/strophe.js/src/strophe.js -/*global global*/ - - - - - - -__webpack_require__.g.$build = core.$build; -__webpack_require__.g.$iq = core.$iq; -__webpack_require__.g.$msg = core.$msg; -__webpack_require__.g.$pres = core.$pres; -__webpack_require__.g.Strophe = core.Strophe; -__webpack_require__.g.Strophe.shims = strophe_shims_namespaceObject; - -;// CONCATENATED MODULE: ./src/headless/shared/constants.js - -var BOSH_WAIT = 59; -var VERSION_NAME = "v10.1.6"; -var STATUS_WEIGHTS = { - offline: 6, - unavailable: 5, - xa: 4, - away: 3, - dnd: 2, - chat: 1, - // We don't differentiate between "chat" and "online" - online: 1 -}; -var ANONYMOUS = 'anonymous'; -var CLOSED = 'closed'; -var EXTERNAL = 'external'; -var LOGIN = 'login'; -var LOGOUT = 'logout'; -var OPENED = 'opened'; -var PREBIND = 'prebind'; -var SUCCESS = 'success'; -var FAILURE = 'failure'; - -// Generated from css/images/user.svg -var DEFAULT_IMAGE_TYPE = 'image/svg+xml'; -var DEFAULT_IMAGE = 'PD94bWwgdmVyc2lvbj0iMS4wIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+CiA8cmVjdCB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgZmlsbD0iIzU1NSIvPgogPGNpcmNsZSBjeD0iNjQiIGN5PSI0MSIgcj0iMjQiIGZpbGw9IiNmZmYiLz4KIDxwYXRoIGQ9Im0yOC41IDExMiB2LTEyIGMwLTEyIDEwLTI0IDI0LTI0IGgyMyBjMTQgMCAyNCAxMiAyNCAyNCB2MTIiIGZpbGw9IiNmZmYiLz4KPC9zdmc+Cg=='; - -// XEP-0085 Chat states -// https =//xmpp.org/extensions/xep-0085.html -var INACTIVE = 'inactive'; -var ACTIVE = 'active'; -var COMPOSING = 'composing'; -var PAUSED = 'paused'; -var GONE = 'gone'; + }); + } + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } + }; + } + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); + } + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; + }; + return next.next = next; + } + } + return { + next: doneResult + }; + } + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; +} +function events_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } +} +function events_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + events_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + events_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); + }; +} -// Chat types -var PRIVATE_CHAT_TYPE = 'chatbox'; -var CHATROOMS_TYPE = 'chatroom'; -var HEADLINES_TYPE = 'headline'; -var CONTROLBOX_TYPE = 'controlbox'; -var CONNECTION_STATUS = {}; -CONNECTION_STATUS[Strophe.Status.ATTACHED] = 'ATTACHED'; -CONNECTION_STATUS[Strophe.Status.AUTHENTICATING] = 'AUTHENTICATING'; -CONNECTION_STATUS[Strophe.Status.AUTHFAIL] = 'AUTHFAIL'; -CONNECTION_STATUS[Strophe.Status.CONNECTED] = 'CONNECTED'; -CONNECTION_STATUS[Strophe.Status.CONNECTING] = 'CONNECTING'; -CONNECTION_STATUS[Strophe.Status.CONNFAIL] = 'CONNFAIL'; -CONNECTION_STATUS[Strophe.Status.DISCONNECTED] = 'DISCONNECTED'; -CONNECTION_STATUS[Strophe.Status.DISCONNECTING] = 'DISCONNECTING'; -CONNECTION_STATUS[Strophe.Status.ERROR] = 'ERROR'; -CONNECTION_STATUS[Strophe.Status.RECONNECTING] = 'RECONNECTING'; -CONNECTION_STATUS[Strophe.Status.REDIRECT] = 'REDIRECT'; -// Add Strophe Namespaces -Strophe.addNamespace('ACTIVITY', 'http://jabber.org/protocol/activity'); -Strophe.addNamespace('CARBONS', 'urn:xmpp:carbons:2'); -Strophe.addNamespace('CHATSTATES', 'http://jabber.org/protocol/chatstates'); -Strophe.addNamespace('CSI', 'urn:xmpp:csi:0'); -Strophe.addNamespace('DELAY', 'urn:xmpp:delay'); -Strophe.addNamespace('EME', 'urn:xmpp:eme:0'); -Strophe.addNamespace('FASTEN', 'urn:xmpp:fasten:0'); -Strophe.addNamespace('FORWARD', 'urn:xmpp:forward:0'); -Strophe.addNamespace('HINTS', 'urn:xmpp:hints'); -Strophe.addNamespace('HTTPUPLOAD', 'urn:xmpp:http:upload:0'); -Strophe.addNamespace('MAM', 'urn:xmpp:mam:2'); -Strophe.addNamespace('MARKERS', 'urn:xmpp:chat-markers:0'); -Strophe.addNamespace('MENTIONS', 'urn:xmpp:mmn:0'); -Strophe.addNamespace('MESSAGE_CORRECT', 'urn:xmpp:message-correct:0'); -Strophe.addNamespace('MODERATE', 'urn:xmpp:message-moderate:0'); -Strophe.addNamespace('NICK', 'http://jabber.org/protocol/nick'); -Strophe.addNamespace('OCCUPANTID', 'urn:xmpp:occupant-id:0'); -Strophe.addNamespace('OMEMO', 'eu.siacs.conversations.axolotl'); -Strophe.addNamespace('OUTOFBAND', 'jabber:x:oob'); -Strophe.addNamespace('PUBSUB', 'http://jabber.org/protocol/pubsub'); -Strophe.addNamespace('RAI', 'urn:xmpp:rai:0'); -Strophe.addNamespace('RECEIPTS', 'urn:xmpp:receipts'); -Strophe.addNamespace('REFERENCE', 'urn:xmpp:reference:0'); -Strophe.addNamespace('REGISTER', 'jabber:iq:register'); -Strophe.addNamespace('RETRACT', 'urn:xmpp:message-retract:0'); -Strophe.addNamespace('ROSTERX', 'http://jabber.org/protocol/rosterx'); -Strophe.addNamespace('RSM', 'http://jabber.org/protocol/rsm'); -Strophe.addNamespace('SID', 'urn:xmpp:sid:0'); -Strophe.addNamespace('SPOILER', 'urn:xmpp:spoiler:0'); -Strophe.addNamespace('STANZAS', 'urn:ietf:params:xml:ns:xmpp-stanzas'); -Strophe.addNamespace('STYLING', 'urn:xmpp:styling:0'); -Strophe.addNamespace('VCARD', 'vcard-temp'); -Strophe.addNamespace('VCARDUPDATE', 'vcard-temp:x:update'); -Strophe.addNamespace('XFORM', 'jabber:x:data'); -Strophe.addNamespace('XHTML', 'http://www.w3.org/1999/xhtml'); +/* harmony default export */ const events = ({ + /** + * Lets you trigger events, which can be listened to via + * {@link _converse.api.listen.on} or {@link _converse.api.listen.once} + * (see [_converse.api.listen](http://localhost:8000/docs/html/api/-_converse.api.listen.html)). + * + * Some events also double as promises and can be waited on via {@link _converse.api.waitUntil}. + * + * @method _converse.api.trigger + * @param { string } name - The event name + * @param {...any} [argument] - Argument to be passed to the event handler + * @param { object } [options] + * @param { boolean } [options.synchronous] - Whether the event is synchronous or not. + * When a synchronous event is fired, a promise will be returned + * by {@link _converse.api.trigger} which resolves once all the + * event handlers' promises have been resolved. + */ + trigger: function trigger(name) { + var _arguments = arguments; + return events_asyncToGenerator( /*#__PURE__*/events_regeneratorRuntime().mark(function _callee() { + var args, options, events, event_args, promise; + return events_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + if (shared_converse._events) { + _context.next = 2; + break; + } + return _context.abrupt("return"); + case 2: + args = Array.from(_arguments); + options = args.pop(); + if (!(options && options.synchronous)) { + _context.next = 11; + break; + } + events = shared_converse._events[name] || []; + event_args = args.splice(1); + _context.next = 9; + return Promise.all(events.map(function (e) { + return e.callback.apply(e.ctx, event_args); + })); + case 9: + _context.next = 12; + break; + case 11: + shared_converse.trigger.apply(shared_converse, _arguments); + case 12: + promise = shared_converse.promises[name]; + if (promise !== undefined) { + promise.resolve(); + } + case 14: + case "end": + return _context.stop(); + } + }, _callee); + }))(); + }, + /** + * Triggers a hook which can be intercepted by registered listeners via + * {@link _converse.api.listen.on} or {@link _converse.api.listen.once}. + * (see [_converse.api.listen](http://localhost:8000/docs/html/api/-_converse.api.listen.html)). + * A hook is a special kind of event which allows you to intercept a data + * structure in order to modify it, before passing it back. + * @async + * @param { string } name - The hook name + * @param {...any} context - The context to which the hook applies (could be for example, a {@link _converse.ChatBox})). + * @param {...any} data - The data structure to be intercepted and modified by the hook listeners. + * @returns {Promise} - A promise that resolves with the modified data structure. + */ + hook: function hook(name, context, data) { + var events = shared_converse._events[name] || []; + if (events.length) { + // Create a chain of promises, with each one feeding its output to + // the next. The first input is a promise with the original data + // sent to this hook. + return events.reduce(function (o, e) { + return o.then(function (d) { + return e.callback(context, d); + }); + }, Promise.resolve(data)); + } else { + return data; + } + }, + /** + * Converse emits events to which you can subscribe to. + * + * The `listen` namespace exposes methods for creating event listeners + * (aka handlers) for these events. + * + * @namespace _converse.api.listen + * @memberOf _converse + */ + listen: { + /** + * Lets you listen to an event exactly once. + * @method _converse.api.listen.once + * @param { string } name The event's name + * @param { function } callback The callback method to be called when the event is emitted. + * @param { object } [context] The value of the `this` parameter for the callback. + * @example _converse.api.listen.once('message', function (messageXML) { ... }); + */ + once: shared_converse.once.bind(shared_converse), + /** + * Lets you subscribe to an event. + * Every time the event fires, the callback method specified by `callback` will be called. + * @method _converse.api.listen.on + * @param { string } name The event's name + * @param { function } callback The callback method to be called when the event is emitted. + * @param { object } [context] The value of the `this` parameter for the callback. + * @example _converse.api.listen.on('message', function (messageXML) { ... }); + */ + on: shared_converse.on.bind(shared_converse), + /** + * To stop listening to an event, you can use the `not` method. + * @method _converse.api.listen.not + * @param { string } name The event's name + * @param { function } callback The callback method that is to no longer be called when the event fires + * @example _converse.api.listen.not('message', function (messageXML); + */ + not: shared_converse.off.bind(shared_converse), + /** + * Subscribe to an incoming stanza + * Every a matched stanza is received, the callback method specified by + * `callback` will be called. + * @method _converse.api.listen.stanza + * @param { string } name The stanza's name + * @param { object } options Matching options (e.g. 'ns' for namespace, 'type' for stanza type, also 'id' and 'from'); + * @param { function } handler The callback method to be called when the stanza appears + */ + stanza: function stanza(name, options, handler) { + if (core(options)) { + handler = options; + options = {}; + } else { + options = options || {}; + } + shared_converse.connection.addHandler(handler, options.ns, name, options.type, options.id, options.from, options); + } + } +}); +;// CONCATENATED MODULE: ./src/headless/shared/api/promise.js -// Core plugins are whitelisted automatically -// These are just the @converse/headless plugins, for the full converse, -// the other plugins are whitelisted in src/consts.js -var CORE_PLUGINS = ['converse-adhoc', 'converse-bookmarks', 'converse-bosh', 'converse-caps', 'converse-chat', 'converse-chatboxes', 'converse-disco', 'converse-emoji', 'converse-headlines', 'converse-mam', 'converse-muc', 'converse-ping', 'converse-pubsub', 'converse-roster', 'converse-smacks', 'converse-status', 'converse-vcard']; -var URL_PARSE_OPTIONS = { - 'start': /(\b|_)(?:([a-z][a-z0-9.+-]*:\/\/)|xmpp:|mailto:|www\.)/gi -}; -var CHAT_STATES = ['active', 'composing', 'gone', 'inactive', 'paused']; -var KEYCODES = { - TAB: 9, - ENTER: 13, - SHIFT: 16, - CTRL: 17, - ALT: 18, - ESCAPE: 27, - LEFT_ARROW: 37, - UP_ARROW: 38, - RIGHT_ARROW: 39, - DOWN_ARROW: 40, - FORWARD_SLASH: 47, - AT: 50, - META: 91, - META_RIGHT: 93 -}; -// EXTERNAL MODULE: ./node_modules/sprintf-js/src/sprintf.js -var sprintf = __webpack_require__(8137); -;// CONCATENATED MODULE: ./src/headless/shared/i18n.js -/** - * @namespace i18n - */ -/* harmony default export */ const i18n = ({ - initialize: function initialize() {}, +/* harmony default export */ const promise = ({ /** - * Overridable string wrapper method which can be used to provide i18n - * support. + * Converse and its plugins trigger various events which you can listen to via the + * {@link _converse.api.listen} namespace. * - * The default implementation in @converse/headless simply calls sprintf - * with the passed in arguments. + * Some of these events are also available as [ES2015 Promises](http://es6-features.org/#PromiseUsage) + * although not all of them could logically act as promises, since some events + * might be fired multpile times whereas promises are to be resolved (or + * rejected) only once. * - * If you install the full version of Converse, then this method gets - * overwritten in src/i18n/index.js to return a translated string. - * @method __ - * @private - * @memberOf i18n - * @param { String } str + * Events which are also promises include: + * + * * [cachedRoster](/docs/html/events.html#cachedroster) + * * [chatBoxesFetched](/docs/html/events.html#chatBoxesFetched) + * * [pluginsInitialized](/docs/html/events.html#pluginsInitialized) + * * [roster](/docs/html/events.html#roster) + * * [rosterContactsFetched](/docs/html/events.html#rosterContactsFetched) + * * [rosterGroupsFetched](/docs/html/events.html#rosterGroupsFetched) + * * [rosterInitialized](/docs/html/events.html#rosterInitialized) + * + * The various plugins might also provide promises, and they do this by using the + * `promises.add` api method. + * + * @namespace _converse.api.promises + * @memberOf _converse.api */ - __: function __() { - return sprintf.sprintf.apply(void 0, arguments); - } -}); -// EXTERNAL MODULE: ./node_modules/dompurify/dist/purify.js -var purify = __webpack_require__(1754); -var purify_default = /*#__PURE__*/__webpack_require__.n(purify); -;// CONCATENATED MODULE: ./node_modules/lodash-es/compact.js -/** - * Creates an array with all falsey values removed. The values `false`, `null`, - * `0`, `""`, `undefined`, and `NaN` are falsey. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to compact. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.compact([0, 1, false, 2, '', 3]); - * // => [1, 2, 3] - */ -function compact(array) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; - while (++index < length) { - var value = array[index]; - if (value) { - result[resIndex++] = value; - } - } - return result; -} -/* harmony default export */ const lodash_es_compact = (compact); -;// CONCATENATED MODULE: external "sizzle" -const external_sizzle_namespaceObject = sizzle; -var external_sizzle_default = /*#__PURE__*/__webpack_require__.n(external_sizzle_namespaceObject); -;// CONCATENATED MODULE: ./node_modules/@converse/openpromise/openpromise.js -function getOpenPromise() { - var wrapper = { - isResolved: false, - isPending: true, - isRejected: false - }; - var promise = new Promise(function (resolve, reject) { - wrapper.resolve = resolve; - wrapper.reject = reject; - }); - Object.assign(promise, wrapper); - promise.then(function (v) { - promise.isResolved = true; - promise.isPending = false; - promise.isRejected = false; - return v; - }, function (e) { - promise.isResolved = false; - promise.isPending = false; - promise.isRejected = true; - throw e; + promises: { + /** + * By calling `promises.add`, a new [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) + * is made available for other code or plugins to depend on via the + * {@link _converse.api.waitUntil} method. + * + * Generally, it's the responsibility of the plugin which adds the promise to + * also resolve it. + * + * This is done by calling {@link _converse.api.trigger}, which not only resolves the + * promise, but also emits an event with the same name (which can be listened to + * via {@link _converse.api.listen}). + * + * @method _converse.api.promises.add + * @param {string|array} [name|names] The name or an array of names for the promise(s) to be added + * @param { boolean } [replace=true] Whether this promise should be replaced with a new one when the user logs out. + * @example _converse.api.promises.add('foo-completed'); + */ + add: function add(promises) { + var replace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + promises = Array.isArray(promises) ? promises : [promises]; + promises.forEach(function (name) { + var promise = getOpenPromise(); + promise.replace = replace; + shared_converse.promises[name] = promise; + }); + } + }, + /** + * Wait until a promise is resolved or until the passed in function returns + * a truthy value. + * @method _converse.api.waitUntil + * @param {string|function} condition - The name of the promise to wait for, + * or a function which should eventually return a truthy value. + * @returns {Promise} + */ + waitUntil: function waitUntil(condition) { + if (core_isFunction(condition)) { + return core_waitUntil(condition); + } else { + var promise = shared_converse.promises[condition]; + if (promise === undefined) { + return null; + } + return promise; + } + } +}); +;// CONCATENATED MODULE: ./src/headless/shared/errors.js +function errors_typeof(obj) { + "@babel/helpers - typeof"; + + return errors_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, errors_typeof(obj); +} +function errors_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, errors_toPropertyKey(descriptor.key), descriptor); + } +} +function errors_createClass(Constructor, protoProps, staticProps) { + if (protoProps) errors_defineProperties(Constructor.prototype, protoProps); + if (staticProps) errors_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false }); - return promise; + return Constructor; } -;// CONCATENATED MODULE: ./src/headless/shared/settings/constants.js -/** - * @typedef { Object } ConfigurationSettings - * Converse's core configuration values - * @property { Boolean } [allow_non_roster_messaging=false] - * @property { Boolean } [allow_url_history_change=true] - * @property { String } [assets_path='/dist'] - * @property { ('login'|'prebind'|'anonymous'|'external') } [authentication='login'] - * @property { Boolean } [auto_login=false] - Currently only used in connection with anonymous login - * @property { Boolean } [reuse_scram_keys=false] - Save SCRAM keys after login to allow for future auto login - * @property { Boolean } [auto_reconnect=true] - * @property { Array} [blacklisted_plugins] - * @property { Boolean } [clear_cache_on_logout=false] - * @property { Object } [connection_options] - * @property { String } [credentials_url] - URL from where login credentials can be fetched - * @property { Boolean } [discover_connection_methods=true] - * @property { RegExp } [geouri_regex] - * @property { RegExp } [geouri_replacement='https://www.openstreetmap.org/?mlat=$1&mlon=$2#map=18/$1/$2'] - * @property { String } [i18n] - * @property { String } [jid] - * @property { Boolean } [keepalive=true] - * @property { ('debug'|'info'|'eror') } [loglevel='info'] - * @property { Array } [locales] - * @property { String } [nickname] - * @property { String } [password] - * @property { ('IndexedDB'|'localStorage') } [persistent_store='IndexedDB'] - * @property { String } [rid] - * @property { Element } [root=window.document] - * @property { String } [sid] - * @property { Boolean } [singleton=false] - * @property { Boolean } [strict_plugin_dependencies=false] - * @property { ('overlayed'|'fullscreen'|'mobile') } [view_mode='overlayed'] - * @property { String } [websocket_url] - * @property { Array} [whitelisted_plugins] - */ -var DEFAULT_SETTINGS = { - allow_non_roster_messaging: false, - allow_url_history_change: true, - assets_path: '/dist', - authentication: 'login', - // Available values are "login", "prebind", "anonymous" and "external". - auto_login: false, - // Currently only used in connection with anonymous login - reuse_scram_keys: false, - auto_reconnect: true, - blacklisted_plugins: [], - clear_cache_on_logout: false, - connection_options: {}, - credentials_url: null, - // URL from where login credentials can be fetched - discover_connection_methods: true, - geouri_regex: /https\:\/\/www.openstreetmap.org\/.*#map=[0-9]+\/([\-0-9.]+)\/([\-0-9.]+)\S*/g, - geouri_replacement: 'https://www.openstreetmap.org/?mlat=$1&mlon=$2#map=18/$1/$2', - i18n: undefined, - jid: undefined, - keepalive: true, - loglevel: 'info', - locales: ['af', 'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'eo', 'es', 'eu', 'fa', 'fi', 'fr', 'gl', 'he', 'hi', 'hu', 'id', 'it', 'ja', 'lt', 'mr', 'nb', 'nl', 'oc', 'pl', 'pt', 'pt_BR', 'ro', 'ru', 'sv', 'th', 'tr', 'ug', 'uk', 'vi', 'zh_CN', 'zh_TW'], - nickname: undefined, - password: undefined, - persistent_store: 'IndexedDB', - rid: undefined, - root: window.document, - sid: undefined, - singleton: false, - strict_plugin_dependencies: false, - stanza_timeout: 20000, - view_mode: 'overlayed', - // Choices are 'overlayed', 'fullscreen', 'mobile' - websocket_url: undefined, - whitelisted_plugins: [] -}; -// EXTERNAL MODULE: ./node_modules/localforage-driver-memory/_bundle/umd.js -var umd = __webpack_require__(388); -;// CONCATENATED MODULE: ./node_modules/lodash-es/cloneDeep.js - - -/** Used to compose bitmasks for cloning. */ -var cloneDeep_CLONE_DEEP_FLAG = 1, - cloneDeep_CLONE_SYMBOLS_FLAG = 4; - -/** - * This method is like `_.clone` except that it recursively clones `value`. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Lang - * @param {*} value The value to recursively clone. - * @returns {*} Returns the deep cloned value. - * @see _.clone - * @example - * - * var objects = [{ 'a': 1 }, { 'b': 2 }]; - * - * var deep = _.cloneDeep(objects); - * console.log(deep[0] === objects[0]); - * // => false - */ -function cloneDeep(value) { - return _baseClone(value, cloneDeep_CLONE_DEEP_FLAG | cloneDeep_CLONE_SYMBOLS_FLAG); +function errors_toPropertyKey(arg) { + var key = errors_toPrimitive(arg, "string"); + return errors_typeof(key) === "symbol" ? key : String(key); } -/* harmony default export */ const lodash_es_cloneDeep = (cloneDeep); -;// CONCATENATED MODULE: ./node_modules/lodash-es/isString.js - - - - -/** `Object#toString` result references. */ -var isString_stringTag = '[object String]'; - -/** - * Checks if `value` is classified as a `String` primitive or object. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a string, else `false`. - * @example - * - * _.isString('abc'); - * // => true - * - * _.isString(1); - * // => false - */ -function isString(value) { - return typeof value == 'string' || !lodash_es_isArray(value) && lodash_es_isObjectLike(value) && _baseGetTag(value) == isString_stringTag; +function errors_toPrimitive(input, hint) { + if (errors_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (errors_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); } -/* harmony default export */ const lodash_es_isString = (isString); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/idb.js -function getIDB() { - /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */ - try { - if (typeof indexedDB !== 'undefined') { - return indexedDB; +function errors_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function errors_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true } - if (typeof webkitIndexedDB !== 'undefined') { - return webkitIndexedDB; + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) errors_setPrototypeOf(subClass, superClass); +} +function errors_createSuper(Derived) { + var hasNativeReflectConstruct = errors_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = errors_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = errors_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); } - if (typeof mozIndexedDB !== 'undefined') { - return mozIndexedDB; + return errors_possibleConstructorReturn(this, result); + }; +} +function errors_possibleConstructorReturn(self, call) { + if (call && (errors_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return errors_assertThisInitialized(self); +} +function errors_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} +function errors_wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + errors_wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !errors_isNativeFunction(Class)) return Class; + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); } - if (typeof OIndexedDB !== 'undefined') { - return OIndexedDB; + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + _cache.set(Class, Wrapper); } - if (typeof msIndexedDB !== 'undefined') { - return msIndexedDB; + function Wrapper() { + return errors_construct(Class, arguments, errors_getPrototypeOf(this).constructor); } - } catch (e) { - return; - } + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }); + return errors_setPrototypeOf(Wrapper, Class); + }; + return errors_wrapNativeSuper(Class); } -var idb = getIDB(); -/* harmony default export */ const utils_idb = (idb); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/isIndexedDBValid.js - -function isIndexedDBValid() { - try { - // Initialize IndexedDB; fall back to vendor-prefixed versions - // if needed. - if (!utils_idb || !utils_idb.open) { - return false; - } - // We mimic PouchDB here; - // - // We test for openDatabase because IE Mobile identifies itself - // as Safari. Oh the lulz... - var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform); - var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1; - - // Safari <10.1 does not meet our requirements for IDB support - // (see: https://github.com/pouchdb/pouchdb/issues/5572). - // Safari 10.1 shipped with fetch, we can use that to detect it. - // Note: this creates issues with `window.fetch` polyfills and - // overrides; see: - // https://github.com/localForage/localForage/issues/856 - return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' && - // some outdated implementations of IDB that appear on Samsung - // and HTC Android devices <4.4 are missing IDBKeyRange - // See: https://github.com/mozilla/localForage/issues/128 - // See: https://github.com/mozilla/localForage/issues/272 - typeof IDBKeyRange !== 'undefined'; - } catch (e) { - return false; +function errors_construct(Parent, args, Class) { + if (errors_isNativeReflectConstruct()) { + errors_construct = Reflect.construct.bind(); + } else { + errors_construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) errors_setPrototypeOf(instance, Class.prototype); + return instance; + }; } + return errors_construct.apply(null, arguments); } -/* harmony default export */ const utils_isIndexedDBValid = (isIndexedDBValid); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/createBlob.js -// Abstracts constructing a Blob object, so it also works in older -// browsers that don't support the native Blob constructor. (i.e. -// old QtWebKit versions, at least). -// Abstracts constructing a Blob object, so it also works in older -// browsers that don't support the native Blob constructor. (i.e. -// old QtWebKit versions, at least). -function createBlob(parts, properties) { - /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */ - parts = parts || []; - properties = properties || {}; +function errors_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; try { - return new Blob(parts, properties); + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; } catch (e) { - if (e.name !== 'TypeError') { - throw e; - } - var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder; - var builder = new Builder(); - for (var i = 0; i < parts.length; i += 1) { - builder.append(parts[i]); - } - return builder.getBlob(properties.type); + return false; } } -/* harmony default export */ const utils_createBlob = (createBlob); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/promise.js -// This is CommonJS because lie is an external dependency, so Rollup -// can just ignore it. -if (typeof Promise === 'undefined') { - // In the "nopromises" build this will just throw if you don't have - // a global promise object, but it would throw anyway later. - __webpack_require__(3968); -} -/* harmony default export */ const utils_promise = (Promise); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/executeCallback.js -function executeCallback(promise, callback) { - if (callback) { - promise.then(function (result) { - callback(null, result); - }, function (error) { - callback(error); - }); - } +function errors_isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; } -/* harmony default export */ const utils_executeCallback = (executeCallback); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/executeTwoCallbacks.js -function executeTwoCallbacks(promise, callback, errorCallback) { - if (typeof callback === 'function') { - promise.then(callback); - } - if (typeof errorCallback === 'function') { - promise.catch(errorCallback); - } +function errors_setPrototypeOf(o, p) { + errors_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return errors_setPrototypeOf(o, p); } -/* harmony default export */ const utils_executeTwoCallbacks = (executeTwoCallbacks); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/normalizeKey.js -function normalizeKey(key) { - // Cast the key to a string, as that's all we can set as a key. - if (typeof key !== 'string') { - console.warn("".concat(key, " used as a key, but it is not a string.")); - key = String(key); - } - return key; +function errors_getPrototypeOf(o) { + errors_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return errors_getPrototypeOf(o); } -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/getCallback.js -function getCallback() { - if (arguments.length && typeof arguments[arguments.length - 1] === 'function') { - return arguments[arguments.length - 1]; +/** + * Custom error for indicating timeouts + * @namespace converse.env + */ +var TimeoutError = /*#__PURE__*/function (_Error) { + errors_inherits(TimeoutError, _Error); + var _super = errors_createSuper(TimeoutError); + function TimeoutError() { + errors_classCallCheck(this, TimeoutError); + return _super.apply(this, arguments); } -} -;// CONCATENATED MODULE: ./node_modules/localforage/src/drivers/indexeddb.js - - - - - - - - + return errors_createClass(TimeoutError); +}( /*#__PURE__*/errors_wrapNativeSuper(Error)); +;// CONCATENATED MODULE: ./src/headless/shared/api/send.js -// Some code originally from async_storage.js in -// [Gaia](https://github.com/mozilla-b2g/gaia). -var DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support'; -var supportsBlobs; -var dbContexts = {}; -var indexeddb_toString = Object.prototype.toString; -// Transaction Modes -var READ_ONLY = 'readonly'; -var READ_WRITE = 'readwrite'; -// Transform a binary string to an array buffer, because otherwise -// weird stuff happens when you try to work with the binary string directly. -// It is known. -// From http://stackoverflow.com/questions/14967647/ (continues on next line) -// encode-decode-image-with-base64-breaks-image (2013-04-21) -function _binStringToArrayBuffer(bin) { - var length = bin.length; - var buf = new ArrayBuffer(length); - var arr = new Uint8Array(buf); - for (var i = 0; i < length; i++) { - arr[i] = bin.charCodeAt(i); - } - return buf; -} -// -// Blobs are not supported in all versions of IndexedDB, notably -// Chrome <37 and Android <5. In those versions, storing a blob will throw. -// -// Various other blob bugs exist in Chrome v37-42 (inclusive). -// Detecting them is expensive and confusing to users, and Chrome 37-42 -// is at very low usage worldwide, so we do a hacky userAgent check instead. -// -// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120 -// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916 -// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836 -// -// Code borrowed from PouchDB. See: -// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js -// -function _checkBlobSupportWithoutCaching(idb) { - return new utils_promise(function (resolve) { - var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE); - var blob = utils_createBlob(['']); - txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key'); - txn.onabort = function (e) { - // If the transaction aborts now its due to not being able to - // write to the database, likely due to the disk being full - e.preventDefault(); - e.stopPropagation(); - resolve(false); - }; - txn.oncomplete = function () { - var matchedChrome = navigator.userAgent.match(/Chrome\/(\d+)/); - var matchedEdge = navigator.userAgent.match(/Edge\//); - // MS Edge pretends to be Chrome 42: - // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx - resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43); - }; - }).catch(function () { - return false; // error, so assume unsupported - }); -} - -function _checkBlobSupport(idb) { - if (typeof supportsBlobs === 'boolean') { - return utils_promise.resolve(supportsBlobs); +/* harmony default export */ const send = ({ + /** + * Allows you to send XML stanzas. + * @method _converse.api.send + * @param { Element | Stanza } stanza + * @return { void } + * @example + * const msg = converse.env.$msg({ + * 'from': 'juliet@example.com/balcony', + * 'to': 'romeo@example.net', + * 'type':'chat' + * }); + * _converse.api.send(msg); + */ + send: function send(stanza) { + var _stanza; + var api = shared_converse.api; + if (!api.connection.connected()) { + log.warn("Not sending stanza because we're not connected!"); + log.warn(external_strophe_namespaceObject.Strophe.serialize(stanza)); + return; + } + if (typeof stanza === 'string') { + stanza = toStanza(stanza); + } else if ((_stanza = stanza) !== null && _stanza !== void 0 && _stanza.tree) { + stanza = stanza.tree(); + } + if (stanza.tagName === 'iq') { + return api.sendIQ(stanza); + } else { + shared_converse.connection.send(stanza); + api.trigger('send', stanza); + } + }, + /** + * Send an IQ stanza + * @method _converse.api.sendIQ + * @param { Element } stanza + * @param { number } [timeout] - The default timeout value is taken from + * the `stanza_timeout` configuration setting. + * @param { Boolean } [reject=true] - Whether an error IQ should cause the promise + * to be rejected. If `false`, the promise will resolve instead of being rejected. + * @returns { Promise } A promise which resolves (or potentially rejected) once we + * receive a `result` or `error` stanza or once a timeout is reached. + * If the IQ stanza being sent is of type `result` or `error`, there's + * nothing to wait for, so an already resolved promise is returned. + */ + sendIQ: function sendIQ(stanza, timeout) { + var _stanza$tree, _stanza$tree2, _stanza2; + var reject = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + var api = shared_converse.api, + connection = shared_converse.connection; + var promise; + stanza = (_stanza$tree = (_stanza$tree2 = (_stanza2 = stanza).tree) === null || _stanza$tree2 === void 0 ? void 0 : _stanza$tree2.call(_stanza2)) !== null && _stanza$tree !== void 0 ? _stanza$tree : stanza; + if (['get', 'set'].includes(stanza.getAttribute('type'))) { + timeout = timeout || api.settings.get('stanza_timeout'); + if (reject) { + promise = new Promise(function (resolve, reject) { + return connection.sendIQ(stanza, resolve, reject, timeout); + }); + promise.catch(function (e) { + if (e === null) { + throw new TimeoutError("Timeout error after ".concat(timeout, "ms for the following IQ stanza: ").concat(external_strophe_namespaceObject.Strophe.serialize(stanza))); + } + }); + } else { + promise = new Promise(function (resolve) { + return connection.sendIQ(stanza, resolve, resolve, timeout); + }); + } + } else { + shared_converse.connection.sendIQ(stanza); + promise = Promise.resolve(); + } + api.trigger('send', stanza); + return promise; } - return _checkBlobSupportWithoutCaching(idb).then(function (value) { - supportsBlobs = value; - return supportsBlobs; - }); -} -function _deferReadiness(dbInfo) { - var dbContext = dbContexts[dbInfo.name]; - - // Create a deferred object representing the current database operation. - var deferredOperation = {}; - deferredOperation.promise = new utils_promise(function (resolve, reject) { - deferredOperation.resolve = resolve; - deferredOperation.reject = reject; - }); - - // Enqueue the deferred operation. - dbContext.deferredOperations.push(deferredOperation); +}); +;// CONCATENATED MODULE: ./src/headless/shared/api/presence.js +function presence_typeof(obj) { + "@babel/helpers - typeof"; - // Chain its promise to the database readiness. - if (!dbContext.dbReady) { - dbContext.dbReady = deferredOperation.promise; - } else { - dbContext.dbReady = dbContext.dbReady.then(function () { - return deferredOperation.promise; - }); - } + return presence_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, presence_typeof(obj); } -function _advanceReadiness(dbInfo) { - var dbContext = dbContexts[dbInfo.name]; - - // Dequeue a deferred operation. - var deferredOperation = dbContext.deferredOperations.pop(); +function presence_regeneratorRuntime() { + "use strict"; - // Resolve its promise (which is part of the database readiness - // chain of promises). - if (deferredOperation) { - deferredOperation.resolve(); - return deferredOperation.promise; + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + presence_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; } -} -function _rejectReadiness(dbInfo, err) { - var dbContext = dbContexts[dbInfo.name]; - - // Dequeue a deferred operation. - var deferredOperation = dbContext.deferredOperations.pop(); - - // Reject its promise (which is part of the database readiness - // chain of promises). - if (deferredOperation) { - deferredOperation.reject(err); - return deferredOperation.promise; + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; } -} -function _getConnection(dbInfo, upgradeNeeded) { - return new utils_promise(function (resolve, reject) { - dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext(); - if (dbInfo.db) { - if (upgradeNeeded) { - _deferReadiness(dbInfo); - dbInfo.db.close(); - } else { - return resolve(dbInfo.db); - } - } - var dbArgs = [dbInfo.name]; - if (upgradeNeeded) { - dbArgs.push(dbInfo.version); - } - var openreq = utils_idb.open.apply(utils_idb, dbArgs); - if (upgradeNeeded) { - openreq.onupgradeneeded = function (e) { - var db = openreq.result; - try { - db.createObjectStore(dbInfo.storeName); - if (e.oldVersion <= 1) { - // Added when support for blob shims was added - db.createObjectStore(DETECT_BLOB_SUPPORT_STORE); - } - } catch (ex) { - if (ex.name === 'ConstraintError') { - console.warn('The database "' + dbInfo.name + '"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage "' + dbInfo.storeName + '" already exists.'); - } else { - throw ex; - } - } + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) }; - } - openreq.onerror = function (e) { - e.preventDefault(); - reject(openreq.error); - }; - openreq.onsuccess = function () { - var db = openreq.result; - db.onversionchange = function (e) { - // Triggered when the database is modified (e.g. adding an objectStore) or - // deleted (even when initiated by other sessions in different tabs). - // Closing the connection here prevents those operations from being blocked. - // If the database is accessed again later by this instance, the connection - // will be reopened or the database recreated as needed. - e.target.close(); + } catch (err) { + return { + type: "throw", + arg: err }; - resolve(db); - _advanceReadiness(dbInfo); - }; + } + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; }); -} -function _getOriginalConnection(dbInfo) { - return _getConnection(dbInfo, false); -} -function _getUpgradedConnection(dbInfo) { - return _getConnection(dbInfo, true); -} -function _isUpgradeNeeded(dbInfo, defaultVersion) { - if (!dbInfo.db) { - return true; + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); } - var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName); - var isDowngrade = dbInfo.version < dbInfo.db.version; - var isUpgrade = dbInfo.version > dbInfo.db.version; - if (isDowngrade) { - // If the version is not the default one - // then warn for impossible downgrade. - if (dbInfo.version !== defaultVersion) { - console.warn('The database "' + dbInfo.name + '"' + " can't be downgraded from version " + dbInfo.db.version + ' to version ' + dbInfo.version + '.'); + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == presence_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + reject(record.arg); } - // Align the versions to prevent errors. - dbInfo.version = dbInfo.db.version; + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); } - if (isUpgrade || isNewStore) { - // If the store is new then increment the version (if needed). - // This will trigger an "upgradeneeded" event which is required - // for creating a store. - if (isNewStore) { - var incVersion = dbInfo.db.version + 1; - if (incVersion > dbInfo.version) { - dbInfo.version = incVersion; + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); } - } - return true; + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } + }; } - return false; -} - -// encode a blob for indexeddb engines that don't support blobs -function _encodeBlob(blob) { - return new utils_promise(function (resolve, reject) { - var reader = new FileReader(); - reader.onerror = reject; - reader.onloadend = function (e) { - var base64 = btoa(e.target.result || ''); - resolve({ - __local_forage_encoded_blob: true, - data: base64, - type: blob.type - }); + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] }; - reader.readAsBinaryString(blob); - }); -} - -// decode an encoded blob -function _decodeBlob(encodedBlob) { - var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data)); - return utils_createBlob([arrayBuff], { - type: encodedBlob.type - }); -} - -// is this one of our fancy encoded blobs? -function _isEncodedBlob(value) { - return value && value.__local_forage_encoded_blob; -} - -// Specialize the default `ready()` function by making it dependent -// on the current database operations. Thus, the driver will be actually -// ready when it's been initialized (default) *and* there are no pending -// operations on the database (initiated by some other instances). -function _fullyReady(callback) { - var self = this; - var promise = self._initReady().then(function () { - var dbContext = dbContexts[self._dbInfo.name]; - if (dbContext && dbContext.dbReady) { - return dbContext.dbReady; - } - }); - utils_executeTwoCallbacks(promise, callback, callback); - return promise; -} - -// Try to establish a new db connection to replace the -// current one which is broken (i.e. experiencing -// InvalidStateError while creating a transaction). -function _tryReconnect(dbInfo) { - _deferReadiness(dbInfo); - var dbContext = dbContexts[dbInfo.name]; - var forages = dbContext.forages; - for (var i = 0; i < forages.length; i++) { - var forage = forages[i]; - if (forage._dbInfo.db) { - forage._dbInfo.db.close(); - forage._dbInfo.db = null; - } + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } - dbInfo.db = null; - return _getOriginalConnection(dbInfo).then(function (db) { - dbInfo.db = db; - if (_isUpgradeNeeded(dbInfo)) { - // Reopen the database for upgrading. - return _getUpgradedConnection(dbInfo); - } - return db; - }).then(function (db) { - // store the latest db reference - // in case the db was upgraded - dbInfo.db = dbContext.db = db; - for (var i = 0; i < forages.length; i++) { - forages[i]._dbInfo.db = db; - } - }).catch(function (err) { - _rejectReadiness(dbInfo, err); - throw err; - }); -} - -// FF doesn't like Promises (micro-tasks) and IDDB store operations, -// so we have to do it with callbacks -function createTransaction(dbInfo, mode, callback, retries) { - if (retries === undefined) { - retries = 1; + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; } - try { - var tx = dbInfo.db.transaction(dbInfo.storeName, mode); - callback(null, tx); - } catch (err) { - if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) { - return utils_promise.resolve().then(function () { - if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) { - // increase the db version, to create the new ObjectStore - if (dbInfo.db) { - dbInfo.version = dbInfo.db.version + 1; - } - // Reopen the database for upgrading. - return _getUpgradedConnection(dbInfo); - } - }).then(function () { - return _tryReconnect(dbInfo).then(function () { - createTransaction(dbInfo, mode, callback, retries - 1); - }); - }).catch(callback); + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; + }; + return next.next = next; + } } - callback(err); + return { + next: doneResult + }; } -} -function createDbContext() { - return { - // Running localForages sharing a database. - forages: [], - // Shared database. - db: null, - // Database readiness (promise). - dbReady: null, - // Deferred operations on the database. - deferredOperations: [] + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; +} +function presence_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } +} +function presence_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + presence_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + presence_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); }; } -// Open the IndexedDB database (automatically creates one if one didn't -// previously exist), using any options set in the config. -function _initStorage(options) { - var self = this; - var dbInfo = { - db: null - }; - if (options) { - for (var i in options) { - dbInfo[i] = options[i]; +/* harmony default export */ const presence = ({ + /** + * @namespace _converse.api.user.presence + * @memberOf _converse.api.user + */ + presence: { + /** + * Send out a presence stanza + * @method _converse.api.user.presence.send + * @param { String } [type] + * @param { String } [to] + * @param { String } [status] - An optional status message + * @param { Array|Array|Element|Strophe.Builder } [child_nodes] + * Nodes(s) to be added as child nodes of the `presence` XML element. + */ + send: function send(type, to, status, child_nodes) { + return presence_asyncToGenerator( /*#__PURE__*/presence_regeneratorRuntime().mark(function _callee() { + var _child_nodes; + var model, presence, mucs; + return presence_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return shared_api.waitUntil('statusInitialized'); + case 2: + if (child_nodes && !Array.isArray(child_nodes)) { + child_nodes = [child_nodes]; + } + model = shared_converse.xmppstatus; + _context.next = 6; + return model.constructPresence(type, to, status); + case 6: + presence = _context.sent; + (_child_nodes = child_nodes) === null || _child_nodes === void 0 ? void 0 : _child_nodes.map(function (c) { + var _c$tree; + return (_c$tree = c === null || c === void 0 ? void 0 : c.tree()) !== null && _c$tree !== void 0 ? _c$tree : c; + }).forEach(function (c) { + return presence.cnode(c).up(); + }); + shared_api.send(presence); + if (!['away', 'chat', 'dnd', 'online', 'xa', undefined].includes(type)) { + _context.next = 14; + break; + } + _context.next = 12; + return shared_api.rooms.get(); + case 12: + mucs = _context.sent; + mucs.forEach(function (muc) { + return muc.sendStatusPresence(type, status, child_nodes); + }); + case 14: + case "end": + return _context.stop(); + } + }, _callee); + }))(); } } +}); +;// CONCATENATED MODULE: ./node_modules/lodash-es/debounce.js - // Get the current context of the database; - var dbContext = dbContexts[dbInfo.name]; - // ...or create a new context. - if (!dbContext) { - dbContext = createDbContext(); - // Register the new context in the global container. - dbContexts[dbInfo.name] = dbContext; - } - // Register itself as a running localForage in the current context. - dbContext.forages.push(self); - // Replace the default `ready()` function with the specialized one. - if (!self._initReady) { - self._initReady = self.ready; - self.ready = _fullyReady; +/** Error message constants. */ +var debounce_FUNC_ERROR_TEXT = 'Expected a function'; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var debounce_nativeMax = Math.max, + debounce_nativeMin = Math.min; + +/** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ +function debounce(func, wait, options) { + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + if (typeof func != 'function') { + throw new TypeError(debounce_FUNC_ERROR_TEXT); + } + wait = lodash_es_toNumber(wait) || 0; + if (lodash_es_isObject(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? debounce_nativeMax(lodash_es_toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + timeWaiting = wait - timeSinceLastCall; + return maxing ? debounce_nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; } + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; - // Create an array of initialization states of the related localForages. - var initPromises = []; - function ignoreErrors() { - // Don't handle errors here, - // just makes sure related localForages aren't pending. - return utils_promise.resolve(); + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; } - for (var j = 0; j < dbContext.forages.length; j++) { - var forage = dbContext.forages[j]; - if (forage !== self) { - // Don't wait for itself... - initPromises.push(forage._initReady().catch(ignoreErrors)); + function timerExpired() { + var time = lodash_es_now(); + if (shouldInvoke(time)) { + return trailingEdge(time); } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); } + function trailingEdge(time) { + timerId = undefined; - // Take a snapshot of the related localForages. - var forages = dbContext.forages.slice(0); - - // Initialize the connection process only when - // all the related localForages aren't pending. - return utils_promise.all(initPromises).then(function () { - dbInfo.db = dbContext.db; - // Get the connection or open a new one without upgrade. - return _getOriginalConnection(dbInfo); - }).then(function (db) { - dbInfo.db = db; - if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) { - // Reopen the database for upgrading. - return _getUpgradedConnection(dbInfo); + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); } - return db; - }).then(function (db) { - dbInfo.db = dbContext.db = db; - self._dbInfo = dbInfo; - // Share the final connection amongst related localForages. - for (var k = 0; k < forages.length; k++) { - var forage = forages[k]; - if (forage !== self) { - // Self is already up-to-date. - forage._dbInfo.db = dbInfo.db; - forage._dbInfo.version = dbInfo.version; + lastArgs = lastThis = undefined; + return result; + } + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + function flush() { + return timerId === undefined ? result : trailingEdge(lodash_es_now()); + } + function debounced() { + var time = lodash_es_now(), + isInvoking = shouldInvoke(time); + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); } } - }); -} -function getItem(key, callback) { - var self = this; - key = normalizeKey(key); - var promise = new utils_promise(function (resolve, reject) { - self.ready().then(function () { - createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { - if (err) { - return reject(err); - } - try { - var store = transaction.objectStore(self._dbInfo.storeName); - var req = store.get(key); - req.onsuccess = function () { - var value = req.result; - if (value === undefined) { - value = null; - } - if (_isEncodedBlob(value)) { - value = _decodeBlob(value); - } - resolve(value); - }; - req.onerror = function () { - reject(req.error); - }; - } catch (e) { - reject(e); - } - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; } +/* harmony default export */ const lodash_es_debounce = (debounce); +// EXTERNAL MODULE: ./node_modules/localforage-webextensionstorage-driver/local.js +var local = __webpack_require__(3710); +// EXTERNAL MODULE: ./node_modules/localforage-webextensionstorage-driver/sync.js +var localforage_webextensionstorage_driver_sync = __webpack_require__(7777); +;// CONCATENATED MODULE: ./src/headless/shared/connection/index.js +function connection_typeof(obj) { + "@babel/helpers - typeof"; -// Iterate over all items stored in database. -function iterate(iterator, callback) { - var self = this; - var promise = new utils_promise(function (resolve, reject) { - self.ready().then(function () { - createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { - if (err) { - return reject(err); - } - try { - var store = transaction.objectStore(self._dbInfo.storeName); - var req = store.openCursor(); - var iterationNumber = 1; - req.onsuccess = function () { - var cursor = req.result; - if (cursor) { - var value = cursor.value; - if (_isEncodedBlob(value)) { - value = _decodeBlob(value); - } - var result = iterator(value, cursor.key, iterationNumber++); + return connection_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, connection_typeof(obj); +} +function connection_regeneratorRuntime() { + "use strict"; - // when the iterator callback returns any - // (non-`undefined`) value, then we stop - // the iteration immediately - if (result !== void 0) { - resolve(result); - } else { - cursor.continue(); - } - } else { - resolve(); - } - }; - req.onerror = function () { - reject(req.error); - }; - } catch (e) { - reject(e); - } - }); - }).catch(reject); + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + connection_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; + } + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; }); - utils_executeCallback(promise, callback); - return promise; -} -function setItem(key, value, callback) { - var self = this; - key = normalizeKey(key); - var promise = new utils_promise(function (resolve, reject) { - var dbInfo; - self.ready().then(function () { - dbInfo = self._dbInfo; - if (indexeddb_toString.call(value) === '[object Blob]') { - return _checkBlobSupport(dbInfo.db).then(function (blobSupport) { - if (blobSupport) { - return value; - } - return _encodeBlob(value); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == connection_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); }); } - return value; - }).then(function (value) { - createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { - if (err) { - return reject(err); + reject(record.arg); + } + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); } - try { - var store = transaction.objectStore(self._dbInfo.storeName); - - // The reason we don't _save_ null is because IE 10 does - // not support saving the `null` type in IndexedDB. How - // ironic, given the bug below! - // See: https://github.com/mozilla/localForage/issues/161 - if (value === null) { - value = undefined; + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); + } + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; } - var req = store.put(value, key); - transaction.oncomplete = function () { - // Cast to undefined so the value passed to - // callback/promise is the same as what one would get out - // of `getItem()` later. This leads to some weirdness - // (setItem('foo', undefined) will return `null`), but - // it's not my fault localStorage is our baseline and that - // it's weird. - if (value === undefined) { - value = null; - } - resolve(value); - }; - transaction.onabort = transaction.onerror = function () { - var err = req.error ? req.error : req.transaction.error; - reject(err); - }; - } catch (e) { - reject(e); - } - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; -} -function removeItem(key, callback) { - var self = this; - key = normalizeKey(key); - var promise = new utils_promise(function (resolve, reject) { - self.ready().then(function () { - createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { - if (err) { - return reject(err); } - try { - var store = transaction.objectStore(self._dbInfo.storeName); - // We use a Grunt task to make this safe for IE and some - // versions of Android (including those used by Cordova). - // Normally IE won't like `.delete()` and will insist on - // using `['delete']()`, but we have a build step that - // fixes this for us now. - var req = store.delete(key); - transaction.oncomplete = function () { - resolve(); - }; - transaction.onerror = function () { - reject(req.error); - }; - - // The request will be also be aborted if we've exceeded our storage - // space. - transaction.onabort = function () { - var err = req.error ? req.error : req.transaction.error; - reject(err); + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done }; - } catch (e) { - reject(e); - } - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; -} -function clear(callback) { - var self = this; - var promise = new utils_promise(function (resolve, reject) { - self.ready().then(function () { - createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) { - if (err) { - return reject(err); } - try { - var store = transaction.objectStore(self._dbInfo.storeName); - var req = store.clear(); - transaction.oncomplete = function () { - resolve(); - }; - transaction.onabort = transaction.onerror = function () { - var err = req.error ? req.error : req.transaction.error; - reject(err); + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } + }; + } + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); + } + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; }; - } catch (e) { - reject(e); + return next.next = next; + } + } + return { + next: doneResult + }; + } + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } } - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; -} -function indexeddb_length(callback) { - var self = this; - var promise = new utils_promise(function (resolve, reject) { - self.ready().then(function () { - createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { - if (err) { - return reject(err); + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; } - try { - var store = transaction.objectStore(self._dbInfo.storeName); - var req = store.count(); - req.onsuccess = function () { - resolve(req.result); - }; - req.onerror = function () { - reject(req.error); - }; - } catch (e) { - reject(e); + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; } - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; -} -function key(n, callback) { - var self = this; - var promise = new utils_promise(function (resolve, reject) { - if (n < 0) { - resolve(null); - return; + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } - self.ready().then(function () { - createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { - if (err) { - return reject(err); - } - try { - var store = transaction.objectStore(self._dbInfo.storeName); - var advanced = false; - var req = store.openKeyCursor(); - req.onsuccess = function () { - var cursor = req.result; - if (!cursor) { - // this means there weren't enough keys - resolve(null); - return; - } - if (n === 0) { - // We have the first key, return it if that's what they - // wanted. - resolve(cursor.key); - } else { - if (!advanced) { - // Otherwise, ask the cursor to skip ahead n - // records. - advanced = true; - cursor.advance(n); - } else { - // When we get here, we've got the nth key. - resolve(cursor.key); - } - } - }; - req.onerror = function () { - reject(req.error); - }; - } catch (e) { - reject(e); - } - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; + }, exports; } -function indexeddb_keys(callback) { - var self = this; - var promise = new utils_promise(function (resolve, reject) { - self.ready().then(function () { - createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) { - if (err) { - return reject(err); - } - try { - var store = transaction.objectStore(self._dbInfo.storeName); - var req = store.openKeyCursor(); - var keys = []; - req.onsuccess = function () { - var cursor = req.result; - if (!cursor) { - resolve(keys); - return; - } - keys.push(cursor.key); - cursor.continue(); - }; - req.onerror = function () { - reject(req.error); - }; - } catch (e) { - reject(e); - } - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; -} -function dropInstance(options, callback) { - callback = getCallback.apply(this, arguments); - var currentConfig = this.config(); - options = typeof options !== 'function' && options || {}; - if (!options.name) { - options.name = options.name || currentConfig.name; - options.storeName = options.storeName || currentConfig.storeName; +function connection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; } - var self = this; - var promise; - if (!options.name) { - promise = utils_promise.reject('Invalid arguments'); + if (info.done) { + resolve(value); } else { - var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db; - var dbPromise = isCurrentDb ? utils_promise.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) { - var dbContext = dbContexts[options.name]; - var forages = dbContext.forages; - dbContext.db = db; - for (var i = 0; i < forages.length; i++) { - forages[i]._dbInfo.db = db; + Promise.resolve(value).then(_next, _throw); + } +} +function connection_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + connection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } - return db; + function _throw(err) { + connection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); }); - if (!options.storeName) { - promise = dbPromise.then(function (db) { - _deferReadiness(options); - var dbContext = dbContexts[options.name]; - var forages = dbContext.forages; - db.close(); - for (var i = 0; i < forages.length; i++) { - var forage = forages[i]; - forage._dbInfo.db = null; - } - var dropDBPromise = new utils_promise(function (resolve, reject) { - var req = utils_idb.deleteDatabase(options.name); - req.onerror = function () { - var db = req.result; - if (db) { - db.close(); - } - reject(req.error); - }; - req.onblocked = function () { - // Closing all open connections in onversionchange handler should prevent this situation, but if - // we do get here, it just means the request remains pending - eventually it will succeed or error - console.warn('dropInstance blocked for database "' + options.name + '" until all open connections are closed'); - }; - req.onsuccess = function () { - var db = req.result; - if (db) { - db.close(); - } - resolve(db); - }; - }); - return dropDBPromise.then(function (db) { - dbContext.db = db; - for (var i = 0; i < forages.length; i++) { - var _forage = forages[i]; - _advanceReadiness(_forage._dbInfo); - } - }).catch(function (err) { - (_rejectReadiness(options, err) || utils_promise.resolve()).catch(function () {}); - throw err; - }); - }); - } else { - promise = dbPromise.then(function (db) { - if (!db.objectStoreNames.contains(options.storeName)) { - return; - } - var newVersion = db.version + 1; - _deferReadiness(options); - var dbContext = dbContexts[options.name]; - var forages = dbContext.forages; - db.close(); - for (var i = 0; i < forages.length; i++) { - var forage = forages[i]; - forage._dbInfo.db = null; - forage._dbInfo.version = newVersion; - } - var dropObjectPromise = new utils_promise(function (resolve, reject) { - var req = utils_idb.open(options.name, newVersion); - req.onerror = function (err) { - var db = req.result; - db.close(); - reject(err); - }; - req.onupgradeneeded = function () { - var db = req.result; - db.deleteObjectStore(options.storeName); - }; - req.onsuccess = function () { - var db = req.result; - db.close(); - resolve(db); - }; - }); - return dropObjectPromise.then(function (db) { - dbContext.db = db; - for (var j = 0; j < forages.length; j++) { - var _forage2 = forages[j]; - _forage2._dbInfo.db = db; - _advanceReadiness(_forage2._dbInfo); - } - }).catch(function (err) { - (_rejectReadiness(options, err) || utils_promise.resolve()).catch(function () {}); - throw err; - }); - }); - } - } - utils_executeCallback(promise, callback); - return promise; + }; } -var asyncStorage = { - _driver: 'asyncStorage', - _initStorage: _initStorage, - _support: utils_isIndexedDBValid(), - iterate: iterate, - getItem: getItem, - setItem: setItem, - removeItem: removeItem, - clear: clear, - length: indexeddb_length, - key: key, - keys: indexeddb_keys, - dropInstance: dropInstance -}; -/* harmony default export */ const indexeddb = (asyncStorage); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/isWebSQLValid.js -function isWebSQLValid() { - return typeof openDatabase === 'function'; +function connection_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } } -/* harmony default export */ const utils_isWebSQLValid = (isWebSQLValid); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/serializer.js -/* eslint-disable no-bitwise */ - - -// Sadly, the best way to save binary data in WebSQL/localStorage is serializing -// it to Base64, so this is how we store it to prevent very strange errors with less -// verbose ways of binary <-> string data storage. -var BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; -var BLOB_TYPE_PREFIX = '~~local_forage_type~'; -var BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/; -var SERIALIZED_MARKER = '__lfsc__:'; -var SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length; - -// OMG the serializations! -var TYPE_ARRAYBUFFER = 'arbf'; -var TYPE_BLOB = 'blob'; -var TYPE_INT8ARRAY = 'si08'; -var TYPE_UINT8ARRAY = 'ui08'; -var TYPE_UINT8CLAMPEDARRAY = 'uic8'; -var TYPE_INT16ARRAY = 'si16'; -var TYPE_INT32ARRAY = 'si32'; -var TYPE_UINT16ARRAY = 'ur16'; -var TYPE_UINT32ARRAY = 'ui32'; -var TYPE_FLOAT32ARRAY = 'fl32'; -var TYPE_FLOAT64ARRAY = 'fl64'; -var TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length; -var serializer_toString = Object.prototype.toString; -function stringToBuffer(serializedString) { - // Fill the string into a ArrayBuffer. - var bufferLength = serializedString.length * 0.75; - var len = serializedString.length; - var i; - var p = 0; - var encoded1, encoded2, encoded3, encoded4; - if (serializedString[serializedString.length - 1] === '=') { - bufferLength--; - if (serializedString[serializedString.length - 2] === '=') { - bufferLength--; - } +function connection_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, connection_toPropertyKey(descriptor.key), descriptor); } - var buffer = new ArrayBuffer(bufferLength); - var bytes = new Uint8Array(buffer); - for (i = 0; i < len; i += 4) { - encoded1 = BASE_CHARS.indexOf(serializedString[i]); - encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]); - encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]); - encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]); - - /*jslint bitwise: true */ - bytes[p++] = encoded1 << 2 | encoded2 >> 4; - bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2; - bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63; +} +function connection_createClass(Constructor, protoProps, staticProps) { + if (protoProps) connection_defineProperties(Constructor.prototype, protoProps); + if (staticProps) connection_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function connection_toPropertyKey(arg) { + var key = connection_toPrimitive(arg, "string"); + return connection_typeof(key) === "symbol" ? key : String(key); +} +function connection_toPrimitive(input, hint) { + if (connection_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (connection_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); } - return buffer; + return (hint === "string" ? String : Number)(input); } - -// Converts a buffer to a string to store, serialized, in the backend -// storage library. -function bufferToString(buffer) { - // base64-arraybuffer - var bytes = new Uint8Array(buffer); - var base64String = ''; - var i; - for (i = 0; i < bytes.length; i += 3) { - /*jslint bitwise: true */ - base64String += BASE_CHARS[bytes[i] >> 2]; - base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4]; - base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6]; - base64String += BASE_CHARS[bytes[i + 2] & 63]; +function _get() { + if (typeof Reflect !== "undefined" && Reflect.get) { + _get = Reflect.get.bind(); + } else { + _get = function _get(target, property, receiver) { + var base = _superPropBase(target, property); + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + if (desc.get) { + return desc.get.call(arguments.length < 3 ? target : receiver); + } + return desc.value; + }; } - if (bytes.length % 3 === 2) { - base64String = base64String.substring(0, base64String.length - 1) + '='; - } else if (bytes.length % 3 === 1) { - base64String = base64String.substring(0, base64String.length - 2) + '=='; + return _get.apply(this, arguments); +} +function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = connection_getPrototypeOf(object); + if (object === null) break; } - return base64String; + return object; } - -// Serialize a value, afterwards executing a callback (which usually -// instructs the `setItem()` callback/promise to be executed). This is how -// we store binary data with localStorage. -function serializer_serialize(value, callback) { - var valueType = ''; - if (value) { - valueType = serializer_toString.call(value); +function connection_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); } - - // Cannot use `value instanceof ArrayBuffer` or such here, as these - // checks fail when running the tests using casper.js... - // - // TODO: See why those tests fail and use a better solution. - if (value && (valueType === '[object ArrayBuffer]' || value.buffer && serializer_toString.call(value.buffer) === '[object ArrayBuffer]')) { - // Convert binary arrays to a string and prefix the string with - // a special marker. - var buffer; - var marker = SERIALIZED_MARKER; - if (value instanceof ArrayBuffer) { - buffer = value; - marker += TYPE_ARRAYBUFFER; - } else { - buffer = value.buffer; - if (valueType === '[object Int8Array]') { - marker += TYPE_INT8ARRAY; - } else if (valueType === '[object Uint8Array]') { - marker += TYPE_UINT8ARRAY; - } else if (valueType === '[object Uint8ClampedArray]') { - marker += TYPE_UINT8CLAMPEDARRAY; - } else if (valueType === '[object Int16Array]') { - marker += TYPE_INT16ARRAY; - } else if (valueType === '[object Uint16Array]') { - marker += TYPE_UINT16ARRAY; - } else if (valueType === '[object Int32Array]') { - marker += TYPE_INT32ARRAY; - } else if (valueType === '[object Uint32Array]') { - marker += TYPE_UINT32ARRAY; - } else if (valueType === '[object Float32Array]') { - marker += TYPE_FLOAT32ARRAY; - } else if (valueType === '[object Float64Array]') { - marker += TYPE_FLOAT64ARRAY; - } else { - callback(new Error('Failed to get type for BinaryArray')); - } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true } - callback(marker + bufferToString(buffer)); - } else if (valueType === '[object Blob]') { - // Conver the blob to a binaryArray and then to a string. - var fileReader = new FileReader(); - fileReader.onload = function () { - // Backwards-compatible prefix for the blob type. - var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result); - callback(SERIALIZED_MARKER + TYPE_BLOB + str); - }; - fileReader.readAsArrayBuffer(value); - } else { - try { - callback(JSON.stringify(value)); - } catch (e) { - console.error("Couldn't convert value into a JSON string: ", value); - callback(null, e); + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) connection_setPrototypeOf(subClass, superClass); +} +function connection_setPrototypeOf(o, p) { + connection_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return connection_setPrototypeOf(o, p); +} +function connection_createSuper(Derived) { + var hasNativeReflectConstruct = connection_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = connection_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = connection_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); } - } + return connection_possibleConstructorReturn(this, result); + }; } - -// Deserialize data we've inserted into a value column/field. We place -// special markers into our strings to mark them as encoded; this isn't -// as nice as a meta field, but it's the only sane thing we can do whilst -// keeping localStorage support intact. -// -// Oftentimes this will just deserialize JSON content, but if we have a -// special marker (SERIALIZED_MARKER, defined above), we will extract -// some kind of arraybuffer/binary data/typed array out of the string. -function deserialize(value) { - // If we haven't marked this string as being specially serialized (i.e. - // something other than serialized JSON), we can just return it and be - // done with it. - if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) { - return JSON.parse(value); +function connection_possibleConstructorReturn(self, call) { + if (call && (connection_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); } - - // The following code deals with deserializing some kind of Blob or - // TypedArray. First we separate out the type of data we're dealing - // with from the data itself. - var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH); - var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH); - var blobType; - // Backwards-compatible blob type serialization strategy. - // DBs created with older versions of localForage will simply not have the blob type. - if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) { - var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX); - blobType = matcher[1]; - serializedString = serializedString.substring(matcher[0].length); + return connection_assertThisInitialized(self); +} +function connection_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } - var buffer = stringToBuffer(serializedString); - - // Return the right type based on the code/type set during - // serialization. - switch (type) { - case TYPE_ARRAYBUFFER: - return buffer; - case TYPE_BLOB: - return utils_createBlob([buffer], { - type: blobType - }); - case TYPE_INT8ARRAY: - return new Int8Array(buffer); - case TYPE_UINT8ARRAY: - return new Uint8Array(buffer); - case TYPE_UINT8CLAMPEDARRAY: - return new Uint8ClampedArray(buffer); - case TYPE_INT16ARRAY: - return new Int16Array(buffer); - case TYPE_UINT16ARRAY: - return new Uint16Array(buffer); - case TYPE_INT32ARRAY: - return new Int32Array(buffer); - case TYPE_UINT32ARRAY: - return new Uint32Array(buffer); - case TYPE_FLOAT32ARRAY: - return new Float32Array(buffer); - case TYPE_FLOAT64ARRAY: - return new Float64Array(buffer); - default: - throw new Error('Unkown type: ' + type); + return self; +} +function connection_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; } } -var localforageSerializer = { - serialize: serializer_serialize, - deserialize: deserialize, - stringToBuffer: stringToBuffer, - bufferToString: bufferToString -}; -/* harmony default export */ const serializer = (localforageSerializer); -;// CONCATENATED MODULE: ./node_modules/localforage/src/drivers/websql.js +function connection_getPrototypeOf(o) { + connection_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return connection_getPrototypeOf(o); +} @@ -24128,1192 +22846,1014 @@ var localforageSerializer = { -/* - * Includes code from: - * - * base64-arraybuffer - * https://github.com/niklasvh/base64-arraybuffer - * - * Copyright (c) 2012 Niklas von Hertzen - * Licensed under the MIT license. - */ -function createDbTable(t, dbInfo, callback, errorCallback) { - t.executeSql("CREATE TABLE IF NOT EXISTS ".concat(dbInfo.storeName, " ") + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback); -} -// Open the WebSQL database (automatically creates one if one didn't -// previously exist), using any options set in the config. -function websql_initStorage(options) { - var self = this; - var dbInfo = { - db: null - }; - if (options) { - for (var i in options) { - dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i]; - } - } - var dbInfoPromise = new utils_promise(function (resolve, reject) { - // Open the database; the openDatabase API will automatically - // create it for us if it doesn't exist. - try { - dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size); - } catch (e) { - return reject(e); - } - // Create our key/value table if it doesn't exist. - dbInfo.db.transaction(function (t) { - createDbTable(t, dbInfo, function () { - self._dbInfo = dbInfo; - resolve(); - }, function (t, error) { - reject(error); - }); - }, reject); - }); - dbInfo.serializer = serializer; - return dbInfoPromise; -} -function tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) { - t.executeSql(sqlStatement, args, callback, function (t, error) { - if (error.code === error.SYNTAX_ERR) { - t.executeSql('SELECT name FROM sqlite_master ' + "WHERE type='table' AND name = ?", [dbInfo.storeName], function (t, results) { - if (!results.rows.length) { - // if the table is missing (was deleted) - // re-create it table and retry - createDbTable(t, dbInfo, function () { - t.executeSql(sqlStatement, args, callback, errorCallback); - }, errorCallback); - } else { - errorCallback(t, error); - } - }, errorCallback); - } else { - errorCallback(t, error); - } - }, errorCallback); -} -function websql_getItem(key, callback) { - var self = this; - key = normalizeKey(key); - var promise = new utils_promise(function (resolve, reject) { - self.ready().then(function () { - var dbInfo = self._dbInfo; - dbInfo.db.transaction(function (t) { - tryExecuteSql(t, dbInfo, "SELECT * FROM ".concat(dbInfo.storeName, " WHERE key = ? LIMIT 1"), [key], function (t, results) { - var result = results.rows.length ? results.rows.item(0).value : null; - - // Check to see if this is serialized content we need to - // unpack. - if (result) { - result = dbInfo.serializer.deserialize(result); - } - resolve(result); - }, function (t, error) { - reject(error); - }); - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; -} -function websql_iterate(iterator, callback) { - var self = this; - var promise = new utils_promise(function (resolve, reject) { - self.ready().then(function () { - var dbInfo = self._dbInfo; - dbInfo.db.transaction(function (t) { - tryExecuteSql(t, dbInfo, "SELECT * FROM ".concat(dbInfo.storeName), [], function (t, results) { - var rows = results.rows; - var length = rows.length; - for (var i = 0; i < length; i++) { - var item = rows.item(i); - var result = item.value; - - // Check to see if this is serialized content - // we need to unpack. - if (result) { - result = dbInfo.serializer.deserialize(result); - } - result = iterator(result, item.key, i + 1); +var i = Object.keys(external_strophe_namespaceObject.Strophe.Status).reduce(function (max, k) { + return Math.max(max, external_strophe_namespaceObject.Strophe.Status[k]); +}, 0); +external_strophe_namespaceObject.Strophe.Status.RECONNECTING = i + 1; - // void(0) prevents problems with redefinition - // of `undefined`. - if (result !== void 0) { - resolve(result); - return; - } +/** + * The Connection class manages the connection to the XMPP server. It's + * agnostic concerning the underlying protocol (i.e. websocket, long-polling + * via BOSH or websocket inside a shared worker). + */ +var Connection = /*#__PURE__*/function (_Strophe$Connection) { + connection_inherits(Connection, _Strophe$Connection); + var _super = connection_createSuper(Connection); + function Connection(service, options) { + var _this; + connection_classCallCheck(this, Connection); + _this = _super.call(this, service, options); + _this.debouncedReconnect = lodash_es_debounce(_this.reconnect, 3000); + return _this; + } + connection_createClass(Connection, [{ + key: "bind", + value: function () { + var _bind = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee() { + return connection_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return shared_api.trigger('beforeResourceBinding', { + 'synchronous': true + }); + case 2: + _get(connection_getPrototypeOf(Connection.prototype), "bind", this).call(this); + case 3: + case "end": + return _context.stop(); } - resolve(); - }, function (t, error) { - reject(error); - }); - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; -} -function _setItem(key, value, callback, retriesLeft) { - var self = this; - key = normalizeKey(key); - var promise = new utils_promise(function (resolve, reject) { - self.ready().then(function () { - // The localStorage API doesn't return undefined values in an - // "expected" way, so undefined is always cast to null in all - // drivers. See: https://github.com/mozilla/localForage/pull/42 - if (value === undefined) { - value = null; + }, _callee, this); + })); + function bind() { + return _bind.apply(this, arguments); } - - // Save the original value to pass to the callback. - var originalValue = value; - var dbInfo = self._dbInfo; - dbInfo.serializer.serialize(value, function (value, error) { - if (error) { - reject(error); - } else { - dbInfo.db.transaction(function (t) { - tryExecuteSql(t, dbInfo, "INSERT OR REPLACE INTO ".concat(dbInfo.storeName, " ") + '(key, value) VALUES (?, ?)', [key, value], function () { - resolve(originalValue); - }, function (t, error) { - reject(error); - }); - }, function (sqlError) { - // The transaction failed; check - // to see if it's a quota error. - if (sqlError.code === sqlError.QUOTA_ERR) { - // We reject the callback outright for now, but - // it's worth trying to re-run the transaction. - // Even if the user accepts the prompt to use - // more storage on Safari, this error will - // be called. - // - // Try to re-run the transaction. - if (retriesLeft > 0) { - resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1])); - return; + return bind; + }() + }, { + key: "onDomainDiscovered", + value: function () { + var _onDomainDiscovered = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee2(response) { + var text, xrd, bosh_links, ws_links, bosh_methods, ws_methods; + return connection_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return response.text(); + case 2: + text = _context2.sent; + xrd = new window.DOMParser().parseFromString(text, "text/xml").firstElementChild; + if (!(xrd.nodeName != "XRD" || xrd.namespaceURI != "http://docs.oasis-open.org/ns/xri/xrd-1.0")) { + _context2.next = 6; + break; } - reject(sqlError); - } - }); - } - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; -} -function websql_setItem(key, value, callback) { - return _setItem.apply(this, [key, value, callback, 1]); -} -function websql_removeItem(key, callback) { - var self = this; - key = normalizeKey(key); - var promise = new utils_promise(function (resolve, reject) { - self.ready().then(function () { - var dbInfo = self._dbInfo; - dbInfo.db.transaction(function (t) { - tryExecuteSql(t, dbInfo, "DELETE FROM ".concat(dbInfo.storeName, " WHERE key = ?"), [key], function () { - resolve(); - }, function (t, error) { - reject(error); - }); - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; -} - -// Deletes every item in the table. -// TODO: Find out if this resets the AUTO_INCREMENT number. -function websql_clear(callback) { - var self = this; - var promise = new utils_promise(function (resolve, reject) { - self.ready().then(function () { - var dbInfo = self._dbInfo; - dbInfo.db.transaction(function (t) { - tryExecuteSql(t, dbInfo, "DELETE FROM ".concat(dbInfo.storeName), [], function () { - resolve(); - }, function (t, error) { - reject(error); - }); - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; -} - -// Does a simple `COUNT(key)` to get the number of items stored in -// localForage. -function websql_length(callback) { - var self = this; - var promise = new utils_promise(function (resolve, reject) { - self.ready().then(function () { - var dbInfo = self._dbInfo; - dbInfo.db.transaction(function (t) { - // Ahhh, SQL makes this one soooooo easy. - tryExecuteSql(t, dbInfo, "SELECT COUNT(key) as c FROM ".concat(dbInfo.storeName), [], function (t, results) { - var result = results.rows.item(0).c; - resolve(result); - }, function (t, error) { - reject(error); - }); - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; -} - -// Return the key located at key index X; essentially gets the key from a -// `WHERE id = ?`. This is the most efficient way I can think to implement -// this rarely-used (in my experience) part of the API, but it can seem -// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so -// the ID of each key will change every time it's updated. Perhaps a stored -// procedure for the `setItem()` SQL would solve this problem? -// TODO: Don't change ID on `setItem()`. -function websql_key(n, callback) { - var self = this; - var promise = new utils_promise(function (resolve, reject) { - self.ready().then(function () { - var dbInfo = self._dbInfo; - dbInfo.db.transaction(function (t) { - tryExecuteSql(t, dbInfo, "SELECT key FROM ".concat(dbInfo.storeName, " WHERE id = ? LIMIT 1"), [n + 1], function (t, results) { - var result = results.rows.length ? results.rows.item(0).key : null; - resolve(result); - }, function (t, error) { - reject(error); - }); - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; -} -function websql_keys(callback) { - var self = this; - var promise = new utils_promise(function (resolve, reject) { - self.ready().then(function () { - var dbInfo = self._dbInfo; - dbInfo.db.transaction(function (t) { - tryExecuteSql(t, dbInfo, "SELECT key FROM ".concat(dbInfo.storeName), [], function (t, results) { - var keys = []; - for (var i = 0; i < results.rows.length; i++) { - keys.push(results.rows.item(i).key); + return _context2.abrupt("return", log.warn("Could not discover XEP-0156 connection methods")); + case 6: + bosh_links = external_sizzle_default()("Link[rel=\"urn:xmpp:alt-connections:xbosh\"]", xrd); + ws_links = external_sizzle_default()("Link[rel=\"urn:xmpp:alt-connections:websocket\"]", xrd); + bosh_methods = bosh_links.map(function (el) { + return el.getAttribute('href'); + }); + ws_methods = ws_links.map(function (el) { + return el.getAttribute('href'); + }); + if (bosh_methods.length === 0 && ws_methods.length === 0) { + log.warn("Neither BOSH nor WebSocket connection methods have been specified with XEP-0156."); + } else { + // TODO: support multiple endpoints + shared_api.settings.set("websocket_url", ws_methods.pop()); + shared_api.settings.set('bosh_service_url', bosh_methods.pop()); + this.service = shared_api.settings.get("websocket_url") || shared_api.settings.get('bosh_service_url'); + this.setProtocol(); + } + case 11: + case "end": + return _context2.stop(); } - resolve(keys); - }, function (t, error) { - reject(error); - }); - }); - }).catch(reject); - }); - utils_executeCallback(promise, callback); - return promise; -} - -// https://www.w3.org/TR/webdatabase/#databases -// > There is no way to enumerate or delete the databases available for an origin from this API. -function getAllStoreNames(db) { - return new utils_promise(function (resolve, reject) { - db.transaction(function (t) { - t.executeSql('SELECT name FROM sqlite_master ' + "WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'", [], function (t, results) { - var storeNames = []; - for (var i = 0; i < results.rows.length; i++) { - storeNames.push(results.rows.item(i).name); - } - resolve({ - db: db, - storeNames: storeNames - }); - }, function (t, error) { - reject(error); - }); - }, function (sqlError) { - reject(sqlError); - }); - }); -} -function websql_dropInstance(options, callback) { - callback = getCallback.apply(this, arguments); - var currentConfig = this.config(); - options = typeof options !== 'function' && options || {}; - if (!options.name) { - options.name = options.name || currentConfig.name; - options.storeName = options.storeName || currentConfig.storeName; - } - var self = this; - var promise; - if (!options.name) { - promise = utils_promise.reject('Invalid arguments'); - } else { - promise = new utils_promise(function (resolve) { - var db; - if (options.name === currentConfig.name) { - // use the db reference of the current instance - db = self._dbInfo.db; - } else { - db = openDatabase(options.name, '', '', 0); - } - if (!options.storeName) { - // drop all database tables - resolve(getAllStoreNames(db)); - } else { - resolve({ - db: db, - storeNames: [options.storeName] - }); + }, _callee2, this); + })); + function onDomainDiscovered(_x) { + return _onDomainDiscovered.apply(this, arguments); } - }).then(function (operationInfo) { - return new utils_promise(function (resolve, reject) { - operationInfo.db.transaction(function (t) { - function dropTable(storeName) { - return new utils_promise(function (resolve, reject) { - t.executeSql("DROP TABLE IF EXISTS ".concat(storeName), [], function () { - resolve(); - }, function (t, error) { - reject(error); - }); - }); + return onDomainDiscovered; + }() + /** + * Adds support for XEP-0156 by quering the XMPP server for alternate + * connection methods. This allows users to use the websocket or BOSH + * connection of their own XMPP server instead of a proxy provided by the + * host of Converse.js. + * @method Connnection.discoverConnectionMethods + */ + }, { + key: "discoverConnectionMethods", + value: function () { + var _discoverConnectionMethods = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee3(domain) { + var options, url, response; + return connection_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + // Use XEP-0156 to check whether this host advertises websocket or BOSH connection methods. + options = { + 'mode': 'cors', + 'headers': { + 'Accept': 'application/xrd+xml, text/xml' + } + }; + url = "https://".concat(domain, "/.well-known/host-meta"); + _context3.prev = 2; + _context3.next = 5; + return fetch(url, options); + case 5: + response = _context3.sent; + _context3.next = 13; + break; + case 8: + _context3.prev = 8; + _context3.t0 = _context3["catch"](2); + log.error("Failed to discover alternative connection methods at ".concat(url)); + log.error(_context3.t0); + return _context3.abrupt("return"); + case 13: + if (!(response.status >= 200 && response.status < 400)) { + _context3.next = 18; + break; + } + _context3.next = 16; + return this.onDomainDiscovered(response); + case 16: + _context3.next = 19; + break; + case 18: + log.warn("Could not discover XEP-0156 connection methods"); + case 19: + case "end": + return _context3.stop(); } - var operations = []; - for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) { - operations.push(dropTable(operationInfo.storeNames[i])); + }, _callee3, this, [[2, 8]]); + })); + function discoverConnectionMethods(_x2) { + return _discoverConnectionMethods.apply(this, arguments); + } + return discoverConnectionMethods; + }() + /** + * Establish a new XMPP session by logging in with the supplied JID and + * password. + * @method Connnection.connect + * @param { String } jid + * @param { String } password + * @param { Funtion } callback + */ + }, { + key: "connect", + value: function () { + var _connect = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee4(jid, password, callback) { + var domain; + return connection_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + if (!shared_api.settings.get("discover_connection_methods")) { + _context4.next = 4; + break; + } + domain = external_strophe_namespaceObject.Strophe.getDomainFromJid(jid); + _context4.next = 4; + return this.discoverConnectionMethods(domain); + case 4: + if (!(!shared_api.settings.get('bosh_service_url') && !shared_api.settings.get("websocket_url"))) { + _context4.next = 6; + break; + } + throw new Error("You must supply a value for either the bosh_service_url or websocket_url or both."); + case 6: + _get(connection_getPrototypeOf(Connection.prototype), "connect", this).call(this, jid, password, callback || this.onConnectStatusChanged, BOSH_WAIT); + case 7: + case "end": + return _context4.stop(); } - utils_promise.all(operations).then(function () { - resolve(); - }).catch(function (e) { - reject(e); - }); - }, function (sqlError) { - reject(sqlError); - }); - }); - }); - } - utils_executeCallback(promise, callback); - return promise; -} -var webSQLStorage = { - _driver: 'webSQLStorage', - _initStorage: websql_initStorage, - _support: utils_isWebSQLValid(), - iterate: websql_iterate, - getItem: websql_getItem, - setItem: websql_setItem, - removeItem: websql_removeItem, - clear: websql_clear, - length: websql_length, - key: websql_key, - keys: websql_keys, - dropInstance: websql_dropInstance -}; -/* harmony default export */ const websql = (webSQLStorage); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/isLocalStorageValid.js -function isLocalStorageValid() { - try { - return typeof localStorage !== 'undefined' && 'setItem' in localStorage && - // in IE8 typeof localStorage.setItem === 'object' - !!localStorage.setItem; - } catch (e) { - return false; - } -} -/* harmony default export */ const utils_isLocalStorageValid = (isLocalStorageValid); -;// CONCATENATED MODULE: ./node_modules/localforage/src/drivers/localstorage.js -// If IndexedDB isn't available, we'll fall back to localStorage. -// Note that this will have considerable performance and storage -// side-effects (all data will be serialized on save and only data that -// can be converted to a string via `JSON.stringify()` will be saved). - - - - - - - -function _getKeyPrefix(options, defaultConfig) { - var keyPrefix = options.name + '/'; - if (options.storeName !== defaultConfig.storeName) { - keyPrefix += options.storeName + '/'; - } - return keyPrefix; -} - -// Check if localStorage throws when saving an item -function checkIfLocalStorageThrows() { - var localStorageTestKey = '_localforage_support_test'; - try { - localStorage.setItem(localStorageTestKey, true); - localStorage.removeItem(localStorageTestKey); - return false; - } catch (e) { - return true; - } -} - -// Check if localStorage is usable and allows to save an item -// This method checks if localStorage is usable in Safari Private Browsing -// mode, or in any other case where the available quota for localStorage -// is 0 and there wasn't any saved items yet. -function _isLocalStorageUsable() { - return !checkIfLocalStorageThrows() || localStorage.length > 0; -} - -// Config the localStorage backend, using options set in the config. -function localstorage_initStorage(options) { - var self = this; - var dbInfo = {}; - if (options) { - for (var i in options) { - dbInfo[i] = options[i]; - } - } - dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig); - if (!_isLocalStorageUsable()) { - return utils_promise.reject(); - } - self._dbInfo = dbInfo; - dbInfo.serializer = serializer; - return utils_promise.resolve(); -} + }, _callee4, this); + })); + function connect(_x3, _x4, _x5) { + return _connect.apply(this, arguments); + } + return connect; + }() + /** + * Switch to a different transport if a service URL is available for it. + * + * When reconnecting with a new transport, we call setUserJID + * so that a new resource is generated, to avoid multiple + * server-side sessions with the same resource. + * + * We also call `_proto._doDisconnect` so that connection event handlers + * for the old transport are removed. + */ + }, { + key: "switchTransport", + value: function () { + var _switchTransport = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee5() { + return connection_regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + if (!(shared_api.connection.isType('websocket') && shared_api.settings.get('bosh_service_url'))) { + _context5.next = 8; + break; + } + _context5.next = 3; + return setUserJID(shared_converse.bare_jid); + case 3: + this._proto._doDisconnect(); + this._proto = new external_strophe_namespaceObject.Strophe.Bosh(this); + this.service = shared_api.settings.get('bosh_service_url'); + _context5.next = 19; + break; + case 8: + if (!(shared_api.connection.isType('bosh') && shared_api.settings.get("websocket_url"))) { + _context5.next = 19; + break; + } + if (!(shared_api.settings.get("authentication") === ANONYMOUS)) { + _context5.next = 14; + break; + } + _context5.next = 12; + return setUserJID(shared_api.settings.get("jid")); + case 12: + _context5.next = 16; + break; + case 14: + _context5.next = 16; + return setUserJID(shared_converse.bare_jid); + case 16: + this._proto._doDisconnect(); + this._proto = new external_strophe_namespaceObject.Strophe.Websocket(this); + this.service = shared_api.settings.get("websocket_url"); + case 19: + case "end": + return _context5.stop(); + } + }, _callee5, this); + })); + function switchTransport() { + return _switchTransport.apply(this, arguments); + } + return switchTransport; + }() + }, { + key: "reconnect", + value: function () { + var _reconnect = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee6() { + var conn_status; + return connection_regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + log.debug('RECONNECTING: the connection has dropped, attempting to reconnect.'); + this.reconnecting = true; + _context6.next = 4; + return tearDown(); + case 4: + conn_status = shared_converse.connfeedback.get('connection_status'); + if (!(conn_status === external_strophe_namespaceObject.Strophe.Status.CONNFAIL)) { + _context6.next = 9; + break; + } + this.switchTransport(); + _context6.next = 12; + break; + case 9: + if (!(conn_status === external_strophe_namespaceObject.Strophe.Status.AUTHFAIL && shared_api.settings.get("authentication") === ANONYMOUS)) { + _context6.next = 12; + break; + } + _context6.next = 12; + return setUserJID(shared_api.settings.get("jid")); + case 12: + /** + * Triggered when the connection has dropped, but Converse will attempt + * to reconnect again. + * @event _converse#will-reconnect + */ + shared_api.trigger('will-reconnect'); + if (!(shared_api.settings.get("authentication") === ANONYMOUS)) { + _context6.next = 16; + break; + } + _context6.next = 16; + return clearSession(); + case 16: + return _context6.abrupt("return", shared_api.user.login()); + case 17: + case "end": + return _context6.stop(); + } + }, _callee6, this); + })); + function reconnect() { + return _reconnect.apply(this, arguments); + } + return reconnect; + }() + /** + * Called as soon as a new connection has been established, either + * by logging in or by attaching to an existing BOSH session. + * @method Connection.onConnected + * @param { Boolean } reconnecting - Whether Converse.js reconnected from an earlier dropped session. + */ + }, { + key: "onConnected", + value: function () { + var _onConnected = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee7(reconnecting) { + return connection_regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + delete this.reconnecting; + this.flush(); // Solves problem of returned PubSub BOSH response not received by browser + _context7.next = 4; + return setUserJID(this.jid); + case 4: + // Save the current JID in persistent storage so that we can attempt to + // recreate the session from SCRAM keys + if (shared_converse.config.get('trusted')) { + localStorage.setItem('conversejs-session-jid', shared_converse.bare_jid); + } -// Remove all keys from the datastore, effectively destroying all data in -// the app's key/value store! -function localstorage_clear(callback) { - var self = this; - var promise = self.ready().then(function () { - var keyPrefix = self._dbInfo.keyPrefix; - for (var i = localStorage.length - 1; i >= 0; i--) { - var key = localStorage.key(i); - if (key.indexOf(keyPrefix) === 0) { - localStorage.removeItem(key); + /** + * Synchronous event triggered after we've sent an IQ to bind the + * user's JID resource for this session. + * @event _converse#afterResourceBinding + */ + _context7.next = 7; + return shared_api.trigger('afterResourceBinding', reconnecting, { + 'synchronous': true + }); + case 7: + if (reconnecting) { + /** + * After the connection has dropped and converse.js has reconnected. + * Any Strophe stanza handlers (as registered via `converse.listen.stanza`) will + * have to be registered anew. + * @event _converse#reconnected + * @example _converse.api.listen.on('reconnected', () => { ... }); + */ + shared_api.trigger('reconnected'); + } else { + /** + * Triggered after the connection has been established and Converse + * has got all its ducks in a row. + * @event _converse#initialized + */ + shared_api.trigger('connected'); + } + case 8: + case "end": + return _context7.stop(); + } + }, _callee7, this); + })); + function onConnected(_x6) { + return _onConnected.apply(this, arguments); + } + return onConnected; + }() + /** + * Used to keep track of why we got disconnected, so that we can + * decide on what the next appropriate action is (in onDisconnected) + * @method Connection.setDisconnectionCause + * @param { Number } cause - The status number as received from Strophe. + * @param { String } [reason] - An optional user-facing message as to why + * there was a disconnection. + * @param { Boolean } [override] - An optional flag to replace any previous + * disconnection cause and reason. + */ + }, { + key: "setDisconnectionCause", + value: function setDisconnectionCause(cause, reason, override) { + if (cause === undefined) { + delete this.disconnection_cause; + delete this.disconnection_reason; + } else if (this.disconnection_cause === undefined || override) { + this.disconnection_cause = cause; + this.disconnection_reason = reason; } } - }); - utils_executeCallback(promise, callback); - return promise; -} - -// Retrieve an item from the store. Unlike the original async_storage -// library in Gaia, we don't modify return values at all. If a key's value -// is `undefined`, we pass that value to the callback function. -function localstorage_getItem(key, callback) { - var self = this; - key = normalizeKey(key); - var promise = self.ready().then(function () { - var dbInfo = self._dbInfo; - var result = localStorage.getItem(dbInfo.keyPrefix + key); - - // If a result was found, parse it from the serialized - // string into a JS object. If result isn't truthy, the key - // is likely undefined and we'll pass it straight to the - // callback. - if (result) { - result = dbInfo.serializer.deserialize(result); + }, { + key: "setConnectionStatus", + value: function setConnectionStatus(status, message) { + this.status = status; + shared_converse.connfeedback.set({ + 'connection_status': status, + message: message + }); } - return result; - }); - utils_executeCallback(promise, callback); - return promise; -} - -// Iterate over all items in the store. -function localstorage_iterate(iterator, callback) { - var self = this; - var promise = self.ready().then(function () { - var dbInfo = self._dbInfo; - var keyPrefix = dbInfo.keyPrefix; - var keyPrefixLength = keyPrefix.length; - var length = localStorage.length; - - // We use a dedicated iterator instead of the `i` variable below - // so other keys we fetch in localStorage aren't counted in - // the `iterationNumber` argument passed to the `iterate()` - // callback. - // - // See: github.com/mozilla/localForage/pull/435#discussion_r38061530 - var iterationNumber = 1; - for (var i = 0; i < length; i++) { - var key = localStorage.key(i); - if (key.indexOf(keyPrefix) !== 0) { - continue; - } - var value = localStorage.getItem(key); - - // If a result was found, parse it from the serialized - // string into a JS object. If result isn't truthy, the - // key is likely undefined and we'll pass it straight - // to the iterator. - if (value) { - value = dbInfo.serializer.deserialize(value); + }, { + key: "finishDisconnection", + value: function () { + var _finishDisconnection = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee8() { + return connection_regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { + case 0: + // Properly tear down the session so that it's possible to manually connect again. + log.debug('DISCONNECTED'); + delete this.reconnecting; + this.reset(); + tearDown(); + _context8.next = 6; + return clearSession(); + case 6: + delete shared_converse.connection; + /** + * Triggered after converse.js has disconnected from the XMPP server. + * @event _converse#disconnected + * @memberOf _converse + * @example _converse.api.listen.on('disconnected', () => { ... }); + */ + shared_api.trigger('disconnected'); + case 8: + case "end": + return _context8.stop(); + } + }, _callee8, this); + })); + function finishDisconnection() { + return _finishDisconnection.apply(this, arguments); } - value = iterator(value, key.substring(keyPrefixLength), iterationNumber++); - if (value !== void 0) { - return value; + return finishDisconnection; + }() + /** + * Gets called once strophe's status reaches Strophe.Status.DISCONNECTED. + * Will either start a teardown process for converse.js or attempt + * to reconnect. + * @method onDisconnected + */ + }, { + key: "onDisconnected", + value: function onDisconnected() { + if (shared_api.settings.get("auto_reconnect")) { + var reason = this.disconnection_reason; + if (this.disconnection_cause === external_strophe_namespaceObject.Strophe.Status.AUTHFAIL) { + if (shared_api.settings.get("credentials_url") || shared_api.settings.get("authentication") === ANONYMOUS) { + // If `credentials_url` is set, we reconnect, because we might + // be receiving expirable tokens from the credentials_url. + // + // If `authentication` is anonymous, we reconnect because we + // might have tried to attach with stale BOSH session tokens + // or with a cached JID and password + return shared_api.connection.reconnect(); + } else { + return this.finishDisconnection(); + } + } else if (this.status === external_strophe_namespaceObject.Strophe.Status.CONNECTING) { + // Don't try to reconnect if we were never connected to begin + // with, otherwise an infinite loop can occur (e.g. when the + // BOSH service URL returns a 404). + var __ = shared_converse.__; + this.setConnectionStatus(external_strophe_namespaceObject.Strophe.Status.CONNFAIL, __('An error occurred while connecting to the chat server.')); + return this.finishDisconnection(); + } else if (this.disconnection_cause === LOGOUT || reason === external_strophe_namespaceObject.Strophe.ErrorCondition.NO_AUTH_MECH || reason === "host-unknown" || reason === "remote-connection-failed") { + return this.finishDisconnection(); + } + shared_api.connection.reconnect(); + } else { + return this.finishDisconnection(); } } - }); - utils_executeCallback(promise, callback); - return promise; -} -// Same as localStorage's key() method, except takes a callback. -function localstorage_key(n, callback) { - var self = this; - var promise = self.ready().then(function () { - var dbInfo = self._dbInfo; - var result; - try { - result = localStorage.key(n); - } catch (error) { - result = null; - } + /** + * Callback method called by Strophe as the Connection goes + * through various states while establishing or tearing down a + * connection. + * @param { Number } status + * @param { String } message + */ + }, { + key: "onConnectStatusChanged", + value: function onConnectStatusChanged(status, message) { + var __ = shared_converse.__; + log.debug("Status changed to: ".concat(CONNECTION_STATUS[status])); + if (status === external_strophe_namespaceObject.Strophe.Status.ATTACHFAIL) { + var _this$worker_attach_p; + this.setConnectionStatus(status); + (_this$worker_attach_p = this.worker_attach_promise) === null || _this$worker_attach_p === void 0 ? void 0 : _this$worker_attach_p.resolve(false); + } else if (status === external_strophe_namespaceObject.Strophe.Status.CONNECTED || status === external_strophe_namespaceObject.Strophe.Status.ATTACHED) { + var _this$worker_attach_p2, _this$worker_attach_p3; + if ((_this$worker_attach_p2 = this.worker_attach_promise) !== null && _this$worker_attach_p2 !== void 0 && _this$worker_attach_p2.isResolved && this.status === external_strophe_namespaceObject.Strophe.Status.ATTACHED) { + // A different tab must have attached, so nothing to do for us here. + return; + } + this.setConnectionStatus(status); + (_this$worker_attach_p3 = this.worker_attach_promise) === null || _this$worker_attach_p3 === void 0 ? void 0 : _this$worker_attach_p3.resolve(true); - // Remove the prefix from the key, if a key is found. - if (result) { - result = result.substring(dbInfo.keyPrefix.length); + // By default we always want to send out an initial presence stanza. + shared_converse.send_initial_presence = true; + this.setDisconnectionCause(); + if (this.reconnecting) { + log.debug(status === external_strophe_namespaceObject.Strophe.Status.CONNECTED ? 'Reconnected' : 'Reattached'); + this.onConnected(true); + } else { + log.debug(status === external_strophe_namespaceObject.Strophe.Status.CONNECTED ? 'Connected' : 'Attached'); + if (this.restored) { + // No need to send an initial presence stanza when + // we're restoring an existing session. + shared_converse.send_initial_presence = false; + } + this.onConnected(); + } + } else if (status === external_strophe_namespaceObject.Strophe.Status.DISCONNECTED) { + this.setDisconnectionCause(status, message); + this.onDisconnected(); + } else if (status === external_strophe_namespaceObject.Strophe.Status.BINDREQUIRED) { + this.bind(); + } else if (status === external_strophe_namespaceObject.Strophe.Status.ERROR) { + this.setConnectionStatus(status, __('An error occurred while connecting to the chat server.')); + } else if (status === external_strophe_namespaceObject.Strophe.Status.CONNECTING) { + this.setConnectionStatus(status); + } else if (status === external_strophe_namespaceObject.Strophe.Status.AUTHENTICATING) { + this.setConnectionStatus(status); + } else if (status === external_strophe_namespaceObject.Strophe.Status.AUTHFAIL) { + if (!message) { + message = __('Your XMPP address and/or password is incorrect. Please try again.'); + } + this.setConnectionStatus(status, message); + this.setDisconnectionCause(status, message, true); + this.onDisconnected(); + } else if (status === external_strophe_namespaceObject.Strophe.Status.CONNFAIL) { + var _Strophe$ErrorConditi; + var feedback = message; + if (message === "host-unknown" || message == "remote-connection-failed") { + feedback = __("Sorry, we could not connect to the XMPP host with domain: %1$s", "\"".concat(external_strophe_namespaceObject.Strophe.getDomainFromJid(this.jid), "\"")); + } else if (message !== undefined && message === (external_strophe_namespaceObject.Strophe === null || external_strophe_namespaceObject.Strophe === void 0 ? void 0 : (_Strophe$ErrorConditi = external_strophe_namespaceObject.Strophe.ErrorCondition) === null || _Strophe$ErrorConditi === void 0 ? void 0 : _Strophe$ErrorConditi.NO_AUTH_MECH)) { + feedback = __("The XMPP server did not offer a supported authentication mechanism"); + } + this.setConnectionStatus(status, feedback); + this.setDisconnectionCause(status, message); + } else if (status === external_strophe_namespaceObject.Strophe.Status.DISCONNECTING) { + this.setDisconnectionCause(status, message); + } } - return result; - }); - utils_executeCallback(promise, callback); - return promise; -} -function localstorage_keys(callback) { - var self = this; - var promise = self.ready().then(function () { - var dbInfo = self._dbInfo; - var length = localStorage.length; - var keys = []; - for (var i = 0; i < length; i++) { - var itemKey = localStorage.key(i); - if (itemKey.indexOf(dbInfo.keyPrefix) === 0) { - keys.push(itemKey.substring(dbInfo.keyPrefix.length)); + }, { + key: "isType", + value: function isType(type) { + if (type.toLowerCase() === 'websocket') { + return this._proto instanceof external_strophe_namespaceObject.Strophe.Websocket; + } else if (type.toLowerCase() === 'bosh') { + return external_strophe_namespaceObject.Strophe.Bosh && this._proto instanceof external_strophe_namespaceObject.Strophe.Bosh; } } - return keys; - }); - utils_executeCallback(promise, callback); - return promise; -} - -// Supply the number of keys in the datastore to the callback function. -function localstorage_length(callback) { - var self = this; - var promise = self.keys().then(function (keys) { - return keys.length; - }); - utils_executeCallback(promise, callback); - return promise; -} - -// Remove an item from the store, nice and simple. -function localstorage_removeItem(key, callback) { - var self = this; - key = normalizeKey(key); - var promise = self.ready().then(function () { - var dbInfo = self._dbInfo; - localStorage.removeItem(dbInfo.keyPrefix + key); - }); - utils_executeCallback(promise, callback); - return promise; -} - -// Set a key's value and run an optional callback once the value is set. -// Unlike Gaia's implementation, the callback function is passed the value, -// in case you want to operate on that value only after you're sure it -// saved, or something like that. -function localstorage_setItem(key, value, callback) { - var self = this; - key = normalizeKey(key); - var promise = self.ready().then(function () { - // Convert undefined values to null. - // https://github.com/mozilla/localForage/pull/42 - if (value === undefined) { - value = null; - } - - // Save the original value to pass to the callback. - var originalValue = value; - return new utils_promise(function (resolve, reject) { - var dbInfo = self._dbInfo; - dbInfo.serializer.serialize(value, function (value, error) { - if (error) { - reject(error); - } else { - try { - localStorage.setItem(dbInfo.keyPrefix + key, value); - resolve(originalValue); - } catch (e) { - // localStorage capacity exceeded. - // TODO: Make this a specific error/event. - if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') { - reject(e); - } - reject(e); - } - } - }); - }); - }); - utils_executeCallback(promise, callback); - return promise; -} -function localstorage_dropInstance(options, callback) { - callback = getCallback.apply(this, arguments); - options = typeof options !== 'function' && options || {}; - if (!options.name) { - var currentConfig = this.config(); - options.name = options.name || currentConfig.name; - options.storeName = options.storeName || currentConfig.storeName; - } - var self = this; - var promise; - if (!options.name) { - promise = utils_promise.reject('Invalid arguments'); - } else { - promise = new utils_promise(function (resolve) { - if (!options.storeName) { - resolve("".concat(options.name, "/")); + }, { + key: "hasResumed", + value: function hasResumed() { + var _api$settings$get; + if ((_api$settings$get = shared_api.settings.get("connection_options")) !== null && _api$settings$get !== void 0 && _api$settings$get.worker || this.isType('bosh')) { + return shared_converse.connfeedback.get('connection_status') === external_strophe_namespaceObject.Strophe.Status.ATTACHED; } else { - resolve(_getKeyPrefix(options, self._defaultConfig)); - } - }).then(function (keyPrefix) { - for (var i = localStorage.length - 1; i >= 0; i--) { - var key = localStorage.key(i); - if (key.indexOf(keyPrefix) === 0) { - localStorage.removeItem(key); - } + // Not binding means that the session was resumed. + return !this.do_bind; } - }); - } - utils_executeCallback(promise, callback); - return promise; -} -var localStorageWrapper = { - _driver: 'localStorageWrapper', - _initStorage: localstorage_initStorage, - _support: utils_isLocalStorageValid(), - iterate: localstorage_iterate, - getItem: localstorage_getItem, - setItem: localstorage_setItem, - removeItem: localstorage_removeItem, - clear: localstorage_clear, - length: localstorage_length, - key: localstorage_key, - keys: localstorage_keys, - dropInstance: localstorage_dropInstance -}; -/* harmony default export */ const localstorage = (localStorageWrapper); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/includes.js -var sameValue = function sameValue(x, y) { - return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y); -}; -var includes = function includes(array, searchElement) { - var len = array.length; - var i = 0; - while (i < len) { - if (sameValue(array[i], searchElement)) { - return true; } - i++; + }, { + key: "restoreWorkerSession", + value: function restoreWorkerSession() { + this.attach(this.onConnectStatusChanged); + this.worker_attach_promise = getOpenPromise(); + return this.worker_attach_promise; + } + }], [{ + key: "generateResource", + value: function generateResource() { + return "/converse.js-".concat(Math.floor(Math.random() * 139749528).toString()); + } + }]); + return Connection; +}(external_strophe_namespaceObject.Strophe.Connection); + +/** + * The MockConnection class is used during testing, to mock an XMPP connection. + * @class + */ +var MockConnection = /*#__PURE__*/function (_Connection) { + connection_inherits(MockConnection, _Connection); + var _super2 = connection_createSuper(MockConnection); + function MockConnection(service, options) { + var _this2; + connection_classCallCheck(this, MockConnection); + _this2 = _super2.call(this, service, options); + _this2.sent_stanzas = []; + _this2.IQ_stanzas = []; + _this2.IQ_ids = []; + _this2.features = external_strophe_namespaceObject.Strophe.xmlHtmlNode('' + '' + '' + '' + '' + '' + '' + "" + '' + '' + '' + '').firstChild; + _this2._proto._processRequest = function () {}; + _this2._proto._disconnect = function () { + return _this2._onDisconnectTimeout(); + }; + _this2._proto._onDisconnectTimeout = function () {}; + _this2._proto._connect = function () { + _this2.connected = true; + _this2.mock = true; + _this2.jid = 'romeo@montague.lit/orchard'; + _this2._changeConnectStatus(external_strophe_namespaceObject.Strophe.Status.BINDREQUIRED); + }; + return _this2; } - return false; -}; -/* harmony default export */ const utils_includes = (includes); -;// CONCATENATED MODULE: ./node_modules/localforage/src/utils/isArray.js -var isArray_isArray = Array.isArray || function (arg) { - return Object.prototype.toString.call(arg) === '[object Array]'; -}; -/* harmony default export */ const utils_isArray = (isArray_isArray); -;// CONCATENATED MODULE: ./node_modules/localforage/src/localforage.js -function localforage_typeof(obj) { + connection_createClass(MockConnection, [{ + key: "_processRequest", + value: function _processRequest() {// eslint-disable-line class-methods-use-this + // Don't attempt to send out stanzas + } + }, { + key: "sendIQ", + value: function sendIQ(iq, callback, errback) { + var _iq$tree, _iq$tree2, _iq; + iq = (_iq$tree = (_iq$tree2 = (_iq = iq).tree) === null || _iq$tree2 === void 0 ? void 0 : _iq$tree2.call(_iq)) !== null && _iq$tree !== void 0 ? _iq$tree : iq; + this.IQ_stanzas.push(iq); + var id = _get(connection_getPrototypeOf(MockConnection.prototype), "sendIQ", this).call(this, iq, callback, errback); + this.IQ_ids.push(id); + return id; + } + }, { + key: "send", + value: function send(stanza) { + var _stanza$tree, _stanza$tree2, _stanza; + stanza = (_stanza$tree = (_stanza$tree2 = (_stanza = stanza).tree) === null || _stanza$tree2 === void 0 ? void 0 : _stanza$tree2.call(_stanza)) !== null && _stanza$tree !== void 0 ? _stanza$tree : stanza; + this.sent_stanzas.push(stanza); + return _get(connection_getPrototypeOf(MockConnection.prototype), "send", this).call(this, stanza); + } + }, { + key: "bind", + value: function () { + var _bind2 = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee9() { + return connection_regeneratorRuntime().wrap(function _callee9$(_context9) { + while (1) switch (_context9.prev = _context9.next) { + case 0: + _context9.next = 2; + return shared_api.trigger('beforeResourceBinding', { + 'synchronous': true + }); + case 2: + this.authenticated = true; + if (!shared_converse.no_connection_on_bind) { + this._changeConnectStatus(external_strophe_namespaceObject.Strophe.Status.CONNECTED); + } + case 4: + case "end": + return _context9.stop(); + } + }, _callee9, this); + })); + function bind() { + return _bind2.apply(this, arguments); + } + return bind; + }() + }]); + return MockConnection; +}(Connection); +;// CONCATENATED MODULE: ./src/headless/utils/init.js +function init_typeof(obj) { "@babel/helpers - typeof"; - return localforage_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return init_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, localforage_typeof(obj); + }, init_typeof(obj); } -function localforage_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); +function init_regeneratorRuntime() { + "use strict"; + + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + init_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; } -} -function localforage_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, localforage_toPropertyKey(descriptor.key), descriptor); + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; } -} -function localforage_createClass(Constructor, protoProps, staticProps) { - if (protoProps) localforage_defineProperties(Constructor.prototype, protoProps); - if (staticProps) localforage_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function localforage_toPropertyKey(arg) { - var key = localforage_toPrimitive(arg, "string"); - return localforage_typeof(key) === "symbol" ? key : String(key); -} -function localforage_toPrimitive(input, hint) { - if (localforage_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (localforage_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; } - return (hint === "string" ? String : Number)(input); -} - - - - - - - - - - -// Drivers are stored here when `defineDriver()` is called. -// They are shared across all instances of localForage. -var DefinedDrivers = {}; -var DriverSupport = {}; -var DefaultDrivers = { - INDEXEDDB: indexeddb, - WEBSQL: websql, - LOCALSTORAGE: localstorage -}; -var DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver]; -var OptionalDriverMethods = ['dropInstance']; -var LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods); -var DefaultConfig = { - description: '', - driver: DefaultDriverOrder.slice(), - name: 'localforage', - // Default DB size is _JUST UNDER_ 5MB, as it's the highest size - // we can use without a prompt. - size: 4980736, - storeName: 'keyvaluepairs', - version: 1.0 -}; -function callWhenReady(localForageInstance, libraryMethod) { - localForageInstance[libraryMethod] = function () { - var _args = arguments; - return localForageInstance.ready().then(function () { - return localForageInstance[libraryMethod].apply(localForageInstance, _args); + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); }); - }; -} -function extend() { - for (var i = 1; i < arguments.length; i++) { - var arg = arguments[i]; - if (arg) { - for (var key in arg) { - if (arg.hasOwnProperty(key)) { - if (utils_isArray(arg[key])) { - arguments[0][key] = arg[key].slice(); - } else { - arguments[0][key] = arg[key]; - } - } + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == init_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); } + reject(record.arg); } - } - return arguments[0]; -} -var LocalForage = /*#__PURE__*/function () { - function LocalForage(options) { - localforage_classCallCheck(this, LocalForage); - for (var driverTypeKey in DefaultDrivers) { - if (DefaultDrivers.hasOwnProperty(driverTypeKey)) { - var driver = DefaultDrivers[driverTypeKey]; - var driverName = driver._driver; - this[driverTypeKey] = driverName; - if (!DefinedDrivers[driverName]) { - // we don't need to wait for the promise, - // since the default drivers can be defined - // in a blocking manner - this.defineDriver(driver); + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); } + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } - } - this._defaultConfig = extend({}, DefaultConfig); - this._config = extend({}, this._defaultConfig, options); - this._driverSet = null; - this._initDriver = null; - this._ready = false; - this._dbInfo = null; - this._wrapLibraryMethodsWithReady(); - this.setDriver(this._config.driver).catch(function () {}); + }); } - - // Set any config values for localForage; can be called anytime before - // the first API call (e.g. `getItem`, `setItem`). - // We loop through options so we don't overwrite existing config - // values. - localforage_createClass(LocalForage, [{ - key: "config", - value: function config(options) { - // If the options argument is an object, we use it to set values. - // Otherwise, we return either a specified config value or all - // config values. - if (localforage_typeof(options) === 'object') { - // If localforage is ready and fully initialized, we can't set - // any new configuration values. Instead, we return an error. - if (this._ready) { - return new Error("Can't call config() after localforage " + 'has been used.'); - } - for (var i in options) { - if (i === 'storeName') { - options[i] = options[i].replace(/\W/g, '_'); - } - if (i === 'version' && typeof options[i] !== 'number') { - return new Error('Database version must be a number.'); + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; } - this._config[i] = options[i]; } - - // after all config options are set and - // the driver option is used, try setting it - if ('driver' in options && options.driver) { - return this.setDriver(this._config.driver); + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; } - return true; - } else if (typeof options === 'string') { - return this._config[options]; - } else { - return this._config; + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } - } - - // Used to define a custom driver, shared across all instances of - // localForage. - }, { - key: "defineDriver", - value: function defineDriver(driverObject, callback, errorCallback) { - var promise = new utils_promise(function (resolve, reject) { - try { - var driverName = driverObject._driver; - var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver'); - - // A driver name should be defined and not overlap with the - // library-defined, default drivers. - if (!driverObject._driver) { - reject(complianceError); - return; - } - var driverMethods = LibraryMethods.concat('_initStorage'); - for (var i = 0, len = driverMethods.length; i < len; i++) { - var driverMethodName = driverMethods[i]; - - // when the property is there, - // it should be a method even when optional - var isRequired = !utils_includes(OptionalDriverMethods, driverMethodName); - if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') { - reject(complianceError); - return; - } - } - var configureMissingMethods = function configureMissingMethods() { - var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) { - return function () { - var error = new Error("Method ".concat(methodName, " is not implemented by the current driver")); - var promise = utils_promise.reject(error); - utils_executeCallback(promise, arguments[arguments.length - 1]); - return promise; - }; - }; - for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) { - var optionalDriverMethod = OptionalDriverMethods[_i]; - if (!driverObject[optionalDriverMethod]) { - driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod); - } - } - }; - configureMissingMethods(); - var setDriverSupport = function setDriverSupport(support) { - if (DefinedDrivers[driverName]) { - console.info("Redefining LocalForage driver: ".concat(driverName)); - } - DefinedDrivers[driverName] = driverObject; - DriverSupport[driverName] = support; - // don't use a then, so that we can define - // drivers that have simple _support methods - // in a blocking manner - resolve(); + }; + } + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); + } + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; }; - if ('_support' in driverObject) { - if (driverObject._support && typeof driverObject._support === 'function') { - driverObject._support().then(setDriverSupport, reject); - } else { - setDriverSupport(!!driverObject._support); - } + return next.next = next; + } + } + return { + next: doneResult + }; + } + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { - setDriverSupport(true); + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } - } catch (e) { - reject(e); - } - }); - utils_executeTwoCallbacks(promise, callback, errorCallback); - return promise; - } - }, { - key: "driver", - value: function driver() { - return this._driver || null; - } - }, { - key: "getDriver", - value: function getDriver(driverName, callback, errorCallback) { - var getDriverPromise = DefinedDrivers[driverName] ? utils_promise.resolve(DefinedDrivers[driverName]) : utils_promise.reject(new Error('Driver not found.')); - utils_executeTwoCallbacks(getDriverPromise, callback, errorCallback); - return getDriverPromise; - } - }, { - key: "getSerializer", - value: function getSerializer(callback) { - var serializerPromise = utils_promise.resolve(serializer); - utils_executeTwoCallbacks(serializerPromise, callback); - return serializerPromise; - } - }, { - key: "ready", - value: function ready(callback) { - var self = this; - var promise = self._driverSet.then(function () { - if (self._ready === null) { - self._ready = self._initDriver(); } - return self._ready; - }); - utils_executeTwoCallbacks(promise, callback, callback); - return promise; - } - }, { - key: "setDriver", - value: function setDriver(drivers, callback, errorCallback) { - var self = this; - if (!utils_isArray(drivers)) { - drivers = [drivers]; } - var supportedDrivers = this._getSupportedDrivers(drivers); - function setDriverToConfig() { - self._config.driver = self.driver(); + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } } - function extendSelfWithDriver(driver) { - self._extend(driver); - setDriverToConfig(); - self._ready = self._initStorage(self._config); - return self._ready; + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } - function initDriver(supportedDrivers) { - return function () { - var currentDriverIndex = 0; - function driverPromiseLoop() { - while (currentDriverIndex < supportedDrivers.length) { - var driverName = supportedDrivers[currentDriverIndex]; - currentDriverIndex++; - self._dbInfo = null; - self._ready = null; - return self.getDriver(driverName).then(extendSelfWithDriver).catch(driverPromiseLoop); - } - setDriverToConfig(); - var error = new Error('No available storage method found.'); - self._driverSet = utils_promise.reject(error); - return self._driverSet; + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); } - return driverPromiseLoop(); - }; - } - - // There might be a driver initialization in progress - // so wait for it to finish in order to avoid a possible - // race condition to set _dbInfo - var oldDriverSetDone = this._driverSet !== null ? this._driverSet.catch(function () { - return utils_promise.resolve(); - }) : utils_promise.resolve(); - this._driverSet = oldDriverSetDone.then(function () { - var driverName = supportedDrivers[0]; - self._dbInfo = null; - self._ready = null; - return self.getDriver(driverName).then(function (driver) { - self._driver = driver._driver; - setDriverToConfig(); - self._wrapLibraryMethodsWithReady(); - self._initDriver = initDriver(supportedDrivers); - }); - }).catch(function () { - setDriverToConfig(); - var error = new Error('No available storage method found.'); - self._driverSet = utils_promise.reject(error); - return self._driverSet; - }); - utils_executeTwoCallbacks(this._driverSet, callback, errorCallback); - return this._driverSet; - } - }, { - key: "supports", - value: function supports(driverName) { - return !!DriverSupport[driverName]; - } - }, { - key: "_extend", - value: function _extend(libraryMethodsAndProperties) { - extend(this, libraryMethodsAndProperties); - } - }, { - key: "_getSupportedDrivers", - value: function _getSupportedDrivers(drivers) { - var supportedDrivers = []; - for (var i = 0, len = drivers.length; i < len; i++) { - var driverName = drivers[i]; - if (this.supports(driverName)) { - supportedDrivers.push(driverName); + return thrown; } } - return supportedDrivers; - } - }, { - key: "_wrapLibraryMethodsWithReady", - value: function _wrapLibraryMethodsWithReady() { - // Add a stub for each driver API method that delays the call to the - // corresponding driver method until localForage is ready. These stubs - // will be replaced by the driver methods as soon as the driver is - // loaded, so there is no performance impact. - for (var i = 0, len = LibraryMethods.length; i < len; i++) { - callWhenReady(this, LibraryMethods[i]); - } - } - }, { - key: "createInstance", - value: function createInstance(options) { - return new LocalForage(options); + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } - }]); - return LocalForage; -}(); // The actual localForage object that we expose as a module or via a -// global. It's extended by pulling in one of our other libraries. -/* harmony default export */ const localforage = (new LocalForage()); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_assignMergeValue.js - - - -/** - * This function is like `assignValue` except that it doesn't assign - * `undefined` values. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ -function assignMergeValue(object, key, value) { - if (value !== undefined && !lodash_es_eq(object[key], value) || value === undefined && !(key in object)) { - _baseAssignValue(object, key, value); - } -} -/* harmony default export */ const _assignMergeValue = (assignMergeValue); -;// CONCATENATED MODULE: ./node_modules/lodash-es/isArrayLikeObject.js - - - -/** - * This method is like `_.isArrayLike` except that it also checks if `value` - * is an object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array-like object, - * else `false`. - * @example - * - * _.isArrayLikeObject([1, 2, 3]); - * // => true - * - * _.isArrayLikeObject(document.body.children); - * // => true - * - * _.isArrayLikeObject('abc'); - * // => false - * - * _.isArrayLikeObject(_.noop); - * // => false - */ -function isArrayLikeObject(value) { - return lodash_es_isObjectLike(value) && lodash_es_isArrayLike(value); + }, exports; } -/* harmony default export */ const lodash_es_isArrayLikeObject = (isArrayLikeObject); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_safeGet.js -/** - * Gets the value at `key`, unless `key` is "__proto__" or "constructor". - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ -function safeGet(object, key) { - if (key === 'constructor' && typeof object[key] === 'function') { +function init_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); return; } - if (key == '__proto__') { - return; + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); } - return object[key]; } -/* harmony default export */ const _safeGet = (safeGet); -;// CONCATENATED MODULE: ./node_modules/lodash-es/toPlainObject.js - - - -/** - * Converts `value` to a plain object flattening inherited enumerable string - * keyed properties of `value` to own properties of the plain object. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {Object} Returns the converted plain object. - * @example - * - * function Foo() { - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.assign({ 'a': 1 }, new Foo); - * // => { 'a': 1, 'b': 2 } - * - * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); - * // => { 'a': 1, 'b': 2, 'c': 3 } - */ -function toPlainObject(value) { - return _copyObject(value, lodash_es_keysIn(value)); +function init_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + init_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + init_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); + }; } -/* harmony default export */ const lodash_es_toPlainObject = (toPlainObject); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseMergeDeep.js - @@ -25326,1071 +23866,767 @@ function toPlainObject(value) { - - - -/** - * A specialized version of `baseMerge` for arrays and objects which performs - * deep merges and tracks traversed objects enabling objects with circular - * references to be merged. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {string} key The key of the value to merge. - * @param {number} srcIndex The index of `source`. - * @param {Function} mergeFunc The function to merge values. - * @param {Function} [customizer] The function to customize assigned values. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - */ -function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { - var objValue = _safeGet(object, key), - srcValue = _safeGet(source, key), - stacked = stack.get(srcValue); - if (stacked) { - _assignMergeValue(object, key, stacked); - return; +function setUpXMLLogging() { + var lmap = {}; + lmap[external_strophe_namespaceObject.Strophe.LogLevel.DEBUG] = 'debug'; + lmap[external_strophe_namespaceObject.Strophe.LogLevel.INFO] = 'info'; + lmap[external_strophe_namespaceObject.Strophe.LogLevel.WARN] = 'warn'; + lmap[external_strophe_namespaceObject.Strophe.LogLevel.ERROR] = 'error'; + lmap[external_strophe_namespaceObject.Strophe.LogLevel.FATAL] = 'fatal'; + external_strophe_namespaceObject.Strophe.log = function (level, msg) { + return log.log(msg, lmap[level]); + }; + external_strophe_namespaceObject.Strophe.error = function (msg) { + return log.error(msg); + }; + shared_converse.connection.xmlInput = function (body) { + return log.debug(body.outerHTML, 'color: darkgoldenrod'); + }; + shared_converse.connection.xmlOutput = function (body) { + return log.debug(body.outerHTML, 'color: darkcyan'); + }; +} +function getConnectionServiceURL() { + var api = shared_converse.api; + if (('WebSocket' in window || 'MozWebSocket' in window) && api.settings.get("websocket_url")) { + return api.settings.get('websocket_url'); + } else if (api.settings.get('bosh_service_url')) { + return api.settings.get('bosh_service_url'); } - var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined; - var isCommon = newValue === undefined; - if (isCommon) { - var isArr = lodash_es_isArray(srcValue), - isBuff = !isArr && lodash_es_isBuffer(srcValue), - isTyped = !isArr && !isBuff && lodash_es_isTypedArray(srcValue); - newValue = srcValue; - if (isArr || isBuff || isTyped) { - if (lodash_es_isArray(objValue)) { - newValue = objValue; - } else if (lodash_es_isArrayLikeObject(objValue)) { - newValue = _copyArray(objValue); - } else if (isBuff) { - isCommon = false; - newValue = _cloneBuffer(srcValue, true); - } else if (isTyped) { - isCommon = false; - newValue = _cloneTypedArray(srcValue, true); - } else { - newValue = []; - } - } else if (lodash_es_isPlainObject(srcValue) || lodash_es_isArguments(srcValue)) { - newValue = objValue; - if (lodash_es_isArguments(objValue)) { - newValue = lodash_es_toPlainObject(objValue); - } else if (!lodash_es_isObject(objValue) || lodash_es_isFunction(objValue)) { - newValue = _initCloneObject(srcValue); - } - } else { - isCommon = false; + return ''; +} +function initConnection() { + var api = shared_converse.api; + if (!api.settings.get('bosh_service_url')) { + if (api.settings.get("authentication") === PREBIND) { + throw new Error("authentication is set to 'prebind' but we don't have a BOSH connection"); } } - if (isCommon) { - // Recursively merge objects and arrays (susceptible to call stack limits). - stack.set(srcValue, newValue); - mergeFunc(newValue, srcValue, srcIndex, customizer, stack); - stack['delete'](srcValue); - } - _assignMergeValue(object, key, newValue); + var XMPPConnection = shared_converse.isTestEnv() ? MockConnection : Connection; + shared_converse.connection = new XMPPConnection(getConnectionServiceURL(), Object.assign(shared_converse.default_connection_options, api.settings.get("connection_options"), { + 'keepalive': api.settings.get("keepalive") + })); + setUpXMLLogging(); + /** + * Triggered once the `Connection` constructor has been initialized, which + * will be responsible for managing the connection to the XMPP server. + * + * @event _converse#connectionInitialized + */ + api.trigger('connectionInitialized'); } -/* harmony default export */ const _baseMergeDeep = (baseMergeDeep); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseMerge.js - - - - - - - +function initPlugins(_converse) { + // If initialize gets called a second time (e.g. during tests), then we + // need to re-apply all plugins (for a new converse instance), and we + // therefore need to clear this array that prevents plugins from being + // initialized twice. + // If initialize is called for the first time, then this array is empty + // in any case. + _converse.pluggable.initialized_plugins = []; + var whitelist = CORE_PLUGINS.concat(_converse.api.settings.get("whitelisted_plugins")); + if (_converse.api.settings.get("singleton")) { + ['converse-bookmarks', 'converse-controlbox', 'converse-headline', 'converse-register'].forEach(function (name) { + return _converse.api.settings.get("blacklisted_plugins").push(name); + }); + } + _converse.pluggable.initializePlugins({ + _converse: _converse + }, whitelist, _converse.api.settings.get("blacklisted_plugins")); -/** - * The base implementation of `_.merge` without support for multiple sources. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {number} srcIndex The index of `source`. - * @param {Function} [customizer] The function to customize merged values. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - */ -function baseMerge(object, source, srcIndex, customizer, stack) { - if (object === source) { + /** + * Triggered once all plugins have been initialized. This is a useful event if you want to + * register event handlers but would like your own handlers to be overridable by + * plugins. In that case, you need to first wait until all plugins have been + * initialized, so that their overrides are active. One example where this is used + * is in [converse-notifications.js](https://github.com/jcbrand/converse.js/blob/master/src/converse-notification.js)`. + * + * Also available as an [ES2015 Promise](http://es6-features.org/#PromiseUsage) + * which can be listened to with `_converse.api.waitUntil`. + * + * @event _converse#pluginsInitialized + * @memberOf _converse + * @example _converse.api.listen.on('pluginsInitialized', () => { ... }); + */ + _converse.api.trigger('pluginsInitialized'); +} +function initClientConfig(_x) { + return _initClientConfig.apply(this, arguments); +} +function _initClientConfig() { + _initClientConfig = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee2(_converse) { + var id; + return init_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + /* The client config refers to configuration of the client which is + * independent of any particular user. + * What this means is that config values need to persist across + * user sessions. + */ + id = 'converse.client-config'; + _converse.config = new Model({ + id: id, + 'trusted': true + }); + _converse.config.browserStorage = createStore(id, "session"); + _context2.next = 5; + return new Promise(function (r) { + return _converse.config.fetch({ + 'success': r, + 'error': r + }); + }); + case 5: + /** + * Triggered once the XMPP-client configuration has been initialized. + * The client configuration is independent of any particular and its values + * persist across user sessions. + * + * @event _converse#clientConfigInitialized + * @example + * _converse.api.listen.on('clientConfigInitialized', () => { ... }); + */ + _converse.api.trigger('clientConfigInitialized'); + case 6: + case "end": + return _context2.stop(); + } + }, _callee2); + })); + return _initClientConfig.apply(this, arguments); +} +function initSessionStorage(_x2) { + return _initSessionStorage.apply(this, arguments); +} +function _initSessionStorage() { + _initSessionStorage = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee3(_converse) { + return init_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return storage.sessionStorageInitialized; + case 2: + _converse.storage = { + 'session': storage.localForage.createInstance({ + 'name': _converse.isTestEnv() ? 'converse-test-session' : 'converse-session', + 'description': 'sessionStorage instance', + 'driver': ['sessionStorageWrapper'] + }) + }; + case 3: + case "end": + return _context3.stop(); + } + }, _callee3); + })); + return _initSessionStorage.apply(this, arguments); +} +function initPersistentStorage(_converse, store_name) { + if (_converse.api.settings.get('persistent_store') === 'sessionStorage') { + return; + } else if (_converse.api.settings.get("persistent_store") === 'BrowserExtLocal') { + storage.localForage.defineDriver(local/* default */.Z).then(function () { + return storage.localForage.setDriver('webExtensionLocalStorage'); + }); + _converse.storage['persistent'] = storage.localForage; + return; + } else if (_converse.api.settings.get("persistent_store") === 'BrowserExtSync') { + storage.localForage.defineDriver(localforage_webextensionstorage_driver_sync/* default */.Z).then(function () { + return storage.localForage.setDriver('webExtensionSyncStorage'); + }); + _converse.storage['persistent'] = storage.localForage; return; } - _baseFor(source, function (srcValue, key) { - stack || (stack = new _Stack()); - if (lodash_es_isObject(srcValue)) { - _baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); - } else { - var newValue = customizer ? customizer(_safeGet(object, key), srcValue, key + '', object, source, stack) : undefined; - if (newValue === undefined) { - newValue = srcValue; - } - _assignMergeValue(object, key, newValue); - } - }, lodash_es_keysIn); + var config = { + 'name': _converse.isTestEnv() ? 'converse-test-persistent' : 'converse-persistent', + 'storeName': store_name + }; + if (_converse.api.settings.get("persistent_store") === 'localStorage') { + config['description'] = 'localStorage instance'; + config['driver'] = [storage.localForage.LOCALSTORAGE]; + } else if (_converse.api.settings.get("persistent_store") === 'IndexedDB') { + config['description'] = 'indexedDB instance'; + config['driver'] = [storage.localForage.INDEXEDDB]; + } + _converse.storage['persistent'] = storage.localForage.createInstance(config); +} +function saveJIDtoSession(_converse, jid) { + jid = _converse.session.get('jid') || jid; + if (_converse.api.settings.get("authentication") !== ANONYMOUS && !external_strophe_namespaceObject.Strophe.getResourceFromJid(jid)) { + jid = jid.toLowerCase() + Connection.generateResource(); + } + _converse.jid = jid; + _converse.bare_jid = external_strophe_namespaceObject.Strophe.getBareJidFromJid(jid); + _converse.resource = external_strophe_namespaceObject.Strophe.getResourceFromJid(jid); + _converse.domain = external_strophe_namespaceObject.Strophe.getDomainFromJid(jid); + _converse.session.save({ + 'jid': jid, + 'bare_jid': _converse.bare_jid, + 'resource': _converse.resource, + 'domain': _converse.domain, + // We use the `active` flag to determine whether we should use the values from sessionStorage. + // When "cloning" a tab (e.g. via middle-click), the `active` flag will be set and we'll create + // a new empty user session, otherwise it'll be false and we can re-use the user session. + // When the tab is reloaded, the `active` flag is set to `false`. + 'active': true + }); + // Set JID on the connection object so that when we call `connection.bind` + // the new resource is found by Strophe.js and sent to the XMPP server. + _converse.connection.jid = jid; } -/* harmony default export */ const _baseMerge = (baseMerge); -;// CONCATENATED MODULE: ./node_modules/lodash-es/merge.js - - - -/** - * This method is like `_.assign` except that it recursively merges own and - * inherited enumerable string keyed properties of source objects into the - * destination object. Source properties that resolve to `undefined` are - * skipped if a destination value exists. Array and plain object properties - * are merged recursively. Other objects and value types are overridden by - * assignment. Source objects are applied from left to right. Subsequent - * sources overwrite property assignments of previous sources. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @example - * - * var object = { - * 'a': [{ 'b': 2 }, { 'd': 4 }] - * }; - * - * var other = { - * 'a': [{ 'c': 3 }, { 'e': 5 }] - * }; - * - * _.merge(object, other); - * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } - */ -var merge = _createAssigner(function (object, source, srcIndex) { - _baseMerge(object, source, srcIndex); -}); -/* harmony default export */ const lodash_es_merge = (merge); -;// CONCATENATED MODULE: ./node_modules/lodash-es/mergeWith.js - - - -/** - * This method is like `_.merge` except that it accepts `customizer` which - * is invoked to produce the merged values of the destination and source - * properties. If `customizer` returns `undefined`, merging is handled by the - * method instead. The `customizer` is invoked with six arguments: - * (objValue, srcValue, key, object, source, stack). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} customizer The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * function customizer(objValue, srcValue) { - * if (_.isArray(objValue)) { - * return objValue.concat(srcValue); - * } - * } - * - * var object = { 'a': [1], 'b': [2] }; - * var other = { 'a': [3], 'b': [4] }; - * - * _.mergeWith(object, other, customizer); - * // => { 'a': [1, 3], 'b': [2, 4] } - */ -var mergeWith = _createAssigner(function (object, source, srcIndex, customizer) { - _baseMerge(object, source, srcIndex, customizer); -}); -/* harmony default export */ const lodash_es_mergeWith = (mergeWith); -;// CONCATENATED MODULE: ./node_modules/lodash-es/now.js - /** - * Gets the timestamp of the number of milliseconds that have elapsed since - * the Unix epoch (1 January 1970 00:00:00 UTC). + * Stores the passed in JID for the current user, potentially creating a + * resource if the JID is bare. * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Date - * @returns {number} Returns the timestamp. - * @example + * Given that we can only create an XMPP connection if we know the domain of + * the server connect to and we only know this once we know the JID, we also + * call {@link initConnection } (if necessary) to make sure that the + * connection is set up. * - * _.defer(function(stamp) { - * console.log(_.now() - stamp); - * }, _.now()); - * // => Logs the number of milliseconds it took for the deferred invocation. + * @emits _converse#setUserJID + * @params { String } jid */ -var now = function now() { - return _root.Date.now(); -}; -/* harmony default export */ const lodash_es_now = (now); -;// CONCATENATED MODULE: ./node_modules/mergebounce/mergebounce.js - - - - - - +function setUserJID(_x3) { + return _setUserJID.apply(this, arguments); +} +function _setUserJID() { + _setUserJID = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee4(jid) { + return init_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return initSession(shared_converse, jid); + case 2: + /** + * Triggered whenever the user's JID has been updated + * @event _converse#setUserJID + */ + shared_converse.api.trigger('setUserJID'); + return _context4.abrupt("return", jid); + case 4: + case "end": + return _context4.stop(); + } + }, _callee4); + })); + return _setUserJID.apply(this, arguments); +} +function initSession(_x4, _x5) { + return _initSession.apply(this, arguments); +} +function _initSession() { + _initSession = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee5(_converse, jid) { + var _converse$session; + var is_shared_session, bare_jid, id; + return init_regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + is_shared_session = _converse.api.settings.get('connection_options').worker; + bare_jid = external_strophe_namespaceObject.Strophe.getBareJidFromJid(jid).toLowerCase(); + id = "converse.session-".concat(bare_jid); + if (!(((_converse$session = _converse.session) === null || _converse$session === void 0 ? void 0 : _converse$session.get('id')) !== id)) { + _context5.next = 15; + break; + } + initPersistentStorage(_converse, bare_jid); + _converse.session = new Model({ + id: id + }); + initStorage(_converse.session, id, is_shared_session ? "persistent" : "session"); + _context5.next = 9; + return new Promise(function (r) { + return _converse.session.fetch({ + 'success': r, + 'error': r + }); + }); + case 9: + if (!is_shared_session && _converse.session.get('active')) { + // If the `active` flag is set, it means this tab was cloned from + // another (e.g. via middle-click), and its session data was copied over. + _converse.session.clear(); + _converse.session.save({ + id: id + }); + } + saveJIDtoSession(_converse, jid); -/** Error message constants. */ -var mergebounce_FUNC_ERROR_TEXT = 'Expected a function'; + // Set `active` flag to false when the tab gets reloaded + window.addEventListener(_converse.unloadevent, function () { + var _converse$session2; + return (_converse$session2 = _converse.session) === null || _converse$session2 === void 0 ? void 0 : _converse$session2.save('active', false); + }); -/* Built-in method references for those with the same name as other `lodash` methods. */ -var mergebounce_nativeMax = Math.max; -var nativeMin = Math.min; + /** + * Triggered once the user's session has been initialized. The session is a + * cache which stores information about the user's current session. + * @event _converse#userSessionInitialized + * @memberOf _converse + */ + _converse.api.trigger('userSessionInitialized'); + _context5.next = 16; + break; + case 15: + saveJIDtoSession(_converse, jid); + case 16: + case "end": + return _context5.stop(); + } + }, _callee5); + })); + return _initSession.apply(this, arguments); +} +function registerGlobalEventHandlers(_converse) { + document.addEventListener("visibilitychange", saveWindowState); + saveWindowState({ + 'type': document.hidden ? "blur" : "focus" + }); // Set initial state + /** + * Called once Converse has registered its global event handlers + * (for events such as window resize or unload). + * Plugins can listen to this event as cue to register their own + * global event handlers. + * @event _converse#registeredGlobalEventHandlers + * @example _converse.api.listen.on('registeredGlobalEventHandlers', () => { ... }); + */ + _converse.api.trigger('registeredGlobalEventHandlers'); +} +function unregisterGlobalEventHandlers(_converse) { + var api = _converse.api; + document.removeEventListener("visibilitychange", saveWindowState); + api.trigger('unregisteredGlobalEventHandlers'); +} -/** - * Creates a debounced function that delays invoking `func` until after `wait` - * milliseconds have elapsed since the last time the debounced function was - * invoked. The debounced function comes with a `cancel` method to cancel - * delayed `func` invocations and a `flush` method to immediately invoke them. - * - * This function differs from lodash's debounce by merging all passed objects - * before passing them to the final invoked function. - * - * Because of this, invoking can only happen on the trailing edge, since - * passed-in data would be discarded if invoking happened on the leading edge. - * - * If `wait` is `0`, `func` invocation is deferred until to the next tick, - * similar to `setTimeout` with a timeout of `0`. - * - * @static - * @category Function - * @param {Function} func The function to mergebounce. - * @param {number} [wait=0] The number of milliseconds to delay. - * @param {Object} [options={}] The options object. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.concatArrays=false] - * By default arrays will be treated as objects when being merged. When - * merging two arrays, the values in the 2nd arrray will replace the - * corresponding values (i.e. those with the same indexes) in the first array. - * When `concatArrays` is set to `true`, arrays will be concatenated instead. - * @param {boolean} [options.dedupeArrays=false] - * This option is similar to `concatArrays`, except that the concatenated - * array will also be deduplicated. Thus any entries that are concatenated to the - * existing array, which are already contained in the existing array, will - * first be removed. - * @param {boolean} [options.promise=false] - * By default, when calling a merge-debounced function that doesn't execute - * immediately, you'll receive the result from its previous execution, or - * `undefined` if it has never executed before. By setting the `promise` - * option to `true`, a promise will be returned instead of the previous - * execution result when the function is debounced. The promise will resolve - * with the result of the next execution, as soon as it happens. - * @returns {Function} Returns the new debounced function. - * @example - * - * // Avoid costly calculations while the window size is in flux. - * window.addEventListener('resize', mergebounce(calculateLayout, 150)); - * - * // Invoke `sendMail` when clicked, debouncing subsequent calls. - * element.addEventListner('click', mergebounce(sendMail, 300)); - * - * // Ensure `batchLog` is invoked once after 1 second of debounced calls. - * const mergebounced = mergebounce(batchLog, 250, { 'maxWait': 1000 }); - * const source = new EventSource('/stream'); - * jQuery(source).on('message', mergebounced); - * - * // Cancel the trailing debounced invocation. - * window.addEventListener('popstate', mergebounced.cancel); - */ -function mergebounce(func, wait) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - var lastArgs, - lastThis, - maxWait, - result, - timerId, - lastCallTime, - lastInvokeTime = 0, - maxing = false; - var promise = options.promise ? getOpenPromise() : null; - if (typeof func != 'function') { - throw new TypeError(mergebounce_FUNC_ERROR_TEXT); - } - wait = lodash_es_toNumber(wait) || 0; - if (lodash_es_isObject(options)) { - maxing = 'maxWait' in options; - maxWait = maxing ? mergebounce_nativeMax(lodash_es_toNumber(options.maxWait) || 0, wait) : maxWait; - } - function invokeFunc(time) { - var args = lastArgs; - var thisArg = lastThis; - var existingPromise = promise; - lastArgs = lastThis = undefined; - lastInvokeTime = time; - result = func.apply(thisArg, args); - if (options.promise) { - existingPromise.resolve(result); - promise = getOpenPromise(); - } - return options.promise ? existingPromise : result; - } - function leadingEdge(time) { - // Reset any `maxWait` timer. - lastInvokeTime = time; - // Start the timer for the trailing edge. - timerId = setTimeout(timerExpired, wait); - return options.promise ? promise : result; - } - function remainingWait(time) { - var timeSinceLastCall = time - lastCallTime; - var timeSinceLastInvoke = time - lastInvokeTime; - var timeWaiting = wait - timeSinceLastCall; - return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; - } - function shouldInvoke(time) { - var timeSinceLastCall = time - lastCallTime; - var timeSinceLastInvoke = time - lastInvokeTime; - - // Either this is the first call, activity has stopped and we're at the - // trailing edge, the system time has gone backwards and we're treating - // it as the trailing edge, or we've hit the `maxWait` limit. - return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; - } - function timerExpired() { - var time = lodash_es_now(); - if (shouldInvoke(time)) { - return trailingEdge(time); - } - // Restart the timer. - timerId = setTimeout(timerExpired, remainingWait(time)); - } - function trailingEdge(time) { - timerId = undefined; - - // Only invoke if we have `lastArgs` which means `func` has been - // debounced at least once. - if (lastArgs) { - return invokeFunc(time); - } - lastArgs = lastThis = undefined; - return options.promise ? promise : result; - } - function cancel() { - if (timerId !== undefined) { - clearTimeout(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = undefined; - } - function flush() { - return timerId === undefined ? result : trailingEdge(lodash_es_now()); - } - function concatArrays(objValue, srcValue) { - if (Array.isArray(objValue) && Array.isArray(srcValue)) { - if (options !== null && options !== void 0 && options.dedupeArrays) { - return objValue.concat(srcValue.filter(function (i) { - return objValue.indexOf(i) === -1; - })); - } else { - return objValue.concat(srcValue); - } - } - } - function mergeArguments(args) { - var _lastArgs; - if ((_lastArgs = lastArgs) !== null && _lastArgs !== void 0 && _lastArgs.length) { - if (!args.length) { - return lastArgs; - } - if (options !== null && options !== void 0 && options.concatArrays || options !== null && options !== void 0 && options.dedupeArrays) { - return lodash_es_mergeWith(lastArgs, args, concatArrays); - } else { - return lodash_es_merge(lastArgs, args); - } - } else { - return args || []; - } - } - function debounced() { - var time = lodash_es_now(); - var isInvoking = shouldInvoke(time); - lastArgs = mergeArguments(Array.from(arguments)); - lastThis = this; - lastCallTime = time; - if (isInvoking) { - if (timerId === undefined) { - return leadingEdge(lastCallTime); - } - if (maxing) { - // Handle invocations in a tight loop. - clearTimeout(timerId); - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === undefined) { - timerId = setTimeout(timerExpired, wait); - } - return options.promise ? promise : result; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; -} -/* harmony default export */ const mergebounce_mergebounce = (mergebounce); -;// CONCATENATED MODULE: ./node_modules/@converse/skeletor/src/drivers/sessionStorage.js -function sessionStorage_typeof(obj) { - "@babel/helpers - typeof"; - - return sessionStorage_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, sessionStorage_typeof(obj); +// Make sure everything is reset in case this is a subsequent call to +// converse.initialize (happens during tests). +function cleanup(_x6) { + return _cleanup.apply(this, arguments); } -function sessionStorage_regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - sessionStorage_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; - } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); - }); - }); - } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == sessionStorage_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - reject(record.arg); - } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); +function _cleanup() { + _cleanup = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee6(_converse) { + var _converse$connection; + var api; + return init_regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + api = _converse.api; + _context6.next = 3; + return api.trigger('cleanup', { + 'synchronous': true }); - } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); - } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; + case 3: + _converse.router.history.stop(); + unregisterGlobalEventHandlers(_converse); + (_converse$connection = _converse.connection) === null || _converse$connection === void 0 ? void 0 : _converse$connection.reset(); + _converse.stopListening(); + _converse.off(); + if (_converse.promises['initialized'].isResolved) { + api.promises.add('initialized'); } - } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done - }; - } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); - } - }; - } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); - } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); - } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal", delete record.arg, entry.completion = record; - } - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); - } - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) return iteratorMethod.call(iterable); - if ("function" == typeof iterable.next) return iterable; - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; - return next.value = undefined, next.done = !0, next; - }; - return next.next = next; - } - } - return { - next: doneResult - }; - } - function doneResult() { - return { - value: undefined, - done: !0 - }; - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { - var ctor = "function" == typeof genFun && genFun.constructor; - return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); - }, exports.mark = function (genFun) { - return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; - }, exports.awrap = function (arg) { - return { - __await: arg - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - void 0 === PromiseImpl && (PromiseImpl = Promise); - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { - return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; + case 9: + case "end": + return _context6.stop(); } - return next.done = !0, next; + }, _callee6); + })); + return _cleanup.apply(this, arguments); +} +function fetchLoginCredentials() { + var _this = this; + var wait = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + return new Promise(lodash_es_debounce( /*#__PURE__*/function () { + var _ref = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee(resolve, reject) { + var xhr; + return init_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + xhr = new XMLHttpRequest(); + xhr.open('GET', shared_converse.api.settings.get("credentials_url"), true); + xhr.setRequestHeader('Accept', 'application/json, text/javascript'); + xhr.onload = function () { + if (xhr.status >= 200 && xhr.status < 400) { + var data = JSON.parse(xhr.responseText); + setUserJID(data.jid).then(function () { + resolve({ + jid: data.jid, + password: data.password + }); + }); + } else { + reject(new Error("".concat(xhr.status, ": ").concat(xhr.responseText))); + } + }; + xhr.onerror = reject; + /** + * *Hook* which allows modifying the server request + * @event _converse#beforeFetchLoginCredentials + */ + _context.next = 7; + return shared_converse.api.hook('beforeFetchLoginCredentials', _this, xhr); + case 7: + xhr = _context.sent; + xhr.send(); + case 9: + case "end": + return _context.stop(); + } + }, _callee); + })); + return function (_x7, _x8) { + return _ref.apply(this, arguments); }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; - } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + }(), wait)); +} +function getLoginCredentialsFromURL() { + return _getLoginCredentialsFromURL.apply(this, arguments); +} +function _getLoginCredentialsFromURL() { + _getLoginCredentialsFromURL = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee7() { + var credentials, wait; + return init_regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + wait = 0; + case 1: + if (credentials) { + _context7.next = 15; + break; } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; + _context7.prev = 2; + _context7.next = 5; + return fetchLoginCredentials(wait); + case 5: + credentials = _context7.sent; + _context7.next = 12; break; - } + case 8: + _context7.prev = 8; + _context7.t0 = _context7["catch"](2); + log.error('Could not fetch login credentials'); + log.error(_context7.t0); + case 12: + // If unsuccessful, we wait 2 seconds between subsequent attempts to + // fetch the credentials. + wait = 2000; + _context7.next = 1; + break; + case 15: + return _context7.abrupt("return", credentials); + case 16: + case "end": + return _context7.stop(); } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; - } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; - } - }, exports; + }, _callee7, null, [[2, 8]]); + })); + return _getLoginCredentialsFromURL.apply(this, arguments); } -function sessionStorage_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } +function getLoginCredentialsFromBrowser() { + return _getLoginCredentialsFromBrowser.apply(this, arguments); } -function sessionStorage_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - sessionStorage_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - sessionStorage_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); +function _getLoginCredentialsFromBrowser() { + _getLoginCredentialsFromBrowser = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee8() { + var jid, creds; + return init_regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { + case 0: + jid = localStorage.getItem('conversejs-session-jid'); + if (jid) { + _context8.next = 3; + break; + } + return _context8.abrupt("return", null); + case 3: + _context8.prev = 3; + _context8.next = 6; + return navigator.credentials.get({ + password: true + }); + case 6: + creds = _context8.sent; + if (!(creds && creds.type == 'password' && isValidJID(creds.id))) { + _context8.next = 11; + break; + } + _context8.next = 10; + return setUserJID(creds.id); + case 10: + return _context8.abrupt("return", { + 'jid': creds.id, + 'password': creds.password + }); + case 11: + _context8.next = 17; + break; + case 13: + _context8.prev = 13; + _context8.t0 = _context8["catch"](3); + log.error(_context8.t0); + return _context8.abrupt("return", null); + case 17: + case "end": + return _context8.stop(); } - _next(undefined); - }); - }; -} -// Copyright 2014 Mozilla -// Copyright 2015 Thodoris Greasidis -// Copyright 2018 JC Brand -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - - - - - -var sessionStorage_serialize = serializer["serialize"]; -var sessionStorage_deserialize = serializer["deserialize"]; -function isSessionStorageValid() { - // If the app is running inside a Google Chrome packaged webapp, or some - // other context where sessionStorage isn't available, we don't use - // sessionStorage. This feature detection is preferred over the old - // `if (window.chrome && window.chrome.runtime)` code. - // See: https://github.com/mozilla/localForage/issues/68 - try { - // If sessionStorage isn't available, we get outta here! - // This should be inside a try catch - if (sessionStorage && 'setItem' in sessionStorage) { - return true; - } - } catch (e) { - console.log(e); - } - return false; -} -function sessionStorage_getKeyPrefix(options, defaultConfig) { - var keyPrefix = options.name + '/'; - if (options.storeName !== defaultConfig.storeName) { - keyPrefix += options.storeName + '/'; - } - return keyPrefix; + }, _callee8, null, [[3, 13]]); + })); + return _getLoginCredentialsFromBrowser.apply(this, arguments); } -var dbInfo = { - 'serializer': { - 'serialize': sessionStorage_serialize, - 'deserialize': sessionStorage_deserialize - } -}; -function sessionStorage_initStorage(options) { - dbInfo.keyPrefix = sessionStorage_getKeyPrefix(options, this._defaultConfig); - if (options) { - for (var i in options) { - // eslint-disable-line guard-for-in - dbInfo[i] = options[i]; - } - } +function getLoginCredentialsFromSCRAMKeys() { + return _getLoginCredentialsFromSCRAMKeys.apply(this, arguments); } - -// Remove all keys from the datastore, effectively destroying all data in -// the app's key/value store! -function sessionStorage_clear(callback) { - var promise = this.ready().then(function () { - var keyPrefix = dbInfo.keyPrefix; - for (var i = sessionStorage.length - 1; i >= 0; i--) { - var _key = sessionStorage.key(i); - if (_key.indexOf(keyPrefix) === 0) { - sessionStorage.removeItem(_key); +function _getLoginCredentialsFromSCRAMKeys() { + _getLoginCredentialsFromSCRAMKeys = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee9() { + var jid, login_info, scram_keys; + return init_regeneratorRuntime().wrap(function _callee9$(_context9) { + while (1) switch (_context9.prev = _context9.next) { + case 0: + jid = localStorage.getItem('conversejs-session-jid'); + if (jid) { + _context9.next = 3; + break; + } + return _context9.abrupt("return", null); + case 3: + _context9.next = 5; + return setUserJID(jid); + case 5: + _context9.next = 7; + return savedLoginInfo(jid); + case 7: + login_info = _context9.sent; + scram_keys = login_info.get('scram_keys'); + return _context9.abrupt("return", scram_keys ? { + jid: jid, + 'password': scram_keys + } : null); + case 10: + case "end": + return _context9.stop(); } - } - }); - utils_executeCallback(promise, callback); - return promise; -} - -// Retrieve an item from the store. Unlike the original async_storage -// library in Gaia, we don't modify return values at all. If a key's value -// is `undefined`, we pass that value to the callback function. -function sessionStorage_getItem(key, callback) { - key = normalizeKey(key); - var promise = this.ready().then(function () { - var result = sessionStorage.getItem(dbInfo.keyPrefix + key); - // If a result was found, parse it from the serialized - // string into a JS object. If result isn't truthy, the key - // is likely undefined and we'll pass it straight to the - // callback. - if (result) { - result = dbInfo.serializer.deserialize(result); - } - return result; - }); - utils_executeCallback(promise, callback); - return promise; + }, _callee9); + })); + return _getLoginCredentialsFromSCRAMKeys.apply(this, arguments); } - -// Iterate over all items in the store. -function sessionStorage_iterate(iterator, callback) { - var self = this; - var promise = self.ready().then(function () { - var keyPrefix = dbInfo.keyPrefix; - var keyPrefixLength = keyPrefix.length; - var length = sessionStorage.length; - - // We use a dedicated iterator instead of the `i` variable below - // so other keys we fetch in sessionStorage aren't counted in - // the `iterationNumber` argument passed to the `iterate()` - // callback. - // - // See: github.com/mozilla/localForage/pull/435#discussion_r38061530 - var iterationNumber = 1; - for (var i = 0; i < length; i++) { - var _key2 = sessionStorage.key(i); - if (_key2.indexOf(keyPrefix) !== 0) { - continue; - } - var value = sessionStorage.getItem(_key2); - - // If a result was found, parse it from the serialized - // string into a JS object. If result isn't truthy, the - // key is likely undefined and we'll pass it straight - // to the iterator. - if (value) { - value = dbInfo.serializer.deserialize(value); - } - value = iterator(value, _key2.substring(keyPrefixLength), iterationNumber++); - if (value !== void 0) { - // eslint-disable-line no-void - return value; - } - } - }); - utils_executeCallback(promise, callback); - return promise; +function attemptNonPreboundSession(_x9, _x10) { + return _attemptNonPreboundSession.apply(this, arguments); } -// Same as sessionStorage's key() method, except takes a callback. -function sessionStorage_key(n, callback) { - var self = this; - var promise = self.ready().then(function () { - var result; - try { - result = sessionStorage.key(n); - } catch (error) { - result = null; - } - - // Remove the prefix from the key, if a key is found. - if (result) { - result = result.substring(dbInfo.keyPrefix.length); - } - return result; - }); - utils_executeCallback(promise, callback); - return promise; -} -function sessionStorage_keys(callback) { - var self = this; - var promise = self.ready().then(function () { - var length = sessionStorage.length; - var keys = []; - for (var i = 0; i < length; i++) { - var itemKey = sessionStorage.key(i); - if (itemKey.indexOf(dbInfo.keyPrefix) === 0) { - keys.push(itemKey.substring(dbInfo.keyPrefix.length)); +/** + * Fetch the stored SCRAM keys for the given JID, if available. + * + * The user's plaintext password is not stored, nor any material from which + * the user's plaintext password could be recovered. + * + * @param { String } jid - The XMPP address for which to fetch the SCRAM keys + * @returns { Promise } A promise which resolves once we've fetched the previously + * used login keys. + */ +function _attemptNonPreboundSession() { + _attemptNonPreboundSession = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee10(credentials, automatic) { + var api, _credentials, _credentials2; + return init_regeneratorRuntime().wrap(function _callee10$(_context10) { + while (1) switch (_context10.prev = _context10.next) { + case 0: + api = shared_converse.api; + if (!(api.settings.get("authentication") === LOGIN)) { + _context10.next = 31; + break; + } + if (!credentials) { + _context10.next = 6; + break; + } + return _context10.abrupt("return", connect(credentials)); + case 6: + if (!api.settings.get("credentials_url")) { + _context10.next = 14; + break; + } + _context10.t0 = connect; + _context10.next = 10; + return getLoginCredentialsFromURL(); + case 10: + _context10.t1 = _context10.sent; + return _context10.abrupt("return", (0, _context10.t0)(_context10.t1)); + case 14: + if (!(shared_converse.jid && (api.settings.get("password") || shared_converse.connection.pass))) { + _context10.next = 16; + break; + } + return _context10.abrupt("return", connect()); + case 16: + if (!api.settings.get('reuse_scram_keys')) { + _context10.next = 22; + break; + } + _context10.next = 19; + return getLoginCredentialsFromSCRAMKeys(); + case 19: + _credentials = _context10.sent; + if (!_credentials) { + _context10.next = 22; + break; + } + return _context10.abrupt("return", connect(_credentials)); + case 22: + if (!(!shared_converse.isTestEnv() && 'credentials' in navigator)) { + _context10.next = 28; + break; + } + _context10.next = 25; + return getLoginCredentialsFromBrowser(); + case 25: + _credentials2 = _context10.sent; + if (!_credentials2) { + _context10.next = 28; + break; + } + return _context10.abrupt("return", connect(_credentials2)); + case 28: + if (!shared_converse.isTestEnv()) log.warn("attemptNonPreboundSession: Couldn't find credentials to log in with"); + _context10.next = 32; + break; + case 31: + if ([ANONYMOUS, EXTERNAL].includes(api.settings.get("authentication")) && (!automatic || api.settings.get("auto_login"))) { + connect(); + } + case 32: + case "end": + return _context10.stop(); } - } - return keys; - }); - utils_executeCallback(promise, callback); - return promise; -} - -// Supply the number of keys in the datastore to the callback function. -function sessionStorage_length(callback) { - var self = this; - var promise = self.keys().then(function (keys) { - return keys.length; - }); - utils_executeCallback(promise, callback); - return promise; + }, _callee10); + })); + return _attemptNonPreboundSession.apply(this, arguments); } - -// Remove an item from the store, nice and simple. -function sessionStorage_removeItem(key, callback) { - key = normalizeKey(key); - var promise = this.ready().then(function () { - sessionStorage.removeItem(dbInfo.keyPrefix + key); - }); - utils_executeCallback(promise, callback); - return promise; +function savedLoginInfo(_x11) { + return _savedLoginInfo.apply(this, arguments); } -// Set a key's value and run an optional callback once the value is set. -// Unlike Gaia's implementation, the callback function is passed the value, -// in case you want to operate on that value only after you're sure it -// saved, or something like that. -function sessionStorage_setItem(_x, _x2, _x3) { - return drivers_sessionStorage_setItem.apply(this, arguments); -} -function drivers_sessionStorage_setItem() { - drivers_sessionStorage_setItem = sessionStorage_asyncToGenerator( /*#__PURE__*/sessionStorage_regeneratorRuntime().mark(function _callee(key, value, callback) { - var _value; - var originalValue; - return sessionStorage_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { +/** + * @param { Object } [credentials] + * @param { string } credentials.password + * @param { Object } credentials.password + * @param { string } credentials.password.ck + * @returns { Promise } + */ +function _savedLoginInfo() { + _savedLoginInfo = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee11(jid) { + var id, login_info; + return init_regeneratorRuntime().wrap(function _callee11$(_context11) { + while (1) switch (_context11.prev = _context11.next) { case 0: - key = normalizeKey(key); - _context.next = 3; - return this.ready(); - case 3: - // Convert undefined values to null. - // https://github.com/mozilla/localForage/pull/42 - value = (_value = value) !== null && _value !== void 0 ? _value : null; - - // Save the original value to pass to the callback. - originalValue = value; - dbInfo.serializer.serialize(value, function (value, error) { - if (error) { - throw error; - } else { - try { - sessionStorage.setItem(dbInfo.keyPrefix + key, value); - utils_executeCallback(Promise.resolve(originalValue), callback); - } catch (e) { - if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') { - console.error("Your sesionStorage capacity is used up."); - throw e; - } - throw e; - } - } + id = "converse.scram-keys-".concat(external_strophe_namespaceObject.Strophe.getBareJidFromJid(jid)); + login_info = new Model({ + id: id }); + initStorage(login_info, id, 'persistent'); + _context11.next = 5; + return new Promise(function (f) { + return login_info.fetch({ + 'success': f, + 'error': f + }); + }); + case 5: + return _context11.abrupt("return", login_info); case 6: case "end": - return _context.stop(); + return _context11.stop(); } - }, _callee, this); + }, _callee11); })); - return drivers_sessionStorage_setItem.apply(this, arguments); + return _savedLoginInfo.apply(this, arguments); } -function sessionStorage_dropInstance(options, callback) { - callback = getCallback.apply(this, arguments); - options = typeof options !== 'function' && options || {}; - if (!options.name) { - var currentConfig = this.config(); - options.name = options.name || currentConfig.name; - options.storeName = options.storeName || currentConfig.storeName; - } - var self = this; - var promise; - if (!options.name) { - promise = Promise.reject(new Error('Invalid arguments')); - } else { - promise = new Promise(function (resolve) { - if (!options.storeName) { - resolve("".concat(options.name, "/")); - } else { - resolve(sessionStorage_getKeyPrefix(options, self._defaultConfig)); - } - }).then(function (keyPrefix) { - for (var i = sessionStorage.length - 1; i >= 0; i--) { - var _key3 = sessionStorage.key(i); - if (_key3.indexOf(keyPrefix) === 0) { - sessionStorage.removeItem(_key3); - } - } - }); - } - utils_executeCallback(promise, callback); - return promise; +function connect(_x12) { + return _connect.apply(this, arguments); } -var sessionStorageWrapper = { - _driver: 'sessionStorageWrapper', - _initStorage: sessionStorage_initStorage, - _support: isSessionStorageValid(), - iterate: sessionStorage_iterate, - getItem: sessionStorage_getItem, - setItem: sessionStorage_setItem, - removeItem: sessionStorage_removeItem, - clear: sessionStorage_clear, - length: sessionStorage_length, - key: sessionStorage_key, - keys: sessionStorage_keys, - dropInstance: sessionStorage_dropInstance -}; -/* harmony default export */ const drivers_sessionStorage = (sessionStorageWrapper); -// EXTERNAL MODULE: ./node_modules/localforage-setitems/dist/localforage-setitems.js -var localforage_setitems = __webpack_require__(829); -// EXTERNAL MODULE: ./node_modules/@converse/localforage-getitems/dist/localforage-getitems.js -var localforage_getitems = __webpack_require__(5246); -;// CONCATENATED MODULE: ./node_modules/@converse/skeletor/src/storage.js -function storage_typeof(obj) { +function _connect() { + _connect = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee12(credentials) { + var api, _credentials$password, _converse$connection2, password, callback, login_info; + return init_regeneratorRuntime().wrap(function _callee12$(_context12) { + while (1) switch (_context12.prev = _context12.next) { + case 0: + api = shared_converse.api; + if (![ANONYMOUS, EXTERNAL].includes(api.settings.get("authentication"))) { + _context12.next = 8; + break; + } + if (shared_converse.jid) { + _context12.next = 4; + break; + } + throw new Error("Config Error: when using anonymous login " + "you need to provide the server's domain via the 'jid' option. " + "Either when calling converse.initialize, or when calling " + "_converse.api.user.login."); + case 4: + if (!shared_converse.connection.reconnecting) { + shared_converse.connection.reset(); + } + shared_converse.connection.connect(shared_converse.jid.toLowerCase()); + _context12.next = 23; + break; + case 8: + if (!(api.settings.get("authentication") === LOGIN)) { + _context12.next = 23; + break; + } + password = (_credentials$password = credentials === null || credentials === void 0 ? void 0 : credentials.password) !== null && _credentials$password !== void 0 ? _credentials$password : ((_converse$connection2 = shared_converse.connection) === null || _converse$connection2 === void 0 ? void 0 : _converse$connection2.pass) || api.settings.get("password"); + if (password) { + _context12.next = 16; + break; + } + if (!api.settings.get("auto_login")) { + _context12.next = 13; + break; + } + throw new Error("autoLogin: If you use auto_login and " + "authentication='login' then you also need to provide a password."); + case 13: + shared_converse.connection.setDisconnectionCause(external_strophe_namespaceObject.Strophe.Status.AUTHFAIL, undefined, true); + api.connection.disconnect(); + return _context12.abrupt("return"); + case 16: + if (!shared_converse.connection.reconnecting) { + shared_converse.connection.reset(); + shared_converse.connection.service = getConnectionServiceURL(); + } + if (!(shared_converse.config.get('trusted') && shared_converse.jid && api.settings.get("reuse_scram_keys") && !(password !== null && password !== void 0 && password.ck))) { + _context12.next = 22; + break; + } + _context12.next = 20; + return savedLoginInfo(shared_converse.jid); + case 20: + login_info = _context12.sent; + callback = function callback(status) { + var scram_keys = shared_converse.connection.scram_keys; + if (scram_keys) login_info.save({ + scram_keys: scram_keys + }); + shared_converse.connection.onConnectStatusChanged(status); + }; + case 22: + shared_converse.connection.connect(shared_converse.jid, password, callback); + case 23: + case "end": + return _context12.stop(); + } + }, _callee12); + })); + return _connect.apply(this, arguments); +} +;// CONCATENATED MODULE: ./src/headless/shared/api/user.js +function user_typeof(obj) { "@babel/helpers - typeof"; - return storage_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return user_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, storage_typeof(obj); + }, user_typeof(obj); } -function storage_regeneratorRuntime() { +function user_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - storage_regeneratorRuntime = function _regeneratorRuntime() { + user_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -26465,7 +24701,7 @@ function storage_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == storage_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == user_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -26690,7 +24926,7 @@ function storage_regeneratorRuntime() { } }, exports; } -function storage_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function user_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -26704,63 +24940,71 @@ function storage_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, ar Promise.resolve(value).then(_next, _throw); } } -function storage_asyncToGenerator(fn) { +function user_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - storage_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + user_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - storage_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + user_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -function storage_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); } + return keys; } -function storage_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, storage_toPropertyKey(descriptor.key), descriptor); +function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { + user_defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); } + return target; } -function storage_createClass(Constructor, protoProps, staticProps) { - if (protoProps) storage_defineProperties(Constructor.prototype, protoProps); - if (staticProps) storage_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; +function user_defineProperty(obj, key, value) { + key = user_toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; } -function storage_toPropertyKey(arg) { - var key = storage_toPrimitive(arg, "string"); - return storage_typeof(key) === "symbol" ? key : String(key); +function user_toPropertyKey(arg) { + var key = user_toPrimitive(arg, "string"); + return user_typeof(key) === "symbol" ? key : String(key); } -function storage_toPrimitive(input, hint) { - if (storage_typeof(input) !== "object" || input === null) return input; +function user_toPrimitive(input, hint) { + if (user_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); - if (storage_typeof(res) !== "object") return res; + if (user_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -/** - * IndexedDB, localStorage and sessionStorage adapter - */ - - @@ -26768,1086 +25012,1296 @@ function storage_toPrimitive(input, hint) { -var IN_MEMORY = umd._driver; -localforage.defineDriver(umd); -(0,localforage_setitems.extendPrototype)(localforage); -(0,localforage_getitems.extendPrototype)(localforage); -var Storage = /*#__PURE__*/function () { - function Storage(id, type) { - var _this = this; - var batchedWrites = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - storage_classCallCheck(this, Storage); - if (type === 'local' && !window.localStorage) { - throw new Error("Skeletor.storage: Environment does not support localStorage."); - } else if (type === 'session' && !window.sessionStorage) { - throw new Error("Skeletor.storage: Environment does not support sessionStorage."); - } - if (lodash_es_isString(type)) { - this.storeInitialized = this.initStore(type, batchedWrites); - } else { - this.store = type; - if (batchedWrites) { - this.store.debouncedSetItems = mergebounce_mergebounce(function (items) { - return _this.store.setItems(items); - }, 50, { - 'promise': true - }); - } - this.storeInitialized = Promise.resolve(); - } - this.name = id; - } - storage_createClass(Storage, [{ - key: "initStore", - value: function () { - var _initStore = storage_asyncToGenerator( /*#__PURE__*/storage_regeneratorRuntime().mark(function _callee(type, batchedWrites) { - var _this2 = this; - return storage_regeneratorRuntime().wrap(function _callee$(_context) { +/* harmony default export */ const user = ({ + /** + * This grouping collects API functions related to the current logged in user. + * + * @namespace _converse.api.user + * @memberOf _converse.api + */ + user: _objectSpread(_objectSpread({ + settings: user_settings_api + }, presence), {}, { + /** + * @method _converse.api.user.jid + * @returns {string} The current user's full JID (Jabber ID) + * @example _converse.api.user.jid()) + */ + jid: function jid() { + return shared_converse.connection.jid; + }, + /** + * Logs the user in. + * + * If called without any parameters, Converse will try + * to log the user in by calling the `prebind_url` or `credentials_url` depending + * on whether prebinding is used or not. + * + * @method _converse.api.user.login + * @param { string } [jid] + * @param { string } [password] + * @param { boolean } [automatic=false] - An internally used flag that indicates whether + * this method was called automatically once the connection has been + * initialized. It's used together with the `auto_login` configuration flag + * to determine whether Converse should try to log the user in if it + * fails to restore a previous auth'd session. + * @returns { Promise } + */ + login: function login(jid, password) { + var _arguments = arguments; + return user_asyncToGenerator( /*#__PURE__*/user_regeneratorRuntime().mark(function _callee() { + var _converse$connection, _api$settings$get; + var automatic, api, bosh_plugin, credentials; + return user_regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: - if (!(type === 'session')) { - _context.next = 4; - break; + automatic = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : false; + api = shared_converse.api; + jid = jid || api.settings.get('jid'); + if (!((_converse$connection = shared_converse.connection) !== null && _converse$connection !== void 0 && _converse$connection.jid) || jid && !core.isSameDomain(shared_converse.connection.jid, jid)) { + initConnection(); } - localforage.setDriver(drivers_sessionStorage._driver); - _context.next = 15; - break; - case 4: - if (!(type === 'local')) { + _context.t0 = (_api$settings$get = api.settings.get("connection_options")) !== null && _api$settings$get !== void 0 && _api$settings$get.worker; + if (!_context.t0) { _context.next = 9; break; } - _context.next = 7; - return localforage.config({ - 'driver': localforage.LOCALSTORAGE - }); - case 7: - _context.next = 15; - break; + _context.next = 8; + return shared_converse.connection.restoreWorkerSession(); + case 8: + _context.t0 = _context.sent; case 9: - if (!(type === 'in_memory')) { - _context.next = 13; + if (!_context.t0) { + _context.next = 11; break; } - localforage.config({ - 'driver': IN_MEMORY - }); - _context.next = 15; - break; - case 13: - if (!(type !== 'indexed')) { + return _context.abrupt("return"); + case 11: + if (!jid) { _context.next = 15; break; } - throw new Error("Skeletor.storage: No storage type was specified"); + _context.next = 14; + return setUserJID(jid); + case 14: + jid = _context.sent; case 15: - this.store = localforage; - if (batchedWrites) { - this.store.debouncedSetItems = mergebounce_mergebounce(function (items) { - return _this2.store.setItems(items); - }, 50, { - 'promise': true - }); + // See whether there is a BOSH session to re-attach to + bosh_plugin = shared_converse.pluggable.plugins['converse-bosh']; + if (!(bosh_plugin !== null && bosh_plugin !== void 0 && bosh_plugin.enabled())) { + _context.next = 25; + break; } - case 17: + _context.next = 19; + return shared_converse.restoreBOSHSession(); + case 19: + if (!_context.sent) { + _context.next = 23; + break; + } + return _context.abrupt("return"); + case 23: + if (!(api.settings.get("authentication") === PREBIND && (!automatic || api.settings.get("auto_login")))) { + _context.next = 25; + break; + } + return _context.abrupt("return", shared_converse.startNewPreboundBOSHSession()); + case 25: + password = password || api.settings.get("password"); + credentials = jid && password ? { + jid: jid, + password: password + } : null; + attemptNonPreboundSession(credentials, automatic); + case 28: case "end": return _context.stop(); } - }, _callee, this); - })); - function initStore(_x, _x2) { - return _initStore.apply(this, arguments); - } - return initStore; - }() - }, { - key: "flush", - value: function flush() { - var _this$store$debounced; - return (_this$store$debounced = this.store.debouncedSetItems) === null || _this$store$debounced === void 0 ? void 0 : _this$store$debounced.flush(); - } - }, { - key: "clear", - value: function () { - var _clear = storage_asyncToGenerator( /*#__PURE__*/storage_regeneratorRuntime().mark(function _callee2() { - var _this3 = this; - var re, keys, removed_keys; - return storage_regeneratorRuntime().wrap(function _callee2$(_context2) { + }, _callee); + }))(); + }, + /** + * Logs the user out of the current XMPP session. + * @method _converse.api.user.logout + * @example _converse.api.user.logout(); + */ + logout: function logout() { + return user_asyncToGenerator( /*#__PURE__*/user_regeneratorRuntime().mark(function _callee2() { + var api, promise, complete; + return user_regeneratorRuntime().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: - _context2.next = 2; - return this.store.removeItem(this.name).catch(function (e) { - return console.error(e); - }); - case 2: - re = new RegExp("^".concat(this.name, "-")); - _context2.next = 5; - return this.store.keys(); - case 5: - keys = _context2.sent; - removed_keys = keys.filter(function (k) { - return re.test(k); + api = shared_converse.api; + /** + * Triggered before the user is logged out + * @event _converse#beforeLogout + */ + _context2.next = 3; + return api.trigger('beforeLogout', { + 'synchronous': true }); - _context2.next = 9; - return Promise.all(removed_keys.map(function (k) { - return _this3.store.removeItem(k).catch(function (e) { - return console.error(e); + case 3: + promise = getOpenPromise(); + complete = function complete() { + // Recreate all the promises + Object.keys(shared_converse.promises).forEach(replacePromise); + delete shared_converse.jid; + + // Remove the session JID, otherwise the user would just be logged + // in again upon reload. See #2759 + localStorage.removeItem('conversejs-session-jid'); + + /** + * Triggered once the user has logged out. + * @event _converse#logout + */ + api.trigger('logout'); + promise.resolve(); + }; + shared_converse.connection.setDisconnectionCause(LOGOUT, undefined, true); + if (shared_converse.connection !== undefined) { + api.listen.once('disconnected', function () { + return complete(); }); - })); - case 9: + shared_converse.connection.disconnect(); + } else { + complete(); + } + return _context2.abrupt("return", promise); + case 8: case "end": return _context2.stop(); } - }, _callee2, this); - })); - function clear() { - return _clear.apply(this, arguments); - } - return clear; - }() - }, { - key: "sync", - value: function sync() { - var that = this; - function localSync(_x3, _x4, _x5) { - return _localSync.apply(this, arguments); - } - function _localSync() { - _localSync = storage_asyncToGenerator( /*#__PURE__*/storage_regeneratorRuntime().mark(function _callee3(method, model, options) { - var resp, errorMessage, promise, new_attributes, collection, original_attributes, data; - return storage_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - // We get the collection (and if necessary the model attribute. - // Waiting for storeInitialized will cause another iteration of - // the event loop, after which the collection reference will - // be removed from the model. - collection = model.collection; - if (['patch', 'update'].includes(method)) { - new_attributes = lodash_es_cloneDeep(model.attributes); - } - _context3.next = 4; - return that.storeInitialized; - case 4: - _context3.prev = 4; - original_attributes = model.attributes; - _context3.t0 = method; - _context3.next = _context3.t0 === "read" ? 9 : _context3.t0 === "create" ? 19 : _context3.t0 === 'patch' ? 23 : _context3.t0 === "update" ? 23 : _context3.t0 === "delete" ? 30 : 34; - break; - case 9: - if (!(model.id !== undefined)) { - _context3.next = 15; - break; - } - _context3.next = 12; - return that.find(model); - case 12: - resp = _context3.sent; - _context3.next = 18; - break; - case 15: - _context3.next = 17; - return that.findAll(); - case 17: - resp = _context3.sent; - case 18: - return _context3.abrupt("break", 34); - case 19: - _context3.next = 21; - return that.create(model, options); - case 21: - resp = _context3.sent; - return _context3.abrupt("break", 34); - case 23: - if (options.wait) { - // When `wait` is set to true, Skeletor waits until - // confirmation of storage before setting the values on - // the model. - // However, the new attributes needs to be sent, so it - // sets them manually on the model and then removes - // them after calling `sync`. - // Because our `sync` method is asynchronous and we - // wait for `storeInitialized`, the attributes are - // already restored once we get here, so we need to do - // the attributes dance again. - model.attributes = new_attributes; - } - promise = that.update(model, options); - if (options.wait) { - model.attributes = original_attributes; - } - _context3.next = 28; - return promise; - case 28: - resp = _context3.sent; - return _context3.abrupt("break", 34); - case 30: - _context3.next = 32; - return that.destroy(model, collection); - case 32: - resp = _context3.sent; - return _context3.abrupt("break", 34); - case 34: - _context3.next = 39; - break; - case 36: - _context3.prev = 36; - _context3.t1 = _context3["catch"](4); - if (_context3.t1.code === 22 && that.getStorageSize() === 0) { - errorMessage = "Private browsing is unsupported"; - } else { - errorMessage = _context3.t1.message; - } - case 39: - if (resp) { - if (options && options.success) { - // When storing, we don't pass back the response (which is - // the set attributes returned from localforage because - // Skeletor sets them again on the model and due to the async - // nature of localforage it can cause stale attributes to be - // set on a model after it's been updated in the meantime. - data = method === "read" ? resp : null; - options.success(data, options); - } - } else { - errorMessage = errorMessage ? errorMessage : "Record Not Found"; - if (options && options.error) { - options.error(errorMessage); - } - } - case 40: - case "end": - return _context3.stop(); - } - }, _callee3, null, [[4, 36]]); - })); - return _localSync.apply(this, arguments); - } - localSync.__name__ = 'localSync'; - return localSync; - } - }, { - key: "removeCollectionReference", - value: function removeCollectionReference(model, collection) { - var _this4 = this; - if (!collection) { - return; - } - var ids = collection.filter(function (m) { - return m.id !== model.id; - }).map(function (m) { - return _this4.getItemName(m.id); - }); - return this.store.setItem(this.name, ids); - } - }, { - key: "addCollectionReference", - value: function addCollectionReference(model, collection) { - var _this5 = this; - if (!collection) { - return; - } - var ids = collection.map(function (m) { - return _this5.getItemName(m.id); - }); - var new_id = this.getItemName(model.id); - if (!ids.includes(new_id)) { - ids.push(new_id); - } - return this.store.setItem(this.name, ids); - } - }, { - key: "getCollectionReferenceData", - value: function getCollectionReferenceData(model) { - var _this6 = this; - if (!model.collection) { - return {}; - } - var ids = model.collection.map(function (m) { - return _this6.getItemName(m.id); - }); - var new_id = this.getItemName(model.id); - if (!ids.includes(new_id)) { - ids.push(new_id); - } - var result = {}; - result[this.name] = ids; - return result; - } - }, { - key: "save", - value: function () { - var _save = storage_asyncToGenerator( /*#__PURE__*/storage_regeneratorRuntime().mark(function _callee4(model) { - var items, key, data; - return storage_regeneratorRuntime().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - if (!this.store.setItems) { - _context4.next = 7; - break; - } - items = {}; - items[this.getItemName(model.id)] = model.toJSON(); - Object.assign(items, this.getCollectionReferenceData(model)); - return _context4.abrupt("return", this.store.debouncedSetItems ? this.store.debouncedSetItems(items) : this.store.setItems(items)); - case 7: - key = this.getItemName(model.id); - _context4.next = 10; - return this.store.setItem(key, model.toJSON()); - case 10: - data = _context4.sent; - _context4.next = 13; - return this.addCollectionReference(model, model.collection); - case 13: - return _context4.abrupt("return", data); - case 14: - case "end": - return _context4.stop(); - } - }, _callee4, this); - })); - function save(_x6) { - return _save.apply(this, arguments); - } - return save; - }() - }, { - key: "create", - value: function create(model, options) { - /* Add a model, giving it a (hopefully)-unique GUID, if it doesn't already - * have an id of it's own. - */ - if (!model.id) { - model.id = guid(); - model.set(model.idAttribute, model.id, options); - } - return this.save(model); - } - }, { - key: "update", - value: function update(model) { - return this.save(model); - } - }, { - key: "find", - value: function find(model) { - return this.store.getItem(this.getItemName(model.id)); - } - }, { - key: "findAll", - value: function () { - var _findAll = storage_asyncToGenerator( /*#__PURE__*/storage_regeneratorRuntime().mark(function _callee5() { - var keys, items; - return storage_regeneratorRuntime().wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - _context5.next = 2; - return this.store.getItem(this.name); - case 2: - keys = _context5.sent; - if (!(keys !== null && keys !== void 0 && keys.length)) { - _context5.next = 8; - break; - } - _context5.next = 6; - return this.store.getItems(keys); - case 6: - items = _context5.sent; - return _context5.abrupt("return", Object.values(items)); - case 8: - return _context5.abrupt("return", []); - case 9: - case "end": - return _context5.stop(); - } - }, _callee5, this); - })); - function findAll() { - return _findAll.apply(this, arguments); - } - return findAll; - }() - }, { - key: "destroy", - value: function () { - var _destroy = storage_asyncToGenerator( /*#__PURE__*/storage_regeneratorRuntime().mark(function _callee6(model, collection) { - return storage_regeneratorRuntime().wrap(function _callee6$(_context6) { - while (1) switch (_context6.prev = _context6.next) { - case 0: - _context6.next = 2; - return this.flush(); - case 2: - _context6.next = 4; - return this.store.removeItem(this.getItemName(model.id)); - case 4: - _context6.next = 6; - return this.removeCollectionReference(model, collection); - case 6: - return _context6.abrupt("return", model); - case 7: - case "end": - return _context6.stop(); - } - }, _callee6, this); - })); - function destroy(_x7, _x8) { - return _destroy.apply(this, arguments); - } - return destroy; - }() - }, { - key: "getStorageSize", - value: function getStorageSize() { - return this.store.length; - } - }, { - key: "getItemName", - value: function getItemName(id) { - return this.name + "-" + id; + }, _callee2); + }))(); } - }]); - return Storage; -}(); -Storage.sessionStorageInitialized = localforage.defineDriver(drivers_sessionStorage); -Storage.localForage = localforage; -/* harmony default export */ const storage = (Storage); -;// CONCATENATED MODULE: ./src/headless/utils/storage.js - + }) +}); +;// CONCATENATED MODULE: ./src/headless/shared/api/index.js +function shared_api_typeof(obj) { + "@babel/helpers - typeof"; -function getDefaultStore() { - if (shared_converse.config.get('trusted')) { - var is_non_persistent = shared_api.settings.get('persistent_store') === 'sessionStorage'; - return is_non_persistent ? 'session' : 'persistent'; + return shared_api_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, shared_api_typeof(obj); +} +function api_ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + return keys; +} +function api_objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? api_ownKeys(Object(source), !0).forEach(function (key) { + api_defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : api_ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + return target; +} +function api_defineProperty(obj, key, value) { + key = api_toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); } else { - return 'session'; + obj[key] = value; } + return obj; } -function storeUsesIndexedDB(store) { - return store === 'persistent' && shared_api.settings.get('persistent_store') === 'IndexedDB'; +function api_toPropertyKey(arg) { + var key = api_toPrimitive(arg, "string"); + return shared_api_typeof(key) === "symbol" ? key : String(key); } -function createStore(id, store) { - var name = store || getDefaultStore(); - var s = shared_converse.storage[name]; - if (typeof s === 'undefined') { - throw new TypeError("createStore: Could not find store for ".concat(id)); +function api_toPrimitive(input, hint) { + if (shared_api_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (shared_api_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); } - return new storage(id, s, storeUsesIndexedDB(store)); + return (hint === "string" ? String : Number)(input); } -function initStorage(model, id, type) { - var store = type || getDefaultStore(); - model.browserStorage = createStore(id, store); - if (storeUsesIndexedDB(store)) { - var flush = function flush() { - return model.browserStorage.flush(); - }; - window.addEventListener(shared_converse.unloadevent, flush); - model.on('destroy', function () { - return window.removeEventListener(shared_converse.unloadevent, flush); + + + + + + + + +/** + * ### The private API + * + * The private API methods are only accessible via the closured {@link _converse} + * object, which is only available to plugins. + * + * These methods are kept private (i.e. not global) because they may return + * sensitive data which should be kept off-limits to other 3rd-party scripts + * that might be running in the page. + * + * @namespace _converse.api + * @memberOf _converse + */ +var api_api = shared_converse.api = api_objectSpread(api_objectSpread(api_objectSpread(api_objectSpread({ + connection: api, + settings: settings_api +}, send), user), events), promise); +/* harmony default export */ const shared_api = (api_api); +// EXTERNAL MODULE: ./node_modules/dayjs/dayjs.min.js +var dayjs_min = __webpack_require__(4735); +var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min); +;// CONCATENATED MODULE: ./src/headless/shared/connection/feedback.js + + + +/* harmony default export */ const feedback = (Model.extend({ + defaults: { + 'connection_status': external_strophe_namespaceObject.Strophe.Status.DISCONNECTED, + 'message': '' + }, + initialize: function initialize() { + var api = shared_converse.api; + this.on('change', function () { + return api.trigger('connfeedback', shared_converse.connfeedback); }); - model.listenTo(shared_converse, 'beforeLogout', flush); } +})); +;// CONCATENATED MODULE: external "urijs" +const external_urijs_namespaceObject = urijs; +var external_urijs_default = /*#__PURE__*/__webpack_require__.n(external_urijs_namespaceObject); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_arrayAggregator.js +/** + * A specialized version of `baseAggregator` for arrays. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. + */ +function arrayAggregator(array, setter, iteratee, accumulator) { + var index = -1, + length = array == null ? 0 : array.length; + while (++index < length) { + var value = array[index]; + setter(accumulator, value, iteratee(value), array); + } + return accumulator; } -;// CONCATENATED MODULE: ./src/headless/shared/settings/utils.js -function settings_utils_typeof(obj) { - "@babel/helpers - typeof"; +/* harmony default export */ const _arrayAggregator = (arrayAggregator); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseAggregator.js - return settings_utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, settings_utils_typeof(obj); + +/** + * Aggregates elements of `collection` on `accumulator` with keys transformed + * by `iteratee` and values set by `setter`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} setter The function to set `accumulator` values. + * @param {Function} iteratee The iteratee to transform keys. + * @param {Object} accumulator The initial aggregated object. + * @returns {Function} Returns `accumulator`. + */ +function baseAggregator(collection, setter, iteratee, accumulator) { + _baseEach(collection, function (value, key, collection) { + setter(accumulator, value, iteratee(value), collection); + }); + return accumulator; } -function utils_regeneratorRuntime() { - "use strict"; +/* harmony default export */ const _baseAggregator = (baseAggregator); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_createAggregator.js - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - utils_regeneratorRuntime = function _regeneratorRuntime() { - return exports; + + + + +/** + * Creates a function like `_.groupBy`. + * + * @private + * @param {Function} setter The function to set accumulator values. + * @param {Function} [initializer] The accumulator object initializer. + * @returns {Function} Returns the new aggregator function. + */ +function createAggregator(setter, initializer) { + return function (collection, iteratee) { + var func = lodash_es_isArray(collection) ? _arrayAggregator : _baseAggregator, + accumulator = initializer ? initializer() : {}; + return func(collection, setter, _baseIteratee(iteratee, 2), accumulator); }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; +} +/* harmony default export */ const _createAggregator = (createAggregator); +;// CONCATENATED MODULE: ./node_modules/lodash-es/countBy.js + + + +/** Used for built-in method references. */ +var countBy_objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var countBy_hasOwnProperty = countBy_objectProto.hasOwnProperty; + +/** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The corresponding value of + * each key is the number of times the key was returned by `iteratee`. The + * iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * _.countBy([6.1, 4.2, 6.3], Math.floor); + * // => { '4': 1, '6': 2 } + * + * // The `_.property` iteratee shorthand. + * _.countBy(['one', 'two', 'three'], 'length'); + * // => { '3': 2, '5': 1 } + */ +var countBy = _createAggregator(function (result, value, key) { + if (countBy_hasOwnProperty.call(result, key)) { + ++result[key]; + } else { + _baseAssignValue(result, key, 1); } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; +}); +/* harmony default export */ const lodash_es_countBy = (countBy); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseFindIndex.js +/** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + while (fromRight ? index-- : ++index < length) { + if (predicate(array[index], index, array)) { + return index; } } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); - }); - }); - } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == settings_utils_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - reject(record.arg); + return -1; +} +/* harmony default export */ const _baseFindIndex = (baseFindIndex); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseIsNaN.js +/** + * The base implementation of `_.isNaN` without support for number objects. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + */ +function baseIsNaN(value) { + return value !== value; +} +/* harmony default export */ const _baseIsNaN = (baseIsNaN); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_strictIndexOf.js +/** + * A specialized version of `_.indexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, + length = array.length; + while (++index < length) { + if (array[index] === value) { + return index; } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); - } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done - }; - } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); - } - }; - } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); - } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal", delete record.arg, entry.completion = record; + return -1; +} +/* harmony default export */ const _strictIndexOf = (strictIndexOf); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseIndexOf.js + + + + +/** + * The base implementation of `_.indexOf` without `fromIndex` bounds checks. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseIndexOf(array, value, fromIndex) { + return value === value ? _strictIndexOf(array, value, fromIndex) : _baseFindIndex(array, _baseIsNaN, fromIndex); +} +/* harmony default export */ const _baseIndexOf = (baseIndexOf); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_arrayIncludes.js + + +/** + * A specialized version of `_.includes` for arrays without support for + * specifying an index to search from. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ +function arrayIncludes(array, value) { + var length = array == null ? 0 : array.length; + return !!length && _baseIndexOf(array, value, 0) > -1; +} +/* harmony default export */ const _arrayIncludes = (arrayIncludes); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_arrayIncludesWith.js +/** + * This function is like `arrayIncludes` except that it accepts a comparator. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ +function arrayIncludesWith(array, value, comparator) { + var index = -1, + length = array == null ? 0 : array.length; + while (++index < length) { + if (comparator(value, array[index])) { + return true; + } } - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + return false; +} +/* harmony default export */ const _arrayIncludesWith = (arrayIncludesWith); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseDifference.js + + + + + + + +/** Used as the size to enable large array optimizations. */ +var _baseDifference_LARGE_ARRAY_SIZE = 200; + +/** + * The base implementation of methods like `_.difference` without support + * for excluding multiple arrays or iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Array} values The values to exclude. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + */ +function baseDifference(array, values, iteratee, comparator) { + var index = -1, + includes = _arrayIncludes, + isCommon = true, + length = array.length, + result = [], + valuesLength = values.length; + if (!length) { + return result; } - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) return iteratorMethod.call(iterable); - if ("function" == typeof iterable.next) return iterable; - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; - return next.value = undefined, next.done = !0, next; - }; - return next.next = next; - } - } - return { - next: doneResult - }; + if (iteratee) { + values = _arrayMap(values, _baseUnary(iteratee)); } - function doneResult() { - return { - value: undefined, - done: !0 - }; + if (comparator) { + includes = _arrayIncludesWith; + isCommon = false; + } else if (values.length >= _baseDifference_LARGE_ARRAY_SIZE) { + includes = _cacheHas; + isCommon = false; + values = new _SetCache(values); } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { - var ctor = "function" == typeof genFun && genFun.constructor; - return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); - }, exports.mark = function (genFun) { - return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; - }, exports.awrap = function (arg) { - return { - __await: arg - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - void 0 === PromiseImpl && (PromiseImpl = Promise); - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { - return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; - } - return next.done = !0, next; - }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; - } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; - } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; + outer: while (++index < length) { + var value = array[index], + computed = iteratee == null ? value : iteratee(value); + value = comparator || value !== 0 ? value : 0; + if (isCommon && computed === computed) { + var valuesIndex = valuesLength; + while (valuesIndex--) { + if (values[valuesIndex] === computed) { + continue outer; } } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + result.push(value); + } else if (!includes(values, computed, comparator)) { + result.push(value); } - }, exports; -} -function utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); } + return result; } -function utils_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); - }); - }; -} +/* harmony default export */ const _baseDifference = (baseDifference); +;// CONCATENATED MODULE: ./node_modules/lodash-es/difference.js +/** + * Creates an array of `array` values not included in the other given arrays + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. The order and references of result values are + * determined by the first array. + * + * **Note:** Unlike `_.pullAll`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @returns {Array} Returns the new array of filtered values. + * @see _.without, _.xor + * @example + * + * _.difference([2, 1], [2, 3]); + * // => [1] + */ +var difference = _baseRest(function (array, values) { + return lodash_es_isArrayLikeObject(array) ? _baseDifference(array, _baseFlatten(values, 1, lodash_es_isArrayLikeObject, true)) : []; +}); +/* harmony default export */ const lodash_es_difference = (difference); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_arrayEvery.js +/** + * A specialized version of `_.every` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + */ +function arrayEvery(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + while (++index < length) { + if (!predicate(array[index], index, array)) { + return false; + } + } + return true; +} +/* harmony default export */ const _arrayEvery = (arrayEvery); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseEvery.js +/** + * The base implementation of `_.every` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false` + */ +function baseEvery(collection, predicate) { + var result = true; + _baseEach(collection, function (value, index, collection) { + result = !!predicate(value, index, collection); + return result; + }); + return result; +} +/* harmony default export */ const _baseEvery = (baseEvery); +;// CONCATENATED MODULE: ./node_modules/lodash-es/every.js -var app_settings; -var init_settings = {}; // Container for settings passed in via converse.initialize -var user_settings; // User settings, populated via api.users.settings -function getAppSettings() { - return app_settings; -} -function initAppSettings(settings) { - init_settings = settings; - app_settings = {}; - Object.assign(app_settings, Events); - // Allow only whitelisted settings to be overwritten via converse.initialize - var allowed_settings = lodash_es_pick(settings, Object.keys(DEFAULT_SETTINGS)); - lodash_es_assignIn(app_settings, DEFAULT_SETTINGS, allowed_settings); -} -function getInitSettings() { - return init_settings; -} -function getAppSetting(key) { - if (Object.keys(DEFAULT_SETTINGS).includes(key)) { - return app_settings[key]; - } -} -function extendAppSettings(settings) { - utils_core.merge(DEFAULT_SETTINGS, settings); - // When updating the settings, we need to avoid overwriting the - // initialization_settings (i.e. the settings passed in via converse.initialize). - var allowed_keys = Object.keys(lodash_es_pick(settings, Object.keys(DEFAULT_SETTINGS))); - var allowed_site_settings = lodash_es_pick(init_settings, allowed_keys); - var updated_settings = lodash_es_assignIn(lodash_es_pick(settings, allowed_keys), allowed_site_settings); - utils_core.merge(app_settings, updated_settings); -} -function registerListener(name, func, context) { - app_settings.on(name, func, context); -} -function unregisterListener(name, func) { - app_settings.off(name, func); +/** + * Checks if `predicate` returns truthy for **all** elements of `collection`. + * Iteration is stopped once `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * **Note:** This method returns `true` for + * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because + * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of + * elements of empty collections. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + * @example + * + * _.every([true, 1, null, 'yes'], Boolean); + * // => false + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.every(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.every(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.every(users, 'active'); + * // => false + */ +function every(collection, predicate, guard) { + var func = lodash_es_isArray(collection) ? _arrayEvery : _baseEvery; + if (guard && _isIterateeCall(collection, predicate, guard)) { + predicate = undefined; + } + return func(collection, _baseIteratee(predicate, 3)); } -function updateAppSettings(key, val) { - if (key == null) return this; // eslint-disable-line no-eq-null +/* harmony default export */ const lodash_es_every = (every); +;// CONCATENATED MODULE: ./node_modules/lodash-es/findIndex.js - var attrs; - if (lodash_es_isObject(key)) { - attrs = key; - } else if (typeof key === 'string') { - attrs = {}; - attrs[key] = val; + + + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var findIndex_nativeMax = Math.max; + +/** + * This method is like `_.find` except that it returns the index of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.findIndex(users, function(o) { return o.user == 'barney'; }); + * // => 0 + * + * // The `_.matches` iteratee shorthand. + * _.findIndex(users, { 'user': 'fred', 'active': false }); + * // => 1 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findIndex(users, ['active', false]); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.findIndex(users, 'active'); + * // => 2 + */ +function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; } - var allowed_keys = Object.keys(lodash_es_pick(attrs, Object.keys(DEFAULT_SETTINGS))); - var changed = {}; - allowed_keys.forEach(function (k) { - var val = attrs[k]; - if (!lodash_es_isEqual(app_settings[k], val)) { - changed[k] = val; - app_settings[k] = val; - } - }); - Object.keys(changed).forEach(function (k) { - return app_settings.trigger('change:' + k, changed[k]); - }); - app_settings.trigger('change', changed); + var index = fromIndex == null ? 0 : lodash_es_toInteger(fromIndex); + if (index < 0) { + index = findIndex_nativeMax(length + index, 0); + } + return _baseFindIndex(array, _baseIteratee(predicate, 3), index); } +/* harmony default export */ const lodash_es_findIndex = (findIndex); +;// CONCATENATED MODULE: ./node_modules/lodash-es/findLastIndex.js + + + + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var findLastIndex_nativeMax = Math.max, + findLastIndex_nativeMin = Math.min; /** - * @async + * This method is like `_.findIndex` except that it iterates over elements + * of `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); + * // => 2 + * + * // The `_.matches` iteratee shorthand. + * _.findLastIndex(users, { 'user': 'barney', 'active': true }); + * // => 0 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findLastIndex(users, ['active', false]); + * // => 2 + * + * // The `_.property` iteratee shorthand. + * _.findLastIndex(users, 'active'); + * // => 0 */ -function initUserSettings() { - var _user_settings; - if (!shared_converse.bare_jid) { - var msg = "No JID to fetch user settings for"; - log.error(msg); - throw Error(msg); +function findLastIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; } - if (!((_user_settings = user_settings) !== null && _user_settings !== void 0 && _user_settings.fetched)) { - var id = "converse.user-settings.".concat(shared_converse.bare_jid); - user_settings = new Model({ - id: id - }); - initStorage(user_settings, id); - user_settings.fetched = user_settings.fetch({ - 'promise': true - }); + var index = length - 1; + if (fromIndex !== undefined) { + index = lodash_es_toInteger(fromIndex); + index = fromIndex < 0 ? findLastIndex_nativeMax(length + index, 0) : findLastIndex_nativeMin(index, length - 1); } - return user_settings.fetched; -} -function getUserSettings() { - return _getUserSettings.apply(this, arguments); -} -function _getUserSettings() { - _getUserSettings = utils_asyncToGenerator( /*#__PURE__*/utils_regeneratorRuntime().mark(function _callee() { - return utils_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return initUserSettings(); - case 2: - return _context.abrupt("return", user_settings); - case 3: - case "end": - return _context.stop(); - } - }, _callee); - })); - return _getUserSettings.apply(this, arguments); -} -function updateUserSettings(_x, _x2) { - return _updateUserSettings.apply(this, arguments); -} -function _updateUserSettings() { - _updateUserSettings = utils_asyncToGenerator( /*#__PURE__*/utils_regeneratorRuntime().mark(function _callee2(data, options) { - return utils_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return initUserSettings(); - case 2: - return _context2.abrupt("return", user_settings.save(data, options)); - case 3: - case "end": - return _context2.stop(); - } - }, _callee2); - })); - return _updateUserSettings.apply(this, arguments); -} -function clearUserSettings() { - return _clearUserSettings.apply(this, arguments); -} -function _clearUserSettings() { - _clearUserSettings = utils_asyncToGenerator( /*#__PURE__*/utils_regeneratorRuntime().mark(function _callee3() { - return utils_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return initUserSettings(); - case 2: - return _context3.abrupt("return", user_settings.clear()); - case 3: - case "end": - return _context3.stop(); - } - }, _callee3); - })); - return _clearUserSettings.apply(this, arguments); + return _baseFindIndex(array, _baseIteratee(predicate, 3), index, true); } -;// CONCATENATED MODULE: ./src/headless/shared/settings/api.js -function api_typeof(obj) { - "@babel/helpers - typeof"; +/* harmony default export */ const lodash_es_findLastIndex = (findLastIndex); +;// CONCATENATED MODULE: ./node_modules/lodash-es/groupBy.js - return api_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, api_typeof(obj); -} -function api_regeneratorRuntime() { - "use strict"; - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - api_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; + +/** Used for built-in method references. */ +var groupBy_objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var groupBy_hasOwnProperty = groupBy_objectProto.hasOwnProperty; + +/** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The order of grouped values + * is determined by the order they occur in `collection`. The corresponding + * value of each key is an array of elements responsible for generating the + * key. The iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * _.groupBy([6.1, 4.2, 6.3], Math.floor); + * // => { '4': [4.2], '6': [6.1, 6.3] } + * + * // The `_.property` iteratee shorthand. + * _.groupBy(['one', 'two', 'three'], 'length'); + * // => { '3': ['one', 'two'], '5': ['three'] } + */ +var groupBy = _createAggregator(function (result, value, key) { + if (groupBy_hasOwnProperty.call(result, key)) { + result[key].push(value); + } else { + _baseAssignValue(result, key, [value]); } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; +}); +/* harmony default export */ const lodash_es_groupBy = (groupBy); +;// CONCATENATED MODULE: ./node_modules/lodash-es/indexOf.js + + + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var indexOf_nativeMax = Math.max; + +/** + * Gets the index at which the first occurrence of `value` is found in `array` + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it's used as the + * offset from the end of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.indexOf([1, 2, 1, 2], 2); + * // => 1 + * + * // Search from the `fromIndex`. + * _.indexOf([1, 2, 1, 2], 2, 2); + * // => 3 + */ +function indexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; + var index = fromIndex == null ? 0 : lodash_es_toInteger(fromIndex); + if (index < 0) { + index = indexOf_nativeMax(length + index, 0); } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; + return _baseIndexOf(array, value, index); +} +/* harmony default export */ const lodash_es_indexOf = (indexOf); +;// CONCATENATED MODULE: ./node_modules/lodash-es/keyBy.js + + + +/** + * Creates an object composed of keys generated from the results of running + * each element of `collection` thru `iteratee`. The corresponding value of + * each key is the last element responsible for generating the key. The + * iteratee is invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The iteratee to transform keys. + * @returns {Object} Returns the composed aggregate object. + * @example + * + * var array = [ + * { 'dir': 'left', 'code': 97 }, + * { 'dir': 'right', 'code': 100 } + * ]; + * + * _.keyBy(array, function(o) { + * return String.fromCharCode(o.code); + * }); + * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } + * + * _.keyBy(array, 'dir'); + * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } + */ +var keyBy = _createAggregator(function (result, value, key) { + _baseAssignValue(result, key, value); +}); +/* harmony default export */ const lodash_es_keyBy = (keyBy); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_strictLastIndexOf.js +/** + * A specialized version of `_.lastIndexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function strictLastIndexOf(array, value, fromIndex) { + var index = fromIndex + 1; + while (index--) { + if (array[index] === value) { + return index; } } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); - }); - }); + return index; +} +/* harmony default export */ const _strictLastIndexOf = (strictLastIndexOf); +;// CONCATENATED MODULE: ./node_modules/lodash-es/lastIndexOf.js + + + + + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var lastIndexOf_nativeMax = Math.max, + lastIndexOf_nativeMin = Math.min; + +/** + * This method is like `_.indexOf` except that it iterates over elements of + * `array` from right to left. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.lastIndexOf([1, 2, 1, 2], 2); + * // => 3 + * + * // Search from the `fromIndex`. + * _.lastIndexOf([1, 2, 1, 2], 2, 2); + * // => 1 + */ +function lastIndexOf(array, value, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == api_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - reject(record.arg); + var index = length; + if (fromIndex !== undefined) { + index = lodash_es_toInteger(fromIndex); + index = index < 0 ? lastIndexOf_nativeMax(length + index, 0) : lastIndexOf_nativeMin(index, length - 1); + } + return value === value ? _strictLastIndexOf(array, value, index) : _baseFindIndex(array, _baseIsNaN, index, true); +} +/* harmony default export */ const lodash_es_lastIndexOf = (lastIndexOf); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseMap.js + + + +/** + * The base implementation of `_.map` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function baseMap(collection, iteratee) { + var index = -1, + result = lodash_es_isArrayLike(collection) ? Array(collection.length) : []; + _baseEach(collection, function (value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; +} +/* harmony default export */ const _baseMap = (baseMap); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseSortBy.js +/** + * The base implementation of `_.sortBy` which uses `comparer` to define the + * sort order of `array` and replaces criteria objects with their corresponding + * values. + * + * @private + * @param {Array} array The array to sort. + * @param {Function} comparer The function to define sort order. + * @returns {Array} Returns `array`. + */ +function baseSortBy(array, comparer) { + var length = array.length; + array.sort(comparer); + while (length--) { + array[length] = array[length].value; + } + return array; +} +/* harmony default export */ const _baseSortBy = (baseSortBy); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_compareAscending.js + + +/** + * Compares values to sort them in ascending order. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {number} Returns the sort order indicator for `value`. + */ +function compareAscending(value, other) { + if (value !== other) { + var valIsDefined = value !== undefined, + valIsNull = value === null, + valIsReflexive = value === value, + valIsSymbol = lodash_es_isSymbol(value); + var othIsDefined = other !== undefined, + othIsNull = other === null, + othIsReflexive = other === other, + othIsSymbol = lodash_es_isSymbol(other); + if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) { + return 1; + } + if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) { + return -1; + } + } + return 0; +} +/* harmony default export */ const _compareAscending = (compareAscending); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_compareMultiple.js + + +/** + * Used by `_.orderBy` to compare multiple properties of a value to another + * and stable sort them. + * + * If `orders` is unspecified, all values are sorted in ascending order. Otherwise, + * specify an order of "desc" for descending or "asc" for ascending sort order + * of corresponding values. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {boolean[]|string[]} orders The order to sort by for each property. + * @returns {number} Returns the sort order indicator for `object`. + */ +function compareMultiple(object, other, orders) { + var index = -1, + objCriteria = object.criteria, + othCriteria = other.criteria, + length = objCriteria.length, + ordersLength = orders.length; + while (++index < length) { + var result = _compareAscending(objCriteria[index], othCriteria[index]); + if (result) { + if (index >= ordersLength) { + return result; + } + var order = orders[index]; + return result * (order == 'desc' ? -1 : 1); + } + } + // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications + // that causes it, under certain circumstances, to provide the same value for + // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 + // for more details. + // + // This also ensures a stable sort in V8 and other engines. + // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details. + return object.index - other.index; +} +/* harmony default export */ const _compareMultiple = (compareMultiple); +;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseOrderBy.js + + + + + + + + + + +/** + * The base implementation of `_.orderBy` without param guards. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. + * @param {string[]} orders The sort orders of `iteratees`. + * @returns {Array} Returns the new sorted array. + */ +function baseOrderBy(collection, iteratees, orders) { + if (iteratees.length) { + iteratees = _arrayMap(iteratees, function (iteratee) { + if (lodash_es_isArray(iteratee)) { + return function (value) { + return _baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee); + }; + } + return iteratee; + }); + } else { + iteratees = [lodash_es_identity]; + } + var index = -1; + iteratees = _arrayMap(iteratees, _baseUnary(_baseIteratee)); + var result = _baseMap(collection, function (value, key, collection) { + var criteria = _arrayMap(iteratees, function (iteratee) { + return iteratee(value); + }); + return { + 'criteria': criteria, + 'index': ++index, + 'value': value + }; + }); + return _baseSortBy(result, function (object, other) { + return _compareMultiple(object, other, orders); + }); +} +/* harmony default export */ const _baseOrderBy = (baseOrderBy); +;// CONCATENATED MODULE: ./node_modules/lodash-es/sortBy.js + + + + + +/** + * Creates an array of elements, sorted in ascending order by the results of + * running each element in a collection thru each iteratee. This method + * performs a stable sort, that is, it preserves the original sort order of + * equal elements. The iteratees are invoked with one argument: (value). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {...(Function|Function[])} [iteratees=[_.identity]] + * The iteratees to sort by. + * @returns {Array} Returns the new sorted array. + * @example + * + * var users = [ + * { 'user': 'fred', 'age': 48 }, + * { 'user': 'barney', 'age': 36 }, + * { 'user': 'fred', 'age': 30 }, + * { 'user': 'barney', 'age': 34 } + * ]; + * + * _.sortBy(users, [function(o) { return o.user; }]); + * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] + * + * _.sortBy(users, ['user', 'age']); + * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] + */ +var sortBy = _baseRest(function (collection, iteratees) { + if (collection == null) { + return []; + } + var length = iteratees.length; + if (length > 1 && _isIterateeCall(collection, iteratees[0], iteratees[1])) { + iteratees = []; + } else if (length > 2 && _isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { + iteratees = [iteratees[0]]; + } + return _baseOrderBy(collection, _baseFlatten(iteratees, 1), []); +}); +/* harmony default export */ const lodash_es_sortBy = (sortBy); +;// CONCATENATED MODULE: ./node_modules/@converse/skeletor/src/collection.js +function collection_typeof(obj) { + "@babel/helpers - typeof"; + + return collection_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, collection_typeof(obj); +} +function collection_regeneratorRuntime() { + "use strict"; + + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + collection_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; + } + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == collection_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { @@ -28062,7 +26516,7 @@ function api_regeneratorRuntime() { } }, exports; } -function api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function collection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -28076,678 +26530,1054 @@ function api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { Promise.resolve(value).then(_next, _throw); } } -function api_asyncToGenerator(fn) { +function collection_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + collection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + collection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +// Backbone.js 1.4.0 +// (c) 2010-2019 Jeremy Ashkenas and DocumentCloud +// Backbone may be freely distributed under the MIT license. +// Collection +// ---------- +// If models tend to represent a single row of data, a Collection is +// more analogous to a table full of data ... or a small slice or page of that +// table, or a collection of rows that belong together for a particular reason +// -- all of the messages in this particular folder, all of the documents +// belonging to this particular author, and so on. Collections maintain +// indexes of their models, both in order, and for lookup by `id`. -/** - * This grouping allows access to the - * [configuration settings](/docs/html/configuration.html#configuration-settings) - * of Converse. - * - * @namespace _converse.api.settings - * @memberOf _converse.api - */ -var settings_api = { - /** - * Allows new configuration settings to be specified, or new default values for - * existing configuration settings to be specified. - * - * Note, calling this method *after* converse.initialize has been - * called will *not* change the initialization settings provided via - * `converse.initialize`. - * - * @method _converse.api.settings.extend - * @param { object } settings The configuration settings - * @example - * _converse.api.settings.extend({ - * 'enable_foo': true - * }); - * - * // The user can then override the default value of the configuration setting when - * // calling `converse.initialize`. - * converse.initialize({ - * 'enable_foo': false - * }); - */ - extend: function extend(settings) { - return extendAppSettings(settings); + + + + + + + + + + + + + + + + + + +var _slice = Array.prototype.slice; + +// Create a new **Collection**, perhaps to contain a specific type of `model`. +// If a `comparator` is specified, the Collection will maintain +// its models in sort order, as they're added and removed. +var Collection = function Collection(models, options) { + options || (options = {}); + this.preinitialize.apply(this, arguments); + if (options.model) this.model = options.model; + if (options.comparator !== undefined) this.comparator = options.comparator; + this._reset(); + this.initialize.apply(this, arguments); + if (models) this.reset(models, lodash_es_assignIn({ + silent: true + }, options)); +}; +Collection.extend = inherits; + +// Default options for `Collection#set`. +var setOptions = { + add: true, + remove: true, + merge: true +}; +var addOptions = { + add: true, + remove: false +}; + +// Splices `insert` into `array` at index `at`. +var collection_splice = function splice(array, insert, at) { + at = Math.min(Math.max(at, 0), array.length); + var tail = Array(array.length - at); + var length = insert.length; + var i; + for (i = 0; i < tail.length; i++) tail[i] = array[i + at]; + for (i = 0; i < length; i++) array[i + at] = insert[i]; + for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i]; +}; + +// Define the Collection's inheritable methods. +Object.assign(Collection.prototype, Events, { + // The default model for a collection is just a **Backbone.Model**. + // This should be overridden in most cases. + model: Model, + // preinitialize is an empty function by default. You can override it with a function + // or object. preinitialize will run before any instantiation logic is run in the Collection. + preinitialize: function preinitialize() {}, + // Initialize is an empty function by default. Override it with your own + // initialization logic. + initialize: function initialize() {}, + // The JSON representation of a Collection is an array of the + // models' attributes. + toJSON: function toJSON(options) { + return this.map(function (model) { + return model.toJSON(options); + }); }, - update: function update(settings) { - log.warn('The api.settings.update method has been deprecated and will be removed. ' + 'Please use api.settings.extend instead.'); - return this.extend(settings); + // Proxy `Backbone.sync` by default. + sync: function sync(method, model, options) { + return getSyncMethod(this)(method, model, options); }, - /** - * @method _converse.api.settings.get - * @returns {*} Value of the particular configuration setting. - * @example _converse.api.settings.get("play_sounds"); - */ - get: function get(key) { - return getAppSetting(key); + // Add a model, or list of models to the set. `models` may be Backbone + // Models or raw JavaScript objects to be converted to Models, or any + // combination of the two. + add: function add(models, options) { + return this.set(models, lodash_es_assignIn({ + merge: false + }, options, addOptions)); }, - /** - * Set one or many configuration settings. - * - * Note, this is not an alternative to calling {@link converse.initialize}, which still needs - * to be called. Generally, you'd use this method after Converse is already - * running and you want to change the configuration on-the-fly. - * - * @method _converse.api.settings.set - * @param { Object | string } [settings_or_key] - * An object containing configuration settings. - * Alternatively to passing in an object, you can pass in a key and a value. - * @param { string } [value] - * @example _converse.api.settings.set("play_sounds", true); - * @example - * _converse.api.settings.set({ - * "play_sounds": true, - * "hide_offline_users": true - * }); - */ - set: function set(settings_or_key, value) { - updateAppSettings(settings_or_key, value); + // Remove a model, or a list of models from the set. + remove: function remove(models, options) { + options = lodash_es_assignIn({}, options); + var singular = !Array.isArray(models); + models = singular ? [models] : models.slice(); + var removed = this._removeModels(models, options); + if (!options.silent && removed.length) { + options.changes = { + added: [], + merged: [], + removed: removed + }; + this.trigger('update', this, options); + } + return singular ? removed[0] : removed; }, - /** - * The `listen` namespace exposes methods for creating event listeners - * (aka handlers) for events related to settings. - * - * @namespace _converse.api.settings.listen - * @memberOf _converse.api.settings - */ - listen: { - /** - * Register an event listener for the passed in event. - * @method _converse.api.settings.listen.on - * @param { ('change') } name - The name of the event to listen for. - * Currently there is only the 'change' event. - * @param { Function } handler - The event handler function - * @param { Object } [context] - The context of the `this` attribute of the - * handler function. - * @example _converse.api.settings.listen.on('change', callback); - */ - on: function on(name, handler, context) { - registerListener(name, handler, context); - }, - /** - * To stop listening to an event, you can use the `not` method. - * @method _converse.api.settings.listen.not - * @param { String } name The event's name - * @param { Function } handler The callback method that is to no longer be called when the event fires - * @example _converse.api.settings.listen.not('change', callback); - */ - not: function not(name, handler) { - unregisterListener(name, handler); - } - } -}; - -/** - * API for accessing and setting user settings. User settings are - * different from the application settings from {@link _converse.api.settings} - * because they are per-user and set via user action. - * @namespace _converse.api.user.settings - * @memberOf _converse.api.user - */ -var user_settings_api = { - /** - * Returns the user settings model. Useful when you want to listen for change events. - * @async - * @method _converse.api.user.settings.getModel - * @returns {Promise} - * @example const settings = await _converse.api.user.settings.getModel(); - */ - getModel: function getModel() { - return getUserSettings(); - }, - /** - * Get the value of a particular user setting. - * @method _converse.api.user.settings.get - * @param { String } key - The setting name - * @param {*} [fallback] - An optional fallback value if the user setting is undefined - * @returns {Promise} Promise which resolves with the value of the particular configuration setting. - * @example _converse.api.user.settings.get("foo"); - */ - get: function get(key, fallback) { - return api_asyncToGenerator( /*#__PURE__*/api_regeneratorRuntime().mark(function _callee() { - var user_settings; - return api_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return getUserSettings(); - case 2: - user_settings = _context.sent; - return _context.abrupt("return", user_settings.get(key) === undefined ? fallback : user_settings.get(key)); - case 4: - case "end": - return _context.stop(); - } - }, _callee); - }))(); - }, - /** - * Set one or many user settings. - * @async - * @method _converse.api.user.settings.set - * @param { Object } [settings] An object containing configuration settings. - * @param { string } [key] Alternatively to passing in an object, you can pass in a key and a value. - * @param { string } [value] - * @example _converse.api.user.settings.set("foo", "bar"); - * @example - * _converse.api.user.settings.set({ - * "foo": "bar", - * "baz": "buz" - * }); - */ - set: function set(key, val) { - if (lodash_es_isObject(key)) { - return updateUserSettings(key, { - 'promise': true - }); - } else { - var o = {}; - o[key] = val; - return updateUserSettings(o, { - 'promise': true - }); + // Update a collection by `set`-ing a new list of models, adding new ones, + // removing models that are no longer present, and merging models that + // already exist in the collection, as necessary. Similar to **Model#set**, + // the core operation for updating the data contained by the collection. + set: function set(models, options) { + if (models == null) return; + options = lodash_es_assignIn({}, setOptions, options); + if (options.parse && !this._isModel(models)) { + models = this.parse(models, options) || []; } - }, - /** - * Clears all the user settings - * @async - * @method _converse.api.user.settings.clear - */ - clear: function clear() { - return clearUserSettings(); - } -}; -;// CONCATENATED MODULE: ./src/headless/utils/stanza.js -function stanza_typeof(obj) { - "@babel/helpers - typeof"; - - return stanza_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, stanza_typeof(obj); -} -function stanza_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} -function stanza_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, stanza_toPropertyKey(descriptor.key), descriptor); - } -} -function stanza_createClass(Constructor, protoProps, staticProps) { - if (protoProps) stanza_defineProperties(Constructor.prototype, protoProps); - if (staticProps) stanza_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function stanza_toPropertyKey(arg) { - var key = stanza_toPrimitive(arg, "string"); - return stanza_typeof(key) === "symbol" ? key : String(key); -} -function stanza_toPrimitive(input, hint) { - if (stanza_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (stanza_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); -} + var singular = !Array.isArray(models); + models = singular ? [models] : models.slice(); + var at = options.at; + if (at != null) at = +at; + if (at > this.length) at = this.length; + if (at < 0) at += this.length + 1; + var set = []; + var toAdd = []; + var toMerge = []; + var toRemove = []; + var modelMap = {}; + var add = options.add; + var merge = options.merge; + var remove = options.remove; + var sort = false; + var sortable = this.comparator && at == null && options.sort !== false; + var sortAttr = lodash_es_isString(this.comparator) ? this.comparator : null; + // Turn bare objects into model references, and prevent invalid models + // from being added. + var model, i; + for (i = 0; i < models.length; i++) { + model = models[i]; -var PARSE_ERROR_NS = 'http://www.w3.org/1999/xhtml'; -function toStanza(string, throwErrorIfInvalidNS) { - var doc = Strophe.xmlHtmlNode(string); - if (doc.getElementsByTagNameNS(PARSE_ERROR_NS, 'parsererror').length) { - throw new Error("Parser Error: ".concat(string)); - } - var node = doc.firstElementChild; - if (['message', 'iq', 'presence'].includes(node.nodeName.toLowerCase()) && node.namespaceURI !== 'jabber:client' && node.namespaceURI !== 'jabber:server') { - var err_msg = "Invalid namespaceURI ".concat(node.namespaceURI); - log.error(err_msg); - if (throwErrorIfInvalidNS) throw new Error(err_msg); - } - return node; -} + // If a duplicate is found, prevent it from being added and + // optionally merge it into the existing model. + var existing = this.get(model); + if (existing) { + if (merge && model !== existing) { + var attrs = this._isModel(model) ? model.attributes : model; + if (options.parse) attrs = existing.parse(attrs, options); + existing.set(attrs, options); + toMerge.push(existing); + if (sortable && !sort) sort = existing.hasChanged(sortAttr); + } + if (!modelMap[existing.cid]) { + modelMap[existing.cid] = true; + set.push(existing); + } + models[i] = existing; -/** - * A Stanza represents a XML element used in XMPP (commonly referred to as - * stanzas). - */ -var Stanza = /*#__PURE__*/function () { - function Stanza(strings, values) { - stanza_classCallCheck(this, Stanza); - this.strings = strings; - this.values = values; - } - stanza_createClass(Stanza, [{ - key: "toString", - value: function toString() { - var _this = this; - this.string = this.string || this.strings.reduce(function (acc, str) { - var idx = _this.strings.indexOf(str); - var value = _this.values.length > idx ? _this.values[idx].toString() : ''; - return acc + str + value; - }, ''); - return this.string; - } - }, { - key: "tree", - value: function tree() { - var _this$node; - this.node = (_this$node = this.node) !== null && _this$node !== void 0 ? _this$node : toStanza(this.toString(), true); - return this.node; + // If this is a new, valid model, push it to the `toAdd` list. + } else if (add) { + model = models[i] = this._prepareModel(model, options); + if (model) { + toAdd.push(model); + this._addReference(model, options); + modelMap[model.cid] = true; + set.push(model); + } + } } - }]); - return Stanza; -}(); -/** - * Tagged template literal function which generates {@link Stanza } objects - * - * Similar to the `html` function, from Lit. - * - * @example stx`${show}` - */ -function stx(strings) { - for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - values[_key - 1] = arguments[_key]; - } - return new Stanza(strings, values); -} -;// CONCATENATED MODULE: ./src/headless/utils/core.js -function core_regeneratorRuntime() { - "use strict"; - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - core_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; - } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; + // Remove stale models. + if (remove) { + for (i = 0; i < this.length; i++) { + model = this.models[i]; + if (!modelMap[model.cid]) toRemove.push(model); + } + if (toRemove.length) this._removeModels(toRemove, options); } - } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); + + // See if sorting is needed, update `length` and splice in new models. + var orderChanged = false; + var replace = !sortable && add && remove; + if (set.length && replace) { + orderChanged = this.length !== set.length || lodash_es_some(this.models, function (m, index) { + return m !== set[index]; }); - }); - } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == utils_core_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - reject(record.arg); + this.models.length = 0; + collection_splice(this.models, set, 0); + this.length = this.models.length; + } else if (toAdd.length) { + if (sortable) sort = true; + collection_splice(this.models, toAdd, at == null ? this.length : at); + this.length = this.models.length; } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } + + // Silently sort the collection if appropriate. + if (sort) this.sort({ + silent: true }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); - } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done - }; - } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + + // Unless silenced, it's time to fire all appropriate add/sort/update events. + if (!options.silent) { + for (i = 0; i < toAdd.length; i++) { + if (at != null) options.index = at + i; + model = toAdd[i]; + model.trigger('add', model, this, options); } - }; - } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); - } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); - } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal", delete record.arg, entry.completion = record; - } - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); - } - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) return iteratorMethod.call(iterable); - if ("function" == typeof iterable.next) return iterable; - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; - return next.value = undefined, next.done = !0, next; - }; - return next.next = next; + if (sort || orderChanged) this.trigger('sort', this, options); + if (toAdd.length || toRemove.length || toMerge.length) { + options.changes = { + added: toAdd, + removed: toRemove, + merged: toMerge + }; + this.trigger('update', this, options); } } - return { - next: doneResult - }; - } - function doneResult() { - return { - value: undefined, - done: !0 - }; - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { - var ctor = "function" == typeof genFun && genFun.constructor; - return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); - }, exports.mark = function (genFun) { - return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; - }, exports.awrap = function (arg) { - return { - __await: arg - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - void 0 === PromiseImpl && (PromiseImpl = Promise); - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { - return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; - } - return next.done = !0, next; + + // Return the added (or merged) model (or models). + return singular ? models[0] : models; + }, + clearStore: function () { + var _clearStore = collection_asyncToGenerator( /*#__PURE__*/collection_regeneratorRuntime().mark(function _callee() { + var options, + filter, + _args = arguments; + return collection_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + options = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}; + filter = _args.length > 1 && _args[1] !== undefined ? _args[1] : function (o) { + return o; + }; + _context.next = 4; + return Promise.all(this.models.filter(filter).map(function (m) { + return new Promise(function (resolve) { + m.destroy(Object.assign(options, { + 'success': resolve, + 'error': function error(m, e) { + console.error(e); + resolve(); + } + })); + }); + })); + case 4: + _context.next = 6; + return this.browserStorage.clear(); + case 6: + this.reset(); + case 7: + case "end": + return _context.stop(); + } + }, _callee, this); + })); + function clearStore() { + return _clearStore.apply(this, arguments); + } + return clearStore; + }(), + // When you have more items than you want to add or remove individually, + // you can reset the entire set with a new list of models, without firing + // any granular `add` or `remove` events. Fires `reset` when finished. + // Useful for bulk operations and optimizations. + reset: function reset(models, options) { + options = options ? lodash_es_clone(options) : {}; + for (var i = 0; i < this.models.length; i++) { + this._removeReference(this.models[i], options); + } + options.previousModels = this.models; + this._reset(); + models = this.add(models, lodash_es_assignIn({ + silent: true + }, options)); + if (!options.silent) this.trigger('reset', this, options); + return models; + }, + // Add a model to the end of the collection. + push: function push(model, options) { + return this.add(model, lodash_es_assignIn({ + at: this.length + }, options)); + }, + // Remove a model from the end of the collection. + pop: function pop(options) { + var model = this.at(this.length - 1); + return this.remove(model, options); + }, + // Add a model to the beginning of the collection. + unshift: function unshift(model, options) { + return this.add(model, lodash_es_assignIn({ + at: 0 + }, options)); + }, + // Remove a model from the beginning of the collection. + shift: function shift(options) { + var model = this.at(0); + return this.remove(model, options); + }, + // Slice out a sub-array of models from the collection. + slice: function slice() { + return _slice.apply(this.models, arguments); + }, + filter: function filter(callback, thisArg) { + return this.models.filter(lodash_es_isFunction(callback) ? callback : function (m) { + return m.matches(callback); + }, thisArg); + }, + every: function every(pred) { + return lodash_es_every(this.models.map(function (m) { + return m.attributes; + }), pred); + }, + difference: function difference(values) { + return lodash_es_difference(this.models, values); + }, + max: function max() { + return Math.max.apply(Math, this.models); + }, + min: function min() { + return Math.min.apply(Math, this.models); + }, + drop: function drop() { + var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + return this.models.slice(n); + }, + some: function some(pred) { + return lodash_es_some(this.models.map(function (m) { + return m.attributes; + }), pred); + }, + sortBy: function sortBy(iteratee) { + return lodash_es_sortBy(this.models, lodash_es_isFunction(iteratee) ? iteratee : function (m) { + return lodash_es_isString(iteratee) ? m.get(iteratee) : m.matches(iteratee); + }); + }, + isEmpty: function isEmpty() { + return lodash_es_isEmpty(this.models); + }, + keyBy: function keyBy(iteratee) { + return lodash_es_keyBy(this.models, iteratee); + }, + each: function each(callback, thisArg) { + return this.forEach(callback, thisArg); + }, + forEach: function forEach(callback, thisArg) { + return this.models.forEach(callback, thisArg); + }, + includes: function includes(item) { + return this.models.includes(item); + }, + size: function size() { + return this.models.length; + }, + countBy: function countBy(f) { + return lodash_es_countBy(this.models, lodash_es_isFunction(f) ? f : function (m) { + return lodash_es_isString(f) ? m.get(f) : m.matches(f); + }); + }, + groupBy: function groupBy(pred) { + return lodash_es_groupBy(this.models, lodash_es_isFunction(pred) ? pred : function (m) { + return lodash_es_isString(pred) ? m.get(pred) : m.matches(pred); + }); + }, + indexOf: function indexOf(fromIndex) { + return lodash_es_indexOf(this.models, fromIndex); + }, + findLastIndex: function findLastIndex(pred, fromIndex) { + return lodash_es_findLastIndex(this.models, lodash_es_isFunction(pred) ? pred : function (m) { + return lodash_es_isString(pred) ? m.get(pred) : m.matches(pred); + }, fromIndex); + }, + lastIndexOf: function lastIndexOf(fromIndex) { + return lodash_es_lastIndexOf(this.models, fromIndex); + }, + findIndex: function findIndex(pred) { + return lodash_es_findIndex(this.models, lodash_es_isFunction(pred) ? pred : function (m) { + return lodash_es_isString(pred) ? m.get(pred) : m.matches(pred); + }); + }, + last: function last() { + var length = this.models == null ? 0 : this.models.length; + return length ? this.models[length - 1] : undefined; + }, + head: function head() { + return this.models[0]; + }, + first: function first() { + return this.head(); + }, + map: function map(cb, thisArg) { + return this.models.map(lodash_es_isFunction(cb) ? cb : function (m) { + return lodash_es_isString(cb) ? m.get(cb) : m.matches(cb); + }, thisArg); + }, + reduce: function reduce(callback, initialValue) { + return this.models.reduce(callback, initialValue || this.models[0]); + }, + reduceRight: function reduceRight(callback, initialValue) { + return this.models.reduceRight(callback, initialValue || this.models[0]); + }, + toArray: function toArray() { + return Array.from(this.models); + }, + // Get a model from the set by id, cid, model object with id or cid + // properties, or an attributes object that is transformed through modelId. + get: function get(obj) { + if (obj == null) return undefined; + return this._byId[obj] || this._byId[this.modelId(this._isModel(obj) ? obj.attributes : obj)] || obj.cid && this._byId[obj.cid]; + }, + // Returns `true` if the model is in the collection. + has: function has(obj) { + return this.get(obj) != null; + }, + // Get the model at the given index. + at: function at(index) { + if (index < 0) index += this.length; + return this.models[index]; + }, + // Return models with matching attributes. Useful for simple cases of + // `filter`. + where: function where(attrs, first) { + return this[first ? 'find' : 'filter'](attrs); + }, + // Return the first model with matching attributes. Useful for simple cases + // of `find`. + findWhere: function findWhere(attrs) { + return this.where(attrs, true); + }, + find: function find(predicate, fromIndex) { + var pred = lodash_es_isFunction(predicate) ? predicate : function (m) { + return m.matches(predicate); }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + return this.models.find(pred, fromIndex); + }, + // Force the collection to re-sort itself. You don't need to call this under + // normal circumstances, as the set will maintain sort order as each item + // is added. + sort: function sort(options) { + var comparator = this.comparator; + if (!comparator) throw new Error('Cannot sort a set without a comparator'); + options || (options = {}); + var length = comparator.length; + if (lodash_es_isFunction(comparator)) comparator = comparator.bind(this); + + // Run sort based on type of `comparator`. + if (length === 1 || lodash_es_isString(comparator)) { + this.models = this.sortBy(comparator); + } else { + this.models.sort(comparator); + } + if (!options.silent) this.trigger('sort', this, options); + return this; + }, + // Pluck an attribute from each model in the collection. + pluck: function pluck(attr) { + return this.map(attr + ''); + }, + // Fetch the default set of models for this collection, resetting the + // collection when they arrive. If `reset: true` is passed, the response + // data will be passed through the `reset` method instead of `set`. + fetch: function fetch(options) { + options = lodash_es_assignIn({ + parse: true + }, options); + var success = options.success; + var collection = this; + var promise = options.promise && getResolveablePromise(); + options.success = function (resp) { + var method = options.reset ? 'reset' : 'set'; + collection[method](resp, options); + if (success) success.call(options.context, collection, resp, options); + promise && promise.resolve(); + collection.trigger('sync', collection, resp, options); + }; + wrapError(this, options); + return promise ? promise : this.sync('read', this, options); + }, + // Create a new instance of a model in this collection. Add the model to the + // collection immediately, unless `wait: true` is passed, in which case we + // wait for the server to agree. + create: function create(model, options) { + options = options ? lodash_es_clone(options) : {}; + var wait = options.wait; + var return_promise = options.promise; + var promise = return_promise && getResolveablePromise(); + model = this._prepareModel(model, options); + if (!model) return false; + if (!wait) this.add(model, options); + var collection = this; + var success = options.success; + var error = options.error; + options.success = function (m, resp, callbackOpts) { + if (wait) { + collection.add(m, callbackOpts); } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } - } + if (success) { + success.call(callbackOpts.context, m, resp, callbackOpts); } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } + if (return_promise) { + promise.resolve(m); } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + }; + options.error = function (model, e, options) { + error && error.call(options.context, model, e, options); + return_promise && promise.reject(e); + }; + model.save(null, Object.assign(options, { + 'promise': false + })); + if (return_promise) { + return promise; + } else { + return model; + } + }, + // **parse** converts a response into a list of models to be added to the + // collection. The default implementation is just to pass it through. + parse: function parse(resp, options) { + return resp; + }, + // Create a new collection with an identical list of models as this one. + clone: function clone() { + return new this.constructor(this.models, { + model: this.model, + comparator: this.comparator + }); + }, + // Define how to uniquely identify models in the collection. + modelId: function modelId(attrs) { + var _this$model$prototype; + return attrs[((_this$model$prototype = this.model.prototype) === null || _this$model$prototype === void 0 ? void 0 : _this$model$prototype.idAttribute) || 'id']; + }, + // Get an iterator of all models in this collection. + values: function values() { + return new CollectionIterator(this, ITERATOR_VALUES); + }, + // Get an iterator of all model IDs in this collection. + keys: function keys() { + return new CollectionIterator(this, ITERATOR_KEYS); + }, + // Get an iterator of all [ID, model] tuples in this collection. + entries: function entries() { + return new CollectionIterator(this, ITERATOR_KEYSVALUES); + }, + // Private method to reset all internal state. Called when the collection + // is first initialized or reset. + _reset: function _reset() { + this.length = 0; + this.models = []; + this._byId = {}; + }, + // Prepare a hash of attributes (or other model) to be added to this + // collection. + _prepareModel: function _prepareModel(attrs, options) { + if (this._isModel(attrs)) { + if (!attrs.collection) attrs.collection = this; + return attrs; + } + options = options ? lodash_es_clone(options) : {}; + options.collection = this; + var model = new this.model(attrs, options); + if (!model.validationError) return model; + this.trigger('invalid', this, model.validationError, options); + return false; + }, + // Internal method called by both remove and set. + _removeModels: function _removeModels(models, options) { + var removed = []; + for (var i = 0; i < models.length; i++) { + var model = this.get(models[i]); + if (!model) continue; + var index = this.indexOf(model); + this.models.splice(index, 1); + this.length--; + + // Remove references before triggering 'remove' event to prevent an + // infinite loop. #3693 + delete this._byId[model.cid]; + var id = this.modelId(model.attributes); + if (id != null) delete this._byId[id]; + if (!options.silent) { + options.index = index; + model.trigger('remove', model, this, options); } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; + removed.push(model); + this._removeReference(model, options); + } + return removed; + }, + // Method for checking whether an object should be considered a model for + // the purposes of adding to the collection. + _isModel: function _isModel(model) { + return model instanceof Model; + }, + // Internal method to create a model's ties to a collection. + _addReference: function _addReference(model, options) { + this._byId[model.cid] = model; + var id = this.modelId(model.attributes); + if (id != null) this._byId[id] = model; + model.on('all', this._onModelEvent, this); + }, + // Internal method to sever a model's ties to a collection. + _removeReference: function _removeReference(model, options) { + delete this._byId[model.cid]; + var id = this.modelId(model.attributes); + if (id != null) delete this._byId[id]; + if (this === model.collection) delete model.collection; + model.off('all', this._onModelEvent, this); + }, + // Internal method called every time a model in the set fires an event. + // Sets need to update their indexes when models change ids. All other + // events simply proxy through. "add" and "remove" events that originate + // in other collections are ignored. + _onModelEvent: function _onModelEvent(event, model, collection, options) { + if (model) { + if ((event === 'add' || event === 'remove') && collection !== this) return; + if (event === 'destroy') this.remove(model, options); + if (event === 'change') { + var prevId = this.modelId(model.previousAttributes()); + var id = this.modelId(model.attributes); + if (prevId !== id) { + if (prevId != null) delete this._byId[prevId]; + if (id != null) this._byId[id] = model; } } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } - }, exports; -} -function _slicedToArray(arr, i) { - return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || core_unsupportedIterableToArray(arr, i) || _nonIterableRest(); -} -function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} -function core_unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return core_arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return core_arrayLikeToArray(o, minLen); -} -function core_arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; + this.trigger.apply(this, arguments); + } +}); + +// Defining an @@iterator method implements JavaScript's Iterable protocol. +// In modern ES2015 browsers, this value is found at Symbol.iterator. +/* global Symbol */ +var $$iterator = typeof Symbol === 'function' && Symbol.iterator; +if ($$iterator) { + Collection.prototype[$$iterator] = Collection.prototype.values; } -function _iterableToArrayLimit(arr, i) { - var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; - if (null != _i) { - var _s, - _e, - _x, - _r, - _arr = [], - _n = !0, - _d = !1; - try { - if (_x = (_i = _i.call(arr)).next, 0 === i) { - if (Object(_i) !== _i) return; - _n = !1; - } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); - } catch (err) { - _d = !0, _e = err; - } finally { - try { - if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; - } finally { - if (_d) throw _e; + +// CollectionIterator +// ------------------ + +// A CollectionIterator implements JavaScript's Iterator protocol, allowing the +// use of `for of` loops in modern browsers and interoperation between +// Collection and other JavaScript functions and third-party libraries +// which can operate on Iterables. +var CollectionIterator = function CollectionIterator(collection, kind) { + this._collection = collection; + this._kind = kind; + this._index = 0; +}; + +// This "enum" defines the three possible kinds of values which can be emitted +// by a CollectionIterator that correspond to the values(), keys() and entries() +// methods on Collection, respectively. +var ITERATOR_VALUES = 1; +var ITERATOR_KEYS = 2; +var ITERATOR_KEYSVALUES = 3; + +// All Iterators should themselves be Iterable. +if ($$iterator) { + CollectionIterator.prototype[$$iterator] = function () { + return this; + }; +} +CollectionIterator.prototype.next = function () { + if (this._collection) { + // Only continue iterating if the iterated collection is long enough. + if (this._index < this._collection.length) { + var model = this._collection.at(this._index); + this._index++; + + // Construct a value depending on what kind of values should be iterated. + var value; + if (this._kind === ITERATOR_VALUES) { + value = model; + } else { + var id = this._collection.modelId(model.attributes); + if (this._kind === ITERATOR_KEYS) { + value = id; + } else { + // ITERATOR_KEYSVALUES + value = [id, model]; + } } + return { + value: value, + done: false + }; } - return _arr; + + // Once exhausted, remove the reference to the collection so future + // calls to the next method always return done. + this._collection = undefined; } -} -function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; -} -function utils_core_typeof(obj) { + return { + value: undefined, + done: true + }; +}; +;// CONCATENATED MODULE: external "filesize" +const external_filesize_namespaceObject = filesize; +;// CONCATENATED MODULE: external "lit" +const external_lit_namespaceObject = lit; +;// CONCATENATED MODULE: ./src/headless/shared/api/public.js +function public_typeof(obj) { "@babel/helpers - typeof"; - return utils_core_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return public_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, utils_core_typeof(obj); + }, public_typeof(obj); } -function core_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function public_regeneratorRuntime() { + "use strict"; + + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + public_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; + } + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == public_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + reject(record.arg); + } + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); + } + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } + }; + } + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); + } + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; + }; + return next.next = next; + } + } + return { + next: doneResult + }; + } + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; +} +function public_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -28761,27 +27591,22 @@ function core_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) Promise.resolve(value).then(_next, _throw); } } -function core_asyncToGenerator(fn) { +function public_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - core_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + public_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - core_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + public_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -/** - * @copyright The Converse.js contributors - * @license Mozilla Public License (MPLv2) - * @description This is the core utilities module. - */ @@ -28795,1818 +27620,1829 @@ function core_asyncToGenerator(fn) { -/** - * The utils object - * @namespace u - */ -var u = {}; -function isElement(el) { - return el instanceof Element || el instanceof HTMLDocument; -} -function isError(obj) { - return Object.prototype.toString.call(obj) === "[object Error]"; -} -function core_isFunction(val) { - return typeof val === 'function'; -} -function isEmptyMessage(attrs) { - if (attrs instanceof Model) { - attrs = attrs.attributes; - } - return !attrs['oob_url'] && !attrs['file'] && !(attrs['is_encrypted'] && attrs['plaintext']) && !attrs['message'] && !attrs['body']; -} + + + + + + /** - * We distinguish between UniView and MultiView instances. + * ### The Public API * - * UniView means that only one chat is visible, even though there might be multiple ongoing chats. - * MultiView means that multiple chats may be visible simultaneously. + * This namespace contains public API methods which are are + * accessible on the global `converse` object. + * They are public, because any JavaScript in the + * page can call them. Public methods therefore don’t expose any sensitive + * or closured data. To do that, you’ll need to create a plugin, which has + * access to the private API method. + * + * @global + * @namespace converse */ -function isUniView() { - return ['mobile', 'fullscreen', 'embedded'].includes(settings_api.get("view_mode")); -} -function shouldClearCache() { - var api = shared_converse.api; - return !shared_converse.config.get('trusted') || api.settings.get('clear_cache_on_logout') || shared_converse.isTestEnv(); -} -function tearDown() { - return _tearDown.apply(this, arguments); -} -function _tearDown() { - _tearDown = core_asyncToGenerator( /*#__PURE__*/core_regeneratorRuntime().mark(function _callee() { - var api; - return core_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - api = shared_converse.api; - _context.next = 3; - return api.trigger('beforeTearDown', { - 'synchronous': true - }); - case 3: - window.removeEventListener('click', shared_converse.onUserActivity); - window.removeEventListener('focus', shared_converse.onUserActivity); - window.removeEventListener('keypress', shared_converse.onUserActivity); - window.removeEventListener('mousemove', shared_converse.onUserActivity); - window.removeEventListener(shared_converse.unloadevent, shared_converse.onUserActivity); - window.clearInterval(shared_converse.everySecondTrigger); - api.trigger('afterTearDown'); - return _context.abrupt("return", shared_converse); - case 11: - case "end": - return _context.stop(); - } - }, _callee); - })); - return _tearDown.apply(this, arguments); -} -function clearSession() { - var _converse$session; - (_converse$session = shared_converse.session) === null || _converse$session === void 0 ? void 0 : _converse$session.destroy(); - delete shared_converse.session; - shouldClearCache() && shared_converse.api.user.settings.clear(); +var public_converse = Object.assign(window.converse || {}, { + CHAT_STATES: CHAT_STATES, + keycodes: KEYCODES, /** - * Synchronouse event triggered once the user session has been cleared, - * for example when the user has logged out or when Converse has - * disconnected for some other reason. - * @event _converse#clearSession + * Public API method which initializes Converse. + * This method must always be called when using Converse. + * @async + * @memberOf converse + * @method initialize + * @param { object } config A map of [configuration-settings](https://conversejs.org/docs/html/configuration.html#configuration-settings). + * @example + * converse.initialize({ + * auto_list_rooms: false, + * auto_subscribe: false, + * bosh_service_url: 'https://bind.example.com', + * hide_muc_server: false, + * i18n: 'en', + * play_sounds: true, + * show_controlbox_by_default: true, + * debug: false, + * roster_groups: true + * }); */ - return shared_converse.api.trigger('clearSession', { - 'synchronous': true - }); -} + initialize: function initialize(settings) { + return public_asyncToGenerator( /*#__PURE__*/public_regeneratorRuntime().mark(function _callee() { + var _api$elements, _plugins$converseBos; + var api, plugins; + return public_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + api = shared_converse.api; + _context.next = 3; + return cleanup(shared_converse); + case 3: + setUnloadEvent(); + initAppSettings(settings); + shared_converse.strict_plugin_dependencies = settings.strict_plugin_dependencies; // Needed by pluggable.js + log.setLogLevel(api.settings.get("loglevel")); + if (!(api.settings.get("authentication") === ANONYMOUS)) { + _context.next = 10; + break; + } + if (!(api.settings.get("auto_login") && !api.settings.get('jid'))) { + _context.next = 10; + break; + } + throw new Error("Config Error: you need to provide the server's " + "domain via the 'jid' option when using anonymous " + "authentication with auto_login."); + case 10: + shared_converse.router.route(/^converse\?loglevel=(debug|info|warn|error|fatal)$/, 'loglevel', function (l) { + return log.setLogLevel(l); + }); + shared_converse.connfeedback = new feedback(); -/** - * Given a message object, return its text with @ chars - * inserted before the mentioned nicknames. - */ -function prefixMentions(message) { - var text = message.getMessageText(); - (message.get('references') || []).sort(function (a, b) { - return b.begin - a.begin; - }).forEach(function (ref) { - text = "".concat(text.slice(0, ref.begin), "@").concat(text.slice(ref.begin)); - }); - return text; -} -u.isTagEqual = function (stanza, name) { - var _stanza$tree; - if ((_stanza$tree = stanza.tree) !== null && _stanza$tree !== void 0 && _stanza$tree.call(stanza)) { - return u.isTagEqual(stanza.tree(), name); - } else if (!(stanza instanceof Element)) { - throw Error("isTagEqual called with value which isn't " + "an element or Strophe.Builder instance"); - } else { - return Strophe.isTagEqual(stanza, name); - } -}; -u.getJIDFromURI = function (jid) { - return jid.startsWith('xmpp:') && jid.endsWith('?join') ? jid.replace(/^xmpp:/, '').replace(/\?join$/, '') : jid; -}; -u.getLongestSubstring = function (string, candidates) { - function reducer(accumulator, current_value) { - if (string.startsWith(current_value)) { - if (current_value.length > accumulator.length) { - return current_value; + /* When reloading the page: + * For new sessions, we need to send out a presence stanza to notify + * the server/network that we're online. + * When re-attaching to an existing session we don't need to again send out a presence stanza, + * because it's as if "we never left" (see onConnectStatusChanged). + * https://github.com/conversejs/converse.js/issues/521 + */ + shared_converse.send_initial_presence = true; + _context.next = 15; + return initSessionStorage(shared_converse); + case 15: + _context.next = 17; + return initClientConfig(shared_converse); + case 17: + _context.next = 19; + return i18n.initialize(); + case 19: + initPlugins(shared_converse); + + // Register all custom elements + // XXX: api.elements is defined in the UI part of Converse, outside of @converse/headless. + // This line should probably be moved to the UI code as part of a larger refactoring. + (_api$elements = api.elements) === null || _api$elements === void 0 ? void 0 : _api$elements.register(); + registerGlobalEventHandlers(shared_converse); + try { + !History.started && shared_converse.router.history.start(); + } catch (e) { + log.error(e); + } + plugins = shared_converse.pluggable.plugins; + if (!(api.settings.get("auto_login") || api.settings.get("keepalive") && (_plugins$converseBos = plugins['converse-bosh']) !== null && _plugins$converseBos !== void 0 && _plugins$converseBos.enabled())) { + _context.next = 27; + break; + } + _context.next = 27; + return api.user.login(null, null, true); + case 27: + /** + * Triggered once converse.initialize has finished. + * @event _converse#initialized + */ + api.trigger('initialized'); + if (!shared_converse.isTestEnv()) { + _context.next = 30; + break; + } + return _context.abrupt("return", shared_converse); + case 30: + case "end": + return _context.stop(); + } + }, _callee); + }))(); + }, + /** + * Exposes methods for adding and removing plugins. You'll need to write a plugin + * if you want to have access to the private API methods defined further down below. + * + * For more information on plugins, read the documentation on [writing a plugin](/docs/html/plugin_development.html). + * @namespace plugins + * @memberOf converse + */ + plugins: { + /** + * Registers a new plugin. + * @method converse.plugins.add + * @param { string } name The name of the plugin + * @param { object } plugin The plugin object + * @example + * const plugin = { + * initialize: function () { + * // Gets called as soon as the plugin has been loaded. + * + * // Inside this method, you have access to the private + * // API via `_covnerse.api`. + * + * // The private _converse object contains the core logic + * // and data-structures of Converse. + * } + * } + * converse.plugins.add('myplugin', plugin); + */ + add: function add(name, plugin) { + plugin.__name__ = name; + if (shared_converse.pluggable.plugins[name] !== undefined) { + throw new TypeError("Error: plugin with name \"".concat(name, "\" has already been ") + 'registered!'); } else { - return accumulator; + shared_converse.pluggable.plugins[name] = plugin; } - } else { - return accumulator; } - } - return candidates.reduce(reducer, ''); -}; -function isValidJID(jid) { - if (typeof jid === 'string') { - return lodash_es_compact(jid.split('@')).length === 2 && !jid.startsWith('@') && !jid.endsWith('@'); - } - return false; -} -u.isValidMUCJID = function (jid) { - return !jid.startsWith('@') && !jid.endsWith('@'); -}; -u.isSameBareJID = function (jid1, jid2) { - if (typeof jid1 !== 'string' || typeof jid2 !== 'string') { - return false; - } - return Strophe.getBareJidFromJid(jid1).toLowerCase() === Strophe.getBareJidFromJid(jid2).toLowerCase(); -}; -u.isSameDomain = function (jid1, jid2) { - if (typeof jid1 !== 'string' || typeof jid2 !== 'string') { - return false; - } - return Strophe.getDomainFromJid(jid1).toLowerCase() === Strophe.getDomainFromJid(jid2).toLowerCase(); -}; -u.isNewMessage = function (message) { - /* Given a stanza, determine whether it's a new - * message, i.e. not a MAM archived one. + }, + /** + * Utility methods and globals from bundled 3rd party libraries. + * @typedef ConverseEnv + * @property { Error } converse.env.TimeoutError + * @property { function } converse.env.$build - Creates a Strophe.Builder, for creating stanza objects. + * @property { function } converse.env.$iq - Creates a Strophe.Builder with an element as the root. + * @property { function } converse.env.$msg - Creates a Strophe.Builder with an element as the root. + * @property { function } converse.env.$pres - Creates a Strophe.Builder with an element as the root. + * @property { function } converse.env.Promise - The Promise implementation used by Converse. + * @property { function } converse.env.Strophe - The [Strophe](http://strophe.im/strophejs) XMPP library used by Converse. + * @property { function } converse.env.f - And instance of Lodash with its methods wrapped to produce immutable auto-curried iteratee-first data-last methods. + * @property { function } converse.env.sizzle - [Sizzle](https://sizzlejs.com) CSS selector engine. + * @property { function } converse.env.sprintf + * @property { object } converse.env._ - The instance of [lodash-es](http://lodash.com) used by Converse. + * @property { object } converse.env.dayjs - [DayJS](https://github.com/iamkun/dayjs) date manipulation library. + * @property { object } converse.env.utils - Module containing common utility methods used by Converse. + * @memberOf converse */ - if (message instanceof Element) { - return !(external_sizzle_default()("result[xmlns=\"".concat(Strophe.NS.MAM, "\"]"), message).length && external_sizzle_default()("delay[xmlns=\"".concat(Strophe.NS.DELAY, "\"]"), message).length); - } else if (message instanceof Model) { - message = message.attributes; - } - return !(message['is_delayed'] && message['is_archived']); -}; -u.shouldCreateMessage = function (attrs) { - return attrs['retracted'] || - // Retraction received *before* the message - !isEmptyMessage(attrs); -}; -u.shouldCreateGroupchatMessage = function (attrs) { - return attrs.nick && (u.shouldCreateMessage(attrs) || attrs.is_tombstone); -}; -u.isChatRoom = function (model) { - return model && model.get('type') === 'chatroom'; -}; -function isErrorObject(o) { - return o instanceof Error; -} -u.isErrorStanza = function (stanza) { - if (!isElement(stanza)) { - return false; - } - return stanza.getAttribute('type') === 'error'; -}; -u.isForbiddenError = function (stanza) { - if (!isElement(stanza)) { - return false; - } - return external_sizzle_default()("error[type=\"auth\"] forbidden[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), stanza).length > 0; -}; -u.isServiceUnavailableError = function (stanza) { - if (!isElement(stanza)) { - return false; + 'env': { + $build: external_strophe_namespaceObject.$build, + $iq: external_strophe_namespaceObject.$iq, + $msg: external_strophe_namespaceObject.$msg, + $pres: external_strophe_namespaceObject.$pres, + 'utils': core, + Collection: Collection, + Model: Model, + Promise: Promise, + Strophe: external_strophe_namespaceObject.Strophe, + TimeoutError: TimeoutError, + URI: (external_urijs_default()), + VERSION_NAME: VERSION_NAME, + dayjs: (dayjs_min_default()), + filesize: external_filesize_namespaceObject.filesize, + html: external_lit_namespaceObject.html, + log: log, + sizzle: (external_sizzle_default()), + sprintf: sprintf.sprintf, + stx: stx, + u: core } - return external_sizzle_default()("error[type=\"cancel\"] service-unavailable[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), stanza).length > 0; -}; - +}); +;// CONCATENATED MODULE: ./src/headless/core.js /** - * Merge the second object into the first one. - * @method u#merge - * @param { Object } dst - * @param { Object } src + * @copyright The Converse.js contributors + * @license Mozilla Public License (MPLv2) */ -function core_merge(dst, src) { - for (var k in src) { - if (!Object.prototype.hasOwnProperty.call(src, k)) continue; - if (k === "__proto__" || k === "constructor") continue; - if (lodash_es_isObject(dst[k])) { - core_merge(dst[k], src[k]); - } else { - dst[k] = src[k]; - } - } -} -u.getOuterWidth = function (el) { - var include_margin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var width = el.offsetWidth; - if (!include_margin) { - return width; - } - var style = window.getComputedStyle(el); - width += parseInt(style.marginLeft ? style.marginLeft : 0, 10) + parseInt(style.marginRight ? style.marginRight : 0, 10); - return width; -}; -/** - * Converts an HTML string into a DOM element. - * Expects that the HTML string has only one top-level element, - * i.e. not multiple ones. - * @private - * @method u#stringToElement - * @param { String } s - The HTML string - */ -u.stringToElement = function (s) { - var div = document.createElement('div'); - div.innerHTML = s; - return div.firstElementChild; -}; -/** - * Checks whether the DOM element matches the given selector. - * @private - * @method u#matchesSelector - * @param { Element } el - The DOM element - * @param { String } selector - The selector - */ -u.matchesSelector = function (el, selector) { - var match = el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector; - return match ? match.call(el, selector) : false; -}; -/** - * Returns a list of children of the DOM element that match the selector. - * @private - * @method u#queryChildren - * @param { Element } el - the DOM element - * @param { String } selector - the selector they should be matched against - */ -u.queryChildren = function (el, selector) { - return Array.from(el.childNodes).filter(function (el) { - return u.matchesSelector(el, selector); - }); -}; -u.contains = function (attr, query) { - var checker = function checker(item, key) { - return item.get(key).toLowerCase().includes(query.toLowerCase()); - }; - return function (item) { - if (utils_core_typeof(attr) === 'object') { - return Object.keys(attr).reduce(function (acc, k) { - return acc || checker(item, k); - }, false); - } else if (typeof attr === 'string') { - return checker(item, attr); - } else { - throw new TypeError('contains: wrong attribute type. Must be string or array.'); - } - }; -}; -u.isOfType = function (type, item) { - return item.get('type') == type; -}; -u.isInstance = function (type, item) { - return item instanceof type; -}; -u.getAttribute = function (key, item) { - return item.get(key); -}; -u.contains.not = function (attr, query) { - return function (item) { - return !u.contains(attr, query)(item); + + + + + + + +dayjs_min_default().extend((advancedFormat_default())); +;// CONCATENATED MODULE: ./src/headless/plugins/chat/model-with-contact.js +function model_with_contact_typeof(obj) { + "@babel/helpers - typeof"; + + return model_with_contact_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, model_with_contact_typeof(obj); +} +function model_with_contact_regeneratorRuntime() { + "use strict"; + + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + model_with_contact_regeneratorRuntime = function _regeneratorRuntime() { + return exports; }; -}; -u.rootContains = function (root, el) { - // The document element does not have the contains method in IE. - if (root === document && !root.contains) { - return document.head.contains(el) || document.body.contains(el); + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; } - return root.contains ? root.contains(el) : window.HTMLElement.prototype.contains.call(root, el); -}; -u.createFragmentFromText = function (markup) { - /* Returns a DocumentFragment containing DOM nodes based on the - * passed-in markup text. - */ - // http://stackoverflow.com/questions/9334645/create-node-from-markup-string - var frag = document.createDocumentFragment(), - tmp = document.createElement('body'), - child; - tmp.innerHTML = markup; - // Append elements in a loop to a DocumentFragment, so that the - // browser does not re-render the document for each node. - while (child = tmp.firstChild) { - // eslint-disable-line no-cond-assign - frag.appendChild(child); + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; } - return frag; -}; -u.isPersistableModel = function (model) { - return model.collection && model.collection.browserStorage; -}; -u.getResolveablePromise = getOpenPromise; -u.getOpenPromise = getOpenPromise; -u.interpolate = function (string, o) { - return string.replace(/{{{([^{}]*)}}}/g, function (a, b) { - var r = o[b]; - return typeof r === 'string' || typeof r === 'number' ? r : a; - }); -}; - -/** - * Call the callback once all the events have been triggered - * @private - * @method u#onMultipleEvents - * @param { Array } events: An array of objects, with keys `object` and - * `event`, representing the event name and the object it's triggered upon. - * @param { Function } callback: The function to call once all events have - * been triggered. - */ -u.onMultipleEvents = function () { - var events = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - var callback = arguments.length > 1 ? arguments[1] : undefined; - var triggered = []; - function handler(result) { - triggered.push(result); - if (events.length === triggered.length) { - callback(triggered); - triggered = []; + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; } } - events.forEach(function (e) { - return e.object.on(e.event, handler); + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; }); -}; -function safeSave(model, attributes, options) { - if (u.isPersistableModel(model)) { - model.save(attributes, options); - } else { - model.set(attributes, options); - } -} -u.safeSave = safeSave; -u.siblingIndex = function (el) { - /* eslint-disable no-cond-assign */ - for (var i = 0; el = el.previousElementSibling; i++); - return i; -}; - -/** - * Returns the current word being written in the input element - * @method u#getCurrentWord - * @param { HTMLElement } input - The HTMLElement in which text is being entered - * @param { number } [index] - An optional rightmost boundary index. If given, the text - * value of the input element will only be considered up until this index. - * @param { string } [delineator] - An optional string delineator to - * differentiate between words. - * @private - */ -u.getCurrentWord = function (input, index, delineator) { - if (!index) { - index = input.selectionEnd || undefined; - } - var _input$value$slice$sp = input.value.slice(0, index).split(/\s/).slice(-1), - _input$value$slice$sp2 = _slicedToArray(_input$value$slice$sp, 1), - word = _input$value$slice$sp2[0]; - if (delineator) { - var _word$split$slice = word.split(delineator).slice(-1); - var _word$split$slice2 = _slicedToArray(_word$split$slice, 1); - word = _word$split$slice2[0]; + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); } - return word; -}; -u.isMentionBoundary = function (s) { - return s !== '@' && RegExp("(\\p{Z}|\\p{P})", 'u').test(s); -}; -u.replaceCurrentWord = function (input, new_value) { - var caret = input.selectionEnd || undefined; - var current_word = lodash_es_last(input.value.slice(0, caret).split(/\s/)); - var value = input.value; - var mention_boundary = u.isMentionBoundary(current_word[0]) ? current_word[0] : ''; - input.value = value.slice(0, caret - current_word.length) + mention_boundary + "".concat(new_value, " ") + value.slice(caret); - var selection_end = caret - current_word.length + new_value.length + 1; - input.selectionEnd = mention_boundary ? selection_end + 1 : selection_end; -}; -u.triggerEvent = function (el, name) { - var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "Event"; - var bubbles = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; - var cancelable = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; - var evt = document.createEvent(type); - evt.initEvent(name, bubbles, cancelable); - el.dispatchEvent(evt); -}; -u.getSelectValues = function (select) { - var result = []; - var options = select && select.options; - for (var i = 0, iLen = options.length; i < iLen; i++) { - var opt = options[i]; - if (opt.selected) { - result.push(opt.value || opt.text); + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == model_with_contact_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + reject(record.arg); } + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); } - return result; -}; -function getRandomInt(max) { - return Math.random() * max | 0; -} -u.placeCaretAtEnd = function (textarea) { - if (textarea !== document.activeElement) { - textarea.focus(); + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } + }; } - // Double the length because Opera is inconsistent about whether a carriage return is one character or two. - var len = textarea.value.length * 2; - // Timeout seems to be required for Blink - setTimeout(function () { - return textarea.setSelectionRange(len, len); - }, 1); - // Scroll to the bottom, in case we're in a tall textarea - // (Necessary for Firefox and Chrome) - this.scrollTop = 999999; -}; -function getUniqueId(suffix) { - var _crypto$randomUUID, _crypto$randomUUID2, _crypto; - var uuid = (_crypto$randomUUID = (_crypto$randomUUID2 = (_crypto = crypto).randomUUID) === null || _crypto$randomUUID2 === void 0 ? void 0 : _crypto$randomUUID2.call(_crypto)) !== null && _crypto$randomUUID !== void 0 ? _crypto$randomUUID : 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { - var r = getRandomInt(16); - var v = c === 'x' ? r : r & 0x3 | 0x8; - return v.toString(16); - }); - if (typeof suffix === "string" || typeof suffix === "number") { - return uuid + ":" + suffix; - } else { - return uuid; + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } -} - -/** - * Clears the specified timeout and interval. - * @method u#clearTimers - * @param { number } timeout - Id if the timeout to clear. - * @param { number } interval - Id of the interval to clear. - * @private - * @copyright Simen Bekkhus 2016 - * @license MIT - */ -function clearTimers(timeout, interval) { - clearTimeout(timeout); - clearInterval(interval); -} - -/** - * Creates a {@link Promise} that resolves if the passed in function returns a truthy value. - * Rejects if it throws or does not return truthy within the given max_wait. - * @method u#waitUntil - * @param { Function } func - The function called every check_delay, - * and the result of which is the resolved value of the promise. - * @param { number } [max_wait=300] - The time to wait before rejecting the promise. - * @param { number } [check_delay=3] - The time to wait before each invocation of {func}. - * @returns {Promise} A promise resolved with the value of func, - * or rejected with the exception thrown by it or it times out. - * @copyright Simen Bekkhus 2016 - * @license MIT - */ -function core_waitUntil(func) { - var max_wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300; - var check_delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3; - // Run the function once without setting up any listeners in case it's already true - try { - var result = func(); - if (result) { - return Promise.resolve(result); - } - } catch (e) { - return Promise.reject(e); + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } - var promise = getOpenPromise(); - var timeout_err = new Error(); - function checker() { - try { - var _result = func(); - if (_result) { - clearTimers(max_wait_timeout, interval); - promise.resolve(_result); + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; + }; + return next.next = next; } - } catch (e) { - clearTimers(max_wait_timeout, interval); - promise.reject(e); } + return { + next: doneResult + }; } - var interval = setInterval(checker, check_delay); - function handler() { - clearTimers(max_wait_timeout, interval); - var err_msg = "Wait until promise timed out: \n\n".concat(timeout_err.stack); - console.trace(); - log.error(err_msg); - promise.reject(new Error(err_msg)); - } - var max_wait_timeout = setTimeout(handler, max_wait); - return promise; -} -; -function setUnloadEvent() { - if ('onpagehide' in window) { - // Pagehide gets thrown in more cases than unload. Specifically it - // gets thrown when the page is cached and not just - // closed/destroyed. It's the only viable event on mobile Safari. - // https://www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/ - shared_converse.unloadevent = 'pagehide'; - } else if ('onbeforeunload' in window) { - shared_converse.unloadevent = 'beforeunload'; - } else if ('onunload' in window) { - shared_converse.unloadevent = 'unload'; + function doneResult() { + return { + value: undefined, + done: !0 + }; } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; } -function replacePromise(name) { - var existing_promise = shared_converse.promises[name]; - if (!existing_promise) { - throw new Error("Tried to replace non-existing promise: ".concat(name)); +function model_with_contact_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; } - if (existing_promise.replace) { - var promise = getOpenPromise(); - promise.replace = existing_promise.replace; - shared_converse.promises[name] = promise; + if (info.done) { + resolve(value); } else { - log.debug("Not replacing promise \"".concat(name, "\"")); - } -} -var core_element = document.createElement('div'); -function decodeHTMLEntities(str) { - if (str && typeof str === 'string') { - core_element.innerHTML = purify_default().sanitize(str); - str = core_element.textContent; - core_element.textContent = ''; + Promise.resolve(value).then(_next, _throw); } - return str; } -function saveWindowState(ev) { - // XXX: eventually we should be able to just use - // document.visibilityState (when we drop support for older - // browsers). - var state; - var event_map = { - 'focus': "visible", - 'focusin': "visible", - 'pageshow': "visible", - 'blur': "hidden", - 'focusout': "hidden", - 'pagehide': "hidden" +function model_with_contact_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + model_with_contact_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + model_with_contact_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); }; - ev = ev || document.createEvent('Events'); - if (ev.type in event_map) { - state = event_map[ev.type]; - } else { - state = document.hidden ? "hidden" : "visible"; - } - shared_converse.windowState = state; - /** - * Triggered when window state has changed. - * Used to determine when a user left the page and when came back. - * @event _converse#windowStateChanged - * @type { object } - * @property{ string } state - Either "hidden" or "visible" - * @example _converse.api.listen.on('windowStateChanged', obj => { ... }); - */ - shared_converse.api.trigger('windowStateChanged', { - state: state - }); } -/* harmony default export */ const utils_core = (Object.assign({ - shouldClearCache: shouldClearCache, - waitUntil: core_waitUntil, - // TODO: remove. Only the API should be used - isErrorObject: isErrorObject, - getRandomInt: getRandomInt, - getUniqueId: getUniqueId, - isElement: isElement, - isEmptyMessage: isEmptyMessage, - isValidJID: isValidJID, - merge: core_merge, - prefixMentions: prefixMentions, - saveWindowState: saveWindowState, - stx: stx, - toStanza: toStanza -}, u)); -;// CONCATENATED MODULE: ./src/headless/log.js -var _console, _console2, _console3, _console4; -var LEVELS = { - 'debug': 0, - 'info': 1, - 'warn': 2, - 'error': 3, - 'fatal': 4 -}; -/* eslint-disable @typescript-eslint/no-empty-function */ -var logger = Object.assign({ - 'debug': (_console = console) !== null && _console !== void 0 && _console.log ? console.log.bind(console) : function noop() {}, - 'error': (_console2 = console) !== null && _console2 !== void 0 && _console2.log ? console.log.bind(console) : function noop() {}, - 'info': (_console3 = console) !== null && _console3 !== void 0 && _console3.log ? console.log.bind(console) : function noop() {}, - 'warn': (_console4 = console) !== null && _console4 !== void 0 && _console4.log ? console.log.bind(console) : function noop() {} -}, console); -/* eslint-enable @typescript-eslint/no-empty-function */ -/** - * The log namespace - * @namespace log - */ -/* harmony default export */ const log = ({ - /** - * The the log-level, which determines how verbose the logging is. - * @method log#setLogLevel - * @param { number } level - The loglevel which allows for filtering of log messages - */ - setLogLevel: function setLogLevel(level) { - if (!['debug', 'info', 'warn', 'error', 'fatal'].includes(level)) { - throw new Error("Invalid loglevel: ".concat(level)); - } - this.loglevel = level; +var ModelWithContact = Model.extend({ + initialize: function initialize() { + this.rosterContactAdded = getOpenPromise(); }, - /** - * Logs messages to the browser's developer console. - * Available loglevels are 0 for 'debug', 1 for 'info', 2 for 'warn', - * 3 for 'error' and 4 for 'fatal'. - * When using the 'error' or 'warn' loglevels, a full stacktrace will be - * logged as well. - * @method log#log - * @param { string | Error } message - The message to be logged - * @param { number } level - The loglevel which allows for filtering of log messages - */ - log: function log(message, level) { - var style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; - if (LEVELS[level] < LEVELS[this.loglevel]) { - return; - } - if (level === 'error' || level === 'fatal') { - style = style || 'color: maroon'; - } else if (level === 'debug') { - style = style || 'color: green'; - } - if (message instanceof Error) { - message = message.stack; - } else if (isElement(message)) { - message = message.outerHTML; - } - var prefix = style ? '%c' : ''; - if (level === 'error') { - logger.error("".concat(prefix, " ERROR: ").concat(message), style); - } else if (level === 'warn') { - logger.warn("".concat(prefix, " ").concat(new Date().toISOString(), " WARNING: ").concat(message), style); - } else if (level === 'fatal') { - logger.error("".concat(prefix, " FATAL: ").concat(message), style); - } else if (level === 'debug') { - logger.debug("".concat(prefix, " ").concat(new Date().toISOString(), " DEBUG: ").concat(message), style); - } else { - logger.info("".concat(prefix, " ").concat(new Date().toISOString(), " INFO: ").concat(message), style); - } - }, - debug: function debug(message, style) { - this.log(message, 'debug', style); - }, - error: function error(message, style) { - this.log(message, 'error', style); - }, - info: function info(message, style) { - this.log(message, 'info', style); - }, - warn: function warn(message, style) { - this.log(message, 'warn', style); - }, - fatal: function fatal(message, style) { - this.log(message, 'fatal', style); + setRosterContact: function setRosterContact(jid) { + var _this = this; + return model_with_contact_asyncToGenerator( /*#__PURE__*/model_with_contact_regeneratorRuntime().mark(function _callee() { + var contact; + return model_with_contact_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return shared_api.contacts.get(jid); + case 2: + contact = _context.sent; + if (contact) { + _this.contact = contact; + _this.set('nickname', contact.get('nickname')); + _this.rosterContactAdded.resolve(); + } + case 4: + case "end": + return _context.stop(); + } + }, _callee); + }))(); } }); -;// CONCATENATED MODULE: ./node_modules/pluggable.js/src/pluggable.js -function pluggable_typeof(obj) { +/* harmony default export */ const model_with_contact = (ModelWithContact); +;// CONCATENATED MODULE: ./node_modules/lodash-es/isMatch.js + + + +/** + * Performs a partial deep comparison between `object` and `source` to + * determine if `object` contains equivalent property values. + * + * **Note:** This method is equivalent to `_.matches` when `source` is + * partially applied. + * + * Partial comparisons will match empty array and empty object `source` + * values against any array or object value, respectively. See `_.isEqual` + * for a list of supported value comparisons. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * + * _.isMatch(object, { 'b': 2 }); + * // => true + * + * _.isMatch(object, { 'b': 1 }); + * // => false + */ +function isMatch(object, source) { + return object === source || _baseIsMatch(object, source, _getMatchData(source)); +} +/* harmony default export */ const lodash_es_isMatch = (isMatch); +;// CONCATENATED MODULE: ./src/headless/shared/chat/utils.js +function chat_utils_typeof(obj) { "@babel/helpers - typeof"; - return pluggable_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return chat_utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, pluggable_typeof(obj); -} -function pluggable_slicedToArray(arr, i) { - return pluggable_arrayWithHoles(arr) || pluggable_iterableToArrayLimit(arr, i) || pluggable_unsupportedIterableToArray(arr, i) || pluggable_nonIterableRest(); -} -function pluggable_nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} -function pluggable_unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return pluggable_arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return pluggable_arrayLikeToArray(o, minLen); -} -function pluggable_arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; -} -function pluggable_iterableToArrayLimit(arr, i) { - var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; - if (null != _i) { - var _s, - _e, - _x, - _r, - _arr = [], - _n = !0, - _d = !1; - try { - if (_x = (_i = _i.call(arr)).next, 0 === i) { - if (Object(_i) !== _i) return; - _n = !1; - } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); - } catch (err) { - _d = !0, _e = err; - } finally { - try { - if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; - } finally { - if (_d) throw _e; - } - } - return _arr; - } -} -function pluggable_arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; -} -function pluggable_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} -function pluggable_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, pluggable_toPropertyKey(descriptor.key), descriptor); - } -} -function pluggable_createClass(Constructor, protoProps, staticProps) { - if (protoProps) pluggable_defineProperties(Constructor.prototype, protoProps); - if (staticProps) pluggable_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function pluggable_toPropertyKey(arg) { - var key = pluggable_toPrimitive(arg, "string"); - return pluggable_typeof(key) === "symbol" ? key : String(key); -} -function pluggable_toPrimitive(input, hint) { - if (pluggable_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (pluggable_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); + }, chat_utils_typeof(obj); } -/* - ____ __ __ __ _ - / __ \/ /_ __ ___ ___ ____ _/ /_ / /__ (_)____ - / /_/ / / / / / __ \/ __ \/ __/ / __ \/ / _ \ / / ___/ - / ____/ / /_/ / /_/ / /_/ / /_/ / /_/ / / __/ / (__ ) - /_/ /_/\__,_/\__, /\__, /\__/_/_.___/_/\___(_)_/ /____/ - /____//____/ /___/ - */ - -// Pluggable.js lets you to make your Javascript code pluggable while still -// keeping sensitive objects and data private through closures. +function chat_utils_regeneratorRuntime() { + "use strict"; -// `wrappedOverride` creates a partially applied wrapper function -// that makes sure to set the proper super method when the -// overriding method is called. This is done to enable -// chaining of plugin methods, all the way up to the -// original method. -function wrappedOverride(key, value, super_method, default_super) { - if (typeof super_method === "function") { - if (typeof this.__super__ === "undefined") { - /* We're not on the context of the plugged object. - * This can happen when the overridden method is called via - * an event handler or when it's a constructor. - * - * In this case, we simply tack on the __super__ obj. - */ - this.__super__ = default_super; - } - this.__super__[key] = super_method.bind(this); + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + chat_utils_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; } - for (var _len = arguments.length, args = new Array(_len > 4 ? _len - 4 : 0), _key = 4; _key < _len; _key++) { - args[_key - 4] = arguments[_key]; + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; } - return value.apply(this, args); -} - -// The `PluginSocket` class contains the plugin architecture, and gets -// created whenever `pluggable.enable(obj);` is called on the object -// that you want to make pluggable. -// You can also see it as the thing into which the plugins are plugged. -// It takes two parameters, first, the object being made pluggable, and -// then the name by which the pluggable object may be referenced on the -// __super__ object (inside overrides). -var PluginSocket = /*#__PURE__*/function () { - function PluginSocket(plugged, name) { - pluggable_classCallCheck(this, PluginSocket); - this.name = name; - this.plugged = plugged; - if (typeof this.plugged.__super__ === 'undefined') { - this.plugged.__super__ = {}; - } else if (typeof this.plugged.__super__ === 'string') { - this.plugged.__super__ = { - '__string__': this.plugged.__super__ - }; - } - this.plugged.__super__[name] = this.plugged; - this.plugins = {}; - this.initialized_plugins = []; + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; } - - // `_overrideAttribute` overrides an attribute on the original object - // (the thing being plugged into). - // - // If the attribute being overridden is a function, then the original - // function will still be available via the `__super__` attribute. - // - // If the same function is being overridden multiple times, then - // the original function will be available at the end of a chain of - // functions, starting from the most recent override, all the way - // back to the original function, each being referenced by the - // previous' __super__ attribute. - // - // For example: - // - // `plugin2.MyFunc.__super__.myFunc => plugin1.MyFunc.__super__.myFunc => original.myFunc` - pluggable_createClass(PluginSocket, [{ - key: "_overrideAttribute", - value: function _overrideAttribute(key, plugin) { - var value = plugin.overrides[key]; - if (typeof value === "function") { - var default_super = {}; - default_super[this.name] = this.plugged; - var super_method = this.plugged[key]; - this.plugged[key] = function () { - for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - return wrappedOverride.apply(this, [key, value, super_method, default_super].concat(args)); - }; - } else { - this.plugged[key] = value; - } - } - }, { - key: "_extendObject", - value: function _extendObject(obj, attributes) { - var _this = this; - if (!obj.prototype.__super__) { - obj.prototype.__super__ = {}; - obj.prototype.__super__[this.name] = this.plugged; - } - var _loop = function _loop() { - var _Object$entries$_i = pluggable_slicedToArray(_Object$entries[_i], 2), - key = _Object$entries$_i[0], - value = _Object$entries$_i[1]; - if (key === 'events') { - obj.prototype[key] = Object.assign(value, obj.prototype[key]); - } else if (typeof value === 'function') { - // We create a partially applied wrapper function, that - // makes sure to set the proper super method when the - // overriding method is called. This is done to enable - // chaining of plugin methods, all the way up to the - // original method. - var default_super = {}; - default_super[_this.name] = _this.plugged; - var super_method = obj.prototype[key]; - obj.prototype[key] = function () { - for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - args[_key3] = arguments[_key3]; - } - return wrappedOverride.apply(this, [key, value, super_method, default_super].concat(args)); - }; - } else { - obj.prototype[key] = value; - } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err }; - for (var _i = 0, _Object$entries = Object.entries(attributes); _i < _Object$entries.length; _i++) { - _loop(); - } } - - // Plugins can specify dependencies (by means of the - // `dependencies` list attribute) which refers to dependencies - // which will be initialized first, before the plugin itself gets initialized. - // - // If `strict_plugin_dependencies` is set to `false` (on the object being - // made pluggable), then no error will be thrown if any of these plugins aren't - // available. - }, { - key: "loadPluginDependencies", - value: function loadPluginDependencies(plugin) { - var _plugin$dependencies, - _this2 = this; - (_plugin$dependencies = plugin.dependencies) === null || _plugin$dependencies === void 0 ? void 0 : _plugin$dependencies.forEach(function (name) { - var dep = _this2.plugins[name]; - if (dep) { - var _dep$dependencies; - if ((_dep$dependencies = dep.dependencies) !== null && _dep$dependencies !== void 0 && _dep$dependencies.includes(plugin.__name__)) { - /* FIXME: circular dependency checking is only one level deep. */ - throw "Found a circular dependency between the plugins \"" + plugin.__name__ + "\" and \"" + name + "\""; - } - _this2.initializePlugin(dep); - } else { - _this2.throwUndefinedDependencyError("Could not find dependency \"" + name + "\" " + "for the plugin \"" + plugin.__name__ + "\". " + "If it's needed, make sure it's loaded by require.js"); - } + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); }); - } - }, { - key: "throwUndefinedDependencyError", - value: function throwUndefinedDependencyError(msg) { - if (this.plugged.strict_plugin_dependencies) { - throw msg; - } else { - if (console.warn) { - console.warn(msg); - } else { - console.log(msg); - } + }); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == chat_utils_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); } + reject(record.arg); } - - // `applyOverrides` is called by initializePlugin. It applies any - // and all overrides of methods or Backbone views and models that - // are defined on any of the plugins. - }, { - key: "applyOverrides", - value: function applyOverrides(plugin) { - var _this3 = this; - Object.keys(plugin.overrides || {}).forEach(function (key) { - var override = plugin.overrides[key]; - if (pluggable_typeof(override) === "object") { - if (typeof _this3.plugged[key] === 'undefined') { - _this3.throwUndefinedDependencyError("Plugin \"".concat(plugin.__name__, "\" tried to override \"").concat(key, "\" but it's not found.")); - } else { - _this3._extendObject(_this3.plugged[key], override); - } - } else { - _this3._overrideAttribute(key, plugin); + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); } - }); - } - - // `initializePlugin` applies the overrides (if any) defined on all - // the registered plugins and then calls the initialize method of the plugin - }, { - key: "initializePlugin", - value: function initializePlugin(plugin) { - var _plugin$enabled; - if (!Object.keys(this.allowed_plugins).includes(plugin.__name__)) { - /* Don't initialize disallowed plugins. */ - return; + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } - if (this.initialized_plugins.includes(plugin.__name__)) { - /* Don't initialize plugins twice, otherwise we get - * infinite recursion in overridden methods. - */ - return; + }); + } + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); } - if (typeof plugin.enabled === 'boolean' && plugin.enabled || (_plugin$enabled = plugin.enabled) !== null && _plugin$enabled !== void 0 && _plugin$enabled.call(plugin, this.plugged) || plugin.enabled == null) { - // isNil - - Object.assign(plugin, this.properties); - if (plugin.dependencies) { - this.loadPluginDependencies(plugin); + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } } - this.applyOverrides(plugin); - if (typeof plugin.initialize === "function") { - plugin.initialize.bind(plugin)(this); + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; } - this.initialized_plugins.push(plugin.__name__); - } - } - - // `registerPlugin` registers (or inserts, if you'd like) a plugin, - // by adding it to the `plugins` map on the PluginSocket instance. - }, { - key: "registerPlugin", - value: function registerPlugin(name, plugin) { - if (name in this.plugins) { - throw new Error('Error: Plugin name ' + name + ' is already taken'); + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } - plugin.__name__ = name; - this.plugins[name] = plugin; - } - - // `initializePlugins` should get called once all plugins have been - // registered. It will then iterate through all the plugins, calling - // `initializePlugin` for each. - // The passed in properties variable is an object with attributes and methods - // which will be attached to the plugins. - }, { - key: "initializePlugins", - value: function initializePlugins() { - var _this4 = this; - var properties = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var whitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; - var blacklist = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; - if (!Object.keys(this.plugins).length) { - return; + }; + } + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); + } + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; + }; + return next.next = next; } - this.properties = properties; - this.allowed_plugins = {}; - for (var _i2 = 0, _Object$entries2 = Object.entries(this.plugins); _i2 < _Object$entries2.length; _i2++) { - var _Object$entries2$_i = pluggable_slicedToArray(_Object$entries2[_i2], 2), - key = _Object$entries2$_i[0], - plugin = _Object$entries2$_i[1]; - if ((!whitelist.length || whitelist.includes(key)) && !blacklist.includes(key)) { - this.allowed_plugins[key] = plugin; + } + return { + next: doneResult + }; + } + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } } } - Object.values(this.allowed_plugins).forEach(function (o) { - return _this4.initializePlugin(o); - }); + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } - }]); - return PluginSocket; -}(); -function enable(object, name, attrname) { - // Call the `enable` method to make an object pluggable - // - // It takes three parameters: - // - `object`: The object that gets made pluggable. - // - `name`: The string name by which the now pluggable object - // may be referenced on the __super__ obj (in overrides). - // The default value is "plugged". - // - `attrname`: The string name of the attribute on the now - // pluggable object, which refers to the PluginSocket instance - // that gets created. - if (typeof attrname === "undefined") { - attrname = "pluginSocket"; + }, exports; +} +function chat_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; } - if (typeof name === 'undefined') { - name = 'plugged'; + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); } - object[attrname] = new PluginSocket(object, name); - return object; +} +function chat_utils_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + chat_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + chat_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); + }; } -/* harmony default export */ const pluggable = ({ - enable: enable -}); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_createBaseEach.js +var utils_u = public_converse.env.u; +function pruneHistory(model) { + var max_history = shared_api.settings.get('prune_messages_above'); + if (max_history && typeof max_history === 'number') { + if (model.messages.length > max_history) { + var non_empty_messages = model.messages.filter(function (m) { + return !utils_u.isEmptyMessage(m); + }); + if (non_empty_messages.length > max_history) { + while (non_empty_messages.length > max_history) { + non_empty_messages.shift().destroy(); + } + /** + * Triggered once the message history has been pruned, i.e. + * once older messages have been removed to keep the + * number of messages below the value set in `prune_messages_above`. + * @event _converse#historyPruned + * @type { _converse.ChatBox | _converse.ChatRoom } + * @example _converse.api.listen.on('historyPruned', this => { ... }); + */ + shared_api.trigger('historyPruned', model); + } + } + } +} /** - * Creates a `baseEach` or `baseEachRight` function. - * - * @private - * @param {Function} eachFunc The function to iterate over a collection. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. + * Given an array of {@link MediaURLMetadata} objects and text, return an + * array of {@link MediaURL} objects. + * @param { Array } arr + * @param { String } text + * @returns{ Array } */ -function createBaseEach(eachFunc, fromRight) { - return function (collection, iteratee) { - if (collection == null) { - return collection; - } - if (!lodash_es_isArrayLike(collection)) { - return eachFunc(collection, iteratee); - } - var length = collection.length, - index = fromRight ? length : -1, - iterable = Object(collection); - while (fromRight ? index-- : ++index < length) { - if (iteratee(iterable[index], index, iterable) === false) { - break; - } +function utils_getMediaURLs(arr, text) { + var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + /** + * @typedef { Object } MediaURLData + * An object representing a URL found in a chat message + * @property { Boolean } is_audio + * @property { Boolean } is_image + * @property { Boolean } is_video + * @property { String } end + * @property { String } start + * @property { String } url + */ + return arr.map(function (o) { + var start = o.start - offset; + var end = o.end - offset; + if (start < 0 || start >= text.length) { + return null; } - return collection; - }; + return Object.assign({}, o, { + start: start, + end: end, + 'url': text.substring(o.start - offset, o.end - offset) + }); + }).filter(function (o) { + return o; + }); } -/* harmony default export */ const _createBaseEach = (createBaseEach); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseEach.js - - /** - * The base implementation of `_.forEach` without support for iteratee shorthands. - * + * Determines whether the given attributes of an incoming message + * represent a XEP-0308 correction and, if so, handles it appropriately. * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. + * @method _converse.ChatBox#handleCorrection + * @param { _converse.ChatBox | _converse.ChatRoom } + * @param { object } attrs - Attributes representing a received + * message, as returned by {@link parseMessage} + * @returns { _converse.Message|undefined } Returns the corrected + * message or `undefined` if not applicable. */ -var baseEach = _createBaseEach(_baseForOwn); -/* harmony default export */ const _baseEach = (baseEach); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseSome.js +function handleCorrection(_x, _x2) { + return _handleCorrection.apply(this, arguments); +} +function _handleCorrection() { + _handleCorrection = chat_utils_asyncToGenerator( /*#__PURE__*/chat_utils_regeneratorRuntime().mark(function _callee(model, attrs) { + var query, message, older_versions; + return chat_utils_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + if (!(!attrs.replace_id || !attrs.from)) { + _context.next = 2; + break; + } + return _context.abrupt("return"); + case 2: + query = attrs.type === 'groupchat' && attrs.occupant_id ? function (_ref) { + var m = _ref.attributes; + return m.msgid === attrs.replace_id && m.occupant_id == attrs.occupant_id; + } + // eslint-disable-next-line no-eq-null + : function (_ref2) { + var m = _ref2.attributes; + return m.msgid === attrs.replace_id && m.from === attrs.from && m.occupant_id == null; + }; + message = model.messages.models.find(query); + if (message) { + _context.next = 9; + break; + } + attrs['older_versions'] = {}; + _context.next = 8; + return model.createMessage(attrs); + case 8: + return _context.abrupt("return", _context.sent); + case 9: + older_versions = message.get('older_versions') || {}; + if (attrs.time < message.get('time') && message.get('edited')) { + // This is an older message which has been corrected afterwards + older_versions[attrs.time] = attrs['message']; + message.save({ + 'older_versions': older_versions + }); + } else { + // This is a correction of an earlier message we already received + if (Object.keys(older_versions).length) { + older_versions[message.get('edited')] = message.getMessageText(); + } else { + older_versions[message.get('time')] = message.getMessageText(); + } + attrs = Object.assign(attrs, { + older_versions: older_versions + }); + delete attrs['msgid']; // We want to keep the msgid of the original message + delete attrs['id']; // Delete id, otherwise a new cache entry gets created + attrs['time'] = message.get('time'); + message.save(attrs); + } + return _context.abrupt("return", message); + case 12: + case "end": + return _context.stop(); + } + }, _callee); + })); + return _handleCorrection.apply(this, arguments); +} +var debouncedPruneHistory = lodash_es_debounce(pruneHistory, 500); +;// CONCATENATED MODULE: ./src/headless/shared/actions.js + + +var actions_u = public_converse.env.utils; +function rejectMessage(stanza, text) { + // Reject an incoming message by replying with an error message of type "cancel". + shared_api.send((0,external_strophe_namespaceObject.$msg)({ + 'to': stanza.getAttribute('from'), + 'type': 'error', + 'id': stanza.getAttribute('id') + }).c('error', { + 'type': 'cancel' + }).c('not-allowed', { + xmlns: 'urn:ietf:params:xml:ns:xmpp-stanzas' + }).up().c('text', { + xmlns: 'urn:ietf:params:xml:ns:xmpp-stanzas' + }).t(text)); + log.warn("Rejecting message stanza with the following reason: ".concat(text)); + log.warn(stanza); +} /** - * The base implementation of `_.some` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. + * Send out a XEP-0333 chat marker + * @param { String } to_jid + * @param { String } id - The id of the message being marked + * @param { String } type - The marker type + * @param { String } msg_type */ -function baseSome(collection, predicate) { - var result; - _baseEach(collection, function (value, index, collection) { - result = predicate(value, index, collection); - return !result; +function sendMarker(to_jid, id, type, msg_type) { + var stanza = (0,external_strophe_namespaceObject.$msg)({ + 'from': shared_converse.connection.jid, + 'id': actions_u.getUniqueId(), + 'to': to_jid, + 'type': msg_type ? msg_type : 'chat' + }).c(type, { + 'xmlns': external_strophe_namespaceObject.Strophe.NS.MARKERS, + 'id': id }); - return !!result; + shared_api.send(stanza); } -/* harmony default export */ const _baseSome = (baseSome); -;// CONCATENATED MODULE: ./node_modules/lodash-es/some.js - - +;// CONCATENATED MODULE: ./src/headless/utils/url.js +var url_u = public_converse.env.u; /** - * Checks if `predicate` returns truthy for **any** element of `collection`. - * Iteration is stopped once `predicate` returns truthy. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - * @example - * - * _.some([null, 0, 'yes', false], Boolean); - * // => true - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.some(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // The `_.matchesProperty` iteratee shorthand. - * _.some(users, ['active', false]); - * // => true - * - * // The `_.property` iteratee shorthand. - * _.some(users, 'active'); - * // => true + * Given a url, check whether the protocol being used is allowed for rendering + * the media in the chat (as opposed to just rendering a URL hyperlink). + * @param { String } url + * @returns { Boolean } */ -function some(collection, predicate, guard) { - var func = lodash_es_isArray(collection) ? _arraySome : _baseSome; - if (guard && _isIterateeCall(collection, predicate, guard)) { - predicate = undefined; +function isAllowedProtocolForMedia(url) { + var uri = getURI(url); + var protocol = window.location.protocol; + if (['chrome-extension:', 'file:'].includes(protocol)) { + return true; } - return func(collection, _baseIteratee(predicate, 3)); + return protocol === 'http:' || protocol === 'https:' && ['https', 'aesgcm'].includes(uri.protocol().toLowerCase()); } -/* harmony default export */ const lodash_es_some = (some); -;// CONCATENATED MODULE: ./node_modules/@converse/skeletor/src/history.js -// Backbone.js 1.4.0 -// (c) 2010-2019 Jeremy Ashkenas and DocumentCloud -// Backbone may be freely distributed under the MIT license. - - - - - - -// History -// ------- - -// Handles cross-browser history management, based on either -// [pushState](http://diveintohtml5.info/history.html) and real URLs, or -// [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange) -// and URL fragments. If the browser supports neither (old IE, natch), -// falls back to polling. -var history_History = function History() { - this.handlers = []; - this.checkUrl = this.checkUrl.bind(this); - - // Ensure that `History` can be used outside of the browser. - if (typeof window !== 'undefined') { - this.location = window.location; - this.history = window.history; +function getURI(url) { + try { + return url instanceof (external_urijs_default()) ? url : new (external_urijs_default())(url); + } catch (error) { + log.debug(error); + return null; } -}; -history_History.extend = inherits; - -// Cached regex for stripping a leading hash/slash and trailing space. -var routeStripper = /^[#\/]|\s+$/g; -// Cached regex for stripping leading and trailing slashes. -var rootStripper = /^\/+|\/+$/g; -// Cached regex for stripping urls of hash. -var pathStripper = /#.*$/; - -// Has the history handling already been started? -history_History.started = false; - -// Set up all inheritable **History** properties and methods. -Object.assign(history_History.prototype, Events, { - // The default interval to poll for hash changes, if necessary, is - // twenty times a second. - interval: 50, - // Are we at the app root? - atRoot: function atRoot() { - var path = this.location.pathname.replace(/[^\/]$/, '$&/'); - return path === this.root && !this.getSearch(); - }, - // Does the pathname match the root? - matchRoot: function matchRoot() { - var path = this.decodeFragment(this.location.pathname); - var rootPath = path.slice(0, this.root.length - 1) + '/'; - return rootPath === this.root; - }, - // Unicode characters in `location.pathname` are percent encoded so they're - // decoded for comparison. `%25` should not be decoded since it may be part - // of an encoded parameter. - decodeFragment: function decodeFragment(fragment) { - return decodeURI(fragment.replace(/%25/g, '%2525')); - }, - // In IE6, the hash fragment and search params are incorrect if the - // fragment contains `?`. - getSearch: function getSearch() { - var match = this.location.href.replace(/#.*/, '').match(/\?.+/); - return match ? match[0] : ''; - }, - // Gets the true hash value. Cannot use location.hash directly due to bug - // in Firefox where location.hash will always be decoded. - getHash: function getHash(window) { - var match = (window || this).location.href.match(/#(.*)$/); - return match ? match[1] : ''; - }, - // Get the pathname and search params, without the root. - getPath: function getPath() { - var path = this.decodeFragment(this.location.pathname + this.getSearch()).slice(this.root.length - 1); - return path.charAt(0) === '/' ? path.slice(1) : path; - }, - // Get the cross-browser normalized URL fragment from the path or hash. - getFragment: function getFragment(fragment) { - if (fragment == null) { - if (this._usePushState || !this._wantsHashChange) { - fragment = this.getPath(); - } else { - fragment = this.getHash(); - } - } - return fragment.replace(routeStripper, ''); - }, - // Start the hash change handling, returning `true` if the current URL matches - // an existing route, and `false` otherwise. - start: function start(options) { - if (history_History.started) throw new Error('history has already been started'); - history_History.started = true; - - // Figure out the initial configuration. Do we need an iframe? - // Is pushState desired ... is it available? - this.options = lodash_es_assignIn({ - root: '/' - }, this.options, options); - this.root = this.options.root; - this._wantsHashChange = this.options.hashChange !== false; - this._hasHashChange = 'onhashchange' in window && (document.documentMode === undefined || document.documentMode > 7); - this._useHashChange = this._wantsHashChange && this._hasHashChange; - this._wantsPushState = !!this.options.pushState; - this._hasPushState = !!(this.history && this.history.pushState); - this._usePushState = this._wantsPushState && this._hasPushState; - this.fragment = this.getFragment(); - - // Normalize root to always include a leading and trailing slash. - this.root = ('/' + this.root + '/').replace(rootStripper, '/'); +} - // Transition from hashChange to pushState or vice versa if both are - // requested. - if (this._wantsHashChange && this._wantsPushState) { - // If we've started off with a route from a `pushState`-enabled - // browser, but we're currently in a browser that doesn't support it... - if (!this._hasPushState && !this.atRoot()) { - var rootPath = this.root.slice(0, -1) || '/'; - this.location.replace(rootPath + '#' + this.getPath()); - // Return immediately as browser will do redirect to new url - return true; +/** + * Given the an array of file extensions, check whether a URL points to a file + * ending in one of them. + * @param { String[] } types - An array of file extensions + * @param { String } url + * @returns { Boolean } + * @example + * checkFileTypes(['.gif'], 'https://conversejs.org/cat.gif?foo=bar'); + */ +function checkFileTypes(types, url) { + var uri = getURI(url); + if (uri === null) { + throw new Error("checkFileTypes: could not parse url ".concat(url)); + } + var filename = uri.filename().toLowerCase(); + return !!types.filter(function (ext) { + return filename.endsWith(ext); + }).length; +} +function isDomainWhitelisted(whitelist, url) { + var uri = getURI(url); + var subdomain = uri.subdomain(); + var domain = uri.domain(); + var fulldomain = "".concat(subdomain ? "".concat(subdomain, ".") : '').concat(domain); + return whitelist.includes(domain) || whitelist.includes(fulldomain); +} +function shouldRenderMediaFromURL(url_text, type) { + if (!isAllowedProtocolForMedia(url_text)) { + return false; + } + var may_render = shared_api.settings.get('render_media'); + var is_domain_allowed = isDomainAllowed(url_text, "allowed_".concat(type, "_domains")); + if (Array.isArray(may_render)) { + return is_domain_allowed && isDomainWhitelisted(may_render, url_text); + } else { + return is_domain_allowed && may_render; + } +} +function filterQueryParamsFromURL(url) { + var paramsArray = shared_api.settings.get('filter_url_query_params'); + if (!paramsArray) return url; + var parsed_uri = getURI(url); + return parsed_uri.removeQuery(paramsArray).toString(); +} +function isDomainAllowed(url, setting) { + var allowed_domains = shared_api.settings.get(setting); + if (!Array.isArray(allowed_domains)) { + return true; + } + try { + return isDomainWhitelisted(allowed_domains, url); + } catch (error) { + log.debug(error); + return false; + } +} - // Or if we've started out with a hash-based route, but we're currently - // in a browser where it could be `pushState`-based instead... - } else if (this._hasPushState && this.atRoot()) { - this.navigate(this.getHash(), { - replace: true - }); - } - } +/** + * Accepts a {@link MediaURL} object and then checks whether its domain is + * allowed for rendering in the chat. + * @param { MediaURL } o + * @returns { Bool } + */ +function isMediaURLDomainAllowed(o) { + return o.is_audio && isDomainAllowed(o.url, 'allowed_audio_domains') || o.is_video && isDomainAllowed(o.url, 'allowed_video_domains') || o.is_image && isDomainAllowed(o.url, 'allowed_image_domains'); +} +function isURLWithImageExtension(url) { + return checkFileTypes(['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff', '.svg'], url); +} +function isGIFURL(url) { + return checkFileTypes(['.gif'], url); +} +function isAudioURL(url) { + return checkFileTypes(['.ogg', '.mp3', '.m4a'], url); +} +function isVideoURL(url) { + return checkFileTypes(['.mp4', '.webm'], url); +} +function isImageURL(url) { + var regex = shared_api.settings.get('image_urls_regex'); + return (regex === null || regex === void 0 ? void 0 : regex.test(url)) || isURLWithImageExtension(url); +} +function isEncryptedFileURL(url) { + return url.startsWith('aesgcm://'); +} +Object.assign(url_u, { + isAudioURL: isAudioURL, + isGIFURL: isGIFURL, + isVideoURL: isVideoURL, + isImageURL: isImageURL, + isURLWithImageExtension: isURLWithImageExtension, + checkFileTypes: checkFileTypes, + getURI: getURI, + shouldRenderMediaFromURL: shouldRenderMediaFromURL, + isAllowedProtocolForMedia: isAllowedProtocolForMedia +}); +;// CONCATENATED MODULE: ./src/headless/shared/parsers.js +function parsers_typeof(obj) { + "@babel/helpers - typeof"; - // Proxy an iframe to handle location events if the browser doesn't - // support the `hashchange` event, HTML5 history, or the user wants - // `hashChange` but not `pushState`. - if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) { - this.iframe = document.createElement('iframe'); - this.iframe.src = 'javascript:0'; - this.iframe.style.display = 'none'; - this.iframe.tabIndex = -1; - var body = document.body; - // Using `appendChild` will throw on IE < 9 if the document is not ready. - var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow; - iWindow.document.open(); - iWindow.document.close(); - iWindow.location.hash = '#' + this.fragment; + return parsers_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, parsers_typeof(obj); +} +function parsers_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, parsers_toPropertyKey(descriptor.key), descriptor); + } +} +function parsers_createClass(Constructor, protoProps, staticProps) { + if (protoProps) parsers_defineProperties(Constructor.prototype, protoProps); + if (staticProps) parsers_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function parsers_toPropertyKey(arg) { + var key = parsers_toPrimitive(arg, "string"); + return parsers_typeof(key) === "symbol" ? key : String(key); +} +function parsers_toPrimitive(input, hint) { + if (parsers_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (parsers_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function parsers_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function parsers_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true } - - // Depending on whether we're using pushState or hashes, and whether - // 'onhashchange' is supported, determine how we check the URL state. - if (this._usePushState) { - addEventListener('popstate', this.checkUrl, false); - } else if (this._useHashChange && !this.iframe) { - addEventListener('hashchange', this.checkUrl, false); - } else if (this._wantsHashChange) { - this._checkUrlInterval = setInterval(this.checkUrl, this.interval); + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) parsers_setPrototypeOf(subClass, superClass); +} +function parsers_createSuper(Derived) { + var hasNativeReflectConstruct = parsers_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = parsers_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = parsers_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); } - if (!this.options.silent) return this.loadUrl(); - }, - // Disable history, perhaps temporarily. Not useful in a real app, - // but possibly useful for unit testing Routers. - stop: function stop() { - // Remove window listeners. - if (this._usePushState) { - removeEventListener('popstate', this.checkUrl, false); - } else if (this._useHashChange && !this.iframe) { - removeEventListener('hashchange', this.checkUrl, false); + return parsers_possibleConstructorReturn(this, result); + }; +} +function parsers_possibleConstructorReturn(self, call) { + if (call && (parsers_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return parsers_assertThisInitialized(self); +} +function parsers_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} +function parsers_wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + parsers_wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !parsers_isNativeFunction(Class)) return Class; + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); } - - // Clean up the iframe if necessary. - if (this.iframe) { - document.body.removeChild(this.iframe); - this.iframe = null; + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + _cache.set(Class, Wrapper); } - - // Some environments will throw when clearing an undefined interval. - if (this._checkUrlInterval) clearInterval(this._checkUrlInterval); - history_History.started = false; - }, - // Add a route to be tested when the fragment changes. Routes added later - // may override previous routes. - route: function route(_route, callback) { - this.handlers.unshift({ - route: _route, - callback: callback - }); - }, - // Checks the current URL to see if it has changed, and if it has, - // calls `loadUrl`, normalizing across the hidden iframe. - checkUrl: function checkUrl(e) { - var current = this.getFragment(); - - // If the user pressed the back button, the iframe's hash will have - // changed and we should use that for comparison. - if (current === this.fragment && this.iframe) { - current = this.getHash(this.iframe.contentWindow); + function Wrapper() { + return parsers_construct(Class, arguments, parsers_getPrototypeOf(this).constructor); } - if (current === this.fragment) return false; - if (this.iframe) this.navigate(current); - this.loadUrl(); - }, - // Attempt to load the current URL fragment. If a route succeeds with a - // match, returns `true`. If no defined routes matches the fragment, - // returns `false`. - loadUrl: function loadUrl(fragment) { - // If the root doesn't match, no routes can match either. - if (!this.matchRoot()) return false; - fragment = this.fragment = this.getFragment(fragment); - return lodash_es_some(this.handlers, function (handler) { - if (handler.route.test(fragment)) { - handler.callback(fragment); - return true; + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true } }); - }, - // Save a fragment into the hash history, or replace the URL state if the - // 'replace' option is passed. You are responsible for properly URL-encoding - // the fragment in advance. - // - // The options object can contain `trigger: true` if you wish to have the - // route callback be fired (not usually desirable), or `replace: true`, if - // you wish to modify the current URL without adding an entry to the history. - navigate: function navigate(fragment, options) { - if (!history_History.started) return false; - if (!options || options === true) options = { - trigger: !!options + return parsers_setPrototypeOf(Wrapper, Class); + }; + return parsers_wrapNativeSuper(Class); +} +function parsers_construct(Parent, args, Class) { + if (parsers_isNativeReflectConstruct()) { + parsers_construct = Reflect.construct.bind(); + } else { + parsers_construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) parsers_setPrototypeOf(instance, Class.prototype); + return instance; }; + } + return parsers_construct.apply(null, arguments); +} +function parsers_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} +function parsers_isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; +} +function parsers_setPrototypeOf(o, p) { + parsers_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return parsers_setPrototypeOf(o, p); +} +function parsers_getPrototypeOf(o) { + parsers_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return parsers_getPrototypeOf(o); +} - // Normalize the fragment. - fragment = this.getFragment(fragment || ''); - // Don't include a trailing slash on the root. - var rootPath = this.root; - if (fragment === '' || fragment.charAt(0) === '?') { - rootPath = rootPath.slice(0, -1) || '/'; - } - var url = rootPath + fragment; - // Strip the fragment of the query and hash for matching. - fragment = fragment.replace(pathStripper, ''); - // Decode for matching. - var decodedFragment = this.decodeFragment(fragment); - if (this.fragment === decodedFragment) return; - this.fragment = decodedFragment; - // If pushState is available, we use it to set the fragment as a real URL. - if (this._usePushState) { - this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url); - // If hash changes haven't been explicitly disabled, update the hash - // fragment to store history. - } else if (this._wantsHashChange) { - this._updateHash(this.location, fragment, options.replace); - if (this.iframe && fragment !== this.getHash(this.iframe.contentWindow)) { - var iWindow = this.iframe.contentWindow; - // Opening and closing the iframe tricks IE7 and earlier to push a - // history entry on hash-tag change. When replace is true, we don't - // want this. - if (!options.replace) { - iWindow.document.open(); - iWindow.document.close(); - } - this._updateHash(iWindow.location, fragment, options.replace); - } - // If you've told us that you explicitly don't want fallback hashchange- - // based history, then `navigate` becomes a page refresh. - } else { - return this.location.assign(url); - } - if (options.trigger) return this.loadUrl(fragment); - }, - // Update the hash location, either replacing the current entry, or adding - // a new one to the browser history. - _updateHash: function _updateHash(location, fragment, replace) { - if (replace) { - var href = location.href.replace(/(javascript:|#).*$/, ''); - location.replace(href + '#' + fragment); - } else { - // Some browsers require that `hash` contains a leading #. - location.hash = '#' + fragment; - } - } -}); -/* harmony default export */ const src_history = (history_History); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseIsRegExp.js -/** `Object#toString` result references. */ -var _baseIsRegExp_regexpTag = '[object RegExp]'; +var NS = external_strophe_namespaceObject.Strophe.NS; +var StanzaParseError = /*#__PURE__*/function (_Error) { + parsers_inherits(StanzaParseError, _Error); + var _super = parsers_createSuper(StanzaParseError); + function StanzaParseError(message, stanza) { + var _this; + parsers_classCallCheck(this, StanzaParseError); + _this = _super.call(this, message, stanza); + _this.name = 'StanzaParseError'; + _this.stanza = stanza; + return _this; + } + return parsers_createClass(StanzaParseError); +}( /*#__PURE__*/parsers_wrapNativeSuper(Error)); /** - * The base implementation of `_.isRegExp` without Node.js optimizations. - * + * Extract the XEP-0359 stanza IDs from the passed in stanza + * and return a map containing them. * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. + * @param { Element } stanza - The message stanza + * @returns { Object } */ -function baseIsRegExp(value) { - return lodash_es_isObjectLike(value) && _baseGetTag(value) == _baseIsRegExp_regexpTag; -} -/* harmony default export */ const _baseIsRegExp = (baseIsRegExp); -;// CONCATENATED MODULE: ./node_modules/lodash-es/isRegExp.js - - +function getStanzaIDs(stanza, original_stanza) { + var attrs = {}; + // Store generic stanza ids + var sids = external_sizzle_default()("stanza-id[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.SID, "\"]"), stanza); + var sid_attrs = sids.reduce(function (acc, s) { + acc["stanza_id ".concat(s.getAttribute('by'))] = s.getAttribute('id'); + return acc; + }, {}); + Object.assign(attrs, sid_attrs); + // Store the archive id + var result = external_sizzle_default()("message > result[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.MAM, "\"]"), original_stanza).pop(); + if (result) { + var by_jid = original_stanza.getAttribute('from') || shared_converse.bare_jid; + attrs["stanza_id ".concat(by_jid)] = result.getAttribute('id'); + } -/* Node.js helper references. */ -var nodeIsRegExp = _nodeUtil && _nodeUtil.isRegExp; + // Store the origin id + var origin_id = external_sizzle_default()("origin-id[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.SID, "\"]"), stanza).pop(); + if (origin_id) { + attrs['origin_id'] = origin_id.getAttribute('id'); + } + return attrs; +} +function getEncryptionAttributes(stanza) { + var eme_tag = external_sizzle_default()("encryption[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.EME, "\"]"), stanza).pop(); + var namespace = eme_tag === null || eme_tag === void 0 ? void 0 : eme_tag.getAttribute('namespace'); + var attrs = {}; + if (namespace) { + attrs.is_encrypted = true; + attrs.encryption_namespace = namespace; + } else if (external_sizzle_default()("encrypted[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.OMEMO, "\"]"), stanza).pop()) { + attrs.is_encrypted = true; + attrs.encryption_namespace = external_strophe_namespaceObject.Strophe.NS.OMEMO; + } + return attrs; +} /** - * Checks if `value` is classified as a `RegExp` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. - * @example - * - * _.isRegExp(/abc/); - * // => true - * - * _.isRegExp('/abc/'); - * // => false + * @private + * @param { Element } stanza - The message stanza + * @param { Element } original_stanza - The original stanza, that contains the + * message stanza, if it was contained, otherwise it's the message stanza itself. + * @returns { Object } */ -var isRegExp = nodeIsRegExp ? _baseUnary(nodeIsRegExp) : _baseIsRegExp; -/* harmony default export */ const lodash_es_isRegExp = (isRegExp); -;// CONCATENATED MODULE: ./node_modules/@converse/skeletor/src/router.js -// Backbone.js 1.4.0 -// (c) 2010-2019 Jeremy Ashkenas and DocumentCloud -// Backbone may be freely distributed under the MIT license. - -// Router -// ------ - - - - - - - - - - -// Routers map faux-URLs to actions, and fire events when routes are -// matched. Creating a new one sets its `routes` hash, if not set statically. -var Router = function Router() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - this.history = options.history || new src_history(); - this.preinitialize.apply(this, arguments); - if (options.routes) this.routes = options.routes; - this._bindRoutes(); - this.initialize.apply(this, arguments); -}; -Router.extend = inherits; - -// Cached regular expressions for matching named param parts and splatted -// parts of route strings. -var optionalParam = /\((.*?)\)/g; -var namedParam = /(\(\?)?:\w+/g; -var splatParam = /\*\w+/g; -var escapeRegExp = /[\-{}\[\]+?.,\\\^$|#\s]/g; - -// Set up all inheritable **Router** properties and methods. -Object.assign(Router.prototype, Events, { - // preinitialize is an empty function by default. You can override it with a function - // or object. preinitialize will run before any instantiation logic is run in the Router. - preinitialize: function preinitialize() {}, - // Initialize is an empty function by default. Override it with your own - // initialization logic. - initialize: function initialize() {}, - // Manually bind a single named route to a callback. For example: - // - // this.route('search/:query/p:num', 'search', function(query, num) { - // ... - // }); - // - route: function route(_route, name, callback) { - var _this = this; - if (!lodash_es_isRegExp(_route)) _route = this._routeToRegExp(_route); - if (lodash_es_isFunction(name)) { - callback = name; - name = ''; +function getRetractionAttributes(stanza, original_stanza) { + var fastening = external_sizzle_default()("> apply-to[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.FASTEN, "\"]"), stanza).pop(); + if (fastening) { + var applies_to_id = fastening.getAttribute('id'); + var retracted = external_sizzle_default()("> retract[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.RETRACT, "\"]"), fastening).pop(); + if (retracted) { + var delay = external_sizzle_default()("delay[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.DELAY, "\"]"), original_stanza).pop(); + var time = delay ? dayjs_min_default()(delay.getAttribute('stamp')).toISOString() : new Date().toISOString(); + return { + 'editable': false, + 'retracted': time, + 'retracted_id': applies_to_id + }; } - if (!callback) callback = this[name]; - this.history.route(_route, function (fragment) { - var args = _this._extractParameters(_route, fragment); - if (_this.execute(callback, args, name) !== false) { - _this.trigger.apply(_this, ['route:' + name].concat(args)); - _this.trigger('route', name, args); - _this.history.trigger('route', _this, name, args); + } else { + var tombstone = external_sizzle_default()("> retracted[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.RETRACT, "\"]"), stanza).pop(); + if (tombstone) { + return { + 'editable': false, + 'is_tombstone': true, + 'retracted': tombstone.getAttribute('stamp') + }; + } + } + return {}; +} +function getCorrectionAttributes(stanza, original_stanza) { + var el = external_sizzle_default()("replace[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.MESSAGE_CORRECT, "\"]"), stanza).pop(); + if (el) { + var replace_id = el.getAttribute('id'); + if (replace_id) { + var delay = external_sizzle_default()("delay[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.DELAY, "\"]"), original_stanza).pop(); + var time = delay ? dayjs_min_default()(delay.getAttribute('stamp')).toISOString() : new Date().toISOString(); + return { + replace_id: replace_id, + 'edited': time + }; + } + } + return {}; +} +function getOpenGraphMetadata(stanza) { + var fastening = external_sizzle_default()("> apply-to[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.FASTEN, "\"]"), stanza).pop(); + if (fastening) { + var applies_to_id = fastening.getAttribute('id'); + var meta = external_sizzle_default()("> meta[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.XHTML, "\"]"), fastening); + if (meta.length) { + var msg_limit = shared_api.settings.get('message_limit'); + var data = meta.reduce(function (acc, el) { + var property = el.getAttribute('property'); + if (property) { + var value = decodeHTMLEntities(el.getAttribute('content') || ''); + if (msg_limit && property === 'og:description' && value.length >= msg_limit) { + value = "".concat(value.slice(0, msg_limit)).concat(decodeHTMLEntities('…')); + } + acc[property] = value; + } + return acc; + }, { + 'ogp_for_id': applies_to_id + }); + if ("og:description" in data || "og:title" in data || "og:image" in data) { + return data; } - }); - return this; - }, - // Execute a route handler with the provided parameters. This is an - // excellent place to do pre-route setup or post-route cleanup. - execute: function execute(callback, args, name) { - if (callback) callback.apply(this, args); - }, - // Simple proxy to `history` to save a fragment into the history. - navigate: function navigate(fragment, options) { - this.history.navigate(fragment, options); - return this; - }, - // Bind all defined routes to `history`. We have to reverse the - // order of the routes here to support behavior where the most general - // routes can be defined at the bottom of the route map. - _bindRoutes: function _bindRoutes() { - if (!this.routes) return; - this.routes = lodash_es_result(this, 'routes'); - var route; - var routes = lodash_es_keys(this.routes); - while ((route = routes.pop()) != null) { - this.route(route, this.routes[route]); } - }, - // Convert a route string into a regular expression, suitable for matching - // against the current location hash. - _routeToRegExp: function _routeToRegExp(route) { - route = route.replace(escapeRegExp, '\\$&').replace(optionalParam, '(?:$1)?').replace(namedParam, function (match, optional) { - return optional ? match : '([^/?]+)'; - }).replace(splatParam, '([^?]*?)'); - return new RegExp('^' + route + '(?:\\?([\\s\\S]*))?$'); - }, - // Given a route, and a URL fragment that it matches, return the array of - // extracted decoded parameters. Empty or unmatched parameters will be - // treated as `null` to normalize cross-browser behavior. - _extractParameters: function _extractParameters(route, fragment) { - var params = route.exec(fragment).slice(1); - return params.map(function (param, i) { - // Don't decode the search params. - if (i === params.length - 1) return param || null; - return param ? decodeURIComponent(param) : null; - }); } -}); -;// CONCATENATED MODULE: ./src/headless/shared/_converse.js - - - - - - - - - + return {}; +} +function getMediaURLsMetadata(text) { + var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var objs = []; + if (!text) { + return {}; + } + try { + external_urijs_default().withinString(text, function (url, start, end) { + if (url.startsWith('_')) { + url = url.slice(1); + start += 1; + } + if (url.endsWith('_')) { + url = url.slice(0, url.length - 1); + end -= 1; + } + objs.push({ + url: url, + 'start': start + offset, + 'end': end + offset + }); + return url; + }, URL_PARSE_OPTIONS); + } catch (error) { + log.debug(error); + } + /** + * @typedef { Object } MediaURLMetadata + * An object representing the metadata of a URL found in a chat message + * The actual URL is not saved, it can be extracted via the `start` and `end` indexes. + * @property { Boolean } is_audio + * @property { Boolean } is_image + * @property { Boolean } is_video + * @property { String } end + * @property { String } start + */ + var media_urls = objs.map(function (o) { + return { + 'end': o.end, + 'is_audio': isAudioURL(o.url), + 'is_image': isImageURL(o.url), + 'is_video': isVideoURL(o.url), + 'is_encrypted': isEncryptedFileURL(o.url), + 'start': o.start + }; + }); + return media_urls.length ? { + media_urls: media_urls + } : {}; +} +function getSpoilerAttributes(stanza) { + var spoiler = external_sizzle_default()("spoiler[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.SPOILER, "\"]"), stanza).pop(); + return { + 'is_spoiler': !!spoiler, + 'spoiler_hint': spoiler === null || spoiler === void 0 ? void 0 : spoiler.textContent + }; +} +function getOutOfBandAttributes(stanza) { + var xform = external_sizzle_default()("x[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.OUTOFBAND, "\"]"), stanza).pop(); + if (xform) { + var _xform$querySelector, _xform$querySelector2; + return { + 'oob_url': (_xform$querySelector = xform.querySelector('url')) === null || _xform$querySelector === void 0 ? void 0 : _xform$querySelector.textContent, + 'oob_desc': (_xform$querySelector2 = xform.querySelector('desc')) === null || _xform$querySelector2 === void 0 ? void 0 : _xform$querySelector2.textContent + }; + } + return {}; +} /** - * A private, closured object containing the private api (via {@link _converse.api}) - * as well as private methods and internal data-structures. - * @global - * @namespace _converse + * Returns the human readable error message contained in a `groupchat` message stanza of type `error`. + * @private + * @param { Element } stanza - The message stanza */ -var _converse = { - log: log, - shouldClearCache: shouldClearCache, - // TODO: Should be moved to utils with next major release - VERSION_NAME: VERSION_NAME, - templates: {}, - promises: { - 'initialized': getOpenPromise() - }, - // TODO: remove constants in next major release - ANONYMOUS: ANONYMOUS, - CLOSED: CLOSED, - EXTERNAL: EXTERNAL, - LOGIN: LOGIN, - LOGOUT: LOGOUT, - OPENED: OPENED, - PREBIND: PREBIND, - SUCCESS: SUCCESS, - FAILURE: FAILURE, - DEFAULT_IMAGE_TYPE: DEFAULT_IMAGE_TYPE, - DEFAULT_IMAGE: DEFAULT_IMAGE, - INACTIVE: INACTIVE, - ACTIVE: ACTIVE, - COMPOSING: COMPOSING, - PAUSED: PAUSED, - GONE: GONE, - PRIVATE_CHAT_TYPE: PRIVATE_CHAT_TYPE, - CHATROOMS_TYPE: CHATROOMS_TYPE, - HEADLINES_TYPE: HEADLINES_TYPE, - CONTROLBOX_TYPE: CONTROLBOX_TYPE, - // Set as module attr so that we can override in tests. - // TODO: replace with config settings - TIMEOUTS: { - PAUSED: 10000, - INACTIVE: 90000 - }, - default_connection_options: { - 'explicitResourceBinding': true - }, - router: new Router(), - isTestEnv: function isTestEnv() { - return getInitSettings()['bosh_service_url'] === 'montague.lit/http-bind'; - }, - getDefaultStore: getDefaultStore, - createStore: createStore, - /** - * Translate the given string based on the current locale. - * @method __ - * @private - * @memberOf _converse - * @param { String } str - */ - '__': function __() { - return i18n.__.apply(i18n, arguments); - }, - /** - * A no-op method which is used to signal to gettext that the passed in string - * should be included in the pot translation file. - * - * In contrast to the double-underscore method, the triple underscore method - * doesn't actually translate the strings. - * - * One reason for this method might be because we're using strings we cannot - * send to the translation function because they require variable interpolation - * and we don't yet have the variables at scan time. - * - * @method ___ - * @private - * @memberOf _converse - * @param { String } str - */ - '___': function ___(str) { - return str; +function getErrorAttributes(stanza) { + if (stanza.getAttribute('type') === 'error') { + var error = stanza.querySelector('error'); + var text = external_sizzle_default()("text[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.STANZAS, "\"]"), error).pop(); + return { + 'is_error': true, + 'error_text': text === null || text === void 0 ? void 0 : text.textContent, + 'error_type': error.getAttribute('type'), + 'error_condition': error.firstElementChild.nodeName + }; } -}; + return {}; +} -// Make _converse an event emitter -Object.assign(_converse, Events); +/** + * Given a message stanza, find and return any XEP-0372 references + * @param { Element } stana - The message stanza + * @returns { Reference } + */ +function getReferences(stanza) { + return external_sizzle_default()("reference[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.REFERENCE, "\"]"), stanza).map(function (ref) { + var _stanza$querySelector; + var anchor = ref.getAttribute('anchor'); + var text = (_stanza$querySelector = stanza.querySelector(anchor ? "#".concat(anchor) : 'body')) === null || _stanza$querySelector === void 0 ? void 0 : _stanza$querySelector.textContent; + if (!text) { + log.warn("Could not find referenced text for ".concat(ref)); + return null; + } + var begin = ref.getAttribute('begin'); + var end = ref.getAttribute('end'); + /** + * @typedef { Object } Reference + * An object representing XEP-0372 reference data + * @property { string } begin + * @property { string } end + * @property { string } type + * @property { String } value + * @property { String } uri + */ + return { + begin: begin, + end: end, + 'type': ref.getAttribute('type'), + 'value': text.slice(begin, end), + 'uri': ref.getAttribute('uri') + }; + }).filter(function (r) { + return r; + }); +} +function getReceiptId(stanza) { + var receipt = external_sizzle_default()("received[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.RECEIPTS, "\"]"), stanza).pop(); + return receipt === null || receipt === void 0 ? void 0 : receipt.getAttribute('id'); +} -// Make _converse pluggable -pluggable.enable(_converse, '_converse', 'pluggable'); -/* harmony default export */ const shared_converse = (_converse); -// EXTERNAL MODULE: ./node_modules/dayjs/plugin/advancedFormat.js -var advancedFormat = __webpack_require__(4289); -var advancedFormat_default = /*#__PURE__*/__webpack_require__.n(advancedFormat); -;// CONCATENATED MODULE: ./src/headless/shared/connection/api.js +/** + * Determines whether the passed in stanza is a XEP-0280 Carbon + * @private + * @param { Element } stanza - The message stanza + * @returns { Boolean } + */ +function isCarbon(stanza) { + var xmlns = external_strophe_namespaceObject.Strophe.NS.CARBONS; + return external_sizzle_default()("message > received[xmlns=\"".concat(xmlns, "\"]"), stanza).length > 0 || external_sizzle_default()("message > sent[xmlns=\"".concat(xmlns, "\"]"), stanza).length > 0; +} +/** + * Returns the XEP-0085 chat state contained in a message stanza + * @private + * @param { Element } stanza - The message stanza + */ +function getChatState(stanza) { + var _sizzle$pop; + return (_sizzle$pop = external_sizzle_default()("\n composing[xmlns=\"".concat(NS.CHATSTATES, "\"],\n paused[xmlns=\"").concat(NS.CHATSTATES, "\"],\n inactive[xmlns=\"").concat(NS.CHATSTATES, "\"],\n active[xmlns=\"").concat(NS.CHATSTATES, "\"],\n gone[xmlns=\"").concat(NS.CHATSTATES, "\"]"), stanza).pop()) === null || _sizzle$pop === void 0 ? void 0 : _sizzle$pop.nodeName; +} +function isValidReceiptRequest(stanza, attrs) { + return attrs.sender !== 'me' && !attrs.is_carbon && !attrs.is_archived && external_sizzle_default()("request[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.RECEIPTS, "\"]"), stanza).length; +} +/** + * Check whether the passed-in stanza is a forwarded message that is "bare", + * i.e. it's not forwarded as part of a larger protocol, like MAM. + * @param { Element } stanza + */ +function throwErrorIfInvalidForward(stanza) { + var bare_forward = external_sizzle_default()("message > forwarded[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.FORWARD, "\"]"), stanza).length; + if (bare_forward) { + rejectMessage(stanza, 'Forwarded messages not part of an encapsulating protocol are not supported'); + var from_jid = stanza.getAttribute('from'); + throw new StanzaParseError("Ignoring unencapsulated forwarded message from ".concat(from_jid), stanza); + } +} /** - * This grouping collects API functions related to the XMPP connection. - * - * @namespace _converse.api.connection - * @memberOf _converse.api + * Determines whether the passed in stanza is a XEP-0333 Chat Marker + * @private + * @method getChatMarker + * @param { Element } stanza - The message stanza + * @returns { Boolean } */ -/* harmony default export */ const api = ({ - /** - * @method _converse.api.connection.authenticated - * @memberOf _converse.api.connection - * @returns {boolean} Whether we're authenticated to the XMPP server or not - */ - authenticated: function authenticated() { - var _converse$connection; - return (shared_converse === null || shared_converse === void 0 ? void 0 : (_converse$connection = shared_converse.connection) === null || _converse$connection === void 0 ? void 0 : _converse$connection.authenticated) && true; - }, - /** - * @method _converse.api.connection.connected - * @memberOf _converse.api.connection - * @returns {boolean} Whether there is an established connection or not. - */ - connected: function connected() { - var _converse$connection2; - return (shared_converse === null || shared_converse === void 0 ? void 0 : (_converse$connection2 = shared_converse.connection) === null || _converse$connection2 === void 0 ? void 0 : _converse$connection2.connected) && true; - }, - /** - * Terminates the connection. - * - * @method _converse.api.connection.disconnect - * @memberOf _converse.api.connection - */ - disconnect: function disconnect() { - if (shared_converse.connection) { - shared_converse.connection.disconnect(); - } - }, - /** - * Can be called once the XMPP connection has dropped and we want - * to attempt reconnection. - * Only needs to be called once, if reconnect fails Converse will - * attempt to reconnect every two seconds, alternating between BOSH and - * Websocket if URLs for both were provided. - * @method reconnect - * @memberOf _converse.api.connection - */ - reconnect: function reconnect() { - var __ = shared_converse.__, - connection = shared_converse.connection; - connection.setConnectionStatus(Strophe.Status.RECONNECTING, __('The connection has dropped, attempting to reconnect.')); - if (connection !== null && connection !== void 0 && connection.reconnecting) { - return connection.debouncedReconnect(); - } else { - return connection.reconnect(); - } - }, - /** - * Utility method to determine the type of connection we have - * @method isType - * @memberOf _converse.api.connection - * @returns {boolean} - */ - isType: function isType(type) { - return shared_converse.connection.isType(type); +function getChatMarker(stanza) { + // If we receive more than one marker (which shouldn't happen), we take + // the highest level of acknowledgement. + return external_sizzle_default()("\n acknowledged[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.MARKERS, "\"],\n displayed[xmlns=\"").concat(external_strophe_namespaceObject.Strophe.NS.MARKERS, "\"],\n received[xmlns=\"").concat(external_strophe_namespaceObject.Strophe.NS.MARKERS, "\"]"), stanza).pop(); +} +function isHeadline(stanza) { + return stanza.getAttribute('type') === 'headline'; +} +function isServerMessage(stanza) { + if (external_sizzle_default()("mentions[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.MENTIONS, "\"]"), stanza).pop()) { + return false; } -}); -;// CONCATENATED MODULE: ./src/headless/shared/api/events.js -function api_events_typeof(obj) { + var from_jid = stanza.getAttribute('from'); + if (stanza.getAttribute('type') !== 'error' && from_jid && !from_jid.includes('@')) { + // Some servers (e.g. Prosody) don't set the stanza + // type to "headline" when sending server messages. + // For now we check if an @ signal is included, and if not, + // we assume it's a headline stanza. + return true; + } + return false; +} + +/** + * Determines whether the passed in stanza is a XEP-0313 MAM stanza + * @private + * @method isArchived + * @param { Element } stanza - The message stanza + * @returns { Boolean } + */ +function isArchived(original_stanza) { + return !!external_sizzle_default()("message > result[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.MAM, "\"]"), original_stanza).pop(); +} + +/** + * Returns an object containing all attribute names and values for a particular element. + * @method getAttributes + * @param { Element } stanza + * @returns { Object } + */ +function getAttributes(stanza) { + return stanza.getAttributeNames().reduce(function (acc, name) { + acc[name] = external_strophe_namespaceObject.Strophe.xmlunescape(stanza.getAttribute(name)); + return acc; + }, {}); +} +;// CONCATENATED MODULE: ./src/headless/plugins/chat/parsers.js +function chat_parsers_typeof(obj) { "@babel/helpers - typeof"; - return api_events_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return chat_parsers_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, api_events_typeof(obj); + }, chat_parsers_typeof(obj); } -function events_regeneratorRuntime() { +function parsers_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - events_regeneratorRuntime = function _regeneratorRuntime() { + parsers_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -30681,7 +29517,7 @@ function events_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == api_events_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == chat_parsers_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -30906,7 +29742,7 @@ function events_regeneratorRuntime() { } }, exports; } -function events_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function parsers_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -30920,17 +29756,17 @@ function events_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg Promise.resolve(value).then(_next, _throw); } } -function events_asyncToGenerator(fn) { +function parsers_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - events_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + parsers_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - events_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + parsers_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); @@ -30938,497 +29774,314 @@ function events_asyncToGenerator(fn) { } -/* harmony default export */ const events = ({ - /** - * Lets you trigger events, which can be listened to via - * {@link _converse.api.listen.on} or {@link _converse.api.listen.once} - * (see [_converse.api.listen](http://localhost:8000/docs/html/api/-_converse.api.listen.html)). - * - * Some events also double as promises and can be waited on via {@link _converse.api.waitUntil}. - * - * @method _converse.api.trigger - * @param { string } name - The event name - * @param {...any} [argument] - Argument to be passed to the event handler - * @param { object } [options] - * @param { boolean } [options.synchronous] - Whether the event is synchronous or not. - * When a synchronous event is fired, a promise will be returned - * by {@link _converse.api.trigger} which resolves once all the - * event handlers' promises have been resolved. - */ - trigger: function trigger(name) { - var _arguments = arguments; - return events_asyncToGenerator( /*#__PURE__*/events_regeneratorRuntime().mark(function _callee() { - var args, options, events, event_args, promise; - return events_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - if (shared_converse._events) { - _context.next = 2; - break; - } - return _context.abrupt("return"); - case 2: - args = Array.from(_arguments); - options = args.pop(); - if (!(options && options.synchronous)) { - _context.next = 11; - break; - } - events = shared_converse._events[name] || []; - event_args = args.splice(1); - _context.next = 9; - return Promise.all(events.map(function (e) { - return e.callback.apply(e.ctx, event_args); - })); - case 9: - _context.next = 12; - break; - case 11: - shared_converse.trigger.apply(shared_converse, _arguments); - case 12: - promise = shared_converse.promises[name]; - if (promise !== undefined) { - promise.resolve(); - } - case 14: - case "end": - return _context.stop(); - } - }, _callee); - }))(); - }, - /** - * Triggers a hook which can be intercepted by registered listeners via - * {@link _converse.api.listen.on} or {@link _converse.api.listen.once}. - * (see [_converse.api.listen](http://localhost:8000/docs/html/api/-_converse.api.listen.html)). - * A hook is a special kind of event which allows you to intercept a data - * structure in order to modify it, before passing it back. - * @async - * @param { string } name - The hook name - * @param {...any} context - The context to which the hook applies (could be for example, a {@link _converse.ChatBox})). - * @param {...any} data - The data structure to be intercepted and modified by the hook listeners. - * @returns {Promise} - A promise that resolves with the modified data structure. - */ - hook: function hook(name, context, data) { - var events = shared_converse._events[name] || []; - if (events.length) { - // Create a chain of promises, with each one feeding its output to - // the next. The first input is a promise with the original data - // sent to this hook. - return events.reduce(function (o, e) { - return o.then(function (d) { - return e.callback(context, d); - }); - }, Promise.resolve(data)); - } else { - return data; - } - }, - /** - * Converse emits events to which you can subscribe to. - * - * The `listen` namespace exposes methods for creating event listeners - * (aka handlers) for these events. - * - * @namespace _converse.api.listen - * @memberOf _converse - */ - listen: { - /** - * Lets you listen to an event exactly once. - * @method _converse.api.listen.once - * @param { string } name The event's name - * @param { function } callback The callback method to be called when the event is emitted. - * @param { object } [context] The value of the `this` parameter for the callback. - * @example _converse.api.listen.once('message', function (messageXML) { ... }); - */ - once: shared_converse.once.bind(shared_converse), - /** - * Lets you subscribe to an event. - * Every time the event fires, the callback method specified by `callback` will be called. - * @method _converse.api.listen.on - * @param { string } name The event's name - * @param { function } callback The callback method to be called when the event is emitted. - * @param { object } [context] The value of the `this` parameter for the callback. - * @example _converse.api.listen.on('message', function (messageXML) { ... }); - */ - on: shared_converse.on.bind(shared_converse), - /** - * To stop listening to an event, you can use the `not` method. - * @method _converse.api.listen.not - * @param { string } name The event's name - * @param { function } callback The callback method that is to no longer be called when the event fires - * @example _converse.api.listen.not('message', function (messageXML); - */ - not: shared_converse.off.bind(shared_converse), - /** - * Subscribe to an incoming stanza - * Every a matched stanza is received, the callback method specified by - * `callback` will be called. - * @method _converse.api.listen.stanza - * @param { string } name The stanza's name - * @param { object } options Matching options (e.g. 'ns' for namespace, 'type' for stanza type, also 'id' and 'from'); - * @param { function } handler The callback method to be called when the stanza appears - */ - stanza: function stanza(name, options, handler) { - if (utils_core(options)) { - handler = options; - options = {}; - } else { - options = options || {}; - } - shared_converse.connection.addHandler(handler, options.ns, name, options.type, options.id, options.from, options); - } - } -}); -;// CONCATENATED MODULE: ./src/headless/shared/api/promise.js -/* harmony default export */ const promise = ({ - /** - * Converse and its plugins trigger various events which you can listen to via the - * {@link _converse.api.listen} namespace. - * - * Some of these events are also available as [ES2015 Promises](http://es6-features.org/#PromiseUsage) - * although not all of them could logically act as promises, since some events - * might be fired multpile times whereas promises are to be resolved (or - * rejected) only once. - * - * Events which are also promises include: - * - * * [cachedRoster](/docs/html/events.html#cachedroster) - * * [chatBoxesFetched](/docs/html/events.html#chatBoxesFetched) - * * [pluginsInitialized](/docs/html/events.html#pluginsInitialized) - * * [roster](/docs/html/events.html#roster) - * * [rosterContactsFetched](/docs/html/events.html#rosterContactsFetched) - * * [rosterGroupsFetched](/docs/html/events.html#rosterGroupsFetched) - * * [rosterInitialized](/docs/html/events.html#rosterInitialized) - * - * The various plugins might also provide promises, and they do this by using the - * `promises.add` api method. - * - * @namespace _converse.api.promises - * @memberOf _converse.api - */ - promises: { - /** - * By calling `promises.add`, a new [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) - * is made available for other code or plugins to depend on via the - * {@link _converse.api.waitUntil} method. - * - * Generally, it's the responsibility of the plugin which adds the promise to - * also resolve it. - * - * This is done by calling {@link _converse.api.trigger}, which not only resolves the - * promise, but also emits an event with the same name (which can be listened to - * via {@link _converse.api.listen}). - * - * @method _converse.api.promises.add - * @param {string|array} [name|names] The name or an array of names for the promise(s) to be added - * @param { boolean } [replace=true] Whether this promise should be replaced with a new one when the user logs out. - * @example _converse.api.promises.add('foo-completed'); - */ - add: function add(promises) { - var replace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - promises = Array.isArray(promises) ? promises : [promises]; - promises.forEach(function (name) { - var promise = getOpenPromise(); - promise.replace = replace; - shared_converse.promises[name] = promise; - }); - } - }, - /** - * Wait until a promise is resolved or until the passed in function returns - * a truthy value. - * @method _converse.api.waitUntil - * @param {string|function} condition - The name of the promise to wait for, - * or a function which should eventually return a truthy value. - * @returns {Promise} - */ - waitUntil: function waitUntil(condition) { - if (core_isFunction(condition)) { - return core_waitUntil(condition); - } else { - var promise = shared_converse.promises[condition]; - if (promise === undefined) { - return null; - } - return promise; - } - } -}); -;// CONCATENATED MODULE: ./src/headless/shared/errors.js -function errors_typeof(obj) { - "@babel/helpers - typeof"; - return errors_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, errors_typeof(obj); -} -function errors_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, errors_toPropertyKey(descriptor.key), descriptor); - } -} -function errors_createClass(Constructor, protoProps, staticProps) { - if (protoProps) errors_defineProperties(Constructor.prototype, protoProps); - if (staticProps) errors_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function errors_toPropertyKey(arg) { - var key = errors_toPrimitive(arg, "string"); - return errors_typeof(key) === "symbol" ? key : String(key); -} -function errors_toPrimitive(input, hint) { - if (errors_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (errors_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); -} -function errors_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} -function errors_inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) errors_setPrototypeOf(subClass, superClass); -} -function errors_createSuper(Derived) { - var hasNativeReflectConstruct = errors_isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = errors_getPrototypeOf(Derived), - result; - if (hasNativeReflectConstruct) { - var NewTarget = errors_getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return errors_possibleConstructorReturn(this, result); - }; -} -function errors_possibleConstructorReturn(self, call) { - if (call && (errors_typeof(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return errors_assertThisInitialized(self); -} -function errors_assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self; -} -function errors_wrapNativeSuper(Class) { - var _cache = typeof Map === "function" ? new Map() : undefined; - errors_wrapNativeSuper = function _wrapNativeSuper(Class) { - if (Class === null || !errors_isNativeFunction(Class)) return Class; - if (typeof Class !== "function") { - throw new TypeError("Super expression must either be null or a function"); - } - if (typeof _cache !== "undefined") { - if (_cache.has(Class)) return _cache.get(Class); - _cache.set(Class, Wrapper); - } - function Wrapper() { - return errors_construct(Class, arguments, errors_getPrototypeOf(this).constructor); - } - Wrapper.prototype = Object.create(Class.prototype, { - constructor: { - value: Wrapper, - enumerable: false, - writable: true, - configurable: true - } - }); - return errors_setPrototypeOf(Wrapper, Class); - }; - return errors_wrapNativeSuper(Class); -} -function errors_construct(Parent, args, Class) { - if (errors_isNativeReflectConstruct()) { - errors_construct = Reflect.construct.bind(); - } else { - errors_construct = function _construct(Parent, args, Class) { - var a = [null]; - a.push.apply(a, args); - var Constructor = Function.bind.apply(Parent, a); - var instance = new Constructor(); - if (Class) errors_setPrototypeOf(instance, Class.prototype); - return instance; - }; - } - return errors_construct.apply(null, arguments); -} -function errors_isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; - } -} -function errors_isNativeFunction(fn) { - return Function.toString.call(fn).indexOf("[native code]") !== -1; -} -function errors_setPrototypeOf(o, p) { - errors_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return errors_setPrototypeOf(o, p); -} -function errors_getPrototypeOf(o) { - errors_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return errors_getPrototypeOf(o); -} +var _converse$env = public_converse.env, + Strophe = _converse$env.Strophe, + parsers_sizzle = _converse$env.sizzle; + /** - * Custom error for indicating timeouts - * @namespace converse.env + * Parses a passed in message stanza and returns an object of attributes. + * @method st#parseMessage + * @param { Element } stanza - The message stanza + * @param { _converse } _converse + * @returns { (MessageAttributes|Error) } */ -var TimeoutError = /*#__PURE__*/function (_Error) { - errors_inherits(TimeoutError, _Error); - var _super = errors_createSuper(TimeoutError); - function TimeoutError() { - errors_classCallCheck(this, TimeoutError); - return _super.apply(this, arguments); - } - return errors_createClass(TimeoutError); -}( /*#__PURE__*/errors_wrapNativeSuper(Error)); -;// CONCATENATED MODULE: ./src/headless/shared/api/send.js - - - - - -/* harmony default export */ const send = ({ - /** - * Allows you to send XML stanzas. - * @method _converse.api.send - * @param { Element | Stanza } stanza - * @return { void } - * @example - * const msg = converse.env.$msg({ - * 'from': 'juliet@example.com/balcony', - * 'to': 'romeo@example.net', - * 'type':'chat' - * }); - * _converse.api.send(msg); - */ - send: function send(stanza) { - var _stanza; - var api = shared_converse.api; - if (!api.connection.connected()) { - log.warn("Not sending stanza because we're not connected!"); - log.warn(Strophe.serialize(stanza)); - return; - } - if (typeof stanza === 'string') { - stanza = toStanza(stanza); - } else if ((_stanza = stanza) !== null && _stanza !== void 0 && _stanza.tree) { - stanza = stanza.tree(); - } - if (stanza.tagName === 'iq') { - return api.sendIQ(stanza); - } else { - shared_converse.connection.send(stanza); - api.trigger('send', stanza); - } - }, - /** - * Send an IQ stanza - * @method _converse.api.sendIQ - * @param { Element } stanza - * @param { number } [timeout] - The default timeout value is taken from - * the `stanza_timeout` configuration setting. - * @param { Boolean } [reject=true] - Whether an error IQ should cause the promise - * to be rejected. If `false`, the promise will resolve instead of being rejected. - * @returns { Promise } A promise which resolves (or potentially rejected) once we - * receive a `result` or `error` stanza or once a timeout is reached. - * If the IQ stanza being sent is of type `result` or `error`, there's - * nothing to wait for, so an already resolved promise is returned. - */ - sendIQ: function sendIQ(stanza, timeout) { - var _stanza$tree, _stanza$tree2, _stanza2; - var reject = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - var api = shared_converse.api, - connection = shared_converse.connection; - var promise; - stanza = (_stanza$tree = (_stanza$tree2 = (_stanza2 = stanza).tree) === null || _stanza$tree2 === void 0 ? void 0 : _stanza$tree2.call(_stanza2)) !== null && _stanza$tree !== void 0 ? _stanza$tree : stanza; - if (['get', 'set'].includes(stanza.getAttribute('type'))) { - timeout = timeout || api.settings.get('stanza_timeout'); - if (reject) { - promise = new Promise(function (resolve, reject) { - return connection.sendIQ(stanza, resolve, reject, timeout); - }); - promise.catch(function (e) { - if (e === null) { - throw new TimeoutError("Timeout error after ".concat(timeout, "ms for the following IQ stanza: ").concat(Strophe.serialize(stanza))); +function parseMessage(_x) { + return _parseMessage.apply(this, arguments); +} +function _parseMessage() { + _parseMessage = parsers_asyncToGenerator( /*#__PURE__*/parsers_regeneratorRuntime().mark(function _callee(stanza) { + var _stanza$querySelector, _stanza$querySelector2, _contact, _contact$attributes, _stanza$querySelector3, _stanza$querySelector4; + var to_jid, to_resource, original_stanza, from_jid, selector, is_archived, _selector, from_bare_jid, is_me, is_headline, is_server_message, contact, contact_jid, delay, marker, now, attrs, from; + return parsers_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + throwErrorIfInvalidForward(stanza); + to_jid = stanza.getAttribute('to'); + to_resource = Strophe.getResourceFromJid(to_jid); + if (!(shared_api.settings.get('filter_by_resource') && to_resource && to_resource !== shared_converse.resource)) { + _context.next = 5; + break; } - }); - } else { - promise = new Promise(function (resolve) { - return connection.sendIQ(stanza, resolve, resolve, timeout); - }); + return _context.abrupt("return", new StanzaParseError("Ignoring incoming message intended for a different resource: ".concat(to_jid), stanza)); + case 5: + original_stanza = stanza; + from_jid = stanza.getAttribute('from') || shared_converse.bare_jid; + if (!isCarbon(stanza)) { + _context.next = 17; + break; + } + if (!(from_jid === shared_converse.bare_jid)) { + _context.next = 15; + break; + } + selector = "[xmlns=\"".concat(Strophe.NS.CARBONS, "\"] > forwarded[xmlns=\"").concat(Strophe.NS.FORWARD, "\"] > message"); + stanza = parsers_sizzle(selector, stanza).pop(); + to_jid = stanza.getAttribute('to'); + from_jid = stanza.getAttribute('from'); + _context.next = 17; + break; + case 15: + // Prevent message forging via carbons: https://xmpp.org/extensions/xep-0280.html#security + rejectMessage(stanza, 'Rejecting carbon from invalid JID'); + return _context.abrupt("return", new StanzaParseError("Rejecting carbon from invalid JID ".concat(to_jid), stanza)); + case 17: + is_archived = isArchived(stanza); + if (!is_archived) { + _context.next = 27; + break; + } + if (!(from_jid === shared_converse.bare_jid)) { + _context.next = 26; + break; + } + _selector = "[xmlns=\"".concat(Strophe.NS.MAM, "\"] > forwarded[xmlns=\"").concat(Strophe.NS.FORWARD, "\"] > message"); + stanza = parsers_sizzle(_selector, stanza).pop(); + to_jid = stanza.getAttribute('to'); + from_jid = stanza.getAttribute('from'); + _context.next = 27; + break; + case 26: + return _context.abrupt("return", new StanzaParseError("Invalid Stanza: alleged MAM message from ".concat(stanza.getAttribute('from')), stanza)); + case 27: + from_bare_jid = Strophe.getBareJidFromJid(from_jid); + is_me = from_bare_jid === shared_converse.bare_jid; + if (!(is_me && to_jid === null)) { + _context.next = 31; + break; + } + return _context.abrupt("return", new StanzaParseError("Don't know how to handle message stanza without 'to' attribute. ".concat(stanza.outerHTML), stanza)); + case 31: + is_headline = isHeadline(stanza); + is_server_message = isServerMessage(stanza); + if (!(!is_headline && !is_server_message)) { + _context.next = 41; + break; + } + contact_jid = is_me ? Strophe.getBareJidFromJid(to_jid) : from_bare_jid; + _context.next = 37; + return shared_api.contacts.get(contact_jid); + case 37: + contact = _context.sent; + if (!(contact === undefined && !shared_api.settings.get('allow_non_roster_messaging'))) { + _context.next = 41; + break; + } + log.error(stanza); + return _context.abrupt("return", new StanzaParseError("Blocking messaging with a JID not in our roster because allow_non_roster_messaging is false.", stanza)); + case 41: + /** + * @typedef { Object } MessageAttributes + * The object which {@link parseMessage} returns + * @property { ('me'|'them') } sender - Whether the message was sent by the current user or someone else + * @property { Array } references - A list of objects representing XEP-0372 references + * @property { Boolean } editable - Is this message editable via XEP-0308? + * @property { Boolean } is_archived - Is this message from a XEP-0313 MAM archive? + * @property { Boolean } is_carbon - Is this message a XEP-0280 Carbon? + * @property { Boolean } is_delayed - Was delivery of this message was delayed as per XEP-0203? + * @property { Boolean } is_encrypted - Is this message XEP-0384 encrypted? + * @property { Boolean } is_error - Whether an error was received for this message + * @property { Boolean } is_headline - Is this a "headline" message? + * @property { Boolean } is_markable - Can this message be marked with a XEP-0333 chat marker? + * @property { Boolean } is_marker - Is this message a XEP-0333 Chat Marker? + * @property { Boolean } is_only_emojis - Does the message body contain only emojis? + * @property { Boolean } is_spoiler - Is this a XEP-0382 spoiler message? + * @property { Boolean } is_tombstone - Is this a XEP-0424 tombstone? + * @property { Boolean } is_unstyled - Whether XEP-0393 styling hints should be ignored + * @property { Boolean } is_valid_receipt_request - Does this message request a XEP-0184 receipt (and is not from us or a carbon or archived message) + * @property { Object } encrypted - XEP-0384 encryption payload attributes + * @property { String } body - The contents of the tag of the message stanza + * @property { String } chat_state - The XEP-0085 chat state notification contained in this message + * @property { String } contact_jid - The JID of the other person or entity + * @property { String } edited - An ISO8601 string recording the time that the message was edited per XEP-0308 + * @property { String } error_condition - The defined error condition + * @property { String } error_text - The error text received from the server + * @property { String } error_type - The type of error received from the server + * @property { String } from - The sender JID + * @property { String } fullname - The full name of the sender + * @property { String } marker - The XEP-0333 Chat Marker value + * @property { String } marker_id - The `id` attribute of a XEP-0333 chat marker + * @property { String } msgid - The root `id` attribute of the stanza + * @property { String } nick - The roster nickname of the sender + * @property { String } oob_desc - The description of the XEP-0066 out of band data + * @property { String } oob_url - The URL of the XEP-0066 out of band data + * @property { String } origin_id - The XEP-0359 Origin ID + * @property { String } receipt_id - The `id` attribute of a XEP-0184 element + * @property { String } received - An ISO8601 string recording the time that the message was received + * @property { String } replace_id - The `id` attribute of a XEP-0308 element + * @property { String } retracted - An ISO8601 string recording the time that the message was retracted + * @property { String } retracted_id - The `id` attribute of a XEP-424 element + * @property { String } spoiler_hint The XEP-0382 spoiler hint + * @property { String } stanza_id - The XEP-0359 Stanza ID. Note: the key is actualy `stanza_id ${by_jid}` and there can be multiple. + * @property { String } subject - The element value + * @property { String } thread - The element value + * @property { String } time - The time (in ISO8601 format), either given by the XEP-0203 element, or of receipt. + * @property { String } to - The recipient JID + * @property { String } type - The type of message + */ + delay = parsers_sizzle("delay[xmlns=\"".concat(Strophe.NS.DELAY, "\"]"), original_stanza).pop(); + marker = getChatMarker(stanza); + now = new Date().toISOString(); + attrs = Object.assign({ + contact_jid: contact_jid, + is_archived: is_archived, + is_headline: is_headline, + is_server_message: is_server_message, + 'body': (_stanza$querySelector = stanza.querySelector('body')) === null || _stanza$querySelector === void 0 ? void 0 : (_stanza$querySelector2 = _stanza$querySelector.textContent) === null || _stanza$querySelector2 === void 0 ? void 0 : _stanza$querySelector2.trim(), + 'chat_state': getChatState(stanza), + 'from': Strophe.getBareJidFromJid(stanza.getAttribute('from')), + 'is_carbon': isCarbon(original_stanza), + 'is_delayed': !!delay, + 'is_markable': !!parsers_sizzle("markable[xmlns=\"".concat(Strophe.NS.MARKERS, "\"]"), stanza).length, + 'is_marker': !!marker, + 'is_unstyled': !!parsers_sizzle("unstyled[xmlns=\"".concat(Strophe.NS.STYLING, "\"]"), stanza).length, + 'marker_id': marker && marker.getAttribute('id'), + 'msgid': stanza.getAttribute('id') || original_stanza.getAttribute('id'), + 'nick': (_contact = contact) === null || _contact === void 0 ? void 0 : (_contact$attributes = _contact.attributes) === null || _contact$attributes === void 0 ? void 0 : _contact$attributes.nickname, + 'receipt_id': getReceiptId(stanza), + 'received': new Date().toISOString(), + 'references': getReferences(stanza), + 'sender': is_me ? 'me' : 'them', + 'subject': (_stanza$querySelector3 = stanza.querySelector('subject')) === null || _stanza$querySelector3 === void 0 ? void 0 : _stanza$querySelector3.textContent, + 'thread': (_stanza$querySelector4 = stanza.querySelector('thread')) === null || _stanza$querySelector4 === void 0 ? void 0 : _stanza$querySelector4.textContent, + 'time': delay ? dayjs_min_default()(delay.getAttribute('stamp')).toISOString() : now, + 'to': stanza.getAttribute('to'), + 'type': stanza.getAttribute('type') || 'normal' + }, getErrorAttributes(stanza), getOutOfBandAttributes(stanza), getSpoilerAttributes(stanza), getCorrectionAttributes(stanza, original_stanza), getStanzaIDs(stanza, original_stanza), getRetractionAttributes(stanza, original_stanza), getEncryptionAttributes(stanza, shared_converse)); + if (!attrs.is_archived) { + _context.next = 49; + break; + } + from = original_stanza.getAttribute('from'); + if (!(from && from !== shared_converse.bare_jid)) { + _context.next = 49; + break; + } + return _context.abrupt("return", new StanzaParseError("Invalid Stanza: Forged MAM message from ".concat(from), stanza)); + case 49: + _context.next = 51; + return shared_api.emojis.initialize(); + case 51: + attrs = Object.assign({ + 'message': attrs.body || attrs.error, + // TODO: Remove and use body and error attributes instead + 'is_only_emojis': attrs.body ? core.isOnlyEmojis(attrs.body) : false, + 'is_valid_receipt_request': isValidReceiptRequest(stanza, attrs) + }, attrs); + + // We prefer to use one of the XEP-0359 unique and stable stanza IDs + // as the Model id, to avoid duplicates. + attrs['id'] = attrs['origin_id'] || attrs["stanza_id ".concat(attrs.from)] || core.getUniqueId(); + + /** + * *Hook* which allows plugins to add additional parsing + * @event _converse#parseMessage + */ + _context.next = 55; + return shared_api.hook('parseMessage', stanza, attrs); + case 55: + attrs = _context.sent; + return _context.abrupt("return", Object.assign(attrs, getMediaURLsMetadata(attrs.is_encrypted ? attrs.plaintext : attrs.body))); + case 57: + case "end": + return _context.stop(); } - } else { - shared_converse.connection.sendIQ(stanza); - promise = Promise.resolve(); - } - api.trigger('send', stanza); - return promise; - } -}); -;// CONCATENATED MODULE: ./src/headless/shared/api/presence.js -function presence_typeof(obj) { + }, _callee); + })); + return _parseMessage.apply(this, arguments); +} +;// CONCATENATED MODULE: ./src/headless/plugins/chat/model.js +function chat_model_typeof(obj) { "@babel/helpers - typeof"; - return presence_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return chat_model_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, presence_typeof(obj); + }, chat_model_typeof(obj); } -function presence_regeneratorRuntime() { +function model_ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + return keys; +} +function model_objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? model_ownKeys(Object(source), !0).forEach(function (key) { + model_defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : model_ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + return target; +} +function model_defineProperty(obj, key, value) { + key = model_toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; +} +function model_toPropertyKey(arg) { + var key = model_toPrimitive(arg, "string"); + return chat_model_typeof(key) === "symbol" ? key : String(key); +} +function model_toPrimitive(input, hint) { + if (chat_model_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (chat_model_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || model_unsupportedIterableToArray(arr) || _nonIterableSpread(); +} +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function model_unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return model_arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return model_arrayLikeToArray(o, minLen); +} +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +} +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return model_arrayLikeToArray(arr); +} +function model_arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; +} +function model_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - presence_regeneratorRuntime = function _regeneratorRuntime() { + model_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -31503,7 +30156,7 @@ function presence_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == presence_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == chat_model_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -31728,7 +30381,7 @@ function presence_regeneratorRuntime() { } }, exports; } -function presence_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function model_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -31742,1418 +30395,1491 @@ function presence_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, a Promise.resolve(value).then(_next, _throw); } } -function presence_asyncToGenerator(fn) { +function model_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - presence_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + model_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - presence_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + model_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -/* harmony default export */ const presence = ({ - /** - * @namespace _converse.api.user.presence - * @memberOf _converse.api.user - */ - presence: { - /** - * Send out a presence stanza - * @method _converse.api.user.presence.send - * @param { String } [type] - * @param { String } [to] - * @param { String } [status] - An optional status message - * @param { Array|Array|Element|Strophe.Builder } [child_nodes] - * Nodes(s) to be added as child nodes of the `presence` XML element. - */ - send: function send(type, to, status, child_nodes) { - return presence_asyncToGenerator( /*#__PURE__*/presence_regeneratorRuntime().mark(function _callee() { - var _child_nodes; - var model, presence, mucs; - return presence_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return shared_api.waitUntil('statusInitialized'); - case 2: - if (child_nodes && !Array.isArray(child_nodes)) { - child_nodes = [child_nodes]; - } - model = shared_converse.xmppstatus; - _context.next = 6; - return model.constructPresence(type, to, status); - case 6: - presence = _context.sent; - (_child_nodes = child_nodes) === null || _child_nodes === void 0 ? void 0 : _child_nodes.map(function (c) { - var _c$tree; - return (_c$tree = c === null || c === void 0 ? void 0 : c.tree()) !== null && _c$tree !== void 0 ? _c$tree : c; - }).forEach(function (c) { - return presence.cnode(c).up(); - }); - shared_api.send(presence); - if (!['away', 'chat', 'dnd', 'online', 'xa', undefined].includes(type)) { - _context.next = 14; - break; - } - _context.next = 12; - return shared_api.rooms.get(); - case 12: - mucs = _context.sent; - mucs.forEach(function (muc) { - return muc.sendStatusPresence(type, status, child_nodes); - }); - case 14: - case "end": - return _context.stop(); - } - }, _callee); - }))(); - } - } -}); -;// CONCATENATED MODULE: ./node_modules/lodash-es/debounce.js -/** Error message constants. */ -var debounce_FUNC_ERROR_TEXT = 'Expected a function'; -/* Built-in method references for those with the same name as other `lodash` methods. */ -var debounce_nativeMax = Math.max, - debounce_nativeMin = Math.min; + + + + + + + + + + +var model_converse$env = public_converse.env, + model_Strophe = model_converse$env.Strophe, + $msg = model_converse$env.$msg; +var model_u = public_converse.env.utils; /** - * Creates a debounced function that delays invoking `func` until after `wait` - * milliseconds have elapsed since the last time the debounced function was - * invoked. The debounced function comes with a `cancel` method to cancel - * delayed `func` invocations and a `flush` method to immediately invoke them. - * Provide `options` to indicate whether `func` should be invoked on the - * leading and/or trailing edge of the `wait` timeout. The `func` is invoked - * with the last arguments provided to the debounced function. Subsequent - * calls to the debounced function return the result of the last `func` - * invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the debounced function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.debounce` and `_.throttle`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to debounce. - * @param {number} [wait=0] The number of milliseconds to delay. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=false] - * Specify invoking on the leading edge of the timeout. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new debounced function. - * @example - * - * // Avoid costly calculations while the window size is in flux. - * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); - * - * // Invoke `sendMail` when clicked, debouncing subsequent calls. - * jQuery(element).on('click', _.debounce(sendMail, 300, { - * 'leading': true, - * 'trailing': false - * })); - * - * // Ensure `batchLog` is invoked once after 1 second of debounced calls. - * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); - * var source = new EventSource('/stream'); - * jQuery(source).on('message', debounced); + * Represents an open/ongoing chat conversation. * - * // Cancel the trailing debounced invocation. - * jQuery(window).on('popstate', debounced.cancel); + * @class + * @namespace _converse.ChatBox + * @memberOf _converse */ -function debounce(func, wait, options) { - var lastArgs, - lastThis, - maxWait, - result, - timerId, - lastCallTime, - lastInvokeTime = 0, - leading = false, - maxing = false, - trailing = true; - if (typeof func != 'function') { - throw new TypeError(debounce_FUNC_ERROR_TEXT); - } - wait = lodash_es_toNumber(wait) || 0; - if (lodash_es_isObject(options)) { - leading = !!options.leading; - maxing = 'maxWait' in options; - maxWait = maxing ? debounce_nativeMax(lodash_es_toNumber(options.maxWait) || 0, wait) : maxWait; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - function invokeFunc(time) { - var args = lastArgs, - thisArg = lastThis; - lastArgs = lastThis = undefined; - lastInvokeTime = time; - result = func.apply(thisArg, args); - return result; - } - function leadingEdge(time) { - // Reset any `maxWait` timer. - lastInvokeTime = time; - // Start the timer for the trailing edge. - timerId = setTimeout(timerExpired, wait); - // Invoke the leading edge. - return leading ? invokeFunc(time) : result; - } - function remainingWait(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime, - timeWaiting = wait - timeSinceLastCall; - return maxing ? debounce_nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; - } - function shouldInvoke(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime; - - // Either this is the first call, activity has stopped and we're at the - // trailing edge, the system time has gone backwards and we're treating - // it as the trailing edge, or we've hit the `maxWait` limit. - return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; - } - function timerExpired() { - var time = lodash_es_now(); - if (shouldInvoke(time)) { - return trailingEdge(time); - } - // Restart the timer. - timerId = setTimeout(timerExpired, remainingWait(time)); - } - function trailingEdge(time) { - timerId = undefined; - - // Only invoke if we have `lastArgs` which means `func` has been - // debounced at least once. - if (trailing && lastArgs) { - return invokeFunc(time); - } - lastArgs = lastThis = undefined; - return result; - } - function cancel() { - if (timerId !== undefined) { - clearTimeout(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = undefined; - } - function flush() { - return timerId === undefined ? result : trailingEdge(lodash_es_now()); - } - function debounced() { - var time = lodash_es_now(), - isInvoking = shouldInvoke(time); - lastArgs = arguments; - lastThis = this; - lastCallTime = time; - if (isInvoking) { - if (timerId === undefined) { - return leadingEdge(lastCallTime); - } - if (maxing) { - // Handle invocations in a tight loop. - clearTimeout(timerId); - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === undefined) { - timerId = setTimeout(timerExpired, wait); - } - return result; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; -} -/* harmony default export */ const lodash_es_debounce = (debounce); -// EXTERNAL MODULE: ./node_modules/localforage-webextensionstorage-driver/local.js -var local = __webpack_require__(3710); -// EXTERNAL MODULE: ./node_modules/localforage-webextensionstorage-driver/sync.js -var localforage_webextensionstorage_driver_sync = __webpack_require__(7777); -;// CONCATENATED MODULE: ./src/headless/shared/connection/index.js -function shared_connection_typeof(obj) { - "@babel/helpers - typeof"; - - return shared_connection_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, shared_connection_typeof(obj); -} -function connection_regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - connection_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; +var ChatBox = model_with_contact.extend({ + defaults: function defaults() { + return { + 'bookmarked': false, + 'chat_state': undefined, + 'hidden': isUniView() && !shared_api.settings.get('singleton'), + 'message_type': 'chat', + 'nickname': undefined, + 'num_unread': 0, + 'time_opened': this.get('time_opened') || new Date().getTime(), + 'time_sent': new Date(0).toISOString(), + 'type': shared_converse.PRIVATE_CHAT_TYPE, + 'url': '' }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; - } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; + }, + initialize: function initialize() { + var _arguments = arguments, + _this = this; + return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee() { + var jid; + return model_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _this.initialized = getOpenPromise(); + model_with_contact.prototype.initialize.apply(_this, _arguments); + jid = _this.get('jid'); + if (jid) { + _context.next = 5; + break; + } + return _context.abrupt("return"); + case 5: + _this.set({ + 'box_id': "box-".concat(jid) + }); + _this.initNotifications(); + _this.initUI(); + _this.initMessages(); + if (!(_this.get('type') === shared_converse.PRIVATE_CHAT_TYPE)) { + _context.next = 14; + break; + } + _this.presence = shared_converse.presences.get(jid) || shared_converse.presences.create({ + jid: jid + }); + _context.next = 13; + return _this.setRosterContact(jid); + case 13: + _this.presence.on('change:show', function (item) { + return _this.onPresenceChanged(item); + }); + case 14: + _this.on('change:chat_state', _this.sendChatState, _this); + _this.ui.on('change:scrolled', _this.onScrolledChanged, _this); + _context.next = 18; + return _this.fetchMessages(); + case 18: + _context.next = 20; + return shared_api.trigger('chatBoxInitialized', _this, { + 'Synchronous': true + }); + case 20: + _this.initialized.resolve(); + case 21: + case "end": + return _context.stop(); + } + }, _callee); + }))(); + }, + getMessagesCollection: function getMessagesCollection() { + return new shared_converse.Messages(); + }, + getMessagesCacheKey: function getMessagesCacheKey() { + return "converse.messages-".concat(this.get('jid'), "-").concat(shared_converse.bare_jid); + }, + initMessages: function initMessages() { + this.messages = this.getMessagesCollection(); + this.messages.fetched = getOpenPromise(); + this.messages.chatbox = this; + initStorage(this.messages, this.getMessagesCacheKey()); + this.listenTo(this.messages, 'change:upload', this.onMessageUploadChanged, this); + this.listenTo(this.messages, 'add', this.onMessageAdded, this); + }, + initUI: function initUI() { + this.ui = new Model(); + }, + initNotifications: function initNotifications() { + this.notifications = new Model(); + }, + getNotificationsText: function getNotificationsText() { + var _this$notifications, _this$notifications2, _this$notifications3; + var __ = shared_converse.__; + if (((_this$notifications = this.notifications) === null || _this$notifications === void 0 ? void 0 : _this$notifications.get('chat_state')) === shared_converse.COMPOSING) { + return __('%1$s is typing', this.getDisplayName()); + } else if (((_this$notifications2 = this.notifications) === null || _this$notifications2 === void 0 ? void 0 : _this$notifications2.get('chat_state')) === shared_converse.PAUSED) { + return __('%1$s has stopped typing', this.getDisplayName()); + } else if (((_this$notifications3 = this.notifications) === null || _this$notifications3 === void 0 ? void 0 : _this$notifications3.get('chat_state')) === shared_converse.GONE) { + return __('%1$s has gone away', this.getDisplayName()); + } else { + return ''; } - } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); - }); - }); - } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == shared_connection_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - reject(record.arg); + }, + afterMessagesFetched: function afterMessagesFetched() { + this.pruneHistoryWhenScrolledDown(); + /** + * Triggered whenever a { @link _converse.ChatBox } or ${ @link _converse.ChatRoom } + * has fetched its messages from the local cache. + * @event _converse#afterMessagesFetched + * @type { _converse.ChatBox| _converse.ChatRoom } + * @example _converse.api.listen.on('afterMessagesFetched', (chat) => { ... }); + */ + shared_api.trigger('afterMessagesFetched', this); + }, + fetchMessages: function fetchMessages() { + var _this2 = this; + if (this.messages.fetched_flag) { + log.info("Not re-fetching messages for ".concat(this.get('jid'))); + return; } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + this.messages.fetched_flag = true; + var resolve = this.messages.fetched.resolve; + this.messages.fetch({ + 'add': true, + 'success': function success(msgs) { + _this2.afterMessagesFetched(msgs); + resolve(); + }, + 'error': function error() { + _this2.afterMessagesFetched(); + resolve(); } }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); - } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done - }; + return this.messages.fetched; + }, + handleErrorMessageStanza: function handleErrorMessageStanza(stanza) { + var _this3 = this; + return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee2() { + var __, attrs, message, new_attrs; + return model_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + __ = shared_converse.__; + _context2.next = 3; + return parseMessage(stanza, shared_converse); + case 3: + attrs = _context2.sent; + _context2.next = 6; + return _this3.shouldShowErrorMessage(attrs); + case 6: + if (_context2.sent) { + _context2.next = 8; + break; + } + return _context2.abrupt("return"); + case 8: + message = _this3.getMessageReferencedByError(attrs); + if (message) { + new_attrs = { + 'error': attrs.error, + 'error_condition': attrs.error_condition, + 'error_text': attrs.error_text, + 'error_type': attrs.error_type, + 'editable': false + }; + if (attrs.msgid === message.get('retraction_id')) { + // The error message refers to a retraction + new_attrs.retraction_id = undefined; + if (!attrs.error) { + if (attrs.error_condition === 'forbidden') { + new_attrs.error = __("You're not allowed to retract your message."); + } else { + new_attrs.error = __('Sorry, an error occurred while trying to retract your message.'); + } + } + } else if (!attrs.error) { + if (attrs.error_condition === 'forbidden') { + new_attrs.error = __("You're not allowed to send a message."); + } else { + new_attrs.error = __('Sorry, an error occurred while trying to send your message.'); + } + } + message.save(new_attrs); + } else { + _this3.createMessage(attrs); + } + case 10: + case "end": + return _context2.stop(); } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); - } - }; - } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); - } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); - } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal", delete record.arg, entry.completion = record; - } - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); - } - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) return iteratorMethod.call(iterable); - if ("function" == typeof iterable.next) return iterable; - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; - return next.value = undefined, next.done = !0, next; - }; - return next.next = next; - } - } - return { - next: doneResult - }; - } - function doneResult() { - return { - value: undefined, - done: !0 - }; - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { - var ctor = "function" == typeof genFun && genFun.constructor; - return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); - }, exports.mark = function (genFun) { - return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; - }, exports.awrap = function (arg) { - return { - __await: arg - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - void 0 === PromiseImpl && (PromiseImpl = Promise); - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); + }, _callee2); + }))(); + }, + /** + * Queue an incoming `chat` message stanza for processing. + * @async + * @private + * @method _converse.ChatBox#queueMessage + * @param { Promise } attrs - A promise which resolves to the message attributes + */ + queueMessage: function queueMessage(attrs) { + var _this4 = this; + this.msg_chain = (this.msg_chain || this.messages.fetched).then(function () { + return _this4.onMessage(attrs); + }).catch(function (e) { + return log.error(e); }); - }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { - return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; - } - return next.done = !0, next; - }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; - } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } + return this.msg_chain; + }, + /** + * @async + * @private + * @method _converse.ChatBox#onMessage + * @param { MessageAttributes } attrs_promse - A promise which resolves to the message attributes. + */ + onMessage: function onMessage(attrs) { + var _this5 = this; + return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee3() { + var message, msg; + return model_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return attrs; + case 2: + attrs = _context3.sent; + if (!model_u.isErrorObject(attrs)) { + _context3.next = 6; + break; + } + attrs.stanza && log.error(attrs.stanza); + return _context3.abrupt("return", log.error(attrs.message)); + case 6: + message = _this5.getDuplicateMessage(attrs); + if (!message) { + _context3.next = 11; + break; + } + _this5.updateMessage(message, attrs); + _context3.next = 30; + break; + case 11: + _context3.t0 = !_this5.handleReceipt(attrs) && !_this5.handleChatMarker(attrs); + if (!_context3.t0) { + _context3.next = 16; + break; + } + _context3.next = 15; + return _this5.handleRetraction(attrs); + case 15: + _context3.t0 = !_context3.sent; + case 16: + if (!_context3.t0) { + _context3.next = 30; + break; + } + _this5.setEditable(attrs, attrs.time); + if (attrs['chat_state'] && attrs.sender === 'them') { + _this5.notifications.set('chat_state', attrs.chat_state); + } + if (!model_u.shouldCreateMessage(attrs)) { + _context3.next = 30; + break; + } + _context3.next = 22; + return handleCorrection(_this5, attrs); + case 22: + _context3.t1 = _context3.sent; + if (_context3.t1) { + _context3.next = 27; + break; + } + _context3.next = 26; + return _this5.createMessage(attrs); + case 26: + _context3.t1 = _context3.sent; + case 27: + msg = _context3.t1; + _this5.notifications.set({ + 'chat_state': null + }); + _this5.handleUnreadMessage(msg); + case 30: + case "end": + return _context3.stop(); } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; + }, _callee3); + }))(); + }, + onMessageUploadChanged: function onMessageUploadChanged(message) { + var _this6 = this; + return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee4() { + var attrs; + return model_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + if (!(message.get('upload') === shared_converse.SUCCESS)) { + _context4.next = 5; + break; + } + attrs = { + 'body': message.get('body'), + 'spoiler_hint': message.get('spoiler_hint'), + 'oob_url': message.get('oob_url') + }; + _context4.next = 4; + return _this6.sendMessage(attrs); + case 4: + message.destroy(); + case 5: + case "end": + return _context4.stop(); + } + }, _callee4); + }))(); + }, + onMessageAdded: function onMessageAdded(message) { + if (shared_api.settings.get('prune_messages_above') && (shared_api.settings.get('pruning_behavior') === 'scrolled' || !this.ui.get('scrolled')) && !isEmptyMessage(message)) { + debouncedPruneHistory(this); + } + }, + clearMessages: function clearMessages() { + var _this7 = this; + return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee5() { + return model_regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + _context5.prev = 0; + _context5.next = 3; + return _this7.messages.clearStore(); + case 3: + _context5.next = 9; + break; + case 5: + _context5.prev = 5; + _context5.t0 = _context5["catch"](0); + _this7.messages.trigger('reset'); + log.error(_context5.t0); + case 9: + _context5.prev = 9; + // No point in fetching messages from the cache if it's been cleared. + // Make sure to resolve the fetched promise to avoid freezes. + _this7.messages.fetched.resolve(); + return _context5.finish(9); + case 12: + case "end": + return _context5.stop(); + } + }, _callee5, null, [[0, 5, 9, 12]]); + }))(); + }, + close: function close() { + var _this8 = this; + return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee6() { + return model_regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + if (shared_api.connection.connected()) { + // Immediately sending the chat state, because the + // model is going to be destroyed afterwards. + _this8.setChatState(shared_converse.INACTIVE); + _this8.sendChatState(); + } + _context6.prev = 1; + _context6.next = 4; + return new Promise(function (success, reject) { + return _this8.destroy({ + success: success, + 'error': function error(m, e) { + return reject(e); + } + }); + }); + case 4: + _context6.next = 9; + break; + case 6: + _context6.prev = 6; + _context6.t0 = _context6["catch"](1); + log.error(_context6.t0); + case 9: + _context6.prev = 9; + if (!shared_api.settings.get('clear_messages_on_reconnection')) { + _context6.next = 13; + break; + } + _context6.next = 13; + return _this8.clearMessages(); + case 13: + return _context6.finish(9); + case 14: + /** + * Triggered once a chatbox has been closed. + * @event _converse#chatBoxClosed + * @type {_converse.ChatBox | _converse.ChatRoom} + * @example _converse.api.listen.on('chatBoxClosed', chat => { ... }); + */ + shared_api.trigger('chatBoxClosed', _this8); + case 15: + case "end": + return _context6.stop(); + } + }, _callee6, null, [[1, 6, 9, 14]]); + }))(); + }, + announceReconnection: function announceReconnection() { + /** + * Triggered whenever a `_converse.ChatBox` instance has reconnected after an outage + * @event _converse#onChatReconnected + * @type {_converse.ChatBox | _converse.ChatRoom} + * @example _converse.api.listen.on('onChatReconnected', chat => { ... }); + */ + shared_api.trigger('chatReconnected', this); + }, + onReconnection: function onReconnection() { + var _this9 = this; + return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee7() { + return model_regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + if (!shared_api.settings.get('clear_messages_on_reconnection')) { + _context7.next = 3; + break; + } + _context7.next = 3; + return _this9.clearMessages(); + case 3: + _this9.announceReconnection(); + case 4: + case "end": + return _context7.stop(); + } + }, _callee7); + }))(); + }, + onPresenceChanged: function onPresenceChanged(item) { + var __ = shared_converse.__; + var show = item.get('show'); + var fullname = this.getDisplayName(); + var text; + if (show === 'offline') { + text = __('%1$s has gone offline', fullname); + } else if (show === 'away') { + text = __('%1$s has gone away', fullname); + } else if (show === 'dnd') { + text = __('%1$s is busy', fullname); + } else if (show === 'online') { + text = __('%1$s is online', fullname); + } + text && this.createMessage({ + 'message': text, + 'type': 'info' + }); + }, + onScrolledChanged: function onScrolledChanged() { + if (!this.ui.get('scrolled')) { + this.clearUnreadMsgCounter(); + this.pruneHistoryWhenScrolledDown(); + } + }, + pruneHistoryWhenScrolledDown: function pruneHistoryWhenScrolledDown() { + if (shared_api.settings.get('prune_messages_above') && shared_api.settings.get('pruning_behavior') === 'unscrolled' && !this.ui.get('scrolled')) { + debouncedPruneHistory(this); + } + }, + validate: function validate(attrs) { + if (!attrs.jid) { + return 'Ignored ChatBox without JID'; + } + var room_jids = shared_api.settings.get('auto_join_rooms').map(function (s) { + return lodash_es_isObject(s) ? s.jid : s; + }); + var auto_join = shared_api.settings.get('auto_join_private_chats').concat(room_jids); + if (shared_api.settings.get("singleton") && !auto_join.includes(attrs.jid) && !shared_api.settings.get('auto_join_on_invite')) { + var msg = "".concat(attrs.jid, " is not allowed because singleton is true and it's not being auto_joined"); + log.warn(msg); + return msg; + } + }, + getDisplayName: function getDisplayName() { + if (this.contact) { + return this.contact.getDisplayName(); + } else if (this.vcard) { + return this.vcard.getDisplayName(); + } else { + return this.get('jid'); + } + }, + createMessageFromError: function createMessageFromError(error) { + var _this10 = this; + return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee8() { + var msg; + return model_regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { + case 0: + if (!(error instanceof TimeoutError)) { + _context8.next = 5; + break; + } + _context8.next = 3; + return _this10.createMessage({ + 'type': 'error', + 'message': error.message, + 'retry_event_id': error.retry_event_id, + 'is_ephemeral': 30000 + }); + case 3: + msg = _context8.sent; + msg.error = error; + case 5: + case "end": + return _context8.stop(); + } + }, _callee8); + }))(); + }, + editEarlierMessage: function editEarlierMessage() { + var message; + var idx = this.messages.findLastIndex('correcting'); + if (idx >= 0) { + this.messages.at(idx).save('correcting', false); + while (idx > 0) { + idx -= 1; + var candidate = this.messages.at(idx); + if (candidate.get('editable')) { + message = candidate; break; } } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; - } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; + } + message = message || this.messages.filter({ + 'sender': 'me' + }).reverse().find(function (m) { + return m.get('editable'); + }); + if (message) { + message.save('correcting', true); + } + }, + editLaterMessage: function editLaterMessage() { + var message; + var idx = this.messages.findLastIndex('correcting'); + if (idx >= 0) { + this.messages.at(idx).save('correcting', false); + while (idx < this.messages.length - 1) { + idx += 1; + var candidate = this.messages.at(idx); + if (candidate.get('editable')) { + message = candidate; + message.save('correcting', true); + break; } } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } - }, exports; -} -function connection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} -function connection_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - connection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - connection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + return message; + }, + getOldestMessage: function getOldestMessage() { + for (var i = 0; i < this.messages.length; i++) { + var message = this.messages.at(i); + if (message.get('type') === this.get('message_type')) { + return message; } - _next(undefined); - }); - }; -} -function shared_connection_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} -function shared_connection_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, shared_connection_toPropertyKey(descriptor.key), descriptor); - } -} -function shared_connection_createClass(Constructor, protoProps, staticProps) { - if (protoProps) shared_connection_defineProperties(Constructor.prototype, protoProps); - if (staticProps) shared_connection_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function shared_connection_toPropertyKey(arg) { - var key = shared_connection_toPrimitive(arg, "string"); - return shared_connection_typeof(key) === "symbol" ? key : String(key); -} -function shared_connection_toPrimitive(input, hint) { - if (shared_connection_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (shared_connection_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); -} -function _get() { - if (typeof Reflect !== "undefined" && Reflect.get) { - _get = Reflect.get.bind(); - } else { - _get = function _get(target, property, receiver) { - var base = _superPropBase(target, property); - if (!base) return; - var desc = Object.getOwnPropertyDescriptor(base, property); - if (desc.get) { - return desc.get.call(arguments.length < 3 ? target : receiver); + } + }, + getMostRecentMessage: function getMostRecentMessage() { + for (var i = this.messages.length - 1; i >= 0; i--) { + var message = this.messages.at(i); + if (message.get('type') === this.get('message_type')) { + return message; } - return desc.value; - }; - } - return _get.apply(this, arguments); -} -function _superPropBase(object, property) { - while (!Object.prototype.hasOwnProperty.call(object, property)) { - object = connection_getPrototypeOf(object); - if (object === null) break; - } - return object; -} -function connection_inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) connection_setPrototypeOf(subClass, superClass); -} -function connection_setPrototypeOf(o, p) { - connection_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return connection_setPrototypeOf(o, p); -} -function connection_createSuper(Derived) { - var hasNativeReflectConstruct = connection_isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = connection_getPrototypeOf(Derived), - result; - if (hasNativeReflectConstruct) { - var NewTarget = connection_getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); + }, + getUpdatedMessageAttributes: function getUpdatedMessageAttributes(message, attrs) { + if (!attrs.error_type && message.get('error_type') === 'Decryption') { + // Looks like we have a failed decrypted message stored, and now + // we have a properly decrypted version of the same message. + // See issue: https://github.com/conversejs/converse.js/issues/2733#issuecomment-1035493594 + return Object.assign({}, attrs, { + error_condition: undefined, + error_message: undefined, + error_text: undefined, + error_type: undefined, + is_archived: attrs.is_archived, + is_ephemeral: false, + is_error: false + }); } else { - result = Super.apply(this, arguments); + return { + is_archived: attrs.is_archived + }; } - return connection_possibleConstructorReturn(this, result); - }; -} -function connection_possibleConstructorReturn(self, call) { - if (call && (shared_connection_typeof(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return connection_assertThisInitialized(self); -} -function connection_assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - return self; -} -function connection_isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + }, + updateMessage: function updateMessage(message, attrs) { + var new_attrs = this.getUpdatedMessageAttributes(message, attrs); + new_attrs && message.save(new_attrs); + }, + /** + * Mutator for setting the chat state of this chat session. + * Handles clearing of any chat state notification timeouts and + * setting new ones if necessary. + * Timeouts are set when the state being set is COMPOSING or PAUSED. + * After the timeout, COMPOSING will become PAUSED and PAUSED will become INACTIVE. + * See XEP-0085 Chat State Notifications. + * @private + * @method _converse.ChatBox#setChatState + * @param { string } state - The chat state (consts ACTIVE, COMPOSING, PAUSED, INACTIVE, GONE) + */ + setChatState: function setChatState(state, options) { + if (this.chat_state_timeout !== undefined) { + window.clearTimeout(this.chat_state_timeout); + delete this.chat_state_timeout; + } + if (state === shared_converse.COMPOSING) { + this.chat_state_timeout = window.setTimeout(this.setChatState.bind(this), shared_converse.TIMEOUTS.PAUSED, shared_converse.PAUSED); + } else if (state === shared_converse.PAUSED) { + this.chat_state_timeout = window.setTimeout(this.setChatState.bind(this), shared_converse.TIMEOUTS.INACTIVE, shared_converse.INACTIVE); + } + this.set('chat_state', state, options); + return this; + }, + /** + * Given an error `` stanza's attributes, find the saved message model which is + * referenced by that error. + * @param { Object } attrs + */ + getMessageReferencedByError: function getMessageReferencedByError(attrs) { + var id = attrs.msgid; + return id && this.messages.models.find(function (m) { + return [m.get('msgid'), m.get('retraction_id')].includes(id); + }); + }, + /** + * @private + * @method _converse.ChatBox#shouldShowErrorMessage + * @returns {boolean} + */ + shouldShowErrorMessage: function shouldShowErrorMessage(attrs) { + var msg = this.getMessageReferencedByError(attrs); + if (!msg && attrs.chat_state) { + // If the error refers to a message not included in our store, + // and it has a chat state tag, we assume that this was a + // CSI message (which we don't store). + // See https://github.com/conversejs/converse.js/issues/1317 + return; + } + // Gets overridden in ChatRoom return true; - } catch (e) { - return false; - } -} -function connection_getPrototypeOf(o) { - connection_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return connection_getPrototypeOf(o); -} - - - - - - - - - - -var i = Object.keys(Strophe.Status).reduce(function (max, k) { - return Math.max(max, Strophe.Status[k]); -}, 0); -Strophe.Status.RECONNECTING = i + 1; - -/** - * The Connection class manages the connection to the XMPP server. It's - * agnostic concerning the underlying protocol (i.e. websocket, long-polling - * via BOSH or websocket inside a shared worker). - */ -var connection_Connection = /*#__PURE__*/function (_Strophe$Connection) { - connection_inherits(Connection, _Strophe$Connection); - var _super = connection_createSuper(Connection); - function Connection(service, options) { - var _this; - shared_connection_classCallCheck(this, Connection); - _this = _super.call(this, service, options); - _this.debouncedReconnect = lodash_es_debounce(_this.reconnect, 3000); - return _this; - } - shared_connection_createClass(Connection, [{ - key: "bind", - value: function () { - var _bind = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee() { - return connection_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return shared_api.trigger('beforeResourceBinding', { - 'synchronous': true - }); - case 2: - _get(connection_getPrototypeOf(Connection.prototype), "bind", this).call(this); - case 3: - case "end": - return _context.stop(); - } - }, _callee, this); - })); - function bind() { - return _bind.apply(this, arguments); - } - return bind; - }() - }, { - key: "onDomainDiscovered", - value: function () { - var _onDomainDiscovered = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee2(response) { - var text, xrd, bosh_links, ws_links, bosh_methods, ws_methods; - return connection_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return response.text(); - case 2: - text = _context2.sent; - xrd = new window.DOMParser().parseFromString(text, "text/xml").firstElementChild; - if (!(xrd.nodeName != "XRD" || xrd.namespaceURI != "http://docs.oasis-open.org/ns/xri/xrd-1.0")) { - _context2.next = 6; - break; - } - return _context2.abrupt("return", log.warn("Could not discover XEP-0156 connection methods")); - case 6: - bosh_links = external_sizzle_default()("Link[rel=\"urn:xmpp:alt-connections:xbosh\"]", xrd); - ws_links = external_sizzle_default()("Link[rel=\"urn:xmpp:alt-connections:websocket\"]", xrd); - bosh_methods = bosh_links.map(function (el) { - return el.getAttribute('href'); - }); - ws_methods = ws_links.map(function (el) { - return el.getAttribute('href'); - }); - if (bosh_methods.length === 0 && ws_methods.length === 0) { - log.warn("Neither BOSH nor WebSocket connection methods have been specified with XEP-0156."); - } else { - // TODO: support multiple endpoints - shared_api.settings.set("websocket_url", ws_methods.pop()); - shared_api.settings.set('bosh_service_url', bosh_methods.pop()); - this.service = shared_api.settings.get("websocket_url") || shared_api.settings.get('bosh_service_url'); - this.setProtocol(); - } - case 11: - case "end": - return _context2.stop(); - } - }, _callee2, this); - })); - function onDomainDiscovered(_x) { - return _onDomainDiscovered.apply(this, arguments); - } - return onDomainDiscovered; - }() - /** - * Adds support for XEP-0156 by quering the XMPP server for alternate - * connection methods. This allows users to use the websocket or BOSH - * connection of their own XMPP server instead of a proxy provided by the - * host of Converse.js. - * @method Connnection.discoverConnectionMethods - */ - }, { - key: "discoverConnectionMethods", - value: function () { - var _discoverConnectionMethods = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee3(domain) { - var options, url, response; - return connection_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - // Use XEP-0156 to check whether this host advertises websocket or BOSH connection methods. - options = { - 'mode': 'cors', - 'headers': { - 'Accept': 'application/xrd+xml, text/xml' - } - }; - url = "https://".concat(domain, "/.well-known/host-meta"); - _context3.prev = 2; - _context3.next = 5; - return fetch(url, options); - case 5: - response = _context3.sent; - _context3.next = 13; + }, + isSameUser: function isSameUser(jid1, jid2) { + return model_u.isSameBareJID(jid1, jid2); + }, + /** + * Looks whether we already have a retraction for this + * incoming message. If so, it's considered "dangling" because it + * probably hasn't been applied to anything yet, given that the + * relevant message is only coming in now. + * @private + * @method _converse.ChatBox#findDanglingRetraction + * @param { object } attrs - Attributes representing a received + * message, as returned by {@link parseMessage} + * @returns { _converse.Message } + */ + findDanglingRetraction: function findDanglingRetraction(attrs) { + if (!attrs.origin_id || !this.messages.length) { + return null; + } + // Only look for dangling retractions if there are newer + // messages than this one, since retractions come after. + if (this.messages.last().get('time') > attrs.time) { + // Search from latest backwards + var messages = Array.from(this.messages.models); + messages.reverse(); + return messages.find(function (_ref) { + var attributes = _ref.attributes; + return attributes.retracted_id === attrs.origin_id && attributes.from === attrs.from && !attributes.moderated_by; + }); + } + }, + /** + * Handles message retraction based on the passed in attributes. + * @private + * @method _converse.ChatBox#handleRetraction + * @param { object } attrs - Attributes representing a received + * message, as returned by {@link parseMessage} + * @returns { Boolean } Returns `true` or `false` depending on + * whether a message was retracted or not. + */ + handleRetraction: function handleRetraction(attrs) { + var _this11 = this; + return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee9() { + var RETRACTION_ATTRIBUTES, message, _message, retraction_attrs, new_attrs; + return model_regeneratorRuntime().wrap(function _callee9$(_context9) { + while (1) switch (_context9.prev = _context9.next) { + case 0: + RETRACTION_ATTRIBUTES = ['retracted', 'retracted_id', 'editable']; + if (!attrs.retracted) { + _context9.next = 14; break; - case 8: - _context3.prev = 8; - _context3.t0 = _context3["catch"](2); - log.error("Failed to discover alternative connection methods at ".concat(url)); - log.error(_context3.t0); - return _context3.abrupt("return"); - case 13: - if (!(response.status >= 200 && response.status < 400)) { - _context3.next = 18; - break; - } - _context3.next = 16; - return this.onDomainDiscovered(response); - case 16: - _context3.next = 19; + } + if (!attrs.is_tombstone) { + _context9.next = 4; break; - case 18: - log.warn("Could not discover XEP-0156 connection methods"); - case 19: - case "end": - return _context3.stop(); - } - }, _callee3, this, [[2, 8]]); - })); - function discoverConnectionMethods(_x2) { - return _discoverConnectionMethods.apply(this, arguments); - } - return discoverConnectionMethods; - }() - /** - * Establish a new XMPP session by logging in with the supplied JID and - * password. - * @method Connnection.connect - * @param { String } jid - * @param { String } password - * @param { Funtion } callback - */ - }, { - key: "connect", - value: function () { - var _connect = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee4(jid, password, callback) { - var domain; - return connection_regeneratorRuntime().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - if (!shared_api.settings.get("discover_connection_methods")) { - _context4.next = 4; - break; - } - domain = Strophe.getDomainFromJid(jid); - _context4.next = 4; - return this.discoverConnectionMethods(domain); - case 4: - if (!(!shared_api.settings.get('bosh_service_url') && !shared_api.settings.get("websocket_url"))) { - _context4.next = 6; - break; - } - throw new Error("You must supply a value for either the bosh_service_url or websocket_url or both."); - case 6: - _get(connection_getPrototypeOf(Connection.prototype), "connect", this).call(this, jid, password, callback || this.onConnectStatusChanged, BOSH_WAIT); - case 7: - case "end": - return _context4.stop(); - } - }, _callee4, this); - })); - function connect(_x3, _x4, _x5) { - return _connect.apply(this, arguments); - } - return connect; - }() - /** - * Switch to a different transport if a service URL is available for it. - * - * When reconnecting with a new transport, we call setUserJID - * so that a new resource is generated, to avoid multiple - * server-side sessions with the same resource. - * - * We also call `_proto._doDisconnect` so that connection event handlers - * for the old transport are removed. - */ - }, { - key: "switchTransport", - value: function () { - var _switchTransport = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee5() { - return connection_regeneratorRuntime().wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - if (!(shared_api.connection.isType('websocket') && shared_api.settings.get('bosh_service_url'))) { - _context5.next = 8; - break; - } - _context5.next = 3; - return setUserJID(shared_converse.bare_jid); - case 3: - this._proto._doDisconnect(); - this._proto = new Strophe.Bosh(this); - this.service = shared_api.settings.get('bosh_service_url'); - _context5.next = 19; + } + return _context9.abrupt("return", false); + case 4: + message = _this11.messages.findWhere({ + 'origin_id': attrs.retracted_id, + 'from': attrs.from + }); + if (message) { + _context9.next = 10; break; - case 8: - if (!(shared_api.connection.isType('bosh') && shared_api.settings.get("websocket_url"))) { - _context5.next = 19; - break; - } - if (!(shared_api.settings.get("authentication") === ANONYMOUS)) { - _context5.next = 14; - break; - } - _context5.next = 12; - return setUserJID(shared_api.settings.get("jid")); - case 12: - _context5.next = 16; + } + attrs['dangling_retraction'] = true; + _context9.next = 9; + return _this11.createMessage(attrs); + case 9: + return _context9.abrupt("return", true); + case 10: + message.save(lodash_es_pick(attrs, RETRACTION_ATTRIBUTES)); + return _context9.abrupt("return", true); + case 14: + // Check if we have dangling retraction + _message = _this11.findDanglingRetraction(attrs); + if (!_message) { + _context9.next = 21; break; - case 14: - _context5.next = 16; - return setUserJID(shared_converse.bare_jid); - case 16: - this._proto._doDisconnect(); - this._proto = new Strophe.Websocket(this); - this.service = shared_api.settings.get("websocket_url"); - case 19: - case "end": - return _context5.stop(); - } - }, _callee5, this); - })); - function switchTransport() { - return _switchTransport.apply(this, arguments); - } - return switchTransport; - }() - }, { - key: "reconnect", - value: function () { - var _reconnect = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee6() { - var conn_status; - return connection_regeneratorRuntime().wrap(function _callee6$(_context6) { - while (1) switch (_context6.prev = _context6.next) { - case 0: - log.debug('RECONNECTING: the connection has dropped, attempting to reconnect.'); - this.reconnecting = true; - _context6.next = 4; - return tearDown(); - case 4: - conn_status = shared_converse.connfeedback.get('connection_status'); - if (!(conn_status === Strophe.Status.CONNFAIL)) { - _context6.next = 9; - break; - } - this.switchTransport(); - _context6.next = 12; - break; - case 9: - if (!(conn_status === Strophe.Status.AUTHFAIL && shared_api.settings.get("authentication") === ANONYMOUS)) { - _context6.next = 12; - break; - } - _context6.next = 12; - return setUserJID(shared_api.settings.get("jid")); - case 12: - /** - * Triggered when the connection has dropped, but Converse will attempt - * to reconnect again. - * @event _converse#will-reconnect - */ - shared_api.trigger('will-reconnect'); - if (!(shared_api.settings.get("authentication") === ANONYMOUS)) { - _context6.next = 16; - break; - } - _context6.next = 16; - return clearSession(); - case 16: - return _context6.abrupt("return", shared_api.user.login()); - case 17: - case "end": - return _context6.stop(); - } - }, _callee6, this); - })); - function reconnect() { - return _reconnect.apply(this, arguments); - } - return reconnect; - }() - /** - * Called as soon as a new connection has been established, either - * by logging in or by attaching to an existing BOSH session. - * @method Connection.onConnected - * @param { Boolean } reconnecting - Whether Converse.js reconnected from an earlier dropped session. - */ - }, { - key: "onConnected", - value: function () { - var _onConnected = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee7(reconnecting) { - return connection_regeneratorRuntime().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { - case 0: - delete this.reconnecting; - this.flush(); // Solves problem of returned PubSub BOSH response not received by browser - _context7.next = 4; - return setUserJID(this.jid); - case 4: - // Save the current JID in persistent storage so that we can attempt to - // recreate the session from SCRAM keys - if (shared_converse.config.get('trusted')) { - localStorage.setItem('conversejs-session-jid', shared_converse.bare_jid); - } - - /** - * Synchronous event triggered after we've sent an IQ to bind the - * user's JID resource for this session. - * @event _converse#afterResourceBinding - */ - _context7.next = 7; - return shared_api.trigger('afterResourceBinding', reconnecting, { - 'synchronous': true - }); - case 7: - if (reconnecting) { - /** - * After the connection has dropped and converse.js has reconnected. - * Any Strophe stanza handlers (as registered via `converse.listen.stanza`) will - * have to be registered anew. - * @event _converse#reconnected - * @example _converse.api.listen.on('reconnected', () => { ... }); - */ - shared_api.trigger('reconnected'); - } else { - /** - * Triggered after the connection has been established and Converse - * has got all its ducks in a row. - * @event _converse#initialized - */ - shared_api.trigger('connected'); - } - case 8: - case "end": - return _context7.stop(); - } - }, _callee7, this); - })); - function onConnected(_x6) { - return _onConnected.apply(this, arguments); - } - return onConnected; - }() - /** - * Used to keep track of why we got disconnected, so that we can - * decide on what the next appropriate action is (in onDisconnected) - * @method Connection.setDisconnectionCause - * @param { Number } cause - The status number as received from Strophe. - * @param { String } [reason] - An optional user-facing message as to why - * there was a disconnection. - * @param { Boolean } [override] - An optional flag to replace any previous - * disconnection cause and reason. - */ - }, { - key: "setDisconnectionCause", - value: function setDisconnectionCause(cause, reason, override) { - if (cause === undefined) { - delete this.disconnection_cause; - delete this.disconnection_reason; - } else if (this.disconnection_cause === undefined || override) { - this.disconnection_cause = cause; - this.disconnection_reason = reason; + } + retraction_attrs = lodash_es_pick(_message.attributes, RETRACTION_ATTRIBUTES); + new_attrs = Object.assign({ + 'dangling_retraction': false + }, attrs, retraction_attrs); + delete new_attrs['id']; // Delete id, otherwise a new cache entry gets created + _message.save(new_attrs); + return _context9.abrupt("return", true); + case 21: + return _context9.abrupt("return", false); + case 22: + case "end": + return _context9.stop(); + } + }, _callee9); + }))(); + }, + /** + * Returns an already cached message (if it exists) based on the + * passed in attributes map. + * @private + * @method _converse.ChatBox#getDuplicateMessage + * @param { object } attrs - Attributes representing a received + * message, as returned by {@link parseMessage} + * @returns {Promise<_converse.Message>} + */ + getDuplicateMessage: function getDuplicateMessage(attrs) { + var queries = [].concat(_toConsumableArray(this.getStanzaIdQueryAttrs(attrs)), [this.getOriginIdQueryAttrs(attrs), this.getMessageBodyQueryAttrs(attrs)]).filter(function (s) { + return s; + }); + var msgs = this.messages.models; + return msgs.find(function (m) { + return queries.reduce(function (out, q) { + return out || lodash_es_isMatch(m.attributes, q); + }, false); + }); + }, + getOriginIdQueryAttrs: function getOriginIdQueryAttrs(attrs) { + return attrs.origin_id && { + 'origin_id': attrs.origin_id, + 'from': attrs.from + }; + }, + getStanzaIdQueryAttrs: function getStanzaIdQueryAttrs(attrs) { + var keys = Object.keys(attrs).filter(function (k) { + return k.startsWith('stanza_id '); + }); + return keys.map(function (key) { + var by_jid = key.replace(/^stanza_id /, ''); + var query = {}; + query["stanza_id ".concat(by_jid)] = attrs[key]; + return query; + }); + }, + getMessageBodyQueryAttrs: function getMessageBodyQueryAttrs(attrs) { + if (attrs.msgid) { + var query = { + 'from': attrs.from, + 'msgid': attrs.msgid + }; + // XXX: Need to take XEP-428 into consideration + if (!attrs.is_encrypted && attrs.body) { + // We can't match the message if it's a reflected + // encrypted message (e.g. via MAM or in a MUC) + query['body'] = attrs.body; } + return query; } - }, { - key: "setConnectionStatus", - value: function setConnectionStatus(status, message) { - this.status = status; - shared_converse.connfeedback.set({ - 'connection_status': status, - message: message - }); + }, + /** + * Retract one of your messages in this chat + * @private + * @method _converse.ChatBoxView#retractOwnMessage + * @param { _converse.Message } message - The message which we're retracting. + */ + retractOwnMessage: function retractOwnMessage(message) { + this.sendRetractionMessage(message); + message.save({ + 'retracted': new Date().toISOString(), + 'retracted_id': message.get('origin_id'), + 'retraction_id': message.get('id'), + 'is_ephemeral': true, + 'editable': false + }); + }, + /** + * Sends a message stanza to retract a message in this chat + * @private + * @method _converse.ChatBox#sendRetractionMessage + * @param { _converse.Message } message - The message which we're retracting. + */ + sendRetractionMessage: function sendRetractionMessage(message) { + var origin_id = message.get('origin_id'); + if (!origin_id) { + throw new Error("Can't retract message without a XEP-0359 Origin ID"); } - }, { - key: "finishDisconnection", - value: function () { - var _finishDisconnection = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee8() { - return connection_regeneratorRuntime().wrap(function _callee8$(_context8) { - while (1) switch (_context8.prev = _context8.next) { - case 0: - // Properly tear down the session so that it's possible to manually connect again. - log.debug('DISCONNECTED'); - delete this.reconnecting; - this.reset(); - tearDown(); - _context8.next = 6; - return clearSession(); - case 6: - delete shared_converse.connection; - /** - * Triggered after converse.js has disconnected from the XMPP server. - * @event _converse#disconnected - * @memberOf _converse - * @example _converse.api.listen.on('disconnected', () => { ... }); - */ - shared_api.trigger('disconnected'); - case 8: - case "end": - return _context8.stop(); - } - }, _callee8, this); - })); - function finishDisconnection() { - return _finishDisconnection.apply(this, arguments); + var msg = $msg({ + 'id': model_u.getUniqueId(), + 'to': this.get('jid'), + 'type': "chat" + }).c('store', { + xmlns: model_Strophe.NS.HINTS + }).up().c("apply-to", { + 'id': origin_id, + 'xmlns': model_Strophe.NS.FASTEN + }).c('retract', { + xmlns: model_Strophe.NS.RETRACT + }); + return shared_converse.connection.send(msg); + }, + /** + * Finds the last eligible message and then sends a XEP-0333 chat marker for it. + * @param { ('received'|'displayed'|'acknowledged') } [type='displayed'] + * @param { Boolean } force - Whether a marker should be sent for the + * message, even if it didn't include a `markable` element. + */ + sendMarkerForLastMessage: function sendMarkerForLastMessage() { + var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'displayed'; + var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var msgs = Array.from(this.messages.models); + msgs.reverse(); + var msg = msgs.find(function (m) { + return m.get('sender') === 'them' && (force || m.get('is_markable')); + }); + msg && this.sendMarkerForMessage(msg, type, force); + }, + /** + * Given the passed in message object, send a XEP-0333 chat marker. + * @param { _converse.Message } msg + * @param { ('received'|'displayed'|'acknowledged') } [type='displayed'] + * @param { Boolean } force - Whether a marker should be sent for the + * message, even if it didn't include a `markable` element. + */ + sendMarkerForMessage: function sendMarkerForMessage(msg) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'displayed'; + var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + if (!msg || !shared_api.settings.get('send_chat_markers').includes(type)) { + return; + } + if (msg !== null && msg !== void 0 && msg.get('is_markable') || force) { + var from_jid = model_Strophe.getBareJidFromJid(msg.get('from')); + sendMarker(from_jid, msg.get('msgid'), type, msg.get('type')); + } + }, + handleChatMarker: function handleChatMarker(attrs) { + var to_bare_jid = model_Strophe.getBareJidFromJid(attrs.to); + if (to_bare_jid !== shared_converse.bare_jid) { + return false; + } + if (attrs.is_markable) { + if (this.contact && !attrs.is_archived && !attrs.is_carbon) { + sendMarker(attrs.from, attrs.msgid, 'received'); } - return finishDisconnection; - }() - /** - * Gets called once strophe's status reaches Strophe.Status.DISCONNECTED. - * Will either start a teardown process for converse.js or attempt - * to reconnect. - * @method onDisconnected - */ - }, { - key: "onDisconnected", - value: function onDisconnected() { - if (shared_api.settings.get("auto_reconnect")) { - var reason = this.disconnection_reason; - if (this.disconnection_cause === Strophe.Status.AUTHFAIL) { - if (shared_api.settings.get("credentials_url") || shared_api.settings.get("authentication") === ANONYMOUS) { - // If `credentials_url` is set, we reconnect, because we might - // be receiving expirable tokens from the credentials_url. - // - // If `authentication` is anonymous, we reconnect because we - // might have tried to attach with stale BOSH session tokens - // or with a cached JID and password - return shared_api.connection.reconnect(); - } else { - return this.finishDisconnection(); - } - } else if (this.status === Strophe.Status.CONNECTING) { - // Don't try to reconnect if we were never connected to begin - // with, otherwise an infinite loop can occur (e.g. when the - // BOSH service URL returns a 404). - var __ = shared_converse.__; - this.setConnectionStatus(Strophe.Status.CONNFAIL, __('An error occurred while connecting to the chat server.')); - return this.finishDisconnection(); - } else if (this.disconnection_cause === LOGOUT || reason === Strophe.ErrorCondition.NO_AUTH_MECH || reason === "host-unknown" || reason === "remote-connection-failed") { - return this.finishDisconnection(); + return false; + } else if (attrs.marker_id) { + var message = this.messages.findWhere({ + 'msgid': attrs.marker_id + }); + var field_name = "marker_".concat(attrs.marker); + if (message && !message.get(field_name)) { + message.save({ + field_name: new Date().toISOString() + }); + } + return true; + } + }, + sendReceiptStanza: function sendReceiptStanza(to_jid, id) { + var receipt_stanza = $msg({ + 'from': shared_converse.connection.jid, + 'id': model_u.getUniqueId(), + 'to': to_jid, + 'type': 'chat' + }).c('received', { + 'xmlns': model_Strophe.NS.RECEIPTS, + 'id': id + }).up().c('store', { + 'xmlns': model_Strophe.NS.HINTS + }).up(); + shared_api.send(receipt_stanza); + }, + handleReceipt: function handleReceipt(attrs) { + if (attrs.sender === 'them') { + if (attrs.is_valid_receipt_request) { + this.sendReceiptStanza(attrs.from, attrs.msgid); + } else if (attrs.receipt_id) { + var message = this.messages.findWhere({ + 'msgid': attrs.receipt_id + }); + if (message && !message.get('received')) { + message.save({ + 'received': new Date().toISOString() + }); } - shared_api.connection.reconnect(); - } else { - return this.finishDisconnection(); + return true; } } - - /** - * Callback method called by Strophe as the Connection goes - * through various states while establishing or tearing down a - * connection. - * @param { Number } status - * @param { String } message - */ - }, { - key: "onConnectStatusChanged", - value: function onConnectStatusChanged(status, message) { - var __ = shared_converse.__; - log.debug("Status changed to: ".concat(CONNECTION_STATUS[status])); - if (status === Strophe.Status.ATTACHFAIL) { - var _this$worker_attach_p; - this.setConnectionStatus(status); - (_this$worker_attach_p = this.worker_attach_promise) === null || _this$worker_attach_p === void 0 ? void 0 : _this$worker_attach_p.resolve(false); - } else if (status === Strophe.Status.CONNECTED || status === Strophe.Status.ATTACHED) { - var _this$worker_attach_p2, _this$worker_attach_p3; - if ((_this$worker_attach_p2 = this.worker_attach_promise) !== null && _this$worker_attach_p2 !== void 0 && _this$worker_attach_p2.isResolved && this.status === Strophe.Status.ATTACHED) { - // A different tab must have attached, so nothing to do for us here. - return; + return false; + }, + /** + * Given a {@link _converse.Message} return the XML stanza that represents it. + * @private + * @method _converse.ChatBox#createMessageStanza + * @param { _converse.Message } message - The message object + */ + createMessageStanza: function createMessageStanza(message) { + var _this12 = this; + return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee10() { + var stanza, data; + return model_regeneratorRuntime().wrap(function _callee10$(_context10) { + while (1) switch (_context10.prev = _context10.next) { + case 0: + stanza = $msg({ + 'from': shared_converse.connection.jid, + 'to': _this12.get('jid'), + 'type': _this12.get('message_type'), + 'id': message.get('edited') && model_u.getUniqueId() || message.get('msgid') + }).c('body').t(message.get('body')).up().c(shared_converse.ACTIVE, { + 'xmlns': model_Strophe.NS.CHATSTATES + }).root(); + if (message.get('type') === 'chat') { + stanza.c('request', { + 'xmlns': model_Strophe.NS.RECEIPTS + }).root(); + } + if (!message.get('is_encrypted')) { + if (message.get('is_spoiler')) { + if (message.get('spoiler_hint')) { + stanza.c('spoiler', { + 'xmlns': model_Strophe.NS.SPOILER + }, message.get('spoiler_hint')).root(); + } else { + stanza.c('spoiler', { + 'xmlns': model_Strophe.NS.SPOILER + }).root(); + } + } + (message.get('references') || []).forEach(function (reference) { + var attrs = { + 'xmlns': model_Strophe.NS.REFERENCE, + 'begin': reference.begin, + 'end': reference.end, + 'type': reference.type + }; + if (reference.uri) { + attrs.uri = reference.uri; + } + stanza.c('reference', attrs).root(); + }); + if (message.get('oob_url')) { + stanza.c('x', { + 'xmlns': model_Strophe.NS.OUTOFBAND + }).c('url').t(message.get('oob_url')).root(); + } + } + if (message.get('edited')) { + stanza.c('replace', { + 'xmlns': model_Strophe.NS.MESSAGE_CORRECT, + 'id': message.get('msgid') + }).root(); + } + if (message.get('origin_id')) { + stanza.c('origin-id', { + 'xmlns': model_Strophe.NS.SID, + 'id': message.get('origin_id') + }).root(); + } + stanza.root(); + /** + * *Hook* which allows plugins to update an outgoing message stanza + * @event _converse#createMessageStanza + * @param { _converse.ChatBox | _converse.ChatRoom } - The chat from + * which this message stanza is being sent. + * @param { Object } data - Message data + * @param { _converse.Message | _converse.ChatRoomMessage } data.message + * The message object from which the stanza is created and which gets persisted to storage. + * @param { Strophe.Builder } data.stanza + * The stanza that will be sent out, as a Strophe.Builder object. + * You can use the Strophe.Builder functions to extend the stanza. + * See http://strophe.im/strophejs/doc/1.4.3/files/strophe-umd-js.html#Strophe.Builder.Functions + */ + _context10.next = 8; + return shared_api.hook('createMessageStanza', _this12, { + message: message, + stanza: stanza + }); + case 8: + data = _context10.sent; + return _context10.abrupt("return", data.stanza); + case 10: + case "end": + return _context10.stop(); } - this.setConnectionStatus(status); - (_this$worker_attach_p3 = this.worker_attach_promise) === null || _this$worker_attach_p3 === void 0 ? void 0 : _this$worker_attach_p3.resolve(true); + }, _callee10); + }))(); + }, + getOutgoingMessageAttributes: function getOutgoingMessageAttributes(attrs) { + var _this13 = this; + return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee11() { + var _attrs; + var is_spoiler, origin_id, text, body; + return model_regeneratorRuntime().wrap(function _callee11$(_context11) { + while (1) switch (_context11.prev = _context11.next) { + case 0: + _context11.next = 2; + return shared_api.emojis.initialize(); + case 2: + is_spoiler = !!_this13.get('composing_spoiler'); + origin_id = model_u.getUniqueId(); + text = (_attrs = attrs) === null || _attrs === void 0 ? void 0 : _attrs.body; + body = text ? model_u.shortnamesToUnicode(text) : undefined; + attrs = Object.assign({}, attrs, { + 'from': shared_converse.bare_jid, + 'fullname': shared_converse.xmppstatus.get('fullname'), + 'id': origin_id, + 'is_only_emojis': text ? model_u.isOnlyEmojis(text) : false, + 'jid': _this13.get('jid'), + 'message': body, + 'msgid': origin_id, + 'nickname': _this13.get('nickname'), + 'sender': 'me', + 'time': new Date().toISOString(), + 'type': _this13.get('message_type'), + body: body, + is_spoiler: is_spoiler, + origin_id: origin_id + }, getMediaURLsMetadata(text)); - // By default we always want to send out an initial presence stanza. - shared_converse.send_initial_presence = true; - this.setDisconnectionCause(); - if (this.reconnecting) { - log.debug(status === Strophe.Status.CONNECTED ? 'Reconnected' : 'Reattached'); - this.onConnected(true); - } else { - log.debug(status === Strophe.Status.CONNECTED ? 'Connected' : 'Attached'); - if (this.restored) { - // No need to send an initial presence stanza when - // we're restoring an existing session. - shared_converse.send_initial_presence = false; - } - this.onConnected(); + /** + * *Hook* which allows plugins to update the attributes of an outgoing message. + * These attributes get set on the { @link _converse.Message } or + * { @link _converse.ChatRoomMessage } and persisted to storage. + * @event _converse#getOutgoingMessageAttributes + * @param { _converse.ChatBox | _converse.ChatRoom } chat + * The chat from which this message will be sent. + * @param { MessageAttributes } attrs + * The message attributes, from which the stanza will be created. + */ + _context11.next = 9; + return shared_api.hook('getOutgoingMessageAttributes', _this13, attrs); + case 9: + attrs = _context11.sent; + return _context11.abrupt("return", attrs); + case 11: + case "end": + return _context11.stop(); } - } else if (status === Strophe.Status.DISCONNECTED) { - this.setDisconnectionCause(status, message); - this.onDisconnected(); - } else if (status === Strophe.Status.BINDREQUIRED) { - this.bind(); - } else if (status === Strophe.Status.ERROR) { - this.setConnectionStatus(status, __('An error occurred while connecting to the chat server.')); - } else if (status === Strophe.Status.CONNECTING) { - this.setConnectionStatus(status); - } else if (status === Strophe.Status.AUTHENTICATING) { - this.setConnectionStatus(status); - } else if (status === Strophe.Status.AUTHFAIL) { - if (!message) { - message = __('Your XMPP address and/or password is incorrect. Please try again.'); + }, _callee11); + }))(); + }, + /** + * Responsible for setting the editable attribute of messages. + * If api.settings.get('allow_message_corrections') is "last", then only the last + * message sent from me will be editable. If set to "all" all messages + * will be editable. Otherwise no messages will be editable. + * @method _converse.ChatBox#setEditable + * @memberOf _converse.ChatBox + * @param { Object } attrs An object containing message attributes. + * @param { String } send_time - time when the message was sent + */ + setEditable: function setEditable(attrs, send_time) { + if (attrs.is_headline || isEmptyMessage(attrs) || attrs.sender !== 'me') { + return; + } + if (shared_api.settings.get('allow_message_corrections') === 'all') { + attrs.editable = !(attrs.file || attrs.retracted || 'oob_url' in attrs); + } else if (shared_api.settings.get('allow_message_corrections') === 'last' && send_time > this.get('time_sent')) { + var _this$messages$findWh; + this.set({ + 'time_sent': send_time + }); + (_this$messages$findWh = this.messages.findWhere({ + 'editable': true + })) === null || _this$messages$findWh === void 0 ? void 0 : _this$messages$findWh.save({ + 'editable': false + }); + attrs.editable = !(attrs.file || attrs.retracted || 'oob_url' in attrs); + } + }, + /** + * Queue the creation of a message, to make sure that we don't run + * into a race condition whereby we're creating a new message + * before the collection has been fetched. + * @async + * @private + * @method _converse.ChatBox#createMessage + * @param { Object } attrs + */ + createMessage: function createMessage(attrs, options) { + var _this14 = this; + return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee12() { + return model_regeneratorRuntime().wrap(function _callee12$(_context12) { + while (1) switch (_context12.prev = _context12.next) { + case 0: + attrs.time = attrs.time || new Date().toISOString(); + _context12.next = 3; + return _this14.messages.fetched; + case 3: + return _context12.abrupt("return", _this14.messages.create(attrs, options)); + case 4: + case "end": + return _context12.stop(); } - this.setConnectionStatus(status, message); - this.setDisconnectionCause(status, message, true); - this.onDisconnected(); - } else if (status === Strophe.Status.CONNFAIL) { - var _Strophe$ErrorConditi; - var feedback = message; - if (message === "host-unknown" || message == "remote-connection-failed") { - feedback = __("Sorry, we could not connect to the XMPP host with domain: %1$s", "\"".concat(Strophe.getDomainFromJid(this.jid), "\"")); - } else if (message !== undefined && message === (Strophe === null || Strophe === void 0 ? void 0 : (_Strophe$ErrorConditi = Strophe.ErrorCondition) === null || _Strophe$ErrorConditi === void 0 ? void 0 : _Strophe$ErrorConditi.NO_AUTH_MECH)) { - feedback = __("The XMPP server did not offer a supported authentication mechanism"); + }, _callee12); + }))(); + }, + /** + * Responsible for sending off a text message inside an ongoing chat conversation. + * @private + * @method _converse.ChatBox#sendMessage + * @memberOf _converse.ChatBox + * @param { Object } [attrs] - A map of attributes to be saved on the message + * @returns { _converse.Message } + * @example + * const chat = api.chats.get('buddy1@example.org'); + * chat.sendMessage({'body': 'hello world'}); + */ + sendMessage: function sendMessage(attrs) { + var _this15 = this; + return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee13() { + var message, older_versions, edited_time, stanza; + return model_regeneratorRuntime().wrap(function _callee13$(_context13) { + while (1) switch (_context13.prev = _context13.next) { + case 0: + _context13.next = 2; + return _this15.getOutgoingMessageAttributes(attrs); + case 2: + attrs = _context13.sent; + message = _this15.messages.findWhere('correcting'); + if (!message) { + _context13.next = 11; + break; + } + older_versions = message.get('older_versions') || {}; + edited_time = message.get('edited') || message.get('time'); + older_versions[edited_time] = message.getMessageText(); + message.save(model_objectSpread(model_objectSpread({}, lodash_es_pick(attrs, ['body', 'is_only_emojis', 'media_urls', 'references', 'is_encrypted'])), { + 'correcting': false, + 'edited': new Date().toISOString(), + 'message': attrs.body, + 'ogp_metadata': [], + 'origin_id': model_u.getUniqueId(), + 'received': undefined, + older_versions: older_versions, + plaintext: attrs.is_encrypted ? attrs.message : undefined + })); + _context13.next = 15; + break; + case 11: + _this15.setEditable(attrs, new Date().toISOString()); + _context13.next = 14; + return _this15.createMessage(attrs); + case 14: + message = _context13.sent; + case 15: + _context13.prev = 15; + _context13.next = 18; + return _this15.createMessageStanza(message); + case 18: + stanza = _context13.sent; + shared_api.send(stanza); + _context13.next = 27; + break; + case 22: + _context13.prev = 22; + _context13.t0 = _context13["catch"](15); + message.destroy(); + log.error(_context13.t0); + return _context13.abrupt("return"); + case 27: + /** + * Triggered when a message is being sent out + * @event _converse#sendMessage + * @type { Object } + * @param { Object } data + * @property { (_converse.ChatBox | _converse.ChatRoom) } data.chatbox + * @property { (_converse.Message | _converse.ChatRoomMessage) } data.message + */ + shared_api.trigger('sendMessage', { + 'chatbox': _this15, + message: message + }); + return _context13.abrupt("return", message); + case 29: + case "end": + return _context13.stop(); } - this.setConnectionStatus(status, feedback); - this.setDisconnectionCause(status, message); - } else if (status === Strophe.Status.DISCONNECTING) { - this.setDisconnectionCause(status, message); + }, _callee13, null, [[15, 22]]); + }))(); + }, + /** + * Sends a message with the current XEP-0085 chat state of the user + * as taken from the `chat_state` attribute of the {@link _converse.ChatBox}. + * @private + * @method _converse.ChatBox#sendChatState + */ + sendChatState: function sendChatState() { + if (shared_api.settings.get('send_chat_state_notifications') && this.get('chat_state')) { + var allowed = shared_api.settings.get('send_chat_state_notifications'); + if (Array.isArray(allowed) && !allowed.includes(this.get('chat_state'))) { + return; } + shared_api.send($msg({ + 'id': model_u.getUniqueId(), + 'to': this.get('jid'), + 'type': 'chat' + }).c(this.get('chat_state'), { + 'xmlns': model_Strophe.NS.CHATSTATES + }).up().c('no-store', { + 'xmlns': model_Strophe.NS.HINTS + }).up().c('no-permanent-store', { + 'xmlns': model_Strophe.NS.HINTS + })); } - }, { - key: "isType", - value: function isType(type) { - if (type.toLowerCase() === 'websocket') { - return this._proto instanceof Strophe.Websocket; - } else if (type.toLowerCase() === 'bosh') { - return Strophe.Bosh && this._proto instanceof Strophe.Bosh; + }, + sendFiles: function sendFiles(files) { + var _this16 = this; + return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee15() { + var _maxFileSize; + var __, result, item, data, max_file_size, slot_request_url; + return model_regeneratorRuntime().wrap(function _callee15$(_context15) { + while (1) switch (_context15.prev = _context15.next) { + case 0: + __ = shared_converse.__; + _context15.next = 3; + return shared_api.disco.features.get(model_Strophe.NS.HTTPUPLOAD, shared_converse.domain); + case 3: + result = _context15.sent; + item = result.pop(); + if (item) { + _context15.next = 8; + break; + } + _this16.createMessage({ + 'message': __("Sorry, looks like file upload is not supported by your server."), + 'type': 'error', + 'is_ephemeral': true + }); + return _context15.abrupt("return"); + case 8: + data = item.dataforms.where({ + 'FORM_TYPE': { + 'value': model_Strophe.NS.HTTPUPLOAD, + 'type': "hidden" + } + }).pop(); + max_file_size = window.parseInt((_maxFileSize = ((data === null || data === void 0 ? void 0 : data.attributes) || {})['max-file-size']) === null || _maxFileSize === void 0 ? void 0 : _maxFileSize.value); + slot_request_url = item === null || item === void 0 ? void 0 : item.id; + if (slot_request_url) { + _context15.next = 14; + break; + } + _this16.createMessage({ + 'message': __("Sorry, looks like file upload is not supported by your server."), + 'type': 'error', + 'is_ephemeral': true + }); + return _context15.abrupt("return"); + case 14: + Array.from(files).forEach( /*#__PURE__*/function () { + var _ref2 = model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee14(file) { + var initial_attrs, attrs, message; + return model_regeneratorRuntime().wrap(function _callee14$(_context14) { + while (1) switch (_context14.prev = _context14.next) { + case 0: + _context14.next = 2; + return shared_api.hook('beforeFileUpload', _this16, file); + case 2: + file = _context14.sent; + if (!(!window.isNaN(max_file_size) && window.parseInt(file.size) > max_file_size)) { + _context14.next = 7; + break; + } + return _context14.abrupt("return", _this16.createMessage({ + 'message': __('The size of your file, %1$s, exceeds the maximum allowed by your server, which is %2$s.', file.name, (0,external_filesize_namespaceObject.filesize)(max_file_size)), + 'type': 'error', + 'is_ephemeral': true + })); + case 7: + _context14.next = 9; + return _this16.getOutgoingMessageAttributes(); + case 9: + initial_attrs = _context14.sent; + attrs = Object.assign(initial_attrs, { + 'file': true, + 'progress': 0, + 'slot_request_url': slot_request_url + }); + _this16.setEditable(attrs, new Date().toISOString()); + _context14.next = 14; + return _this16.createMessage(attrs, { + 'silent': true + }); + case 14: + message = _context14.sent; + message.file = file; + _this16.messages.trigger('add', message); + message.getRequestSlotURL(); + case 18: + case "end": + return _context14.stop(); + } + }, _callee14); + })); + return function (_x) { + return _ref2.apply(this, arguments); + }; + }()); + case 15: + case "end": + return _context15.stop(); + } + }, _callee15); + }))(); + }, + maybeShow: function maybeShow(force) { + var _this17 = this; + if (isUniView()) { + var filter = function filter(c) { + return !c.get('hidden') && c.get('jid') !== _this17.get('jid') && c.get('id') !== 'controlbox'; + }; + var other_chats = shared_converse.chatboxes.filter(filter); + if (force || other_chats.length === 0) { + // We only have one chat visible at any one time. + // So before opening a chat, we make sure all other chats are hidden. + other_chats.forEach(function (c) { + return model_u.safeSave(c, { + 'hidden': true + }); + }); + model_u.safeSave(this, { + 'hidden': false + }); } + return; } - }, { - key: "hasResumed", - value: function hasResumed() { - var _api$settings$get; - if ((_api$settings$get = shared_api.settings.get("connection_options")) !== null && _api$settings$get !== void 0 && _api$settings$get.worker || this.isType('bosh')) { - return shared_converse.connfeedback.get('connection_status') === Strophe.Status.ATTACHED; + model_u.safeSave(this, { + 'hidden': false + }); + this.trigger('show'); + return this; + }, + /** + * Indicates whether the chat is hidden and therefore + * whether a newly received message will be visible + * to the user or not. + * @returns {boolean} + */ + isHidden: function isHidden() { + // Note: This methods gets overridden by converse-minimize + return this.get('hidden') || this.isScrolledUp() || shared_converse.windowState === 'hidden'; + }, + /** + * Given a newly received {@link _converse.Message} instance, + * update the unread counter if necessary. + * @private + * @method _converse.ChatBox#handleUnreadMessage + * @param {_converse.Message} message + */ + handleUnreadMessage: function handleUnreadMessage(message) { + if (!(message !== null && message !== void 0 && message.get('body'))) { + return; + } + if (model_u.isNewMessage(message)) { + if (message.get('sender') === 'me') { + // We remove the "scrolled" flag so that the chat area + // gets scrolled down. We always want to scroll down + // when the user writes a message as opposed to when a + // message is received. + this.ui.set('scrolled', false); + } else if (this.isHidden()) { + this.incrementUnreadMsgsCounter(message); } else { - // Not binding means that the session was resumed. - return !this.do_bind; + this.sendMarkerForMessage(message); } } - }, { - key: "restoreWorkerSession", - value: function restoreWorkerSession() { - this.attach(this.onConnectStatusChanged); - this.worker_attach_promise = getOpenPromise(); - return this.worker_attach_promise; - } - }], [{ - key: "generateResource", - value: function generateResource() { - return "/converse.js-".concat(Math.floor(Math.random() * 139749528).toString()); - } - }]); - return Connection; -}(Strophe.Connection); - -/** - * The MockConnection class is used during testing, to mock an XMPP connection. - * @class - */ -var MockConnection = /*#__PURE__*/function (_Connection) { - connection_inherits(MockConnection, _Connection); - var _super2 = connection_createSuper(MockConnection); - function MockConnection(service, options) { - var _this2; - shared_connection_classCallCheck(this, MockConnection); - _this2 = _super2.call(this, service, options); - _this2.sent_stanzas = []; - _this2.IQ_stanzas = []; - _this2.IQ_ids = []; - _this2.features = Strophe.xmlHtmlNode('' + '' + '' + '' + '' + '' + '' + "" + '' + '' + '' + '').firstChild; - _this2._proto._processRequest = function () {}; - _this2._proto._disconnect = function () { - return _this2._onDisconnectTimeout(); - }; - _this2._proto._onDisconnectTimeout = function () {}; - _this2._proto._connect = function () { - _this2.connected = true; - _this2.mock = true; - _this2.jid = 'romeo@montague.lit/orchard'; - _this2._changeConnectStatus(Strophe.Status.BINDREQUIRED); + }, + incrementUnreadMsgsCounter: function incrementUnreadMsgsCounter(message) { + var settings = { + 'num_unread': this.get('num_unread') + 1 }; - return _this2; - } - shared_connection_createClass(MockConnection, [{ - key: "_processRequest", - value: function _processRequest() {// eslint-disable-line class-methods-use-this - // Don't attempt to send out stanzas - } - }, { - key: "sendIQ", - value: function sendIQ(iq, callback, errback) { - var _iq$tree, _iq$tree2, _iq; - iq = (_iq$tree = (_iq$tree2 = (_iq = iq).tree) === null || _iq$tree2 === void 0 ? void 0 : _iq$tree2.call(_iq)) !== null && _iq$tree !== void 0 ? _iq$tree : iq; - this.IQ_stanzas.push(iq); - var id = _get(connection_getPrototypeOf(MockConnection.prototype), "sendIQ", this).call(this, iq, callback, errback); - this.IQ_ids.push(id); - return id; + if (this.get('num_unread') === 0) { + settings['first_unread_id'] = message.get('id'); } - }, { - key: "send", - value: function send(stanza) { - var _stanza$tree, _stanza$tree2, _stanza; - stanza = (_stanza$tree = (_stanza$tree2 = (_stanza = stanza).tree) === null || _stanza$tree2 === void 0 ? void 0 : _stanza$tree2.call(_stanza)) !== null && _stanza$tree !== void 0 ? _stanza$tree : stanza; - this.sent_stanzas.push(stanza); - return _get(connection_getPrototypeOf(MockConnection.prototype), "send", this).call(this, stanza); + this.save(settings); + }, + clearUnreadMsgCounter: function clearUnreadMsgCounter() { + if (this.get('num_unread') > 0) { + this.sendMarkerForMessage(this.messages.last()); } - }, { - key: "bind", - value: function () { - var _bind2 = connection_asyncToGenerator( /*#__PURE__*/connection_regeneratorRuntime().mark(function _callee9() { - return connection_regeneratorRuntime().wrap(function _callee9$(_context9) { - while (1) switch (_context9.prev = _context9.next) { - case 0: - _context9.next = 2; - return shared_api.trigger('beforeResourceBinding', { - 'synchronous': true - }); - case 2: - this.authenticated = true; - if (!shared_converse.no_connection_on_bind) { - this._changeConnectStatus(Strophe.Status.CONNECTED); - } - case 4: - case "end": - return _context9.stop(); - } - }, _callee9, this); - })); - function bind() { - return _bind2.apply(this, arguments); - } - return bind; - }() - }]); - return MockConnection; -}(connection_Connection); -;// CONCATENATED MODULE: ./src/headless/utils/init.js -function init_typeof(obj) { + model_u.safeSave(this, { + 'num_unread': 0 + }); + }, + isScrolledUp: function isScrolledUp() { + return this.ui.get('scrolled'); + } +}); +/* harmony default export */ const model = (ChatBox); +;// CONCATENATED MODULE: ./src/headless/plugins/chat/message.js +function message_typeof(obj) { "@babel/helpers - typeof"; - return init_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return message_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, init_typeof(obj); + }, message_typeof(obj); } -function init_regeneratorRuntime() { +function message_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - init_regeneratorRuntime = function _regeneratorRuntime() { + message_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -33228,7 +31954,7 @@ function init_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == init_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == message_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -33453,7 +32179,7 @@ function init_regeneratorRuntime() { } }, exports; } -function init_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function message_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -33467,17 +32193,17 @@ function init_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) Promise.resolve(value).then(_next, _throw); } } -function init_asyncToGenerator(fn) { +function message_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - init_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + message_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - init_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + message_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); @@ -33488,774 +32214,974 @@ function init_asyncToGenerator(fn) { +var message_converse$env = public_converse.env, + message_Strophe = message_converse$env.Strophe, + message_sizzle = message_converse$env.sizzle, + message_u = message_converse$env.u; - - - - - - -function setUpXMLLogging() { - var lmap = {}; - lmap[Strophe.LogLevel.DEBUG] = 'debug'; - lmap[Strophe.LogLevel.INFO] = 'info'; - lmap[Strophe.LogLevel.WARN] = 'warn'; - lmap[Strophe.LogLevel.ERROR] = 'error'; - lmap[Strophe.LogLevel.FATAL] = 'fatal'; - Strophe.log = function (level, msg) { - return log.log(msg, lmap[level]); - }; - Strophe.error = function (msg) { - return log.error(msg); - }; - shared_converse.connection.xmlInput = function (body) { - return log.debug(body.outerHTML, 'color: darkgoldenrod'); - }; - shared_converse.connection.xmlOutput = function (body) { - return log.debug(body.outerHTML, 'color: darkcyan'); - }; -} -function getConnectionServiceURL() { - var api = shared_converse.api; - if (('WebSocket' in window || 'MozWebSocket' in window) && api.settings.get("websocket_url")) { - return api.settings.get('websocket_url'); - } else if (api.settings.get('bosh_service_url')) { - return api.settings.get('bosh_service_url'); - } - return ''; -} -function initConnection() { - var api = shared_converse.api; - if (!api.settings.get('bosh_service_url')) { - if (api.settings.get("authentication") === PREBIND) { - throw new Error("authentication is set to 'prebind' but we don't have a BOSH connection"); +/** + * Mixin which turns a `ModelWithContact` model into a non-MUC message. + * These can be either `chat`, `normal` or `headline` messages. + * @mixin + * @namespace _converse.Message + * @memberOf _converse + * @example const msg = new _converse.Message({'message': 'hello world!'}); + */ +var MessageMixin = { + defaults: function defaults() { + return { + 'msgid': message_u.getUniqueId(), + 'time': new Date().toISOString(), + 'is_ephemeral': false + }; + }, + initialize: function initialize() { + var _this = this; + return message_asyncToGenerator( /*#__PURE__*/message_regeneratorRuntime().mark(function _callee() { + return message_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + if (_this.checkValidity()) { + _context.next = 2; + break; + } + return _context.abrupt("return"); + case 2: + _this.initialized = getOpenPromise(); + if (_this.get('file')) { + _this.on('change:put', function () { + return _this.uploadFile(); + }); + } + // If `type` changes from `error` to `chat`, we want to set the contact. See #2733 + _this.on('change:type', function () { + return _this.setContact(); + }); + _this.on('change:is_ephemeral', function () { + return _this.setTimerForEphemeralMessage(); + }); + _context.next = 8; + return _this.setContact(); + case 8: + _this.setTimerForEphemeralMessage(); + /** + * Triggered once a {@link _converse.Message} has been created and initialized. + * @event _converse#messageInitialized + * @type { _converse.Message} + * @example _converse.api.listen.on('messageInitialized', model => { ... }); + */ + _context.next = 11; + return shared_api.trigger('messageInitialized', _this, { + 'Synchronous': true + }); + case 11: + _this.initialized.resolve(); + case 12: + case "end": + return _context.stop(); + } + }, _callee); + }))(); + }, + setContact: function setContact() { + if (['chat', 'normal'].includes(this.get('type'))) { + model_with_contact.prototype.initialize.apply(this, arguments); + this.setRosterContact(message_Strophe.getBareJidFromJid(this.get('from'))); } - } - var XMPPConnection = shared_converse.isTestEnv() ? MockConnection : connection_Connection; - shared_converse.connection = new XMPPConnection(getConnectionServiceURL(), Object.assign(shared_converse.default_connection_options, api.settings.get("connection_options"), { - 'keepalive': api.settings.get("keepalive") - })); - setUpXMLLogging(); + }, /** - * Triggered once the `Connection` constructor has been initialized, which - * will be responsible for managing the connection to the XMPP server. - * - * @event _converse#connectionInitialized + * Sets an auto-destruct timer for this message, if it's is_ephemeral. + * @private + * @method _converse.Message#setTimerForEphemeralMessage */ - api.trigger('connectionInitialized'); -} -function initPlugins(_converse) { - // If initialize gets called a second time (e.g. during tests), then we - // need to re-apply all plugins (for a new converse instance), and we - // therefore need to clear this array that prevents plugins from being - // initialized twice. - // If initialize is called for the first time, then this array is empty - // in any case. - _converse.pluggable.initialized_plugins = []; - var whitelist = CORE_PLUGINS.concat(_converse.api.settings.get("whitelisted_plugins")); - if (_converse.api.settings.get("singleton")) { - ['converse-bookmarks', 'converse-controlbox', 'converse-headline', 'converse-register'].forEach(function (name) { - return _converse.api.settings.get("blacklisted_plugins").push(name); - }); - } - _converse.pluggable.initializePlugins({ - _converse: _converse - }, whitelist, _converse.api.settings.get("blacklisted_plugins")); - + setTimerForEphemeralMessage: function setTimerForEphemeralMessage() { + var _this2 = this; + if (this.ephemeral_timer) { + clearTimeout(this.ephemeral_timer); + } + var is_ephemeral = this.isEphemeral(); + if (is_ephemeral) { + var timeout = typeof is_ephemeral === "number" ? is_ephemeral : 10000; + this.ephemeral_timer = window.setTimeout(function () { + return _this2.safeDestroy(); + }, timeout); + } + }, + checkValidity: function checkValidity() { + if (Object.keys(this.attributes).length === 3) { + // XXX: This is an empty message with only the 3 default values. + // This seems to happen when saving a newly created message + // fails for some reason. + // TODO: This is likely fixable by setting `wait` when + // creating messages. See the wait-for-messages branch. + this.validationError = 'Empty message'; + this.safeDestroy(); + return false; + } + return true; + }, /** - * Triggered once all plugins have been initialized. This is a useful event if you want to - * register event handlers but would like your own handlers to be overridable by - * plugins. In that case, you need to first wait until all plugins have been - * initialized, so that their overrides are active. One example where this is used - * is in [converse-notifications.js](https://github.com/jcbrand/converse.js/blob/master/src/converse-notification.js)`. - * - * Also available as an [ES2015 Promise](http://es6-features.org/#PromiseUsage) - * which can be listened to with `_converse.api.waitUntil`. - * - * @event _converse#pluginsInitialized - * @memberOf _converse - * @example _converse.api.listen.on('pluginsInitialized', () => { ... }); + * Determines whether this messsage may be retracted by the current user. + * @private + * @method _converse.Messages#mayBeRetracted + * @returns { Boolean } */ - _converse.api.trigger('pluginsInitialized'); -} -function initClientConfig(_x) { - return _initClientConfig.apply(this, arguments); -} -function _initClientConfig() { - _initClientConfig = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee2(_converse) { - var id; - return init_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - /* The client config refers to configuration of the client which is - * independent of any particular user. - * What this means is that config values need to persist across - * user sessions. - */ - id = 'converse.client-config'; - _converse.config = new Model({ - id: id, - 'trusted': true - }); - _converse.config.browserStorage = createStore(id, "session"); - _context2.next = 5; - return new Promise(function (r) { - return _converse.config.fetch({ - 'success': r, - 'error': r + mayBeRetracted: function mayBeRetracted() { + var is_own_message = this.get('sender') === 'me'; + var not_canceled = this.get('error_type') !== 'cancel'; + return is_own_message && not_canceled && ['all', 'own'].includes(shared_api.settings.get('allow_message_retraction')); + }, + safeDestroy: function safeDestroy() { + try { + this.destroy(); + } catch (e) { + log.warn("safeDestroy: ".concat(e)); + } + }, + /** + * Returns a boolean indicating whether this message is ephemeral, + * meaning it will get automatically removed after ten seconds. + * @returns { boolean } + */ + isEphemeral: function isEphemeral() { + return this.get('is_ephemeral'); + }, + /** + * Returns a boolean indicating whether this message is a XEP-0245 /me command. + * @returns { boolean } + */ + isMeCommand: function isMeCommand() { + var text = this.getMessageText(); + if (!text) { + return false; + } + return text.startsWith('/me '); + }, + /** + * Returns a boolean indicating whether this message is considered a followup + * message from the previous one. Followup messages are shown grouped together + * under one author heading. + * A message is considered a followup of it's predecessor when it's a chat + * message from the same author, within 10 minutes. + * @returns { boolean } + */ + isFollowup: function isFollowup() { + var messages = this.collection.models; + var idx = messages.indexOf(this); + var prev_model = idx ? messages[idx - 1] : null; + if (prev_model === null) { + return false; + } + var date = dayjs_min_default()(this.get('time')); + return this.get('from') === prev_model.get('from') && !this.isMeCommand() && !prev_model.isMeCommand() && !!this.get('is_encrypted') === !!prev_model.get('is_encrypted') && this.get('type') === prev_model.get('type') && this.get('type') !== 'info' && date.isBefore(dayjs_min_default()(prev_model.get('time')).add(10, 'minutes')) && (this.get('type') === 'groupchat' ? this.get('occupant_id') === prev_model.get('occupant_id') : true); + }, + getDisplayName: function getDisplayName() { + if (this.contact) { + return this.contact.getDisplayName(); + } else if (this.vcard) { + return this.vcard.getDisplayName(); + } else { + return this.get('from'); + } + }, + getMessageText: function getMessageText() { + if (this.get('is_encrypted')) { + var __ = shared_converse.__; + return this.get('plaintext') || this.get('body') || __('Undecryptable OMEMO message'); + } else if (['groupchat', 'chat', 'normal'].includes(this.get('type'))) { + return this.get('body'); + } else { + return this.get('message'); + } + }, + /** + * Send out an IQ stanza to request a file upload slot. + * https://xmpp.org/extensions/xep-0363.html#request + * @private + * @method _converse.Message#sendSlotRequestStanza + */ + sendSlotRequestStanza: function sendSlotRequestStanza() { + if (!this.file) { + return Promise.reject(new Error('file is undefined')); + } + var iq = public_converse.env.$iq({ + 'from': shared_converse.jid, + 'to': this.get('slot_request_url'), + 'type': 'get' + }).c('request', { + 'xmlns': message_Strophe.NS.HTTPUPLOAD, + 'filename': this.file.name, + 'size': this.file.size, + 'content-type': this.file.type + }); + return shared_api.sendIQ(iq); + }, + getUploadRequestMetadata: function getUploadRequestMetadata(stanza) { + var headers = message_sizzle("slot[xmlns=\"".concat(message_Strophe.NS.HTTPUPLOAD, "\"] put header"), stanza); + // https://xmpp.org/extensions/xep-0363.html#request + // TODO: Can't set the Cookie header in JavaScipt, instead cookies need + // to be manually set via document.cookie, so we're leaving it out here. + return { + 'headers': headers.map(function (h) { + return { + 'name': h.getAttribute('name'), + 'value': h.textContent + }; + }).filter(function (h) { + return ['Authorization', 'Expires'].includes(h.name); + }) + }; + }, + getRequestSlotURL: function getRequestSlotURL() { + var _this3 = this; + return message_asyncToGenerator( /*#__PURE__*/message_regeneratorRuntime().mark(function _callee2() { + var __, stanza, slot; + return message_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + __ = shared_converse.__; + _context2.prev = 1; + _context2.next = 4; + return _this3.sendSlotRequestStanza(); + case 4: + stanza = _context2.sent; + _context2.next = 11; + break; + case 7: + _context2.prev = 7; + _context2.t0 = _context2["catch"](1); + log.error(_context2.t0); + return _context2.abrupt("return", _this3.save({ + 'type': 'error', + 'message': __('Sorry, could not determine upload URL.'), + 'is_ephemeral': true + })); + case 11: + slot = message_sizzle("slot[xmlns=\"".concat(message_Strophe.NS.HTTPUPLOAD, "\"]"), stanza).pop(); + if (!slot) { + _context2.next = 17; + break; + } + _this3.upload_metadata = _this3.getUploadRequestMetadata(stanza); + _this3.save({ + 'get': slot.querySelector('get').getAttribute('url'), + 'put': slot.querySelector('put').getAttribute('url') }); - }); - case 5: - /** - * Triggered once the XMPP-client configuration has been initialized. - * The client configuration is independent of any particular and its values - * persist across user sessions. - * - * @event _converse#clientConfigInitialized - * @example - * _converse.api.listen.on('clientConfigInitialized', () => { ... }); - */ - _converse.api.trigger('clientConfigInitialized'); - case 6: - case "end": - return _context2.stop(); + _context2.next = 18; + break; + case 17: + return _context2.abrupt("return", _this3.save({ + 'type': 'error', + 'message': __('Sorry, could not determine file upload URL.'), + 'is_ephemeral': true + })); + case 18: + case "end": + return _context2.stop(); + } + }, _callee2, null, [[1, 7]]); + }))(); + }, + uploadFile: function uploadFile() { + var _this4 = this, + _this$upload_metadata; + var xhr = new XMLHttpRequest(); + xhr.onreadystatechange = /*#__PURE__*/message_asyncToGenerator( /*#__PURE__*/message_regeneratorRuntime().mark(function _callee3() { + var attrs; + return message_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + if (!(xhr.readyState === XMLHttpRequest.DONE)) { + _context3.next = 11; + break; + } + log.info('Status: ' + xhr.status); + if (!(xhr.status === 200 || xhr.status === 201)) { + _context3.next = 10; + break; + } + attrs = { + 'upload': shared_converse.SUCCESS, + 'oob_url': _this4.get('get'), + 'message': _this4.get('get'), + 'body': _this4.get('get') + }; + /** + * *Hook* which allows plugins to change the attributes + * saved on the message once a file has been uploaded. + * @event _converse#afterFileUploaded + */ + _context3.next = 6; + return shared_api.hook('afterFileUploaded', _this4, attrs); + case 6: + attrs = _context3.sent; + _this4.save(attrs); + _context3.next = 11; + break; + case 10: + xhr.onerror(); + case 11: + case "end": + return _context3.stop(); + } + }, _callee3); + })); + xhr.upload.addEventListener('progress', function (evt) { + if (evt.lengthComputable) { + _this4.set('progress', evt.loaded / evt.total); } - }, _callee2); - })); - return _initClientConfig.apply(this, arguments); -} -function initSessionStorage(_x2) { - return _initSessionStorage.apply(this, arguments); -} -function _initSessionStorage() { - _initSessionStorage = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee3(_converse) { - return init_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return storage.sessionStorageInitialized; - case 2: - _converse.storage = { - 'session': storage.localForage.createInstance({ - 'name': _converse.isTestEnv() ? 'converse-test-session' : 'converse-session', - 'description': 'sessionStorage instance', - 'driver': ['sessionStorageWrapper'] - }) - }; - case 3: - case "end": - return _context3.stop(); + }, false); + xhr.onerror = function () { + var __ = shared_converse.__; + var message; + if (xhr.responseText) { + message = __('Sorry, could not succesfully upload your file. Your server’s response: "%1$s"', xhr.responseText); + } else { + message = __('Sorry, could not succesfully upload your file.'); } - }, _callee3); - })); - return _initSessionStorage.apply(this, arguments); -} -function initPersistentStorage(_converse, store_name) { - if (_converse.api.settings.get('persistent_store') === 'sessionStorage') { - return; - } else if (_converse.api.settings.get("persistent_store") === 'BrowserExtLocal') { - storage.localForage.defineDriver(local/* default */.Z).then(function () { - return storage.localForage.setDriver('webExtensionLocalStorage'); - }); - _converse.storage['persistent'] = storage.localForage; - return; - } else if (_converse.api.settings.get("persistent_store") === 'BrowserExtSync') { - storage.localForage.defineDriver(localforage_webextensionstorage_driver_sync/* default */.Z).then(function () { - return storage.localForage.setDriver('webExtensionSyncStorage'); + _this4.save({ + 'type': 'error', + 'upload': shared_converse.FAILURE, + 'message': message, + 'is_ephemeral': true + }); + }; + xhr.open('PUT', this.get('put'), true); + xhr.setRequestHeader('Content-type', this.file.type); + (_this$upload_metadata = this.upload_metadata.headers) === null || _this$upload_metadata === void 0 ? void 0 : _this$upload_metadata.forEach(function (h) { + return xhr.setRequestHeader(h.name, h.value); }); - _converse.storage['persistent'] = storage.localForage; - return; + xhr.send(this.file); } - var config = { - 'name': _converse.isTestEnv() ? 'converse-test-persistent' : 'converse-persistent', - 'storeName': store_name +}; +/* harmony default export */ const message = (MessageMixin); +;// CONCATENATED MODULE: ./src/headless/plugins/chat/api.js +function chat_api_typeof(obj) { + "@babel/helpers - typeof"; + + return chat_api_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, chat_api_typeof(obj); +} +function chat_api_regeneratorRuntime() { + "use strict"; + + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + chat_api_regeneratorRuntime = function _regeneratorRuntime() { + return exports; }; - if (_converse.api.settings.get("persistent_store") === 'localStorage') { - config['description'] = 'localStorage instance'; - config['driver'] = [storage.localForage.LOCALSTORAGE]; - } else if (_converse.api.settings.get("persistent_store") === 'IndexedDB') { - config['description'] = 'indexedDB instance'; - config['driver'] = [storage.localForage.INDEXEDDB]; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; } - _converse.storage['persistent'] = storage.localForage.createInstance(config); -} -function saveJIDtoSession(_converse, jid) { - jid = _converse.session.get('jid') || jid; - if (_converse.api.settings.get("authentication") !== ANONYMOUS && !Strophe.getResourceFromJid(jid)) { - jid = jid.toLowerCase() + connection_Connection.generateResource(); + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; } - _converse.jid = jid; - _converse.bare_jid = Strophe.getBareJidFromJid(jid); - _converse.resource = Strophe.getResourceFromJid(jid); - _converse.domain = Strophe.getDomainFromJid(jid); - _converse.session.save({ - 'jid': jid, - 'bare_jid': _converse.bare_jid, - 'resource': _converse.resource, - 'domain': _converse.domain, - // We use the `active` flag to determine whether we should use the values from sessionStorage. - // When "cloning" a tab (e.g. via middle-click), the `active` flag will be set and we'll create - // a new empty user session, otherwise it'll be false and we can re-use the user session. - // When the tab is reloaded, the `active` flag is set to `false`. - 'active': true + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; }); - // Set JID on the connection object so that when we call `connection.bind` - // the new resource is found by Strophe.js and sent to the XMPP server. - _converse.connection.jid = jid; -} - -/** - * Stores the passed in JID for the current user, potentially creating a - * resource if the JID is bare. - * - * Given that we can only create an XMPP connection if we know the domain of - * the server connect to and we only know this once we know the JID, we also - * call {@link initConnection } (if necessary) to make sure that the - * connection is set up. - * - * @emits _converse#setUserJID - * @params { String } jid - */ -function setUserJID(_x3) { - return _setUserJID.apply(this, arguments); -} -function _setUserJID() { - _setUserJID = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee4(jid) { - return init_regeneratorRuntime().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - _context4.next = 2; - return initSession(shared_converse, jid); - case 2: - /** - * Triggered whenever the user's JID has been updated - * @event _converse#setUserJID - */ - shared_converse.api.trigger('setUserJID'); - return _context4.abrupt("return", jid); - case 4: - case "end": - return _context4.stop(); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == chat_api_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); } - }, _callee4); - })); - return _setUserJID.apply(this, arguments); -} -function initSession(_x4, _x5) { - return _initSession.apply(this, arguments); -} -function _initSession() { - _initSession = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee5(_converse, jid) { - var _converse$session; - var is_shared_session, bare_jid, id; - return init_regeneratorRuntime().wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - is_shared_session = _converse.api.settings.get('connection_options').worker; - bare_jid = Strophe.getBareJidFromJid(jid).toLowerCase(); - id = "converse.session-".concat(bare_jid); - if (!(((_converse$session = _converse.session) === null || _converse$session === void 0 ? void 0 : _converse$session.get('id')) !== id)) { - _context5.next = 15; - break; - } - initPersistentStorage(_converse, bare_jid); - _converse.session = new Model({ - id: id - }); - initStorage(_converse.session, id, is_shared_session ? "persistent" : "session"); - _context5.next = 9; - return new Promise(function (r) { - return _converse.session.fetch({ - 'success': r, - 'error': r - }); - }); - case 9: - if (!is_shared_session && _converse.session.get('active')) { - // If the `active` flag is set, it means this tab was cloned from - // another (e.g. via middle-click), and its session data was copied over. - _converse.session.clear(); - _converse.session.save({ - id: id - }); - } - saveJIDtoSession(_converse, jid); - - // Set `active` flag to false when the tab gets reloaded - window.addEventListener(_converse.unloadevent, function () { - var _converse$session2; - return (_converse$session2 = _converse.session) === null || _converse$session2 === void 0 ? void 0 : _converse$session2.save('active', false); + reject(record.arg); + } + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); }); - - /** - * Triggered once the user's session has been initialized. The session is a - * cache which stores information about the user's current session. - * @event _converse#userSessionInitialized - * @memberOf _converse - */ - _converse.api.trigger('userSessionInitialized'); - _context5.next = 16; - break; - case 15: - saveJIDtoSession(_converse, jid); - case 16: - case "end": - return _context5.stop(); + } + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } - }, _callee5); - })); - return _initSession.apply(this, arguments); -} -function registerGlobalEventHandlers(_converse) { - document.addEventListener("visibilitychange", saveWindowState); - saveWindowState({ - 'type': document.hidden ? "blur" : "focus" - }); // Set initial state - /** - * Called once Converse has registered its global event handlers - * (for events such as window resize or unload). - * Plugins can listen to this event as cue to register their own - * global event handlers. - * @event _converse#registeredGlobalEventHandlers - * @example _converse.api.listen.on('registeredGlobalEventHandlers', () => { ... }); - */ - _converse.api.trigger('registeredGlobalEventHandlers'); -} -function unregisterGlobalEventHandlers(_converse) { - var api = _converse.api; - document.removeEventListener("visibilitychange", saveWindowState); - api.trigger('unregisteredGlobalEventHandlers'); -} - -// Make sure everything is reset in case this is a subsequent call to -// converse.initialize (happens during tests). -function cleanup(_x6) { - return _cleanup.apply(this, arguments); -} -function _cleanup() { - _cleanup = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee6(_converse) { - var _converse$connection; - var api; - return init_regeneratorRuntime().wrap(function _callee6$(_context6) { - while (1) switch (_context6.prev = _context6.next) { - case 0: - api = _converse.api; - _context6.next = 3; - return api.trigger('cleanup', { - 'synchronous': true - }); - case 3: - _converse.router.history.stop(); - unregisterGlobalEventHandlers(_converse); - (_converse$connection = _converse.connection) === null || _converse$connection === void 0 ? void 0 : _converse$connection.reset(); - _converse.stopListening(); - _converse.off(); - if (_converse.promises['initialized'].isResolved) { - api.promises.add('initialized'); - } - case 9: - case "end": - return _context6.stop(); + }); + } + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); } - }, _callee6); - })); - return _cleanup.apply(this, arguments); -} -function fetchLoginCredentials() { - var _this = this; - var wait = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - return new Promise(lodash_es_debounce( /*#__PURE__*/function () { - var _ref = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee(resolve, reject) { - var xhr; - return init_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - xhr = new XMLHttpRequest(); - xhr.open('GET', shared_converse.api.settings.get("credentials_url"), true); - xhr.setRequestHeader('Accept', 'application/json, text/javascript'); - xhr.onload = function () { - if (xhr.status >= 200 && xhr.status < 400) { - var data = JSON.parse(xhr.responseText); - setUserJID(data.jid).then(function () { - resolve({ - jid: data.jid, - password: data.password - }); - }); - } else { - reject(new Error("".concat(xhr.status, ": ").concat(xhr.responseText))); - } - }; - xhr.onerror = reject; - /** - * *Hook* which allows modifying the server request - * @event _converse#beforeFetchLoginCredentials - */ - _context.next = 7; - return shared_converse.api.hook('beforeFetchLoginCredentials', _this, xhr); - case 7: - xhr = _context.sent; - xhr.send(); - case 9: - case "end": - return _context.stop(); + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } } - }, _callee); - })); - return function (_x7, _x8) { - return _ref.apply(this, arguments); + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } }; - }(), wait)); -} -function getLoginCredentialsFromURL() { - return _getLoginCredentialsFromURL.apply(this, arguments); -} -function _getLoginCredentialsFromURL() { - _getLoginCredentialsFromURL = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee7() { - var credentials, wait; - return init_regeneratorRuntime().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { - case 0: - wait = 0; - case 1: - if (credentials) { - _context7.next = 15; - break; + } + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); + } + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; + }; + return next.next = next; + } + } + return { + next: doneResult + }; + } + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } - _context7.prev = 2; - _context7.next = 5; - return fetchLoginCredentials(wait); - case 5: - credentials = _context7.sent; - _context7.next = 12; - break; - case 8: - _context7.prev = 8; - _context7.t0 = _context7["catch"](2); - log.error('Could not fetch login credentials'); - log.error(_context7.t0); - case 12: - // If unsuccessful, we wait 2 seconds between subsequent attempts to - // fetch the credentials. - wait = 2000; - _context7.next = 1; + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; break; - case 15: - return _context7.abrupt("return", credentials); - case 16: - case "end": - return _context7.stop(); + } } - }, _callee7, null, [[2, 8]]); - })); - return _getLoginCredentialsFromURL.apply(this, arguments); -} -function getLoginCredentialsFromBrowser() { - return _getLoginCredentialsFromBrowser.apply(this, arguments); -} -function _getLoginCredentialsFromBrowser() { - _getLoginCredentialsFromBrowser = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee8() { - var jid, creds; - return init_regeneratorRuntime().wrap(function _callee8$(_context8) { - while (1) switch (_context8.prev = _context8.next) { - case 0: - jid = localStorage.getItem('conversejs-session-jid'); - if (jid) { - _context8.next = 3; - break; + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); } - return _context8.abrupt("return", null); - case 3: - _context8.prev = 3; - _context8.next = 6; - return navigator.credentials.get({ - password: true - }); - case 6: - creds = _context8.sent; - if (!(creds && creds.type == 'password' && isValidJID(creds.id))) { - _context8.next = 11; - break; - } - _context8.next = 10; - return setUserJID(creds.id); - case 10: - return _context8.abrupt("return", { - 'jid': creds.id, - 'password': creds.password - }); - case 11: - _context8.next = 17; - break; - case 13: - _context8.prev = 13; - _context8.t0 = _context8["catch"](3); - log.error(_context8.t0); - return _context8.abrupt("return", null); - case 17: - case "end": - return _context8.stop(); + return thrown; + } } - }, _callee8, null, [[3, 13]]); - })); - return _getLoginCredentialsFromBrowser.apply(this, arguments); + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; } -function getLoginCredentialsFromSCRAMKeys() { - return _getLoginCredentialsFromSCRAMKeys.apply(this, arguments); +function chat_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } } -function _getLoginCredentialsFromSCRAMKeys() { - _getLoginCredentialsFromSCRAMKeys = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee9() { - var jid, login_info, scram_keys; - return init_regeneratorRuntime().wrap(function _callee9$(_context9) { - while (1) switch (_context9.prev = _context9.next) { - case 0: - jid = localStorage.getItem('conversejs-session-jid'); - if (jid) { - _context9.next = 3; - break; - } - return _context9.abrupt("return", null); - case 3: - _context9.next = 5; - return setUserJID(jid); - case 5: - _context9.next = 7; - return savedLoginInfo(jid); - case 7: - login_info = _context9.sent; - scram_keys = login_info.get('scram_keys'); - return _context9.abrupt("return", scram_keys ? { - jid: jid, - 'password': scram_keys - } : null); - case 10: - case "end": - return _context9.stop(); +function chat_api_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + chat_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } - }, _callee9); - })); - return _getLoginCredentialsFromSCRAMKeys.apply(this, arguments); -} -function attemptNonPreboundSession(_x9, _x10) { - return _attemptNonPreboundSession.apply(this, arguments); + function _throw(err) { + chat_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); + }; } -/** - * Fetch the stored SCRAM keys for the given JID, if available. - * - * The user's plaintext password is not stored, nor any material from which - * the user's plaintext password could be recovered. - * - * @param { String } jid - The XMPP address for which to fetch the SCRAM keys - * @returns { Promise } A promise which resolves once we've fetched the previously - * used login keys. - */ -function _attemptNonPreboundSession() { - _attemptNonPreboundSession = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee10(credentials, automatic) { - var api, _credentials, _credentials2; - return init_regeneratorRuntime().wrap(function _callee10$(_context10) { - while (1) switch (_context10.prev = _context10.next) { - case 0: - api = shared_converse.api; - if (!(api.settings.get("authentication") === LOGIN)) { - _context10.next = 31; - break; - } - if (!credentials) { - _context10.next = 6; - break; - } - return _context10.abrupt("return", connect(credentials)); - case 6: - if (!api.settings.get("credentials_url")) { - _context10.next = 14; - break; - } - _context10.t0 = connect; - _context10.next = 10; - return getLoginCredentialsFromURL(); - case 10: - _context10.t1 = _context10.sent; - return _context10.abrupt("return", (0, _context10.t0)(_context10.t1)); - case 14: - if (!(shared_converse.jid && (api.settings.get("password") || shared_converse.connection.pass))) { - _context10.next = 16; - break; - } - return _context10.abrupt("return", connect()); - case 16: - if (!api.settings.get('reuse_scram_keys')) { - _context10.next = 22; - break; - } - _context10.next = 19; - return getLoginCredentialsFromSCRAMKeys(); - case 19: - _credentials = _context10.sent; - if (!_credentials) { - _context10.next = 22; - break; - } - return _context10.abrupt("return", connect(_credentials)); - case 22: - if (!(!shared_converse.isTestEnv() && 'credentials' in navigator)) { - _context10.next = 28; - break; + +/* harmony default export */ const chat_api = ({ + /** + * The "chats" namespace (used for one-on-one chats) + * + * @namespace api.chats + * @memberOf api + */ + chats: { + /** + * @method api.chats.create + * @param {string|string[]} jid|jids An jid or array of jids + * @param { object } [attrs] An object containing configuration attributes. + */ + create: function create(jids, attrs) { + return chat_api_asyncToGenerator( /*#__PURE__*/chat_api_regeneratorRuntime().mark(function _callee2() { + var _contact$attributes, contact, chatbox; + return chat_api_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + if (!(typeof jids === 'string')) { + _context2.next = 11; + break; + } + if (!(attrs && !(attrs !== null && attrs !== void 0 && attrs.fullname))) { + _context2.next = 6; + break; + } + _context2.next = 4; + return shared_api.contacts.get(jids); + case 4: + contact = _context2.sent; + attrs.fullname = contact === null || contact === void 0 ? void 0 : (_contact$attributes = contact.attributes) === null || _contact$attributes === void 0 ? void 0 : _contact$attributes.fullname; + case 6: + chatbox = shared_api.chats.get(jids, attrs, true); + if (chatbox) { + _context2.next = 10; + break; + } + log.error("Could not open chatbox for JID: " + jids); + return _context2.abrupt("return"); + case 10: + return _context2.abrupt("return", chatbox); + case 11: + if (!Array.isArray(jids)) { + _context2.next = 13; + break; + } + return _context2.abrupt("return", Promise.all(jids.forEach( /*#__PURE__*/function () { + var _ref = chat_api_asyncToGenerator( /*#__PURE__*/chat_api_regeneratorRuntime().mark(function _callee(jid) { + var _contact$attributes2; + var contact; + return chat_api_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return shared_api.contacts.get(jids); + case 2: + contact = _context.sent; + attrs.fullname = contact === null || contact === void 0 ? void 0 : (_contact$attributes2 = contact.attributes) === null || _contact$attributes2 === void 0 ? void 0 : _contact$attributes2.fullname; + return _context.abrupt("return", shared_api.chats.get(jid, attrs, true).maybeShow()); + case 5: + case "end": + return _context.stop(); + } + }, _callee); + })); + return function (_x) { + return _ref.apply(this, arguments); + }; + }()))); + case 13: + log.error("chats.create: You need to provide at least one JID"); + return _context2.abrupt("return", null); + case 15: + case "end": + return _context2.stop(); } - _context10.next = 25; - return getLoginCredentialsFromBrowser(); - case 25: - _credentials2 = _context10.sent; - if (!_credentials2) { - _context10.next = 28; - break; + }, _callee2); + }))(); + }, + /** + * Opens a new one-on-one chat. + * + * @method api.chats.open + * @param {String|string[]} name - e.g. 'buddy@example.com' or ['buddy1@example.com', 'buddy2@example.com'] + * @param { Object } [attrs] - Attributes to be set on the _converse.ChatBox model. + * @param { Boolean } [attrs.minimized] - Should the chat be created in minimized state. + * @param { Boolean } [force=false] - By default, a minimized + * chat won't be maximized (in `overlayed` view mode) and in + * `fullscreen` view mode a newly opened chat won't replace + * another chat already in the foreground. + * Set `force` to `true` if you want to force the chat to be + * maximized or shown. + * @returns {Promise} Promise which resolves with the + * _converse.ChatBox representing the chat. + * + * @example + * // To open a single chat, provide the JID of the contact you're chatting with in that chat: + * converse.plugins.add('myplugin', { + * initialize: function() { + * const _converse = this._converse; + * // Note, buddy@example.org must be in your contacts roster! + * api.chats.open('buddy@example.com').then(chat => { + * // Now you can do something with the chat model + * }); + * } + * }); + * + * @example + * // To open an array of chats, provide an array of JIDs: + * converse.plugins.add('myplugin', { + * initialize: function () { + * const _converse = this._converse; + * // Note, these users must first be in your contacts roster! + * api.chats.open(['buddy1@example.com', 'buddy2@example.com']).then(chats => { + * // Now you can do something with the chat models + * }); + * } + * }); + */ + open: function open(jids, attrs, force) { + return chat_api_asyncToGenerator( /*#__PURE__*/chat_api_regeneratorRuntime().mark(function _callee3() { + var chat, err_msg; + return chat_api_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + if (!(typeof jids === 'string')) { + _context3.next = 9; + break; + } + _context3.next = 3; + return shared_api.chats.get(jids, attrs, true); + case 3: + chat = _context3.sent; + if (!chat) { + _context3.next = 6; + break; + } + return _context3.abrupt("return", chat.maybeShow(force)); + case 6: + return _context3.abrupt("return", chat); + case 9: + if (!Array.isArray(jids)) { + _context3.next = 11; + break; + } + return _context3.abrupt("return", Promise.all(jids.map(function (j) { + return shared_api.chats.get(j, attrs, true).then(function (c) { + return c && c.maybeShow(force); + }); + }).filter(function (c) { + return c; + }))); + case 11: + err_msg = "chats.open: You need to provide at least one JID"; + log.error(err_msg); + throw new Error(err_msg); + case 14: + case "end": + return _context3.stop(); } - return _context10.abrupt("return", connect(_credentials2)); - case 28: - if (!shared_converse.isTestEnv()) log.warn("attemptNonPreboundSession: Couldn't find credentials to log in with"); - _context10.next = 32; - break; - case 31: - if ([ANONYMOUS, EXTERNAL].includes(api.settings.get("authentication")) && (!automatic || api.settings.get("auto_login"))) { - connect(); + }, _callee3); + }))(); + }, + /** + * Retrieves a chat or all chats. + * + * @method api.chats.get + * @param {String|string[]} jids - e.g. 'buddy@example.com' or ['buddy1@example.com', 'buddy2@example.com'] + * @param { Object } [attrs] - Attributes to be set on the _converse.ChatBox model. + * @param { Boolean } [create=false] - Whether the chat should be created if it's not found. + * @returns { Promise<_converse.ChatBox> } + * + * @example + * // To return a single chat, provide the JID of the contact you're chatting with in that chat: + * const model = await api.chats.get('buddy@example.com'); + * + * @example + * // To return an array of chats, provide an array of JIDs: + * const models = await api.chats.get(['buddy1@example.com', 'buddy2@example.com']); + * + * @example + * // To return all open chats, call the method without any parameters:: + * const models = await api.chats.get(); + * + */ + get: function get(jids) { + var _arguments = arguments; + return chat_api_asyncToGenerator( /*#__PURE__*/chat_api_regeneratorRuntime().mark(function _callee5() { + var attrs, create, _get, _get2, chats; + return chat_api_regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + _get2 = function _get4() { + _get2 = chat_api_asyncToGenerator( /*#__PURE__*/chat_api_regeneratorRuntime().mark(function _callee4(jid) { + var model; + return chat_api_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return shared_api.chatboxes.get(jid); + case 2: + model = _context4.sent; + if (!(!model && create)) { + _context4.next = 9; + break; + } + _context4.next = 6; + return shared_api.chatboxes.create(jid, attrs, shared_converse.ChatBox); + case 6: + model = _context4.sent; + _context4.next = 11; + break; + case 9: + model = model && model.get('type') === shared_converse.PRIVATE_CHAT_TYPE ? model : null; + if (model && Object.keys(attrs).length) { + model.save(attrs); + } + case 11: + return _context4.abrupt("return", model); + case 12: + case "end": + return _context4.stop(); + } + }, _callee4); + })); + return _get2.apply(this, arguments); + }; + _get = function _get3(_x2) { + return _get2.apply(this, arguments); + }; + attrs = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : {}; + create = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : false; + _context5.next = 6; + return shared_api.waitUntil('chatBoxesFetched'); + case 6: + if (!(jids === undefined)) { + _context5.next = 13; + break; + } + _context5.next = 9; + return shared_api.chatboxes.get(); + case 9: + chats = _context5.sent; + return _context5.abrupt("return", chats.filter(function (c) { + return c.get('type') === shared_converse.PRIVATE_CHAT_TYPE; + })); + case 13: + if (!(typeof jids === 'string')) { + _context5.next = 15; + break; + } + return _context5.abrupt("return", _get(jids)); + case 15: + return _context5.abrupt("return", Promise.all(jids.map(function (jid) { + return _get(jid); + }))); + case 16: + case "end": + return _context5.stop(); } - case 32: - case "end": - return _context10.stop(); - } - }, _callee10); - })); - return _attemptNonPreboundSession.apply(this, arguments); -} -function savedLoginInfo(_x11) { - return _savedLoginInfo.apply(this, arguments); -} + }, _callee5); + }))(); + } + } +}); +;// CONCATENATED MODULE: ./src/headless/plugins/chat/utils.js +function plugins_chat_utils_typeof(obj) { + "@babel/helpers - typeof"; -/** - * @param { Object } [credentials] - * @param { string } credentials.password - * @param { Object } credentials.password - * @param { string } credentials.password.ck - * @returns { Promise } - */ -function _savedLoginInfo() { - _savedLoginInfo = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee11(jid) { - var id, login_info; - return init_regeneratorRuntime().wrap(function _callee11$(_context11) { - while (1) switch (_context11.prev = _context11.next) { - case 0: - id = "converse.scram-keys-".concat(Strophe.getBareJidFromJid(jid)); - login_info = new Model({ - id: id - }); - initStorage(login_info, id, 'persistent'); - _context11.next = 5; - return new Promise(function (f) { - return login_info.fetch({ - 'success': f, - 'error': f - }); - }); - case 5: - return _context11.abrupt("return", login_info); - case 6: - case "end": - return _context11.stop(); - } - }, _callee11); - })); - return _savedLoginInfo.apply(this, arguments); -} -function connect(_x12) { - return _connect.apply(this, arguments); + return plugins_chat_utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, plugins_chat_utils_typeof(obj); } -function _connect() { - _connect = init_asyncToGenerator( /*#__PURE__*/init_regeneratorRuntime().mark(function _callee12(credentials) { - var api, _credentials$password, _converse$connection2, password, callback, login_info; - return init_regeneratorRuntime().wrap(function _callee12$(_context12) { - while (1) switch (_context12.prev = _context12.next) { - case 0: - api = shared_converse.api; - if (![ANONYMOUS, EXTERNAL].includes(api.settings.get("authentication"))) { - _context12.next = 8; - break; - } - if (shared_converse.jid) { - _context12.next = 4; - break; - } - throw new Error("Config Error: when using anonymous login " + "you need to provide the server's domain via the 'jid' option. " + "Either when calling converse.initialize, or when calling " + "_converse.api.user.login."); - case 4: - if (!shared_converse.connection.reconnecting) { - shared_converse.connection.reset(); - } - shared_converse.connection.connect(shared_converse.jid.toLowerCase()); - _context12.next = 23; - break; - case 8: - if (!(api.settings.get("authentication") === LOGIN)) { - _context12.next = 23; - break; - } - password = (_credentials$password = credentials === null || credentials === void 0 ? void 0 : credentials.password) !== null && _credentials$password !== void 0 ? _credentials$password : ((_converse$connection2 = shared_converse.connection) === null || _converse$connection2 === void 0 ? void 0 : _converse$connection2.pass) || api.settings.get("password"); - if (password) { - _context12.next = 16; - break; - } - if (!api.settings.get("auto_login")) { - _context12.next = 13; - break; - } - throw new Error("autoLogin: If you use auto_login and " + "authentication='login' then you also need to provide a password."); - case 13: - shared_converse.connection.setDisconnectionCause(Strophe.Status.AUTHFAIL, undefined, true); - api.connection.disconnect(); - return _context12.abrupt("return"); - case 16: - if (!shared_converse.connection.reconnecting) { - shared_converse.connection.reset(); - shared_converse.connection.service = getConnectionServiceURL(); - } - if (!(shared_converse.config.get('trusted') && shared_converse.jid && api.settings.get("reuse_scram_keys") && !(password !== null && password !== void 0 && password.ck))) { - _context12.next = 22; - break; - } - _context12.next = 20; - return savedLoginInfo(shared_converse.jid); - case 20: - login_info = _context12.sent; - callback = function callback(status) { - var scram_keys = shared_converse.connection.scram_keys; - if (scram_keys) login_info.save({ - scram_keys: scram_keys - }); - shared_converse.connection.onConnectStatusChanged(status); - }; - case 22: - shared_converse.connection.connect(shared_converse.jid, password, callback); - case 23: - case "end": - return _context12.stop(); - } - }, _callee12); - })); - return _connect.apply(this, arguments); -} -;// CONCATENATED MODULE: ./src/headless/shared/api/user.js -function user_typeof(obj) { - "@babel/helpers - typeof"; - - return user_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, user_typeof(obj); -} -function user_regeneratorRuntime() { +function plugins_chat_utils_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - user_regeneratorRuntime = function _regeneratorRuntime() { + plugins_chat_utils_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -34330,7 +33256,7 @@ function user_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == user_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == plugins_chat_utils_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -34555,7 +33481,7 @@ function user_regeneratorRuntime() { } }, exports; } -function user_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function plugins_chat_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -34569,1302 +33495,1018 @@ function user_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) Promise.resolve(value).then(_next, _throw); } } -function user_asyncToGenerator(fn) { +function plugins_chat_utils_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - user_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + plugins_chat_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - user_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + plugins_chat_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -function user_ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - enumerableOnly && (symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - })), keys.push.apply(keys, symbols); - } - return keys; -} -function user_objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = null != arguments[i] ? arguments[i] : {}; - i % 2 ? user_ownKeys(Object(source), !0).forEach(function (key) { - user_defineProperty(target, key, source[key]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : user_ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - return target; -} -function user_defineProperty(obj, key, value) { - key = user_toPropertyKey(key); - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; -} -function user_toPropertyKey(arg) { - var key = user_toPrimitive(arg, "string"); - return user_typeof(key) === "symbol" ? key : String(key); -} -function user_toPrimitive(input, hint) { - if (user_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (user_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); -} - - - -/* harmony default export */ const user = ({ - /** - * This grouping collects API functions related to the current logged in user. - * - * @namespace _converse.api.user - * @memberOf _converse.api - */ - user: user_objectSpread(user_objectSpread({ - settings: user_settings_api - }, presence), {}, { - /** - * @method _converse.api.user.jid - * @returns {string} The current user's full JID (Jabber ID) - * @example _converse.api.user.jid()) - */ - jid: function jid() { - return shared_converse.connection.jid; - }, - /** - * Logs the user in. - * - * If called without any parameters, Converse will try - * to log the user in by calling the `prebind_url` or `credentials_url` depending - * on whether prebinding is used or not. - * - * @method _converse.api.user.login - * @param { string } [jid] - * @param { string } [password] - * @param { boolean } [automatic=false] - An internally used flag that indicates whether - * this method was called automatically once the connection has been - * initialized. It's used together with the `auto_login` configuration flag - * to determine whether Converse should try to log the user in if it - * fails to restore a previous auth'd session. - * @returns { Promise } - */ - login: function login(jid, password) { - var _arguments = arguments; - return user_asyncToGenerator( /*#__PURE__*/user_regeneratorRuntime().mark(function _callee() { - var _converse$connection, _api$settings$get; - var automatic, api, bosh_plugin, credentials; - return user_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - automatic = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : false; - api = shared_converse.api; - jid = jid || api.settings.get('jid'); - if (!((_converse$connection = shared_converse.connection) !== null && _converse$connection !== void 0 && _converse$connection.jid) || jid && !utils_core.isSameDomain(shared_converse.connection.jid, jid)) { - initConnection(); - } - _context.t0 = (_api$settings$get = api.settings.get("connection_options")) !== null && _api$settings$get !== void 0 && _api$settings$get.worker; - if (!_context.t0) { - _context.next = 9; - break; - } - _context.next = 8; - return shared_converse.connection.restoreWorkerSession(); - case 8: - _context.t0 = _context.sent; - case 9: - if (!_context.t0) { - _context.next = 11; - break; - } - return _context.abrupt("return"); - case 11: - if (!jid) { - _context.next = 15; - break; - } - _context.next = 14; - return setUserJID(jid); - case 14: - jid = _context.sent; - case 15: - // See whether there is a BOSH session to re-attach to - bosh_plugin = shared_converse.pluggable.plugins['converse-bosh']; - if (!(bosh_plugin !== null && bosh_plugin !== void 0 && bosh_plugin.enabled())) { - _context.next = 25; - break; - } - _context.next = 19; - return shared_converse.restoreBOSHSession(); - case 19: - if (!_context.sent) { - _context.next = 23; - break; - } - return _context.abrupt("return"); - case 23: - if (!(api.settings.get("authentication") === PREBIND && (!automatic || api.settings.get("auto_login")))) { - _context.next = 25; - break; - } - return _context.abrupt("return", shared_converse.startNewPreboundBOSHSession()); - case 25: - password = password || api.settings.get("password"); - credentials = jid && password ? { - jid: jid, - password: password - } : null; - attemptNonPreboundSession(credentials, automatic); - case 28: - case "end": - return _context.stop(); - } - }, _callee); - }))(); - }, - /** - * Logs the user out of the current XMPP session. - * @method _converse.api.user.logout - * @example _converse.api.user.logout(); - */ - logout: function logout() { - return user_asyncToGenerator( /*#__PURE__*/user_regeneratorRuntime().mark(function _callee2() { - var api, promise, complete; - return user_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - api = shared_converse.api; - /** - * Triggered before the user is logged out - * @event _converse#beforeLogout - */ - _context2.next = 3; - return api.trigger('beforeLogout', { - 'synchronous': true - }); - case 3: - promise = getOpenPromise(); - complete = function complete() { - // Recreate all the promises - Object.keys(shared_converse.promises).forEach(replacePromise); - delete shared_converse.jid; - - // Remove the session JID, otherwise the user would just be logged - // in again upon reload. See #2759 - localStorage.removeItem('conversejs-session-jid'); - - /** - * Triggered once the user has logged out. - * @event _converse#logout - */ - api.trigger('logout'); - promise.resolve(); - }; - shared_converse.connection.setDisconnectionCause(LOGOUT, undefined, true); - if (shared_converse.connection !== undefined) { - api.listen.once('disconnected', function () { - return complete(); - }); - shared_converse.connection.disconnect(); - } else { - complete(); - } - return _context2.abrupt("return", promise); - case 8: - case "end": - return _context2.stop(); - } - }, _callee2); - }))(); - } - }) -}); -;// CONCATENATED MODULE: ./src/headless/shared/api/index.js -function shared_api_typeof(obj) { - "@babel/helpers - typeof"; - return shared_api_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, shared_api_typeof(obj); -} -function api_ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - enumerableOnly && (symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - })), keys.push.apply(keys, symbols); +var utils_converse$env = public_converse.env, + utils_Strophe = utils_converse$env.Strophe, + chat_utils_u = utils_converse$env.u; +function openChat(jid) { + if (!chat_utils_u.isValidJID(jid)) { + return log.warn("Invalid JID \"".concat(jid, "\" provided in URL fragment")); } - return keys; + shared_api.chats.open(jid); } -function api_objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = null != arguments[i] ? arguments[i] : {}; - i % 2 ? api_ownKeys(Object(source), !0).forEach(function (key) { - api_defineProperty(target, key, source[key]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : api_ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - return target; +function onClearSession() { + return _onClearSession.apply(this, arguments); } -function api_defineProperty(obj, key, value) { - key = api_toPropertyKey(key); - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; +function _onClearSession() { + _onClearSession = plugins_chat_utils_asyncToGenerator( /*#__PURE__*/plugins_chat_utils_regeneratorRuntime().mark(function _callee() { + var filter; + return plugins_chat_utils_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + if (!shouldClearCache()) { + _context.next = 5; + break; + } + _context.next = 3; + return Promise.all(shared_converse.chatboxes.map(function (c) { + return c.messages && c.messages.clearStore({ + 'silent': true + }); + })); + case 3: + filter = function filter(o) { + return o.get('type') !== shared_converse.CONTROLBOX_TYPE; + }; + shared_converse.chatboxes.clearStore({ + 'silent': true + }, filter); + case 5: + case "end": + return _context.stop(); + } + }, _callee); + })); + return _onClearSession.apply(this, arguments); } -function api_toPropertyKey(arg) { - var key = api_toPrimitive(arg, "string"); - return shared_api_typeof(key) === "symbol" ? key : String(key); +function handleErrorMessage(_x) { + return _handleErrorMessage.apply(this, arguments); } -function api_toPrimitive(input, hint) { - if (shared_api_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (shared_api_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); +function _handleErrorMessage() { + _handleErrorMessage = plugins_chat_utils_asyncToGenerator( /*#__PURE__*/plugins_chat_utils_regeneratorRuntime().mark(function _callee2(stanza) { + var from_jid, chatbox; + return plugins_chat_utils_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + from_jid = utils_Strophe.getBareJidFromJid(stanza.getAttribute('from')); + if (!chat_utils_u.isSameBareJID(from_jid, shared_converse.bare_jid)) { + _context2.next = 3; + break; + } + return _context2.abrupt("return"); + case 3: + _context2.next = 5; + return shared_api.chatboxes.get(from_jid); + case 5: + chatbox = _context2.sent; + if ((chatbox === null || chatbox === void 0 ? void 0 : chatbox.get('type')) === shared_converse.PRIVATE_CHAT_TYPE) { + chatbox === null || chatbox === void 0 ? void 0 : chatbox.handleErrorMessageStanza(stanza); + } + case 7: + case "end": + return _context2.stop(); + } + }, _callee2); + })); + return _handleErrorMessage.apply(this, arguments); +} +function autoJoinChats() { + // Automatically join private chats, based on the + // "auto_join_private_chats" configuration setting. + shared_api.settings.get('auto_join_private_chats').forEach(function (jid) { + if (shared_converse.chatboxes.where({ + 'jid': jid + }).length) { + return; + } + if (typeof jid === 'string') { + shared_api.chats.open(jid); + } else { + log.error('Invalid jid criteria specified for "auto_join_private_chats"'); + } + }); + /** + * Triggered once any private chats have been automatically joined as + * specified by the `auto_join_private_chats` setting. + * See: https://conversejs.org/docs/html/configuration.html#auto-join-private-chats + * @event _converse#privateChatsAutoJoined + * @example _converse.api.listen.on('privateChatsAutoJoined', () => { ... }); + * @example _converse.api.waitUntil('privateChatsAutoJoined').then(() => { ... }); + */ + shared_api.trigger('privateChatsAutoJoined'); +} +function registerMessageHandlers() { + shared_converse.connection.addHandler(function (stanza) { + if (['groupchat', 'error'].includes(stanza.getAttribute('type')) || isHeadline(stanza) || isServerMessage(stanza) || isArchived(stanza)) { + return true; + } + return shared_converse.handleMessageStanza(stanza) || true; + }, null, 'message'); + shared_converse.connection.addHandler(function (stanza) { + return handleErrorMessage(stanza) || true; + }, null, 'message', 'error'); } - - - - - - - /** - * ### The private API - * - * The private API methods are only accessible via the closured {@link _converse} - * object, which is only available to plugins. - * - * These methods are kept private (i.e. not global) because they may return - * sensitive data which should be kept off-limits to other 3rd-party scripts - * that might be running in the page. - * - * @namespace _converse.api - * @memberOf _converse + * Handler method for all incoming single-user chat "message" stanzas. + * @param { MessageAttributes } attrs - The message attributes */ -var api_api = shared_converse.api = api_objectSpread(api_objectSpread(api_objectSpread(api_objectSpread({ - connection: api, - settings: settings_api -}, send), user), events), promise); -/* harmony default export */ const shared_api = (api_api); -// EXTERNAL MODULE: ./node_modules/dayjs/dayjs.min.js -var dayjs_min = __webpack_require__(4735); -var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min); -;// CONCATENATED MODULE: ./src/headless/shared/connection/feedback.js - - +function handleMessageStanza(_x2) { + return _handleMessageStanza.apply(this, arguments); +} -/* harmony default export */ const feedback = (Model.extend({ - defaults: { - 'connection_status': Strophe.Status.DISCONNECTED, - 'message': '' - }, - initialize: function initialize() { - var api = shared_converse.api; - this.on('change', function () { - return api.trigger('connfeedback', shared_converse.connfeedback); - }); - } -})); -;// CONCATENATED MODULE: external "urijs" -const external_urijs_namespaceObject = urijs; -var external_urijs_default = /*#__PURE__*/__webpack_require__.n(external_urijs_namespaceObject); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_arrayAggregator.js /** - * A specialized version of `baseAggregator` for arrays. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. + * Ask the XMPP server to enable Message Carbons + * See [XEP-0280](https://xmpp.org/extensions/xep-0280.html#enabling) + * @param { Boolean } reconnecting */ -function arrayAggregator(array, setter, iteratee, accumulator) { - var index = -1, - length = array == null ? 0 : array.length; - while (++index < length) { - var value = array[index]; - setter(accumulator, value, iteratee(value), array); - } - return accumulator; +function _handleMessageStanza() { + _handleMessageStanza = plugins_chat_utils_asyncToGenerator( /*#__PURE__*/plugins_chat_utils_regeneratorRuntime().mark(function _callee3(stanza) { + var _stanza$tree, _stanza$tree2, _stanza; + var from, attrs, has_body, chatbox, data; + return plugins_chat_utils_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + stanza = (_stanza$tree = (_stanza$tree2 = (_stanza = stanza).tree) === null || _stanza$tree2 === void 0 ? void 0 : _stanza$tree2.call(_stanza)) !== null && _stanza$tree !== void 0 ? _stanza$tree : stanza; + if (!isServerMessage(stanza)) { + _context3.next = 4; + break; + } + // Prosody sends headline messages with type `chat`, so we need to filter them out here. + from = stanza.getAttribute('from'); + return _context3.abrupt("return", log.info("handleMessageStanza: Ignoring incoming server message from JID: ".concat(from))); + case 4: + _context3.prev = 4; + _context3.next = 7; + return parseMessage(stanza); + case 7: + attrs = _context3.sent; + _context3.next = 13; + break; + case 10: + _context3.prev = 10; + _context3.t0 = _context3["catch"](4); + return _context3.abrupt("return", log.error(_context3.t0)); + case 13: + if (!chat_utils_u.isErrorObject(attrs)) { + _context3.next = 16; + break; + } + attrs.stanza && log.error(attrs.stanza); + return _context3.abrupt("return", log.error(attrs.message)); + case 16: + // XXX: Need to take XEP-428 into consideration + has_body = !!(attrs.body || attrs.plaintext); + _context3.next = 19; + return shared_api.chats.get(attrs.contact_jid, { + 'nickname': attrs.nick + }, has_body); + case 19: + chatbox = _context3.sent; + _context3.next = 22; + return chatbox === null || chatbox === void 0 ? void 0 : chatbox.queueMessage(attrs); + case 22: + /** + * @typedef { Object } MessageData + * An object containing the original message stanza, as well as the + * parsed attributes. + * @property { Element } stanza + * @property { MessageAttributes } stanza + * @property { ChatBox } chatbox + */ + data = { + stanza: stanza, + attrs: attrs, + chatbox: chatbox + }; + /** + * Triggered when a message stanza is been received and processed. + * @event _converse#message + * @type { object } + * @property { module:converse-chat~MessageData } data + */ + shared_api.trigger('message', data); + case 24: + case "end": + return _context3.stop(); + } + }, _callee3, null, [[4, 10]]); + })); + return _handleMessageStanza.apply(this, arguments); } -/* harmony default export */ const _arrayAggregator = (arrayAggregator); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseAggregator.js - - +function enableCarbons() { + return _enableCarbons.apply(this, arguments); +} +function _enableCarbons() { + _enableCarbons = plugins_chat_utils_asyncToGenerator( /*#__PURE__*/plugins_chat_utils_regeneratorRuntime().mark(function _callee4() { + var domain, supported, iq, result; + return plugins_chat_utils_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + domain = utils_Strophe.getDomainFromJid(shared_converse.bare_jid); + _context4.next = 3; + return shared_api.disco.supports(utils_Strophe.NS.CARBONS, domain); + case 3: + supported = _context4.sent; + if (supported) { + _context4.next = 7; + break; + } + log.warn("Not enabling carbons because it's not supported!"); + return _context4.abrupt("return"); + case 7: + iq = new utils_Strophe.Builder('iq', { + 'from': shared_converse.connection.jid, + 'type': 'set' + }).c('enable', { + xmlns: utils_Strophe.NS.CARBONS + }); + _context4.next = 10; + return shared_api.sendIQ(iq, null, false); + case 10: + result = _context4.sent; + if (result === null) { + log.warn("A timeout occurred while trying to enable carbons"); + } else if (chat_utils_u.isErrorStanza(result)) { + log.warn('An error occurred while trying to enable message carbons.'); + log.error(result); + } else { + log.debug('Message carbons have been enabled.'); + } + case 12: + case "end": + return _context4.stop(); + } + }, _callee4); + })); + return _enableCarbons.apply(this, arguments); +} +;// CONCATENATED MODULE: ./src/headless/plugins/chat/index.js /** - * Aggregates elements of `collection` on `accumulator` with keys transformed - * by `iteratee` and values set by `setter`. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. + * @copyright 2022, the Converse.js contributors + * @license Mozilla Public License (MPLv2) */ -function baseAggregator(collection, setter, iteratee, accumulator) { - _baseEach(collection, function (value, key, collection) { - setter(accumulator, value, iteratee(value), collection); - }); - return accumulator; -} -/* harmony default export */ const _baseAggregator = (baseAggregator); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_createAggregator.js - -/** - * Creates a function like `_.groupBy`. - * - * @private - * @param {Function} setter The function to set accumulator values. - * @param {Function} [initializer] The accumulator object initializer. - * @returns {Function} Returns the new aggregator function. - */ -function createAggregator(setter, initializer) { - return function (collection, iteratee) { - var func = lodash_es_isArray(collection) ? _arrayAggregator : _baseAggregator, - accumulator = initializer ? initializer() : {}; - return func(collection, setter, _baseIteratee(iteratee, 2), accumulator); - }; -} -/* harmony default export */ const _createAggregator = (createAggregator); -;// CONCATENATED MODULE: ./node_modules/lodash-es/countBy.js - - -/** Used for built-in method references. */ -var countBy_objectProto = Object.prototype; -/** Used to check objects for own properties. */ -var countBy_hasOwnProperty = countBy_objectProto.hasOwnProperty; -/** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The corresponding value of - * each key is the number of times the key was returned by `iteratee`. The - * iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.countBy([6.1, 4.2, 6.3], Math.floor); - * // => { '4': 1, '6': 2 } - * - * // The `_.property` iteratee shorthand. - * _.countBy(['one', 'two', 'three'], 'length'); - * // => { '3': 2, '5': 1 } - */ -var countBy = _createAggregator(function (result, value, key) { - if (countBy_hasOwnProperty.call(result, key)) { - ++result[key]; - } else { - _baseAssignValue(result, key, 1); +public_converse.plugins.add('converse-chat', { + dependencies: ['converse-chatboxes', 'converse-disco'], + initialize: function initialize() { + // Configuration values for this plugin + // ==================================== + // Refer to docs/source/configuration.rst for explanations of these + // configuration settings. + shared_api.settings.extend({ + 'allow_message_corrections': 'all', + 'allow_message_retraction': 'all', + 'allow_message_styling': true, + 'auto_join_private_chats': [], + 'clear_messages_on_reconnection': false, + 'filter_by_resource': false, + 'prune_messages_above': undefined, + 'pruning_behavior': 'unscrolled', + 'send_chat_markers': ['received', 'displayed', 'acknowledged'], + 'send_chat_state_notifications': true + }); + shared_converse.Message = model_with_contact.extend(message); + shared_converse.Messages = Collection.extend({ + model: shared_converse.Message, + comparator: 'time' + }); + Object.assign(shared_converse, { + ChatBox: model, + handleMessageStanza: handleMessageStanza + }); + Object.assign(shared_api, chat_api); + shared_converse.router.route('converse/chat?jid=:jid', openChat); + shared_api.listen.on('chatBoxesFetched', autoJoinChats); + shared_api.listen.on('presencesInitialized', registerMessageHandlers); + shared_api.listen.on('clearSession', onClearSession); + shared_api.listen.on('connected', function () { + return enableCarbons(); + }); + shared_api.listen.on('reconnected', function () { + return enableCarbons(); + }); } }); -/* harmony default export */ const lodash_es_countBy = (countBy); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseFindIndex.js -/** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); - while (fromRight ? index-- : ++index < length) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; -} -/* harmony default export */ const _baseFindIndex = (baseFindIndex); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseIsNaN.js -/** - * The base implementation of `_.isNaN` without support for number objects. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - */ -function baseIsNaN(value) { - return value !== value; -} -/* harmony default export */ const _baseIsNaN = (baseIsNaN); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_strictIndexOf.js -/** - * A specialized version of `_.indexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, - length = array.length; - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; -} -/* harmony default export */ const _strictIndexOf = (strictIndexOf); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseIndexOf.js - - - +;// CONCATENATED MODULE: ./src/headless/plugins/disco/entity.js +function entity_typeof(obj) { + "@babel/helpers - typeof"; -/** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function baseIndexOf(array, value, fromIndex) { - return value === value ? _strictIndexOf(array, value, fromIndex) : _baseFindIndex(array, _baseIsNaN, fromIndex); + return entity_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, entity_typeof(obj); } -/* harmony default export */ const _baseIndexOf = (baseIndexOf); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_arrayIncludes.js - +function entity_regeneratorRuntime() { + "use strict"; -/** - * A specialized version of `_.includes` for arrays without support for - * specifying an index to search from. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ -function arrayIncludes(array, value) { - var length = array == null ? 0 : array.length; - return !!length && _baseIndexOf(array, value, 0) > -1; -} -/* harmony default export */ const _arrayIncludes = (arrayIncludes); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_arrayIncludesWith.js -/** - * This function is like `arrayIncludes` except that it accepts a comparator. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @param {Function} comparator The comparator invoked per element. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ -function arrayIncludesWith(array, value, comparator) { - var index = -1, - length = array == null ? 0 : array.length; - while (++index < length) { - if (comparator(value, array[index])) { - return true; - } + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + entity_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; } - return false; -} -/* harmony default export */ const _arrayIncludesWith = (arrayIncludesWith); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseDifference.js - - - - - - - -/** Used as the size to enable large array optimizations. */ -var _baseDifference_LARGE_ARRAY_SIZE = 200; - -/** - * The base implementation of methods like `_.difference` without support - * for excluding multiple arrays or iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Array} values The values to exclude. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - */ -function baseDifference(array, values, iteratee, comparator) { - var index = -1, - includes = _arrayIncludes, - isCommon = true, - length = array.length, - result = [], - valuesLength = values.length; - if (!length) { - return result; + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; } - if (iteratee) { - values = _arrayMap(values, _baseUnary(iteratee)); + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; } - if (comparator) { - includes = _arrayIncludesWith; - isCommon = false; - } else if (values.length >= _baseDifference_LARGE_ARRAY_SIZE) { - includes = _cacheHas; - isCommon = false; - values = new _SetCache(values); + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } } - outer: while (++index < length) { - var value = array[index], - computed = iteratee == null ? value : iteratee(value); - value = comparator || value !== 0 ? value : 0; - if (isCommon && computed === computed) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values[valuesIndex] === computed) { - continue outer; - } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == entity_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); } - result.push(value); - } else if (!includes(values, computed, comparator)) { - result.push(value); + reject(record.arg); } + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); } - return result; -} -/* harmony default export */ const _baseDifference = (baseDifference); -;// CONCATENATED MODULE: ./node_modules/lodash-es/difference.js - - - - - -/** - * Creates an array of `array` values not included in the other given arrays - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. The order and references of result values are - * determined by the first array. - * - * **Note:** Unlike `_.pullAll`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @see _.without, _.xor - * @example - * - * _.difference([2, 1], [2, 3]); - * // => [1] - */ -var difference = _baseRest(function (array, values) { - return lodash_es_isArrayLikeObject(array) ? _baseDifference(array, _baseFlatten(values, 1, lodash_es_isArrayLikeObject, true)) : []; -}); -/* harmony default export */ const lodash_es_difference = (difference); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_arrayEvery.js -/** - * A specialized version of `_.every` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - */ -function arrayEvery(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; - while (++index < length) { - if (!predicate(array[index], index, array)) { - return false; - } + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } + }; } - return true; -} -/* harmony default export */ const _arrayEvery = (arrayEvery); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseEvery.js - - -/** - * The base implementation of `_.every` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false` - */ -function baseEvery(collection, predicate) { - var result = true; - _baseEach(collection, function (value, index, collection) { - result = !!predicate(value, index, collection); - return result; - }); - return result; -} -/* harmony default export */ const _baseEvery = (baseEvery); -;// CONCATENATED MODULE: ./node_modules/lodash-es/every.js - - - - - - -/** - * Checks if `predicate` returns truthy for **all** elements of `collection`. - * Iteration is stopped once `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * **Note:** This method returns `true` for - * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because - * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of - * elements of empty collections. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - * @example - * - * _.every([true, 1, null, 'yes'], Boolean); - * // => false - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.every(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // The `_.matchesProperty` iteratee shorthand. - * _.every(users, ['active', false]); - * // => true - * - * // The `_.property` iteratee shorthand. - * _.every(users, 'active'); - * // => false - */ -function every(collection, predicate, guard) { - var func = lodash_es_isArray(collection) ? _arrayEvery : _baseEvery; - if (guard && _isIterateeCall(collection, predicate, guard)) { - predicate = undefined; + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } - return func(collection, _baseIteratee(predicate, 3)); -} -/* harmony default export */ const lodash_es_every = (every); -;// CONCATENATED MODULE: ./node_modules/lodash-es/findIndex.js - - - - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var findIndex_nativeMax = Math.max; - -/** - * This method is like `_.find` except that it returns the index of the first - * element `predicate` returns truthy for instead of the element itself. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.findIndex(users, function(o) { return o.user == 'barney'; }); - * // => 0 - * - * // The `_.matches` iteratee shorthand. - * _.findIndex(users, { 'user': 'fred', 'active': false }); - * // => 1 - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findIndex(users, ['active', false]); - * // => 0 - * - * // The `_.property` iteratee shorthand. - * _.findIndex(users, 'active'); - * // => 2 - */ -function findIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } - var index = fromIndex == null ? 0 : lodash_es_toInteger(fromIndex); - if (index < 0) { - index = findIndex_nativeMax(length + index, 0); + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; } - return _baseFindIndex(array, _baseIteratee(predicate, 3), index); + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; + }; + return next.next = next; + } + } + return { + next: doneResult + }; + } + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; } -/* harmony default export */ const lodash_es_findIndex = (findIndex); -;// CONCATENATED MODULE: ./node_modules/lodash-es/findLastIndex.js - - - - -/* Built-in method references for those with the same name as other `lodash` methods. */ -var findLastIndex_nativeMax = Math.max, - findLastIndex_nativeMin = Math.min; - -/** - * This method is like `_.findIndex` except that it iterates over elements - * of `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=array.length-1] The index to search from. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); - * // => 2 - * - * // The `_.matches` iteratee shorthand. - * _.findLastIndex(users, { 'user': 'barney', 'active': true }); - * // => 0 - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findLastIndex(users, ['active', false]); - * // => 2 - * - * // The `_.property` iteratee shorthand. - * _.findLastIndex(users, 'active'); - * // => 0 - */ -function findLastIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; +function entity_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; } - var index = length - 1; - if (fromIndex !== undefined) { - index = lodash_es_toInteger(fromIndex); - index = fromIndex < 0 ? findLastIndex_nativeMax(length + index, 0) : findLastIndex_nativeMin(index, length - 1); + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); } - return _baseFindIndex(array, _baseIteratee(predicate, 3), index, true); } -/* harmony default export */ const lodash_es_findLastIndex = (findLastIndex); -;// CONCATENATED MODULE: ./node_modules/lodash-es/groupBy.js - - +function entity_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + entity_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + entity_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); + }; +} -/** Used for built-in method references. */ -var groupBy_objectProto = Object.prototype; -/** Used to check objects for own properties. */ -var groupBy_hasOwnProperty = groupBy_objectProto.hasOwnProperty; -/** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The order of grouped values - * is determined by the order they occur in `collection`. The corresponding - * value of each key is an array of elements responsible for generating the - * key. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.groupBy([6.1, 4.2, 6.3], Math.floor); - * // => { '4': [4.2], '6': [6.1, 6.3] } - * - * // The `_.property` iteratee shorthand. - * _.groupBy(['one', 'two', 'three'], 'length'); - * // => { '3': ['one', 'two'], '5': ['three'] } - */ -var groupBy = _createAggregator(function (result, value, key) { - if (groupBy_hasOwnProperty.call(result, key)) { - result[key].push(value); - } else { - _baseAssignValue(result, key, [value]); - } -}); -/* harmony default export */ const lodash_es_groupBy = (groupBy); -;// CONCATENATED MODULE: ./node_modules/lodash-es/indexOf.js -/* Built-in method references for those with the same name as other `lodash` methods. */ -var indexOf_nativeMax = Math.max; +var entity_Strophe = public_converse.env.Strophe; /** - * Gets the index at which the first occurrence of `value` is found in `array` - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. If `fromIndex` is negative, it's used as the - * offset from the end of `array`. + * @class + * @namespace _converse.DiscoEntity + * @memberOf _converse * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example + * A Disco Entity is a JID addressable entity that can be queried for features. * - * _.indexOf([1, 2, 1, 2], 2); - * // => 1 - * - * // Search from the `fromIndex`. - * _.indexOf([1, 2, 1, 2], 2, 2); - * // => 3 + * See XEP-0030: https://xmpp.org/extensions/xep-0030.html */ -function indexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : lodash_es_toInteger(fromIndex); - if (index < 0) { - index = indexOf_nativeMax(length + index, 0); - } - return _baseIndexOf(array, value, index); -} -/* harmony default export */ const lodash_es_indexOf = (indexOf); -;// CONCATENATED MODULE: ./node_modules/lodash-es/keyBy.js - - +var DiscoEntity = Model.extend({ + idAttribute: 'jid', + initialize: function initialize(_, options) { + this.waitUntilFeaturesDiscovered = getOpenPromise(); + this.dataforms = new Collection(); + var id = "converse.dataforms-".concat(this.get('jid')); + this.dataforms.browserStorage = shared_converse.createStore(id, 'session'); + this.features = new Collection(); + id = "converse.features-".concat(this.get('jid')); + this.features.browserStorage = shared_converse.createStore(id, 'session'); + this.listenTo(this.features, 'add', this.onFeatureAdded); + this.fields = new Collection(); + id = "converse.fields-".concat(this.get('jid')); + this.fields.browserStorage = shared_converse.createStore(id, 'session'); + this.listenTo(this.fields, 'add', this.onFieldAdded); + this.identities = new Collection(); + id = "converse.identities-".concat(this.get('jid')); + this.identities.browserStorage = shared_converse.createStore(id, 'session'); + this.fetchFeatures(options); + }, + /** + * Returns a Promise which resolves with a map indicating + * whether a given identity is provided by this entity. + * @private + * @method _converse.DiscoEntity#getIdentity + * @param { String } category - The identity category + * @param { String } type - The identity type + */ + getIdentity: function getIdentity(category, type) { + var _this = this; + return entity_asyncToGenerator( /*#__PURE__*/entity_regeneratorRuntime().mark(function _callee() { + return entity_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return _this.waitUntilFeaturesDiscovered; + case 2: + return _context.abrupt("return", _this.identities.findWhere({ + 'category': category, + 'type': type + })); + case 3: + case "end": + return _context.stop(); + } + }, _callee); + }))(); + }, + /** + * Returns a Promise which resolves with a map indicating + * whether a given feature is supported. + * @private + * @method _converse.DiscoEntity#getFeature + * @param { String } feature - The feature that might be supported. + */ + getFeature: function getFeature(feature) { + var _this2 = this; + return entity_asyncToGenerator( /*#__PURE__*/entity_regeneratorRuntime().mark(function _callee2() { + return entity_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return _this2.waitUntilFeaturesDiscovered; + case 2: + if (!_this2.features.findWhere({ + 'var': feature + })) { + _context2.next = 4; + break; + } + return _context2.abrupt("return", _this2); + case 4: + case "end": + return _context2.stop(); + } + }, _callee2); + }))(); + }, + onFeatureAdded: function onFeatureAdded(feature) { + feature.entity = this; + /** + * Triggered when Converse has learned of a service provided by the XMPP server. + * See XEP-0030. + * @event _converse#serviceDiscovered + * @type { Model } + * @example _converse.api.listen.on('featuresDiscovered', feature => { ... }); + */ + shared_api.trigger('serviceDiscovered', feature); + }, + onFieldAdded: function onFieldAdded(field) { + field.entity = this; + /** + * Triggered when Converse has learned of a disco extension field. + * See XEP-0030. + * @event _converse#discoExtensionFieldDiscovered + * @example _converse.api.listen.on('discoExtensionFieldDiscovered', () => { ... }); + */ + shared_api.trigger('discoExtensionFieldDiscovered', field); + }, + fetchFeatures: function fetchFeatures(options) { + var _this3 = this; + return entity_asyncToGenerator( /*#__PURE__*/entity_regeneratorRuntime().mark(function _callee3() { + var store_id, result; + return entity_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + if (!options.ignore_cache) { + _context3.next = 4; + break; + } + _this3.queryInfo(); + _context3.next = 9; + break; + case 4: + store_id = _this3.features.browserStorage.name; + _context3.next = 7; + return _this3.features.browserStorage.store.getItem(store_id); + case 7: + result = _context3.sent; + if (result && result.length === 0 || result === null) { + _this3.queryInfo(); + } else { + _this3.features.fetch({ + add: true, + success: function success() { + _this3.waitUntilFeaturesDiscovered.resolve(_this3); + _this3.trigger('featuresDiscovered'); + } + }); + _this3.identities.fetch({ + add: true + }); + } + case 9: + case "end": + return _context3.stop(); + } + }, _callee3); + }))(); + }, + queryInfo: function queryInfo() { + var _this4 = this; + return entity_asyncToGenerator( /*#__PURE__*/entity_regeneratorRuntime().mark(function _callee4() { + var stanza; + return entity_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + _context4.prev = 0; + _context4.next = 3; + return shared_api.disco.info(_this4.get('jid'), null); + case 3: + stanza = _context4.sent; + _context4.next = 11; + break; + case 6: + _context4.prev = 6; + _context4.t0 = _context4["catch"](0); + _context4.t0 === null ? log.error("Timeout for disco#info query for ".concat(_this4.get('jid'))) : log.error(_context4.t0); + _this4.waitUntilFeaturesDiscovered.resolve(_this4); + return _context4.abrupt("return"); + case 11: + _this4.onInfo(stanza); + case 12: + case "end": + return _context4.stop(); + } + }, _callee4, null, [[0, 6]]); + }))(); + }, + onDiscoItems: function onDiscoItems(stanza) { + var _this5 = this; + external_sizzle_default()("query[xmlns=\"".concat(entity_Strophe.NS.DISCO_ITEMS, "\"] item"), stanza).forEach(function (item) { + if (item.getAttribute('node')) { + // XXX: Ignore nodes for now. + // See: https://xmpp.org/extensions/xep-0030.html#items-nodes + return; + } + var jid = item.getAttribute('jid'); + var entity = shared_converse.disco_entities.get(jid); + if (entity) { + entity.set({ + parent_jids: [_this5.get('jid')] + }); + } else { + shared_api.disco.entities.create({ + jid: jid, + 'parent_jids': [_this5.get('jid')], + 'name': item.getAttribute('name') + }); + } + }); + }, + queryForItems: function queryForItems() { + var _this6 = this; + return entity_asyncToGenerator( /*#__PURE__*/entity_regeneratorRuntime().mark(function _callee5() { + var stanza; + return entity_regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + if (!(_this6.identities.where({ + 'category': 'server' + }).length === 0)) { + _context5.next = 2; + break; + } + return _context5.abrupt("return"); + case 2: + _context5.next = 4; + return shared_api.disco.items(_this6.get('jid')); + case 4: + stanza = _context5.sent; + _this6.onDiscoItems(stanza); + case 6: + case "end": + return _context5.stop(); + } + }, _callee5); + }))(); + }, + onInfo: function onInfo(stanza) { + var _this7 = this; + return entity_asyncToGenerator( /*#__PURE__*/entity_regeneratorRuntime().mark(function _callee6() { + return entity_regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + Array.from(stanza.querySelectorAll('identity')).forEach(function (identity) { + _this7.identities.create({ + 'category': identity.getAttribute('category'), + 'type': identity.getAttribute('type'), + 'name': identity.getAttribute('name') + }); + }); + external_sizzle_default()("x[type=\"result\"][xmlns=\"".concat(entity_Strophe.NS.XFORM, "\"]"), stanza).forEach(function (form) { + var data = {}; + external_sizzle_default()('field', form).forEach(function (field) { + var _field$querySelector; + data[field.getAttribute('var')] = { + 'value': (_field$querySelector = field.querySelector('value')) === null || _field$querySelector === void 0 ? void 0 : _field$querySelector.textContent, + 'type': field.getAttribute('type') + }; + }); + _this7.dataforms.create(data); + }); + if (!stanza.querySelector("feature[var=\"".concat(entity_Strophe.NS.DISCO_ITEMS, "\"]"))) { + _context6.next = 5; + break; + } + _context6.next = 5; + return _this7.queryForItems(); + case 5: + Array.from(stanza.querySelectorAll('feature')).forEach(function (feature) { + _this7.features.create({ + 'var': feature.getAttribute('var'), + 'from': stanza.getAttribute('from') + }); + }); -/** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The corresponding value of - * each key is the last element responsible for generating the key. The - * iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * var array = [ - * { 'dir': 'left', 'code': 97 }, - * { 'dir': 'right', 'code': 100 } - * ]; - * - * _.keyBy(array, function(o) { - * return String.fromCharCode(o.code); - * }); - * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } - * - * _.keyBy(array, 'dir'); - * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } - */ -var keyBy = _createAggregator(function (result, value, key) { - _baseAssignValue(result, key, value); -}); -/* harmony default export */ const lodash_es_keyBy = (keyBy); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_strictLastIndexOf.js -/** - * A specialized version of `_.lastIndexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ -function strictLastIndexOf(array, value, fromIndex) { - var index = fromIndex + 1; - while (index--) { - if (array[index] === value) { - return index; - } + // XEP-0128 Service Discovery Extensions + external_sizzle_default()('x[type="result"][xmlns="jabber:x:data"] field', stanza).forEach(function (field) { + var _field$querySelector2; + _this7.fields.create({ + 'var': field.getAttribute('var'), + 'value': (_field$querySelector2 = field.querySelector('value')) === null || _field$querySelector2 === void 0 ? void 0 : _field$querySelector2.textContent, + 'from': stanza.getAttribute('from') + }); + }); + _this7.waitUntilFeaturesDiscovered.resolve(_this7); + _this7.trigger('featuresDiscovered'); + case 9: + case "end": + return _context6.stop(); + } + }, _callee6); + }))(); } - return index; -} -/* harmony default export */ const _strictLastIndexOf = (strictLastIndexOf); -;// CONCATENATED MODULE: ./node_modules/lodash-es/lastIndexOf.js - - - +}); +/* harmony default export */ const entity = (DiscoEntity); +;// CONCATENATED MODULE: ./src/headless/plugins/disco/entities.js -/* Built-in method references for those with the same name as other `lodash` methods. */ -var lastIndexOf_nativeMax = Math.max, - lastIndexOf_nativeMin = Math.min; -/** - * This method is like `_.indexOf` except that it iterates over elements of - * `array` from right to left. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=array.length-1] The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.lastIndexOf([1, 2, 1, 2], 2); - * // => 3 - * - * // Search from the `fromIndex`. - * _.lastIndexOf([1, 2, 1, 2], 2, 2); - * // => 1 - */ -function lastIndexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length; - if (fromIndex !== undefined) { - index = lodash_es_toInteger(fromIndex); - index = index < 0 ? lastIndexOf_nativeMax(length + index, 0) : lastIndexOf_nativeMin(index, length - 1); +var DiscoEntities = Collection.extend({ + model: entity, + fetchEntities: function fetchEntities() { + var _this = this; + return new Promise(function (resolve, reject) { + _this.fetch({ + add: true, + success: resolve, + error: function error(_m, e) { + log.error(e); + reject(new Error("Could not fetch disco entities")); + } + }); + }); } - return value === value ? _strictLastIndexOf(array, value, index) : _baseFindIndex(array, _baseIsNaN, index, true); -} -/* harmony default export */ const lodash_es_lastIndexOf = (lastIndexOf); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseMap.js - - +}); +/* harmony default export */ const entities = (DiscoEntities); +;// CONCATENATED MODULE: ./src/headless/plugins/disco/utils.js +function disco_utils_typeof(obj) { + "@babel/helpers - typeof"; -/** - * The base implementation of `_.map` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ -function baseMap(collection, iteratee) { - var index = -1, - result = lodash_es_isArrayLike(collection) ? Array(collection.length) : []; - _baseEach(collection, function (value, key, collection) { - result[++index] = iteratee(value, key, collection); - }); - return result; -} -/* harmony default export */ const _baseMap = (baseMap); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseSortBy.js -/** - * The base implementation of `_.sortBy` which uses `comparer` to define the - * sort order of `array` and replaces criteria objects with their corresponding - * values. - * - * @private - * @param {Array} array The array to sort. - * @param {Function} comparer The function to define sort order. - * @returns {Array} Returns `array`. - */ -function baseSortBy(array, comparer) { - var length = array.length; - array.sort(comparer); - while (length--) { - array[length] = array[length].value; - } - return array; + return disco_utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, disco_utils_typeof(obj); } -/* harmony default export */ const _baseSortBy = (baseSortBy); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_compareAscending.js - +function disco_utils_regeneratorRuntime() { + "use strict"; -/** - * Compares values to sort them in ascending order. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {number} Returns the sort order indicator for `value`. - */ -function compareAscending(value, other) { - if (value !== other) { - var valIsDefined = value !== undefined, - valIsNull = value === null, - valIsReflexive = value === value, - valIsSymbol = lodash_es_isSymbol(value); - var othIsDefined = other !== undefined, - othIsNull = other === null, - othIsReflexive = other === other, - othIsSymbol = lodash_es_isSymbol(other); - if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) { - return 1; - } - if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) { - return -1; - } - } - return 0; -} -/* harmony default export */ const _compareAscending = (compareAscending); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_compareMultiple.js - - -/** - * Used by `_.orderBy` to compare multiple properties of a value to another - * and stable sort them. - * - * If `orders` is unspecified, all values are sorted in ascending order. Otherwise, - * specify an order of "desc" for descending or "asc" for ascending sort order - * of corresponding values. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {boolean[]|string[]} orders The order to sort by for each property. - * @returns {number} Returns the sort order indicator for `object`. - */ -function compareMultiple(object, other, orders) { - var index = -1, - objCriteria = object.criteria, - othCriteria = other.criteria, - length = objCriteria.length, - ordersLength = orders.length; - while (++index < length) { - var result = _compareAscending(objCriteria[index], othCriteria[index]); - if (result) { - if (index >= ordersLength) { - return result; - } - var order = orders[index]; - return result * (order == 'desc' ? -1 : 1); - } - } - // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications - // that causes it, under certain circumstances, to provide the same value for - // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 - // for more details. - // - // This also ensures a stable sort in V8 and other engines. - // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details. - return object.index - other.index; -} -/* harmony default export */ const _compareMultiple = (compareMultiple); -;// CONCATENATED MODULE: ./node_modules/lodash-es/_baseOrderBy.js - - - - - - - - - - -/** - * The base implementation of `_.orderBy` without param guards. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. - * @param {string[]} orders The sort orders of `iteratees`. - * @returns {Array} Returns the new sorted array. - */ -function baseOrderBy(collection, iteratees, orders) { - if (iteratees.length) { - iteratees = _arrayMap(iteratees, function (iteratee) { - if (lodash_es_isArray(iteratee)) { - return function (value) { - return _baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee); - }; - } - return iteratee; - }); - } else { - iteratees = [lodash_es_identity]; - } - var index = -1; - iteratees = _arrayMap(iteratees, _baseUnary(_baseIteratee)); - var result = _baseMap(collection, function (value, key, collection) { - var criteria = _arrayMap(iteratees, function (iteratee) { - return iteratee(value); - }); - return { - 'criteria': criteria, - 'index': ++index, - 'value': value - }; - }); - return _baseSortBy(result, function (object, other) { - return _compareMultiple(object, other, orders); - }); -} -/* harmony default export */ const _baseOrderBy = (baseOrderBy); -;// CONCATENATED MODULE: ./node_modules/lodash-es/sortBy.js - - - - - -/** - * Creates an array of elements, sorted in ascending order by the results of - * running each element in a collection thru each iteratee. This method - * performs a stable sort, that is, it preserves the original sort order of - * equal elements. The iteratees are invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {...(Function|Function[])} [iteratees=[_.identity]] - * The iteratees to sort by. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'fred', 'age': 48 }, - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 30 }, - * { 'user': 'barney', 'age': 34 } - * ]; - * - * _.sortBy(users, [function(o) { return o.user; }]); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] - * - * _.sortBy(users, ['user', 'age']); - * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] - */ -var sortBy = _baseRest(function (collection, iteratees) { - if (collection == null) { - return []; - } - var length = iteratees.length; - if (length > 1 && _isIterateeCall(collection, iteratees[0], iteratees[1])) { - iteratees = []; - } else if (length > 2 && _isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { - iteratees = [iteratees[0]]; - } - return _baseOrderBy(collection, _baseFlatten(iteratees, 1), []); -}); -/* harmony default export */ const lodash_es_sortBy = (sortBy); -;// CONCATENATED MODULE: ./node_modules/@converse/skeletor/src/collection.js -function collection_typeof(obj) { - "@babel/helpers - typeof"; - - return collection_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, collection_typeof(obj); -} -function collection_regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - collection_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + disco_utils_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; } try { define({}, ""); @@ -35920,7 +34562,7 @@ function collection_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == collection_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == disco_utils_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -36145,7 +34787,7 @@ function collection_regeneratorRuntime() { } }, exports; } -function collection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function disco_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -36159,898 +34801,367 @@ function collection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, Promise.resolve(value).then(_next, _throw); } } -function collection_asyncToGenerator(fn) { +function disco_utils_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - collection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + disco_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - collection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + disco_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -// Backbone.js 1.4.0 -// (c) 2010-2019 Jeremy Ashkenas and DocumentCloud -// Backbone may be freely distributed under the MIT license. - -// Collection -// ---------- - -// If models tend to represent a single row of data, a Collection is -// more analogous to a table full of data ... or a small slice or page of that -// table, or a collection of rows that belong together for a particular reason -// -- all of the messages in this particular folder, all of the documents -// belonging to this particular author, and so on. Collections maintain -// indexes of their models, both in order, and for lookup by `id`. - - - - - - - - - - - - - - - - - - -var _slice = Array.prototype.slice; - -// Create a new **Collection**, perhaps to contain a specific type of `model`. -// If a `comparator` is specified, the Collection will maintain -// its models in sort order, as they're added and removed. -var Collection = function Collection(models, options) { - options || (options = {}); - this.preinitialize.apply(this, arguments); - if (options.model) this.model = options.model; - if (options.comparator !== undefined) this.comparator = options.comparator; - this._reset(); - this.initialize.apply(this, arguments); - if (models) this.reset(models, lodash_es_assignIn({ - silent: true - }, options)); -}; -Collection.extend = inherits; - -// Default options for `Collection#set`. -var setOptions = { - add: true, - remove: true, - merge: true -}; -var addOptions = { - add: true, - remove: false -}; - -// Splices `insert` into `array` at index `at`. -var collection_splice = function splice(array, insert, at) { - at = Math.min(Math.max(at, 0), array.length); - var tail = Array(array.length - at); - var length = insert.length; - var i; - for (i = 0; i < tail.length; i++) tail[i] = array[i + at]; - for (i = 0; i < length; i++) array[i + at] = insert[i]; - for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i]; -}; - -// Define the Collection's inheritable methods. -Object.assign(Collection.prototype, Events, { - // The default model for a collection is just a **Backbone.Model**. - // This should be overridden in most cases. - model: Model, - // preinitialize is an empty function by default. You can override it with a function - // or object. preinitialize will run before any instantiation logic is run in the Collection. - preinitialize: function preinitialize() {}, - // Initialize is an empty function by default. Override it with your own - // initialization logic. - initialize: function initialize() {}, - // The JSON representation of a Collection is an array of the - // models' attributes. - toJSON: function toJSON(options) { - return this.map(function (model) { - return model.toJSON(options); +var disco_utils_converse$env = public_converse.env, + disco_utils_Strophe = disco_utils_converse$env.Strophe, + $iq = disco_utils_converse$env.$iq; +function onDiscoInfoRequest(stanza) { + var node = stanza.getElementsByTagName('query')[0].getAttribute('node'); + var attrs = { + xmlns: disco_utils_Strophe.NS.DISCO_INFO + }; + if (node) { + attrs.node = node; + } + var iqresult = $iq({ + 'type': 'result', + 'id': stanza.getAttribute('id') + }); + var from = stanza.getAttribute('from'); + if (from !== null) { + iqresult.attrs({ + 'to': from }); - }, - // Proxy `Backbone.sync` by default. - sync: function sync(method, model, options) { - return getSyncMethod(this)(method, model, options); - }, - // Add a model, or list of models to the set. `models` may be Backbone - // Models or raw JavaScript objects to be converted to Models, or any - // combination of the two. - add: function add(models, options) { - return this.set(models, lodash_es_assignIn({ - merge: false - }, options, addOptions)); - }, - // Remove a model, or a list of models from the set. - remove: function remove(models, options) { - options = lodash_es_assignIn({}, options); - var singular = !Array.isArray(models); - models = singular ? [models] : models.slice(); - var removed = this._removeModels(models, options); - if (!options.silent && removed.length) { - options.changes = { - added: [], - merged: [], - removed: removed - }; - this.trigger('update', this, options); + } + iqresult.c('query', attrs); + shared_converse.disco._identities.forEach(function (identity) { + var attrs = { + 'category': identity.category, + 'type': identity.type + }; + if (identity.name) { + attrs.name = identity.name; } - return singular ? removed[0] : removed; - }, - // Update a collection by `set`-ing a new list of models, adding new ones, - // removing models that are no longer present, and merging models that - // already exist in the collection, as necessary. Similar to **Model#set**, - // the core operation for updating the data contained by the collection. - set: function set(models, options) { - if (models == null) return; - options = lodash_es_assignIn({}, setOptions, options); - if (options.parse && !this._isModel(models)) { - models = this.parse(models, options) || []; + if (identity.lang) { + attrs['xml:lang'] = identity.lang; } - var singular = !Array.isArray(models); - models = singular ? [models] : models.slice(); - var at = options.at; - if (at != null) at = +at; - if (at > this.length) at = this.length; - if (at < 0) at += this.length + 1; - var set = []; - var toAdd = []; - var toMerge = []; - var toRemove = []; - var modelMap = {}; - var add = options.add; - var merge = options.merge; - var remove = options.remove; - var sort = false; - var sortable = this.comparator && at == null && options.sort !== false; - var sortAttr = lodash_es_isString(this.comparator) ? this.comparator : null; - - // Turn bare objects into model references, and prevent invalid models - // from being added. - var model, i; - for (i = 0; i < models.length; i++) { - model = models[i]; - - // If a duplicate is found, prevent it from being added and - // optionally merge it into the existing model. - var existing = this.get(model); - if (existing) { - if (merge && model !== existing) { - var attrs = this._isModel(model) ? model.attributes : model; - if (options.parse) attrs = existing.parse(attrs, options); - existing.set(attrs, options); - toMerge.push(existing); - if (sortable && !sort) sort = existing.hasChanged(sortAttr); - } - if (!modelMap[existing.cid]) { - modelMap[existing.cid] = true; - set.push(existing); - } - models[i] = existing; - - // If this is a new, valid model, push it to the `toAdd` list. - } else if (add) { - model = models[i] = this._prepareModel(model, options); - if (model) { - toAdd.push(model); - this._addReference(model, options); - modelMap[model.cid] = true; - set.push(model); - } + iqresult.c('identity', attrs).up(); + }); + shared_converse.disco._features.forEach(function (f) { + return iqresult.c('feature', { + 'var': f + }).up(); + }); + shared_api.send(iqresult.tree()); + return true; +} +function addClientFeatures() { + // See https://xmpp.org/registrar/disco-categories.html + shared_api.disco.own.identities.add('client', 'web', 'Converse'); + shared_api.disco.own.features.add(disco_utils_Strophe.NS.CHATSTATES); + shared_api.disco.own.features.add(disco_utils_Strophe.NS.DISCO_INFO); + shared_api.disco.own.features.add(disco_utils_Strophe.NS.ROSTERX); // Limited support + shared_api.disco.own.features.add(disco_utils_Strophe.NS.CARBONS); + /** + * Triggered in converse-disco once the core disco features of + * Converse have been added. + * @event _converse#addClientFeatures + * @example _converse.api.listen.on('addClientFeatures', () => { ... }); + */ + shared_api.trigger('addClientFeatures'); + return this; +} +function initializeDisco() { + return _initializeDisco.apply(this, arguments); +} +function _initializeDisco() { + _initializeDisco = disco_utils_asyncToGenerator( /*#__PURE__*/disco_utils_regeneratorRuntime().mark(function _callee() { + var id, collection; + return disco_utils_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + addClientFeatures(); + shared_converse.connection.addHandler(function (stanza) { + return onDiscoInfoRequest(stanza); + }, disco_utils_Strophe.NS.DISCO_INFO, 'iq', 'get', null, null); + shared_converse.disco_entities = new shared_converse.DiscoEntities(); + id = "converse.disco-entities-".concat(shared_converse.bare_jid); + shared_converse.disco_entities.browserStorage = shared_converse.createStore(id, 'session'); + _context.next = 7; + return shared_converse.disco_entities.fetchEntities(); + case 7: + collection = _context.sent; + if (collection.length === 0 || !collection.get(shared_converse.domain)) { + // If we don't have an entity for our own XMPP server, create one. + shared_api.disco.entities.create({ + 'jid': shared_converse.domain + }, { + 'ignore_cache': true + }); + } + /** + * Triggered once the `converse-disco` plugin has been initialized and the + * `_converse.disco_entities` collection will be available and populated with at + * least the service discovery features of the user's own server. + * @event _converse#discoInitialized + * @example _converse.api.listen.on('discoInitialized', () => { ... }); + */ + shared_api.trigger('discoInitialized'); + case 10: + case "end": + return _context.stop(); } - } + }, _callee); + })); + return _initializeDisco.apply(this, arguments); +} +function initStreamFeatures() { + // Initialize the stream_features collection, and if we're + // re-attaching to a pre-existing BOSH session, we restore the + // features from cache. + // Otherwise the features will be created once we've received them + // from the server (see populateStreamFeatures). + if (!shared_converse.stream_features) { + var bare_jid = disco_utils_Strophe.getBareJidFromJid(shared_converse.jid); + var id = "converse.stream-features-".concat(bare_jid); + shared_api.promises.add('streamFeaturesAdded'); + shared_converse.stream_features = new Collection(); + shared_converse.stream_features.browserStorage = shared_converse.createStore(id, "session"); + } +} +function notifyStreamFeaturesAdded() { + /** + * Triggered as soon as the stream features are known. + * If you want to check whether a stream feature is supported before proceeding, + * then you'll first want to wait for this event. + * @event _converse#streamFeaturesAdded + * @example _converse.api.listen.on('streamFeaturesAdded', () => { ... }); + */ + shared_api.trigger('streamFeaturesAdded'); +} +function populateStreamFeatures() { + // Strophe.js sets the element on the + // Strophe.Connection instance (_converse.connection). + // + // Once this is we populate the _converse.stream_features collection + // and trigger streamFeaturesAdded. + initStreamFeatures(); + Array.from(shared_converse.connection.features.childNodes).forEach(function (feature) { + shared_converse.stream_features.create({ + 'name': feature.nodeName, + 'xmlns': feature.getAttribute('xmlns') + }); + }); + notifyStreamFeaturesAdded(); +} +function utils_clearSession() { + var _converse$disco_entit, _converse$disco_entit2, _converse$disco_entit3, _converse$disco_entit4, _converse$disco_entit5; + (_converse$disco_entit = shared_converse.disco_entities) === null || _converse$disco_entit === void 0 ? void 0 : _converse$disco_entit.forEach(function (e) { + return e.features.clearStore(); + }); + (_converse$disco_entit2 = shared_converse.disco_entities) === null || _converse$disco_entit2 === void 0 ? void 0 : _converse$disco_entit2.forEach(function (e) { + return e.identities.clearStore(); + }); + (_converse$disco_entit3 = shared_converse.disco_entities) === null || _converse$disco_entit3 === void 0 ? void 0 : _converse$disco_entit3.forEach(function (e) { + return e.dataforms.clearStore(); + }); + (_converse$disco_entit4 = shared_converse.disco_entities) === null || _converse$disco_entit4 === void 0 ? void 0 : _converse$disco_entit4.forEach(function (e) { + return e.fields.clearStore(); + }); + (_converse$disco_entit5 = shared_converse.disco_entities) === null || _converse$disco_entit5 === void 0 ? void 0 : _converse$disco_entit5.clearStore(); + delete shared_converse.disco_entities; +} +;// CONCATENATED MODULE: ./src/headless/plugins/disco/api.js +function disco_api_typeof(obj) { + "@babel/helpers - typeof"; - // Remove stale models. - if (remove) { - for (i = 0; i < this.length; i++) { - model = this.models[i]; - if (!modelMap[model.cid]) toRemove.push(model); - } - if (toRemove.length) this._removeModels(toRemove, options); - } + return disco_api_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, disco_api_typeof(obj); +} +function api_toConsumableArray(arr) { + return api_arrayWithoutHoles(arr) || api_iterableToArray(arr) || api_unsupportedIterableToArray(arr) || api_nonIterableSpread(); +} +function api_nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function api_unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return api_arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return api_arrayLikeToArray(o, minLen); +} +function api_iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +} +function api_arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return api_arrayLikeToArray(arr); +} +function api_arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; +} +function disco_api_regeneratorRuntime() { + "use strict"; - // See if sorting is needed, update `length` and splice in new models. - var orderChanged = false; - var replace = !sortable && add && remove; - if (set.length && replace) { - orderChanged = this.length !== set.length || lodash_es_some(this.models, function (m, index) { - return m !== set[index]; - }); - this.models.length = 0; - collection_splice(this.models, set, 0); - this.length = this.models.length; - } else if (toAdd.length) { - if (sortable) sort = true; - collection_splice(this.models, toAdd, at == null ? this.length : at); - this.length = this.models.length; + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + disco_api_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; + } + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; } - - // Silently sort the collection if appropriate. - if (sort) this.sort({ - silent: true + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); }); - - // Unless silenced, it's time to fire all appropriate add/sort/update events. - if (!options.silent) { - for (i = 0; i < toAdd.length; i++) { - if (at != null) options.index = at + i; - model = toAdd[i]; - model.trigger('add', model, this, options); - } - if (sort || orderChanged) this.trigger('sort', this, options); - if (toAdd.length || toRemove.length || toMerge.length) { - options.changes = { - added: toAdd, - removed: toRemove, - merged: toMerge - }; - this.trigger('update', this, options); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == disco_api_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); } + reject(record.arg); } - - // Return the added (or merged) model (or models). - return singular ? models[0] : models; - }, - clearStore: function () { - var _clearStore = collection_asyncToGenerator( /*#__PURE__*/collection_regeneratorRuntime().mark(function _callee() { - var options, - filter, - _args = arguments; - return collection_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - options = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}; - filter = _args.length > 1 && _args[1] !== undefined ? _args[1] : function (o) { - return o; - }; - _context.next = 4; - return Promise.all(this.models.filter(filter).map(function (m) { - return new Promise(function (resolve) { - m.destroy(Object.assign(options, { - 'success': resolve, - 'error': function error(m, e) { - console.error(e); - resolve(); - } - })); - }); - })); - case 4: - _context.next = 6; - return this.browserStorage.clear(); - case 6: - this.reset(); - case 7: - case "end": - return _context.stop(); + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); } - }, _callee, this); - })); - function clearStore() { - return _clearStore.apply(this, arguments); - } - return clearStore; - }(), - // When you have more items than you want to add or remove individually, - // you can reset the entire set with a new list of models, without firing - // any granular `add` or `remove` events. Fires `reset` when finished. - // Useful for bulk operations and optimizations. - reset: function reset(models, options) { - options = options ? lodash_es_clone(options) : {}; - for (var i = 0; i < this.models.length; i++) { - this._removeReference(this.models[i], options); - } - options.previousModels = this.models; - this._reset(); - models = this.add(models, lodash_es_assignIn({ - silent: true - }, options)); - if (!options.silent) this.trigger('reset', this, options); - return models; - }, - // Add a model to the end of the collection. - push: function push(model, options) { - return this.add(model, lodash_es_assignIn({ - at: this.length - }, options)); - }, - // Remove a model from the end of the collection. - pop: function pop(options) { - var model = this.at(this.length - 1); - return this.remove(model, options); - }, - // Add a model to the beginning of the collection. - unshift: function unshift(model, options) { - return this.add(model, lodash_es_assignIn({ - at: 0 - }, options)); - }, - // Remove a model from the beginning of the collection. - shift: function shift(options) { - var model = this.at(0); - return this.remove(model, options); - }, - // Slice out a sub-array of models from the collection. - slice: function slice() { - return _slice.apply(this.models, arguments); - }, - filter: function filter(callback, thisArg) { - return this.models.filter(lodash_es_isFunction(callback) ? callback : function (m) { - return m.matches(callback); - }, thisArg); - }, - every: function every(pred) { - return lodash_es_every(this.models.map(function (m) { - return m.attributes; - }), pred); - }, - difference: function difference(values) { - return lodash_es_difference(this.models, values); - }, - max: function max() { - return Math.max.apply(Math, this.models); - }, - min: function min() { - return Math.min.apply(Math, this.models); - }, - drop: function drop() { - var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; - return this.models.slice(n); - }, - some: function some(pred) { - return lodash_es_some(this.models.map(function (m) { - return m.attributes; - }), pred); - }, - sortBy: function sortBy(iteratee) { - return lodash_es_sortBy(this.models, lodash_es_isFunction(iteratee) ? iteratee : function (m) { - return lodash_es_isString(iteratee) ? m.get(iteratee) : m.matches(iteratee); - }); - }, - isEmpty: function isEmpty() { - return lodash_es_isEmpty(this.models); - }, - keyBy: function keyBy(iteratee) { - return lodash_es_keyBy(this.models, iteratee); - }, - each: function each(callback, thisArg) { - return this.forEach(callback, thisArg); - }, - forEach: function forEach(callback, thisArg) { - return this.models.forEach(callback, thisArg); - }, - includes: function includes(item) { - return this.models.includes(item); - }, - size: function size() { - return this.models.length; - }, - countBy: function countBy(f) { - return lodash_es_countBy(this.models, lodash_es_isFunction(f) ? f : function (m) { - return lodash_es_isString(f) ? m.get(f) : m.matches(f); - }); - }, - groupBy: function groupBy(pred) { - return lodash_es_groupBy(this.models, lodash_es_isFunction(pred) ? pred : function (m) { - return lodash_es_isString(pred) ? m.get(pred) : m.matches(pred); - }); - }, - indexOf: function indexOf(fromIndex) { - return lodash_es_indexOf(this.models, fromIndex); - }, - findLastIndex: function findLastIndex(pred, fromIndex) { - return lodash_es_findLastIndex(this.models, lodash_es_isFunction(pred) ? pred : function (m) { - return lodash_es_isString(pred) ? m.get(pred) : m.matches(pred); - }, fromIndex); - }, - lastIndexOf: function lastIndexOf(fromIndex) { - return lodash_es_lastIndexOf(this.models, fromIndex); - }, - findIndex: function findIndex(pred) { - return lodash_es_findIndex(this.models, lodash_es_isFunction(pred) ? pred : function (m) { - return lodash_es_isString(pred) ? m.get(pred) : m.matches(pred); - }); - }, - last: function last() { - var length = this.models == null ? 0 : this.models.length; - return length ? this.models[length - 1] : undefined; - }, - head: function head() { - return this.models[0]; - }, - first: function first() { - return this.head(); - }, - map: function map(cb, thisArg) { - return this.models.map(lodash_es_isFunction(cb) ? cb : function (m) { - return lodash_es_isString(cb) ? m.get(cb) : m.matches(cb); - }, thisArg); - }, - reduce: function reduce(callback, initialValue) { - return this.models.reduce(callback, initialValue || this.models[0]); - }, - reduceRight: function reduceRight(callback, initialValue) { - return this.models.reduceRight(callback, initialValue || this.models[0]); - }, - toArray: function toArray() { - return Array.from(this.models); - }, - // Get a model from the set by id, cid, model object with id or cid - // properties, or an attributes object that is transformed through modelId. - get: function get(obj) { - if (obj == null) return undefined; - return this._byId[obj] || this._byId[this.modelId(this._isModel(obj) ? obj.attributes : obj)] || obj.cid && this._byId[obj.cid]; - }, - // Returns `true` if the model is in the collection. - has: function has(obj) { - return this.get(obj) != null; - }, - // Get the model at the given index. - at: function at(index) { - if (index < 0) index += this.length; - return this.models[index]; - }, - // Return models with matching attributes. Useful for simple cases of - // `filter`. - where: function where(attrs, first) { - return this[first ? 'find' : 'filter'](attrs); - }, - // Return the first model with matching attributes. Useful for simple cases - // of `find`. - findWhere: function findWhere(attrs) { - return this.where(attrs, true); - }, - find: function find(predicate, fromIndex) { - var pred = lodash_es_isFunction(predicate) ? predicate : function (m) { - return m.matches(predicate); - }; - return this.models.find(pred, fromIndex); - }, - // Force the collection to re-sort itself. You don't need to call this under - // normal circumstances, as the set will maintain sort order as each item - // is added. - sort: function sort(options) { - var comparator = this.comparator; - if (!comparator) throw new Error('Cannot sort a set without a comparator'); - options || (options = {}); - var length = comparator.length; - if (lodash_es_isFunction(comparator)) comparator = comparator.bind(this); - - // Run sort based on type of `comparator`. - if (length === 1 || lodash_es_isString(comparator)) { - this.models = this.sortBy(comparator); - } else { - this.models.sort(comparator); - } - if (!options.silent) this.trigger('sort', this, options); - return this; - }, - // Pluck an attribute from each model in the collection. - pluck: function pluck(attr) { - return this.map(attr + ''); - }, - // Fetch the default set of models for this collection, resetting the - // collection when they arrive. If `reset: true` is passed, the response - // data will be passed through the `reset` method instead of `set`. - fetch: function fetch(options) { - options = lodash_es_assignIn({ - parse: true - }, options); - var success = options.success; - var collection = this; - var promise = options.promise && getResolveablePromise(); - options.success = function (resp) { - var method = options.reset ? 'reset' : 'set'; - collection[method](resp, options); - if (success) success.call(options.context, collection, resp, options); - promise && promise.resolve(); - collection.trigger('sync', collection, resp, options); - }; - wrapError(this, options); - return promise ? promise : this.sync('read', this, options); - }, - // Create a new instance of a model in this collection. Add the model to the - // collection immediately, unless `wait: true` is passed, in which case we - // wait for the server to agree. - create: function create(model, options) { - options = options ? lodash_es_clone(options) : {}; - var wait = options.wait; - var return_promise = options.promise; - var promise = return_promise && getResolveablePromise(); - model = this._prepareModel(model, options); - if (!model) return false; - if (!wait) this.add(model, options); - var collection = this; - var success = options.success; - var error = options.error; - options.success = function (m, resp, callbackOpts) { - if (wait) { - collection.add(m, callbackOpts); + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } - if (success) { - success.call(callbackOpts.context, m, resp, callbackOpts); + }); + } + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); } - if (return_promise) { - promise.resolve(m); + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; - options.error = function (model, e, options) { - error && error.call(options.context, model, e, options); - return_promise && promise.reject(e); - }; - model.save(null, Object.assign(options, { - 'promise': false - })); - if (return_promise) { - return promise; - } else { - return model; - } - }, - // **parse** converts a response into a list of models to be added to the - // collection. The default implementation is just to pass it through. - parse: function parse(resp, options) { - return resp; - }, - // Create a new collection with an identical list of models as this one. - clone: function clone() { - return new this.constructor(this.models, { - model: this.model, - comparator: this.comparator - }); - }, - // Define how to uniquely identify models in the collection. - modelId: function modelId(attrs) { - var _this$model$prototype; - return attrs[((_this$model$prototype = this.model.prototype) === null || _this$model$prototype === void 0 ? void 0 : _this$model$prototype.idAttribute) || 'id']; - }, - // Get an iterator of all models in this collection. - values: function values() { - return new CollectionIterator(this, ITERATOR_VALUES); - }, - // Get an iterator of all model IDs in this collection. - keys: function keys() { - return new CollectionIterator(this, ITERATOR_KEYS); - }, - // Get an iterator of all [ID, model] tuples in this collection. - entries: function entries() { - return new CollectionIterator(this, ITERATOR_KEYSVALUES); - }, - // Private method to reset all internal state. Called when the collection - // is first initialized or reset. - _reset: function _reset() { - this.length = 0; - this.models = []; - this._byId = {}; - }, - // Prepare a hash of attributes (or other model) to be added to this - // collection. - _prepareModel: function _prepareModel(attrs, options) { - if (this._isModel(attrs)) { - if (!attrs.collection) attrs.collection = this; - return attrs; - } - options = options ? lodash_es_clone(options) : {}; - options.collection = this; - var model = new this.model(attrs, options); - if (!model.validationError) return model; - this.trigger('invalid', this, model.validationError, options); - return false; - }, - // Internal method called by both remove and set. - _removeModels: function _removeModels(models, options) { - var removed = []; - for (var i = 0; i < models.length; i++) { - var model = this.get(models[i]); - if (!model) continue; - var index = this.indexOf(model); - this.models.splice(index, 1); - this.length--; - - // Remove references before triggering 'remove' event to prevent an - // infinite loop. #3693 - delete this._byId[model.cid]; - var id = this.modelId(model.attributes); - if (id != null) delete this._byId[id]; - if (!options.silent) { - options.index = index; - model.trigger('remove', model, this, options); - } - removed.push(model); - this._removeReference(model, options); - } - return removed; - }, - // Method for checking whether an object should be considered a model for - // the purposes of adding to the collection. - _isModel: function _isModel(model) { - return model instanceof Model; - }, - // Internal method to create a model's ties to a collection. - _addReference: function _addReference(model, options) { - this._byId[model.cid] = model; - var id = this.modelId(model.attributes); - if (id != null) this._byId[id] = model; - model.on('all', this._onModelEvent, this); - }, - // Internal method to sever a model's ties to a collection. - _removeReference: function _removeReference(model, options) { - delete this._byId[model.cid]; - var id = this.modelId(model.attributes); - if (id != null) delete this._byId[id]; - if (this === model.collection) delete model.collection; - model.off('all', this._onModelEvent, this); - }, - // Internal method called every time a model in the set fires an event. - // Sets need to update their indexes when models change ids. All other - // events simply proxy through. "add" and "remove" events that originate - // in other collections are ignored. - _onModelEvent: function _onModelEvent(event, model, collection, options) { - if (model) { - if ((event === 'add' || event === 'remove') && collection !== this) return; - if (event === 'destroy') this.remove(model, options); - if (event === 'change') { - var prevId = this.modelId(model.previousAttributes()); - var id = this.modelId(model.attributes); - if (prevId !== id) { - if (prevId != null) delete this._byId[prevId]; - if (id != null) this._byId[id] = model; - } - } - } - this.trigger.apply(this, arguments); - } -}); - -// Defining an @@iterator method implements JavaScript's Iterable protocol. -// In modern ES2015 browsers, this value is found at Symbol.iterator. -/* global Symbol */ -var $$iterator = typeof Symbol === 'function' && Symbol.iterator; -if ($$iterator) { - Collection.prototype[$$iterator] = Collection.prototype.values; -} - -// CollectionIterator -// ------------------ - -// A CollectionIterator implements JavaScript's Iterator protocol, allowing the -// use of `for of` loops in modern browsers and interoperation between -// Collection and other JavaScript functions and third-party libraries -// which can operate on Iterables. -var CollectionIterator = function CollectionIterator(collection, kind) { - this._collection = collection; - this._kind = kind; - this._index = 0; -}; - -// This "enum" defines the three possible kinds of values which can be emitted -// by a CollectionIterator that correspond to the values(), keys() and entries() -// methods on Collection, respectively. -var ITERATOR_VALUES = 1; -var ITERATOR_KEYS = 2; -var ITERATOR_KEYSVALUES = 3; - -// All Iterators should themselves be Iterable. -if ($$iterator) { - CollectionIterator.prototype[$$iterator] = function () { - return this; - }; -} -CollectionIterator.prototype.next = function () { - if (this._collection) { - // Only continue iterating if the iterated collection is long enough. - if (this._index < this._collection.length) { - var model = this._collection.at(this._index); - this._index++; - - // Construct a value depending on what kind of values should be iterated. - var value; - if (this._kind === ITERATOR_VALUES) { - value = model; - } else { - var id = this._collection.modelId(model.attributes); - if (this._kind === ITERATOR_KEYS) { - value = id; - } else { - // ITERATOR_KEYSVALUES - value = [id, model]; - } - } - return { - value: value, - done: false - }; - } - - // Once exhausted, remove the reference to the collection so future - // calls to the next method always return done. - this._collection = undefined; - } - return { - value: undefined, - done: true - }; -}; -;// CONCATENATED MODULE: external "filesize" -const external_filesize_namespaceObject = filesize; -;// CONCATENATED MODULE: external "lit" -const external_lit_namespaceObject = lit; -;// CONCATENATED MODULE: ./src/headless/shared/api/public.js -function public_typeof(obj) { - "@babel/helpers - typeof"; - - return public_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, public_typeof(obj); -} -function public_regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - public_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; - } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); - }); - }); - } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == public_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - reject(record.arg); - } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); - } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done - }; - } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); - } - }; - } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); - } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] + } + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } @@ -37206,7 +35317,7 @@ function public_regeneratorRuntime() { } }, exports; } -function public_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function disco_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -37220,17 +35331,17 @@ function public_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg Promise.resolve(value).then(_next, _throw); } } -function public_asyncToGenerator(fn) { +function disco_api_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - public_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + disco_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - public_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + disco_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); @@ -37240,697 +35351,693 @@ function public_asyncToGenerator(fn) { - - - - - - - - - - - - - - - - -/** - * ### The Public API - * - * This namespace contains public API methods which are are - * accessible on the global `converse` object. - * They are public, because any JavaScript in the - * page can call them. Public methods therefore don’t expose any sensitive - * or closured data. To do that, you’ll need to create a plugin, which has - * access to the private API method. - * - * @global - * @namespace converse - */ -var public_converse = Object.assign(window.converse || {}, { - CHAT_STATES: CHAT_STATES, - keycodes: KEYCODES, - /** - * Public API method which initializes Converse. - * This method must always be called when using Converse. - * @async - * @memberOf converse - * @method initialize - * @param { object } config A map of [configuration-settings](https://conversejs.org/docs/html/configuration.html#configuration-settings). - * @example - * converse.initialize({ - * auto_list_rooms: false, - * auto_subscribe: false, - * bosh_service_url: 'https://bind.example.com', - * hide_muc_server: false, - * i18n: 'en', - * play_sounds: true, - * show_controlbox_by_default: true, - * debug: false, - * roster_groups: true - * }); - */ - initialize: function initialize(settings) { - return public_asyncToGenerator( /*#__PURE__*/public_regeneratorRuntime().mark(function _callee() { - var _api$elements, _plugins$converseBos; - var api, plugins; - return public_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - api = shared_converse.api; - _context.next = 3; - return cleanup(shared_converse); - case 3: - setUnloadEvent(); - initAppSettings(settings); - shared_converse.strict_plugin_dependencies = settings.strict_plugin_dependencies; // Needed by pluggable.js - log.setLogLevel(api.settings.get("loglevel")); - if (!(api.settings.get("authentication") === ANONYMOUS)) { - _context.next = 10; - break; - } - if (!(api.settings.get("auto_login") && !api.settings.get('jid'))) { - _context.next = 10; - break; - } - throw new Error("Config Error: you need to provide the server's " + "domain via the 'jid' option when using anonymous " + "authentication with auto_login."); - case 10: - shared_converse.router.route(/^converse\?loglevel=(debug|info|warn|error|fatal)$/, 'loglevel', function (l) { - return log.setLogLevel(l); - }); - shared_converse.connfeedback = new feedback(); - - /* When reloading the page: - * For new sessions, we need to send out a presence stanza to notify - * the server/network that we're online. - * When re-attaching to an existing session we don't need to again send out a presence stanza, - * because it's as if "we never left" (see onConnectStatusChanged). - * https://github.com/conversejs/converse.js/issues/521 - */ - shared_converse.send_initial_presence = true; - _context.next = 15; - return initSessionStorage(shared_converse); - case 15: - _context.next = 17; - return initClientConfig(shared_converse); - case 17: - _context.next = 19; - return i18n.initialize(); - case 19: - initPlugins(shared_converse); - - // Register all custom elements - // XXX: api.elements is defined in the UI part of Converse, outside of @converse/headless. - // This line should probably be moved to the UI code as part of a larger refactoring. - (_api$elements = api.elements) === null || _api$elements === void 0 ? void 0 : _api$elements.register(); - registerGlobalEventHandlers(shared_converse); - try { - !History.started && shared_converse.router.history.start(); - } catch (e) { - log.error(e); - } - plugins = shared_converse.pluggable.plugins; - if (!(api.settings.get("auto_login") || api.settings.get("keepalive") && (_plugins$converseBos = plugins['converse-bosh']) !== null && _plugins$converseBos !== void 0 && _plugins$converseBos.enabled())) { - _context.next = 27; - break; - } - _context.next = 27; - return api.user.login(null, null, true); - case 27: - /** - * Triggered once converse.initialize has finished. - * @event _converse#initialized - */ - api.trigger('initialized'); - if (!shared_converse.isTestEnv()) { - _context.next = 30; - break; - } - return _context.abrupt("return", shared_converse); - case 30: - case "end": - return _context.stop(); - } - }, _callee); - }))(); - }, +var api_converse$env = public_converse.env, + api_Strophe = api_converse$env.Strophe, + api_$iq = api_converse$env.$iq; +/* harmony default export */ const disco_api = ({ /** - * Exposes methods for adding and removing plugins. You'll need to write a plugin - * if you want to have access to the private API methods defined further down below. + * The XEP-0030 service discovery API * - * For more information on plugins, read the documentation on [writing a plugin](/docs/html/plugin_development.html). - * @namespace plugins - * @memberOf converse + * This API lets you discover information about entities on the + * XMPP network. + * + * @namespace api.disco + * @memberOf api */ - plugins: { + disco: { /** - * Registers a new plugin. - * @method converse.plugins.add - * @param { string } name The name of the plugin - * @param { object } plugin The plugin object - * @example - * const plugin = { - * initialize: function () { - * // Gets called as soon as the plugin has been loaded. - * - * // Inside this method, you have access to the private - * // API via `_covnerse.api`. - * - * // The private _converse object contains the core logic - * // and data-structures of Converse. - * } - * } - * converse.plugins.add('myplugin', plugin); + * @namespace api.disco.stream + * @memberOf api.disco */ - add: function add(name, plugin) { - plugin.__name__ = name; - if (shared_converse.pluggable.plugins[name] !== undefined) { - throw new TypeError("Error: plugin with name \"".concat(name, "\" has already been ") + 'registered!'); - } else { - shared_converse.pluggable.plugins[name] = plugin; + stream: { + /** + * @method api.disco.stream.getFeature + * @param { String } name The feature name + * @param { String } xmlns The XML namespace + * @example _converse.api.disco.stream.getFeature('ver', 'urn:xmpp:features:rosterver') + */ + getFeature: function getFeature(name, xmlns) { + return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee() { + var msg; + return disco_api_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return shared_api.waitUntil('streamFeaturesAdded'); + case 2: + if (!(!name || !xmlns)) { + _context.next = 4; + break; + } + throw new Error("name and xmlns need to be provided when calling disco.stream.getFeature"); + case 4: + if (!(shared_converse.stream_features === undefined && !shared_api.connection.connected())) { + _context.next = 8; + break; + } + // Happens during tests when disco lookups happen asynchronously after teardown. + msg = "Tried to get feature ".concat(name, " ").concat(xmlns, " but _converse.stream_features has been torn down"); + log.warn(msg); + return _context.abrupt("return"); + case 8: + return _context.abrupt("return", shared_converse.stream_features.findWhere({ + 'name': name, + 'xmlns': xmlns + })); + case 9: + case "end": + return _context.stop(); + } + }, _callee); + }))(); } - } - }, - /** - * Utility methods and globals from bundled 3rd party libraries. - * @typedef ConverseEnv - * @property { Error } converse.env.TimeoutError - * @property { function } converse.env.$build - Creates a Strophe.Builder, for creating stanza objects. - * @property { function } converse.env.$iq - Creates a Strophe.Builder with an element as the root. - * @property { function } converse.env.$msg - Creates a Strophe.Builder with an element as the root. - * @property { function } converse.env.$pres - Creates a Strophe.Builder with an element as the root. - * @property { function } converse.env.Promise - The Promise implementation used by Converse. - * @property { function } converse.env.Strophe - The [Strophe](http://strophe.im/strophejs) XMPP library used by Converse. - * @property { function } converse.env.f - And instance of Lodash with its methods wrapped to produce immutable auto-curried iteratee-first data-last methods. - * @property { function } converse.env.sizzle - [Sizzle](https://sizzlejs.com) CSS selector engine. - * @property { function } converse.env.sprintf - * @property { object } converse.env._ - The instance of [lodash-es](http://lodash.com) used by Converse. - * @property { object } converse.env.dayjs - [DayJS](https://github.com/iamkun/dayjs) date manipulation library. - * @property { object } converse.env.utils - Module containing common utility methods used by Converse. - * @memberOf converse - */ - 'env': { - $build: $build, - $iq: $iq, - $msg: $msg, - $pres: $pres, - 'utils': utils_core, - Collection: Collection, - Model: Model, - Promise: Promise, - Strophe: Strophe, - TimeoutError: TimeoutError, - URI: (external_urijs_default()), - VERSION_NAME: VERSION_NAME, - dayjs: (dayjs_min_default()), - filesize: external_filesize_namespaceObject.filesize, - html: external_lit_namespaceObject.html, - log: log, - sizzle: (external_sizzle_default()), - sprintf: sprintf.sprintf, - stx: stx, - u: utils_core - } -}); -;// CONCATENATED MODULE: ./src/headless/core.js -/** - * @copyright The Converse.js contributors - * @license Mozilla Public License (MPLv2) - */ - - - - - - - - - - -dayjs_min_default().extend((advancedFormat_default())); -;// CONCATENATED MODULE: ./src/headless/plugins/chat/model-with-contact.js -function model_with_contact_typeof(obj) { - "@babel/helpers - typeof"; - - return model_with_contact_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, model_with_contact_typeof(obj); -} -function model_with_contact_regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - model_with_contact_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; - } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); - }); - }); - } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == model_with_contact_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - reject(record.arg); - } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); - } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; + /** + * @namespace api.disco.own + * @memberOf api.disco + */ + own: { + /** + * @namespace api.disco.own.identities + * @memberOf api.disco.own + */ + identities: { + /** + * Lets you add new identities for this client (i.e. instance of Converse) + * @method api.disco.own.identities.add + * + * @param { String } category - server, client, gateway, directory, etc. + * @param { String } type - phone, pc, web, etc. + * @param { String } name - "Converse" + * @param { String } lang - en, el, de, etc. + * + * @example _converse.api.disco.own.identities.clear(); + */ + add: function add(category, type, name, lang) { + for (var i = 0; i < shared_converse.disco._identities.length; i++) { + if (shared_converse.disco._identities[i].category == category && shared_converse.disco._identities[i].type == type && shared_converse.disco._identities[i].name == name && shared_converse.disco._identities[i].lang == lang) { + return false; + } } + shared_converse.disco._identities.push({ + category: category, + type: type, + name: name, + lang: lang + }); + }, + /** + * Clears all previously registered identities. + * @method api.disco.own.identities.clear + * @example _converse.api.disco.own.identities.clear(); + */ + clear: function clear() { + shared_converse.disco._identities = []; + }, + /** + * Returns all of the identities registered for this client + * (i.e. instance of Converse). + * @method api.disco.identities.get + * @example const identities = api.disco.own.identities.get(); + */ + get: function get() { + return shared_converse.disco._identities; } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done - }; - } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); - } - }; - } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); - } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); - } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal", delete record.arg, entry.completion = record; - } - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); - } - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) return iteratorMethod.call(iterable); - if ("function" == typeof iterable.next) return iterable; - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; - return next.value = undefined, next.done = !0, next; - }; - return next.next = next; - } - } - return { - next: doneResult - }; - } - function doneResult() { - return { - value: undefined, - done: !0 - }; - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { - var ctor = "function" == typeof genFun && genFun.constructor; - return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); - }, exports.mark = function (genFun) { - return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; - }, exports.awrap = function (arg) { - return { - __await: arg - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - void 0 === PromiseImpl && (PromiseImpl = Promise); - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { - return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; - } - return next.done = !0, next; - }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; - } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + }, + /** + * @namespace api.disco.own.features + * @memberOf api.disco.own + */ + features: { + /** + * Lets you register new disco features for this client (i.e. instance of Converse) + * @method api.disco.own.features.add + * @param { String } name - e.g. http://jabber.org/protocol/caps + * @example _converse.api.disco.own.features.add("http://jabber.org/protocol/caps"); + */ + add: function add(name) { + for (var i = 0; i < shared_converse.disco._features.length; i++) { + if (shared_converse.disco._features[i] == name) { + return false; + } } + shared_converse.disco._features.push(name); + }, + /** + * Clears all previously registered features. + * @method api.disco.own.features.clear + * @example _converse.api.disco.own.features.clear(); + */ + clear: function clear() { + shared_converse.disco._features = []; + }, + /** + * Returns all of the features registered for this client (i.e. instance of Converse). + * @method api.disco.own.features.get + * @example const features = api.disco.own.features.get(); + */ + get: function get() { + return shared_converse.disco._features; } } }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } + /** + * Query for information about an XMPP entity + * + * @method api.disco.info + * @param { string } jid The Jabber ID of the entity to query + * @param { string } [node] A specific node identifier associated with the JID + * @returns {promise} Promise which resolves once we have a result from the server. + */ + info: function info(jid, node) { + var attrs = { + xmlns: api_Strophe.NS.DISCO_INFO + }; + if (node) { + attrs.node = node; } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + var info = api_$iq({ + 'from': shared_converse.connection.jid, + 'to': jid, + 'type': 'get' + }).c('query', attrs); + return shared_api.sendIQ(info); }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + /** + * Query for items associated with an XMPP entity + * + * @method api.disco.items + * @param { string } jid The Jabber ID of the entity to query for items + * @param { string } [node] A specific node identifier associated with the JID + * @returns {promise} Promise which resolves once we have a result from the server. + */ + items: function items(jid, node) { + var attrs = { + 'xmlns': api_Strophe.NS.DISCO_ITEMS + }; + if (node) { + attrs.node = node; } + return shared_api.sendIQ(api_$iq({ + 'from': shared_converse.connection.jid, + 'to': jid, + 'type': 'get' + }).c('query', attrs)); }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } + /** + * Namespace for methods associated with disco entities + * + * @namespace api.disco.entities + * @memberOf api.disco + */ + entities: { + /** + * Get the corresponding `DiscoEntity` instance. + * + * @method api.disco.entities.get + * @param { string } jid The Jabber ID of the entity + * @param { boolean } [create] Whether the entity should be created if it doesn't exist. + * @example _converse.api.disco.entities.get(jid); + */ + get: function get(jid) { + var _arguments = arguments; + return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee2() { + var create, entity; + return disco_api_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + create = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : false; + _context2.next = 3; + return shared_api.waitUntil('discoInitialized'); + case 3: + if (jid) { + _context2.next = 5; + break; + } + return _context2.abrupt("return", shared_converse.disco_entities); + case 5: + if (!(shared_converse.disco_entities === undefined)) { + _context2.next = 8; + break; + } + // Happens during tests when disco lookups happen asynchronously after teardown. + log.warn("Tried to look up entity ".concat(jid, " but _converse.disco_entities has been torn down")); + return _context2.abrupt("return"); + case 8: + entity = shared_converse.disco_entities.get(jid); + if (!(entity || !create)) { + _context2.next = 11; + break; + } + return _context2.abrupt("return", entity); + case 11: + return _context2.abrupt("return", shared_api.disco.entities.create({ + jid: jid + })); + case 12: + case "end": + return _context2.stop(); + } + }, _callee2); + }))(); + }, + /** + * Return any disco items advertised on this entity + * + * @method api.disco.entities.items + * @param { string } jid The Jabber ID of the entity for which we want to fetch items + * @example api.disco.entities.items(jid); + */ + items: function items(jid) { + return shared_converse.disco_entities.filter(function (e) { + var _e$get; + return (_e$get = e.get('parent_jids')) === null || _e$get === void 0 ? void 0 : _e$get.includes(jid); + }); + }, + /** + * Create a new disco entity. It's identity and features + * will automatically be fetched from cache or from the + * XMPP server. + * + * Fetching from cache can be disabled by passing in + * `ignore_cache: true` in the options parameter. + * + * @method api.disco.entities.create + * @param { object } data + * @param { string } data.jid - The Jabber ID of the entity + * @param { string } data.parent_jid - The Jabber ID of the parent entity + * @param { string } data.name + * @param { object } [options] - Additional options + * @param { boolean } [options.ignore_cache] + * If true, fetch all features from the XMPP server instead of restoring them from cache + * @example _converse.api.disco.entities.create({ jid }, {'ignore_cache': true}); + */ + create: function create(data, options) { + return shared_converse.disco_entities.create(data, options); } - throw new Error("illegal catch attempt"); }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + /** + * @namespace api.disco.features + * @memberOf api.disco + */ + features: { + /** + * Return a given feature of a disco entity + * + * @method api.disco.features.get + * @param { string } feature The feature that might be + * supported. In the XML stanza, this is the `var` + * attribute of the `` element. For + * example: `http://jabber.org/protocol/muc` + * @param { string } jid The JID of the entity + * (and its associated items) which should be queried + * @returns {promise} A promise which resolves with a list containing + * _converse.Entity instances representing the entity + * itself or those items associated with the entity if + * they support the given feature. + * @example + * api.disco.features.get(Strophe.NS.MAM, _converse.bare_jid); + */ + get: function get(feature, jid) { + return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee3() { + var entity, promises, result; + return disco_api_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + if (jid) { + _context3.next = 2; + break; + } + throw new TypeError('You need to provide an entity JID'); + case 2: + _context3.next = 4; + return shared_api.disco.entities.get(jid, true); + case 4: + entity = _context3.sent; + if (!(shared_converse.disco_entities === undefined && !shared_api.connection.connected())) { + _context3.next = 8; + break; + } + // Happens during tests when disco lookups happen asynchronously after teardown. + log.warn("Tried to get feature ".concat(feature, " for ").concat(jid, " but _converse.disco_entities has been torn down")); + return _context3.abrupt("return", []); + case 8: + promises = [entity.getFeature(feature)].concat(api_toConsumableArray(shared_api.disco.entities.items(jid).map(function (i) { + return i.getFeature(feature); + }))); + _context3.next = 11; + return Promise.all(promises); + case 11: + result = _context3.sent; + return _context3.abrupt("return", result.filter(lodash_es_isObject)); + case 13: + case "end": + return _context3.stop(); + } + }, _callee3); + }))(); + }, + /** + * Returns true if an entity with the given JID, or if one of its + * associated items, supports a given feature. + * + * @method api.disco.features.has + * @param { string } feature The feature that might be + * supported. In the XML stanza, this is the `var` + * attribute of the `` element. For + * example: `http://jabber.org/protocol/muc` + * @param { string } jid The JID of the entity + * (and its associated items) which should be queried + * @returns {Promise} A promise which resolves with a boolean + * @example + * api.disco.features.has(Strophe.NS.MAM, _converse.bare_jid); + */ + has: function has(feature, jid) { + return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee4() { + var entity, result; + return disco_api_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + if (jid) { + _context4.next = 2; + break; + } + throw new TypeError('You need to provide an entity JID'); + case 2: + _context4.next = 4; + return shared_api.disco.entities.get(jid, true); + case 4: + entity = _context4.sent; + if (!(shared_converse.disco_entities === undefined && !shared_api.connection.connected())) { + _context4.next = 8; + break; + } + // Happens during tests when disco lookups happen asynchronously after teardown. + log.warn("Tried to check if ".concat(jid, " supports feature ").concat(feature)); + return _context4.abrupt("return", false); + case 8: + _context4.next = 10; + return entity.getFeature(feature); + case 10: + if (!_context4.sent) { + _context4.next = 12; + break; + } + return _context4.abrupt("return", true); + case 12: + _context4.next = 14; + return Promise.all(shared_api.disco.entities.items(jid).map(function (i) { + return i.getFeature(feature); + })); + case 14: + result = _context4.sent; + return _context4.abrupt("return", result.map(lodash_es_isObject).includes(true)); + case 16: + case "end": + return _context4.stop(); + } + }, _callee4); + }))(); + } + }, + /** + * Used to determine whether an entity supports a given feature. + * + * @method api.disco.supports + * @param { string } feature The feature that might be + * supported. In the XML stanza, this is the `var` + * attribute of the `` element. For + * example: `http://jabber.org/protocol/muc` + * @param { string } jid The JID of the entity + * (and its associated items) which should be queried + * @returns {promise} A promise which resolves with `true` or `false`. + * @example + * if (await api.disco.supports(Strophe.NS.MAM, _converse.bare_jid)) { + * // The feature is supported + * } else { + * // The feature is not supported + * } + */ + supports: function supports(feature, jid) { + return shared_api.disco.features.has(feature, jid); + }, + /** + * Refresh the features, fields and identities associated with a + * disco entity by refetching them from the server + * @method api.disco.refresh + * @param { string } jid The JID of the entity whose features are refreshed. + * @returns {promise} A promise which resolves once the features have been refreshed + * @example + * await api.disco.refresh('room@conference.example.org'); + */ + refresh: function refresh(jid) { + return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee5() { + var entity; + return disco_api_regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + if (jid) { + _context5.next = 2; + break; + } + throw new TypeError('api.disco.refresh: You need to provide an entity JID'); + case 2: + _context5.next = 4; + return shared_api.waitUntil('discoInitialized'); + case 4: + _context5.next = 6; + return shared_api.disco.entities.get(jid); + case 6: + entity = _context5.sent; + if (!entity) { + _context5.next = 15; + break; + } + entity.features.reset(); + entity.fields.reset(); + entity.identities.reset(); + if (!entity.waitUntilFeaturesDiscovered.isPending) { + entity.waitUntilFeaturesDiscovered = getOpenPromise(); + } + entity.queryInfo(); + _context5.next = 18; + break; + case 15: + _context5.next = 17; + return shared_api.disco.entities.create({ + jid: jid + }, { + 'ignore_cache': true + }); + case 17: + entity = _context5.sent; + case 18: + return _context5.abrupt("return", entity.waitUntilFeaturesDiscovered); + case 19: + case "end": + return _context5.stop(); + } + }, _callee5); + }))(); + }, + /** + * @deprecated Use {@link api.disco.refresh} instead. + * @method api.disco.refreshFeatures + */ + refreshFeatures: function refreshFeatures(jid) { + return shared_api.refresh(jid); + }, + /** + * Return all the features associated with a disco entity + * + * @method api.disco.getFeatures + * @param { string } jid The JID of the entity whose features are returned. + * @returns {promise} A promise which resolves with the returned features + * @example + * const features = await api.disco.getFeatures('room@conference.example.org'); + */ + getFeatures: function getFeatures(jid) { + return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee6() { + var entity; + return disco_api_regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + if (jid) { + _context6.next = 2; + break; + } + throw new TypeError('api.disco.getFeatures: You need to provide an entity JID'); + case 2: + _context6.next = 4; + return shared_api.waitUntil('discoInitialized'); + case 4: + _context6.next = 6; + return shared_api.disco.entities.get(jid, true); + case 6: + entity = _context6.sent; + _context6.next = 9; + return entity.waitUntilFeaturesDiscovered; + case 9: + entity = _context6.sent; + return _context6.abrupt("return", entity.features); + case 11: + case "end": + return _context6.stop(); + } + }, _callee6); + }))(); + }, + /** + * Return all the service discovery extensions fields + * associated with an entity. + * + * See [XEP-0129: Service Discovery Extensions](https://xmpp.org/extensions/xep-0128.html) + * + * @method api.disco.getFields + * @param { string } jid The JID of the entity whose fields are returned. + * @example + * const fields = await api.disco.getFields('room@conference.example.org'); + */ + getFields: function getFields(jid) { + return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee7() { + var entity; + return disco_api_regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + if (jid) { + _context7.next = 2; + break; + } + throw new TypeError('api.disco.getFields: You need to provide an entity JID'); + case 2: + _context7.next = 4; + return shared_api.waitUntil('discoInitialized'); + case 4: + _context7.next = 6; + return shared_api.disco.entities.get(jid, true); + case 6: + entity = _context7.sent; + _context7.next = 9; + return entity.waitUntilFeaturesDiscovered; + case 9: + entity = _context7.sent; + return _context7.abrupt("return", entity.fields); + case 11: + case "end": + return _context7.stop(); + } + }, _callee7); + }))(); + }, + /** + * Get the identity (with the given category and type) for a given disco entity. + * + * For example, when determining support for PEP (personal eventing protocol), you + * want to know whether the user's own JID has an identity with + * `category='pubsub'` and `type='pep'` as explained in this section of + * XEP-0163: https://xmpp.org/extensions/xep-0163.html#support + * + * @method api.disco.getIdentity + * @param { string } The identity category. + * In the XML stanza, this is the `category` + * attribute of the `` element. + * For example: 'pubsub' + * @param { string } type The identity type. + * In the XML stanza, this is the `type` + * attribute of the `` element. + * For example: 'pep' + * @param { string } jid The JID of the entity which might have the identity + * @returns {promise} A promise which resolves with a map indicating + * whether an identity with a given type is provided by the entity. + * @example + * api.disco.getIdentity('pubsub', 'pep', _converse.bare_jid).then( + * function (identity) { + * if (identity) { + * // The entity DOES have this identity + * } else { + * // The entity DOES NOT have this identity + * } + * } + * ).catch(e => log.error(e)); + */ + getIdentity: function getIdentity(category, type, jid) { + return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee8() { + var e, msg; + return disco_api_regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { + case 0: + _context8.next = 2; + return shared_api.disco.entities.get(jid, true); + case 2: + e = _context8.sent; + if (!(e === undefined && !shared_api.connection.connected())) { + _context8.next = 7; + break; + } + // Happens during tests when disco lookups happen asynchronously after teardown. + msg = "Tried to look up category ".concat(category, " for ").concat(jid, " but _converse.disco_entities has been torn down"); + log.warn(msg); + return _context8.abrupt("return"); + case 7: + return _context8.abrupt("return", e.getIdentity(category, type)); + case 8: + case "end": + return _context8.stop(); + } + }, _callee8); + }))(); } - }, exports; + } +}); +;// CONCATENATED MODULE: ./src/headless/plugins/disco/index.js +function disco_typeof(obj) { + "@babel/helpers - typeof"; + + return disco_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, disco_typeof(obj); } -function model_with_contact_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function disco_regeneratorRuntime() { + "use strict"; + + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + disco_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} -function model_with_contact_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - model_with_contact_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - model_with_contact_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); - }); - }; -} - - - -var ModelWithContact = Model.extend({ - initialize: function initialize() { - this.rosterContactAdded = getOpenPromise(); - }, - setRosterContact: function setRosterContact(jid) { - var _this = this; - return model_with_contact_asyncToGenerator( /*#__PURE__*/model_with_contact_regeneratorRuntime().mark(function _callee() { - var contact; - return model_with_contact_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return shared_api.contacts.get(jid); - case 2: - contact = _context.sent; - if (contact) { - _this.contact = contact; - _this.set('nickname', contact.get('nickname')); - _this.rosterContactAdded.resolve(); - } - case 4: - case "end": - return _context.stop(); - } - }, _callee); - }))(); - } -}); -/* harmony default export */ const model_with_contact = (ModelWithContact); -;// CONCATENATED MODULE: ./node_modules/lodash-es/isMatch.js - - - -/** - * Performs a partial deep comparison between `object` and `source` to - * determine if `object` contains equivalent property values. - * - * **Note:** This method is equivalent to `_.matches` when `source` is - * partially applied. - * - * Partial comparisons will match empty array and empty object `source` - * values against any array or object value, respectively. See `_.isEqual` - * for a list of supported value comparisons. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * - * _.isMatch(object, { 'b': 2 }); - * // => true - * - * _.isMatch(object, { 'b': 1 }); - * // => false - */ -function isMatch(object, source) { - return object === source || _baseIsMatch(object, source, _getMatchData(source)); -} -/* harmony default export */ const lodash_es_isMatch = (isMatch); -;// CONCATENATED MODULE: ./src/headless/shared/chat/utils.js -function chat_utils_typeof(obj) { - "@babel/helpers - typeof"; - - return chat_utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, chat_utils_typeof(obj); -} -function chat_utils_regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - chat_utils_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; } function tryCatch(fn, obj, arg) { try { @@ -37971,7 +36078,7 @@ function chat_utils_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == chat_utils_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == disco_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -38196,7 +36303,7 @@ function chat_utils_regeneratorRuntime() { } }, exports; } -function chat_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function disco_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -38210,868 +36317,439 @@ function chat_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, Promise.resolve(value).then(_next, _throw); } } -function chat_utils_asyncToGenerator(fn) { +function disco_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - chat_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + disco_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - chat_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + disco_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - - -var utils_u = public_converse.env.u; -function pruneHistory(model) { - var max_history = shared_api.settings.get('prune_messages_above'); - if (max_history && typeof max_history === 'number') { - if (model.messages.length > max_history) { - var non_empty_messages = model.messages.filter(function (m) { - return !utils_u.isEmptyMessage(m); - }); - if (non_empty_messages.length > max_history) { - while (non_empty_messages.length > max_history) { - non_empty_messages.shift().destroy(); - } - /** - * Triggered once the message history has been pruned, i.e. - * once older messages have been removed to keep the - * number of messages below the value set in `prune_messages_above`. - * @event _converse#historyPruned - * @type { _converse.ChatBox | _converse.ChatRoom } - * @example _converse.api.listen.on('historyPruned', this => { ... }); - */ - shared_api.trigger('historyPruned', model); - } - } - } -} - -/** - * Given an array of {@link MediaURLMetadata} objects and text, return an - * array of {@link MediaURL} objects. - * @param { Array } arr - * @param { String } text - * @returns{ Array } - */ -function utils_getMediaURLs(arr, text) { - var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; - /** - * @typedef { Object } MediaURLData - * An object representing a URL found in a chat message - * @property { Boolean } is_audio - * @property { Boolean } is_image - * @property { Boolean } is_video - * @property { String } end - * @property { String } start - * @property { String } url - */ - return arr.map(function (o) { - var start = o.start - offset; - var end = o.end - offset; - if (start < 0 || start >= text.length) { - return null; - } - return Object.assign({}, o, { - start: start, - end: end, - 'url': text.substring(o.start - offset, o.end - offset) - }); - }).filter(function (o) { - return o; - }); -} - /** - * Determines whether the given attributes of an incoming message - * represent a XEP-0308 correction and, if so, handles it appropriately. - * @private - * @method _converse.ChatBox#handleCorrection - * @param { _converse.ChatBox | _converse.ChatRoom } - * @param { object } attrs - Attributes representing a received - * message, as returned by {@link parseMessage} - * @returns { _converse.Message|undefined } Returns the corrected - * message or `undefined` if not applicable. + * @copyright The Converse.js contributors + * @license Mozilla Public License (MPLv2) + * @description Converse plugin which add support for XEP-0030: Service Discovery */ -function handleCorrection(_x, _x2) { - return _handleCorrection.apply(this, arguments); -} -function _handleCorrection() { - _handleCorrection = chat_utils_asyncToGenerator( /*#__PURE__*/chat_utils_regeneratorRuntime().mark(function _callee(model, attrs) { - var query, message, older_versions; - return chat_utils_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - if (!(!attrs.replace_id || !attrs.from)) { - _context.next = 2; - break; - } - return _context.abrupt("return"); - case 2: - query = attrs.type === 'groupchat' && attrs.occupant_id ? function (_ref) { - var m = _ref.attributes; - return m.msgid === attrs.replace_id && m.occupant_id == attrs.occupant_id; - } - // eslint-disable-next-line no-eq-null - : function (_ref2) { - var m = _ref2.attributes; - return m.msgid === attrs.replace_id && m.from === attrs.from && m.occupant_id == null; - }; - message = model.messages.models.find(query); - if (message) { - _context.next = 9; - break; - } - attrs['older_versions'] = {}; - _context.next = 8; - return model.createMessage(attrs); - case 8: - return _context.abrupt("return", _context.sent); - case 9: - older_versions = message.get('older_versions') || {}; - if (attrs.time < message.get('time') && message.get('edited')) { - // This is an older message which has been corrected afterwards - older_versions[attrs.time] = attrs['message']; - message.save({ - 'older_versions': older_versions - }); - } else { - // This is a correction of an earlier message we already received - if (Object.keys(older_versions).length) { - older_versions[message.get('edited')] = message.getMessageText(); - } else { - older_versions[message.get('time')] = message.getMessageText(); - } - attrs = Object.assign(attrs, { - older_versions: older_versions - }); - delete attrs['msgid']; // We want to keep the msgid of the original message - delete attrs['id']; // Delete id, otherwise a new cache entry gets created - attrs['time'] = message.get('time'); - message.save(attrs); - } - return _context.abrupt("return", message); - case 12: - case "end": - return _context.stop(); - } - }, _callee); - })); - return _handleCorrection.apply(this, arguments); -} -var debouncedPruneHistory = lodash_es_debounce(pruneHistory, 500); -;// CONCATENATED MODULE: ./src/headless/shared/actions.js -var actions_u = public_converse.env.utils; -function rejectMessage(stanza, text) { - // Reject an incoming message by replying with an error message of type "cancel". - shared_api.send($msg({ - 'to': stanza.getAttribute('from'), - 'type': 'error', - 'id': stanza.getAttribute('id') - }).c('error', { - 'type': 'cancel' - }).c('not-allowed', { - xmlns: 'urn:ietf:params:xml:ns:xmpp-stanzas' - }).up().c('text', { - xmlns: 'urn:ietf:params:xml:ns:xmpp-stanzas' - }).t(text)); - log.warn("Rejecting message stanza with the following reason: ".concat(text)); - log.warn(stanza); -} - -/** - * Send out a XEP-0333 chat marker - * @param { String } to_jid - * @param { String } id - The id of the message being marked - * @param { String } type - The marker type - * @param { String } msg_type - */ -function sendMarker(to_jid, id, type, msg_type) { - var stanza = $msg({ - 'from': shared_converse.connection.jid, - 'id': actions_u.getUniqueId(), - 'to': to_jid, - 'type': msg_type ? msg_type : 'chat' - }).c(type, { - 'xmlns': Strophe.NS.MARKERS, - 'id': id - }); - shared_api.send(stanza); -} -;// CONCATENATED MODULE: ./src/headless/utils/url.js - -var url_u = public_converse.env.u; +var disco_Strophe = public_converse.env.Strophe; +public_converse.plugins.add('converse-disco', { + initialize: function initialize() { + Object.assign(shared_api, disco_api); + shared_api.promises.add('discoInitialized'); + shared_api.promises.add('streamFeaturesAdded'); + shared_converse.DiscoEntity = entity; + shared_converse.DiscoEntities = entities; + shared_converse.disco = { + _identities: [], + _features: [] + }; + shared_api.listen.on('userSessionInitialized', /*#__PURE__*/disco_asyncToGenerator( /*#__PURE__*/disco_regeneratorRuntime().mark(function _callee() { + return disco_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + initStreamFeatures(); + if (!(shared_converse.connfeedback.get('connection_status') === disco_Strophe.Status.ATTACHED)) { + _context.next = 5; + break; + } + _context.next = 4; + return new Promise(function (success, error) { + return shared_converse.stream_features.fetch({ + success: success, + error: error + }); + }); + case 4: + notifyStreamFeaturesAdded(); + case 5: + case "end": + return _context.stop(); + } + }, _callee); + }))); + shared_api.listen.on('beforeResourceBinding', populateStreamFeatures); + shared_api.listen.on('reconnected', initializeDisco); + shared_api.listen.on('connected', initializeDisco); + shared_api.listen.on('beforeTearDown', /*#__PURE__*/disco_asyncToGenerator( /*#__PURE__*/disco_regeneratorRuntime().mark(function _callee2() { + return disco_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + shared_api.promises.add('streamFeaturesAdded'); + if (!shared_converse.stream_features) { + _context2.next = 5; + break; + } + _context2.next = 4; + return shared_converse.stream_features.clearStore(); + case 4: + delete shared_converse.stream_features; + case 5: + case "end": + return _context2.stop(); + } + }, _callee2); + }))); -/** - * Given a url, check whether the protocol being used is allowed for rendering - * the media in the chat (as opposed to just rendering a URL hyperlink). - * @param { String } url - * @returns { Boolean } - */ -function isAllowedProtocolForMedia(url) { - var uri = getURI(url); - var protocol = window.location.protocol; - if (['chrome-extension:', 'file:'].includes(protocol)) { - return true; - } - return protocol === 'http:' || protocol === 'https:' && ['https', 'aesgcm'].includes(uri.protocol().toLowerCase()); -} -function getURI(url) { - try { - return url instanceof (external_urijs_default()) ? url : new (external_urijs_default())(url); - } catch (error) { - log.debug(error); - return null; + // All disco entities stored in sessionStorage and are refetched + // upon login or reconnection and then stored with new ids, so to + // avoid sessionStorage filling up, we remove them. + shared_api.listen.on('will-reconnect', utils_clearSession); + shared_api.listen.on('clearSession', utils_clearSession); } +}); +;// CONCATENATED MODULE: ./src/headless/plugins/emoji/regexes.js +var ASCII_REGEX = '(\\*\\\\0\\/\\*|\\*\\\\O\\/\\*|\\-___\\-|\\:\'\\-\\)|\'\\:\\-\\)|\'\\:\\-D|\\>\\:\\-\\)|>\\:\\-\\)|\'\\:\\-\\(|\\>\\:\\-\\(|>\\:\\-\\(|\\:\'\\-\\(|O\\:\\-\\)|0\\:\\-3|0\\:\\-\\)|0;\\^\\)|O;\\-\\)|0;\\-\\)|O\\:\\-3|\\-__\\-|\\:\\-Þ|\\:\\-Þ|\\<\\/3|<\\/3|\\:\'\\)|\\:\\-D|\'\\:\\)|\'\\=\\)|\'\\:D|\'\\=D|\\>\\:\\)|>\\:\\)|\\>;\\)|>;\\)|\\>\\=\\)|>\\=\\)|;\\-\\)|\\*\\-\\)|;\\-\\]|;\\^\\)|\'\\:\\(|\'\\=\\(|\\:\\-\\*|\\:\\^\\*|\\>\\:P|>\\:P|X\\-P|\\>\\:\\[|>\\:\\[|\\:\\-\\(|\\:\\-\\[|\\>\\:\\(|>\\:\\(|\\:\'\\(|;\\-\\(|\\>\\.\\<|>\\.<|#\\-\\)|%\\-\\)|X\\-\\)|\\\\0\\/|\\\\O\\/|0\\:3|0\\:\\)|O\\:\\)|O\\=\\)|O\\:3|B\\-\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\>\\:\\\\|>\\:\\\\|\\>\\:\\/|>\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\-P|\\:Þ|\\:Þ|\\:\\-b|\\:\\-O|O_O|\\>\\:O|>\\:O|\\:\\-X|\\:\\-#|\\:\\-\\)|\\(y\\)|\\<3|<3|\\:D|\\=D|;\\)|\\*\\)|;\\]|;D|\\:\\*|\\=\\*|\\:\\(|\\:\\[|\\=\\(|\\:@|;\\(|D\\:|\\:\\$|\\=\\$|#\\)|%\\)|X\\)|B\\)|8\\)|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\=P|\\:b|\\:O|\\:X|\\:#|\\=X|\\=#|\\:\\)|\\=\\]|\\=\\)|\\:\\])'; +var ASCII_REPLACE_REGEX = new RegExp("]*>.*?<\/object>|]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)" + ASCII_REGEX + "(?=\\s|$|[!,.?]))", "gi"); +var CODEPOINTS_REGEX = /(?:\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1|\ud83d\udc6b\ud83c[\udffb-\udfff]|\ud83d\udc6c\ud83c[\udffb-\udfff]|\ud83d\udc6d\ud83c[\udffb-\udfff]|\ud83d[\udc6b-\udc6d])|(?:\ud83d[\udc68\udc69]|\ud83e\uddd1)(?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92]|\ud83e[\uddaf-\uddb3\uddbc\uddbd])|(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75]|\u26f9)((?:\ud83c[\udffb-\udfff]|\ufe0f)\u200d[\u2640\u2642]\ufe0f)|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd35\udd37-\udd39\udd3d\udd3e\uddb8\uddb9\uddcd-\uddcf\uddd6-\udddd])(?:\ud83c[\udffb-\udfff])?\u200d[\u2640\u2642]\ufe0f|(?:\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc15\u200d\ud83e\uddba|\ud83d\udc41\u200d\ud83d\udde8|\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc6f\u200d\u2640\ufe0f|\ud83d\udc6f\u200d\u2642\ufe0f|\ud83e\udd3c\u200d\u2640\ufe0f|\ud83e\udd3c\u200d\u2642\ufe0f|\ud83e\uddde\u200d\u2640\ufe0f|\ud83e\uddde\u200d\u2642\ufe0f|\ud83e\udddf\u200d\u2640\ufe0f|\ud83e\udddf\u200d\u2642\ufe0f)|[#*0-9]\ufe0f?\u20e3|(?:[©®\u2122\u265f]\ufe0f)|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcd\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u203c\u2049\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2697\u2699\u269b\u269c\u26a0\u26a1\u26a7\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))|(?:(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75\udd90]|[\u261d\u26f7\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|(?:\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0\udecc]|\ud83e[\udd0f\udd18-\udd1c\udd1e\udd1f\udd26\udd30-\udd39\udd3d\udd3e\uddb5\uddb6\uddb8\uddb9\uddbb\uddcd-\uddcf\uddd1-\udddd]|[\u270a\u270b]))(?:\ud83c[\udffb-\udfff])?|(?:\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf3\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\uded0-\uded2\uded5\udeeb\udeec\udef4-\udefa\udfe0-\udfeb]|\ud83e[\udd0d\udd0e\udd10-\udd17\udd1d\udd20-\udd25\udd27-\udd2f\udd3a\udd3c\udd3f-\udd45\udd47-\udd71\udd73-\udd76\udd7a-\udda2\udda5-\uddaa\uddae-\uddb4\uddb7\uddba\uddbc-\uddca\uddd0\uddde-\uddff\ude70-\ude73\ude78-\ude7a\ude80-\ude82\ude90-\ude95]|[\u23e9-\u23ec\u23f0\u23f3\u267e\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a])|\ufe0f/g; +;// CONCATENATED MODULE: ./src/headless/plugins/emoji/utils.js +function utils_toConsumableArray(arr) { + return utils_arrayWithoutHoles(arr) || utils_iterableToArray(arr) || utils_unsupportedIterableToArray(arr) || utils_nonIterableSpread(); } - -/** - * Given the an array of file extensions, check whether a URL points to a file - * ending in one of them. - * @param { String[] } types - An array of file extensions - * @param { String } url - * @returns { Boolean } - * @example - * checkFileTypes(['.gif'], 'https://conversejs.org/cat.gif?foo=bar'); - */ -function checkFileTypes(types, url) { - var uri = getURI(url); - if (uri === null) { - throw new Error("checkFileTypes: could not parse url ".concat(url)); - } - var filename = uri.filename().toLowerCase(); - return !!types.filter(function (ext) { - return filename.endsWith(ext); - }).length; +function utils_nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function isDomainWhitelisted(whitelist, url) { - var uri = getURI(url); - var subdomain = uri.subdomain(); - var domain = uri.domain(); - var fulldomain = "".concat(subdomain ? "".concat(subdomain, ".") : '').concat(domain); - return whitelist.includes(domain) || whitelist.includes(fulldomain); +function utils_unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return utils_arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return utils_arrayLikeToArray(o, minLen); } -function shouldRenderMediaFromURL(url_text, type) { - if (!isAllowedProtocolForMedia(url_text)) { - return false; - } - var may_render = shared_api.settings.get('render_media'); - var is_domain_allowed = isDomainAllowed(url_text, "allowed_".concat(type, "_domains")); - if (Array.isArray(may_render)) { - return is_domain_allowed && isDomainWhitelisted(may_render, url_text); - } else { - return is_domain_allowed && may_render; - } +function utils_iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } -function filterQueryParamsFromURL(url) { - var paramsArray = shared_api.settings.get('filter_url_query_params'); - if (!paramsArray) return url; - var parsed_uri = getURI(url); - return parsed_uri.removeQuery(paramsArray).toString(); +function utils_arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return utils_arrayLikeToArray(arr); } -function isDomainAllowed(url, setting) { - var allowed_domains = shared_api.settings.get(setting); - if (!Array.isArray(allowed_domains)) { - return true; - } - try { - return isDomainWhitelisted(allowed_domains, url); - } catch (error) { - log.debug(error); - return false; - } +function utils_arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; } -/** - * Accepts a {@link MediaURL} object and then checks whether its domain is - * allowed for rendering in the chat. - * @param { MediaURL } o - * @returns { Bool } - */ -function isMediaURLDomainAllowed(o) { - return o.is_audio && isDomainAllowed(o.url, 'allowed_audio_domains') || o.is_video && isDomainAllowed(o.url, 'allowed_video_domains') || o.is_image && isDomainAllowed(o.url, 'allowed_image_domains'); -} -function isURLWithImageExtension(url) { - return checkFileTypes(['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.tiff', '.svg'], url); -} -function isGIFURL(url) { - return checkFileTypes(['.gif'], url); -} -function isAudioURL(url) { - return checkFileTypes(['.ogg', '.mp3', '.m4a'], url); -} -function isVideoURL(url) { - return checkFileTypes(['.mp4', '.webm'], url); -} -function isImageURL(url) { - var regex = shared_api.settings.get('image_urls_regex'); - return (regex === null || regex === void 0 ? void 0 : regex.test(url)) || isURLWithImageExtension(url); -} -function isEncryptedFileURL(url) { - return url.startsWith('aesgcm://'); -} -Object.assign(url_u, { - isAudioURL: isAudioURL, - isGIFURL: isGIFURL, - isVideoURL: isVideoURL, - isImageURL: isImageURL, - isURLWithImageExtension: isURLWithImageExtension, - checkFileTypes: checkFileTypes, - getURI: getURI, - shouldRenderMediaFromURL: shouldRenderMediaFromURL, - isAllowedProtocolForMedia: isAllowedProtocolForMedia -}); -;// CONCATENATED MODULE: ./src/headless/shared/parsers.js -function parsers_typeof(obj) { - "@babel/helpers - typeof"; - return parsers_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, parsers_typeof(obj); -} -function parsers_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, parsers_toPropertyKey(descriptor.key), descriptor); +var emoji_utils_u = public_converse.env.u; + +// Closured cache +var emojis_by_attribute = {}; +var ASCII_LIST = { + '*\\0/*': '1f646', + '*\\O/*': '1f646', + '-___-': '1f611', + ':\'-)': '1f602', + '\':-)': '1f605', + '\':-D': '1f605', + '>:-)': '1f606', + '\':-(': '1f613', + '>:-(': '1f620', + ':\'-(': '1f622', + 'O:-)': '1f607', + '0:-3': '1f607', + '0:-)': '1f607', + '0;^)': '1f607', + 'O;-)': '1f607', + '0;-)': '1f607', + 'O:-3': '1f607', + '-__-': '1f611', + ':-Þ': '1f61b', + ':)': '1f606', + '>;)': '1f606', + '>=)': '1f606', + ';-)': '1f609', + '*-)': '1f609', + ';-]': '1f609', + ';^)': '1f609', + '\':(': '1f613', + '\'=(': '1f613', + ':-*': '1f618', + ':^*': '1f618', + '>:P': '1f61c', + 'X-P': '1f61c', + '>:[': '1f61e', + ':-(': '1f61e', + ':-[': '1f61e', + '>:(': '1f620', + ':\'(': '1f622', + ';-(': '1f622', + '>.<': '1f623', + '#-)': '1f635', + '%-)': '1f635', + 'X-)': '1f635', + '\\0/': '1f646', + '\\O/': '1f646', + '0:3': '1f607', + '0:)': '1f607', + 'O:)': '1f607', + 'O=)': '1f607', + 'O:3': '1f607', + 'B-)': '1f60e', + '8-)': '1f60e', + 'B-D': '1f60e', + '8-D': '1f60e', + '-_-': '1f611', + '>:\\': '1f615', + '>:/': '1f615', + ':-/': '1f615', + ':-.': '1f615', + ':-P': '1f61b', + ':Þ': '1f61b', + ':-b': '1f61b', + ':-O': '1f62e', + 'O_O': '1f62e', + '>:O': '1f62e', + ':-X': '1f636', + ':-#': '1f636', + ':-)': '1f642', + '(y)': '1f44d', + '<3': '2764', + ':D': '1f603', + '=D': '1f603', + ';)': '1f609', + '*)': '1f609', + ';]': '1f609', + ';D': '1f609', + ':*': '1f618', + '=*': '1f618', + ':(': '1f61e', + ':[': '1f61e', + '=(': '1f61e', + ':@': '1f620', + ';(': '1f622', + 'D:': '1f628', + ':$': '1f633', + '=$': '1f633', + '#)': '1f635', + '%)': '1f635', + 'X)': '1f635', + 'B)': '1f60e', + '8)': '1f60e', + ':/': '1f615', + ':\\': '1f615', + '=/': '1f615', + '=\\': '1f615', + ':L': '1f615', + '=L': '1f615', + ':P': '1f61b', + '=P': '1f61b', + ':b': '1f61b', + ':O': '1f62e', + ':X': '1f636', + ':#': '1f636', + '=X': '1f636', + '=#': '1f636', + ':)': '1f642', + '=]': '1f642', + '=)': '1f642', + ':]': '1f642' +}; +function toCodePoint(unicode_surrogates) { + var r = []; + var p = 0; + var i = 0; + while (i < unicode_surrogates.length) { + var c = unicode_surrogates.charCodeAt(i++); + if (p) { + r.push((0x10000 + (p - 0xD800 << 10) + (c - 0xDC00)).toString(16)); + p = 0; + } else if (0xD800 <= c && c <= 0xDBFF) { + p = c; + } else { + r.push(c.toString(16)); + } } + return r.join('-'); } -function parsers_createClass(Constructor, protoProps, staticProps) { - if (protoProps) parsers_defineProperties(Constructor.prototype, protoProps); - if (staticProps) parsers_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function parsers_toPropertyKey(arg) { - var key = parsers_toPrimitive(arg, "string"); - return parsers_typeof(key) === "symbol" ? key : String(key); -} -function parsers_toPrimitive(input, hint) { - if (parsers_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (parsers_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); +function fromCodePoint(codepoint) { + var code = typeof codepoint === 'string' ? parseInt(codepoint, 16) : codepoint; + if (code < 0x10000) { + return String.fromCharCode(code); } - return (hint === "string" ? String : Number)(input); + code -= 0x10000; + return String.fromCharCode(0xD800 + (code >> 10), 0xDC00 + (code & 0x3FF)); } -function parsers_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); +function convert(unicode) { + // Converts unicode code points and code pairs to their respective characters + if (unicode.indexOf("-") > -1) { + var parts = [], + s = unicode.split('-'); + for (var i = 0; i < s.length; i++) { + var part = parseInt(s[i], 16); + if (part >= 0x10000 && part <= 0x10FFFF) { + var hi = Math.floor((part - 0x10000) / 0x400) + 0xD800; + var lo = (part - 0x10000) % 0x400 + 0xDC00; + part = String.fromCharCode(hi) + String.fromCharCode(lo); + } else { + part = String.fromCharCode(part); + } + parts.push(part); + } + return parts.join(''); } + return fromCodePoint(unicode); } -function parsers_inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true +function convertASCII2Emoji(str) { + // Replace ASCII smileys + return str.replace(ASCII_REPLACE_REGEX, function (entire, _, m2, m3) { + if (typeof m3 === 'undefined' || m3 === '' || !(emoji_utils_u.unescapeHTML(m3) in ASCII_LIST)) { + // if the ascii doesnt exist just return the entire match + return entire; } + m3 = emoji_utils_u.unescapeHTML(m3); + var unicode = ASCII_LIST[m3].toUpperCase(); + return m2 + convert(unicode); }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) parsers_setPrototypeOf(subClass, superClass); -} -function parsers_createSuper(Derived) { - var hasNativeReflectConstruct = parsers_isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = parsers_getPrototypeOf(Derived), - result; - if (hasNativeReflectConstruct) { - var NewTarget = parsers_getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return parsers_possibleConstructorReturn(this, result); - }; -} -function parsers_possibleConstructorReturn(self, call) { - if (call && (parsers_typeof(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return parsers_assertThisInitialized(self); } -function parsers_assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); +function getShortnameReferences(text) { + if (!public_converse.emojis.initialized) { + throw new Error('getShortnameReferences called before emojis are initialized. ' + 'To avoid this problem, first await the converse.emojis.initialized_promise'); } - return self; -} -function parsers_wrapNativeSuper(Class) { - var _cache = typeof Map === "function" ? new Map() : undefined; - parsers_wrapNativeSuper = function _wrapNativeSuper(Class) { - if (Class === null || !parsers_isNativeFunction(Class)) return Class; - if (typeof Class !== "function") { - throw new TypeError("Super expression must either be null or a function"); - } - if (typeof _cache !== "undefined") { - if (_cache.has(Class)) return _cache.get(Class); - _cache.set(Class, Wrapper); - } - function Wrapper() { - return parsers_construct(Class, arguments, parsers_getPrototypeOf(this).constructor); - } - Wrapper.prototype = Object.create(Class.prototype, { - constructor: { - value: Wrapper, - enumerable: false, - writable: true, - configurable: true - } - }); - return parsers_setPrototypeOf(Wrapper, Class); - }; - return parsers_wrapNativeSuper(Class); -} -function parsers_construct(Parent, args, Class) { - if (parsers_isNativeReflectConstruct()) { - parsers_construct = Reflect.construct.bind(); - } else { - parsers_construct = function _construct(Parent, args, Class) { - var a = [null]; - a.push.apply(a, args); - var Constructor = Function.bind.apply(Parent, a); - var instance = new Constructor(); - if (Class) parsers_setPrototypeOf(instance, Class.prototype); - return instance; + var references = utils_toConsumableArray(text.matchAll(public_converse.emojis.shortnames_regex)).filter(function (ref) { + return ref[0].length > 0; + }); + return references.map(function (ref) { + var cp = public_converse.emojis.by_sn[ref[0]].cp; + return { + cp: cp, + 'begin': ref.index, + 'end': ref.index + ref[0].length, + 'shortname': ref[0], + 'emoji': cp ? convert(cp) : null }; - } - return parsers_construct.apply(null, arguments); -} -function parsers_isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; - } + }); } -function parsers_isNativeFunction(fn) { - return Function.toString.call(fn).indexOf("[native code]") !== -1; +function parseStringForEmojis(str, callback) { + var UFE0Fg = /\uFE0F/g; + var U200D = String.fromCharCode(0x200D); + return String(str).replace(CODEPOINTS_REGEX, function (emoji, _, offset) { + var icon_id = toCodePoint(emoji.indexOf(U200D) < 0 ? emoji.replace(UFE0Fg, '') : emoji); + if (icon_id) callback(icon_id, emoji, offset); + }); } -function parsers_setPrototypeOf(o, p) { - parsers_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - return parsers_setPrototypeOf(o, p); +function getCodePointReferences(text) { + var references = []; + parseStringForEmojis(text, function (icon_id, emoji, offset) { + var _getEmojisByAtrribute; + references.push({ + 'begin': offset, + 'cp': icon_id, + 'emoji': emoji, + 'end': offset + emoji.length, + 'shortname': ((_getEmojisByAtrribute = getEmojisByAtrribute('cp')[icon_id]) === null || _getEmojisByAtrribute === void 0 ? void 0 : _getEmojisByAtrribute.sn) || '' + }); + }); + return references; } -function parsers_getPrototypeOf(o) { - parsers_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return parsers_getPrototypeOf(o); +function addEmojisMarkup(text) { + var list = [text]; + [].concat(utils_toConsumableArray(getShortnameReferences(text)), utils_toConsumableArray(getCodePointReferences(text))).sort(function (a, b) { + return b.begin - a.begin; + }).forEach(function (ref) { + var text = list.shift(); + var emoji = ref.emoji || ref.shortname; + list = [text.slice(0, ref.begin) + emoji + text.slice(ref.end)].concat(utils_toConsumableArray(list)); + }); + return list; } - - - - - - - - - -var parsers_NS = Strophe.NS; -var StanzaParseError = /*#__PURE__*/function (_Error) { - parsers_inherits(StanzaParseError, _Error); - var _super = parsers_createSuper(StanzaParseError); - function StanzaParseError(message, stanza) { - var _this; - parsers_classCallCheck(this, StanzaParseError); - _this = _super.call(this, message, stanza); - _this.name = 'StanzaParseError'; - _this.stanza = stanza; - return _this; - } - return parsers_createClass(StanzaParseError); -}( /*#__PURE__*/parsers_wrapNativeSuper(Error)); - /** - * Extract the XEP-0359 stanza IDs from the passed in stanza - * and return a map containing them. - * @private - * @param { Element } stanza - The message stanza - * @returns { Object } + * Replaces all shortnames in the passed in string with their + * unicode (emoji) representation. + * @namespace u + * @method u.shortnamesToUnicode + * @param { String } str - String containing the shortname(s) + * @returns { String } */ -function getStanzaIDs(stanza, original_stanza) { - var attrs = {}; - // Store generic stanza ids - var sids = external_sizzle_default()("stanza-id[xmlns=\"".concat(Strophe.NS.SID, "\"]"), stanza); - var sid_attrs = sids.reduce(function (acc, s) { - acc["stanza_id ".concat(s.getAttribute('by'))] = s.getAttribute('id'); - return acc; - }, {}); - Object.assign(attrs, sid_attrs); - - // Store the archive id - var result = external_sizzle_default()("message > result[xmlns=\"".concat(Strophe.NS.MAM, "\"]"), original_stanza).pop(); - if (result) { - var by_jid = original_stanza.getAttribute('from') || shared_converse.bare_jid; - attrs["stanza_id ".concat(by_jid)] = result.getAttribute('id'); - } - - // Store the origin id - var origin_id = external_sizzle_default()("origin-id[xmlns=\"".concat(Strophe.NS.SID, "\"]"), stanza).pop(); - if (origin_id) { - attrs['origin_id'] = origin_id.getAttribute('id'); - } - return attrs; +function shortnamesToUnicode(str) { + return addEmojisMarkup(convertASCII2Emoji(str)).pop(); } -function getEncryptionAttributes(stanza) { - var eme_tag = external_sizzle_default()("encryption[xmlns=\"".concat(Strophe.NS.EME, "\"]"), stanza).pop(); - var namespace = eme_tag === null || eme_tag === void 0 ? void 0 : eme_tag.getAttribute('namespace'); - var attrs = {}; - if (namespace) { - attrs.is_encrypted = true; - attrs.encryption_namespace = namespace; - } else if (external_sizzle_default()("encrypted[xmlns=\"".concat(Strophe.NS.OMEMO, "\"]"), stanza).pop()) { - attrs.is_encrypted = true; - attrs.encryption_namespace = Strophe.NS.OMEMO; + +/** + * Determines whether the passed in string is just a single emoji shortname; + * @namespace u + * @method u.isOnlyEmojis + * @param { String } text - A string which migh be just an emoji shortname + * @returns { Boolean } + */ +function isOnlyEmojis(text) { + var words = text.trim().split(/\s+/); + if (words.length === 0 || words.length > 3) { + return false; } - return attrs; + var emojis = words.filter(function (text) { + var refs = getCodePointReferences(emoji_utils_u.shortnamesToUnicode(text)); + return refs.length === 1 && (text === refs[0]['shortname'] || text === refs[0]['emoji']); + }); + return emojis.length === words.length; } /** - * @private - * @param { Element } stanza - The message stanza - * @param { Element } original_stanza - The original stanza, that contains the - * message stanza, if it was contained, otherwise it's the message stanza itself. + * @namespace u + * @method u.getEmojisByAtrribute + * @param { 'category'|'cp'|'sn' } attr + * The attribute according to which the returned map should be keyed. * @returns { Object } + * Map of emojis with the passed in `attr` used as key and a list of emojis as values. */ -function getRetractionAttributes(stanza, original_stanza) { - var fastening = external_sizzle_default()("> apply-to[xmlns=\"".concat(Strophe.NS.FASTEN, "\"]"), stanza).pop(); - if (fastening) { - var applies_to_id = fastening.getAttribute('id'); - var retracted = external_sizzle_default()("> retract[xmlns=\"".concat(Strophe.NS.RETRACT, "\"]"), fastening).pop(); - if (retracted) { - var delay = external_sizzle_default()("delay[xmlns=\"".concat(Strophe.NS.DELAY, "\"]"), original_stanza).pop(); - var time = delay ? dayjs_min_default()(delay.getAttribute('stamp')).toISOString() : new Date().toISOString(); - return { - 'editable': false, - 'retracted': time, - 'retracted_id': applies_to_id - }; - } - } else { - var tombstone = external_sizzle_default()("> retracted[xmlns=\"".concat(Strophe.NS.RETRACT, "\"]"), stanza).pop(); - if (tombstone) { - return { - 'editable': false, - 'is_tombstone': true, - 'retracted': tombstone.getAttribute('stamp') - }; - } +function getEmojisByAtrribute(attr) { + if (emojis_by_attribute[attr]) { + return emojis_by_attribute[attr]; } - return {}; -} -function getCorrectionAttributes(stanza, original_stanza) { - var el = external_sizzle_default()("replace[xmlns=\"".concat(Strophe.NS.MESSAGE_CORRECT, "\"]"), stanza).pop(); - if (el) { - var replace_id = el.getAttribute('id'); - if (replace_id) { - var delay = external_sizzle_default()("delay[xmlns=\"".concat(Strophe.NS.DELAY, "\"]"), original_stanza).pop(); - var time = delay ? dayjs_min_default()(delay.getAttribute('stamp')).toISOString() : new Date().toISOString(); - return { - replace_id: replace_id, - 'edited': time - }; - } + if (attr === 'category') { + return public_converse.emojis.json; } - return {}; + var all_variants = public_converse.emojis.list.map(function (e) { + return e[attr]; + }).filter(function (c, i, arr) { + return arr.indexOf(c) == i; + }); + emojis_by_attribute[attr] = {}; + all_variants.forEach(function (v) { + return emojis_by_attribute[attr][v] = public_converse.emojis.list.find(function (i) { + return i[attr] === v; + }); + }); + return emojis_by_attribute[attr]; } -function getOpenGraphMetadata(stanza) { - var fastening = external_sizzle_default()("> apply-to[xmlns=\"".concat(Strophe.NS.FASTEN, "\"]"), stanza).pop(); - if (fastening) { - var applies_to_id = fastening.getAttribute('id'); - var meta = external_sizzle_default()("> meta[xmlns=\"".concat(Strophe.NS.XHTML, "\"]"), fastening); - if (meta.length) { - var msg_limit = shared_api.settings.get('message_limit'); - var data = meta.reduce(function (acc, el) { - var property = el.getAttribute('property'); - if (property) { - var value = decodeHTMLEntities(el.getAttribute('content') || ''); - if (msg_limit && property === 'og:description' && value.length >= msg_limit) { - value = "".concat(value.slice(0, msg_limit)).concat(decodeHTMLEntities('…')); - } - acc[property] = value; - } - return acc; - }, { - 'ogp_for_id': applies_to_id - }); - if ("og:description" in data || "og:title" in data || "og:image" in data) { - return data; - } - } - } - return {}; -} -function getMediaURLsMetadata(text) { - var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - var objs = []; - if (!text) { - return {}; - } - try { - external_urijs_default().withinString(text, function (url, start, end) { - if (url.startsWith('_')) { - url = url.slice(1); - start += 1; - } - if (url.endsWith('_')) { - url = url.slice(0, url.length - 1); - end -= 1; - } - objs.push({ - url: url, - 'start': start + offset, - 'end': end + offset - }); - return url; - }, URL_PARSE_OPTIONS); - } catch (error) { - log.debug(error); - } - - /** - * @typedef { Object } MediaURLMetadata - * An object representing the metadata of a URL found in a chat message - * The actual URL is not saved, it can be extracted via the `start` and `end` indexes. - * @property { Boolean } is_audio - * @property { Boolean } is_image - * @property { Boolean } is_video - * @property { String } end - * @property { String } start - */ - var media_urls = objs.map(function (o) { - return { - 'end': o.end, - 'is_audio': isAudioURL(o.url), - 'is_image': isImageURL(o.url), - 'is_video': isVideoURL(o.url), - 'is_encrypted': isEncryptedFileURL(o.url), - 'start': o.start - }; - }); - return media_urls.length ? { - media_urls: media_urls - } : {}; -} -function getSpoilerAttributes(stanza) { - var spoiler = external_sizzle_default()("spoiler[xmlns=\"".concat(Strophe.NS.SPOILER, "\"]"), stanza).pop(); - return { - 'is_spoiler': !!spoiler, - 'spoiler_hint': spoiler === null || spoiler === void 0 ? void 0 : spoiler.textContent - }; -} -function getOutOfBandAttributes(stanza) { - var xform = external_sizzle_default()("x[xmlns=\"".concat(Strophe.NS.OUTOFBAND, "\"]"), stanza).pop(); - if (xform) { - var _xform$querySelector, _xform$querySelector2; - return { - 'oob_url': (_xform$querySelector = xform.querySelector('url')) === null || _xform$querySelector === void 0 ? void 0 : _xform$querySelector.textContent, - 'oob_desc': (_xform$querySelector2 = xform.querySelector('desc')) === null || _xform$querySelector2 === void 0 ? void 0 : _xform$querySelector2.textContent - }; - } - return {}; -} - -/** - * Returns the human readable error message contained in a `groupchat` message stanza of type `error`. - * @private - * @param { Element } stanza - The message stanza - */ -function getErrorAttributes(stanza) { - if (stanza.getAttribute('type') === 'error') { - var error = stanza.querySelector('error'); - var text = external_sizzle_default()("text[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), error).pop(); - return { - 'is_error': true, - 'error_text': text === null || text === void 0 ? void 0 : text.textContent, - 'error_type': error.getAttribute('type'), - 'error_condition': error.firstElementChild.nodeName - }; - } - return {}; -} - -/** - * Given a message stanza, find and return any XEP-0372 references - * @param { Element } stana - The message stanza - * @returns { Reference } - */ -function getReferences(stanza) { - return external_sizzle_default()("reference[xmlns=\"".concat(Strophe.NS.REFERENCE, "\"]"), stanza).map(function (ref) { - var _stanza$querySelector; - var anchor = ref.getAttribute('anchor'); - var text = (_stanza$querySelector = stanza.querySelector(anchor ? "#".concat(anchor) : 'body')) === null || _stanza$querySelector === void 0 ? void 0 : _stanza$querySelector.textContent; - if (!text) { - log.warn("Could not find referenced text for ".concat(ref)); - return null; - } - var begin = ref.getAttribute('begin'); - var end = ref.getAttribute('end'); - /** - * @typedef { Object } Reference - * An object representing XEP-0372 reference data - * @property { string } begin - * @property { string } end - * @property { string } type - * @property { String } value - * @property { String } uri - */ - return { - begin: begin, - end: end, - 'type': ref.getAttribute('type'), - 'value': text.slice(begin, end), - 'uri': ref.getAttribute('uri') - }; - }).filter(function (r) { - return r; - }); -} -function getReceiptId(stanza) { - var receipt = external_sizzle_default()("received[xmlns=\"".concat(Strophe.NS.RECEIPTS, "\"]"), stanza).pop(); - return receipt === null || receipt === void 0 ? void 0 : receipt.getAttribute('id'); -} - -/** - * Determines whether the passed in stanza is a XEP-0280 Carbon - * @private - * @param { Element } stanza - The message stanza - * @returns { Boolean } - */ -function isCarbon(stanza) { - var xmlns = Strophe.NS.CARBONS; - return external_sizzle_default()("message > received[xmlns=\"".concat(xmlns, "\"]"), stanza).length > 0 || external_sizzle_default()("message > sent[xmlns=\"".concat(xmlns, "\"]"), stanza).length > 0; -} - -/** - * Returns the XEP-0085 chat state contained in a message stanza - * @private - * @param { Element } stanza - The message stanza - */ -function getChatState(stanza) { - var _sizzle$pop; - return (_sizzle$pop = external_sizzle_default()("\n composing[xmlns=\"".concat(parsers_NS.CHATSTATES, "\"],\n paused[xmlns=\"").concat(parsers_NS.CHATSTATES, "\"],\n inactive[xmlns=\"").concat(parsers_NS.CHATSTATES, "\"],\n active[xmlns=\"").concat(parsers_NS.CHATSTATES, "\"],\n gone[xmlns=\"").concat(parsers_NS.CHATSTATES, "\"]"), stanza).pop()) === null || _sizzle$pop === void 0 ? void 0 : _sizzle$pop.nodeName; -} -function isValidReceiptRequest(stanza, attrs) { - return attrs.sender !== 'me' && !attrs.is_carbon && !attrs.is_archived && external_sizzle_default()("request[xmlns=\"".concat(Strophe.NS.RECEIPTS, "\"]"), stanza).length; -} - -/** - * Check whether the passed-in stanza is a forwarded message that is "bare", - * i.e. it's not forwarded as part of a larger protocol, like MAM. - * @param { Element } stanza - */ -function throwErrorIfInvalidForward(stanza) { - var bare_forward = external_sizzle_default()("message > forwarded[xmlns=\"".concat(Strophe.NS.FORWARD, "\"]"), stanza).length; - if (bare_forward) { - rejectMessage(stanza, 'Forwarded messages not part of an encapsulating protocol are not supported'); - var from_jid = stanza.getAttribute('from'); - throw new StanzaParseError("Ignoring unencapsulated forwarded message from ".concat(from_jid), stanza); - } -} - -/** - * Determines whether the passed in stanza is a XEP-0333 Chat Marker - * @private - * @method getChatMarker - * @param { Element } stanza - The message stanza - * @returns { Boolean } - */ -function getChatMarker(stanza) { - // If we receive more than one marker (which shouldn't happen), we take - // the highest level of acknowledgement. - return external_sizzle_default()("\n acknowledged[xmlns=\"".concat(Strophe.NS.MARKERS, "\"],\n displayed[xmlns=\"").concat(Strophe.NS.MARKERS, "\"],\n received[xmlns=\"").concat(Strophe.NS.MARKERS, "\"]"), stanza).pop(); -} -function isHeadline(stanza) { - return stanza.getAttribute('type') === 'headline'; -} -function isServerMessage(stanza) { - if (external_sizzle_default()("mentions[xmlns=\"".concat(Strophe.NS.MENTIONS, "\"]"), stanza).pop()) { - return false; - } - var from_jid = stanza.getAttribute('from'); - if (stanza.getAttribute('type') !== 'error' && from_jid && !from_jid.includes('@')) { - // Some servers (e.g. Prosody) don't set the stanza - // type to "headline" when sending server messages. - // For now we check if an @ signal is included, and if not, - // we assume it's a headline stanza. - return true; - } - return false; -} - -/** - * Determines whether the passed in stanza is a XEP-0313 MAM stanza - * @private - * @method isArchived - * @param { Element } stanza - The message stanza - * @returns { Boolean } - */ -function isArchived(original_stanza) { - return !!external_sizzle_default()("message > result[xmlns=\"".concat(Strophe.NS.MAM, "\"]"), original_stanza).pop(); -} - -/** - * Returns an object containing all attribute names and values for a particular element. - * @method getAttributes - * @param { Element } stanza - * @returns { Object } - */ -function getAttributes(stanza) { - return stanza.getAttributeNames().reduce(function (acc, name) { - acc[name] = Strophe.xmlunescape(stanza.getAttribute(name)); - return acc; - }, {}); -} -;// CONCATENATED MODULE: ./src/headless/plugins/chat/parsers.js -function chat_parsers_typeof(obj) { +Object.assign(emoji_utils_u, { + getEmojisByAtrribute: getEmojisByAtrribute, + isOnlyEmojis: isOnlyEmojis, + shortnamesToUnicode: shortnamesToUnicode +}); +;// CONCATENATED MODULE: ./src/headless/plugins/emoji/index.js +function emoji_typeof(obj) { "@babel/helpers - typeof"; - return chat_parsers_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return emoji_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, chat_parsers_typeof(obj); + }, emoji_typeof(obj); } -function parsers_regeneratorRuntime() { +function emoji_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - parsers_regeneratorRuntime = function _regeneratorRuntime() { + emoji_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -39146,7 +36824,7 @@ function parsers_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == chat_parsers_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == emoji_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -39371,7 +37049,7 @@ function parsers_regeneratorRuntime() { } }, exports; } -function parsers_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function emoji_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -39385,254 +37063,299 @@ function parsers_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, ar Promise.resolve(value).then(_next, _throw); } } -function parsers_asyncToGenerator(fn) { +function emoji_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - parsers_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + emoji_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - parsers_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + emoji_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +/** + * @module converse-emoji + * @copyright 2022, the Converse.js contributors + * @license Mozilla Public License (MPLv2) + */ +public_converse.emojis = { + 'initialized': false, + 'initialized_promise': getOpenPromise() +}; +public_converse.plugins.add('converse-emoji', { + initialize: function initialize() { + /* The initialize function gets called as soon as the plugin is + * loaded by converse.js's plugin machinery. + */ + var ___ = shared_converse.___; + shared_api.settings.extend({ + 'emoji_image_path': 'https://twemoji.maxcdn.com/v/12.1.6/', + 'emoji_categories': { + "smileys": ":grinning:", + "people": ":thumbsup:", + "activity": ":soccer:", + "travel": ":motorcycle:", + "objects": ":bomb:", + "nature": ":rainbow:", + "food": ":hotdog:", + "symbols": ":musical_note:", + "flags": ":flag_ac:", + "custom": null + }, + // We use the triple-underscore method which doesn't actually + // translate but does signify to gettext that these strings should + // go into the POT file. The translation then happens in the + // template. We do this so that users can pass in their own + // strings via converse.initialize, which is before __ is + // available. + 'emoji_category_labels': { + "smileys": ___("Smileys and emotions"), + "people": ___("People"), + "activity": ___("Activities"), + "travel": ___("Travel"), + "objects": ___("Objects"), + "nature": ___("Animals and nature"), + "food": ___("Food and drink"), + "symbols": ___("Symbols"), + "flags": ___("Flags"), + "custom": ___("Stickers") + } + }); + + /** + * Model for storing data related to the Emoji picker widget + * @class + * @namespace _converse.EmojiPicker + * @memberOf _converse + */ + shared_converse.EmojiPicker = Model.extend({ + defaults: { + 'current_category': 'smileys', + 'current_skintone': '', + 'scroll_position': 0 + } + }); + + // We extend the default converse.js API to add methods specific to MUC groupchats. + Object.assign(shared_api, { + /** + * @namespace api.emojis + * @memberOf api + */ + emojis: { + /** + * Initializes Emoji support by downloading the emojis JSON (and any applicable images). + * @method api.emojis.initialize + * @returns {Promise} + */ + initialize: function initialize() { + return emoji_asyncToGenerator( /*#__PURE__*/emoji_regeneratorRuntime().mark(function _callee() { + var module, json, getShortNames; + return emoji_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + if (public_converse.emojis.initialized) { + _context.next = 13; + break; + } + public_converse.emojis.initialized = true; + _context.next = 4; + return __webpack_require__.e(/* import() | emojis */ 4610).then(__webpack_require__.t.bind(__webpack_require__, 5175, 19)); + case 4: + module = _context.sent; + json = public_converse.emojis.json = module.default; + public_converse.emojis.by_sn = Object.keys(json).reduce(function (result, cat) { + return Object.assign(result, json[cat]); + }, {}); + public_converse.emojis.list = Object.values(public_converse.emojis.by_sn); + public_converse.emojis.list.sort(function (a, b) { + return a.sn < b.sn ? -1 : a.sn > b.sn ? 1 : 0; + }); + public_converse.emojis.shortnames = public_converse.emojis.list.map(function (m) { + return m.sn; + }); + getShortNames = function getShortNames() { + return public_converse.emojis.shortnames.map(function (s) { + return s.replace(/[+]/g, "\\$&"); + }).join('|'); + }; + public_converse.emojis.shortnames_regex = new RegExp(getShortNames(), "gi"); + public_converse.emojis.initialized_promise.resolve(); + case 13: + return _context.abrupt("return", public_converse.emojis.initialized_promise); + case 14: + case "end": + return _context.stop(); + } + }, _callee); + }))(); + } + } + }); + } +}); +;// CONCATENATED MODULE: ./src/headless/plugins/muc/message.js -var _converse$env = public_converse.env, - parsers_Strophe = _converse$env.Strophe, - parsers_sizzle = _converse$env.sizzle; /** - * Parses a passed in message stanza and returns an object of attributes. - * @method st#parseMessage - * @param { Element } stanza - The message stanza - * @param { _converse } _converse - * @returns { (MessageAttributes|Error) } + * Mixing that turns a Message model into a ChatRoomMessage model. + * @class + * @namespace _converse.ChatRoomMessage + * @memberOf _converse */ -function parseMessage(_x) { - return _parseMessage.apply(this, arguments); -} -function _parseMessage() { - _parseMessage = parsers_asyncToGenerator( /*#__PURE__*/parsers_regeneratorRuntime().mark(function _callee(stanza) { - var _stanza$querySelector, _stanza$querySelector2, _contact, _contact$attributes, _stanza$querySelector3, _stanza$querySelector4; - var to_jid, to_resource, original_stanza, from_jid, selector, is_archived, _selector, from_bare_jid, is_me, is_headline, is_server_message, contact, contact_jid, delay, marker, now, attrs, from; - return parsers_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - throwErrorIfInvalidForward(stanza); - to_jid = stanza.getAttribute('to'); - to_resource = parsers_Strophe.getResourceFromJid(to_jid); - if (!(shared_api.settings.get('filter_by_resource') && to_resource && to_resource !== shared_converse.resource)) { - _context.next = 5; - break; - } - return _context.abrupt("return", new StanzaParseError("Ignoring incoming message intended for a different resource: ".concat(to_jid), stanza)); - case 5: - original_stanza = stanza; - from_jid = stanza.getAttribute('from') || shared_converse.bare_jid; - if (!isCarbon(stanza)) { - _context.next = 17; - break; - } - if (!(from_jid === shared_converse.bare_jid)) { - _context.next = 15; - break; - } - selector = "[xmlns=\"".concat(parsers_Strophe.NS.CARBONS, "\"] > forwarded[xmlns=\"").concat(parsers_Strophe.NS.FORWARD, "\"] > message"); - stanza = parsers_sizzle(selector, stanza).pop(); - to_jid = stanza.getAttribute('to'); - from_jid = stanza.getAttribute('from'); - _context.next = 17; - break; - case 15: - // Prevent message forging via carbons: https://xmpp.org/extensions/xep-0280.html#security - rejectMessage(stanza, 'Rejecting carbon from invalid JID'); - return _context.abrupt("return", new StanzaParseError("Rejecting carbon from invalid JID ".concat(to_jid), stanza)); - case 17: - is_archived = isArchived(stanza); - if (!is_archived) { - _context.next = 27; - break; - } - if (!(from_jid === shared_converse.bare_jid)) { - _context.next = 26; - break; - } - _selector = "[xmlns=\"".concat(parsers_Strophe.NS.MAM, "\"] > forwarded[xmlns=\"").concat(parsers_Strophe.NS.FORWARD, "\"] > message"); - stanza = parsers_sizzle(_selector, stanza).pop(); - to_jid = stanza.getAttribute('to'); - from_jid = stanza.getAttribute('from'); - _context.next = 27; - break; - case 26: - return _context.abrupt("return", new StanzaParseError("Invalid Stanza: alleged MAM message from ".concat(stanza.getAttribute('from')), stanza)); - case 27: - from_bare_jid = parsers_Strophe.getBareJidFromJid(from_jid); - is_me = from_bare_jid === shared_converse.bare_jid; - if (!(is_me && to_jid === null)) { - _context.next = 31; - break; - } - return _context.abrupt("return", new StanzaParseError("Don't know how to handle message stanza without 'to' attribute. ".concat(stanza.outerHTML), stanza)); - case 31: - is_headline = isHeadline(stanza); - is_server_message = isServerMessage(stanza); - if (!(!is_headline && !is_server_message)) { - _context.next = 41; - break; - } - contact_jid = is_me ? parsers_Strophe.getBareJidFromJid(to_jid) : from_bare_jid; - _context.next = 37; - return shared_api.contacts.get(contact_jid); - case 37: - contact = _context.sent; - if (!(contact === undefined && !shared_api.settings.get('allow_non_roster_messaging'))) { - _context.next = 41; - break; - } - log.error(stanza); - return _context.abrupt("return", new StanzaParseError("Blocking messaging with a JID not in our roster because allow_non_roster_messaging is false.", stanza)); - case 41: - /** - * @typedef { Object } MessageAttributes - * The object which {@link parseMessage} returns - * @property { ('me'|'them') } sender - Whether the message was sent by the current user or someone else - * @property { Array } references - A list of objects representing XEP-0372 references - * @property { Boolean } editable - Is this message editable via XEP-0308? - * @property { Boolean } is_archived - Is this message from a XEP-0313 MAM archive? - * @property { Boolean } is_carbon - Is this message a XEP-0280 Carbon? - * @property { Boolean } is_delayed - Was delivery of this message was delayed as per XEP-0203? - * @property { Boolean } is_encrypted - Is this message XEP-0384 encrypted? - * @property { Boolean } is_error - Whether an error was received for this message - * @property { Boolean } is_headline - Is this a "headline" message? - * @property { Boolean } is_markable - Can this message be marked with a XEP-0333 chat marker? - * @property { Boolean } is_marker - Is this message a XEP-0333 Chat Marker? - * @property { Boolean } is_only_emojis - Does the message body contain only emojis? - * @property { Boolean } is_spoiler - Is this a XEP-0382 spoiler message? - * @property { Boolean } is_tombstone - Is this a XEP-0424 tombstone? - * @property { Boolean } is_unstyled - Whether XEP-0393 styling hints should be ignored - * @property { Boolean } is_valid_receipt_request - Does this message request a XEP-0184 receipt (and is not from us or a carbon or archived message) - * @property { Object } encrypted - XEP-0384 encryption payload attributes - * @property { String } body - The contents of the tag of the message stanza - * @property { String } chat_state - The XEP-0085 chat state notification contained in this message - * @property { String } contact_jid - The JID of the other person or entity - * @property { String } edited - An ISO8601 string recording the time that the message was edited per XEP-0308 - * @property { String } error_condition - The defined error condition - * @property { String } error_text - The error text received from the server - * @property { String } error_type - The type of error received from the server - * @property { String } from - The sender JID - * @property { String } fullname - The full name of the sender - * @property { String } marker - The XEP-0333 Chat Marker value - * @property { String } marker_id - The `id` attribute of a XEP-0333 chat marker - * @property { String } msgid - The root `id` attribute of the stanza - * @property { String } nick - The roster nickname of the sender - * @property { String } oob_desc - The description of the XEP-0066 out of band data - * @property { String } oob_url - The URL of the XEP-0066 out of band data - * @property { String } origin_id - The XEP-0359 Origin ID - * @property { String } receipt_id - The `id` attribute of a XEP-0184 element - * @property { String } received - An ISO8601 string recording the time that the message was received - * @property { String } replace_id - The `id` attribute of a XEP-0308 element - * @property { String } retracted - An ISO8601 string recording the time that the message was retracted - * @property { String } retracted_id - The `id` attribute of a XEP-424 element - * @property { String } spoiler_hint The XEP-0382 spoiler hint - * @property { String } stanza_id - The XEP-0359 Stanza ID. Note: the key is actualy `stanza_id ${by_jid}` and there can be multiple. - * @property { String } subject - The element value - * @property { String } thread - The element value - * @property { String } time - The time (in ISO8601 format), either given by the XEP-0203 element, or of receipt. - * @property { String } to - The recipient JID - * @property { String } type - The type of message - */ - delay = parsers_sizzle("delay[xmlns=\"".concat(parsers_Strophe.NS.DELAY, "\"]"), original_stanza).pop(); - marker = getChatMarker(stanza); - now = new Date().toISOString(); - attrs = Object.assign({ - contact_jid: contact_jid, - is_archived: is_archived, - is_headline: is_headline, - is_server_message: is_server_message, - 'body': (_stanza$querySelector = stanza.querySelector('body')) === null || _stanza$querySelector === void 0 ? void 0 : (_stanza$querySelector2 = _stanza$querySelector.textContent) === null || _stanza$querySelector2 === void 0 ? void 0 : _stanza$querySelector2.trim(), - 'chat_state': getChatState(stanza), - 'from': parsers_Strophe.getBareJidFromJid(stanza.getAttribute('from')), - 'is_carbon': isCarbon(original_stanza), - 'is_delayed': !!delay, - 'is_markable': !!parsers_sizzle("markable[xmlns=\"".concat(parsers_Strophe.NS.MARKERS, "\"]"), stanza).length, - 'is_marker': !!marker, - 'is_unstyled': !!parsers_sizzle("unstyled[xmlns=\"".concat(parsers_Strophe.NS.STYLING, "\"]"), stanza).length, - 'marker_id': marker && marker.getAttribute('id'), - 'msgid': stanza.getAttribute('id') || original_stanza.getAttribute('id'), - 'nick': (_contact = contact) === null || _contact === void 0 ? void 0 : (_contact$attributes = _contact.attributes) === null || _contact$attributes === void 0 ? void 0 : _contact$attributes.nickname, - 'receipt_id': getReceiptId(stanza), - 'received': new Date().toISOString(), - 'references': getReferences(stanza), - 'sender': is_me ? 'me' : 'them', - 'subject': (_stanza$querySelector3 = stanza.querySelector('subject')) === null || _stanza$querySelector3 === void 0 ? void 0 : _stanza$querySelector3.textContent, - 'thread': (_stanza$querySelector4 = stanza.querySelector('thread')) === null || _stanza$querySelector4 === void 0 ? void 0 : _stanza$querySelector4.textContent, - 'time': delay ? dayjs_min_default()(delay.getAttribute('stamp')).toISOString() : now, - 'to': stanza.getAttribute('to'), - 'type': stanza.getAttribute('type') || 'normal' - }, getErrorAttributes(stanza), getOutOfBandAttributes(stanza), getSpoilerAttributes(stanza), getCorrectionAttributes(stanza, original_stanza), getStanzaIDs(stanza, original_stanza), getRetractionAttributes(stanza, original_stanza), getEncryptionAttributes(stanza, shared_converse)); - if (!attrs.is_archived) { - _context.next = 49; - break; - } - from = original_stanza.getAttribute('from'); - if (!(from && from !== shared_converse.bare_jid)) { - _context.next = 49; - break; - } - return _context.abrupt("return", new StanzaParseError("Invalid Stanza: Forged MAM message from ".concat(from), stanza)); - case 49: - _context.next = 51; - return shared_api.emojis.initialize(); - case 51: - attrs = Object.assign({ - 'message': attrs.body || attrs.error, - // TODO: Remove and use body and error attributes instead - 'is_only_emojis': attrs.body ? utils_core.isOnlyEmojis(attrs.body) : false, - 'is_valid_receipt_request': isValidReceiptRequest(stanza, attrs) - }, attrs); +var ChatRoomMessageMixin = { + initialize: function initialize() { + var _this = this, + _this$collection; + if (!this.checkValidity()) { + return; + } + if (this.get('file')) { + this.on('change:put', function () { + return _this.uploadFile(); + }); + } + // If `type` changes from `error` to `groupchat`, we want to set the occupant. See #2733 + this.on('change:type', function () { + return _this.setOccupant(); + }); + this.on('change:is_ephemeral', function () { + return _this.setTimerForEphemeralMessage(); + }); + this.chatbox = (_this$collection = this.collection) === null || _this$collection === void 0 ? void 0 : _this$collection.chatbox; + this.setTimerForEphemeralMessage(); + this.setOccupant(); + /** + * Triggered once a { @link _converse.ChatRoomMessage } has been created and initialized. + * @event _converse#chatRoomMessageInitialized + * @type { _converse.ChatRoomMessages} + * @example _converse.api.listen.on('chatRoomMessageInitialized', model => { ... }); + */ + shared_api.trigger('chatRoomMessageInitialized', this); + }, + getDisplayName: function getDisplayName() { + var _this$occupant; + return ((_this$occupant = this.occupant) === null || _this$occupant === void 0 ? void 0 : _this$occupant.getDisplayName()) || this.get('nick'); + }, + /** + * Determines whether this messsage may be moderated, + * based on configuration settings and server support. + * @async + * @private + * @method _converse.ChatRoomMessages#mayBeModerated + * @returns { Boolean } + */ + mayBeModerated: function mayBeModerated() { + if (typeof this.get('from_muc') === 'undefined') { + // If from_muc is not defined, then this message hasn't been + // reflected yet, which means we won't have a XEP-0359 stanza id. + return; + } + return ['all', 'moderator'].includes(shared_api.settings.get('allow_message_retraction')) && this.get("stanza_id ".concat(this.get('from_muc'))) && this.chatbox.canModerateMessages(); + }, + checkValidity: function checkValidity() { + var result = shared_converse.Message.prototype.checkValidity.call(this); + !result && this.chatbox.debouncedRejoin(); + return result; + }, + onOccupantRemoved: function onOccupantRemoved() { + this.stopListening(this.occupant); + delete this.occupant; + this.listenTo(this.chatbox.occupants, 'add', this.onOccupantAdded); + }, + onOccupantAdded: function onOccupantAdded(occupant) { + if (this.get('occupant_id')) { + if (occupant.get('occupant_id') !== this.get('occupant_id')) { + return; + } + } else if (occupant.get('nick') !== external_strophe_namespaceObject.Strophe.getResourceFromJid(this.get('from'))) { + return; + } + this.occupant = occupant; + if (occupant.get('jid')) { + this.save('from_real_jid', occupant.get('jid')); + } + this.trigger('occupantAdded'); + this.listenTo(this.occupant, 'destroy', this.onOccupantRemoved); + this.stopListening(this.chatbox.occupants, 'add', this.onOccupantAdded); + }, + getOccupant: function getOccupant() { + if (this.occupant) return this.occupant; + this.setOccupant(); + return this.occupant; + }, + setOccupant: function setOccupant() { + if (this.get('type') !== 'groupchat' || this.isEphemeral() || this.occupant) { + return; + } + var nick = external_strophe_namespaceObject.Strophe.getResourceFromJid(this.get('from')); + var occupant_id = this.get('occupant_id'); + this.occupant = this.chatbox.occupants.findOccupant({ + nick: nick, + occupant_id: occupant_id + }); + if (!this.occupant) { + this.occupant = this.chatbox.occupants.create({ + nick: nick, + occupant_id: occupant_id, + jid: this.get('from_real_jid') + }); + if (shared_api.settings.get('muc_send_probes')) { + var jid = "".concat(this.chatbox.get('jid'), "/").concat(nick); + shared_api.user.presence.send('probe', jid); + } + } + this.listenTo(this.occupant, 'destroy', this.onOccupantRemoved); + } +}; +/* harmony default export */ const muc_message = (ChatRoomMessageMixin); +;// CONCATENATED MODULE: ./node_modules/lodash-es/isElement.js - // We prefer to use one of the XEP-0359 unique and stable stanza IDs - // as the Model id, to avoid duplicates. - attrs['id'] = attrs['origin_id'] || attrs["stanza_id ".concat(attrs.from)] || utils_core.getUniqueId(); - /** - * *Hook* which allows plugins to add additional parsing - * @event _converse#parseMessage - */ - _context.next = 55; - return shared_api.hook('parseMessage', stanza, attrs); - case 55: - attrs = _context.sent; - return _context.abrupt("return", Object.assign(attrs, getMediaURLsMetadata(attrs.is_encrypted ? attrs.plaintext : attrs.body))); - case 57: - case "end": - return _context.stop(); - } - }, _callee); - })); - return _parseMessage.apply(this, arguments); + +/** + * Checks if `value` is likely a DOM element. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. + * @example + * + * _.isElement(document.body); + * // => true + * + * _.isElement(''); + * // => false + */ +function isElement_isElement(value) { + return lodash_es_isObjectLike(value) && value.nodeType === 1 && !lodash_es_isPlainObject(value); } -;// CONCATENATED MODULE: ./src/headless/plugins/chat/model.js -function chat_model_typeof(obj) { +/* harmony default export */ const lodash_es_isElement = (isElement_isElement); +;// CONCATENATED MODULE: ./src/headless/utils/parse-helpers.js +function parse_helpers_typeof(obj) { "@babel/helpers - typeof"; - return chat_model_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return parse_helpers_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, chat_model_typeof(obj); + }, parse_helpers_typeof(obj); } -function model_ownKeys(object, enumerableOnly) { +function parse_helpers_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); @@ -39642,19 +37365,19 @@ function model_ownKeys(object, enumerableOnly) { } return keys; } -function model_objectSpread(target) { +function parse_helpers_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; - i % 2 ? model_ownKeys(Object(source), !0).forEach(function (key) { - model_defineProperty(target, key, source[key]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : model_ownKeys(Object(source)).forEach(function (key) { + i % 2 ? parse_helpers_ownKeys(Object(source), !0).forEach(function (key) { + parse_helpers_defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : parse_helpers_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } -function model_defineProperty(obj, key, value) { - key = model_toPropertyKey(key); +function parse_helpers_defineProperty(obj, key, value) { + key = parse_helpers_toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, @@ -39667,50 +37390,218 @@ function model_defineProperty(obj, key, value) { } return obj; } -function model_toPropertyKey(arg) { - var key = model_toPrimitive(arg, "string"); - return chat_model_typeof(key) === "symbol" ? key : String(key); +function parse_helpers_toPropertyKey(arg) { + var key = parse_helpers_toPrimitive(arg, "string"); + return parse_helpers_typeof(key) === "symbol" ? key : String(key); } -function model_toPrimitive(input, hint) { - if (chat_model_typeof(input) !== "object" || input === null) return input; +function parse_helpers_toPrimitive(input, hint) { + if (parse_helpers_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); - if (chat_model_typeof(res) !== "object") return res; + if (parse_helpers_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } -function model_toConsumableArray(arr) { - return model_arrayWithoutHoles(arr) || model_iterableToArray(arr) || model_unsupportedIterableToArray(arr) || model_nonIterableSpread(); +function parse_helpers_toConsumableArray(arr) { + return parse_helpers_arrayWithoutHoles(arr) || parse_helpers_iterableToArray(arr) || parse_helpers_unsupportedIterableToArray(arr) || parse_helpers_nonIterableSpread(); } -function model_nonIterableSpread() { +function parse_helpers_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function model_unsupportedIterableToArray(o, minLen) { +function parse_helpers_iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +} +function parse_helpers_arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return parse_helpers_arrayLikeToArray(arr); +} +function parse_helpers_slicedToArray(arr, i) { + return parse_helpers_arrayWithHoles(arr) || parse_helpers_iterableToArrayLimit(arr, i) || parse_helpers_unsupportedIterableToArray(arr, i) || parse_helpers_nonIterableRest(); +} +function parse_helpers_nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function parse_helpers_unsupportedIterableToArray(o, minLen) { if (!o) return; - if (typeof o === "string") return model_arrayLikeToArray(o, minLen); + if (typeof o === "string") return parse_helpers_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return model_arrayLikeToArray(o, minLen); -} -function model_iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); -} -function model_arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return model_arrayLikeToArray(arr); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return parse_helpers_arrayLikeToArray(o, minLen); } -function model_arrayLikeToArray(arr, len) { +function parse_helpers_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } -function model_regeneratorRuntime() { +function parse_helpers_iterableToArrayLimit(arr, i) { + var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; + if (null != _i) { + var _s, + _e, + _x, + _r, + _arr = [], + _n = !0, + _d = !1; + try { + if (_x = (_i = _i.call(arr)).next, 0 === i) { + if (Object(_i) !== _i) return; + _n = !1; + } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); + } catch (err) { + _d = !0, _e = err; + } finally { + try { + if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; + } finally { + if (_d) throw _e; + } + } + return _arr; + } +} +function parse_helpers_arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} +/** + * @copyright 2022, the Converse.js contributors + * @license Mozilla Public License (MPLv2) + * @description Pure functions to help functionally parse messages. + * @todo Other parsing helpers can be made more abstract and placed here. + */ +var helpers = {}; +var escapeRegexChars = function escapeRegexChars(string, char) { + return string.replace(RegExp('\\' + char, 'ig'), '\\' + char); +}; +helpers.escapeCharacters = function (characters) { + return function (string) { + return characters.split('').reduce(escapeRegexChars, string); + }; +}; +helpers.escapeRegexString = helpers.escapeCharacters('[\\^$.?*+(){}|'); + +// `for` is ~25% faster than using `Array.find()` +helpers.findFirstMatchInArray = function (array) { + return function (text) { + for (var i = 0; i < array.length; i++) { + if (text.localeCompare(array[i], undefined, { + sensitivity: 'base' + }) === 0) { + return array[i]; + } + } + return null; + }; +}; +var reduceReferences = function reduceReferences(_ref, ref, index) { + var _ref2 = parse_helpers_slicedToArray(_ref, 2), + text = _ref2[0], + refs = _ref2[1]; + var updated_text = text; + var begin = ref.begin, + end = ref.end; + var value = ref.value; + begin = begin - index; + end = end - index - 1; // -1 to compensate for the removed @ + updated_text = "".concat(updated_text.slice(0, begin)).concat(value).concat(updated_text.slice(end + 1)); + return [updated_text, [].concat(parse_helpers_toConsumableArray(refs), [parse_helpers_objectSpread(parse_helpers_objectSpread({}, ref), {}, { + begin: begin, + end: end + })])]; +}; +helpers.reduceTextFromReferences = function (text, refs) { + return refs.reduce(reduceReferences, [text, []]); +}; +/* harmony default export */ const parse_helpers = (helpers); +;// CONCATENATED MODULE: ./src/headless/plugins/muc/constants.js +var ROLES = ['moderator', 'participant', 'visitor']; +var AFFILIATIONS = ['owner', 'admin', 'member', 'outcast', 'none']; +var MUC_ROLE_WEIGHTS = { + 'moderator': 1, + 'participant': 2, + 'visitor': 3, + 'none': 2 +}; +var AFFILIATION_CHANGES = { + OWNER: 'owner', + ADMIN: 'admin', + MEMBER: 'member', + EXADMIN: 'exadmin', + EXOWNER: 'exowner', + EXOUTCAST: 'exoutcast', + EXMEMBER: 'exmember' +}; +var AFFILIATION_CHANGES_LIST = Object.values(AFFILIATION_CHANGES); +var MUC_TRAFFIC_STATES = { + ENTERED: 'entered', + EXITED: 'exited' +}; +var MUC_TRAFFIC_STATES_LIST = Object.values(MUC_TRAFFIC_STATES); +var MUC_ROLE_CHANGES = { + OP: 'op', + DEOP: 'deop', + VOICE: 'voice', + MUTE: 'mute' +}; +var MUC_ROLE_CHANGES_LIST = Object.values(MUC_ROLE_CHANGES); +var INFO_CODES = { + 'visibility_changes': ['100', '102', '103', '172', '173', '174'], + 'self': ['110'], + 'non_privacy_changes': ['104', '201'], + 'muc_logging_changes': ['170', '171'], + 'nickname_changes': ['210', '303'], + 'disconnected': ['301', '307', '321', '322', '332', '333'], + 'affiliation_changes': [].concat(AFFILIATION_CHANGES_LIST), + 'join_leave_events': [].concat(MUC_TRAFFIC_STATES_LIST), + 'role_changes': [].concat(MUC_ROLE_CHANGES_LIST) +}; +var ROOMSTATUS = { + CONNECTED: 0, + CONNECTING: 1, + NICKNAME_REQUIRED: 2, + PASSWORD_REQUIRED: 3, + DISCONNECTED: 4, + ENTERED: 5, + DESTROYED: 6, + BANNED: 7, + CLOSING: 8 +}; +var ROOM_FEATURES = ['passwordprotected', 'unsecured', 'hidden', 'publicroom', 'membersonly', 'open', 'persistent', 'temporary', 'nonanonymous', 'semianonymous', 'moderated', 'unmoderated', 'mam_enabled']; +var MUC_NICK_CHANGED_CODE = '303'; + +// No longer used in code, but useful as reference. +// +// const ROOM_FEATURES_MAP = { +// 'passwordprotected': 'unsecured', +// 'unsecured': 'passwordprotected', +// 'hidden': 'publicroom', +// 'publicroom': 'hidden', +// 'membersonly': 'open', +// 'open': 'membersonly', +// 'persistent': 'temporary', +// 'temporary': 'persistent', +// 'nonanonymous': 'semianonymous', +// 'semianonymous': 'nonanonymous', +// 'moderated': 'unmoderated', +// 'unmoderated': 'moderated' +// }; +;// CONCATENATED MODULE: ./src/headless/plugins/muc/parsers.js +function muc_parsers_typeof(obj) { + "@babel/helpers - typeof"; + + return muc_parsers_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, muc_parsers_typeof(obj); +} +function muc_parsers_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - model_regeneratorRuntime = function _regeneratorRuntime() { + muc_parsers_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -39785,7 +37676,7 @@ function model_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == chat_model_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == muc_parsers_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -40010,7 +37901,7 @@ function model_regeneratorRuntime() { } }, exports; } -function model_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function muc_parsers_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -40024,17 +37915,17 @@ function model_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) Promise.resolve(value).then(_next, _throw); } } -function model_asyncToGenerator(fn) { +function muc_parsers_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - model_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + muc_parsers_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - model_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + muc_parsers_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); @@ -40043,1772 +37934,745 @@ function model_asyncToGenerator(fn) { +var parsers_converse$env = public_converse.env, + parsers_Strophe = parsers_converse$env.Strophe, + muc_parsers_sizzle = parsers_converse$env.sizzle, + parsers_u = parsers_converse$env.u; +var parsers_NS = parsers_Strophe.NS; - - - - - - - - - - - - -var model_converse$env = public_converse.env, - model_Strophe = model_converse$env.Strophe, - model_$msg = model_converse$env.$msg; -var model_u = public_converse.env.utils; +/** + * Parses a message stanza for XEP-0317 MEP notification data + * @param { Element } stanza - The message stanza + * @returns { Array } Returns an array of objects representing elements. + */ +function getMEPActivities(stanza) { + var items_el = muc_parsers_sizzle("items[node=\"".concat(parsers_Strophe.NS.CONFINFO, "\"]"), stanza).pop(); + if (!items_el) { + return null; + } + var from = stanza.getAttribute('from'); + var msgid = stanza.getAttribute('id'); + var selector = "item " + "conference-info[xmlns=\"".concat(parsers_Strophe.NS.CONFINFO, "\"] ") + "activity[xmlns=\"".concat(parsers_Strophe.NS.ACTIVITY, "\"]"); + return muc_parsers_sizzle(selector, items_el).map(function (el) { + var _el$querySelector; + var message = (_el$querySelector = el.querySelector('text')) === null || _el$querySelector === void 0 ? void 0 : _el$querySelector.textContent; + if (message) { + var _el$querySelector2; + var references = getReferences(stanza); + var reason = (_el$querySelector2 = el.querySelector('reason')) === null || _el$querySelector2 === void 0 ? void 0 : _el$querySelector2.textContent; + return { + from: from, + msgid: msgid, + message: message, + reason: reason, + references: references, + 'type': 'mep' + }; + } + return {}; + }); +} /** - * Represents an open/ongoing chat conversation. + * Given a MUC stanza, check whether it has extended message information that + * includes the sender's real JID, as described here: + * https://xmpp.org/extensions/xep-0313.html#business-storeret-muc-archives * - * @class - * @namespace _converse.ChatBox - * @memberOf _converse + * If so, parse and return that data and return the user's JID + * + * Note, this function doesn't check whether this is actually a MAM archived stanza. + * + * @private + * @param { Element } stanza - The message stanza + * @returns { Object } */ -var ChatBox = model_with_contact.extend({ - defaults: function defaults() { - return { - 'bookmarked': false, - 'chat_state': undefined, - 'hidden': isUniView() && !shared_api.settings.get('singleton'), - 'message_type': 'chat', - 'nickname': undefined, - 'num_unread': 0, - 'time_opened': this.get('time_opened') || new Date().getTime(), - 'time_sent': new Date(0).toISOString(), - 'type': shared_converse.PRIVATE_CHAT_TYPE, - 'url': '' - }; - }, - initialize: function initialize() { - var _arguments = arguments, - _this = this; - return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee() { - var jid; - return model_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _this.initialized = getOpenPromise(); - model_with_contact.prototype.initialize.apply(_this, _arguments); - jid = _this.get('jid'); - if (jid) { - _context.next = 5; - break; - } - return _context.abrupt("return"); - case 5: - _this.set({ - 'box_id': "box-".concat(jid) - }); - _this.initNotifications(); - _this.initUI(); - _this.initMessages(); - if (!(_this.get('type') === shared_converse.PRIVATE_CHAT_TYPE)) { - _context.next = 14; - break; - } - _this.presence = shared_converse.presences.get(jid) || shared_converse.presences.create({ - jid: jid - }); - _context.next = 13; - return _this.setRosterContact(jid); - case 13: - _this.presence.on('change:show', function (item) { - return _this.onPresenceChanged(item); - }); - case 14: - _this.on('change:chat_state', _this.sendChatState, _this); - _this.ui.on('change:scrolled', _this.onScrolledChanged, _this); - _context.next = 18; - return _this.fetchMessages(); - case 18: - _context.next = 20; - return shared_api.trigger('chatBoxInitialized', _this, { - 'Synchronous': true - }); - case 20: - _this.initialized.resolve(); - case 21: - case "end": - return _context.stop(); - } - }, _callee); - }))(); - }, - getMessagesCollection: function getMessagesCollection() { - return new shared_converse.Messages(); - }, - getMessagesCacheKey: function getMessagesCacheKey() { - return "converse.messages-".concat(this.get('jid'), "-").concat(shared_converse.bare_jid); - }, - initMessages: function initMessages() { - this.messages = this.getMessagesCollection(); - this.messages.fetched = getOpenPromise(); - this.messages.chatbox = this; - initStorage(this.messages, this.getMessagesCacheKey()); - this.listenTo(this.messages, 'change:upload', this.onMessageUploadChanged, this); - this.listenTo(this.messages, 'add', this.onMessageAdded, this); - }, - initUI: function initUI() { - this.ui = new Model(); - }, - initNotifications: function initNotifications() { - this.notifications = new Model(); - }, - getNotificationsText: function getNotificationsText() { - var _this$notifications, _this$notifications2, _this$notifications3; - var __ = shared_converse.__; - if (((_this$notifications = this.notifications) === null || _this$notifications === void 0 ? void 0 : _this$notifications.get('chat_state')) === shared_converse.COMPOSING) { - return __('%1$s is typing', this.getDisplayName()); - } else if (((_this$notifications2 = this.notifications) === null || _this$notifications2 === void 0 ? void 0 : _this$notifications2.get('chat_state')) === shared_converse.PAUSED) { - return __('%1$s has stopped typing', this.getDisplayName()); - } else if (((_this$notifications3 = this.notifications) === null || _this$notifications3 === void 0 ? void 0 : _this$notifications3.get('chat_state')) === shared_converse.GONE) { - return __('%1$s has gone away', this.getDisplayName()); - } else { - return ''; +function getJIDFromMUCUserData(stanza) { + var item = muc_parsers_sizzle("x[xmlns=\"".concat(parsers_Strophe.NS.MUC_USER, "\"] item"), stanza).pop(); + return item === null || item === void 0 ? void 0 : item.getAttribute('jid'); +} + +/** + * @private + * @param { Element } stanza - The message stanza + * @param { Element } original_stanza - The original stanza, that contains the + * message stanza, if it was contained, otherwise it's the message stanza itself. + * @returns { Object } + */ +function getModerationAttributes(stanza) { + var fastening = muc_parsers_sizzle("apply-to[xmlns=\"".concat(parsers_Strophe.NS.FASTEN, "\"]"), stanza).pop(); + if (fastening) { + var applies_to_id = fastening.getAttribute('id'); + var moderated = muc_parsers_sizzle("moderated[xmlns=\"".concat(parsers_Strophe.NS.MODERATE, "\"]"), fastening).pop(); + if (moderated) { + var retracted = muc_parsers_sizzle("retract[xmlns=\"".concat(parsers_Strophe.NS.RETRACT, "\"]"), moderated).pop(); + if (retracted) { + var _moderated$querySelec; + return { + 'editable': false, + 'moderated': 'retracted', + 'moderated_by': moderated.getAttribute('by'), + 'moderated_id': applies_to_id, + 'moderation_reason': (_moderated$querySelec = moderated.querySelector('reason')) === null || _moderated$querySelec === void 0 ? void 0 : _moderated$querySelec.textContent + }; + } } - }, - afterMessagesFetched: function afterMessagesFetched() { - this.pruneHistoryWhenScrolledDown(); + } else { + var tombstone = muc_parsers_sizzle("> moderated[xmlns=\"".concat(parsers_Strophe.NS.MODERATE, "\"]"), stanza).pop(); + if (tombstone) { + var _retracted = muc_parsers_sizzle("retracted[xmlns=\"".concat(parsers_Strophe.NS.RETRACT, "\"]"), tombstone).pop(); + if (_retracted) { + var _tombstone$querySelec; + return { + 'editable': false, + 'is_tombstone': true, + 'moderated_by': tombstone.getAttribute('by'), + 'retracted': tombstone.getAttribute('stamp'), + 'moderation_reason': (_tombstone$querySelec = tombstone.querySelector('reason')) === null || _tombstone$querySelec === void 0 ? void 0 : _tombstone$querySelec.textContent + }; + } + } + } + return {}; +} +function getOccupantID(stanza, chatbox) { + if (chatbox.features.get(parsers_Strophe.NS.OCCUPANTID)) { + var _sizzle$pop; + return (_sizzle$pop = muc_parsers_sizzle("occupant-id[xmlns=\"".concat(parsers_Strophe.NS.OCCUPANTID, "\"]"), stanza).pop()) === null || _sizzle$pop === void 0 ? void 0 : _sizzle$pop.getAttribute('id'); + } +} + +/** + * Determines whether the sender of this MUC message is the current user or + * someone else. + * @param { MUCMessageAttributes } attrs + * @param { _converse.ChatRoom } chatbox + * @returns { 'me'|'them' } + */ +function getSender(attrs, chatbox) { + var is_me; + var own_occupant_id = chatbox.get('occupant_id'); + if (own_occupant_id) { + is_me = attrs.occupant_id === own_occupant_id; + } else if (attrs.from_real_jid) { + is_me = parsers_Strophe.getBareJidFromJid(attrs.from_real_jid) === shared_converse.bare_jid; + } else { + is_me = attrs.nick === chatbox.get('nick'); + } + return is_me ? 'me' : 'them'; +} + +/** + * Parses a passed in message stanza and returns an object of attributes. + * @param { Element } stanza - The message stanza + * @param { Element } original_stanza - The original stanza, that contains the + * message stanza, if it was contained, otherwise it's the message stanza itself. + * @param { _converse.ChatRoom } chatbox + * @param { _converse } _converse + * @returns { Promise } + */ +function parseMUCMessage(_x, _x2) { + return _parseMUCMessage.apply(this, arguments); +} + +/** + * Given an IQ stanza with a member list, create an array of objects containing + * known member data (e.g. jid, nick, role, affiliation). + * @private + * @method muc_utils#parseMemberListIQ + * @returns { MemberListItem[] } + */ +function _parseMUCMessage() { + _parseMUCMessage = muc_parsers_asyncToGenerator( /*#__PURE__*/muc_parsers_regeneratorRuntime().mark(function _callee(stanza, chatbox) { + var _stanza$querySelector, _stanza$querySelector2, _stanza$querySelector3, _stanza$querySelector4, _chatbox$occupants$fi; + var selector, original_stanza, delay, from, marker, attrs; + return muc_parsers_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + throwErrorIfInvalidForward(stanza); + selector = "[xmlns=\"".concat(parsers_NS.MAM, "\"] > forwarded[xmlns=\"").concat(parsers_NS.FORWARD, "\"] > message"); + original_stanza = stanza; + stanza = muc_parsers_sizzle(selector, stanza).pop() || stanza; + if (!muc_parsers_sizzle("message > forwarded[xmlns=\"".concat(parsers_Strophe.NS.FORWARD, "\"]"), stanza).length) { + _context.next = 6; + break; + } + return _context.abrupt("return", new StanzaParseError("Invalid Stanza: Forged MAM groupchat message from ".concat(stanza.getAttribute('from')), stanza)); + case 6: + delay = muc_parsers_sizzle("delay[xmlns=\"".concat(parsers_Strophe.NS.DELAY, "\"]"), original_stanza).pop(); + from = stanza.getAttribute('from'); + marker = getChatMarker(stanza); + /** + * @typedef { Object } MUCMessageAttributes + * The object which {@link parseMUCMessage} returns + * @property { ('me'|'them') } sender - Whether the message was sent by the current user or someone else + * @property { Array } activities - A list of objects representing XEP-0316 MEP notification data + * @property { Array } references - A list of objects representing XEP-0372 references + * @property { Boolean } editable - Is this message editable via XEP-0308? + * @property { Boolean } is_archived - Is this message from a XEP-0313 MAM archive? + * @property { Boolean } is_carbon - Is this message a XEP-0280 Carbon? + * @property { Boolean } is_delayed - Was delivery of this message was delayed as per XEP-0203? + * @property { Boolean } is_encrypted - Is this message XEP-0384 encrypted? + * @property { Boolean } is_error - Whether an error was received for this message + * @property { Boolean } is_headline - Is this a "headline" message? + * @property { Boolean } is_markable - Can this message be marked with a XEP-0333 chat marker? + * @property { Boolean } is_marker - Is this message a XEP-0333 Chat Marker? + * @property { Boolean } is_only_emojis - Does the message body contain only emojis? + * @property { Boolean } is_spoiler - Is this a XEP-0382 spoiler message? + * @property { Boolean } is_tombstone - Is this a XEP-0424 tombstone? + * @property { Boolean } is_unstyled - Whether XEP-0393 styling hints should be ignored + * @property { Boolean } is_valid_receipt_request - Does this message request a XEP-0184 receipt (and is not from us or a carbon or archived message) + * @property { Object } encrypted - XEP-0384 encryption payload attributes + * @property { String } body - The contents of the tag of the message stanza + * @property { String } chat_state - The XEP-0085 chat state notification contained in this message + * @property { String } edited - An ISO8601 string recording the time that the message was edited per XEP-0308 + * @property { String } error_condition - The defined error condition + * @property { String } error_text - The error text received from the server + * @property { String } error_type - The type of error received from the server + * @property { String } from - The sender JID (${muc_jid}/${nick}) + * @property { String } from_muc - The JID of the MUC from which this message was sent + * @property { String } from_real_jid - The real JID of the sender, if available + * @property { String } fullname - The full name of the sender + * @property { String } marker - The XEP-0333 Chat Marker value + * @property { String } marker_id - The `id` attribute of a XEP-0333 chat marker + * @property { String } moderated - The type of XEP-0425 moderation (if any) that was applied + * @property { String } moderated_by - The JID of the user that moderated this message + * @property { String } moderated_id - The XEP-0359 Stanza ID of the message that this one moderates + * @property { String } moderation_reason - The reason provided why this message moderates another + * @property { String } msgid - The root `id` attribute of the stanza + * @property { String } nick - The MUC nickname of the sender + * @property { String } occupant_id - The XEP-0421 occupant ID + * @property { String } oob_desc - The description of the XEP-0066 out of band data + * @property { String } oob_url - The URL of the XEP-0066 out of band data + * @property { String } origin_id - The XEP-0359 Origin ID + * @property { String } receipt_id - The `id` attribute of a XEP-0184 element + * @property { String } received - An ISO8601 string recording the time that the message was received + * @property { String } replace_id - The `id` attribute of a XEP-0308 element + * @property { String } retracted - An ISO8601 string recording the time that the message was retracted + * @property { String } retracted_id - The `id` attribute of a XEP-424 element + * @property { String } spoiler_hint The XEP-0382 spoiler hint + * @property { String } stanza_id - The XEP-0359 Stanza ID. Note: the key is actualy `stanza_id ${by_jid}` and there can be multiple. + * @property { String } subject - The element value + * @property { String } thread - The element value + * @property { String } time - The time (in ISO8601 format), either given by the XEP-0203 element, or of receipt. + * @property { String } to - The recipient JID + * @property { String } type - The type of message + */ + attrs = Object.assign({ + from: from, + 'activities': getMEPActivities(stanza), + 'body': (_stanza$querySelector = stanza.querySelector(':scope > body')) === null || _stanza$querySelector === void 0 ? void 0 : (_stanza$querySelector2 = _stanza$querySelector.textContent) === null || _stanza$querySelector2 === void 0 ? void 0 : _stanza$querySelector2.trim(), + 'chat_state': getChatState(stanza), + 'from_muc': parsers_Strophe.getBareJidFromJid(from), + 'is_archived': isArchived(original_stanza), + 'is_carbon': isCarbon(original_stanza), + 'is_delayed': !!delay, + 'is_forwarded': !!stanza.querySelector('forwarded'), + 'is_headline': isHeadline(stanza), + 'is_markable': !!muc_parsers_sizzle("markable[xmlns=\"".concat(parsers_Strophe.NS.MARKERS, "\"]"), stanza).length, + 'is_marker': !!marker, + 'is_unstyled': !!muc_parsers_sizzle("unstyled[xmlns=\"".concat(parsers_Strophe.NS.STYLING, "\"]"), stanza).length, + 'marker_id': marker && marker.getAttribute('id'), + 'msgid': stanza.getAttribute('id') || original_stanza.getAttribute('id'), + 'nick': parsers_Strophe.unescapeNode(parsers_Strophe.getResourceFromJid(from)), + 'occupant_id': getOccupantID(stanza, chatbox), + 'receipt_id': getReceiptId(stanza), + 'received': new Date().toISOString(), + 'references': getReferences(stanza), + 'subject': (_stanza$querySelector3 = stanza.querySelector('subject')) === null || _stanza$querySelector3 === void 0 ? void 0 : _stanza$querySelector3.textContent, + 'thread': (_stanza$querySelector4 = stanza.querySelector('thread')) === null || _stanza$querySelector4 === void 0 ? void 0 : _stanza$querySelector4.textContent, + 'time': delay ? dayjs_min_default()(delay.getAttribute('stamp')).toISOString() : new Date().toISOString(), + 'to': stanza.getAttribute('to'), + 'type': stanza.getAttribute('type') + }, getErrorAttributes(stanza), getOutOfBandAttributes(stanza), getSpoilerAttributes(stanza), getCorrectionAttributes(stanza, original_stanza), getStanzaIDs(stanza, original_stanza), getOpenGraphMetadata(stanza), getRetractionAttributes(stanza, original_stanza), getModerationAttributes(stanza), getEncryptionAttributes(stanza, shared_converse)); + _context.next = 12; + return shared_api.emojis.initialize(); + case 12: + attrs.from_real_jid = attrs.is_archived && getJIDFromMUCUserData(stanza) || ((_chatbox$occupants$fi = chatbox.occupants.findOccupant(attrs)) === null || _chatbox$occupants$fi === void 0 ? void 0 : _chatbox$occupants$fi.get('jid')); + attrs = Object.assign({ + 'is_only_emojis': attrs.body ? parsers_u.isOnlyEmojis(attrs.body) : false, + 'is_valid_receipt_request': isValidReceiptRequest(stanza, attrs), + 'message': attrs.body || attrs.error, + // TODO: Should only be used for error and info messages + 'sender': getSender(attrs, chatbox) + }, attrs); + if (!(attrs.is_archived && original_stanza.getAttribute('from') !== attrs.from_muc)) { + _context.next = 18; + break; + } + return _context.abrupt("return", new StanzaParseError("Invalid Stanza: Forged MAM message from ".concat(original_stanza.getAttribute('from')), stanza)); + case 18: + if (!(attrs.is_archived && original_stanza.getAttribute('from') !== chatbox.get('jid'))) { + _context.next = 22; + break; + } + return _context.abrupt("return", new StanzaParseError("Invalid Stanza: Forged MAM groupchat message from ".concat(stanza.getAttribute('from')), stanza)); + case 22: + if (!attrs.is_carbon) { + _context.next = 24; + break; + } + return _context.abrupt("return", new StanzaParseError('Invalid Stanza: MUC messages SHOULD NOT be XEP-0280 carbon copied', stanza)); + case 24: + // We prefer to use one of the XEP-0359 unique and stable stanza IDs as the Model id, to avoid duplicates. + attrs['id'] = attrs['origin_id'] || attrs["stanza_id ".concat(attrs.from_muc || attrs.from)] || parsers_u.getUniqueId(); + + /** + * *Hook* which allows plugins to add additional parsing + * @event _converse#parseMUCMessage + */ + _context.next = 27; + return shared_api.hook('parseMUCMessage', stanza, attrs); + case 27: + attrs = _context.sent; + return _context.abrupt("return", Object.assign(attrs, getMediaURLsMetadata(attrs.is_encrypted ? attrs.plaintext : attrs.body))); + case 29: + case "end": + return _context.stop(); + } + }, _callee); + })); + return _parseMUCMessage.apply(this, arguments); +} +function parseMemberListIQ(iq) { + return muc_parsers_sizzle("query[xmlns=\"".concat(parsers_Strophe.NS.MUC_ADMIN, "\"] item"), iq).map(function (item) { /** - * Triggered whenever a { @link _converse.ChatBox } or ${ @link _converse.ChatRoom } - * has fetched its messages from the local cache. - * @event _converse#afterMessagesFetched - * @type { _converse.ChatBox| _converse.ChatRoom } - * @example _converse.api.listen.on('afterMessagesFetched', (chat) => { ... }); + * @typedef {Object} MemberListItem + * Either the JID or the nickname (or both) will be available. + * @property {string} affiliation + * @property {string} [role] + * @property {string} [jid] + * @property {string} [nick] */ - shared_api.trigger('afterMessagesFetched', this); - }, - fetchMessages: function fetchMessages() { - var _this2 = this; - if (this.messages.fetched_flag) { - log.info("Not re-fetching messages for ".concat(this.get('jid'))); - return; + var data = { + 'affiliation': item.getAttribute('affiliation') + }; + var jid = item.getAttribute('jid'); + if (parsers_u.isValidJID(jid)) { + data['jid'] = jid; + } else { + // XXX: Prosody sends nick for the jid attribute value + // Perhaps for anonymous room? + data['nick'] = jid; } - this.messages.fetched_flag = true; - var resolve = this.messages.fetched.resolve; - this.messages.fetch({ - 'add': true, - 'success': function success(msgs) { - _this2.afterMessagesFetched(msgs); - resolve(); - }, - 'error': function error() { - _this2.afterMessagesFetched(); - resolve(); - } - }); - return this.messages.fetched; - }, - handleErrorMessageStanza: function handleErrorMessageStanza(stanza) { - var _this3 = this; - return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee2() { - var __, attrs, message, new_attrs; - return model_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - __ = shared_converse.__; - _context2.next = 3; - return parseMessage(stanza, shared_converse); - case 3: - attrs = _context2.sent; - _context2.next = 6; - return _this3.shouldShowErrorMessage(attrs); - case 6: - if (_context2.sent) { - _context2.next = 8; - break; - } - return _context2.abrupt("return"); - case 8: - message = _this3.getMessageReferencedByError(attrs); - if (message) { - new_attrs = { - 'error': attrs.error, - 'error_condition': attrs.error_condition, - 'error_text': attrs.error_text, - 'error_type': attrs.error_type, - 'editable': false - }; - if (attrs.msgid === message.get('retraction_id')) { - // The error message refers to a retraction - new_attrs.retraction_id = undefined; - if (!attrs.error) { - if (attrs.error_condition === 'forbidden') { - new_attrs.error = __("You're not allowed to retract your message."); - } else { - new_attrs.error = __('Sorry, an error occurred while trying to retract your message.'); - } - } - } else if (!attrs.error) { - if (attrs.error_condition === 'forbidden') { - new_attrs.error = __("You're not allowed to send a message."); - } else { - new_attrs.error = __('Sorry, an error occurred while trying to send your message.'); - } - } - message.save(new_attrs); - } else { - _this3.createMessage(attrs); - } - case 10: - case "end": - return _context2.stop(); - } - }, _callee2); - }))(); - }, - /** - * Queue an incoming `chat` message stanza for processing. - * @async - * @private - * @method _converse.ChatBox#queueMessage - * @param { Promise } attrs - A promise which resolves to the message attributes - */ - queueMessage: function queueMessage(attrs) { - var _this4 = this; - this.msg_chain = (this.msg_chain || this.messages.fetched).then(function () { - return _this4.onMessage(attrs); - }).catch(function (e) { - return log.error(e); - }); - return this.msg_chain; - }, + var nick = item.getAttribute('nick'); + if (nick) { + data['nick'] = nick; + } + var role = item.getAttribute('role'); + if (role) { + data['role'] = nick; + } + return data; + }); +} + +/** + * Parses a passed in MUC presence stanza and returns an object of attributes. + * @method parseMUCPresence + * @param { Element } stanza - The presence stanza + * @param { _converse.ChatRoom } chatbox + * @returns { MUCPresenceAttributes } + */ +function parseMUCPresence(stanza, chatbox) { /** - * @async - * @private - * @method _converse.ChatBox#onMessage - * @param { MessageAttributes } attrs_promse - A promise which resolves to the message attributes. + * @typedef { Object } MUCPresenceAttributes + * The object which {@link parseMUCPresence} returns + * @property { ("offline|online") } show + * @property { Array } hats - An array of XEP-0317 hats + * @property { Array } states + * @property { String } from - The sender JID (${muc_jid}/${nick}) + * @property { String } nick - The nickname of the sender + * @property { String } occupant_id - The XEP-0421 occupant ID + * @property { String } type - The type of presence */ - onMessage: function onMessage(attrs) { - var _this5 = this; - return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee3() { - var message, msg; - return model_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return attrs; - case 2: - attrs = _context3.sent; - if (!model_u.isErrorObject(attrs)) { - _context3.next = 6; - break; - } - attrs.stanza && log.error(attrs.stanza); - return _context3.abrupt("return", log.error(attrs.message)); - case 6: - message = _this5.getDuplicateMessage(attrs); - if (!message) { - _context3.next = 11; - break; - } - _this5.updateMessage(message, attrs); - _context3.next = 30; - break; - case 11: - _context3.t0 = !_this5.handleReceipt(attrs) && !_this5.handleChatMarker(attrs); - if (!_context3.t0) { - _context3.next = 16; - break; - } - _context3.next = 15; - return _this5.handleRetraction(attrs); - case 15: - _context3.t0 = !_context3.sent; - case 16: - if (!_context3.t0) { - _context3.next = 30; - break; - } - _this5.setEditable(attrs, attrs.time); - if (attrs['chat_state'] && attrs.sender === 'them') { - _this5.notifications.set('chat_state', attrs.chat_state); - } - if (!model_u.shouldCreateMessage(attrs)) { - _context3.next = 30; - break; - } - _context3.next = 22; - return handleCorrection(_this5, attrs); - case 22: - _context3.t1 = _context3.sent; - if (_context3.t1) { - _context3.next = 27; - break; - } - _context3.next = 26; - return _this5.createMessage(attrs); - case 26: - _context3.t1 = _context3.sent; - case 27: - msg = _context3.t1; - _this5.notifications.set({ - 'chat_state': null - }); - _this5.handleUnreadMessage(msg); - case 30: - case "end": - return _context3.stop(); - } - }, _callee3); - }))(); - }, - onMessageUploadChanged: function onMessageUploadChanged(message) { - var _this6 = this; - return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee4() { - var attrs; - return model_regeneratorRuntime().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - if (!(message.get('upload') === shared_converse.SUCCESS)) { - _context4.next = 5; - break; - } - attrs = { - 'body': message.get('body'), - 'spoiler_hint': message.get('spoiler_hint'), - 'oob_url': message.get('oob_url') - }; - _context4.next = 4; - return _this6.sendMessage(attrs); - case 4: - message.destroy(); - case 5: - case "end": - return _context4.stop(); - } - }, _callee4); - }))(); - }, - onMessageAdded: function onMessageAdded(message) { - if (shared_api.settings.get('prune_messages_above') && (shared_api.settings.get('pruning_behavior') === 'scrolled' || !this.ui.get('scrolled')) && !isEmptyMessage(message)) { - debouncedPruneHistory(this); - } - }, - clearMessages: function clearMessages() { - var _this7 = this; - return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee5() { - return model_regeneratorRuntime().wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - _context5.prev = 0; - _context5.next = 3; - return _this7.messages.clearStore(); - case 3: - _context5.next = 9; - break; - case 5: - _context5.prev = 5; - _context5.t0 = _context5["catch"](0); - _this7.messages.trigger('reset'); - log.error(_context5.t0); - case 9: - _context5.prev = 9; - // No point in fetching messages from the cache if it's been cleared. - // Make sure to resolve the fetched promise to avoid freezes. - _this7.messages.fetched.resolve(); - return _context5.finish(9); - case 12: - case "end": - return _context5.stop(); - } - }, _callee5, null, [[0, 5, 9, 12]]); - }))(); - }, - close: function close() { - var _this8 = this; - return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee6() { - return model_regeneratorRuntime().wrap(function _callee6$(_context6) { - while (1) switch (_context6.prev = _context6.next) { - case 0: - if (shared_api.connection.connected()) { - // Immediately sending the chat state, because the - // model is going to be destroyed afterwards. - _this8.setChatState(shared_converse.INACTIVE); - _this8.sendChatState(); - } - _context6.prev = 1; - _context6.next = 4; - return new Promise(function (success, reject) { - return _this8.destroy({ - success: success, - 'error': function error(m, e) { - return reject(e); - } - }); - }); - case 4: - _context6.next = 9; - break; - case 6: - _context6.prev = 6; - _context6.t0 = _context6["catch"](1); - log.error(_context6.t0); - case 9: - _context6.prev = 9; - if (!shared_api.settings.get('clear_messages_on_reconnection')) { - _context6.next = 13; - break; - } - _context6.next = 13; - return _this8.clearMessages(); - case 13: - return _context6.finish(9); - case 14: - /** - * Triggered once a chatbox has been closed. - * @event _converse#chatBoxClosed - * @type {_converse.ChatBox | _converse.ChatRoom} - * @example _converse.api.listen.on('chatBoxClosed', chat => { ... }); - */ - shared_api.trigger('chatBoxClosed', _this8); - case 15: - case "end": - return _context6.stop(); - } - }, _callee6, null, [[1, 6, 9, 14]]); - }))(); - }, - announceReconnection: function announceReconnection() { - /** - * Triggered whenever a `_converse.ChatBox` instance has reconnected after an outage - * @event _converse#onChatReconnected - * @type {_converse.ChatBox | _converse.ChatRoom} - * @example _converse.api.listen.on('onChatReconnected', chat => { ... }); - */ - shared_api.trigger('chatReconnected', this); - }, - onReconnection: function onReconnection() { - var _this9 = this; - return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee7() { - return model_regeneratorRuntime().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { - case 0: - if (!shared_api.settings.get('clear_messages_on_reconnection')) { - _context7.next = 3; - break; - } - _context7.next = 3; - return _this9.clearMessages(); - case 3: - _this9.announceReconnection(); - case 4: - case "end": - return _context7.stop(); + var from = stanza.getAttribute('from'); + var type = stanza.getAttribute('type'); + var data = { + 'is_me': !!stanza.querySelector("status[code='110']"), + 'from': from, + 'occupant_id': getOccupantID(stanza, chatbox), + 'nick': parsers_Strophe.getResourceFromJid(from), + 'type': type, + 'states': [], + 'hats': [], + 'show': type !== 'unavailable' ? 'online' : 'offline' + }; + Array.from(stanza.children).forEach(function (child) { + if (child.matches('status')) { + data.status = child.textContent || null; + } else if (child.matches('show')) { + data.show = child.textContent || 'online'; + } else if (child.matches('x') && child.getAttribute('xmlns') === parsers_Strophe.NS.MUC_USER) { + Array.from(child.children).forEach(function (item) { + if (item.nodeName === 'item') { + data.affiliation = item.getAttribute('affiliation'); + data.role = item.getAttribute('role'); + data.jid = item.getAttribute('jid'); + data.nick = item.getAttribute('nick') || data.nick; + } else if (item.nodeName == 'status' && item.getAttribute('code')) { + data.states.push(item.getAttribute('code')); } - }, _callee7); - }))(); - }, - onPresenceChanged: function onPresenceChanged(item) { - var __ = shared_converse.__; - var show = item.get('show'); - var fullname = this.getDisplayName(); - var text; - if (show === 'offline') { - text = __('%1$s has gone offline', fullname); - } else if (show === 'away') { - text = __('%1$s has gone away', fullname); - } else if (show === 'dnd') { - text = __('%1$s is busy', fullname); - } else if (show === 'online') { - text = __('%1$s is online', fullname); - } - text && this.createMessage({ - 'message': text, - 'type': 'info' - }); - }, - onScrolledChanged: function onScrolledChanged() { - if (!this.ui.get('scrolled')) { - this.clearUnreadMsgCounter(); - this.pruneHistoryWhenScrolledDown(); - } - }, - pruneHistoryWhenScrolledDown: function pruneHistoryWhenScrolledDown() { - if (shared_api.settings.get('prune_messages_above') && shared_api.settings.get('pruning_behavior') === 'unscrolled' && !this.ui.get('scrolled')) { - debouncedPruneHistory(this); + }); + } else if (child.matches('x') && child.getAttribute('xmlns') === parsers_Strophe.NS.VCARDUPDATE) { + var _child$querySelector; + data.image_hash = (_child$querySelector = child.querySelector('photo')) === null || _child$querySelector === void 0 ? void 0 : _child$querySelector.textContent; + } else if (child.matches('hats') && child.getAttribute('xmlns') === parsers_Strophe.NS.MUC_HATS) { + /** + * @typedef { Object } MUCHat + * Object representing a XEP-0371 Hat + * @property { String } title + * @property { String } uri + */ + data['hats'] = Array.from(child.children).map(function (c) { + return c.matches('hat') && { + 'title': c.getAttribute('title'), + 'uri': c.getAttribute('uri') + }; + }); } - }, - validate: function validate(attrs) { - if (!attrs.jid) { - return 'Ignored ChatBox without JID'; + }); + return data; +} +;// CONCATENATED MODULE: ./src/headless/plugins/muc/affiliations/utils.js +function affiliations_utils_typeof(obj) { + "@babel/helpers - typeof"; + + return affiliations_utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, affiliations_utils_typeof(obj); +} +function affiliations_utils_regeneratorRuntime() { + "use strict"; + + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + affiliations_utils_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; + } + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; } - var room_jids = shared_api.settings.get('auto_join_rooms').map(function (s) { - return lodash_es_isObject(s) ? s.jid : s; + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); }); - var auto_join = shared_api.settings.get('auto_join_private_chats').concat(room_jids); - if (shared_api.settings.get("singleton") && !auto_join.includes(attrs.jid) && !shared_api.settings.get('auto_join_on_invite')) { - var msg = "".concat(attrs.jid, " is not allowed because singleton is true and it's not being auto_joined"); - log.warn(msg); - return msg; - } - }, - getDisplayName: function getDisplayName() { - if (this.contact) { - return this.contact.getDisplayName(); - } else if (this.vcard) { - return this.vcard.getDisplayName(); - } else { - return this.get('jid'); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == affiliations_utils_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + reject(record.arg); } - }, - createMessageFromError: function createMessageFromError(error) { - var _this10 = this; - return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee8() { - var msg; - return model_regeneratorRuntime().wrap(function _callee8$(_context8) { - while (1) switch (_context8.prev = _context8.next) { - case 0: - if (!(error instanceof TimeoutError)) { - _context8.next = 5; - break; - } - _context8.next = 3; - return _this10.createMessage({ - 'type': 'error', - 'message': error.message, - 'retry_event_id': error.retry_event_id, - 'is_ephemeral': 30000 - }); - case 3: - msg = _context8.sent; - msg.error = error; - case 5: - case "end": - return _context8.stop(); - } - }, _callee8); - }))(); - }, - editEarlierMessage: function editEarlierMessage() { - var message; - var idx = this.messages.findLastIndex('correcting'); - if (idx >= 0) { - this.messages.at(idx).save('correcting', false); - while (idx > 0) { - idx -= 1; - var candidate = this.messages.at(idx); - if (candidate.get('editable')) { - message = candidate; - break; + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); } + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } - } - message = message || this.messages.filter({ - 'sender': 'me' - }).reverse().find(function (m) { - return m.get('editable'); }); - if (message) { - message.save('correcting', true); - } - }, - editLaterMessage: function editLaterMessage() { - var message; - var idx = this.messages.findLastIndex('correcting'); - if (idx >= 0) { - this.messages.at(idx).save('correcting', false); - while (idx < this.messages.length - 1) { - idx += 1; - var candidate = this.messages.at(idx); - if (candidate.get('editable')) { - message = candidate; - message.save('correcting', true); - break; + } + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; } + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } - } - return message; - }, - getOldestMessage: function getOldestMessage() { - for (var i = 0; i < this.messages.length; i++) { - var message = this.messages.at(i); - if (message.get('type') === this.get('message_type')) { - return message; + }; + } + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); + } + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; + }; + return next.next = next; } } - }, - getMostRecentMessage: function getMostRecentMessage() { - for (var i = this.messages.length - 1; i >= 0; i--) { - var message = this.messages.at(i); - if (message.get('type') === this.get('message_type')) { - return message; - } - } - }, - getUpdatedMessageAttributes: function getUpdatedMessageAttributes(message, attrs) { - if (!attrs.error_type && message.get('error_type') === 'Decryption') { - // Looks like we have a failed decrypted message stored, and now - // we have a properly decrypted version of the same message. - // See issue: https://github.com/conversejs/converse.js/issues/2733#issuecomment-1035493594 - return Object.assign({}, attrs, { - error_condition: undefined, - error_message: undefined, - error_text: undefined, - error_type: undefined, - is_archived: attrs.is_archived, - is_ephemeral: false, - is_error: false - }); - } else { - return { - is_archived: attrs.is_archived - }; - } - }, - updateMessage: function updateMessage(message, attrs) { - var new_attrs = this.getUpdatedMessageAttributes(message, attrs); - new_attrs && message.save(new_attrs); - }, - /** - * Mutator for setting the chat state of this chat session. - * Handles clearing of any chat state notification timeouts and - * setting new ones if necessary. - * Timeouts are set when the state being set is COMPOSING or PAUSED. - * After the timeout, COMPOSING will become PAUSED and PAUSED will become INACTIVE. - * See XEP-0085 Chat State Notifications. - * @private - * @method _converse.ChatBox#setChatState - * @param { string } state - The chat state (consts ACTIVE, COMPOSING, PAUSED, INACTIVE, GONE) - */ - setChatState: function setChatState(state, options) { - if (this.chat_state_timeout !== undefined) { - window.clearTimeout(this.chat_state_timeout); - delete this.chat_state_timeout; - } - if (state === shared_converse.COMPOSING) { - this.chat_state_timeout = window.setTimeout(this.setChatState.bind(this), shared_converse.TIMEOUTS.PAUSED, shared_converse.PAUSED); - } else if (state === shared_converse.PAUSED) { - this.chat_state_timeout = window.setTimeout(this.setChatState.bind(this), shared_converse.TIMEOUTS.INACTIVE, shared_converse.INACTIVE); - } - this.set('chat_state', state, options); + return { + next: doneResult + }; + } + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; - }, - /** - * Given an error `` stanza's attributes, find the saved message model which is - * referenced by that error. - * @param { Object } attrs - */ - getMessageReferencedByError: function getMessageReferencedByError(attrs) { - var id = attrs.msgid; - return id && this.messages.models.find(function (m) { - return [m.get('msgid'), m.get('retraction_id')].includes(id); - }); - }, - /** - * @private - * @method _converse.ChatBox#shouldShowErrorMessage - * @returns {boolean} - */ - shouldShowErrorMessage: function shouldShowErrorMessage(attrs) { - var msg = this.getMessageReferencedByError(attrs); - if (!msg && attrs.chat_state) { - // If the error refers to a message not included in our store, - // and it has a chat state tag, we assume that this was a - // CSI message (which we don't store). - // See https://github.com/conversejs/converse.js/issues/1317 - return; - } - // Gets overridden in ChatRoom - return true; - }, - isSameUser: function isSameUser(jid1, jid2) { - return model_u.isSameBareJID(jid1, jid2); - }, - /** - * Looks whether we already have a retraction for this - * incoming message. If so, it's considered "dangling" because it - * probably hasn't been applied to anything yet, given that the - * relevant message is only coming in now. - * @private - * @method _converse.ChatBox#findDanglingRetraction - * @param { object } attrs - Attributes representing a received - * message, as returned by {@link parseMessage} - * @returns { _converse.Message } - */ - findDanglingRetraction: function findDanglingRetraction(attrs) { - if (!attrs.origin_id || !this.messages.length) { - return null; - } - // Only look for dangling retractions if there are newer - // messages than this one, since retractions come after. - if (this.messages.last().get('time') > attrs.time) { - // Search from latest backwards - var messages = Array.from(this.messages.models); - messages.reverse(); - return messages.find(function (_ref) { - var attributes = _ref.attributes; - return attributes.retracted_id === attrs.origin_id && attributes.from === attrs.from && !attributes.moderated_by; - }); - } - }, - /** - * Handles message retraction based on the passed in attributes. - * @private - * @method _converse.ChatBox#handleRetraction - * @param { object } attrs - Attributes representing a received - * message, as returned by {@link parseMessage} - * @returns { Boolean } Returns `true` or `false` depending on - * whether a message was retracted or not. - */ - handleRetraction: function handleRetraction(attrs) { - var _this11 = this; - return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee9() { - var RETRACTION_ATTRIBUTES, message, _message, retraction_attrs, new_attrs; - return model_regeneratorRuntime().wrap(function _callee9$(_context9) { - while (1) switch (_context9.prev = _context9.next) { - case 0: - RETRACTION_ATTRIBUTES = ['retracted', 'retracted_id', 'editable']; - if (!attrs.retracted) { - _context9.next = 14; - break; - } - if (!attrs.is_tombstone) { - _context9.next = 4; - break; - } - return _context9.abrupt("return", false); - case 4: - message = _this11.messages.findWhere({ - 'origin_id': attrs.retracted_id, - 'from': attrs.from - }); - if (message) { - _context9.next = 10; - break; - } - attrs['dangling_retraction'] = true; - _context9.next = 9; - return _this11.createMessage(attrs); - case 9: - return _context9.abrupt("return", true); - case 10: - message.save(lodash_es_pick(attrs, RETRACTION_ATTRIBUTES)); - return _context9.abrupt("return", true); - case 14: - // Check if we have dangling retraction - _message = _this11.findDanglingRetraction(attrs); - if (!_message) { - _context9.next = 21; - break; - } - retraction_attrs = lodash_es_pick(_message.attributes, RETRACTION_ATTRIBUTES); - new_attrs = Object.assign({ - 'dangling_retraction': false - }, attrs, retraction_attrs); - delete new_attrs['id']; // Delete id, otherwise a new cache entry gets created - _message.save(new_attrs); - return _context9.abrupt("return", true); - case 21: - return _context9.abrupt("return", false); - case 22: - case "end": - return _context9.stop(); - } - }, _callee9); - }))(); - }, - /** - * Returns an already cached message (if it exists) based on the - * passed in attributes map. - * @private - * @method _converse.ChatBox#getDuplicateMessage - * @param { object } attrs - Attributes representing a received - * message, as returned by {@link parseMessage} - * @returns {Promise<_converse.Message>} - */ - getDuplicateMessage: function getDuplicateMessage(attrs) { - var queries = [].concat(model_toConsumableArray(this.getStanzaIdQueryAttrs(attrs)), [this.getOriginIdQueryAttrs(attrs), this.getMessageBodyQueryAttrs(attrs)]).filter(function (s) { - return s; - }); - var msgs = this.messages.models; - return msgs.find(function (m) { - return queries.reduce(function (out, q) { - return out || lodash_es_isMatch(m.attributes, q); - }, false); + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); }); - }, - getOriginIdQueryAttrs: function getOriginIdQueryAttrs(attrs) { - return attrs.origin_id && { - 'origin_id': attrs.origin_id, - 'from': attrs.from + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; }; - }, - getStanzaIdQueryAttrs: function getStanzaIdQueryAttrs(attrs) { - var keys = Object.keys(attrs).filter(function (k) { - return k.startsWith('stanza_id '); - }); - return keys.map(function (key) { - var by_jid = key.replace(/^stanza_id /, ''); - var query = {}; - query["stanza_id ".concat(by_jid)] = attrs[key]; - return query; - }); - }, - getMessageBodyQueryAttrs: function getMessageBodyQueryAttrs(attrs) { - if (attrs.msgid) { - var query = { - 'from': attrs.from, - 'msgid': attrs.msgid - }; - // XXX: Need to take XEP-428 into consideration - if (!attrs.is_encrypted && attrs.body) { - // We can't match the message if it's a reflected - // encrypted message (e.g. via MAM or in a MUC) - query['body'] = attrs.body; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } - return query; - } - }, - /** - * Retract one of your messages in this chat - * @private - * @method _converse.ChatBoxView#retractOwnMessage - * @param { _converse.Message } message - The message which we're retracting. - */ - retractOwnMessage: function retractOwnMessage(message) { - this.sendRetractionMessage(message); - message.save({ - 'retracted': new Date().toISOString(), - 'retracted_id': message.get('origin_id'), - 'retraction_id': message.get('id'), - 'is_ephemeral': true, - 'editable': false - }); - }, - /** - * Sends a message stanza to retract a message in this chat - * @private - * @method _converse.ChatBox#sendRetractionMessage - * @param { _converse.Message } message - The message which we're retracting. - */ - sendRetractionMessage: function sendRetractionMessage(message) { - var origin_id = message.get('origin_id'); - if (!origin_id) { - throw new Error("Can't retract message without a XEP-0359 Origin ID"); - } - var msg = model_$msg({ - 'id': model_u.getUniqueId(), - 'to': this.get('jid'), - 'type': "chat" - }).c('store', { - xmlns: model_Strophe.NS.HINTS - }).up().c("apply-to", { - 'id': origin_id, - 'xmlns': model_Strophe.NS.FASTEN - }).c('retract', { - xmlns: model_Strophe.NS.RETRACT - }); - return shared_converse.connection.send(msg); - }, - /** - * Finds the last eligible message and then sends a XEP-0333 chat marker for it. - * @param { ('received'|'displayed'|'acknowledged') } [type='displayed'] - * @param { Boolean } force - Whether a marker should be sent for the - * message, even if it didn't include a `markable` element. - */ - sendMarkerForLastMessage: function sendMarkerForLastMessage() { - var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'displayed'; - var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var msgs = Array.from(this.messages.models); - msgs.reverse(); - var msg = msgs.find(function (m) { - return m.get('sender') === 'them' && (force || m.get('is_markable')); - }); - msg && this.sendMarkerForMessage(msg, type, force); - }, - /** - * Given the passed in message object, send a XEP-0333 chat marker. - * @param { _converse.Message } msg - * @param { ('received'|'displayed'|'acknowledged') } [type='displayed'] - * @param { Boolean } force - Whether a marker should be sent for the - * message, even if it didn't include a `markable` element. - */ - sendMarkerForMessage: function sendMarkerForMessage(msg) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'displayed'; - var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - if (!msg || !shared_api.settings.get('send_chat_markers').includes(type)) { - return; - } - if (msg !== null && msg !== void 0 && msg.get('is_markable') || force) { - var from_jid = model_Strophe.getBareJidFromJid(msg.get('from')); - sendMarker(from_jid, msg.get('msgid'), type, msg.get('type')); - } - }, - handleChatMarker: function handleChatMarker(attrs) { - var to_bare_jid = model_Strophe.getBareJidFromJid(attrs.to); - if (to_bare_jid !== shared_converse.bare_jid) { - return false; - } - if (attrs.is_markable) { - if (this.contact && !attrs.is_archived && !attrs.is_carbon) { - sendMarker(attrs.from, attrs.msgid, 'received'); + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } + } } - return false; - } else if (attrs.marker_id) { - var message = this.messages.findWhere({ - 'msgid': attrs.marker_id - }); - var field_name = "marker_".concat(attrs.marker); - if (message && !message.get(field_name)) { - message.save({ - field_name: new Date().toISOString() - }); + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } } - return true; - } - }, - sendReceiptStanza: function sendReceiptStanza(to_jid, id) { - var receipt_stanza = model_$msg({ - 'from': shared_converse.connection.jid, - 'id': model_u.getUniqueId(), - 'to': to_jid, - 'type': 'chat' - }).c('received', { - 'xmlns': model_Strophe.NS.RECEIPTS, - 'id': id - }).up().c('store', { - 'xmlns': model_Strophe.NS.HINTS - }).up(); - shared_api.send(receipt_stanza); - }, - handleReceipt: function handleReceipt(attrs) { - if (attrs.sender === 'them') { - if (attrs.is_valid_receipt_request) { - this.sendReceiptStanza(attrs.from, attrs.msgid); - } else if (attrs.receipt_id) { - var message = this.messages.findWhere({ - 'msgid': attrs.receipt_id - }); - if (message && !message.get('received')) { - message.save({ - 'received': new Date().toISOString() - }); + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; } - return true; } - } - return false; - }, - /** - * Given a {@link _converse.Message} return the XML stanza that represents it. - * @private - * @method _converse.ChatBox#createMessageStanza - * @param { _converse.Message } message - The message object - */ - createMessageStanza: function createMessageStanza(message) { - var _this12 = this; - return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee10() { - var stanza, data; - return model_regeneratorRuntime().wrap(function _callee10$(_context10) { - while (1) switch (_context10.prev = _context10.next) { - case 0: - stanza = model_$msg({ - 'from': shared_converse.connection.jid, - 'to': _this12.get('jid'), - 'type': _this12.get('message_type'), - 'id': message.get('edited') && model_u.getUniqueId() || message.get('msgid') - }).c('body').t(message.get('body')).up().c(shared_converse.ACTIVE, { - 'xmlns': model_Strophe.NS.CHATSTATES - }).root(); - if (message.get('type') === 'chat') { - stanza.c('request', { - 'xmlns': model_Strophe.NS.RECEIPTS - }).root(); - } - if (!message.get('is_encrypted')) { - if (message.get('is_spoiler')) { - if (message.get('spoiler_hint')) { - stanza.c('spoiler', { - 'xmlns': model_Strophe.NS.SPOILER - }, message.get('spoiler_hint')).root(); - } else { - stanza.c('spoiler', { - 'xmlns': model_Strophe.NS.SPOILER - }).root(); - } - } - (message.get('references') || []).forEach(function (reference) { - var attrs = { - 'xmlns': model_Strophe.NS.REFERENCE, - 'begin': reference.begin, - 'end': reference.end, - 'type': reference.type - }; - if (reference.uri) { - attrs.uri = reference.uri; - } - stanza.c('reference', attrs).root(); - }); - if (message.get('oob_url')) { - stanza.c('x', { - 'xmlns': model_Strophe.NS.OUTOFBAND - }).c('url').t(message.get('oob_url')).root(); - } - } - if (message.get('edited')) { - stanza.c('replace', { - 'xmlns': model_Strophe.NS.MESSAGE_CORRECT, - 'id': message.get('msgid') - }).root(); - } - if (message.get('origin_id')) { - stanza.c('origin-id', { - 'xmlns': model_Strophe.NS.SID, - 'id': message.get('origin_id') - }).root(); - } - stanza.root(); - /** - * *Hook* which allows plugins to update an outgoing message stanza - * @event _converse#createMessageStanza - * @param { _converse.ChatBox | _converse.ChatRoom } - The chat from - * which this message stanza is being sent. - * @param { Object } data - Message data - * @param { _converse.Message | _converse.ChatRoomMessage } data.message - * The message object from which the stanza is created and which gets persisted to storage. - * @param { Strophe.Builder } data.stanza - * The stanza that will be sent out, as a Strophe.Builder object. - * You can use the Strophe.Builder functions to extend the stanza. - * See http://strophe.im/strophejs/doc/1.4.3/files/strophe-umd-js.html#Strophe.Builder.Functions - */ - _context10.next = 8; - return shared_api.hook('createMessageStanza', _this12, { - message: message, - stanza: stanza - }); - case 8: - data = _context10.sent; - return _context10.abrupt("return", data.stanza); - case 10: - case "end": - return _context10.stop(); - } - }, _callee10); - }))(); - }, - getOutgoingMessageAttributes: function getOutgoingMessageAttributes(attrs) { - var _this13 = this; - return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee11() { - var _attrs; - var is_spoiler, origin_id, text, body; - return model_regeneratorRuntime().wrap(function _callee11$(_context11) { - while (1) switch (_context11.prev = _context11.next) { - case 0: - _context11.next = 2; - return shared_api.emojis.initialize(); - case 2: - is_spoiler = !!_this13.get('composing_spoiler'); - origin_id = model_u.getUniqueId(); - text = (_attrs = attrs) === null || _attrs === void 0 ? void 0 : _attrs.body; - body = text ? model_u.shortnamesToUnicode(text) : undefined; - attrs = Object.assign({}, attrs, { - 'from': shared_converse.bare_jid, - 'fullname': shared_converse.xmppstatus.get('fullname'), - 'id': origin_id, - 'is_only_emojis': text ? model_u.isOnlyEmojis(text) : false, - 'jid': _this13.get('jid'), - 'message': body, - 'msgid': origin_id, - 'nickname': _this13.get('nickname'), - 'sender': 'me', - 'time': new Date().toISOString(), - 'type': _this13.get('message_type'), - body: body, - is_spoiler: is_spoiler, - origin_id: origin_id - }, getMediaURLsMetadata(text)); - - /** - * *Hook* which allows plugins to update the attributes of an outgoing message. - * These attributes get set on the { @link _converse.Message } or - * { @link _converse.ChatRoomMessage } and persisted to storage. - * @event _converse#getOutgoingMessageAttributes - * @param { _converse.ChatBox | _converse.ChatRoom } chat - * The chat from which this message will be sent. - * @param { MessageAttributes } attrs - * The message attributes, from which the stanza will be created. - */ - _context11.next = 9; - return shared_api.hook('getOutgoingMessageAttributes', _this13, attrs); - case 9: - attrs = _context11.sent; - return _context11.abrupt("return", attrs); - case 11: - case "end": - return _context11.stop(); - } - }, _callee11); - }))(); - }, - /** - * Responsible for setting the editable attribute of messages. - * If api.settings.get('allow_message_corrections') is "last", then only the last - * message sent from me will be editable. If set to "all" all messages - * will be editable. Otherwise no messages will be editable. - * @method _converse.ChatBox#setEditable - * @memberOf _converse.ChatBox - * @param { Object } attrs An object containing message attributes. - * @param { String } send_time - time when the message was sent - */ - setEditable: function setEditable(attrs, send_time) { - if (attrs.is_headline || isEmptyMessage(attrs) || attrs.sender !== 'me') { - return; - } - if (shared_api.settings.get('allow_message_corrections') === 'all') { - attrs.editable = !(attrs.file || attrs.retracted || 'oob_url' in attrs); - } else if (shared_api.settings.get('allow_message_corrections') === 'last' && send_time > this.get('time_sent')) { - var _this$messages$findWh; - this.set({ - 'time_sent': send_time - }); - (_this$messages$findWh = this.messages.findWhere({ - 'editable': true - })) === null || _this$messages$findWh === void 0 ? void 0 : _this$messages$findWh.save({ - 'editable': false - }); - attrs.editable = !(attrs.file || attrs.retracted || 'oob_url' in attrs); - } - }, - /** - * Queue the creation of a message, to make sure that we don't run - * into a race condition whereby we're creating a new message - * before the collection has been fetched. - * @async - * @private - * @method _converse.ChatBox#createMessage - * @param { Object } attrs - */ - createMessage: function createMessage(attrs, options) { - var _this14 = this; - return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee12() { - return model_regeneratorRuntime().wrap(function _callee12$(_context12) { - while (1) switch (_context12.prev = _context12.next) { - case 0: - attrs.time = attrs.time || new Date().toISOString(); - _context12.next = 3; - return _this14.messages.fetched; - case 3: - return _context12.abrupt("return", _this14.messages.create(attrs, options)); - case 4: - case "end": - return _context12.stop(); - } - }, _callee12); - }))(); - }, - /** - * Responsible for sending off a text message inside an ongoing chat conversation. - * @private - * @method _converse.ChatBox#sendMessage - * @memberOf _converse.ChatBox - * @param { Object } [attrs] - A map of attributes to be saved on the message - * @returns { _converse.Message } - * @example - * const chat = api.chats.get('buddy1@example.org'); - * chat.sendMessage({'body': 'hello world'}); - */ - sendMessage: function sendMessage(attrs) { - var _this15 = this; - return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee13() { - var message, older_versions, edited_time, stanza; - return model_regeneratorRuntime().wrap(function _callee13$(_context13) { - while (1) switch (_context13.prev = _context13.next) { - case 0: - _context13.next = 2; - return _this15.getOutgoingMessageAttributes(attrs); - case 2: - attrs = _context13.sent; - message = _this15.messages.findWhere('correcting'); - if (!message) { - _context13.next = 11; - break; - } - older_versions = message.get('older_versions') || {}; - edited_time = message.get('edited') || message.get('time'); - older_versions[edited_time] = message.getMessageText(); - message.save(model_objectSpread(model_objectSpread({}, lodash_es_pick(attrs, ['body', 'is_only_emojis', 'media_urls', 'references', 'is_encrypted'])), { - 'correcting': false, - 'edited': new Date().toISOString(), - 'message': attrs.body, - 'ogp_metadata': [], - 'origin_id': model_u.getUniqueId(), - 'received': undefined, - older_versions: older_versions, - plaintext: attrs.is_encrypted ? attrs.message : undefined - })); - _context13.next = 15; - break; - case 11: - _this15.setEditable(attrs, new Date().toISOString()); - _context13.next = 14; - return _this15.createMessage(attrs); - case 14: - message = _context13.sent; - case 15: - _context13.prev = 15; - _context13.next = 18; - return _this15.createMessageStanza(message); - case 18: - stanza = _context13.sent; - shared_api.send(stanza); - _context13.next = 27; - break; - case 22: - _context13.prev = 22; - _context13.t0 = _context13["catch"](15); - message.destroy(); - log.error(_context13.t0); - return _context13.abrupt("return"); - case 27: - /** - * Triggered when a message is being sent out - * @event _converse#sendMessage - * @type { Object } - * @param { Object } data - * @property { (_converse.ChatBox | _converse.ChatRoom) } data.chatbox - * @property { (_converse.Message | _converse.ChatRoomMessage) } data.message - */ - shared_api.trigger('sendMessage', { - 'chatbox': _this15, - message: message - }); - return _context13.abrupt("return", message); - case 29: - case "end": - return _context13.stop(); - } - }, _callee13, null, [[15, 22]]); - }))(); - }, - /** - * Sends a message with the current XEP-0085 chat state of the user - * as taken from the `chat_state` attribute of the {@link _converse.ChatBox}. - * @private - * @method _converse.ChatBox#sendChatState - */ - sendChatState: function sendChatState() { - if (shared_api.settings.get('send_chat_state_notifications') && this.get('chat_state')) { - var allowed = shared_api.settings.get('send_chat_state_notifications'); - if (Array.isArray(allowed) && !allowed.includes(this.get('chat_state'))) { - return; - } - shared_api.send(model_$msg({ - 'id': model_u.getUniqueId(), - 'to': this.get('jid'), - 'type': 'chat' - }).c(this.get('chat_state'), { - 'xmlns': model_Strophe.NS.CHATSTATES - }).up().c('no-store', { - 'xmlns': model_Strophe.NS.HINTS - }).up().c('no-permanent-store', { - 'xmlns': model_Strophe.NS.HINTS - })); - } - }, - sendFiles: function sendFiles(files) { - var _this16 = this; - return model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee15() { - var _maxFileSize; - var __, result, item, data, max_file_size, slot_request_url; - return model_regeneratorRuntime().wrap(function _callee15$(_context15) { - while (1) switch (_context15.prev = _context15.next) { - case 0: - __ = shared_converse.__; - _context15.next = 3; - return shared_api.disco.features.get(model_Strophe.NS.HTTPUPLOAD, shared_converse.domain); - case 3: - result = _context15.sent; - item = result.pop(); - if (item) { - _context15.next = 8; - break; - } - _this16.createMessage({ - 'message': __("Sorry, looks like file upload is not supported by your server."), - 'type': 'error', - 'is_ephemeral': true - }); - return _context15.abrupt("return"); - case 8: - data = item.dataforms.where({ - 'FORM_TYPE': { - 'value': model_Strophe.NS.HTTPUPLOAD, - 'type': "hidden" - } - }).pop(); - max_file_size = window.parseInt((_maxFileSize = ((data === null || data === void 0 ? void 0 : data.attributes) || {})['max-file-size']) === null || _maxFileSize === void 0 ? void 0 : _maxFileSize.value); - slot_request_url = item === null || item === void 0 ? void 0 : item.id; - if (slot_request_url) { - _context15.next = 14; - break; - } - _this16.createMessage({ - 'message': __("Sorry, looks like file upload is not supported by your server."), - 'type': 'error', - 'is_ephemeral': true - }); - return _context15.abrupt("return"); - case 14: - Array.from(files).forEach( /*#__PURE__*/function () { - var _ref2 = model_asyncToGenerator( /*#__PURE__*/model_regeneratorRuntime().mark(function _callee14(file) { - var initial_attrs, attrs, message; - return model_regeneratorRuntime().wrap(function _callee14$(_context14) { - while (1) switch (_context14.prev = _context14.next) { - case 0: - _context14.next = 2; - return shared_api.hook('beforeFileUpload', _this16, file); - case 2: - file = _context14.sent; - if (!(!window.isNaN(max_file_size) && window.parseInt(file.size) > max_file_size)) { - _context14.next = 7; - break; - } - return _context14.abrupt("return", _this16.createMessage({ - 'message': __('The size of your file, %1$s, exceeds the maximum allowed by your server, which is %2$s.', file.name, (0,external_filesize_namespaceObject.filesize)(max_file_size)), - 'type': 'error', - 'is_ephemeral': true - })); - case 7: - _context14.next = 9; - return _this16.getOutgoingMessageAttributes(); - case 9: - initial_attrs = _context14.sent; - attrs = Object.assign(initial_attrs, { - 'file': true, - 'progress': 0, - 'slot_request_url': slot_request_url - }); - _this16.setEditable(attrs, new Date().toISOString()); - _context14.next = 14; - return _this16.createMessage(attrs, { - 'silent': true - }); - case 14: - message = _context14.sent; - message.file = file; - _this16.messages.trigger('add', message); - message.getRequestSlotURL(); - case 18: - case "end": - return _context14.stop(); - } - }, _callee14); - })); - return function (_x) { - return _ref2.apply(this, arguments); - }; - }()); - case 15: - case "end": - return _context15.stop(); - } - }, _callee15); - }))(); - }, - maybeShow: function maybeShow(force) { - var _this17 = this; - if (isUniView()) { - var filter = function filter(c) { - return !c.get('hidden') && c.get('jid') !== _this17.get('jid') && c.get('id') !== 'controlbox'; - }; - var other_chats = shared_converse.chatboxes.filter(filter); - if (force || other_chats.length === 0) { - // We only have one chat visible at any one time. - // So before opening a chat, we make sure all other chats are hidden. - other_chats.forEach(function (c) { - return model_u.safeSave(c, { - 'hidden': true - }); - }); - model_u.safeSave(this, { - 'hidden': false - }); - } - return; - } - model_u.safeSave(this, { - 'hidden': false - }); - this.trigger('show'); - return this; - }, - /** - * Indicates whether the chat is hidden and therefore - * whether a newly received message will be visible - * to the user or not. - * @returns {boolean} - */ - isHidden: function isHidden() { - // Note: This methods gets overridden by converse-minimize - return this.get('hidden') || this.isScrolledUp() || shared_converse.windowState === 'hidden'; - }, - /** - * Given a newly received {@link _converse.Message} instance, - * update the unread counter if necessary. - * @private - * @method _converse.ChatBox#handleUnreadMessage - * @param {_converse.Message} message - */ - handleUnreadMessage: function handleUnreadMessage(message) { - if (!(message !== null && message !== void 0 && message.get('body'))) { - return; - } - if (model_u.isNewMessage(message)) { - if (message.get('sender') === 'me') { - // We remove the "scrolled" flag so that the chat area - // gets scrolled down. We always want to scroll down - // when the user writes a message as opposed to when a - // message is received. - this.ui.set('scrolled', false); - } else if (this.isHidden()) { - this.incrementUnreadMsgsCounter(message); - } else { - this.sendMarkerForMessage(message); - } - } - }, - incrementUnreadMsgsCounter: function incrementUnreadMsgsCounter(message) { - var settings = { - 'num_unread': this.get('num_unread') + 1 - }; - if (this.get('num_unread') === 0) { - settings['first_unread_id'] = message.get('id'); - } - this.save(settings); - }, - clearUnreadMsgCounter: function clearUnreadMsgCounter() { - if (this.get('num_unread') > 0) { - this.sendMarkerForMessage(this.messages.last()); - } - model_u.safeSave(this, { - 'num_unread': 0 - }); - }, - isScrolledUp: function isScrolledUp() { - return this.ui.get('scrolled'); - } -}); -/* harmony default export */ const model = (ChatBox); -;// CONCATENATED MODULE: ./src/headless/plugins/chat/message.js -function message_typeof(obj) { - "@babel/helpers - typeof"; - - return message_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, message_typeof(obj); -} -function message_regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - message_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; - } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); - }); - }); - } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == message_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - reject(record.arg); - } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); - } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done - }; - } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); - } - }; - } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); - } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); - } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal", delete record.arg, entry.completion = record; - } - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); - } - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) return iteratorMethod.call(iterable); - if ("function" == typeof iterable.next) return iterable; - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; - return next.value = undefined, next.done = !0, next; - }; - return next.next = next; - } - } - return { - next: doneResult - }; - } - function doneResult() { - return { - value: undefined, - done: !0 - }; - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { - var ctor = "function" == typeof genFun && genFun.constructor; - return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); - }, exports.mark = function (genFun) { - return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; - }, exports.awrap = function (arg) { - return { - __await: arg - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - void 0 === PromiseImpl && (PromiseImpl = Promise); - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { - return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; - } - return next.done = !0, next; - }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; - } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; - } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; } -function message_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function affiliations_utils_toConsumableArray(arr) { + return affiliations_utils_arrayWithoutHoles(arr) || affiliations_utils_iterableToArray(arr) || affiliations_utils_unsupportedIterableToArray(arr) || affiliations_utils_nonIterableSpread(); +} +function affiliations_utils_nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function affiliations_utils_unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return affiliations_utils_arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return affiliations_utils_arrayLikeToArray(o, minLen); +} +function affiliations_utils_iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +} +function affiliations_utils_arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return affiliations_utils_arrayLikeToArray(arr); +} +function affiliations_utils_arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; +} +function affiliations_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -41822,383 +38686,381 @@ function message_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, ar Promise.resolve(value).then(_next, _throw); } } -function message_asyncToGenerator(fn) { +function affiliations_utils_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - message_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + affiliations_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - message_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + affiliations_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } +/** + * @copyright The Converse.js contributors + * @license Mozilla Public License (MPLv2) + */ + + + + + + +var affiliations_utils_converse$env = public_converse.env, + affiliations_utils_Strophe = affiliations_utils_converse$env.Strophe, + utils_$iq = affiliations_utils_converse$env.$iq, + affiliations_utils_u = affiliations_utils_converse$env.u; + +/** + * Sends an IQ stanza to the server, asking it for the relevant affiliation list . + * Returns an array of {@link MemberListItem} objects, representing occupants + * that have the given affiliation. + * See: https://xmpp.org/extensions/xep-0045.html#modifymember + * @param { ("admin"|"owner"|"member") } affiliation + * @param { String } muc_jid - The JID of the MUC for which the affiliation list should be fetched + * @returns { Promise } + */ +function getAffiliationList(_x, _x2) { + return _getAffiliationList.apply(this, arguments); +} + +/** + * Given an occupant model, see which affiliations may be assigned by that user + * @param { Model } occupant + * @returns { Array<('owner'|'admin'|'member'|'outcast'|'none')> } - An array of assignable affiliations + */ +function _getAffiliationList() { + _getAffiliationList = affiliations_utils_asyncToGenerator( /*#__PURE__*/affiliations_utils_regeneratorRuntime().mark(function _callee(affiliation, muc_jid) { + var __, iq, result, err_msg, err, _err_msg, _err; + return affiliations_utils_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + __ = shared_converse.__; + iq = utils_$iq({ + 'to': muc_jid, + 'type': 'get' + }).c('query', { + xmlns: affiliations_utils_Strophe.NS.MUC_ADMIN + }).c('item', { + 'affiliation': affiliation + }); + _context.next = 4; + return shared_api.sendIQ(iq, null, false); + case 4: + result = _context.sent; + if (!(result === null)) { + _context.next = 10; + break; + } + err_msg = __('Error: timeout while fetching %1s list for MUC %2s', affiliation, muc_jid); + err = new Error(err_msg); + log.warn(err_msg); + return _context.abrupt("return", err); + case 10: + if (!affiliations_utils_u.isErrorStanza(result)) { + _context.next = 16; + break; + } + _err_msg = __('Error: not allowed to fetch %1s list for MUC %2s', affiliation, muc_jid); + _err = new Error(_err_msg); + log.warn(_err_msg); + log.warn(result); + return _context.abrupt("return", _err); + case 16: + return _context.abrupt("return", parseMemberListIQ(result).filter(function (p) { + return p; + }).sort(function (a, b) { + return a.nick < b.nick ? -1 : a.nick > b.nick ? 1 : 0; + })); + case 17: + case "end": + return _context.stop(); + } + }, _callee); + })); + return _getAffiliationList.apply(this, arguments); +} +function getAssignableAffiliations(occupant) { + var disabled = shared_api.settings.get('modtools_disable_assign'); + if (!Array.isArray(disabled)) { + disabled = disabled ? muc_AFFILIATIONS : []; + } + if ((occupant === null || occupant === void 0 ? void 0 : occupant.get('affiliation')) === 'owner') { + return muc_AFFILIATIONS.filter(function (a) { + return !disabled.includes(a); + }); + } else if ((occupant === null || occupant === void 0 ? void 0 : occupant.get('affiliation')) === 'admin') { + return muc_AFFILIATIONS.filter(function (a) { + return !['owner', 'admin'].concat(affiliations_utils_toConsumableArray(disabled)).includes(a); + }); + } else { + return []; + } +} + +// Necessary for tests +shared_converse.getAssignableAffiliations = getAssignableAffiliations; + +/** + * Send IQ stanzas to the server to modify affiliations for users in this groupchat. + * See: https://xmpp.org/extensions/xep-0045.html#modifymember + * @param { Array } users + * @param { string } users[].jid - The JID of the user whose affiliation will change + * @param { Array } users[].affiliation - The new affiliation for this user + * @param { string } [users[].reason] - An optional reason for the affiliation change + * @returns { Promise } + */ +function setAffiliations(muc_jid, users) { + var affiliations = affiliations_utils_toConsumableArray(new Set(users.map(function (u) { + return u.affiliation; + }))); + return Promise.all(affiliations.map(function (a) { + return setAffiliation(a, muc_jid, users); + })); +} + +/** + * Send IQ stanzas to the server to set an affiliation for + * the provided JIDs. + * See: https://xmpp.org/extensions/xep-0045.html#modifymember + * + * Prosody doesn't accept multiple JIDs' affiliations + * being set in one IQ stanza, so as a workaround we send + * a separate stanza for each JID. + * Related ticket: https://issues.prosody.im/345 + * + * @param { ('outcast'|'member'|'admin'|'owner') } affiliation - The affiliation to be set + * @param { String|Array } jids - The JID(s) of the MUCs in which the + * affiliations need to be set. + * @param { object } members - A map of jids, affiliations and + * optionally reasons. Only those entries with the + * same affiliation as being currently set will be considered. + * @returns { Promise } A promise which resolves and fails depending on the XMPP server response. + */ +function setAffiliation(affiliation, muc_jids, members) { + if (!Array.isArray(muc_jids)) { + muc_jids = [muc_jids]; + } + members = members.filter(function (m) { + return [undefined, affiliation].includes(m.affiliation); + }); + return Promise.all(muc_jids.reduce(function (acc, jid) { + return [].concat(affiliations_utils_toConsumableArray(acc), affiliations_utils_toConsumableArray(members.map(function (m) { + return sendAffiliationIQ(affiliation, jid, m); + }))); + }, [])); +} - - - - -var message_converse$env = public_converse.env, - message_Strophe = message_converse$env.Strophe, - message_sizzle = message_converse$env.sizzle, - message_u = message_converse$env.u; +/** + * Send an IQ stanza specifying an affiliation change. + * @private + * @param { String } affiliation: affiliation (could also be stored on the member object). + * @param { String } muc_jid: The JID of the MUC in which the affiliation should be set. + * @param { Object } member: Map containing the member's jid and optionally a reason and affiliation. + */ +function sendAffiliationIQ(affiliation, muc_jid, member) { + var iq = utils_$iq({ + to: muc_jid, + type: 'set' + }).c('query', { + xmlns: affiliations_utils_Strophe.NS.MUC_ADMIN + }).c('item', { + 'affiliation': member.affiliation || affiliation, + 'nick': member.nick, + 'jid': member.jid + }); + if (member.reason !== undefined) { + iq.c('reason', member.reason); + } + return shared_api.sendIQ(iq); +} /** - * Mixin which turns a `ModelWithContact` model into a non-MUC message. - * These can be either `chat`, `normal` or `headline` messages. - * @mixin - * @namespace _converse.Message - * @memberOf _converse - * @example const msg = new _converse.Message({'message': 'hello world!'}); + * Given two lists of objects with 'jid', 'affiliation' and + * 'reason' properties, return a new list containing + * those objects that are new, changed or removed + * (depending on the 'remove_absentees' boolean). + * + * The affiliations for new and changed members stay the + * same, for removed members, the affiliation is set to 'none'. + * + * The 'reason' property is not taken into account when + * comparing whether affiliations have been changed. + * @param { boolean } exclude_existing - Indicates whether JIDs from + * the new list which are also in the old list + * (regardless of affiliation) should be excluded + * from the delta. One reason to do this + * would be when you want to add a JID only if it + * doesn't have *any* existing affiliation at all. + * @param { boolean } remove_absentees - Indicates whether JIDs + * from the old list which are not in the new list + * should be considered removed and therefore be + * included in the delta with affiliation set + * to 'none'. + * @param { array } new_list - Array containing the new affiliations + * @param { array } old_list - Array containing the old affiliations + * @returns { array } */ -var MessageMixin = { - defaults: function defaults() { - return { - 'msgid': message_u.getUniqueId(), - 'time': new Date().toISOString(), - 'is_ephemeral': false - }; - }, - initialize: function initialize() { - var _this = this; - return message_asyncToGenerator( /*#__PURE__*/message_regeneratorRuntime().mark(function _callee() { - return message_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - if (_this.checkValidity()) { - _context.next = 2; - break; - } - return _context.abrupt("return"); - case 2: - _this.initialized = getOpenPromise(); - if (_this.get('file')) { - _this.on('change:put', function () { - return _this.uploadFile(); - }); - } - // If `type` changes from `error` to `chat`, we want to set the contact. See #2733 - _this.on('change:type', function () { - return _this.setContact(); - }); - _this.on('change:is_ephemeral', function () { - return _this.setTimerForEphemeralMessage(); - }); - _context.next = 8; - return _this.setContact(); - case 8: - _this.setTimerForEphemeralMessage(); - /** - * Triggered once a {@link _converse.Message} has been created and initialized. - * @event _converse#messageInitialized - * @type { _converse.Message} - * @example _converse.api.listen.on('messageInitialized', model => { ... }); - */ - _context.next = 11; - return shared_api.trigger('messageInitialized', _this, { - 'Synchronous': true - }); - case 11: - _this.initialized.resolve(); - case 12: - case "end": - return _context.stop(); - } - }, _callee); - }))(); - }, - setContact: function setContact() { - if (['chat', 'normal'].includes(this.get('type'))) { - model_with_contact.prototype.initialize.apply(this, arguments); - this.setRosterContact(message_Strophe.getBareJidFromJid(this.get('from'))); - } - }, - /** - * Sets an auto-destruct timer for this message, if it's is_ephemeral. - * @private - * @method _converse.Message#setTimerForEphemeralMessage - */ - setTimerForEphemeralMessage: function setTimerForEphemeralMessage() { - var _this2 = this; - if (this.ephemeral_timer) { - clearTimeout(this.ephemeral_timer); - } - var is_ephemeral = this.isEphemeral(); - if (is_ephemeral) { - var timeout = typeof is_ephemeral === "number" ? is_ephemeral : 10000; - this.ephemeral_timer = window.setTimeout(function () { - return _this2.safeDestroy(); - }, timeout); - } - }, - checkValidity: function checkValidity() { - if (Object.keys(this.attributes).length === 3) { - // XXX: This is an empty message with only the 3 default values. - // This seems to happen when saving a newly created message - // fails for some reason. - // TODO: This is likely fixable by setting `wait` when - // creating messages. See the wait-for-messages branch. - this.validationError = 'Empty message'; - this.safeDestroy(); - return false; - } - return true; - }, - /** - * Determines whether this messsage may be retracted by the current user. - * @private - * @method _converse.Messages#mayBeRetracted - * @returns { Boolean } - */ - mayBeRetracted: function mayBeRetracted() { - var is_own_message = this.get('sender') === 'me'; - var not_canceled = this.get('error_type') !== 'cancel'; - return is_own_message && not_canceled && ['all', 'own'].includes(shared_api.settings.get('allow_message_retraction')); - }, - safeDestroy: function safeDestroy() { - try { - this.destroy(); - } catch (e) { - log.warn("safeDestroy: ".concat(e)); - } - }, - /** - * Returns a boolean indicating whether this message is ephemeral, - * meaning it will get automatically removed after ten seconds. - * @returns { boolean } - */ - isEphemeral: function isEphemeral() { - return this.get('is_ephemeral'); - }, - /** - * Returns a boolean indicating whether this message is a XEP-0245 /me command. - * @returns { boolean } - */ - isMeCommand: function isMeCommand() { - var text = this.getMessageText(); - if (!text) { - return false; - } - return text.startsWith('/me '); - }, - /** - * Returns a boolean indicating whether this message is considered a followup - * message from the previous one. Followup messages are shown grouped together - * under one author heading. - * A message is considered a followup of it's predecessor when it's a chat - * message from the same author, within 10 minutes. - * @returns { boolean } - */ - isFollowup: function isFollowup() { - var messages = this.collection.models; - var idx = messages.indexOf(this); - var prev_model = idx ? messages[idx - 1] : null; - if (prev_model === null) { - return false; - } - var date = dayjs_min_default()(this.get('time')); - return this.get('from') === prev_model.get('from') && !this.isMeCommand() && !prev_model.isMeCommand() && !!this.get('is_encrypted') === !!prev_model.get('is_encrypted') && this.get('type') === prev_model.get('type') && this.get('type') !== 'info' && date.isBefore(dayjs_min_default()(prev_model.get('time')).add(10, 'minutes')) && (this.get('type') === 'groupchat' ? this.get('occupant_id') === prev_model.get('occupant_id') : true); - }, - getDisplayName: function getDisplayName() { - if (this.contact) { - return this.contact.getDisplayName(); - } else if (this.vcard) { - return this.vcard.getDisplayName(); - } else { - return this.get('from'); - } - }, - getMessageText: function getMessageText() { - if (this.get('is_encrypted')) { - var __ = shared_converse.__; - return this.get('plaintext') || this.get('body') || __('Undecryptable OMEMO message'); - } else if (['groupchat', 'chat', 'normal'].includes(this.get('type'))) { - return this.get('body'); - } else { - return this.get('message'); - } - }, - /** - * Send out an IQ stanza to request a file upload slot. - * https://xmpp.org/extensions/xep-0363.html#request - * @private - * @method _converse.Message#sendSlotRequestStanza - */ - sendSlotRequestStanza: function sendSlotRequestStanza() { - if (!this.file) { - return Promise.reject(new Error('file is undefined')); - } - var iq = public_converse.env.$iq({ - 'from': shared_converse.jid, - 'to': this.get('slot_request_url'), - 'type': 'get' - }).c('request', { - 'xmlns': message_Strophe.NS.HTTPUPLOAD, - 'filename': this.file.name, - 'size': this.file.size, - 'content-type': this.file.type - }); - return shared_api.sendIQ(iq); - }, - getUploadRequestMetadata: function getUploadRequestMetadata(stanza) { - var headers = message_sizzle("slot[xmlns=\"".concat(message_Strophe.NS.HTTPUPLOAD, "\"] put header"), stanza); - // https://xmpp.org/extensions/xep-0363.html#request - // TODO: Can't set the Cookie header in JavaScipt, instead cookies need - // to be manually set via document.cookie, so we're leaving it out here. - return { - 'headers': headers.map(function (h) { - return { - 'name': h.getAttribute('name'), - 'value': h.textContent - }; - }).filter(function (h) { - return ['Authorization', 'Expires'].includes(h.name); - }) - }; - }, - getRequestSlotURL: function getRequestSlotURL() { - var _this3 = this; - return message_asyncToGenerator( /*#__PURE__*/message_regeneratorRuntime().mark(function _callee2() { - var __, stanza, slot; - return message_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - __ = shared_converse.__; - _context2.prev = 1; - _context2.next = 4; - return _this3.sendSlotRequestStanza(); - case 4: - stanza = _context2.sent; - _context2.next = 11; - break; - case 7: - _context2.prev = 7; - _context2.t0 = _context2["catch"](1); - log.error(_context2.t0); - return _context2.abrupt("return", _this3.save({ - 'type': 'error', - 'message': __('Sorry, could not determine upload URL.'), - 'is_ephemeral': true - })); - case 11: - slot = message_sizzle("slot[xmlns=\"".concat(message_Strophe.NS.HTTPUPLOAD, "\"]"), stanza).pop(); - if (!slot) { - _context2.next = 17; - break; - } - _this3.upload_metadata = _this3.getUploadRequestMetadata(stanza); - _this3.save({ - 'get': slot.querySelector('get').getAttribute('url'), - 'put': slot.querySelector('put').getAttribute('url') - }); - _context2.next = 18; - break; - case 17: - return _context2.abrupt("return", _this3.save({ - 'type': 'error', - 'message': __('Sorry, could not determine file upload URL.'), - 'is_ephemeral': true - })); - case 18: - case "end": - return _context2.stop(); - } - }, _callee2, null, [[1, 7]]); - }))(); - }, - uploadFile: function uploadFile() { - var _this4 = this, - _this$upload_metadata; - var xhr = new XMLHttpRequest(); - xhr.onreadystatechange = /*#__PURE__*/message_asyncToGenerator( /*#__PURE__*/message_regeneratorRuntime().mark(function _callee3() { - var attrs; - return message_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - if (!(xhr.readyState === XMLHttpRequest.DONE)) { - _context3.next = 11; - break; - } - log.info('Status: ' + xhr.status); - if (!(xhr.status === 200 || xhr.status === 201)) { - _context3.next = 10; - break; - } - attrs = { - 'upload': shared_converse.SUCCESS, - 'oob_url': _this4.get('get'), - 'message': _this4.get('get'), - 'body': _this4.get('get') - }; - /** - * *Hook* which allows plugins to change the attributes - * saved on the message once a file has been uploaded. - * @event _converse#afterFileUploaded - */ - _context3.next = 6; - return shared_api.hook('afterFileUploaded', _this4, attrs); - case 6: - attrs = _context3.sent; - _this4.save(attrs); - _context3.next = 11; - break; - case 10: - xhr.onerror(); - case 11: - case "end": - return _context3.stop(); - } - }, _callee3); +function computeAffiliationsDelta(exclude_existing, remove_absentees, new_list, old_list) { + var new_jids = new_list.map(function (o) { + return o.jid; + }); + var old_jids = old_list.map(function (o) { + return o.jid; + }); + // Get the new affiliations + var delta = lodash_es_difference(new_jids, old_jids).map(function (jid) { + return new_list[lodash_es_indexOf(new_jids, jid)]; + }); + if (!exclude_existing) { + // Get the changed affiliations + delta = delta.concat(new_list.filter(function (item) { + var idx = lodash_es_indexOf(old_jids, item.jid); + return idx >= 0 ? item.affiliation !== old_list[idx].affiliation : false; })); - xhr.upload.addEventListener('progress', function (evt) { - if (evt.lengthComputable) { - _this4.set('progress', evt.loaded / evt.total); - } - }, false); - xhr.onerror = function () { - var __ = shared_converse.__; - var message; - if (xhr.responseText) { - message = __('Sorry, could not succesfully upload your file. Your server’s response: "%1$s"', xhr.responseText); - } else { - message = __('Sorry, could not succesfully upload your file.'); - } - _this4.save({ - 'type': 'error', - 'upload': shared_converse.FAILURE, - 'message': message, - 'is_ephemeral': true - }); - }; - xhr.open('PUT', this.get('put'), true); - xhr.setRequestHeader('Content-type', this.file.type); - (_this$upload_metadata = this.upload_metadata.headers) === null || _this$upload_metadata === void 0 ? void 0 : _this$upload_metadata.forEach(function (h) { - return xhr.setRequestHeader(h.name, h.value); - }); - xhr.send(this.file); } -}; -/* harmony default export */ const message = (MessageMixin); -;// CONCATENATED MODULE: ./src/headless/plugins/chat/api.js -function chat_api_typeof(obj) { + if (remove_absentees) { + // Get the removed affiliations + delta = delta.concat(lodash_es_difference(old_jids, new_jids).map(function (jid) { + return { + 'jid': jid, + 'affiliation': 'none' + }; + })); + } + return delta; +} +;// CONCATENATED MODULE: ./src/headless/plugins/muc/muc.js +function muc_typeof(obj) { "@babel/helpers - typeof"; - return chat_api_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return muc_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, chat_api_typeof(obj); + }, muc_typeof(obj); +} +function muc_ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + return keys; +} +function muc_objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? muc_ownKeys(Object(source), !0).forEach(function (key) { + muc_defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : muc_ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + return target; +} +function muc_defineProperty(obj, key, value) { + key = muc_toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; +} +function muc_toPropertyKey(arg) { + var key = muc_toPrimitive(arg, "string"); + return muc_typeof(key) === "symbol" ? key : String(key); +} +function muc_toPrimitive(input, hint) { + if (muc_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (muc_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function muc_slicedToArray(arr, i) { + return muc_arrayWithHoles(arr) || muc_iterableToArrayLimit(arr, i) || muc_unsupportedIterableToArray(arr, i) || muc_nonIterableRest(); +} +function muc_nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function muc_iterableToArrayLimit(arr, i) { + var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; + if (null != _i) { + var _s, + _e, + _x, + _r, + _arr = [], + _n = !0, + _d = !1; + try { + if (_x = (_i = _i.call(arr)).next, 0 === i) { + if (Object(_i) !== _i) return; + _n = !1; + } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); + } catch (err) { + _d = !0, _e = err; + } finally { + try { + if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; + } finally { + if (_d) throw _e; + } + } + return _arr; + } +} +function muc_arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} +function muc_toConsumableArray(arr) { + return muc_arrayWithoutHoles(arr) || muc_iterableToArray(arr) || muc_unsupportedIterableToArray(arr) || muc_nonIterableSpread(); +} +function muc_nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function chat_api_regeneratorRuntime() { +function muc_unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return muc_arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return muc_arrayLikeToArray(o, minLen); +} +function muc_iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +} +function muc_arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return muc_arrayLikeToArray(arr); +} +function muc_arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; +} +function muc_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - chat_api_regeneratorRuntime = function _regeneratorRuntime() { + muc_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -42273,7 +39135,7 @@ function chat_api_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == chat_api_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == muc_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -42498,7 +39360,7 @@ function chat_api_regeneratorRuntime() { } }, exports; } -function chat_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function muc_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -42512,17 +39374,17 @@ function chat_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, a Promise.resolve(value).then(_next, _throw); } } -function chat_api_asyncToGenerator(fn) { +function muc_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - chat_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + muc_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - chat_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + muc_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); @@ -42530,3855 +39392,3812 @@ function chat_api_asyncToGenerator(fn) { } -/* harmony default export */ const chat_api = ({ + + + + + + + + + + + + + + + + + +var muc_u = public_converse.env.u; +var OWNER_COMMANDS = ['owner']; +var ADMIN_COMMANDS = ['admin', 'ban', 'deop', 'destroy', 'member', 'op', 'revoke']; +var MODERATOR_COMMANDS = ['kick', 'mute', 'voice', 'modtools']; +var VISITOR_COMMANDS = ['nick']; +var METADATA_ATTRIBUTES = ["og:article:author", "og:article:published_time", "og:description", "og:image", "og:image:height", "og:image:width", "og:site_name", "og:title", "og:type", "og:url", "og:video:height", "og:video:secure_url", "og:video:tag", "og:video:type", "og:video:url", "og:video:width"]; +var ACTION_INFO_CODES = ['301', '303', '333', '307', '321', '322']; +var MUCSession = Model.extend({ + defaults: function defaults() { + return { + 'connection_status': ROOMSTATUS.DISCONNECTED + }; + } +}); + +/** + * Represents an open/ongoing groupchat conversation. + * @mixin + * @namespace _converse.ChatRoom + * @memberOf _converse + */ +var ChatRoomMixin = { + defaults: function defaults() { + return { + 'bookmarked': false, + 'chat_state': undefined, + 'has_activity': false, + // XEP-437 + 'hidden': isUniView() && !shared_api.settings.get('singleton'), + 'hidden_occupants': !!shared_api.settings.get('hide_muc_participants'), + 'message_type': 'groupchat', + 'name': '', + // For group chats, we distinguish between generally unread + // messages and those ones that specifically mention the + // user. + // + // To keep things simple, we reuse `num_unread` from + // _converse.ChatBox to indicate unread messages which + // mention the user and `num_unread_general` to indicate + // generally unread messages (which *includes* mentions!). + 'num_unread_general': 0, + 'num_unread': 0, + 'roomconfig': {}, + 'time_opened': this.get('time_opened') || new Date().getTime(), + 'time_sent': new Date(0).toISOString(), + 'type': shared_converse.CHATROOMS_TYPE + }; + }, + initialize: function initialize() { + var _this = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee() { + var restored; + return muc_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _this.initialized = getOpenPromise(); + _this.debouncedRejoin = lodash_es_debounce(_this.rejoin, 250); + _this.set('box_id', "box-".concat(_this.get('jid'))); + _this.initNotifications(); + _this.initMessages(); + _this.initUI(); + _this.initOccupants(); + _this.initDiscoModels(); // sendChatState depends on this.features + _this.registerHandlers(); + _this.on('change:chat_state', _this.sendChatState, _this); + _this.on('change:hidden', _this.onHiddenChange, _this); + _this.on('destroy', _this.removeHandlers, _this); + _this.ui.on('change:scrolled', _this.onScrolledChanged, _this); + _context.next = 15; + return _this.restoreSession(); + case 15: + _this.session.on('change:connection_status', _this.onConnectionStatusChanged, _this); + _this.listenTo(_this.occupants, 'add', _this.onOccupantAdded); + _this.listenTo(_this.occupants, 'remove', _this.onOccupantRemoved); + _this.listenTo(_this.occupants, 'change:show', _this.onOccupantShowChanged); + _this.listenTo(_this.occupants, 'change:affiliation', _this.createAffiliationChangeMessage); + _this.listenTo(_this.occupants, 'change:role', _this.createRoleChangeMessage); + _context.next = 23; + return _this.restoreFromCache(); + case 23: + restored = _context.sent; + if (!restored) { + _this.join(); + } + /** + * Triggered once a {@link _converse.ChatRoom} has been created and initialized. + * @event _converse#chatRoomInitialized + * @type { _converse.ChatRoom } + * @example _converse.api.listen.on('chatRoomInitialized', model => { ... }); + */ + _context.next = 27; + return shared_api.trigger('chatRoomInitialized', _this, { + 'Synchronous': true + }); + case 27: + _this.initialized.resolve(); + case 28: + case "end": + return _context.stop(); + } + }, _callee); + }))(); + }, + isEntered: function isEntered() { + return this.session.get('connection_status') === ROOMSTATUS.ENTERED; + }, /** - * The "chats" namespace (used for one-on-one chats) - * - * @namespace api.chats - * @memberOf api + * Checks whether this MUC qualifies for subscribing to XEP-0437 Room Activity Indicators (RAI) + * @method _converse.ChatRoom#isRAICandidate + * @returns { Boolean } */ - chats: { - /** - * @method api.chats.create - * @param {string|string[]} jid|jids An jid or array of jids - * @param { object } [attrs] An object containing configuration attributes. - */ - create: function create(jids, attrs) { - return chat_api_asyncToGenerator( /*#__PURE__*/chat_api_regeneratorRuntime().mark(function _callee2() { - var _contact$attributes, contact, chatbox; - return chat_api_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - if (!(typeof jids === 'string')) { - _context2.next = 11; - break; - } - if (!(attrs && !(attrs !== null && attrs !== void 0 && attrs.fullname))) { - _context2.next = 6; - break; - } - _context2.next = 4; - return shared_api.contacts.get(jids); - case 4: - contact = _context2.sent; - attrs.fullname = contact === null || contact === void 0 ? void 0 : (_contact$attributes = contact.attributes) === null || _contact$attributes === void 0 ? void 0 : _contact$attributes.fullname; - case 6: - chatbox = shared_api.chats.get(jids, attrs, true); - if (chatbox) { - _context2.next = 10; - break; - } - log.error("Could not open chatbox for JID: " + jids); - return _context2.abrupt("return"); - case 10: - return _context2.abrupt("return", chatbox); - case 11: - if (!Array.isArray(jids)) { - _context2.next = 13; - break; - } - return _context2.abrupt("return", Promise.all(jids.forEach( /*#__PURE__*/function () { - var _ref = chat_api_asyncToGenerator( /*#__PURE__*/chat_api_regeneratorRuntime().mark(function _callee(jid) { - var _contact$attributes2; - var contact; - return chat_api_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return shared_api.contacts.get(jids); - case 2: - contact = _context.sent; - attrs.fullname = contact === null || contact === void 0 ? void 0 : (_contact$attributes2 = contact.attributes) === null || _contact$attributes2 === void 0 ? void 0 : _contact$attributes2.fullname; - return _context.abrupt("return", shared_api.chats.get(jid, attrs, true).maybeShow()); - case 5: - case "end": - return _context.stop(); - } - }, _callee); - })); - return function (_x) { - return _ref.apply(this, arguments); - }; - }()))); - case 13: - log.error("chats.create: You need to provide at least one JID"); - return _context2.abrupt("return", null); - case 15: - case "end": - return _context2.stop(); - } - }, _callee2); - }))(); - }, - /** - * Opens a new one-on-one chat. - * - * @method api.chats.open - * @param {String|string[]} name - e.g. 'buddy@example.com' or ['buddy1@example.com', 'buddy2@example.com'] - * @param { Object } [attrs] - Attributes to be set on the _converse.ChatBox model. - * @param { Boolean } [attrs.minimized] - Should the chat be created in minimized state. - * @param { Boolean } [force=false] - By default, a minimized - * chat won't be maximized (in `overlayed` view mode) and in - * `fullscreen` view mode a newly opened chat won't replace - * another chat already in the foreground. - * Set `force` to `true` if you want to force the chat to be - * maximized or shown. - * @returns {Promise} Promise which resolves with the - * _converse.ChatBox representing the chat. - * - * @example - * // To open a single chat, provide the JID of the contact you're chatting with in that chat: - * converse.plugins.add('myplugin', { - * initialize: function() { - * const _converse = this._converse; - * // Note, buddy@example.org must be in your contacts roster! - * api.chats.open('buddy@example.com').then(chat => { - * // Now you can do something with the chat model - * }); - * } - * }); - * - * @example - * // To open an array of chats, provide an array of JIDs: - * converse.plugins.add('myplugin', { - * initialize: function () { - * const _converse = this._converse; - * // Note, these users must first be in your contacts roster! - * api.chats.open(['buddy1@example.com', 'buddy2@example.com']).then(chats => { - * // Now you can do something with the chat models - * }); - * } - * }); - */ - open: function open(jids, attrs, force) { - return chat_api_asyncToGenerator( /*#__PURE__*/chat_api_regeneratorRuntime().mark(function _callee3() { - var chat, err_msg; - return chat_api_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - if (!(typeof jids === 'string')) { - _context3.next = 9; - break; - } - _context3.next = 3; - return shared_api.chats.get(jids, attrs, true); - case 3: - chat = _context3.sent; - if (!chat) { - _context3.next = 6; - break; - } - return _context3.abrupt("return", chat.maybeShow(force)); - case 6: - return _context3.abrupt("return", chat); - case 9: - if (!Array.isArray(jids)) { - _context3.next = 11; - break; - } - return _context3.abrupt("return", Promise.all(jids.map(function (j) { - return shared_api.chats.get(j, attrs, true).then(function (c) { - return c && c.maybeShow(force); - }); - }).filter(function (c) { - return c; - }))); - case 11: - err_msg = "chats.open: You need to provide at least one JID"; - log.error(err_msg); - throw new Error(err_msg); - case 14: - case "end": - return _context3.stop(); - } - }, _callee3); - }))(); - }, - /** - * Retrieves a chat or all chats. - * - * @method api.chats.get - * @param {String|string[]} jids - e.g. 'buddy@example.com' or ['buddy1@example.com', 'buddy2@example.com'] - * @param { Object } [attrs] - Attributes to be set on the _converse.ChatBox model. - * @param { Boolean } [create=false] - Whether the chat should be created if it's not found. - * @returns { Promise<_converse.ChatBox> } - * - * @example - * // To return a single chat, provide the JID of the contact you're chatting with in that chat: - * const model = await api.chats.get('buddy@example.com'); - * - * @example - * // To return an array of chats, provide an array of JIDs: - * const models = await api.chats.get(['buddy1@example.com', 'buddy2@example.com']); - * - * @example - * // To return all open chats, call the method without any parameters:: - * const models = await api.chats.get(); - * - */ - get: function get(jids) { - var _arguments = arguments; - return chat_api_asyncToGenerator( /*#__PURE__*/chat_api_regeneratorRuntime().mark(function _callee5() { - var attrs, create, _get, _get2, chats; - return chat_api_regeneratorRuntime().wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - _get2 = function _get4() { - _get2 = chat_api_asyncToGenerator( /*#__PURE__*/chat_api_regeneratorRuntime().mark(function _callee4(jid) { - var model; - return chat_api_regeneratorRuntime().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - _context4.next = 2; - return shared_api.chatboxes.get(jid); - case 2: - model = _context4.sent; - if (!(!model && create)) { - _context4.next = 9; - break; - } - _context4.next = 6; - return shared_api.chatboxes.create(jid, attrs, shared_converse.ChatBox); - case 6: - model = _context4.sent; - _context4.next = 11; - break; - case 9: - model = model && model.get('type') === shared_converse.PRIVATE_CHAT_TYPE ? model : null; - if (model && Object.keys(attrs).length) { - model.save(attrs); - } - case 11: - return _context4.abrupt("return", model); - case 12: - case "end": - return _context4.stop(); - } - }, _callee4); - })); - return _get2.apply(this, arguments); - }; - _get = function _get3(_x2) { - return _get2.apply(this, arguments); - }; - attrs = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : {}; - create = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : false; - _context5.next = 6; - return shared_api.waitUntil('chatBoxesFetched'); - case 6: - if (!(jids === undefined)) { - _context5.next = 13; - break; - } - _context5.next = 9; - return shared_api.chatboxes.get(); - case 9: - chats = _context5.sent; - return _context5.abrupt("return", chats.filter(function (c) { - return c.get('type') === shared_converse.PRIVATE_CHAT_TYPE; - })); - case 13: - if (!(typeof jids === 'string')) { - _context5.next = 15; - break; - } - return _context5.abrupt("return", _get(jids)); - case 15: - return _context5.abrupt("return", Promise.all(jids.map(function (jid) { - return _get(jid); - }))); - case 16: - case "end": - return _context5.stop(); - } - }, _callee5); - }))(); + isRAICandidate: function isRAICandidate() { + return this.get('hidden') && shared_api.settings.get('muc_subscribe_to_rai') && this.getOwnAffiliation() !== 'none'; + }, + /** + * Checks whether we're still joined and if so, restores the MUC state from cache. + * @private + * @method _converse.ChatRoom#restoreFromCache + * @returns { Boolean } Returns `true` if we're still joined, otherwise returns `false`. + */ + restoreFromCache: function restoreFromCache() { + var _this2 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee2() { + return muc_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + if (!_this2.isEntered()) { + _context2.next = 19; + break; + } + _context2.next = 3; + return _this2.fetchOccupants().catch(function (e) { + return log.error(e); + }); + case 3: + if (!_this2.isRAICandidate()) { + _context2.next = 9; + break; + } + _this2.session.save('connection_status', ROOMSTATUS.DISCONNECTED); + _this2.enableRAI(); + return _context2.abrupt("return", true); + case 9: + _context2.next = 11; + return _this2.isJoined(); + case 11: + if (!_context2.sent) { + _context2.next = 19; + break; + } + _context2.next = 14; + return new Promise(function (r) { + return _this2.config.fetch({ + 'success': r, + 'error': r + }); + }); + case 14: + _context2.next = 16; + return new Promise(function (r) { + return _this2.features.fetch({ + 'success': r, + 'error': r + }); + }); + case 16: + _context2.next = 18; + return _this2.fetchMessages().catch(function (e) { + return log.error(e); + }); + case 18: + return _context2.abrupt("return", true); + case 19: + _this2.session.save('connection_status', ROOMSTATUS.DISCONNECTED); + _this2.clearOccupantsCache(); + return _context2.abrupt("return", false); + case 22: + case "end": + return _context2.stop(); + } + }, _callee2); + }))(); + }, + /** + * Join the MUC + * @private + * @method _converse.ChatRoom#join + * @param { String } nick - The user's nickname + * @param { String } [password] - Optional password, if required by the groupchat. + * Will fall back to the `password` value stored in the room + * model (if available). + */ + join: function join(nick, password) { + var _this3 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee3() { + return muc_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + if (!_this3.isEntered()) { + _context3.next = 2; + break; + } + return _context3.abrupt("return", _this3); + case 2: + // Set this early, so we don't rejoin in onHiddenChange + _this3.session.save('connection_status', ROOMSTATUS.CONNECTING); + _context3.next = 5; + return _this3.refreshDiscoInfo(); + case 5: + _context3.next = 7; + return _this3.getAndPersistNickname(nick); + case 7: + nick = _context3.sent; + if (nick) { + _context3.next = 14; + break; + } + safeSave(_this3.session, { + 'connection_status': ROOMSTATUS.NICKNAME_REQUIRED + }); + if (!shared_api.settings.get('muc_show_logs_before_join')) { + _context3.next = 13; + break; + } + _context3.next = 13; + return _this3.fetchMessages(); + case 13: + return _context3.abrupt("return", _this3); + case 14: + _context3.t0 = shared_api; + _context3.next = 17; + return _this3.constructJoinPresence(password); + case 17: + _context3.t1 = _context3.sent; + _context3.t0.send.call(_context3.t0, _context3.t1); + return _context3.abrupt("return", _this3); + case 20: + case "end": + return _context3.stop(); + } + }, _callee3); + }))(); + }, + /** + * Clear stale cache and re-join a MUC we've been in before. + * @private + * @method _converse.ChatRoom#rejoin + */ + rejoin: function rejoin() { + this.session.save('connection_status', ROOMSTATUS.DISCONNECTED); + this.registerHandlers(); + this.clearOccupantsCache(); + return this.join(); + }, + constructJoinPresence: function constructJoinPresence(password) { + var _this4 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee4() { + var stanza; + return muc_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + stanza = (0,external_strophe_namespaceObject.$pres)({ + 'id': getUniqueId(), + 'from': shared_converse.connection.jid, + 'to': _this4.getRoomJIDAndNick() + }).c('x', { + 'xmlns': external_strophe_namespaceObject.Strophe.NS.MUC + }).c('history', { + 'maxstanzas': _this4.features.get('mam_enabled') ? 0 : shared_api.settings.get('muc_history_max_stanzas') + }).up(); + password = password || _this4.get('password'); + if (password) { + stanza.cnode(external_strophe_namespaceObject.Strophe.xmlElement('password', [], password)); + } + stanza.up(); // Go one level up, out of the `x` element. + /** + * *Hook* which allows plugins to update an outgoing MUC join presence stanza + * @event _converse#constructedMUCPresence + * @param { _converse.ChatRoom } - The MUC from which this message stanza is being sent. + * @param { Element } stanza - The stanza which will be sent out + */ + _context4.next = 6; + return shared_api.hook('constructedMUCPresence', _this4, stanza); + case 6: + stanza = _context4.sent; + return _context4.abrupt("return", stanza); + case 8: + case "end": + return _context4.stop(); + } + }, _callee4); + }))(); + }, + clearOccupantsCache: function clearOccupantsCache() { + if (this.occupants.length) { + // Remove non-members when reconnecting + this.occupants.filter(function (o) { + return !o.isMember(); + }).forEach(function (o) { + return o.destroy(); + }); + } else { + // Looks like we haven't restored occupants from cache, so we clear it. + this.occupants.clearStore(); } - } -}); -;// CONCATENATED MODULE: ./src/headless/plugins/chat/utils.js -function plugins_chat_utils_typeof(obj) { - "@babel/helpers - typeof"; - - return plugins_chat_utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, plugins_chat_utils_typeof(obj); -} -function plugins_chat_utils_regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - plugins_chat_utils_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; - } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; + }, + /** + * Given the passed in MUC message, send a XEP-0333 chat marker. + * @param { _converse.MUCMessage } msg + * @param { ('received'|'displayed'|'acknowledged') } [type='displayed'] + * @param { Boolean } force - Whether a marker should be sent for the + * message, even if it didn't include a `markable` element. + */ + sendMarkerForMessage: function sendMarkerForMessage(msg) { + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'displayed'; + var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + if (!msg || !shared_api.settings.get('send_chat_markers').includes(type) || (msg === null || msg === void 0 ? void 0 : msg.get('type')) !== 'groupchat') { + return; } - } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); - }); - }); - } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == plugins_chat_utils_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); + if (msg !== null && msg !== void 0 && msg.get('is_markable') || force) { + var key = "stanza_id ".concat(this.get('jid')); + var id = msg.get(key); + if (!id) { + log.error("Can't send marker for message without stanza ID: ".concat(key)); + return; } - reject(record.arg); + var from_jid = external_strophe_namespaceObject.Strophe.getBareJidFromJid(msg.get('from')); + sendMarker(from_jid, id, type, msg.get('type')); } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); - } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done - }; + }, + /** + * Ensures that the user is subscribed to XEP-0437 Room Activity Indicators + * if `muc_subscribe_to_rai` is set to `true`. + * Only affiliated users can subscribe to RAI, but this method doesn't + * check whether the current user is affiliated because it's intended to be + * called after the MUC has been left and we don't have that information + * anymore. + * @private + * @method _converse.ChatRoom#enableRAI + */ + enableRAI: function enableRAI() { + if (shared_api.settings.get('muc_subscribe_to_rai')) { + var muc_domain = external_strophe_namespaceObject.Strophe.getDomainFromJid(this.get('jid')); + shared_api.user.presence.send(null, muc_domain, null, (0,external_strophe_namespaceObject.$build)('rai', { + 'xmlns': external_strophe_namespaceObject.Strophe.NS.RAI + })); + } + }, + /** + * Handler that gets called when the 'hidden' flag is toggled. + * @private + * @method _converse.ChatRoom#onHiddenChange + */ + onHiddenChange: function onHiddenChange() { + var _this5 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee5() { + var roomstatus, conn_status; + return muc_regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + roomstatus = ROOMSTATUS; + conn_status = _this5.session.get('connection_status'); + if (!_this5.get('hidden')) { + _context5.next = 10; + break; + } + if (!(conn_status === roomstatus.ENTERED && _this5.isRAICandidate())) { + _context5.next = 8; + break; + } + _this5.sendMarkerForLastMessage('received', true); + _context5.next = 7; + return _this5.leave(); + case 7: + _this5.enableRAI(); + case 8: + _context5.next = 12; + break; + case 10: + if (conn_status === roomstatus.DISCONNECTED) { + _this5.rejoin(); + } + _this5.clearUnreadMsgCounter(); + case 12: + case "end": + return _context5.stop(); } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); - } - }; - } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); - } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); - } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal", delete record.arg, entry.completion = record; - } - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); - } - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) return iteratorMethod.call(iterable); - if ("function" == typeof iterable.next) return iterable; - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; - return next.value = undefined, next.done = !0, next; - }; - return next.next = next; - } + }, _callee5); + }))(); + }, + onOccupantAdded: function onOccupantAdded(occupant) { + if (shared_converse.isInfoVisible(public_converse.MUC_TRAFFIC_STATES.ENTERED) && this.session.get('connection_status') === ROOMSTATUS.ENTERED && occupant.get('show') === 'online') { + this.updateNotifications(occupant.get('nick'), public_converse.MUC_TRAFFIC_STATES.ENTERED); } - return { - next: doneResult - }; - } - function doneResult() { - return { - value: undefined, - done: !0 - }; - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { - var ctor = "function" == typeof genFun && genFun.constructor; - return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); - }, exports.mark = function (genFun) { - return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; - }, exports.awrap = function (arg) { - return { - __await: arg - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - void 0 === PromiseImpl && (PromiseImpl = Promise); - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { - return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; - } - return next.done = !0, next; - }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; - } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } + }, + onOccupantRemoved: function onOccupantRemoved(occupant) { + if (shared_converse.isInfoVisible(public_converse.MUC_TRAFFIC_STATES.EXITED) && this.isEntered() && occupant.get('show') === 'online') { + this.updateNotifications(occupant.get('nick'), public_converse.MUC_TRAFFIC_STATES.EXITED); + } + }, + onOccupantShowChanged: function onOccupantShowChanged(occupant) { + if (occupant.get('states').includes('303')) { + return; + } + if (occupant.get('show') === 'offline' && shared_converse.isInfoVisible(public_converse.MUC_TRAFFIC_STATES.EXITED)) { + this.updateNotifications(occupant.get('nick'), public_converse.MUC_TRAFFIC_STATES.EXITED); + } else if (occupant.get('show') === 'online' && shared_converse.isInfoVisible(public_converse.MUC_TRAFFIC_STATES.ENTERED)) { + this.updateNotifications(occupant.get('nick'), public_converse.MUC_TRAFFIC_STATES.ENTERED); + } + }, + onRoomEntered: function onRoomEntered() { + var _this6 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee6() { + return muc_regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + _context6.next = 2; + return _this6.occupants.fetchMembers(); + case 2: + if (!shared_api.settings.get('clear_messages_on_reconnection')) { + _context6.next = 7; + break; + } + _context6.next = 5; + return _this6.clearMessages(); + case 5: + _context6.next = 9; + break; + case 7: + _context6.next = 9; + return _this6.fetchMessages(); + case 9: + /** + * Triggered when the user has entered a new MUC + * @event _converse#enteredNewRoom + * @type { _converse.ChatRoom} + * @example _converse.api.listen.on('enteredNewRoom', model => { ... }); + */ + shared_api.trigger('enteredNewRoom', _this6); + _context6.t0 = shared_api.settings.get('auto_register_muc_nickname'); + if (!_context6.t0) { + _context6.next = 15; + break; + } + _context6.next = 14; + return shared_api.disco.supports(external_strophe_namespaceObject.Strophe.NS.MUC_REGISTER, _this6.get('jid')); + case 14: + _context6.t0 = _context6.sent; + case 15: + if (!_context6.t0) { + _context6.next = 17; + break; + } + _this6.registerNickname(); + case 17: + case "end": + return _context6.stop(); + } + }, _callee6); + }))(); + }, + onConnectionStatusChanged: function onConnectionStatusChanged() { + var _this7 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee7() { + return muc_regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + if (!_this7.isEntered()) { + _context7.next = 15; + break; + } + if (!_this7.isRAICandidate()) { + _context7.next = 13; + break; + } + _context7.prev = 2; + _context7.next = 5; + return _this7.leave(); + case 5: + _context7.next = 10; + break; + case 7: + _context7.prev = 7; + _context7.t0 = _context7["catch"](2); + log.error(_context7.t0); + case 10: + _this7.enableRAI(); + _context7.next = 15; + break; + case 13: + _context7.next = 15; + return _this7.onRoomEntered(); + case 15: + case "end": + return _context7.stop(); } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; + }, _callee7, null, [[2, 7]]); + }))(); + }, + onReconnection: function onReconnection() { + var _this8 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee8() { + return muc_regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { + case 0: + _context8.next = 2; + return _this8.rejoin(); + case 2: + _this8.announceReconnection(); + case 3: + case "end": + return _context8.stop(); } + }, _callee8); + }))(); + }, + getMessagesCollection: function getMessagesCollection() { + return new shared_converse.ChatRoomMessages(); + }, + restoreSession: function restoreSession() { + var _this9 = this; + var id = "muc.session-".concat(shared_converse.bare_jid, "-").concat(this.get('jid')); + this.session = new MUCSession({ + id: id + }); + initStorage(this.session, id, 'session'); + return new Promise(function (r) { + return _this9.session.fetch({ + 'success': r, + 'error': r + }); + }); + }, + initDiscoModels: function initDiscoModels() { + var _this10 = this; + var id = "converse.muc-features-".concat(shared_converse.bare_jid, "-").concat(this.get('jid')); + this.features = new Model(Object.assign({ + id: id + }, public_converse.ROOM_FEATURES.reduce(function (acc, feature) { + acc[feature] = false; + return acc; + }, {}))); + this.features.browserStorage = shared_converse.createStore(id, 'session'); + this.features.listenTo(shared_converse, 'beforeLogout', function () { + return _this10.features.browserStorage.flush(); + }); + id = "converse.muc-config-".concat(shared_converse.bare_jid, "-").concat(this.get('jid')); + this.config = new Model({ + id: id + }); + this.config.browserStorage = shared_converse.createStore(id, 'session'); + this.config.listenTo(shared_converse, 'beforeLogout', function () { + return _this10.config.browserStorage.flush(); + }); + }, + initOccupants: function initOccupants() { + var _this11 = this; + this.occupants = new shared_converse.ChatRoomOccupants(); + var id = "converse.occupants-".concat(shared_converse.bare_jid).concat(this.get('jid')); + this.occupants.browserStorage = shared_converse.createStore(id, 'session'); + this.occupants.chatroom = this; + this.occupants.listenTo(shared_converse, 'beforeLogout', function () { + return _this11.occupants.browserStorage.flush(); + }); + }, + fetchOccupants: function fetchOccupants() { + var _this12 = this; + this.occupants.fetched = new Promise(function (resolve) { + _this12.occupants.fetch({ + 'add': true, + 'silent': true, + 'success': resolve, + 'error': resolve + }); + }); + return this.occupants.fetched; + }, + handleAffiliationChangedMessage: function handleAffiliationChangedMessage(stanza) { + var item = external_sizzle_default()("x[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.MUC_USER, "\"] item"), stanza).pop(); + if (item) { + var from = stanza.getAttribute('from'); + var type = stanza.getAttribute('type'); + var affiliation = item.getAttribute('affiliation'); + var jid = item.getAttribute('jid'); + var data = { + from: from, + type: type, + affiliation: affiliation, + 'states': [], + 'show': type == 'unavailable' ? 'offline' : 'online', + 'role': item.getAttribute('role'), + 'jid': external_strophe_namespaceObject.Strophe.getBareJidFromJid(jid), + 'resource': external_strophe_namespaceObject.Strophe.getResourceFromJid(jid) + }; + var occupant = this.occupants.findOccupant({ + 'jid': data.jid + }); + if (occupant) { + occupant.save(data); + } else { + this.occupants.create(data); } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; - } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; + } + }, + handleErrorMessageStanza: function handleErrorMessageStanza(stanza) { + var _this13 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee9() { + var __, attrs, message, new_attrs; + return muc_regeneratorRuntime().wrap(function _callee9$(_context9) { + while (1) switch (_context9.prev = _context9.next) { + case 0: + __ = shared_converse.__; + _context9.next = 3; + return parseMUCMessage(stanza, _this13); + case 3: + attrs = _context9.sent; + _context9.next = 6; + return _this13.shouldShowErrorMessage(attrs); + case 6: + if (_context9.sent) { + _context9.next = 8; + break; + } + return _context9.abrupt("return"); + case 8: + message = _this13.getMessageReferencedByError(attrs); + if (message) { + new_attrs = { + 'error': attrs.error, + 'error_condition': attrs.error_condition, + 'error_text': attrs.error_text, + 'error_type': attrs.error_type, + 'editable': false + }; + if (attrs.msgid === message.get('retraction_id')) { + // The error message refers to a retraction + new_attrs.retracted = undefined; + new_attrs.retraction_id = undefined; + new_attrs.retracted_id = undefined; + if (!attrs.error) { + if (attrs.error_condition === 'forbidden') { + new_attrs.error = __("You're not allowed to retract your message."); + } else if (attrs.error_condition === 'not-acceptable') { + new_attrs.error = __("Your retraction was not delivered because you're not present in the groupchat."); + } else { + new_attrs.error = __('Sorry, an error occurred while trying to retract your message.'); + } + } + } else if (!attrs.error) { + if (attrs.error_condition === 'forbidden') { + new_attrs.error = __("Your message was not delivered because you weren't allowed to send it."); + } else if (attrs.error_condition === 'not-acceptable') { + new_attrs.error = __("Your message was not delivered because you're not present in the groupchat."); + } else { + new_attrs.error = __('Sorry, an error occurred while trying to send your message.'); + } + } + message.save(new_attrs); + } else { + _this13.createMessage(attrs); + } + case 10: + case "end": + return _context9.stop(); } - } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + }, _callee9); + }))(); + }, + /** + * Handles incoming message stanzas from the service that hosts this MUC + * @private + * @method _converse.ChatRoom#handleMessageFromMUCHost + * @param { Element } stanza + */ + handleMessageFromMUCHost: function handleMessageFromMUCHost(stanza) { + if (this.isEntered()) { + // We're not interested in activity indicators when already joined to the room + return; } - }, exports; -} -function plugins_chat_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} -function plugins_chat_utils_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - plugins_chat_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - plugins_chat_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); + var rai = external_sizzle_default()("rai[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.RAI, "\"]"), stanza).pop(); + var active_mucs = Array.from((rai === null || rai === void 0 ? void 0 : rai.querySelectorAll('activity')) || []).map(function (m) { + return m.textContent; }); - }; -} - - - - + if (active_mucs.includes(this.get('jid'))) { + this.save({ + 'has_activity': true, + 'num_unread_general': 0 // Either/or between activity and unreads + }); + } + }, -var utils_converse$env = public_converse.env, - utils_Strophe = utils_converse$env.Strophe, - chat_utils_u = utils_converse$env.u; -function openChat(jid) { - if (!chat_utils_u.isValidJID(jid)) { - return log.warn("Invalid JID \"".concat(jid, "\" provided in URL fragment")); - } - shared_api.chats.open(jid); -} -function onClearSession() { - return _onClearSession.apply(this, arguments); -} -function _onClearSession() { - _onClearSession = plugins_chat_utils_asyncToGenerator( /*#__PURE__*/plugins_chat_utils_regeneratorRuntime().mark(function _callee() { - var filter; - return plugins_chat_utils_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - if (!shouldClearCache()) { - _context.next = 5; + /** + * Handles XEP-0452 MUC Mention Notification messages + * @private + * @method _converse.ChatRoom#handleForwardedMentions + * @param { Element } stanza + */ + handleForwardedMentions: function handleForwardedMentions(stanza) { + var _this14 = this; + if (this.isEntered()) { + // Avoid counting mentions twice + return; + } + var msgs = external_sizzle_default()("mentions[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.MENTIONS, "\"] forwarded[xmlns=\"").concat(external_strophe_namespaceObject.Strophe.NS.FORWARD, "\"] message[type=\"groupchat\"]"), stanza); + var muc_jid = this.get('jid'); + var mentions = msgs.filter(function (m) { + return external_strophe_namespaceObject.Strophe.getBareJidFromJid(m.getAttribute('from')) === muc_jid; + }); + if (mentions.length) { + this.save({ + 'has_activity': true, + 'num_unread': this.get('num_unread') + mentions.length + }); + mentions.forEach( /*#__PURE__*/function () { + var _ref = muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee10(stanza) { + var attrs, data; + return muc_regeneratorRuntime().wrap(function _callee10$(_context10) { + while (1) switch (_context10.prev = _context10.next) { + case 0: + _context10.next = 2; + return parseMUCMessage(stanza, _this14); + case 2: + attrs = _context10.sent; + data = { + stanza: stanza, + attrs: attrs, + 'chatbox': _this14 + }; + shared_api.trigger('message', data); + case 5: + case "end": + return _context10.stop(); + } + }, _callee10); + })); + return function (_x) { + return _ref.apply(this, arguments); + }; + }()); + } + }, + /** + * Parses an incoming message stanza and queues it for processing. + * @private + * @method _converse.ChatRoom#handleMessageStanza + * @param { Element } stanza + */ + handleMessageStanza: function handleMessageStanza(stanza) { + var _this15 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee11() { + var _stanza$tree, _stanza$tree2, _stanza; + var type, attrs, data; + return muc_regeneratorRuntime().wrap(function _callee11$(_context11) { + while (1) switch (_context11.prev = _context11.next) { + case 0: + stanza = (_stanza$tree = (_stanza$tree2 = (_stanza = stanza).tree) === null || _stanza$tree2 === void 0 ? void 0 : _stanza$tree2.call(_stanza)) !== null && _stanza$tree !== void 0 ? _stanza$tree : stanza; + type = stanza.getAttribute('type'); + if (!(type === 'error')) { + _context11.next = 4; + break; + } + return _context11.abrupt("return", _this15.handleErrorMessageStanza(stanza)); + case 4: + if (!(type === 'groupchat')) { + _context11.next = 11; + break; + } + if (!isArchived(stanza)) { + _context11.next = 7; + break; + } + return _context11.abrupt("return", log.warn("Received a MAM message with type \"groupchat\"")); + case 7: + _this15.createInfoMessages(stanza); + _this15.fetchFeaturesIfConfigurationChanged(stanza); + _context11.next = 13; break; - } - _context.next = 3; - return Promise.all(shared_converse.chatboxes.map(function (c) { - return c.messages && c.messages.clearStore({ - 'silent': true - }); - })); - case 3: - filter = function filter(o) { - return o.get('type') !== shared_converse.CONTROLBOX_TYPE; - }; - shared_converse.chatboxes.clearStore({ - 'silent': true - }, filter); - case 5: - case "end": - return _context.stop(); - } - }, _callee); - })); - return _onClearSession.apply(this, arguments); -} -function handleErrorMessage(_x) { - return _handleErrorMessage.apply(this, arguments); -} -function _handleErrorMessage() { - _handleErrorMessage = plugins_chat_utils_asyncToGenerator( /*#__PURE__*/plugins_chat_utils_regeneratorRuntime().mark(function _callee2(stanza) { - var from_jid, chatbox; - return plugins_chat_utils_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - from_jid = utils_Strophe.getBareJidFromJid(stanza.getAttribute('from')); - if (!chat_utils_u.isSameBareJID(from_jid, shared_converse.bare_jid)) { - _context2.next = 3; + case 11: + if (type) { + _context11.next = 13; + break; + } + return _context11.abrupt("return", _this15.handleForwardedMentions(stanza)); + case 13: + _context11.prev = 13; + _context11.next = 16; + return parseMUCMessage(stanza, _this15); + case 16: + attrs = _context11.sent; + _context11.next = 22; break; - } - return _context2.abrupt("return"); - case 3: - _context2.next = 5; - return shared_api.chatboxes.get(from_jid); - case 5: - chatbox = _context2.sent; - if ((chatbox === null || chatbox === void 0 ? void 0 : chatbox.get('type')) === shared_converse.PRIVATE_CHAT_TYPE) { - chatbox === null || chatbox === void 0 ? void 0 : chatbox.handleErrorMessageStanza(stanza); - } - case 7: - case "end": - return _context2.stop(); - } - }, _callee2); - })); - return _handleErrorMessage.apply(this, arguments); -} -function autoJoinChats() { - // Automatically join private chats, based on the - // "auto_join_private_chats" configuration setting. - shared_api.settings.get('auto_join_private_chats').forEach(function (jid) { - if (shared_converse.chatboxes.where({ - 'jid': jid - }).length) { - return; + case 19: + _context11.prev = 19; + _context11.t0 = _context11["catch"](13); + return _context11.abrupt("return", log.error(_context11.t0)); + case 22: + data = { + stanza: stanza, + attrs: attrs, + 'chatbox': _this15 + }; + /** + * Triggered when a groupchat message stanza has been received and parsed. + * @event _converse#message + * @type { object } + * @property { module:converse-muc~MUCMessageData } data + */ + shared_api.trigger('message', data); + return _context11.abrupt("return", attrs && _this15.queueMessage(attrs)); + case 25: + case "end": + return _context11.stop(); + } + }, _callee11, null, [[13, 19]]); + }))(); + }, + /** + * Register presence and message handlers relevant to this groupchat + * @private + * @method _converse.ChatRoom#registerHandlers + */ + registerHandlers: function registerHandlers() { + var _this16 = this; + var muc_jid = this.get('jid'); + var muc_domain = external_strophe_namespaceObject.Strophe.getDomainFromJid(muc_jid); + this.removeHandlers(); + this.presence_handler = shared_converse.connection.addHandler(function (stanza) { + return _this16.onPresence(stanza) || true; + }, null, 'presence', null, null, muc_jid, { + 'ignoreNamespaceFragment': true, + 'matchBareFromJid': true + }); + this.domain_presence_handler = shared_converse.connection.addHandler(function (stanza) { + return _this16.onPresenceFromMUCHost(stanza) || true; + }, null, 'presence', null, null, muc_domain); + this.message_handler = shared_converse.connection.addHandler(function (stanza) { + return !!_this16.handleMessageStanza(stanza) || true; + }, null, 'message', null, null, muc_jid, { + 'matchBareFromJid': true + }); + this.domain_message_handler = shared_converse.connection.addHandler(function (stanza) { + return _this16.handleMessageFromMUCHost(stanza) || true; + }, null, 'message', null, null, muc_domain); + this.affiliation_message_handler = shared_converse.connection.addHandler(function (stanza) { + return _this16.handleAffiliationChangedMessage(stanza) || true; + }, external_strophe_namespaceObject.Strophe.NS.MUC_USER, 'message', null, null, muc_jid); + }, + removeHandlers: function removeHandlers() { + // Remove the presence and message handlers that were + // registered for this groupchat. + if (this.message_handler) { + shared_converse.connection && shared_converse.connection.deleteHandler(this.message_handler); + delete this.message_handler; } - if (typeof jid === 'string') { - shared_api.chats.open(jid); + if (this.domain_message_handler) { + shared_converse.connection && shared_converse.connection.deleteHandler(this.domain_message_handler); + delete this.domain_message_handler; + } + if (this.presence_handler) { + shared_converse.connection && shared_converse.connection.deleteHandler(this.presence_handler); + delete this.presence_handler; + } + if (this.domain_presence_handler) { + shared_converse.connection && shared_converse.connection.deleteHandler(this.domain_presence_handler); + delete this.domain_presence_handler; + } + if (this.affiliation_message_handler) { + shared_converse.connection && shared_converse.connection.deleteHandler(this.affiliation_message_handler); + delete this.affiliation_message_handler; + } + return this; + }, + invitesAllowed: function invitesAllowed() { + return shared_api.settings.get('allow_muc_invitations') && (this.features.get('open') || this.getOwnAffiliation() === 'owner'); + }, + getDisplayName: function getDisplayName() { + var name = this.get('name'); + if (name) { + return name; + } else if (shared_api.settings.get('locked_muc_domain') === 'hidden') { + return external_strophe_namespaceObject.Strophe.getNodeFromJid(this.get('jid')); } else { - log.error('Invalid jid criteria specified for "auto_join_private_chats"'); + return this.get('jid'); } - }); + }, /** - * Triggered once any private chats have been automatically joined as - * specified by the `auto_join_private_chats` setting. - * See: https://conversejs.org/docs/html/configuration.html#auto-join-private-chats - * @event _converse#privateChatsAutoJoined - * @example _converse.api.listen.on('privateChatsAutoJoined', () => { ... }); - * @example _converse.api.waitUntil('privateChatsAutoJoined').then(() => { ... }); + * Sends a message stanza to the XMPP server and expects a reflection + * or error message within a specific timeout period. + * @private + * @method _converse.ChatRoom#sendTimedMessage + * @param { _converse.Message|Element } message + * @returns { Promise|Promise } Returns a promise + * which resolves with the reflected message stanza or with an error stanza or {@link TimeoutError}. */ - shared_api.trigger('privateChatsAutoJoined'); -} -function registerMessageHandlers() { - shared_converse.connection.addHandler(function (stanza) { - if (['groupchat', 'error'].includes(stanza.getAttribute('type')) || isHeadline(stanza) || isServerMessage(stanza) || isArchived(stanza)) { - return true; + sendTimedMessage: function sendTimedMessage(el) { + if (typeof el.tree === 'function') { + el = el.tree(); } - return shared_converse.handleMessageStanza(stanza) || true; - }, null, 'message'); - shared_converse.connection.addHandler(function (stanza) { - return handleErrorMessage(stanza) || true; - }, null, 'message', 'error'); -} - -/** - * Handler method for all incoming single-user chat "message" stanzas. - * @param { MessageAttributes } attrs - The message attributes - */ -function handleMessageStanza(_x2) { - return _handleMessageStanza.apply(this, arguments); -} - -/** - * Ask the XMPP server to enable Message Carbons - * See [XEP-0280](https://xmpp.org/extensions/xep-0280.html#enabling) - * @param { Boolean } reconnecting - */ -function _handleMessageStanza() { - _handleMessageStanza = plugins_chat_utils_asyncToGenerator( /*#__PURE__*/plugins_chat_utils_regeneratorRuntime().mark(function _callee3(stanza) { - var _stanza$tree, _stanza$tree2, _stanza; - var from, attrs, has_body, chatbox, data; - return plugins_chat_utils_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - stanza = (_stanza$tree = (_stanza$tree2 = (_stanza = stanza).tree) === null || _stanza$tree2 === void 0 ? void 0 : _stanza$tree2.call(_stanza)) !== null && _stanza$tree !== void 0 ? _stanza$tree : stanza; - if (!isServerMessage(stanza)) { - _context3.next = 4; - break; - } - // Prosody sends headline messages with type `chat`, so we need to filter them out here. - from = stanza.getAttribute('from'); - return _context3.abrupt("return", log.info("handleMessageStanza: Ignoring incoming server message from JID: ".concat(from))); - case 4: - _context3.prev = 4; - _context3.next = 7; - return parseMessage(stanza); - case 7: - attrs = _context3.sent; - _context3.next = 13; - break; - case 10: - _context3.prev = 10; - _context3.t0 = _context3["catch"](4); - return _context3.abrupt("return", log.error(_context3.t0)); - case 13: - if (!chat_utils_u.isErrorObject(attrs)) { - _context3.next = 16; - break; - } - attrs.stanza && log.error(attrs.stanza); - return _context3.abrupt("return", log.error(attrs.message)); - case 16: - // XXX: Need to take XEP-428 into consideration - has_body = !!(attrs.body || attrs.plaintext); - _context3.next = 19; - return shared_api.chats.get(attrs.contact_jid, { - 'nickname': attrs.nick - }, has_body); - case 19: - chatbox = _context3.sent; - _context3.next = 22; - return chatbox === null || chatbox === void 0 ? void 0 : chatbox.queueMessage(attrs); - case 22: - /** - * @typedef { Object } MessageData - * An object containing the original message stanza, as well as the - * parsed attributes. - * @property { Element } stanza - * @property { MessageAttributes } stanza - * @property { ChatBox } chatbox - */ - data = { - stanza: stanza, - attrs: attrs, - chatbox: chatbox - }; - /** - * Triggered when a message stanza is been received and processed. - * @event _converse#message - * @type { object } - * @property { module:converse-chat~MessageData } data - */ - shared_api.trigger('message', data); - case 24: - case "end": - return _context3.stop(); - } - }, _callee3, null, [[4, 10]]); - })); - return _handleMessageStanza.apply(this, arguments); -} -function enableCarbons() { - return _enableCarbons.apply(this, arguments); -} -function _enableCarbons() { - _enableCarbons = plugins_chat_utils_asyncToGenerator( /*#__PURE__*/plugins_chat_utils_regeneratorRuntime().mark(function _callee4() { - var domain, supported, iq, result; - return plugins_chat_utils_regeneratorRuntime().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - domain = utils_Strophe.getDomainFromJid(shared_converse.bare_jid); - _context4.next = 3; - return shared_api.disco.supports(utils_Strophe.NS.CARBONS, domain); - case 3: - supported = _context4.sent; - if (supported) { - _context4.next = 7; - break; - } - log.warn("Not enabling carbons because it's not supported!"); - return _context4.abrupt("return"); - case 7: - iq = new utils_Strophe.Builder('iq', { - 'from': shared_converse.connection.jid, - 'type': 'set' - }).c('enable', { - xmlns: utils_Strophe.NS.CARBONS - }); - _context4.next = 10; - return shared_api.sendIQ(iq, null, false); - case 10: - result = _context4.sent; - if (result === null) { - log.warn("A timeout occurred while trying to enable carbons"); - } else if (chat_utils_u.isErrorStanza(result)) { - log.warn('An error occurred while trying to enable message carbons.'); - log.error(result); - } else { - log.debug('Message carbons have been enabled.'); - } - case 12: - case "end": - return _context4.stop(); - } - }, _callee4); - })); - return _enableCarbons.apply(this, arguments); -} -;// CONCATENATED MODULE: ./src/headless/plugins/chat/index.js -/** - * @copyright 2022, the Converse.js contributors - * @license Mozilla Public License (MPLv2) - */ - - - - - + var id = el.getAttribute('id'); + if (!id) { + // inject id if not found + id = this.getUniqueId('sendIQ'); + el.setAttribute('id', id); + } + var promise = getOpenPromise(); + var timeout = shared_api.settings.get('stanza_timeout'); + var timeoutHandler = shared_converse.connection.addTimedHandler(timeout, function () { + shared_converse.connection.deleteHandler(handler); + var err = new TimeoutError('Timeout Error: No response from server'); + promise.resolve(err); + return false; + }); + var handler = shared_converse.connection.addHandler(function (stanza) { + timeoutHandler && shared_converse.connection.deleteTimedHandler(timeoutHandler); + promise.resolve(stanza); + }, null, 'message', ['error', 'groupchat'], id); + shared_api.send(el); + return promise; + }, + /** + * Retract one of your messages in this groupchat + * @private + * @method _converse.ChatRoom#retractOwnMessage + * @param { _converse.Message } message - The message which we're retracting. + */ + retractOwnMessage: function retractOwnMessage(message) { + var _this17 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee12() { + var __, origin_id, editable, stanza, result; + return muc_regeneratorRuntime().wrap(function _callee12$(_context12) { + while (1) switch (_context12.prev = _context12.next) { + case 0: + __ = shared_converse.__; + origin_id = message.get('origin_id'); + if (origin_id) { + _context12.next = 4; + break; + } + throw new Error("Can't retract message without a XEP-0359 Origin ID"); + case 4: + editable = message.get('editable'); + stanza = (0,external_strophe_namespaceObject.$msg)({ + 'id': getUniqueId(), + 'to': _this17.get('jid'), + 'type': 'groupchat' + }).c('store', { + xmlns: external_strophe_namespaceObject.Strophe.NS.HINTS + }).up().c('apply-to', { + 'id': origin_id, + 'xmlns': external_strophe_namespaceObject.Strophe.NS.FASTEN + }).c('retract', { + xmlns: external_strophe_namespaceObject.Strophe.NS.RETRACT + }); // Optimistic save + message.set({ + 'retracted': new Date().toISOString(), + 'retracted_id': origin_id, + 'retraction_id': stanza.tree().getAttribute('id'), + 'editable': false + }); + _context12.next = 9; + return _this17.sendTimedMessage(stanza); + case 9: + result = _context12.sent; + if (muc_u.isErrorStanza(result)) { + log.error(result); + } else if (result instanceof TimeoutError) { + log.error(result); + message.save({ + editable: editable, + 'error_type': 'timeout', + 'error': __('A timeout happened while while trying to retract your message.'), + 'retracted': undefined, + 'retracted_id': undefined, + 'retraction_id': undefined + }); + } + case 11: + case "end": + return _context12.stop(); + } + }, _callee12); + }))(); + }, + /** + * Retract someone else's message in this groupchat. + * @private + * @method _converse.ChatRoom#retractOtherMessage + * @param { _converse.ChatRoomMessage } message - The message which we're retracting. + * @param { string } [reason] - The reason for retracting the message. + * @example + * const room = await api.rooms.get(jid); + * const message = room.messages.findWhere({'body': 'Get rich quick!'}); + * room.retractOtherMessage(message, 'spam'); + */ + retractOtherMessage: function retractOtherMessage(message, reason) { + var _this18 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee13() { + var editable, result; + return muc_regeneratorRuntime().wrap(function _callee13$(_context13) { + while (1) switch (_context13.prev = _context13.next) { + case 0: + editable = message.get('editable'); // Optimistic save + message.save({ + 'moderated': 'retracted', + 'moderated_by': shared_converse.bare_jid, + 'moderated_id': message.get('msgid'), + 'moderation_reason': reason, + 'editable': false + }); + _context13.next = 4; + return _this18.sendRetractionIQ(message, reason); + case 4: + result = _context13.sent; + if (result === null || muc_u.isErrorStanza(result)) { + // Undo the save if something went wrong + message.save({ + editable: editable, + 'moderated': undefined, + 'moderated_by': undefined, + 'moderated_id': undefined, + 'moderation_reason': undefined + }); + } + return _context13.abrupt("return", result); + case 7: + case "end": + return _context13.stop(); + } + }, _callee13); + }))(); + }, + /** + * Sends an IQ stanza to the XMPP server to retract a message in this groupchat. + * @private + * @method _converse.ChatRoom#sendRetractionIQ + * @param { _converse.ChatRoomMessage } message - The message which we're retracting. + * @param { string } [reason] - The reason for retracting the message. + */ + sendRetractionIQ: function sendRetractionIQ(message, reason) { + var iq = (0,external_strophe_namespaceObject.$iq)({ + 'to': this.get('jid'), + 'type': 'set' + }).c('apply-to', { + 'id': message.get("stanza_id ".concat(this.get('jid'))), + 'xmlns': external_strophe_namespaceObject.Strophe.NS.FASTEN + }).c('moderate', { + xmlns: external_strophe_namespaceObject.Strophe.NS.MODERATE + }).c('retract', { + xmlns: external_strophe_namespaceObject.Strophe.NS.RETRACT + }).up().c('reason').t(reason || ''); + return shared_api.sendIQ(iq, null, false); + }, + /** + * Sends an IQ stanza to the XMPP server to destroy this groupchat. Not + * to be confused with the {@link _converse.ChatRoom#destroy} + * method, which simply removes the room from the local browser storage cache. + * @private + * @method _converse.ChatRoom#sendDestroyIQ + * @param { string } [reason] - The reason for destroying the groupchat. + * @param { string } [new_jid] - The JID of the new groupchat which replaces this one. + */ + sendDestroyIQ: function sendDestroyIQ(reason, new_jid) { + var destroy = (0,external_strophe_namespaceObject.$build)('destroy'); + if (new_jid) { + destroy.attrs({ + 'jid': new_jid + }); + } + var iq = (0,external_strophe_namespaceObject.$iq)({ + 'to': this.get('jid'), + 'type': 'set' + }).c('query', { + 'xmlns': external_strophe_namespaceObject.Strophe.NS.MUC_OWNER + }).cnode(destroy.node); + if (reason && reason.length > 0) { + iq.c('reason', reason); + } + return shared_api.sendIQ(iq); + }, + /** + * Leave the groupchat. + * @private + * @method _converse.ChatRoom#leave + * @param { string } [exit_msg] - Message to indicate your reason for leaving + */ + leave: function leave(exit_msg) { + var _this19 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee14() { + var _converse$disco_entit; + var disco_entity; + return muc_regeneratorRuntime().wrap(function _callee14$(_context14) { + while (1) switch (_context14.prev = _context14.next) { + case 0: + shared_api.connection.connected() && shared_api.user.presence.send('unavailable', _this19.getRoomJIDAndNick(), exit_msg); + // Delete the features model + if (!_this19.features) { + _context14.next = 4; + break; + } + _context14.next = 4; + return new Promise(function (resolve) { + return _this19.features.destroy({ + 'success': resolve, + 'error': function error(_, e) { + log.error(e); + resolve(); + } + }); + }); + case 4: + // Delete disco entity + disco_entity = (_converse$disco_entit = shared_converse.disco_entities) === null || _converse$disco_entit === void 0 ? void 0 : _converse$disco_entit.get(_this19.get('jid')); + if (!disco_entity) { + _context14.next = 8; + break; + } + _context14.next = 8; + return new Promise(function (resolve) { + return disco_entity.destroy({ + 'success': resolve, + 'error': function error(_, e) { + log.error(e); + resolve(); + } + }); + }); + case 8: + safeSave(_this19.session, { + 'connection_status': ROOMSTATUS.DISCONNECTED + }); + case 9: + case "end": + return _context14.stop(); + } + }, _callee14); + }))(); + }, + close: function close(ev) { + var _this20 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee15() { + var ENTERED, CLOSING, was_entered; + return muc_regeneratorRuntime().wrap(function _callee15$(_context15) { + while (1) switch (_context15.prev = _context15.next) { + case 0: + ENTERED = ROOMSTATUS.ENTERED, CLOSING = ROOMSTATUS.CLOSING; + was_entered = _this20.session.get('connection_status') === ENTERED; + safeSave(_this20.session, { + 'connection_status': CLOSING + }); + was_entered && _this20.sendMarkerForLastMessage('received', true); + _context15.next = 6; + return _this20.unregisterNickname(); + case 6: + _context15.next = 8; + return _this20.leave(); + case 8: + _this20.occupants.clearStore(); + if ((ev === null || ev === void 0 ? void 0 : ev.name) !== 'closeAllChatBoxes' && shared_api.settings.get('muc_clear_messages_on_leave')) { + _this20.clearMessages(); + } -public_converse.plugins.add('converse-chat', { - dependencies: ['converse-chatboxes', 'converse-disco'], - initialize: function initialize() { - // Configuration values for this plugin - // ==================================== - // Refer to docs/source/configuration.rst for explanations of these - // configuration settings. - shared_api.settings.extend({ - 'allow_message_corrections': 'all', - 'allow_message_retraction': 'all', - 'allow_message_styling': true, - 'auto_join_private_chats': [], - 'clear_messages_on_reconnection': false, - 'filter_by_resource': false, - 'prune_messages_above': undefined, - 'pruning_behavior': 'unscrolled', - 'send_chat_markers': ['received', 'displayed', 'acknowledged'], - 'send_chat_state_notifications': true - }); - shared_converse.Message = model_with_contact.extend(message); - shared_converse.Messages = Collection.extend({ - model: shared_converse.Message, - comparator: 'time' - }); - Object.assign(shared_converse, { - ChatBox: model, - handleMessageStanza: handleMessageStanza - }); - Object.assign(shared_api, chat_api); - shared_converse.router.route('converse/chat?jid=:jid', openChat); - shared_api.listen.on('chatBoxesFetched', autoJoinChats); - shared_api.listen.on('presencesInitialized', registerMessageHandlers); - shared_api.listen.on('clearSession', onClearSession); - shared_api.listen.on('connected', function () { - return enableCarbons(); + // Delete the session model + _context15.next = 12; + return new Promise(function (resolve) { + return _this20.session.destroy({ + 'success': resolve, + 'error': function error(_, e) { + log.error(e); + resolve(); + } + }); + }); + case 12: + return _context15.abrupt("return", shared_converse.ChatBox.prototype.close.call(_this20)); + case 13: + case "end": + return _context15.stop(); + } + }, _callee15); + }))(); + }, + canModerateMessages: function canModerateMessages() { + var self = this.getOwnOccupant(); + return self && self.isModerator() && shared_api.disco.supports(external_strophe_namespaceObject.Strophe.NS.MODERATE, this.get('jid')); + }, + /** + * Return an array of unique nicknames based on all occupants and messages in this MUC. + * @private + * @method _converse.ChatRoom#getAllKnownNicknames + * @returns { String[] } + */ + getAllKnownNicknames: function getAllKnownNicknames() { + return muc_toConsumableArray(new Set([].concat(muc_toConsumableArray(this.occupants.map(function (o) { + return o.get('nick'); + })), muc_toConsumableArray(this.messages.map(function (m) { + return m.get('nick'); + }))))).filter(function (n) { + return n; }); - shared_api.listen.on('reconnected', function () { - return enableCarbons(); + }, + getAllKnownNicknamesRegex: function getAllKnownNicknamesRegex() { + var longNickString = this.getAllKnownNicknames().map(function (n) { + return parse_helpers.escapeRegexString(n); + }).join('|'); + return RegExp("(?:\\p{P}|\\p{Z}|^)@(".concat(longNickString, ")(?![\\w@-])"), 'uig'); + }, + getOccupantByJID: function getOccupantByJID(jid) { + return this.occupants.findOccupant({ + jid: jid }); - } -}); -;// CONCATENATED MODULE: ./src/headless/plugins/disco/entity.js -function entity_typeof(obj) { - "@babel/helpers - typeof"; - - return entity_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, entity_typeof(obj); -} -function entity_regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - entity_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; - } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); - }); + }, + getOccupantByNickname: function getOccupantByNickname(nick) { + return this.occupants.findOccupant({ + nick: nick }); - } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == entity_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - reject(record.arg); + }, + getReferenceURIFromNickname: function getReferenceURIFromNickname(nickname) { + var muc_jid = this.get('jid'); + var occupant = this.getOccupant(nickname); + var uri = this.features.get('nonanonymous') && (occupant === null || occupant === void 0 ? void 0 : occupant.get('jid')) || "".concat(muc_jid, "/").concat(nickname); + return encodeURI("xmpp:".concat(uri)); + }, + /** + * Given a text message, look for `@` mentions and turn them into + * XEP-0372 references + * @param { String } text + */ + parseTextForReferences: function parseTextForReferences(text) { + var _this21 = this; + var mentions_regex = /((?:[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F])|[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]|^)(@[\x2D0-9A-Z_a-z\u017F\u212A]+(?:\.[0-9A-Z_a-z\u017F\u212A]+)*)/gi; + if (!text || !mentions_regex.test(text)) { + return [text, []]; } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + var getMatchingNickname = parse_helpers.findFirstMatchInArray(this.getAllKnownNicknames()); + var matchToReference = function matchToReference(match) { + var at_sign_index = match[0].indexOf('@'); + if (match[0][at_sign_index + 1] === '@') { + // edge-case + at_sign_index += 1; } + var begin = match.index + at_sign_index; + var end = begin + match[0].length - at_sign_index; + var value = getMatchingNickname(match[1]); + var type = 'mention'; + var uri = _this21.getReferenceURIFromNickname(value); + return { + begin: begin, + end: end, + value: value, + type: type, + uri: uri + }; + }; + var regex = this.getAllKnownNicknamesRegex(); + var mentions = muc_toConsumableArray(text.matchAll(regex)).filter(function (m) { + return !m[0].startsWith('/'); }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); - } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done - }; + var references = mentions.map(matchToReference); + var _p$reduceTextFromRefe = parse_helpers.reduceTextFromReferences(text, references), + _p$reduceTextFromRefe2 = muc_slicedToArray(_p$reduceTextFromRefe, 2), + updated_message = _p$reduceTextFromRefe2[0], + updated_references = _p$reduceTextFromRefe2[1]; + return [updated_message, updated_references]; + }, + getOutgoingMessageAttributes: function getOutgoingMessageAttributes(attrs) { + var _this22 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee16() { + var _attrs; + var is_spoiler, text, references, _this22$parseTextForR, _this22$parseTextForR2, origin_id, body; + return muc_regeneratorRuntime().wrap(function _callee16$(_context16) { + while (1) switch (_context16.prev = _context16.next) { + case 0: + _context16.next = 2; + return shared_api.emojis.initialize(); + case 2: + is_spoiler = _this22.get('composing_spoiler'); + text = ''; + if ((_attrs = attrs) !== null && _attrs !== void 0 && _attrs.body) { + _this22$parseTextForR = _this22.parseTextForReferences(attrs.body); + _this22$parseTextForR2 = muc_slicedToArray(_this22$parseTextForR, 2); + text = _this22$parseTextForR2[0]; + references = _this22$parseTextForR2[1]; + } + origin_id = getUniqueId(); + body = text ? muc_u.shortnamesToUnicode(text) : undefined; + attrs = Object.assign({}, attrs, { + body: body, + is_spoiler: is_spoiler, + origin_id: origin_id, + references: references, + 'id': origin_id, + 'msgid': origin_id, + 'from': "".concat(_this22.get('jid'), "/").concat(_this22.get('nick')), + 'fullname': _this22.get('nick'), + 'is_only_emojis': text ? muc_u.isOnlyEmojis(text) : false, + 'message': body, + 'nick': _this22.get('nick'), + 'sender': 'me', + 'type': 'groupchat' + }, getMediaURLsMetadata(text)); + + /** + * *Hook* which allows plugins to update the attributes of an outgoing + * message. + * @event _converse#getOutgoingMessageAttributes + */ + _context16.next = 10; + return shared_api.hook('getOutgoingMessageAttributes', _this22, attrs); + case 10: + attrs = _context16.sent; + return _context16.abrupt("return", attrs); + case 12: + case "end": + return _context16.stop(); } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); - } - }; - } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); - } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); - } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal", delete record.arg, entry.completion = record; - } - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); - } - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) return iteratorMethod.call(iterable); - if ("function" == typeof iterable.next) return iterable; - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; - return next.value = undefined, next.done = !0, next; - }; - return next.next = next; - } + }, _callee16); + }))(); + }, + /** + * Utility method to construct the JID for the current user as occupant of the groupchat. + * @private + * @method _converse.ChatRoom#getRoomJIDAndNick + * @returns {string} - The groupchat JID with the user's nickname added at the end. + * @example groupchat@conference.example.org/nickname + */ + getRoomJIDAndNick: function getRoomJIDAndNick() { + var nick = this.get('nick'); + var jid = external_strophe_namespaceObject.Strophe.getBareJidFromJid(this.get('jid')); + return jid + (nick !== null ? "/".concat(nick) : ''); + }, + /** + * Sends a message with the current XEP-0085 chat state of the user + * as taken from the `chat_state` attribute of the {@link _converse.ChatRoom}. + * @private + * @method _converse.ChatRoom#sendChatState + */ + sendChatState: function sendChatState() { + if (!shared_api.settings.get('send_chat_state_notifications') || !this.get('chat_state') || !this.isEntered() || this.features.get('moderated') && this.getOwnRole() === 'visitor') { + return; } - return { - next: doneResult - }; - } - function doneResult() { - return { - value: undefined, - done: !0 - }; - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { - var ctor = "function" == typeof genFun && genFun.constructor; - return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); - }, exports.mark = function (genFun) { - return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; - }, exports.awrap = function (arg) { - return { - __await: arg - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - void 0 === PromiseImpl && (PromiseImpl = Promise); - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { - return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; - } - return next.done = !0, next; + var allowed = shared_api.settings.get('send_chat_state_notifications'); + if (Array.isArray(allowed) && !allowed.includes(this.get('chat_state'))) { + return; + } + var chat_state = this.get('chat_state'); + if (chat_state === shared_converse.GONE) { + // is not applicable within MUC context + return; + } + shared_api.send((0,external_strophe_namespaceObject.$msg)({ + 'to': this.get('jid'), + 'type': 'groupchat' + }).c(chat_state, { + 'xmlns': external_strophe_namespaceObject.Strophe.NS.CHATSTATES + }).up().c('no-store', { + 'xmlns': external_strophe_namespaceObject.Strophe.NS.HINTS + }).up().c('no-permanent-store', { + 'xmlns': external_strophe_namespaceObject.Strophe.NS.HINTS + })); + }, + /** + * Send a direct invitation as per XEP-0249 + * @private + * @method _converse.ChatRoom#directInvite + * @param { String } recipient - JID of the person being invited + * @param { String } [reason] - Reason for the invitation + */ + directInvite: function directInvite(recipient, reason) { + if (this.features.get('membersonly')) { + // When inviting to a members-only groupchat, we first add + // the person to the member list by giving them an + // affiliation of 'member' otherwise they won't be able to join. + this.updateMemberLists([{ + 'jid': recipient, + 'affiliation': 'member', + 'reason': reason + }]); + } + var attrs = { + 'xmlns': 'jabber:x:conference', + 'jid': this.get('jid') }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; - } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; - } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + if (reason !== null) { + attrs.reason = reason; + } + if (this.get('password')) { + attrs.password = this.get('password'); } - }, exports; -} -function entity_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} -function entity_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - entity_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - entity_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); + var invitation = (0,external_strophe_namespaceObject.$msg)({ + 'from': shared_converse.connection.jid, + 'to': recipient, + 'id': getUniqueId() + }).c('x', attrs); + shared_api.send(invitation); + /** + * After the user has sent out a direct invitation (as per XEP-0249), + * to a roster contact, asking them to join a room. + * @event _converse#chatBoxMaximized + * @type {object} + * @property {_converse.ChatRoom} room + * @property {string} recipient - The JID of the person being invited + * @property {string} reason - The original reason for the invitation + * @example _converse.api.listen.on('chatBoxMaximized', view => { ... }); + */ + shared_api.trigger('roomInviteSent', { + 'room': this, + 'recipient': recipient, + 'reason': reason }); - }; -} - - - - - - -var entity_Strophe = public_converse.env.Strophe; - -/** - * @class - * @namespace _converse.DiscoEntity - * @memberOf _converse - * - * A Disco Entity is a JID addressable entity that can be queried for features. - * - * See XEP-0030: https://xmpp.org/extensions/xep-0030.html - */ -var DiscoEntity = Model.extend({ - idAttribute: 'jid', - initialize: function initialize(_, options) { - this.waitUntilFeaturesDiscovered = getOpenPromise(); - this.dataforms = new Collection(); - var id = "converse.dataforms-".concat(this.get('jid')); - this.dataforms.browserStorage = shared_converse.createStore(id, 'session'); - this.features = new Collection(); - id = "converse.features-".concat(this.get('jid')); - this.features.browserStorage = shared_converse.createStore(id, 'session'); - this.listenTo(this.features, 'add', this.onFeatureAdded); - this.fields = new Collection(); - id = "converse.fields-".concat(this.get('jid')); - this.fields.browserStorage = shared_converse.createStore(id, 'session'); - this.listenTo(this.fields, 'add', this.onFieldAdded); - this.identities = new Collection(); - id = "converse.identities-".concat(this.get('jid')); - this.identities.browserStorage = shared_converse.createStore(id, 'session'); - this.fetchFeatures(options); }, /** - * Returns a Promise which resolves with a map indicating - * whether a given identity is provided by this entity. + * Refresh the disco identity, features and fields for this {@link _converse.ChatRoom}. + * *features* are stored on the features {@link Model} attribute on this {@link _converse.ChatRoom}. + * *fields* are stored on the config {@link Model} attribute on this {@link _converse.ChatRoom}. * @private - * @method _converse.DiscoEntity#getIdentity - * @param { String } category - The identity category - * @param { String } type - The identity type + * @returns {Promise} */ - getIdentity: function getIdentity(category, type) { - var _this = this; - return entity_asyncToGenerator( /*#__PURE__*/entity_regeneratorRuntime().mark(function _callee() { - return entity_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { + refreshDiscoInfo: function refreshDiscoInfo() { + var _this23 = this; + return shared_api.disco.refresh(this.get('jid')).then(function () { + return _this23.getDiscoInfo(); + }).catch(function (e) { + return log.error(e); + }); + }, + /** + * Fetch the *extended* MUC info from the server and cache it locally + * https://xmpp.org/extensions/xep-0045.html#disco-roominfo + * @private + * @method _converse.ChatRoom#getDiscoInfo + * @returns {Promise} + */ + getDiscoInfo: function getDiscoInfo() { + var _this24 = this; + return shared_api.disco.getIdentity('conference', 'text', this.get('jid')).then(function (identity) { + return _this24.save({ + 'name': identity === null || identity === void 0 ? void 0 : identity.get('name') + }); + }).then(function () { + return _this24.getDiscoInfoFields(); + }).then(function () { + return _this24.getDiscoInfoFeatures(); + }).catch(function (e) { + return log.error(e); + }); + }, + /** + * Fetch the *extended* MUC info fields from the server and store them locally + * in the `config` {@link Model} attribute. + * See: https://xmpp.org/extensions/xep-0045.html#disco-roominfo + * @private + * @method _converse.ChatRoom#getDiscoInfoFields + * @returns {Promise} + */ + getDiscoInfoFields: function getDiscoInfoFields() { + var _this25 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee17() { + var fields, config; + return muc_regeneratorRuntime().wrap(function _callee17$(_context17) { + while (1) switch (_context17.prev = _context17.next) { case 0: - _context.next = 2; - return _this.waitUntilFeaturesDiscovered; + _context17.next = 2; + return shared_api.disco.getFields(_this25.get('jid')); case 2: - return _context.abrupt("return", _this.identities.findWhere({ - 'category': category, - 'type': type - })); - case 3: + fields = _context17.sent; + config = fields.reduce(function (config, f) { + var name = f.get('var'); + if (name !== null && name !== void 0 && name.startsWith('muc#roominfo_')) { + config[name.replace('muc#roominfo_', '')] = f.get('value'); + } + return config; + }, {}); + _this25.config.save(config); + case 5: case "end": - return _context.stop(); + return _context17.stop(); } - }, _callee); + }, _callee17); }))(); }, /** - * Returns a Promise which resolves with a map indicating - * whether a given feature is supported. + * Use converse-disco to populate the features {@link Model} which + * is stored as an attibute on this {@link _converse.ChatRoom}. + * The results may be cached. If you want to force fetching the features from the + * server, call {@link _converse.ChatRoom#refreshDiscoInfo} instead. * @private - * @method _converse.DiscoEntity#getFeature - * @param { String } feature - The feature that might be supported. + * @returns {Promise} */ - getFeature: function getFeature(feature) { - var _this2 = this; - return entity_asyncToGenerator( /*#__PURE__*/entity_regeneratorRuntime().mark(function _callee2() { - return entity_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { + getDiscoInfoFeatures: function getDiscoInfoFeatures() { + var _this26 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee18() { + var features, attrs; + return muc_regeneratorRuntime().wrap(function _callee18$(_context18) { + while (1) switch (_context18.prev = _context18.next) { case 0: - _context2.next = 2; - return _this2.waitUntilFeaturesDiscovered; + _context18.next = 2; + return shared_api.disco.getFeatures(_this26.get('jid')); case 2: - if (!_this2.features.findWhere({ - 'var': feature - })) { - _context2.next = 4; - break; - } - return _context2.abrupt("return", _this2); - case 4: + features = _context18.sent; + attrs = public_converse.ROOM_FEATURES.reduce(function (acc, feature) { + acc[feature] = false; + return acc; + }, { + 'fetched': new Date().toISOString() + }); + features.each(function (feature) { + var fieldname = feature.get('var'); + if (!fieldname.startsWith('muc_')) { + if (fieldname === external_strophe_namespaceObject.Strophe.NS.MAM) { + attrs.mam_enabled = true; + } else { + attrs[fieldname] = true; + } + return; + } + attrs[fieldname.replace('muc_', '')] = true; + }); + _this26.features.save(attrs); + case 6: case "end": - return _context2.stop(); + return _context18.stop(); } - }, _callee2); + }, _callee18); }))(); }, - onFeatureAdded: function onFeatureAdded(feature) { - feature.entity = this; - /** - * Triggered when Converse has learned of a service provided by the XMPP server. - * See XEP-0030. - * @event _converse#serviceDiscovered - * @type { Model } - * @example _converse.api.listen.on('featuresDiscovered', feature => { ... }); - */ - shared_api.trigger('serviceDiscovered', feature); - }, - onFieldAdded: function onFieldAdded(field) { - field.entity = this; - /** - * Triggered when Converse has learned of a disco extension field. - * See XEP-0030. - * @event _converse#discoExtensionFieldDiscovered - * @example _converse.api.listen.on('discoExtensionFieldDiscovered', () => { ... }); - */ - shared_api.trigger('discoExtensionFieldDiscovered', field); + /** + * Given a element, return a copy with a child if + * we can find a value for it in this rooms config. + * @private + * @method _converse.ChatRoom#addFieldValue + * @returns { Element } + */ + addFieldValue: function addFieldValue(field) { + var type = field.getAttribute('type'); + if (type === 'fixed') { + return field; + } + var fieldname = field.getAttribute('var').replace('muc#roomconfig_', ''); + var config = this.get('roomconfig'); + if (fieldname in config) { + var values; + switch (type) { + case 'boolean': + values = [config[fieldname] ? 1 : 0]; + break; + case 'list-multi': + values = config[fieldname]; + break; + default: + values = [config[fieldname]]; + } + field.innerHTML = values.map(function (v) { + return (0,external_strophe_namespaceObject.$build)('value').t(v); + }).join(''); + } + return field; }, - fetchFeatures: function fetchFeatures(options) { - var _this3 = this; - return entity_asyncToGenerator( /*#__PURE__*/entity_regeneratorRuntime().mark(function _callee3() { - var store_id, result; - return entity_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { + /** + * Automatically configure the groupchat based on this model's + * 'roomconfig' data. + * @private + * @method _converse.ChatRoom#autoConfigureChatRoom + * @returns { Promise } + * Returns a promise which resolves once a response IQ has + * been received. + */ + autoConfigureChatRoom: function autoConfigureChatRoom() { + var _this27 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee19() { + var stanza, fields, configArray; + return muc_regeneratorRuntime().wrap(function _callee19$(_context19) { + while (1) switch (_context19.prev = _context19.next) { case 0: - if (!options.ignore_cache) { - _context3.next = 4; + _context19.next = 2; + return _this27.fetchRoomConfiguration(); + case 2: + stanza = _context19.sent; + fields = external_sizzle_default()('field', stanza); + configArray = fields.map(function (f) { + return _this27.addFieldValue(f); + }); + if (!configArray.length) { + _context19.next = 7; break; } - _this3.queryInfo(); - _context3.next = 9; - break; - case 4: - store_id = _this3.features.browserStorage.name; - _context3.next = 7; - return _this3.features.browserStorage.store.getItem(store_id); + return _context19.abrupt("return", _this27.sendConfiguration(configArray)); case 7: - result = _context3.sent; - if (result && result.length === 0 || result === null) { - _this3.queryInfo(); - } else { - _this3.features.fetch({ - add: true, - success: function success() { - _this3.waitUntilFeaturesDiscovered.resolve(_this3); - _this3.trigger('featuresDiscovered'); - } - }); - _this3.identities.fetch({ - add: true - }); - } - case 9: case "end": - return _context3.stop(); + return _context19.stop(); } - }, _callee3); + }, _callee19); }))(); }, - queryInfo: function queryInfo() { - var _this4 = this; - return entity_asyncToGenerator( /*#__PURE__*/entity_regeneratorRuntime().mark(function _callee4() { - var stanza; - return entity_regeneratorRuntime().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - _context4.prev = 0; - _context4.next = 3; - return shared_api.disco.info(_this4.get('jid'), null); - case 3: - stanza = _context4.sent; - _context4.next = 11; - break; - case 6: - _context4.prev = 6; - _context4.t0 = _context4["catch"](0); - _context4.t0 === null ? log.error("Timeout for disco#info query for ".concat(_this4.get('jid'))) : log.error(_context4.t0); - _this4.waitUntilFeaturesDiscovered.resolve(_this4); - return _context4.abrupt("return"); - case 11: - _this4.onInfo(stanza); - case 12: - case "end": - return _context4.stop(); - } - }, _callee4, null, [[0, 6]]); - }))(); + /** + * Send an IQ stanza to fetch the groupchat configuration data. + * Returns a promise which resolves once the response IQ + * has been received. + * @private + * @method _converse.ChatRoom#fetchRoomConfiguration + * @returns { Promise } + */ + fetchRoomConfiguration: function fetchRoomConfiguration() { + return shared_api.sendIQ((0,external_strophe_namespaceObject.$iq)({ + 'to': this.get('jid'), + 'type': 'get' + }).c('query', { + xmlns: external_strophe_namespaceObject.Strophe.NS.MUC_OWNER + })); }, - onDiscoItems: function onDiscoItems(stanza) { - var _this5 = this; - external_sizzle_default()("query[xmlns=\"".concat(entity_Strophe.NS.DISCO_ITEMS, "\"] item"), stanza).forEach(function (item) { - if (item.getAttribute('node')) { - // XXX: Ignore nodes for now. - // See: https://xmpp.org/extensions/xep-0030.html#items-nodes - return; - } - var jid = item.getAttribute('jid'); - var entity = shared_converse.disco_entities.get(jid); - if (entity) { - entity.set({ - parent_jids: [_this5.get('jid')] - }); - } else { - shared_api.disco.entities.create({ - jid: jid, - 'parent_jids': [_this5.get('jid')], - 'name': item.getAttribute('name') - }); + /** + * Sends an IQ stanza with the groupchat configuration. + * @private + * @method _converse.ChatRoom#sendConfiguration + * @param { Array } config - The groupchat configuration + * @returns { Promise } - A promise which resolves with + * the `result` stanza received from the XMPP server. + */ + sendConfiguration: function sendConfiguration() { + var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + var iq = (0,external_strophe_namespaceObject.$iq)({ + to: this.get('jid'), + type: 'set' + }).c('query', { + xmlns: external_strophe_namespaceObject.Strophe.NS.MUC_OWNER + }).c('x', { + xmlns: external_strophe_namespaceObject.Strophe.NS.XFORM, + type: 'submit' + }); + config.forEach(function (node) { + return iq.cnode(node).up(); + }); + return shared_api.sendIQ(iq); + }, + onCommandError: function onCommandError(err) { + var __ = shared_converse.__; + log.fatal(err); + var message = __('Sorry, an error happened while running the command.') + ' ' + __("Check your browser's developer console for details."); + this.createMessage({ + message: message, + 'type': 'error' + }); + }, + getNickOrJIDFromCommandArgs: function getNickOrJIDFromCommandArgs(args) { + var __ = shared_converse.__; + if (muc_u.isValidJID(args.trim())) { + return args.trim(); + } + if (!args.startsWith('@')) { + args = '@' + args; + } + var _this$parseTextForRef = this.parseTextForReferences(args), + _this$parseTextForRef2 = muc_slicedToArray(_this$parseTextForRef, 2), + _text = _this$parseTextForRef2[0], + references = _this$parseTextForRef2[1]; // eslint-disable-line no-unused-vars + if (!references.length) { + var message = __("Error: couldn't find a groupchat participant based on your arguments"); + this.createMessage({ + message: message, + 'type': 'error' + }); + return; + } + if (references.length > 1) { + var _message = __('Error: found multiple groupchat participant based on your arguments'); + this.createMessage({ + message: _message, + 'type': 'error' + }); + return; + } + var nick_or_jid = references.pop().value; + var reason = args.split(nick_or_jid, 2)[1]; + if (reason && !reason.startsWith(' ')) { + var _message2 = __("Error: couldn't find a groupchat participant based on your arguments"); + this.createMessage({ + message: _message2, + 'type': 'error' + }); + return; + } + return nick_or_jid; + }, + validateRoleOrAffiliationChangeArgs: function validateRoleOrAffiliationChangeArgs(command, args) { + var __ = shared_converse.__; + if (!args) { + var message = __('Error: the "%1$s" command takes two arguments, the user\'s nickname and optionally a reason.', command); + this.createMessage({ + message: message, + 'type': 'error' + }); + return false; + } + return true; + }, + getAllowedCommands: function getAllowedCommands() { + var allowed_commands = ['clear', 'help', 'me', 'nick', 'register']; + if (this.config.get('changesubject') || ['owner', 'admin'].includes(this.getOwnAffiliation())) { + allowed_commands = [].concat(muc_toConsumableArray(allowed_commands), ['subject', 'topic']); + } + var occupant = this.occupants.findWhere({ + 'jid': shared_converse.bare_jid + }); + if (this.verifyAffiliations(['owner'], occupant, false)) { + allowed_commands = allowed_commands.concat(OWNER_COMMANDS).concat(ADMIN_COMMANDS); + } else if (this.verifyAffiliations(['admin'], occupant, false)) { + allowed_commands = allowed_commands.concat(ADMIN_COMMANDS); + } + if (this.verifyRoles(['moderator'], occupant, false)) { + allowed_commands = allowed_commands.concat(MODERATOR_COMMANDS).concat(VISITOR_COMMANDS); + } else if (!this.verifyRoles(['visitor', 'participant', 'moderator'], occupant, false)) { + allowed_commands = allowed_commands.concat(VISITOR_COMMANDS); + } + allowed_commands.sort(); + if (Array.isArray(shared_api.settings.get('muc_disable_slash_commands'))) { + return allowed_commands.filter(function (c) { + return !shared_api.settings.get('muc_disable_slash_commands').includes(c); + }); + } else { + return allowed_commands; + } + }, + verifyAffiliations: function verifyAffiliations(affiliations, occupant) { + var show_error = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + var __ = shared_converse.__; + if (!Array.isArray(affiliations)) { + throw new TypeError('affiliations must be an Array'); + } + if (!affiliations.length) { + return true; + } + occupant = occupant || this.occupants.findWhere({ + 'jid': shared_converse.bare_jid + }); + if (occupant) { + var a = occupant.get('affiliation'); + if (affiliations.includes(a)) { + return true; } + } + if (show_error) { + var message = __('Forbidden: you do not have the necessary affiliation in order to do that.'); + this.createMessage({ + message: message, + 'type': 'error' + }); + } + return false; + }, + verifyRoles: function verifyRoles(roles, occupant) { + var show_error = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + var __ = shared_converse.__; + if (!Array.isArray(roles)) { + throw new TypeError('roles must be an Array'); + } + if (!roles.length) { + return true; + } + occupant = occupant || this.occupants.findWhere({ + 'jid': shared_converse.bare_jid }); + if (occupant) { + var role = occupant.get('role'); + if (roles.includes(role)) { + return true; + } + } + if (show_error) { + var message = __('Forbidden: you do not have the necessary role in order to do that.'); + this.createMessage({ + message: message, + 'type': 'error', + 'is_ephemeral': 20000 + }); + } + return false; }, - queryForItems: function queryForItems() { - var _this6 = this; - return entity_asyncToGenerator( /*#__PURE__*/entity_regeneratorRuntime().mark(function _callee5() { - var stanza; - return entity_regeneratorRuntime().wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { + /** + * Returns the `role` which the current user has in this MUC + * @private + * @method _converse.ChatRoom#getOwnRole + * @returns { ('none'|'visitor'|'participant'|'moderator') } + */ + getOwnRole: function getOwnRole() { + var _this$getOwnOccupant, _this$getOwnOccupant$; + return (_this$getOwnOccupant = this.getOwnOccupant()) === null || _this$getOwnOccupant === void 0 ? void 0 : (_this$getOwnOccupant$ = _this$getOwnOccupant.attributes) === null || _this$getOwnOccupant$ === void 0 ? void 0 : _this$getOwnOccupant$.role; + }, + /** + * Returns the `affiliation` which the current user has in this MUC + * @private + * @method _converse.ChatRoom#getOwnAffiliation + * @returns { ('none'|'outcast'|'member'|'admin'|'owner') } + */ + getOwnAffiliation: function getOwnAffiliation() { + var _this$getOwnOccupant2, _this$getOwnOccupant3; + return ((_this$getOwnOccupant2 = this.getOwnOccupant()) === null || _this$getOwnOccupant2 === void 0 ? void 0 : (_this$getOwnOccupant3 = _this$getOwnOccupant2.attributes) === null || _this$getOwnOccupant3 === void 0 ? void 0 : _this$getOwnOccupant3.affiliation) || 'none'; + }, + /** + * Get the {@link _converse.ChatRoomOccupant} instance which + * represents the current user. + * @method _converse.ChatRoom#getOwnOccupant + * @returns { _converse.ChatRoomOccupant } + */ + getOwnOccupant: function getOwnOccupant() { + return this.occupants.getOwnOccupant(); + }, + /** + * Send a presence stanza to update the user's nickname in this MUC. + * @param { String } nick + */ + setNickname: function setNickname(nick) { + var _this28 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee20() { + var old_nick, __, message, jid; + return muc_regeneratorRuntime().wrap(function _callee20$(_context20) { + while (1) switch (_context20.prev = _context20.next) { case 0: - if (!(_this6.identities.where({ - 'category': 'server' - }).length === 0)) { - _context5.next = 2; + _context20.t0 = shared_api.settings.get('auto_register_muc_nickname'); + if (!_context20.t0) { + _context20.next = 5; break; } - return _context5.abrupt("return"); - case 2: - _context5.next = 4; - return shared_api.disco.items(_this6.get('jid')); + _context20.next = 4; + return shared_api.disco.supports(external_strophe_namespaceObject.Strophe.NS.MUC_REGISTER, _this28.get('jid')); case 4: - stanza = _context5.sent; - _this6.onDiscoItems(stanza); - case 6: - case "end": - return _context5.stop(); - } - }, _callee5); - }))(); - }, - onInfo: function onInfo(stanza) { - var _this7 = this; - return entity_asyncToGenerator( /*#__PURE__*/entity_regeneratorRuntime().mark(function _callee6() { - return entity_regeneratorRuntime().wrap(function _callee6$(_context6) { - while (1) switch (_context6.prev = _context6.next) { - case 0: - Array.from(stanza.querySelectorAll('identity')).forEach(function (identity) { - _this7.identities.create({ - 'category': identity.getAttribute('category'), - 'type': identity.getAttribute('type'), - 'name': identity.getAttribute('name') - }); - }); - external_sizzle_default()("x[type=\"result\"][xmlns=\"".concat(entity_Strophe.NS.XFORM, "\"]"), stanza).forEach(function (form) { - var data = {}; - external_sizzle_default()('field', form).forEach(function (field) { - var _field$querySelector; - data[field.getAttribute('var')] = { - 'value': (_field$querySelector = field.querySelector('value')) === null || _field$querySelector === void 0 ? void 0 : _field$querySelector.textContent, - 'type': field.getAttribute('type') - }; - }); - _this7.dataforms.create(data); - }); - if (!stanza.querySelector("feature[var=\"".concat(entity_Strophe.NS.DISCO_ITEMS, "\"]"))) { - _context6.next = 5; + _context20.t0 = _context20.sent; + case 5: + if (!_context20.t0) { + _context20.next = 21; break; } - _context6.next = 5; - return _this7.queryForItems(); - case 5: - Array.from(stanza.querySelectorAll('feature')).forEach(function (feature) { - _this7.features.create({ - 'var': feature.getAttribute('var'), - 'from': stanza.getAttribute('from') - }); + old_nick = _this28.get('nick'); + _this28.set({ + nick: nick }); - - // XEP-0128 Service Discovery Extensions - external_sizzle_default()('x[type="result"][xmlns="jabber:x:data"] field', stanza).forEach(function (field) { - var _field$querySelector2; - _this7.fields.create({ - 'var': field.getAttribute('var'), - 'value': (_field$querySelector2 = field.querySelector('value')) === null || _field$querySelector2 === void 0 ? void 0 : _field$querySelector2.textContent, - 'from': stanza.getAttribute('from') - }); + _context20.prev = 8; + _context20.next = 11; + return _this28.registerNickname(); + case 11: + _context20.next = 21; + break; + case 13: + _context20.prev = 13; + _context20.t1 = _context20["catch"](8); + __ = shared_converse.__; + log.error(_context20.t1); + message = __("Error: couldn't register new nickname in members only room"); + _this28.createMessage({ + message: message, + 'type': 'error', + 'is_ephemeral': true }); - _this7.waitUntilFeaturesDiscovered.resolve(_this7); - _this7.trigger('featuresDiscovered'); - case 9: - case "end": - return _context6.stop(); - } - }, _callee6); - }))(); - } -}); -/* harmony default export */ const entity = (DiscoEntity); -;// CONCATENATED MODULE: ./src/headless/plugins/disco/entities.js - - - -var DiscoEntities = Collection.extend({ - model: entity, - fetchEntities: function fetchEntities() { - var _this = this; - return new Promise(function (resolve, reject) { - _this.fetch({ - add: true, - success: resolve, - error: function error(_m, e) { - log.error(e); - reject(new Error("Could not fetch disco entities")); - } - }); - }); - } -}); -/* harmony default export */ const entities = (DiscoEntities); -;// CONCATENATED MODULE: ./src/headless/plugins/disco/utils.js -function disco_utils_typeof(obj) { - "@babel/helpers - typeof"; - - return disco_utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, disco_utils_typeof(obj); -} -function disco_utils_regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - disco_utils_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; - } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); - }); - }); - } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == disco_utils_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - reject(record.arg); - } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); - } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done - }; - } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); - } - }; - } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); - } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); - } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal", delete record.arg, entry.completion = record; - } - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); - } - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) return iteratorMethod.call(iterable); - if ("function" == typeof iterable.next) return iterable; - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; - return next.value = undefined, next.done = !0, next; - }; - return next.next = next; - } - } - return { - next: doneResult - }; - } - function doneResult() { - return { - value: undefined, - done: !0 - }; - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { - var ctor = "function" == typeof genFun && genFun.constructor; - return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); - }, exports.mark = function (genFun) { - return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; - }, exports.awrap = function (arg) { - return { - __await: arg - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - void 0 === PromiseImpl && (PromiseImpl = Promise); - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { - return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; - } - return next.done = !0, next; - }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; - } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; - } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; + _this28.set({ + 'nick': old_nick + }); + return _context20.abrupt("return"); + case 21: + jid = external_strophe_namespaceObject.Strophe.getBareJidFromJid(_this28.get('jid')); + shared_api.send((0,external_strophe_namespaceObject.$pres)({ + 'from': shared_converse.connection.jid, + 'to': "".concat(jid, "/").concat(nick), + 'id': getUniqueId() + }).tree()); + case 23: + case "end": + return _context20.stop(); } - } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + }, _callee20, null, [[8, 13]]); + }))(); + }, + /** + * Send an IQ stanza to modify an occupant's role + * @private + * @method _converse.ChatRoom#setRole + * @param { _converse.ChatRoomOccupant } occupant + * @param { String } role + * @param { String } reason + * @param { function } onSuccess - callback for a succesful response + * @param { function } onError - callback for an error response + */ + setRole: function setRole(occupant, role, reason, onSuccess, onError) { + var item = (0,external_strophe_namespaceObject.$build)('item', { + 'nick': occupant.get('nick'), + role: role + }); + var iq = (0,external_strophe_namespaceObject.$iq)({ + 'to': this.get('jid'), + 'type': 'set' + }).c('query', { + xmlns: external_strophe_namespaceObject.Strophe.NS.MUC_ADMIN + }).cnode(item.node); + if (reason !== null) { + iq.c('reason', reason); } - }, exports; -} -function disco_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} -function disco_utils_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - disco_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - disco_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); + return shared_api.sendIQ(iq).then(onSuccess).catch(onError); + }, + /** + * @private + * @method _converse.ChatRoom#getOccupant + * @param { String } nickname_or_jid - The nickname or JID of the occupant to be returned + * @returns { _converse.ChatRoomOccupant } + */ + getOccupant: function getOccupant(nickname_or_jid) { + return muc_u.isValidJID(nickname_or_jid) ? this.getOccupantByJID(nickname_or_jid) : this.getOccupantByNickname(nickname_or_jid); + }, + /** + * Return an array of occupant models that have the required role + * @private + * @method _converse.ChatRoom#getOccupantsWithRole + * @param { String } role + * @returns { _converse.ChatRoomOccupant[] } + */ + getOccupantsWithRole: function getOccupantsWithRole(role) { + return this.getOccupantsSortedBy('nick').filter(function (o) { + return o.get('role') === role; + }).map(function (item) { + return { + 'jid': item.get('jid'), + 'nick': item.get('nick'), + 'role': item.get('role') + }; }); - }; -} - - -var disco_utils_converse$env = public_converse.env, - disco_utils_Strophe = disco_utils_converse$env.Strophe, - utils_$iq = disco_utils_converse$env.$iq; -function onDiscoInfoRequest(stanza) { - var node = stanza.getElementsByTagName('query')[0].getAttribute('node'); - var attrs = { - xmlns: disco_utils_Strophe.NS.DISCO_INFO - }; - if (node) { - attrs.node = node; - } - var iqresult = utils_$iq({ - 'type': 'result', - 'id': stanza.getAttribute('id') - }); - var from = stanza.getAttribute('from'); - if (from !== null) { - iqresult.attrs({ - 'to': from + }, + /** + * Return an array of occupant models that have the required affiliation + * @private + * @method _converse.ChatRoom#getOccupantsWithAffiliation + * @param { String } affiliation + * @returns { _converse.ChatRoomOccupant[] } + */ + getOccupantsWithAffiliation: function getOccupantsWithAffiliation(affiliation) { + return this.getOccupantsSortedBy('nick').filter(function (o) { + return o.get('affiliation') === affiliation; + }).map(function (item) { + return { + 'jid': item.get('jid'), + 'nick': item.get('nick'), + 'affiliation': item.get('affiliation') + }; }); - } - iqresult.c('query', attrs); - shared_converse.disco._identities.forEach(function (identity) { - var attrs = { - 'category': identity.category, - 'type': identity.type - }; - if (identity.name) { - attrs.name = identity.name; - } - if (identity.lang) { - attrs['xml:lang'] = identity.lang; - } - iqresult.c('identity', attrs).up(); - }); - shared_converse.disco._features.forEach(function (f) { - return iqresult.c('feature', { - 'var': f - }).up(); - }); - shared_api.send(iqresult.tree()); - return true; -} -function addClientFeatures() { - // See https://xmpp.org/registrar/disco-categories.html - shared_api.disco.own.identities.add('client', 'web', 'Converse'); - shared_api.disco.own.features.add(disco_utils_Strophe.NS.CHATSTATES); - shared_api.disco.own.features.add(disco_utils_Strophe.NS.DISCO_INFO); - shared_api.disco.own.features.add(disco_utils_Strophe.NS.ROSTERX); // Limited support - shared_api.disco.own.features.add(disco_utils_Strophe.NS.CARBONS); + }, /** - * Triggered in converse-disco once the core disco features of - * Converse have been added. - * @event _converse#addClientFeatures - * @example _converse.api.listen.on('addClientFeatures', () => { ... }); + * Return an array of occupant models, sorted according to the passed-in attribute. + * @private + * @method _converse.ChatRoom#getOccupantsSortedBy + * @param { String } attr - The attribute to sort the returned array by + * @returns { _converse.ChatRoomOccupant[] } */ - shared_api.trigger('addClientFeatures'); - return this; -} -function initializeDisco() { - return _initializeDisco.apply(this, arguments); -} -function _initializeDisco() { - _initializeDisco = disco_utils_asyncToGenerator( /*#__PURE__*/disco_utils_regeneratorRuntime().mark(function _callee() { - var id, collection; - return disco_utils_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - addClientFeatures(); - shared_converse.connection.addHandler(function (stanza) { - return onDiscoInfoRequest(stanza); - }, disco_utils_Strophe.NS.DISCO_INFO, 'iq', 'get', null, null); - shared_converse.disco_entities = new shared_converse.DiscoEntities(); - id = "converse.disco-entities-".concat(shared_converse.bare_jid); - shared_converse.disco_entities.browserStorage = shared_converse.createStore(id, 'session'); - _context.next = 7; - return shared_converse.disco_entities.fetchEntities(); - case 7: - collection = _context.sent; - if (collection.length === 0 || !collection.get(shared_converse.domain)) { - // If we don't have an entity for our own XMPP server, create one. - shared_api.disco.entities.create({ - 'jid': shared_converse.domain + getOccupantsSortedBy: function getOccupantsSortedBy(attr) { + return Array.from(this.occupants.models).sort(function (a, b) { + return a.get(attr) < b.get(attr) ? -1 : a.get(attr) > b.get(attr) ? 1 : 0; + }); + }, + /** + * Fetch the lists of users with the given affiliations. + * Then compute the delta between those users and + * the passed in members, and if it exists, send the delta + * to the XMPP server to update the member list. + * @private + * @method _converse.ChatRoom#updateMemberLists + * @param { object } members - Map of member jids and affiliations. + * @returns { Promise } + * A promise which is resolved once the list has been + * updated or once it's been established there's no need + * to update the list. + */ + updateMemberLists: function updateMemberLists(members) { + var _this29 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee21() { + var muc_jid, all_affiliations, aff_lists, old_members; + return muc_regeneratorRuntime().wrap(function _callee21$(_context21) { + while (1) switch (_context21.prev = _context21.next) { + case 0: + muc_jid = _this29.get('jid'); + all_affiliations = ['member', 'admin', 'owner']; + _context21.next = 4; + return Promise.all(all_affiliations.map(function (a) { + return getAffiliationList(a, muc_jid); + })); + case 4: + aff_lists = _context21.sent; + old_members = aff_lists.reduce(function (acc, val) { + return muc_u.isErrorObject(val) ? acc : [].concat(muc_toConsumableArray(val), muc_toConsumableArray(acc)); + }, []); + _context21.next = 8; + return setAffiliations(muc_jid, computeAffiliationsDelta(true, false, members, old_members)); + case 8: + _context21.next = 10; + return _this29.occupants.fetchMembers(); + case 10: + case "end": + return _context21.stop(); + } + }, _callee21); + }))(); + }, + /** + * Given a nick name, save it to the model state, otherwise, look + * for a server-side reserved nickname or default configured + * nickname and if found, persist that to the model state. + * @private + * @method _converse.ChatRoom#getAndPersistNickname + * @returns { Promise } A promise which resolves with the nickname + */ + getAndPersistNickname: function getAndPersistNickname(nick) { + var _this30 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee22() { + return muc_regeneratorRuntime().wrap(function _callee22$(_context22) { + while (1) switch (_context22.prev = _context22.next) { + case 0: + _context22.t1 = nick || _this30.get('nick'); + if (_context22.t1) { + _context22.next = 5; + break; + } + _context22.next = 4; + return _this30.getReservedNick(); + case 4: + _context22.t1 = _context22.sent; + case 5: + _context22.t0 = _context22.t1; + if (_context22.t0) { + _context22.next = 8; + break; + } + _context22.t0 = shared_converse.getDefaultMUCNickname(); + case 8: + nick = _context22.t0; + if (nick) safeSave(_this30, { + nick: nick }, { - 'ignore_cache': true + 'silent': true }); - } - /** - * Triggered once the `converse-disco` plugin has been initialized and the - * `_converse.disco_entities` collection will be available and populated with at - * least the service discovery features of the user's own server. - * @event _converse#discoInitialized - * @example _converse.api.listen.on('discoInitialized', () => { ... }); - */ - shared_api.trigger('discoInitialized'); - case 10: - case "end": - return _context.stop(); - } - }, _callee); - })); - return _initializeDisco.apply(this, arguments); -} -function initStreamFeatures() { - // Initialize the stream_features collection, and if we're - // re-attaching to a pre-existing BOSH session, we restore the - // features from cache. - // Otherwise the features will be created once we've received them - // from the server (see populateStreamFeatures). - if (!shared_converse.stream_features) { - var bare_jid = disco_utils_Strophe.getBareJidFromJid(shared_converse.jid); - var id = "converse.stream-features-".concat(bare_jid); - shared_api.promises.add('streamFeaturesAdded'); - shared_converse.stream_features = new Collection(); - shared_converse.stream_features.browserStorage = shared_converse.createStore(id, "session"); - } -} -function notifyStreamFeaturesAdded() { + return _context22.abrupt("return", nick); + case 11: + case "end": + return _context22.stop(); + } + }, _callee22); + }))(); + }, /** - * Triggered as soon as the stream features are known. - * If you want to check whether a stream feature is supported before proceeding, - * then you'll first want to wait for this event. - * @event _converse#streamFeaturesAdded - * @example _converse.api.listen.on('streamFeaturesAdded', () => { ... }); + * Use service-discovery to ask the XMPP server whether + * this user has a reserved nickname for this groupchat. + * If so, we'll use that, otherwise we render the nickname form. + * @private + * @method _converse.ChatRoom#getReservedNick + * @returns { Promise } A promise which resolves with the reserved nick or null */ - shared_api.trigger('streamFeaturesAdded'); -} -function populateStreamFeatures() { - // Strophe.js sets the element on the - // Strophe.Connection instance (_converse.connection). - // - // Once this is we populate the _converse.stream_features collection - // and trigger streamFeaturesAdded. - initStreamFeatures(); - Array.from(shared_converse.connection.features.childNodes).forEach(function (feature) { - shared_converse.stream_features.create({ - 'name': feature.nodeName, - 'xmlns': feature.getAttribute('xmlns') + getReservedNick: function getReservedNick() { + var _this31 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee23() { + var stanza, result, identity_el; + return muc_regeneratorRuntime().wrap(function _callee23$(_context23) { + while (1) switch (_context23.prev = _context23.next) { + case 0: + stanza = (0,external_strophe_namespaceObject.$iq)({ + 'to': _this31.get('jid'), + 'from': shared_converse.connection.jid, + 'type': 'get' + }).c('query', { + 'xmlns': external_strophe_namespaceObject.Strophe.NS.DISCO_INFO, + 'node': 'x-roomuser-item' + }); + _context23.next = 3; + return shared_api.sendIQ(stanza, null, false); + case 3: + result = _context23.sent; + if (!muc_u.isErrorObject(result)) { + _context23.next = 6; + break; + } + throw result; + case 6: + // Result might be undefined due to a timeout + identity_el = result === null || result === void 0 ? void 0 : result.querySelector('query[node="x-roomuser-item"] identity'); + return _context23.abrupt("return", identity_el ? identity_el.getAttribute('name') : null); + case 8: + case "end": + return _context23.stop(); + } + }, _callee23); + }))(); + }, + /** + * Send an IQ stanza to the MUC to register this user's nickname. + * This sets the user's affiliation to 'member' (if they weren't affiliated + * before) and reserves the nickname for this user, thereby preventing other + * users from using it in this MUC. + * See https://xmpp.org/extensions/xep-0045.html#register + * @private + * @method _converse.ChatRoom#registerNickname + */ + registerNickname: function registerNickname() { + var _this32 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee24() { + var __, nick, jid, iq, err_msg, required_fields; + return muc_regeneratorRuntime().wrap(function _callee24$(_context24) { + while (1) switch (_context24.prev = _context24.next) { + case 0: + __ = shared_converse.__; + nick = _this32.get('nick'); + jid = _this32.get('jid'); + _context24.prev = 3; + _context24.next = 6; + return shared_api.sendIQ((0,external_strophe_namespaceObject.$iq)({ + 'to': jid, + 'type': 'get' + }).c('query', { + 'xmlns': external_strophe_namespaceObject.Strophe.NS.MUC_REGISTER + })); + case 6: + iq = _context24.sent; + _context24.next = 14; + break; + case 9: + _context24.prev = 9; + _context24.t0 = _context24["catch"](3); + if (external_sizzle_default()("not-allowed[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.STANZAS, "\"]"), _context24.t0).length) { + err_msg = __("You're not allowed to register yourself in this groupchat."); + } else if (external_sizzle_default()("registration-required[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.STANZAS, "\"]"), _context24.t0).length) { + err_msg = __("You're not allowed to register in this groupchat because it's members-only."); + } + log.error(_context24.t0); + return _context24.abrupt("return", err_msg); + case 14: + required_fields = external_sizzle_default()('field required', iq).map(function (f) { + return f.parentElement; + }); + if (!(required_fields.length > 1 && required_fields[0].getAttribute('var') !== 'muc#register_roomnick')) { + _context24.next = 17; + break; + } + return _context24.abrupt("return", log.error("Can't register the user register in the groupchat ".concat(jid, " due to the required fields"))); + case 17: + _context24.prev = 17; + _context24.next = 20; + return shared_api.sendIQ((0,external_strophe_namespaceObject.$iq)({ + 'to': jid, + 'type': 'set' + }).c('query', { + 'xmlns': external_strophe_namespaceObject.Strophe.NS.MUC_REGISTER + }).c('x', { + 'xmlns': external_strophe_namespaceObject.Strophe.NS.XFORM, + 'type': 'submit' + }).c('field', { + 'var': 'FORM_TYPE' + }).c('value').t('http://jabber.org/protocol/muc#register').up().up().c('field', { + 'var': 'muc#register_roomnick' + }).c('value').t(nick)); + case 20: + _context24.next = 28; + break; + case 22: + _context24.prev = 22; + _context24.t1 = _context24["catch"](17); + if (external_sizzle_default()("service-unavailable[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.STANZAS, "\"]"), _context24.t1).length) { + err_msg = __("Can't register your nickname in this groupchat, it doesn't support registration."); + } else if (external_sizzle_default()("bad-request[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.STANZAS, "\"]"), _context24.t1).length) { + err_msg = __("Can't register your nickname in this groupchat, invalid data form supplied."); + } + log.error(err_msg); + log.error(_context24.t1); + return _context24.abrupt("return", err_msg); + case 28: + case "end": + return _context24.stop(); + } + }, _callee24, null, [[3, 9], [17, 22]]); + }))(); + }, + /** + * Check whether we should unregister the user from this MUC, and if so, + * call { @link _converse.ChatRoom#sendUnregistrationIQ } + * @method _converse.ChatRoom#unregisterNickname + */ + unregisterNickname: function unregisterNickname() { + var _this33 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee25() { + return muc_regeneratorRuntime().wrap(function _callee25$(_context25) { + while (1) switch (_context25.prev = _context25.next) { + case 0: + if (!(shared_api.settings.get('auto_register_muc_nickname') === 'unregister')) { + _context25.next = 12; + break; + } + _context25.prev = 1; + _context25.next = 4; + return shared_api.disco.supports(external_strophe_namespaceObject.Strophe.NS.MUC_REGISTER, _this33.get('jid')); + case 4: + if (!_context25.sent) { + _context25.next = 7; + break; + } + _context25.next = 7; + return _this33.sendUnregistrationIQ(); + case 7: + _context25.next = 12; + break; + case 9: + _context25.prev = 9; + _context25.t0 = _context25["catch"](1); + log.error(_context25.t0); + case 12: + case "end": + return _context25.stop(); + } + }, _callee25, null, [[1, 9]]); + }))(); + }, + /** + * Send an IQ stanza to the MUC to unregister this user's nickname. + * If the user had a 'member' affiliation, it'll be removed and their + * nickname will no longer be reserved and can instead be used (and + * registered) by other users. + * @method _converse.ChatRoom#sendUnregistrationIQ + */ + sendUnregistrationIQ: function sendUnregistrationIQ() { + var iq = (0,external_strophe_namespaceObject.$iq)({ + 'to': this.get('jid'), + 'type': 'set' + }).c('query', { + 'xmlns': external_strophe_namespaceObject.Strophe.NS.MUC_REGISTER + }).c('remove'); + return shared_api.sendIQ(iq).catch(function (e) { + return log.error(e); }); - }); - notifyStreamFeaturesAdded(); -} -function utils_clearSession() { - var _converse$disco_entit, _converse$disco_entit2, _converse$disco_entit3, _converse$disco_entit4, _converse$disco_entit5; - (_converse$disco_entit = shared_converse.disco_entities) === null || _converse$disco_entit === void 0 ? void 0 : _converse$disco_entit.forEach(function (e) { - return e.features.clearStore(); - }); - (_converse$disco_entit2 = shared_converse.disco_entities) === null || _converse$disco_entit2 === void 0 ? void 0 : _converse$disco_entit2.forEach(function (e) { - return e.identities.clearStore(); - }); - (_converse$disco_entit3 = shared_converse.disco_entities) === null || _converse$disco_entit3 === void 0 ? void 0 : _converse$disco_entit3.forEach(function (e) { - return e.dataforms.clearStore(); - }); - (_converse$disco_entit4 = shared_converse.disco_entities) === null || _converse$disco_entit4 === void 0 ? void 0 : _converse$disco_entit4.forEach(function (e) { - return e.fields.clearStore(); - }); - (_converse$disco_entit5 = shared_converse.disco_entities) === null || _converse$disco_entit5 === void 0 ? void 0 : _converse$disco_entit5.clearStore(); - delete shared_converse.disco_entities; -} -;// CONCATENATED MODULE: ./src/headless/plugins/disco/api.js -function disco_api_typeof(obj) { - "@babel/helpers - typeof"; - - return disco_api_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, disco_api_typeof(obj); -} -function api_toConsumableArray(arr) { - return api_arrayWithoutHoles(arr) || api_iterableToArray(arr) || api_unsupportedIterableToArray(arr) || api_nonIterableSpread(); -} -function api_nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} -function api_unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return api_arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return api_arrayLikeToArray(o, minLen); -} -function api_iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); -} -function api_arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return api_arrayLikeToArray(arr); -} -function api_arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; -} -function disco_api_regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - disco_api_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; - } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; + }, + /** + * Given a presence stanza, update the occupant model based on its contents. + * @private + * @method _converse.ChatRoom#updateOccupantsOnPresence + * @param { Element } pres - The presence stanza + */ + updateOccupantsOnPresence: function updateOccupantsOnPresence(pres) { + var _occupant$attributes, _occupant$attributes2; + var data = parseMUCPresence(pres, this); + if (data.type === 'error' || !data.jid && !data.nick && !data.occupant_id) { + return true; } - } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); - }); - }); - } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == disco_api_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - reject(record.arg); + var occupant = this.occupants.findOccupant(data); + // Destroy an unavailable occupant if this isn't a nick change operation and if they're not affiliated + if (data.type === 'unavailable' && occupant && !data.states.includes(public_converse.MUC_NICK_CHANGED_CODE) && !['admin', 'owner', 'member'].includes(data['affiliation'])) { + // Before destroying we set the new data, so that we can show the disconnection message + occupant.set(data); + occupant.destroy(); + return; } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } + var jid = data.jid || ''; + var attributes = muc_objectSpread(muc_objectSpread({}, data), {}, { + 'jid': external_strophe_namespaceObject.Strophe.getBareJidFromJid(jid) || (occupant === null || occupant === void 0 ? void 0 : (_occupant$attributes = occupant.attributes) === null || _occupant$attributes === void 0 ? void 0 : _occupant$attributes.jid), + 'resource': external_strophe_namespaceObject.Strophe.getResourceFromJid(jid) || (occupant === null || occupant === void 0 ? void 0 : (_occupant$attributes2 = occupant.attributes) === null || _occupant$attributes2 === void 0 ? void 0 : _occupant$attributes2.resource) }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); - } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done - }; - } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + if (data.is_me) { + var modified = false; + if (data.states.includes(public_converse.MUC_NICK_CHANGED_CODE)) { + modified = true; + this.set('nick', data.nick); } - }; - } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); - } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); - } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal", delete record.arg, entry.completion = record; - } - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); - } - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) return iteratorMethod.call(iterable); - if ("function" == typeof iterable.next) return iterable; - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; - return next.value = undefined, next.done = !0, next; - }; - return next.next = next; + if (this.features.get(external_strophe_namespaceObject.Strophe.NS.OCCUPANTID) && this.get('occupant-id') !== data.occupant_id) { + modified = true; + this.set('occupant_id', data.occupant_id); } + modified && this.save(); } - return { - next: doneResult - }; - } - function doneResult() { - return { - value: undefined, - done: !0 - }; - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { - var ctor = "function" == typeof genFun && genFun.constructor; - return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); - }, exports.mark = function (genFun) { - return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; - }, exports.awrap = function (arg) { - return { - __await: arg - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - void 0 === PromiseImpl && (PromiseImpl = Promise); - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { - return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; - } - return next.done = !0, next; - }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + if (occupant) { + occupant.save(attributes); + } else { + this.occupants.create(attributes); + } + }, + fetchFeaturesIfConfigurationChanged: function fetchFeaturesIfConfigurationChanged(stanza) { + // 104: configuration change + // 170: logging enabled + // 171: logging disabled + // 172: room no longer anonymous + // 173: room now semi-anonymous + // 174: room now fully anonymous + var codes = ['104', '170', '171', '172', '173', '174']; + if (external_sizzle_default()('status', stanza).filter(function (e) { + return codes.includes(e.getAttribute('status')); + }).length) { + this.refreshDiscoInfo(); + } + }, + /** + * Given two JIDs, which can be either user JIDs or MUC occupant JIDs, + * determine whether they belong to the same user. + * @private + * @method _converse.ChatRoom#isSameUser + * @param { String } jid1 + * @param { String } jid2 + * @returns { Boolean } + */ + isSameUser: function isSameUser(jid1, jid2) { + var bare_jid1 = external_strophe_namespaceObject.Strophe.getBareJidFromJid(jid1); + var bare_jid2 = external_strophe_namespaceObject.Strophe.getBareJidFromJid(jid2); + var resource1 = external_strophe_namespaceObject.Strophe.getResourceFromJid(jid1); + var resource2 = external_strophe_namespaceObject.Strophe.getResourceFromJid(jid2); + if (muc_u.isSameBareJID(jid1, jid2)) { + if (bare_jid1 === this.get('jid')) { + // MUC JIDs + return resource1 === resource2; + } else { + return true; } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } + } else { + var occupant1 = bare_jid1 === this.get('jid') ? this.occupants.findOccupant({ + 'nick': resource1 + }) : this.occupants.findOccupant({ + 'jid': bare_jid1 + }); + var occupant2 = bare_jid2 === this.get('jid') ? this.occupants.findOccupant({ + 'nick': resource2 + }) : this.occupants.findOccupant({ + 'jid': bare_jid2 + }); + return occupant1 === occupant2; + } + }, + isSubjectHidden: function isSubjectHidden() { + var _this34 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee26() { + var jids; + return muc_regeneratorRuntime().wrap(function _callee26$(_context26) { + while (1) switch (_context26.prev = _context26.next) { + case 0: + _context26.next = 2; + return shared_api.user.settings.get('mucs_with_hidden_subject', []); + case 2: + jids = _context26.sent; + return _context26.abrupt("return", jids.includes(_this34.get('jid'))); + case 4: + case "end": + return _context26.stop(); } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; + }, _callee26); + }))(); + }, + toggleSubjectHiddenState: function toggleSubjectHiddenState() { + var _this35 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee27() { + var muc_jid, jids; + return muc_regeneratorRuntime().wrap(function _callee27$(_context27) { + while (1) switch (_context27.prev = _context27.next) { + case 0: + muc_jid = _this35.get('jid'); + _context27.next = 3; + return shared_api.user.settings.get('mucs_with_hidden_subject', []); + case 3: + jids = _context27.sent; + if (jids.includes(_this35.get('jid'))) { + shared_api.user.settings.set('mucs_with_hidden_subject', jids.filter(function (jid) { + return jid !== muc_jid; + })); + } else { + shared_api.user.settings.set('mucs_with_hidden_subject', [].concat(muc_toConsumableArray(jids), [muc_jid])); + } + case 5: + case "end": + return _context27.stop(); } - } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; - } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; + }, _callee27); + }))(); + }, + /** + * Handle a possible subject change and return `true` if so. + * @private + * @method _converse.ChatRoom#handleSubjectChange + * @param { object } attrs - Attributes representing a received + * message, as returned by {@link parseMUCMessage} + */ + handleSubjectChange: function handleSubjectChange(attrs) { + var _this36 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee28() { + var __, subject, author, message, prev_msg; + return muc_regeneratorRuntime().wrap(function _callee28$(_context28) { + while (1) switch (_context28.prev = _context28.next) { + case 0: + __ = shared_converse.__; + if (!(typeof attrs.subject === 'string' && !attrs.thread && !attrs.message)) { + _context28.next = 14; + break; + } + // https://xmpp.org/extensions/xep-0045.html#subject-mod + // ----------------------------------------------------- + // The subject is changed by sending a message of type "groupchat" to the , + // where the MUST contain a element that specifies the new subject but + // MUST NOT contain a element (or a element). + subject = attrs.subject; + author = attrs.nick; + safeSave(_this36, { + 'subject': { + author: author, + 'text': attrs.subject || '' + } + }); + if (!(!attrs.is_delayed && author)) { + _context28.next = 13; + break; + } + message = subject ? __('Topic set by %1$s', author) : __('Topic cleared by %1$s', author); + prev_msg = _this36.messages.last(); + if ((prev_msg === null || prev_msg === void 0 ? void 0 : prev_msg.get('nick')) !== attrs.nick || (prev_msg === null || prev_msg === void 0 ? void 0 : prev_msg.get('type')) !== 'info' || (prev_msg === null || prev_msg === void 0 ? void 0 : prev_msg.get('message')) !== message) { + _this36.createMessage({ + message: message, + 'nick': attrs.nick, + 'type': 'info', + 'is_ephemeral': true + }); + } + _context28.next = 11; + return _this36.isSubjectHidden(); + case 11: + if (!_context28.sent) { + _context28.next = 13; + break; + } + _this36.toggleSubjectHiddenState(); + case 13: + return _context28.abrupt("return", true); + case 14: + return _context28.abrupt("return", false); + case 15: + case "end": + return _context28.stop(); } - } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + }, _callee28); + }))(); + }, + /** + * Set the subject for this {@link _converse.ChatRoom} + * @private + * @method _converse.ChatRoom#setSubject + * @param { String } value + */ + setSubject: function setSubject() { + var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; + shared_api.send((0,external_strophe_namespaceObject.$msg)({ + to: this.get('jid'), + from: shared_converse.connection.jid, + type: 'groupchat' + }).c('subject', { + xmlns: 'jabber:client' + }).t(value).tree()); + }, + /** + * Is this a chat state notification that can be ignored, + * because it's old or because it's from us. + * @private + * @method _converse.ChatRoom#ignorableCSN + * @param { Object } attrs - The message attributes + */ + ignorableCSN: function ignorableCSN(attrs) { + return attrs.chat_state && !attrs.body && (attrs.is_delayed || this.isOwnMessage(attrs)); + }, + /** + * Determines whether the message is from ourselves by checking + * the `from` attribute. Doesn't check the `type` attribute. + * @private + * @method _converse.ChatRoom#isOwnMessage + * @param { Object|Element|_converse.Message } msg + * @returns { boolean } + */ + isOwnMessage: function isOwnMessage(msg) { + var from; + if (lodash_es_isElement(msg)) { + from = msg.getAttribute('from'); + } else if (msg instanceof shared_converse.Message) { + from = msg.get('from'); + } else { + from = msg.from; } - }, exports; -} -function disco_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} -function disco_api_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - disco_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - disco_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + return external_strophe_namespaceObject.Strophe.getResourceFromJid(from) == this.get('nick'); + }, + getUpdatedMessageAttributes: function getUpdatedMessageAttributes(message, attrs) { + var new_attrs = muc_objectSpread(muc_objectSpread({}, shared_converse.ChatBox.prototype.getUpdatedMessageAttributes.call(this, message, attrs)), lodash_es_pick(attrs, ['from_muc', 'occupant_id'])); + if (this.isOwnMessage(attrs)) { + var stanza_id_keys = Object.keys(attrs).filter(function (k) { + return k.startsWith('stanza_id'); + }); + Object.assign(new_attrs, lodash_es_pick(attrs, stanza_id_keys)); + if (!message.get('received')) { + new_attrs.received = new Date().toISOString(); } - _next(undefined); - }); - }; -} - - - - -var api_converse$env = public_converse.env, - api_Strophe = api_converse$env.Strophe, - api_$iq = api_converse$env.$iq; -/* harmony default export */ const disco_api = ({ + } + return new_attrs; + }, /** - * The XEP-0030 service discovery API - * - * This API lets you discover information about entities on the - * XMPP network. - * - * @namespace api.disco - * @memberOf api + * Send a MUC-0410 MUC Self-Ping stanza to room to determine + * whether we're still joined. + * @async + * @private + * @method _converse.ChatRoom#isJoined + * @returns {Promise} */ - disco: { - /** - * @namespace api.disco.stream - * @memberOf api.disco - */ - stream: { - /** - * @method api.disco.stream.getFeature - * @param { String } name The feature name - * @param { String } xmlns The XML namespace - * @example _converse.api.disco.stream.getFeature('ver', 'urn:xmpp:features:rosterver') - */ - getFeature: function getFeature(name, xmlns) { - return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee() { - var msg; - return disco_api_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return shared_api.waitUntil('streamFeaturesAdded'); - case 2: - if (!(!name || !xmlns)) { - _context.next = 4; - break; - } - throw new Error("name and xmlns need to be provided when calling disco.stream.getFeature"); - case 4: - if (!(shared_converse.stream_features === undefined && !shared_api.connection.connected())) { - _context.next = 8; - break; - } - // Happens during tests when disco lookups happen asynchronously after teardown. - msg = "Tried to get feature ".concat(name, " ").concat(xmlns, " but _converse.stream_features has been torn down"); - log.warn(msg); - return _context.abrupt("return"); - case 8: - return _context.abrupt("return", shared_converse.stream_features.findWhere({ - 'name': name, - 'xmlns': xmlns - })); - case 9: - case "end": - return _context.stop(); + isJoined: function isJoined() { + var _this37 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee29() { + return muc_regeneratorRuntime().wrap(function _callee29$(_context29) { + while (1) switch (_context29.prev = _context29.next) { + case 0: + if (_this37.isEntered()) { + _context29.next = 3; + break; } - }, _callee); - }))(); - } - }, - /** - * @namespace api.disco.own - * @memberOf api.disco - */ - own: { - /** - * @namespace api.disco.own.identities - * @memberOf api.disco.own - */ - identities: { - /** - * Lets you add new identities for this client (i.e. instance of Converse) - * @method api.disco.own.identities.add - * - * @param { String } category - server, client, gateway, directory, etc. - * @param { String } type - phone, pc, web, etc. - * @param { String } name - "Converse" - * @param { String } lang - en, el, de, etc. - * - * @example _converse.api.disco.own.identities.clear(); - */ - add: function add(category, type, name, lang) { - for (var i = 0; i < shared_converse.disco._identities.length; i++) { - if (shared_converse.disco._identities[i].category == category && shared_converse.disco._identities[i].type == type && shared_converse.disco._identities[i].name == name && shared_converse.disco._identities[i].lang == lang) { - return false; + log.info("isJoined: not pinging MUC ".concat(_this37.get('jid'), " since we're not entered")); + return _context29.abrupt("return", false); + case 3: + if (shared_api.connection.connected()) { + _context29.next = 6; + break; } - } - shared_converse.disco._identities.push({ - category: category, - type: type, - name: name, - lang: lang - }); - }, - /** - * Clears all previously registered identities. - * @method api.disco.own.identities.clear - * @example _converse.api.disco.own.identities.clear(); - */ - clear: function clear() { - shared_converse.disco._identities = []; - }, - /** - * Returns all of the identities registered for this client - * (i.e. instance of Converse). - * @method api.disco.identities.get - * @example const identities = api.disco.own.identities.get(); - */ - get: function get() { - return shared_converse.disco._identities; + _context29.next = 6; + return new Promise(function (resolve) { + return shared_api.listen.once('reconnected', resolve); + }); + case 6: + return _context29.abrupt("return", shared_api.ping("".concat(_this37.get('jid'), "/").concat(_this37.get('nick')))); + case 7: + case "end": + return _context29.stop(); } - }, - /** - * @namespace api.disco.own.features - * @memberOf api.disco.own - */ - features: { - /** - * Lets you register new disco features for this client (i.e. instance of Converse) - * @method api.disco.own.features.add - * @param { String } name - e.g. http://jabber.org/protocol/caps - * @example _converse.api.disco.own.features.add("http://jabber.org/protocol/caps"); - */ - add: function add(name) { - for (var i = 0; i < shared_converse.disco._features.length; i++) { - if (shared_converse.disco._features[i] == name) { - return false; + }, _callee29); + }))(); + }, + /** + * Sends a status update presence (i.e. based on the `` element) + * @method _converse.ChatRoom#sendStatusPresence + * @param { String } type + * @param { String } [status] - An optional status message + * @param { Element[]|Strophe.Builder[]|Element|Strophe.Builder } [child_nodes] + * Nodes(s) to be added as child nodes of the `presence` XML element. + */ + sendStatusPresence: function sendStatusPresence(type, status, child_nodes) { + var _this38 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee30() { + var presence; + return muc_regeneratorRuntime().wrap(function _callee30$(_context30) { + while (1) switch (_context30.prev = _context30.next) { + case 0: + if (!(_this38.session.get('connection_status') === ROOMSTATUS.ENTERED)) { + _context30.next = 6; + break; } - } - shared_converse.disco._features.push(name); - }, - /** - * Clears all previously registered features. - * @method api.disco.own.features.clear - * @example _converse.api.disco.own.features.clear(); - */ - clear: function clear() { - shared_converse.disco._features = []; - }, - /** - * Returns all of the features registered for this client (i.e. instance of Converse). - * @method api.disco.own.features.get - * @example const features = api.disco.own.features.get(); - */ - get: function get() { - return shared_converse.disco._features; + _context30.next = 3; + return shared_converse.xmppstatus.constructPresence(type, _this38.getRoomJIDAndNick(), status); + case 3: + presence = _context30.sent; + child_nodes === null || child_nodes === void 0 ? void 0 : child_nodes.map(function (c) { + var _c$tree; + return (_c$tree = c === null || c === void 0 ? void 0 : c.tree()) !== null && _c$tree !== void 0 ? _c$tree : c; + }).forEach(function (c) { + return presence.cnode(c).up(); + }); + shared_api.send(presence); + case 6: + case "end": + return _context30.stop(); } - } - }, - /** - * Query for information about an XMPP entity - * - * @method api.disco.info - * @param { string } jid The Jabber ID of the entity to query - * @param { string } [node] A specific node identifier associated with the JID - * @returns {promise} Promise which resolves once we have a result from the server. - */ - info: function info(jid, node) { - var attrs = { - xmlns: api_Strophe.NS.DISCO_INFO - }; - if (node) { - attrs.node = node; - } - var info = api_$iq({ - 'from': shared_converse.connection.jid, - 'to': jid, - 'type': 'get' - }).c('query', attrs); - return shared_api.sendIQ(info); - }, - /** - * Query for items associated with an XMPP entity - * - * @method api.disco.items - * @param { string } jid The Jabber ID of the entity to query for items - * @param { string } [node] A specific node identifier associated with the JID - * @returns {promise} Promise which resolves once we have a result from the server. - */ - items: function items(jid, node) { - var attrs = { - 'xmlns': api_Strophe.NS.DISCO_ITEMS - }; - if (node) { - attrs.node = node; - } - return shared_api.sendIQ(api_$iq({ - 'from': shared_converse.connection.jid, - 'to': jid, - 'type': 'get' - }).c('query', attrs)); - }, - /** - * Namespace for methods associated with disco entities - * - * @namespace api.disco.entities - * @memberOf api.disco - */ - entities: { - /** - * Get the corresponding `DiscoEntity` instance. - * - * @method api.disco.entities.get - * @param { string } jid The Jabber ID of the entity - * @param { boolean } [create] Whether the entity should be created if it doesn't exist. - * @example _converse.api.disco.entities.get(jid); - */ - get: function get(jid) { - var _arguments = arguments; - return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee2() { - var create, entity; - return disco_api_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - create = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : false; - _context2.next = 3; - return shared_api.waitUntil('discoInitialized'); - case 3: - if (jid) { - _context2.next = 5; - break; - } - return _context2.abrupt("return", shared_converse.disco_entities); - case 5: - if (!(shared_converse.disco_entities === undefined)) { - _context2.next = 8; - break; - } - // Happens during tests when disco lookups happen asynchronously after teardown. - log.warn("Tried to look up entity ".concat(jid, " but _converse.disco_entities has been torn down")); - return _context2.abrupt("return"); - case 8: - entity = shared_converse.disco_entities.get(jid); - if (!(entity || !create)) { - _context2.next = 11; - break; - } - return _context2.abrupt("return", entity); - case 11: - return _context2.abrupt("return", shared_api.disco.entities.create({ - jid: jid - })); - case 12: - case "end": - return _context2.stop(); - } - }, _callee2); - }))(); - }, - /** - * Return any disco items advertised on this entity - * - * @method api.disco.entities.items - * @param { string } jid The Jabber ID of the entity for which we want to fetch items - * @example api.disco.entities.items(jid); - */ - items: function items(jid) { - return shared_converse.disco_entities.filter(function (e) { - var _e$get; - return (_e$get = e.get('parent_jids')) === null || _e$get === void 0 ? void 0 : _e$get.includes(jid); - }); - }, - /** - * Create a new disco entity. It's identity and features - * will automatically be fetched from cache or from the - * XMPP server. - * - * Fetching from cache can be disabled by passing in - * `ignore_cache: true` in the options parameter. - * - * @method api.disco.entities.create - * @param { object } data - * @param { string } data.jid - The Jabber ID of the entity - * @param { string } data.parent_jid - The Jabber ID of the parent entity - * @param { string } data.name - * @param { object } [options] - Additional options - * @param { boolean } [options.ignore_cache] - * If true, fetch all features from the XMPP server instead of restoring them from cache - * @example _converse.api.disco.entities.create({ jid }, {'ignore_cache': true}); - */ - create: function create(data, options) { - return shared_converse.disco_entities.create(data, options); - } - }, - /** - * @namespace api.disco.features - * @memberOf api.disco - */ - features: { - /** - * Return a given feature of a disco entity - * - * @method api.disco.features.get - * @param { string } feature The feature that might be - * supported. In the XML stanza, this is the `var` - * attribute of the `` element. For - * example: `http://jabber.org/protocol/muc` - * @param { string } jid The JID of the entity - * (and its associated items) which should be queried - * @returns {promise} A promise which resolves with a list containing - * _converse.Entity instances representing the entity - * itself or those items associated with the entity if - * they support the given feature. - * @example - * api.disco.features.get(Strophe.NS.MAM, _converse.bare_jid); - */ - get: function get(feature, jid) { - return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee3() { - var entity, promises, result; - return disco_api_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - if (jid) { - _context3.next = 2; - break; - } - throw new TypeError('You need to provide an entity JID'); - case 2: - _context3.next = 4; - return shared_api.disco.entities.get(jid, true); - case 4: - entity = _context3.sent; - if (!(shared_converse.disco_entities === undefined && !shared_api.connection.connected())) { - _context3.next = 8; - break; - } - // Happens during tests when disco lookups happen asynchronously after teardown. - log.warn("Tried to get feature ".concat(feature, " for ").concat(jid, " but _converse.disco_entities has been torn down")); - return _context3.abrupt("return", []); - case 8: - promises = [entity.getFeature(feature)].concat(api_toConsumableArray(shared_api.disco.entities.items(jid).map(function (i) { - return i.getFeature(feature); - }))); - _context3.next = 11; - return Promise.all(promises); - case 11: - result = _context3.sent; - return _context3.abrupt("return", result.filter(lodash_es_isObject)); - case 13: - case "end": - return _context3.stop(); + }, _callee30); + }))(); + }, + /** + * Check whether we're still joined and re-join if not + * @method _converse.ChatRoom#rejoinIfNecessary + */ + rejoinIfNecessary: function rejoinIfNecessary() { + var _this39 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee31() { + return muc_regeneratorRuntime().wrap(function _callee31$(_context31) { + while (1) switch (_context31.prev = _context31.next) { + case 0: + if (!_this39.isRAICandidate()) { + _context31.next = 3; + break; } - }, _callee3); - }))(); - }, - /** - * Returns true if an entity with the given JID, or if one of its - * associated items, supports a given feature. - * - * @method api.disco.features.has - * @param { string } feature The feature that might be - * supported. In the XML stanza, this is the `var` - * attribute of the `` element. For - * example: `http://jabber.org/protocol/muc` - * @param { string } jid The JID of the entity - * (and its associated items) which should be queried - * @returns {Promise} A promise which resolves with a boolean - * @example - * api.disco.features.has(Strophe.NS.MAM, _converse.bare_jid); - */ - has: function has(feature, jid) { - return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee4() { - var entity, result; - return disco_api_regeneratorRuntime().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - if (jid) { - _context4.next = 2; - break; - } - throw new TypeError('You need to provide an entity JID'); - case 2: - _context4.next = 4; - return shared_api.disco.entities.get(jid, true); - case 4: - entity = _context4.sent; - if (!(shared_converse.disco_entities === undefined && !shared_api.connection.connected())) { - _context4.next = 8; - break; - } - // Happens during tests when disco lookups happen asynchronously after teardown. - log.warn("Tried to check if ".concat(jid, " supports feature ").concat(feature)); - return _context4.abrupt("return", false); - case 8: - _context4.next = 10; - return entity.getFeature(feature); - case 10: - if (!_context4.sent) { - _context4.next = 12; - break; - } - return _context4.abrupt("return", true); - case 12: - _context4.next = 14; - return Promise.all(shared_api.disco.entities.items(jid).map(function (i) { - return i.getFeature(feature); - })); - case 14: - result = _context4.sent; - return _context4.abrupt("return", result.map(lodash_es_isObject).includes(true)); - case 16: - case "end": - return _context4.stop(); + log.debug("rejoinIfNecessary: not rejoining hidden MUC \"".concat(_this39.get('jid'), "\" since we're using RAI")); + return _context31.abrupt("return", true); + case 3: + _context31.next = 5; + return _this39.isJoined(); + case 5: + if (_context31.sent) { + _context31.next = 8; + break; } - }, _callee4); - }))(); + _this39.rejoin(); + return _context31.abrupt("return", true); + case 8: + case "end": + return _context31.stop(); + } + }, _callee31); + }))(); + }, + /** + * @private + * @method _converse.ChatRoom#shouldShowErrorMessage + * @returns {Promise} + */ + shouldShowErrorMessage: function shouldShowErrorMessage(attrs) { + var _this40 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee32() { + return muc_regeneratorRuntime().wrap(function _callee32$(_context32) { + while (1) switch (_context32.prev = _context32.next) { + case 0: + if (!(attrs.error_type === 'Decryption')) { + _context32.next = 9; + break; + } + if (!(attrs.error_message === "Message key not found. The counter was repeated or the key was not filled.")) { + _context32.next = 5; + break; + } + return _context32.abrupt("return", false); + case 5: + if (!(attrs.error_condition === 'not-encrypted-for-this-device')) { + _context32.next = 7; + break; + } + return _context32.abrupt("return", false); + case 7: + _context32.next = 16; + break; + case 9: + _context32.t0 = attrs.error_condition === 'not-acceptable'; + if (!_context32.t0) { + _context32.next = 14; + break; + } + _context32.next = 13; + return _this40.rejoinIfNecessary(); + case 13: + _context32.t0 = _context32.sent; + case 14: + if (!_context32.t0) { + _context32.next = 16; + break; + } + return _context32.abrupt("return", false); + case 16: + return _context32.abrupt("return", shared_converse.ChatBox.prototype.shouldShowErrorMessage.call(_this40, attrs)); + case 17: + case "end": + return _context32.stop(); + } + }, _callee32); + }))(); + }, + /** + * Looks whether we already have a moderation message for this + * incoming message. If so, it's considered "dangling" because + * it probably hasn't been applied to anything yet, given that + * the relevant message is only coming in now. + * @private + * @method _converse.ChatRoom#findDanglingModeration + * @param { object } attrs - Attributes representing a received + * message, as returned by {@link parseMUCMessage} + * @returns { _converse.ChatRoomMessage } + */ + findDanglingModeration: function findDanglingModeration(attrs) { + if (!this.messages.length) { + return null; + } + // Only look for dangling moderation if there are newer + // messages than this one, since moderation come after. + if (this.messages.last().get('time') > attrs.time) { + // Search from latest backwards + var messages = Array.from(this.messages.models); + var stanza_id = attrs["stanza_id ".concat(this.get('jid'))]; + if (!stanza_id) { + return null; } - }, - /** - * Used to determine whether an entity supports a given feature. - * - * @method api.disco.supports - * @param { string } feature The feature that might be - * supported. In the XML stanza, this is the `var` - * attribute of the `` element. For - * example: `http://jabber.org/protocol/muc` - * @param { string } jid The JID of the entity - * (and its associated items) which should be queried - * @returns {promise} A promise which resolves with `true` or `false`. - * @example - * if (await api.disco.supports(Strophe.NS.MAM, _converse.bare_jid)) { - * // The feature is supported - * } else { - * // The feature is not supported - * } - */ - supports: function supports(feature, jid) { - return shared_api.disco.features.has(feature, jid); - }, - /** - * Refresh the features, fields and identities associated with a - * disco entity by refetching them from the server - * @method api.disco.refresh - * @param { string } jid The JID of the entity whose features are refreshed. - * @returns {promise} A promise which resolves once the features have been refreshed - * @example - * await api.disco.refresh('room@conference.example.org'); - */ - refresh: function refresh(jid) { - return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee5() { - var entity; - return disco_api_regeneratorRuntime().wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - if (jid) { - _context5.next = 2; - break; - } - throw new TypeError('api.disco.refresh: You need to provide an entity JID'); - case 2: - _context5.next = 4; - return shared_api.waitUntil('discoInitialized'); - case 4: - _context5.next = 6; - return shared_api.disco.entities.get(jid); - case 6: - entity = _context5.sent; - if (!entity) { - _context5.next = 15; - break; - } - entity.features.reset(); - entity.fields.reset(); - entity.identities.reset(); - if (!entity.waitUntilFeaturesDiscovered.isPending) { - entity.waitUntilFeaturesDiscovered = getOpenPromise(); - } - entity.queryInfo(); - _context5.next = 18; + messages.reverse(); + return messages.find(function (_ref2) { + var attributes = _ref2.attributes; + return attributes.moderated === 'retracted' && attributes.moderated_id === stanza_id && attributes.moderated_by; + }); + } + }, + /** + * Handles message moderation based on the passed in attributes. + * @private + * @method _converse.ChatRoom#handleModeration + * @param { object } attrs - Attributes representing a received + * message, as returned by {@link parseMUCMessage} + * @returns { Boolean } Returns `true` or `false` depending on + * whether a message was moderated or not. + */ + handleModeration: function handleModeration(attrs) { + var _this41 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee33() { + var MODERATION_ATTRIBUTES, query, key, message, _message3, moderation_attrs, new_attrs; + return muc_regeneratorRuntime().wrap(function _callee33$(_context33) { + while (1) switch (_context33.prev = _context33.next) { + case 0: + MODERATION_ATTRIBUTES = ['editable', 'moderated', 'moderated_by', 'moderated_id', 'moderation_reason']; + if (!(attrs.moderated === 'retracted')) { + _context33.next = 15; break; - case 15: - _context5.next = 17; - return shared_api.disco.entities.create({ - jid: jid - }, { - 'ignore_cache': true - }); - case 17: - entity = _context5.sent; - case 18: - return _context5.abrupt("return", entity.waitUntilFeaturesDiscovered); - case 19: - case "end": - return _context5.stop(); - } - }, _callee5); - }))(); - }, - /** - * @deprecated Use {@link api.disco.refresh} instead. - * @method api.disco.refreshFeatures - */ - refreshFeatures: function refreshFeatures(jid) { - return shared_api.refresh(jid); - }, - /** - * Return all the features associated with a disco entity - * - * @method api.disco.getFeatures - * @param { string } jid The JID of the entity whose features are returned. - * @returns {promise} A promise which resolves with the returned features - * @example - * const features = await api.disco.getFeatures('room@conference.example.org'); - */ - getFeatures: function getFeatures(jid) { - return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee6() { - var entity; - return disco_api_regeneratorRuntime().wrap(function _callee6$(_context6) { - while (1) switch (_context6.prev = _context6.next) { - case 0: - if (jid) { - _context6.next = 2; - break; - } - throw new TypeError('api.disco.getFeatures: You need to provide an entity JID'); - case 2: - _context6.next = 4; - return shared_api.waitUntil('discoInitialized'); - case 4: - _context6.next = 6; - return shared_api.disco.entities.get(jid, true); - case 6: - entity = _context6.sent; - _context6.next = 9; - return entity.waitUntilFeaturesDiscovered; - case 9: - entity = _context6.sent; - return _context6.abrupt("return", entity.features); - case 11: - case "end": - return _context6.stop(); - } - }, _callee6); - }))(); - }, - /** - * Return all the service discovery extensions fields - * associated with an entity. - * - * See [XEP-0129: Service Discovery Extensions](https://xmpp.org/extensions/xep-0128.html) - * - * @method api.disco.getFields - * @param { string } jid The JID of the entity whose fields are returned. - * @example - * const fields = await api.disco.getFields('room@conference.example.org'); - */ - getFields: function getFields(jid) { - return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee7() { - var entity; - return disco_api_regeneratorRuntime().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { - case 0: - if (jid) { - _context7.next = 2; - break; - } - throw new TypeError('api.disco.getFields: You need to provide an entity JID'); - case 2: - _context7.next = 4; - return shared_api.waitUntil('discoInitialized'); - case 4: - _context7.next = 6; - return shared_api.disco.entities.get(jid, true); - case 6: - entity = _context7.sent; - _context7.next = 9; - return entity.waitUntilFeaturesDiscovered; - case 9: - entity = _context7.sent; - return _context7.abrupt("return", entity.fields); - case 11: - case "end": - return _context7.stop(); - } - }, _callee7); - }))(); - }, - /** - * Get the identity (with the given category and type) for a given disco entity. - * - * For example, when determining support for PEP (personal eventing protocol), you - * want to know whether the user's own JID has an identity with - * `category='pubsub'` and `type='pep'` as explained in this section of - * XEP-0163: https://xmpp.org/extensions/xep-0163.html#support - * - * @method api.disco.getIdentity - * @param { string } The identity category. - * In the XML stanza, this is the `category` - * attribute of the `` element. - * For example: 'pubsub' - * @param { string } type The identity type. - * In the XML stanza, this is the `type` - * attribute of the `` element. - * For example: 'pep' - * @param { string } jid The JID of the entity which might have the identity - * @returns {promise} A promise which resolves with a map indicating - * whether an identity with a given type is provided by the entity. - * @example - * api.disco.getIdentity('pubsub', 'pep', _converse.bare_jid).then( - * function (identity) { - * if (identity) { - * // The entity DOES have this identity - * } else { - * // The entity DOES NOT have this identity - * } - * } - * ).catch(e => log.error(e)); - */ - getIdentity: function getIdentity(category, type, jid) { - return disco_api_asyncToGenerator( /*#__PURE__*/disco_api_regeneratorRuntime().mark(function _callee8() { - var e, msg; - return disco_api_regeneratorRuntime().wrap(function _callee8$(_context8) { - while (1) switch (_context8.prev = _context8.next) { - case 0: - _context8.next = 2; - return shared_api.disco.entities.get(jid, true); - case 2: - e = _context8.sent; - if (!(e === undefined && !shared_api.connection.connected())) { - _context8.next = 7; - break; - } - // Happens during tests when disco lookups happen asynchronously after teardown. - msg = "Tried to look up category ".concat(category, " for ").concat(jid, " but _converse.disco_entities has been torn down"); - log.warn(msg); - return _context8.abrupt("return"); - case 7: - return _context8.abrupt("return", e.getIdentity(category, type)); - case 8: - case "end": - return _context8.stop(); - } - }, _callee8); - }))(); + } + query = {}; + key = "stanza_id ".concat(_this41.get('jid')); + query[key] = attrs.moderated_id; + message = _this41.messages.findWhere(query); + if (message) { + _context33.next = 11; + break; + } + attrs['dangling_moderation'] = true; + _context33.next = 10; + return _this41.createMessage(attrs); + case 10: + return _context33.abrupt("return", true); + case 11: + message.save(lodash_es_pick(attrs, MODERATION_ATTRIBUTES)); + return _context33.abrupt("return", true); + case 15: + // Check if we have dangling moderation message + _message3 = _this41.findDanglingModeration(attrs); + if (!_message3) { + _context33.next = 22; + break; + } + moderation_attrs = lodash_es_pick(_message3.attributes, MODERATION_ATTRIBUTES); + new_attrs = Object.assign({ + 'dangling_moderation': false + }, attrs, moderation_attrs); + delete new_attrs['id']; // Delete id, otherwise a new cache entry gets created + _message3.save(new_attrs); + return _context33.abrupt("return", true); + case 22: + return _context33.abrupt("return", false); + case 23: + case "end": + return _context33.stop(); + } + }, _callee33); + }))(); + }, + getNotificationsText: function getNotificationsText() { + var _this42 = this; + var __ = shared_converse.__; + var actors_per_state = this.notifications.toJSON(); + var role_changes = shared_api.settings.get('muc_show_info_messages').filter(function (role_change) { + return public_converse.MUC_ROLE_CHANGES_LIST.includes(role_change); + }); + var join_leave_events = shared_api.settings.get('muc_show_info_messages').filter(function (join_leave_event) { + return public_converse.MUC_TRAFFIC_STATES_LIST.includes(join_leave_event); + }); + var states = [].concat(muc_toConsumableArray(public_converse.CHAT_STATES), muc_toConsumableArray(join_leave_events), muc_toConsumableArray(role_changes)); + return states.reduce(function (result, state) { + var existing_actors = actors_per_state[state]; + if (!(existing_actors !== null && existing_actors !== void 0 && existing_actors.length)) { + return result; + } + var actors = existing_actors.map(function (a) { + var _this42$getOccupant; + return ((_this42$getOccupant = _this42.getOccupant(a)) === null || _this42$getOccupant === void 0 ? void 0 : _this42$getOccupant.getDisplayName()) || a; + }); + if (actors.length === 1) { + if (state === 'composing') { + return "".concat(result).concat(__('%1$s is typing', actors[0]), "\n"); + } else if (state === 'paused') { + return "".concat(result).concat(__('%1$s has stopped typing', actors[0]), "\n"); + } else if (state === shared_converse.GONE) { + return "".concat(result).concat(__('%1$s has gone away', actors[0]), "\n"); + } else if (state === 'entered') { + return "".concat(result).concat(__('%1$s has entered the groupchat', actors[0]), "\n"); + } else if (state === 'exited') { + return "".concat(result).concat(__('%1$s has left the groupchat', actors[0]), "\n"); + } else if (state === 'op') { + return "".concat(result).concat(__('%1$s is now a moderator', actors[0]), "\n"); + } else if (state === 'deop') { + return "".concat(result).concat(__('%1$s is no longer a moderator', actors[0]), "\n"); + } else if (state === 'voice') { + return "".concat(result).concat(__('%1$s has been given a voice', actors[0]), "\n"); + } else if (state === 'mute') { + return "".concat(result).concat(__('%1$s has been muted', actors[0]), "\n"); + } + } else if (actors.length > 1) { + var actors_str; + if (actors.length > 3) { + actors_str = "".concat(Array.from(actors).slice(0, 2).join(', '), " and others"); + } else { + var last_actor = actors.pop(); + actors_str = __('%1$s and %2$s', actors.join(', '), last_actor); + } + if (state === 'composing') { + return "".concat(result).concat(__('%1$s are typing', actors_str), "\n"); + } else if (state === 'paused') { + return "".concat(result).concat(__('%1$s have stopped typing', actors_str), "\n"); + } else if (state === shared_converse.GONE) { + return "".concat(result).concat(__('%1$s have gone away', actors_str), "\n"); + } else if (state === 'entered') { + return "".concat(result).concat(__('%1$s have entered the groupchat', actors_str), "\n"); + } else if (state === 'exited') { + return "".concat(result).concat(__('%1$s have left the groupchat', actors_str), "\n"); + } else if (state === 'op') { + return "".concat(result).concat(__('%1$s are now moderators', actors[0]), "\n"); + } else if (state === 'deop') { + return "".concat(result).concat(__('%1$s are no longer moderators', actors[0]), "\n"); + } else if (state === 'voice') { + return "".concat(result).concat(__('%1$s have been given voices', actors[0]), "\n"); + } else if (state === 'mute') { + return "".concat(result).concat(__('%1$s have been muted', actors[0]), "\n"); + } + } + return result; + }, ''); + }, + /** + * @param { String } actor - The nickname of the actor that caused the notification + * @param {String|Array} states - The state or states representing the type of notificcation + */ + removeNotification: function removeNotification(actor, states) { + var _this43 = this; + var actors_per_state = this.notifications.toJSON(); + states = Array.isArray(states) ? states : [states]; + states.forEach(function (state) { + var existing_actors = Array.from(actors_per_state[state] || []); + if (existing_actors.includes(actor)) { + var idx = existing_actors.indexOf(actor); + existing_actors.splice(idx, 1); + _this43.notifications.set(state, Array.from(existing_actors)); + } + }); + }, + /** + * Update the notifications model by adding the passed in nickname + * to the array of nicknames that all match a particular state. + * + * Removes the nickname from any other states it might be associated with. + * + * The state can be a XEP-0085 Chat State or a XEP-0045 join/leave + * state. + * @param { String } actor - The nickname of the actor that causes the notification + * @param { String } state - The state representing the type of notificcation + */ + updateNotifications: function updateNotifications(actor, state) { + var _this44 = this; + var actors_per_state = this.notifications.toJSON(); + var existing_actors = actors_per_state[state] || []; + if (existing_actors.includes(actor)) { + return; } - } -}); -;// CONCATENATED MODULE: ./src/headless/plugins/disco/index.js -function disco_typeof(obj) { - "@babel/helpers - typeof"; - - return disco_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, disco_typeof(obj); -} -function disco_regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - disco_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; - } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; + var reducer = function reducer(out, s) { + if (s === state) { + out[s] = [].concat(muc_toConsumableArray(existing_actors), [actor]); + } else { + out[s] = (actors_per_state[s] || []).filter(function (a) { + return a !== actor; + }); + } + return out; }; - } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; - } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; + var actors_per_chat_state = public_converse.CHAT_STATES.reduce(reducer, {}); + var actors_per_traffic_state = public_converse.MUC_TRAFFIC_STATES_LIST.reduce(reducer, {}); + var actors_per_role_change = public_converse.MUC_ROLE_CHANGES_LIST.reduce(reducer, {}); + this.notifications.set(Object.assign(actors_per_chat_state, actors_per_traffic_state, actors_per_role_change)); + window.setTimeout(function () { + return _this44.removeNotification(actor, state); + }, 10000); + }, + handleMetadataFastening: function handleMetadataFastening(attrs) { + if (attrs.ogp_for_id) { + if (attrs.from !== this.get('jid')) { + // For now we only allow metadata from the MUC itself and not + // from individual users who are deemed less trustworthy. + return false; + } + var message = this.messages.findWhere({ + 'origin_id': attrs.ogp_for_id + }); + if (message) { + var old_list = message.get('ogp_metadata') || []; + if (old_list.filter(function (m) { + return m['og:url'] === attrs['og:url']; + }).length) { + // Don't add metadata for the same URL again + return false; + } + var list = [].concat(muc_toConsumableArray(old_list), [lodash_es_pick(attrs, METADATA_ATTRIBUTES)]); + message.save('ogp_metadata', list); + return true; + } } - } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); + return false; + }, + /** + * Given {@link MessageAttributes} look for XEP-0316 Room Notifications and create info + * messages for them. + * @param { Element } stanza + */ + handleMEPNotification: function handleMEPNotification(attrs) { + var _attrs$activities, + _this45 = this; + if (attrs.from !== this.get('jid') || !attrs.activities) { + return false; + } + (_attrs$activities = attrs.activities) === null || _attrs$activities === void 0 ? void 0 : _attrs$activities.forEach(function (activity_attrs) { + var data = Object.assign(attrs, activity_attrs); + _this45.createMessage(data); + // Trigger so that notifications are shown + shared_api.trigger('message', { + 'attrs': data, + 'chatbox': _this45 }); }); - } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == disco_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - reject(record.arg); + return !!attrs.activities.length; + }, + /** + * Returns an already cached message (if it exists) based on the + * passed in attributes map. + * @method _converse.ChatRoom#getDuplicateMessage + * @param { object } attrs - Attributes representing a received + * message, as returned by {@link parseMUCMessage} + * @returns {Promise<_converse.Message>} + */ + getDuplicateMessage: function getDuplicateMessage(attrs) { + var _attrs$activities2; + if ((_attrs$activities2 = attrs.activities) !== null && _attrs$activities2 !== void 0 && _attrs$activities2.length) { + return this.messages.findWhere({ + 'type': 'mep', + 'msgid': attrs.msgid + }); + } else { + return shared_converse.ChatBox.prototype.getDuplicateMessage.call(this, attrs); } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); + }, + /** + * Handler for all MUC messages sent to this groupchat. This method + * shouldn't be called directly, instead {@link _converse.ChatRoom#queueMessage} + * should be called. + * @method _converse.ChatRoom#onMessage + * @param { MessageAttributes } attrs - A promise which resolves to the message attributes. + */ + onMessage: function onMessage(attrs) { + var _this46 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee34() { + var message, msg; + return muc_regeneratorRuntime().wrap(function _callee34$(_context34) { + while (1) switch (_context34.prev = _context34.next) { + case 0: + _context34.next = 2; + return attrs; + case 2: + attrs = _context34.sent; + if (!muc_u.isErrorObject(attrs)) { + _context34.next = 8; + break; + } + attrs.stanza && log.error(attrs.stanza); + return _context34.abrupt("return", log.error(attrs.message)); + case 8: + _context34.t0 = attrs.type === 'error'; + if (!_context34.t0) { + _context34.next = 13; + break; + } + _context34.next = 12; + return _this46.shouldShowErrorMessage(attrs); + case 12: + _context34.t0 = !_context34.sent; + case 13: + if (!_context34.t0) { + _context34.next = 15; + break; + } + return _context34.abrupt("return"); + case 15: + message = _this46.getDuplicateMessage(attrs); + if (!message) { + _context34.next = 21; + break; + } + message.get('type') === 'groupchat' && _this46.updateMessage(message, attrs); + return _context34.abrupt("return"); + case 21: + if (!(attrs.receipt_id || attrs.is_marker || _this46.ignorableCSN(attrs))) { + _context34.next = 23; + break; + } + return _context34.abrupt("return"); + case 23: + _context34.t3 = _this46.handleMetadataFastening(attrs) || _this46.handleMEPNotification(attrs); + if (_context34.t3) { + _context34.next = 28; + break; + } + _context34.next = 27; + return _this46.handleRetraction(attrs); + case 27: + _context34.t3 = _context34.sent; + case 28: + _context34.t2 = _context34.t3; + if (_context34.t2) { + _context34.next = 33; + break; + } + _context34.next = 32; + return _this46.handleModeration(attrs); + case 32: + _context34.t2 = _context34.sent; + case 33: + _context34.t1 = _context34.t2; + if (_context34.t1) { + _context34.next = 38; + break; + } + _context34.next = 37; + return _this46.handleSubjectChange(attrs); + case 37: + _context34.t1 = _context34.sent; + case 38: + if (!_context34.t1) { + _context34.next = 41; + break; + } + attrs.nick && _this46.removeNotification(attrs.nick, ['composing', 'paused']); + return _context34.abrupt("return"); + case 41: + _this46.setEditable(attrs, attrs.time); + if (attrs['chat_state']) { + _this46.updateNotifications(attrs.nick, attrs.chat_state); + } + if (!muc_u.shouldCreateGroupchatMessage(attrs)) { + _context34.next = 54; + break; + } + _context34.next = 46; + return handleCorrection(_this46, attrs); + case 46: + _context34.t4 = _context34.sent; + if (_context34.t4) { + _context34.next = 51; + break; + } + _context34.next = 50; + return _this46.createMessage(attrs); + case 50: + _context34.t4 = _context34.sent; + case 51: + msg = _context34.t4; + _this46.removeNotification(attrs.nick, ['composing', 'paused']); + _this46.handleUnreadMessage(msg); + case 54: + case "end": + return _context34.stop(); } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + }, _callee34); + }))(); + }, + handleModifyError: function handleModifyError(pres) { + var _pres$querySelector; + var text = (_pres$querySelector = pres.querySelector('error text')) === null || _pres$querySelector === void 0 ? void 0 : _pres$querySelector.textContent; + if (text) { + if (this.session.get('connection_status') === ROOMSTATUS.CONNECTING) { + this.setDisconnectionState(text); + } else { + var attrs = { + 'type': 'error', + 'message': text, + 'is_ephemeral': true + }; + this.createMessage(attrs); } + } + }, + /** + * Handle a presence stanza that disconnects the user from the MUC + * @param { Element } stanza + */ + handleDisconnection: function handleDisconnection(stanza) { + var _item$querySelector, _item$querySelector2; + var is_self = stanza.querySelector("status[code='110']") !== null; + var x = external_sizzle_default()("x[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.MUC_USER, "\"]"), stanza).pop(); + if (!x) { + return; + } + var disconnection_codes = Object.keys(shared_converse.muc.disconnect_messages); + var codes = external_sizzle_default()('status', x).map(function (s) { + return s.getAttribute('code'); + }).filter(function (c) { + return disconnection_codes.includes(c); }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); - } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done - }; - } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + var disconnected = is_self && codes.length > 0; + if (!disconnected) { + return; + } + // By using querySelector we assume here there is + // one per + // element. This appears to be a safe assumption, since + // each element pertains to a single user. + var item = x.querySelector('item'); + var reason = item ? (_item$querySelector = item.querySelector('reason')) === null || _item$querySelector === void 0 ? void 0 : _item$querySelector.textContent : undefined; + var actor = item ? (_item$querySelector2 = item.querySelector('actor')) === null || _item$querySelector2 === void 0 ? void 0 : _item$querySelector2.getAttribute('nick') : undefined; + var message = shared_converse.muc.disconnect_messages[codes[0]]; + var status = codes.includes('301') ? ROOMSTATUS.BANNED : ROOMSTATUS.DISCONNECTED; + this.setDisconnectionState(message, reason, actor, status); + }, + getActionInfoMessage: function getActionInfoMessage(code, nick, actor) { + var __ = shared_converse.__; + if (code === '301') { + return actor ? __('%1$s has been banned by %2$s', nick, actor) : __('%1$s has been banned', nick); + } else if (code === '303') { + return __("%1$s's nickname has changed", nick); + } else if (code === '307') { + return actor ? __('%1$s has been kicked out by %2$s', nick, actor) : __('%1$s has been kicked out', nick); + } else if (code === '321') { + return __('%1$s has been removed because of an affiliation change', nick); + } else if (code === '322') { + return __('%1$s has been removed for not being a member', nick); + } + }, + createAffiliationChangeMessage: function createAffiliationChangeMessage(occupant) { + var __ = shared_converse.__; + var previous_affiliation = occupant._previousAttributes.affiliation; + if (!previous_affiliation) { + // If no previous affiliation was set, then we don't + // interpret this as an affiliation change. + // For example, if muc_send_probes is true, then occupants + // are created based on incoming messages, in which case + // we don't yet know the affiliation + return; + } + var current_affiliation = occupant.get('affiliation'); + if (previous_affiliation === 'admin' && shared_converse.isInfoVisible(public_converse.AFFILIATION_CHANGES.EXADMIN)) { + this.createMessage({ + 'type': 'info', + 'message': __('%1$s is no longer an admin of this groupchat', occupant.get('nick')) + }); + } else if (previous_affiliation === 'owner' && shared_converse.isInfoVisible(public_converse.AFFILIATION_CHANGES.EXOWNER)) { + this.createMessage({ + 'type': 'info', + 'message': __('%1$s is no longer an owner of this groupchat', occupant.get('nick')) + }); + } else if (previous_affiliation === 'outcast' && shared_converse.isInfoVisible(public_converse.AFFILIATION_CHANGES.EXOUTCAST)) { + this.createMessage({ + 'type': 'info', + 'message': __('%1$s is no longer banned from this groupchat', occupant.get('nick')) + }); + } + if (current_affiliation === 'none' && previous_affiliation === 'member' && shared_converse.isInfoVisible(public_converse.AFFILIATION_CHANGES.EXMEMBER)) { + this.createMessage({ + 'type': 'info', + 'message': __('%1$s is no longer a member of this groupchat', occupant.get('nick')) + }); + } + if (current_affiliation === 'member' && shared_converse.isInfoVisible(public_converse.AFFILIATION_CHANGES.MEMBER)) { + this.createMessage({ + 'type': 'info', + 'message': __('%1$s is now a member of this groupchat', occupant.get('nick')) + }); + } else if (current_affiliation === 'admin' && shared_converse.isInfoVisible(public_converse.AFFILIATION_CHANGES.ADMIN) || current_affiliation == 'owner' && shared_converse.isInfoVisible(public_converse.AFFILIATION_CHANGES.OWNER)) { + // For example: AppleJack is now an (admin|owner) of this groupchat + this.createMessage({ + 'type': 'info', + 'message': __('%1$s is now an %2$s of this groupchat', occupant.get('nick'), current_affiliation) + }); + } + }, + createRoleChangeMessage: function createRoleChangeMessage(occupant, changed) { + if (changed === 'none' || occupant.changed.affiliation) { + // We don't inform of role changes if they accompany affiliation changes. + return; + } + var previous_role = occupant._previousAttributes.role; + if (previous_role === 'moderator' && shared_converse.isInfoVisible(public_converse.MUC_ROLE_CHANGES.DEOP)) { + this.updateNotifications(occupant.get('nick'), public_converse.MUC_ROLE_CHANGES.DEOP); + } else if (previous_role === 'visitor' && shared_converse.isInfoVisible(public_converse.MUC_ROLE_CHANGES.VOICE)) { + this.updateNotifications(occupant.get('nick'), public_converse.MUC_ROLE_CHANGES.VOICE); + } + if (occupant.get('role') === 'visitor' && shared_converse.isInfoVisible(public_converse.MUC_ROLE_CHANGES.MUTE)) { + this.updateNotifications(occupant.get('nick'), public_converse.MUC_ROLE_CHANGES.MUTE); + } else if (occupant.get('role') === 'moderator') { + if (!['owner', 'admin'].includes(occupant.get('affiliation')) && shared_converse.isInfoVisible(public_converse.MUC_ROLE_CHANGES.OP)) { + // Oly show this message if the user isn't already + // an admin or owner, otherwise this isn't new information. + this.updateNotifications(occupant.get('nick'), public_converse.MUC_ROLE_CHANGES.OP); } + } + }, + /** + * Create an info message based on a received MUC status code + * @private + * @method _converse.ChatRoom#createInfoMessage + * @param { string } code - The MUC status code + * @param { Element } stanza - The original stanza that contains the code + * @param { Boolean } is_self - Whether this stanza refers to our own presence + */ + createInfoMessage: function createInfoMessage(code, stanza, is_self) { + var __ = shared_converse.__; + var data = { + 'type': 'info', + 'is_ephemeral': true }; - } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); - } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); - } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal", delete record.arg, entry.completion = record; - } - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); - } - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) return iteratorMethod.call(iterable); - if ("function" == typeof iterable.next) return iterable; - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; - return next.value = undefined, next.done = !0, next; - }; - return next.next = next; + if (!shared_converse.isInfoVisible(code)) { + return; + } + if (code === '110' || code === '100' && !is_self) { + return; + } else if (code in shared_converse.muc.info_messages) { + data.message = shared_converse.muc.info_messages[code]; + } else if (!is_self && ACTION_INFO_CODES.includes(code)) { + var _item$querySelector3, _item$querySelector4; + var nick = external_strophe_namespaceObject.Strophe.getResourceFromJid(stanza.getAttribute('from')); + var item = external_sizzle_default()("x[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.MUC_USER, "\"] item"), stanza).pop(); + data.actor = item ? (_item$querySelector3 = item.querySelector('actor')) === null || _item$querySelector3 === void 0 ? void 0 : _item$querySelector3.getAttribute('nick') : undefined; + data.reason = item ? (_item$querySelector4 = item.querySelector('reason')) === null || _item$querySelector4 === void 0 ? void 0 : _item$querySelector4.textContent : undefined; + data.message = this.getActionInfoMessage(code, nick, data.actor); + } else if (is_self && code in shared_converse.muc.new_nickname_messages) { + // XXX: Side-effect of setting the nick. Should ideally be refactored out of this method + var _nick; + if (code === '210') { + _nick = external_strophe_namespaceObject.Strophe.getResourceFromJid(stanza.getAttribute('from')); + } else if (code === '303') { + _nick = external_sizzle_default()("x[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.MUC_USER, "\"] item"), stanza).pop().getAttribute('nick'); } + this.save('nick', _nick); + data.message = __(shared_converse.muc.new_nickname_messages[code], _nick); } - return { - next: doneResult - }; - } - function doneResult() { - return { - value: undefined, - done: !0 - }; - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { - var ctor = "function" == typeof genFun && genFun.constructor; - return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); - }, exports.mark = function (genFun) { - return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; - }, exports.awrap = function (arg) { - return { - __await: arg - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - void 0 === PromiseImpl && (PromiseImpl = Promise); - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { - return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; + if (data.message) { + if (code === '201' && this.messages.findWhere(data)) { + return; } - return next.done = !0, next; - }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + this.createMessage(data); + } + }, + /** + * Create info messages based on a received presence or message stanza + * @private + * @method _converse.ChatRoom#createInfoMessages + * @param { Element } stanza + */ + createInfoMessages: function createInfoMessages(stanza) { + var _this47 = this; + var codes = external_sizzle_default()("x[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.MUC_USER, "\"] status"), stanza).map(function (s) { + return s.getAttribute('code'); + }); + if (codes.includes('333') && codes.includes('307')) { + // See: https://github.com/xsf/xeps/pull/969/files#diff-ac5113766e59219806793c1f7d967f1bR4966 + codes.splice(codes.indexOf('307'), 1); + } + var is_self = codes.includes('110'); + codes.forEach(function (code) { + return _this47.createInfoMessage(code, stanza, is_self); + }); + }, + /** + * Set parameters regarding disconnection from this room. This helps to + * communicate to the user why they were disconnected. + * @param { String } message - The disconnection message, as received from (or + * implied by) the server. + * @param { String } reason - The reason provided for the disconnection + * @param { String } actor - The person (if any) responsible for this disconnection + * @param { number } status - The status code (see `ROOMSTATUS`) + */ + setDisconnectionState: function setDisconnectionState(message, reason, actor) { + var status = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ROOMSTATUS.DISCONNECTED; + this.session.save({ + 'connection_status': status, + 'disconnection_actor': actor, + 'disconnection_message': message, + 'disconnection_reason': reason + }); + }, + onNicknameClash: function onNicknameClash(presence) { + var __ = shared_converse.__; + if (shared_api.settings.get('muc_nickname_from_jid')) { + var nick = presence.getAttribute('from').split('/')[1]; + if (nick === shared_converse.getDefaultMUCNickname()) { + this.join(nick + '-2'); + } else { + var del = nick.lastIndexOf('-'); + var num = nick.substring(del + 1, nick.length); + this.join(nick.substring(0, del + 1) + String(Number(num) + 1)); } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } - } + } else { + this.save({ + 'nickname_validation_message': __('The nickname you chose is reserved or ' + 'currently in use, please choose a different one.') + }); + this.session.save({ + 'connection_status': ROOMSTATUS.NICKNAME_REQUIRED + }); + } + }, + /** + * Parses a stanza with type "error" and sets the proper + * `connection_status` value for this {@link _converse.ChatRoom} as + * well as any additional output that can be shown to the user. + * @private + * @param { Element } stanza - The presence stanza + */ + onErrorPresence: function onErrorPresence(stanza) { + var _sizzle$pop; + var __ = shared_converse.__; + var error = stanza.querySelector('error'); + var error_type = error.getAttribute('type'); + var reason = (_sizzle$pop = external_sizzle_default()("text[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.STANZAS, "\"]"), error).pop()) === null || _sizzle$pop === void 0 ? void 0 : _sizzle$pop.textContent; + if (error_type === 'modify') { + this.handleModifyError(stanza); + } else if (error_type === 'auth') { + if (external_sizzle_default()("not-authorized[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.STANZAS, "\"]"), error).length) { + this.save({ + 'password_validation_message': reason || __('Password incorrect') + }); + this.session.save({ + 'connection_status': ROOMSTATUS.PASSWORD_REQUIRED + }); } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } + if (error.querySelector('registration-required')) { + var message = __('You are not on the member list of this groupchat.'); + this.setDisconnectionState(message, reason); + } else if (error.querySelector('forbidden')) { + this.setDisconnectionState(shared_converse.muc.disconnect_messages[301], reason, null, ROOMSTATUS.BANNED); } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } else if (error_type === 'cancel') { + if (error.querySelector('not-allowed')) { + var _message4 = __('You are not allowed to create new groupchats.'); + this.setDisconnectionState(_message4, reason); + } else if (error.querySelector('not-acceptable')) { + var _message5 = __("Your nickname doesn't conform to this groupchat's policies."); + this.setDisconnectionState(_message5, reason); + } else if (external_sizzle_default()("gone[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.STANZAS, "\"]"), error).length) { + var _sizzle$pop2; + var moved_jid = (_sizzle$pop2 = external_sizzle_default()("gone[xmlns=\"".concat(external_strophe_namespaceObject.Strophe.NS.STANZAS, "\"]"), error).pop()) === null || _sizzle$pop2 === void 0 ? void 0 : _sizzle$pop2.textContent.replace(/^xmpp:/, '').replace(/\?join$/, ''); + this.save({ + moved_jid: moved_jid, + 'destroyed_reason': reason + }); + this.session.save({ + 'connection_status': ROOMSTATUS.DESTROYED + }); + } else if (error.querySelector('conflict')) { + this.onNicknameClash(stanza); + } else if (error.querySelector('item-not-found')) { + var _message6 = __('This groupchat does not (yet) exist.'); + this.setDisconnectionState(_message6, reason); + } else if (error.querySelector('service-unavailable')) { + var _message7 = __('This groupchat has reached its maximum number of participants.'); + this.setDisconnectionState(_message7, reason); + } else if (error.querySelector('remote-server-not-found')) { + var _message8 = __('Remote server not found'); + this.setDisconnectionState(_message8, reason); + } else if (error.querySelector('forbidden')) { + var _message9 = __("You're not allowed to enter this groupchat"); + this.setDisconnectionState(_message9, reason); + } else { + var _message10 = __("An error happened while trying to enter this groupchat"); + this.setDisconnectionState(_message10, reason); } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; + } + }, + /** + * Listens for incoming presence stanzas from the service that hosts this MUC + * @private + * @method _converse.ChatRoom#onPresenceFromMUCHost + * @param { Element } stanza - The presence stanza + */ + onPresenceFromMUCHost: function onPresenceFromMUCHost(stanza) { + if (stanza.getAttribute('type') === 'error') { + var error = stanza.querySelector('error'); + if ((error === null || error === void 0 ? void 0 : error.getAttribute('type')) === 'wait' && error !== null && error !== void 0 && error.querySelector('resource-constraint')) { + // If we get a error, we assume it's in context of XEP-0437 RAI. + // We remove this MUC's host from the list of enabled domains and rejoin the MUC. + if (this.session.get('connection_status') === ROOMSTATUS.DISCONNECTED) { + this.rejoin(); } } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } - }, exports; -} -function disco_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} -function disco_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - disco_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - disco_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + }, + /** + * Handles incoming presence stanzas coming from the MUC + * @private + * @method _converse.ChatRoom#onPresence + * @param { Element } stanza + */ + onPresence: function onPresence(stanza) { + if (stanza.getAttribute('type') === 'error') { + return this.onErrorPresence(stanza); + } + this.createInfoMessages(stanza); + if (stanza.querySelector("status[code='110']")) { + this.onOwnPresence(stanza); + if (this.getOwnRole() !== 'none' && this.session.get('connection_status') === ROOMSTATUS.CONNECTING) { + this.session.save('connection_status', ROOMSTATUS.CONNECTED); } - _next(undefined); - }); - }; -} -/** - * @copyright The Converse.js contributors - * @license Mozilla Public License (MPLv2) - * @description Converse plugin which add support for XEP-0030: Service Discovery - */ - - - - - -var disco_Strophe = public_converse.env.Strophe; -public_converse.plugins.add('converse-disco', { - initialize: function initialize() { - Object.assign(shared_api, disco_api); - shared_api.promises.add('discoInitialized'); - shared_api.promises.add('streamFeaturesAdded'); - shared_converse.DiscoEntity = entity; - shared_converse.DiscoEntities = entities; - shared_converse.disco = { - _identities: [], - _features: [] - }; - shared_api.listen.on('userSessionInitialized', /*#__PURE__*/disco_asyncToGenerator( /*#__PURE__*/disco_regeneratorRuntime().mark(function _callee() { - return disco_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { + } else { + this.updateOccupantsOnPresence(stanza); + } + }, + /** + * Handles a received presence relating to the current user. + * + * For locked groupchats (which are by definition "new"), the + * groupchat will either be auto-configured or created instantly + * (with default config) or a configuration groupchat will be + * rendered. + * + * If the groupchat is not locked, then the groupchat will be + * auto-configured only if applicable and if the current + * user is the groupchat's owner. + * @private + * @method _converse.ChatRoom#onOwnPresence + * @param { Element } pres - The stanza + */ + onOwnPresence: function onOwnPresence(stanza) { + var _this48 = this; + return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee35() { + var old_status, locked_room; + return muc_regeneratorRuntime().wrap(function _callee35$(_context35) { + while (1) switch (_context35.prev = _context35.next) { case 0: - initStreamFeatures(); - if (!(shared_converse.connfeedback.get('connection_status') === disco_Strophe.Status.ATTACHED)) { - _context.next = 5; + _context35.next = 2; + return _this48.occupants.fetched; + case 2: + if (!(stanza.getAttribute('type') === 'unavailable')) { + _context35.next = 5; break; } - _context.next = 4; - return new Promise(function (success, error) { - return shared_converse.stream_features.fetch({ - success: success, - error: error + _this48.handleDisconnection(stanza); + return _context35.abrupt("return"); + case 5: + old_status = _this48.session.get('connection_status'); + if (old_status !== ROOMSTATUS.ENTERED && old_status !== ROOMSTATUS.CLOSING) { + // Set connection_status before creating the occupant, but + // only trigger afterwards, so that plugins can access the + // occupant in their event handlers. + _this48.session.save('connection_status', ROOMSTATUS.ENTERED, { + 'silent': true }); + _this48.updateOccupantsOnPresence(stanza); + _this48.session.trigger('change:connection_status', _this48.session, old_status); + } else { + _this48.updateOccupantsOnPresence(stanza); + } + locked_room = stanza.querySelector("status[code='201']"); + if (!locked_room) { + _context35.next = 20; + break; + } + if (!_this48.get('auto_configure')) { + _context35.next = 14; + break; + } + _context35.next = 12; + return _this48.autoConfigureChatRoom().then(function () { + return _this48.refreshDiscoInfo(); }); - case 4: - notifyStreamFeaturesAdded(); - case 5: - case "end": - return _context.stop(); - } - }, _callee); - }))); - shared_api.listen.on('beforeResourceBinding', populateStreamFeatures); - shared_api.listen.on('reconnected', initializeDisco); - shared_api.listen.on('connected', initializeDisco); - shared_api.listen.on('beforeTearDown', /*#__PURE__*/disco_asyncToGenerator( /*#__PURE__*/disco_regeneratorRuntime().mark(function _callee2() { - return disco_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - shared_api.promises.add('streamFeaturesAdded'); - if (!shared_converse.stream_features) { - _context2.next = 5; + case 12: + _context35.next = 20; + break; + case 14: + if (!shared_api.settings.get('muc_instant_rooms')) { + _context35.next = 19; break; } - _context2.next = 4; - return shared_converse.stream_features.clearStore(); - case 4: - delete shared_converse.stream_features; - case 5: + _context35.next = 17; + return _this48.sendConfiguration().then(function () { + return _this48.refreshDiscoInfo(); + }); + case 17: + _context35.next = 20; + break; + case 19: + _this48.session.save({ + 'view': public_converse.MUC.VIEWS.CONFIG + }); + case 20: case "end": - return _context2.stop(); + return _context35.stop(); } - }, _callee2); - }))); - - // All disco entities stored in sessionStorage and are refetched - // upon login or reconnection and then stored with new ids, so to - // avoid sessionStorage filling up, we remove them. - shared_api.listen.on('will-reconnect', utils_clearSession); - shared_api.listen.on('clearSession', utils_clearSession); + }, _callee35); + }))(); + }, + /** + * Returns a boolean to indicate whether the current user + * was mentioned in a message. + * @private + * @method _converse.ChatRoom#isUserMentioned + * @param { String } - The text message + */ + isUserMentioned: function isUserMentioned(message) { + var nick = this.get('nick'); + if (message.get('references').length) { + var mentions = message.get('references').filter(function (ref) { + return ref.type === 'mention'; + }).map(function (ref) { + return ref.value; + }); + return mentions.includes(nick); + } else { + return new RegExp("\\b".concat(nick, "\\b")).test(message.get('body')); + } + }, + incrementUnreadMsgsCounter: function incrementUnreadMsgsCounter(message) { + var settings = { + 'num_unread_general': this.get('num_unread_general') + 1 + }; + if (this.get('num_unread_general') === 0) { + settings['first_unread_id'] = message.get('id'); + } + if (this.isUserMentioned(message)) { + settings.num_unread = this.get('num_unread') + 1; + } + this.save(settings); + }, + clearUnreadMsgCounter: function clearUnreadMsgCounter() { + if (this.get('num_unread_general') > 0 || this.get('num_unread') > 0 || this.get('has_activity')) { + this.sendMarkerForMessage(this.messages.last()); + } + safeSave(this, { + 'has_activity': false, + 'num_unread': 0, + 'num_unread_general': 0 + }); } -}); -;// CONCATENATED MODULE: ./src/headless/plugins/emoji/regexes.js -var ASCII_REGEX = '(\\*\\\\0\\/\\*|\\*\\\\O\\/\\*|\\-___\\-|\\:\'\\-\\)|\'\\:\\-\\)|\'\\:\\-D|\\>\\:\\-\\)|>\\:\\-\\)|\'\\:\\-\\(|\\>\\:\\-\\(|>\\:\\-\\(|\\:\'\\-\\(|O\\:\\-\\)|0\\:\\-3|0\\:\\-\\)|0;\\^\\)|O;\\-\\)|0;\\-\\)|O\\:\\-3|\\-__\\-|\\:\\-Þ|\\:\\-Þ|\\<\\/3|<\\/3|\\:\'\\)|\\:\\-D|\'\\:\\)|\'\\=\\)|\'\\:D|\'\\=D|\\>\\:\\)|>\\:\\)|\\>;\\)|>;\\)|\\>\\=\\)|>\\=\\)|;\\-\\)|\\*\\-\\)|;\\-\\]|;\\^\\)|\'\\:\\(|\'\\=\\(|\\:\\-\\*|\\:\\^\\*|\\>\\:P|>\\:P|X\\-P|\\>\\:\\[|>\\:\\[|\\:\\-\\(|\\:\\-\\[|\\>\\:\\(|>\\:\\(|\\:\'\\(|;\\-\\(|\\>\\.\\<|>\\.<|#\\-\\)|%\\-\\)|X\\-\\)|\\\\0\\/|\\\\O\\/|0\\:3|0\\:\\)|O\\:\\)|O\\=\\)|O\\:3|B\\-\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\>\\:\\\\|>\\:\\\\|\\>\\:\\/|>\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\-P|\\:Þ|\\:Þ|\\:\\-b|\\:\\-O|O_O|\\>\\:O|>\\:O|\\:\\-X|\\:\\-#|\\:\\-\\)|\\(y\\)|\\<3|<3|\\:D|\\=D|;\\)|\\*\\)|;\\]|;D|\\:\\*|\\=\\*|\\:\\(|\\:\\[|\\=\\(|\\:@|;\\(|D\\:|\\:\\$|\\=\\$|#\\)|%\\)|X\\)|B\\)|8\\)|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\=P|\\:b|\\:O|\\:X|\\:#|\\=X|\\=#|\\:\\)|\\=\\]|\\=\\)|\\:\\])'; -var ASCII_REPLACE_REGEX = new RegExp("]*>.*?<\/object>|]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)" + ASCII_REGEX + "(?=\\s|$|[!,.?]))", "gi"); -var CODEPOINTS_REGEX = /(?:\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1|\ud83d\udc6b\ud83c[\udffb-\udfff]|\ud83d\udc6c\ud83c[\udffb-\udfff]|\ud83d\udc6d\ud83c[\udffb-\udfff]|\ud83d[\udc6b-\udc6d])|(?:\ud83d[\udc68\udc69]|\ud83e\uddd1)(?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92]|\ud83e[\uddaf-\uddb3\uddbc\uddbd])|(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75]|\u26f9)((?:\ud83c[\udffb-\udfff]|\ufe0f)\u200d[\u2640\u2642]\ufe0f)|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd35\udd37-\udd39\udd3d\udd3e\uddb8\uddb9\uddcd-\uddcf\uddd6-\udddd])(?:\ud83c[\udffb-\udfff])?\u200d[\u2640\u2642]\ufe0f|(?:\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc15\u200d\ud83e\uddba|\ud83d\udc41\u200d\ud83d\udde8|\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc6f\u200d\u2640\ufe0f|\ud83d\udc6f\u200d\u2642\ufe0f|\ud83e\udd3c\u200d\u2640\ufe0f|\ud83e\udd3c\u200d\u2642\ufe0f|\ud83e\uddde\u200d\u2640\ufe0f|\ud83e\uddde\u200d\u2642\ufe0f|\ud83e\udddf\u200d\u2640\ufe0f|\ud83e\udddf\u200d\u2642\ufe0f)|[#*0-9]\ufe0f?\u20e3|(?:[©®\u2122\u265f]\ufe0f)|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcd\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u203c\u2049\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2697\u2699\u269b\u269c\u26a0\u26a1\u26a7\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))|(?:(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75\udd90]|[\u261d\u26f7\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|(?:\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0\udecc]|\ud83e[\udd0f\udd18-\udd1c\udd1e\udd1f\udd26\udd30-\udd39\udd3d\udd3e\uddb5\uddb6\uddb8\uddb9\uddbb\uddcd-\uddcf\uddd1-\udddd]|[\u270a\u270b]))(?:\ud83c[\udffb-\udfff])?|(?:\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf3\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\uded0-\uded2\uded5\udeeb\udeec\udef4-\udefa\udfe0-\udfeb]|\ud83e[\udd0d\udd0e\udd10-\udd17\udd1d\udd20-\udd25\udd27-\udd2f\udd3a\udd3c\udd3f-\udd45\udd47-\udd71\udd73-\udd76\udd7a-\udda2\udda5-\uddaa\uddae-\uddb4\uddb7\uddba\uddbc-\uddca\uddd0\uddde-\uddff\ude70-\ude73\ude78-\ude7a\ude80-\ude82\ude90-\ude95]|[\u23e9-\u23ec\u23f0\u23f3\u267e\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a])|\ufe0f/g; -;// CONCATENATED MODULE: ./src/headless/plugins/emoji/utils.js -function utils_toConsumableArray(arr) { - return utils_arrayWithoutHoles(arr) || utils_iterableToArray(arr) || utils_unsupportedIterableToArray(arr) || utils_nonIterableSpread(); -} -function utils_nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} -function utils_unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return utils_arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return utils_arrayLikeToArray(o, minLen); +}; +/* harmony default export */ const muc = (ChatRoomMixin); +;// CONCATENATED MODULE: ./src/headless/plugins/muc/occupant.js +function occupant_typeof(obj) { + "@babel/helpers - typeof"; + + return occupant_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, occupant_typeof(obj); } -function utils_iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +function occupant_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } } -function utils_arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return utils_arrayLikeToArray(arr); +function occupant_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, occupant_toPropertyKey(descriptor.key), descriptor); + } } -function utils_arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; +function occupant_createClass(Constructor, protoProps, staticProps) { + if (protoProps) occupant_defineProperties(Constructor.prototype, protoProps); + if (staticProps) occupant_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; } - - -var emoji_utils_u = public_converse.env.u; - -// Closured cache -var emojis_by_attribute = {}; -var ASCII_LIST = { - '*\\0/*': '1f646', - '*\\O/*': '1f646', - '-___-': '1f611', - ':\'-)': '1f602', - '\':-)': '1f605', - '\':-D': '1f605', - '>:-)': '1f606', - '\':-(': '1f613', - '>:-(': '1f620', - ':\'-(': '1f622', - 'O:-)': '1f607', - '0:-3': '1f607', - '0:-)': '1f607', - '0;^)': '1f607', - 'O;-)': '1f607', - '0;-)': '1f607', - 'O:-3': '1f607', - '-__-': '1f611', - ':-Þ': '1f61b', - ':)': '1f606', - '>;)': '1f606', - '>=)': '1f606', - ';-)': '1f609', - '*-)': '1f609', - ';-]': '1f609', - ';^)': '1f609', - '\':(': '1f613', - '\'=(': '1f613', - ':-*': '1f618', - ':^*': '1f618', - '>:P': '1f61c', - 'X-P': '1f61c', - '>:[': '1f61e', - ':-(': '1f61e', - ':-[': '1f61e', - '>:(': '1f620', - ':\'(': '1f622', - ';-(': '1f622', - '>.<': '1f623', - '#-)': '1f635', - '%-)': '1f635', - 'X-)': '1f635', - '\\0/': '1f646', - '\\O/': '1f646', - '0:3': '1f607', - '0:)': '1f607', - 'O:)': '1f607', - 'O=)': '1f607', - 'O:3': '1f607', - 'B-)': '1f60e', - '8-)': '1f60e', - 'B-D': '1f60e', - '8-D': '1f60e', - '-_-': '1f611', - '>:\\': '1f615', - '>:/': '1f615', - ':-/': '1f615', - ':-.': '1f615', - ':-P': '1f61b', - ':Þ': '1f61b', - ':-b': '1f61b', - ':-O': '1f62e', - 'O_O': '1f62e', - '>:O': '1f62e', - ':-X': '1f636', - ':-#': '1f636', - ':-)': '1f642', - '(y)': '1f44d', - '<3': '2764', - ':D': '1f603', - '=D': '1f603', - ';)': '1f609', - '*)': '1f609', - ';]': '1f609', - ';D': '1f609', - ':*': '1f618', - '=*': '1f618', - ':(': '1f61e', - ':[': '1f61e', - '=(': '1f61e', - ':@': '1f620', - ';(': '1f622', - 'D:': '1f628', - ':$': '1f633', - '=$': '1f633', - '#)': '1f635', - '%)': '1f635', - 'X)': '1f635', - 'B)': '1f60e', - '8)': '1f60e', - ':/': '1f615', - ':\\': '1f615', - '=/': '1f615', - '=\\': '1f615', - ':L': '1f615', - '=L': '1f615', - ':P': '1f61b', - '=P': '1f61b', - ':b': '1f61b', - ':O': '1f62e', - ':X': '1f636', - ':#': '1f636', - '=X': '1f636', - '=#': '1f636', - ':)': '1f642', - '=]': '1f642', - '=)': '1f642', - ':]': '1f642' -}; -function toCodePoint(unicode_surrogates) { - var r = []; - var p = 0; - var i = 0; - while (i < unicode_surrogates.length) { - var c = unicode_surrogates.charCodeAt(i++); - if (p) { - r.push((0x10000 + (p - 0xD800 << 10) + (c - 0xDC00)).toString(16)); - p = 0; - } else if (0xD800 <= c && c <= 0xDBFF) { - p = c; - } else { - r.push(c.toString(16)); - } - } - return r.join('-'); +function occupant_toPropertyKey(arg) { + var key = occupant_toPrimitive(arg, "string"); + return occupant_typeof(key) === "symbol" ? key : String(key); } -function fromCodePoint(codepoint) { - var code = typeof codepoint === 'string' ? parseInt(codepoint, 16) : codepoint; - if (code < 0x10000) { - return String.fromCharCode(code); +function occupant_toPrimitive(input, hint) { + if (occupant_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (occupant_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); } - code -= 0x10000; - return String.fromCharCode(0xD800 + (code >> 10), 0xDC00 + (code & 0x3FF)); + return (hint === "string" ? String : Number)(input); } -function convert(unicode) { - // Converts unicode code points and code pairs to their respective characters - if (unicode.indexOf("-") > -1) { - var parts = [], - s = unicode.split('-'); - for (var i = 0; i < s.length; i++) { - var part = parseInt(s[i], 16); - if (part >= 0x10000 && part <= 0x10FFFF) { - var hi = Math.floor((part - 0x10000) / 0x400) + 0xD800; - var lo = (part - 0x10000) % 0x400 + 0xDC00; - part = String.fromCharCode(hi) + String.fromCharCode(lo); - } else { - part = String.fromCharCode(part); +function occupant_get() { + if (typeof Reflect !== "undefined" && Reflect.get) { + occupant_get = Reflect.get.bind(); + } else { + occupant_get = function _get(target, property, receiver) { + var base = occupant_superPropBase(target, property); + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + if (desc.get) { + return desc.get.call(arguments.length < 3 ? target : receiver); } - parts.push(part); - } - return parts.join(''); + return desc.value; + }; } - return fromCodePoint(unicode); + return occupant_get.apply(this, arguments); } -function convertASCII2Emoji(str) { - // Replace ASCII smileys - return str.replace(ASCII_REPLACE_REGEX, function (entire, _, m2, m3) { - if (typeof m3 === 'undefined' || m3 === '' || !(emoji_utils_u.unescapeHTML(m3) in ASCII_LIST)) { - // if the ascii doesnt exist just return the entire match - return entire; - } - m3 = emoji_utils_u.unescapeHTML(m3); - var unicode = ASCII_LIST[m3].toUpperCase(); - return m2 + convert(unicode); - }); +function occupant_superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = occupant_getPrototypeOf(object); + if (object === null) break; + } + return object; } -function getShortnameReferences(text) { - if (!public_converse.emojis.initialized) { - throw new Error('getShortnameReferences called before emojis are initialized. ' + 'To avoid this problem, first await the converse.emojis.initialized_promise'); +function occupant_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); } - var references = utils_toConsumableArray(text.matchAll(public_converse.emojis.shortnames_regex)).filter(function (ref) { - return ref[0].length > 0; + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } }); - return references.map(function (ref) { - var cp = public_converse.emojis.by_sn[ref[0]].cp; - return { - cp: cp, - 'begin': ref.index, - 'end': ref.index + ref[0].length, - 'shortname': ref[0], - 'emoji': cp ? convert(cp) : null - }; + Object.defineProperty(subClass, "prototype", { + writable: false }); + if (superClass) occupant_setPrototypeOf(subClass, superClass); } -function parseStringForEmojis(str, callback) { - var UFE0Fg = /\uFE0F/g; - var U200D = String.fromCharCode(0x200D); - return String(str).replace(CODEPOINTS_REGEX, function (emoji, _, offset) { - var icon_id = toCodePoint(emoji.indexOf(U200D) < 0 ? emoji.replace(UFE0Fg, '') : emoji); - if (icon_id) callback(icon_id, emoji, offset); - }); +function occupant_setPrototypeOf(o, p) { + occupant_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return occupant_setPrototypeOf(o, p); } -function getCodePointReferences(text) { - var references = []; - parseStringForEmojis(text, function (icon_id, emoji, offset) { - var _getEmojisByAtrribute; - references.push({ - 'begin': offset, - 'cp': icon_id, - 'emoji': emoji, - 'end': offset + emoji.length, - 'shortname': ((_getEmojisByAtrribute = getEmojisByAtrribute('cp')[icon_id]) === null || _getEmojisByAtrribute === void 0 ? void 0 : _getEmojisByAtrribute.sn) || '' - }); - }); - return references; +function occupant_createSuper(Derived) { + var hasNativeReflectConstruct = occupant_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = occupant_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = occupant_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return occupant_possibleConstructorReturn(this, result); + }; } -function addEmojisMarkup(text) { - var list = [text]; - [].concat(utils_toConsumableArray(getShortnameReferences(text)), utils_toConsumableArray(getCodePointReferences(text))).sort(function (a, b) { - return b.begin - a.begin; - }).forEach(function (ref) { - var text = list.shift(); - var emoji = ref.emoji || ref.shortname; - list = [text.slice(0, ref.begin) + emoji + text.slice(ref.end)].concat(utils_toConsumableArray(list)); - }); - return list; +function occupant_possibleConstructorReturn(self, call) { + if (call && (occupant_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return occupant_assertThisInitialized(self); } - -/** - * Replaces all shortnames in the passed in string with their - * unicode (emoji) representation. - * @namespace u - * @method u.shortnamesToUnicode - * @param { String } str - String containing the shortname(s) - * @returns { String } - */ -function shortnamesToUnicode(str) { - return addEmojisMarkup(convertASCII2Emoji(str)).pop(); +function occupant_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; } - -/** - * Determines whether the passed in string is just a single emoji shortname; - * @namespace u - * @method u.isOnlyEmojis - * @param { String } text - A string which migh be just an emoji shortname - * @returns { Boolean } - */ -function isOnlyEmojis(text) { - var words = text.trim().split(/\s+/); - if (words.length === 0 || words.length > 3) { +function occupant_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { return false; } - var emojis = words.filter(function (text) { - var refs = getCodePointReferences(emoji_utils_u.shortnamesToUnicode(text)); - return refs.length === 1 && (text === refs[0]['shortname'] || text === refs[0]['emoji']); - }); - return emojis.length === words.length; } +function occupant_getPrototypeOf(o) { + occupant_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return occupant_getPrototypeOf(o); +} + /** - * @namespace u - * @method u.getEmojisByAtrribute - * @param { 'category'|'cp'|'sn' } attr - * The attribute according to which the returned map should be keyed. - * @returns { Object } - * Map of emojis with the passed in `attr` used as key and a list of emojis as values. + * Represents a participant in a MUC + * @class + * @namespace _converse.ChatRoomOccupant + * @memberOf _converse */ -function getEmojisByAtrribute(attr) { - if (emojis_by_attribute[attr]) { - return emojis_by_attribute[attr]; - } - if (attr === 'category') { - return public_converse.emojis.json; +var ChatRoomOccupant = /*#__PURE__*/function (_Model) { + occupant_inherits(ChatRoomOccupant, _Model); + var _super = occupant_createSuper(ChatRoomOccupant); + function ChatRoomOccupant() { + occupant_classCallCheck(this, ChatRoomOccupant); + return _super.apply(this, arguments); } - var all_variants = public_converse.emojis.list.map(function (e) { - return e[attr]; - }).filter(function (c, i, arr) { - return arr.indexOf(c) == i; - }); - emojis_by_attribute[attr] = {}; - all_variants.forEach(function (v) { - return emojis_by_attribute[attr][v] = public_converse.emojis.list.find(function (i) { - return i[attr] === v; - }); - }); - return emojis_by_attribute[attr]; -} -Object.assign(emoji_utils_u, { - getEmojisByAtrribute: getEmojisByAtrribute, - isOnlyEmojis: isOnlyEmojis, - shortnamesToUnicode: shortnamesToUnicode -}); -;// CONCATENATED MODULE: ./src/headless/plugins/emoji/index.js -function emoji_typeof(obj) { + occupant_createClass(ChatRoomOccupant, [{ + key: "defaults", + value: function defaults() { + // eslint-disable-line class-methods-use-this + return { + hats: [], + show: 'offline', + states: [] + }; + } + }, { + key: "save", + value: function save(key, val, options) { + var attrs; + if (key == null) { + // eslint-disable-line no-eq-null + return occupant_get(occupant_getPrototypeOf(ChatRoomOccupant.prototype), "save", this).call(this, key, val, options); + } else if (occupant_typeof(key) === 'object') { + attrs = key; + options = val; + } else { + (attrs = {})[key] = val; + } + if (attrs.occupant_id) { + attrs.id = attrs.occupant_id; + } + return occupant_get(occupant_getPrototypeOf(ChatRoomOccupant.prototype), "save", this).call(this, attrs, options); + } + }, { + key: "getDisplayName", + value: function getDisplayName() { + return this.get('nick') || this.get('jid'); + } + }, { + key: "isMember", + value: function isMember() { + return ['admin', 'owner', 'member'].includes(this.get('affiliation')); + } + }, { + key: "isModerator", + value: function isModerator() { + return ['admin', 'owner'].includes(this.get('affiliation')) || this.get('role') === 'moderator'; + } + }, { + key: "isSelf", + value: function isSelf() { + return this.get('states').includes('110'); + } + }]); + return ChatRoomOccupant; +}(Model); +/* harmony default export */ const occupant = (ChatRoomOccupant); +;// CONCATENATED MODULE: ./src/headless/plugins/muc/utils.js +function muc_utils_typeof(obj) { "@babel/helpers - typeof"; - return emoji_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return muc_utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, emoji_typeof(obj); + }, muc_utils_typeof(obj); } -function emoji_regeneratorRuntime() { +function utils_ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + return keys; +} +function utils_objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? utils_ownKeys(Object(source), !0).forEach(function (key) { + utils_defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : utils_ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + return target; +} +function utils_defineProperty(obj, key, value) { + key = utils_toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; +} +function utils_toPropertyKey(arg) { + var key = utils_toPrimitive(arg, "string"); + return muc_utils_typeof(key) === "symbol" ? key : String(key); +} +function utils_toPrimitive(input, hint) { + if (muc_utils_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (muc_utils_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function muc_utils_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - emoji_regeneratorRuntime = function _regeneratorRuntime() { + muc_utils_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -46453,7 +43272,7 @@ function emoji_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == emoji_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == muc_utils_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -46678,7 +43497,7 @@ function emoji_regeneratorRuntime() { } }, exports; } -function emoji_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function muc_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -46692,545 +43511,378 @@ function emoji_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) Promise.resolve(value).then(_next, _throw); } } -function emoji_asyncToGenerator(fn) { +function muc_utils_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - emoji_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + muc_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - emoji_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + muc_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -/** - * @module converse-emoji - * @copyright 2022, the Converse.js contributors - * @license Mozilla Public License (MPLv2) - */ -public_converse.emojis = { - 'initialized': false, - 'initialized_promise': getOpenPromise() -}; -public_converse.plugins.add('converse-emoji', { - initialize: function initialize() { - /* The initialize function gets called as soon as the plugin is - * loaded by converse.js's plugin machinery. - */ - var ___ = shared_converse.___; - shared_api.settings.extend({ - 'emoji_image_path': 'https://twemoji.maxcdn.com/v/12.1.6/', - 'emoji_categories': { - "smileys": ":grinning:", - "people": ":thumbsup:", - "activity": ":soccer:", - "travel": ":motorcycle:", - "objects": ":bomb:", - "nature": ":rainbow:", - "food": ":hotdog:", - "symbols": ":musical_note:", - "flags": ":flag_ac:", - "custom": null - }, - // We use the triple-underscore method which doesn't actually - // translate but does signify to gettext that these strings should - // go into the POT file. The translation then happens in the - // template. We do this so that users can pass in their own - // strings via converse.initialize, which is before __ is - // available. - 'emoji_category_labels': { - "smileys": ___("Smileys and emotions"), - "people": ___("People"), - "activity": ___("Activities"), - "travel": ___("Travel"), - "objects": ___("Objects"), - "nature": ___("Animals and nature"), - "food": ___("Food and drink"), - "symbols": ___("Symbols"), - "flags": ___("Flags"), - "custom": ___("Stickers") - } - }); - /** - * Model for storing data related to the Emoji picker widget - * @class - * @namespace _converse.EmojiPicker - * @memberOf _converse - */ - shared_converse.EmojiPicker = Model.extend({ - defaults: { - 'current_category': 'smileys', - 'current_skintone': '', - 'scroll_position': 0 - } - }); +var muc_utils_converse$env = public_converse.env, + muc_utils_Strophe = muc_utils_converse$env.Strophe, + utils_sizzle = muc_utils_converse$env.sizzle, + muc_utils_u = muc_utils_converse$env.u; +function getAutoFetchedAffiliationLists() { + var affs = shared_api.settings.get('muc_fetch_members'); + return Array.isArray(affs) ? affs : affs ? ['member', 'admin', 'owner'] : []; +} - // We extend the default converse.js API to add methods specific to MUC groupchats. - Object.assign(shared_api, { - /** - * @namespace api.emojis - * @memberOf api - */ - emojis: { - /** - * Initializes Emoji support by downloading the emojis JSON (and any applicable images). - * @method api.emojis.initialize - * @returns {Promise} - */ - initialize: function initialize() { - return emoji_asyncToGenerator( /*#__PURE__*/emoji_regeneratorRuntime().mark(function _callee() { - var module, json, getShortNames; - return emoji_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - if (public_converse.emojis.initialized) { - _context.next = 13; - break; - } - public_converse.emojis.initialized = true; - _context.next = 4; - return __webpack_require__.e(/* import() | emojis */ 4610).then(__webpack_require__.t.bind(__webpack_require__, 5175, 19)); - case 4: - module = _context.sent; - json = public_converse.emojis.json = module.default; - public_converse.emojis.by_sn = Object.keys(json).reduce(function (result, cat) { - return Object.assign(result, json[cat]); - }, {}); - public_converse.emojis.list = Object.values(public_converse.emojis.by_sn); - public_converse.emojis.list.sort(function (a, b) { - return a.sn < b.sn ? -1 : a.sn > b.sn ? 1 : 0; - }); - public_converse.emojis.shortnames = public_converse.emojis.list.map(function (m) { - return m.sn; - }); - getShortNames = function getShortNames() { - return public_converse.emojis.shortnames.map(function (s) { - return s.replace(/[+]/g, "\\$&"); - }).join('|'); - }; - public_converse.emojis.shortnames_regex = new RegExp(getShortNames(), "gi"); - public_converse.emojis.initialized_promise.resolve(); - case 13: - return _context.abrupt("return", public_converse.emojis.initialized_promise); - case 14: - case "end": - return _context.stop(); - } - }, _callee); - }))(); - } - } +/** + * Given an occupant model, see which roles may be assigned to that user. + * @param { Model } occupant + * @returns { Array<('moderator'|'participant'|'visitor')> } - An array of assignable roles + */ +function getAssignableRoles(occupant) { + var disabled = shared_api.settings.get('modtools_disable_assign'); + if (!Array.isArray(disabled)) { + disabled = disabled ? ROLES : []; + } + if (occupant.get('role') === 'moderator') { + return ROLES.filter(function (r) { + return !disabled.includes(r); }); + } else { + return []; } -}); -;// CONCATENATED MODULE: ./src/headless/plugins/muc/message.js - +} +function registerDirectInvitationHandler() { + shared_converse.connection.addHandler(function (message) { + shared_converse.onDirectMUCInvitation(message); + return true; + }, 'jabber:x:conference', 'message'); +} +function disconnectChatRooms() { + /* When disconnecting, mark all groupchats as + * disconnected, so that they will be properly entered again + * when fetched from session storage. + */ + return shared_converse.chatboxes.filter(function (m) { + return m.get('type') === shared_converse.CHATROOMS_TYPE; + }).forEach(function (m) { + return m.session.save({ + 'connection_status': public_converse.ROOMSTATUS.DISCONNECTED + }); + }); +} +function onWindowStateChanged(_x) { + return _onWindowStateChanged.apply(this, arguments); +} +function _onWindowStateChanged() { + _onWindowStateChanged = muc_utils_asyncToGenerator( /*#__PURE__*/muc_utils_regeneratorRuntime().mark(function _callee2(data) { + var rooms; + return muc_utils_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + if (!(data.state === 'visible' && shared_api.connection.connected())) { + _context2.next = 5; + break; + } + _context2.next = 3; + return shared_api.rooms.get(); + case 3: + rooms = _context2.sent; + rooms.forEach(function (room) { + return room.rejoinIfNecessary(); + }); + case 5: + case "end": + return _context2.stop(); + } + }, _callee2); + })); + return _onWindowStateChanged.apply(this, arguments); +} +function routeToRoom(_x2) { + return _routeToRoom.apply(this, arguments); +} +/* Opens a groupchat, making sure that certain attributes + * are correct, for example that the "type" is set to + * "chatroom". + */ +function _routeToRoom() { + _routeToRoom = muc_utils_asyncToGenerator( /*#__PURE__*/muc_utils_regeneratorRuntime().mark(function _callee3(jid) { + return muc_utils_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + if (muc_utils_u.isValidMUCJID(jid)) { + _context3.next = 2; + break; + } + return _context3.abrupt("return", log.warn("invalid jid \"".concat(jid, "\" provided in url fragment"))); + case 2: + _context3.next = 4; + return shared_api.waitUntil('roomsAutoJoined'); + case 4: + if (!shared_api.settings.get('allow_bookmarks')) { + _context3.next = 7; + break; + } + _context3.next = 7; + return shared_api.waitUntil('bookmarksInitialized'); + case 7: + shared_api.rooms.open(jid); + case 8: + case "end": + return _context3.stop(); + } + }, _callee3); + })); + return _routeToRoom.apply(this, arguments); +} +function openChatRoom(_x3, _x4) { + return _openChatRoom.apply(this, arguments); +} /** - * Mixing that turns a Message model into a ChatRoomMessage model. - * @class - * @namespace _converse.ChatRoomMessage - * @memberOf _converse + * A direct MUC invitation to join a groupchat has been received + * See XEP-0249: Direct MUC invitations. + * @private + * @method _converse.ChatRoom#onDirectMUCInvitation + * @param { Element } message - The message stanza containing the invitation. */ -var ChatRoomMessageMixin = { - initialize: function initialize() { - var _this = this, - _this$collection; - if (!this.checkValidity()) { - return; - } - if (this.get('file')) { - this.on('change:put', function () { - return _this.uploadFile(); - }); - } - // If `type` changes from `error` to `groupchat`, we want to set the occupant. See #2733 - this.on('change:type', function () { - return _this.setOccupant(); - }); - this.on('change:is_ephemeral', function () { - return _this.setTimerForEphemeralMessage(); - }); - this.chatbox = (_this$collection = this.collection) === null || _this$collection === void 0 ? void 0 : _this$collection.chatbox; - this.setTimerForEphemeralMessage(); - this.setOccupant(); - /** - * Triggered once a { @link _converse.ChatRoomMessage } has been created and initialized. - * @event _converse#chatRoomMessageInitialized - * @type { _converse.ChatRoomMessages} - * @example _converse.api.listen.on('chatRoomMessageInitialized', model => { ... }); - */ - shared_api.trigger('chatRoomMessageInitialized', this); - }, - getDisplayName: function getDisplayName() { - var _this$occupant; - return ((_this$occupant = this.occupant) === null || _this$occupant === void 0 ? void 0 : _this$occupant.getDisplayName()) || this.get('nick'); - }, - /** - * Determines whether this messsage may be moderated, - * based on configuration settings and server support. - * @async - * @private - * @method _converse.ChatRoomMessages#mayBeModerated - * @returns { Boolean } - */ - mayBeModerated: function mayBeModerated() { - if (typeof this.get('from_muc') === 'undefined') { - // If from_muc is not defined, then this message hasn't been - // reflected yet, which means we won't have a XEP-0359 stanza id. - return; - } - return ['all', 'moderator'].includes(shared_api.settings.get('allow_message_retraction')) && this.get("stanza_id ".concat(this.get('from_muc'))) && this.chatbox.canModerateMessages(); - }, - checkValidity: function checkValidity() { - var result = shared_converse.Message.prototype.checkValidity.call(this); - !result && this.chatbox.debouncedRejoin(); - return result; - }, - onOccupantRemoved: function onOccupantRemoved() { - this.stopListening(this.occupant); - delete this.occupant; - this.listenTo(this.chatbox.occupants, 'add', this.onOccupantAdded); - }, - onOccupantAdded: function onOccupantAdded(occupant) { - if (this.get('occupant_id')) { - if (occupant.get('occupant_id') !== this.get('occupant_id')) { - return; +function _openChatRoom() { + _openChatRoom = muc_utils_asyncToGenerator( /*#__PURE__*/muc_utils_regeneratorRuntime().mark(function _callee4(jid, settings) { + var chatbox; + return muc_utils_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + settings.type = shared_converse.CHATROOMS_TYPE; + settings.id = jid; + _context4.next = 4; + return shared_api.rooms.get(jid, settings, true); + case 4: + chatbox = _context4.sent; + chatbox.maybeShow(true); + return _context4.abrupt("return", chatbox); + case 7: + case "end": + return _context4.stop(); } - } else if (occupant.get('nick') !== Strophe.getResourceFromJid(this.get('from'))) { - return; - } - this.occupant = occupant; - if (occupant.get('jid')) { - this.save('from_real_jid', occupant.get('jid')); - } - this.trigger('occupantAdded'); - this.listenTo(this.occupant, 'destroy', this.onOccupantRemoved); - this.stopListening(this.chatbox.occupants, 'add', this.onOccupantAdded); - }, - getOccupant: function getOccupant() { - if (this.occupant) return this.occupant; - this.setOccupant(); - return this.occupant; - }, - setOccupant: function setOccupant() { - if (this.get('type') !== 'groupchat' || this.isEphemeral() || this.occupant) { - return; - } - var nick = Strophe.getResourceFromJid(this.get('from')); - var occupant_id = this.get('occupant_id'); - this.occupant = this.chatbox.occupants.findOccupant({ - nick: nick, - occupant_id: occupant_id - }); - if (!this.occupant) { - this.occupant = this.chatbox.occupants.create({ - nick: nick, - occupant_id: occupant_id, - jid: this.get('from_real_jid') - }); - if (shared_api.settings.get('muc_send_probes')) { - var jid = "".concat(this.chatbox.get('jid'), "/").concat(nick); - shared_api.user.presence.send('probe', jid); + }, _callee4); + })); + return _openChatRoom.apply(this, arguments); +} +function onDirectMUCInvitation(_x5) { + return _onDirectMUCInvitation.apply(this, arguments); +} +function _onDirectMUCInvitation() { + _onDirectMUCInvitation = muc_utils_asyncToGenerator( /*#__PURE__*/muc_utils_regeneratorRuntime().mark(function _callee5(message) { + var x_el, from, room_jid, reason, result, _converse$roster$get$, _converse$roster$get, contact, chatroom; + return muc_utils_regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + x_el = utils_sizzle('x[xmlns="jabber:x:conference"]', message).pop(), from = muc_utils_Strophe.getBareJidFromJid(message.getAttribute('from')), room_jid = x_el.getAttribute('jid'), reason = x_el.getAttribute('reason'); + if (!shared_api.settings.get('auto_join_on_invite')) { + _context5.next = 5; + break; + } + result = true; + _context5.next = 9; + break; + case 5: + // Invite request might come from someone not your roster list + contact = (_converse$roster$get$ = (_converse$roster$get = shared_converse.roster.get(from)) === null || _converse$roster$get === void 0 ? void 0 : _converse$roster$get.getDisplayName()) !== null && _converse$roster$get$ !== void 0 ? _converse$roster$get$ : from; + /** + * *Hook* which is used to gather confirmation whether a direct MUC + * invitation should be accepted or not. + * + * It's meant for consumers of `@converse/headless` to subscribe to + * this hook and then ask the user to confirm. + * + * @event _converse#confirmDirectMUCInvitation + */ + _context5.next = 8; + return shared_api.hook('confirmDirectMUCInvitation', { + contact: contact, + reason: reason, + jid: room_jid + }, false); + case 8: + result = _context5.sent; + case 9: + if (!result) { + _context5.next = 14; + break; + } + _context5.next = 12; + return openChatRoom(room_jid, { + 'password': x_el.getAttribute('password') + }); + case 12: + chatroom = _context5.sent; + if (chatroom.session.get('connection_status') === public_converse.ROOMSTATUS.DISCONNECTED) { + shared_converse.chatboxes.get(room_jid).rejoin(); + } + case 14: + case "end": + return _context5.stop(); } - } - this.listenTo(this.occupant, 'destroy', this.onOccupantRemoved); + }, _callee5); + })); + return _onDirectMUCInvitation.apply(this, arguments); +} +function getDefaultMUCNickname() { + // XXX: if anything changes here, update the docs for the + // locked_muc_nickname setting. + if (!shared_converse.xmppstatus) { + throw new Error("Can't call _converse.getDefaultMUCNickname before the statusInitialized has been fired."); } -}; -/* harmony default export */ const muc_message = (ChatRoomMessageMixin); -;// CONCATENATED MODULE: ./node_modules/lodash-es/isElement.js - - + var nick = shared_converse.xmppstatus.getNickname(); + if (nick) { + return nick; + } else if (shared_api.settings.get('muc_nickname_from_jid')) { + return muc_utils_Strophe.unescapeNode(muc_utils_Strophe.getNodeFromJid(shared_converse.bare_jid)); + } +} /** - * Checks if `value` is likely a DOM element. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. - * @example - * - * _.isElement(document.body); - * // => true - * - * _.isElement(''); - * // => false + * Determines info message visibility based on + * muc_show_info_messages configuration setting + * @param {*} code + * @memberOf _converse */ -function isElement_isElement(value) { - return lodash_es_isObjectLike(value) && value.nodeType === 1 && !lodash_es_isPlainObject(value); +function isInfoVisible(code) { + var info_messages = shared_api.settings.get('muc_show_info_messages'); + if (info_messages.includes(code)) { + return true; + } + return false; } -/* harmony default export */ const lodash_es_isElement = (isElement_isElement); -;// CONCATENATED MODULE: ./src/headless/utils/parse-helpers.js -function parse_helpers_typeof(obj) { - "@babel/helpers - typeof"; - return parse_helpers_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, parse_helpers_typeof(obj); +/** + * Automatically join groupchats, based on the + * "auto_join_rooms" configuration setting, which is an array + * of strings (groupchat JIDs) or objects (with groupchat JID and other settings). + */ +function autoJoinRooms() { + return _autoJoinRooms.apply(this, arguments); } -function parse_helpers_ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - enumerableOnly && (symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - })), keys.push.apply(keys, symbols); - } - return keys; +function _autoJoinRooms() { + _autoJoinRooms = muc_utils_asyncToGenerator( /*#__PURE__*/muc_utils_regeneratorRuntime().mark(function _callee6() { + return muc_utils_regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + _context6.next = 2; + return Promise.all(shared_api.settings.get('auto_join_rooms').map(function (muc) { + if (typeof muc === 'string') { + if (shared_converse.chatboxes.where({ + 'jid': muc + }).length) { + return Promise.resolve(); + } + return shared_api.rooms.open(muc); + } else if (lodash_es_isObject(muc)) { + return shared_api.rooms.open(muc.jid, utils_objectSpread({}, muc)); + } else { + log.error('Invalid muc criteria specified for "auto_join_rooms"'); + return Promise.resolve(); + } + })); + case 2: + /** + * Triggered once any rooms that have been configured to be automatically joined, + * specified via the _`auto_join_rooms` setting, have been entered. + * @event _converse#roomsAutoJoined + * @example _converse.api.listen.on('roomsAutoJoined', () => { ... }); + * @example _converse.api.waitUntil('roomsAutoJoined').then(() => { ... }); + */ + shared_api.trigger('roomsAutoJoined'); + case 3: + case "end": + return _context6.stop(); + } + }, _callee6); + })); + return _autoJoinRooms.apply(this, arguments); } -function parse_helpers_objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = null != arguments[i] ? arguments[i] : {}; - i % 2 ? parse_helpers_ownKeys(Object(source), !0).forEach(function (key) { - parse_helpers_defineProperty(target, key, source[key]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : parse_helpers_ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); +function onAddClientFeatures() { + shared_api.disco.own.features.add(muc_utils_Strophe.NS.MUC); + if (shared_api.settings.get('allow_muc_invitations')) { + shared_api.disco.own.features.add('jabber:x:conference'); // Invites } - return target; } -function parse_helpers_defineProperty(obj, key, value) { - key = parse_helpers_toPropertyKey(key); - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true + +function onBeforeTearDown() { + shared_converse.chatboxes.where({ + 'type': shared_converse.CHATROOMS_TYPE + }).forEach(function (muc) { + return safeSave(muc.session, { + 'connection_status': public_converse.ROOMSTATUS.DISCONNECTED }); - } else { - obj[key] = value; - } - return obj; -} -function parse_helpers_toPropertyKey(arg) { - var key = parse_helpers_toPrimitive(arg, "string"); - return parse_helpers_typeof(key) === "symbol" ? key : String(key); -} -function parse_helpers_toPrimitive(input, hint) { - if (parse_helpers_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (parse_helpers_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); -} -function parse_helpers_toConsumableArray(arr) { - return parse_helpers_arrayWithoutHoles(arr) || parse_helpers_iterableToArray(arr) || parse_helpers_unsupportedIterableToArray(arr) || parse_helpers_nonIterableSpread(); -} -function parse_helpers_nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} -function parse_helpers_iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); -} -function parse_helpers_arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return parse_helpers_arrayLikeToArray(arr); -} -function parse_helpers_slicedToArray(arr, i) { - return parse_helpers_arrayWithHoles(arr) || parse_helpers_iterableToArrayLimit(arr, i) || parse_helpers_unsupportedIterableToArray(arr, i) || parse_helpers_nonIterableRest(); -} -function parse_helpers_nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} -function parse_helpers_unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return parse_helpers_arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return parse_helpers_arrayLikeToArray(o, minLen); -} -function parse_helpers_arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; + }); } -function parse_helpers_iterableToArrayLimit(arr, i) { - var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; - if (null != _i) { - var _s, - _e, - _x, - _r, - _arr = [], - _n = !0, - _d = !1; - try { - if (_x = (_i = _i.call(arr)).next, 0 === i) { - if (Object(_i) !== _i) return; - _n = !1; - } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); - } catch (err) { - _d = !0, _e = err; - } finally { - try { - if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; - } finally { - if (_d) throw _e; - } +function onStatusInitialized() { + window.addEventListener(shared_converse.unloadevent, function () { + var using_websocket = shared_api.connection.isType('websocket'); + if (using_websocket && (!shared_api.settings.get('enable_smacks') || !shared_converse.session.get('smacks_stream_id'))) { + // For non-SMACKS websocket connections, or non-resumeable + // connections, we disconnect all chatrooms when the page unloads. + // See issue #1111 + disconnectChatRooms(); } - return _arr; - } -} -function parse_helpers_arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; + }); } -/** - * @copyright 2022, the Converse.js contributors - * @license Mozilla Public License (MPLv2) - * @description Pure functions to help functionally parse messages. - * @todo Other parsing helpers can be made more abstract and placed here. - */ -var helpers = {}; -var escapeRegexChars = function escapeRegexChars(string, char) { - return string.replace(RegExp('\\' + char, 'ig'), '\\' + char); -}; -helpers.escapeCharacters = function (characters) { - return function (string) { - return characters.split('').reduce(escapeRegexChars, string); - }; -}; -helpers.escapeRegexString = helpers.escapeCharacters('[\\^$.?*+(){}|'); - -// `for` is ~25% faster than using `Array.find()` -helpers.findFirstMatchInArray = function (array) { - return function (text) { - for (var i = 0; i < array.length; i++) { - if (text.localeCompare(array[i], undefined, { - sensitivity: 'base' - }) === 0) { - return array[i]; - } +function onBeforeResourceBinding() { + shared_converse.connection.addHandler(function (stanza) { + var muc_jid = muc_utils_Strophe.getBareJidFromJid(stanza.getAttribute('from')); + if (!shared_converse.chatboxes.get(muc_jid)) { + shared_api.waitUntil('chatBoxesFetched').then( /*#__PURE__*/muc_utils_asyncToGenerator( /*#__PURE__*/muc_utils_regeneratorRuntime().mark(function _callee() { + var muc; + return muc_utils_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + muc = shared_converse.chatboxes.get(muc_jid); + if (!muc) { + _context.next = 5; + break; + } + _context.next = 4; + return muc.initialized; + case 4: + muc.message_handler.run(stanza); + case 5: + case "end": + return _context.stop(); + } + }, _callee); + }))); } - return null; - }; -}; -var reduceReferences = function reduceReferences(_ref, ref, index) { - var _ref2 = parse_helpers_slicedToArray(_ref, 2), - text = _ref2[0], - refs = _ref2[1]; - var updated_text = text; - var begin = ref.begin, - end = ref.end; - var value = ref.value; - begin = begin - index; - end = end - index - 1; // -1 to compensate for the removed @ - updated_text = "".concat(updated_text.slice(0, begin)).concat(value).concat(updated_text.slice(end + 1)); - return [updated_text, [].concat(parse_helpers_toConsumableArray(refs), [parse_helpers_objectSpread(parse_helpers_objectSpread({}, ref), {}, { - begin: begin, - end: end - })])]; -}; -helpers.reduceTextFromReferences = function (text, refs) { - return refs.reduce(reduceReferences, [text, []]); -}; -/* harmony default export */ const parse_helpers = (helpers); -;// CONCATENATED MODULE: ./src/headless/plugins/muc/constants.js -var ROLES = ['moderator', 'participant', 'visitor']; -var AFFILIATIONS = ['owner', 'admin', 'member', 'outcast', 'none']; -var MUC_ROLE_WEIGHTS = { - 'moderator': 1, - 'participant': 2, - 'visitor': 3, - 'none': 2 -}; -var AFFILIATION_CHANGES = { - OWNER: 'owner', - ADMIN: 'admin', - MEMBER: 'member', - EXADMIN: 'exadmin', - EXOWNER: 'exowner', - EXOUTCAST: 'exoutcast', - EXMEMBER: 'exmember' -}; -var AFFILIATION_CHANGES_LIST = Object.values(AFFILIATION_CHANGES); -var MUC_TRAFFIC_STATES = { - ENTERED: 'entered', - EXITED: 'exited' -}; -var MUC_TRAFFIC_STATES_LIST = Object.values(MUC_TRAFFIC_STATES); -var MUC_ROLE_CHANGES = { - OP: 'op', - DEOP: 'deop', - VOICE: 'voice', - MUTE: 'mute' -}; -var MUC_ROLE_CHANGES_LIST = Object.values(MUC_ROLE_CHANGES); -var INFO_CODES = { - 'visibility_changes': ['100', '102', '103', '172', '173', '174'], - 'self': ['110'], - 'non_privacy_changes': ['104', '201'], - 'muc_logging_changes': ['170', '171'], - 'nickname_changes': ['210', '303'], - 'disconnected': ['301', '307', '321', '322', '332', '333'], - 'affiliation_changes': [].concat(AFFILIATION_CHANGES_LIST), - 'join_leave_events': [].concat(MUC_TRAFFIC_STATES_LIST), - 'role_changes': [].concat(MUC_ROLE_CHANGES_LIST) -}; -var ROOMSTATUS = { - CONNECTED: 0, - CONNECTING: 1, - NICKNAME_REQUIRED: 2, - PASSWORD_REQUIRED: 3, - DISCONNECTED: 4, - ENTERED: 5, - DESTROYED: 6, - BANNED: 7, - CLOSING: 8 -}; -var ROOM_FEATURES = ['passwordprotected', 'unsecured', 'hidden', 'publicroom', 'membersonly', 'open', 'persistent', 'temporary', 'nonanonymous', 'semianonymous', 'moderated', 'unmoderated', 'mam_enabled']; -var MUC_NICK_CHANGED_CODE = '303'; - -// No longer used in code, but useful as reference. -// -// const ROOM_FEATURES_MAP = { -// 'passwordprotected': 'unsecured', -// 'unsecured': 'passwordprotected', -// 'hidden': 'publicroom', -// 'publicroom': 'hidden', -// 'membersonly': 'open', -// 'open': 'membersonly', -// 'persistent': 'temporary', -// 'temporary': 'persistent', -// 'nonanonymous': 'semianonymous', -// 'semianonymous': 'nonanonymous', -// 'moderated': 'unmoderated', -// 'unmoderated': 'moderated' -// }; -;// CONCATENATED MODULE: ./src/headless/plugins/muc/parsers.js -function muc_parsers_typeof(obj) { + return true; + }, null, 'message', 'groupchat'); +} +Object.assign(shared_converse, { + getAssignableRoles: getAssignableRoles +}); +;// CONCATENATED MODULE: ./src/headless/plugins/muc/occupants.js +function occupants_typeof(obj) { "@babel/helpers - typeof"; - return muc_parsers_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return occupants_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, muc_parsers_typeof(obj); + }, occupants_typeof(obj); } -function muc_parsers_regeneratorRuntime() { +function occupants_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - muc_parsers_regeneratorRuntime = function _regeneratorRuntime() { + occupants_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -47305,7 +43957,7 @@ function muc_parsers_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == muc_parsers_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == occupants_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -47528,455 +44180,447 @@ function muc_parsers_regeneratorRuntime() { nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } - }, exports; + }, exports; +} +function occupants_toConsumableArray(arr) { + return occupants_arrayWithoutHoles(arr) || occupants_iterableToArray(arr) || occupants_unsupportedIterableToArray(arr) || occupants_nonIterableSpread(); +} +function occupants_nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function occupants_unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return occupants_arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return occupants_arrayLikeToArray(o, minLen); +} +function occupants_iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +} +function occupants_arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return occupants_arrayLikeToArray(arr); +} +function occupants_arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; +} +function occupants_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } +} +function occupants_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + occupants_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + occupants_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); + }; +} +function occupants_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function occupants_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, occupants_toPropertyKey(descriptor.key), descriptor); + } +} +function occupants_createClass(Constructor, protoProps, staticProps) { + if (protoProps) occupants_defineProperties(Constructor.prototype, protoProps); + if (staticProps) occupants_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function occupants_get() { + if (typeof Reflect !== "undefined" && Reflect.get) { + occupants_get = Reflect.get.bind(); + } else { + occupants_get = function _get(target, property, receiver) { + var base = occupants_superPropBase(target, property); + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + if (desc.get) { + return desc.get.call(arguments.length < 3 ? target : receiver); + } + return desc.value; + }; + } + return occupants_get.apply(this, arguments); +} +function occupants_superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = occupants_getPrototypeOf(object); + if (object === null) break; + } + return object; +} +function occupants_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) occupants_setPrototypeOf(subClass, superClass); +} +function occupants_setPrototypeOf(o, p) { + occupants_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return occupants_setPrototypeOf(o, p); +} +function occupants_createSuper(Derived) { + var hasNativeReflectConstruct = occupants_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = occupants_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = occupants_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return occupants_possibleConstructorReturn(this, result); + }; } -function muc_parsers_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function occupants_possibleConstructorReturn(self, call) { + if (call && (occupants_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return occupants_assertThisInitialized(self); +} +function occupants_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} +function occupants_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; } - if (info.done) { - resolve(value); +} +function occupants_getPrototypeOf(o) { + occupants_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return occupants_getPrototypeOf(o); +} +function occupants_defineProperty(obj, key, value) { + key = occupants_toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); } else { - Promise.resolve(value).then(_next, _throw); + obj[key] = value; } + return obj; } -function muc_parsers_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - muc_parsers_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - muc_parsers_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); - }); - }; +function occupants_toPropertyKey(arg) { + var key = occupants_toPrimitive(arg, "string"); + return occupants_typeof(key) === "symbol" ? key : String(key); +} +function occupants_toPrimitive(input, hint) { + if (occupants_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (occupants_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); } -var parsers_converse$env = public_converse.env, - muc_parsers_Strophe = parsers_converse$env.Strophe, - muc_parsers_sizzle = parsers_converse$env.sizzle, - parsers_u = parsers_converse$env.u; -var muc_parsers_NS = muc_parsers_Strophe.NS; -/** - * Parses a message stanza for XEP-0317 MEP notification data - * @param { Element } stanza - The message stanza - * @returns { Array } Returns an array of objects representing elements. - */ -function getMEPActivities(stanza) { - var items_el = muc_parsers_sizzle("items[node=\"".concat(muc_parsers_Strophe.NS.CONFINFO, "\"]"), stanza).pop(); - if (!items_el) { - return null; - } - var from = stanza.getAttribute('from'); - var msgid = stanza.getAttribute('id'); - var selector = "item " + "conference-info[xmlns=\"".concat(muc_parsers_Strophe.NS.CONFINFO, "\"] ") + "activity[xmlns=\"".concat(muc_parsers_Strophe.NS.ACTIVITY, "\"]"); - return muc_parsers_sizzle(selector, items_el).map(function (el) { - var _el$querySelector; - var message = (_el$querySelector = el.querySelector('text')) === null || _el$querySelector === void 0 ? void 0 : _el$querySelector.textContent; - if (message) { - var _el$querySelector2; - var references = getReferences(stanza); - var reason = (_el$querySelector2 = el.querySelector('reason')) === null || _el$querySelector2 === void 0 ? void 0 : _el$querySelector2.textContent; - return { - from: from, - msgid: msgid, - message: message, - reason: reason, - references: references, - 'type': 'mep' - }; - } - return {}; - }); -} -/** - * Given a MUC stanza, check whether it has extended message information that - * includes the sender's real JID, as described here: - * https://xmpp.org/extensions/xep-0313.html#business-storeret-muc-archives - * - * If so, parse and return that data and return the user's JID - * - * Note, this function doesn't check whether this is actually a MAM archived stanza. - * - * @private - * @param { Element } stanza - The message stanza - * @returns { Object } - */ -function getJIDFromMUCUserData(stanza) { - var item = muc_parsers_sizzle("x[xmlns=\"".concat(muc_parsers_Strophe.NS.MUC_USER, "\"] item"), stanza).pop(); - return item === null || item === void 0 ? void 0 : item.getAttribute('jid'); -} + + + + +var occupants_u = public_converse.env.u; /** - * @private - * @param { Element } stanza - The message stanza - * @param { Element } original_stanza - The original stanza, that contains the - * message stanza, if it was contained, otherwise it's the message stanza itself. - * @returns { Object } + * A list of {@link _converse.ChatRoomOccupant} instances, representing participants in a MUC. + * @class + * @namespace _converse.ChatRoomOccupants + * @memberOf _converse */ -function getModerationAttributes(stanza) { - var fastening = muc_parsers_sizzle("apply-to[xmlns=\"".concat(muc_parsers_Strophe.NS.FASTEN, "\"]"), stanza).pop(); - if (fastening) { - var applies_to_id = fastening.getAttribute('id'); - var moderated = muc_parsers_sizzle("moderated[xmlns=\"".concat(muc_parsers_Strophe.NS.MODERATE, "\"]"), fastening).pop(); - if (moderated) { - var retracted = muc_parsers_sizzle("retract[xmlns=\"".concat(muc_parsers_Strophe.NS.RETRACT, "\"]"), moderated).pop(); - if (retracted) { - var _moderated$querySelec; - return { - 'editable': false, - 'moderated': 'retracted', - 'moderated_by': moderated.getAttribute('by'), - 'moderated_id': applies_to_id, - 'moderation_reason': (_moderated$querySelec = moderated.querySelector('reason')) === null || _moderated$querySelec === void 0 ? void 0 : _moderated$querySelec.textContent - }; +var ChatRoomOccupants = /*#__PURE__*/function (_Collection) { + occupants_inherits(ChatRoomOccupants, _Collection); + var _super = occupants_createSuper(ChatRoomOccupants); + function ChatRoomOccupants() { + var _this; + occupants_classCallCheck(this, ChatRoomOccupants); + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + _this = _super.call.apply(_super, [this].concat(args)); + occupants_defineProperty(occupants_assertThisInitialized(_this), "model", occupant); + return _this; + } + occupants_createClass(ChatRoomOccupants, [{ + key: "comparator", + value: function comparator(occupant1, occupant2) { + // eslint-disable-line class-methods-use-this + var role1 = occupant1.get('role') || 'none'; + var role2 = occupant2.get('role') || 'none'; + if (MUC_ROLE_WEIGHTS[role1] === MUC_ROLE_WEIGHTS[role2]) { + var nick1 = occupant1.getDisplayName().toLowerCase(); + var nick2 = occupant2.getDisplayName().toLowerCase(); + return nick1 < nick2 ? -1 : nick1 > nick2 ? 1 : 0; + } else { + return MUC_ROLE_WEIGHTS[role1] < MUC_ROLE_WEIGHTS[role2] ? -1 : 1; } } - } else { - var tombstone = muc_parsers_sizzle("> moderated[xmlns=\"".concat(muc_parsers_Strophe.NS.MODERATE, "\"]"), stanza).pop(); - if (tombstone) { - var _retracted = muc_parsers_sizzle("retracted[xmlns=\"".concat(muc_parsers_Strophe.NS.RETRACT, "\"]"), tombstone).pop(); - if (_retracted) { - var _tombstone$querySelec; - return { - 'editable': false, - 'is_tombstone': true, - 'moderated_by': tombstone.getAttribute('by'), - 'retracted': tombstone.getAttribute('stamp'), - 'moderation_reason': (_tombstone$querySelec = tombstone.querySelector('reason')) === null || _tombstone$querySelec === void 0 ? void 0 : _tombstone$querySelec.textContent - }; + }, { + key: "create", + value: function create(attrs, options) { + if (attrs.id || attrs instanceof Model) { + return occupants_get(occupants_getPrototypeOf(ChatRoomOccupants.prototype), "create", this).call(this, attrs, options); } + attrs.id = attrs.occupant_id || getUniqueId(); + return occupants_get(occupants_getPrototypeOf(ChatRoomOccupants.prototype), "create", this).call(this, attrs, options); } - } - return {}; -} -function getOccupantID(stanza, chatbox) { - if (chatbox.features.get(muc_parsers_Strophe.NS.OCCUPANTID)) { - var _sizzle$pop; - return (_sizzle$pop = muc_parsers_sizzle("occupant-id[xmlns=\"".concat(muc_parsers_Strophe.NS.OCCUPANTID, "\"]"), stanza).pop()) === null || _sizzle$pop === void 0 ? void 0 : _sizzle$pop.getAttribute('id'); - } -} - -/** - * Determines whether the sender of this MUC message is the current user or - * someone else. - * @param { MUCMessageAttributes } attrs - * @param { _converse.ChatRoom } chatbox - * @returns { 'me'|'them' } - */ -function getSender(attrs, chatbox) { - var is_me; - var own_occupant_id = chatbox.get('occupant_id'); - if (own_occupant_id) { - is_me = attrs.occupant_id === own_occupant_id; - } else if (attrs.from_real_jid) { - is_me = muc_parsers_Strophe.getBareJidFromJid(attrs.from_real_jid) === shared_converse.bare_jid; - } else { - is_me = attrs.nick === chatbox.get('nick'); - } - return is_me ? 'me' : 'them'; -} - -/** - * Parses a passed in message stanza and returns an object of attributes. - * @param { Element } stanza - The message stanza - * @param { Element } original_stanza - The original stanza, that contains the - * message stanza, if it was contained, otherwise it's the message stanza itself. - * @param { _converse.ChatRoom } chatbox - * @param { _converse } _converse - * @returns { Promise } - */ -function parseMUCMessage(_x, _x2) { - return _parseMUCMessage.apply(this, arguments); -} - -/** - * Given an IQ stanza with a member list, create an array of objects containing - * known member data (e.g. jid, nick, role, affiliation). - * @private - * @method muc_utils#parseMemberListIQ - * @returns { MemberListItem[] } - */ -function _parseMUCMessage() { - _parseMUCMessage = muc_parsers_asyncToGenerator( /*#__PURE__*/muc_parsers_regeneratorRuntime().mark(function _callee(stanza, chatbox) { - var _stanza$querySelector, _stanza$querySelector2, _stanza$querySelector3, _stanza$querySelector4, _chatbox$occupants$fi; - var selector, original_stanza, delay, from, marker, attrs; - return muc_parsers_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - throwErrorIfInvalidForward(stanza); - selector = "[xmlns=\"".concat(muc_parsers_NS.MAM, "\"] > forwarded[xmlns=\"").concat(muc_parsers_NS.FORWARD, "\"] > message"); - original_stanza = stanza; - stanza = muc_parsers_sizzle(selector, stanza).pop() || stanza; - if (!muc_parsers_sizzle("message > forwarded[xmlns=\"".concat(muc_parsers_Strophe.NS.FORWARD, "\"]"), stanza).length) { - _context.next = 6; - break; - } - return _context.abrupt("return", new StanzaParseError("Invalid Stanza: Forged MAM groupchat message from ".concat(stanza.getAttribute('from')), stanza)); - case 6: - delay = muc_parsers_sizzle("delay[xmlns=\"".concat(muc_parsers_Strophe.NS.DELAY, "\"]"), original_stanza).pop(); - from = stanza.getAttribute('from'); - marker = getChatMarker(stanza); - /** - * @typedef { Object } MUCMessageAttributes - * The object which {@link parseMUCMessage} returns - * @property { ('me'|'them') } sender - Whether the message was sent by the current user or someone else - * @property { Array } activities - A list of objects representing XEP-0316 MEP notification data - * @property { Array } references - A list of objects representing XEP-0372 references - * @property { Boolean } editable - Is this message editable via XEP-0308? - * @property { Boolean } is_archived - Is this message from a XEP-0313 MAM archive? - * @property { Boolean } is_carbon - Is this message a XEP-0280 Carbon? - * @property { Boolean } is_delayed - Was delivery of this message was delayed as per XEP-0203? - * @property { Boolean } is_encrypted - Is this message XEP-0384 encrypted? - * @property { Boolean } is_error - Whether an error was received for this message - * @property { Boolean } is_headline - Is this a "headline" message? - * @property { Boolean } is_markable - Can this message be marked with a XEP-0333 chat marker? - * @property { Boolean } is_marker - Is this message a XEP-0333 Chat Marker? - * @property { Boolean } is_only_emojis - Does the message body contain only emojis? - * @property { Boolean } is_spoiler - Is this a XEP-0382 spoiler message? - * @property { Boolean } is_tombstone - Is this a XEP-0424 tombstone? - * @property { Boolean } is_unstyled - Whether XEP-0393 styling hints should be ignored - * @property { Boolean } is_valid_receipt_request - Does this message request a XEP-0184 receipt (and is not from us or a carbon or archived message) - * @property { Object } encrypted - XEP-0384 encryption payload attributes - * @property { String } body - The contents of the tag of the message stanza - * @property { String } chat_state - The XEP-0085 chat state notification contained in this message - * @property { String } edited - An ISO8601 string recording the time that the message was edited per XEP-0308 - * @property { String } error_condition - The defined error condition - * @property { String } error_text - The error text received from the server - * @property { String } error_type - The type of error received from the server - * @property { String } from - The sender JID (${muc_jid}/${nick}) - * @property { String } from_muc - The JID of the MUC from which this message was sent - * @property { String } from_real_jid - The real JID of the sender, if available - * @property { String } fullname - The full name of the sender - * @property { String } marker - The XEP-0333 Chat Marker value - * @property { String } marker_id - The `id` attribute of a XEP-0333 chat marker - * @property { String } moderated - The type of XEP-0425 moderation (if any) that was applied - * @property { String } moderated_by - The JID of the user that moderated this message - * @property { String } moderated_id - The XEP-0359 Stanza ID of the message that this one moderates - * @property { String } moderation_reason - The reason provided why this message moderates another - * @property { String } msgid - The root `id` attribute of the stanza - * @property { String } nick - The MUC nickname of the sender - * @property { String } occupant_id - The XEP-0421 occupant ID - * @property { String } oob_desc - The description of the XEP-0066 out of band data - * @property { String } oob_url - The URL of the XEP-0066 out of band data - * @property { String } origin_id - The XEP-0359 Origin ID - * @property { String } receipt_id - The `id` attribute of a XEP-0184 element - * @property { String } received - An ISO8601 string recording the time that the message was received - * @property { String } replace_id - The `id` attribute of a XEP-0308 element - * @property { String } retracted - An ISO8601 string recording the time that the message was retracted - * @property { String } retracted_id - The `id` attribute of a XEP-424 element - * @property { String } spoiler_hint The XEP-0382 spoiler hint - * @property { String } stanza_id - The XEP-0359 Stanza ID. Note: the key is actualy `stanza_id ${by_jid}` and there can be multiple. - * @property { String } subject - The element value - * @property { String } thread - The element value - * @property { String } time - The time (in ISO8601 format), either given by the XEP-0203 element, or of receipt. - * @property { String } to - The recipient JID - * @property { String } type - The type of message - */ - attrs = Object.assign({ - from: from, - 'activities': getMEPActivities(stanza), - 'body': (_stanza$querySelector = stanza.querySelector(':scope > body')) === null || _stanza$querySelector === void 0 ? void 0 : (_stanza$querySelector2 = _stanza$querySelector.textContent) === null || _stanza$querySelector2 === void 0 ? void 0 : _stanza$querySelector2.trim(), - 'chat_state': getChatState(stanza), - 'from_muc': muc_parsers_Strophe.getBareJidFromJid(from), - 'is_archived': isArchived(original_stanza), - 'is_carbon': isCarbon(original_stanza), - 'is_delayed': !!delay, - 'is_forwarded': !!stanza.querySelector('forwarded'), - 'is_headline': isHeadline(stanza), - 'is_markable': !!muc_parsers_sizzle("markable[xmlns=\"".concat(muc_parsers_Strophe.NS.MARKERS, "\"]"), stanza).length, - 'is_marker': !!marker, - 'is_unstyled': !!muc_parsers_sizzle("unstyled[xmlns=\"".concat(muc_parsers_Strophe.NS.STYLING, "\"]"), stanza).length, - 'marker_id': marker && marker.getAttribute('id'), - 'msgid': stanza.getAttribute('id') || original_stanza.getAttribute('id'), - 'nick': muc_parsers_Strophe.unescapeNode(muc_parsers_Strophe.getResourceFromJid(from)), - 'occupant_id': getOccupantID(stanza, chatbox), - 'receipt_id': getReceiptId(stanza), - 'received': new Date().toISOString(), - 'references': getReferences(stanza), - 'subject': (_stanza$querySelector3 = stanza.querySelector('subject')) === null || _stanza$querySelector3 === void 0 ? void 0 : _stanza$querySelector3.textContent, - 'thread': (_stanza$querySelector4 = stanza.querySelector('thread')) === null || _stanza$querySelector4 === void 0 ? void 0 : _stanza$querySelector4.textContent, - 'time': delay ? dayjs_min_default()(delay.getAttribute('stamp')).toISOString() : new Date().toISOString(), - 'to': stanza.getAttribute('to'), - 'type': stanza.getAttribute('type') - }, getErrorAttributes(stanza), getOutOfBandAttributes(stanza), getSpoilerAttributes(stanza), getCorrectionAttributes(stanza, original_stanza), getStanzaIDs(stanza, original_stanza), getOpenGraphMetadata(stanza), getRetractionAttributes(stanza, original_stanza), getModerationAttributes(stanza), getEncryptionAttributes(stanza, shared_converse)); - _context.next = 12; - return shared_api.emojis.initialize(); - case 12: - attrs.from_real_jid = attrs.is_archived && getJIDFromMUCUserData(stanza) || ((_chatbox$occupants$fi = chatbox.occupants.findOccupant(attrs)) === null || _chatbox$occupants$fi === void 0 ? void 0 : _chatbox$occupants$fi.get('jid')); - attrs = Object.assign({ - 'is_only_emojis': attrs.body ? parsers_u.isOnlyEmojis(attrs.body) : false, - 'is_valid_receipt_request': isValidReceiptRequest(stanza, attrs), - 'message': attrs.body || attrs.error, - // TODO: Should only be used for error and info messages - 'sender': getSender(attrs, chatbox) - }, attrs); - if (!(attrs.is_archived && original_stanza.getAttribute('from') !== attrs.from_muc)) { - _context.next = 18; - break; - } - return _context.abrupt("return", new StanzaParseError("Invalid Stanza: Forged MAM message from ".concat(original_stanza.getAttribute('from')), stanza)); - case 18: - if (!(attrs.is_archived && original_stanza.getAttribute('from') !== chatbox.get('jid'))) { - _context.next = 22; - break; - } - return _context.abrupt("return", new StanzaParseError("Invalid Stanza: Forged MAM groupchat message from ".concat(stanza.getAttribute('from')), stanza)); - case 22: - if (!attrs.is_carbon) { - _context.next = 24; - break; + }, { + key: "fetchMembers", + value: function () { + var _fetchMembers = occupants_asyncToGenerator( /*#__PURE__*/occupants_regeneratorRuntime().mark(function _callee() { + var _this$getOwnOccupant, + _this2 = this; + var affiliations, muc_jid, aff_lists, new_members, known_affiliations, new_jids, new_nicks, removed_members; + return occupants_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + if (['member', 'admin', 'owner'].includes((_this$getOwnOccupant = this.getOwnOccupant()) === null || _this$getOwnOccupant === void 0 ? void 0 : _this$getOwnOccupant.get('affiliation'))) { + _context.next = 2; + break; + } + return _context.abrupt("return"); + case 2: + affiliations = getAutoFetchedAffiliationLists(); + if (!(affiliations.length === 0)) { + _context.next = 5; + break; + } + return _context.abrupt("return"); + case 5: + muc_jid = this.chatroom.get('jid'); + _context.next = 8; + return Promise.all(affiliations.map(function (a) { + return getAffiliationList(a, muc_jid); + })); + case 8: + aff_lists = _context.sent; + new_members = aff_lists.reduce(function (acc, val) { + return occupants_u.isErrorObject(val) ? acc : [].concat(occupants_toConsumableArray(val), occupants_toConsumableArray(acc)); + }, []); + known_affiliations = affiliations.filter(function (a) { + return !occupants_u.isErrorObject(aff_lists[affiliations.indexOf(a)]); + }); + new_jids = new_members.map(function (m) { + return m.jid; + }).filter(function (m) { + return m !== undefined; + }); + new_nicks = new_members.map(function (m) { + return !m.jid && m.nick || undefined; + }).filter(function (m) { + return m !== undefined; + }); + removed_members = this.filter(function (m) { + return known_affiliations.includes(m.get('affiliation')) && !new_nicks.includes(m.get('nick')) && !new_jids.includes(m.get('jid')); + }); + removed_members.forEach(function (occupant) { + if (occupant.get('jid') === shared_converse.bare_jid) { + return; + } else if (occupant.get('show') === 'offline') { + occupant.destroy(); + } else { + occupant.save('affiliation', null); + } + }); + new_members.forEach(function (attrs) { + var occupant = _this2.findOccupant(attrs); + occupant ? occupant.save(attrs) : _this2.create(attrs); + }); + /** + * Triggered once the member lists for this MUC have been fetched and processed. + * @event _converse#membersFetched + * @example _converse.api.listen.on('membersFetched', () => { ... }); + */ + shared_api.trigger('membersFetched'); + case 17: + case "end": + return _context.stop(); } - return _context.abrupt("return", new StanzaParseError('Invalid Stanza: MUC messages SHOULD NOT be XEP-0280 carbon copied', stanza)); - case 24: - // We prefer to use one of the XEP-0359 unique and stable stanza IDs as the Model id, to avoid duplicates. - attrs['id'] = attrs['origin_id'] || attrs["stanza_id ".concat(attrs.from_muc || attrs.from)] || parsers_u.getUniqueId(); - - /** - * *Hook* which allows plugins to add additional parsing - * @event _converse#parseMUCMessage - */ - _context.next = 27; - return shared_api.hook('parseMUCMessage', stanza, attrs); - case 27: - attrs = _context.sent; - return _context.abrupt("return", Object.assign(attrs, getMediaURLsMetadata(attrs.is_encrypted ? attrs.plaintext : attrs.body))); - case 29: - case "end": - return _context.stop(); + }, _callee, this); + })); + function fetchMembers() { + return _fetchMembers.apply(this, arguments); } - }, _callee); - })); - return _parseMUCMessage.apply(this, arguments); -} -function parseMemberListIQ(iq) { - return muc_parsers_sizzle("query[xmlns=\"".concat(muc_parsers_Strophe.NS.MUC_ADMIN, "\"] item"), iq).map(function (item) { + return fetchMembers; + }() /** - * @typedef {Object} MemberListItem - * Either the JID or the nickname (or both) will be available. - * @property {string} affiliation - * @property {string} [role] - * @property {string} [jid] - * @property {string} [nick] + * @typedef { Object} OccupantData + * @property { String } [jid] + * @property { String } [nick] + * @property { String } [occupant_id] - The XEP-0421 unique occupant id */ - var data = { - 'affiliation': item.getAttribute('affiliation') - }; - var jid = item.getAttribute('jid'); - if (parsers_u.isValidJID(jid)) { - data['jid'] = jid; - } else { - // XXX: Prosody sends nick for the jid attribute value - // Perhaps for anonymous room? - data['nick'] = jid; - } - var nick = item.getAttribute('nick'); - if (nick) { - data['nick'] = nick; + /** + * Try to find an existing occupant based on the provided + * @link { OccupantData } object. + * + * Fetching the user by `occupant_id` is the quickest, O(1), + * since it's a dictionary lookup. + * + * Fetching by jid or nick is O(n), since it requires traversing an array. + * + * Lookup by occupant_id is done first, then jid, and then nick. + * + * @method _converse.ChatRoomOccupants#findOccupant + * @param { OccupantData } data + */ + }, { + key: "findOccupant", + value: function findOccupant(data) { + if (data.occupant_id) { + return this.get(data.occupant_id); + } + var jid = data.jid && external_strophe_namespaceObject.Strophe.getBareJidFromJid(data.jid); + return jid && this.findWhere({ + jid: jid + }) || data.nick && this.findWhere({ + 'nick': data.nick + }); } - var role = item.getAttribute('role'); - if (role) { - data['role'] = nick; + + /** + * Get the {@link _converse.ChatRoomOccupant} instance which + * represents the current user. + * @method _converse.ChatRoomOccupants#getOwnOccupant + * @returns { _converse.ChatRoomOccupant } + */ + }, { + key: "getOwnOccupant", + value: function getOwnOccupant() { + return this.findOccupant({ + 'jid': shared_converse.bare_jid, + 'occupant_id': this.chatroom.get('occupant_id') + }); } - return data; - }); -} + }]); + return ChatRoomOccupants; +}(Collection); +/* harmony default export */ const occupants = (ChatRoomOccupants); +;// CONCATENATED MODULE: ./src/headless/plugins/muc/affiliations/api.js -/** - * Parses a passed in MUC presence stanza and returns an object of attributes. - * @method parseMUCPresence - * @param { Element } stanza - The presence stanza - * @param { _converse.ChatRoom } chatbox - * @returns { MUCPresenceAttributes } - */ -function parseMUCPresence(stanza, chatbox) { +/* harmony default export */ const affiliations_api = ({ /** - * @typedef { Object } MUCPresenceAttributes - * The object which {@link parseMUCPresence} returns - * @property { ("offline|online") } show - * @property { Array } hats - An array of XEP-0317 hats - * @property { Array } states - * @property { String } from - The sender JID (${muc_jid}/${nick}) - * @property { String } nick - The nickname of the sender - * @property { String } occupant_id - The XEP-0421 occupant ID - * @property { String } type - The type of presence + * The "affiliations" namespace groups methods relevant to setting and + * getting MUC affiliations. + * + * @namespace api.rooms.affiliations + * @memberOf api.rooms */ - var from = stanza.getAttribute('from'); - var type = stanza.getAttribute('type'); - var data = { - 'is_me': !!stanza.querySelector("status[code='110']"), - 'from': from, - 'occupant_id': getOccupantID(stanza, chatbox), - 'nick': muc_parsers_Strophe.getResourceFromJid(from), - 'type': type, - 'states': [], - 'hats': [], - 'show': type !== 'unavailable' ? 'online' : 'offline' - }; - Array.from(stanza.children).forEach(function (child) { - if (child.matches('status')) { - data.status = child.textContent || null; - } else if (child.matches('show')) { - data.show = child.textContent || 'online'; - } else if (child.matches('x') && child.getAttribute('xmlns') === muc_parsers_Strophe.NS.MUC_USER) { - Array.from(child.children).forEach(function (item) { - if (item.nodeName === 'item') { - data.affiliation = item.getAttribute('affiliation'); - data.role = item.getAttribute('role'); - data.jid = item.getAttribute('jid'); - data.nick = item.getAttribute('nick') || data.nick; - } else if (item.nodeName == 'status' && item.getAttribute('code')) { - data.states.push(item.getAttribute('code')); - } - }); - } else if (child.matches('x') && child.getAttribute('xmlns') === muc_parsers_Strophe.NS.VCARDUPDATE) { - var _child$querySelector; - data.image_hash = (_child$querySelector = child.querySelector('photo')) === null || _child$querySelector === void 0 ? void 0 : _child$querySelector.textContent; - } else if (child.matches('hats') && child.getAttribute('xmlns') === muc_parsers_Strophe.NS.MUC_HATS) { - /** - * @typedef { Object } MUCHat - * Object representing a XEP-0371 Hat - * @property { String } title - * @property { String } uri - */ - data['hats'] = Array.from(child.children).map(function (c) { - return c.matches('hat') && { - 'title': c.getAttribute('title'), - 'uri': c.getAttribute('uri') - }; - }); + affiliations: { + /** + * Set the given affliation for the given JIDs in the specified MUCs + * + * @param { String|Array } muc_jids - The JIDs of the MUCs in + * which the affiliation should be set. + * @param { Object[] } users - An array of objects representing users + * for whom the affiliation is to be set. + * @param { String } users[].jid - The JID of the user whose affiliation will change + * @param { ('outcast'|'member'|'admin'|'owner') } users[].affiliation - The new affiliation for this user + * @param { String } [users[].reason] - An optional reason for the affiliation change + * @returns { Promise } + * + * @example + * api.rooms.affiliations.set( + * [ + * 'muc1@muc.example.org', + * 'muc2@muc.example.org' + * ], [ + * { + * 'jid': 'user@example.org', + * 'affiliation': 'member', + * 'reason': "You're one of us now!" + * } + * ] + * ) + */ + set: function set(muc_jids, users) { + users = !Array.isArray(users) ? [users] : users; + muc_jids = !Array.isArray(muc_jids) ? [muc_jids] : muc_jids; + return setAffiliations(muc_jids, users); } - }); - return data; -} -;// CONCATENATED MODULE: ./src/headless/plugins/muc/affiliations/utils.js -function affiliations_utils_typeof(obj) { + } +}); +;// CONCATENATED MODULE: ./src/headless/plugins/muc/api.js +function muc_api_typeof(obj) { "@babel/helpers - typeof"; - return affiliations_utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return muc_api_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, affiliations_utils_typeof(obj); + }, muc_api_typeof(obj); } -function affiliations_utils_regeneratorRuntime() { +function muc_api_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - affiliations_utils_regeneratorRuntime = function _regeneratorRuntime() { + muc_api_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -48051,7 +44695,7 @@ function affiliations_utils_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == affiliations_utils_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == muc_api_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -48276,32 +44920,7 @@ function affiliations_utils_regeneratorRuntime() { } }, exports; } -function affiliations_utils_toConsumableArray(arr) { - return affiliations_utils_arrayWithoutHoles(arr) || affiliations_utils_iterableToArray(arr) || affiliations_utils_unsupportedIterableToArray(arr) || affiliations_utils_nonIterableSpread(); -} -function affiliations_utils_nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} -function affiliations_utils_unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return affiliations_utils_arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return affiliations_utils_arrayLikeToArray(o, minLen); -} -function affiliations_utils_iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); -} -function affiliations_utils_arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return affiliations_utils_arrayLikeToArray(arr); -} -function affiliations_utils_arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; -} -function affiliations_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function muc_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -48315,381 +44934,514 @@ function affiliations_utils_asyncGeneratorStep(gen, resolve, reject, _next, _thr Promise.resolve(value).then(_next, _throw); } } -function affiliations_utils_asyncToGenerator(fn) { +function muc_api_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - affiliations_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + muc_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - affiliations_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + muc_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -/** - * @copyright The Converse.js contributors - * @license Mozilla Public License (MPLv2) - */ - - - - - - -var affiliations_utils_converse$env = public_converse.env, - affiliations_utils_Strophe = affiliations_utils_converse$env.Strophe, - affiliations_utils_$iq = affiliations_utils_converse$env.$iq, - affiliations_utils_u = affiliations_utils_converse$env.u; - -/** - * Sends an IQ stanza to the server, asking it for the relevant affiliation list . - * Returns an array of {@link MemberListItem} objects, representing occupants - * that have the given affiliation. - * See: https://xmpp.org/extensions/xep-0045.html#modifymember - * @param { ("admin"|"owner"|"member") } affiliation - * @param { String } muc_jid - The JID of the MUC for which the affiliation list should be fetched - * @returns { Promise } - */ -function getAffiliationList(_x, _x2) { - return _getAffiliationList.apply(this, arguments); -} - -/** - * Given an occupant model, see which affiliations may be assigned by that user - * @param { Model } occupant - * @returns { Array<('owner'|'admin'|'member'|'outcast'|'none')> } - An array of assignable affiliations - */ -function _getAffiliationList() { - _getAffiliationList = affiliations_utils_asyncToGenerator( /*#__PURE__*/affiliations_utils_regeneratorRuntime().mark(function _callee(affiliation, muc_jid) { - var __, iq, result, err_msg, err, _err_msg, _err; - return affiliations_utils_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - __ = shared_converse.__; - iq = affiliations_utils_$iq({ - 'to': muc_jid, - 'type': 'get' - }).c('query', { - xmlns: affiliations_utils_Strophe.NS.MUC_ADMIN - }).c('item', { - 'affiliation': affiliation - }); - _context.next = 4; - return shared_api.sendIQ(iq, null, false); - case 4: - result = _context.sent; - if (!(result === null)) { - _context.next = 10; - break; - } - err_msg = __('Error: timeout while fetching %1s list for MUC %2s', affiliation, muc_jid); - err = new Error(err_msg); - log.warn(err_msg); - return _context.abrupt("return", err); - case 10: - if (!affiliations_utils_u.isErrorStanza(result)) { - _context.next = 16; - break; - } - _err_msg = __('Error: not allowed to fetch %1s list for MUC %2s', affiliation, muc_jid); - _err = new Error(_err_msg); - log.warn(_err_msg); - log.warn(result); - return _context.abrupt("return", _err); - case 16: - return _context.abrupt("return", parseMemberListIQ(result).filter(function (p) { - return p; - }).sort(function (a, b) { - return a.nick < b.nick ? -1 : a.nick > b.nick ? 1 : 0; - })); - case 17: - case "end": - return _context.stop(); - } - }, _callee); - })); - return _getAffiliationList.apply(this, arguments); -} -function getAssignableAffiliations(occupant) { - var disabled = shared_api.settings.get('modtools_disable_assign'); - if (!Array.isArray(disabled)) { - disabled = disabled ? muc_AFFILIATIONS : []; - } - if ((occupant === null || occupant === void 0 ? void 0 : occupant.get('affiliation')) === 'owner') { - return muc_AFFILIATIONS.filter(function (a) { - return !disabled.includes(a); - }); - } else if ((occupant === null || occupant === void 0 ? void 0 : occupant.get('affiliation')) === 'admin') { - return muc_AFFILIATIONS.filter(function (a) { - return !['owner', 'admin'].concat(affiliations_utils_toConsumableArray(disabled)).includes(a); - }); - } else { - return []; - } -} - -// Necessary for tests -shared_converse.getAssignableAffiliations = getAssignableAffiliations; - -/** - * Send IQ stanzas to the server to modify affiliations for users in this groupchat. - * See: https://xmpp.org/extensions/xep-0045.html#modifymember - * @param { Array } users - * @param { string } users[].jid - The JID of the user whose affiliation will change - * @param { Array } users[].affiliation - The new affiliation for this user - * @param { string } [users[].reason] - An optional reason for the affiliation change - * @returns { Promise } - */ -function setAffiliations(muc_jid, users) { - var affiliations = affiliations_utils_toConsumableArray(new Set(users.map(function (u) { - return u.affiliation; - }))); - return Promise.all(affiliations.map(function (a) { - return setAffiliation(a, muc_jid, users); - })); -} - -/** - * Send IQ stanzas to the server to set an affiliation for - * the provided JIDs. - * See: https://xmpp.org/extensions/xep-0045.html#modifymember - * - * Prosody doesn't accept multiple JIDs' affiliations - * being set in one IQ stanza, so as a workaround we send - * a separate stanza for each JID. - * Related ticket: https://issues.prosody.im/345 - * - * @param { ('outcast'|'member'|'admin'|'owner') } affiliation - The affiliation to be set - * @param { String|Array } jids - The JID(s) of the MUCs in which the - * affiliations need to be set. - * @param { object } members - A map of jids, affiliations and - * optionally reasons. Only those entries with the - * same affiliation as being currently set will be considered. - * @returns { Promise } A promise which resolves and fails depending on the XMPP server response. - */ -function setAffiliation(affiliation, muc_jids, members) { - if (!Array.isArray(muc_jids)) { - muc_jids = [muc_jids]; - } - members = members.filter(function (m) { - return [undefined, affiliation].includes(m.affiliation); - }); - return Promise.all(muc_jids.reduce(function (acc, jid) { - return [].concat(affiliations_utils_toConsumableArray(acc), affiliations_utils_toConsumableArray(members.map(function (m) { - return sendAffiliationIQ(affiliation, jid, m); - }))); - }, [])); -} -/** - * Send an IQ stanza specifying an affiliation change. - * @private - * @param { String } affiliation: affiliation (could also be stored on the member object). - * @param { String } muc_jid: The JID of the MUC in which the affiliation should be set. - * @param { Object } member: Map containing the member's jid and optionally a reason and affiliation. - */ -function sendAffiliationIQ(affiliation, muc_jid, member) { - var iq = affiliations_utils_$iq({ - to: muc_jid, - type: 'set' - }).c('query', { - xmlns: affiliations_utils_Strophe.NS.MUC_ADMIN - }).c('item', { - 'affiliation': member.affiliation || affiliation, - 'nick': member.nick, - 'jid': member.jid - }); - if (member.reason !== undefined) { - iq.c('reason', member.reason); - } - return shared_api.sendIQ(iq); -} -/** - * Given two lists of objects with 'jid', 'affiliation' and - * 'reason' properties, return a new list containing - * those objects that are new, changed or removed - * (depending on the 'remove_absentees' boolean). - * - * The affiliations for new and changed members stay the - * same, for removed members, the affiliation is set to 'none'. - * - * The 'reason' property is not taken into account when - * comparing whether affiliations have been changed. - * @param { boolean } exclude_existing - Indicates whether JIDs from - * the new list which are also in the old list - * (regardless of affiliation) should be excluded - * from the delta. One reason to do this - * would be when you want to add a JID only if it - * doesn't have *any* existing affiliation at all. - * @param { boolean } remove_absentees - Indicates whether JIDs - * from the old list which are not in the new list - * should be considered removed and therefore be - * included in the delta with affiliation set - * to 'none'. - * @param { array } new_list - Array containing the new affiliations - * @param { array } old_list - Array containing the old affiliations - * @returns { array } - */ -function computeAffiliationsDelta(exclude_existing, remove_absentees, new_list, old_list) { - var new_jids = new_list.map(function (o) { - return o.jid; - }); - var old_jids = old_list.map(function (o) { - return o.jid; - }); - // Get the new affiliations - var delta = lodash_es_difference(new_jids, old_jids).map(function (jid) { - return new_list[lodash_es_indexOf(new_jids, jid)]; - }); - if (!exclude_existing) { - // Get the changed affiliations - delta = delta.concat(new_list.filter(function (item) { - var idx = lodash_es_indexOf(old_jids, item.jid); - return idx >= 0 ? item.affiliation !== old_list[idx].affiliation : false; - })); - } - if (remove_absentees) { - // Get the removed affiliations - delta = delta.concat(lodash_es_difference(old_jids, new_jids).map(function (jid) { - return { - 'jid': jid, - 'affiliation': 'none' - }; - })); - } - return delta; -} -;// CONCATENATED MODULE: ./src/headless/plugins/muc/muc.js -function muc_typeof(obj) { - "@babel/helpers - typeof"; - return muc_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, muc_typeof(obj); -} -function muc_ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - enumerableOnly && (symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - })), keys.push.apply(keys, symbols); - } - return keys; -} -function muc_objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = null != arguments[i] ? arguments[i] : {}; - i % 2 ? muc_ownKeys(Object(source), !0).forEach(function (key) { - muc_defineProperty(target, key, source[key]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : muc_ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - return target; -} -function muc_defineProperty(obj, key, value) { - key = muc_toPropertyKey(key); - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; -} -function muc_toPropertyKey(arg) { - var key = muc_toPrimitive(arg, "string"); - return muc_typeof(key) === "symbol" ? key : String(key); -} -function muc_toPrimitive(input, hint) { - if (muc_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (muc_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); -} -function muc_slicedToArray(arr, i) { - return muc_arrayWithHoles(arr) || muc_iterableToArrayLimit(arr, i) || muc_unsupportedIterableToArray(arr, i) || muc_nonIterableRest(); -} -function muc_nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} -function muc_iterableToArrayLimit(arr, i) { - var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; - if (null != _i) { - var _s, - _e, - _x, - _r, - _arr = [], - _n = !0, - _d = !1; - try { - if (_x = (_i = _i.call(arr)).next, 0 === i) { - if (Object(_i) !== _i) return; - _n = !1; - } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); - } catch (err) { - _d = !0, _e = err; - } finally { - try { - if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; - } finally { - if (_d) throw _e; +var api_u = public_converse.env.u; +/* harmony default export */ const muc_api = ({ + /** + * The "rooms" namespace groups methods relevant to chatrooms + * (aka groupchats). + * + * @namespace api.rooms + * @memberOf api + */ + rooms: { + /** + * Creates a new MUC chatroom (aka groupchat) + * + * Similar to {@link api.rooms.open}, but creates + * the chatroom in the background (i.e. doesn't cause a view to open). + * + * @method api.rooms.create + * @param {(string[]|string)} jid|jids The JID or array of + * JIDs of the chatroom(s) to create + * @param { object } [attrs] attrs The room attributes + * @returns {Promise} Promise which resolves with the Model representing the chat. + */ + create: function create(jids) { + var attrs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + attrs = typeof attrs === 'string' ? { + 'nick': attrs + } : attrs || {}; + if (!attrs.nick && shared_api.settings.get('muc_nickname_from_jid')) { + attrs.nick = external_strophe_namespaceObject.Strophe.getNodeFromJid(shared_converse.bare_jid); + } + if (jids === undefined) { + throw new TypeError('rooms.create: You need to provide at least one JID'); + } else if (typeof jids === 'string') { + return shared_api.rooms.get(api_u.getJIDFromURI(jids), attrs, true); } + return jids.map(function (jid) { + return shared_api.rooms.get(api_u.getJIDFromURI(jid), attrs, true); + }); + }, + /** + * Opens a MUC chatroom (aka groupchat) + * + * Similar to {@link api.chats.open}, but for groupchats. + * + * @method api.rooms.open + * @param { string } jid The room JID or JIDs (if not specified, all + * currently open rooms will be returned). + * @param { string } attrs A map containing any extra room attributes. + * @param { string } [attrs.nick] The current user's nickname for the MUC + * @param { boolean } [attrs.auto_configure] A boolean, indicating + * whether the room should be configured automatically or not. + * If set to `true`, then it makes sense to pass in configuration settings. + * @param { object } [attrs.roomconfig] A map of configuration settings to be used when the room gets + * configured automatically. Currently it doesn't make sense to specify + * `roomconfig` values if `auto_configure` is set to `false`. + * For a list of configuration values that can be passed in, refer to these values + * in the [XEP-0045 MUC specification](https://xmpp.org/extensions/xep-0045.html#registrar-formtype-owner). + * The values should be named without the `muc#roomconfig_` prefix. + * @param { boolean } [attrs.minimized] A boolean, indicating whether the room should be opened minimized or not. + * @param { boolean } [attrs.bring_to_foreground] A boolean indicating whether the room should be + * brought to the foreground and therefore replace the currently shown chat. + * If there is no chat currently open, then this option is ineffective. + * @param { Boolean } [force=false] - By default, a minimized + * room won't be maximized (in `overlayed` view mode) and in + * `fullscreen` view mode a newly opened room won't replace + * another chat already in the foreground. + * Set `force` to `true` if you want to force the room to be + * maximized or shown. + * @returns {Promise} Promise which resolves with the Model representing the chat. + * + * @example + * api.rooms.open('group@muc.example.com') + * + * @example + * // To return an array of rooms, provide an array of room JIDs: + * api.rooms.open(['group1@muc.example.com', 'group2@muc.example.com']) + * + * @example + * // To setup a custom nickname when joining the room, provide the optional nick argument: + * api.rooms.open('group@muc.example.com', {'nick': 'mycustomnick'}) + * + * @example + * // For example, opening a room with a specific default configuration: + * api.rooms.open( + * 'myroom@conference.example.org', + * { 'nick': 'coolguy69', + * 'auto_configure': true, + * 'roomconfig': { + * 'changesubject': false, + * 'membersonly': true, + * 'persistentroom': true, + * 'publicroom': true, + * 'roomdesc': 'Comfy room for hanging out', + * 'whois': 'anyone' + * } + * } + * ); + */ + open: function open(jids) { + var _arguments = arguments; + return muc_api_asyncToGenerator( /*#__PURE__*/muc_api_regeneratorRuntime().mark(function _callee() { + var attrs, force, err_msg, room, rooms; + return muc_api_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + attrs = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : {}; + force = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : false; + _context.next = 4; + return shared_api.waitUntil('chatBoxesFetched'); + case 4: + if (!(jids === undefined)) { + _context.next = 10; + break; + } + err_msg = 'rooms.open: You need to provide at least one JID'; + log.error(err_msg); + throw new TypeError(err_msg); + case 10: + if (!(typeof jids === 'string')) { + _context.next = 18; + break; + } + _context.next = 13; + return shared_api.rooms.get(jids, attrs, true); + case 13: + room = _context.sent; + !attrs.hidden && (room === null || room === void 0 ? void 0 : room.maybeShow(force)); + return _context.abrupt("return", room); + case 18: + _context.next = 20; + return Promise.all(jids.map(function (jid) { + return shared_api.rooms.get(jid, attrs, true); + })); + case 20: + rooms = _context.sent; + rooms.forEach(function (r) { + return !attrs.hidden && r.maybeShow(force); + }); + return _context.abrupt("return", rooms); + case 23: + case "end": + return _context.stop(); + } + }, _callee); + }))(); + }, + /** + * Fetches the object representing a MUC chatroom (aka groupchat) + * + * @method api.rooms.get + * @param { String } [jid] The room JID (if not specified, all rooms will be returned). + * @param { Object } [attrs] A map containing any extra room attributes + * to be set if `create` is set to `true` + * @param { String } [attrs.nick] Specify the nickname + * @param { String } [attrs.password ] Specify a password if needed to enter a new room + * @param { Boolean } create A boolean indicating whether the room should be created + * if not found (default: `false`) + * @returns { Promise<_converse.ChatRoom> } + * @example + * api.waitUntil('roomsAutoJoined').then(() => { + * const create_if_not_found = true; + * api.rooms.get( + * 'group@muc.example.com', + * {'nick': 'dread-pirate-roberts', 'password': 'secret'}, + * create_if_not_found + * ) + * }); + */ + get: function get(jids) { + var _arguments2 = arguments; + return muc_api_asyncToGenerator( /*#__PURE__*/muc_api_regeneratorRuntime().mark(function _callee3() { + var attrs, create, _get, _get2, chats; + return muc_api_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + _get2 = function _get4() { + _get2 = muc_api_asyncToGenerator( /*#__PURE__*/muc_api_regeneratorRuntime().mark(function _callee2(jid) { + var model; + return muc_api_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + jid = api_u.getJIDFromURI(jid); + _context2.next = 3; + return shared_api.chatboxes.get(jid); + case 3: + model = _context2.sent; + if (!(!model && create)) { + _context2.next = 10; + break; + } + _context2.next = 7; + return shared_api.chatboxes.create(jid, attrs, shared_converse.ChatRoom); + case 7: + model = _context2.sent; + _context2.next = 12; + break; + case 10: + model = model && model.get('type') === shared_converse.CHATROOMS_TYPE ? model : null; + if (model && Object.keys(attrs).length) { + model.save(attrs); + } + case 12: + return _context2.abrupt("return", model); + case 13: + case "end": + return _context2.stop(); + } + }, _callee2); + })); + return _get2.apply(this, arguments); + }; + _get = function _get3(_x) { + return _get2.apply(this, arguments); + }; + attrs = _arguments2.length > 1 && _arguments2[1] !== undefined ? _arguments2[1] : {}; + create = _arguments2.length > 2 && _arguments2[2] !== undefined ? _arguments2[2] : false; + _context3.next = 6; + return shared_api.waitUntil('chatBoxesFetched'); + case 6: + if (!(jids === undefined)) { + _context3.next = 13; + break; + } + _context3.next = 9; + return shared_api.chatboxes.get(); + case 9: + chats = _context3.sent; + return _context3.abrupt("return", chats.filter(function (c) { + return c.get('type') === shared_converse.CHATROOMS_TYPE; + })); + case 13: + if (!(typeof jids === 'string')) { + _context3.next = 15; + break; + } + return _context3.abrupt("return", _get(jids)); + case 15: + return _context3.abrupt("return", Promise.all(jids.map(function (jid) { + return _get(jid); + }))); + case 16: + case "end": + return _context3.stop(); + } + }, _callee3); + }))(); } - return _arr; } +}); +;// CONCATENATED MODULE: ./src/headless/plugins/muc/index.js +function plugins_muc_toConsumableArray(arr) { + return plugins_muc_arrayWithoutHoles(arr) || plugins_muc_iterableToArray(arr) || plugins_muc_unsupportedIterableToArray(arr) || plugins_muc_nonIterableSpread(); } -function muc_arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; -} -function muc_toConsumableArray(arr) { - return muc_arrayWithoutHoles(arr) || muc_iterableToArray(arr) || muc_unsupportedIterableToArray(arr) || muc_nonIterableSpread(); -} -function muc_nonIterableSpread() { +function plugins_muc_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function muc_unsupportedIterableToArray(o, minLen) { +function plugins_muc_unsupportedIterableToArray(o, minLen) { if (!o) return; - if (typeof o === "string") return muc_arrayLikeToArray(o, minLen); + if (typeof o === "string") return plugins_muc_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return muc_arrayLikeToArray(o, minLen); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return plugins_muc_arrayLikeToArray(o, minLen); } -function muc_iterableToArray(iter) { +function plugins_muc_iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } -function muc_arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return muc_arrayLikeToArray(arr); +function plugins_muc_arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return plugins_muc_arrayLikeToArray(arr); } -function muc_arrayLikeToArray(arr, len) { +function plugins_muc_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } -function muc_regeneratorRuntime() { +/** + * @copyright The Converse.js contributors + * @license Mozilla Public License (MPLv2) + * @description Implements the non-view logic for XEP-0045 Multi-User Chat + */ + + + + + + + + + + + + + + +var muc_ROLES = (/* unused pure expression or super */ null && (['moderator', 'participant', 'visitor'])); +var muc_AFFILIATIONS = ['owner', 'admin', 'member', 'outcast', 'none']; +public_converse.AFFILIATION_CHANGES = AFFILIATION_CHANGES; +public_converse.AFFILIATION_CHANGES_LIST = AFFILIATION_CHANGES_LIST; +public_converse.MUC_TRAFFIC_STATES = MUC_TRAFFIC_STATES; +public_converse.MUC_TRAFFIC_STATES_LIST = MUC_TRAFFIC_STATES_LIST; +public_converse.MUC_ROLE_CHANGES = MUC_ROLE_CHANGES; +public_converse.MUC_ROLE_CHANGES_LIST = MUC_ROLE_CHANGES_LIST; +public_converse.MUC = { + INFO_CODES: INFO_CODES +}; +public_converse.MUC_NICK_CHANGED_CODE = MUC_NICK_CHANGED_CODE; +public_converse.ROOM_FEATURES = ROOM_FEATURES; +public_converse.ROOMSTATUS = ROOMSTATUS; +var muc_Strophe = public_converse.env.Strophe; + +// Add Strophe Namespaces +muc_Strophe.addNamespace('MUC_ADMIN', muc_Strophe.NS.MUC + '#admin'); +muc_Strophe.addNamespace('MUC_OWNER', muc_Strophe.NS.MUC + '#owner'); +muc_Strophe.addNamespace('MUC_REGISTER', 'jabber:iq:register'); +muc_Strophe.addNamespace('MUC_ROOMCONF', muc_Strophe.NS.MUC + '#roomconfig'); +muc_Strophe.addNamespace('MUC_USER', muc_Strophe.NS.MUC + '#user'); +muc_Strophe.addNamespace('MUC_HATS', 'xmpp:prosody.im/protocol/hats:1'); +muc_Strophe.addNamespace('CONFINFO', 'urn:ietf:params:xml:ns:conference-info'); +public_converse.plugins.add('converse-muc', { + dependencies: ['converse-chatboxes', 'converse-chat', 'converse-disco'], + overrides: { + ChatBoxes: { + model: function model(attrs, options) { + var _converse = this.__super__._converse; + if (attrs && attrs.type == _converse.CHATROOMS_TYPE) { + return new _converse.ChatRoom(attrs, options); + } else { + return this.__super__.model.apply(this, arguments); + } + } + } + }, + initialize: function initialize() { + /* The initialize function gets called as soon as the plugin is + * loaded by converse.js's plugin machinery. + */ + var __ = shared_converse.__, + ___ = shared_converse.___; + + // Configuration values for this plugin + // ==================================== + // Refer to docs/source/configuration.rst for explanations of these + // configuration settings. + shared_api.settings.extend({ + 'allow_muc_invitations': true, + 'auto_join_on_invite': false, + 'auto_join_rooms': [], + 'auto_register_muc_nickname': false, + 'hide_muc_participants': false, + 'locked_muc_domain': false, + 'modtools_disable_assign': false, + 'muc_clear_messages_on_leave': true, + 'muc_domain': undefined, + 'muc_fetch_members': true, + 'muc_history_max_stanzas': undefined, + 'muc_instant_rooms': true, + 'muc_nickname_from_jid': false, + 'muc_send_probes': false, + 'muc_show_info_messages': [].concat(plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.visibility_changes), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.self), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.non_privacy_changes), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.muc_logging_changes), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.nickname_changes), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.disconnected), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.affiliation_changes), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.join_leave_events), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.role_changes)), + 'muc_show_logs_before_join': false, + 'muc_subscribe_to_rai': false + }); + shared_api.promises.add(['roomsAutoJoined']); + if (shared_api.settings.get('locked_muc_domain') && typeof shared_api.settings.get('muc_domain') !== 'string') { + throw new Error('Config Error: it makes no sense to set locked_muc_domain ' + 'to true when muc_domain is not set'); + } + + // This is for tests (at least until we can import modules inside tests) + public_converse.env.muc_utils = { + computeAffiliationsDelta: computeAffiliationsDelta + }; + Object.assign(shared_api, muc_api); + Object.assign(shared_api.rooms, affiliations_api); + + /* https://xmpp.org/extensions/xep-0045.html + * ---------------------------------------- + * 100 message Entering a groupchat Inform user that any occupant is allowed to see the user's full JID + * 101 message (out of band) Affiliation change Inform user that his or her affiliation changed while not in the groupchat + * 102 message Configuration change Inform occupants that groupchat now shows unavailable members + * 103 message Configuration change Inform occupants that groupchat now does not show unavailable members + * 104 message Configuration change Inform occupants that a non-privacy-related groupchat configuration change has occurred + * 110 presence Any groupchat presence Inform user that presence refers to one of its own groupchat occupants + * 170 message or initial presence Configuration change Inform occupants that groupchat logging is now enabled + * 171 message Configuration change Inform occupants that groupchat logging is now disabled + * 172 message Configuration change Inform occupants that the groupchat is now non-anonymous + * 173 message Configuration change Inform occupants that the groupchat is now semi-anonymous + * 174 message Configuration change Inform occupants that the groupchat is now fully-anonymous + * 201 presence Entering a groupchat Inform user that a new groupchat has been created + * 210 presence Entering a groupchat Inform user that the service has assigned or modified the occupant's roomnick + * 301 presence Removal from groupchat Inform user that he or she has been banned from the groupchat + * 303 presence Exiting a groupchat Inform all occupants of new groupchat nickname + * 307 presence Removal from groupchat Inform user that he or she has been kicked from the groupchat + * 321 presence Removal from groupchat Inform user that he or she is being removed from the groupchat because of an affiliation change + * 322 presence Removal from groupchat Inform user that he or she is being removed from the groupchat because the groupchat has been changed to members-only and the user is not a member + * 332 presence Removal from groupchat Inform user that he or she is being removed from the groupchat because of a system shutdown + */ + shared_converse.muc = { + info_messages: { + 100: __('This groupchat is not anonymous'), + 102: __('This groupchat now shows unavailable members'), + 103: __('This groupchat does not show unavailable members'), + 104: __('The groupchat configuration has changed'), + 170: __('Groupchat logging is now enabled'), + 171: __('Groupchat logging is now disabled'), + 172: __('This groupchat is now no longer anonymous'), + 173: __('This groupchat is now semi-anonymous'), + 174: __('This groupchat is now fully-anonymous'), + 201: __('A new groupchat has been created') + }, + new_nickname_messages: { + // XXX: Note the triple underscore function and not double underscore. + 210: ___('Your nickname has been automatically set to %1$s'), + 303: ___('Your nickname has been changed to %1$s') + }, + disconnect_messages: { + 301: __('You have been banned from this groupchat'), + 333: __('You have exited this groupchat due to a technical problem'), + 307: __('You have been kicked from this groupchat'), + 321: __('You have been removed from this groupchat because of an affiliation change'), + 322: __("You have been removed from this groupchat because the groupchat has changed to members-only and you're not a member"), + 332: __('You have been removed from this groupchat because the service hosting it is being shut down') + } + }; + shared_converse.router.route('converse/room?jid=:jid', routeToRoom); + shared_converse.ChatRoom = shared_converse.ChatBox.extend(muc); + shared_converse.ChatRoomMessage = shared_converse.Message.extend(muc_message); + shared_converse.ChatRoomOccupants = occupants; + shared_converse.ChatRoomOccupant = occupant; + + /** + * Collection which stores MUC messages + * @class + * @namespace _converse.ChatRoomMessages + * @memberOf _converse + */ + shared_converse.ChatRoomMessages = Collection.extend({ + model: shared_converse.ChatRoomMessage, + comparator: 'time' + }); + Object.assign(shared_converse, { + getDefaultMUCNickname: getDefaultMUCNickname, + isInfoVisible: isInfoVisible, + onDirectMUCInvitation: onDirectMUCInvitation + }); + + /************************ BEGIN Event Handlers ************************/ + + if (shared_api.settings.get('allow_muc_invitations')) { + shared_api.listen.on('connected', registerDirectInvitationHandler); + shared_api.listen.on('reconnected', registerDirectInvitationHandler); + } + shared_api.listen.on('addClientFeatures', function () { + return shared_api.disco.own.features.add("".concat(muc_Strophe.NS.CONFINFO, "+notify")); + }); + shared_api.listen.on('addClientFeatures', onAddClientFeatures); + shared_api.listen.on('beforeResourceBinding', onBeforeResourceBinding); + shared_api.listen.on('beforeTearDown', onBeforeTearDown); + shared_api.listen.on('chatBoxesFetched', autoJoinRooms); + shared_api.listen.on('disconnected', disconnectChatRooms); + shared_api.listen.on('statusInitialized', onStatusInitialized); + shared_api.listen.on('windowStateChanged', onWindowStateChanged); + } +}); +;// CONCATENATED MODULE: ./src/headless/plugins/bookmarks/model.js + + +var bookmarks_model_Strophe = public_converse.env.Strophe; +var Bookmark = Model.extend({ + idAttribute: 'jid', + getDisplayName: function getDisplayName() { + return bookmarks_model_Strophe.xmlunescape(this.get('name')); + } +}); +/* harmony default export */ const bookmarks_model = (Bookmark); +;// CONCATENATED MODULE: ./src/headless/plugins/bookmarks/collection.js +function bookmarks_collection_typeof(obj) { + "@babel/helpers - typeof"; + + return bookmarks_collection_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, bookmarks_collection_typeof(obj); +} +function bookmarks_collection_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - muc_regeneratorRuntime = function _regeneratorRuntime() { + bookmarks_collection_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -48764,7 +45516,7 @@ function muc_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == muc_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == bookmarks_collection_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -48989,7 +45741,7 @@ function muc_regeneratorRuntime() { } }, exports; } -function muc_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function bookmarks_collection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -49003,17 +45755,17 @@ function muc_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { Promise.resolve(value).then(_next, _throw); } } -function muc_asyncToGenerator(fn) { +function bookmarks_collection_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - muc_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + bookmarks_collection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - muc_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + bookmarks_collection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); @@ -49021,3812 +45773,6588 @@ function muc_asyncToGenerator(fn) { } - - - - - - - - - - - - - - - - - -var muc_u = public_converse.env.u; -var OWNER_COMMANDS = ['owner']; -var ADMIN_COMMANDS = ['admin', 'ban', 'deop', 'destroy', 'member', 'op', 'revoke']; -var MODERATOR_COMMANDS = ['kick', 'mute', 'voice', 'modtools']; -var VISITOR_COMMANDS = ['nick']; -var METADATA_ATTRIBUTES = ["og:article:author", "og:article:published_time", "og:description", "og:image", "og:image:height", "og:image:width", "og:site_name", "og:title", "og:type", "og:url", "og:video:height", "og:video:secure_url", "og:video:tag", "og:video:type", "og:video:url", "og:video:width"]; -var ACTION_INFO_CODES = ['301', '303', '333', '307', '321', '322']; -var MUCSession = Model.extend({ - defaults: function defaults() { - return { - 'connection_status': ROOMSTATUS.DISCONNECTED - }; - } -}); - -/** - * Represents an open/ongoing groupchat conversation. - * @mixin - * @namespace _converse.ChatRoom - * @memberOf _converse - */ -var ChatRoomMixin = { - defaults: function defaults() { - return { - 'bookmarked': false, - 'chat_state': undefined, - 'has_activity': false, - // XEP-437 - 'hidden': isUniView() && !shared_api.settings.get('singleton'), - 'hidden_occupants': !!shared_api.settings.get('hide_muc_participants'), - 'message_type': 'groupchat', - 'name': '', - // For group chats, we distinguish between generally unread - // messages and those ones that specifically mention the - // user. - // - // To keep things simple, we reuse `num_unread` from - // _converse.ChatBox to indicate unread messages which - // mention the user and `num_unread_general` to indicate - // generally unread messages (which *includes* mentions!). - 'num_unread_general': 0, - 'num_unread': 0, - 'roomconfig': {}, - 'time_opened': this.get('time_opened') || new Date().getTime(), - 'time_sent': new Date(0).toISOString(), - 'type': shared_converse.CHATROOMS_TYPE - }; + + + + +var collection_converse$env = public_converse.env, + collection_Strophe = collection_converse$env.Strophe, + collection_$iq = collection_converse$env.$iq, + collection_sizzle = collection_converse$env.sizzle; +var Bookmarks = { + model: bookmarks_model, + comparator: function comparator(item) { + return item.get('name').toLowerCase(); }, initialize: function initialize() { var _this = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee() { - var restored; - return muc_regeneratorRuntime().wrap(function _callee$(_context) { + return bookmarks_collection_asyncToGenerator( /*#__PURE__*/bookmarks_collection_regeneratorRuntime().mark(function _callee() { + var cache_key; + return bookmarks_collection_regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: - _this.initialized = getOpenPromise(); - _this.debouncedRejoin = lodash_es_debounce(_this.rejoin, 250); - _this.set('box_id', "box-".concat(_this.get('jid'))); - _this.initNotifications(); - _this.initMessages(); - _this.initUI(); - _this.initOccupants(); - _this.initDiscoModels(); // sendChatState depends on this.features - _this.registerHandlers(); - _this.on('change:chat_state', _this.sendChatState, _this); - _this.on('change:hidden', _this.onHiddenChange, _this); - _this.on('destroy', _this.removeHandlers, _this); - _this.ui.on('change:scrolled', _this.onScrolledChanged, _this); - _context.next = 15; - return _this.restoreSession(); - case 15: - _this.session.on('change:connection_status', _this.onConnectionStatusChanged, _this); - _this.listenTo(_this.occupants, 'add', _this.onOccupantAdded); - _this.listenTo(_this.occupants, 'remove', _this.onOccupantRemoved); - _this.listenTo(_this.occupants, 'change:show', _this.onOccupantShowChanged); - _this.listenTo(_this.occupants, 'change:affiliation', _this.createAffiliationChangeMessage); - _this.listenTo(_this.occupants, 'change:role', _this.createRoleChangeMessage); - _context.next = 23; - return _this.restoreFromCache(); - case 23: - restored = _context.sent; - if (!restored) { - _this.join(); - } + _this.on('add', function (bm) { + return _this.openBookmarkedRoom(bm).then(function (bm) { + return _this.markRoomAsBookmarked(bm); + }).catch(function (e) { + return log.fatal(e); + }); + }); + _this.on('remove', _this.markRoomAsUnbookmarked, _this); + _this.on('remove', _this.sendBookmarkStanza, _this); + cache_key = "converse.room-bookmarks".concat(shared_converse.bare_jid); + _this.fetched_flag = cache_key + 'fetched'; + initStorage(_this, cache_key); + _context.next = 8; + return _this.fetchBookmarks(); + case 8: /** - * Triggered once a {@link _converse.ChatRoom} has been created and initialized. - * @event _converse#chatRoomInitialized - * @type { _converse.ChatRoom } - * @example _converse.api.listen.on('chatRoomInitialized', model => { ... }); + * Triggered once the _converse.Bookmarks collection + * has been created and cached bookmarks have been fetched. + * @event _converse#bookmarksInitialized + * @type { _converse.Bookmarks } + * @example _converse.api.listen.on('bookmarksInitialized', (bookmarks) => { ... }); */ - _context.next = 27; - return shared_api.trigger('chatRoomInitialized', _this, { - 'Synchronous': true - }); - case 27: - _this.initialized.resolve(); - case 28: + shared_api.trigger('bookmarksInitialized', _this); + case 9: case "end": return _context.stop(); } }, _callee); }))(); }, - isEntered: function isEntered() { - return this.session.get('connection_status') === ROOMSTATUS.ENTERED; - }, - /** - * Checks whether this MUC qualifies for subscribing to XEP-0437 Room Activity Indicators (RAI) - * @method _converse.ChatRoom#isRAICandidate - * @returns { Boolean } - */ - isRAICandidate: function isRAICandidate() { - return this.get('hidden') && shared_api.settings.get('muc_subscribe_to_rai') && this.getOwnAffiliation() !== 'none'; - }, - /** - * Checks whether we're still joined and if so, restores the MUC state from cache. - * @private - * @method _converse.ChatRoom#restoreFromCache - * @returns { Boolean } Returns `true` if we're still joined, otherwise returns `false`. - */ - restoreFromCache: function restoreFromCache() { - var _this2 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee2() { - return muc_regeneratorRuntime().wrap(function _callee2$(_context2) { + openBookmarkedRoom: function openBookmarkedRoom(bookmark) { + return bookmarks_collection_asyncToGenerator( /*#__PURE__*/bookmarks_collection_regeneratorRuntime().mark(function _callee2() { + var groupchat; + return bookmarks_collection_regeneratorRuntime().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: - if (!_this2.isEntered()) { - _context2.next = 19; + if (!(shared_api.settings.get('muc_respect_autojoin') && bookmark.get('autojoin'))) { + _context2.next = 5; break; } _context2.next = 3; - return _this2.fetchOccupants().catch(function (e) { - return log.error(e); + return shared_api.rooms.create(bookmark.get('jid'), { + 'nick': bookmark.get('nick') }); case 3: - if (!_this2.isRAICandidate()) { - _context2.next = 9; - break; - } - _this2.session.save('connection_status', ROOMSTATUS.DISCONNECTED); - _this2.enableRAI(); - return _context2.abrupt("return", true); - case 9: - _context2.next = 11; - return _this2.isJoined(); - case 11: - if (!_context2.sent) { - _context2.next = 19; - break; - } - _context2.next = 14; - return new Promise(function (r) { - return _this2.config.fetch({ - 'success': r, - 'error': r - }); - }); - case 14: - _context2.next = 16; - return new Promise(function (r) { - return _this2.features.fetch({ - 'success': r, - 'error': r - }); - }); - case 16: - _context2.next = 18; - return _this2.fetchMessages().catch(function (e) { - return log.error(e); - }); - case 18: - return _context2.abrupt("return", true); - case 19: - _this2.session.save('connection_status', ROOMSTATUS.DISCONNECTED); - _this2.clearOccupantsCache(); - return _context2.abrupt("return", false); - case 22: + groupchat = _context2.sent; + groupchat.maybeShow(); + case 5: + return _context2.abrupt("return", bookmark); + case 6: case "end": return _context2.stop(); } }, _callee2); }))(); }, - /** - * Join the MUC - * @private - * @method _converse.ChatRoom#join - * @param { String } nick - The user's nickname - * @param { String } [password] - Optional password, if required by the groupchat. - * Will fall back to the `password` value stored in the room - * model (if available). - */ - join: function join(nick, password) { - var _this3 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee3() { - return muc_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - if (!_this3.isEntered()) { - _context3.next = 2; - break; - } - return _context3.abrupt("return", _this3); - case 2: - // Set this early, so we don't rejoin in onHiddenChange - _this3.session.save('connection_status', ROOMSTATUS.CONNECTING); - _context3.next = 5; - return _this3.refreshDiscoInfo(); - case 5: - _context3.next = 7; - return _this3.getAndPersistNickname(nick); - case 7: - nick = _context3.sent; - if (nick) { - _context3.next = 14; - break; - } - safeSave(_this3.session, { - 'connection_status': ROOMSTATUS.NICKNAME_REQUIRED - }); - if (!shared_api.settings.get('muc_show_logs_before_join')) { - _context3.next = 13; - break; - } - _context3.next = 13; - return _this3.fetchMessages(); - case 13: - return _context3.abrupt("return", _this3); - case 14: - _context3.t0 = shared_api; - _context3.next = 17; - return _this3.constructJoinPresence(password); - case 17: - _context3.t1 = _context3.sent; - _context3.t0.send.call(_context3.t0, _context3.t1); - return _context3.abrupt("return", _this3); - case 20: - case "end": - return _context3.stop(); - } - }, _callee3); - }))(); - }, - /** - * Clear stale cache and re-join a MUC we've been in before. - * @private - * @method _converse.ChatRoom#rejoin - */ - rejoin: function rejoin() { - this.session.save('connection_status', ROOMSTATUS.DISCONNECTED); - this.registerHandlers(); - this.clearOccupantsCache(); - return this.join(); - }, - constructJoinPresence: function constructJoinPresence(password) { - var _this4 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee4() { - var stanza; - return muc_regeneratorRuntime().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - stanza = $pres({ - 'id': getUniqueId(), - 'from': shared_converse.connection.jid, - 'to': _this4.getRoomJIDAndNick() - }).c('x', { - 'xmlns': Strophe.NS.MUC - }).c('history', { - 'maxstanzas': _this4.features.get('mam_enabled') ? 0 : shared_api.settings.get('muc_history_max_stanzas') - }).up(); - password = password || _this4.get('password'); - if (password) { - stanza.cnode(Strophe.xmlElement('password', [], password)); - } - stanza.up(); // Go one level up, out of the `x` element. - /** - * *Hook* which allows plugins to update an outgoing MUC join presence stanza - * @event _converse#constructedMUCPresence - * @param { _converse.ChatRoom } - The MUC from which this message stanza is being sent. - * @param { Element } stanza - The stanza which will be sent out - */ - _context4.next = 6; - return shared_api.hook('constructedMUCPresence', _this4, stanza); - case 6: - stanza = _context4.sent; - return _context4.abrupt("return", stanza); - case 8: - case "end": - return _context4.stop(); + fetchBookmarks: function fetchBookmarks() { + var deferred = getOpenPromise(); + if (window.sessionStorage.getItem(this.fetched_flag)) { + this.fetch({ + 'success': function success() { + return deferred.resolve(); + }, + 'error': function error() { + return deferred.resolve(); } - }, _callee4); - }))(); - }, - clearOccupantsCache: function clearOccupantsCache() { - if (this.occupants.length) { - // Remove non-members when reconnecting - this.occupants.filter(function (o) { - return !o.isMember(); - }).forEach(function (o) { - return o.destroy(); }); } else { - // Looks like we haven't restored occupants from cache, so we clear it. - this.occupants.clearStore(); + this.fetchBookmarksFromServer(deferred); } + return deferred; }, - /** - * Given the passed in MUC message, send a XEP-0333 chat marker. - * @param { _converse.MUCMessage } msg - * @param { ('received'|'displayed'|'acknowledged') } [type='displayed'] - * @param { Boolean } force - Whether a marker should be sent for the - * message, even if it didn't include a `markable` element. - */ - sendMarkerForMessage: function sendMarkerForMessage(msg) { - var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'displayed'; - var force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - if (!msg || !shared_api.settings.get('send_chat_markers').includes(type) || (msg === null || msg === void 0 ? void 0 : msg.get('type')) !== 'groupchat') { - return; - } - if (msg !== null && msg !== void 0 && msg.get('is_markable') || force) { - var key = "stanza_id ".concat(this.get('jid')); - var id = msg.get(key); - if (!id) { - log.error("Can't send marker for message without stanza ID: ".concat(key)); - return; - } - var from_jid = Strophe.getBareJidFromJid(msg.get('from')); - sendMarker(from_jid, id, type, msg.get('type')); - } + createBookmark: function createBookmark(options) { + var _this2 = this; + this.create(options); + this.sendBookmarkStanza().catch(function (iq) { + return _this2.onBookmarkError(iq, options); + }); }, - /** - * Ensures that the user is subscribed to XEP-0437 Room Activity Indicators - * if `muc_subscribe_to_rai` is set to `true`. - * Only affiliated users can subscribe to RAI, but this method doesn't - * check whether the current user is affiliated because it's intended to be - * called after the MUC has been left and we don't have that information - * anymore. - * @private - * @method _converse.ChatRoom#enableRAI - */ - enableRAI: function enableRAI() { - if (shared_api.settings.get('muc_subscribe_to_rai')) { - var muc_domain = Strophe.getDomainFromJid(this.get('jid')); - shared_api.user.presence.send(null, muc_domain, null, $build('rai', { - 'xmlns': Strophe.NS.RAI - })); - } + sendBookmarkStanza: function sendBookmarkStanza() { + var stanza = collection_$iq({ + 'type': 'set', + 'from': shared_converse.connection.jid + }).c('pubsub', { + 'xmlns': collection_Strophe.NS.PUBSUB + }).c('publish', { + 'node': collection_Strophe.NS.BOOKMARKS + }).c('item', { + 'id': 'current' + }).c('storage', { + 'xmlns': collection_Strophe.NS.BOOKMARKS + }); + this.forEach(function (model) { + stanza.c('conference', { + 'name': model.get('name'), + 'autojoin': model.get('autojoin'), + 'jid': model.get('jid') + }).c('nick').t(model.get('nick')).up().up(); + }); + stanza.up().up().up(); + stanza.c('publish-options').c('x', { + 'xmlns': collection_Strophe.NS.XFORM, + 'type': 'submit' + }).c('field', { + 'var': 'FORM_TYPE', + 'type': 'hidden' + }).c('value').t('http://jabber.org/protocol/pubsub#publish-options').up().up().c('field', { + 'var': 'pubsub#persist_items' + }).c('value').t('true').up().up().c('field', { + 'var': 'pubsub#access_model' + }).c('value').t('whitelist'); + return shared_api.sendIQ(stanza); }, - /** - * Handler that gets called when the 'hidden' flag is toggled. - * @private - * @method _converse.ChatRoom#onHiddenChange - */ - onHiddenChange: function onHiddenChange() { - var _this5 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee5() { - var roomstatus, conn_status; - return muc_regeneratorRuntime().wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - roomstatus = ROOMSTATUS; - conn_status = _this5.session.get('connection_status'); - if (!_this5.get('hidden')) { - _context5.next = 10; - break; - } - if (!(conn_status === roomstatus.ENTERED && _this5.isRAICandidate())) { - _context5.next = 8; - break; - } - _this5.sendMarkerForLastMessage('received', true); - _context5.next = 7; - return _this5.leave(); - case 7: - _this5.enableRAI(); - case 8: - _context5.next = 12; - break; - case 10: - if (conn_status === roomstatus.DISCONNECTED) { - _this5.rejoin(); - } - _this5.clearUnreadMsgCounter(); - case 12: - case "end": - return _context5.stop(); - } - }, _callee5); - }))(); + onBookmarkError: function onBookmarkError(iq, options) { + var _this$get; + var __ = shared_converse.__; + log.error("Error while trying to add bookmark"); + log.error(iq); + shared_api.alert('error', __('Error'), [__("Sorry, something went wrong while trying to save your bookmark.")]); + (_this$get = this.get(options.jid)) === null || _this$get === void 0 ? void 0 : _this$get.destroy(); }, - onOccupantAdded: function onOccupantAdded(occupant) { - if (shared_converse.isInfoVisible(public_converse.MUC_TRAFFIC_STATES.ENTERED) && this.session.get('connection_status') === ROOMSTATUS.ENTERED && occupant.get('show') === 'online') { - this.updateNotifications(occupant.get('nick'), public_converse.MUC_TRAFFIC_STATES.ENTERED); - } + fetchBookmarksFromServer: function fetchBookmarksFromServer(deferred) { + var _this3 = this; + var stanza = collection_$iq({ + 'from': shared_converse.connection.jid, + 'type': 'get' + }).c('pubsub', { + 'xmlns': collection_Strophe.NS.PUBSUB + }).c('items', { + 'node': collection_Strophe.NS.BOOKMARKS + }); + shared_api.sendIQ(stanza).then(function (iq) { + return _this3.onBookmarksReceived(deferred, iq); + }).catch(function (iq) { + return _this3.onBookmarksReceivedError(deferred, iq); + }); }, - onOccupantRemoved: function onOccupantRemoved(occupant) { - if (shared_converse.isInfoVisible(public_converse.MUC_TRAFFIC_STATES.EXITED) && this.isEntered() && occupant.get('show') === 'online') { - this.updateNotifications(occupant.get('nick'), public_converse.MUC_TRAFFIC_STATES.EXITED); - } + markRoomAsBookmarked: function markRoomAsBookmarked(bookmark) { + var groupchat = shared_converse.chatboxes.get(bookmark.get('jid')); + groupchat === null || groupchat === void 0 ? void 0 : groupchat.save('bookmarked', true); }, - onOccupantShowChanged: function onOccupantShowChanged(occupant) { - if (occupant.get('states').includes('303')) { - return; + markRoomAsUnbookmarked: function markRoomAsUnbookmarked(bookmark) { + var groupchat = shared_converse.chatboxes.get(bookmark.get('jid')); + groupchat === null || groupchat === void 0 ? void 0 : groupchat.save('bookmarked', false); + }, + createBookmarksFromStanza: function createBookmarksFromStanza(stanza) { + var _this4 = this; + var xmlns = collection_Strophe.NS.BOOKMARKS; + var sel = "items[node=\"".concat(xmlns, "\"] item storage[xmlns=\"").concat(xmlns, "\"] conference"); + collection_sizzle(sel, stanza).forEach(function (el) { + var _el$querySelector; + var jid = el.getAttribute('jid'); + var bookmark = _this4.get(jid); + var attrs = { + 'jid': jid, + 'name': el.getAttribute('name') || jid, + 'autojoin': el.getAttribute('autojoin') === 'true', + 'nick': ((_el$querySelector = el.querySelector('nick')) === null || _el$querySelector === void 0 ? void 0 : _el$querySelector.textContent) || '' + }; + bookmark ? bookmark.save(attrs) : _this4.create(attrs); + }); + }, + onBookmarksReceived: function onBookmarksReceived(deferred, iq) { + this.createBookmarksFromStanza(iq); + window.sessionStorage.setItem(this.fetched_flag, true); + if (deferred !== undefined) { + return deferred.resolve(); } - if (occupant.get('show') === 'offline' && shared_converse.isInfoVisible(public_converse.MUC_TRAFFIC_STATES.EXITED)) { - this.updateNotifications(occupant.get('nick'), public_converse.MUC_TRAFFIC_STATES.EXITED); - } else if (occupant.get('show') === 'online' && shared_converse.isInfoVisible(public_converse.MUC_TRAFFIC_STATES.ENTERED)) { - this.updateNotifications(occupant.get('nick'), public_converse.MUC_TRAFFIC_STATES.ENTERED); + }, + onBookmarksReceivedError: function onBookmarksReceivedError(deferred, iq) { + var __ = shared_converse.__; + if (iq === null) { + log.error('Error: timeout while fetching bookmarks'); + shared_api.alert('error', __('Timeout Error'), [__("The server did not return your bookmarks within the allowed time. " + "You can reload the page to request them again.")]); + } else if (deferred) { + if (iq.querySelector('error[type="cancel"] item-not-found')) { + // Not an exception, the user simply doesn't have any bookmarks. + window.sessionStorage.setItem(this.fetched_flag, true); + return deferred.resolve(); + } else { + log.error('Error while fetching bookmarks'); + log.error(iq); + return deferred.reject(new Error("Could not fetch bookmarks")); + } + } else { + log.error('Error while fetching bookmarks'); + log.error(iq); } }, - onRoomEntered: function onRoomEntered() { - var _this6 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee6() { - return muc_regeneratorRuntime().wrap(function _callee6$(_context6) { - while (1) switch (_context6.prev = _context6.next) { + getUnopenedBookmarks: function getUnopenedBookmarks() { + var _this5 = this; + return bookmarks_collection_asyncToGenerator( /*#__PURE__*/bookmarks_collection_regeneratorRuntime().mark(function _callee3() { + return bookmarks_collection_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { case 0: - _context6.next = 2; - return _this6.occupants.fetchMembers(); + _context3.next = 2; + return shared_api.waitUntil('bookmarksInitialized'); case 2: - if (!shared_api.settings.get('clear_messages_on_reconnection')) { - _context6.next = 7; - break; - } - _context6.next = 5; - return _this6.clearMessages(); + _context3.next = 4; + return shared_api.waitUntil('chatBoxesFetched'); + case 4: + return _context3.abrupt("return", _this5.filter(function (b) { + return !shared_converse.chatboxes.get(b.get('jid')); + })); case 5: - _context6.next = 9; - break; - case 7: - _context6.next = 9; - return _this6.fetchMessages(); - case 9: - /** - * Triggered when the user has entered a new MUC - * @event _converse#enteredNewRoom - * @type { _converse.ChatRoom} - * @example _converse.api.listen.on('enteredNewRoom', model => { ... }); - */ - shared_api.trigger('enteredNewRoom', _this6); - _context6.t0 = shared_api.settings.get('auto_register_muc_nickname'); - if (!_context6.t0) { - _context6.next = 15; - break; - } - _context6.next = 14; - return shared_api.disco.supports(Strophe.NS.MUC_REGISTER, _this6.get('jid')); - case 14: - _context6.t0 = _context6.sent; - case 15: - if (!_context6.t0) { - _context6.next = 17; - break; - } - _this6.registerNickname(); - case 17: case "end": - return _context6.stop(); + return _context3.stop(); } - }, _callee6); + }, _callee3); }))(); - }, - onConnectionStatusChanged: function onConnectionStatusChanged() { - var _this7 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee7() { - return muc_regeneratorRuntime().wrap(function _callee7$(_context7) { - while (1) switch (_context7.prev = _context7.next) { - case 0: - if (!_this7.isEntered()) { - _context7.next = 15; - break; - } - if (!_this7.isRAICandidate()) { - _context7.next = 13; - break; - } - _context7.prev = 2; - _context7.next = 5; - return _this7.leave(); - case 5: - _context7.next = 10; - break; - case 7: - _context7.prev = 7; - _context7.t0 = _context7["catch"](2); - log.error(_context7.t0); - case 10: - _this7.enableRAI(); - _context7.next = 15; - break; - case 13: - _context7.next = 15; - return _this7.onRoomEntered(); - case 15: - case "end": - return _context7.stop(); + } +}; +/* harmony default export */ const collection = (Bookmarks); +;// CONCATENATED MODULE: ./src/headless/plugins/bookmarks/utils.js +function bookmarks_utils_typeof(obj) { + "@babel/helpers - typeof"; + + return bookmarks_utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, bookmarks_utils_typeof(obj); +} +function bookmarks_utils_regeneratorRuntime() { + "use strict"; + + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + bookmarks_utils_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; + } + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == bookmarks_utils_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + reject(record.arg); + } + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); } - }, _callee7, null, [[2, 7]]); - }))(); - }, - onReconnection: function onReconnection() { - var _this8 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee8() { - return muc_regeneratorRuntime().wrap(function _callee8$(_context8) { - while (1) switch (_context8.prev = _context8.next) { - case 0: - _context8.next = 2; - return _this8.rejoin(); - case 2: - _this8.announceReconnection(); - case 3: - case "end": - return _context8.stop(); + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); + } + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } } - }, _callee8); - }))(); - }, - getMessagesCollection: function getMessagesCollection() { - return new shared_converse.ChatRoomMessages(); - }, - restoreSession: function restoreSession() { - var _this9 = this; - var id = "muc.session-".concat(shared_converse.bare_jid, "-").concat(this.get('jid')); - this.session = new MUCSession({ - id: id + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } + }; + } + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); + } + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; + }; + return next.next = next; + } + } + return { + next: doneResult + }; + } + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; +} +function bookmarks_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } +} +function bookmarks_utils_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + bookmarks_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + bookmarks_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); + }; +} + + +var bookmarks_utils_converse$env = public_converse.env, + bookmarks_utils_Strophe = bookmarks_utils_converse$env.Strophe, + bookmarks_utils_sizzle = bookmarks_utils_converse$env.sizzle; +function checkBookmarksSupport() { + return _checkBookmarksSupport.apply(this, arguments); +} +function _checkBookmarksSupport() { + _checkBookmarksSupport = bookmarks_utils_asyncToGenerator( /*#__PURE__*/bookmarks_utils_regeneratorRuntime().mark(function _callee() { + var identity; + return bookmarks_utils_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return shared_api.disco.getIdentity('pubsub', 'pep', shared_converse.bare_jid); + case 2: + identity = _context.sent; + if (!shared_api.settings.get('allow_public_bookmarks')) { + _context.next = 7; + break; + } + return _context.abrupt("return", !!identity); + case 7: + return _context.abrupt("return", shared_api.disco.supports(bookmarks_utils_Strophe.NS.PUBSUB + '#publish-options', shared_converse.bare_jid)); + case 8: + case "end": + return _context.stop(); + } + }, _callee); + })); + return _checkBookmarksSupport.apply(this, arguments); +} +function initBookmarks() { + return _initBookmarks.apply(this, arguments); +} +function _initBookmarks() { + _initBookmarks = bookmarks_utils_asyncToGenerator( /*#__PURE__*/bookmarks_utils_regeneratorRuntime().mark(function _callee2() { + return bookmarks_utils_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + if (shared_api.settings.get('allow_bookmarks')) { + _context2.next = 2; + break; + } + return _context2.abrupt("return"); + case 2: + _context2.next = 4; + return checkBookmarksSupport(); + case 4: + if (!_context2.sent) { + _context2.next = 6; + break; + } + shared_converse.bookmarks = new shared_converse.Bookmarks(); + case 6: + case "end": + return _context2.stop(); + } + }, _callee2); + })); + return _initBookmarks.apply(this, arguments); +} +function getNicknameFromBookmark(jid) { + var _converse$bookmarks, _converse$bookmarks$g; + if (!shared_api.settings.get('allow_bookmarks')) { + return null; + } + return (_converse$bookmarks = shared_converse.bookmarks) === null || _converse$bookmarks === void 0 ? void 0 : (_converse$bookmarks$g = _converse$bookmarks.get(jid)) === null || _converse$bookmarks$g === void 0 ? void 0 : _converse$bookmarks$g.get('nick'); +} +function handleBookmarksPush(message) { + if (bookmarks_utils_sizzle("event[xmlns=\"".concat(bookmarks_utils_Strophe.NS.PUBSUB, "#event\"] items[node=\"").concat(bookmarks_utils_Strophe.NS.BOOKMARKS, "\"]"), message).length) { + shared_api.waitUntil('bookmarksInitialized').then(function () { + return shared_converse.bookmarks.createBookmarksFromStanza(message); + }).catch(function (e) { + return log.fatal(e); }); - initStorage(this.session, id, 'session'); - return new Promise(function (r) { - return _this9.session.fetch({ - 'success': r, - 'error': r + } + return true; +} +;// CONCATENATED MODULE: ./src/headless/plugins/bookmarks/index.js +function bookmarks_typeof(obj) { + "@babel/helpers - typeof"; + + return bookmarks_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, bookmarks_typeof(obj); +} +function bookmarks_regeneratorRuntime() { + "use strict"; + + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + bookmarks_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; + } + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); }); }); - }, - initDiscoModels: function initDiscoModels() { - var _this10 = this; - var id = "converse.muc-features-".concat(shared_converse.bare_jid, "-").concat(this.get('jid')); - this.features = new Model(Object.assign({ - id: id - }, public_converse.ROOM_FEATURES.reduce(function (acc, feature) { - acc[feature] = false; - return acc; - }, {}))); - this.features.browserStorage = shared_converse.createStore(id, 'session'); - this.features.listenTo(shared_converse, 'beforeLogout', function () { - return _this10.features.browserStorage.flush(); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == bookmarks_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + reject(record.arg); + } + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } }); - id = "converse.muc-config-".concat(shared_converse.bare_jid, "-").concat(this.get('jid')); - this.config = new Model({ - id: id + } + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } + }; + } + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); + } + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; + }; + return next.next = next; + } + } + return { + next: doneResult + }; + } + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); }); - this.config.browserStorage = shared_converse.createStore(id, 'session'); - this.config.listenTo(shared_converse, 'beforeLogout', function () { - return _this10.config.browserStorage.flush(); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; +} +function bookmarks_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } +} +function bookmarks_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + bookmarks_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + bookmarks_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); }); + }; +} +/** + * @description + * Converse.js plugin which adds views for bookmarks specified in XEP-0048. + * @copyright 2022, the Converse.js contributors + * @license Mozilla Public License (MPLv2) + */ + + + + + + +var bookmarks_Strophe = public_converse.env.Strophe; +bookmarks_Strophe.addNamespace('BOOKMARKS', 'storage:bookmarks'); +public_converse.plugins.add('converse-bookmarks', { + dependencies: ["converse-chatboxes", "converse-muc"], + overrides: { + // Overrides mentioned here will be picked up by converse.js's + // plugin architecture they will replace existing methods on the + // relevant objects or classes. + // New functions which don't exist yet can also be added. + + ChatRoom: { + getDisplayName: function getDisplayName() { + var _converse$bookmarks; + var _this$__super__ = this.__super__, + _converse = _this$__super__._converse, + getDisplayName = _this$__super__.getDisplayName; + var bookmark = this.get('bookmarked') ? (_converse$bookmarks = _converse.bookmarks) === null || _converse$bookmarks === void 0 ? void 0 : _converse$bookmarks.get(this.get('jid')) : null; + return (bookmark === null || bookmark === void 0 ? void 0 : bookmark.get('name')) || getDisplayName.apply(this, arguments); + }, + getAndPersistNickname: function getAndPersistNickname(nick) { + nick = nick || getNicknameFromBookmark(this.get('jid')); + return this.__super__.getAndPersistNickname.call(this, nick); + } + } }, - initOccupants: function initOccupants() { - var _this11 = this; - this.occupants = new shared_converse.ChatRoomOccupants(); - var id = "converse.occupants-".concat(shared_converse.bare_jid).concat(this.get('jid')); - this.occupants.browserStorage = shared_converse.createStore(id, 'session'); - this.occupants.chatroom = this; - this.occupants.listenTo(shared_converse, 'beforeLogout', function () { - return _this11.occupants.browserStorage.flush(); + initialize: function initialize() { + // Configuration values for this plugin + // ==================================== + // Refer to docs/source/configuration.rst for explanations of these + // configuration settings. + shared_api.settings.extend({ + allow_bookmarks: true, + allow_public_bookmarks: false, + muc_respect_autojoin: true }); - }, - fetchOccupants: function fetchOccupants() { - var _this12 = this; - this.occupants.fetched = new Promise(function (resolve) { - _this12.occupants.fetch({ - 'add': true, - 'silent': true, - 'success': resolve, - 'error': resolve - }); + shared_api.promises.add('bookmarksInitialized'); + shared_converse.Bookmark = bookmarks_model; + shared_converse.Bookmarks = Collection.extend(collection); + shared_api.listen.on('addClientFeatures', function () { + if (shared_api.settings.get('allow_bookmarks')) { + shared_api.disco.own.features.add(bookmarks_Strophe.NS.BOOKMARKS + '+notify'); + } }); - return this.occupants.fetched; - }, - handleAffiliationChangedMessage: function handleAffiliationChangedMessage(stanza) { - var item = external_sizzle_default()("x[xmlns=\"".concat(Strophe.NS.MUC_USER, "\"] item"), stanza).pop(); - if (item) { - var from = stanza.getAttribute('from'); - var type = stanza.getAttribute('type'); - var affiliation = item.getAttribute('affiliation'); - var jid = item.getAttribute('jid'); - var data = { - from: from, - type: type, - affiliation: affiliation, - 'states': [], - 'show': type == 'unavailable' ? 'offline' : 'online', - 'role': item.getAttribute('role'), - 'jid': Strophe.getBareJidFromJid(jid), - 'resource': Strophe.getResourceFromJid(jid) - }; - var occupant = this.occupants.findOccupant({ - 'jid': data.jid - }); - if (occupant) { - occupant.save(data); - } else { - this.occupants.create(data); + shared_api.listen.on('clearSession', function () { + if (shared_converse.bookmarks) { + shared_converse.bookmarks.clearStore({ + 'silent': true + }); + window.sessionStorage.removeItem(shared_converse.bookmarks.fetched_flag); + delete shared_converse.bookmarks; } - } - }, - handleErrorMessageStanza: function handleErrorMessageStanza(stanza) { - var _this13 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee9() { - var __, attrs, message, new_attrs; - return muc_regeneratorRuntime().wrap(function _callee9$(_context9) { - while (1) switch (_context9.prev = _context9.next) { + }); + shared_api.listen.on('connected', /*#__PURE__*/bookmarks_asyncToGenerator( /*#__PURE__*/bookmarks_regeneratorRuntime().mark(function _callee() { + var connection; + return bookmarks_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: - __ = shared_converse.__; - _context9.next = 3; - return parseMUCMessage(stanza, _this13); - case 3: - attrs = _context9.sent; - _context9.next = 6; - return _this13.shouldShowErrorMessage(attrs); - case 6: - if (_context9.sent) { - _context9.next = 8; - break; - } - return _context9.abrupt("return"); - case 8: - message = _this13.getMessageReferencedByError(attrs); - if (message) { - new_attrs = { - 'error': attrs.error, - 'error_condition': attrs.error_condition, - 'error_text': attrs.error_text, - 'error_type': attrs.error_type, - 'editable': false - }; - if (attrs.msgid === message.get('retraction_id')) { - // The error message refers to a retraction - new_attrs.retracted = undefined; - new_attrs.retraction_id = undefined; - new_attrs.retracted_id = undefined; - if (!attrs.error) { - if (attrs.error_condition === 'forbidden') { - new_attrs.error = __("You're not allowed to retract your message."); - } else if (attrs.error_condition === 'not-acceptable') { - new_attrs.error = __("Your retraction was not delivered because you're not present in the groupchat."); - } else { - new_attrs.error = __('Sorry, an error occurred while trying to retract your message.'); - } - } - } else if (!attrs.error) { - if (attrs.error_condition === 'forbidden') { - new_attrs.error = __("Your message was not delivered because you weren't allowed to send it."); - } else if (attrs.error_condition === 'not-acceptable') { - new_attrs.error = __("Your message was not delivered because you're not present in the groupchat."); - } else { - new_attrs.error = __('Sorry, an error occurred while trying to send your message.'); - } - } - message.save(new_attrs); - } else { - _this13.createMessage(attrs); - } - case 10: + // Add a handler for bookmarks pushed from other connected clients + connection = shared_converse.connection; + connection.addHandler(handleBookmarksPush, null, 'message', 'headline', null, shared_converse.bare_jid); + _context.next = 4; + return Promise.all([shared_api.waitUntil('chatBoxesFetched')]); + case 4: + initBookmarks(); + case 5: case "end": - return _context9.stop(); + return _context.stop(); } - }, _callee9); - }))(); + }, _callee); + }))); + } +}); +;// CONCATENATED MODULE: ./src/strophe-shims.js +var WebSocket = window.WebSocket; +var DOMParser = window.DOMParser; +function getDummyXMLDOMDocument() { + return document.implementation.createDocument('jabber:client', 'strophe', null); +} +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/constants.js +/** + * Common namespace constants from the XMPP RFCs and XEPs. + * + * @typedef { Object } NS + * @property {string} NS.HTTPBIND - HTTP BIND namespace from XEP 124. + * @property {string} NS.BOSH - BOSH namespace from XEP 206. + * @property {string} NS.CLIENT - Main XMPP client namespace. + * @property {string} NS.AUTH - Legacy authentication namespace. + * @property {string} NS.ROSTER - Roster operations namespace. + * @property {string} NS.PROFILE - Profile namespace. + * @property {string} NS.DISCO_INFO - Service discovery info namespace from XEP 30. + * @property {string} NS.DISCO_ITEMS - Service discovery items namespace from XEP 30. + * @property {string} NS.MUC - Multi-User Chat namespace from XEP 45. + * @property {string} NS.SASL - XMPP SASL namespace from RFC 3920. + * @property {string} NS.STREAM - XMPP Streams namespace from RFC 3920. + * @property {string} NS.BIND - XMPP Binding namespace from RFC 3920 and RFC 6120. + * @property {string} NS.SESSION - XMPP Session namespace from RFC 3920. + * @property {string} NS.XHTML_IM - XHTML-IM namespace from XEP 71. + * @property {string} NS.XHTML - XHTML body namespace from XEP 71. + * @property {string} NS.STANZAS + * @property {string} NS.FRAMING + */ +var constants_NS = { + HTTPBIND: 'http://jabber.org/protocol/httpbind', + BOSH: 'urn:xmpp:xbosh', + CLIENT: 'jabber:client', + AUTH: 'jabber:iq:auth', + ROSTER: 'jabber:iq:roster', + PROFILE: 'jabber:iq:profile', + DISCO_INFO: 'http://jabber.org/protocol/disco#info', + DISCO_ITEMS: 'http://jabber.org/protocol/disco#items', + MUC: 'http://jabber.org/protocol/muc', + SASL: 'urn:ietf:params:xml:ns:xmpp-sasl', + STREAM: 'http://etherx.jabber.org/streams', + FRAMING: 'urn:ietf:params:xml:ns:xmpp-framing', + BIND: 'urn:ietf:params:xml:ns:xmpp-bind', + SESSION: 'urn:ietf:params:xml:ns:xmpp-session', + VERSION: 'jabber:iq:version', + STANZAS: 'urn:ietf:params:xml:ns:xmpp-stanzas', + XHTML_IM: 'http://jabber.org/protocol/xhtml-im', + XHTML: 'http://www.w3.org/1999/xhtml' +}; + +/** + * Contains allowed tags, tag attributes, and css properties. + * Used in the {@link Strophe.createHtml} function to filter incoming html into the allowed XHTML-IM subset. + * See [XEP-0071](http://xmpp.org/extensions/xep-0071.html#profile-summary) for the list of recommended + * allowed tags and their attributes. + */ +var XHTML = { + tags: ['a', 'blockquote', 'br', 'cite', 'em', 'img', 'li', 'ol', 'p', 'span', 'strong', 'ul', 'body'], + attributes: { + 'a': ['href'], + 'blockquote': ['style'], + /** @type {never[]} */ + 'br': [], + 'cite': ['style'], + /** @type {never[]} */ + 'em': [], + 'img': ['src', 'alt', 'style', 'height', 'width'], + 'li': ['style'], + 'ol': ['style'], + 'p': ['style'], + 'span': ['style'], + /** @type {never[]} */ + 'strong': [], + 'ul': ['style'], + /** @type {never[]} */ + 'body': [] }, + css: ['background-color', 'color', 'font-family', 'font-size', 'font-style', 'font-weight', 'margin-left', 'margin-right', 'text-align', 'text-decoration'] +}; + +/** @typedef {number} connstatus */ + +/** + * Connection status constants for use by the connection handler + * callback. + * + * @typedef {Object} Status + * @property {connstatus} Status.ERROR - An error has occurred + * @property {connstatus} Status.CONNECTING - The connection is currently being made + * @property {connstatus} Status.CONNFAIL - The connection attempt failed + * @property {connstatus} Status.AUTHENTICATING - The connection is authenticating + * @property {connstatus} Status.AUTHFAIL - The authentication attempt failed + * @property {connstatus} Status.CONNECTED - The connection has succeeded + * @property {connstatus} Status.DISCONNECTED - The connection has been terminated + * @property {connstatus} Status.DISCONNECTING - The connection is currently being terminated + * @property {connstatus} Status.ATTACHED - The connection has been attached + * @property {connstatus} Status.REDIRECT - The connection has been redirected + * @property {connstatus} Status.CONNTIMEOUT - The connection has timed out + * @property {connstatus} Status.BINDREQUIRED - The JID resource needs to be bound for this session + * @property {connstatus} Status.ATTACHFAIL - Failed to attach to a pre-existing session + * @property {connstatus} Status.RECONNECTING - Not used by Strophe, but added for integrators + */ +var Status = { + ERROR: 0, + CONNECTING: 1, + CONNFAIL: 2, + AUTHENTICATING: 3, + AUTHFAIL: 4, + CONNECTED: 5, + DISCONNECTED: 6, + DISCONNECTING: 7, + ATTACHED: 8, + REDIRECT: 9, + CONNTIMEOUT: 10, + BINDREQUIRED: 11, + ATTACHFAIL: 12, + RECONNECTING: 13 +}; +var ErrorCondition = { + BAD_FORMAT: 'bad-format', + CONFLICT: 'conflict', + MISSING_JID_NODE: 'x-strophe-bad-non-anon-jid', + NO_AUTH_MECH: 'no-auth-mech', + UNKNOWN_REASON: 'unknown' +}; + +/** + * @typedef {Object} LogLevel + * @property {string} DEBUG + * @property {string} INFO + * @property {string} WARN + * @property {string} ERROR + * @property {string} FATAL + */ + +/** + * Logging level indicators. + * + * - Strophe.LogLevel.DEBUG - Debug output + * - Strophe.LogLevel.INFO - Informational output + * - Strophe.LogLevel.WARN - Warnings + * - Strophe.LogLevel.ERROR - Errors + * - Strophe.LogLevel.FATAL - Fatal errors + */ +var LogLevel = { + DEBUG: 0, + INFO: 1, + WARN: 2, + ERROR: 3, + FATAL: 4 +}; + +/** + * DOM element types. + * + * - ElementType.NORMAL - Normal element. + * - ElementType.TEXT - Text data element. + * - ElementType.FRAGMENT - XHTML fragment element. + */ +var ElementType = { + NORMAL: 1, + TEXT: 3, + CDATA: 4, + FRAGMENT: 11 +}; +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/builder.js +function builder_typeof(obj) { + "@babel/helpers - typeof"; + + return builder_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, builder_typeof(obj); +} +function builder_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function builder_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, builder_toPropertyKey(descriptor.key), descriptor); + } +} +function builder_createClass(Constructor, protoProps, staticProps) { + if (protoProps) builder_defineProperties(Constructor.prototype, protoProps); + if (staticProps) builder_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function builder_toPropertyKey(arg) { + var key = builder_toPrimitive(arg, "string"); + return builder_typeof(key) === "symbol" ? key : String(key); +} +function builder_toPrimitive(input, hint) { + if (builder_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (builder_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} + + + +/** + * Create a {@link Strophe.Builder} + * This is an alias for `new Strophe.Builder(name, attrs)`. + * @param {string} name - The root element name. + * @param {Object.} [attrs] - The attributes for the root element in object notation. + * @return {Builder} A new Strophe.Builder object. + */ +function $build(name, attrs) { + return new Builder(name, attrs); +} + +/** + * Create a {@link Strophe.Builder} with a `` element as the root. + * @param {Object.} [attrs] - The element attributes in object notation. + * @return {Builder} A new Strophe.Builder object. + */ +function builder_$msg(attrs) { + return new Builder('message', attrs); +} + +/** + * Create a {@link Strophe.Builder} with an `` element as the root. + * @param {Object.} [attrs] - The element attributes in object notation. + * @return {Builder} A new Strophe.Builder object. + */ +function builder_$iq(attrs) { + return new Builder('iq', attrs); +} + +/** + * Create a {@link Strophe.Builder} with a `` element as the root. + * @param {Object.} [attrs] - The element attributes in object notation. + * @return {Builder} A new Strophe.Builder object. + */ +function $pres(attrs) { + return new Builder('presence', attrs); +} + +/** + * This class provides an interface similar to JQuery but for building + * DOM elements easily and rapidly. All the functions except for `toString()` + * and tree() return the object, so calls can be chained. + * + * The corresponding DOM manipulations to get a similar fragment would be + * a lot more tedious and probably involve several helper variables. + * + * Since adding children makes new operations operate on the child, up() + * is provided to traverse up the tree. To add two children, do + * > builder.c('child1', ...).up().c('child2', ...) + * + * The next operation on the Builder will be relative to the second child. + * + * @example + * // Here's an example using the $iq() builder helper. + * $iq({to: 'you', from: 'me', type: 'get', id: '1'}) + * .c('query', {xmlns: 'strophe:example'}) + * .c('example') + * .toString() + * + * // The above generates this XML fragment + * // + * // + * // + * // + * // + */ +var Builder = /*#__PURE__*/function () { /** - * Handles incoming message stanzas from the service that hosts this MUC - * @private - * @method _converse.ChatRoom#handleMessageFromMUCHost - * @param { Element } stanza + * @typedef {Object.} StanzaAttrs + * @property {string} [StanzaAttrs.xmlns] */ - handleMessageFromMUCHost: function handleMessageFromMUCHost(stanza) { - if (this.isEntered()) { - // We're not interested in activity indicators when already joined to the room - return; - } - var rai = external_sizzle_default()("rai[xmlns=\"".concat(Strophe.NS.RAI, "\"]"), stanza).pop(); - var active_mucs = Array.from((rai === null || rai === void 0 ? void 0 : rai.querySelectorAll('activity')) || []).map(function (m) { - return m.textContent; - }); - if (active_mucs.includes(this.get('jid'))) { - this.save({ - 'has_activity': true, - 'num_unread_general': 0 // Either/or between activity and unreads - }); - } - }, /** - * Handles XEP-0452 MUC Mention Notification messages - * @private - * @method _converse.ChatRoom#handleForwardedMentions - * @param { Element } stanza + * The attributes should be passed in object notation. + * @param {string} name - The name of the root element. + * @param {StanzaAttrs} [attrs] - The attributes for the root element in object notation. + * @example const b = new Builder('message', {to: 'you', from: 'me'}); + * @example const b = new Builder('messsage', {'xml:lang': 'en'}); */ - handleForwardedMentions: function handleForwardedMentions(stanza) { - var _this14 = this; - if (this.isEntered()) { - // Avoid counting mentions twice - return; - } - var msgs = external_sizzle_default()("mentions[xmlns=\"".concat(Strophe.NS.MENTIONS, "\"] forwarded[xmlns=\"").concat(Strophe.NS.FORWARD, "\"] message[type=\"groupchat\"]"), stanza); - var muc_jid = this.get('jid'); - var mentions = msgs.filter(function (m) { - return Strophe.getBareJidFromJid(m.getAttribute('from')) === muc_jid; - }); - if (mentions.length) { - this.save({ - 'has_activity': true, - 'num_unread': this.get('num_unread') + mentions.length - }); - mentions.forEach( /*#__PURE__*/function () { - var _ref = muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee10(stanza) { - var attrs, data; - return muc_regeneratorRuntime().wrap(function _callee10$(_context10) { - while (1) switch (_context10.prev = _context10.next) { - case 0: - _context10.next = 2; - return parseMUCMessage(stanza, _this14); - case 2: - attrs = _context10.sent; - data = { - stanza: stanza, - attrs: attrs, - 'chatbox': _this14 - }; - shared_api.trigger('message', data); - case 5: - case "end": - return _context10.stop(); - } - }, _callee10); - })); - return function (_x) { - return _ref.apply(this, arguments); + function Builder(name, attrs) { + builder_classCallCheck(this, Builder); + // Set correct namespace for jabber:client elements + if (name === 'presence' || name === 'message' || name === 'iq') { + if (attrs && !attrs.xmlns) { + attrs.xmlns = constants_NS.CLIENT; + } else if (!attrs) { + attrs = { + xmlns: constants_NS.CLIENT }; - }()); + } } - }, + // Holds the tree being built. + this.nodeTree = xmlElement(name, attrs); + // Points to the current operation node. + this.node = this.nodeTree; + } + /** - * Parses an incoming message stanza and queues it for processing. - * @private - * @method _converse.ChatRoom#handleMessageStanza - * @param { Element } stanza + * Return the DOM tree. + * + * This function returns the current DOM tree as an element object. This + * is suitable for passing to functions like Strophe.Connection.send(). + * + * @return {Element} The DOM tree as a element object. */ - handleMessageStanza: function handleMessageStanza(stanza) { - var _this15 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee11() { - var _stanza$tree, _stanza$tree2, _stanza; - var type, attrs, data; - return muc_regeneratorRuntime().wrap(function _callee11$(_context11) { - while (1) switch (_context11.prev = _context11.next) { - case 0: - stanza = (_stanza$tree = (_stanza$tree2 = (_stanza = stanza).tree) === null || _stanza$tree2 === void 0 ? void 0 : _stanza$tree2.call(_stanza)) !== null && _stanza$tree !== void 0 ? _stanza$tree : stanza; - type = stanza.getAttribute('type'); - if (!(type === 'error')) { - _context11.next = 4; - break; - } - return _context11.abrupt("return", _this15.handleErrorMessageStanza(stanza)); - case 4: - if (!(type === 'groupchat')) { - _context11.next = 11; - break; - } - if (!isArchived(stanza)) { - _context11.next = 7; - break; - } - return _context11.abrupt("return", log.warn("Received a MAM message with type \"groupchat\"")); - case 7: - _this15.createInfoMessages(stanza); - _this15.fetchFeaturesIfConfigurationChanged(stanza); - _context11.next = 13; - break; - case 11: - if (type) { - _context11.next = 13; - break; - } - return _context11.abrupt("return", _this15.handleForwardedMentions(stanza)); - case 13: - _context11.prev = 13; - _context11.next = 16; - return parseMUCMessage(stanza, _this15); - case 16: - attrs = _context11.sent; - _context11.next = 22; - break; - case 19: - _context11.prev = 19; - _context11.t0 = _context11["catch"](13); - return _context11.abrupt("return", log.error(_context11.t0)); - case 22: - data = { - stanza: stanza, - attrs: attrs, - 'chatbox': _this15 - }; - /** - * Triggered when a groupchat message stanza has been received and parsed. - * @event _converse#message - * @type { object } - * @property { module:converse-muc~MUCMessageData } data - */ - shared_api.trigger('message', data); - return _context11.abrupt("return", attrs && _this15.queueMessage(attrs)); - case 25: - case "end": - return _context11.stop(); + builder_createClass(Builder, [{ + key: "tree", + value: function tree() { + return this.nodeTree; + } + + /** + * Serialize the DOM tree to a String. + * + * This function returns a string serialization of the current DOM + * tree. It is often used internally to pass data to a + * Strophe.Request object. + * + * @return {string} The serialized DOM tree in a String. + */ + }, { + key: "toString", + value: function toString() { + return utils_serialize(this.nodeTree); + } + + /** + * Make the current parent element the new current element. + * This function is often used after c() to traverse back up the tree. + * + * @example + * // For example, to add two children to the same element + * builder.c('child1', {}).up().c('child2', {}); + * + * @return {Builder} The Strophe.Builder object. + */ + }, { + key: "up", + value: function up() { + this.node = this.node.parentElement; + return this; + } + + /** + * Make the root element the new current element. + * + * When at a deeply nested element in the tree, this function can be used + * to jump back to the root of the tree, instead of having to repeatedly + * call up(). + * + * @return {Builder} The Strophe.Builder object. + */ + }, { + key: "root", + value: function root() { + this.node = this.nodeTree; + return this; + } + + /** + * Add or modify attributes of the current element. + * + * The attributes should be passed in object notation. + * This function does not move the current element pointer. + * @param {Object.} moreattrs - The attributes to add/modify in object notation. + * If an attribute is set to `null` or `undefined`, it will be removed. + * @return {Builder} The Strophe.Builder object. + */ + }, { + key: "attrs", + value: function attrs(moreattrs) { + for (var k in moreattrs) { + if (Object.prototype.hasOwnProperty.call(moreattrs, k)) { + // eslint-disable-next-line no-eq-null + if (moreattrs[k] != null) { + this.node.setAttribute(k, moreattrs[k].toString()); + } else { + this.node.removeAttribute(k); + } } - }, _callee11, null, [[13, 19]]); - }))(); - }, - /** - * Register presence and message handlers relevant to this groupchat - * @private - * @method _converse.ChatRoom#registerHandlers - */ - registerHandlers: function registerHandlers() { - var _this16 = this; - var muc_jid = this.get('jid'); - var muc_domain = Strophe.getDomainFromJid(muc_jid); - this.removeHandlers(); - this.presence_handler = shared_converse.connection.addHandler(function (stanza) { - return _this16.onPresence(stanza) || true; - }, null, 'presence', null, null, muc_jid, { - 'ignoreNamespaceFragment': true, - 'matchBareFromJid': true - }); - this.domain_presence_handler = shared_converse.connection.addHandler(function (stanza) { - return _this16.onPresenceFromMUCHost(stanza) || true; - }, null, 'presence', null, null, muc_domain); - this.message_handler = shared_converse.connection.addHandler(function (stanza) { - return !!_this16.handleMessageStanza(stanza) || true; - }, null, 'message', null, null, muc_jid, { - 'matchBareFromJid': true - }); - this.domain_message_handler = shared_converse.connection.addHandler(function (stanza) { - return _this16.handleMessageFromMUCHost(stanza) || true; - }, null, 'message', null, null, muc_domain); - this.affiliation_message_handler = shared_converse.connection.addHandler(function (stanza) { - return _this16.handleAffiliationChangedMessage(stanza) || true; - }, Strophe.NS.MUC_USER, 'message', null, null, muc_jid); - }, - removeHandlers: function removeHandlers() { - // Remove the presence and message handlers that were - // registered for this groupchat. - if (this.message_handler) { - shared_converse.connection && shared_converse.connection.deleteHandler(this.message_handler); - delete this.message_handler; + } + return this; + } + + /** + * Add a child to the current element and make it the new current + * element. + * + * This function moves the current element pointer to the child, + * unless text is provided. If you need to add another child, it + * is necessary to use up() to go back to the parent in the tree. + * + * @param {string} name - The name of the child. + * @param {Object.|string} [attrs] - The attributes of the child in object notation. + * @param {string} [text] - The text to add to the child. + * + * @return {Builder} The Strophe.Builder object. + */ + }, { + key: "c", + value: function c(name, attrs, text) { + var child = xmlElement(name, attrs, text); + this.node.appendChild(child); + if (typeof text !== 'string' && typeof text !== 'number') { + this.node = child; + } + return this; + } + + /** + * Add a child to the current element and make it the new current + * element. + * + * This function is the same as c() except that instead of using a + * name and an attributes object to create the child it uses an + * existing DOM element object. + * + * @param {Element} elem - A DOM element. + * @return {Builder} The Strophe.Builder object. + */ + }, { + key: "cnode", + value: function cnode(elem) { + var impNode; + var xmlGen = xmlGenerator(); + try { + impNode = xmlGen.importNode !== undefined; + } catch (e) { + impNode = false; + } + var newElem = impNode ? xmlGen.importNode(elem, true) : copyElement(elem); + this.node.appendChild(newElem); + this.node = /** @type {Element} */newElem; + return this; } - if (this.domain_message_handler) { - shared_converse.connection && shared_converse.connection.deleteHandler(this.domain_message_handler); - delete this.domain_message_handler; + + /** + * Add a child text element. + * + * This *does not* make the child the new current element since there + * are no children of text elements. + * + * @param {string} text - The text data to append to the current element. + * @return {Builder} The Strophe.Builder object. + */ + }, { + key: "t", + value: function t(text) { + var child = xmlTextNode(text); + this.node.appendChild(child); + return this; } - if (this.presence_handler) { - shared_converse.connection && shared_converse.connection.deleteHandler(this.presence_handler); - delete this.presence_handler; + + /** + * Replace current element contents with the HTML passed in. + * + * This *does not* make the child the new current element + * + * @param {string} html - The html to insert as contents of current element. + * @return {Builder} The Strophe.Builder object. + */ + }, { + key: "h", + value: function h(html) { + var fragment = xmlGenerator().createElement('body'); + // force the browser to try and fix any invalid HTML tags + fragment.innerHTML = html; + // copy cleaned html into an xml dom + var xhtml = createHtml(fragment); + while (xhtml.childNodes.length > 0) { + this.node.appendChild(xhtml.childNodes[0]); + } + return this; } - if (this.domain_presence_handler) { - shared_converse.connection && shared_converse.connection.deleteHandler(this.domain_presence_handler); - delete this.domain_presence_handler; + }]); + return Builder; +}(); +/* harmony default export */ const builder = (Builder); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/utils.js +function src_utils_toConsumableArray(arr) { + return src_utils_arrayWithoutHoles(arr) || src_utils_iterableToArray(arr) || src_utils_unsupportedIterableToArray(arr) || src_utils_nonIterableSpread(); +} +function src_utils_nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +function src_utils_iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +} +function src_utils_arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return src_utils_arrayLikeToArray(arr); +} +function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + if (!it) { + if (Array.isArray(o) || (it = src_utils_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + var F = function F() {}; + return { + s: F, + n: function n() { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function e(_e) { + throw _e; + }, + f: F + }; } - if (this.affiliation_message_handler) { - shared_converse.connection && shared_converse.connection.deleteHandler(this.affiliation_message_handler); - delete this.affiliation_message_handler; + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + var normalCompletion = true, + didErr = false, + err; + return { + s: function s() { + it = it.call(o); + }, + n: function n() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function e(_e2) { + didErr = true; + err = _e2; + }, + f: function f() { + try { + if (!normalCompletion && it.return != null) it.return(); + } finally { + if (didErr) throw err; + } } - return this; - }, - invitesAllowed: function invitesAllowed() { - return shared_api.settings.get('allow_muc_invitations') && (this.features.get('open') || this.getOwnAffiliation() === 'owner'); - }, - getDisplayName: function getDisplayName() { - var name = this.get('name'); - if (name) { - return name; - } else if (shared_api.settings.get('locked_muc_domain') === 'hidden') { - return Strophe.getNodeFromJid(this.get('jid')); + }; +} +function src_utils_unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return src_utils_arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return src_utils_arrayLikeToArray(o, minLen); +} +function src_utils_arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; +} +function src_utils_typeof(obj) { + "@babel/helpers - typeof"; + + return src_utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, src_utils_typeof(obj); +} +/* global btoa */ + + + + + +/** + * @param {string} str + * @return {string} + */ +function utf16to8(str) { + var out = ''; + var len = str.length; + for (var i = 0; i < len; i++) { + var c = str.charCodeAt(i); + if (c >= 0x0000 && c <= 0x007f) { + out += str.charAt(i); + } else if (c > 0x07ff) { + out += String.fromCharCode(0xe0 | c >> 12 & 0x0f); + out += String.fromCharCode(0x80 | c >> 6 & 0x3f); + out += String.fromCharCode(0x80 | c >> 0 & 0x3f); } else { - return this.get('jid'); + out += String.fromCharCode(0xc0 | c >> 6 & 0x1f); + out += String.fromCharCode(0x80 | c >> 0 & 0x3f); } - }, + } + return out; +} + +/** + * @param {ArrayBufferLike} x + * @param {ArrayBufferLike} y + */ +function xorArrayBuffers(x, y) { + var xIntArray = new Uint8Array(x); + var yIntArray = new Uint8Array(y); + var zIntArray = new Uint8Array(x.byteLength); + for (var i = 0; i < x.byteLength; i++) { + zIntArray[i] = xIntArray[i] ^ yIntArray[i]; + } + return zIntArray.buffer; +} + +/** + * @param {ArrayBufferLike} buffer + * @return {string} + */ +function arrayBufToBase64(buffer) { + // This function is due to mobz (https://stackoverflow.com/users/1234628/mobz) + // and Emmanuel (https://stackoverflow.com/users/288564/emmanuel) + var binary = ''; + var bytes = new Uint8Array(buffer); + var len = bytes.byteLength; + for (var i = 0; i < len; i++) { + binary += String.fromCharCode(bytes[i]); + } + return btoa(binary); +} + +/** + * @param {string} str + * @return {ArrayBufferLike} + */ +function base64ToArrayBuf(str) { + var _Uint8Array$from; + return (_Uint8Array$from = Uint8Array.from(atob(str), function (c) { + return c.charCodeAt(0); + })) === null || _Uint8Array$from === void 0 ? void 0 : _Uint8Array$from.buffer; +} + +/** + * @param {string} str + * @return {ArrayBufferLike} + */ +function stringToArrayBuf(str) { + var bytes = new TextEncoder().encode(str); + return bytes.buffer; +} + +/** + * @param {Cookies} cookies + */ +function addCookies(cookies) { + if (typeof document === 'undefined') { + src_core.log(src_core.LogLevel.ERROR, "addCookies: not adding any cookies, since there's no document object"); + } + /** - * Sends a message stanza to the XMPP server and expects a reflection - * or error message within a specific timeout period. - * @private - * @method _converse.ChatRoom#sendTimedMessage - * @param { _converse.Message|Element } message - * @returns { Promise|Promise } Returns a promise - * which resolves with the reflected message stanza or with an error stanza or {@link TimeoutError}. + * @typedef {Object.} Cookie + * + * A map of cookie names to string values or to maps of cookie values. + * @typedef {Cookie|Object.} Cookies + * + * For example: + * { "myCookie": "1234" } + * + * or: + * { "myCookie": { + * "value": "1234", + * "domain": ".example.org", + * "path": "/", + * "expires": expirationDate + * } + * } + * + * These values get passed to {@link Strophe.Connection} via options.cookies */ - sendTimedMessage: function sendTimedMessage(el) { - if (typeof el.tree === 'function') { - el = el.tree(); - } - var id = el.getAttribute('id'); - if (!id) { - // inject id if not found - id = this.getUniqueId('sendIQ'); - el.setAttribute('id', id); + cookies = cookies || {}; + for (var cookieName in cookies) { + if (Object.prototype.hasOwnProperty.call(cookies, cookieName)) { + var expires = ''; + var domain = ''; + var path = ''; + var cookieObj = cookies[cookieName]; + var isObj = src_utils_typeof(cookieObj) === 'object'; + var cookieValue = escape(unescape(isObj ? cookieObj.value : cookieObj)); + if (isObj) { + expires = cookieObj.expires ? ';expires=' + cookieObj.expires : ''; + domain = cookieObj.domain ? ';domain=' + cookieObj.domain : ''; + path = cookieObj.path ? ';path=' + cookieObj.path : ''; + } + document.cookie = cookieName + '=' + cookieValue + expires + domain + path; } - var promise = getOpenPromise(); - var timeout = shared_api.settings.get('stanza_timeout'); - var timeoutHandler = shared_converse.connection.addTimedHandler(timeout, function () { - shared_converse.connection.deleteHandler(handler); - var err = new TimeoutError('Timeout Error: No response from server'); - promise.resolve(err); - return false; - }); - var handler = shared_converse.connection.addHandler(function (stanza) { - timeoutHandler && shared_converse.connection.deleteTimedHandler(timeoutHandler); - promise.resolve(stanza); - }, null, 'message', ['error', 'groupchat'], id); - shared_api.send(el); - return promise; - }, - /** - * Retract one of your messages in this groupchat - * @private - * @method _converse.ChatRoom#retractOwnMessage - * @param { _converse.Message } message - The message which we're retracting. - */ - retractOwnMessage: function retractOwnMessage(message) { - var _this17 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee12() { - var __, origin_id, editable, stanza, result; - return muc_regeneratorRuntime().wrap(function _callee12$(_context12) { - while (1) switch (_context12.prev = _context12.next) { - case 0: - __ = shared_converse.__; - origin_id = message.get('origin_id'); - if (origin_id) { - _context12.next = 4; - break; - } - throw new Error("Can't retract message without a XEP-0359 Origin ID"); - case 4: - editable = message.get('editable'); - stanza = $msg({ - 'id': getUniqueId(), - 'to': _this17.get('jid'), - 'type': 'groupchat' - }).c('store', { - xmlns: Strophe.NS.HINTS - }).up().c('apply-to', { - 'id': origin_id, - 'xmlns': Strophe.NS.FASTEN - }).c('retract', { - xmlns: Strophe.NS.RETRACT - }); // Optimistic save - message.set({ - 'retracted': new Date().toISOString(), - 'retracted_id': origin_id, - 'retraction_id': stanza.tree().getAttribute('id'), - 'editable': false - }); - _context12.next = 9; - return _this17.sendTimedMessage(stanza); - case 9: - result = _context12.sent; - if (muc_u.isErrorStanza(result)) { - log.error(result); - } else if (result instanceof TimeoutError) { - log.error(result); - message.save({ - editable: editable, - 'error_type': 'timeout', - 'error': __('A timeout happened while while trying to retract your message.'), - 'retracted': undefined, - 'retracted_id': undefined, - 'retraction_id': undefined - }); - } - case 11: - case "end": - return _context12.stop(); - } - }, _callee12); - }))(); - }, - /** - * Retract someone else's message in this groupchat. - * @private - * @method _converse.ChatRoom#retractOtherMessage - * @param { _converse.ChatRoomMessage } message - The message which we're retracting. - * @param { string } [reason] - The reason for retracting the message. - * @example - * const room = await api.rooms.get(jid); - * const message = room.messages.findWhere({'body': 'Get rich quick!'}); - * room.retractOtherMessage(message, 'spam'); - */ - retractOtherMessage: function retractOtherMessage(message, reason) { - var _this18 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee13() { - var editable, result; - return muc_regeneratorRuntime().wrap(function _callee13$(_context13) { - while (1) switch (_context13.prev = _context13.next) { - case 0: - editable = message.get('editable'); // Optimistic save - message.save({ - 'moderated': 'retracted', - 'moderated_by': shared_converse.bare_jid, - 'moderated_id': message.get('msgid'), - 'moderation_reason': reason, - 'editable': false - }); - _context13.next = 4; - return _this18.sendRetractionIQ(message, reason); - case 4: - result = _context13.sent; - if (result === null || muc_u.isErrorStanza(result)) { - // Undo the save if something went wrong - message.save({ - editable: editable, - 'moderated': undefined, - 'moderated_by': undefined, - 'moderated_id': undefined, - 'moderation_reason': undefined - }); - } - return _context13.abrupt("return", result); - case 7: - case "end": - return _context13.stop(); + } +} + +/** @type {Document} */ +var _xmlGenerator = null; + +/** + * Get the DOM document to generate elements. + * @return {Document} - The currently used DOM document. + */ +function xmlGenerator() { + if (!_xmlGenerator) { + _xmlGenerator = getDummyXMLDOMDocument(); + } + return _xmlGenerator; +} + +/** + * Creates an XML DOM text node. + * Provides a cross implementation version of document.createTextNode. + * @param {string} text - The content of the text node. + * @return {Text} - A new XML DOM text node. + */ +function xmlTextNode(text) { + return xmlGenerator().createTextNode(text); +} + +/** + * Creates an XML DOM node. + * @param {string} html - The content of the html node. + * @return {XMLDocument} + */ +function xmlHtmlNode(html) { + var parser = new DOMParser(); + return parser.parseFromString(html, 'text/xml'); +} + +/** + * Create an XML DOM element. + * + * This function creates an XML DOM element correctly across all + * implementations. Note that these are not HTML DOM elements, which + * aren't appropriate for XMPP stanzas. + * + * @param {string} name - The name for the element. + * @param {Array>|Object.|string|number} [attrs] + * An optional array or object containing + * key/value pairs to use as element attributes. + * The object should be in the format `{'key': 'value'}`. + * The array should have the format `[['key1', 'value1'], ['key2', 'value2']]`. + * @param {string|number} [text] - The text child data for the element. + * + * @return {Element} A new XML DOM element. + */ +function xmlElement(name, attrs, text) { + if (!name) return null; + var node = xmlGenerator().createElement(name); + if (text && (typeof text === 'string' || typeof text === 'number')) { + node.appendChild(xmlTextNode(text.toString())); + } else if (typeof attrs === 'string' || typeof attrs === 'number') { + node.appendChild(xmlTextNode( /** @type {number|string} */attrs.toString())); + return node; + } else if (!attrs) { + return node; + } + if (Array.isArray(attrs)) { + var _iterator = _createForOfIteratorHelper(attrs), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var attr = _step.value; + if (Array.isArray(attr)) { + // eslint-disable-next-line no-eq-null + if (attr[0] != null && attr[1] != null) { + node.setAttribute(attr[0], attr[1]); + } } - }, _callee13); - }))(); - }, - /** - * Sends an IQ stanza to the XMPP server to retract a message in this groupchat. - * @private - * @method _converse.ChatRoom#sendRetractionIQ - * @param { _converse.ChatRoomMessage } message - The message which we're retracting. - * @param { string } [reason] - The reason for retracting the message. - */ - sendRetractionIQ: function sendRetractionIQ(message, reason) { - var iq = $iq({ - 'to': this.get('jid'), - 'type': 'set' - }).c('apply-to', { - 'id': message.get("stanza_id ".concat(this.get('jid'))), - 'xmlns': Strophe.NS.FASTEN - }).c('moderate', { - xmlns: Strophe.NS.MODERATE - }).c('retract', { - xmlns: Strophe.NS.RETRACT - }).up().c('reason').t(reason || ''); - return shared_api.sendIQ(iq, null, false); - }, - /** - * Sends an IQ stanza to the XMPP server to destroy this groupchat. Not - * to be confused with the {@link _converse.ChatRoom#destroy} - * method, which simply removes the room from the local browser storage cache. - * @private - * @method _converse.ChatRoom#sendDestroyIQ - * @param { string } [reason] - The reason for destroying the groupchat. - * @param { string } [new_jid] - The JID of the new groupchat which replaces this one. - */ - sendDestroyIQ: function sendDestroyIQ(reason, new_jid) { - var destroy = $build('destroy'); - if (new_jid) { - destroy.attrs({ - 'jid': new_jid - }); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); } - var iq = $iq({ - 'to': this.get('jid'), - 'type': 'set' - }).c('query', { - 'xmlns': Strophe.NS.MUC_OWNER - }).cnode(destroy.node); - if (reason && reason.length > 0) { - iq.c('reason', reason); + } else if (src_utils_typeof(attrs) === 'object') { + for (var _i = 0, _Object$keys = Object.keys(attrs); _i < _Object$keys.length; _i++) { + var k = _Object$keys[_i]; + // eslint-disable-next-line no-eq-null + if (k && attrs[k] != null) { + node.setAttribute(k, attrs[k].toString()); + } } - return shared_api.sendIQ(iq); - }, - /** - * Leave the groupchat. - * @private - * @method _converse.ChatRoom#leave - * @param { string } [exit_msg] - Message to indicate your reason for leaving - */ - leave: function leave(exit_msg) { - var _this19 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee14() { - var _converse$disco_entit; - var disco_entity; - return muc_regeneratorRuntime().wrap(function _callee14$(_context14) { - while (1) switch (_context14.prev = _context14.next) { - case 0: - shared_api.connection.connected() && shared_api.user.presence.send('unavailable', _this19.getRoomJIDAndNick(), exit_msg); + } + return node; +} + +/** + * Utility method to determine whether a tag is allowed + * in the XHTML_IM namespace. + * + * XHTML tag names are case sensitive and must be lower case. + * @method Strophe.XHTML.validTag + * @param {string} tag + */ +function validTag(tag) { + for (var i = 0; i < XHTML.tags.length; i++) { + if (tag === XHTML.tags[i]) { + return true; + } + } + return false; +} + +/** + * @typedef {'a'|'blockquote'|'br'|'cite'|'em'|'img'|'li'|'ol'|'p'|'span'|'strong'|'ul'|'body'} XHTMLAttrs + */ + +/** + * Utility method to determine whether an attribute is allowed + * as recommended per XEP-0071 + * + * XHTML attribute names are case sensitive and must be lower case. + * @method Strophe.XHTML.validAttribute + * @param {string} tag + * @param {string} attribute + */ +function validAttribute(tag, attribute) { + var attrs = XHTML.attributes[/** @type {XHTMLAttrs} */tag]; + if ((attrs === null || attrs === void 0 ? void 0 : attrs.length) > 0) { + for (var i = 0; i < attrs.length; i++) { + if (attribute === attrs[i]) { + return true; + } + } + } + return false; +} + +/** + * @method Strophe.XHTML.validCSS + * @param {string} style + */ +function validCSS(style) { + for (var i = 0; i < XHTML.css.length; i++) { + if (style === XHTML.css[i]) { + return true; + } + } + return false; +} + +/** + * Copy an HTML DOM Element into an XML DOM. + * This function copies a DOM element and all its descendants and returns + * the new copy. + * @method Strophe.createHtml + * @param {HTMLElement} elem - A DOM element. + * @return {Node} - A new, copied DOM element tree. + */ +function createFromHtmlElement(elem) { + var el; + var tag = elem.nodeName.toLowerCase(); // XHTML tags must be lower case. + if (validTag(tag)) { + try { + el = xmlElement(tag); + if (tag in XHTML.attributes) { + var attrs = XHTML.attributes[/** @type {XHTMLAttrs} */tag]; + for (var i = 0; i < attrs.length; i++) { + var attribute = attrs[i]; + var value = elem.getAttribute(attribute); + if (typeof value === 'undefined' || value === null || value === '') { + continue; + } + if (attribute === 'style' && src_utils_typeof(value) === 'object') { + var _value$cssText; + value = /** @type {Object.<'csstext',string>} */(_value$cssText = value.cssText) !== null && _value$cssText !== void 0 ? _value$cssText : value; // we're dealing with IE, need to get CSS out + } - // Delete the features model - if (!_this19.features) { - _context14.next = 4; - break; + // filter out invalid css styles + if (attribute === 'style') { + var css = []; + var cssAttrs = value.split(';'); + for (var j = 0; j < cssAttrs.length; j++) { + var attr = cssAttrs[j].split(':'); + var cssName = attr[0].replace(/^\s*/, '').replace(/\s*$/, '').toLowerCase(); + if (validCSS(cssName)) { + var cssValue = attr[1].replace(/^\s*/, '').replace(/\s*$/, ''); + css.push(cssName + ': ' + cssValue); + } } - _context14.next = 4; - return new Promise(function (resolve) { - return _this19.features.destroy({ - 'success': resolve, - 'error': function error(_, e) { - log.error(e); - resolve(); - } - }); - }); - case 4: - // Delete disco entity - disco_entity = (_converse$disco_entit = shared_converse.disco_entities) === null || _converse$disco_entit === void 0 ? void 0 : _converse$disco_entit.get(_this19.get('jid')); - if (!disco_entity) { - _context14.next = 8; - break; + if (css.length > 0) { + value = css.join('; '); + el.setAttribute(attribute, value); } - _context14.next = 8; - return new Promise(function (resolve) { - return disco_entity.destroy({ - 'success': resolve, - 'error': function error(_, e) { - log.error(e); - resolve(); - } - }); - }); - case 8: - safeSave(_this19.session, { - 'connection_status': ROOMSTATUS.DISCONNECTED - }); - case 9: - case "end": - return _context14.stop(); + } else { + el.setAttribute(attribute, value); + } } - }, _callee14); - }))(); - }, - close: function close(ev) { - var _this20 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee15() { - var ENTERED, CLOSING, was_entered; - return muc_regeneratorRuntime().wrap(function _callee15$(_context15) { - while (1) switch (_context15.prev = _context15.next) { - case 0: - ENTERED = ROOMSTATUS.ENTERED, CLOSING = ROOMSTATUS.CLOSING; - was_entered = _this20.session.get('connection_status') === ENTERED; - safeSave(_this20.session, { - 'connection_status': CLOSING - }); - was_entered && _this20.sendMarkerForLastMessage('received', true); - _context15.next = 6; - return _this20.unregisterNickname(); - case 6: - _context15.next = 8; - return _this20.leave(); - case 8: - _this20.occupants.clearStore(); - if ((ev === null || ev === void 0 ? void 0 : ev.name) !== 'closeAllChatBoxes' && shared_api.settings.get('muc_clear_messages_on_leave')) { - _this20.clearMessages(); - } - - // Delete the session model - _context15.next = 12; - return new Promise(function (resolve) { - return _this20.session.destroy({ - 'success': resolve, - 'error': function error(_, e) { - log.error(e); - resolve(); - } - }); - }); - case 12: - return _context15.abrupt("return", shared_converse.ChatBox.prototype.close.call(_this20)); - case 13: - case "end": - return _context15.stop(); + for (var _i2 = 0; _i2 < elem.childNodes.length; _i2++) { + el.appendChild(createHtml(elem.childNodes[_i2])); } - }, _callee15); - }))(); - }, - canModerateMessages: function canModerateMessages() { - var self = this.getOwnOccupant(); - return self && self.isModerator() && shared_api.disco.supports(Strophe.NS.MODERATE, this.get('jid')); - }, + } + } catch (e) { + // invalid elements + el = xmlTextNode(''); + } + } else { + el = xmlGenerator().createDocumentFragment(); + for (var _i3 = 0; _i3 < elem.childNodes.length; _i3++) { + el.appendChild(createHtml(elem.childNodes[_i3])); + } + } + return el; +} + +/** + * Copy an HTML DOM Node into an XML DOM. + * This function copies a DOM element and all its descendants and returns + * the new copy. + * @method Strophe.createHtml + * @param {Node} node - A DOM element. + * @return {Node} - A new, copied DOM element tree. + */ +function createHtml(node) { + if (node.nodeType === ElementType.NORMAL) { + return createFromHtmlElement( /** @type {HTMLElement} */node); + } else if (node.nodeType === ElementType.FRAGMENT) { + var el = xmlGenerator().createDocumentFragment(); + for (var i = 0; i < node.childNodes.length; i++) { + el.appendChild(createHtml(node.childNodes[i])); + } + return el; + } else if (node.nodeType === ElementType.TEXT) { + return xmlTextNode(node.nodeValue); + } +} + +/** + * Copy an XML DOM element. + * + * This function copies a DOM element and all its descendants and returns + * the new copy. + * @method Strophe.copyElement + * @param {Node} node - A DOM element. + * @return {Element|Text} - A new, copied DOM element tree. + */ +function copyElement(node) { + var out; + if (node.nodeType === ElementType.NORMAL) { + var el = /** @type {Element} */node; + out = xmlElement(el.tagName); + for (var i = 0; i < el.attributes.length; i++) { + out.setAttribute(el.attributes[i].nodeName, el.attributes[i].value); + } + for (var _i4 = 0; _i4 < el.childNodes.length; _i4++) { + out.appendChild(copyElement(el.childNodes[_i4])); + } + } else if (node.nodeType === ElementType.TEXT) { + out = xmlGenerator().createTextNode(node.nodeValue); + } + return out; +} + +/** + * Excapes invalid xml characters. + * @method Strophe.xmlescape + * @param {string} text - text to escape. + * @return {string} - Escaped text. + */ +function xmlescape(text) { + text = text.replace(/\&/g, '&'); + text = text.replace(//g, '>'); + text = text.replace(/'/g, '''); + text = text.replace(/"/g, '"'); + return text; +} + +/** + * Unexcapes invalid xml characters. + * @method Strophe.xmlunescape + * @param {string} text - text to unescape. + * @return {string} - Unescaped text. + */ +function xmlunescape(text) { + text = text.replace(/\&/g, '&'); + text = text.replace(/</g, '<'); + text = text.replace(/>/g, '>'); + text = text.replace(/'/g, "'"); + text = text.replace(/"/g, '"'); + return text; +} + +/** + * Render a DOM element and all descendants to a String. + * @method Strophe.serialize + * @param {Element|Builder} elem - A DOM element. + * @return {string} - The serialized element tree as a String. + */ +function utils_serialize(elem) { + if (!elem) return null; + var el = elem instanceof builder ? elem.tree() : elem; + var names = src_utils_toConsumableArray(Array(el.attributes.length).keys()).map(function (i) { + return el.attributes[i].nodeName; + }); + names.sort(); + var result = names.reduce(function (a, n) { + return "".concat(a, " ").concat(n, "=\"").concat(xmlescape(el.attributes.getNamedItem(n).value), "\""); + }, "<".concat(el.nodeName)); + if (el.childNodes.length > 0) { + result += '>'; + for (var i = 0; i < el.childNodes.length; i++) { + var child = el.childNodes[i]; + switch (child.nodeType) { + case ElementType.NORMAL: + // normal element, so recurse + result += utils_serialize( /** @type {Element} */child); + break; + case ElementType.TEXT: + // text element to escape values + result += xmlescape(child.nodeValue); + break; + case ElementType.CDATA: + // cdata section so don't escape values + result += ''; + } + } + result += ''; + } else { + result += '/>'; + } + return result; +} + +/** + * Map a function over some or all child elements of a given element. + * + * This is a small convenience function for mapping a function over + * some or all of the children of an element. If elemName is null, all + * children will be passed to the function, otherwise only children + * whose tag names match elemName will be passed. + * + * @method Strophe.forEachChild + * @param {Element} elem - The element to operate on. + * @param {string} elemName - The child element tag name filter. + * @param {Function} func - The function to apply to each child. This + * function should take a single argument, a DOM element. + */ +function forEachChild(elem, elemName, func) { + for (var i = 0; i < elem.childNodes.length; i++) { + var childNode = elem.childNodes[i]; + if (childNode.nodeType === ElementType.NORMAL && (!elemName || this.isTagEqual(childNode, elemName))) { + func(childNode); + } + } +} + +/** + * Compare an element's tag name with a string. + * This function is case sensitive. + * @method Strophe.isTagEqual + * @param {Element} el - A DOM element. + * @param {string} name - The element name. + * @return {boolean} + * true if the element's tag name matches _el_, and false + * otherwise. + */ +function isTagEqual(el, name) { + return el.tagName === name; +} + +/** + * Get the concatenation of all text children of an element. + * @method Strophe.getText + * @param {Element} elem - A DOM element. + * @return {string} - A String with the concatenated text of all text element children. + */ +function getText(elem) { + var _elem$childNodes; + if (!elem) { + return null; + } + var str = ''; + if (!((_elem$childNodes = elem.childNodes) !== null && _elem$childNodes !== void 0 && _elem$childNodes.length) && elem.nodeType === ElementType.TEXT) { + str += elem.nodeValue; + } + for (var i = 0; (_ref = i < ((_elem$childNodes2 = elem.childNodes) === null || _elem$childNodes2 === void 0 ? void 0 : _elem$childNodes2.length)) !== null && _ref !== void 0 ? _ref : 0; i++) { + var _ref, _elem$childNodes2; + if (elem.childNodes[i].nodeType === ElementType.TEXT) { + str += elem.childNodes[i].nodeValue; + } + } + return xmlescape(str); +} + +/** + * Escape the node part (also called local part) of a JID. + * @method Strophe.escapeNode + * @param {string} node - A node (or local part). + * @return {string} An escaped node (or local part). + */ +function escapeNode(node) { + if (typeof node !== 'string') { + return node; + } + return node.replace(/^\s+|\s+$/g, '').replace(/\\/g, '\\5c').replace(/ /g, '\\20').replace(/\"/g, '\\22').replace(/\&/g, '\\26').replace(/\'/g, '\\27').replace(/\//g, '\\2f').replace(/:/g, '\\3a').replace(//g, '\\3e').replace(/@/g, '\\40'); +} + +/** + * Unescape a node part (also called local part) of a JID. + * @method Strophe.unescapeNode + * @param {string} node - A node (or local part). + * @return {string} An unescaped node (or local part). + */ +function unescapeNode(node) { + if (typeof node !== 'string') { + return node; + } + return node.replace(/\\20/g, ' ').replace(/\\22/g, '"').replace(/\\26/g, '&').replace(/\\27/g, "'").replace(/\\2f/g, '/').replace(/\\3a/g, ':').replace(/\\3c/g, '<').replace(/\\3e/g, '>').replace(/\\40/g, '@').replace(/\\5c/g, '\\'); +} + +/** + * Get the node portion of a JID String. + * @method Strophe.getNodeFromJid + * @param {string} jid - A JID. + * @return {string} - A String containing the node. + */ +function getNodeFromJid(jid) { + if (jid.indexOf('@') < 0) { + return null; + } + return jid.split('@')[0]; +} + +/** + * Get the domain portion of a JID String. + * @method Strophe.getDomainFromJid + * @param {string} jid - A JID. + * @return {string} - A String containing the domain. + */ +function getDomainFromJid(jid) { + var bare = getBareJidFromJid(jid); + if (bare.indexOf('@') < 0) { + return bare; + } else { + var parts = bare.split('@'); + parts.splice(0, 1); + return parts.join('@'); + } +} + +/** + * Get the resource portion of a JID String. + * @method Strophe.getResourceFromJid + * @param {string} jid - A JID. + * @return {string} - A String containing the resource. + */ +function getResourceFromJid(jid) { + if (!jid) { + return null; + } + var s = jid.split('/'); + if (s.length < 2) { + return null; + } + s.splice(0, 1); + return s.join('/'); +} + +/** + * Get the bare JID from a JID String. + * @method Strophe.getBareJidFromJid + * @param {string} jid - A JID. + * @return {string} - A String containing the bare JID. + */ +function getBareJidFromJid(jid) { + return jid ? jid.split('/')[0] : null; +} +var utils = { + utf16to8: utf16to8, + xorArrayBuffers: xorArrayBuffers, + arrayBufToBase64: arrayBufToBase64, + base64ToArrayBuf: base64ToArrayBuf, + stringToArrayBuf: stringToArrayBuf, + addCookies: addCookies +}; + +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/handler.js +function handler_typeof(obj) { + "@babel/helpers - typeof"; + + return handler_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, handler_typeof(obj); +} +function handler_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function handler_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, handler_toPropertyKey(descriptor.key), descriptor); + } +} +function handler_createClass(Constructor, protoProps, staticProps) { + if (protoProps) handler_defineProperties(Constructor.prototype, protoProps); + if (staticProps) handler_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function handler_toPropertyKey(arg) { + var key = handler_toPrimitive(arg, "string"); + return handler_typeof(key) === "symbol" ? key : String(key); +} +function handler_toPrimitive(input, hint) { + if (handler_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (handler_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} + + + +/** + * _Private_ helper class for managing stanza handlers. + * + * A Strophe.Handler encapsulates a user provided callback function to be + * executed when matching stanzas are received by the connection. + * Handlers can be either one-off or persistant depending on their + * return value. Returning true will cause a Handler to remain active, and + * returning false will remove the Handler. + * + * Users will not use Strophe.Handler objects directly, but instead they + * will use {@link Strophe.Connection.addHandler} and + * {@link Strophe.Connection.deleteHandler}. + */ +var Handler = /*#__PURE__*/function () { /** - * Return an array of unique nicknames based on all occupants and messages in this MUC. - * @private - * @method _converse.ChatRoom#getAllKnownNicknames - * @returns { String[] } + * @typedef {Object} HandlerOptions + * @property {boolean} [HandlerOptions.matchBareFromJid] + * @property {boolean} [HandlerOptions.ignoreNamespaceFragment] */ - getAllKnownNicknames: function getAllKnownNicknames() { - return muc_toConsumableArray(new Set([].concat(muc_toConsumableArray(this.occupants.map(function (o) { - return o.get('nick'); - })), muc_toConsumableArray(this.messages.map(function (m) { - return m.get('nick'); - }))))).filter(function (n) { - return n; - }); - }, - getAllKnownNicknamesRegex: function getAllKnownNicknamesRegex() { - var longNickString = this.getAllKnownNicknames().map(function (n) { - return parse_helpers.escapeRegexString(n); - }).join('|'); - return RegExp("(?:\\p{P}|\\p{Z}|^)@(".concat(longNickString, ")(?![\\w@-])"), 'uig'); - }, - getOccupantByJID: function getOccupantByJID(jid) { - return this.occupants.findOccupant({ - jid: jid - }); - }, - getOccupantByNickname: function getOccupantByNickname(nick) { - return this.occupants.findOccupant({ - nick: nick - }); - }, - getReferenceURIFromNickname: function getReferenceURIFromNickname(nickname) { - var muc_jid = this.get('jid'); - var occupant = this.getOccupant(nickname); - var uri = this.features.get('nonanonymous') && (occupant === null || occupant === void 0 ? void 0 : occupant.get('jid')) || "".concat(muc_jid, "/").concat(nickname); - return encodeURI("xmpp:".concat(uri)); - }, + /** - * Given a text message, look for `@` mentions and turn them into - * XEP-0372 references - * @param { String } text + * Create and initialize a new Strophe.Handler. + * + * @param {Function} handler - A function to be executed when the handler is run. + * @param {string} ns - The namespace to match. + * @param {string} name - The element name to match. + * @param {string|string[]} type - The stanza type (or types if an array) to match. + * @param {string} [id] - The element id attribute to match. + * @param {string} [from] - The element from attribute to match. + * @param {HandlerOptions} [options] - Handler options */ - parseTextForReferences: function parseTextForReferences(text) { - var _this21 = this; - var mentions_regex = /((?:[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F])|[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]|^)(@[\x2D0-9A-Z_a-z\u017F\u212A]+(?:\.[0-9A-Z_a-z\u017F\u212A]+)*)/gi; - if (!text || !mentions_regex.test(text)) { - return [text, []]; + function Handler(handler, ns, name, type, id, from, options) { + handler_classCallCheck(this, Handler); + this.handler = handler; + this.ns = ns; + this.name = name; + this.type = type; + this.id = id; + this.options = options || { + 'matchBareFromJid': false, + 'ignoreNamespaceFragment': false + }; + if (this.options.matchBareFromJid) { + this.from = from ? getBareJidFromJid(from) : null; + } else { + this.from = from; } - var getMatchingNickname = parse_helpers.findFirstMatchInArray(this.getAllKnownNicknames()); - var matchToReference = function matchToReference(match) { - var at_sign_index = match[0].indexOf('@'); - if (match[0][at_sign_index + 1] === '@') { - // edge-case - at_sign_index += 1; + // whether the handler is a user handler or a system handler + this.user = true; + } + + /** + * Returns the XML namespace attribute on an element. + * If `ignoreNamespaceFragment` was passed in for this handler, then the + * URL fragment will be stripped. + * @param {Element} elem - The XML element with the namespace. + * @return {string} - The namespace, with optionally the fragment stripped. + */ + handler_createClass(Handler, [{ + key: "getNamespace", + value: function getNamespace(elem) { + var elNamespace = elem.getAttribute('xmlns'); + if (elNamespace && this.options.ignoreNamespaceFragment) { + elNamespace = elNamespace.split('#')[0]; } - var begin = match.index + at_sign_index; - var end = begin + match[0].length - at_sign_index; - var value = getMatchingNickname(match[1]); - var type = 'mention'; - var uri = _this21.getReferenceURIFromNickname(value); - return { - begin: begin, - end: end, - value: value, - type: type, - uri: uri - }; - }; - var regex = this.getAllKnownNicknamesRegex(); - var mentions = muc_toConsumableArray(text.matchAll(regex)).filter(function (m) { - return !m[0].startsWith('/'); - }); - var references = mentions.map(matchToReference); - var _p$reduceTextFromRefe = parse_helpers.reduceTextFromReferences(text, references), - _p$reduceTextFromRefe2 = muc_slicedToArray(_p$reduceTextFromRefe, 2), - updated_message = _p$reduceTextFromRefe2[0], - updated_references = _p$reduceTextFromRefe2[1]; - return [updated_message, updated_references]; - }, - getOutgoingMessageAttributes: function getOutgoingMessageAttributes(attrs) { - var _this22 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee16() { - var _attrs; - var is_spoiler, text, references, _this22$parseTextForR, _this22$parseTextForR2, origin_id, body; - return muc_regeneratorRuntime().wrap(function _callee16$(_context16) { - while (1) switch (_context16.prev = _context16.next) { - case 0: - _context16.next = 2; - return shared_api.emojis.initialize(); - case 2: - is_spoiler = _this22.get('composing_spoiler'); - text = ''; - if ((_attrs = attrs) !== null && _attrs !== void 0 && _attrs.body) { - _this22$parseTextForR = _this22.parseTextForReferences(attrs.body); - _this22$parseTextForR2 = muc_slicedToArray(_this22$parseTextForR, 2); - text = _this22$parseTextForR2[0]; - references = _this22$parseTextForR2[1]; - } - origin_id = getUniqueId(); - body = text ? muc_u.shortnamesToUnicode(text) : undefined; - attrs = Object.assign({}, attrs, { - body: body, - is_spoiler: is_spoiler, - origin_id: origin_id, - references: references, - 'id': origin_id, - 'msgid': origin_id, - 'from': "".concat(_this22.get('jid'), "/").concat(_this22.get('nick')), - 'fullname': _this22.get('nick'), - 'is_only_emojis': text ? muc_u.isOnlyEmojis(text) : false, - 'message': body, - 'nick': _this22.get('nick'), - 'sender': 'me', - 'type': 'groupchat' - }, getMediaURLsMetadata(text)); + return elNamespace; + } + + /** + * Tests if a stanza matches the namespace set for this Strophe.Handler. + * @param {Element} elem - The XML element to test. + * @return {boolean} - true if the stanza matches and false otherwise. + */ + }, { + key: "namespaceMatch", + value: function namespaceMatch(elem) { + var _this = this; + var nsMatch = false; + if (!this.ns) { + return true; + } else { + forEachChild(elem, null, /** @param {Element} elem */ + function (elem) { + if (_this.getNamespace(elem) === _this.ns) { + nsMatch = true; + } + }); + return nsMatch || this.getNamespace(elem) === this.ns; + } + } + + /** + * Tests if a stanza matches the Strophe.Handler. + * @param {Element} elem - The XML element to test. + * @return {boolean} - true if the stanza matches and false otherwise. + */ + }, { + key: "isMatch", + value: function isMatch(elem) { + var from = elem.getAttribute('from'); + if (this.options.matchBareFromJid) { + from = getBareJidFromJid(from); + } + var elem_type = elem.getAttribute('type'); + if (this.namespaceMatch(elem) && (!this.name || src_core.isTagEqual(elem, this.name)) && (!this.type || (Array.isArray(this.type) ? this.type.indexOf(elem_type) !== -1 : elem_type === this.type)) && (!this.id || elem.getAttribute('id') === this.id) && (!this.from || from === this.from)) { + return true; + } + return false; + } - /** - * *Hook* which allows plugins to update the attributes of an outgoing - * message. - * @event _converse#getOutgoingMessageAttributes - */ - _context16.next = 10; - return shared_api.hook('getOutgoingMessageAttributes', _this22, attrs); - case 10: - attrs = _context16.sent; - return _context16.abrupt("return", attrs); - case 12: - case "end": - return _context16.stop(); - } - }, _callee16); - }))(); - }, + /** + * Run the callback on a matching stanza. + * @param {Element} elem - The DOM element that triggered the Strophe.Handler. + * @return {boolean} - A boolean indicating if the handler should remain active. + */ + }, { + key: "run", + value: function run(elem) { + var result = null; + try { + result = this.handler(elem); + } catch (e) { + src_core._handleError(e); + throw e; + } + return result; + } + + /** + * Get a String representation of the Strophe.Handler object. + * @return {string} + */ + }, { + key: "toString", + value: function toString() { + return '{Handler: ' + this.handler + '(' + this.name + ',' + this.id + ',' + this.ns + ')}'; + } + }]); + return Handler; +}(); +/* harmony default export */ const src_handler = (Handler); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/timed-handler.js +function timed_handler_typeof(obj) { + "@babel/helpers - typeof"; + + return timed_handler_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, timed_handler_typeof(obj); +} +function timed_handler_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function timed_handler_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, timed_handler_toPropertyKey(descriptor.key), descriptor); + } +} +function timed_handler_createClass(Constructor, protoProps, staticProps) { + if (protoProps) timed_handler_defineProperties(Constructor.prototype, protoProps); + if (staticProps) timed_handler_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function timed_handler_toPropertyKey(arg) { + var key = timed_handler_toPrimitive(arg, "string"); + return timed_handler_typeof(key) === "symbol" ? key : String(key); +} +function timed_handler_toPrimitive(input, hint) { + if (timed_handler_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (timed_handler_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +/** + * _Private_ helper class for managing timed handlers. + * + * A Strophe.TimedHandler encapsulates a user provided callback that + * should be called after a certain period of time or at regular + * intervals. The return value of the callback determines whether the + * Strophe.TimedHandler will continue to fire. + * + * Users will not use Strophe.TimedHandler objects directly, but instead + * they will use {@link Strophe.Connection#addTimedHandler|addTimedHandler()} and + * {@link Strophe.Connection#deleteTimedHandler|deleteTimedHandler()}. + * + * @memberof Strophe + */ +var TimedHandler = /*#__PURE__*/function () { /** - * Utility method to construct the JID for the current user as occupant of the groupchat. - * @private - * @method _converse.ChatRoom#getRoomJIDAndNick - * @returns {string} - The groupchat JID with the user's nickname added at the end. - * @example groupchat@conference.example.org/nickname + * Create and initialize a new Strophe.TimedHandler object. + * @param {number} period - The number of milliseconds to wait before the + * handler is called. + * @param {Function} handler - The callback to run when the handler fires. This + * function should take no arguments. */ - getRoomJIDAndNick: function getRoomJIDAndNick() { - var nick = this.get('nick'); - var jid = Strophe.getBareJidFromJid(this.get('jid')); - return jid + (nick !== null ? "/".concat(nick) : ''); - }, + function TimedHandler(period, handler) { + timed_handler_classCallCheck(this, TimedHandler); + this.period = period; + this.handler = handler; + this.lastCalled = new Date().getTime(); + this.user = true; + } + /** - * Sends a message with the current XEP-0085 chat state of the user - * as taken from the `chat_state` attribute of the {@link _converse.ChatRoom}. - * @private - * @method _converse.ChatRoom#sendChatState + * Run the callback for the Strophe.TimedHandler. + * + * @return {boolean} Returns the result of running the handler, + * which is `true` if the Strophe.TimedHandler should be called again, + * and `false` otherwise. */ - sendChatState: function sendChatState() { - if (!shared_api.settings.get('send_chat_state_notifications') || !this.get('chat_state') || !this.isEntered() || this.features.get('moderated') && this.getOwnRole() === 'visitor') { - return; + timed_handler_createClass(TimedHandler, [{ + key: "run", + value: function run() { + this.lastCalled = new Date().getTime(); + return this.handler(); } - var allowed = shared_api.settings.get('send_chat_state_notifications'); - if (Array.isArray(allowed) && !allowed.includes(this.get('chat_state'))) { - return; + + /** + * Reset the last called time for the Strophe.TimedHandler. + */ + }, { + key: "reset", + value: function reset() { + this.lastCalled = new Date().getTime(); } - var chat_state = this.get('chat_state'); - if (chat_state === shared_converse.GONE) { - // is not applicable within MUC context - return; + + /** + * Get a string representation of the Strophe.TimedHandler object. + * @return {string} + */ + }, { + key: "toString", + value: function toString() { + return '{TimedHandler: ' + this.handler + '(' + this.period + ')}'; } - shared_api.send($msg({ - 'to': this.get('jid'), - 'type': 'groupchat' - }).c(chat_state, { - 'xmlns': Strophe.NS.CHATSTATES - }).up().c('no-store', { - 'xmlns': Strophe.NS.HINTS - }).up().c('no-permanent-store', { - 'xmlns': Strophe.NS.HINTS - })); - }, - /** - * Send a direct invitation as per XEP-0249 - * @private - * @method _converse.ChatRoom#directInvite - * @param { String } recipient - JID of the person being invited - * @param { String } [reason] - Reason for the invitation - */ - directInvite: function directInvite(recipient, reason) { - if (this.features.get('membersonly')) { - // When inviting to a members-only groupchat, we first add - // the person to the member list by giving them an - // affiliation of 'member' otherwise they won't be able to join. - this.updateMemberLists([{ - 'jid': recipient, - 'affiliation': 'member', - 'reason': reason - }]); + }]); + return TimedHandler; +}(); +/* harmony default export */ const timed_handler = (TimedHandler); +// EXTERNAL MODULE: ./node_modules/abab/index.js +var abab = __webpack_require__(3208); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/errors.js +function src_errors_typeof(obj) { + "@babel/helpers - typeof"; + + return src_errors_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, src_errors_typeof(obj); +} +function src_errors_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, src_errors_toPropertyKey(descriptor.key), descriptor); + } +} +function src_errors_createClass(Constructor, protoProps, staticProps) { + if (protoProps) src_errors_defineProperties(Constructor.prototype, protoProps); + if (staticProps) src_errors_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function src_errors_toPropertyKey(arg) { + var key = src_errors_toPrimitive(arg, "string"); + return src_errors_typeof(key) === "symbol" ? key : String(key); +} +function src_errors_toPrimitive(input, hint) { + if (src_errors_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (src_errors_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function src_errors_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function src_errors_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true } - var attrs = { - 'xmlns': 'jabber:x:conference', - 'jid': this.get('jid') - }; - if (reason !== null) { - attrs.reason = reason; + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) src_errors_setPrototypeOf(subClass, superClass); +} +function src_errors_createSuper(Derived) { + var hasNativeReflectConstruct = src_errors_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = src_errors_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = src_errors_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); } - if (this.get('password')) { - attrs.password = this.get('password'); + return src_errors_possibleConstructorReturn(this, result); + }; +} +function src_errors_possibleConstructorReturn(self, call) { + if (call && (src_errors_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return src_errors_assertThisInitialized(self); +} +function src_errors_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} +function src_errors_wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + src_errors_wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !src_errors_isNativeFunction(Class)) return Class; + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); } - var invitation = $msg({ - 'from': shared_converse.connection.jid, - 'to': recipient, - 'id': getUniqueId() - }).c('x', attrs); - shared_api.send(invitation); - /** - * After the user has sent out a direct invitation (as per XEP-0249), - * to a roster contact, asking them to join a room. - * @event _converse#chatBoxMaximized - * @type {object} - * @property {_converse.ChatRoom} room - * @property {string} recipient - The JID of the person being invited - * @property {string} reason - The original reason for the invitation - * @example _converse.api.listen.on('chatBoxMaximized', view => { ... }); - */ - shared_api.trigger('roomInviteSent', { - 'room': this, - 'recipient': recipient, - 'reason': reason - }); - }, - /** - * Refresh the disco identity, features and fields for this {@link _converse.ChatRoom}. - * *features* are stored on the features {@link Model} attribute on this {@link _converse.ChatRoom}. - * *fields* are stored on the config {@link Model} attribute on this {@link _converse.ChatRoom}. - * @private - * @returns {Promise} - */ - refreshDiscoInfo: function refreshDiscoInfo() { - var _this23 = this; - return shared_api.disco.refresh(this.get('jid')).then(function () { - return _this23.getDiscoInfo(); - }).catch(function (e) { - return log.error(e); + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + _cache.set(Class, Wrapper); + } + function Wrapper() { + return src_errors_construct(Class, arguments, src_errors_getPrototypeOf(this).constructor); + } + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } }); - }, + return src_errors_setPrototypeOf(Wrapper, Class); + }; + return src_errors_wrapNativeSuper(Class); +} +function src_errors_construct(Parent, args, Class) { + if (src_errors_isNativeReflectConstruct()) { + src_errors_construct = Reflect.construct.bind(); + } else { + src_errors_construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) src_errors_setPrototypeOf(instance, Class.prototype); + return instance; + }; + } + return src_errors_construct.apply(null, arguments); +} +function src_errors_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} +function src_errors_isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; +} +function src_errors_setPrototypeOf(o, p) { + src_errors_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return src_errors_setPrototypeOf(o, p); +} +function src_errors_getPrototypeOf(o) { + src_errors_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return src_errors_getPrototypeOf(o); +} +var SessionError = /*#__PURE__*/function (_Error) { + src_errors_inherits(SessionError, _Error); + var _super = src_errors_createSuper(SessionError); /** - * Fetch the *extended* MUC info from the server and cache it locally - * https://xmpp.org/extensions/xep-0045.html#disco-roominfo - * @private - * @method _converse.ChatRoom#getDiscoInfo - * @returns {Promise} + * @param {string} message */ - getDiscoInfo: function getDiscoInfo() { - var _this24 = this; - return shared_api.disco.getIdentity('conference', 'text', this.get('jid')).then(function (identity) { - return _this24.save({ - 'name': identity === null || identity === void 0 ? void 0 : identity.get('name') + function SessionError(message) { + var _this; + src_errors_classCallCheck(this, SessionError); + _this = _super.call(this, message); + _this.name = 'StropheSessionError'; + return _this; + } + return src_errors_createClass(SessionError); +}( /*#__PURE__*/src_errors_wrapNativeSuper(Error)); + +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/connection.js +function src_connection_typeof(obj) { + "@babel/helpers - typeof"; + + return src_connection_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, src_connection_typeof(obj); +} +function src_connection_regeneratorRuntime() { + "use strict"; + + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + src_connection_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; + } + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); }); - }).then(function () { - return _this24.getDiscoInfoFields(); - }).then(function () { - return _this24.getDiscoInfoFeatures(); - }).catch(function (e) { - return log.error(e); }); - }, - /** - * Fetch the *extended* MUC info fields from the server and store them locally - * in the `config` {@link Model} attribute. - * See: https://xmpp.org/extensions/xep-0045.html#disco-roominfo - * @private - * @method _converse.ChatRoom#getDiscoInfoFields - * @returns {Promise} - */ - getDiscoInfoFields: function getDiscoInfoFields() { - var _this25 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee17() { - var fields, config; - return muc_regeneratorRuntime().wrap(function _callee17$(_context17) { - while (1) switch (_context17.prev = _context17.next) { - case 0: - _context17.next = 2; - return shared_api.disco.getFields(_this25.get('jid')); - case 2: - fields = _context17.sent; - config = fields.reduce(function (config, f) { - var name = f.get('var'); - if (name !== null && name !== void 0 && name.startsWith('muc#roominfo_')) { - config[name.replace('muc#roominfo_', '')] = f.get('value'); - } - return config; - }, {}); - _this25.config.save(config); - case 5: - case "end": - return _context17.stop(); - } - }, _callee17); - }))(); - }, - /** - * Use converse-disco to populate the features {@link Model} which - * is stored as an attibute on this {@link _converse.ChatRoom}. - * The results may be cached. If you want to force fetching the features from the - * server, call {@link _converse.ChatRoom#refreshDiscoInfo} instead. - * @private - * @returns {Promise} - */ - getDiscoInfoFeatures: function getDiscoInfoFeatures() { - var _this26 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee18() { - var features, attrs; - return muc_regeneratorRuntime().wrap(function _callee18$(_context18) { - while (1) switch (_context18.prev = _context18.next) { - case 0: - _context18.next = 2; - return shared_api.disco.getFeatures(_this26.get('jid')); - case 2: - features = _context18.sent; - attrs = public_converse.ROOM_FEATURES.reduce(function (acc, feature) { - acc[feature] = false; - return acc; - }, { - 'fetched': new Date().toISOString() - }); - features.each(function (feature) { - var fieldname = feature.get('var'); - if (!fieldname.startsWith('muc_')) { - if (fieldname === Strophe.NS.MAM) { - attrs.mam_enabled = true; - } else { - attrs[fieldname] = true; - } - return; - } - attrs[fieldname.replace('muc_', '')] = true; - }); - _this26.features.save(attrs); - case 6: - case "end": - return _context18.stop(); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == src_connection_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + reject(record.arg); + } + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); } - }, _callee18); - }))(); - }, - /** - * Given a element, return a copy with a child if - * we can find a value for it in this rooms config. - * @private - * @method _converse.ChatRoom#addFieldValue - * @returns { Element } - */ - addFieldValue: function addFieldValue(field) { - var type = field.getAttribute('type'); - if (type === 'fixed') { - return field; + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); + } + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } + }; + } + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); + } + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; + }; + return next.next = next; + } } - var fieldname = field.getAttribute('var').replace('muc#roomconfig_', ''); - var config = this.get('roomconfig'); - if (fieldname in config) { - var values; - switch (type) { - case 'boolean': - values = [config[fieldname] ? 1 : 0]; - break; - case 'list-multi': - values = config[fieldname]; + return { + next: doneResult + }; + } + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; break; - default: - values = [config[fieldname]]; + } } - field.innerHTML = values.map(function (v) { - return $build('value').t(v); - }).join(''); + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } - return field; - }, + }, exports; +} +function src_connection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } +} +function src_connection_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + src_connection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + src_connection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); + }; +} +function src_connection_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function src_connection_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, src_connection_toPropertyKey(descriptor.key), descriptor); + } +} +function src_connection_createClass(Constructor, protoProps, staticProps) { + if (protoProps) src_connection_defineProperties(Constructor.prototype, protoProps); + if (staticProps) src_connection_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function src_connection_toPropertyKey(arg) { + var key = src_connection_toPrimitive(arg, "string"); + return src_connection_typeof(key) === "symbol" ? key : String(key); +} +function src_connection_toPrimitive(input, hint) { + if (src_connection_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (src_connection_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} + + + + + + + + + +/** + * @typedef {import("./sasl.js").default} SASLMechanism + * @typedef {import("./request.js").default} Request + */ + +/** + * **XMPP Connection manager** + * + * This class is the main part of Strophe. It manages a BOSH or websocket + * connection to an XMPP server and dispatches events to the user callbacks + * as data arrives. + * + * It supports various authentication mechanisms (e.g. SASL PLAIN, SASL SCRAM), + * and more can be added via + * {@link Strophe.Connection#registerSASLMechanisms|registerSASLMechanisms()}. + * + * After creating a Strophe.Connection object, the user will typically + * call {@link Strophe.Connection#connect|connect()} with a user supplied callback + * to handle connection level events like authentication failure, + * disconnection, or connection complete. + * + * The user will also have several event handlers defined by using + * {@link Strophe.Connection#addHandler|addHandler()} and + * {@link Strophe.Connection#addTimedHandler|addTimedHandler()}. + * These will allow the user code to respond to interesting stanzas or do + * something periodically with the connection. These handlers will be active + * once authentication is finished. + * + * To send data to the connection, use {@link Strophe.Connection#send|send()}. + * + * @memberof Strophe + */ +var connection_Connection = /*#__PURE__*/function () { /** - * Automatically configure the groupchat based on this model's - * 'roomconfig' data. - * @private - * @method _converse.ChatRoom#autoConfigureChatRoom - * @returns { Promise } - * Returns a promise which resolves once a response IQ has - * been received. + * @typedef {Object.} Cookie + * @typedef {Cookie|Object.} Cookies */ - autoConfigureChatRoom: function autoConfigureChatRoom() { - var _this27 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee19() { - var stanza, fields, configArray; - return muc_regeneratorRuntime().wrap(function _callee19$(_context19) { - while (1) switch (_context19.prev = _context19.next) { - case 0: - _context19.next = 2; - return _this27.fetchRoomConfiguration(); - case 2: - stanza = _context19.sent; - fields = external_sizzle_default()('field', stanza); - configArray = fields.map(function (f) { - return _this27.addFieldValue(f); - }); - if (!configArray.length) { - _context19.next = 7; - break; - } - return _context19.abrupt("return", _this27.sendConfiguration(configArray)); - case 7: - case "end": - return _context19.stop(); - } - }, _callee19); - }))(); - }, + /** - * Send an IQ stanza to fetch the groupchat configuration data. - * Returns a promise which resolves once the response IQ - * has been received. - * @private - * @method _converse.ChatRoom#fetchRoomConfiguration - * @returns { Promise } + * @typedef {Object} ConnectionOptions + * @property {Cookies} [cookies] + * Allows you to pass in cookies that will be included in HTTP requests. + * Relevant to both the BOSH and Websocket transports. + * + * The passed in value must be a map of cookie names and string values. + * + * > { "myCookie": { + * > "value": "1234", + * > "domain": ".example.org", + * > "path": "/", + * > "expires": expirationDate + * > } + * > } + * + * Note that cookies can't be set in this way for domains other than the one + * that's hosting Strophe (i.e. cross-domain). + * Those cookies need to be set under those domains, for example they can be + * set server-side by making a XHR call to that domain to ask it to set any + * necessary cookies. + * @property {SASLMechanism[]} [mechanisms] + * Allows you to specify the SASL authentication mechanisms that this + * instance of Strophe.Connection (and therefore your XMPP client) will support. + * + * The value must be an array of objects with {@link Strophe.SASLMechanism} + * prototypes. + * + * If nothing is specified, then the following mechanisms (and their + * priorities) are registered: + * + * Mechanism Priority + * ------------------------ + * SCRAM-SHA-512 72 + * SCRAM-SHA-384 71 + * SCRAM-SHA-256 70 + * SCRAM-SHA-1 60 + * PLAIN 50 + * OAUTHBEARER 40 + * X-OAUTH2 30 + * ANONYMOUS 20 + * EXTERNAL 10 + * + * @property {boolean} [explicitResourceBinding] + * If `explicitResourceBinding` is set to `true`, then the XMPP client + * needs to explicitly call {@link Strophe.Connection.bind} once the XMPP + * server has advertised the `urn:ietf:propertys:xml:ns:xmpp-bind` feature. + * + * Making this step explicit allows client authors to first finish other + * stream related tasks, such as setting up an XEP-0198 Stream Management + * session, before binding the JID resource for this session. + * + * @property {'ws'|'wss'} [protocol] + * _Note: This option is only relevant to Websocket connections, and not BOSH_ + * + * If you want to connect to the current host with a WebSocket connection you + * can tell Strophe to use WebSockets through the "protocol" option. + * Valid values are `ws` for WebSocket and `wss` for Secure WebSocket. + * So to connect to "wss://CURRENT_HOSTNAME/xmpp-websocket" you would call + * + * const conn = new Strophe.Connection( + * "/xmpp-websocket/", + * {protocol: "wss"} + * ); + * + * Note that relative URLs _NOT_ starting with a "/" will also include the path + * of the current site. + * + * Also because downgrading security is not permitted by browsers, when using + * relative URLs both BOSH and WebSocket connections will use their secure + * variants if the current connection to the site is also secure (https). + * + * @property {string} [worker] + * _Note: This option is only relevant to Websocket connections, and not BOSH_ + * + * Set this option to URL from where the shared worker script should be loaded. + * + * To run the websocket connection inside a shared worker. + * This allows you to share a single websocket-based connection between + * multiple Strophe.Connection instances, for example one per browser tab. + * + * The script to use is the one in `src/shared-connection-worker.js`. + * + * @property {boolean} [sync] + * Used to control whether BOSH HTTP requests will be made synchronously or not. + * The default behaviour is asynchronous. If you want to make requests + * synchronous, make "sync" evaluate to true. + * + * > const conn = new Strophe.Connection("/http-bind/", {sync: true}); + * + * You can also toggle this on an already established connection. + * + * > conn.options.sync = true; + * + * @property {string[]} [customHeaders] + * Used to provide custom HTTP headers to be included in the BOSH HTTP requests. + * + * @property {boolean} [keepalive] + * Used to instruct Strophe to maintain the current BOSH session across + * interruptions such as webpage reloads. + * + * It will do this by caching the sessions tokens in sessionStorage, and when + * "restore" is called it will check whether there are cached tokens with + * which it can resume an existing session. + * + * @property {boolean} [withCredentials] + * Used to indicate wether cookies should be included in HTTP requests (by default + * they're not). + * Set this value to `true` if you are connecting to a BOSH service + * and for some reason need to send cookies to it. + * In order for this to work cross-domain, the server must also enable + * credentials by setting the `Access-Control-Allow-Credentials` response header + * to "true". For most usecases however this setting should be false (which + * is the default). + * Additionally, when using `Access-Control-Allow-Credentials`, the + * `Access-Control-Allow-Origin` header can't be set to the wildcard "*", but + * instead must be restricted to actual domains. + * + * @property {string} [contentType] + * Used to change the default Content-Type, which is "text/xml; charset=utf-8". + * Can be useful to reduce the amount of CORS preflight requests that are sent + * to the server. */ - fetchRoomConfiguration: function fetchRoomConfiguration() { - return shared_api.sendIQ($iq({ - 'to': this.get('jid'), - 'type': 'get' - }).c('query', { - xmlns: Strophe.NS.MUC_OWNER - })); - }, + /** - * Sends an IQ stanza with the groupchat configuration. - * @private - * @method _converse.ChatRoom#sendConfiguration - * @param { Array } config - The groupchat configuration - * @returns { Promise } - A promise which resolves with - * the `result` stanza received from the XMPP server. + * Create and initialize a {@link Strophe.Connection} object. + * + * The transport-protocol for this connection will be chosen automatically + * based on the given service parameter. URLs starting with "ws://" or + * "wss://" will use WebSockets, URLs starting with "http://", "https://" + * or without a protocol will use [BOSH](https://xmpp.org/extensions/xep-0124.html). + * + * To make Strophe connect to the current host you can leave out the protocol + * and host part and just pass the path: + * + * const conn = new Strophe.Connection("/http-bind/"); + * + * @param {string} service - The BOSH or WebSocket service URL. + * @param {ConnectionOptions} options - A object containing configuration options */ - sendConfiguration: function sendConfiguration() { - var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - var iq = $iq({ - to: this.get('jid'), - type: 'set' - }).c('query', { - xmlns: Strophe.NS.MUC_OWNER - }).c('x', { - xmlns: Strophe.NS.XFORM, - type: 'submit' - }); - config.forEach(function (node) { - return iq.cnode(node).up(); - }); - return shared_api.sendIQ(iq); - }, - onCommandError: function onCommandError(err) { - var __ = shared_converse.__; - log.fatal(err); - var message = __('Sorry, an error happened while running the command.') + ' ' + __("Check your browser's developer console for details."); - this.createMessage({ - message: message, - 'type': 'error' - }); - }, - getNickOrJIDFromCommandArgs: function getNickOrJIDFromCommandArgs(args) { - var __ = shared_converse.__; - if (muc_u.isValidJID(args.trim())) { - return args.trim(); - } - if (!args.startsWith('@')) { - args = '@' + args; - } - var _this$parseTextForRef = this.parseTextForReferences(args), - _this$parseTextForRef2 = muc_slicedToArray(_this$parseTextForRef, 2), - _text = _this$parseTextForRef2[0], - references = _this$parseTextForRef2[1]; // eslint-disable-line no-unused-vars - if (!references.length) { - var message = __("Error: couldn't find a groupchat participant based on your arguments"); - this.createMessage({ - message: message, - 'type': 'error' - }); - return; - } - if (references.length > 1) { - var _message = __('Error: found multiple groupchat participant based on your arguments'); - this.createMessage({ - message: _message, - 'type': 'error' - }); - return; - } - var nick_or_jid = references.pop().value; - var reason = args.split(nick_or_jid, 2)[1]; - if (reason && !reason.startsWith(' ')) { - var _message2 = __("Error: couldn't find a groupchat participant based on your arguments"); - this.createMessage({ - message: _message2, - 'type': 'error' - }); - return; + function Connection(service) { + var _this = this; + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + src_connection_classCallCheck(this, Connection); + // The service URL + this.service = service; + // Configuration options + this.options = options; + this.setProtocol(); + + /* The connected JID. */ + this.jid = ''; + /* the JIDs domain */ + this.domain = null; + /* stream:features */ + this.features = null; + + // SASL + /** + * @typedef {Object.} SASLData + * @property {Object} [SASLData.keys] + */ + + /** @type {SASLData} */ + this._sasl_data = {}; + this.do_bind = false; + this.do_session = false; + + /** @type {Object.} */ + this.mechanisms = {}; + + /** @type {TimedHandler[]} */ + this.timedHandlers = []; + + /** @type {Handler[]} */ + this.handlers = []; + + /** @type {TimedHandler[]} */ + this.removeTimeds = []; + + /** @type {Handler[]} */ + this.removeHandlers = []; + + /** @type {TimedHandler[]} */ + this.addTimeds = []; + + /** @type {Handler[]} */ + this.addHandlers = []; + this.protocolErrorHandlers = { + /** @type {Object.} */ + 'HTTP': {}, + /** @type {Object.} */ + 'websocket': {} + }; + this._idleTimeout = null; + this._disconnectTimeout = null; + this.authenticated = false; + this.connected = false; + this.disconnecting = false; + this.do_authentication = true; + this.paused = false; + this.restored = false; + + /** @type {(Element|'restart')[]} */ + this._data = []; + this._uniqueId = 0; + this._sasl_success_handler = null; + this._sasl_failure_handler = null; + this._sasl_challenge_handler = null; + + // Max retries before disconnecting + this.maxRetries = 5; + + // Call onIdle callback every 1/10th of a second + this._idleTimeout = setTimeout(function () { + return _this._onIdle(); + }, 100); + addCookies(this.options.cookies); + this.registerSASLMechanisms(this.options.mechanisms); + + // A client must always respond to incoming IQ "set" and "get" stanzas. + // See https://datatracker.ietf.org/doc/html/rfc6120#section-8.2.3 + // + // This is a fallback handler which gets called when no other handler + // was called for a received IQ "set" or "get". + this.iqFallbackHandler = new src_handler( + /** + * @param {Element} iq + */ + function (iq) { + return _this.send(builder_$iq({ + type: 'error', + id: iq.getAttribute('id') + }).c('error', { + 'type': 'cancel' + }).c('service-unavailable', { + 'xmlns': src_core.NS.STANZAS + })); + }, null, 'iq', ['get', 'set']); + + // initialize plugins + for (var k in src_core._connectionPlugins) { + if (Object.prototype.hasOwnProperty.call(src_core._connectionPlugins, k)) { + var F = function F() {}; + F.prototype = src_core._connectionPlugins[k]; + // @ts-ignore + this[k] = new F(); + // @ts-ignore + this[k].init(this); + } } - return nick_or_jid; - }, - validateRoleOrAffiliationChangeArgs: function validateRoleOrAffiliationChangeArgs(command, args) { - var __ = shared_converse.__; - if (!args) { - var message = __('Error: the "%1$s" command takes two arguments, the user\'s nickname and optionally a reason.', command); - this.createMessage({ - message: message, - 'type': 'error' - }); - return false; + } + + /** + * Select protocal based on this.options or this.service + */ + src_connection_createClass(Connection, [{ + key: "setProtocol", + value: function setProtocol() { + var proto = this.options.protocol || ''; + if (this.options.worker) { + this._proto = new src_core.WorkerWebsocket(this); + } else if (this.service.indexOf('ws:') === 0 || this.service.indexOf('wss:') === 0 || proto.indexOf('ws') === 0) { + this._proto = new src_core.Websocket(this); + } else { + this._proto = new src_core.Bosh(this); + } } - return true; - }, - getAllowedCommands: function getAllowedCommands() { - var allowed_commands = ['clear', 'help', 'me', 'nick', 'register']; - if (this.config.get('changesubject') || ['owner', 'admin'].includes(this.getOwnAffiliation())) { - allowed_commands = [].concat(muc_toConsumableArray(allowed_commands), ['subject', 'topic']); + + /** + * Reset the connection. + * + * This function should be called after a connection is disconnected + * before that connection is reused. + */ + }, { + key: "reset", + value: function reset() { + this._proto._reset(); + + // SASL + this.do_session = false; + this.do_bind = false; + + // handler lists + this.timedHandlers = []; + this.handlers = []; + this.removeTimeds = []; + this.removeHandlers = []; + this.addTimeds = []; + this.addHandlers = []; + this.authenticated = false; + this.connected = false; + this.disconnecting = false; + this.restored = false; + this._data = []; + /** @type {Request[]} */ + this._requests = []; + this._uniqueId = 0; } - var occupant = this.occupants.findWhere({ - 'jid': shared_converse.bare_jid - }); - if (this.verifyAffiliations(['owner'], occupant, false)) { - allowed_commands = allowed_commands.concat(OWNER_COMMANDS).concat(ADMIN_COMMANDS); - } else if (this.verifyAffiliations(['admin'], occupant, false)) { - allowed_commands = allowed_commands.concat(ADMIN_COMMANDS); + + /** + * Pause the request manager. + * + * This will prevent Strophe from sending any more requests to the + * server. This is very useful for temporarily pausing + * BOSH-Connections while a lot of send() calls are happening quickly. + * This causes Strophe to send the data in a single request, saving + * many request trips. + */ + }, { + key: "pause", + value: function pause() { + this.paused = true; } - if (this.verifyRoles(['moderator'], occupant, false)) { - allowed_commands = allowed_commands.concat(MODERATOR_COMMANDS).concat(VISITOR_COMMANDS); - } else if (!this.verifyRoles(['visitor', 'participant', 'moderator'], occupant, false)) { - allowed_commands = allowed_commands.concat(VISITOR_COMMANDS); + + /** + * Resume the request manager. + * + * This resumes after pause() has been called. + */ + }, { + key: "resume", + value: function resume() { + this.paused = false; } - allowed_commands.sort(); - if (Array.isArray(shared_api.settings.get('muc_disable_slash_commands'))) { - return allowed_commands.filter(function (c) { - return !shared_api.settings.get('muc_disable_slash_commands').includes(c); + + /** + * Generate a unique ID for use in elements. + * + * All stanzas are required to have unique id attributes. This + * function makes creating these easy. Each connection instance has + * a counter which starts from zero, and the value of this counter + * plus a colon followed by the suffix becomes the unique id. If no + * suffix is supplied, the counter is used as the unique id. + * + * Suffixes are used to make debugging easier when reading the stream + * data, and their use is recommended. The counter resets to 0 for + * every new connection for the same reason. For connections to the + * same server that authenticate the same way, all the ids should be + * the same, which makes it easy to see changes. This is useful for + * automated testing as well. + * + * @param {string} suffix - A optional suffix to append to the id. + * @returns {string} A unique string to be used for the id attribute. + */ + // eslint-disable-next-line class-methods-use-this + }, { + key: "getUniqueId", + value: function getUniqueId(suffix) { + var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0, + v = c === 'x' ? r : r & 0x3 | 0x8; + return v.toString(16); }); - } else { - return allowed_commands; - } - }, - verifyAffiliations: function verifyAffiliations(affiliations, occupant) { - var show_error = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - var __ = shared_converse.__; - if (!Array.isArray(affiliations)) { - throw new TypeError('affiliations must be an Array'); - } - if (!affiliations.length) { - return true; - } - occupant = occupant || this.occupants.findWhere({ - 'jid': shared_converse.bare_jid - }); - if (occupant) { - var a = occupant.get('affiliation'); - if (affiliations.includes(a)) { - return true; + if (typeof suffix === 'string' || typeof suffix === 'number') { + return uuid + ':' + suffix; + } else { + return uuid + ''; } } - if (show_error) { - var message = __('Forbidden: you do not have the necessary affiliation in order to do that.'); - this.createMessage({ - message: message, - 'type': 'error' - }); - } - return false; - }, - verifyRoles: function verifyRoles(roles, occupant) { - var show_error = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - var __ = shared_converse.__; - if (!Array.isArray(roles)) { - throw new TypeError('roles must be an Array'); + + /** + * Register a handler function for when a protocol (websocker or HTTP) + * error occurs. + * + * NOTE: Currently only HTTP errors for BOSH requests are handled. + * Patches that handle websocket errors would be very welcome. + * + * @example + * function onError(err_code){ + * //do stuff + * } + * + * const conn = Strophe.connect('http://example.com/http-bind'); + * conn.addProtocolErrorHandler('HTTP', 500, onError); + * // Triggers HTTP 500 error and onError handler will be called + * conn.connect('user_jid@incorrect_jabber_host', 'secret', onConnect); + * + * @param {'HTTP'|'websocket'} protocol - 'HTTP' or 'websocket' + * @param {number} status_code - Error status code (e.g 500, 400 or 404) + * @param {Function} callback - Function that will fire on Http error + */ + }, { + key: "addProtocolErrorHandler", + value: function addProtocolErrorHandler(protocol, status_code, callback) { + this.protocolErrorHandlers[protocol][status_code] = callback; } - if (!roles.length) { - return true; + + /** + * @typedef {Object} Password + * @property {string} Password.name + * @property {string} Password.ck + * @property {string} Password.sk + * @property {number} Password.iter + * @property {string} Password.salt + */ + + /** + * Starts the connection process. + * + * As the connection process proceeds, the user supplied callback will + * be triggered multiple times with status updates. The callback + * should take two arguments - the status code and the error condition. + * + * The status code will be one of the values in the Strophe.Status + * constants. The error condition will be one of the conditions + * defined in RFC 3920 or the condition 'strophe-parsererror'. + * + * The Parameters _wait_, _hold_ and _route_ are optional and only relevant + * for BOSH connections. Please see XEP 124 for a more detailed explanation + * of the optional parameters. + * + * @param {string} jid - The user's JID. This may be a bare JID, + * or a full JID. If a node is not supplied, SASL OAUTHBEARER or + * SASL ANONYMOUS authentication will be attempted (OAUTHBEARER will + * process the provided password value as an access token). + * (String or Object) pass - The user's password, or an object containing + * the users SCRAM client and server keys, in a fashion described as follows: + * + * { name: String, representing the hash used (eg. SHA-1), + * salt: String, base64 encoded salt used to derive the client key, + * iter: Int, the iteration count used to derive the client key, + * ck: String, the base64 encoding of the SCRAM client key + * sk: String, the base64 encoding of the SCRAM server key + * } + * @param {string|Password} pass - The user password + * @param {Function} callback - The connect callback function. + * @param {number} [wait] - The optional HTTPBIND wait value. This is the + * time the server will wait before returning an empty result for + * a request. The default setting of 60 seconds is recommended. + * @param {number} [hold] - The optional HTTPBIND hold value. This is the + * number of connections the server will hold at one time. This + * should almost always be set to 1 (the default). + * @param {string} [route] - The optional route value. + * @param {string} [authcid] - The optional alternative authentication identity + * (username) if intending to impersonate another user. + * When using the SASL-EXTERNAL authentication mechanism, for example + * with client certificates, then the authcid value is used to + * determine whether an authorization JID (authzid) should be sent to + * the server. The authzid should NOT be sent to the server if the + * authzid and authcid are the same. So to prevent it from being sent + * (for example when the JID is already contained in the client + * certificate), set authcid to that same JID. See XEP-178 for more + * details. + * @param {number} [disconnection_timeout=3000] - The optional disconnection timeout + * in milliseconds before _doDisconnect will be called. + */ + }, { + key: "connect", + value: function connect(jid, pass, callback, wait, hold, route, authcid) { + var disconnection_timeout = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 3000; + this.jid = jid; + /** Authorization identity */ + this.authzid = src_core.getBareJidFromJid(this.jid); + /** Authentication identity (User name) */ + this.authcid = authcid || src_core.getNodeFromJid(this.jid); + /** Authentication identity (User password) */ + this.pass = pass; + + /** + * The SASL SCRAM client and server keys. This variable will be populated with a non-null + * object of the above described form after a successful SCRAM connection + */ + this.scram_keys = null; + this.connect_callback = callback; + this.disconnecting = false; + this.connected = false; + this.authenticated = false; + this.restored = false; + this.disconnection_timeout = disconnection_timeout; + + // parse jid for domain + this.domain = src_core.getDomainFromJid(this.jid); + this._changeConnectStatus(Status.CONNECTING, null); + this._proto._connect(wait, hold, route); } - occupant = occupant || this.occupants.findWhere({ - 'jid': shared_converse.bare_jid - }); - if (occupant) { - var role = occupant.get('role'); - if (roles.includes(role)) { - return true; + + /** + * Attach to an already created and authenticated BOSH session. + * + * This function is provided to allow Strophe to attach to BOSH + * sessions which have been created externally, perhaps by a Web + * application. This is often used to support auto-login type features + * without putting user credentials into the page. + * + * @param {string|Function} jid - The full JID that is bound by the session. + * @param {string} [sid] - The SID of the BOSH session. + * @param {number} [rid] - The current RID of the BOSH session. This RID + * will be used by the next request. + * @param {Function} [callback] - The connect callback function. + * @param {number} [wait] - The optional HTTPBIND wait value. This is the + * time the server will wait before returning an empty result for + * a request. The default setting of 60 seconds is recommended. + * Other settings will require tweaks to the Strophe.TIMEOUT value. + * @param {number} [hold] - The optional HTTPBIND hold value. This is the + * number of connections the server will hold at one time. This + * should almost always be set to 1 (the default). + * @param {number} [wind] - The optional HTTBIND window value. This is the + * allowed range of request ids that are valid. The default is 5. + */ + }, { + key: "attach", + value: function attach(jid, sid, rid, callback, wait, hold, wind) { + if (this._proto instanceof src_core.Bosh && typeof jid === 'string') { + return this._proto._attach(jid, sid, rid, callback, wait, hold, wind); + } else if (this._proto instanceof src_core.WorkerWebsocket && typeof jid === 'function') { + var _callback2 = jid; + return this._proto._attach(_callback2); + } else { + throw new SessionError('The "attach" method is not available for your connection protocol'); } } - if (show_error) { - var message = __('Forbidden: you do not have the necessary role in order to do that.'); - this.createMessage({ - message: message, - 'type': 'error', - 'is_ephemeral': 20000 - }); - } - return false; - }, - /** - * Returns the `role` which the current user has in this MUC - * @private - * @method _converse.ChatRoom#getOwnRole - * @returns { ('none'|'visitor'|'participant'|'moderator') } - */ - getOwnRole: function getOwnRole() { - var _this$getOwnOccupant, _this$getOwnOccupant$; - return (_this$getOwnOccupant = this.getOwnOccupant()) === null || _this$getOwnOccupant === void 0 ? void 0 : (_this$getOwnOccupant$ = _this$getOwnOccupant.attributes) === null || _this$getOwnOccupant$ === void 0 ? void 0 : _this$getOwnOccupant$.role; - }, - /** - * Returns the `affiliation` which the current user has in this MUC - * @private - * @method _converse.ChatRoom#getOwnAffiliation - * @returns { ('none'|'outcast'|'member'|'admin'|'owner') } - */ - getOwnAffiliation: function getOwnAffiliation() { - var _this$getOwnOccupant2, _this$getOwnOccupant3; - return ((_this$getOwnOccupant2 = this.getOwnOccupant()) === null || _this$getOwnOccupant2 === void 0 ? void 0 : (_this$getOwnOccupant3 = _this$getOwnOccupant2.attributes) === null || _this$getOwnOccupant3 === void 0 ? void 0 : _this$getOwnOccupant3.affiliation) || 'none'; - }, - /** - * Get the {@link _converse.ChatRoomOccupant} instance which - * represents the current user. - * @method _converse.ChatRoom#getOwnOccupant - * @returns { _converse.ChatRoomOccupant } - */ - getOwnOccupant: function getOwnOccupant() { - return this.occupants.getOwnOccupant(); - }, - /** - * Send a presence stanza to update the user's nickname in this MUC. - * @param { String } nick - */ - setNickname: function setNickname(nick) { - var _this28 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee20() { - var old_nick, __, message, jid; - return muc_regeneratorRuntime().wrap(function _callee20$(_context20) { - while (1) switch (_context20.prev = _context20.next) { - case 0: - _context20.t0 = shared_api.settings.get('auto_register_muc_nickname'); - if (!_context20.t0) { - _context20.next = 5; - break; - } - _context20.next = 4; - return shared_api.disco.supports(Strophe.NS.MUC_REGISTER, _this28.get('jid')); - case 4: - _context20.t0 = _context20.sent; - case 5: - if (!_context20.t0) { - _context20.next = 21; - break; - } - old_nick = _this28.get('nick'); - _this28.set({ - nick: nick - }); - _context20.prev = 8; - _context20.next = 11; - return _this28.registerNickname(); - case 11: - _context20.next = 21; - break; - case 13: - _context20.prev = 13; - _context20.t1 = _context20["catch"](8); - __ = shared_converse.__; - log.error(_context20.t1); - message = __("Error: couldn't register new nickname in members only room"); - _this28.createMessage({ - message: message, - 'type': 'error', - 'is_ephemeral': true - }); - _this28.set({ - 'nick': old_nick - }); - return _context20.abrupt("return"); - case 21: - jid = Strophe.getBareJidFromJid(_this28.get('jid')); - shared_api.send($pres({ - 'from': shared_converse.connection.jid, - 'to': "".concat(jid, "/").concat(nick), - 'id': getUniqueId() - }).tree()); - case 23: - case "end": - return _context20.stop(); - } - }, _callee20, null, [[8, 13]]); - }))(); - }, - /** - * Send an IQ stanza to modify an occupant's role - * @private - * @method _converse.ChatRoom#setRole - * @param { _converse.ChatRoomOccupant } occupant - * @param { String } role - * @param { String } reason - * @param { function } onSuccess - callback for a succesful response - * @param { function } onError - callback for an error response - */ - setRole: function setRole(occupant, role, reason, onSuccess, onError) { - var item = $build('item', { - 'nick': occupant.get('nick'), - role: role - }); - var iq = $iq({ - 'to': this.get('jid'), - 'type': 'set' - }).c('query', { - xmlns: Strophe.NS.MUC_ADMIN - }).cnode(item.node); - if (reason !== null) { - iq.c('reason', reason); + + /** + * Attempt to restore a cached BOSH session. + * + * This function is only useful in conjunction with providing the + * "keepalive":true option when instantiating a new {@link Strophe.Connection}. + * + * When "keepalive" is set to true, Strophe will cache the BOSH tokens + * RID (Request ID) and SID (Session ID) and then when this function is + * called, it will attempt to restore the session from those cached + * tokens. + * + * This function must therefore be called instead of connect or attach. + * + * For an example on how to use it, please see examples/restore.js + * + * @param {string} jid - The user's JID. This may be a bare JID or a full JID. + * @param {Function} callback - The connect callback function. + * @param {number} [wait] - The optional HTTPBIND wait value. This is the + * time the server will wait before returning an empty result for + * a request. The default setting of 60 seconds is recommended. + * @param {number} [hold] - The optional HTTPBIND hold value. This is the + * number of connections the server will hold at one time. This + * should almost always be set to 1 (the default). + * @param {number} [wind] - The optional HTTBIND window value. This is the + * allowed range of request ids that are valid. The default is 5. + */ + }, { + key: "restore", + value: function restore(jid, callback, wait, hold, wind) { + if (!(this._proto instanceof src_core.Bosh) || !this._sessionCachingSupported()) { + throw new SessionError('The "restore" method can only be used with a BOSH connection.'); + } + if (this._sessionCachingSupported()) { + this._proto._restore(jid, callback, wait, hold, wind); + } } - return shared_api.sendIQ(iq).then(onSuccess).catch(onError); - }, - /** - * @private - * @method _converse.ChatRoom#getOccupant - * @param { String } nickname_or_jid - The nickname or JID of the occupant to be returned - * @returns { _converse.ChatRoomOccupant } - */ - getOccupant: function getOccupant(nickname_or_jid) { - return muc_u.isValidJID(nickname_or_jid) ? this.getOccupantByJID(nickname_or_jid) : this.getOccupantByNickname(nickname_or_jid); - }, - /** - * Return an array of occupant models that have the required role - * @private - * @method _converse.ChatRoom#getOccupantsWithRole - * @param { String } role - * @returns { _converse.ChatRoomOccupant[] } - */ - getOccupantsWithRole: function getOccupantsWithRole(role) { - return this.getOccupantsSortedBy('nick').filter(function (o) { - return o.get('role') === role; - }).map(function (item) { - return { - 'jid': item.get('jid'), - 'nick': item.get('nick'), - 'role': item.get('role') - }; - }); - }, - /** - * Return an array of occupant models that have the required affiliation - * @private - * @method _converse.ChatRoom#getOccupantsWithAffiliation - * @param { String } affiliation - * @returns { _converse.ChatRoomOccupant[] } - */ - getOccupantsWithAffiliation: function getOccupantsWithAffiliation(affiliation) { - return this.getOccupantsSortedBy('nick').filter(function (o) { - return o.get('affiliation') === affiliation; - }).map(function (item) { - return { - 'jid': item.get('jid'), - 'nick': item.get('nick'), - 'affiliation': item.get('affiliation') - }; - }); - }, - /** - * Return an array of occupant models, sorted according to the passed-in attribute. - * @private - * @method _converse.ChatRoom#getOccupantsSortedBy - * @param { String } attr - The attribute to sort the returned array by - * @returns { _converse.ChatRoomOccupant[] } - */ - getOccupantsSortedBy: function getOccupantsSortedBy(attr) { - return Array.from(this.occupants.models).sort(function (a, b) { - return a.get(attr) < b.get(attr) ? -1 : a.get(attr) > b.get(attr) ? 1 : 0; - }); - }, - /** - * Fetch the lists of users with the given affiliations. - * Then compute the delta between those users and - * the passed in members, and if it exists, send the delta - * to the XMPP server to update the member list. - * @private - * @method _converse.ChatRoom#updateMemberLists - * @param { object } members - Map of member jids and affiliations. - * @returns { Promise } - * A promise which is resolved once the list has been - * updated or once it's been established there's no need - * to update the list. - */ - updateMemberLists: function updateMemberLists(members) { - var _this29 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee21() { - var muc_jid, all_affiliations, aff_lists, old_members; - return muc_regeneratorRuntime().wrap(function _callee21$(_context21) { - while (1) switch (_context21.prev = _context21.next) { - case 0: - muc_jid = _this29.get('jid'); - all_affiliations = ['member', 'admin', 'owner']; - _context21.next = 4; - return Promise.all(all_affiliations.map(function (a) { - return getAffiliationList(a, muc_jid); - })); - case 4: - aff_lists = _context21.sent; - old_members = aff_lists.reduce(function (acc, val) { - return muc_u.isErrorObject(val) ? acc : [].concat(muc_toConsumableArray(val), muc_toConsumableArray(acc)); - }, []); - _context21.next = 8; - return setAffiliations(muc_jid, computeAffiliationsDelta(true, false, members, old_members)); - case 8: - _context21.next = 10; - return _this29.occupants.fetchMembers(); - case 10: - case "end": - return _context21.stop(); - } - }, _callee21); - }))(); - }, - /** - * Given a nick name, save it to the model state, otherwise, look - * for a server-side reserved nickname or default configured - * nickname and if found, persist that to the model state. - * @private - * @method _converse.ChatRoom#getAndPersistNickname - * @returns { Promise } A promise which resolves with the nickname - */ - getAndPersistNickname: function getAndPersistNickname(nick) { - var _this30 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee22() { - return muc_regeneratorRuntime().wrap(function _callee22$(_context22) { - while (1) switch (_context22.prev = _context22.next) { - case 0: - _context22.t1 = nick || _this30.get('nick'); - if (_context22.t1) { - _context22.next = 5; - break; - } - _context22.next = 4; - return _this30.getReservedNick(); - case 4: - _context22.t1 = _context22.sent; - case 5: - _context22.t0 = _context22.t1; - if (_context22.t0) { - _context22.next = 8; - break; - } - _context22.t0 = shared_converse.getDefaultMUCNickname(); - case 8: - nick = _context22.t0; - if (nick) safeSave(_this30, { - nick: nick - }, { - 'silent': true - }); - return _context22.abrupt("return", nick); - case 11: - case "end": - return _context22.stop(); + + /** + * Checks whether sessionStorage and JSON are supported and whether we're + * using BOSH. + */ + }, { + key: "_sessionCachingSupported", + value: function _sessionCachingSupported() { + if (this._proto instanceof src_core.Bosh) { + if (!JSON) { + return false; } - }, _callee22); - }))(); - }, - /** - * Use service-discovery to ask the XMPP server whether - * this user has a reserved nickname for this groupchat. - * If so, we'll use that, otherwise we render the nickname form. - * @private - * @method _converse.ChatRoom#getReservedNick - * @returns { Promise } A promise which resolves with the reserved nick or null - */ - getReservedNick: function getReservedNick() { - var _this31 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee23() { - var stanza, result, identity_el; - return muc_regeneratorRuntime().wrap(function _callee23$(_context23) { - while (1) switch (_context23.prev = _context23.next) { - case 0: - stanza = $iq({ - 'to': _this31.get('jid'), - 'from': shared_converse.connection.jid, - 'type': 'get' - }).c('query', { - 'xmlns': Strophe.NS.DISCO_INFO, - 'node': 'x-roomuser-item' - }); - _context23.next = 3; - return shared_api.sendIQ(stanza, null, false); - case 3: - result = _context23.sent; - if (!muc_u.isErrorObject(result)) { - _context23.next = 6; - break; - } - throw result; - case 6: - // Result might be undefined due to a timeout - identity_el = result === null || result === void 0 ? void 0 : result.querySelector('query[node="x-roomuser-item"] identity'); - return _context23.abrupt("return", identity_el ? identity_el.getAttribute('name') : null); - case 8: - case "end": - return _context23.stop(); + try { + sessionStorage.setItem('_strophe_', '_strophe_'); + sessionStorage.removeItem('_strophe_'); + } catch (e) { + return false; } - }, _callee23); - }))(); - }, - /** - * Send an IQ stanza to the MUC to register this user's nickname. - * This sets the user's affiliation to 'member' (if they weren't affiliated - * before) and reserves the nickname for this user, thereby preventing other - * users from using it in this MUC. - * See https://xmpp.org/extensions/xep-0045.html#register - * @private - * @method _converse.ChatRoom#registerNickname - */ - registerNickname: function registerNickname() { - var _this32 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee24() { - var __, nick, jid, iq, err_msg, required_fields; - return muc_regeneratorRuntime().wrap(function _callee24$(_context24) { - while (1) switch (_context24.prev = _context24.next) { - case 0: - __ = shared_converse.__; - nick = _this32.get('nick'); - jid = _this32.get('jid'); - _context24.prev = 3; - _context24.next = 6; - return shared_api.sendIQ($iq({ - 'to': jid, - 'type': 'get' - }).c('query', { - 'xmlns': Strophe.NS.MUC_REGISTER - })); - case 6: - iq = _context24.sent; - _context24.next = 14; - break; - case 9: - _context24.prev = 9; - _context24.t0 = _context24["catch"](3); - if (external_sizzle_default()("not-allowed[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), _context24.t0).length) { - err_msg = __("You're not allowed to register yourself in this groupchat."); - } else if (external_sizzle_default()("registration-required[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), _context24.t0).length) { - err_msg = __("You're not allowed to register in this groupchat because it's members-only."); - } - log.error(_context24.t0); - return _context24.abrupt("return", err_msg); - case 14: - required_fields = external_sizzle_default()('field required', iq).map(function (f) { - return f.parentElement; - }); - if (!(required_fields.length > 1 && required_fields[0].getAttribute('var') !== 'muc#register_roomnick')) { - _context24.next = 17; - break; - } - return _context24.abrupt("return", log.error("Can't register the user register in the groupchat ".concat(jid, " due to the required fields"))); - case 17: - _context24.prev = 17; - _context24.next = 20; - return shared_api.sendIQ($iq({ - 'to': jid, - 'type': 'set' - }).c('query', { - 'xmlns': Strophe.NS.MUC_REGISTER - }).c('x', { - 'xmlns': Strophe.NS.XFORM, - 'type': 'submit' - }).c('field', { - 'var': 'FORM_TYPE' - }).c('value').t('http://jabber.org/protocol/muc#register').up().up().c('field', { - 'var': 'muc#register_roomnick' - }).c('value').t(nick)); - case 20: - _context24.next = 28; - break; - case 22: - _context24.prev = 22; - _context24.t1 = _context24["catch"](17); - if (external_sizzle_default()("service-unavailable[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), _context24.t1).length) { - err_msg = __("Can't register your nickname in this groupchat, it doesn't support registration."); - } else if (external_sizzle_default()("bad-request[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), _context24.t1).length) { - err_msg = __("Can't register your nickname in this groupchat, invalid data form supplied."); - } - log.error(err_msg); - log.error(_context24.t1); - return _context24.abrupt("return", err_msg); - case 28: - case "end": - return _context24.stop(); + return true; + } + return false; + } + + /** + * User overrideable function that receives XML data coming into the + * connection. + * + * The default function does nothing. User code can override this with + * > Strophe.Connection.xmlInput = function (elem) { + * > (user code) + * > }; + * + * Due to limitations of current Browsers' XML-Parsers the opening and closing + * tag for WebSocket-Connoctions will be passed as selfclosing here. + * + * BOSH-Connections will have all stanzas wrapped in a tag. See + * if you want to strip this tag. + * + * @param {Node|MessageEvent} elem - The XML data received by the connection. + */ + // eslint-disable-next-line no-unused-vars, class-methods-use-this + }, { + key: "xmlInput", + value: function xmlInput(elem) { + return; + } + + /** + * User overrideable function that receives XML data sent to the + * connection. + * + * The default function does nothing. User code can override this with + * > Strophe.Connection.xmlOutput = function (elem) { + * > (user code) + * > }; + * + * Due to limitations of current Browsers' XML-Parsers the opening and closing + * tag for WebSocket-Connoctions will be passed as selfclosing here. + * + * BOSH-Connections will have all stanzas wrapped in a tag. See + * if you want to strip this tag. + * + * @param {Element} elem - The XMLdata sent by the connection. + */ + // eslint-disable-next-line no-unused-vars, class-methods-use-this + }, { + key: "xmlOutput", + value: function xmlOutput(elem) { + return; + } + + /** + * User overrideable function that receives raw data coming into the + * connection. + * + * The default function does nothing. User code can override this with + * > Strophe.Connection.rawInput = function (data) { + * > (user code) + * > }; + * + * @param {string} data - The data received by the connection. + */ + // eslint-disable-next-line no-unused-vars, class-methods-use-this + }, { + key: "rawInput", + value: function rawInput(data) { + return; + } + + /** + * User overrideable function that receives raw data sent to the + * connection. + * + * The default function does nothing. User code can override this with + * > Strophe.Connection.rawOutput = function (data) { + * > (user code) + * > }; + * + * @param {string} data - The data sent by the connection. + */ + // eslint-disable-next-line no-unused-vars, class-methods-use-this + }, { + key: "rawOutput", + value: function rawOutput(data) { + return; + } + + /** + * User overrideable function that receives the new valid rid. + * + * The default function does nothing. User code can override this with + * > Strophe.Connection.nextValidRid = function (rid) { + * > (user code) + * > }; + * + * @param {number} rid - The next valid rid + */ + // eslint-disable-next-line no-unused-vars, class-methods-use-this + }, { + key: "nextValidRid", + value: function nextValidRid(rid) { + return; + } + + /** + * Send a stanza. + * + * This function is called to push data onto the send queue to + * go out over the wire. Whenever a request is sent to the BOSH + * server, all pending data is sent and the queue is flushed. + * + * @param {Element|Builder|Element[]|Builder[]} stanza - The stanza to send + */ + }, { + key: "send", + value: function send(stanza) { + var _this2 = this; + if (stanza === null) return; + if (Array.isArray(stanza)) { + stanza.forEach(function (s) { + return _this2._queueData(s instanceof builder ? s.tree() : s); + }); + } else { + var el = stanza instanceof builder ? stanza.tree() : stanza; + this._queueData(el); + } + this._proto._send(); + } + + /** + * Immediately send any pending outgoing data. + * + * Normally send() queues outgoing data until the next idle period + * (100ms), which optimizes network use in the common cases when + * several send()s are called in succession. flush() can be used to + * immediately send all pending data. + */ + }, { + key: "flush", + value: function flush() { + // cancel the pending idle period and run the idle function + // immediately + clearTimeout(this._idleTimeout); + this._onIdle(); + } + + /** + * Helper function to send presence stanzas. The main benefit is for + * sending presence stanzas for which you expect a responding presence + * stanza with the same id (for example when leaving a chat room). + * + * @param {Element} stanza - The stanza to send. + * @param {Function} [callback] - The callback function for a successful request. + * @param {Function} [errback] - The callback function for a failed or timed + * out request. On timeout, the stanza will be null. + * @param {number} [timeout] - The time specified in milliseconds for a + * timeout to occur. + * @return {string} The id used to send the presence. + */ + }, { + key: "sendPresence", + value: function sendPresence(stanza, callback, errback, timeout) { + var _this3 = this; + /** @type {TimedHandler} */ + var timeoutHandler = null; + var el = stanza instanceof builder ? stanza.tree() : stanza; + var id = el.getAttribute('id'); + if (!id) { + // inject id if not found + id = this.getUniqueId('sendPresence'); + el.setAttribute('id', id); + } + if (typeof callback === 'function' || typeof errback === 'function') { + var handler = this.addHandler( /** @param {Element} stanza */ + function (stanza) { + // remove timeout handler if there is one + if (timeoutHandler) _this3.deleteTimedHandler(timeoutHandler); + if (stanza.getAttribute('type') === 'error') { + errback === null || errback === void 0 ? void 0 : errback(stanza); + } else if (callback) { + callback(stanza); + } + }, null, 'presence', null, id); + + // if timeout specified, set up a timeout handler. + if (timeout) { + timeoutHandler = this.addTimedHandler(timeout, function () { + // get rid of normal handler + _this3.deleteHandler(handler); + // call errback on timeout with null stanza + errback === null || errback === void 0 ? void 0 : errback(null); + return false; + }); } - }, _callee24, null, [[3, 9], [17, 22]]); - }))(); - }, - /** - * Check whether we should unregister the user from this MUC, and if so, - * call { @link _converse.ChatRoom#sendUnregistrationIQ } - * @method _converse.ChatRoom#unregisterNickname - */ - unregisterNickname: function unregisterNickname() { - var _this33 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee25() { - return muc_regeneratorRuntime().wrap(function _callee25$(_context25) { - while (1) switch (_context25.prev = _context25.next) { - case 0: - if (!(shared_api.settings.get('auto_register_muc_nickname') === 'unregister')) { - _context25.next = 12; - break; - } - _context25.prev = 1; - _context25.next = 4; - return shared_api.disco.supports(Strophe.NS.MUC_REGISTER, _this33.get('jid')); - case 4: - if (!_context25.sent) { - _context25.next = 7; - break; - } - _context25.next = 7; - return _this33.sendUnregistrationIQ(); - case 7: - _context25.next = 12; - break; - case 9: - _context25.prev = 9; - _context25.t0 = _context25["catch"](1); - log.error(_context25.t0); - case 12: - case "end": - return _context25.stop(); + } + this.send(el); + return id; + } + + /** + * Helper function to send IQ stanzas. + * + * @param {Element|Builder} stanza - The stanza to send. + * @param {Function} [callback] - The callback function for a successful request. + * @param {Function} [errback] - The callback function for a failed or timed + * out request. On timeout, the stanza will be null. + * @param {number} [timeout] - The time specified in milliseconds for a + * timeout to occur. + * @return {string} The id used to send the IQ. + */ + }, { + key: "sendIQ", + value: function sendIQ(stanza, callback, errback, timeout) { + var _this4 = this; + /** @type {TimedHandler} */ + var timeoutHandler = null; + var el = stanza instanceof builder ? stanza.tree() : stanza; + var id = el.getAttribute('id'); + if (!id) { + // inject id if not found + id = this.getUniqueId('sendIQ'); + el.setAttribute('id', id); + } + if (typeof callback === 'function' || typeof errback === 'function') { + var handler = this.addHandler( /** @param {Element} stanza */ + function (stanza) { + // remove timeout handler if there is one + if (timeoutHandler) _this4.deleteTimedHandler(timeoutHandler); + var iqtype = stanza.getAttribute('type'); + if (iqtype === 'result') { + callback === null || callback === void 0 ? void 0 : callback(stanza); + } else if (iqtype === 'error') { + errback === null || errback === void 0 ? void 0 : errback(stanza); + } else { + var error = new Error("Got bad IQ type of ".concat(iqtype)); + error.name = 'StropheError'; + throw error; + } + }, null, 'iq', ['error', 'result'], id); + + // if timeout specified, set up a timeout handler. + if (timeout) { + timeoutHandler = this.addTimedHandler(timeout, function () { + // get rid of normal handler + _this4.deleteHandler(handler); + // call errback on timeout with null stanza + errback === null || errback === void 0 ? void 0 : errback(null); + return false; + }); } - }, _callee25, null, [[1, 9]]); - }))(); - }, - /** - * Send an IQ stanza to the MUC to unregister this user's nickname. - * If the user had a 'member' affiliation, it'll be removed and their - * nickname will no longer be reserved and can instead be used (and - * registered) by other users. - * @method _converse.ChatRoom#sendUnregistrationIQ - */ - sendUnregistrationIQ: function sendUnregistrationIQ() { - var iq = $iq({ - 'to': this.get('jid'), - 'type': 'set' - }).c('query', { - 'xmlns': Strophe.NS.MUC_REGISTER - }).c('remove'); - return shared_api.sendIQ(iq).catch(function (e) { - return log.error(e); - }); - }, - /** - * Given a presence stanza, update the occupant model based on its contents. - * @private - * @method _converse.ChatRoom#updateOccupantsOnPresence - * @param { Element } pres - The presence stanza - */ - updateOccupantsOnPresence: function updateOccupantsOnPresence(pres) { - var _occupant$attributes, _occupant$attributes2; - var data = parseMUCPresence(pres, this); - if (data.type === 'error' || !data.jid && !data.nick && !data.occupant_id) { - return true; + } + this.send(el); + return id; } - var occupant = this.occupants.findOccupant(data); - // Destroy an unavailable occupant if this isn't a nick change operation and if they're not affiliated - if (data.type === 'unavailable' && occupant && !data.states.includes(public_converse.MUC_NICK_CHANGED_CODE) && !['admin', 'owner', 'member'].includes(data['affiliation'])) { - // Before destroying we set the new data, so that we can show the disconnection message - occupant.set(data); - occupant.destroy(); - return; + + /** + * Queue outgoing data for later sending. Also ensures that the data + * is a DOMElement. + * @private + * @param {Element} element + */ + }, { + key: "_queueData", + value: function _queueData(element) { + if (element === null || !element.tagName || !element.childNodes) { + var error = new Error('Cannot queue non-DOMElement.'); + error.name = 'StropheError'; + throw error; + } + this._data.push(element); } - var jid = data.jid || ''; - var attributes = muc_objectSpread(muc_objectSpread({}, data), {}, { - 'jid': Strophe.getBareJidFromJid(jid) || (occupant === null || occupant === void 0 ? void 0 : (_occupant$attributes = occupant.attributes) === null || _occupant$attributes === void 0 ? void 0 : _occupant$attributes.jid), - 'resource': Strophe.getResourceFromJid(jid) || (occupant === null || occupant === void 0 ? void 0 : (_occupant$attributes2 = occupant.attributes) === null || _occupant$attributes2 === void 0 ? void 0 : _occupant$attributes2.resource) - }); - if (data.is_me) { - var modified = false; - if (data.states.includes(public_converse.MUC_NICK_CHANGED_CODE)) { - modified = true; - this.set('nick', data.nick); + + /** + * Send an xmpp:restart stanza. + * @private + */ + }, { + key: "_sendRestart", + value: function _sendRestart() { + var _this5 = this; + this._data.push('restart'); + this._proto._sendRestart(); + this._idleTimeout = setTimeout(function () { + return _this5._onIdle(); + }, 100); + } + + /** + * Add a timed handler to the connection. + * + * This function adds a timed handler. The provided handler will + * be called every period milliseconds until it returns false, + * the connection is terminated, or the handler is removed. Handlers + * that wish to continue being invoked should return true. + * + * Because of method binding it is necessary to save the result of + * this function if you wish to remove a handler with + * deleteTimedHandler(). + * + * Note that user handlers are not active until authentication is + * successful. + * + * @param {number} period - The period of the handler. + * @param {Function} handler - The callback function. + * @return {TimedHandler} A reference to the handler that can be used to remove it. + */ + }, { + key: "addTimedHandler", + value: function addTimedHandler(period, handler) { + var thand = new src_core.TimedHandler(period, handler); + this.addTimeds.push(thand); + return thand; + } + + /** + * Delete a timed handler for a connection. + * + * This function removes a timed handler from the connection. The + * handRef parameter is *not* the function passed to addTimedHandler(), + * but is the reference returned from addTimedHandler(). + * @param {TimedHandler} handRef - The handler reference. + */ + }, { + key: "deleteTimedHandler", + value: function deleteTimedHandler(handRef) { + // this must be done in the Idle loop so that we don't change + // the handlers during iteration + this.removeTimeds.push(handRef); + } + + /** + * @typedef {Object} HandlerOptions + * @property {boolean} [HandlerOptions.matchBareFromJid] + * @property {boolean} [HandlerOptions.ignoreNamespaceFragment] + */ + + /** + * Add a stanza handler for the connection. + * + * This function adds a stanza handler to the connection. The + * handler callback will be called for any stanza that matches + * the parameters. Note that if multiple parameters are supplied, + * they must all match for the handler to be invoked. + * + * The handler will receive the stanza that triggered it as its argument. + * *The handler should return true if it is to be invoked again; + * returning false will remove the handler after it returns.* + * + * As a convenience, the ns parameters applies to the top level element + * and also any of its immediate children. This is primarily to make + * matching /iq/query elements easy. + * + * ### Options + * + * With the options argument, you can specify boolean flags that affect how + * matches are being done. + * + * Currently two flags exist: + * + * * *matchBareFromJid*: + * When set to true, the from parameter and the + * from attribute on the stanza will be matched as bare JIDs instead + * of full JIDs. To use this, pass {matchBareFromJid: true} as the + * value of options. The default value for matchBareFromJid is false. + * + * * *ignoreNamespaceFragment*: + * When set to true, a fragment specified on the stanza's namespace + * URL will be ignored when it's matched with the one configured for + * the handler. + * + * This means that if you register like this: + * + * > connection.addHandler( + * > handler, + * > 'http://jabber.org/protocol/muc', + * > null, null, null, null, + * > {'ignoreNamespaceFragment': true} + * > ); + * + * Then a stanza with XML namespace of + * 'http://jabber.org/protocol/muc#user' will also be matched. If + * 'ignoreNamespaceFragment' is false, then only stanzas with + * 'http://jabber.org/protocol/muc' will be matched. + * + * ### Deleting the handler + * + * The return value should be saved if you wish to remove the handler + * with `deleteHandler()`. + * + * @param {Function} handler - The user callback. + * @param {string} ns - The namespace to match. + * @param {string} name - The stanza name to match. + * @param {string|string[]} type - The stanza type (or types if an array) to match. + * @param {string} id - The stanza id attribute to match. + * @param {string} [from] - The stanza from attribute to match. + * @param {HandlerOptions} [options] - The handler options + * @return {Handler} A reference to the handler that can be used to remove it. + */ + }, { + key: "addHandler", + value: function addHandler(handler, ns, name, type, id, from, options) { + var hand = new src_handler(handler, ns, name, type, id, from, options); + this.addHandlers.push(hand); + return hand; + } + + /** + * Delete a stanza handler for a connection. + * + * This function removes a stanza handler from the connection. The + * handRef parameter is *not* the function passed to addHandler(), + * but is the reference returned from addHandler(). + * + * @param {Handler} handRef - The handler reference. + */ + }, { + key: "deleteHandler", + value: function deleteHandler(handRef) { + // this must be done in the Idle loop so that we don't change + // the handlers during iteration + this.removeHandlers.push(handRef); + // If a handler is being deleted while it is being added, + // prevent it from getting added + var i = this.addHandlers.indexOf(handRef); + if (i >= 0) { + this.addHandlers.splice(i, 1); } - if (this.features.get(Strophe.NS.OCCUPANTID) && this.get('occupant-id') !== data.occupant_id) { - modified = true; - this.set('occupant_id', data.occupant_id); + } + + /** + * Register the SASL mechanisms which will be supported by this instance of + * Strophe.Connection (i.e. which this XMPP client will support). + * @param {SASLMechanism[]} mechanisms - Array of objects with Strophe.SASLMechanism prototypes + */ + }, { + key: "registerSASLMechanisms", + value: function registerSASLMechanisms(mechanisms) { + var _this6 = this; + this.mechanisms = {}; + (mechanisms || [src_core.SASLAnonymous, src_core.SASLExternal, src_core.SASLOAuthBearer, src_core.SASLXOAuth2, src_core.SASLPlain, src_core.SASLSHA1, src_core.SASLSHA256, src_core.SASLSHA384, src_core.SASLSHA512]).forEach(function (m) { + return _this6.registerSASLMechanism(m); + }); + } + + /** + * Register a single SASL mechanism, to be supported by this client. + * @param {any} Mechanism - Object with a Strophe.SASLMechanism prototype + */ + }, { + key: "registerSASLMechanism", + value: function registerSASLMechanism(Mechanism) { + var mechanism = new Mechanism(); + this.mechanisms[mechanism.mechname] = mechanism; + } + + /** + * Start the graceful disconnection process. + * + * This function starts the disconnection process. This process starts + * by sending unavailable presence and sending BOSH body of type + * terminate. A timeout handler makes sure that disconnection happens + * even if the BOSH server does not respond. + * If the Connection object isn't connected, at least tries to abort all pending requests + * so the connection object won't generate successful requests (which were already opened). + * + * The user supplied connection callback will be notified of the + * progress as this process happens. + * + * @param {string} [reason] - The reason the disconnect is occuring. + */ + }, { + key: "disconnect", + value: function disconnect(reason) { + this._changeConnectStatus(Status.DISCONNECTING, reason); + if (reason) { + src_core.warn('Disconnect was called because: ' + reason); + } else { + src_core.info('Disconnect was called'); + } + if (this.connected) { + var pres = null; + this.disconnecting = true; + if (this.authenticated) { + pres = $pres({ + 'xmlns': src_core.NS.CLIENT, + 'type': 'unavailable' + }); + } + // setup timeout handler + this._disconnectTimeout = this._addSysTimedHandler(this.disconnection_timeout, this._onDisconnectTimeout.bind(this)); + this._proto._disconnect(pres); + } else { + src_core.warn('Disconnect was called before Strophe connected to the server'); + this._proto._abortAllRequests(); + this._doDisconnect(); } - modified && this.save(); - } - if (occupant) { - occupant.save(attributes); - } else { - this.occupants.create(attributes); } - }, - fetchFeaturesIfConfigurationChanged: function fetchFeaturesIfConfigurationChanged(stanza) { - // 104: configuration change - // 170: logging enabled - // 171: logging disabled - // 172: room no longer anonymous - // 173: room now semi-anonymous - // 174: room now fully anonymous - var codes = ['104', '170', '171', '172', '173', '174']; - if (external_sizzle_default()('status', stanza).filter(function (e) { - return codes.includes(e.getAttribute('status')); - }).length) { - this.refreshDiscoInfo(); + + /** + * _Private_ helper function that makes sure plugins and the user's + * callback are notified of connection status changes. + * @param {number} status - the new connection status, one of the values + * in Strophe.Status + * @param {string|null} [condition] - the error condition + * @param {Element} [elem] - The triggering stanza. + */ + }, { + key: "_changeConnectStatus", + value: function _changeConnectStatus(status, condition, elem) { + // notify all plugins listening for status changes + for (var k in src_core._connectionPlugins) { + if (Object.prototype.hasOwnProperty.call(src_core._connectionPlugins, k)) { + // @ts-ignore + var plugin = this[k]; + if (plugin.statusChanged) { + try { + plugin.statusChanged(status, condition); + } catch (err) { + src_core.error("".concat(k, " plugin caused an exception changing status: ").concat(err)); + } + } + } + } + // notify the user's callback + if (this.connect_callback) { + try { + this.connect_callback(status, condition, elem); + } catch (e) { + src_core._handleError(e); + src_core.error("User connection callback caused an exception: ".concat(e)); + } + } } - }, - /** - * Given two JIDs, which can be either user JIDs or MUC occupant JIDs, - * determine whether they belong to the same user. - * @private - * @method _converse.ChatRoom#isSameUser - * @param { String } jid1 - * @param { String } jid2 - * @returns { Boolean } - */ - isSameUser: function isSameUser(jid1, jid2) { - var bare_jid1 = Strophe.getBareJidFromJid(jid1); - var bare_jid2 = Strophe.getBareJidFromJid(jid2); - var resource1 = Strophe.getResourceFromJid(jid1); - var resource2 = Strophe.getResourceFromJid(jid2); - if (muc_u.isSameBareJID(jid1, jid2)) { - if (bare_jid1 === this.get('jid')) { - // MUC JIDs - return resource1 === resource2; - } else { - return true; + + /** + * _Private_ function to disconnect. + * + * This is the last piece of the disconnection logic. This resets the + * connection and alerts the user's connection callback. + * @param {string|null} [condition] - the error condition + */ + }, { + key: "_doDisconnect", + value: function _doDisconnect(condition) { + if (typeof this._idleTimeout === 'number') { + clearTimeout(this._idleTimeout); } - } else { - var occupant1 = bare_jid1 === this.get('jid') ? this.occupants.findOccupant({ - 'nick': resource1 - }) : this.occupants.findOccupant({ - 'jid': bare_jid1 - }); - var occupant2 = bare_jid2 === this.get('jid') ? this.occupants.findOccupant({ - 'nick': resource2 - }) : this.occupants.findOccupant({ - 'jid': bare_jid2 - }); - return occupant1 === occupant2; + + // Cancel Disconnect Timeout + if (this._disconnectTimeout !== null) { + this.deleteTimedHandler(this._disconnectTimeout); + this._disconnectTimeout = null; + } + src_core.debug('_doDisconnect was called'); + this._proto._doDisconnect(); + this.authenticated = false; + this.disconnecting = false; + this.restored = false; + + // delete handlers + this.handlers = []; + this.timedHandlers = []; + this.removeTimeds = []; + this.removeHandlers = []; + this.addTimeds = []; + this.addHandlers = []; + + // tell the parent we disconnected + this._changeConnectStatus(Status.DISCONNECTED, condition); + this.connected = false; } - }, - isSubjectHidden: function isSubjectHidden() { - var _this34 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee26() { - var jids; - return muc_regeneratorRuntime().wrap(function _callee26$(_context26) { - while (1) switch (_context26.prev = _context26.next) { - case 0: - _context26.next = 2; - return shared_api.user.settings.get('mucs_with_hidden_subject', []); - case 2: - jids = _context26.sent; - return _context26.abrupt("return", jids.includes(_this34.get('jid'))); - case 4: - case "end": - return _context26.stop(); + + /** + * _Private_ handler to processes incoming data from the the connection. + * + * Except for _connect_cb handling the initial connection request, + * this function handles the incoming data for all requests. This + * function also fires stanza handlers that match each incoming + * stanza. + * @param {Element | Request} req - The request that has data ready. + * @param {string} [raw] - The stanza as raw string. + */ + }, { + key: "_dataRecv", + value: function _dataRecv(req, raw) { + var _this7 = this; + var elem = /** @type {Element} */ + '_reqToData' in this._proto ? this._proto._reqToData( /** @type {Request} */req) : req; + if (elem === null) { + return; + } + if (this.xmlInput !== src_core.Connection.prototype.xmlInput) { + if (elem.nodeName === this._proto.strip && elem.childNodes.length) { + this.xmlInput(elem.childNodes[0]); + } else { + this.xmlInput(elem); } - }, _callee26); - }))(); - }, - toggleSubjectHiddenState: function toggleSubjectHiddenState() { - var _this35 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee27() { - var muc_jid, jids; - return muc_regeneratorRuntime().wrap(function _callee27$(_context27) { - while (1) switch (_context27.prev = _context27.next) { - case 0: - muc_jid = _this35.get('jid'); - _context27.next = 3; - return shared_api.user.settings.get('mucs_with_hidden_subject', []); - case 3: - jids = _context27.sent; - if (jids.includes(_this35.get('jid'))) { - shared_api.user.settings.set('mucs_with_hidden_subject', jids.filter(function (jid) { - return jid !== muc_jid; - })); - } else { - shared_api.user.settings.set('mucs_with_hidden_subject', [].concat(muc_toConsumableArray(jids), [muc_jid])); - } - case 5: - case "end": - return _context27.stop(); + } + if (this.rawInput !== src_core.Connection.prototype.rawInput) { + if (raw) { + this.rawInput(raw); + } else { + this.rawInput(src_core.serialize(elem)); } - }, _callee27); - }))(); - }, - /** - * Handle a possible subject change and return `true` if so. - * @private - * @method _converse.ChatRoom#handleSubjectChange - * @param { object } attrs - Attributes representing a received - * message, as returned by {@link parseMUCMessage} - */ - handleSubjectChange: function handleSubjectChange(attrs) { - var _this36 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee28() { - var __, subject, author, message, prev_msg; - return muc_regeneratorRuntime().wrap(function _callee28$(_context28) { - while (1) switch (_context28.prev = _context28.next) { - case 0: - __ = shared_converse.__; - if (!(typeof attrs.subject === 'string' && !attrs.thread && !attrs.message)) { - _context28.next = 14; - break; - } - // https://xmpp.org/extensions/xep-0045.html#subject-mod - // ----------------------------------------------------- - // The subject is changed by sending a message of type "groupchat" to the , - // where the MUST contain a element that specifies the new subject but - // MUST NOT contain a element (or a element). - subject = attrs.subject; - author = attrs.nick; - safeSave(_this36, { - 'subject': { - author: author, - 'text': attrs.subject || '' + } + + // remove handlers scheduled for deletion + while (this.removeHandlers.length > 0) { + var hand = this.removeHandlers.pop(); + var i = this.handlers.indexOf(hand); + if (i >= 0) { + this.handlers.splice(i, 1); + } + } + + // add handlers scheduled for addition + while (this.addHandlers.length > 0) { + this.handlers.push(this.addHandlers.pop()); + } + + // handle graceful disconnect + if (this.disconnecting && this._proto._emptyQueue()) { + this._doDisconnect(); + return; + } + var type = elem.getAttribute('type'); + if (type !== null && type === 'terminate') { + // Don't process stanzas that come in after disconnect + if (this.disconnecting) { + return; + } + // an error occurred + var cond = elem.getAttribute('condition'); + var conflict = elem.getElementsByTagName('conflict'); + if (cond !== null) { + if (cond === 'remote-stream-error' && conflict.length > 0) { + cond = 'conflict'; + } + this._changeConnectStatus(Status.CONNFAIL, cond); + } else { + this._changeConnectStatus(Status.CONNFAIL, src_core.ErrorCondition.UNKNOWN_REASON); + } + this._doDisconnect(cond); + return; + } + + // send each incoming stanza through the handler chain + src_core.forEachChild(elem, null, /** @param {Element} child */ + function (child) { + var matches = []; + _this7.handlers = _this7.handlers.reduce(function (handlers, handler) { + try { + if (handler.isMatch(child) && (_this7.authenticated || !handler.user)) { + if (handler.run(child)) { + handlers.push(handler); } - }); - if (!(!attrs.is_delayed && author)) { - _context28.next = 13; - break; - } - message = subject ? __('Topic set by %1$s', author) : __('Topic cleared by %1$s', author); - prev_msg = _this36.messages.last(); - if ((prev_msg === null || prev_msg === void 0 ? void 0 : prev_msg.get('nick')) !== attrs.nick || (prev_msg === null || prev_msg === void 0 ? void 0 : prev_msg.get('type')) !== 'info' || (prev_msg === null || prev_msg === void 0 ? void 0 : prev_msg.get('message')) !== message) { - _this36.createMessage({ - message: message, - 'nick': attrs.nick, - 'type': 'info', - 'is_ephemeral': true - }); - } - _context28.next = 11; - return _this36.isSubjectHidden(); - case 11: - if (!_context28.sent) { - _context28.next = 13; - break; + matches.push(handler); + } else { + handlers.push(handler); } - _this36.toggleSubjectHiddenState(); - case 13: - return _context28.abrupt("return", true); - case 14: - return _context28.abrupt("return", false); - case 15: - case "end": - return _context28.stop(); + } catch (e) { + // if the handler throws an exception, we consider it as false + src_core.warn('Removing Strophe handlers due to uncaught exception: ' + e.message); + } + return handlers; + }, []); + + // If no handler was fired for an incoming IQ with type="set", + // then we return an IQ error stanza with service-unavailable. + if (!matches.length && _this7.iqFallbackHandler.isMatch(child)) { + _this7.iqFallbackHandler.run(child); } - }, _callee28); - }))(); - }, - /** - * Set the subject for this {@link _converse.ChatRoom} - * @private - * @method _converse.ChatRoom#setSubject - * @param { String } value - */ - setSubject: function setSubject() { - var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - shared_api.send($msg({ - to: this.get('jid'), - from: shared_converse.connection.jid, - type: 'groupchat' - }).c('subject', { - xmlns: 'jabber:client' - }).t(value).tree()); - }, - /** - * Is this a chat state notification that can be ignored, - * because it's old or because it's from us. - * @private - * @method _converse.ChatRoom#ignorableCSN - * @param { Object } attrs - The message attributes - */ - ignorableCSN: function ignorableCSN(attrs) { - return attrs.chat_state && !attrs.body && (attrs.is_delayed || this.isOwnMessage(attrs)); - }, - /** - * Determines whether the message is from ourselves by checking - * the `from` attribute. Doesn't check the `type` attribute. - * @private - * @method _converse.ChatRoom#isOwnMessage - * @param { Object|Element|_converse.Message } msg - * @returns { boolean } - */ - isOwnMessage: function isOwnMessage(msg) { - var from; - if (lodash_es_isElement(msg)) { - from = msg.getAttribute('from'); - } else if (msg instanceof shared_converse.Message) { - from = msg.get('from'); - } else { - from = msg.from; - } - return Strophe.getResourceFromJid(from) == this.get('nick'); - }, - getUpdatedMessageAttributes: function getUpdatedMessageAttributes(message, attrs) { - var new_attrs = muc_objectSpread(muc_objectSpread({}, shared_converse.ChatBox.prototype.getUpdatedMessageAttributes.call(this, message, attrs)), lodash_es_pick(attrs, ['from_muc', 'occupant_id'])); - if (this.isOwnMessage(attrs)) { - var stanza_id_keys = Object.keys(attrs).filter(function (k) { - return k.startsWith('stanza_id'); }); - Object.assign(new_attrs, lodash_es_pick(attrs, stanza_id_keys)); - if (!message.get('received')) { - new_attrs.received = new Date().toISOString(); - } } - return new_attrs; - }, - /** - * Send a MUC-0410 MUC Self-Ping stanza to room to determine - * whether we're still joined. - * @async - * @private - * @method _converse.ChatRoom#isJoined - * @returns {Promise} - */ - isJoined: function isJoined() { - var _this37 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee29() { - return muc_regeneratorRuntime().wrap(function _callee29$(_context29) { - while (1) switch (_context29.prev = _context29.next) { - case 0: - if (_this37.isEntered()) { - _context29.next = 3; - break; - } - log.info("isJoined: not pinging MUC ".concat(_this37.get('jid'), " since we're not entered")); - return _context29.abrupt("return", false); - case 3: - if (shared_api.connection.connected()) { - _context29.next = 6; - break; - } - _context29.next = 6; - return new Promise(function (resolve) { - return shared_api.listen.once('reconnected', resolve); - }); - case 6: - return _context29.abrupt("return", shared_api.ping("".concat(_this37.get('jid'), "/").concat(_this37.get('nick')))); - case 7: - case "end": - return _context29.stop(); + + /** + * @callback connectionCallback + * @param {Connection} connection + */ + + /** + * _Private_ handler for initial connection request. + * + * This handler is used to process the initial connection request + * response from the BOSH server. It is used to set up authentication + * handlers and start the authentication process. + * + * SASL authentication will be attempted if available, otherwise + * the code will fall back to legacy authentication. + * + * @param {Element | Request} req - The current request. + * @param {connectionCallback} _callback - low level (xmpp) connect callback function. + * Useful for plugins with their own xmpp connect callback (when they + * want to do something special). + * @param {string} [raw] - The stanza as raw string. + */ + }, { + key: "_connect_cb", + value: function _connect_cb(req, _callback, raw) { + var _this8 = this; + src_core.debug('_connect_cb was called'); + this.connected = true; + var bodyWrap; + try { + bodyWrap = /** @type {Element} */ + '_reqToData' in this._proto ? this._proto._reqToData( /** @type {Request} */req) : req; + } catch (e) { + if (e.name !== src_core.ErrorCondition.BAD_FORMAT) { + throw e; } - }, _callee29); - }))(); - }, - /** - * Sends a status update presence (i.e. based on the `` element) - * @method _converse.ChatRoom#sendStatusPresence - * @param { String } type - * @param { String } [status] - An optional status message - * @param { Element[]|Strophe.Builder[]|Element|Strophe.Builder } [child_nodes] - * Nodes(s) to be added as child nodes of the `presence` XML element. - */ - sendStatusPresence: function sendStatusPresence(type, status, child_nodes) { - var _this38 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee30() { - var presence; - return muc_regeneratorRuntime().wrap(function _callee30$(_context30) { - while (1) switch (_context30.prev = _context30.next) { - case 0: - if (!(_this38.session.get('connection_status') === ROOMSTATUS.ENTERED)) { - _context30.next = 6; - break; - } - _context30.next = 3; - return shared_converse.xmppstatus.constructPresence(type, _this38.getRoomJIDAndNick(), status); - case 3: - presence = _context30.sent; - child_nodes === null || child_nodes === void 0 ? void 0 : child_nodes.map(function (c) { - var _c$tree; - return (_c$tree = c === null || c === void 0 ? void 0 : c.tree()) !== null && _c$tree !== void 0 ? _c$tree : c; - }).forEach(function (c) { - return presence.cnode(c).up(); - }); - shared_api.send(presence); - case 6: - case "end": - return _context30.stop(); + this._changeConnectStatus(Status.CONNFAIL, src_core.ErrorCondition.BAD_FORMAT); + this._doDisconnect(src_core.ErrorCondition.BAD_FORMAT); + } + if (!bodyWrap) { + return; + } + if (this.xmlInput !== src_core.Connection.prototype.xmlInput) { + if (bodyWrap.nodeName === this._proto.strip && bodyWrap.childNodes.length) { + this.xmlInput(bodyWrap.childNodes[0]); + } else { + this.xmlInput(bodyWrap); } - }, _callee30); - }))(); - }, - /** - * Check whether we're still joined and re-join if not - * @method _converse.ChatRoom#rejoinIfNecessary - */ - rejoinIfNecessary: function rejoinIfNecessary() { - var _this39 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee31() { - return muc_regeneratorRuntime().wrap(function _callee31$(_context31) { - while (1) switch (_context31.prev = _context31.next) { - case 0: - if (!_this39.isRAICandidate()) { - _context31.next = 3; - break; - } - log.debug("rejoinIfNecessary: not rejoining hidden MUC \"".concat(_this39.get('jid'), "\" since we're using RAI")); - return _context31.abrupt("return", true); - case 3: - _context31.next = 5; - return _this39.isJoined(); - case 5: - if (_context31.sent) { - _context31.next = 8; - break; - } - _this39.rejoin(); - return _context31.abrupt("return", true); - case 8: - case "end": - return _context31.stop(); + } + if (this.rawInput !== src_core.Connection.prototype.rawInput) { + if (raw) { + this.rawInput(raw); + } else { + this.rawInput(src_core.serialize(bodyWrap)); + } + } + var conncheck = this._proto._connect_cb(bodyWrap); + if (conncheck === Status.CONNFAIL) { + return; + } + + // Check for the stream:features tag + var hasFeatures; + if (bodyWrap.getElementsByTagNameNS) { + hasFeatures = bodyWrap.getElementsByTagNameNS(src_core.NS.STREAM, 'features').length > 0; + } else { + hasFeatures = bodyWrap.getElementsByTagName('stream:features').length > 0 || bodyWrap.getElementsByTagName('features').length > 0; + } + if (!hasFeatures) { + this._proto._no_auth_received(_callback); + return; + } + var matched = Array.from(bodyWrap.getElementsByTagName('mechanism')).map(function (m) { + return _this8.mechanisms[m.textContent]; + }).filter(function (m) { + return m; + }); + if (matched.length === 0) { + if (bodyWrap.getElementsByTagName('auth').length === 0) { + // There are no matching SASL mechanisms and also no legacy + // auth available. + this._proto._no_auth_received(_callback); + return; + } + } + if (this.do_authentication !== false) { + this.authenticate(matched); + } + } + + /** + * Sorts an array of objects with prototype SASLMechanism according to + * their priorities. + * @param {SASLMechanism[]} mechanisms - Array of SASL mechanisms. + */ + // eslint-disable-next-line class-methods-use-this + }, { + key: "sortMechanismsByPriority", + value: function sortMechanismsByPriority(mechanisms) { + // Sorting mechanisms according to priority. + for (var i = 0; i < mechanisms.length - 1; ++i) { + var higher = i; + for (var j = i + 1; j < mechanisms.length; ++j) { + if (mechanisms[j].priority > mechanisms[higher].priority) { + higher = j; + } } - }, _callee31); - }))(); - }, - /** - * @private - * @method _converse.ChatRoom#shouldShowErrorMessage - * @returns {Promise} - */ - shouldShowErrorMessage: function shouldShowErrorMessage(attrs) { - var _this40 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee32() { - return muc_regeneratorRuntime().wrap(function _callee32$(_context32) { - while (1) switch (_context32.prev = _context32.next) { - case 0: - if (!(attrs.error_type === 'Decryption')) { - _context32.next = 9; - break; - } - if (!(attrs.error_message === "Message key not found. The counter was repeated or the key was not filled.")) { - _context32.next = 5; - break; - } - return _context32.abrupt("return", false); - case 5: - if (!(attrs.error_condition === 'not-encrypted-for-this-device')) { - _context32.next = 7; - break; - } - return _context32.abrupt("return", false); - case 7: - _context32.next = 16; - break; - case 9: - _context32.t0 = attrs.error_condition === 'not-acceptable'; - if (!_context32.t0) { - _context32.next = 14; - break; - } - _context32.next = 13; - return _this40.rejoinIfNecessary(); - case 13: - _context32.t0 = _context32.sent; - case 14: - if (!_context32.t0) { - _context32.next = 16; - break; - } - return _context32.abrupt("return", false); - case 16: - return _context32.abrupt("return", shared_converse.ChatBox.prototype.shouldShowErrorMessage.call(_this40, attrs)); - case 17: - case "end": - return _context32.stop(); + if (higher !== i) { + var swap = mechanisms[i]; + mechanisms[i] = mechanisms[higher]; + mechanisms[higher] = swap; } - }, _callee32); - }))(); - }, - /** - * Looks whether we already have a moderation message for this - * incoming message. If so, it's considered "dangling" because - * it probably hasn't been applied to anything yet, given that - * the relevant message is only coming in now. - * @private - * @method _converse.ChatRoom#findDanglingModeration - * @param { object } attrs - Attributes representing a received - * message, as returned by {@link parseMUCMessage} - * @returns { _converse.ChatRoomMessage } - */ - findDanglingModeration: function findDanglingModeration(attrs) { - if (!this.messages.length) { - return null; + } + return mechanisms; } - // Only look for dangling moderation if there are newer - // messages than this one, since moderation come after. - if (this.messages.last().get('time') > attrs.time) { - // Search from latest backwards - var messages = Array.from(this.messages.models); - var stanza_id = attrs["stanza_id ".concat(this.get('jid'))]; - if (!stanza_id) { - return null; + + /** + * Set up authentication + * + * Continues the initial connection request by setting up authentication + * handlers and starting the authentication process. + * + * SASL authentication will be attempted if available, otherwise + * the code will fall back to legacy authentication. + * + * @param {SASLMechanism[]} matched - Array of SASL mechanisms supported. + */ + }, { + key: "authenticate", + value: function authenticate(matched) { + if (!this._attemptSASLAuth(matched)) { + this._attemptLegacyAuth(); } - messages.reverse(); - return messages.find(function (_ref2) { - var attributes = _ref2.attributes; - return attributes.moderated === 'retracted' && attributes.moderated_id === stanza_id && attributes.moderated_by; - }); } - }, - /** - * Handles message moderation based on the passed in attributes. - * @private - * @method _converse.ChatRoom#handleModeration - * @param { object } attrs - Attributes representing a received - * message, as returned by {@link parseMUCMessage} - * @returns { Boolean } Returns `true` or `false` depending on - * whether a message was moderated or not. - */ - handleModeration: function handleModeration(attrs) { - var _this41 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee33() { - var MODERATION_ATTRIBUTES, query, key, message, _message3, moderation_attrs, new_attrs; - return muc_regeneratorRuntime().wrap(function _callee33$(_context33) { - while (1) switch (_context33.prev = _context33.next) { - case 0: - MODERATION_ATTRIBUTES = ['editable', 'moderated', 'moderated_by', 'moderated_id', 'moderation_reason']; - if (!(attrs.moderated === 'retracted')) { - _context33.next = 15; - break; - } - query = {}; - key = "stanza_id ".concat(_this41.get('jid')); - query[key] = attrs.moderated_id; - message = _this41.messages.findWhere(query); - if (message) { - _context33.next = 11; - break; - } - attrs['dangling_moderation'] = true; - _context33.next = 10; - return _this41.createMessage(attrs); - case 10: - return _context33.abrupt("return", true); - case 11: - message.save(lodash_es_pick(attrs, MODERATION_ATTRIBUTES)); - return _context33.abrupt("return", true); - case 15: - // Check if we have dangling moderation message - _message3 = _this41.findDanglingModeration(attrs); - if (!_message3) { - _context33.next = 22; - break; - } - moderation_attrs = lodash_es_pick(_message3.attributes, MODERATION_ATTRIBUTES); - new_attrs = Object.assign({ - 'dangling_moderation': false - }, attrs, moderation_attrs); - delete new_attrs['id']; // Delete id, otherwise a new cache entry gets created - _message3.save(new_attrs); - return _context33.abrupt("return", true); - case 22: - return _context33.abrupt("return", false); - case 23: - case "end": - return _context33.stop(); + + /** + * Iterate through an array of SASL mechanisms and attempt authentication + * with the highest priority (enabled) mechanism. + * + * @private + * @param {SASLMechanism[]} mechanisms - Array of SASL mechanisms. + * @return {Boolean} mechanism_found - true or false, depending on whether a + * valid SASL mechanism was found with which authentication could be started. + */ + }, { + key: "_attemptSASLAuth", + value: function _attemptSASLAuth(mechanisms) { + mechanisms = this.sortMechanismsByPriority(mechanisms || []); + var mechanism_found = false; + for (var i = 0; i < mechanisms.length; ++i) { + if (!mechanisms[i].test(this)) { + continue; } - }, _callee33); - }))(); - }, - getNotificationsText: function getNotificationsText() { - var _this42 = this; - var __ = shared_converse.__; - var actors_per_state = this.notifications.toJSON(); - var role_changes = shared_api.settings.get('muc_show_info_messages').filter(function (role_change) { - return public_converse.MUC_ROLE_CHANGES_LIST.includes(role_change); - }); - var join_leave_events = shared_api.settings.get('muc_show_info_messages').filter(function (join_leave_event) { - return public_converse.MUC_TRAFFIC_STATES_LIST.includes(join_leave_event); - }); - var states = [].concat(muc_toConsumableArray(public_converse.CHAT_STATES), muc_toConsumableArray(join_leave_events), muc_toConsumableArray(role_changes)); - return states.reduce(function (result, state) { - var existing_actors = actors_per_state[state]; - if (!(existing_actors !== null && existing_actors !== void 0 && existing_actors.length)) { - return result; + this._sasl_success_handler = this._addSysHandler(this._sasl_success_cb.bind(this), null, 'success', null, null); + this._sasl_failure_handler = this._addSysHandler(this._sasl_failure_cb.bind(this), null, 'failure', null, null); + this._sasl_challenge_handler = this._addSysHandler(this._sasl_challenge_cb.bind(this), null, 'challenge', null, null); + this._sasl_mechanism = mechanisms[i]; + this._sasl_mechanism.onStart(this); + var request_auth_exchange = $build('auth', { + 'xmlns': src_core.NS.SASL, + 'mechanism': this._sasl_mechanism.mechname + }); + if (this._sasl_mechanism.isClientFirst) { + var response = this._sasl_mechanism.clientChallenge(this); + request_auth_exchange.t((0,abab.btoa)( /** @type {string} */response)); + } + this.send(request_auth_exchange.tree()); + mechanism_found = true; + break; } - var actors = existing_actors.map(function (a) { - var _this42$getOccupant; - return ((_this42$getOccupant = _this42.getOccupant(a)) === null || _this42$getOccupant === void 0 ? void 0 : _this42$getOccupant.getDisplayName()) || a; - }); - if (actors.length === 1) { - if (state === 'composing') { - return "".concat(result).concat(__('%1$s is typing', actors[0]), "\n"); - } else if (state === 'paused') { - return "".concat(result).concat(__('%1$s has stopped typing', actors[0]), "\n"); - } else if (state === shared_converse.GONE) { - return "".concat(result).concat(__('%1$s has gone away', actors[0]), "\n"); - } else if (state === 'entered') { - return "".concat(result).concat(__('%1$s has entered the groupchat', actors[0]), "\n"); - } else if (state === 'exited') { - return "".concat(result).concat(__('%1$s has left the groupchat', actors[0]), "\n"); - } else if (state === 'op') { - return "".concat(result).concat(__('%1$s is now a moderator', actors[0]), "\n"); - } else if (state === 'deop') { - return "".concat(result).concat(__('%1$s is no longer a moderator', actors[0]), "\n"); - } else if (state === 'voice') { - return "".concat(result).concat(__('%1$s has been given a voice', actors[0]), "\n"); - } else if (state === 'mute') { - return "".concat(result).concat(__('%1$s has been muted', actors[0]), "\n"); + return mechanism_found; + } + + /** + * _Private_ handler for the SASL challenge + * @private + * @param {Element} elem + */ + }, { + key: "_sasl_challenge_cb", + value: function () { + var _sasl_challenge_cb2 = src_connection_asyncToGenerator( /*#__PURE__*/src_connection_regeneratorRuntime().mark(function _callee(elem) { + var challenge, response, stanza; + return src_connection_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + challenge = (0,abab.atob)(getText(elem)); + _context.next = 3; + return this._sasl_mechanism.onChallenge(this, challenge); + case 3: + response = _context.sent; + stanza = $build('response', { + 'xmlns': src_core.NS.SASL + }); + if (response) stanza.t((0,abab.btoa)(response)); + this.send(stanza.tree()); + return _context.abrupt("return", true); + case 8: + case "end": + return _context.stop(); + } + }, _callee, this); + })); + function _sasl_challenge_cb(_x) { + return _sasl_challenge_cb2.apply(this, arguments); + } + return _sasl_challenge_cb; + }() + /** + * Attempt legacy (i.e. non-SASL) authentication. + * @private + */ + }, { + key: "_attemptLegacyAuth", + value: function _attemptLegacyAuth() { + if (src_core.getNodeFromJid(this.jid) === null) { + // we don't have a node, which is required for non-anonymous + // client connections + this._changeConnectStatus(Status.CONNFAIL, src_core.ErrorCondition.MISSING_JID_NODE); + this.disconnect(src_core.ErrorCondition.MISSING_JID_NODE); + } else { + // Fall back to legacy authentication + this._changeConnectStatus(Status.AUTHENTICATING, null); + this._addSysHandler(this._onLegacyAuthIQResult.bind(this), null, null, null, '_auth_1'); + this.send(builder_$iq({ + 'type': 'get', + 'to': this.domain, + 'id': '_auth_1' + }).c('query', { + xmlns: src_core.NS.AUTH + }).c('username', {}).t(src_core.getNodeFromJid(this.jid)).tree()); + } + } + + /** + * _Private_ handler for legacy authentication. + * + * This handler is called in response to the initial + * for legacy authentication. It builds an authentication and + * sends it, creating a handler (calling back to _auth2_cb()) to + * handle the result + * @private + * @return {false} `false` to remove the handler. + */ + // eslint-disable-next-line no-unused-vars + // + }, { + key: "_onLegacyAuthIQResult", + value: function _onLegacyAuthIQResult() { + var pass = typeof this.pass === 'string' ? this.pass : ''; + + // build plaintext auth iq + var iq = builder_$iq({ + type: 'set', + id: '_auth_2' + }).c('query', { + xmlns: src_core.NS.AUTH + }).c('username', {}).t(src_core.getNodeFromJid(this.jid)).up().c('password').t(pass); + if (!src_core.getResourceFromJid(this.jid)) { + // since the user has not supplied a resource, we pick + // a default one here. unlike other auth methods, the server + // cannot do this for us. + this.jid = src_core.getBareJidFromJid(this.jid) + '/strophe'; + } + iq.up().c('resource', {}).t(src_core.getResourceFromJid(this.jid)); + this._addSysHandler(this._auth2_cb.bind(this), null, null, null, '_auth_2'); + this.send(iq.tree()); + return false; + } + + /** + * _Private_ handler for succesful SASL authentication. + * @private + * @param {Element} elem - The matching stanza. + * @return {false} `false` to remove the handler. + */ + }, { + key: "_sasl_success_cb", + value: function _sasl_success_cb(elem) { + var _this9 = this; + if (this._sasl_data['server-signature']) { + var serverSignature; + var success = (0,abab.atob)(getText(elem)); + var attribMatch = /([a-z]+)=([^,]+)(,|$)/; + var matches = success.match(attribMatch); + if (matches[1] === 'v') { + serverSignature = matches[2]; } - } else if (actors.length > 1) { - var actors_str; - if (actors.length > 3) { - actors_str = "".concat(Array.from(actors).slice(0, 2).join(', '), " and others"); - } else { - var last_actor = actors.pop(); - actors_str = __('%1$s and %2$s', actors.join(', '), last_actor); + if (serverSignature !== this._sasl_data['server-signature']) { + // remove old handlers + this.deleteHandler(this._sasl_failure_handler); + this._sasl_failure_handler = null; + if (this._sasl_challenge_handler) { + this.deleteHandler(this._sasl_challenge_handler); + this._sasl_challenge_handler = null; + } + this._sasl_data = {}; + return this._sasl_failure_cb(null); } - if (state === 'composing') { - return "".concat(result).concat(__('%1$s are typing', actors_str), "\n"); - } else if (state === 'paused') { - return "".concat(result).concat(__('%1$s have stopped typing', actors_str), "\n"); - } else if (state === shared_converse.GONE) { - return "".concat(result).concat(__('%1$s have gone away', actors_str), "\n"); - } else if (state === 'entered') { - return "".concat(result).concat(__('%1$s have entered the groupchat', actors_str), "\n"); - } else if (state === 'exited') { - return "".concat(result).concat(__('%1$s have left the groupchat', actors_str), "\n"); - } else if (state === 'op') { - return "".concat(result).concat(__('%1$s are now moderators', actors[0]), "\n"); - } else if (state === 'deop') { - return "".concat(result).concat(__('%1$s are no longer moderators', actors[0]), "\n"); - } else if (state === 'voice') { - return "".concat(result).concat(__('%1$s have been given voices', actors[0]), "\n"); - } else if (state === 'mute') { - return "".concat(result).concat(__('%1$s have been muted', actors[0]), "\n"); + } + src_core.info('SASL authentication succeeded.'); + if (this._sasl_data.keys) { + this.scram_keys = this._sasl_data.keys; + } + if (this._sasl_mechanism) { + this._sasl_mechanism.onSuccess(); + } + // remove old handlers + this.deleteHandler(this._sasl_failure_handler); + this._sasl_failure_handler = null; + if (this._sasl_challenge_handler) { + this.deleteHandler(this._sasl_challenge_handler); + this._sasl_challenge_handler = null; + } + /** @type {Handler[]} */ + var streamfeature_handlers = []; + + /** + * @param {Handler[]} handlers + * @param {Element} elem + */ + var wrapper = function wrapper(handlers, elem) { + while (handlers.length) { + _this9.deleteHandler(handlers.pop()); + } + _this9._onStreamFeaturesAfterSASL(elem); + return false; + }; + streamfeature_handlers.push(this._addSysHandler( /** @param {Element} elem */ + function (elem) { + return wrapper(streamfeature_handlers, elem); + }, null, 'stream:features', null, null)); + streamfeature_handlers.push(this._addSysHandler( /** @param {Element} elem */ + function (elem) { + return wrapper(streamfeature_handlers, elem); + }, src_core.NS.STREAM, 'features', null, null)); + + // we must send an xmpp:restart now + this._sendRestart(); + return false; + } + + /** + * @private + * @param {Element} elem - The matching stanza. + * @return {false} `false` to remove the handler. + */ + }, { + key: "_onStreamFeaturesAfterSASL", + value: function _onStreamFeaturesAfterSASL(elem) { + // save stream:features for future usage + this.features = elem; + for (var i = 0; i < elem.childNodes.length; i++) { + var child = elem.childNodes[i]; + if (child.nodeName === 'bind') { + this.do_bind = true; + } + if (child.nodeName === 'session') { + this.do_session = true; } } - return result; - }, ''); - }, - /** - * @param { String } actor - The nickname of the actor that caused the notification - * @param {String|Array} states - The state or states representing the type of notificcation - */ - removeNotification: function removeNotification(actor, states) { - var _this43 = this; - var actors_per_state = this.notifications.toJSON(); - states = Array.isArray(states) ? states : [states]; - states.forEach(function (state) { - var existing_actors = Array.from(actors_per_state[state] || []); - if (existing_actors.includes(actor)) { - var idx = existing_actors.indexOf(actor); - existing_actors.splice(idx, 1); - _this43.notifications.set(state, Array.from(existing_actors)); + if (!this.do_bind) { + this._changeConnectStatus(Status.AUTHFAIL, null); + return false; + } else if (!this.options.explicitResourceBinding) { + this.bind(); + } else { + this._changeConnectStatus(Status.BINDREQUIRED, null); } - }); - }, - /** - * Update the notifications model by adding the passed in nickname - * to the array of nicknames that all match a particular state. - * - * Removes the nickname from any other states it might be associated with. - * - * The state can be a XEP-0085 Chat State or a XEP-0045 join/leave - * state. - * @param { String } actor - The nickname of the actor that causes the notification - * @param { String } state - The state representing the type of notificcation - */ - updateNotifications: function updateNotifications(actor, state) { - var _this44 = this; - var actors_per_state = this.notifications.toJSON(); - var existing_actors = actors_per_state[state] || []; - if (existing_actors.includes(actor)) { - return; + return false; } - var reducer = function reducer(out, s) { - if (s === state) { - out[s] = [].concat(muc_toConsumableArray(existing_actors), [actor]); + + /** + * Sends an IQ to the XMPP server to bind a JID resource for this session. + * + * https://tools.ietf.org/html/rfc6120#section-7.5 + * + * If `explicitResourceBinding` was set to a truthy value in the options + * passed to the Strophe.Connection constructor, then this function needs + * to be called explicitly by the client author. + * + * Otherwise it'll be called automatically as soon as the XMPP server + * advertises the "urn:ietf:params:xml:ns:xmpp-bind" stream feature. + */ + }, { + key: "bind", + value: function bind() { + if (!this.do_bind) { + src_core.log(src_core.LogLevel.INFO, "Strophe.Connection.prototype.bind called but \"do_bind\" is false"); + return; + } + this._addSysHandler(this._onResourceBindResultIQ.bind(this), null, null, null, '_bind_auth_2'); + var resource = src_core.getResourceFromJid(this.jid); + if (resource) { + this.send(builder_$iq({ + type: 'set', + id: '_bind_auth_2' + }).c('bind', { + xmlns: src_core.NS.BIND + }).c('resource', {}).t(resource).tree()); } else { - out[s] = (actors_per_state[s] || []).filter(function (a) { - return a !== actor; - }); + this.send(builder_$iq({ + type: 'set', + id: '_bind_auth_2' + }).c('bind', { + xmlns: src_core.NS.BIND + }).tree()); + } + } + + /** + * _Private_ handler for binding result and session start. + * @private + * @param {Element} elem - The matching stanza. + * @return {false} `false` to remove the handler. + */ + }, { + key: "_onResourceBindResultIQ", + value: function _onResourceBindResultIQ(elem) { + if (elem.getAttribute('type') === 'error') { + src_core.warn('Resource binding failed.'); + var conflict = elem.getElementsByTagName('conflict'); + var condition; + if (conflict.length > 0) { + condition = src_core.ErrorCondition.CONFLICT; + } + this._changeConnectStatus(Status.AUTHFAIL, condition, elem); + return false; + } + // TODO - need to grab errors + var bind = elem.getElementsByTagName('bind'); + if (bind.length > 0) { + var jidNode = bind[0].getElementsByTagName('jid'); + if (jidNode.length > 0) { + this.authenticated = true; + this.jid = getText(jidNode[0]); + if (this.do_session) { + this._establishSession(); + } else { + this._changeConnectStatus(Status.CONNECTED, null); + } + } + } else { + src_core.warn('Resource binding failed.'); + this._changeConnectStatus(Status.AUTHFAIL, null, elem); + return false; + } + } + + /** + * Send IQ request to establish a session with the XMPP server. + * + * See https://xmpp.org/rfcs/rfc3921.html#session + * + * Note: The protocol for session establishment has been determined as + * unnecessary and removed in RFC-6121. + * @private + */ + }, { + key: "_establishSession", + value: function _establishSession() { + if (!this.do_session) { + throw new Error("Strophe.Connection.prototype._establishSession " + "called but apparently ".concat(src_core.NS.SESSION, " wasn't advertised by the server")); } - return out; - }; - var actors_per_chat_state = public_converse.CHAT_STATES.reduce(reducer, {}); - var actors_per_traffic_state = public_converse.MUC_TRAFFIC_STATES_LIST.reduce(reducer, {}); - var actors_per_role_change = public_converse.MUC_ROLE_CHANGES_LIST.reduce(reducer, {}); - this.notifications.set(Object.assign(actors_per_chat_state, actors_per_traffic_state, actors_per_role_change)); - window.setTimeout(function () { - return _this44.removeNotification(actor, state); - }, 10000); - }, - handleMetadataFastening: function handleMetadataFastening(attrs) { - if (attrs.ogp_for_id) { - if (attrs.from !== this.get('jid')) { - // For now we only allow metadata from the MUC itself and not - // from individual users who are deemed less trustworthy. + this._addSysHandler(this._onSessionResultIQ.bind(this), null, null, null, '_session_auth_2'); + this.send(builder_$iq({ + type: 'set', + id: '_session_auth_2' + }).c('session', { + xmlns: src_core.NS.SESSION + }).tree()); + } + + /** + * _Private_ handler for the server's IQ response to a client's session + * request. + * + * This sets Connection.authenticated to true on success, which + * starts the processing of user handlers. + * + * See https://xmpp.org/rfcs/rfc3921.html#session + * + * Note: The protocol for session establishment has been determined as + * unnecessary and removed in RFC-6121. + * @private + * @param {Element} elem - The matching stanza. + * @return {false} `false` to remove the handler. + */ + }, { + key: "_onSessionResultIQ", + value: function _onSessionResultIQ(elem) { + if (elem.getAttribute('type') === 'result') { + this.authenticated = true; + this._changeConnectStatus(Status.CONNECTED, null); + } else if (elem.getAttribute('type') === 'error') { + this.authenticated = false; + src_core.warn('Session creation failed.'); + this._changeConnectStatus(Status.AUTHFAIL, null, elem); return false; } - var message = this.messages.findWhere({ - 'origin_id': attrs.ogp_for_id - }); - if (message) { - var old_list = message.get('ogp_metadata') || []; - if (old_list.filter(function (m) { - return m['og:url'] === attrs['og:url']; - }).length) { - // Don't add metadata for the same URL again - return false; - } - var list = [].concat(muc_toConsumableArray(old_list), [lodash_es_pick(attrs, METADATA_ATTRIBUTES)]); - message.save('ogp_metadata', list); - return true; + return false; + } + + /** + * _Private_ handler for SASL authentication failure. + * @param {Element} [elem] - The matching stanza. + * @return {false} `false` to remove the handler. + */ + }, { + key: "_sasl_failure_cb", + value: function _sasl_failure_cb(elem) { + // delete unneeded handlers + if (this._sasl_success_handler) { + this.deleteHandler(this._sasl_success_handler); + this._sasl_success_handler = null; + } + if (this._sasl_challenge_handler) { + this.deleteHandler(this._sasl_challenge_handler); + this._sasl_challenge_handler = null; } + if (this._sasl_mechanism) this._sasl_mechanism.onFailure(); + this._changeConnectStatus(Status.AUTHFAIL, null, elem); + return false; } - return false; - }, - /** - * Given {@link MessageAttributes} look for XEP-0316 Room Notifications and create info - * messages for them. - * @param { Element } stanza - */ - handleMEPNotification: function handleMEPNotification(attrs) { - var _attrs$activities, - _this45 = this; - if (attrs.from !== this.get('jid') || !attrs.activities) { + + /** + * _Private_ handler to finish legacy authentication. + * + * This handler is called when the result from the jabber:iq:auth + * stanza is returned. + * @private + * @param {Element} elem - The stanza that triggered the callback. + * @return {false} `false` to remove the handler. + */ + }, { + key: "_auth2_cb", + value: function _auth2_cb(elem) { + if (elem.getAttribute('type') === 'result') { + this.authenticated = true; + this._changeConnectStatus(Status.CONNECTED, null); + } else if (elem.getAttribute('type') === 'error') { + this._changeConnectStatus(Status.AUTHFAIL, null, elem); + this.disconnect('authentication failed'); + } return false; } - (_attrs$activities = attrs.activities) === null || _attrs$activities === void 0 ? void 0 : _attrs$activities.forEach(function (activity_attrs) { - var data = Object.assign(attrs, activity_attrs); - _this45.createMessage(data); - // Trigger so that notifications are shown - shared_api.trigger('message', { - 'attrs': data, - 'chatbox': _this45 - }); - }); - return !!attrs.activities.length; - }, - /** - * Returns an already cached message (if it exists) based on the - * passed in attributes map. - * @method _converse.ChatRoom#getDuplicateMessage - * @param { object } attrs - Attributes representing a received - * message, as returned by {@link parseMUCMessage} - * @returns {Promise<_converse.Message>} - */ - getDuplicateMessage: function getDuplicateMessage(attrs) { - var _attrs$activities2; - if ((_attrs$activities2 = attrs.activities) !== null && _attrs$activities2 !== void 0 && _attrs$activities2.length) { - return this.messages.findWhere({ - 'type': 'mep', - 'msgid': attrs.msgid - }); - } else { - return shared_converse.ChatBox.prototype.getDuplicateMessage.call(this, attrs); + + /** + * _Private_ function to add a system level timed handler. + * + * This function is used to add a Strophe.TimedHandler for the + * library code. System timed handlers are allowed to run before + * authentication is complete. + * @param {number} period - The period of the handler. + * @param {Function} handler - The callback function. + */ + }, { + key: "_addSysTimedHandler", + value: function _addSysTimedHandler(period, handler) { + var thand = new timed_handler(period, handler); + thand.user = false; + this.addTimeds.push(thand); + return thand; } - }, - /** - * Handler for all MUC messages sent to this groupchat. This method - * shouldn't be called directly, instead {@link _converse.ChatRoom#queueMessage} - * should be called. - * @method _converse.ChatRoom#onMessage - * @param { MessageAttributes } attrs - A promise which resolves to the message attributes. - */ - onMessage: function onMessage(attrs) { - var _this46 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee34() { - var message, msg; - return muc_regeneratorRuntime().wrap(function _callee34$(_context34) { - while (1) switch (_context34.prev = _context34.next) { - case 0: - _context34.next = 2; - return attrs; - case 2: - attrs = _context34.sent; - if (!muc_u.isErrorObject(attrs)) { - _context34.next = 8; - break; - } - attrs.stanza && log.error(attrs.stanza); - return _context34.abrupt("return", log.error(attrs.message)); - case 8: - _context34.t0 = attrs.type === 'error'; - if (!_context34.t0) { - _context34.next = 13; - break; - } - _context34.next = 12; - return _this46.shouldShowErrorMessage(attrs); - case 12: - _context34.t0 = !_context34.sent; - case 13: - if (!_context34.t0) { - _context34.next = 15; - break; - } - return _context34.abrupt("return"); - case 15: - message = _this46.getDuplicateMessage(attrs); - if (!message) { - _context34.next = 21; - break; - } - message.get('type') === 'groupchat' && _this46.updateMessage(message, attrs); - return _context34.abrupt("return"); - case 21: - if (!(attrs.receipt_id || attrs.is_marker || _this46.ignorableCSN(attrs))) { - _context34.next = 23; - break; - } - return _context34.abrupt("return"); - case 23: - _context34.t3 = _this46.handleMetadataFastening(attrs) || _this46.handleMEPNotification(attrs); - if (_context34.t3) { - _context34.next = 28; - break; - } - _context34.next = 27; - return _this46.handleRetraction(attrs); - case 27: - _context34.t3 = _context34.sent; - case 28: - _context34.t2 = _context34.t3; - if (_context34.t2) { - _context34.next = 33; - break; - } - _context34.next = 32; - return _this46.handleModeration(attrs); - case 32: - _context34.t2 = _context34.sent; - case 33: - _context34.t1 = _context34.t2; - if (_context34.t1) { - _context34.next = 38; - break; - } - _context34.next = 37; - return _this46.handleSubjectChange(attrs); - case 37: - _context34.t1 = _context34.sent; - case 38: - if (!_context34.t1) { - _context34.next = 41; - break; - } - attrs.nick && _this46.removeNotification(attrs.nick, ['composing', 'paused']); - return _context34.abrupt("return"); - case 41: - _this46.setEditable(attrs, attrs.time); - if (attrs['chat_state']) { - _this46.updateNotifications(attrs.nick, attrs.chat_state); - } - if (!muc_u.shouldCreateGroupchatMessage(attrs)) { - _context34.next = 54; - break; - } - _context34.next = 46; - return handleCorrection(_this46, attrs); - case 46: - _context34.t4 = _context34.sent; - if (_context34.t4) { - _context34.next = 51; - break; + + /** + * _Private_ function to add a system level stanza handler. + * + * This function is used to add a Handler for the + * library code. System stanza handlers are allowed to run before + * authentication is complete. + * @param {Function} handler - The callback function. + * @param {string} ns - The namespace to match. + * @param {string} name - The stanza name to match. + * @param {string} type - The stanza type attribute to match. + * @param {string} id - The stanza id attribute to match. + */ + }, { + key: "_addSysHandler", + value: function _addSysHandler(handler, ns, name, type, id) { + var hand = new src_handler(handler, ns, name, type, id); + hand.user = false; + this.addHandlers.push(hand); + return hand; + } + + /** + * _Private_ timeout handler for handling non-graceful disconnection. + * + * If the graceful disconnect process does not complete within the + * time allotted, this handler finishes the disconnect anyway. + * @return {false} `false` to remove the handler. + */ + }, { + key: "_onDisconnectTimeout", + value: function _onDisconnectTimeout() { + src_core.debug('_onDisconnectTimeout was called'); + this._changeConnectStatus(Status.CONNTIMEOUT, null); + this._proto._onDisconnectTimeout(); + // actually disconnect + this._doDisconnect(); + return false; + } + + /** + * _Private_ handler to process events during idle cycle. + * + * This handler is called every 100ms to fire timed handlers that + * are ready and keep poll requests going. + */ + }, { + key: "_onIdle", + value: function _onIdle() { + var _this10 = this; + // add timed handlers scheduled for addition + // NOTE: we add before remove in the case a timed handler is + // added and then deleted before the next _onIdle() call. + while (this.addTimeds.length > 0) { + this.timedHandlers.push(this.addTimeds.pop()); + } + + // remove timed handlers that have been scheduled for deletion + while (this.removeTimeds.length > 0) { + var thand = this.removeTimeds.pop(); + var i = this.timedHandlers.indexOf(thand); + if (i >= 0) { + this.timedHandlers.splice(i, 1); + } + } + + // call ready timed handlers + var now = new Date().getTime(); + var newList = []; + for (var _i = 0; _i < this.timedHandlers.length; _i++) { + var _thand = this.timedHandlers[_i]; + if (this.authenticated || !_thand.user) { + var since = _thand.lastCalled + _thand.period; + if (since - now <= 0) { + if (_thand.run()) { + newList.push(_thand); } - _context34.next = 50; - return _this46.createMessage(attrs); - case 50: - _context34.t4 = _context34.sent; - case 51: - msg = _context34.t4; - _this46.removeNotification(attrs.nick, ['composing', 'paused']); - _this46.handleUnreadMessage(msg); - case 54: - case "end": - return _context34.stop(); + } else { + newList.push(_thand); + } } - }, _callee34); - }))(); - }, - handleModifyError: function handleModifyError(pres) { - var _pres$querySelector; - var text = (_pres$querySelector = pres.querySelector('error text')) === null || _pres$querySelector === void 0 ? void 0 : _pres$querySelector.textContent; - if (text) { - if (this.session.get('connection_status') === ROOMSTATUS.CONNECTING) { - this.setDisconnectionState(text); - } else { - var attrs = { - 'type': 'error', - 'message': text, - 'is_ephemeral': true - }; - this.createMessage(attrs); + } + this.timedHandlers = newList; + clearTimeout(this._idleTimeout); + this._proto._onIdle(); + + // reactivate the timer only if connected + if (this.connected) { + this._idleTimeout = setTimeout(function () { + return _this10._onIdle(); + }, 100); } } - }, + }]); + return Connection; +}(); +/* harmony default export */ const connection = (connection_Connection); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl.js +function sasl_typeof(obj) { + "@babel/helpers - typeof"; + + return sasl_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, sasl_typeof(obj); +} +function sasl_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function sasl_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, sasl_toPropertyKey(descriptor.key), descriptor); + } +} +function sasl_createClass(Constructor, protoProps, staticProps) { + if (protoProps) sasl_defineProperties(Constructor.prototype, protoProps); + if (staticProps) sasl_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function sasl_toPropertyKey(arg) { + var key = sasl_toPrimitive(arg, "string"); + return sasl_typeof(key) === "symbol" ? key : String(key); +} +function sasl_toPrimitive(input, hint) { + if (sasl_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (sasl_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +/** + * @typedef {import("./connection.js").default} Connection + */ +/** + * Encapsulates an SASL authentication mechanism. + * + * User code may override the priority for each mechanism or disable it completely. + * See for information about changing priority and for informatian on + * how to disable a mechanism. + * + * By default, all mechanisms are enabled and t_he priorities are + * + * SCRAM-SHA-512 - 72 + * SCRAM-SHA-384 - 71 + * SCRAM-SHA-256 - 70 + * SCRAM-SHA-1 - 60 + * PLAIN - 50 + * OAUTHBEARER - 40 + * X-OAUTH2 - 30 + * ANONYMOUS - 20 + * EXTERNAL - 10 + * + * See: {@link Strophe.Connection#registerSASLMechanisms} + */ +var SASLMechanism = /*#__PURE__*/function () { /** - * Handle a presence stanza that disconnects the user from the MUC - * @param { Element } stanza + * PrivateConstructor: Strophe.SASLMechanism + * SASL auth mechanism abstraction. + * @param {String} [name] - SASL Mechanism name. + * @param {Boolean} [isClientFirst] - If client should send response first without challenge. + * @param {Number} [priority] - Priority. */ - handleDisconnection: function handleDisconnection(stanza) { - var _item$querySelector, _item$querySelector2; - var is_self = stanza.querySelector("status[code='110']") !== null; - var x = external_sizzle_default()("x[xmlns=\"".concat(Strophe.NS.MUC_USER, "\"]"), stanza).pop(); - if (!x) { - return; - } - var disconnection_codes = Object.keys(shared_converse.muc.disconnect_messages); - var codes = external_sizzle_default()('status', x).map(function (s) { - return s.getAttribute('code'); - }).filter(function (c) { - return disconnection_codes.includes(c); - }); - var disconnected = is_self && codes.length > 0; - if (!disconnected) { - return; - } - // By using querySelector we assume here there is - // one per - // element. This appears to be a safe assumption, since - // each element pertains to a single user. - var item = x.querySelector('item'); - var reason = item ? (_item$querySelector = item.querySelector('reason')) === null || _item$querySelector === void 0 ? void 0 : _item$querySelector.textContent : undefined; - var actor = item ? (_item$querySelector2 = item.querySelector('actor')) === null || _item$querySelector2 === void 0 ? void 0 : _item$querySelector2.getAttribute('nick') : undefined; - var message = shared_converse.muc.disconnect_messages[codes[0]]; - var status = codes.includes('301') ? ROOMSTATUS.BANNED : ROOMSTATUS.DISCONNECTED; - this.setDisconnectionState(message, reason, actor, status); - }, - getActionInfoMessage: function getActionInfoMessage(code, nick, actor) { - var __ = shared_converse.__; - if (code === '301') { - return actor ? __('%1$s has been banned by %2$s', nick, actor) : __('%1$s has been banned', nick); - } else if (code === '303') { - return __("%1$s's nickname has changed", nick); - } else if (code === '307') { - return actor ? __('%1$s has been kicked out by %2$s', nick, actor) : __('%1$s has been kicked out', nick); - } else if (code === '321') { - return __('%1$s has been removed because of an affiliation change', nick); - } else if (code === '322') { - return __('%1$s has been removed for not being a member', nick); + function SASLMechanism(name, isClientFirst, priority) { + sasl_classCallCheck(this, SASLMechanism); + /** Mechanism name. */ + this.mechname = name; + + /** + * If client sends response without initial server challenge. + */ + this.isClientFirst = isClientFirst; + + /** + * Determines which {@link SASLMechanism} is chosen for authentication (Higher is better). + * Users may override this to prioritize mechanisms differently. + * + * Example: (This will cause Strophe to choose the mechanism that the server sent first) + * + * > Strophe.SASLPlain.priority = Strophe.SASLSHA1.priority; + * + * See for a list of available mechanisms. + */ + this.priority = priority; + } + + /** + * Checks if mechanism able to run. + * To disable a mechanism, make this return false; + * + * To disable plain authentication run + * > Strophe.SASLPlain.test = function() { + * > return false; + * > } + * + * See for a list of available mechanisms. + * @param {Connection} connection - Target Connection. + * @return {boolean} If mechanism was able to run. + */ + // eslint-disable-next-line class-methods-use-this, no-unused-vars + sasl_createClass(SASLMechanism, [{ + key: "test", + value: function test(connection) { + return true; } - }, - createAffiliationChangeMessage: function createAffiliationChangeMessage(occupant) { - var __ = shared_converse.__; - var previous_affiliation = occupant._previousAttributes.affiliation; - if (!previous_affiliation) { - // If no previous affiliation was set, then we don't - // interpret this as an affiliation change. - // For example, if muc_send_probes is true, then occupants - // are created based on incoming messages, in which case - // we don't yet know the affiliation - return; + + /** + * Called before starting mechanism on some connection. + * @param {Connection} connection - Target Connection. + */ + }, { + key: "onStart", + value: function onStart(connection) { + this._connection = connection; } - var current_affiliation = occupant.get('affiliation'); - if (previous_affiliation === 'admin' && shared_converse.isInfoVisible(public_converse.AFFILIATION_CHANGES.EXADMIN)) { - this.createMessage({ - 'type': 'info', - 'message': __('%1$s is no longer an admin of this groupchat', occupant.get('nick')) - }); - } else if (previous_affiliation === 'owner' && shared_converse.isInfoVisible(public_converse.AFFILIATION_CHANGES.EXOWNER)) { - this.createMessage({ - 'type': 'info', - 'message': __('%1$s is no longer an owner of this groupchat', occupant.get('nick')) - }); - } else if (previous_affiliation === 'outcast' && shared_converse.isInfoVisible(public_converse.AFFILIATION_CHANGES.EXOUTCAST)) { - this.createMessage({ - 'type': 'info', - 'message': __('%1$s is no longer banned from this groupchat', occupant.get('nick')) - }); + + /** + * Called by protocol implementation on incoming challenge. + * + * By deafult, if the client is expected to send data first (isClientFirst === true), + * this method is called with `challenge` as null on the first call, + * unless `clientChallenge` is overridden in the relevant subclass. + * @param {Connection} connection - Target Connection. + * @param {string} [challenge] - current challenge to handle. + * @return {string|Promise} Mechanism response. + */ + // eslint-disable-next-line no-unused-vars, class-methods-use-this + }, { + key: "onChallenge", + value: function onChallenge(connection, challenge) { + throw new Error('You should implement challenge handling!'); } - if (current_affiliation === 'none' && previous_affiliation === 'member' && shared_converse.isInfoVisible(public_converse.AFFILIATION_CHANGES.EXMEMBER)) { - this.createMessage({ - 'type': 'info', - 'message': __('%1$s is no longer a member of this groupchat', occupant.get('nick')) - }); + + /** + * Called by the protocol implementation if the client is expected to send + * data first in the authentication exchange (i.e. isClientFirst === true). + * @param {Connection} connection - Target Connection. + * @return {string|Promise} Mechanism response. + */ + }, { + key: "clientChallenge", + value: function clientChallenge(connection) { + if (!this.isClientFirst) { + throw new Error('clientChallenge should not be called if isClientFirst is false!'); + } + return this.onChallenge(connection); } - if (current_affiliation === 'member' && shared_converse.isInfoVisible(public_converse.AFFILIATION_CHANGES.MEMBER)) { - this.createMessage({ - 'type': 'info', - 'message': __('%1$s is now a member of this groupchat', occupant.get('nick')) - }); - } else if (current_affiliation === 'admin' && shared_converse.isInfoVisible(public_converse.AFFILIATION_CHANGES.ADMIN) || current_affiliation == 'owner' && shared_converse.isInfoVisible(public_converse.AFFILIATION_CHANGES.OWNER)) { - // For example: AppleJack is now an (admin|owner) of this groupchat - this.createMessage({ - 'type': 'info', - 'message': __('%1$s is now an %2$s of this groupchat', occupant.get('nick'), current_affiliation) - }); + + /** + * Protocol informs mechanism implementation about SASL failure. + */ + }, { + key: "onFailure", + value: function onFailure() { + this._connection = null; } - }, - createRoleChangeMessage: function createRoleChangeMessage(occupant, changed) { - if (changed === 'none' || occupant.changed.affiliation) { - // We don't inform of role changes if they accompany affiliation changes. - return; + + /** + * Protocol informs mechanism implementation about SASL success. + */ + }, { + key: "onSuccess", + value: function onSuccess() { + this._connection = null; } - var previous_role = occupant._previousAttributes.role; - if (previous_role === 'moderator' && shared_converse.isInfoVisible(public_converse.MUC_ROLE_CHANGES.DEOP)) { - this.updateNotifications(occupant.get('nick'), public_converse.MUC_ROLE_CHANGES.DEOP); - } else if (previous_role === 'visitor' && shared_converse.isInfoVisible(public_converse.MUC_ROLE_CHANGES.VOICE)) { - this.updateNotifications(occupant.get('nick'), public_converse.MUC_ROLE_CHANGES.VOICE); + }]); + return SASLMechanism; +}(); +/* harmony default export */ const sasl = (SASLMechanism); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-anon.js +function sasl_anon_typeof(obj) { + "@babel/helpers - typeof"; + + return sasl_anon_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, sasl_anon_typeof(obj); +} +function sasl_anon_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function sasl_anon_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, sasl_anon_toPropertyKey(descriptor.key), descriptor); + } +} +function sasl_anon_createClass(Constructor, protoProps, staticProps) { + if (protoProps) sasl_anon_defineProperties(Constructor.prototype, protoProps); + if (staticProps) sasl_anon_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function sasl_anon_toPropertyKey(arg) { + var key = sasl_anon_toPrimitive(arg, "string"); + return sasl_anon_typeof(key) === "symbol" ? key : String(key); +} +function sasl_anon_toPrimitive(input, hint) { + if (sasl_anon_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (sasl_anon_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function sasl_anon_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true } - if (occupant.get('role') === 'visitor' && shared_converse.isInfoVisible(public_converse.MUC_ROLE_CHANGES.MUTE)) { - this.updateNotifications(occupant.get('nick'), public_converse.MUC_ROLE_CHANGES.MUTE); - } else if (occupant.get('role') === 'moderator') { - if (!['owner', 'admin'].includes(occupant.get('affiliation')) && shared_converse.isInfoVisible(public_converse.MUC_ROLE_CHANGES.OP)) { - // Oly show this message if the user isn't already - // an admin or owner, otherwise this isn't new information. - this.updateNotifications(occupant.get('nick'), public_converse.MUC_ROLE_CHANGES.OP); - } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) sasl_anon_setPrototypeOf(subClass, superClass); +} +function sasl_anon_setPrototypeOf(o, p) { + sasl_anon_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return sasl_anon_setPrototypeOf(o, p); +} +function sasl_anon_createSuper(Derived) { + var hasNativeReflectConstruct = sasl_anon_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = sasl_anon_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = sasl_anon_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); } - }, + return sasl_anon_possibleConstructorReturn(this, result); + }; +} +function sasl_anon_possibleConstructorReturn(self, call) { + if (call && (sasl_anon_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return sasl_anon_assertThisInitialized(self); +} +function sasl_anon_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} +function sasl_anon_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} +function sasl_anon_getPrototypeOf(o) { + sasl_anon_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return sasl_anon_getPrototypeOf(o); +} +/** + * @typedef {import("./connection.js").default} Connection + */ + +var SASLAnonymous = /*#__PURE__*/function (_SASLMechanism) { + sasl_anon_inherits(SASLAnonymous, _SASLMechanism); + var _super = sasl_anon_createSuper(SASLAnonymous); /** - * Create an info message based on a received MUC status code - * @private - * @method _converse.ChatRoom#createInfoMessage - * @param { string } code - The MUC status code - * @param { Element } stanza - The original stanza that contains the code - * @param { Boolean } is_self - Whether this stanza refers to our own presence + * SASL ANONYMOUS authentication. */ - createInfoMessage: function createInfoMessage(code, stanza, is_self) { - var __ = shared_converse.__; - var data = { - 'type': 'info', - 'is_ephemeral': true - }; - if (!shared_converse.isInfoVisible(code)) { - return; + function SASLAnonymous() { + var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'ANONYMOUS'; + var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 20; + sasl_anon_classCallCheck(this, SASLAnonymous); + return _super.call(this, mechname, isClientFirst, priority); + } + + /** + * @param {Connection} connection + */ + // eslint-disable-next-line class-methods-use-this + sasl_anon_createClass(SASLAnonymous, [{ + key: "test", + value: function test(connection) { + return connection.authcid === null; } - if (code === '110' || code === '100' && !is_self) { - return; - } else if (code in shared_converse.muc.info_messages) { - data.message = shared_converse.muc.info_messages[code]; - } else if (!is_self && ACTION_INFO_CODES.includes(code)) { - var _item$querySelector3, _item$querySelector4; - var nick = Strophe.getResourceFromJid(stanza.getAttribute('from')); - var item = external_sizzle_default()("x[xmlns=\"".concat(Strophe.NS.MUC_USER, "\"] item"), stanza).pop(); - data.actor = item ? (_item$querySelector3 = item.querySelector('actor')) === null || _item$querySelector3 === void 0 ? void 0 : _item$querySelector3.getAttribute('nick') : undefined; - data.reason = item ? (_item$querySelector4 = item.querySelector('reason')) === null || _item$querySelector4 === void 0 ? void 0 : _item$querySelector4.textContent : undefined; - data.message = this.getActionInfoMessage(code, nick, data.actor); - } else if (is_self && code in shared_converse.muc.new_nickname_messages) { - // XXX: Side-effect of setting the nick. Should ideally be refactored out of this method - var _nick; - if (code === '210') { - _nick = Strophe.getResourceFromJid(stanza.getAttribute('from')); - } else if (code === '303') { - _nick = external_sizzle_default()("x[xmlns=\"".concat(Strophe.NS.MUC_USER, "\"] item"), stanza).pop().getAttribute('nick'); - } - this.save('nick', _nick); - data.message = __(shared_converse.muc.new_nickname_messages[code], _nick); + }]); + return SASLAnonymous; +}(sasl); +/* harmony default export */ const sasl_anon = (SASLAnonymous); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-external.js +function sasl_external_typeof(obj) { + "@babel/helpers - typeof"; + + return sasl_external_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, sasl_external_typeof(obj); +} +function sasl_external_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function sasl_external_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, sasl_external_toPropertyKey(descriptor.key), descriptor); + } +} +function sasl_external_createClass(Constructor, protoProps, staticProps) { + if (protoProps) sasl_external_defineProperties(Constructor.prototype, protoProps); + if (staticProps) sasl_external_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function sasl_external_toPropertyKey(arg) { + var key = sasl_external_toPrimitive(arg, "string"); + return sasl_external_typeof(key) === "symbol" ? key : String(key); +} +function sasl_external_toPrimitive(input, hint) { + if (sasl_external_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (sasl_external_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function sasl_external_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true } - if (data.message) { - if (code === '201' && this.messages.findWhere(data)) { - return; - } - this.createMessage(data); + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) sasl_external_setPrototypeOf(subClass, superClass); +} +function sasl_external_setPrototypeOf(o, p) { + sasl_external_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return sasl_external_setPrototypeOf(o, p); +} +function sasl_external_createSuper(Derived) { + var hasNativeReflectConstruct = sasl_external_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = sasl_external_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = sasl_external_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); } - }, + return sasl_external_possibleConstructorReturn(this, result); + }; +} +function sasl_external_possibleConstructorReturn(self, call) { + if (call && (sasl_external_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return sasl_external_assertThisInitialized(self); +} +function sasl_external_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} +function sasl_external_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} +function sasl_external_getPrototypeOf(o) { + sasl_external_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return sasl_external_getPrototypeOf(o); +} +/** + * @typedef {import("./connection.js").default} Connection + */ + + +var SASLExternal = /*#__PURE__*/function (_SASLMechanism) { + sasl_external_inherits(SASLExternal, _SASLMechanism); + var _super = sasl_external_createSuper(SASLExternal); /** - * Create info messages based on a received presence or message stanza - * @private - * @method _converse.ChatRoom#createInfoMessages - * @param { Element } stanza + * SASL EXTERNAL authentication. + * + * The EXTERNAL mechanism allows a client to request the server to use + * credentials established by means external to the mechanism to + * authenticate the client. The external means may be, for instance, + * TLS services. */ - createInfoMessages: function createInfoMessages(stanza) { - var _this47 = this; - var codes = external_sizzle_default()("x[xmlns=\"".concat(Strophe.NS.MUC_USER, "\"] status"), stanza).map(function (s) { - return s.getAttribute('code'); - }); - if (codes.includes('333') && codes.includes('307')) { - // See: https://github.com/xsf/xeps/pull/969/files#diff-ac5113766e59219806793c1f7d967f1bR4966 - codes.splice(codes.indexOf('307'), 1); + function SASLExternal() { + var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'EXTERNAL'; + var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10; + sasl_external_classCallCheck(this, SASLExternal); + return _super.call(this, mechname, isClientFirst, priority); + } + + /** + * @param {Connection} connection + */ + // eslint-disable-next-line class-methods-use-this + sasl_external_createClass(SASLExternal, [{ + key: "onChallenge", + value: function onChallenge(connection) { + /* According to XEP-178, an authzid SHOULD NOT be presented when the + * authcid contained or implied in the client certificate is the JID (i.e. + * authzid) with which the user wants to log in as. + * + * To NOT send the authzid, the user should therefore set the authcid equal + * to the JID when instantiating a new Strophe.Connection object. + */ + return connection.authcid === connection.authzid ? '' : connection.authzid; } - var is_self = codes.includes('110'); - codes.forEach(function (code) { - return _this47.createInfoMessage(code, stanza, is_self); - }); - }, + }]); + return SASLExternal; +}(sasl); +/* harmony default export */ const sasl_external = (SASLExternal); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-oauthbearer.js +function sasl_oauthbearer_typeof(obj) { + "@babel/helpers - typeof"; + + return sasl_oauthbearer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, sasl_oauthbearer_typeof(obj); +} +function sasl_oauthbearer_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function sasl_oauthbearer_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, sasl_oauthbearer_toPropertyKey(descriptor.key), descriptor); + } +} +function sasl_oauthbearer_createClass(Constructor, protoProps, staticProps) { + if (protoProps) sasl_oauthbearer_defineProperties(Constructor.prototype, protoProps); + if (staticProps) sasl_oauthbearer_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function sasl_oauthbearer_toPropertyKey(arg) { + var key = sasl_oauthbearer_toPrimitive(arg, "string"); + return sasl_oauthbearer_typeof(key) === "symbol" ? key : String(key); +} +function sasl_oauthbearer_toPrimitive(input, hint) { + if (sasl_oauthbearer_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (sasl_oauthbearer_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function sasl_oauthbearer_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) sasl_oauthbearer_setPrototypeOf(subClass, superClass); +} +function sasl_oauthbearer_setPrototypeOf(o, p) { + sasl_oauthbearer_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return sasl_oauthbearer_setPrototypeOf(o, p); +} +function sasl_oauthbearer_createSuper(Derived) { + var hasNativeReflectConstruct = sasl_oauthbearer_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = sasl_oauthbearer_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = sasl_oauthbearer_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return sasl_oauthbearer_possibleConstructorReturn(this, result); + }; +} +function sasl_oauthbearer_possibleConstructorReturn(self, call) { + if (call && (sasl_oauthbearer_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return sasl_oauthbearer_assertThisInitialized(self); +} +function sasl_oauthbearer_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} +function sasl_oauthbearer_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} +function sasl_oauthbearer_getPrototypeOf(o) { + sasl_oauthbearer_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return sasl_oauthbearer_getPrototypeOf(o); +} +/** + * @typedef {import("./connection.js").default} Connection + */ + + +var SASLOAuthBearer = /*#__PURE__*/function (_SASLMechanism) { + sasl_oauthbearer_inherits(SASLOAuthBearer, _SASLMechanism); + var _super = sasl_oauthbearer_createSuper(SASLOAuthBearer); /** - * Set parameters regarding disconnection from this room. This helps to - * communicate to the user why they were disconnected. - * @param { String } message - The disconnection message, as received from (or - * implied by) the server. - * @param { String } reason - The reason provided for the disconnection - * @param { String } actor - The person (if any) responsible for this disconnection - * @param { number } status - The status code (see `ROOMSTATUS`) + * SASL OAuth Bearer authentication. */ - setDisconnectionState: function setDisconnectionState(message, reason, actor) { - var status = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ROOMSTATUS.DISCONNECTED; - this.session.save({ - 'connection_status': status, - 'disconnection_actor': actor, - 'disconnection_message': message, - 'disconnection_reason': reason - }); - }, - onNicknameClash: function onNicknameClash(presence) { - var __ = shared_converse.__; - if (shared_api.settings.get('muc_nickname_from_jid')) { - var nick = presence.getAttribute('from').split('/')[1]; - if (nick === shared_converse.getDefaultMUCNickname()) { - this.join(nick + '-2'); - } else { - var del = nick.lastIndexOf('-'); - var num = nick.substring(del + 1, nick.length); - this.join(nick.substring(0, del + 1) + String(Number(num) + 1)); - } - } else { - this.save({ - 'nickname_validation_message': __('The nickname you chose is reserved or ' + 'currently in use, please choose a different one.') - }); - this.session.save({ - 'connection_status': ROOMSTATUS.NICKNAME_REQUIRED - }); - } - }, + function SASLOAuthBearer() { + var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'OAUTHBEARER'; + var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 40; + sasl_oauthbearer_classCallCheck(this, SASLOAuthBearer); + return _super.call(this, mechname, isClientFirst, priority); + } + /** - * Parses a stanza with type "error" and sets the proper - * `connection_status` value for this {@link _converse.ChatRoom} as - * well as any additional output that can be shown to the user. - * @private - * @param { Element } stanza - The presence stanza + * @param {Connection} connection */ - onErrorPresence: function onErrorPresence(stanza) { - var _sizzle$pop; - var __ = shared_converse.__; - var error = stanza.querySelector('error'); - var error_type = error.getAttribute('type'); - var reason = (_sizzle$pop = external_sizzle_default()("text[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), error).pop()) === null || _sizzle$pop === void 0 ? void 0 : _sizzle$pop.textContent; - if (error_type === 'modify') { - this.handleModifyError(stanza); - } else if (error_type === 'auth') { - if (external_sizzle_default()("not-authorized[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), error).length) { - this.save({ - 'password_validation_message': reason || __('Password incorrect') - }); - this.session.save({ - 'connection_status': ROOMSTATUS.PASSWORD_REQUIRED - }); - } - if (error.querySelector('registration-required')) { - var message = __('You are not on the member list of this groupchat.'); - this.setDisconnectionState(message, reason); - } else if (error.querySelector('forbidden')) { - this.setDisconnectionState(shared_converse.muc.disconnect_messages[301], reason, null, ROOMSTATUS.BANNED); - } - } else if (error_type === 'cancel') { - if (error.querySelector('not-allowed')) { - var _message4 = __('You are not allowed to create new groupchats.'); - this.setDisconnectionState(_message4, reason); - } else if (error.querySelector('not-acceptable')) { - var _message5 = __("Your nickname doesn't conform to this groupchat's policies."); - this.setDisconnectionState(_message5, reason); - } else if (external_sizzle_default()("gone[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), error).length) { - var _sizzle$pop2; - var moved_jid = (_sizzle$pop2 = external_sizzle_default()("gone[xmlns=\"".concat(Strophe.NS.STANZAS, "\"]"), error).pop()) === null || _sizzle$pop2 === void 0 ? void 0 : _sizzle$pop2.textContent.replace(/^xmpp:/, '').replace(/\?join$/, ''); - this.save({ - moved_jid: moved_jid, - 'destroyed_reason': reason - }); - this.session.save({ - 'connection_status': ROOMSTATUS.DESTROYED - }); - } else if (error.querySelector('conflict')) { - this.onNicknameClash(stanza); - } else if (error.querySelector('item-not-found')) { - var _message6 = __('This groupchat does not (yet) exist.'); - this.setDisconnectionState(_message6, reason); - } else if (error.querySelector('service-unavailable')) { - var _message7 = __('This groupchat has reached its maximum number of participants.'); - this.setDisconnectionState(_message7, reason); - } else if (error.querySelector('remote-server-not-found')) { - var _message8 = __('Remote server not found'); - this.setDisconnectionState(_message8, reason); - } else if (error.querySelector('forbidden')) { - var _message9 = __("You're not allowed to enter this groupchat"); - this.setDisconnectionState(_message9, reason); - } else { - var _message10 = __("An error happened while trying to enter this groupchat"); - this.setDisconnectionState(_message10, reason); - } + // eslint-disable-next-line class-methods-use-this + sasl_oauthbearer_createClass(SASLOAuthBearer, [{ + key: "test", + value: function test(connection) { + return connection.pass !== null; } - }, - /** - * Listens for incoming presence stanzas from the service that hosts this MUC - * @private - * @method _converse.ChatRoom#onPresenceFromMUCHost - * @param { Element } stanza - The presence stanza - */ - onPresenceFromMUCHost: function onPresenceFromMUCHost(stanza) { - if (stanza.getAttribute('type') === 'error') { - var error = stanza.querySelector('error'); - if ((error === null || error === void 0 ? void 0 : error.getAttribute('type')) === 'wait' && error !== null && error !== void 0 && error.querySelector('resource-constraint')) { - // If we get a error, we assume it's in context of XEP-0437 RAI. - // We remove this MUC's host from the list of enabled domains and rejoin the MUC. - if (this.session.get('connection_status') === ROOMSTATUS.DISCONNECTED) { - this.rejoin(); - } + + /** + * @param {Connection} connection + */ + // eslint-disable-next-line class-methods-use-this + }, { + key: "onChallenge", + value: function onChallenge(connection) { + var auth_str = 'n,'; + if (connection.authcid !== null) { + auth_str = auth_str + 'a=' + connection.authzid; } + auth_str = auth_str + ','; + auth_str = auth_str + "\x01"; + auth_str = auth_str + 'auth=Bearer '; + auth_str = auth_str + connection.pass; + auth_str = auth_str + "\x01"; + auth_str = auth_str + "\x01"; + return utils.utf16to8(auth_str); } - }, - /** - * Handles incoming presence stanzas coming from the MUC - * @private - * @method _converse.ChatRoom#onPresence - * @param { Element } stanza - */ - onPresence: function onPresence(stanza) { - if (stanza.getAttribute('type') === 'error') { - return this.onErrorPresence(stanza); + }]); + return SASLOAuthBearer; +}(sasl); +/* harmony default export */ const sasl_oauthbearer = (SASLOAuthBearer); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-plain.js +function sasl_plain_typeof(obj) { + "@babel/helpers - typeof"; + + return sasl_plain_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, sasl_plain_typeof(obj); +} +function sasl_plain_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function sasl_plain_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, sasl_plain_toPropertyKey(descriptor.key), descriptor); + } +} +function sasl_plain_createClass(Constructor, protoProps, staticProps) { + if (protoProps) sasl_plain_defineProperties(Constructor.prototype, protoProps); + if (staticProps) sasl_plain_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function sasl_plain_toPropertyKey(arg) { + var key = sasl_plain_toPrimitive(arg, "string"); + return sasl_plain_typeof(key) === "symbol" ? key : String(key); +} +function sasl_plain_toPrimitive(input, hint) { + if (sasl_plain_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (sasl_plain_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function sasl_plain_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true } - this.createInfoMessages(stanza); - if (stanza.querySelector("status[code='110']")) { - this.onOwnPresence(stanza); - if (this.getOwnRole() !== 'none' && this.session.get('connection_status') === ROOMSTATUS.CONNECTING) { - this.session.save('connection_status', ROOMSTATUS.CONNECTED); - } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) sasl_plain_setPrototypeOf(subClass, superClass); +} +function sasl_plain_setPrototypeOf(o, p) { + sasl_plain_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return sasl_plain_setPrototypeOf(o, p); +} +function sasl_plain_createSuper(Derived) { + var hasNativeReflectConstruct = sasl_plain_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = sasl_plain_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = sasl_plain_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); } else { - this.updateOccupantsOnPresence(stanza); + result = Super.apply(this, arguments); } - }, + return sasl_plain_possibleConstructorReturn(this, result); + }; +} +function sasl_plain_possibleConstructorReturn(self, call) { + if (call && (sasl_plain_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return sasl_plain_assertThisInitialized(self); +} +function sasl_plain_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} +function sasl_plain_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} +function sasl_plain_getPrototypeOf(o) { + sasl_plain_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return sasl_plain_getPrototypeOf(o); +} +/** + * @typedef {import("./connection.js").default} Connection + */ + + +var SASLPlain = /*#__PURE__*/function (_SASLMechanism) { + sasl_plain_inherits(SASLPlain, _SASLMechanism); + var _super = sasl_plain_createSuper(SASLPlain); /** - * Handles a received presence relating to the current user. - * - * For locked groupchats (which are by definition "new"), the - * groupchat will either be auto-configured or created instantly - * (with default config) or a configuration groupchat will be - * rendered. - * - * If the groupchat is not locked, then the groupchat will be - * auto-configured only if applicable and if the current - * user is the groupchat's owner. - * @private - * @method _converse.ChatRoom#onOwnPresence - * @param { Element } pres - The stanza + * SASL PLAIN authentication. */ - onOwnPresence: function onOwnPresence(stanza) { - var _this48 = this; - return muc_asyncToGenerator( /*#__PURE__*/muc_regeneratorRuntime().mark(function _callee35() { - var old_status, locked_room; - return muc_regeneratorRuntime().wrap(function _callee35$(_context35) { - while (1) switch (_context35.prev = _context35.next) { - case 0: - _context35.next = 2; - return _this48.occupants.fetched; - case 2: - if (!(stanza.getAttribute('type') === 'unavailable')) { - _context35.next = 5; - break; - } - _this48.handleDisconnection(stanza); - return _context35.abrupt("return"); - case 5: - old_status = _this48.session.get('connection_status'); - if (old_status !== ROOMSTATUS.ENTERED && old_status !== ROOMSTATUS.CLOSING) { - // Set connection_status before creating the occupant, but - // only trigger afterwards, so that plugins can access the - // occupant in their event handlers. - _this48.session.save('connection_status', ROOMSTATUS.ENTERED, { - 'silent': true - }); - _this48.updateOccupantsOnPresence(stanza); - _this48.session.trigger('change:connection_status', _this48.session, old_status); - } else { - _this48.updateOccupantsOnPresence(stanza); - } - locked_room = stanza.querySelector("status[code='201']"); - if (!locked_room) { - _context35.next = 20; - break; - } - if (!_this48.get('auto_configure')) { - _context35.next = 14; - break; - } - _context35.next = 12; - return _this48.autoConfigureChatRoom().then(function () { - return _this48.refreshDiscoInfo(); - }); - case 12: - _context35.next = 20; - break; - case 14: - if (!shared_api.settings.get('muc_instant_rooms')) { - _context35.next = 19; - break; - } - _context35.next = 17; - return _this48.sendConfiguration().then(function () { - return _this48.refreshDiscoInfo(); - }); - case 17: - _context35.next = 20; - break; - case 19: - _this48.session.save({ - 'view': public_converse.MUC.VIEWS.CONFIG - }); - case 20: - case "end": - return _context35.stop(); - } - }, _callee35); - }))(); - }, + function SASLPlain() { + var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'PLAIN'; + var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 50; + sasl_plain_classCallCheck(this, SASLPlain); + return _super.call(this, mechname, isClientFirst, priority); + } + /** - * Returns a boolean to indicate whether the current user - * was mentioned in a message. - * @private - * @method _converse.ChatRoom#isUserMentioned - * @param { String } - The text message + * @param {Connection} connection */ - isUserMentioned: function isUserMentioned(message) { - var nick = this.get('nick'); - if (message.get('references').length) { - var mentions = message.get('references').filter(function (ref) { - return ref.type === 'mention'; - }).map(function (ref) { - return ref.value; - }); - return mentions.includes(nick); - } else { - return new RegExp("\\b".concat(nick, "\\b")).test(message.get('body')); + // eslint-disable-next-line class-methods-use-this + sasl_plain_createClass(SASLPlain, [{ + key: "test", + value: function test(connection) { + return connection.authcid !== null; } - }, - incrementUnreadMsgsCounter: function incrementUnreadMsgsCounter(message) { - var settings = { - 'num_unread_general': this.get('num_unread_general') + 1 - }; - if (this.get('num_unread_general') === 0) { - settings['first_unread_id'] = message.get('id'); + + /** + * @param {Connection} connection + */ + // eslint-disable-next-line class-methods-use-this + }, { + key: "onChallenge", + value: function onChallenge(connection) { + var authcid = connection.authcid, + authzid = connection.authzid, + domain = connection.domain, + pass = connection.pass; + if (!domain) { + throw new Error('SASLPlain onChallenge: domain is not defined!'); + } + // Only include authzid if it differs from authcid. + // See: https://tools.ietf.org/html/rfc6120#section-6.3.8 + var auth_str = authzid !== "".concat(authcid, "@").concat(domain) ? authzid : ''; + auth_str = auth_str + "\0"; + auth_str = auth_str + authcid; + auth_str = auth_str + "\0"; + auth_str = auth_str + pass; + return utils.utf16to8(auth_str); } - if (this.isUserMentioned(message)) { - settings.num_unread = this.get('num_unread') + 1; + }]); + return SASLPlain; +}(sasl); +/* harmony default export */ const sasl_plain = (SASLPlain); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/scram.js +function scram_typeof(obj) { + "@babel/helpers - typeof"; + + return scram_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, scram_typeof(obj); +} +function scram_regeneratorRuntime() { + "use strict"; + + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + scram_regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + defineProperty = Object.defineProperty || function (obj, key, desc) { + obj[key] = desc.value; + }, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; + } + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return defineProperty(generator, "_invoke", { + value: makeInvokeMethod(innerFn, self, context) + }), generator; + } + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; } - this.save(settings); - }, - clearUnreadMsgCounter: function clearUnreadMsgCounter() { - if (this.get('num_unread_general') > 0 || this.get('num_unread') > 0 || this.get('has_activity')) { - this.sendMarkerForMessage(this.messages.last()); + } + exports.wrap = wrap; + var ContinueSentinel = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); + } + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == scram_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + reject(record.arg); } - safeSave(this, { - 'has_activity': false, - 'num_unread': 0, - 'num_unread_general': 0 + var previousPromise; + defineProperty(this, "_invoke", { + value: function value(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } }); } -}; -/* harmony default export */ const muc = (ChatRoomMixin); -;// CONCATENATED MODULE: ./src/headless/plugins/muc/occupant.js -function occupant_typeof(obj) { - "@babel/helpers - typeof"; - - return occupant_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, occupant_typeof(obj); -} -function occupant_classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); + function makeInvokeMethod(innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } + }; } -} -function occupant_defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, occupant_toPropertyKey(descriptor.key), descriptor); + function maybeInvokeDelegate(delegate, context) { + var methodName = context.method, + method = delegate.iterator[methodName]; + if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } -} -function occupant_createClass(Constructor, protoProps, staticProps) { - if (protoProps) occupant_defineProperties(Constructor.prototype, protoProps); - if (staticProps) occupant_defineProperties(Constructor, staticProps); - Object.defineProperty(Constructor, "prototype", { - writable: false - }); - return Constructor; -} -function occupant_toPropertyKey(arg) { - var key = occupant_toPrimitive(arg, "string"); - return occupant_typeof(key) === "symbol" ? key : String(key); -} -function occupant_toPrimitive(input, hint) { - if (occupant_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (occupant_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } - return (hint === "string" ? String : Number)(input); -} -function occupant_get() { - if (typeof Reflect !== "undefined" && Reflect.get) { - occupant_get = Reflect.get.bind(); - } else { - occupant_get = function _get(target, property, receiver) { - var base = occupant_superPropBase(target, property); - if (!base) return; - var desc = Object.getOwnPropertyDescriptor(base, property); - if (desc.get) { - return desc.get.call(arguments.length < 3 ? target : receiver); + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + return next.value = undefined, next.done = !0, next; + }; + return next.next = next; } - return desc.value; + } + return { + next: doneResult }; } - return occupant_get.apply(this, arguments); -} -function occupant_superPropBase(object, property) { - while (!Object.prototype.hasOwnProperty.call(object, property)) { - object = occupant_getPrototypeOf(object); - if (object === null) break; + function doneResult() { + return { + value: undefined, + done: !0 + }; } - return object; + return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), defineProperty(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; } -function occupant_inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); +function scram_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - Object.defineProperty(subClass, "prototype", { - writable: false - }); - if (superClass) occupant_setPrototypeOf(subClass, superClass); } -function occupant_setPrototypeOf(o, p) { - occupant_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; +function scram_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + scram_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + scram_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); }; - return occupant_setPrototypeOf(o, p); } -function occupant_createSuper(Derived) { - var hasNativeReflectConstruct = occupant_isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = occupant_getPrototypeOf(Derived), - result; - if (hasNativeReflectConstruct) { - var NewTarget = occupant_getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - return occupant_possibleConstructorReturn(this, result); - }; +/** + * @typedef {import("./connection.js").default} Connection + */ + + + +/** + * @param {string} authMessage + * @param {ArrayBufferLike} clientKey + * @param {string} hashName + */ +function scramClientProof(_x, _x2, _x3) { + return _scramClientProof.apply(this, arguments); } -function occupant_possibleConstructorReturn(self, call) { - if (call && (occupant_typeof(call) === "object" || typeof call === "function")) { - return call; - } else if (call !== void 0) { - throw new TypeError("Derived constructors may only return object or undefined"); - } - return occupant_assertThisInitialized(self); +/** + * This function parses the information in a SASL SCRAM challenge response, + * into an object of the form + * { nonce: String, + * salt: ArrayBuffer, + * iter: Int + * } + * Returns undefined on failure. + * @param {string} challenge + */ +function _scramClientProof() { + _scramClientProof = scram_asyncToGenerator( /*#__PURE__*/scram_regeneratorRuntime().mark(function _callee2(authMessage, clientKey, hashName) { + var storedKey, clientSignature; + return scram_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + _context2.t0 = crypto.subtle; + _context2.next = 3; + return crypto.subtle.digest(hashName, clientKey); + case 3: + _context2.t1 = _context2.sent; + _context2.t2 = { + 'name': 'HMAC', + 'hash': hashName + }; + _context2.t3 = ['sign']; + _context2.next = 8; + return _context2.t0.importKey.call(_context2.t0, 'raw', _context2.t1, _context2.t2, false, _context2.t3); + case 8: + storedKey = _context2.sent; + _context2.next = 11; + return crypto.subtle.sign('HMAC', storedKey, utils.stringToArrayBuf(authMessage)); + case 11: + clientSignature = _context2.sent; + return _context2.abrupt("return", utils.xorArrayBuffers(clientKey, clientSignature)); + case 13: + case "end": + return _context2.stop(); + } + }, _callee2); + })); + return _scramClientProof.apply(this, arguments); } -function occupant_assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); +function scramParseChallenge(challenge) { + var nonce, salt, iter; + var attribMatch = /([a-z]+)=([^,]+)(,|$)/; + while (challenge.match(attribMatch)) { + var matches = challenge.match(attribMatch); + challenge = challenge.replace(matches[0], ''); + switch (matches[1]) { + case 'r': + nonce = matches[2]; + break; + case 's': + salt = utils.base64ToArrayBuf(matches[2]); + break; + case 'i': + iter = parseInt(matches[2], 10); + break; + case 'm': + // Mandatory but unknown extension, per RFC 5802 we should abort + return undefined; + default: + // Non-mandatory extension, per RFC 5802 we should ignore it + break; + } } - return self; -} -function occupant_isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; + + // Consider iteration counts less than 4096 insecure, as reccommended by + // RFC 5802 + if (isNaN(iter) || iter < 4096) { + src_core.warn('Failing SCRAM authentication because server supplied iteration count < 4096.'); + return undefined; + } + if (!salt) { + src_core.warn('Failing SCRAM authentication because server supplied incorrect salt.'); + return undefined; } + return { + 'nonce': nonce, + 'salt': salt, + 'iter': iter + }; +} + +/** + * Derive the client and server keys given a string password, + * a hash name, and a bit length. + * Returns an object of the following form: + * { ck: ArrayBuffer, the client key + * sk: ArrayBuffer, the server key + * } + * @param {string} password + * @param {BufferSource} salt + * @param {number} iter + * @param {string} hashName + * @param {number} hashBits + */ +function scramDeriveKeys(_x4, _x5, _x6, _x7, _x8) { + return _scramDeriveKeys.apply(this, arguments); +} +/** + * @param {string} authMessage + * @param {BufferSource} sk + * @param {string} hashName + */ +function _scramDeriveKeys() { + _scramDeriveKeys = scram_asyncToGenerator( /*#__PURE__*/scram_regeneratorRuntime().mark(function _callee3(password, salt, iter, hashName, hashBits) { + var saltedPasswordBits, saltedPassword; + return scram_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + _context3.t0 = crypto.subtle; + _context3.t1 = { + 'name': 'PBKDF2', + 'salt': salt, + 'iterations': iter, + 'hash': { + 'name': hashName + } + }; + _context3.next = 4; + return crypto.subtle.importKey('raw', utils.stringToArrayBuf(password), 'PBKDF2', false, ['deriveBits']); + case 4: + _context3.t2 = _context3.sent; + _context3.t3 = hashBits; + _context3.next = 8; + return _context3.t0.deriveBits.call(_context3.t0, _context3.t1, _context3.t2, _context3.t3); + case 8: + saltedPasswordBits = _context3.sent; + _context3.next = 11; + return crypto.subtle.importKey('raw', saltedPasswordBits, { + 'name': 'HMAC', + 'hash': hashName + }, false, ['sign']); + case 11: + saltedPassword = _context3.sent; + _context3.next = 14; + return crypto.subtle.sign('HMAC', saltedPassword, utils.stringToArrayBuf('Client Key')); + case 14: + _context3.t4 = _context3.sent; + _context3.next = 17; + return crypto.subtle.sign('HMAC', saltedPassword, utils.stringToArrayBuf('Server Key')); + case 17: + _context3.t5 = _context3.sent; + return _context3.abrupt("return", { + 'ck': _context3.t4, + 'sk': _context3.t5 + }); + case 19: + case "end": + return _context3.stop(); + } + }, _callee3); + })); + return _scramDeriveKeys.apply(this, arguments); } -function occupant_getPrototypeOf(o) { - occupant_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return occupant_getPrototypeOf(o); +function scramServerSign(_x9, _x10, _x11) { + return _scramServerSign.apply(this, arguments); +} +/** + * Generate an ASCII nonce (not containing the ',' character) + * @return {string} + */ +function _scramServerSign() { + _scramServerSign = scram_asyncToGenerator( /*#__PURE__*/scram_regeneratorRuntime().mark(function _callee4(authMessage, sk, hashName) { + var serverKey; + return scram_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return crypto.subtle.importKey('raw', sk, { + 'name': 'HMAC', + 'hash': hashName + }, false, ['sign']); + case 2: + serverKey = _context4.sent; + return _context4.abrupt("return", crypto.subtle.sign('HMAC', serverKey, utils.stringToArrayBuf(authMessage))); + case 4: + case "end": + return _context4.stop(); + } + }, _callee4); + })); + return _scramServerSign.apply(this, arguments); +} +function generate_cnonce() { + // generate 16 random bytes of nonce, base64 encoded + var bytes = new Uint8Array(16); + return utils.arrayBufToBase64(crypto.getRandomValues(bytes).buffer); } - /** - * Represents a participant in a MUC - * @class - * @namespace _converse.ChatRoomOccupant - * @memberOf _converse + * @typedef {Object} Password + * @property {string} Password.name + * @property {string} Password.ck + * @property {string} Password.sk + * @property {number} Password.iter + * @property {string} salt */ -var ChatRoomOccupant = /*#__PURE__*/function (_Model) { - occupant_inherits(ChatRoomOccupant, _Model); - var _super = occupant_createSuper(ChatRoomOccupant); - function ChatRoomOccupant() { - occupant_classCallCheck(this, ChatRoomOccupant); - return _super.apply(this, arguments); + +var scram = { + /** + * On success, sets + * connection_sasl_data["server-signature"] + * and + * connection._sasl_data.keys + * + * The server signature should be verified after this function completes.. + * + * On failure, returns connection._sasl_failure_cb(); + * @param {Connection} connection + * @param {string} challenge + * @param {string} hashName + * @param {number} hashBits + */ + scramResponse: function scramResponse(connection, challenge, hashName, hashBits) { + return scram_asyncToGenerator( /*#__PURE__*/scram_regeneratorRuntime().mark(function _callee() { + var cnonce, challengeData, clientKey, serverKey, pass, keys, ck, sk, clientFirstMessageBare, serverFirstMessage, clientFinalMessageBare, authMessage, clientProof, serverSignature; + return scram_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + cnonce = connection._sasl_data.cnonce; + challengeData = scramParseChallenge(challenge); // The RFC requires that we verify the (server) nonce has the client + // nonce as an initial substring. + if (!(!challengeData && (challengeData === null || challengeData === void 0 ? void 0 : challengeData.nonce.slice(0, cnonce.length)) !== cnonce)) { + _context.next = 6; + break; + } + src_core.warn('Failing SCRAM authentication because server supplied incorrect nonce.'); + connection._sasl_data = {}; + return _context.abrupt("return", connection._sasl_failure_cb()); + case 6: + pass = connection.pass; + if (!(typeof connection.pass === 'string' || connection.pass instanceof String)) { + _context.next = 15; + break; + } + _context.next = 10; + return scramDeriveKeys( /** @type {string} */pass, challengeData.salt, challengeData.iter, hashName, hashBits); + case 10: + keys = _context.sent; + clientKey = keys.ck; + serverKey = keys.sk; + _context.next = 22; + break; + case 15: + if (!( + // Either restore the client key and server key passed in, or derive new ones + /** @type {Password} */ + (pass === null || pass === void 0 ? void 0 : pass.name) === hashName && /** @type {Password} */(pass === null || pass === void 0 ? void 0 : pass.salt) === utils.arrayBufToBase64(challengeData.salt) && /** @type {Password} */(pass === null || pass === void 0 ? void 0 : pass.iter) === challengeData.iter)) { + _context.next = 21; + break; + } + ck = /** @type {Password} */pass.ck, sk = /** @type {Password} */pass.sk; + clientKey = utils.base64ToArrayBuf(ck); + serverKey = utils.base64ToArrayBuf(sk); + _context.next = 22; + break; + case 21: + return _context.abrupt("return", connection._sasl_failure_cb()); + case 22: + clientFirstMessageBare = connection._sasl_data['client-first-message-bare']; + serverFirstMessage = challenge; + clientFinalMessageBare = "c=biws,r=".concat(challengeData.nonce); + authMessage = "".concat(clientFirstMessageBare, ",").concat(serverFirstMessage, ",").concat(clientFinalMessageBare); + _context.next = 28; + return scramClientProof(authMessage, clientKey, hashName); + case 28: + clientProof = _context.sent; + _context.next = 31; + return scramServerSign(authMessage, serverKey, hashName); + case 31: + serverSignature = _context.sent; + connection._sasl_data['server-signature'] = utils.arrayBufToBase64(serverSignature); + connection._sasl_data.keys = { + 'name': hashName, + 'iter': challengeData.iter, + 'salt': utils.arrayBufToBase64(challengeData.salt), + 'ck': utils.arrayBufToBase64(clientKey), + 'sk': utils.arrayBufToBase64(serverKey) + }; + return _context.abrupt("return", "".concat(clientFinalMessageBare, ",p=").concat(utils.arrayBufToBase64(clientProof))); + case 35: + case "end": + return _context.stop(); + } + }, _callee); + }))(); + }, + /** + * Returns a string containing the client first message + * @param {Connection} connection + * @param {string} test_cnonce + */ + clientChallenge: function clientChallenge(connection, test_cnonce) { + var cnonce = test_cnonce || generate_cnonce(); + var client_first_message_bare = "n=".concat(connection.authcid, ",r=").concat(cnonce); + connection._sasl_data.cnonce = cnonce; + connection._sasl_data['client-first-message-bare'] = client_first_message_bare; + return "n,,".concat(client_first_message_bare); } - occupant_createClass(ChatRoomOccupant, [{ - key: "defaults", - value: function defaults() { - // eslint-disable-line class-methods-use-this - return { - hats: [], - show: 'offline', - states: [] - }; - } - }, { - key: "save", - value: function save(key, val, options) { - var attrs; - if (key == null) { - // eslint-disable-line no-eq-null - return occupant_get(occupant_getPrototypeOf(ChatRoomOccupant.prototype), "save", this).call(this, key, val, options); - } else if (occupant_typeof(key) === 'object') { - attrs = key; - options = val; - } else { - (attrs = {})[key] = val; - } - if (attrs.occupant_id) { - attrs.id = attrs.occupant_id; - } - return occupant_get(occupant_getPrototypeOf(ChatRoomOccupant.prototype), "save", this).call(this, attrs, options); - } - }, { - key: "getDisplayName", - value: function getDisplayName() { - return this.get('nick') || this.get('jid'); - } - }, { - key: "isMember", - value: function isMember() { - return ['admin', 'owner', 'member'].includes(this.get('affiliation')); - } - }, { - key: "isModerator", - value: function isModerator() { - return ['admin', 'owner'].includes(this.get('affiliation')) || this.get('role') === 'moderator'; - } - }, { - key: "isSelf", - value: function isSelf() { - return this.get('states').includes('110'); - } - }]); - return ChatRoomOccupant; -}(Model); -/* harmony default export */ const occupant = (ChatRoomOccupant); -;// CONCATENATED MODULE: ./src/headless/plugins/muc/utils.js -function muc_utils_typeof(obj) { +}; + +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-sha1.js +function sasl_sha1_typeof(obj) { "@babel/helpers - typeof"; - return muc_utils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return sasl_sha1_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, muc_utils_typeof(obj); -} -function utils_ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - enumerableOnly && (symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - })), keys.push.apply(keys, symbols); - } - return keys; -} -function utils_objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = null != arguments[i] ? arguments[i] : {}; - i % 2 ? utils_ownKeys(Object(source), !0).forEach(function (key) { - utils_defineProperty(target, key, source[key]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : utils_ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - return target; -} -function utils_defineProperty(obj, key, value) { - key = utils_toPropertyKey(key); - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; -} -function utils_toPropertyKey(arg) { - var key = utils_toPrimitive(arg, "string"); - return muc_utils_typeof(key) === "symbol" ? key : String(key); -} -function utils_toPrimitive(input, hint) { - if (muc_utils_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (muc_utils_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); + }, sasl_sha1_typeof(obj); } -function muc_utils_regeneratorRuntime() { +function sasl_sha1_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - muc_utils_regeneratorRuntime = function _regeneratorRuntime() { + sasl_sha1_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -52901,7 +52429,7 @@ function muc_utils_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == muc_utils_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == sasl_sha1_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -53088,430 +52616,264 @@ function muc_utils_regeneratorRuntime() { var finallyEntry = entry; break; } - } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; - } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; - } - }, exports; -} -function muc_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} -function muc_utils_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - muc_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - muc_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); - }); - }; -} - - - - - -var muc_utils_converse$env = public_converse.env, - muc_utils_Strophe = muc_utils_converse$env.Strophe, - utils_sizzle = muc_utils_converse$env.sizzle, - muc_utils_u = muc_utils_converse$env.u; -function getAutoFetchedAffiliationLists() { - var affs = shared_api.settings.get('muc_fetch_members'); - return Array.isArray(affs) ? affs : affs ? ['member', 'admin', 'owner'] : []; -} - -/** - * Given an occupant model, see which roles may be assigned to that user. - * @param { Model } occupant - * @returns { Array<('moderator'|'participant'|'visitor')> } - An array of assignable roles - */ -function getAssignableRoles(occupant) { - var disabled = shared_api.settings.get('modtools_disable_assign'); - if (!Array.isArray(disabled)) { - disabled = disabled ? ROLES : []; - } - if (occupant.get('role') === 'moderator') { - return ROLES.filter(function (r) { - return !disabled.includes(r); - }); - } else { - return []; - } -} -function registerDirectInvitationHandler() { - shared_converse.connection.addHandler(function (message) { - shared_converse.onDirectMUCInvitation(message); - return true; - }, 'jabber:x:conference', 'message'); -} -function disconnectChatRooms() { - /* When disconnecting, mark all groupchats as - * disconnected, so that they will be properly entered again - * when fetched from session storage. - */ - return shared_converse.chatboxes.filter(function (m) { - return m.get('type') === shared_converse.CHATROOMS_TYPE; - }).forEach(function (m) { - return m.session.save({ - 'connection_status': public_converse.ROOMSTATUS.DISCONNECTED - }); - }); -} -function onWindowStateChanged(_x) { - return _onWindowStateChanged.apply(this, arguments); -} -function _onWindowStateChanged() { - _onWindowStateChanged = muc_utils_asyncToGenerator( /*#__PURE__*/muc_utils_regeneratorRuntime().mark(function _callee2(data) { - var rooms; - return muc_utils_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - if (!(data.state === 'visible' && shared_api.connection.connected())) { - _context2.next = 5; - break; - } - _context2.next = 3; - return shared_api.rooms.get(); - case 3: - rooms = _context2.sent; - rooms.forEach(function (room) { - return room.rejoinIfNecessary(); - }); - case 5: - case "end": - return _context2.stop(); - } - }, _callee2); - })); - return _onWindowStateChanged.apply(this, arguments); -} -function routeToRoom(_x2) { - return _routeToRoom.apply(this, arguments); -} - -/* Opens a groupchat, making sure that certain attributes - * are correct, for example that the "type" is set to - * "chatroom". - */ -function _routeToRoom() { - _routeToRoom = muc_utils_asyncToGenerator( /*#__PURE__*/muc_utils_regeneratorRuntime().mark(function _callee3(jid) { - return muc_utils_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - if (muc_utils_u.isValidMUCJID(jid)) { - _context3.next = 2; - break; - } - return _context3.abrupt("return", log.warn("invalid jid \"".concat(jid, "\" provided in url fragment"))); - case 2: - _context3.next = 4; - return shared_api.waitUntil('roomsAutoJoined'); - case 4: - if (!shared_api.settings.get('allow_bookmarks')) { - _context3.next = 7; - break; - } - _context3.next = 7; - return shared_api.waitUntil('bookmarksInitialized'); - case 7: - shared_api.rooms.open(jid); - case 8: - case "end": - return _context3.stop(); - } - }, _callee3); - })); - return _routeToRoom.apply(this, arguments); -} -function openChatRoom(_x3, _x4) { - return _openChatRoom.apply(this, arguments); -} - -/** - * A direct MUC invitation to join a groupchat has been received - * See XEP-0249: Direct MUC invitations. - * @private - * @method _converse.ChatRoom#onDirectMUCInvitation - * @param { Element } message - The message stanza containing the invitation. - */ -function _openChatRoom() { - _openChatRoom = muc_utils_asyncToGenerator( /*#__PURE__*/muc_utils_regeneratorRuntime().mark(function _callee4(jid, settings) { - var chatbox; - return muc_utils_regeneratorRuntime().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - settings.type = shared_converse.CHATROOMS_TYPE; - settings.id = jid; - _context4.next = 4; - return shared_api.rooms.get(jid, settings, true); - case 4: - chatbox = _context4.sent; - chatbox.maybeShow(true); - return _context4.abrupt("return", chatbox); - case 7: - case "end": - return _context4.stop(); - } - }, _callee4); - })); - return _openChatRoom.apply(this, arguments); -} -function onDirectMUCInvitation(_x5) { - return _onDirectMUCInvitation.apply(this, arguments); -} -function _onDirectMUCInvitation() { - _onDirectMUCInvitation = muc_utils_asyncToGenerator( /*#__PURE__*/muc_utils_regeneratorRuntime().mark(function _callee5(message) { - var x_el, from, room_jid, reason, result, _converse$roster$get$, _converse$roster$get, contact, chatroom; - return muc_utils_regeneratorRuntime().wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - x_el = utils_sizzle('x[xmlns="jabber:x:conference"]', message).pop(), from = muc_utils_Strophe.getBareJidFromJid(message.getAttribute('from')), room_jid = x_el.getAttribute('jid'), reason = x_el.getAttribute('reason'); - if (!shared_api.settings.get('auto_join_on_invite')) { - _context5.next = 5; - break; - } - result = true; - _context5.next = 9; - break; - case 5: - // Invite request might come from someone not your roster list - contact = (_converse$roster$get$ = (_converse$roster$get = shared_converse.roster.get(from)) === null || _converse$roster$get === void 0 ? void 0 : _converse$roster$get.getDisplayName()) !== null && _converse$roster$get$ !== void 0 ? _converse$roster$get$ : from; - /** - * *Hook* which is used to gather confirmation whether a direct MUC - * invitation should be accepted or not. - * - * It's meant for consumers of `@converse/headless` to subscribe to - * this hook and then ask the user to confirm. - * - * @event _converse#confirmDirectMUCInvitation - */ - _context5.next = 8; - return shared_api.hook('confirmDirectMUCInvitation', { - contact: contact, - reason: reason, - jid: room_jid - }, false); - case 8: - result = _context5.sent; - case 9: - if (!result) { - _context5.next = 14; - break; - } - _context5.next = 12; - return openChatRoom(room_jid, { - 'password': x_el.getAttribute('password') - }); - case 12: - chatroom = _context5.sent; - if (chatroom.session.get('connection_status') === public_converse.ROOMSTATUS.DISCONNECTED) { - shared_converse.chatboxes.get(room_jid).rejoin(); + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); } - case 14: - case "end": - return _context5.stop(); + return thrown; + } } - }, _callee5); - })); - return _onDirectMUCInvitation.apply(this, arguments); + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; } -function getDefaultMUCNickname() { - // XXX: if anything changes here, update the docs for the - // locked_muc_nickname setting. - if (!shared_converse.xmppstatus) { - throw new Error("Can't call _converse.getDefaultMUCNickname before the statusInitialized has been fired."); +function sasl_sha1_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; } - var nick = shared_converse.xmppstatus.getNickname(); - if (nick) { - return nick; - } else if (shared_api.settings.get('muc_nickname_from_jid')) { - return muc_utils_Strophe.unescapeNode(muc_utils_Strophe.getNodeFromJid(shared_converse.bare_jid)); + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); } } - -/** - * Determines info message visibility based on - * muc_show_info_messages configuration setting - * @param {*} code - * @memberOf _converse - */ -function isInfoVisible(code) { - var info_messages = shared_api.settings.get('muc_show_info_messages'); - if (info_messages.includes(code)) { - return true; +function sasl_sha1_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + sasl_sha1_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + sasl_sha1_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); + }; +} +function sasl_sha1_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); } - return false; } - -/** - * Automatically join groupchats, based on the - * "auto_join_rooms" configuration setting, which is an array - * of strings (groupchat JIDs) or objects (with groupchat JID and other settings). - */ -function autoJoinRooms() { - return _autoJoinRooms.apply(this, arguments); +function sasl_sha1_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, sasl_sha1_toPropertyKey(descriptor.key), descriptor); + } } -function _autoJoinRooms() { - _autoJoinRooms = muc_utils_asyncToGenerator( /*#__PURE__*/muc_utils_regeneratorRuntime().mark(function _callee6() { - return muc_utils_regeneratorRuntime().wrap(function _callee6$(_context6) { - while (1) switch (_context6.prev = _context6.next) { - case 0: - _context6.next = 2; - return Promise.all(shared_api.settings.get('auto_join_rooms').map(function (muc) { - if (typeof muc === 'string') { - if (shared_converse.chatboxes.where({ - 'jid': muc - }).length) { - return Promise.resolve(); - } - return shared_api.rooms.open(muc); - } else if (lodash_es_isObject(muc)) { - return shared_api.rooms.open(muc.jid, utils_objectSpread({}, muc)); - } else { - log.error('Invalid muc criteria specified for "auto_join_rooms"'); - return Promise.resolve(); - } - })); - case 2: - /** - * Triggered once any rooms that have been configured to be automatically joined, - * specified via the _`auto_join_rooms` setting, have been entered. - * @event _converse#roomsAutoJoined - * @example _converse.api.listen.on('roomsAutoJoined', () => { ... }); - * @example _converse.api.waitUntil('roomsAutoJoined').then(() => { ... }); - */ - shared_api.trigger('roomsAutoJoined'); - case 3: - case "end": - return _context6.stop(); - } - }, _callee6); - })); - return _autoJoinRooms.apply(this, arguments); +function sasl_sha1_createClass(Constructor, protoProps, staticProps) { + if (protoProps) sasl_sha1_defineProperties(Constructor.prototype, protoProps); + if (staticProps) sasl_sha1_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; } -function onAddClientFeatures() { - shared_api.disco.own.features.add(muc_utils_Strophe.NS.MUC); - if (shared_api.settings.get('allow_muc_invitations')) { - shared_api.disco.own.features.add('jabber:x:conference'); // Invites +function sasl_sha1_toPropertyKey(arg) { + var key = sasl_sha1_toPrimitive(arg, "string"); + return sasl_sha1_typeof(key) === "symbol" ? key : String(key); +} +function sasl_sha1_toPrimitive(input, hint) { + if (sasl_sha1_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (sasl_sha1_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); } + return (hint === "string" ? String : Number)(input); } - -function onBeforeTearDown() { - shared_converse.chatboxes.where({ - 'type': shared_converse.CHATROOMS_TYPE - }).forEach(function (muc) { - return safeSave(muc.session, { - 'connection_status': public_converse.ROOMSTATUS.DISCONNECTED - }); +function sasl_sha1_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false }); + if (superClass) sasl_sha1_setPrototypeOf(subClass, superClass); } -function onStatusInitialized() { - window.addEventListener(shared_converse.unloadevent, function () { - var using_websocket = shared_api.connection.isType('websocket'); - if (using_websocket && (!shared_api.settings.get('enable_smacks') || !shared_converse.session.get('smacks_stream_id'))) { - // For non-SMACKS websocket connections, or non-resumeable - // connections, we disconnect all chatrooms when the page unloads. - // See issue #1111 - disconnectChatRooms(); +function sasl_sha1_setPrototypeOf(o, p) { + sasl_sha1_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return sasl_sha1_setPrototypeOf(o, p); +} +function sasl_sha1_createSuper(Derived) { + var hasNativeReflectConstruct = sasl_sha1_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = sasl_sha1_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = sasl_sha1_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); } - }); + return sasl_sha1_possibleConstructorReturn(this, result); + }; } -function onBeforeResourceBinding() { - shared_converse.connection.addHandler(function (stanza) { - var muc_jid = muc_utils_Strophe.getBareJidFromJid(stanza.getAttribute('from')); - if (!shared_converse.chatboxes.get(muc_jid)) { - shared_api.waitUntil('chatBoxesFetched').then( /*#__PURE__*/muc_utils_asyncToGenerator( /*#__PURE__*/muc_utils_regeneratorRuntime().mark(function _callee() { - var muc; - return muc_utils_regeneratorRuntime().wrap(function _callee$(_context) { +function sasl_sha1_possibleConstructorReturn(self, call) { + if (call && (sasl_sha1_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return sasl_sha1_assertThisInitialized(self); +} +function sasl_sha1_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} +function sasl_sha1_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} +function sasl_sha1_getPrototypeOf(o) { + sasl_sha1_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return sasl_sha1_getPrototypeOf(o); +} +/** + * @typedef {import("./connection.js").default} Connection + */ + + +var SASLSHA1 = /*#__PURE__*/function (_SASLMechanism) { + sasl_sha1_inherits(SASLSHA1, _SASLMechanism); + var _super = sasl_sha1_createSuper(SASLSHA1); + /** + * SASL SCRAM SHA 1 authentication. + */ + function SASLSHA1() { + var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'SCRAM-SHA-1'; + var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60; + sasl_sha1_classCallCheck(this, SASLSHA1); + return _super.call(this, mechname, isClientFirst, priority); + } + + /** + * @param {Connection} connection + */ + // eslint-disable-next-line class-methods-use-this + sasl_sha1_createClass(SASLSHA1, [{ + key: "test", + value: function test(connection) { + return connection.authcid !== null; + } + + /** + * @param {Connection} connection + * @param {string} [challenge] + * @return {Promise} Mechanism response. + */ + // eslint-disable-next-line class-methods-use-this + }, { + key: "onChallenge", + value: function () { + var _onChallenge = sasl_sha1_asyncToGenerator( /*#__PURE__*/sasl_sha1_regeneratorRuntime().mark(function _callee(connection, challenge) { + return sasl_sha1_regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: - muc = shared_converse.chatboxes.get(muc_jid); - if (!muc) { - _context.next = 5; - break; - } - _context.next = 4; - return muc.initialized; - case 4: - muc.message_handler.run(stanza); - case 5: + _context.next = 2; + return scram.scramResponse(connection, challenge, 'SHA-1', 160); + case 2: + return _context.abrupt("return", _context.sent); + case 3: case "end": return _context.stop(); } }, _callee); - }))); + })); + function onChallenge(_x, _x2) { + return _onChallenge.apply(this, arguments); + } + return onChallenge; + }() + /** + * @param {Connection} connection + * @param {string} [test_cnonce] + */ + // eslint-disable-next-line class-methods-use-this + }, { + key: "clientChallenge", + value: function clientChallenge(connection, test_cnonce) { + return scram.clientChallenge(connection, test_cnonce); } - return true; - }, null, 'message', 'groupchat'); -} -Object.assign(shared_converse, { - getAssignableRoles: getAssignableRoles -}); -;// CONCATENATED MODULE: ./src/headless/plugins/muc/occupants.js -function occupants_typeof(obj) { + }]); + return SASLSHA1; +}(sasl); +/* harmony default export */ const sasl_sha1 = (SASLSHA1); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-sha256.js +function sasl_sha256_typeof(obj) { "@babel/helpers - typeof"; - return occupants_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return sasl_sha256_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, occupants_typeof(obj); + }, sasl_sha256_typeof(obj); } -function occupants_regeneratorRuntime() { +function sasl_sha256_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - occupants_regeneratorRuntime = function _regeneratorRuntime() { + sasl_sha256_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -53586,7 +52948,7 @@ function occupants_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == occupants_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == sasl_sha256_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -53811,32 +53173,7 @@ function occupants_regeneratorRuntime() { } }, exports; } -function occupants_toConsumableArray(arr) { - return occupants_arrayWithoutHoles(arr) || occupants_iterableToArray(arr) || occupants_unsupportedIterableToArray(arr) || occupants_nonIterableSpread(); -} -function occupants_nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} -function occupants_unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return occupants_arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return occupants_arrayLikeToArray(o, minLen); -} -function occupants_iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); -} -function occupants_arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return occupants_arrayLikeToArray(arr); -} -function occupants_arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; -} -function occupants_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { +function sasl_sha256_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; @@ -53850,68 +53187,59 @@ function occupants_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, Promise.resolve(value).then(_next, _throw); } } -function occupants_asyncToGenerator(fn) { +function sasl_sha256_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { - occupants_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + sasl_sha256_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { - occupants_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + sasl_sha256_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -function occupants_classCallCheck(instance, Constructor) { +function sasl_sha256_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function occupants_defineProperties(target, props) { +function sasl_sha256_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, occupants_toPropertyKey(descriptor.key), descriptor); + Object.defineProperty(target, sasl_sha256_toPropertyKey(descriptor.key), descriptor); } } -function occupants_createClass(Constructor, protoProps, staticProps) { - if (protoProps) occupants_defineProperties(Constructor.prototype, protoProps); - if (staticProps) occupants_defineProperties(Constructor, staticProps); +function sasl_sha256_createClass(Constructor, protoProps, staticProps) { + if (protoProps) sasl_sha256_defineProperties(Constructor.prototype, protoProps); + if (staticProps) sasl_sha256_defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function occupants_get() { - if (typeof Reflect !== "undefined" && Reflect.get) { - occupants_get = Reflect.get.bind(); - } else { - occupants_get = function _get(target, property, receiver) { - var base = occupants_superPropBase(target, property); - if (!base) return; - var desc = Object.getOwnPropertyDescriptor(base, property); - if (desc.get) { - return desc.get.call(arguments.length < 3 ? target : receiver); - } - return desc.value; - }; - } - return occupants_get.apply(this, arguments); +function sasl_sha256_toPropertyKey(arg) { + var key = sasl_sha256_toPrimitive(arg, "string"); + return sasl_sha256_typeof(key) === "symbol" ? key : String(key); } -function occupants_superPropBase(object, property) { - while (!Object.prototype.hasOwnProperty.call(object, property)) { - object = occupants_getPrototypeOf(object); - if (object === null) break; +function sasl_sha256_toPrimitive(input, hint) { + if (sasl_sha256_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (sasl_sha256_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); } - return object; + return (hint === "string" ? String : Number)(input); } -function occupants_inherits(subClass, superClass) { +function sasl_sha256_inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } @@ -53925,44 +53253,44 @@ function occupants_inherits(subClass, superClass) { Object.defineProperty(subClass, "prototype", { writable: false }); - if (superClass) occupants_setPrototypeOf(subClass, superClass); + if (superClass) sasl_sha256_setPrototypeOf(subClass, superClass); } -function occupants_setPrototypeOf(o, p) { - occupants_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { +function sasl_sha256_setPrototypeOf(o, p) { + sasl_sha256_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; - return occupants_setPrototypeOf(o, p); + return sasl_sha256_setPrototypeOf(o, p); } -function occupants_createSuper(Derived) { - var hasNativeReflectConstruct = occupants_isNativeReflectConstruct(); +function sasl_sha256_createSuper(Derived) { + var hasNativeReflectConstruct = sasl_sha256_isNativeReflectConstruct(); return function _createSuperInternal() { - var Super = occupants_getPrototypeOf(Derived), + var Super = sasl_sha256_getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { - var NewTarget = occupants_getPrototypeOf(this).constructor; + var NewTarget = sasl_sha256_getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } - return occupants_possibleConstructorReturn(this, result); + return sasl_sha256_possibleConstructorReturn(this, result); }; } -function occupants_possibleConstructorReturn(self, call) { - if (call && (occupants_typeof(call) === "object" || typeof call === "function")) { +function sasl_sha256_possibleConstructorReturn(self, call) { + if (call && (sasl_sha256_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } - return occupants_assertThisInitialized(self); + return sasl_sha256_assertThisInitialized(self); } -function occupants_assertThisInitialized(self) { +function sasl_sha256_assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function occupants_isNativeReflectConstruct() { +function sasl_sha256_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; @@ -53972,284 +53300,98 @@ function occupants_isNativeReflectConstruct() { } catch (e) { return false; } -} -function occupants_getPrototypeOf(o) { - occupants_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return occupants_getPrototypeOf(o); -} -function occupants_defineProperty(obj, key, value) { - key = occupants_toPropertyKey(key); - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; -} -function occupants_toPropertyKey(arg) { - var key = occupants_toPrimitive(arg, "string"); - return occupants_typeof(key) === "symbol" ? key : String(key); -} -function occupants_toPrimitive(input, hint) { - if (occupants_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (occupants_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); -} - - - - - - - - - -var occupants_u = public_converse.env.u; - -/** - * A list of {@link _converse.ChatRoomOccupant} instances, representing participants in a MUC. - * @class - * @namespace _converse.ChatRoomOccupants - * @memberOf _converse - */ -var ChatRoomOccupants = /*#__PURE__*/function (_Collection) { - occupants_inherits(ChatRoomOccupants, _Collection); - var _super = occupants_createSuper(ChatRoomOccupants); - function ChatRoomOccupants() { - var _this; - occupants_classCallCheck(this, ChatRoomOccupants); - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - _this = _super.call.apply(_super, [this].concat(args)); - occupants_defineProperty(occupants_assertThisInitialized(_this), "model", occupant); - return _this; +} +function sasl_sha256_getPrototypeOf(o) { + sasl_sha256_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return sasl_sha256_getPrototypeOf(o); +} +/** + * @typedef {import("./connection.js").default} Connection + */ + + +var SASLSHA256 = /*#__PURE__*/function (_SASLMechanism) { + sasl_sha256_inherits(SASLSHA256, _SASLMechanism); + var _super = sasl_sha256_createSuper(SASLSHA256); + /** + * SASL SCRAM SHA 256 authentication. + */ + function SASLSHA256() { + var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'SCRAM-SHA-256'; + var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 70; + sasl_sha256_classCallCheck(this, SASLSHA256); + return _super.call(this, mechname, isClientFirst, priority); } - occupants_createClass(ChatRoomOccupants, [{ - key: "comparator", - value: function comparator(occupant1, occupant2) { - // eslint-disable-line class-methods-use-this - var role1 = occupant1.get('role') || 'none'; - var role2 = occupant2.get('role') || 'none'; - if (MUC_ROLE_WEIGHTS[role1] === MUC_ROLE_WEIGHTS[role2]) { - var nick1 = occupant1.getDisplayName().toLowerCase(); - var nick2 = occupant2.getDisplayName().toLowerCase(); - return nick1 < nick2 ? -1 : nick1 > nick2 ? 1 : 0; - } else { - return MUC_ROLE_WEIGHTS[role1] < MUC_ROLE_WEIGHTS[role2] ? -1 : 1; - } - } - }, { - key: "create", - value: function create(attrs, options) { - if (attrs.id || attrs instanceof Model) { - return occupants_get(occupants_getPrototypeOf(ChatRoomOccupants.prototype), "create", this).call(this, attrs, options); - } - attrs.id = attrs.occupant_id || getUniqueId(); - return occupants_get(occupants_getPrototypeOf(ChatRoomOccupants.prototype), "create", this).call(this, attrs, options); + + /** + * @param {Connection} connection + */ + // eslint-disable-next-line class-methods-use-this + sasl_sha256_createClass(SASLSHA256, [{ + key: "test", + value: function test(connection) { + return connection.authcid !== null; } + + /** + * @param {Connection} connection + * @param {string} [challenge] + */ + // eslint-disable-next-line class-methods-use-this }, { - key: "fetchMembers", + key: "onChallenge", value: function () { - var _fetchMembers = occupants_asyncToGenerator( /*#__PURE__*/occupants_regeneratorRuntime().mark(function _callee() { - var _this$getOwnOccupant, - _this2 = this; - var affiliations, muc_jid, aff_lists, new_members, known_affiliations, new_jids, new_nicks, removed_members; - return occupants_regeneratorRuntime().wrap(function _callee$(_context) { + var _onChallenge = sasl_sha256_asyncToGenerator( /*#__PURE__*/sasl_sha256_regeneratorRuntime().mark(function _callee(connection, challenge) { + return sasl_sha256_regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: - if (['member', 'admin', 'owner'].includes((_this$getOwnOccupant = this.getOwnOccupant()) === null || _this$getOwnOccupant === void 0 ? void 0 : _this$getOwnOccupant.get('affiliation'))) { - _context.next = 2; - break; - } - return _context.abrupt("return"); + _context.next = 2; + return scram.scramResponse(connection, challenge, 'SHA-256', 256); case 2: - affiliations = getAutoFetchedAffiliationLists(); - if (!(affiliations.length === 0)) { - _context.next = 5; - break; - } - return _context.abrupt("return"); - case 5: - muc_jid = this.chatroom.get('jid'); - _context.next = 8; - return Promise.all(affiliations.map(function (a) { - return getAffiliationList(a, muc_jid); - })); - case 8: - aff_lists = _context.sent; - new_members = aff_lists.reduce(function (acc, val) { - return occupants_u.isErrorObject(val) ? acc : [].concat(occupants_toConsumableArray(val), occupants_toConsumableArray(acc)); - }, []); - known_affiliations = affiliations.filter(function (a) { - return !occupants_u.isErrorObject(aff_lists[affiliations.indexOf(a)]); - }); - new_jids = new_members.map(function (m) { - return m.jid; - }).filter(function (m) { - return m !== undefined; - }); - new_nicks = new_members.map(function (m) { - return !m.jid && m.nick || undefined; - }).filter(function (m) { - return m !== undefined; - }); - removed_members = this.filter(function (m) { - return known_affiliations.includes(m.get('affiliation')) && !new_nicks.includes(m.get('nick')) && !new_jids.includes(m.get('jid')); - }); - removed_members.forEach(function (occupant) { - if (occupant.get('jid') === shared_converse.bare_jid) { - return; - } else if (occupant.get('show') === 'offline') { - occupant.destroy(); - } else { - occupant.save('affiliation', null); - } - }); - new_members.forEach(function (attrs) { - var occupant = _this2.findOccupant(attrs); - occupant ? occupant.save(attrs) : _this2.create(attrs); - }); - /** - * Triggered once the member lists for this MUC have been fetched and processed. - * @event _converse#membersFetched - * @example _converse.api.listen.on('membersFetched', () => { ... }); - */ - shared_api.trigger('membersFetched'); - case 17: + return _context.abrupt("return", _context.sent); + case 3: case "end": return _context.stop(); } - }, _callee, this); + }, _callee); })); - function fetchMembers() { - return _fetchMembers.apply(this, arguments); + function onChallenge(_x, _x2) { + return _onChallenge.apply(this, arguments); } - return fetchMembers; + return onChallenge; }() /** - * @typedef { Object} OccupantData - * @property { String } [jid] - * @property { String } [nick] - * @property { String } [occupant_id] - The XEP-0421 unique occupant id - */ - /** - * Try to find an existing occupant based on the provided - * @link { OccupantData } object. - * - * Fetching the user by `occupant_id` is the quickest, O(1), - * since it's a dictionary lookup. - * - * Fetching by jid or nick is O(n), since it requires traversing an array. - * - * Lookup by occupant_id is done first, then jid, and then nick. - * - * @method _converse.ChatRoomOccupants#findOccupant - * @param { OccupantData } data - */ - }, { - key: "findOccupant", - value: function findOccupant(data) { - if (data.occupant_id) { - return this.get(data.occupant_id); - } - var jid = data.jid && Strophe.getBareJidFromJid(data.jid); - return jid && this.findWhere({ - jid: jid - }) || data.nick && this.findWhere({ - 'nick': data.nick - }); - } - - /** - * Get the {@link _converse.ChatRoomOccupant} instance which - * represents the current user. - * @method _converse.ChatRoomOccupants#getOwnOccupant - * @returns { _converse.ChatRoomOccupant } + * @param {Connection} connection + * @param {string} [test_cnonce] */ + // eslint-disable-next-line class-methods-use-this }, { - key: "getOwnOccupant", - value: function getOwnOccupant() { - return this.findOccupant({ - 'jid': shared_converse.bare_jid, - 'occupant_id': this.chatroom.get('occupant_id') - }); + key: "clientChallenge", + value: function clientChallenge(connection, test_cnonce) { + return scram.clientChallenge(connection, test_cnonce); } }]); - return ChatRoomOccupants; -}(Collection); -/* harmony default export */ const occupants = (ChatRoomOccupants); -;// CONCATENATED MODULE: ./src/headless/plugins/muc/affiliations/api.js - -/* harmony default export */ const affiliations_api = ({ - /** - * The "affiliations" namespace groups methods relevant to setting and - * getting MUC affiliations. - * - * @namespace api.rooms.affiliations - * @memberOf api.rooms - */ - affiliations: { - /** - * Set the given affliation for the given JIDs in the specified MUCs - * - * @param { String|Array } muc_jids - The JIDs of the MUCs in - * which the affiliation should be set. - * @param { Object[] } users - An array of objects representing users - * for whom the affiliation is to be set. - * @param { String } users[].jid - The JID of the user whose affiliation will change - * @param { ('outcast'|'member'|'admin'|'owner') } users[].affiliation - The new affiliation for this user - * @param { String } [users[].reason] - An optional reason for the affiliation change - * @returns { Promise } - * - * @example - * api.rooms.affiliations.set( - * [ - * 'muc1@muc.example.org', - * 'muc2@muc.example.org' - * ], [ - * { - * 'jid': 'user@example.org', - * 'affiliation': 'member', - * 'reason': "You're one of us now!" - * } - * ] - * ) - */ - set: function set(muc_jids, users) { - users = !Array.isArray(users) ? [users] : users; - muc_jids = !Array.isArray(muc_jids) ? [muc_jids] : muc_jids; - return setAffiliations(muc_jids, users); - } - } -}); -;// CONCATENATED MODULE: ./src/headless/plugins/muc/api.js -function muc_api_typeof(obj) { + return SASLSHA256; +}(sasl); +/* harmony default export */ const sasl_sha256 = (SASLSHA256); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-sha384.js +function sasl_sha384_typeof(obj) { "@babel/helpers - typeof"; - return muc_api_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return sasl_sha384_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, muc_api_typeof(obj); + }, sasl_sha384_typeof(obj); } -function muc_api_regeneratorRuntime() { +function sasl_sha384_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - muc_api_regeneratorRuntime = function _regeneratorRuntime() { + sasl_sha384_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -54324,7 +53466,7 @@ function muc_api_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == muc_api_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == sasl_sha384_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -54455,622 +53597,319 @@ function muc_api_regeneratorRuntime() { }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; - } - return next.done = !0, next; - }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; - } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; - } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; - } - }, exports; -} -function muc_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} -function muc_api_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - muc_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - muc_api_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); - }); - }; -} - - - -var api_u = public_converse.env.u; -/* harmony default export */ const muc_api = ({ - /** - * The "rooms" namespace groups methods relevant to chatrooms - * (aka groupchats). - * - * @namespace api.rooms - * @memberOf api - */ - rooms: { - /** - * Creates a new MUC chatroom (aka groupchat) - * - * Similar to {@link api.rooms.open}, but creates - * the chatroom in the background (i.e. doesn't cause a view to open). - * - * @method api.rooms.create - * @param {(string[]|string)} jid|jids The JID or array of - * JIDs of the chatroom(s) to create - * @param { object } [attrs] attrs The room attributes - * @returns {Promise} Promise which resolves with the Model representing the chat. - */ - create: function create(jids) { - var attrs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - attrs = typeof attrs === 'string' ? { - 'nick': attrs - } : attrs || {}; - if (!attrs.nick && shared_api.settings.get('muc_nickname_from_jid')) { - attrs.nick = Strophe.getNodeFromJid(shared_converse.bare_jid); - } - if (jids === undefined) { - throw new TypeError('rooms.create: You need to provide at least one JID'); - } else if (typeof jids === 'string') { - return shared_api.rooms.get(api_u.getJIDFromURI(jids), attrs, true); - } - return jids.map(function (jid) { - return shared_api.rooms.get(api_u.getJIDFromURI(jid), attrs, true); - }); - }, - /** - * Opens a MUC chatroom (aka groupchat) - * - * Similar to {@link api.chats.open}, but for groupchats. - * - * @method api.rooms.open - * @param { string } jid The room JID or JIDs (if not specified, all - * currently open rooms will be returned). - * @param { string } attrs A map containing any extra room attributes. - * @param { string } [attrs.nick] The current user's nickname for the MUC - * @param { boolean } [attrs.auto_configure] A boolean, indicating - * whether the room should be configured automatically or not. - * If set to `true`, then it makes sense to pass in configuration settings. - * @param { object } [attrs.roomconfig] A map of configuration settings to be used when the room gets - * configured automatically. Currently it doesn't make sense to specify - * `roomconfig` values if `auto_configure` is set to `false`. - * For a list of configuration values that can be passed in, refer to these values - * in the [XEP-0045 MUC specification](https://xmpp.org/extensions/xep-0045.html#registrar-formtype-owner). - * The values should be named without the `muc#roomconfig_` prefix. - * @param { boolean } [attrs.minimized] A boolean, indicating whether the room should be opened minimized or not. - * @param { boolean } [attrs.bring_to_foreground] A boolean indicating whether the room should be - * brought to the foreground and therefore replace the currently shown chat. - * If there is no chat currently open, then this option is ineffective. - * @param { Boolean } [force=false] - By default, a minimized - * room won't be maximized (in `overlayed` view mode) and in - * `fullscreen` view mode a newly opened room won't replace - * another chat already in the foreground. - * Set `force` to `true` if you want to force the room to be - * maximized or shown. - * @returns {Promise} Promise which resolves with the Model representing the chat. - * - * @example - * api.rooms.open('group@muc.example.com') - * - * @example - * // To return an array of rooms, provide an array of room JIDs: - * api.rooms.open(['group1@muc.example.com', 'group2@muc.example.com']) - * - * @example - * // To setup a custom nickname when joining the room, provide the optional nick argument: - * api.rooms.open('group@muc.example.com', {'nick': 'mycustomnick'}) - * - * @example - * // For example, opening a room with a specific default configuration: - * api.rooms.open( - * 'myroom@conference.example.org', - * { 'nick': 'coolguy69', - * 'auto_configure': true, - * 'roomconfig': { - * 'changesubject': false, - * 'membersonly': true, - * 'persistentroom': true, - * 'publicroom': true, - * 'roomdesc': 'Comfy room for hanging out', - * 'whois': 'anyone' - * } - * } - * ); - */ - open: function open(jids) { - var _arguments = arguments; - return muc_api_asyncToGenerator( /*#__PURE__*/muc_api_regeneratorRuntime().mark(function _callee() { - var attrs, force, err_msg, room, rooms; - return muc_api_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - attrs = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : {}; - force = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : false; - _context.next = 4; - return shared_api.waitUntil('chatBoxesFetched'); - case 4: - if (!(jids === undefined)) { - _context.next = 10; - break; - } - err_msg = 'rooms.open: You need to provide at least one JID'; - log.error(err_msg); - throw new TypeError(err_msg); - case 10: - if (!(typeof jids === 'string')) { - _context.next = 18; - break; - } - _context.next = 13; - return shared_api.rooms.get(jids, attrs, true); - case 13: - room = _context.sent; - !attrs.hidden && (room === null || room === void 0 ? void 0 : room.maybeShow(force)); - return _context.abrupt("return", room); - case 18: - _context.next = 20; - return Promise.all(jids.map(function (jid) { - return shared_api.rooms.get(jid, attrs, true); - })); - case 20: - rooms = _context.sent; - rooms.forEach(function (r) { - return !attrs.hidden && r.maybeShow(force); - }); - return _context.abrupt("return", rooms); - case 23: - case "end": - return _context.stop(); + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (val) { + var object = Object(val), + keys = []; + for (var key in object) keys.push(key); + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } - }, _callee); - }))(); + } + } }, - /** - * Fetches the object representing a MUC chatroom (aka groupchat) - * - * @method api.rooms.get - * @param { String } [jid] The room JID (if not specified, all rooms will be returned). - * @param { Object } [attrs] A map containing any extra room attributes - * to be set if `create` is set to `true` - * @param { String } [attrs.nick] Specify the nickname - * @param { String } [attrs.password ] Specify a password if needed to enter a new room - * @param { Boolean } create A boolean indicating whether the room should be created - * if not found (default: `false`) - * @returns { Promise<_converse.ChatRoom> } - * @example - * api.waitUntil('roomsAutoJoined').then(() => { - * const create_if_not_found = true; - * api.rooms.get( - * 'group@muc.example.com', - * {'nick': 'dread-pirate-roberts', 'password': 'secret'}, - * create_if_not_found - * ) - * }); - */ - get: function get(jids) { - var _arguments2 = arguments; - return muc_api_asyncToGenerator( /*#__PURE__*/muc_api_regeneratorRuntime().mark(function _callee3() { - var attrs, create, _get, _get2, chats; - return muc_api_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - _get2 = function _get4() { - _get2 = muc_api_asyncToGenerator( /*#__PURE__*/muc_api_regeneratorRuntime().mark(function _callee2(jid) { - var model; - return muc_api_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - jid = api_u.getJIDFromURI(jid); - _context2.next = 3; - return shared_api.chatboxes.get(jid); - case 3: - model = _context2.sent; - if (!(!model && create)) { - _context2.next = 10; - break; - } - _context2.next = 7; - return shared_api.chatboxes.create(jid, attrs, shared_converse.ChatRoom); - case 7: - model = _context2.sent; - _context2.next = 12; - break; - case 10: - model = model && model.get('type') === shared_converse.CHATROOMS_TYPE ? model : null; - if (model && Object.keys(attrs).length) { - model.save(attrs); - } - case 12: - return _context2.abrupt("return", model); - case 13: - case "end": - return _context2.stop(); - } - }, _callee2); - })); - return _get2.apply(this, arguments); - }; - _get = function _get3(_x) { - return _get2.apply(this, arguments); - }; - attrs = _arguments2.length > 1 && _arguments2[1] !== undefined ? _arguments2[1] : {}; - create = _arguments2.length > 2 && _arguments2[2] !== undefined ? _arguments2[2] : false; - _context3.next = 6; - return shared_api.waitUntil('chatBoxesFetched'); - case 6: - if (!(jids === undefined)) { - _context3.next = 13; - break; - } - _context3.next = 9; - return shared_api.chatboxes.get(); - case 9: - chats = _context3.sent; - return _context3.abrupt("return", chats.filter(function (c) { - return c.get('type') === shared_converse.CHATROOMS_TYPE; - })); - case 13: - if (!(typeof jids === 'string')) { - _context3.next = 15; - break; - } - return _context3.abrupt("return", _get(jids)); - case 15: - return _context3.abrupt("return", Promise.all(jids.map(function (jid) { - return _get(jid); - }))); - case 16: - case "end": - return _context3.stop(); + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); } - }, _callee3); - }))(); + return thrown; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } + }, exports; +} +function sasl_sha384_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); } -}); -;// CONCATENATED MODULE: ./src/headless/plugins/muc/index.js -function plugins_muc_toConsumableArray(arr) { - return plugins_muc_arrayWithoutHoles(arr) || plugins_muc_iterableToArray(arr) || plugins_muc_unsupportedIterableToArray(arr) || plugins_muc_nonIterableSpread(); } -function plugins_muc_nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +function sasl_sha384_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + sasl_sha384_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + sasl_sha384_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); + }; } -function plugins_muc_unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return plugins_muc_arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return plugins_muc_arrayLikeToArray(o, minLen); +function sasl_sha384_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } } -function plugins_muc_iterableToArray(iter) { - if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +function sasl_sha384_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, sasl_sha384_toPropertyKey(descriptor.key), descriptor); + } } -function plugins_muc_arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return plugins_muc_arrayLikeToArray(arr); +function sasl_sha384_createClass(Constructor, protoProps, staticProps) { + if (protoProps) sasl_sha384_defineProperties(Constructor.prototype, protoProps); + if (staticProps) sasl_sha384_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; } -function plugins_muc_arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; +function sasl_sha384_toPropertyKey(arg) { + var key = sasl_sha384_toPrimitive(arg, "string"); + return sasl_sha384_typeof(key) === "symbol" ? key : String(key); +} +function sasl_sha384_toPrimitive(input, hint) { + if (sasl_sha384_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (sasl_sha384_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function sasl_sha384_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) sasl_sha384_setPrototypeOf(subClass, superClass); +} +function sasl_sha384_setPrototypeOf(o, p) { + sasl_sha384_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return sasl_sha384_setPrototypeOf(o, p); +} +function sasl_sha384_createSuper(Derived) { + var hasNativeReflectConstruct = sasl_sha384_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = sasl_sha384_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = sasl_sha384_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return sasl_sha384_possibleConstructorReturn(this, result); + }; +} +function sasl_sha384_possibleConstructorReturn(self, call) { + if (call && (sasl_sha384_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return sasl_sha384_assertThisInitialized(self); +} +function sasl_sha384_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} +function sasl_sha384_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} +function sasl_sha384_getPrototypeOf(o) { + sasl_sha384_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return sasl_sha384_getPrototypeOf(o); } /** - * @copyright The Converse.js contributors - * @license Mozilla Public License (MPLv2) - * @description Implements the non-view logic for XEP-0045 Multi-User Chat + * @typedef {import("./connection.js").default} Connection */ +var SASLSHA384 = /*#__PURE__*/function (_SASLMechanism) { + sasl_sha384_inherits(SASLSHA384, _SASLMechanism); + var _super = sasl_sha384_createSuper(SASLSHA384); + /** + * SASL SCRAM SHA 384 authentication. + */ + function SASLSHA384() { + var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'SCRAM-SHA-384'; + var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 71; + sasl_sha384_classCallCheck(this, SASLSHA384); + return _super.call(this, mechname, isClientFirst, priority); + } - - - - - - - - - - - -var muc_ROLES = (/* unused pure expression or super */ null && (['moderator', 'participant', 'visitor'])); -var muc_AFFILIATIONS = ['owner', 'admin', 'member', 'outcast', 'none']; -public_converse.AFFILIATION_CHANGES = AFFILIATION_CHANGES; -public_converse.AFFILIATION_CHANGES_LIST = AFFILIATION_CHANGES_LIST; -public_converse.MUC_TRAFFIC_STATES = MUC_TRAFFIC_STATES; -public_converse.MUC_TRAFFIC_STATES_LIST = MUC_TRAFFIC_STATES_LIST; -public_converse.MUC_ROLE_CHANGES = MUC_ROLE_CHANGES; -public_converse.MUC_ROLE_CHANGES_LIST = MUC_ROLE_CHANGES_LIST; -public_converse.MUC = { - INFO_CODES: INFO_CODES -}; -public_converse.MUC_NICK_CHANGED_CODE = MUC_NICK_CHANGED_CODE; -public_converse.ROOM_FEATURES = ROOM_FEATURES; -public_converse.ROOMSTATUS = ROOMSTATUS; -var muc_Strophe = public_converse.env.Strophe; - -// Add Strophe Namespaces -muc_Strophe.addNamespace('MUC_ADMIN', muc_Strophe.NS.MUC + '#admin'); -muc_Strophe.addNamespace('MUC_OWNER', muc_Strophe.NS.MUC + '#owner'); -muc_Strophe.addNamespace('MUC_REGISTER', 'jabber:iq:register'); -muc_Strophe.addNamespace('MUC_ROOMCONF', muc_Strophe.NS.MUC + '#roomconfig'); -muc_Strophe.addNamespace('MUC_USER', muc_Strophe.NS.MUC + '#user'); -muc_Strophe.addNamespace('MUC_HATS', 'xmpp:prosody.im/protocol/hats:1'); -muc_Strophe.addNamespace('CONFINFO', 'urn:ietf:params:xml:ns:conference-info'); -public_converse.plugins.add('converse-muc', { - dependencies: ['converse-chatboxes', 'converse-chat', 'converse-disco'], - overrides: { - ChatBoxes: { - model: function model(attrs, options) { - var _converse = this.__super__._converse; - if (attrs && attrs.type == _converse.CHATROOMS_TYPE) { - return new _converse.ChatRoom(attrs, options); - } else { - return this.__super__.model.apply(this, arguments); - } - } - } - }, - initialize: function initialize() { - /* The initialize function gets called as soon as the plugin is - * loaded by converse.js's plugin machinery. - */ - var __ = shared_converse.__, - ___ = shared_converse.___; - - // Configuration values for this plugin - // ==================================== - // Refer to docs/source/configuration.rst for explanations of these - // configuration settings. - shared_api.settings.extend({ - 'allow_muc_invitations': true, - 'auto_join_on_invite': false, - 'auto_join_rooms': [], - 'auto_register_muc_nickname': false, - 'hide_muc_participants': false, - 'locked_muc_domain': false, - 'modtools_disable_assign': false, - 'muc_clear_messages_on_leave': true, - 'muc_domain': undefined, - 'muc_fetch_members': true, - 'muc_history_max_stanzas': undefined, - 'muc_instant_rooms': true, - 'muc_nickname_from_jid': false, - 'muc_send_probes': false, - 'muc_show_info_messages': [].concat(plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.visibility_changes), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.self), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.non_privacy_changes), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.muc_logging_changes), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.nickname_changes), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.disconnected), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.affiliation_changes), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.join_leave_events), plugins_muc_toConsumableArray(public_converse.MUC.INFO_CODES.role_changes)), - 'muc_show_logs_before_join': false, - 'muc_subscribe_to_rai': false - }); - shared_api.promises.add(['roomsAutoJoined']); - if (shared_api.settings.get('locked_muc_domain') && typeof shared_api.settings.get('muc_domain') !== 'string') { - throw new Error('Config Error: it makes no sense to set locked_muc_domain ' + 'to true when muc_domain is not set'); + /** + * @param {Connection} connection + */ + // eslint-disable-next-line class-methods-use-this + sasl_sha384_createClass(SASLSHA384, [{ + key: "test", + value: function test(connection) { + return connection.authcid !== null; } - // This is for tests (at least until we can import modules inside tests) - public_converse.env.muc_utils = { - computeAffiliationsDelta: computeAffiliationsDelta - }; - Object.assign(shared_api, muc_api); - Object.assign(shared_api.rooms, affiliations_api); - - /* https://xmpp.org/extensions/xep-0045.html - * ---------------------------------------- - * 100 message Entering a groupchat Inform user that any occupant is allowed to see the user's full JID - * 101 message (out of band) Affiliation change Inform user that his or her affiliation changed while not in the groupchat - * 102 message Configuration change Inform occupants that groupchat now shows unavailable members - * 103 message Configuration change Inform occupants that groupchat now does not show unavailable members - * 104 message Configuration change Inform occupants that a non-privacy-related groupchat configuration change has occurred - * 110 presence Any groupchat presence Inform user that presence refers to one of its own groupchat occupants - * 170 message or initial presence Configuration change Inform occupants that groupchat logging is now enabled - * 171 message Configuration change Inform occupants that groupchat logging is now disabled - * 172 message Configuration change Inform occupants that the groupchat is now non-anonymous - * 173 message Configuration change Inform occupants that the groupchat is now semi-anonymous - * 174 message Configuration change Inform occupants that the groupchat is now fully-anonymous - * 201 presence Entering a groupchat Inform user that a new groupchat has been created - * 210 presence Entering a groupchat Inform user that the service has assigned or modified the occupant's roomnick - * 301 presence Removal from groupchat Inform user that he or she has been banned from the groupchat - * 303 presence Exiting a groupchat Inform all occupants of new groupchat nickname - * 307 presence Removal from groupchat Inform user that he or she has been kicked from the groupchat - * 321 presence Removal from groupchat Inform user that he or she is being removed from the groupchat because of an affiliation change - * 322 presence Removal from groupchat Inform user that he or she is being removed from the groupchat because the groupchat has been changed to members-only and the user is not a member - * 332 presence Removal from groupchat Inform user that he or she is being removed from the groupchat because of a system shutdown + /** + * @param {Connection} connection + * @param {string} [challenge] */ - shared_converse.muc = { - info_messages: { - 100: __('This groupchat is not anonymous'), - 102: __('This groupchat now shows unavailable members'), - 103: __('This groupchat does not show unavailable members'), - 104: __('The groupchat configuration has changed'), - 170: __('Groupchat logging is now enabled'), - 171: __('Groupchat logging is now disabled'), - 172: __('This groupchat is now no longer anonymous'), - 173: __('This groupchat is now semi-anonymous'), - 174: __('This groupchat is now fully-anonymous'), - 201: __('A new groupchat has been created') - }, - new_nickname_messages: { - // XXX: Note the triple underscore function and not double underscore. - 210: ___('Your nickname has been automatically set to %1$s'), - 303: ___('Your nickname has been changed to %1$s') - }, - disconnect_messages: { - 301: __('You have been banned from this groupchat'), - 333: __('You have exited this groupchat due to a technical problem'), - 307: __('You have been kicked from this groupchat'), - 321: __('You have been removed from this groupchat because of an affiliation change'), - 322: __("You have been removed from this groupchat because the groupchat has changed to members-only and you're not a member"), - 332: __('You have been removed from this groupchat because the service hosting it is being shut down') + // eslint-disable-next-line class-methods-use-this + }, { + key: "onChallenge", + value: function () { + var _onChallenge = sasl_sha384_asyncToGenerator( /*#__PURE__*/sasl_sha384_regeneratorRuntime().mark(function _callee(connection, challenge) { + return sasl_sha384_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return scram.scramResponse(connection, challenge, 'SHA-384', 384); + case 2: + return _context.abrupt("return", _context.sent); + case 3: + case "end": + return _context.stop(); + } + }, _callee); + })); + function onChallenge(_x, _x2) { + return _onChallenge.apply(this, arguments); } - }; - shared_converse.router.route('converse/room?jid=:jid', routeToRoom); - shared_converse.ChatRoom = shared_converse.ChatBox.extend(muc); - shared_converse.ChatRoomMessage = shared_converse.Message.extend(muc_message); - shared_converse.ChatRoomOccupants = occupants; - shared_converse.ChatRoomOccupant = occupant; - + return onChallenge; + }() /** - * Collection which stores MUC messages - * @class - * @namespace _converse.ChatRoomMessages - * @memberOf _converse + * @param {Connection} connection + * @param {string} [test_cnonce] */ - shared_converse.ChatRoomMessages = Collection.extend({ - model: shared_converse.ChatRoomMessage, - comparator: 'time' - }); - Object.assign(shared_converse, { - getDefaultMUCNickname: getDefaultMUCNickname, - isInfoVisible: isInfoVisible, - onDirectMUCInvitation: onDirectMUCInvitation - }); - - /************************ BEGIN Event Handlers ************************/ - - if (shared_api.settings.get('allow_muc_invitations')) { - shared_api.listen.on('connected', registerDirectInvitationHandler); - shared_api.listen.on('reconnected', registerDirectInvitationHandler); + // eslint-disable-next-line class-methods-use-this + }, { + key: "clientChallenge", + value: function clientChallenge(connection, test_cnonce) { + return scram.clientChallenge(connection, test_cnonce); } - shared_api.listen.on('addClientFeatures', function () { - return shared_api.disco.own.features.add("".concat(muc_Strophe.NS.CONFINFO, "+notify")); - }); - shared_api.listen.on('addClientFeatures', onAddClientFeatures); - shared_api.listen.on('beforeResourceBinding', onBeforeResourceBinding); - shared_api.listen.on('beforeTearDown', onBeforeTearDown); - shared_api.listen.on('chatBoxesFetched', autoJoinRooms); - shared_api.listen.on('disconnected', disconnectChatRooms); - shared_api.listen.on('statusInitialized', onStatusInitialized); - shared_api.listen.on('windowStateChanged', onWindowStateChanged); - } -}); -;// CONCATENATED MODULE: ./src/headless/plugins/bookmarks/model.js - - -var bookmarks_model_Strophe = public_converse.env.Strophe; -var Bookmark = Model.extend({ - idAttribute: 'jid', - getDisplayName: function getDisplayName() { - return bookmarks_model_Strophe.xmlunescape(this.get('name')); - } -}); -/* harmony default export */ const bookmarks_model = (Bookmark); -;// CONCATENATED MODULE: ./src/headless/plugins/bookmarks/collection.js -function bookmarks_collection_typeof(obj) { + }]); + return SASLSHA384; +}(sasl); +/* harmony default export */ const sasl_sha384 = (SASLSHA384); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-sha512.js +function sasl_sha512_typeof(obj) { "@babel/helpers - typeof"; - return bookmarks_collection_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return sasl_sha512_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, bookmarks_collection_typeof(obj); + }, sasl_sha512_typeof(obj); } -function bookmarks_collection_regeneratorRuntime() { +function sasl_sha512_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - bookmarks_collection_regeneratorRuntime = function _regeneratorRuntime() { + sasl_sha512_regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, @@ -55145,7 +53984,7 @@ function bookmarks_collection_regeneratorRuntime() { if ("throw" !== record.type) { var result = record.arg, value = result.value; - return value && "object" == bookmarks_collection_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + return value && "object" == sasl_sha512_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); @@ -55332,1161 +54171,2604 @@ function bookmarks_collection_regeneratorRuntime() { var finallyEntry = entry; break; } - } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; - } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); + } + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + catch: function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; +} +function sasl_sha512_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } +} +function sasl_sha512_asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + sasl_sha512_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + sasl_sha512_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); + }; +} +function sasl_sha512_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function sasl_sha512_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, sasl_sha512_toPropertyKey(descriptor.key), descriptor); + } +} +function sasl_sha512_createClass(Constructor, protoProps, staticProps) { + if (protoProps) sasl_sha512_defineProperties(Constructor.prototype, protoProps); + if (staticProps) sasl_sha512_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function sasl_sha512_toPropertyKey(arg) { + var key = sasl_sha512_toPrimitive(arg, "string"); + return sasl_sha512_typeof(key) === "symbol" ? key : String(key); +} +function sasl_sha512_toPrimitive(input, hint) { + if (sasl_sha512_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (sasl_sha512_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function sasl_sha512_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) sasl_sha512_setPrototypeOf(subClass, superClass); +} +function sasl_sha512_setPrototypeOf(o, p) { + sasl_sha512_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return sasl_sha512_setPrototypeOf(o, p); +} +function sasl_sha512_createSuper(Derived) { + var hasNativeReflectConstruct = sasl_sha512_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = sasl_sha512_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = sasl_sha512_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return sasl_sha512_possibleConstructorReturn(this, result); + }; +} +function sasl_sha512_possibleConstructorReturn(self, call) { + if (call && (sasl_sha512_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return sasl_sha512_assertThisInitialized(self); +} +function sasl_sha512_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} +function sasl_sha512_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} +function sasl_sha512_getPrototypeOf(o) { + sasl_sha512_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return sasl_sha512_getPrototypeOf(o); +} +/** + * @typedef {import("./connection.js").default} Connection + */ + + +var SASLSHA512 = /*#__PURE__*/function (_SASLMechanism) { + sasl_sha512_inherits(SASLSHA512, _SASLMechanism); + var _super = sasl_sha512_createSuper(SASLSHA512); + /** + * SASL SCRAM SHA 512 authentication. + */ + function SASLSHA512() { + var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'SCRAM-SHA-512'; + var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 72; + sasl_sha512_classCallCheck(this, SASLSHA512); + return _super.call(this, mechname, isClientFirst, priority); + } + + /** + * @param {Connection} connection + */ + // eslint-disable-next-line class-methods-use-this + sasl_sha512_createClass(SASLSHA512, [{ + key: "test", + value: function test(connection) { + return connection.authcid !== null; + } + + /** + * @param {Connection} connection + * @param {string} [challenge] + */ + // eslint-disable-next-line class-methods-use-this + }, { + key: "onChallenge", + value: function () { + var _onChallenge = sasl_sha512_asyncToGenerator( /*#__PURE__*/sasl_sha512_regeneratorRuntime().mark(function _callee(connection, challenge) { + return sasl_sha512_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return scram.scramResponse(connection, challenge, 'SHA-512', 512); + case 2: + return _context.abrupt("return", _context.sent); + case 3: + case "end": + return _context.stop(); + } + }, _callee); + })); + function onChallenge(_x, _x2) { + return _onChallenge.apply(this, arguments); + } + return onChallenge; + }() + /** + * @param {Connection} connection + * @param {string} [test_cnonce] + */ + // eslint-disable-next-line class-methods-use-this + }, { + key: "clientChallenge", + value: function clientChallenge(connection, test_cnonce) { + return scram.clientChallenge(connection, test_cnonce); + } + }]); + return SASLSHA512; +}(sasl); +/* harmony default export */ const sasl_sha512 = (SASLSHA512); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/sasl-xoauth2.js +function sasl_xoauth2_typeof(obj) { + "@babel/helpers - typeof"; + + return sasl_xoauth2_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, sasl_xoauth2_typeof(obj); +} +function sasl_xoauth2_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function sasl_xoauth2_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, sasl_xoauth2_toPropertyKey(descriptor.key), descriptor); + } +} +function sasl_xoauth2_createClass(Constructor, protoProps, staticProps) { + if (protoProps) sasl_xoauth2_defineProperties(Constructor.prototype, protoProps); + if (staticProps) sasl_xoauth2_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function sasl_xoauth2_toPropertyKey(arg) { + var key = sasl_xoauth2_toPrimitive(arg, "string"); + return sasl_xoauth2_typeof(key) === "symbol" ? key : String(key); +} +function sasl_xoauth2_toPrimitive(input, hint) { + if (sasl_xoauth2_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (sasl_xoauth2_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} +function sasl_xoauth2_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) sasl_xoauth2_setPrototypeOf(subClass, superClass); +} +function sasl_xoauth2_setPrototypeOf(o, p) { + sasl_xoauth2_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return sasl_xoauth2_setPrototypeOf(o, p); +} +function sasl_xoauth2_createSuper(Derived) { + var hasNativeReflectConstruct = sasl_xoauth2_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = sasl_xoauth2_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = sasl_xoauth2_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return sasl_xoauth2_possibleConstructorReturn(this, result); + }; +} +function sasl_xoauth2_possibleConstructorReturn(self, call) { + if (call && (sasl_xoauth2_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + return sasl_xoauth2_assertThisInitialized(self); +} +function sasl_xoauth2_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} +function sasl_xoauth2_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} +function sasl_xoauth2_getPrototypeOf(o) { + sasl_xoauth2_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return sasl_xoauth2_getPrototypeOf(o); +} + + + +/** + * @typedef {import("./connection.js").default} Connection + */ +var SASLXOAuth2 = /*#__PURE__*/function (_SASLMechanism) { + sasl_xoauth2_inherits(SASLXOAuth2, _SASLMechanism); + var _super = sasl_xoauth2_createSuper(SASLXOAuth2); + /** + * SASL X-OAuth2 authentication. + */ + function SASLXOAuth2() { + var mechname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'X-OAUTH2'; + var isClientFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var priority = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 30; + sasl_xoauth2_classCallCheck(this, SASLXOAuth2); + return _super.call(this, mechname, isClientFirst, priority); + } + + /** + * @param {Connection} connection + */ + // eslint-disable-next-line class-methods-use-this + sasl_xoauth2_createClass(SASLXOAuth2, [{ + key: "test", + value: function test(connection) { + return connection.pass !== null; + } + + /** + * @param {Connection} connection + */ + // eslint-disable-next-line class-methods-use-this + }, { + key: "onChallenge", + value: function onChallenge(connection) { + var auth_str = "\0"; + if (connection.authcid !== null) { + auth_str = auth_str + connection.authzid; + } + auth_str = auth_str + "\0"; + auth_str = auth_str + connection.pass; + return utils.utf16to8(auth_str); + } + }]); + return SASLXOAuth2; +}(sasl); +/* harmony default export */ const sasl_xoauth2 = (SASLXOAuth2); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/request.js +function request_typeof(obj) { + "@babel/helpers - typeof"; + + return request_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, request_typeof(obj); +} +function request_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} +function request_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, request_toPropertyKey(descriptor.key), descriptor); + } +} +function request_createClass(Constructor, protoProps, staticProps) { + if (protoProps) request_defineProperties(Constructor.prototype, protoProps); + if (staticProps) request_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function request_toPropertyKey(arg) { + var key = request_toPrimitive(arg, "string"); + return request_typeof(key) === "symbol" ? key : String(key); +} +function request_toPrimitive(input, hint) { + if (request_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (request_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} + + + +/** + * Helper class that provides a cross implementation abstraction + * for a BOSH related XMLHttpRequest. + * + * The Strophe.Request class is used internally to encapsulate BOSH request + * information. It is not meant to be used from user's code. + * + * @property {number} id + * @property {number} sends + * @property {XMLHttpRequest} xhr + */ +var Request = /*#__PURE__*/function () { + /** + * Create and initialize a new Strophe.Request object. + * + * @param {Element} elem - The XML data to be sent in the request. + * @param {Function} func - The function that will be called when the + * XMLHttpRequest readyState changes. + * @param {number} rid - The BOSH rid attribute associated with this request. + * @param {number} [sends=0] - The number of times this same request has been sent. + */ + function Request(elem, func, rid) { + var _this = this; + var sends = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; + request_classCallCheck(this, Request); + this.id = ++src_core._requestId; + this.xmlData = elem; + this.data = src_core.serialize(elem); + // save original function in case we need to make a new request + // from this one. + this.origFunc = func; + this.func = func; + this.rid = rid; + this.date = NaN; + this.sends = sends; + this.abort = false; + this.dead = null; + this.age = function () { + return _this.date ? (new Date().valueOf() - _this.date.valueOf()) / 1000 : 0; + }; + this.timeDead = function () { + return _this.dead ? (new Date().valueOf() - _this.dead.valueOf()) / 1000 : 0; + }; + this.xhr = this._newXHR(); + } + + /** + * Get a response from the underlying XMLHttpRequest. + * This function attempts to get a response from the request and checks + * for errors. + * @throws "parsererror" - A parser error occured. + * @throws "bad-format" - The entity has sent XML that cannot be processed. + * @return {Element} - The DOM element tree of the response. + */ + request_createClass(Request, [{ + key: "getResponse", + value: function getResponse() { + var _this$xhr$responseXML; + var node = (_this$xhr$responseXML = this.xhr.responseXML) === null || _this$xhr$responseXML === void 0 ? void 0 : _this$xhr$responseXML.documentElement; + if (node) { + if (node.tagName === 'parsererror') { + src_core.error('invalid response received'); + src_core.error('responseText: ' + this.xhr.responseText); + src_core.error('responseXML: ' + src_core.serialize(node)); + throw new Error('parsererror'); + } + } else if (this.xhr.responseText) { + var _node; + // In Node (with xhr2) or React Native, we may get responseText but no responseXML. + // We can try to parse it manually. + src_core.debug('Got responseText but no responseXML; attempting to parse it with DOMParser...'); + node = new DOMParser().parseFromString(this.xhr.responseText, 'application/xml').documentElement; + var parserError = (_node = node) === null || _node === void 0 ? void 0 : _node.querySelector('parsererror'); + if (!node || parserError) { + if (parserError) { + src_core.error('invalid response received: ' + parserError.textContent); + src_core.error('responseText: ' + this.xhr.responseText); } - return thrown; + var error = new Error(); + error.name = src_core.ErrorCondition.BAD_FORMAT; + throw error; } } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + return node; } - }, exports; + + /** + * _Private_ helper function to create XMLHttpRequests. + * This function creates XMLHttpRequests across all implementations. + * @private + * @return {XMLHttpRequest} + */ + }, { + key: "_newXHR", + value: function _newXHR() { + var xhr = new XMLHttpRequest(); + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/xml; charset=utf-8'); + } + // use Function.bind() to prepend ourselves as an argument + xhr.onreadystatechange = this.func.bind(null, this); + return xhr; + } + }]); + return Request; +}(); +/* harmony default export */ const request = (Request); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/websocket.js +function websocket_typeof(obj) { + "@babel/helpers - typeof"; + + return websocket_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, websocket_typeof(obj); } -function bookmarks_collection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; +function websocket_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); +} +function websocket_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, websocket_toPropertyKey(descriptor.key), descriptor); } } -function bookmarks_collection_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - bookmarks_collection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - bookmarks_collection_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); - }); - }; +function websocket_createClass(Constructor, protoProps, staticProps) { + if (protoProps) websocket_defineProperties(Constructor.prototype, protoProps); + if (staticProps) websocket_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function websocket_toPropertyKey(arg) { + var key = websocket_toPrimitive(arg, "string"); + return websocket_typeof(key) === "symbol" ? key : String(key); +} +function websocket_toPrimitive(input, hint) { + if (websocket_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (websocket_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); } +/** + * A JavaScript library to enable XMPP over Websocket in Strophejs. + * + * This file implements XMPP over WebSockets for Strophejs. + * If a Connection is established with a Websocket url (ws://...) + * Strophe will use WebSockets. + * For more information on XMPP-over-WebSocket see RFC 7395: + * http://tools.ietf.org/html/rfc7395 + * + * WebSocket support implemented by Andreas Guth (andreas.guth@rwth-aachen.de) + */ +/* global clearTimeout, location */ +/** + * @typedef {import("./builder.js").default} Builder + * @typedef {import("./connection.js").default} Connection + */ -var collection_converse$env = public_converse.env, - collection_Strophe = collection_converse$env.Strophe, - collection_$iq = collection_converse$env.$iq, - collection_sizzle = collection_converse$env.sizzle; -var Bookmarks = { - model: bookmarks_model, - comparator: function comparator(item) { - return item.get('name').toLowerCase(); - }, - initialize: function initialize() { - var _this = this; - return bookmarks_collection_asyncToGenerator( /*#__PURE__*/bookmarks_collection_regeneratorRuntime().mark(function _callee() { - var cache_key; - return bookmarks_collection_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _this.on('add', function (bm) { - return _this.openBookmarkedRoom(bm).then(function (bm) { - return _this.markRoomAsBookmarked(bm); - }).catch(function (e) { - return log.fatal(e); - }); - }); - _this.on('remove', _this.markRoomAsUnbookmarked, _this); - _this.on('remove', _this.sendBookmarkStanza, _this); - cache_key = "converse.room-bookmarks".concat(shared_converse.bare_jid); - _this.fetched_flag = cache_key + 'fetched'; - initStorage(_this, cache_key); - _context.next = 8; - return _this.fetchBookmarks(); - case 8: - /** - * Triggered once the _converse.Bookmarks collection - * has been created and cached bookmarks have been fetched. - * @event _converse#bookmarksInitialized - * @type { _converse.Bookmarks } - * @example _converse.api.listen.on('bookmarksInitialized', (bookmarks) => { ... }); - */ - shared_api.trigger('bookmarksInitialized', _this); - case 9: - case "end": - return _context.stop(); - } - }, _callee); - }))(); - }, - openBookmarkedRoom: function openBookmarkedRoom(bookmark) { - return bookmarks_collection_asyncToGenerator( /*#__PURE__*/bookmarks_collection_regeneratorRuntime().mark(function _callee2() { - var groupchat; - return bookmarks_collection_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - if (!(shared_api.settings.get('muc_respect_autojoin') && bookmark.get('autojoin'))) { - _context2.next = 5; - break; - } - _context2.next = 3; - return shared_api.rooms.create(bookmark.get('jid'), { - 'nick': bookmark.get('nick') - }); - case 3: - groupchat = _context2.sent; - groupchat.maybeShow(); - case 5: - return _context2.abrupt("return", bookmark); - case 6: - case "end": - return _context2.stop(); + +/** + * Helper class that handles WebSocket Connections + * + * The Strophe.WebSocket class is used internally by Strophe.Connection + * to encapsulate WebSocket sessions. It is not meant to be used from user's code. + */ +var Websocket = /*#__PURE__*/function () { + /** + * Create and initialize a Strophe.WebSocket object. + * Currently only sets the connection Object. + * @param {Connection} connection - The Strophe.Connection that will use WebSockets. + */ + function Websocket(connection) { + websocket_classCallCheck(this, Websocket); + this._conn = connection; + this.strip = 'wrapper'; + var service = connection.service; + if (service.indexOf('ws:') !== 0 && service.indexOf('wss:') !== 0) { + // If the service is not an absolute URL, assume it is a path and put the absolute + // URL together from options, current URL and the path. + var new_service = ''; + if (connection.options.protocol === 'ws' && location.protocol !== 'https:') { + new_service += 'ws'; + } else { + new_service += 'wss'; + } + new_service += '://' + location.host; + if (service.indexOf('/') !== 0) { + new_service += location.pathname + service; + } else { + new_service += service; + } + connection.service = new_service; + } + } + + /** + * _Private_ helper function to generate the start tag for WebSockets + * @private + * @return {Builder} - A Strophe.Builder with a element. + */ + websocket_createClass(Websocket, [{ + key: "_buildStream", + value: function _buildStream() { + return $build('open', { + 'xmlns': src_core.NS.FRAMING, + 'to': this._conn.domain, + 'version': '1.0' + }); + } + + /** + * _Private_ checks a message for stream:error + * @private + * @param {Element} bodyWrap - The received stanza. + * @param {number} connectstatus - The ConnectStatus that will be set on error. + * @return {boolean} - true if there was a streamerror, false otherwise. + */ + }, { + key: "_checkStreamError", + value: function _checkStreamError(bodyWrap, connectstatus) { + var errors; + if (bodyWrap.getElementsByTagNameNS) { + errors = bodyWrap.getElementsByTagNameNS(src_core.NS.STREAM, 'error'); + } else { + errors = bodyWrap.getElementsByTagName('stream:error'); + } + if (errors.length === 0) { + return false; + } + var error = errors[0]; + var condition = ''; + var text = ''; + var ns = 'urn:ietf:params:xml:ns:xmpp-streams'; + for (var i = 0; i < error.childNodes.length; i++) { + var e = error.children[i]; + if (e.getAttribute('xmlns') !== ns) { + break; } - }, _callee2); - }))(); - }, - fetchBookmarks: function fetchBookmarks() { - var deferred = getOpenPromise(); - if (window.sessionStorage.getItem(this.fetched_flag)) { - this.fetch({ - 'success': function success() { - return deferred.resolve(); - }, - 'error': function error() { - return deferred.resolve(); + if (e.nodeName === 'text') { + text = e.textContent; + } else { + condition = e.nodeName; } - }); - } else { - this.fetchBookmarksFromServer(deferred); + } + var errorString = 'WebSocket stream error: '; + if (condition) { + errorString += condition; + } else { + errorString += 'unknown'; + } + if (text) { + errorString += ' - ' + text; + } + src_core.error(errorString); + + // close the connection on stream_error + this._conn._changeConnectStatus(connectstatus, condition); + this._conn._doDisconnect(); + return true; } - return deferred; - }, - createBookmark: function createBookmark(options) { - var _this2 = this; - this.create(options); - this.sendBookmarkStanza().catch(function (iq) { - return _this2.onBookmarkError(iq, options); - }); - }, - sendBookmarkStanza: function sendBookmarkStanza() { - var stanza = collection_$iq({ - 'type': 'set', - 'from': shared_converse.connection.jid - }).c('pubsub', { - 'xmlns': collection_Strophe.NS.PUBSUB - }).c('publish', { - 'node': collection_Strophe.NS.BOOKMARKS - }).c('item', { - 'id': 'current' - }).c('storage', { - 'xmlns': collection_Strophe.NS.BOOKMARKS - }); - this.forEach(function (model) { - stanza.c('conference', { - 'name': model.get('name'), - 'autojoin': model.get('autojoin'), - 'jid': model.get('jid') - }).c('nick').t(model.get('nick')).up().up(); - }); - stanza.up().up().up(); - stanza.c('publish-options').c('x', { - 'xmlns': collection_Strophe.NS.XFORM, - 'type': 'submit' - }).c('field', { - 'var': 'FORM_TYPE', - 'type': 'hidden' - }).c('value').t('http://jabber.org/protocol/pubsub#publish-options').up().up().c('field', { - 'var': 'pubsub#persist_items' - }).c('value').t('true').up().up().c('field', { - 'var': 'pubsub#access_model' - }).c('value').t('whitelist'); - return shared_api.sendIQ(stanza); - }, - onBookmarkError: function onBookmarkError(iq, options) { - var _this$get; - var __ = shared_converse.__; - log.error("Error while trying to add bookmark"); - log.error(iq); - shared_api.alert('error', __('Error'), [__("Sorry, something went wrong while trying to save your bookmark.")]); - (_this$get = this.get(options.jid)) === null || _this$get === void 0 ? void 0 : _this$get.destroy(); - }, - fetchBookmarksFromServer: function fetchBookmarksFromServer(deferred) { - var _this3 = this; - var stanza = collection_$iq({ - 'from': shared_converse.connection.jid, - 'type': 'get' - }).c('pubsub', { - 'xmlns': collection_Strophe.NS.PUBSUB - }).c('items', { - 'node': collection_Strophe.NS.BOOKMARKS - }); - shared_api.sendIQ(stanza).then(function (iq) { - return _this3.onBookmarksReceived(deferred, iq); - }).catch(function (iq) { - return _this3.onBookmarksReceivedError(deferred, iq); - }); - }, - markRoomAsBookmarked: function markRoomAsBookmarked(bookmark) { - var groupchat = shared_converse.chatboxes.get(bookmark.get('jid')); - groupchat === null || groupchat === void 0 ? void 0 : groupchat.save('bookmarked', true); - }, - markRoomAsUnbookmarked: function markRoomAsUnbookmarked(bookmark) { - var groupchat = shared_converse.chatboxes.get(bookmark.get('jid')); - groupchat === null || groupchat === void 0 ? void 0 : groupchat.save('bookmarked', false); - }, - createBookmarksFromStanza: function createBookmarksFromStanza(stanza) { - var _this4 = this; - var xmlns = collection_Strophe.NS.BOOKMARKS; - var sel = "items[node=\"".concat(xmlns, "\"] item storage[xmlns=\"").concat(xmlns, "\"] conference"); - collection_sizzle(sel, stanza).forEach(function (el) { - var _el$querySelector; - var jid = el.getAttribute('jid'); - var bookmark = _this4.get(jid); - var attrs = { - 'jid': jid, - 'name': el.getAttribute('name') || jid, - 'autojoin': el.getAttribute('autojoin') === 'true', - 'nick': ((_el$querySelector = el.querySelector('nick')) === null || _el$querySelector === void 0 ? void 0 : _el$querySelector.textContent) || '' + + /** + * Reset the connection. + * + * This function is called by the reset function of the Strophe Connection. + * Is not needed by WebSockets. + */ + // eslint-disable-next-line class-methods-use-this + }, { + key: "_reset", + value: function _reset() { + return; + } + + /** + * _Private_ function called by Strophe.Connection.connect + * + * Creates a WebSocket for a connection and assigns Callbacks to it. + * Does nothing if there already is a WebSocket. + */ + }, { + key: "_connect", + value: function _connect() { + var _this = this; + // Ensure that there is no open WebSocket from a previous Connection. + this._closeSocket(); + + /** + * @typedef {Object} WebsocketLike + * @property {(str: string) => void} WebsocketLike.send + * @property {function(): void} WebsocketLike.close + * @property {function(): void} WebsocketLike.onopen + * @property {(e: ErrorEvent) => void} WebsocketLike.onerror + * @property {(e: CloseEvent) => void} WebsocketLike.onclose + * @property {(message: MessageEvent) => void} WebsocketLike.onmessage + * @property {string} WebsocketLike.readyState + */ + + /** @type {import('ws')|WebSocket|WebsocketLike} */ + this.socket = new WebSocket(this._conn.service, 'xmpp'); + this.socket.onopen = function () { + return _this._onOpen(); + }; + /** @param {ErrorEvent} e */ + this.socket.onerror = function (e) { + return _this._onError(e); + }; + /** @param {CloseEvent} e */ + this.socket.onclose = function (e) { + return _this._onClose(e); + }; + /** + * Gets replaced with this._onMessage once _onInitialMessage is called + * @param {MessageEvent} message + */ + this.socket.onmessage = function (message) { + return _this._onInitialMessage(message); }; - bookmark ? bookmark.save(attrs) : _this4.create(attrs); - }); - }, - onBookmarksReceived: function onBookmarksReceived(deferred, iq) { - this.createBookmarksFromStanza(iq); - window.sessionStorage.setItem(this.fetched_flag, true); - if (deferred !== undefined) { - return deferred.resolve(); } - }, - onBookmarksReceivedError: function onBookmarksReceivedError(deferred, iq) { - var __ = shared_converse.__; - if (iq === null) { - log.error('Error: timeout while fetching bookmarks'); - shared_api.alert('error', __('Timeout Error'), [__("The server did not return your bookmarks within the allowed time. " + "You can reload the page to request them again.")]); - } else if (deferred) { - if (iq.querySelector('error[type="cancel"] item-not-found')) { - // Not an exception, the user simply doesn't have any bookmarks. - window.sessionStorage.setItem(this.fetched_flag, true); - return deferred.resolve(); + + /** + * _Private_ function called by Strophe.Connection._connect_cb + * checks for stream:error + * @param {Element} bodyWrap - The received stanza. + */ + }, { + key: "_connect_cb", + value: function _connect_cb(bodyWrap) { + var error = this._checkStreamError(bodyWrap, src_core.Status.CONNFAIL); + if (error) { + return src_core.Status.CONNFAIL; + } + } + + /** + * _Private_ function that checks the opening tag for errors. + * + * Disconnects if there is an error and returns false, true otherwise. + * @private + * @param {Element} message - Stanza containing the tag. + */ + }, { + key: "_handleStreamStart", + value: function _handleStreamStart(message) { + var error = null; + + // Check for errors in the tag + var ns = message.getAttribute('xmlns'); + if (typeof ns !== 'string') { + error = 'Missing xmlns in '; + } else if (ns !== src_core.NS.FRAMING) { + error = 'Wrong xmlns in : ' + ns; + } + var ver = message.getAttribute('version'); + if (typeof ver !== 'string') { + error = 'Missing version in '; + } else if (ver !== '1.0') { + error = 'Wrong version in : ' + ver; + } + if (error) { + this._conn._changeConnectStatus(src_core.Status.CONNFAIL, error); + this._conn._doDisconnect(); + return false; + } + return true; + } + + /** + * _Private_ function that handles the first connection messages. + * + * On receiving an opening stream tag this callback replaces itself with the real + * message handler. On receiving a stream error the connection is terminated. + * @param {MessageEvent} message + */ + }, { + key: "_onInitialMessage", + value: function _onInitialMessage(message) { + if (message.data.indexOf('\s*)*/, ''); + if (data === '') return; + var streamStart = new DOMParser().parseFromString(data, 'text/xml').documentElement; + this._conn.xmlInput(streamStart); + this._conn.rawInput(message.data); + + //_handleStreamSteart will check for XML errors and disconnect on error + if (this._handleStreamStart(streamStart)) { + //_connect_cb will check for stream:error and disconnect on error + this._connect_cb(streamStart); + } + } else if (message.data.indexOf(' tag."); + } } - reject(record.arg); + setTimeout(function () { + return _this3._conn._doDisconnect(); + }, 0); } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); + + /** + * _Private_ function to disconnect. + * Just closes the Socket for WebSockets + */ + }, { + key: "_doDisconnect", + value: function _doDisconnect() { + src_core.debug('WebSockets _doDisconnect was called'); + this._closeSocket(); + } + + /** + * PrivateFunction _streamWrap + * _Private_ helper function to wrap a stanza in a tag. + * This is used so Strophe can process stanzas from WebSockets like BOSH + * @param {string} stanza + */ + // eslint-disable-next-line class-methods-use-this + }, { + key: "_streamWrap", + value: function _streamWrap(stanza) { + return '' + stanza + ''; + } + + /** + * _Private_ function to close the WebSocket. + * + * Closes the socket if it is still open and deletes it + */ + }, { + key: "_closeSocket", + value: function _closeSocket() { + if (this.socket) { + try { + this.socket.onclose = null; + this.socket.onerror = null; + this.socket.onmessage = null; + this.socket.close(); + } catch (e) { + src_core.debug(e.message); } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } - }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); + this.socket = null; + } + + /** + * _Private_ function to check if the message queue is empty. + * @return {true} - True, because WebSocket messages are send immediately after queueing. + */ + // eslint-disable-next-line class-methods-use-this + }, { + key: "_emptyQueue", + value: function _emptyQueue() { + return true; + } + + /** + * _Private_ function to handle websockets closing. + * @param {CloseEvent} [e] + */ + }, { + key: "_onClose", + value: function _onClose(e) { + if (this._conn.connected && !this._conn.disconnecting) { + src_core.error('Websocket closed unexpectedly'); + this._conn._doDisconnect(); + } else if (e && e.code === 1006 && !this._conn.connected && this.socket) { + // in case the onError callback was not called (Safari 10 does not + // call onerror when the initial connection fails) we need to + // dispatch a CONNFAIL status update to be consistent with the + // behavior on other browsers. + src_core.error('Websocket closed unexcectedly'); + this._conn._changeConnectStatus(src_core.Status.CONNFAIL, 'The WebSocket connection could not be established or was disconnected.'); + this._conn._doDisconnect(); + } else { + src_core.debug('Websocket closed'); } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; + } + + /** + * @callback connectionCallback + * @param {Connection} connection + */ + + /** + * Called on stream start/restart when no stream:features + * has been received. + * @param {connectionCallback} callback + */ + }, { + key: "_no_auth_received", + value: function _no_auth_received(callback) { + src_core.error('Server did not offer a supported authentication mechanism'); + this._conn._changeConnectStatus(src_core.Status.CONNFAIL, src_core.ErrorCondition.NO_AUTH_MECH); + callback === null || callback === void 0 ? void 0 : callback.call(this._conn); + this._conn._doDisconnect(); + } + + /** + * _Private_ timeout handler for handling non-graceful disconnection. + * + * This does nothing for WebSockets + */ + }, { + key: "_onDisconnectTimeout", + value: function _onDisconnectTimeout() {} // eslint-disable-line class-methods-use-this + + /** + * _Private_ helper function that makes sure all pending requests are aborted. + */ + }, { + key: "_abortAllRequests", + value: function _abortAllRequests() {} // eslint-disable-line class-methods-use-this + + /** + * _Private_ function to handle websockets errors. + * @param {Object} error - The websocket error. + */ + }, { + key: "_onError", + value: function _onError(error) { + src_core.error('Websocket error ' + JSON.stringify(error)); + this._conn._changeConnectStatus(src_core.Status.CONNFAIL, 'The WebSocket connection could not be established or was disconnected.'); + this._disconnect(); + } + + /** + * _Private_ function called by Strophe.Connection._onIdle + * sends all queued stanzas + */ + }, { + key: "_onIdle", + value: function _onIdle() { + var data = this._conn._data; + if (data.length > 0 && !this._conn.paused) { + for (var i = 0; i < data.length; i++) { + if (data[i] !== null) { + var stanza = data[i] === 'restart' ? this._buildStream().tree() : data[i]; + if (stanza === 'restart') throw new Error('Wrong type for stanza'); // Shut up tsc + var rawStanza = src_core.serialize(stanza); + this._conn.xmlOutput(stanza); + this._conn.rawOutput(rawStanza); + this.socket.send(rawStanza); } } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done - }; + this._conn._data = []; + } + } + + /** + * _Private_ function to handle websockets messages. + * + * This function parses each of the messages as if they are full documents. + * [TODO : We may actually want to use a SAX Push parser]. + * + * Since all XMPP traffic starts with + * + * + * The first stanza will always fail to be parsed. + * + * Additionally, the seconds stanza will always be with + * the stream NS defined in the previous stanza, so we need to 'force' + * the inclusion of the NS in this stanza. + * + * @param {MessageEvent} message - The websocket message event + */ + }, { + key: "_onMessage", + value: function _onMessage(message) { + var elem; + // check for closing stream + var close = ''; + if (message.data === close) { + this._conn.rawInput(close); + this._conn.xmlInput(message); + if (!this._conn.disconnecting) { + this._conn._doDisconnect(); } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + return; + } else if (message.data.search(' tag before we close the connection + return; + } + this._conn._dataRecv(elem, message.data); + } + + /** + * _Private_ function to handle websockets connection setup. + * The opening stream tag is sent here. + * @private + */ + }, { + key: "_onOpen", + value: function _onOpen() { + src_core.debug('Websocket open'); + var start = this._buildStream(); + this._conn.xmlOutput(start.tree()); + var startString = src_core.serialize(start); + this._conn.rawOutput(startString); + this.socket.send(startString); + } + + /** + * _Private_ part of the Connection.send function for WebSocket + * Just flushes the messages that are in the queue + */ + }, { + key: "_send", + value: function _send() { + this._conn.flush(); + } + + /** + * Send an xmpp:restart stanza. + */ + }, { + key: "_sendRestart", + value: function _sendRestart() { + clearTimeout(this._conn._idleTimeout); + this._conn._onIdle.bind(this._conn)(); + } + }]); + return Websocket; +}(); +/* harmony default export */ const websocket = (Websocket); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/worker-websocket.js +function worker_websocket_typeof(obj) { + "@babel/helpers - typeof"; + + return worker_websocket_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, worker_websocket_typeof(obj); +} +function worker_websocket_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); +} +function worker_websocket_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, worker_websocket_toPropertyKey(descriptor.key), descriptor); } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); +} +function worker_websocket_createClass(Constructor, protoProps, staticProps) { + if (protoProps) worker_websocket_defineProperties(Constructor.prototype, protoProps); + if (staticProps) worker_websocket_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function worker_websocket_toPropertyKey(arg) { + var key = worker_websocket_toPrimitive(arg, "string"); + return worker_websocket_typeof(key) === "symbol" ? key : String(key); +} +function worker_websocket_toPrimitive(input, hint) { + if (worker_websocket_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (worker_websocket_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal", delete record.arg, entry.completion = record; + return (hint === "string" ? String : Number)(input); +} +function worker_websocket_inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) worker_websocket_setPrototypeOf(subClass, superClass); +} +function worker_websocket_setPrototypeOf(o, p) { + worker_websocket_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return worker_websocket_setPrototypeOf(o, p); +} +function worker_websocket_createSuper(Derived) { + var hasNativeReflectConstruct = worker_websocket_isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = worker_websocket_getPrototypeOf(Derived), + result; + if (hasNativeReflectConstruct) { + var NewTarget = worker_websocket_getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return worker_websocket_possibleConstructorReturn(this, result); + }; +} +function worker_websocket_possibleConstructorReturn(self, call) { + if (call && (worker_websocket_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); } - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + return worker_websocket_assertThisInitialized(self); +} +function worker_websocket_assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) return iteratorMethod.call(iterable); - if ("function" == typeof iterable.next) return iterable; - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; - return next.value = undefined, next.done = !0, next; - }; - return next.next = next; - } - } - return { - next: doneResult - }; + return self; +} +function worker_websocket_isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; } - function doneResult() { - return { - value: undefined, - done: !0 +} +function worker_websocket_getPrototypeOf(o) { + worker_websocket_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return worker_websocket_getPrototypeOf(o); +} +/** + * @license MIT + * @copyright JC Brand + * + * @typedef {import("./connection.js").default} Connection + * @typedef {import("./builder.js").default} Builder + */ + + + + + +/** + * Helper class that handles a websocket connection inside a shared worker. + */ +var WorkerWebsocket = /*#__PURE__*/function (_Websocket) { + worker_websocket_inherits(WorkerWebsocket, _Websocket); + var _super = worker_websocket_createSuper(WorkerWebsocket); + /** + * Create and initialize a Strophe.WorkerWebsocket object. + * @param {Connection} connection - The Strophe.Connection + */ + function WorkerWebsocket(connection) { + var _this; + worker_websocket_classCallCheck(this, WorkerWebsocket); + _this = _super.call(this, connection); + _this._conn = connection; + _this.worker = new SharedWorker(_this._conn.options.worker, 'Strophe XMPP Connection'); + _this.worker.onerror = function (e) { + var _console; + (_console = console) === null || _console === void 0 ? void 0 : _console.error(e); + src_core.log(src_core.LogLevel.ERROR, "Shared Worker Error: ".concat(e)); }; + return _this; } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { - var ctor = "function" == typeof genFun && genFun.constructor; - return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); - }, exports.mark = function (genFun) { - return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; - }, exports.awrap = function (arg) { - return { - __await: arg - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - void 0 === PromiseImpl && (PromiseImpl = Promise); - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { - return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; - } - return next.done = !0, next; - }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; - } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + + /** + * @private + */ + worker_websocket_createClass(WorkerWebsocket, [{ + key: "_setSocket", + value: function _setSocket() { + var _this2 = this; + this.socket = { + /** @param {string} str */ + send: function send(str) { + return _this2.worker.port.postMessage(['send', str]); + }, + close: function close() { + return _this2.worker.port.postMessage(['_closeSocket']); + }, + onopen: function onopen() {}, + /** @param {ErrorEvent} e */ + onerror: function onerror(e) { + return _this2._onError(e); + }, + /** @param {CloseEvent} e */ + onclose: function onclose(e) { + return _this2._onClose(e); + }, + onmessage: function onmessage() {}, + readyState: null + }; + } + }, { + key: "_connect", + value: function _connect() { + var _this3 = this; + this._setSocket(); + /** @param {MessageEvent} m */ + this._messageHandler = function (m) { + return _this3._onInitialMessage(m); + }; + this.worker.port.start(); + this.worker.port.onmessage = function (ev) { + return _this3._onWorkerMessage(ev); + }; + this.worker.port.postMessage(['_connect', this._conn.service, this._conn.jid]); + } + + /** + * @param {Function} callback + */ + }, { + key: "_attach", + value: function _attach(callback) { + var _this4 = this; + this._setSocket(); + /** @param {MessageEvent} m */ + this._messageHandler = function (m) { + return _this4._onMessage(m); + }; + this._conn.connect_callback = callback; + this.worker.port.start(); + this.worker.port.onmessage = function (ev) { + return _this4._onWorkerMessage(ev); + }; + this.worker.port.postMessage(['_attach', this._conn.service]); + } + + /** + * @param {number} status + * @param {string} jid + */ + }, { + key: "_attachCallback", + value: function _attachCallback(status, jid) { + if (status === src_core.Status.ATTACHED) { + this._conn.jid = jid; + this._conn.authenticated = true; + this._conn.connected = true; + this._conn.restored = true; + this._conn._changeConnectStatus(src_core.Status.ATTACHED); + } else if (status === src_core.Status.ATTACHFAIL) { + this._conn.authenticated = false; + this._conn.connected = false; + this._conn.restored = false; + this._conn._changeConnectStatus(src_core.Status.ATTACHFAIL); } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; + } + + /** + * @param {Element|Builder} pres - This stanza will be sent before disconnecting. + */ + }, { + key: "_disconnect", + value: function _disconnect(pres) { + pres && this._conn.send(pres); + var close = $build('close', { + 'xmlns': src_core.NS.FRAMING + }); + this._conn.xmlOutput(close.tree()); + var closeString = src_core.serialize(close); + this._conn.rawOutput(closeString); + this.worker.port.postMessage(['send', closeString]); + this._conn._doDisconnect(); + } + }, { + key: "_closeSocket", + value: function _closeSocket() { + this.socket.close(); + } + + /** + * Called by _onInitialMessage in order to replace itself with the general message handler. + * This method is overridden by WorkerWebsocket, which manages a + * websocket connection via a service worker and doesn't have direct access + * to the socket. + */ + }, { + key: "_replaceMessageHandler", + value: function _replaceMessageHandler() { + var _this5 = this; + /** @param {MessageEvent} m */ + this._messageHandler = function (m) { + return _this5._onMessage(m); + }; + } + + /** + * function that handles messages received from the service worker + * @private + * @param {MessageEvent} ev + */ + }, { + key: "_onWorkerMessage", + value: function _onWorkerMessage(ev) { + /** @type {Object.} */ + var lmap = {}; + lmap['debug'] = src_core.LogLevel.DEBUG; + lmap['info'] = src_core.LogLevel.INFO; + lmap['warn'] = src_core.LogLevel.WARN; + lmap['error'] = src_core.LogLevel.ERROR; + lmap['fatal'] = src_core.LogLevel.FATAL; + var data = ev.data; + var method_name = data[0]; + if (method_name === '_onMessage') { + this._messageHandler(data[1]); + } else if (method_name in this) { + try { + this[/** @type {'_attachCallback'|'_onOpen'|'_onClose'|'_onError'} */ + method_name].apply(this, ev.data.slice(1)); + } catch (e) { + src_core.log(src_core.LogLevel.ERROR, e); } + } else if (method_name === 'log') { + var level = data[1]; + var msg = data[2]; + src_core.log(lmap[level], msg); + } else { + src_core.log(src_core.LogLevel.ERROR, "Found unhandled service worker message: ".concat(data)); } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } - }, exports; + }]); + return WorkerWebsocket; +}(websocket); +/* harmony default export */ const worker_websocket = (WorkerWebsocket); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/core.js +function src_core_typeof(obj) { + "@babel/helpers - typeof"; + + return src_core_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, src_core_typeof(obj); } -function bookmarks_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); +function core_ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); } + return keys; } -function bookmarks_utils_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - bookmarks_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - function _throw(err) { - bookmarks_utils_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - _next(undefined); +function core_objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? core_ownKeys(Object(source), !0).forEach(function (key) { + core_defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : core_ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); - }; -} - - -var bookmarks_utils_converse$env = public_converse.env, - bookmarks_utils_Strophe = bookmarks_utils_converse$env.Strophe, - bookmarks_utils_sizzle = bookmarks_utils_converse$env.sizzle; -function checkBookmarksSupport() { - return _checkBookmarksSupport.apply(this, arguments); -} -function _checkBookmarksSupport() { - _checkBookmarksSupport = bookmarks_utils_asyncToGenerator( /*#__PURE__*/bookmarks_utils_regeneratorRuntime().mark(function _callee() { - var identity; - return bookmarks_utils_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return shared_api.disco.getIdentity('pubsub', 'pep', shared_converse.bare_jid); - case 2: - identity = _context.sent; - if (!shared_api.settings.get('allow_public_bookmarks')) { - _context.next = 7; - break; - } - return _context.abrupt("return", !!identity); - case 7: - return _context.abrupt("return", shared_api.disco.supports(bookmarks_utils_Strophe.NS.PUBSUB + '#publish-options', shared_converse.bare_jid)); - case 8: - case "end": - return _context.stop(); - } - }, _callee); - })); - return _checkBookmarksSupport.apply(this, arguments); + } + return target; } -function initBookmarks() { - return _initBookmarks.apply(this, arguments); +function core_defineProperty(obj, key, value) { + key = core_toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; } -function _initBookmarks() { - _initBookmarks = bookmarks_utils_asyncToGenerator( /*#__PURE__*/bookmarks_utils_regeneratorRuntime().mark(function _callee2() { - return bookmarks_utils_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - if (shared_api.settings.get('allow_bookmarks')) { - _context2.next = 2; - break; - } - return _context2.abrupt("return"); - case 2: - _context2.next = 4; - return checkBookmarksSupport(); - case 4: - if (!_context2.sent) { - _context2.next = 6; - break; - } - shared_converse.bookmarks = new shared_converse.Bookmarks(); - case 6: - case "end": - return _context2.stop(); - } - }, _callee2); - })); - return _initBookmarks.apply(this, arguments); +function core_toPropertyKey(arg) { + var key = core_toPrimitive(arg, "string"); + return src_core_typeof(key) === "symbol" ? key : String(key); } -function getNicknameFromBookmark(jid) { - var _converse$bookmarks, _converse$bookmarks$g; - if (!shared_api.settings.get('allow_bookmarks')) { - return null; +function core_toPrimitive(input, hint) { + if (src_core_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (src_core_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); } - return (_converse$bookmarks = shared_converse.bookmarks) === null || _converse$bookmarks === void 0 ? void 0 : (_converse$bookmarks$g = _converse$bookmarks.get(jid)) === null || _converse$bookmarks$g === void 0 ? void 0 : _converse$bookmarks$g.get('nick'); + return (hint === "string" ? String : Number)(input); } -function handleBookmarksPush(message) { - if (bookmarks_utils_sizzle("event[xmlns=\"".concat(bookmarks_utils_Strophe.NS.PUBSUB, "#event\"] items[node=\"").concat(bookmarks_utils_Strophe.NS.BOOKMARKS, "\"]"), message).length) { - shared_api.waitUntil('bookmarksInitialized').then(function () { - return shared_converse.bookmarks.createBookmarksFromStanza(message); - }).catch(function (e) { - return log.fatal(e); - }); + + + + + + + + + + + + + + + + + + + + + + +/** + * A container for all Strophe library functions. + * + * This object is a container for all the objects and constants + * used in the library. It is not meant to be instantiated, but to + * provide a namespace for library objects, constants, and functions. + * + * @namespace Strophe + * @property {Handler} Handler + * @property {Builder} Builder + * @property {Request} Request Represents HTTP Requests made for a BOSH connection + * @property {Bosh} Bosh Support for XMPP-over-HTTP via XEP-0124 (BOSH) + * @property {Websocket} Websocket Support for XMPP over websocket + * @property {WorkerWebsocket} WorkerWebsocket Support for XMPP over websocket in a shared worker + * @property {number} TIMEOUT=1.1 Timeout multiplier. A waiting BOSH HTTP request + * will be considered failed after Math.floor(TIMEOUT * wait) seconds have elapsed. + * This defaults to 1.1, and with default wait, 66 seconds. + * @property {number} SECONDARY_TIMEOUT=0.1 Secondary timeout multiplier. + * In cases where Strophe can detect early failure, it will consider the request + * failed if it doesn't return after `Math.floor(SECONDARY_TIMEOUT * wait)` + * seconds have elapsed. This defaults to 0.1, and with default wait, 6 seconds. + * @property {SASLAnonymous} SASLAnonymous SASL ANONYMOUS authentication. + * @property {SASLPlain} SASLPlain SASL PLAIN authentication + * @property {SASLSHA1} SASLSHA1 SASL SCRAM-SHA-1 authentication + * @property {SASLSHA256} SASLSHA256 SASL SCRAM-SHA-256 authentication + * @property {SASLSHA384} SASLSHA384 SASL SCRAM-SHA-384 authentication + * @property {SASLSHA512} SASLSHA512 SASL SCRAM-SHA-512 authentication + * @property {SASLOAuthBearer} SASLOAuthBearer SASL OAuth Bearer authentication + * @property {SASLExternal} SASLExternal SASL EXTERNAL authentication + * @property {SASLXOAuth2} SASLXOAuth2 SASL X-OAuth2 authentication + * @property {Status} Status + * @property {Object.} NS + * @property {XHTML} XHTML + */ +var core_Strophe = core_objectSpread(core_objectSpread({ + /** @constant: VERSION */ + VERSION: '1.6.1', + TIMEOUT: 1.1, + SECONDARY_TIMEOUT: 0.1, + shims: strophe_shims_namespaceObject, + Request: request, + // Transports + Bosh: bosh, + Websocket: websocket, + WorkerWebsocket: worker_websocket, + // Available authentication mechanisms + SASLAnonymous: sasl_anon, + SASLPlain: sasl_plain, + SASLSHA1: sasl_sha1, + SASLSHA256: sasl_sha256, + SASLSHA384: sasl_sha384, + SASLSHA512: sasl_sha512, + SASLOAuthBearer: sasl_oauthbearer, + SASLExternal: sasl_external, + SASLXOAuth2: sasl_xoauth2, + Builder: builder, + Connection: connection, + ElementType: ElementType, + ErrorCondition: ErrorCondition, + Handler: src_handler, + LogLevel: LogLevel, + /** @type {Object.} */ + NS: constants_NS, + SASLMechanism: sasl, + /** @type {Status} */ + Status: Status, + TimedHandler: timed_handler +}, src_utils_namespaceObject), {}, { + XHTML: core_objectSpread(core_objectSpread({}, XHTML), {}, { + validTag: validTag, + validCSS: validCSS, + validAttribute: validAttribute + }), + /** + * This function is used to extend the current namespaces in + * Strophe.NS. It takes a key and a value with the key being the + * name of the new namespace, with its actual value. + * @example: Strophe.addNamespace('PUBSUB', "http://jabber.org/protocol/pubsub"); + * + * @param {string} name - The name under which the namespace will be + * referenced under Strophe.NS + * @param {string} value - The actual namespace. + */ + addNamespace: function addNamespace(name, value) { + core_Strophe.NS[name] = value; + }, + /** + * _Private_ function that properly logs an error to the console + * @private + * @param {Error} e + */ + _handleError: function _handleError(e) { + if (typeof e.stack !== 'undefined') { + core_Strophe.fatal(e.stack); + } + core_Strophe.fatal('error: ' + e.message); + }, + /** + * User overrideable logging function. + * + * This function is called whenever the Strophe library calls any + * of the logging functions. The default implementation of this + * function logs only fatal errors. If client code wishes to handle the logging + * messages, it should override this with + * > Strophe.log = function (level, msg) { + * > (user code here) + * > }; + * + * Please note that data sent and received over the wire is logged + * via {@link Strophe.Connection#rawInput|Strophe.Connection.rawInput()} + * and {@link Strophe.Connection#rawOutput|Strophe.Connection.rawOutput()}. + * + * The different levels and their meanings are + * + * DEBUG - Messages useful for debugging purposes. + * INFO - Informational messages. This is mostly information like + * 'disconnect was called' or 'SASL auth succeeded'. + * WARN - Warnings about potential problems. This is mostly used + * to report transient connection errors like request timeouts. + * ERROR - Some error occurred. + * FATAL - A non-recoverable fatal error occurred. + * + * @param {number} level - The log level of the log message. + * This will be one of the values in Strophe.LogLevel. + * @param {string} msg - The log message. + */ + log: function log(level, msg) { + if (level === this.LogLevel.FATAL) { + var _console; + (_console = console) === null || _console === void 0 ? void 0 : _console.error(msg); + } + }, + /** + * Log a message at the Strophe.LogLevel.DEBUG level. + * @param {string} msg - The log message. + */ + debug: function debug(msg) { + this.log(this.LogLevel.DEBUG, msg); + }, + /** + * Log a message at the Strophe.LogLevel.INFO level. + * @param {string} msg - The log message. + */ + info: function info(msg) { + this.log(this.LogLevel.INFO, msg); + }, + /** + * Log a message at the Strophe.LogLevel.WARN level. + * @param {string} msg - The log message. + */ + warn: function warn(msg) { + this.log(this.LogLevel.WARN, msg); + }, + /** + * Log a message at the Strophe.LogLevel.ERROR level. + * @param {string} msg - The log message. + */ + error: function error(msg) { + this.log(this.LogLevel.ERROR, msg); + }, + /** + * Log a message at the Strophe.LogLevel.FATAL level. + * @param {string} msg - The log message. + */ + fatal: function fatal(msg) { + this.log(this.LogLevel.FATAL, msg); + }, + /** + * _Private_ variable that keeps track of the request ids for connections. + * @private + */ + _requestId: 0, + /** + * _Private_ variable Used to store plugin names that need + * initialization on Strophe.Connection construction. + * @private + * @type {Object.} + */ + _connectionPlugins: {}, + /** + * Extends the Strophe.Connection object with the given plugin. + * @param {string} name - The name of the extension. + * @param {Object} ptype - The plugin's prototype. + */ + addConnectionPlugin: function addConnectionPlugin(name, ptype) { + core_Strophe._connectionPlugins[name] = ptype; } - return true; -} -;// CONCATENATED MODULE: ./src/headless/plugins/bookmarks/index.js -function bookmarks_typeof(obj) { +}); +/* harmony default export */ const src_core = (core_Strophe); +;// CONCATENATED MODULE: ./node_modules/strophe.js/src/bosh.js +function bosh_typeof(obj) { "@babel/helpers - typeof"; - return bookmarks_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return bosh_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, bookmarks_typeof(obj); + }, bosh_typeof(obj); } -function bookmarks_regeneratorRuntime() { - "use strict"; - - /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ - bookmarks_regeneratorRuntime = function _regeneratorRuntime() { - return exports; - }; - var exports = {}, - Op = Object.prototype, - hasOwn = Op.hasOwnProperty, - defineProperty = Object.defineProperty || function (obj, key, desc) { - obj[key] = desc.value; - }, - $Symbol = "function" == typeof Symbol ? Symbol : {}, - iteratorSymbol = $Symbol.iterator || "@@iterator", - asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", - toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - function define(obj, key, value) { - return Object.defineProperty(obj, key, { - value: value, - enumerable: !0, - configurable: !0, - writable: !0 - }), obj[key]; +function bosh_classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); } - try { - define({}, ""); - } catch (err) { - define = function define(obj, key, value) { - return obj[key] = value; - }; +} +function bosh_defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, bosh_toPropertyKey(descriptor.key), descriptor); } - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, - generator = Object.create(protoGenerator.prototype), - context = new Context(tryLocsList || []); - return defineProperty(generator, "_invoke", { - value: makeInvokeMethod(innerFn, self, context) - }), generator; +} +function bosh_createClass(Constructor, protoProps, staticProps) { + if (protoProps) bosh_defineProperties(Constructor.prototype, protoProps); + if (staticProps) bosh_defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} +function bosh_toPropertyKey(arg) { + var key = bosh_toPrimitive(arg, "string"); + return bosh_typeof(key) === "symbol" ? key : String(key); +} +function bosh_toPrimitive(input, hint) { + if (bosh_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (bosh_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); } - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } + return (hint === "string" ? String : Number)(input); +} +/** + * A JavaScript library to enable BOSH in Strophejs. + * + * this library uses Bidirectional-streams Over Synchronous HTTP (BOSH) + * to emulate a persistent, stateful, two-way connection to an XMPP server. + * More information on BOSH can be found in XEP 124. + */ + +/** + * @typedef {import("./connection.js").default} Connection + * @typedef {import("./request.js").default} Request + */ + + + + +/** + * _Private_ helper class that handles BOSH Connections + * The Strophe.Bosh class is used internally by Strophe.Connection + * to encapsulate BOSH sessions. It is not meant to be used from user's code. + */ +var Bosh = /*#__PURE__*/function () { + /** + * @param {Connection} connection - The Strophe.Connection that will use BOSH. + */ + function Bosh(connection) { + var _Bosh$prototype$strip; + bosh_classCallCheck(this, Bosh); + this._conn = connection; + /* request id for body tags */ + this.rid = Math.floor(Math.random() * 4294967295); + /* The current session ID. */ + this.sid = null; + + // default BOSH values + this.hold = 1; + this.wait = 60; + this.window = 5; + this.errors = 0; + this.inactivity = null; + + /** + * BOSH-Connections will have all stanzas wrapped in a tag when + * passed to {@link Strophe.Connection#xmlInput|xmlInput()} or {@link Strophe.Connection#xmlOutput|xmlOutput()}. + * To strip this tag, User code can set {@link Strophe.Bosh#strip|strip} to `true`: + * + * > // You can set `strip` on the prototype + * > Strophe.Bosh.prototype.strip = true; + * + * > // Or you can set it on the Bosh instance (which is `._proto` on the connection instance. + * > const conn = new Strophe.Connection(); + * > conn._proto.strip = true; + * + * This will enable stripping of the body tag in both + * {@link Strophe.Connection#xmlInput|xmlInput} and {@link Strophe.Connection#xmlOutput|xmlOutput}. + * + * @property {boolean} [strip=false] + */ + this.strip = (_Bosh$prototype$strip = Bosh.prototype.strip) !== null && _Bosh$prototype$strip !== void 0 ? _Bosh$prototype$strip : false; + this.lastResponseHeaders = null; + /** @type {Request[]} */ + this._requests = []; } - exports.wrap = wrap; - var ContinueSentinel = {}; - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - var IteratorPrototype = {}; - define(IteratorPrototype, iteratorSymbol, function () { - return this; - }); - var getProto = Object.getPrototypeOf, - NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - define(prototype, method, function (arg) { - return this._invoke(method, arg); + + /** + * _Private_ helper function to generate the wrapper for BOSH. + * @private + * @return {Builder} - A Strophe.Builder with a element. + */ + bosh_createClass(Bosh, [{ + key: "_buildBody", + value: function _buildBody() { + var bodyWrap = $build('body', { + 'rid': this.rid++, + 'xmlns': src_core.NS.HTTPBIND }); - }); - } - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if ("throw" !== record.type) { - var result = record.arg, - value = result.value; - return value && "object" == bookmarks_typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }) : PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped, resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); + if (this.sid !== null) { + bodyWrap.attrs({ + 'sid': this.sid }); } - reject(record.arg); + if (this._conn.options.keepalive && this._conn._sessionCachingSupported()) { + this._cacheSession(); + } + return bodyWrap; } - var previousPromise; - defineProperty(this, "_invoke", { - value: function value(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + + /** + * Reset the connection. + * This function is called by the reset function of the Strophe Connection + */ + }, { + key: "_reset", + value: function _reset() { + this.rid = Math.floor(Math.random() * 4294967295); + this.sid = null; + this.errors = 0; + if (this._conn._sessionCachingSupported()) { + sessionStorage.removeItem('strophe-bosh-session'); } - }); - } - function makeInvokeMethod(innerFn, self, context) { - var state = "suspendedStart"; - return function (method, arg) { - if ("executing" === state) throw new Error("Generator is already running"); - if ("completed" === state) { - if ("throw" === method) throw arg; - return doneResult(); + this._conn.nextValidRid(this.rid); + } + + /** + * _Private_ function that initializes the BOSH connection. + * Creates and sends the Request that initializes the BOSH connection. + * @param {number} wait - The optional HTTPBIND wait value. This is the + * time the server will wait before returning an empty result for + * a request. The default setting of 60 seconds is recommended. + * Other settings will require tweaks to the Strophe.TIMEOUT value. + * @param {number} hold - The optional HTTPBIND hold value. This is the + * number of connections the server will hold at one time. This + * should almost always be set to 1 (the default). + * @param {string} route + */ + }, { + key: "_connect", + value: function _connect(wait, hold, route) { + this.wait = wait || this.wait; + this.hold = hold || this.hold; + this.errors = 0; + var body = this._buildBody().attrs({ + 'to': this._conn.domain, + 'xml:lang': 'en', + 'wait': this.wait, + 'hold': this.hold, + 'content': 'text/xml; charset=utf-8', + 'ver': '1.6', + 'xmpp:version': '1.0', + 'xmlns:xmpp': src_core.NS.BOSH + }); + if (route) { + body.attrs({ + route: route + }); } - for (context.method = method, context.arg = arg;;) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } + var _connect_cb = this._conn._connect_cb; + this._requests.push(new src_core.Request(body.tree(), this._onRequestStateChange.bind(this, _connect_cb.bind(this._conn)), Number(body.tree().getAttribute('rid')))); + this._throttledRequestHandler(); + } + + /** + * Attach to an already created and authenticated BOSH session. + * + * This function is provided to allow Strophe to attach to BOSH + * sessions which have been created externally, perhaps by a Web + * application. This is often used to support auto-login type features + * without putting user credentials into the page. + * + * @param {string} jid - The full JID that is bound by the session. + * @param {string} sid - The SID of the BOSH session. + * @param {number} rid - The current RID of the BOSH session. This RID + * will be used by the next request. + * @param {Function} callback The connect callback function. + * @param {number} wait - The optional HTTPBIND wait value. This is the + * time the server will wait before returning an empty result for + * a request. The default setting of 60 seconds is recommended. + * Other settings will require tweaks to the Strophe.TIMEOUT value. + * @param {number} hold - The optional HTTPBIND hold value. This is the + * number of connections the server will hold at one time. This + * should almost always be set to 1 (the default). + * @param {number} wind - The optional HTTBIND window value. This is the + * allowed range of request ids that are valid. The default is 5. + */ + }, { + key: "_attach", + value: function _attach(jid, sid, rid, callback, wait, hold, wind) { + this._conn.jid = jid; + this.sid = sid; + this.rid = rid; + this._conn.connect_callback = callback; + this._conn.domain = src_core.getDomainFromJid(this._conn.jid); + this._conn.authenticated = true; + this._conn.connected = true; + this.wait = wait || this.wait; + this.hold = hold || this.hold; + this.window = wind || this.window; + this._conn._changeConnectStatus(src_core.Status.ATTACHED, null); + } + + /** + * Attempt to restore a cached BOSH session + * + * @param {string} jid - The full JID that is bound by the session. + * This parameter is optional but recommended, specifically in cases + * where prebinded BOSH sessions are used where it's important to know + * that the right session is being restored. + * @param {Function} callback The connect callback function. + * @param {number} wait - The optional HTTPBIND wait value. This is the + * time the server will wait before returning an empty result for + * a request. The default setting of 60 seconds is recommended. + * Other settings will require tweaks to the Strophe.TIMEOUT value. + * @param {number} hold - The optional HTTPBIND hold value. This is the + * number of connections the server will hold at one time. This + * should almost always be set to 1 (the default). + * @param {number} wind - The optional HTTBIND window value. This is the + * allowed range of request ids that are valid. The default is 5. + */ + }, { + key: "_restore", + value: function _restore(jid, callback, wait, hold, wind) { + var session = JSON.parse(sessionStorage.getItem('strophe-bosh-session')); + if (typeof session !== 'undefined' && session !== null && session.rid && session.sid && session.jid && (typeof jid === 'undefined' || jid === null || src_core.getBareJidFromJid(session.jid) === src_core.getBareJidFromJid(jid) || + // If authcid is null, then it's an anonymous login, so + // we compare only the domains: + src_core.getNodeFromJid(jid) === null && src_core.getDomainFromJid(session.jid) === jid)) { + this._conn.restored = true; + this._attach(session.jid, session.sid, session.rid, callback, wait, hold, wind); + } else { + var error = new Error('_restore: no restoreable session.'); + error.name = 'StropheSessionError'; + throw error; + } + } + + /** + * _Private_ handler for the beforeunload event. + * This handler is used to process the Bosh-part of the initial request. + * @private + */ + }, { + key: "_cacheSession", + value: function _cacheSession() { + if (this._conn.authenticated) { + if (this._conn.jid && this.rid && this.sid) { + sessionStorage.setItem('strophe-bosh-session', JSON.stringify({ + 'jid': this._conn.jid, + 'rid': this.rid, + 'sid': this.sid + })); } - if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { - if ("suspendedStart" === state) throw state = "completed", context.arg; - context.dispatchException(context.arg); - } else "return" === context.method && context.abrupt("return", context.arg); - state = "executing"; - var record = tryCatch(innerFn, self, context); - if ("normal" === record.type) { - if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; - return { - value: record.arg, - done: context.done - }; + } else { + sessionStorage.removeItem('strophe-bosh-session'); + } + } + + /** + * _Private_ handler for initial connection request. + * This handler is used to process the Bosh-part of the initial request. + * @param {Element} bodyWrap - The received stanza. + */ + }, { + key: "_connect_cb", + value: function _connect_cb(bodyWrap) { + var typ = bodyWrap.getAttribute('type'); + if (typ !== null && typ === 'terminate') { + // an error occurred + var cond = bodyWrap.getAttribute('condition'); + src_core.error('BOSH-Connection failed: ' + cond); + var conflict = bodyWrap.getElementsByTagName('conflict'); + if (cond !== null) { + if (cond === 'remote-stream-error' && conflict.length > 0) { + cond = 'conflict'; + } + this._conn._changeConnectStatus(src_core.Status.CONNFAIL, cond); + } else { + this._conn._changeConnectStatus(src_core.Status.CONNFAIL, 'unknown'); } - "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + this._conn._doDisconnect(cond); + return src_core.Status.CONNFAIL; } - }; - } - function maybeInvokeDelegate(delegate, context) { - var methodName = context.method, - method = delegate.iterator[methodName]; - if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; - var record = tryCatch(method, delegate.iterator, context.arg); - if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; - var info = record.arg; - return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); - } - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); - } - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal", delete record.arg, entry.completion = record; - } - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); - } - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) return iteratorMethod.call(iterable); - if ("function" == typeof iterable.next) return iterable; - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; - return next.value = undefined, next.done = !0, next; - }; - return next.next = next; + + // check to make sure we don't overwrite these if _connect_cb is + // called multiple times in the case of missing stream:features + if (!this.sid) { + this.sid = bodyWrap.getAttribute('sid'); + } + var wind = bodyWrap.getAttribute('requests'); + if (wind) { + this.window = parseInt(wind, 10); + } + var hold = bodyWrap.getAttribute('hold'); + if (hold) { + this.hold = parseInt(hold, 10); + } + var wait = bodyWrap.getAttribute('wait'); + if (wait) { + this.wait = parseInt(wait, 10); + } + var inactivity = bodyWrap.getAttribute('inactivity'); + if (inactivity) { + this.inactivity = parseInt(inactivity, 10); + } + } + + /** + * _Private_ part of Connection.disconnect for Bosh + * @param {Element|Builder} pres - This stanza will be sent before disconnecting. + */ + }, { + key: "_disconnect", + value: function _disconnect(pres) { + this._sendTerminate(pres); + } + + /** + * _Private_ function to disconnect. + * Resets the SID and RID. + */ + }, { + key: "_doDisconnect", + value: function _doDisconnect() { + this.sid = null; + this.rid = Math.floor(Math.random() * 4294967295); + if (this._conn._sessionCachingSupported()) { + sessionStorage.removeItem('strophe-bosh-session'); + } + this._conn.nextValidRid(this.rid); + } + + /** + * _Private_ function to check if the Request queue is empty. + * @return {boolean} - True, if there are no Requests queued, False otherwise. + */ + }, { + key: "_emptyQueue", + value: function _emptyQueue() { + return this._requests.length === 0; + } + + /** + * _Private_ function to call error handlers registered for HTTP errors. + * @private + * @param {Request} req - The request that is changing readyState. + */ + }, { + key: "_callProtocolErrorHandlers", + value: function _callProtocolErrorHandlers(req) { + var reqStatus = Bosh._getRequestStatus(req); + var err_callback = this._conn.protocolErrorHandlers.HTTP[reqStatus]; + if (err_callback) { + err_callback.call(this, reqStatus); + } + } + + /** + * _Private_ function to handle the error count. + * + * Requests are resent automatically until their error count reaches + * 5. Each time an error is encountered, this function is called to + * increment the count and disconnect if the count is too high. + * @private + * @param {number} reqStatus - The request status. + */ + }, { + key: "_hitError", + value: function _hitError(reqStatus) { + this.errors++; + src_core.warn('request errored, status: ' + reqStatus + ', number of errors: ' + this.errors); + if (this.errors > 4) { + this._conn._onDisconnectTimeout(); + } + } + + /** + * @callback connectionCallback + * @param {Connection} connection + */ + + /** + * Called on stream start/restart when no stream:features + * has been received and sends a blank poll request. + * @param {connectionCallback} callback + */ + }, { + key: "_no_auth_received", + value: function _no_auth_received(callback) { + src_core.warn('Server did not yet offer a supported authentication ' + 'mechanism. Sending a blank poll request.'); + if (callback) { + callback = callback.bind(this._conn); + } else { + callback = this._conn._connect_cb.bind(this._conn); + } + var body = this._buildBody(); + this._requests.push(new src_core.Request(body.tree(), this._onRequestStateChange.bind(this, callback), Number(body.tree().getAttribute('rid')))); + this._throttledRequestHandler(); + } + + /** + * _Private_ timeout handler for handling non-graceful disconnection. + * Cancels all remaining Requests and clears the queue. + */ + }, { + key: "_onDisconnectTimeout", + value: function _onDisconnectTimeout() { + this._abortAllRequests(); + } + + /** + * _Private_ helper function that makes sure all pending requests are aborted. + */ + }, { + key: "_abortAllRequests", + value: function _abortAllRequests() { + while (this._requests.length > 0) { + var req = this._requests.pop(); + req.abort = true; + req.xhr.abort(); + req.xhr.onreadystatechange = function () {}; } } - return { - next: doneResult - }; - } - function doneResult() { - return { - value: undefined, - done: !0 - }; - } - return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { - value: GeneratorFunctionPrototype, - configurable: !0 - }), defineProperty(GeneratorFunctionPrototype, "constructor", { - value: GeneratorFunction, - configurable: !0 - }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { - var ctor = "function" == typeof genFun && genFun.constructor; - return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); - }, exports.mark = function (genFun) { - return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; - }, exports.awrap = function (arg) { - return { - __await: arg - }; - }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { - return this; - }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - void 0 === PromiseImpl && (PromiseImpl = Promise); - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { - return this; - }), define(Gp, "toString", function () { - return "[object Generator]"; - }), exports.keys = function (val) { - var object = Object(val), - keys = []; - for (var key in object) keys.push(key); - return keys.reverse(), function next() { - for (; keys.length;) { - var key = keys.pop(); - if (key in object) return next.value = key, next.done = !1, next; + + /** + * _Private_ handler called by {@link Strophe.Connection#_onIdle|Strophe.Connection._onIdle()}. + * Sends all queued Requests or polls with empty Request if there are none. + */ + }, { + key: "_onIdle", + value: function _onIdle() { + var data = this._conn._data; + // if no requests are in progress, poll + if (this._conn.authenticated && this._requests.length === 0 && data.length === 0 && !this._conn.disconnecting) { + src_core.debug('no requests during idle cycle, sending blank request'); + data.push(null); } - return next.done = !0, next; - }; - }, exports.values = values, Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); - }, - stop: function stop() { - this.done = !0; - var rootRecord = this.tryEntries[0].completion; - if ("throw" === rootRecord.type) throw rootRecord.arg; - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) throw exception; - var context = this; - function handle(loc, caught) { - return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + if (this._conn.paused) { + return; } - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i], - record = entry.completion; - if ("root" === entry.tryLoc) return handle("end"); - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"), - hasFinally = hasOwn.call(entry, "finallyLoc"); - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); - } else if (hasCatch) { - if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); - } else { - if (!hasFinally) throw new Error("try statement without catch or finally"); - if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + if (this._requests.length < 2 && data.length > 0) { + var body = this._buildBody(); + for (var i = 0; i < data.length; i++) { + if (data[i] !== null) { + if (data[i] === 'restart') { + body.attrs({ + 'to': this._conn.domain, + 'xml:lang': 'en', + 'xmpp:restart': 'true', + 'xmlns:xmpp': src_core.NS.BOSH + }); + } else { + body.cnode( /** @type {Element} */data[i]).up(); + } } } + delete this._conn._data; + this._conn._data = []; + this._requests.push(new src_core.Request(body.tree(), this._onRequestStateChange.bind(this, this._conn._dataRecv.bind(this._conn)), Number(body.tree().getAttribute('rid')))); + this._throttledRequestHandler(); } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; + if (this._requests.length > 0) { + var time_elapsed = this._requests[0].age(); + if (this._requests[0].dead !== null) { + if (this._requests[0].timeDead() > Math.floor(src_core.SECONDARY_TIMEOUT * this.wait)) { + this._throttledRequestHandler(); + } + } + if (time_elapsed > Math.floor(src_core.TIMEOUT * this.wait)) { + src_core.warn('Request ' + this._requests[0].id + ' timed out, over ' + Math.floor(src_core.TIMEOUT * this.wait) + ' seconds since last activity'); + this._throttledRequestHandler(); } } - finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); - var record = finallyEntry ? finallyEntry.completion : {}; - return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); - }, - complete: function complete(record, afterLoc) { - if ("throw" === record.type) throw record.arg; - return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + + /** + * Returns the HTTP status code from a {@link Strophe.Request} + * @private + * @param {Request} req - The {@link Strophe.Request} instance. + * @param {number} [def] - The default value that should be returned if no status value was found. + */ + }, { + key: "_onRequestStateChange", + value: + /** + * _Private_ handler for {@link Strophe.Request} state changes. + * + * This function is called when the XMLHttpRequest readyState changes. + * It contains a lot of error handling logic for the many ways that + * requests can fail, and calls the request callback when requests + * succeed. + * @private + * + * @param {Function} func - The handler for the request. + * @param {Request} req - The request that is changing readyState. + */ + function _onRequestStateChange(func, req) { + src_core.debug('request id ' + req.id + '.' + req.sends + ' state changed to ' + req.xhr.readyState); + if (req.abort) { + req.abort = false; + return; } - }, - catch: function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if ("throw" === record.type) { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; + if (req.xhr.readyState !== 4) { + // The request is not yet complete + return; + } + var reqStatus = Bosh._getRequestStatus(req); + this.lastResponseHeaders = req.xhr.getAllResponseHeaders(); + if (this._conn.disconnecting && reqStatus >= 400) { + this._hitError(reqStatus); + this._callProtocolErrorHandlers(req); + return; + } + var reqIs0 = this._requests[0] === req; + var reqIs1 = this._requests[1] === req; + var valid_request = reqStatus > 0 && reqStatus < 500; + var too_many_retries = req.sends > this._conn.maxRetries; + if (valid_request || too_many_retries) { + // remove from internal queue + this._removeRequest(req); + src_core.debug('request id ' + req.id + ' should now be removed'); + } + if (reqStatus === 200) { + // request succeeded + // if request 1 finished, or request 0 finished and request + // 1 is over Strophe.SECONDARY_TIMEOUT seconds old, we need to + // restart the other - both will be in the first spot, as the + // completed request has been removed from the queue already + if (reqIs1 || reqIs0 && this._requests.length > 0 && this._requests[0].age() > Math.floor(src_core.SECONDARY_TIMEOUT * this.wait)) { + this._restartRequest(0); + } + this._conn.nextValidRid(req.rid + 1); + src_core.debug('request id ' + req.id + '.' + req.sends + ' got 200'); + func(req); // call handler + this.errors = 0; + } else if (reqStatus === 0 || reqStatus >= 400 && reqStatus < 600 || reqStatus >= 12000) { + // request failed + src_core.error('request id ' + req.id + '.' + req.sends + ' error ' + reqStatus + ' happened'); + this._hitError(reqStatus); + this._callProtocolErrorHandlers(req); + if (reqStatus >= 400 && reqStatus < 500) { + this._conn._changeConnectStatus(src_core.Status.DISCONNECTING, null); + this._conn._doDisconnect(); } + } else { + src_core.error('request id ' + req.id + '.' + req.sends + ' error ' + reqStatus + ' happened'); + } + if (!valid_request && !too_many_retries) { + this._throttledRequestHandler(); + } else if (too_many_retries && !this._conn.connected) { + this._conn._changeConnectStatus(src_core.Status.CONNFAIL, 'giving-up'); } - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - return this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } - }, exports; -} -function bookmarks_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} -function bookmarks_asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - function _next(value) { - bookmarks_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + + /** + * _Private_ function to process a request in the queue. + * + * This function takes requests off the queue and sends them and + * restarts dead requests. + * @private + * + * @param {number} i - The index of the request in the queue. + */ + }, { + key: "_processRequest", + value: function _processRequest(i) { + var _this = this; + var req = this._requests[i]; + var reqStatus = Bosh._getRequestStatus(req, -1); + + // make sure we limit the number of retries + if (req.sends > this._conn.maxRetries) { + this._conn._onDisconnectTimeout(); + return; } - function _throw(err) { - bookmarks_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + var time_elapsed = req.age(); + var primary_timeout = !isNaN(time_elapsed) && time_elapsed > Math.floor(src_core.TIMEOUT * this.wait); + var secondary_timeout = req.dead !== null && req.timeDead() > Math.floor(src_core.SECONDARY_TIMEOUT * this.wait); + var server_error = req.xhr.readyState === 4 && (reqStatus < 1 || reqStatus >= 500); + if (primary_timeout || secondary_timeout || server_error) { + if (secondary_timeout) { + src_core.error("Request ".concat(this._requests[i].id, " timed out (secondary), restarting")); + } + req.abort = true; + req.xhr.abort(); + // setting to null fails on IE6, so set to empty function + req.xhr.onreadystatechange = function () {}; + this._requests[i] = new src_core.Request(req.xmlData, req.origFunc, req.rid, req.sends); + req = this._requests[i]; } - _next(undefined); - }); - }; -} -/** - * @description - * Converse.js plugin which adds views for bookmarks specified in XEP-0048. - * @copyright 2022, the Converse.js contributors - * @license Mozilla Public License (MPLv2) - */ - + if (req.xhr.readyState === 0) { + var _this$_conn$rawOutput, _this$_conn3; + src_core.debug('request id ' + req.id + '.' + req.sends + ' posting'); + try { + var content_type = this._conn.options.contentType || 'text/xml; charset=utf-8'; + req.xhr.open('POST', this._conn.service, this._conn.options.sync ? false : true); + if (typeof req.xhr.setRequestHeader !== 'undefined') { + // IE9 doesn't have setRequestHeader + req.xhr.setRequestHeader('Content-Type', content_type); + } + if (this._conn.options.withCredentials) { + req.xhr.withCredentials = true; + } + } catch (e2) { + src_core.error('XHR open failed: ' + e2.toString()); + if (!this._conn.connected) { + this._conn._changeConnectStatus(src_core.Status.CONNFAIL, 'bad-service'); + } + this._conn.disconnect(); + return; + } + // Fires the XHR request -- may be invoked immediately + // or on a gradually expanding retry window for reconnects + var sendFunc = function sendFunc() { + req.date = new Date().valueOf(); + if (_this._conn.options.customHeaders) { + var headers = _this._conn.options.customHeaders; + for (var header in headers) { + if (Object.prototype.hasOwnProperty.call(headers, header)) { + req.xhr.setRequestHeader(header, headers[header]); + } + } + } + req.xhr.send(req.data); + }; + // Implement progressive backoff for reconnects -- + // First retry (send === 1) should also be instantaneous + if (req.sends > 1) { + // Using a cube of the retry number creates a nicely + // expanding retry window + var backoff = Math.min(Math.floor(src_core.TIMEOUT * this.wait), Math.pow(req.sends, 3)) * 1000; + setTimeout(function () { + // XXX: setTimeout should be called only with function expressions (23974bc1) + sendFunc(); + }, backoff); + } else { + sendFunc(); + } + req.sends++; + if (this.strip && req.xmlData.nodeName === 'body' && req.xmlData.childNodes.length) { + var _this$_conn$xmlOutput, _this$_conn; + (_this$_conn$xmlOutput = (_this$_conn = this._conn).xmlOutput) === null || _this$_conn$xmlOutput === void 0 ? void 0 : _this$_conn$xmlOutput.call(_this$_conn, req.xmlData.children[0]); + } else { + var _this$_conn$xmlOutput2, _this$_conn2; + (_this$_conn$xmlOutput2 = (_this$_conn2 = this._conn).xmlOutput) === null || _this$_conn$xmlOutput2 === void 0 ? void 0 : _this$_conn$xmlOutput2.call(_this$_conn2, req.xmlData); + } + (_this$_conn$rawOutput = (_this$_conn3 = this._conn).rawOutput) === null || _this$_conn$rawOutput === void 0 ? void 0 : _this$_conn$rawOutput.call(_this$_conn3, req.data); + } else { + src_core.debug('_processRequest: ' + (i === 0 ? 'first' : 'second') + ' request has readyState of ' + req.xhr.readyState); + } + } + /** + * _Private_ function to remove a request from the queue. + * @private + * @param {Request} req - The request to remove. + */ + }, { + key: "_removeRequest", + value: function _removeRequest(req) { + src_core.debug('removing request'); + for (var i = this._requests.length - 1; i >= 0; i--) { + if (req === this._requests[i]) { + this._requests.splice(i, 1); + } + } + // IE6 fails on setting to null, so set to empty function + req.xhr.onreadystatechange = function () {}; + this._throttledRequestHandler(); + } + /** + * _Private_ function to restart a request that is presumed dead. + * @private + * + * @param {number} i - The index of the request in the queue. + */ + }, { + key: "_restartRequest", + value: function _restartRequest(i) { + var req = this._requests[i]; + if (req.dead === null) { + req.dead = new Date(); + } + this._processRequest(i); + } -var bookmarks_Strophe = public_converse.env.Strophe; -bookmarks_Strophe.addNamespace('BOOKMARKS', 'storage:bookmarks'); -public_converse.plugins.add('converse-bookmarks', { - dependencies: ["converse-chatboxes", "converse-muc"], - overrides: { - // Overrides mentioned here will be picked up by converse.js's - // plugin architecture they will replace existing methods on the - // relevant objects or classes. - // New functions which don't exist yet can also be added. + /** + * _Private_ function to get a stanza out of a request. + * Tries to extract a stanza out of a Request Object. + * When this fails the current connection will be disconnected. + * + * @param {Request} req - The Request. + * @return {Element} - The stanza that was passed. + */ + }, { + key: "_reqToData", + value: function _reqToData(req) { + try { + return req.getResponse(); + } catch (e) { + if (e.message !== 'parsererror') { + throw e; + } + this._conn.disconnect('strophe-parsererror'); + } + } - ChatRoom: { - getDisplayName: function getDisplayName() { - var _converse$bookmarks; - var _this$__super__ = this.__super__, - _converse = _this$__super__._converse, - getDisplayName = _this$__super__.getDisplayName; - var bookmark = this.get('bookmarked') ? (_converse$bookmarks = _converse.bookmarks) === null || _converse$bookmarks === void 0 ? void 0 : _converse$bookmarks.get(this.get('jid')) : null; - return (bookmark === null || bookmark === void 0 ? void 0 : bookmark.get('name')) || getDisplayName.apply(this, arguments); - }, - getAndPersistNickname: function getAndPersistNickname(nick) { - nick = nick || getNicknameFromBookmark(this.get('jid')); - return this.__super__.getAndPersistNickname.call(this, nick); + /** + * _Private_ function to send initial disconnect sequence. + * + * This is the first step in a graceful disconnect. It sends + * the BOSH server a terminate body and includes an unavailable + * presence if authentication has completed. + * @private + * @param {Element|Builder} [pres] + */ + }, { + key: "_sendTerminate", + value: function _sendTerminate(pres) { + src_core.debug('_sendTerminate was called'); + var body = this._buildBody().attrs({ + type: 'terminate' + }); + var el = pres instanceof builder ? pres.tree() : pres; + if (pres) { + body.cnode(el); } + var req = new src_core.Request(body.tree(), this._onRequestStateChange.bind(this, this._conn._dataRecv.bind(this._conn)), Number(body.tree().getAttribute('rid'))); + this._requests.push(req); + this._throttledRequestHandler(); } - }, - initialize: function initialize() { - // Configuration values for this plugin - // ==================================== - // Refer to docs/source/configuration.rst for explanations of these - // configuration settings. - shared_api.settings.extend({ - allow_bookmarks: true, - allow_public_bookmarks: false, - muc_respect_autojoin: true - }); - shared_api.promises.add('bookmarksInitialized'); - shared_converse.Bookmark = bookmarks_model; - shared_converse.Bookmarks = Collection.extend(collection); - shared_api.listen.on('addClientFeatures', function () { - if (shared_api.settings.get('allow_bookmarks')) { - shared_api.disco.own.features.add(bookmarks_Strophe.NS.BOOKMARKS + '+notify'); + + /** + * _Private_ part of the Connection.send function for BOSH + * Just triggers the RequestHandler to send the messages that are in the queue + */ + }, { + key: "_send", + value: function _send() { + var _this2 = this; + clearTimeout(this._conn._idleTimeout); + this._throttledRequestHandler(); + this._conn._idleTimeout = setTimeout(function () { + return _this2._conn._onIdle(); + }, 100); + } + + /** + * Send an xmpp:restart stanza. + */ + }, { + key: "_sendRestart", + value: function _sendRestart() { + this._throttledRequestHandler(); + clearTimeout(this._conn._idleTimeout); + } + + /** + * _Private_ function to throttle requests to the connection window. + * + * This function makes sure we don't send requests so fast that the + * request ids overflow the connection window in the case that one + * request died. + * @private + */ + }, { + key: "_throttledRequestHandler", + value: function _throttledRequestHandler() { + if (!this._requests) { + src_core.debug('_throttledRequestHandler called with ' + 'undefined requests'); + } else { + src_core.debug('_throttledRequestHandler called with ' + this._requests.length + ' requests'); } - }); - shared_api.listen.on('clearSession', function () { - if (shared_converse.bookmarks) { - shared_converse.bookmarks.clearStore({ - 'silent': true - }); - window.sessionStorage.removeItem(shared_converse.bookmarks.fetched_flag); - delete shared_converse.bookmarks; + if (!this._requests || this._requests.length === 0) { + return; } - }); - shared_api.listen.on('connected', /*#__PURE__*/bookmarks_asyncToGenerator( /*#__PURE__*/bookmarks_regeneratorRuntime().mark(function _callee() { - var connection; - return bookmarks_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - // Add a handler for bookmarks pushed from other connected clients - connection = shared_converse.connection; - connection.addHandler(handleBookmarksPush, null, 'message', 'headline', null, shared_converse.bare_jid); - _context.next = 4; - return Promise.all([shared_api.waitUntil('chatBoxesFetched')]); - case 4: - initBookmarks(); - case 5: - case "end": - return _context.stop(); + if (this._requests.length > 0) { + this._processRequest(0); + } + if (this._requests.length > 1 && Math.abs(this._requests[0].rid - this._requests[1].rid) < this.window) { + this._processRequest(1); + } + } + }], [{ + key: "_getRequestStatus", + value: function _getRequestStatus(req, def) { + var reqStatus; + if (req.xhr.readyState === 4) { + try { + reqStatus = req.xhr.status; + } catch (e) { + // ignore errors from undefined status attribute. Works + // around a browser bug + src_core.error("Caught an error while retrieving a request's status, " + 'reqStatus: ' + reqStatus); } - }, _callee); - }))); - } -}); + } + if (typeof reqStatus === 'undefined') { + reqStatus = typeof def === 'number' ? def : 0; + } + return reqStatus; + } + }]); + return Bosh; +}(); +/* harmony default export */ const bosh = (Bosh); ;// CONCATENATED MODULE: ./src/headless/plugins/bosh.js function plugins_bosh_typeof(obj) { "@babel/helpers - typeof"; @@ -70572,7 +70854,7 @@ function form_textarea_taggedTemplateLiteral(strings, raw) { /* harmony default export */ const form_textarea = (function (o) { - var id = utils_core.getUniqueId(); + var id = core.getUniqueId(); return (0,external_lit_namespaceObject.html)(form_textarea_templateObject || (form_textarea_templateObject = form_textarea_taggedTemplateLiteral(["\n
\n \n \n
\n "])), id, o.label, o.name, id, o.value); }); ;// CONCATENATED MODULE: ./src/templates/form_url.js @@ -70730,7 +71012,7 @@ var html_serializer = new XMLSerializer(); * @returns { Boolean } */ function isEqualNode(actual, expected) { - if (!utils_core.isElement(actual)) throw new Error("Element being compared must be an Element!"); + if (!core.isElement(actual)) throw new Error("Element being compared must be an Element!"); actual = stripEmptyTextNodes(actual); expected = stripEmptyTextNodes(expected); var isEqual = actual.isEqualNode(expected); @@ -70779,7 +71061,7 @@ function getNameAndValue(field) { return s.trim(); }); } else if (field.tagName == "SELECT") { - value = utils_core.getSelectValues(field); + value = core.getSelectValues(field); } else { value = field.value; } @@ -70846,12 +71128,12 @@ function getOOBURLMarkup(url) { * @param { HTMLElement } el * @returns {number} */ -utils_core.calculateElementHeight = function (el) { +core.calculateElementHeight = function (el) { return Array.from(el.children).reduce(function (result, child) { return result + child.offsetHeight; }, 0); }; -utils_core.getNextElement = function (el) { +core.getNextElement = function (el) { var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '*'; var next_el = el.nextElementSibling; while (next_el !== null && !html_sizzle.matchesSelector(next_el, selector)) { @@ -70859,7 +71141,7 @@ utils_core.getNextElement = function (el) { } return next_el; }; -utils_core.getPreviousElement = function (el) { +core.getPreviousElement = function (el) { var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '*'; var prev_el = el.previousElementSibling; while (prev_el !== null && !html_sizzle.matchesSelector(prev_el, selector)) { @@ -70867,7 +71149,7 @@ utils_core.getPreviousElement = function (el) { } return prev_el; }; -utils_core.getFirstChildElement = function (el) { +core.getFirstChildElement = function (el) { var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '*'; var first_el = el.firstElementChild; while (first_el !== null && !html_sizzle.matchesSelector(first_el, selector)) { @@ -70875,7 +71157,7 @@ utils_core.getFirstChildElement = function (el) { } return first_el; }; -utils_core.getLastChildElement = function (el) { +core.getLastChildElement = function (el) { var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '*'; var last_el = el.lastElementChild; while (last_el !== null && !html_sizzle.matchesSelector(last_el, selector)) { @@ -70883,8 +71165,8 @@ utils_core.getLastChildElement = function (el) { } return last_el; }; -utils_core.toggleClass = function (className, el) { - utils_core.hasClass(className, el) ? removeClass(className, el) : addClass(className, el); +core.toggleClass = function (className, el) { + core.hasClass(className, el) ? removeClass(className, el) : addClass(className, el); }; /** @@ -70928,16 +71210,16 @@ function removeElement(el) { el instanceof Element && el.parentNode && el.parentNode.removeChild(el); return el; } -utils_core.getElementFromTemplateResult = function (tr) { +core.getElementFromTemplateResult = function (tr) { var div = document.createElement('div'); (0,external_lit_namespaceObject.render)(tr, div); return div.firstElementChild; }; -utils_core.showElement = function (el) { +core.showElement = function (el) { removeClass('collapsed', el); removeClass('hidden', el); }; -utils_core.hideElement = function (el) { +core.hideElement = function (el) { el instanceof Element && el.classList.add('hidden'); return el; }; @@ -70956,7 +71238,7 @@ function ancestor(el, selector) { * @param { HTMLElement } el * @param { String } selector */ -utils_core.nextUntil = function (el, selector) { +core.nextUntil = function (el, selector) { var matches = []; var sibling_el = el.nextElementSibling; while (sibling_el !== null && !sibling_el.matches(selector)) { @@ -70973,12 +71255,12 @@ utils_core.nextUntil = function (el, selector) { * @method u#unescapeHTML * @param { String } string - a String containing the HTML-escaped symbols. */ -utils_core.unescapeHTML = function (string) { +core.unescapeHTML = function (string) { var div = document.createElement('div'); div.innerHTML = string; return div.innerText; }; -utils_core.escapeHTML = function (string) { +core.escapeHTML = function (string) { return string.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); }; function isProtocolApproved(protocol) { @@ -71003,17 +71285,17 @@ function getHyperlinkTemplate(url) { } return url; } -utils_core.slideInAllElements = function (elements) { +core.slideInAllElements = function (elements) { var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300; return Promise.all(Array.from(elements).map(function (e) { - return utils_core.slideIn(e, duration); + return core.slideIn(e, duration); })); }; -utils_core.slideToggleElement = function (el, duration) { - if (utils_core.hasClass('collapsed', el) || utils_core.hasClass('hidden', el)) { - return utils_core.slideOut(el, duration); +core.slideToggleElement = function (el, duration) { + if (core.hasClass('collapsed', el) || core.hasClass('hidden', el)) { + return core.slideOut(el, duration); } else { - return utils_core.slideIn(el, duration); + return core.slideIn(el, duration); } }; @@ -71037,7 +71319,7 @@ function slideOut(el) { el.removeAttribute('data-slider-marker'); cancelAnimationFrame(marker); } - var end_height = utils_core.calculateElementHeight(el); + var end_height = core.calculateElementHeight(el); if (window.converse_disable_effects) { // Effects are disabled (for tests) el.style.height = end_height + 'px'; @@ -71045,7 +71327,7 @@ function slideOut(el) { resolve(); return; } - if (!utils_core.hasClass('collapsed', el) && !utils_core.hasClass('hidden', el)) { + if (!core.hasClass('collapsed', el) && !core.hasClass('hidden', el)) { resolve(); return; } @@ -71061,7 +71343,7 @@ function slideOut(el) { // browser bug where browsers don't know the correct // offsetHeight beforehand. el.removeAttribute('data-slider-marker'); - el.style.height = utils_core.calculateElementHeight(el) + 'px'; + el.style.height = core.calculateElementHeight(el) + 'px'; el.style.overflow = ''; el.style.height = ''; resolve(); @@ -71088,7 +71370,7 @@ function slideIn(el) { var err = 'An element needs to be passed in to slideIn'; log.warn(err); return reject(new Error(err)); - } else if (utils_core.hasClass('collapsed', el)) { + } else if (core.hasClass('collapsed', el)) { return resolve(el); } else if (window.converse_disable_effects) { // Effects are disabled (for tests) @@ -71124,20 +71406,20 @@ function afterAnimationEnds(el, callback) { el.classList.remove('visible'); callback === null || callback === void 0 ? void 0 : callback(); } -utils_core.isInDOM = function (el) { +core.isInDOM = function (el) { return document.querySelector('body').contains(el); }; -utils_core.isVisible = function (el) { +core.isVisible = function (el) { if (el === null) { return false; } - if (utils_core.hasClass('hidden', el)) { + if (core.hasClass('hidden', el)) { return false; } // XXX: Taken from jQuery's "visible" implementation return el.offsetWidth > 0 || el.offsetHeight > 0 || el.getClientRects().length > 0; }; -utils_core.fadeIn = function (el, callback) { +core.fadeIn = function (el, callback) { if (!el) { log.warn('An element needs to be passed in to fadeIn'); } @@ -71145,7 +71427,7 @@ utils_core.fadeIn = function (el, callback) { el.classList.remove('hidden'); return afterAnimationEnds(el, callback); } - if (utils_core.hasClass('hidden', el)) { + if (core.hasClass('hidden', el)) { el.classList.add('visible'); el.classList.remove('hidden'); el.addEventListener('webkitAnimationEnd', function () { @@ -71171,13 +71453,13 @@ utils_core.fadeIn = function (el, callback) { * @param { Object } options * @returns { TemplateResult } */ -utils_core.xForm2TemplateResult = function (field, stanza) { +core.xForm2TemplateResult = function (field, stanza) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; if (field.getAttribute('type') === 'list-single' || field.getAttribute('type') === 'list-multi') { - var values = utils_core.queryChildren(field, 'value').map(function (el) { + var values = core.queryChildren(field, 'value').map(function (el) { return el === null || el === void 0 ? void 0 : el.textContent; }); - var _options = utils_core.queryChildren(field, 'option').map(function (option) { + var _options = core.queryChildren(field, 'option').map(function (option) { var _option$querySelector; var value = (_option$querySelector = option.querySelector('value')) === null || _option$querySelector === void 0 ? void 0 : _option$querySelector.textContent; return { @@ -71189,7 +71471,7 @@ utils_core.xForm2TemplateResult = function (field, stanza) { }); return form_select({ options: _options, - 'id': utils_core.getUniqueId(), + 'id': core.getUniqueId(), 'label': field.getAttribute('label'), 'multiple': field.getAttribute('type') === 'list-multi', 'name': field.getAttribute('var'), @@ -71213,7 +71495,7 @@ utils_core.xForm2TemplateResult = function (field, stanza) { var _field$querySelector3; var value = (_field$querySelector3 = field.querySelector('value')) === null || _field$querySelector3 === void 0 ? void 0 : _field$querySelector3.textContent; return form_checkbox({ - 'id': utils_core.getUniqueId(), + 'id': core.getUniqueId(), 'name': field.getAttribute('var'), 'label': field.getAttribute('label') || '', 'checked': (value === '1' || value === 'true') && 'checked="1"' || '' @@ -71258,7 +71540,7 @@ utils_core.xForm2TemplateResult = function (field, stanza) { var _field$querySelector7; var name = field.getAttribute('var'); return form_input({ - 'id': utils_core.getUniqueId(), + 'id': core.getUniqueId(), 'label': field.getAttribute('label') || '', 'name': name, 'fixed_username': options === null || options === void 0 ? void 0 : options.fixed_username, @@ -71270,7 +71552,7 @@ utils_core.xForm2TemplateResult = function (field, stanza) { }); } }; -Object.assign(utils_core, { +Object.assign(core, { hasClass: hasClass, addClass: addClass, ancestor: ancestor, @@ -71281,7 +71563,7 @@ Object.assign(utils_core, { slideIn: slideIn, slideOut: slideOut }); -/* harmony default export */ const utils_html = (utils_core); +/* harmony default export */ const utils_html = (core); // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/mini-css-extract-plugin/dist/loader.js!./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./src/plugins/modal/styles/_modal.scss var _modal = __webpack_require__(8105); ;// CONCATENATED MODULE: ./src/plugins/modal/styles/_modal.scss @@ -74764,7 +75046,7 @@ var AutoCompleteComponent = /*#__PURE__*/function (_CustomElement) { shared_api.elements.define('converse-autocomplete', AutoCompleteComponent); // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/mini-css-extract-plugin/dist/loader.js!./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./src/shared/autocomplete/styles/_autocomplete.scss -var _autocomplete = __webpack_require__(4229); +var _autocomplete = __webpack_require__(8799); ;// CONCATENATED MODULE: ./src/shared/autocomplete/styles/_autocomplete.scss @@ -75172,7 +75454,7 @@ function lit_html_getPrototypeOf(o) { }; return lit_html_getPrototypeOf(o); } -function _createForOfIteratorHelper(o, allowArrayLike) { +function lit_html_createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = lit_html_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { @@ -75427,7 +75709,7 @@ var V = /*#__PURE__*/function () { if (1 === h.nodeType) { if (h.hasAttributes()) { var _t2 = []; - var _iterator = _createForOfIteratorHelper(h.getAttributeNames()), + var _iterator = lit_html_createForOfIteratorHelper(h.getAttributeNames()), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { @@ -75544,7 +75826,7 @@ var S = /*#__PURE__*/function () { key: "v", value: function v(t) { var i = 0; - var _iterator2 = _createForOfIteratorHelper(this._$AV), + var _iterator2 = lit_html_createForOfIteratorHelper(this._$AV), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { @@ -75636,7 +75918,7 @@ var M = /*#__PURE__*/function () { var i = this._$AH; var s, e = 0; - var _iterator3 = _createForOfIteratorHelper(t), + var _iterator3 = lit_html_createForOfIteratorHelper(t), _step3; try { for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { @@ -124680,13 +124962,13 @@ function webForm2xForm(field) { return s.trim(); }); } else if (field.tagName == "SELECT") { - value = utils_core.getSelectValues(field); + value = core.getSelectValues(field); } else { value = field.value; } - return utils_core.toStanza(tplXformField(name, Array.isArray(value) ? value.map(tplXformValue) : tplXformValue(value))); + return core.toStanza(tplXformField(name, Array.isArray(value) ? value.map(tplXformValue) : tplXformValue(value))); } -utils_core.webForm2xForm = webForm2xForm; +core.webForm2xForm = webForm2xForm; // EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/mini-css-extract-plugin/dist/loader.js!./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[6].use[2]!./src/plugins/register/styles/register.scss var register = __webpack_require__(6943); ;// CONCATENATED MODULE: ./src/plugins/register/styles/register.scss @@ -128023,7 +128305,7 @@ var AddContactModal = /*#__PURE__*/function (_BaseModal) { }, 'filter': shared_converse.FILTER_STARTSWITH, 'list': add_contact_toConsumableArray(new Set(shared_converse.roster.map(function (item) { - return Strophe.getDomainFromJid(item.get('jid')); + return external_strophe_namespaceObject.Strophe.getDomainFromJid(item.get('jid')); }))) }); } @@ -128040,7 +128322,7 @@ var AddContactModal = /*#__PURE__*/function (_BaseModal) { }, 'filter': shared_converse.FILTER_STARTSWITH, 'list': add_contact_toConsumableArray(new Set(shared_converse.roster.map(function (item) { - return Strophe.getDomainFromJid(item.get('jid')); + return external_strophe_namespaceObject.Strophe.getDomainFromJid(item.get('jid')); }))) }); } @@ -128119,7 +128401,7 @@ var AddContactModal = /*#__PURE__*/function (_BaseModal) { addClass('is-invalid', this.querySelector('input[name="jid"]')); addClass('d-block', el); return false; - } else if (shared_converse.roster.get(Strophe.getBareJidFromJid(jid))) { + } else if (shared_converse.roster.get(external_strophe_namespaceObject.Strophe.getBareJidFromJid(jid))) { el.textContent = __('This contact has already been added'); addClass('d-block', el); return false; @@ -132996,7 +133278,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, ``, "",{"version":3,"sources":[],"names /***/ }), -/***/ 4229: +/***/ 8799: /***/ ((module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -135270,17 +135552,19 @@ var converse = { load: function load() { var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; if (settings.assets_path) { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore __webpack_require__.p = settings.assets_path; // eslint-disable-line no-undef } - __webpack_require__(8799); + __webpack_require__(4366); Object.keys(plugins).forEach(function (name) { return converse.plugins.add(name, plugins[name]); }); return converse; } }; -window.converse = converse; +window['converse'] = converse; /** * Once Converse.js has loaded, it'll dispatch a custom event with the name `converse-loaded`. diff --git a/classes/dist/converse-no-dependencies.js.map b/classes/dist/converse-no-dependencies.js.map index 9f1b1e4..e5ebfc6 100644 --- a/classes/dist/converse-no-dependencies.js.map +++ b/classes/dist/converse-no-dependencies.js.map @@ -1 +1 @@ -{"version":3,"file":"converse-no-dependencies.js","mappings":"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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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA/IA,IAiJqB+X,UAAU;EAC3B,SAAAA,WAAYC,OAAO,EAAE3nD,OAAO,EAAE;IAAA,IAAA+xB,KAAA;IAAA4U,yBAAA,OAAA+gB,UAAA;IAC1B;IACA,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB;IACA,IAAI,CAAC3nD,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;IAE5B,IAAI,CAAC4nD,WAAW,CAAC,CAAC;;IAElB;IACA,IAAI,CAACpG,GAAG,GAAG,EAAE;IACb;IACA,IAAI,CAAC1C,MAAM,GAAG,IAAI;IAClB;IACA,IAAI,CAAC+I,QAAQ,GAAG,IAAI;;IAEpB;IACA,IAAI,CAACC,UAAU,GAAG,CAAC,CAAC;IACpB,IAAI,CAACC,OAAO,GAAG,KAAK;IACpB,IAAI,CAACC,UAAU,GAAG,KAAK;IACvB,IAAI,CAACC,UAAU,GAAG,CAAC,CAAC;;IAEpB;IACA,IAAI,CAACC,aAAa,GAAG,EAAE;IACvB,IAAI,CAACx7B,QAAQ,GAAG,EAAE;IAClB,IAAI,CAACy7B,YAAY,GAAG,EAAE;IACtB,IAAI,CAACC,cAAc,GAAG,EAAE;IACxB,IAAI,CAACC,SAAS,GAAG,EAAE;IACnB,IAAI,CAACC,WAAW,GAAG,EAAE;IACrB,IAAI,CAACC,qBAAqB,GAAG;MACzB,MAAM,EAAE,CAAC,CAAC;MACV,WAAW,EAAE,CAAC;IAClB,CAAC;IAED,IAAI,CAACC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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIoxD,SAAS,GAAGhtC,eAAc,CAAC,UAASz1B,MAAM,EAAE+vB,MAAM,EAAEqyC,QAAQ,EAAEnyC,UAAU,EAAE;EAC5EuyC,UAAS,CAACxiE,MAAM,EAAE+vB,MAAM,EAAEqyC,QAAQ,EAAEnyC,UAAU,CAAC;AACjD,CAAC,CAAC;AAEF,0DAAewyC,SAAS;;ACtCM;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI/uE,GAAG,GAAG,SAANA,GAAGA,CAAA,EAAc;EACnB,OAAOiP,KAAI,CAAClK,IAAI,CAAC/E,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,oDAAeA,GAAG;;ACtB2B;AACN;AACQ;AACZ;AACU;AACyB;;AAEtE;AACA,IAAM4kC,2BAAe,GAAG,qBAAqB;;AAE7C;AACA,IAAM9D,qBAAS,GAAG9oC,IAAI,CAAC+oC,GAAG;AAC1B,IAAMiuC,SAAS,GAAGh3E,IAAI,CAACC,GAAG;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASg3E,WAAWA,CAACtjE,IAAI,EAAEimC,IAAI,EAAc;EAAA,IAAZ/xC,OAAO,GAAA7L,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAAhB,SAAA,GAAAgB,SAAA,MAAC,CAAC,CAAC;EACzC,IAAIk7E,QAAQ;IACRC,QAAQ;IACRC,OAAO;IACP5/E,MAAM;IACN6/E,OAAO;IACPC,YAAY;IACZC,cAAc,GAAG,CAAC;IAClBC,MAAM,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OAAO,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAAE,OAAO,EAAC,OAAO;EACvI,MAAM,EAAC,OAAO;EAAE,OAAO,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAC/I,MAAM,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAC3I,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EACvI,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EACtI,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EACvI,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,MAAM,EAAC,OAAO;EACtI,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAAO;EAAE,KAAK,EAAC,OAA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A,EAAAqB,IAAA;MAAA,SAAAsiD,MAAAt2D,KAAA;QAAAo2D,0BAAA,CAAAC,GAAA,EAAAl2D,OAAA,EAAAd,MAAA,EAAAi3D,KAAA,EAAAC,MAAA,UAAAv2D,KAAA;MAAA;MAAA,SAAAu2D,OAAA/C,GAAA;QAAA4C,0BAAA,CAAAC,GAAA,EAAAl2D,OAAA,EAAAd,MAAA,EAAAi3D,KAAA,EAAAC,MAAA,WAAA/C,GAAA;MAAA;MAAA8C,KAAA,CAAA5zD,SAAA;IAAA;EAAA;AAAA;AADyC;AACb;AACwB;AACE;AACa;AAEnE,IAAAwrG,oBAAA,GAAgClI,eAAQ,CAACY,GAAG;EAApC15C,eAAO,GAAAghD,oBAAA,CAAPhhD,OAAO;EAAEqE,WAAG,GAAA28C,oBAAA,CAAH38C,GAAG;EAAE3+C,KAAK,GAAAs7F,oBAAA,CAALt7F,KAAK;AAC3B,IAAQi3C,MAAE,GAAKqD,eAAO,CAAdrD,EAAE;AACV,IAAMngD,SAAC,GAAGs8F,eAAQ,CAACY,GAAG,CAACx1C,KAAK;AAG5B,8CAAe;EACX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIy1E,OAAO,EAAE;IACJ;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAES;AACT;AACA;AACA;AACA;IAES;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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AAiD,kEAAkE;AACnH;AACA,iEAAe,uBAAuB,EAAC;;;;;;;;ACPvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;;;AC9kBa;;AAEb;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnFa;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTa;;AAEb;AACA;AACA,cAAc,KAAwC,GAAG,sBAAiB,GAAG,CAAI;AACjF;AACA;AACA;AACA;AACA;;;;;;;;ACTa;;AAEb;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5Da;;AAEb;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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;;WCAA;WACA;WACA;WACA;WACA,uBAAuB,4BAA4B;WACnD;WACA;WACA;WACA,iBAAiB,oBAAoB;WACrC;WACA,mGAAmG,YAAY;WAC/G;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,mEAAmE,iCAAiC;WACpG;WACA;WACA;WACA;;;;;WCzCA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;;;;;WCJA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WClBA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;WACA,iCAAiC;;WAEjC;WACA;WACA;WACA,KAAK;WACL,eAAe;WACf;WACA;WACA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;WACA;WACA;;;;;WCrFA;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAM7gI,OAAO,GAAG,CAAC,CAAC;AAElB,IAAMsW,QAAQ,GAAG;EACbtW,OAAO,EAAE;IACLh8E,GAAG,WAAAA,IAAE3J,IAAI,EAAEs0D,MAAM,EAAE;MACf,IAAIqxB,OAAO,CAAC3lF,IAAI,CAAC,KAAKrH,SAAS,EAAE;QAC7B,MAAM,IAAIoC,SAAS,CACf,6BAAAC,MAAA,CAA4BgF,IAAI,4BAAwB,aAC5D,CAAC;MACL;MACA2lF,OAAO,CAAC3lF,IAAI,CAAC,GAAGs0D,MAAM;IAC1B;EACJ,CAAC;EAEDlW,UAAU,WAAAA,WAAA,EAAe;IAAA,IAAb06B,QAAQ,GAAAn/E,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAAhB,SAAA,GAAAgB,SAAA,MAAC,CAAC,CAAC;IACnB,OAAOsiG,QAAQ,CAACp2F,IAAI,CAACizE,QAAQ,CAAC,CAAC16B,UAAU,CAAC06B,QAAQ,CAAC;EACvD,CAAC;EAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIjzE,IAAI,WAAAA,KAAA,EAAe;IAAA,IAAbizE,QAAQ,GAAAn/E,SAAA,CAAAnD,MAAA,QAAAmD,SAAA,QAAAhB,SAAA,GAAAgB,SAAA,MAAC,CAAC,CAAC;IACb,IAAIm/E,QAAQ,CAAC7R,WAAW,EAAE;MACtBy/I,qBAAuB,GAAG5tI,QAAQ,CAAC7R,WAAW,CAAC,CAAC;IACpD;;IACAryE,mBAAO,CAAC,IAAY,CAAC;IACrBwF,MAAM,CAACjE,IAAI,CAACwvF,OAAO,CAAC,CAACtiF,OAAO,CAAC,UAAArD,IAAI;MAAA,OAAIi8F,QAAQ,CAACtW,OAAO,CAACh8E,GAAG,CAAC3J,IAAI,EAAE2lF,OAAO,CAAC3lF,IAAI,CAAC,CAAC;IAAA,EAAC;IAC/E,OAAOi8F,QAAQ;EACnB;AACJ,CAAC;AAED5/F,MAAM,CAAC4/F,QAAQ,GAAGA,QAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMrpD,EAAE,GAAG,IAAI8vH,WAAW,CAAC,iBAAiB,EAAE;EAAC,QAAQ,EAAE;IAAEzmE,QAAQ,EAARA;EAAS;AAAC,CAAC,CAAC;AACvE5/F,MAAM,CAACwmF,aAAa,CAACjwC,EAAE,CAAC;AAExB,sEAAeqpD,gDAAAA,QAAQ,I","sources":["webpack://converse.js/./node_modules/@converse/localforage-getitems/dist/localforage-getitems.js","webpack://converse.js/./node_modules/abab/index.js","webpack://converse.js/./node_modules/abab/lib/atob.js","webpack://converse.js/./node_modules/abab/lib/btoa.js","webpack://converse.js/./node_modules/client-compress/dist/index.js","webpack://converse.js/./node_modules/css-loader/dist/runtime/api.js","webpack://converse.js/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://converse.js/./node_modules/dayjs/dayjs.min.js","webpack://converse.js/./node_modules/dayjs/plugin/advancedFormat.js","webpack://converse.js/../src/utils.js","webpack://converse.js/../src/tags.js","webpack://converse.js/../src/attrs.js","webpack://converse.js/../src/regexp.js","webpack://converse.js/../src/purify.js","webpack://converse.js/./node_modules/favico.js-slevomat/favico.js","webpack://converse.js/./node_modules/gifuct-js/lib/deinterlace.js","webpack://converse.js/./node_modules/gifuct-js/lib/index.js","webpack://converse.js/./node_modules/gifuct-js/lib/lzw.js","webpack://converse.js/./node_modules/immediate/lib/browser.js","webpack://converse.js/./node_modules/js-binary-schema-parser/lib/index.js","webpack://converse.js/./node_modules/js-binary-schema-parser/lib/parsers/uint8.js","webpack://converse.js/./node_modules/js-binary-schema-parser/lib/schemas/gif.js","webpack://converse.js/./node_modules/lie/lib/browser.js","webpack://converse.js/./node_modules/lie/polyfill.js","webpack://converse.js/../../src/_driver.ts","webpack://converse.js/../../node_modules/localforage-driver-commons/_bundle/fesm5.js","webpack://converse.js/../../src/Store.ts","webpack://converse.js/../../src/_initStorage.ts","webpack://converse.js/../../src/clear.ts","webpack://converse.js/../../src/dropInstance.ts","webpack://converse.js/../../src/getItem.ts","webpack://converse.js/../../src/iterate.ts","webpack://converse.js/../../src/key.ts","webpack://converse.js/../../src/keys.ts","webpack://converse.js/../../src/length.ts","webpack://converse.js/../../src/removeItem.ts","webpack://converse.js/../../src/setItem.ts","webpack://converse.js/../../src/index.ts","webpack://converse.js/./node_modules/localforage-setitems/dist/localforage-setitems.js","webpack://converse.js/./node_modules/localforage-webextensionstorage-driver/driver.js","webpack://converse.js/./node_modules/localforage-webextensionstorage-driver/local.js","webpack://converse.js/./node_modules/localforage-webextensionstorage-driver/sync.js","webpack://converse.js/./node_modules/localforage-webextensionstorage-driver/utils.js","webpack://converse.js/./node_modules/sprintf-js/src/sprintf.js","webpack://converse.js/./node_modules/lodash-es/_freeGlobal.js","webpack://converse.js/./node_modules/lodash-es/_root.js","webpack://converse.js/./node_modules/lodash-es/_Symbol.js","webpack://converse.js/./node_modules/lodash-es/_getRawTag.js","webpack://converse.js/./node_modules/lodash-es/_objectToString.js","webpack://converse.js/./node_modules/lodash-es/_baseGetTag.js","webpack://converse.js/./node_modules/lodash-es/isObject.js","webpack://converse.js/./node_modules/lodash-es/isFunction.js","webpack://converse.js/./node_modules/lodash-es/_coreJsData.js","webpack://converse.js/./node_modules/lodash-es/_isMasked.js","webpack://converse.js/./node_modules/lodash-es/_toSource.js","webpack://converse.js/./node_modules/lodash-es/_baseIsNative.js","webpack://converse.js/./node_modules/lodash-es/_getValue.js","webpack://converse.js/./node_modules/lodash-es/_getNative.js","webpack://converse.js/./node_modules/lodash-es/_defineProperty.js","webpack://converse.js/./node_modules/lodash-es/_baseAssignValue.js","webpack://converse.js/./node_modules/lodash-es/eq.js","webpack://converse.js/./node_modules/lodash-es/_assignValue.js","webpack://converse.js/./node_modules/lodash-es/_copyObject.js","webpack://converse.js/./node_modules/lodash-es/_baseTimes.js","webpack://converse.js/./node_modules/lodash-es/isObjectLike.js","webpack://converse.js/./node_modules/lodash-es/_baseIsArguments.js","webpack://converse.js/./node_modules/lodash-es/isArguments.js","webpack://converse.js/./node_modules/lodash-es/isArray.js","webpack://converse.js/./node_modules/lodash-es/stubFalse.js","webpack://converse.js/./node_modules/lodash-es/isBuffer.js","webpack://converse.js/./node_modules/lodash-es/_isIndex.js","webpack://converse.js/./node_modules/lodash-es/isLength.js","webpack://converse.js/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://converse.js/./node_modules/lodash-es/_baseUnary.js","webpack://converse.js/./node_modules/lodash-es/_nodeUtil.js","webpack://converse.js/./node_modules/lodash-es/isTypedArray.js","webpack://converse.js/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://converse.js/./node_modules/lodash-es/_isPrototype.js","webpack://converse.js/./node_modules/lodash-es/_overArg.js","webpack://converse.js/./node_modules/lodash-es/_nativeKeys.js","webpack://converse.js/./node_modules/lodash-es/_baseKeys.js","webpack://converse.js/./node_modules/lodash-es/isArrayLike.js","webpack://converse.js/./node_modules/lodash-es/keys.js","webpack://converse.js/./node_modules/lodash-es/_baseAssign.js","webpack://converse.js/./node_modules/lodash-es/_baseCreate.js","webpack://converse.js/./node_modules/lodash-es/create.js","webpack://converse.js/./node_modules/lodash-es/identity.js","webpack://converse.js/./node_modules/lodash-es/_apply.js","webpack://converse.js/./node_modules/lodash-es/_overRest.js","webpack://converse.js/./node_modules/lodash-es/constant.js","webpack://converse.js/./node_modules/lodash-es/_baseSetToString.js","webpack://converse.js/./node_modules/lodash-es/_shortOut.js","webpack://converse.js/./node_modules/lodash-es/_setToString.js","webpack://converse.js/./node_modules/lodash-es/_baseRest.js","webpack://converse.js/./node_modules/lodash-es/_isIterateeCall.js","webpack://converse.js/./node_modules/lodash-es/_createAssigner.js","webpack://converse.js/./node_modules/lodash-es/_nativeKeysIn.js","webpack://converse.js/./node_modules/lodash-es/_baseKeysIn.js","webpack://converse.js/./node_modules/lodash-es/keysIn.js","webpack://converse.js/./node_modules/lodash-es/assignIn.js","webpack://converse.js/./node_modules/lodash-es/_baseHas.js","webpack://converse.js/./node_modules/lodash-es/isSymbol.js","webpack://converse.js/./node_modules/lodash-es/_isKey.js","webpack://converse.js/./node_modules/lodash-es/_nativeCreate.js","webpack://converse.js/./node_modules/lodash-es/_hashClear.js","webpack://converse.js/./node_modules/lodash-es/_hashDelete.js","webpack://converse.js/./node_modules/lodash-es/_hashGet.js","webpack://converse.js/./node_modules/lodash-es/_hashHas.js","webpack://converse.js/./node_modules/lodash-es/_hashSet.js","webpack://converse.js/./node_modules/lodash-es/_Hash.js","webpack://converse.js/./node_modules/lodash-es/_listCacheClear.js","webpack://converse.js/./node_modules/lodash-es/_assocIndexOf.js","webpack://converse.js/./node_modules/lodash-es/_listCacheDelete.js","webpack://converse.js/./node_modules/lodash-es/_listCacheGet.js","webpack://converse.js/./node_modules/lodash-es/_listCacheHas.js","webpack://converse.js/./node_modules/lodash-es/_listCacheSet.js","webpack://converse.js/./node_modules/lodash-es/_ListCache.js","webpack://converse.js/./node_modules/lodash-es/_Map.js","webpack://converse.js/./node_modules/lodash-es/_mapCacheClear.js","webpack://converse.js/./node_modules/lodash-es/_isKeyable.js","webpack://converse.js/./node_modules/lodash-es/_getMapData.js","webpack://converse.js/./node_modules/lodash-es/_mapCacheDelete.js","webpack://converse.js/./node_modules/lodash-es/_mapCacheGet.js","webpack://converse.js/./node_modules/lodash-es/_mapCacheHas.js","webpack://converse.js/./node_modules/lodash-es/_mapCacheSet.js","webpack://converse.js/./node_modules/lodash-es/_MapCache.js","webpack://converse.js/./node_modules/lodash-es/memoize.js","webpack://converse.js/./node_modules/lodash-es/_memoizeCapped.js","webpack://converse.js/./node_modules/lodash-es/_stringToPath.js","webpack://converse.js/./node_modules/lodash-es/_arrayMap.js","webpack://converse.js/./node_modules/lodash-es/_baseToString.js","webpack://converse.js/./node_modules/lodash-es/toString.js","webpack://converse.js/./node_modules/lodash-es/_castPath.js","webpack://converse.js/./node_modules/lodash-es/_toKey.js","webpack://converse.js/./node_modules/lodash-es/_hasPath.js","webpack://converse.js/./node_modules/lodash-es/has.js","webpack://converse.js/./node_modules/lodash-es/result.js","webpack://converse.js/./node_modules/@converse/skeletor/src/helpers.js","webpack://converse.js/./node_modules/lodash-es/_DataView.js","webpack://converse.js/./node_modules/lodash-es/_Promise.js","webpack://converse.js/./node_modules/lodash-es/_Set.js","webpack://converse.js/./node_modules/lodash-es/_WeakMap.js","webpack://converse.js/./node_modules/lodash-es/_getTag.js","webpack://converse.js/./node_modules/lodash-es/isEmpty.js","webpack://converse.js/./node_modules/lodash-es/_trimmedEndIndex.js","webpack://converse.js/./node_modules/lodash-es/_baseTrim.js","webpack://converse.js/./node_modules/lodash-es/toNumber.js","webpack://converse.js/./node_modules/lodash-es/toFinite.js","webpack://converse.js/./node_modules/lodash-es/toInteger.js","webpack://converse.js/./node_modules/lodash-es/before.js","webpack://converse.js/./node_modules/lodash-es/once.js","webpack://converse.js/./node_modules/lodash-es/uniqueId.js","webpack://converse.js/./node_modules/@converse/skeletor/src/events.js","webpack://converse.js/./node_modules/lodash-es/_stackClear.js","webpack://converse.js/./node_modules/lodash-es/_stackDelete.js","webpack://converse.js/./node_modules/lodash-es/_stackGet.js","webpack://converse.js/./node_modules/lodash-es/_stackHas.js","webpack://converse.js/./node_modules/lodash-es/_stackSet.js","webpack://converse.js/./node_modules/lodash-es/_Stack.js","webpack://converse.js/./node_modules/lodash-es/_arrayEach.js","webpack://converse.js/./node_modules/lodash-es/_baseAssignIn.js","webpack://converse.js/./node_modules/lodash-es/_cloneBuffer.js","webpack://converse.js/./node_modules/lodash-es/_copyArray.js","webpack://converse.js/./node_modules/lodash-es/_arrayFilter.js","webpack://converse.js/./node_modules/lodash-es/stubArray.js","webpack://converse.js/./node_modules/lodash-es/_getSymbols.js","webpack://converse.js/./node_modules/lodash-es/_copySymbols.js","webpack://converse.js/./node_modules/lodash-es/_arrayPush.js","webpack://converse.js/./node_modules/lodash-es/_getPrototype.js","webpack://converse.js/./node_modules/lodash-es/_getSymbolsIn.js","webpack://converse.js/./node_modules/lodash-es/_copySymbolsIn.js","webpack://converse.js/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://converse.js/./node_modules/lodash-es/_getAllKeys.js","webpack://converse.js/./node_modules/lodash-es/_getAllKeysIn.js","webpack://converse.js/./node_modules/lodash-es/_initCloneArray.js","webpack://converse.js/./node_modules/lodash-es/_Uint8Array.js","webpack://converse.js/./node_modules/lodash-es/_cloneArrayBuffer.js","webpack://converse.js/./node_modules/lodash-es/_cloneDataView.js","webpack://converse.js/./node_modules/lodash-es/_cloneRegExp.js","webpack://converse.js/./node_modules/lodash-es/_cloneSymbol.js","webpack://converse.js/./node_modules/lodash-es/_cloneTypedArray.js","webpack://converse.js/./node_modules/lodash-es/_initCloneByTag.js","webpack://converse.js/./node_modules/lodash-es/_initCloneObject.js","webpack://converse.js/./node_modules/lodash-es/_baseIsMap.js","webpack://converse.js/./node_modules/lodash-es/isMap.js","webpack://converse.js/./node_modules/lodash-es/_baseIsSet.js","webpack://converse.js/./node_modules/lodash-es/isSet.js","webpack://converse.js/./node_modules/lodash-es/_baseClone.js","webpack://converse.js/./node_modules/lodash-es/clone.js","webpack://converse.js/./node_modules/lodash-es/defaults.js","webpack://converse.js/./node_modules/lodash-es/_baseDelay.js","webpack://converse.js/./node_modules/lodash-es/defer.js","webpack://converse.js/./node_modules/lodash-es/_basePropertyOf.js","webpack://converse.js/./node_modules/lodash-es/_escapeHtmlChar.js","webpack://converse.js/./node_modules/lodash-es/escape.js","webpack://converse.js/./node_modules/lodash-es/_createBaseFor.js","webpack://converse.js/./node_modules/lodash-es/_baseFor.js","webpack://converse.js/./node_modules/lodash-es/_baseForOwn.js","webpack://converse.js/./node_modules/lodash-es/_baseInverter.js","webpack://converse.js/./node_modules/lodash-es/_createInverter.js","webpack://converse.js/./node_modules/lodash-es/invert.js","webpack://converse.js/./node_modules/lodash-es/_setCacheAdd.js","webpack://converse.js/./node_modules/lodash-es/_setCacheHas.js","webpack://converse.js/./node_modules/lodash-es/_SetCache.js","webpack://converse.js/./node_modules/lodash-es/_arraySome.js","webpack://converse.js/./node_modules/lodash-es/_cacheHas.js","webpack://converse.js/./node_modules/lodash-es/_equalArrays.js","webpack://converse.js/./node_modules/lodash-es/_mapToArray.js","webpack://converse.js/./node_modules/lodash-es/_setToArray.js","webpack://converse.js/./node_modules/lodash-es/_equalByTag.js","webpack://converse.js/./node_modules/lodash-es/_equalObjects.js","webpack://converse.js/./node_modules/lodash-es/_baseIsEqualDeep.js","webpack://converse.js/./node_modules/lodash-es/_baseIsEqual.js","webpack://converse.js/./node_modules/lodash-es/isEqual.js","webpack://converse.js/./node_modules/lodash-es/_baseIsMatch.js","webpack://converse.js/./node_modules/lodash-es/_isStrictComparable.js","webpack://converse.js/./node_modules/lodash-es/_getMatchData.js","webpack://converse.js/./node_modules/lodash-es/_matchesStrictComparable.js","webpack://converse.js/./node_modules/lodash-es/_baseMatches.js","webpack://converse.js/./node_modules/lodash-es/_baseGet.js","webpack://converse.js/./node_modules/lodash-es/get.js","webpack://converse.js/./node_modules/lodash-es/_baseHasIn.js","webpack://converse.js/./node_modules/lodash-es/hasIn.js","webpack://converse.js/./node_modules/lodash-es/_baseMatchesProperty.js","webpack://converse.js/./node_modules/lodash-es/_baseProperty.js","webpack://converse.js/./node_modules/lodash-es/_basePropertyDeep.js","webpack://converse.js/./node_modules/lodash-es/property.js","webpack://converse.js/./node_modules/lodash-es/_baseIteratee.js","webpack://converse.js/./node_modules/lodash-es/iteratee.js","webpack://converse.js/./node_modules/lodash-es/last.js","webpack://converse.js/./node_modules/lodash-es/_baseSlice.js","webpack://converse.js/./node_modules/lodash-es/_parent.js","webpack://converse.js/./node_modules/lodash-es/_baseUnset.js","webpack://converse.js/./node_modules/lodash-es/isPlainObject.js","webpack://converse.js/./node_modules/lodash-es/_customOmitClone.js","webpack://converse.js/./node_modules/lodash-es/_isFlattenable.js","webpack://converse.js/./node_modules/lodash-es/_baseFlatten.js","webpack://converse.js/./node_modules/lodash-es/flatten.js","webpack://converse.js/./node_modules/lodash-es/_flatRest.js","webpack://converse.js/./node_modules/lodash-es/omit.js","webpack://converse.js/./node_modules/lodash-es/_baseSet.js","webpack://converse.js/./node_modules/lodash-es/_basePickBy.js","webpack://converse.js/./node_modules/lodash-es/_basePick.js","webpack://converse.js/./node_modules/lodash-es/pick.js","webpack://converse.js/./node_modules/@converse/skeletor/src/model.js","webpack://converse.js/./src/strophe-shims.js","webpack://converse.js/./node_modules/strophe.js/src/constants.js","webpack://converse.js/./node_modules/strophe.js/src/utils.js","webpack://converse.js/./node_modules/strophe.js/src/builder.js","webpack://converse.js/./node_modules/strophe.js/src/handler.js","webpack://converse.js/./node_modules/strophe.js/src/timed-handler.js","webpack://converse.js/./node_modules/strophe.js/src/connection.js","webpack://converse.js/./node_modules/strophe.js/src/sasl.js","webpack://converse.js/./node_modules/strophe.js/src/sasl-anon.js","webpack://converse.js/./node_modules/strophe.js/src/sasl-external.js","webpack://converse.js/./node_modules/strophe.js/src/sasl-oauthbearer.js","webpack://converse.js/./node_modules/strophe.js/src/sasl-plain.js","webpack://converse.js/./node_modules/strophe.js/src/scram.js","webpack://converse.js/./node_modules/strophe.js/src/sasl-sha1.js","webpack://converse.js/./node_modules/strophe.js/src/sasl-sha256.js","webpack://converse.js/./node_modules/strophe.js/src/sasl-sha384.js","webpack://converse.js/./node_modules/strophe.js/src/sasl-sha512.js","webpack://converse.js/./node_modules/strophe.js/src/sasl-xoauth2.js","webpack://converse.js/./node_modules/strophe.js/src/core.js","webpack://converse.js/./node_modules/strophe.js/src/bosh.js","webpack://converse.js/./node_modules/strophe.js/src/websocket.js","webpack://converse.js/./node_modules/strophe.js/src/worker-websocket.js","webpack://converse.js/./node_modules/strophe.js/src/strophe.js","webpack://converse.js/./src/headless/shared/constants.js","webpack://converse.js/./src/headless/shared/i18n.js","webpack://converse.js/./node_modules/lodash-es/compact.js","webpack://converse.js/external var \"sizzle\"","webpack://converse.js/./node_modules/@converse/openpromise/openpromise.js","webpack://converse.js/./src/headless/shared/settings/constants.js","webpack://converse.js/./node_modules/lodash-es/cloneDeep.js","webpack://converse.js/./node_modules/lodash-es/isString.js","webpack://converse.js/./node_modules/localforage/src/utils/idb.js","webpack://converse.js/./node_modules/localforage/src/utils/isIndexedDBValid.js","webpack://converse.js/./node_modules/localforage/src/utils/createBlob.js","webpack://converse.js/./node_modules/localforage/src/utils/promise.js","webpack://converse.js/./node_modules/localforage/src/utils/executeCallback.js","webpack://converse.js/./node_modules/localforage/src/utils/executeTwoCallbacks.js","webpack://converse.js/./node_modules/localforage/src/utils/normalizeKey.js","webpack://converse.js/./node_modules/localforage/src/utils/getCallback.js","webpack://converse.js/./node_modules/localforage/src/drivers/indexeddb.js","webpack://converse.js/./node_modules/localforage/src/utils/isWebSQLValid.js","webpack://converse.js/./node_modules/localforage/src/utils/serializer.js","webpack://converse.js/./node_modules/localforage/src/drivers/websql.js","webpack://converse.js/./node_modules/localforage/src/utils/isLocalStorageValid.js","webpack://converse.js/./node_modules/localforage/src/drivers/localstorage.js","webpack://converse.js/./node_modules/localforage/src/utils/includes.js","webpack://converse.js/./node_modules/localforage/src/utils/isArray.js","webpack://converse.js/./node_modules/localforage/src/localforage.js","webpack://converse.js/./node_modules/lodash-es/_assignMergeValue.js","webpack://converse.js/./node_modules/lodash-es/isArrayLikeObject.js","webpack://converse.js/./node_modules/lodash-es/_safeGet.js","webpack://converse.js/./node_modules/lodash-es/toPlainObject.js","webpack://converse.js/./node_modules/lodash-es/_baseMergeDeep.js","webpack://converse.js/./node_modules/lodash-es/_baseMerge.js","webpack://converse.js/./node_modules/lodash-es/merge.js","webpack://converse.js/./node_modules/lodash-es/mergeWith.js","webpack://converse.js/./node_modules/lodash-es/now.js","webpack://converse.js/./node_modules/mergebounce/mergebounce.js","webpack://converse.js/./node_modules/@converse/skeletor/src/drivers/sessionStorage.js","webpack://converse.js/./node_modules/@converse/skeletor/src/storage.js","webpack://converse.js/./src/headless/utils/storage.js","webpack://converse.js/./src/headless/shared/settings/utils.js","webpack://converse.js/./src/headless/shared/settings/api.js","webpack://converse.js/./src/headless/utils/stanza.js","webpack://converse.js/./src/headless/utils/core.js","webpack://converse.js/./src/headless/log.js","webpack://converse.js/./node_modules/pluggable.js/src/pluggable.js","webpack://converse.js/./node_modules/lodash-es/_createBaseEach.js","webpack://converse.js/./node_modules/lodash-es/_baseEach.js","webpack://converse.js/./node_modules/lodash-es/_baseSome.js","webpack://converse.js/./node_modules/lodash-es/some.js","webpack://converse.js/./node_modules/@converse/skeletor/src/history.js","webpack://converse.js/./node_modules/lodash-es/_baseIsRegExp.js","webpack://converse.js/./node_modules/lodash-es/isRegExp.js","webpack://converse.js/./node_modules/@converse/skeletor/src/router.js","webpack://converse.js/./src/headless/shared/_converse.js","webpack://converse.js/./src/headless/shared/connection/api.js","webpack://converse.js/./src/headless/shared/api/events.js","webpack://converse.js/./src/headless/shared/api/promise.js","webpack://converse.js/./src/headless/shared/errors.js","webpack://converse.js/./src/headless/shared/api/send.js","webpack://converse.js/./src/headless/shared/api/presence.js","webpack://converse.js/./node_modules/lodash-es/debounce.js","webpack://converse.js/./src/headless/shared/connection/index.js","webpack://converse.js/./src/headless/utils/init.js","webpack://converse.js/./src/headless/shared/api/user.js","webpack://converse.js/./src/headless/shared/api/index.js","webpack://converse.js/./src/headless/shared/connection/feedback.js","webpack://converse.js/external var \"urijs\"","webpack://converse.js/./node_modules/lodash-es/_arrayAggregator.js","webpack://converse.js/./node_modules/lodash-es/_baseAggregator.js","webpack://converse.js/./node_modules/lodash-es/_createAggregator.js","webpack://converse.js/./node_modules/lodash-es/countBy.js","webpack://converse.js/./node_modules/lodash-es/_baseFindIndex.js","webpack://converse.js/./node_modules/lodash-es/_baseIsNaN.js","webpack://converse.js/./node_modules/lodash-es/_strictIndexOf.js","webpack://converse.js/./node_modules/lodash-es/_baseIndexOf.js","webpack://converse.js/./node_modules/lodash-es/_arrayIncludes.js","webpack://converse.js/./node_modules/lodash-es/_arrayIncludesWith.js","webpack://converse.js/./node_modules/lodash-es/_baseDifference.js","webpack://converse.js/./node_modules/lodash-es/difference.js","webpack://converse.js/./node_modules/lodash-es/_arrayEvery.js","webpack://converse.js/./node_modules/lodash-es/_baseEvery.js","webpack://converse.js/./node_modules/lodash-es/every.js","webpack://converse.js/./node_modules/lodash-es/findIndex.js","webpack://converse.js/./node_modules/lodash-es/findLastIndex.js","webpack://converse.js/./node_modules/lodash-es/groupBy.js","webpack://converse.js/./node_modules/lodash-es/indexOf.js","webpack://converse.js/./node_modules/lodash-es/keyBy.js","webpack://converse.js/./node_modules/lodash-es/_strictLastIndexOf.js","webpack://converse.js/./node_modules/lodash-es/lastIndexOf.js","webpack://converse.js/./node_modules/lodash-es/_baseMap.js","webpack://converse.js/./node_modules/lodash-es/_baseSortBy.js","webpack://converse.js/./node_modules/lodash-es/_compareAscending.js","webpack://converse.js/./node_modules/lodash-es/_compareMultiple.js","webpack://converse.js/./node_modules/lodash-es/_baseOrderBy.js","webpack://converse.js/./node_modules/lodash-es/sortBy.js","webpack://converse.js/./node_modules/@converse/skeletor/src/collection.js","webpack://converse.js/external var \"filesize\"","webpack://converse.js/external var \"lit\"","webpack://converse.js/./src/headless/shared/api/public.js","webpack://converse.js/./src/headless/core.js","webpack://converse.js/./src/headless/plugins/chat/model-with-contact.js","webpack://converse.js/./node_modules/lodash-es/isMatch.js","webpack://converse.js/./src/headless/shared/chat/utils.js","webpack://converse.js/./src/headless/shared/actions.js","webpack://converse.js/./src/headless/utils/url.js","webpack://converse.js/./src/headless/shared/parsers.js","webpack://converse.js/./src/headless/plugins/chat/parsers.js","webpack://converse.js/./src/headless/plugins/chat/model.js","webpack://converse.js/./src/headless/plugins/chat/message.js","webpack://converse.js/./src/headless/plugins/chat/api.js","webpack://converse.js/./src/headless/plugins/chat/utils.js","webpack://converse.js/./src/headless/plugins/chat/index.js","webpack://converse.js/./src/headless/plugins/disco/entity.js","webpack://converse.js/./src/headless/plugins/disco/entities.js","webpack://converse.js/./src/headless/plugins/disco/utils.js","webpack://converse.js/./src/headless/plugins/disco/api.js","webpack://converse.js/./src/headless/plugins/disco/index.js","webpack://converse.js/./src/headless/plugins/emoji/regexes.js","webpack://converse.js/./src/headless/plugins/emoji/utils.js","webpack://converse.js/./src/headless/plugins/emoji/index.js","webpack://converse.js/./src/headless/plugins/muc/message.js","webpack://converse.js/./node_modules/lodash-es/isElement.js","webpack://converse.js/./src/headless/utils/parse-helpers.js","webpack://converse.js/./src/headless/plugins/muc/constants.js","webpack://converse.js/./src/headless/plugins/muc/parsers.js","webpack://converse.js/./src/headless/plugins/muc/affiliations/utils.js","webpack://converse.js/./src/headless/plugins/muc/muc.js","webpack://converse.js/./src/headless/plugins/muc/occupant.js","webpack://converse.js/./src/headless/plugins/muc/utils.js","webpack://converse.js/./src/headless/plugins/muc/occupants.js","webpack://converse.js/./src/headless/plugins/muc/affiliations/api.js","webpack://converse.js/./src/headless/plugins/muc/api.js","webpack://converse.js/./src/headless/plugins/muc/index.js","webpack://converse.js/./src/headless/plugins/bookmarks/model.js","webpack://converse.js/./src/headless/plugins/bookmarks/collection.js","webpack://converse.js/./src/headless/plugins/bookmarks/utils.js","webpack://converse.js/./src/headless/plugins/bookmarks/index.js","webpack://converse.js/./src/headless/plugins/bosh.js","webpack://converse.js/./src/headless/utils/arraybuffer.js","webpack://converse.js/./src/headless/plugins/caps/utils.js","webpack://converse.js/./src/headless/plugins/caps/index.js","webpack://converse.js/./src/headless/plugins/chatboxes/chatboxes.js","webpack://converse.js/./src/headless/plugins/chatboxes/utils.js","webpack://converse.js/./src/headless/plugins/chatboxes/api.js","webpack://converse.js/./src/headless/plugins/chatboxes/index.js","webpack://converse.js/./src/headless/plugins/adhoc/utils.js","webpack://converse.js/./src/headless/plugins/adhoc/api.js","webpack://converse.js/./src/headless/plugins/adhoc/index.js","webpack://converse.js/./src/headless/plugins/headlines/feed.js","webpack://converse.js/./src/headless/plugins/headlines/api.js","webpack://converse.js/./src/headless/plugins/headlines/utils.js","webpack://converse.js/./src/headless/plugins/headlines/index.js","webpack://converse.js/./src/headless/plugins/mam/placeholder.js","webpack://converse.js/./src/headless/shared/rsm.js","webpack://converse.js/./src/headless/plugins/mam/api.js","webpack://converse.js/./src/headless/plugins/mam/utils.js","webpack://converse.js/./src/headless/plugins/mam/index.js","webpack://converse.js/./src/headless/plugins/ping/utils.js","webpack://converse.js/./src/headless/plugins/ping/api.js","webpack://converse.js/./src/headless/plugins/ping/index.js","webpack://converse.js/./src/headless/plugins/pubsub.js","webpack://converse.js/./node_modules/lodash-es/isNumber.js","webpack://converse.js/./node_modules/lodash-es/isNaN.js","webpack://converse.js/./src/headless/plugins/status/status.js","webpack://converse.js/./src/headless/plugins/status/api.js","webpack://converse.js/./src/headless/plugins/status/utils.js","webpack://converse.js/./src/headless/plugins/status/index.js","webpack://converse.js/./src/headless/plugins/roster/filter.js","webpack://converse.js/./src/headless/plugins/roster/utils.js","webpack://converse.js/./src/headless/plugins/roster/contact.js","webpack://converse.js/./src/headless/plugins/roster/contacts.js","webpack://converse.js/./src/headless/plugins/roster/api.js","webpack://converse.js/./src/headless/plugins/roster/presence.js","webpack://converse.js/./src/headless/plugins/roster/index.js","webpack://converse.js/./src/headless/plugins/smacks/utils.js","webpack://converse.js/./src/headless/plugins/smacks/index.js","webpack://converse.js/./src/headless/plugins/vcard/vcard.js","webpack://converse.js/./src/headless/plugins/vcard/utils.js","webpack://converse.js/./src/headless/plugins/vcard/api.js","webpack://converse.js/./src/headless/plugins/vcard/index.js","webpack://converse.js/./src/headless/index.js","webpack://converse.js/external var \"jed\"","webpack://converse.js/./src/i18n/index.js","webpack://converse.js/./src/shared/registry.js","webpack://converse.js/./src/shared/components/element.js","webpack://converse.js/./src/shared/constants.js","webpack://converse.js/./src/shared/styles/index.scss?2698","webpack://converse.js/./src/plugins/modal/templates/modal-alert.js","webpack://converse.js/external var \"lit-html\"","webpack://converse.js/./node_modules/@converse/skeletor/src/view.js","webpack://converse.js/./src/templates/audio.js","webpack://converse.js/./src/templates/file.js","webpack://converse.js/./src/templates/form_captcha.js","webpack://converse.js/./src/templates/form_checkbox.js","webpack://converse.js/./src/templates/form_help.js","webpack://converse.js/./src/templates/form_input.js","webpack://converse.js/./src/templates/form_select.js","webpack://converse.js/./src/templates/form_textarea.js","webpack://converse.js/./src/templates/form_url.js","webpack://converse.js/./src/templates/form_username.js","webpack://converse.js/./src/templates/hyperlink.js","webpack://converse.js/./src/templates/video.js","webpack://converse.js/./src/utils/html.js","webpack://converse.js/./src/plugins/modal/styles/_modal.scss?ae22","webpack://converse.js/./src/plugins/modal/base.js","webpack://converse.js/./src/plugins/modal/templates/buttons.js","webpack://converse.js/./src/plugins/modal/templates/modal.js","webpack://converse.js/./node_modules/@converse/skeletor/src/element.js","webpack://converse.js/./src/plugins/modal/modal.js","webpack://converse.js/./src/plugins/modal/templates/alert.js","webpack://converse.js/./src/plugins/modal/alert.js","webpack://converse.js/./src/plugins/modal/templates/prompt.js","webpack://converse.js/./src/plugins/modal/confirm.js","webpack://converse.js/./src/plugins/modal/api.js","webpack://converse.js/./src/plugins/modal/index.js","webpack://converse.js/./src/shared/autocomplete/utils.js","webpack://converse.js/./src/shared/autocomplete/suggestion.js","webpack://converse.js/./src/shared/autocomplete/autocomplete.js","webpack://converse.js/./src/shared/autocomplete/component.js","webpack://converse.js/./src/shared/autocomplete/styles/_autocomplete.scss?7d20","webpack://converse.js/./src/shared/autocomplete/index.js","webpack://converse.js/./src/plugins/adhoc-views/templates/ad-hoc-command-form.js","webpack://converse.js/./src/plugins/adhoc-views/templates/ad-hoc-command.js","webpack://converse.js/./src/templates/spinner.js","webpack://converse.js/./src/shared/avatar/templates/avatar.js","webpack://converse.js/./src/shared/avatar/avatar.scss?a81c","webpack://converse.js/./src/shared/avatar/avatar.js","webpack://converse.js/src/lit-html.ts","webpack://converse.js/src/directive-helpers.ts","webpack://converse.js/src/directive.ts","webpack://converse.js/src/async-directive.ts","webpack://converse.js/../src/directives/private-async-helpers.ts","webpack://converse.js/../src/directives/until.ts","webpack://converse.js/./src/plugins/muc-views/modals/templates/occupant.js","webpack://converse.js/./src/plugins/muc-views/modals/occupant.js","webpack://converse.js/./src/plugins/muc-views/templates/moderator-tools.js","webpack://converse.js/./src/plugins/muc-views/styles/moderator-tools.scss?41d1","webpack://converse.js/./src/plugins/muc-views/modtools.js","webpack://converse.js/./src/plugins/muc-views/modals/moderator-tools.js","webpack://converse.js/./src/plugins/muc-views/utils.js","webpack://converse.js/./src/plugins/adhoc-views/templates/ad-hoc.js","webpack://converse.js/./src/plugins/adhoc-views/adhoc-commands.js","webpack://converse.js/./src/plugins/adhoc-views/index.js","webpack://converse.js/./node_modules/lodash-es/_baseInvoke.js","webpack://converse.js/./node_modules/lodash-es/invokeMap.js","webpack://converse.js/./src/plugins/bookmark-views/utils.js","webpack://converse.js/./src/plugins/bookmark-views/components/templates/item.js","webpack://converse.js/./src/plugins/bookmark-views/components/templates/list.js","webpack://converse.js/./src/plugins/bookmark-views/styles/bookmarks.scss?baf3","webpack://converse.js/./src/plugins/bookmark-views/components/bookmarks-list.js","webpack://converse.js/./src/plugins/bookmark-views/modals/bookmark-list.js","webpack://converse.js/./src/plugins/bookmark-views/components/templates/form.js","webpack://converse.js/./src/plugins/bookmark-views/components/bookmark-form.js","webpack://converse.js/./src/plugins/bookmark-views/modals/bookmark-form.js","webpack://converse.js/./src/plugins/bookmark-views/mixins.js","webpack://converse.js/./src/plugins/bookmark-views/index.js","webpack://converse.js/./src/templates/background_logo.js","webpack://converse.js/../src/directives/repeat.ts","webpack://converse.js/./src/plugins/chatboxviews/templates/chats.js","webpack://converse.js/./src/plugins/chatboxviews/view.js","webpack://converse.js/./src/plugins/chatboxviews/container.js","webpack://converse.js/./src/plugins/chatboxviews/utils.js","webpack://converse.js/./src/plugins/chatboxviews/styles/chats.scss?471c","webpack://converse.js/./src/plugins/chatboxviews/index.js","webpack://converse.js/./src/shared/chat/styles/message-actions.scss?5c22","webpack://converse.js/./src/shared/chat/message-actions.js","webpack://converse.js/./src/shared/modals/templates/image.js","webpack://converse.js/./src/shared/modals/styles/image.scss?f7f7","webpack://converse.js/./src/shared/modals/image.js","webpack://converse.js/./src/shared/gif/index.js","webpack://converse.js/./src/shared/components/styles/gif.scss?6977","webpack://converse.js/./src/shared/components/gif.js","webpack://converse.js/./src/templates/gif.js","webpack://converse.js/./src/shared/directives/image.js","webpack://converse.js/./src/templates/image.js","webpack://converse.js/./src/shared/directives/styling.js","webpack://converse.js/./src/shared/styling.js","webpack://converse.js/./src/shared/chat/templates/new-day.js","webpack://converse.js/./src/shared/chat/utils.js","webpack://converse.js/./src/shared/rich-text.js","webpack://converse.js/./src/shared/directives/rich-text.js","webpack://converse.js/./src/shared/chat/styles/message-body.scss?9260","webpack://converse.js/./src/shared/chat/message-body.js","webpack://converse.js/./src/shared/components/styles/icon.scss?0500","webpack://converse.js/./src/shared/components/icons.js","webpack://converse.js/./src/shared/dom-navigator.js","webpack://converse.js/./src/shared/components/dropdownbase.js","webpack://converse.js/./src/shared/components/styles/dropdown.scss?97e9","webpack://converse.js/./src/shared/components/dropdown.js","webpack://converse.js/./src/shared/components/styles/message-versions.scss?dafc","webpack://converse.js/./src/shared/components/message-versions.js","webpack://converse.js/./src/shared/modals/message-versions.js","webpack://converse.js/./src/shared/modals/templates/user-details.js","webpack://converse.js/./src/plugins/rosterview/utils.js","webpack://converse.js/./src/shared/modals/user-details.js","webpack://converse.js/./src/shared/chat/templates/file-progress.js","webpack://converse.js/./src/shared/chat/templates/info-message.js","webpack://converse.js/./src/plugins/muc-views/templates/mep-message.js","webpack://converse.js/./src/shared/components/image.js","webpack://converse.js/./src/shared/chat/templates/unfurl.js","webpack://converse.js/./src/shared/chat/styles/unfurl.scss?2105","webpack://converse.js/./src/shared/chat/unfurl.js","webpack://converse.js/./src/shared/chat/templates/message.js","webpack://converse.js/./src/shared/chat/templates/message-text.js","webpack://converse.js/./src/shared/chat/styles/retraction.scss?a5ef","webpack://converse.js/./src/shared/chat/templates/retraction.js","webpack://converse.js/./src/shared/chat/message.js","webpack://converse.js/./src/shared/chat/message-history.js","webpack://converse.js/./src/shared/chat/styles/chat-content.scss?9e97","webpack://converse.js/./src/shared/chat/chat-content.js","webpack://converse.js/../src/directives/unsafe-html.ts","webpack://converse.js/./src/shared/chat/help-messages.js","webpack://converse.js/./src/shared/chat/templates/emoji-picker.js","webpack://converse.js/./src/shared/chat/emoji-picker-content.js","webpack://converse.js/./src/shared/chat/emoji-dropdown.js","webpack://converse.js/./src/shared/chat/styles/emoji.scss?a94b","webpack://converse.js/./src/shared/chat/emoji-picker.js","webpack://converse.js/./src/shared/chat/templates/message-limit.js","webpack://converse.js/./src/shared/chat/message-limit.js","webpack://converse.js/./src/shared/chat/templates/toolbar.js","webpack://converse.js/./src/shared/chat/styles/toolbar.scss?33eb","webpack://converse.js/./src/shared/chat/toolbar.js","webpack://converse.js/./src/plugins/chatview/templates/chat-head.js","webpack://converse.js/./src/plugins/chatview/styles/chat-head.scss?abcc","webpack://converse.js/./src/plugins/chatview/heading.js","webpack://converse.js/./src/plugins/chatview/utils.js","webpack://converse.js/./src/plugins/chatview/templates/message-form.js","webpack://converse.js/./src/plugins/chatview/message-form.js","webpack://converse.js/./src/plugins/chatview/templates/bottom-panel.js","webpack://converse.js/./src/plugins/chatview/styles/chat-bottom-panel.scss?ed3d","webpack://converse.js/./src/plugins/chatview/bottom-panel.js","webpack://converse.js/./src/shared/chat/baseview.js","webpack://converse.js/./src/plugins/chatview/templates/chat.js","webpack://converse.js/./src/plugins/chatview/chat.js","webpack://converse.js/./src/plugins/chatview/styles/index.scss?9d62","webpack://converse.js/./src/plugins/chatview/index.js","webpack://converse.js/./src/shared/components/brand-byline.js","webpack://converse.js/./src/shared/components/brand-logo.js","webpack://converse.js/./src/shared/components/brand-heading.js","webpack://converse.js/./src/plugins/controlbox/constants.js","webpack://converse.js/./src/plugins/controlbox/templates/loginform.js","webpack://converse.js/./src/plugins/controlbox/utils.js","webpack://converse.js/./src/plugins/controlbox/loginform.js","webpack://converse.js/./src/plugins/controlbox/templates/navback.js","webpack://converse.js/./src/plugins/controlbox/navback.js","webpack://converse.js/./src/plugins/controlbox/model.js","webpack://converse.js/./src/plugins/controlbox/templates/toggle.js","webpack://converse.js/./src/plugins/controlbox/toggle.js","webpack://converse.js/./src/plugins/controlbox/templates/controlbox.js","webpack://converse.js/./src/plugins/controlbox/controlbox.js","webpack://converse.js/./src/plugins/controlbox/api.js","webpack://converse.js/./src/plugins/controlbox/styles/_controlbox.scss?9b06","webpack://converse.js/./src/plugins/controlbox/styles/controlbox-head.scss?8a25","webpack://converse.js/./src/plugins/controlbox/index.js","webpack://converse.js/./src/plugins/headlines-view/templates/chat-head.js","webpack://converse.js/./src/plugins/headlines-view/heading.js","webpack://converse.js/./src/plugins/headlines-view/templates/headlines.js","webpack://converse.js/./src/plugins/headlines-view/view.js","webpack://converse.js/./src/plugins/headlines-view/templates/feeds-list.js","webpack://converse.js/./src/plugins/headlines-view/feed-list.js","webpack://converse.js/./src/plugins/headlines-view/styles/headlines.scss?f6b7","webpack://converse.js/./src/plugins/headlines-view/styles/headlines-head.scss?2a96","webpack://converse.js/./src/plugins/headlines-view/index.js","webpack://converse.js/./src/plugins/mam-views/templates/placeholder.js","webpack://converse.js/./src/plugins/mam-views/styles/placeholder.scss?7407","webpack://converse.js/./src/plugins/mam-views/placeholder.js","webpack://converse.js/./src/plugins/mam-views/utils.js","webpack://converse.js/./src/plugins/mam-views/index.js","webpack://converse.js/./src/plugins/muc-views/templates/affiliation-form.js","webpack://converse.js/./src/plugins/muc-views/affiliation-form.js","webpack://converse.js/./src/plugins/muc-views/templates/role-form.js","webpack://converse.js/./src/plugins/muc-views/role-form.js","webpack://converse.js/./src/plugins/muc-views/templates/message-form.js","webpack://converse.js/./src/plugins/muc-views/message-form.js","webpack://converse.js/./src/plugins/muc-views/templates/muc-nickname-form.js","webpack://converse.js/./src/plugins/muc-views/styles/nickname-form.scss?0144","webpack://converse.js/./src/plugins/muc-views/nickname-form.js","webpack://converse.js/./src/plugins/muc-views/templates/muc-bottom-panel.js","webpack://converse.js/./src/plugins/muc-views/styles/muc-bottom-panel.scss?95ae","webpack://converse.js/./src/plugins/muc-views/bottom-panel.js","webpack://converse.js/./src/plugins/muc-views/constants.js","webpack://converse.js/./src/plugins/muc-views/templates/occupant.js","webpack://converse.js/./src/plugins/muc-views/templates/muc-sidebar.js","webpack://converse.js/./src/shared/styles/status.scss?40c6","webpack://converse.js/./src/plugins/muc-views/styles/muc-occupants.scss?8783","webpack://converse.js/./src/plugins/muc-views/sidebar.js","webpack://converse.js/./src/plugins/muc-views/templates/muc-chatarea.js","webpack://converse.js/./src/plugins/muc-views/chatarea.js","webpack://converse.js/./src/plugins/muc-views/templates/muc-config-form.js","webpack://converse.js/./src/plugins/muc-views/config-form.js","webpack://converse.js/./src/plugins/muc-views/templates/muc-destroyed.js","webpack://converse.js/./src/plugins/muc-views/destroyed.js","webpack://converse.js/./src/plugins/muc-views/templates/muc-disconnect.js","webpack://converse.js/./src/plugins/muc-views/disconnected.js","webpack://converse.js/./src/plugins/muc-views/modals/templates/muc-details.js","webpack://converse.js/./src/plugins/muc-views/styles/muc-details-modal.scss?92f9","webpack://converse.js/./src/plugins/muc-views/modals/muc-details.js","webpack://converse.js/./src/plugins/muc-views/modals/templates/muc-invite.js","webpack://converse.js/./src/plugins/muc-views/modals/muc-invite.js","webpack://converse.js/./src/plugins/muc-views/modals/nickname.js","webpack://converse.js/./src/shared/components/styles/rich-text.scss?13b1","webpack://converse.js/./src/shared/components/rich-text.js","webpack://converse.js/./src/plugins/muc-views/templates/muc-head.js","webpack://converse.js/./src/plugins/muc-views/styles/muc-head.scss?e3ea","webpack://converse.js/./src/plugins/muc-views/heading.js","webpack://converse.js/./src/plugins/muc-views/templates/muc-password-form.js","webpack://converse.js/./src/plugins/muc-views/password-form.js","webpack://converse.js/./src/plugins/muc-views/templates/muc.js","webpack://converse.js/./src/plugins/muc-views/muc.js","webpack://converse.js/./src/plugins/muc-views/styles/index.scss?0305","webpack://converse.js/./src/plugins/muc-views/index.js","webpack://converse.js/./src/plugins/minimize/toggle.js","webpack://converse.js/./src/plugins/minimize/templates/chats-panel.js","webpack://converse.js/./src/plugins/minimize/view.js","webpack://converse.js/./src/plugins/minimize/templates/trimmed_chat.js","webpack://converse.js/./src/plugins/minimize/utils.js","webpack://converse.js/./src/plugins/minimize/components/minimized-chat.js","webpack://converse.js/./src/plugins/minimize/styles/minimize.scss?ca55","webpack://converse.js/./src/plugins/minimize/index.js","webpack://converse.js/./src/plugins/notifications/utils.js","webpack://converse.js/./src/plugins/notifications/index.js","webpack://converse.js/./src/plugins/profile/templates/chat-status-modal.js","webpack://converse.js/./src/plugins/profile/modals/chat-status.js","webpack://converse.js/./src/shared/components/image-picker.js","webpack://converse.js/./src/plugins/profile/templates/profile_modal.js","webpack://converse.js/./src/plugins/profile/templates/password-reset.js","webpack://converse.js/./src/plugins/profile/password-reset.js","webpack://converse.js/./src/plugins/profile/modals/profile.js","webpack://converse.js/./src/plugins/profile/modals/templates/user-settings.js","webpack://converse.js/./src/plugins/profile/modals/user-settings.js","webpack://converse.js/./src/plugins/profile/utils.js","webpack://converse.js/./src/plugins/profile/templates/profile.js","webpack://converse.js/./src/plugins/profile/statusview.js","webpack://converse.js/./src/plugins/profile/index.js","webpack://converse.js/./node_modules/lodash-es/concat.js","webpack://converse.js/./src/plugins/omemo/consts.js","webpack://converse.js/./src/utils/file.js","webpack://converse.js/./src/plugins/omemo/utils.js","webpack://converse.js/./src/plugins/omemo/templates/fingerprints.js","webpack://converse.js/./src/plugins/omemo/fingerprints.js","webpack://converse.js/./src/plugins/omemo/templates/profile.js","webpack://converse.js/./src/plugins/omemo/profile.js","webpack://converse.js/./src/plugins/omemo/mixins/converse.js","webpack://converse.js/./src/plugins/omemo/errors.js","webpack://converse.js/./src/plugins/omemo/device.js","webpack://converse.js/./src/plugins/omemo/devicelist.js","webpack://converse.js/./src/plugins/omemo/devicelists.js","webpack://converse.js/./src/plugins/omemo/devices.js","webpack://converse.js/./node_modules/lodash-es/_baseRange.js","webpack://converse.js/./node_modules/lodash-es/_createRange.js","webpack://converse.js/./node_modules/lodash-es/range.js","webpack://converse.js/./src/plugins/omemo/store.js","webpack://converse.js/./src/plugins/omemo/api.js","webpack://converse.js/./src/plugins/omemo/index.js","webpack://converse.js/./src/plugins/push/utils.js","webpack://converse.js/./src/plugins/push/index.js","webpack://converse.js/./src/plugins/register/templates/switch_form.js","webpack://converse.js/./src/plugins/register/templates/registration_form.js","webpack://converse.js/./src/plugins/register/templates/register_panel.js","webpack://converse.js/./src/plugins/register/utils.js","webpack://converse.js/./src/headless/utils/form.js","webpack://converse.js/./src/plugins/register/styles/register.scss?c14c","webpack://converse.js/./src/plugins/register/panel.js","webpack://converse.js/./src/plugins/register/index.js","webpack://converse.js/./src/plugins/roomslist/model.js","webpack://converse.js/./src/plugins/muc-views/search.js","webpack://converse.js/./src/plugins/muc-views/modals/templates/add-muc.js","webpack://converse.js/./src/plugins/muc-views/styles/add-muc-modal.scss?cda6","webpack://converse.js/./src/plugins/muc-views/modals/add-muc.js","webpack://converse.js/./node_modules/lodash-es/head.js","webpack://converse.js/./src/plugins/muc-views/templates/muc-description.js","webpack://converse.js/./src/plugins/muc-views/templates/muc-list.js","webpack://converse.js/./src/plugins/muc-views/modals/muc-list.js","webpack://converse.js/./src/plugins/roomslist/templates/roomslist.js","webpack://converse.js/./src/plugins/roomslist/view.js","webpack://converse.js/./src/plugins/roomslist/index.js","webpack://converse.js/./src/shared/templates/icons.js","webpack://converse.js/./src/shared/components/font-awesome.js","webpack://converse.js/./src/plugins/rootview/templates/root.js","webpack://converse.js/./src/plugins/rootview/utils.js","webpack://converse.js/./src/plugins/rootview/styles/root.scss?6b0d","webpack://converse.js/./src/plugins/rootview/root.js","webpack://converse.js/./src/plugins/rootview/index.js","webpack://converse.js/./src/plugins/rosterview/modals/templates/add-contact.js","webpack://converse.js/./src/plugins/rosterview/modals/add-contact.js","webpack://converse.js/./src/plugins/rosterview/templates/group.js","webpack://converse.js/./src/plugins/rosterview/templates/roster.js","webpack://converse.js/./src/plugins/rosterview/rosterview.js","webpack://converse.js/./src/plugins/rosterview/templates/requesting_contact.js","webpack://converse.js/./src/plugins/rosterview/constants.js","webpack://converse.js/./src/plugins/rosterview/templates/roster_item.js","webpack://converse.js/./src/plugins/rosterview/contactview.js","webpack://converse.js/./src/plugins/rosterview/templates/roster_filter.js","webpack://converse.js/./src/plugins/rosterview/filterview.js","webpack://converse.js/./src/plugins/rosterview/styles/roster.scss?022e","webpack://converse.js/./src/plugins/rosterview/index.js","webpack://converse.js/./src/plugins/singleton/singleton.scss?e052","webpack://converse.js/./src/plugins/singleton/index.js","webpack://converse.js/./src/plugins/dragresize/utils.js","webpack://converse.js/./src/plugins/dragresize/templates/dragresize.js","webpack://converse.js/./src/plugins/dragresize/components/dragresize.js","webpack://converse.js/./src/plugins/dragresize/mixin.js","webpack://converse.js/./src/plugins/dragresize/index.js","webpack://converse.js/./src/plugins/fullscreen/styles/fullscreen.scss?0894","webpack://converse.js/./src/plugins/fullscreen/index.js","webpack://converse.js/./src/index.js","webpack://converse.js/./node_modules/bootstrap.native/dist/bootstrap-native.js","webpack://converse.js/./src/plugins/bookmark-views/styles/bookmarks.scss?acd0","webpack://converse.js/./src/plugins/chatboxviews/styles/chats.scss?bfaf","webpack://converse.js/./src/plugins/chatview/styles/chat-bottom-panel.scss?790e","webpack://converse.js/./src/plugins/chatview/styles/chat-head.scss?f38e","webpack://converse.js/./src/plugins/chatview/styles/index.scss?af01","webpack://converse.js/./src/plugins/controlbox/styles/_controlbox.scss?4937","webpack://converse.js/./src/plugins/controlbox/styles/controlbox-head.scss?102d","webpack://converse.js/./src/plugins/fullscreen/styles/fullscreen.scss?2f7e","webpack://converse.js/./src/plugins/headlines-view/styles/headlines-head.scss?20da","webpack://converse.js/./src/plugins/headlines-view/styles/headlines.scss?45bf","webpack://converse.js/./src/plugins/mam-views/styles/placeholder.scss?3212","webpack://converse.js/./src/plugins/minimize/styles/minimize.scss?b07c","webpack://converse.js/./src/plugins/modal/styles/_modal.scss?5156","webpack://converse.js/./src/plugins/muc-views/styles/add-muc-modal.scss?4d6a","webpack://converse.js/./src/plugins/muc-views/styles/index.scss?3d9d","webpack://converse.js/./src/plugins/muc-views/styles/moderator-tools.scss?2a08","webpack://converse.js/./src/plugins/muc-views/styles/muc-bottom-panel.scss?f454","webpack://converse.js/./src/plugins/muc-views/styles/muc-details-modal.scss?63a2","webpack://converse.js/./src/plugins/muc-views/styles/muc-head.scss?7ce7","webpack://converse.js/./src/plugins/muc-views/styles/muc-occupants.scss?3a3a","webpack://converse.js/./src/plugins/muc-views/styles/nickname-form.scss?6350","webpack://converse.js/./src/plugins/register/styles/register.scss?1274","webpack://converse.js/./src/plugins/rootview/styles/root.scss?8ed1","webpack://converse.js/./src/plugins/rosterview/styles/roster.scss?ebe4","webpack://converse.js/./src/plugins/singleton/singleton.scss?c4d4","webpack://converse.js/./src/shared/autocomplete/styles/_autocomplete.scss?5484","webpack://converse.js/./src/shared/avatar/avatar.scss?c114","webpack://converse.js/./src/shared/chat/styles/chat-content.scss?0185","webpack://converse.js/./src/shared/chat/styles/emoji.scss?c56b","webpack://converse.js/./src/shared/chat/styles/message-actions.scss?5be5","webpack://converse.js/./src/shared/chat/styles/message-body.scss?a7c1","webpack://converse.js/./src/shared/chat/styles/retraction.scss?82cb","webpack://converse.js/./src/shared/chat/styles/toolbar.scss?29c8","webpack://converse.js/./src/shared/chat/styles/unfurl.scss?3257","webpack://converse.js/./src/shared/components/styles/dropdown.scss?bd04","webpack://converse.js/./src/shared/components/styles/gif.scss?94e2","webpack://converse.js/./src/shared/components/styles/icon.scss?3656","webpack://converse.js/./src/shared/components/styles/message-versions.scss?192b","webpack://converse.js/./src/shared/components/styles/rich-text.scss?78d8","webpack://converse.js/./src/shared/modals/styles/image.scss?7483","webpack://converse.js/./src/shared/styles/index.scss?dc9b","webpack://converse.js/./src/shared/styles/status.scss?4f51","webpack://converse.js/./node_modules/dayjs/locale/ ../node_modules/dayjs/locale/ lazy ^\\.\\/.*\\.js$ chunkName: locales/dayjs/[request] namespace object","webpack://converse.js/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://converse.js/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://converse.js/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://converse.js/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://converse.js/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://converse.js/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://converse.js/./src/i18n/ lazy ^\\.\\/.*\\/LC_MESSAGES\\/converse\\.po$ chunkName: locales/[request] namespace object","webpack://converse.js/external var \"localforage\"","webpack://converse.js/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://converse.js/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://converse.js/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://converse.js/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://converse.js/./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://converse.js/./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://converse.js/./node_modules/@babel/runtime/helpers/typeof.js","webpack://converse.js/./node_modules/@babel/runtime/regenerator/index.js","webpack://converse.js/webpack/bootstrap","webpack://converse.js/webpack/runtime/compat get default export","webpack://converse.js/webpack/runtime/create fake namespace object","webpack://converse.js/webpack/runtime/define property getters","webpack://converse.js/webpack/runtime/ensure chunk","webpack://converse.js/webpack/runtime/get javascript chunk filename","webpack://converse.js/webpack/runtime/get mini-css chunk filename","webpack://converse.js/webpack/runtime/global","webpack://converse.js/webpack/runtime/hasOwnProperty shorthand","webpack://converse.js/webpack/runtime/load script","webpack://converse.js/webpack/runtime/make namespace object","webpack://converse.js/webpack/runtime/node module decorator","webpack://converse.js/webpack/runtime/publicPath","webpack://converse.js/webpack/runtime/jsonp chunk loading","webpack://converse.js/webpack/runtime/nonce","webpack://converse.js/./src/entry.js"],"sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('localforage')) :\n typeof define === 'function' && define.amd ? define(['exports', 'localforage'], factory) :\n (factory((global.localforageGetItems = global.localforageGetItems || {}),global.localforage));\n}(this, (function (exports,localforage) { 'use strict';\n\nlocalforage = 'default' in localforage ? localforage['default'] : localforage;\n\nfunction getSerializerPromise(localForageInstance) {\n if (getSerializerPromise.result) {\n return getSerializerPromise.result;\n }\n if (!localForageInstance || typeof localForageInstance.getSerializer !== 'function') {\n return Promise.reject(new Error('localforage.getSerializer() was not available! ' + 'localforage v1.4+ is required!'));\n }\n getSerializerPromise.result = localForageInstance.getSerializer();\n return getSerializerPromise.result;\n}\n\n\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n return promise;\n}\n\nfunction getItemKeyValue(key, callback) {\n var localforageInstance = this;\n var promise = localforageInstance.getItem(key).then(function (value) {\n return {\n key: key,\n value: value\n };\n });\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction getItemsGeneric(keys /*, callback*/) {\n var localforageInstance = this;\n var promise = new Promise(function (resolve, reject) {\n var itemPromises = [];\n\n for (var i = 0, len = keys.length; i < len; i++) {\n itemPromises.push(getItemKeyValue.call(localforageInstance, keys[i]));\n }\n\n Promise.all(itemPromises).then(function (keyValuePairs) {\n var result = {};\n for (var i = 0, len = keyValuePairs.length; i < len; i++) {\n var keyValuePair = keyValuePairs[i];\n\n result[keyValuePair.key] = keyValuePair.value;\n }\n resolve(result);\n }).catch(reject);\n });\n return promise;\n}\n\n\n\n\n\nfunction getAllItemsUsingIterate() {\n var localforageInstance = this;\n var accumulator = {};\n return localforageInstance.iterate(function (value, key /*, iterationNumber*/) {\n accumulator[key] = value;\n }).then(function () {\n return accumulator;\n });\n}\n\nfunction getIDBKeyRange() {\n /* global IDBKeyRange, webkitIDBKeyRange, mozIDBKeyRange */\n if (typeof IDBKeyRange !== 'undefined') {\n return IDBKeyRange;\n }\n if (typeof webkitIDBKeyRange !== 'undefined') {\n return webkitIDBKeyRange;\n }\n if (typeof mozIDBKeyRange !== 'undefined') {\n return mozIDBKeyRange;\n }\n}\n\nvar idbKeyRange = getIDBKeyRange();\n\nfunction getItemsIndexedDB(keys /*, callback*/) {\n keys = keys.slice();\n var localforageInstance = this;\n function comparer(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }\n\n var promise = new Promise(function (resolve, reject) {\n localforageInstance.ready().then(function () {\n // Thanks https://hacks.mozilla.org/2014/06/breaking-the-borders-of-indexeddb/\n var dbInfo = localforageInstance._dbInfo;\n var store = dbInfo.db.transaction(dbInfo.storeName, 'readonly').objectStore(dbInfo.storeName);\n\n var set = keys.sort(comparer);\n\n var keyRangeValue = idbKeyRange.bound(keys[0], keys[keys.length - 1], false, false);\n\n var req;\n\n if ('getAll' in store) {\n req = store.getAll(keyRangeValue);\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n resolve(value);\n };\n } else {\n req = store.openCursor(keyRangeValue);\n var result = {};\n var i = 0;\n\n req.onsuccess = function () /*event*/{\n var cursor = req.result; // event.target.result;\n\n if (!cursor) {\n resolve(result);\n return;\n }\n\n var key = cursor.key;\n\n while (key > set[i]) {\n i++; // The cursor has passed beyond this key. Check next.\n\n if (i === set.length) {\n // There is no next. Stop searching.\n resolve(result);\n return;\n }\n }\n\n if (key === set[i]) {\n // The current cursor value should be included and we should continue\n // a single step in case next item has the same key or possibly our\n // next key in set.\n var value = cursor.value;\n if (value === undefined) {\n value = null;\n }\n\n result[key] = value;\n // onfound(cursor.value);\n cursor.continue();\n } else {\n // cursor.key not yet at set[i]. Forward cursor to the next key to hunt for.\n cursor.continue(set[i]);\n }\n };\n }\n\n req.onerror = function () /*event*/{\n reject(req.error);\n };\n }).catch(reject);\n });\n return promise;\n}\n\nfunction getItemsWebsql(keys /*, callback*/) {\n var localforageInstance = this;\n var promise = new Promise(function (resolve, reject) {\n localforageInstance.ready().then(function () {\n return getSerializerPromise(localforageInstance);\n }).then(function (serializer) {\n var dbInfo = localforageInstance._dbInfo;\n dbInfo.db.transaction(function (t) {\n\n var queryParts = new Array(keys.length);\n for (var i = 0, len = keys.length; i < len; i++) {\n queryParts[i] = '?';\n }\n\n t.executeSql('SELECT * FROM ' + dbInfo.storeName + ' WHERE (key IN (' + queryParts.join(',') + '))', keys, function (t, results) {\n\n var result = {};\n\n var rows = results.rows;\n for (var i = 0, len = rows.length; i < len; i++) {\n var item = rows.item(i);\n var value = item.value;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (value) {\n value = serializer.deserialize(value);\n }\n\n result[item.key] = value;\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n }).catch(reject);\n });\n return promise;\n}\n\nfunction localforageGetItems(keys, callback) {\n var localforageInstance = this;\n\n var promise;\n if (!arguments.length || keys === null) {\n promise = getAllItemsUsingIterate.apply(localforageInstance);\n } else {\n var currentDriver = localforageInstance.driver();\n if (currentDriver === localforageInstance.INDEXEDDB) {\n promise = getItemsIndexedDB.apply(localforageInstance, arguments);\n } else if (currentDriver === localforageInstance.WEBSQL) {\n promise = getItemsWebsql.apply(localforageInstance, arguments);\n } else {\n promise = getItemsGeneric.apply(localforageInstance, arguments);\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction extendPrototype(localforage$$1) {\n var localforagePrototype = Object.getPrototypeOf(localforage$$1);\n if (localforagePrototype) {\n localforagePrototype.getItems = localforageGetItems;\n localforagePrototype.getItems.indexedDB = function () {\n return getItemsIndexedDB.apply(this, arguments);\n };\n localforagePrototype.getItems.websql = function () {\n return getItemsWebsql.apply(this, arguments);\n };\n localforagePrototype.getItems.generic = function () {\n return getItemsGeneric.apply(this, arguments);\n };\n }\n}\n\nvar extendPrototypeResult = extendPrototype(localforage);\n\nexports.localforageGetItems = localforageGetItems;\nexports.extendPrototype = extendPrototype;\nexports.extendPrototypeResult = extendPrototypeResult;\nexports.getItemsGeneric = getItemsGeneric;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","\"use strict\";\n\nconst atob = require(\"./lib/atob\");\nconst btoa = require(\"./lib/btoa\");\n\nmodule.exports = {\n atob,\n btoa\n};\n","\"use strict\";\n\n/**\n * Implementation of atob() according to the HTML and Infra specs, except that\n * instead of throwing INVALID_CHARACTER_ERR we return null.\n */\nfunction atob(data) {\n if (arguments.length === 0) {\n throw new TypeError(\"1 argument required, but only 0 present.\");\n }\n\n // Web IDL requires DOMStrings to just be converted using ECMAScript\n // ToString, which in our case amounts to using a template literal.\n data = `${data}`;\n // \"Remove all ASCII whitespace from data.\"\n data = data.replace(/[ \\t\\n\\f\\r]/g, \"\");\n // \"If data's length divides by 4 leaving no remainder, then: if data ends\n // with one or two U+003D (=) code points, then remove them from data.\"\n if (data.length % 4 === 0) {\n data = data.replace(/==?$/, \"\");\n }\n // \"If data's length divides by 4 leaving a remainder of 1, then return\n // failure.\"\n //\n // \"If data contains a code point that is not one of\n //\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n //\n // then return failure.\"\n if (data.length % 4 === 1 || /[^+/0-9A-Za-z]/.test(data)) {\n return null;\n }\n // \"Let output be an empty byte sequence.\"\n let output = \"\";\n // \"Let buffer be an empty buffer that can have bits appended to it.\"\n //\n // We append bits via left-shift and or. accumulatedBits is used to track\n // when we've gotten to 24 bits.\n let buffer = 0;\n let accumulatedBits = 0;\n // \"Let position be a position variable for data, initially pointing at the\n // start of data.\"\n //\n // \"While position does not point past the end of data:\"\n for (let i = 0; i < data.length; i++) {\n // \"Find the code point pointed to by position in the second column of\n // Table 1: The Base 64 Alphabet of RFC 4648. Let n be the number given in\n // the first cell of the same row.\n //\n // \"Append to buffer the six bits corresponding to n, most significant bit\n // first.\"\n //\n // atobLookup() implements the table from RFC 4648.\n buffer <<= 6;\n buffer |= atobLookup(data[i]);\n accumulatedBits += 6;\n // \"If buffer has accumulated 24 bits, interpret them as three 8-bit\n // big-endian numbers. Append three bytes with values equal to those\n // numbers to output, in the same order, and then empty buffer.\"\n if (accumulatedBits === 24) {\n output += String.fromCharCode((buffer & 0xff0000) >> 16);\n output += String.fromCharCode((buffer & 0xff00) >> 8);\n output += String.fromCharCode(buffer & 0xff);\n buffer = accumulatedBits = 0;\n }\n // \"Advance position by 1.\"\n }\n // \"If buffer is not empty, it contains either 12 or 18 bits. If it contains\n // 12 bits, then discard the last four and interpret the remaining eight as\n // an 8-bit big-endian number. If it contains 18 bits, then discard the last\n // two and interpret the remaining 16 as two 8-bit big-endian numbers. Append\n // the one or two bytes with values equal to those one or two numbers to\n // output, in the same order.\"\n if (accumulatedBits === 12) {\n buffer >>= 4;\n output += String.fromCharCode(buffer);\n } else if (accumulatedBits === 18) {\n buffer >>= 2;\n output += String.fromCharCode((buffer & 0xff00) >> 8);\n output += String.fromCharCode(buffer & 0xff);\n }\n // \"Return output.\"\n return output;\n}\n/**\n * A lookup table for atob(), which converts an ASCII character to the\n * corresponding six-bit number.\n */\n\nconst keystr =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\nfunction atobLookup(chr) {\n const index = keystr.indexOf(chr);\n // Throw exception if character is not in the lookup string; should not be hit in tests\n return index < 0 ? undefined : index;\n}\n\nmodule.exports = atob;\n","\"use strict\";\n\n/**\n * btoa() as defined by the HTML and Infra specs, which mostly just references\n * RFC 4648.\n */\nfunction btoa(s) {\n if (arguments.length === 0) {\n throw new TypeError(\"1 argument required, but only 0 present.\");\n }\n\n let i;\n // String conversion as required by Web IDL.\n s = `${s}`;\n // \"The btoa() method must throw an \"InvalidCharacterError\" DOMException if\n // data contains any character whose code point is greater than U+00FF.\"\n for (i = 0; i < s.length; i++) {\n if (s.charCodeAt(i) > 255) {\n return null;\n }\n }\n let out = \"\";\n for (i = 0; i < s.length; i += 3) {\n const groupsOfSix = [undefined, undefined, undefined, undefined];\n groupsOfSix[0] = s.charCodeAt(i) >> 2;\n groupsOfSix[1] = (s.charCodeAt(i) & 0x03) << 4;\n if (s.length > i + 1) {\n groupsOfSix[1] |= s.charCodeAt(i + 1) >> 4;\n groupsOfSix[2] = (s.charCodeAt(i + 1) & 0x0f) << 2;\n }\n if (s.length > i + 2) {\n groupsOfSix[2] |= s.charCodeAt(i + 2) >> 6;\n groupsOfSix[3] = s.charCodeAt(i + 2) & 0x3f;\n }\n for (let j = 0; j < groupsOfSix.length; j++) {\n if (typeof groupsOfSix[j] === \"undefined\") {\n out += \"=\";\n } else {\n out += btoaLookup(groupsOfSix[j]);\n }\n }\n }\n return out;\n}\n\n/**\n * Lookup table for btoa(), which converts a six-bit number into the\n * corresponding ASCII character.\n */\nconst keystr =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\nfunction btoaLookup(index) {\n if (index >= 0 && index < 64) {\n return keystr[index];\n }\n\n // Throw INVALID_CHARACTER_ERR exception here -- won't be hit in the tests.\n return undefined;\n}\n\nmodule.exports = btoa;\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.Compress=e():t.Compress=e()}(window,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},r.r=function(t){Object.defineProperty(t,\"__esModule\",{value:!0})},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,\"a\",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p=\"\",r(r.s=7)}([function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});e.loadImageElement=function(t,e){return new Promise(function(r,n){t.addEventListener(\"load\",function(){r(t)},!1),t.addEventListener(\"error\",function(t){n(t)},!1),t.src=e})},e.resize=function(t,e,r,n){if(!r&&!n)return{currentWidth:t,currentHeight:e};var i=t/e,o=void 0,a=void 0;return i>r/n?a=(o=Math.min(t,r))/i:o=(a=Math.min(e,n))*i,{width:o,height:a}}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});e.base64ToFile=function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"image/jpeg\",r=window.atob(t),n=[],i=0;i8)return o.drawImage(t,0,0,i.width,i.height),i;switch(n>4&&(i.width=r,i.height=e),n){case 2:o.translate(e,0),o.scale(-1,1);break;case 3:o.translate(e,r),o.rotate(Math.PI);break;case 4:o.translate(0,r),o.scale(1,-1);break;case 5:o.rotate(.5*Math.PI),o.scale(1,-1);break;case 6:o.rotate(.5*Math.PI),o.translate(0,-r);break;case 7:o.rotate(.5*Math.PI),o.translate(e,-r),o.scale(-1,1);break;case 8:o.rotate(-.5*Math.PI),o.translate(-e,0)}return n>4?o.drawImage(t,0,0,i.height,i.width):o.drawImage(t,0,0,i.width,i.height),i},e.canvasToBlob=function(t,e){return new Promise(function(r,n){t.toBlob(function(t){r(t)},\"image/jpeg\",e)})},e.size=function(t){return{kB:.001*t,MB:1e-6*t}},e.blobToBase64=function(t){return new Promise(function(e,r){var n=new window.FileReader;n.addEventListener(\"load\",function(t){e(t.target.result)},!1),n.addEventListener(\"error\",function(t){r(t)},!1),n.readAsDataURL(t)})}},function(t,e,r){t.exports=r(6)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});e.extractOrientation=function(t){return new Promise(function(e,r){var n=new window.FileReader;n.onload=function(t){var r=new DataView(t.target.result);65496!==r.getUint16(0,!1)&&e(-2);for(var n=r.byteLength,i=2;i=0;--o){var a=this.tryEntries[o],u=a.completion;if(\"root\"===a.tryLoc)return n(\"end\");if(a.tryLoc<=this.prev){var s=i.call(a,\"catchLoc\"),c=i.call(a,\"finallyLoc\");if(s&&c){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&i.call(n,\"finallyLoc\")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),P(r),A}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if(\"throw\"===n.type){var i=n.arg;P(r)}return i}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,e,n){return this.delegate={iterator:z(t),resultName:e,nextLoc:n},\"next\"===this.method&&(this.arg=r),A}}}function w(t,e,r,n){var i=e&&e.prototype instanceof x?e:x,o=Object.create(i.prototype),a=new O(n||[]);return o._invoke=function(t,e,r){var n=l;return function(i,o){if(n===p)throw new Error(\"Generator is already running\");if(n===d){if(\"throw\"===i)throw o;return j()}for(r.method=i,r.arg=o;;){var a=r.delegate;if(a){var u=k(a,r);if(u){if(u===A)continue;return u}}if(\"next\"===r.method)r.sent=r._sent=r.arg;else if(\"throw\"===r.method){if(n===l)throw n=d,r.arg;r.dispatchException(r.arg)}else\"return\"===r.method&&r.abrupt(\"return\",r.arg);n=p;var s=E(t,e,r);if(\"normal\"===s.type){if(n=r.done?d:h,s.arg===A)continue;return{value:s.arg,done:r.done}}\"throw\"===s.type&&(n=d,r.method=\"throw\",r.arg=s.arg)}}}(t,r,a),o}function E(t,e,r){try{return{type:\"normal\",arg:t.call(e,r)}}catch(t){return{type:\"throw\",arg:t}}}function x(){}function b(){}function B(){}function Q(t){[\"next\",\"throw\",\"return\"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function _(t){var e;this._invoke=function(r,n){function o(){return new Promise(function(e,o){!function e(r,n,o,a){var u=E(t[r],t,n);if(\"throw\"!==u.type){var s=u.arg,c=s.value;return c&&\"object\"==typeof c&&i.call(c,\"__await\")?Promise.resolve(c.__await).then(function(t){e(\"next\",t,o,a)},function(t){e(\"throw\",t,o,a)}):Promise.resolve(c).then(function(t){s.value=t,o(s)},a)}a(u.arg)}(r,n,e,o)})}return e=e?e.then(o,o):o()}}function k(t,e){var n=t.iterator[e.method];if(n===r){if(e.delegate=null,\"throw\"===e.method){if(t.iterator.return&&(e.method=\"return\",e.arg=r,k(t,e),\"throw\"===e.method))return A;e.method=\"throw\",e.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return A}var i=E(n,t.iterator,e.arg);if(\"throw\"===i.type)return e.method=\"throw\",e.arg=i.arg,e.delegate=null,A;var o=i.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,\"return\"!==e.method&&(e.method=\"next\",e.arg=r),e.delegate=null,A):o:(e.method=\"throw\",e.arg=new TypeError(\"iterator result is not an object\"),e.delegate=null,A)}function L(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function P(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function O(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(L,this),this.reset(!0)}function z(t){if(t){var e=t[a];if(e)return e.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,o=function e(){for(;++n=0,o=i&&n.regeneratorRuntime;if(n.regeneratorRuntime=void 0,t.exports=r(5),i)n.regeneratorRuntime=o;else try{delete n.regeneratorRuntime}catch(t){n.regeneratorRuntime=void 0}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=s(r(2)),i=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this.setOptions(e)}return i(t,[{key:\"setOptions\",value:function(t){var e={targetSize:1/0,quality:.75,minQuality:.5,qualityStepSize:.1,maxWidth:1920,maxHeight:1920,resize:!0,throwIfSizeNotReached:!1,autoRotate:!0},r=new Proxy(t,{get:function(t,r){return r in t?t[r]:e[r]}});this.options=r}},{key:\"_compressFile\",value:function(){var t=c(n.default.mark(function t(e){var r,i;return n.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return r=new u.default(e),(i={}).start=window.performance.now(),i.quality=this.options.quality,i.startType=r.type,t.next=7,r.load();case 7:return t.next=9,this._compressImage(r,i);case 9:return t.abrupt(\"return\",t.sent);case 10:case\"end\":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}()},{key:\"_compressImage\",value:function(){var t=c(n.default.mark(function t(e,r){var i,u,s,c,f;return n.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return r.startWidth=e.width,r.startHeight=e.height,i=void 0,u=void 0,this.options.resize?(s=(0,a.resize)(e.width,e.height,this.options.maxWidth,this.options.maxHeight),i=s.width,u=s.height):(i=e.width,u=e.height),r.endWidth=i,r.endHeight=u,c=this.doAutoRotation?void 0:1,f=e.getCanvas(i,u,c),r.iterations=0,r.startSizeMB=o.size(e.size).MB,t.next=12,this._loopCompression(f,e,r);case 12:return r.endSizeMB=o.size(e.size).MB,r.sizeReducedInPercent=(r.startSizeMB-r.endSizeMB)/r.startSizeMB*100,r.end=window.performance.now(),r.elapsedTimeInSeconds=(r.end-r.start)/1e3,r.endType=e.type,t.abrupt(\"return\",{photo:e,info:r});case 18:case\"end\":return t.stop()}},t,this)}));return function(e,r){return t.apply(this,arguments)}}()},{key:\"_loopCompression\",value:function(){var t=c(n.default.mark(function t(e,r,i){var a;return n.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return i.iterations++,t.t0=r,t.next=4,o.canvasToBlob(e,i.quality);case 4:if(t.t1=t.sent,t.t0.setData.call(t.t0,t.t1),1==i.iterations&&(r.width=i.endWidth,r.height=i.endHeight),!(o.size(r.size).MB>this.options.targetSize)){t.next=24;break}if(!(i.quality.toFixed(10)-.1 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t) apply(func, thisArg, args);\n}\n\nexport function unconstruct(func) {\n return (...args) => construct(func, args);\n}\n\n/* Add properties to a lookup table */\nexport function addToSet(set, array, transformCaseFunc) {\n transformCaseFunc = transformCaseFunc ? transformCaseFunc : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/* Shallow clone an object */\nexport function clone(object) {\n const newObject = create(null);\n\n let property;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property]) === true) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n}\n\n/* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n}\n\nexport {\n // Array\n arrayForEach,\n arrayIndexOf,\n arrayPop,\n arrayPush,\n arraySlice,\n // Object\n freeze,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n hasOwnProperty,\n isFrozen,\n setPrototypeOf,\n seal,\n // RegExp\n regExpTest,\n // String\n stringIndexOf,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringTrim,\n // Errors\n typeErrorCreate,\n // Other\n lookupGetter,\n};\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blink',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'content',\n 'data',\n 'datalist',\n 'dd',\n 'decorator',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'element',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meter',\n 'nav',\n 'nobr',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'section',\n 'select',\n 'shadow',\n 'small',\n 'source',\n 'spacer',\n 'span',\n 'strike',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n]);\n\n// SVG\nexport const svg = freeze([\n 'svg',\n 'a',\n 'altglyph',\n 'altglyphdef',\n 'altglyphitem',\n 'animatecolor',\n 'animatemotion',\n 'animatetransform',\n 'circle',\n 'clippath',\n 'defs',\n 'desc',\n 'ellipse',\n 'filter',\n 'font',\n 'g',\n 'glyph',\n 'glyphref',\n 'hkern',\n 'image',\n 'line',\n 'lineargradient',\n 'marker',\n 'mask',\n 'metadata',\n 'mpath',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialgradient',\n 'rect',\n 'stop',\n 'style',\n 'switch',\n 'symbol',\n 'text',\n 'textpath',\n 'title',\n 'tref',\n 'tspan',\n 'view',\n 'vkern',\n]);\n\nexport const svgFilters = freeze([\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n]);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nexport const svgDisallowed = freeze([\n 'animate',\n 'color-profile',\n 'cursor',\n 'discard',\n 'fedropshadow',\n 'font-face',\n 'font-face-format',\n 'font-face-name',\n 'font-face-src',\n 'font-face-uri',\n 'foreignobject',\n 'hatch',\n 'hatchpath',\n 'mesh',\n 'meshgradient',\n 'meshpatch',\n 'meshrow',\n 'missing-glyph',\n 'script',\n 'set',\n 'solidcolor',\n 'unknown',\n 'use',\n]);\n\nexport const mathMl = freeze([\n 'math',\n 'menclose',\n 'merror',\n 'mfenced',\n 'mfrac',\n 'mglyph',\n 'mi',\n 'mlabeledtr',\n 'mmultiscripts',\n 'mn',\n 'mo',\n 'mover',\n 'mpadded',\n 'mphantom',\n 'mroot',\n 'mrow',\n 'ms',\n 'mspace',\n 'msqrt',\n 'mstyle',\n 'msub',\n 'msup',\n 'msubsup',\n 'mtable',\n 'mtd',\n 'mtext',\n 'mtr',\n 'munder',\n 'munderover',\n]);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nexport const mathMlDisallowed = freeze([\n 'maction',\n 'maligngroup',\n 'malignmark',\n 'mlongdiv',\n 'mscarries',\n 'mscarry',\n 'msgroup',\n 'mstack',\n 'msline',\n 'msrow',\n 'semantics',\n 'annotation',\n 'annotation-xml',\n 'mprescripts',\n 'none',\n]);\n\nexport const text = freeze(['#text']);\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'accept',\n 'action',\n 'align',\n 'alt',\n 'autocapitalize',\n 'autocomplete',\n 'autopictureinpicture',\n 'autoplay',\n 'background',\n 'bgcolor',\n 'border',\n 'capture',\n 'cellpadding',\n 'cellspacing',\n 'checked',\n 'cite',\n 'class',\n 'clear',\n 'color',\n 'cols',\n 'colspan',\n 'controls',\n 'controlslist',\n 'coords',\n 'crossorigin',\n 'datetime',\n 'decoding',\n 'default',\n 'dir',\n 'disabled',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'download',\n 'draggable',\n 'enctype',\n 'enterkeyhint',\n 'face',\n 'for',\n 'headers',\n 'height',\n 'hidden',\n 'high',\n 'href',\n 'hreflang',\n 'id',\n 'inputmode',\n 'integrity',\n 'ismap',\n 'kind',\n 'label',\n 'lang',\n 'list',\n 'loading',\n 'loop',\n 'low',\n 'max',\n 'maxlength',\n 'media',\n 'method',\n 'min',\n 'minlength',\n 'multiple',\n 'muted',\n 'name',\n 'nonce',\n 'noshade',\n 'novalidate',\n 'nowrap',\n 'open',\n 'optimum',\n 'pattern',\n 'placeholder',\n 'playsinline',\n 'poster',\n 'preload',\n 'pubdate',\n 'radiogroup',\n 'readonly',\n 'rel',\n 'required',\n 'rev',\n 'reversed',\n 'role',\n 'rows',\n 'rowspan',\n 'spellcheck',\n 'scope',\n 'selected',\n 'shape',\n 'size',\n 'sizes',\n 'span',\n 'srclang',\n 'start',\n 'src',\n 'srcset',\n 'step',\n 'style',\n 'summary',\n 'tabindex',\n 'title',\n 'translate',\n 'type',\n 'usemap',\n 'valign',\n 'value',\n 'width',\n 'xmlns',\n 'slot',\n]);\n\nexport const svg = freeze([\n 'accent-height',\n 'accumulate',\n 'additive',\n 'alignment-baseline',\n 'ascent',\n 'attributename',\n 'attributetype',\n 'azimuth',\n 'basefrequency',\n 'baseline-shift',\n 'begin',\n 'bias',\n 'by',\n 'class',\n 'clip',\n 'clippathunits',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'cx',\n 'cy',\n 'd',\n 'dx',\n 'dy',\n 'diffuseconstant',\n 'direction',\n 'display',\n 'divisor',\n 'dur',\n 'edgemode',\n 'elevation',\n 'end',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'filterunits',\n 'flood-color',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-weight',\n 'fx',\n 'fy',\n 'g1',\n 'g2',\n 'glyph-name',\n 'glyphref',\n 'gradientunits',\n 'gradienttransform',\n 'height',\n 'href',\n 'id',\n 'image-rendering',\n 'in',\n 'in2',\n 'k',\n 'k1',\n 'k2',\n 'k3',\n 'k4',\n 'kerning',\n 'keypoints',\n 'keysplines',\n 'keytimes',\n 'lang',\n 'lengthadjust',\n 'letter-spacing',\n 'kernelmatrix',\n 'kernelunitlength',\n 'lighting-color',\n 'local',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'markerheight',\n 'markerunits',\n 'markerwidth',\n 'maskcontentunits',\n 'maskunits',\n 'max',\n 'mask',\n 'media',\n 'method',\n 'mode',\n 'min',\n 'name',\n 'numoctaves',\n 'offset',\n 'operator',\n 'opacity',\n 'order',\n 'orient',\n 'orientation',\n 'origin',\n 'overflow',\n 'paint-order',\n 'path',\n 'pathlength',\n 'patterncontentunits',\n 'patterntransform',\n 'patternunits',\n 'points',\n 'preservealpha',\n 'preserveaspectratio',\n 'primitiveunits',\n 'r',\n 'rx',\n 'ry',\n 'radius',\n 'refx',\n 'refy',\n 'repeatcount',\n 'repeatdur',\n 'restart',\n 'result',\n 'rotate',\n 'scale',\n 'seed',\n 'shape-rendering',\n 'specularconstant',\n 'specularexponent',\n 'spreadmethod',\n 'startoffset',\n 'stddeviation',\n 'stitchtiles',\n 'stop-color',\n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke',\n 'stroke-width',\n 'style',\n 'surfacescale',\n 'systemlanguage',\n 'tabindex',\n 'targetx',\n 'targety',\n 'transform',\n 'transform-origin',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'textlength',\n 'type',\n 'u1',\n 'u2',\n 'unicode',\n 'values',\n 'viewbox',\n 'visibility',\n 'version',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'width',\n 'word-spacing',\n 'wrap',\n 'writing-mode',\n 'xchannelselector',\n 'ychannelselector',\n 'x',\n 'x1',\n 'x2',\n 'xmlns',\n 'y',\n 'y1',\n 'y2',\n 'z',\n 'zoomandpan',\n]);\n\nexport const mathMl = freeze([\n 'accent',\n 'accentunder',\n 'align',\n 'bevelled',\n 'close',\n 'columnsalign',\n 'columnlines',\n 'columnspan',\n 'denomalign',\n 'depth',\n 'dir',\n 'display',\n 'displaystyle',\n 'encoding',\n 'fence',\n 'frame',\n 'height',\n 'href',\n 'id',\n 'largeop',\n 'length',\n 'linethickness',\n 'lspace',\n 'lquote',\n 'mathbackground',\n 'mathcolor',\n 'mathsize',\n 'mathvariant',\n 'maxsize',\n 'minsize',\n 'movablelimits',\n 'notation',\n 'numalign',\n 'open',\n 'rowalign',\n 'rowlines',\n 'rowspacing',\n 'rowspan',\n 'rspace',\n 'rquote',\n 'scriptlevel',\n 'scriptminsize',\n 'scriptsizemultiplier',\n 'selection',\n 'separator',\n 'separators',\n 'stretchy',\n 'subscriptshift',\n 'supscriptshift',\n 'symmetric',\n 'voffset',\n 'width',\n 'xmlns',\n]);\n\nexport const xml = freeze([\n 'xlink:href',\n 'xml:id',\n 'xlink:title',\n 'xml:space',\n 'xmlns:xlink',\n]);\n","import { seal } from './utils.js';\n\n// eslint-disable-next-line unicorn/better-regex\nexport const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nexport const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nexport const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nexport const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nexport const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nexport const IS_ALLOWED_URI = seal(\n /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nexport const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nexport const ATTR_WHITESPACE = seal(\n /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nexport const DOCTYPE_NAME = seal(/^html$/i);\n","import * as TAGS from './tags.js';\nimport * as ATTRS from './attrs.js';\nimport * as EXPRESSIONS from './regexp.js';\nimport {\n addToSet,\n clone,\n freeze,\n arrayForEach,\n arrayPop,\n arrayPush,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringIndexOf,\n stringTrim,\n regExpTest,\n typeErrorCreate,\n lookupGetter,\n} from './utils.js';\n\nconst getGlobal = () => (typeof window === 'undefined' ? null : window);\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\nconst _createTrustedTypesPolicy = function (trustedTypes, document) {\n if (\n typeof trustedTypes !== 'object' ||\n typeof trustedTypes.createPolicy !== 'function'\n ) {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (\n document.currentScript &&\n document.currentScript.hasAttribute(ATTR_NAME)\n ) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n },\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn(\n 'TrustedTypes policy ' + policyName + ' could not be created.'\n );\n return null;\n }\n};\n\nfunction createDOMPurify(window = getGlobal()) {\n const DOMPurify = (root) => createDOMPurify(root);\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = VERSION;\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n const originalDocument = window.document;\n\n let { document } = window;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes,\n } = window;\n\n const ElementPrototype = Element.prototype;\n\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n const trustedTypesPolicy = _createTrustedTypesPolicy(\n trustedTypes,\n originalDocument\n );\n const emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName,\n } = document;\n const { importNode } = originalDocument;\n\n let documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n let hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported =\n typeof getParentNode === 'function' &&\n implementation &&\n typeof implementation.createHTMLDocument !== 'undefined' &&\n documentMode !== 9;\n\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n } = EXPRESSIONS;\n\n let { IS_ALLOWED_URI } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [\n ...TAGS.html,\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.mathMl,\n ...TAGS.text,\n ]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [\n ...ATTRS.html,\n ...ATTRS.svg,\n ...ATTRS.mathMl,\n ...ATTRS.xml,\n ]);\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(\n Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false,\n },\n })\n );\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, [\n 'annotation-xml',\n 'audio',\n 'colgroup',\n 'desc',\n 'foreignobject',\n 'head',\n 'iframe',\n 'math',\n 'mi',\n 'mn',\n 'mo',\n 'ms',\n 'mtext',\n 'noembed',\n 'noframes',\n 'noscript',\n 'plaintext',\n 'script',\n 'style',\n 'svg',\n 'template',\n 'thead',\n 'title',\n 'video',\n 'xmp',\n ]);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, [\n 'audio',\n 'video',\n 'img',\n 'source',\n 'image',\n 'track',\n ]);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n 'alt',\n 'class',\n 'for',\n 'id',\n 'label',\n 'name',\n 'pattern',\n 'placeholder',\n 'role',\n 'summary',\n 'title',\n 'value',\n 'style',\n 'xmlns',\n ]);\n\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet(\n {},\n [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE],\n stringToString\n );\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n\n const isRegexOrFunction = function (testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function (cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1\n ? (PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE)\n : (PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE);\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc =\n PARSER_MEDIA_TYPE === 'application/xhtml+xml'\n ? stringToString\n : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS =\n 'ALLOWED_TAGS' in cfg\n ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc)\n : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR =\n 'ALLOWED_ATTR' in cfg\n ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc)\n : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES =\n 'ALLOWED_NAMESPACES' in cfg\n ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString)\n : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES =\n 'ADD_URI_SAFE_ATTR' in cfg\n ? addToSet(\n clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS =\n 'ADD_DATA_URI_TAGS' in cfg\n ? addToSet(\n clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS =\n 'FORBID_CONTENTS' in cfg\n ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc)\n : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS =\n 'FORBID_TAGS' in cfg\n ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc)\n : {};\n FORBID_ATTR =\n 'FORBID_ATTR' in cfg\n ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc)\n : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements ===\n 'boolean'\n ) {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements =\n cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [...TAGS.text]);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, TAGS.html);\n addToSet(ALLOWED_ATTR, ATTRS.html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, TAGS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, TAGS.svgFilters);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, TAGS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [\n 'mi',\n 'mo',\n 'mn',\n 'ms',\n 'mtext',\n ]);\n\n const HTML_INTEGRATION_POINTS = addToSet({}, [\n 'foreignobject',\n 'desc',\n 'title',\n 'annotation-xml',\n ]);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n 'title',\n 'style',\n 'font',\n 'a',\n 'script',\n ]);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, TAGS.svg);\n addToSet(ALL_SVG_TAGS, TAGS.svgFilters);\n addToSet(ALL_SVG_TAGS, TAGS.svgDisallowed);\n\n const ALL_MATHML_TAGS = addToSet({}, TAGS.mathMl);\n addToSet(ALL_MATHML_TAGS, TAGS.mathMlDisallowed);\n\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function (element) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template',\n };\n }\n\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return (\n tagName === 'svg' &&\n (parentTagName === 'annotation-xml' ||\n MATHML_TEXT_INTEGRATION_POINTS[parentTagName])\n );\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (\n parent.namespaceURI === SVG_NAMESPACE &&\n !HTML_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n if (\n parent.namespaceURI === MATHML_NAMESPACE &&\n !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return (\n !ALL_MATHML_TAGS[tagName] &&\n (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName])\n );\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n ALLOWED_NAMESPACES[element.namespaceURI]\n ) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = function (node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n const _removeAttribute = function (name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node,\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node,\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n const _initDocument = function (dirty) {\n /* Create a HTML document */\n let doc;\n let leadingWhitespace;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n NAMESPACE === HTML_NAMESPACE\n ) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty =\n '' +\n dirty +\n '';\n }\n\n const dirtyPayload = trustedTypesPolicy\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT\n ? emptyHTML\n : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n const body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(\n document.createTextNode(leadingWhitespace),\n body.childNodes[0] || null\n );\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(\n doc,\n WHOLE_DOCUMENT ? 'html' : 'body'\n )[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n const _createIterator = function (root) {\n return createNodeIterator.call(\n root.ownerDocument || root,\n root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT,\n null,\n false\n );\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n const _isClobbered = function (elm) {\n return (\n elm instanceof HTMLFormElement &&\n (typeof elm.nodeName !== 'string' ||\n typeof elm.textContent !== 'string' ||\n typeof elm.removeChild !== 'function' ||\n !(elm.attributes instanceof NamedNodeMap) ||\n typeof elm.removeAttribute !== 'function' ||\n typeof elm.setAttribute !== 'function' ||\n typeof elm.namespaceURI !== 'string' ||\n typeof elm.insertBefore !== 'function' ||\n typeof elm.hasChildNodes !== 'function')\n );\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n const _isNode = function (object) {\n return typeof Node === 'object'\n ? object instanceof Node\n : object &&\n typeof object === 'object' &&\n typeof object.nodeType === 'number' &&\n typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n const _executeHook = function (entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], (hook) => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n const _sanitizeElements = function (currentNode) {\n let content;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check if tagname contains Unicode */\n if (regExpTest(/[\\u0080-\\uFFFF]/, currentNode.nodeName)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS,\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (\n currentNode.hasChildNodes() &&\n !_isNode(currentNode.firstElementChild) &&\n (!_isNode(currentNode.content) ||\n !_isNode(currentNode.content.firstElementChild)) &&\n regExpTest(/<[/\\w]/g, currentNode.innerHTML) &&\n regExpTest(/<[/\\w]/g, currentNode.textContent)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Mitigate a problem with templates inside select */\n if (\n tagName === 'select' &&\n regExpTest(/