From 34469425d646e91a3cd84d1bed68307267d3799f Mon Sep 17 00:00:00 2001 From: JC Brand Date: Mon, 29 Apr 2019 09:07:15 +0200 Subject: [PATCH] Use Object.assign instead of _.extend --- .eslintrc.json | 6 +- dist/converse.js | 163 +++++++++++-------------- src/converse-autocomplete.js | 2 +- src/converse-bookmarks.js | 2 +- src/converse-chatview.js | 14 +-- src/converse-controlbox.js | 6 +- src/converse-headline.js | 2 +- src/converse-mam-views.js | 2 +- src/converse-message-view.js | 8 +- src/converse-minimize.js | 4 +- src/converse-modal.js | 2 +- src/converse-muc-views.js | 20 +-- src/converse-oauth.js | 4 +- src/converse-omemo.js | 16 +-- src/converse-profile.js | 12 +- src/converse-register.js | 6 +- src/converse-roomslist.js | 2 +- src/converse-rosterview.js | 10 +- src/headless/converse-chatboxes.js | 8 +- src/headless/converse-core.js | 2 +- src/headless/converse-disco.js | 2 +- src/headless/converse-mam.js | 6 +- src/headless/converse-muc.js | 14 +-- src/headless/converse-pubsub.js | 2 +- src/headless/converse-roster.js | 2 +- src/headless/converse-vcard.js | 5 +- src/headless/dist/converse-headless.js | 48 +++----- 27 files changed, 172 insertions(+), 198 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 1723f892b..521cfa696 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -21,9 +21,9 @@ "rules": { "lodash/prefer-lodash-method": [2, { "ignoreMethods": [ - "every", "keys", "find", "endsWith", "startsWith", "filter", "reduce", "isArray", - "create", "map", "replace", "some", "toLower", "split", "trim", "forEach", - "toUpperCase", "includes" + "assign", "every", "keys", "find", "endsWith", "startsWith", "filter", + "reduce", "isArray", "create", "map", "replace", "some", "toLower", + "split", "trim", "forEach", "toUpperCase", "includes" ] }], "lodash/prefer-invoke-map": "off", diff --git a/dist/converse.js b/dist/converse.js index 96672e880..9e50d40e9 100644 --- a/dist/converse.js +++ b/dist/converse.js @@ -32798,7 +32798,6 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ //# sourceMappingURL=pluggable.js.map - /***/ }), /***/ "./node_modules/process/browser.js": @@ -47959,8 +47958,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins } // Make it an event emitter - _.extend(AutoComplete.prototype, Backbone.Events); - + Object.assign(AutoComplete.prototype, Backbone.Events); const helpers = { getElement(expr, el) { return typeof expr === "string" ? (el || document).querySelector(expr) : expr || null; @@ -48235,7 +48233,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins _converse.api.promises.add('bookmarksInitialized'); // Pure functions on the _converse object - _.extend(_converse, { + Object.assign(_converse, { removeBookmarkViaEvent(ev) { /* Remove a bookmark as determined by the passed in * event. @@ -48266,7 +48264,6 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins } }); - _converse.Bookmark = Backbone.Model; _converse.Bookmarks = Backbone.Collection.extend({ model: _converse.Bookmark, @@ -49063,7 +49060,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins }, toHTML() { - return templates_emojis_html__WEBPACK_IMPORTED_MODULE_10___default()(_.extend(this.model.toJSON(), { + return templates_emojis_html__WEBPACK_IMPORTED_MODULE_10___default()(Object.assign(this.model.toJSON(), { '_': _, 'transform': _converse_headless_utils_emoji__WEBPACK_IMPORTED_MODULE_21__["default"].getEmojiRenderer(_converse), 'emojis_by_category': _converse_headless_utils_emoji__WEBPACK_IMPORTED_MODULE_21__["default"].getEmojisByCategory(_converse), @@ -49139,7 +49136,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins const vcard = _.get(this.model, 'vcard'), vcard_json = vcard ? vcard.toJSON() : {}; - this.el.innerHTML = templates_chatbox_head_html__WEBPACK_IMPORTED_MODULE_8___default()(_.extend(vcard_json, this.model.toJSON(), { + this.el.innerHTML = templates_chatbox_head_html__WEBPACK_IMPORTED_MODULE_8___default()(Object.assign(vcard_json, this.model.toJSON(), { '_converse': _converse, 'info_close': __('Close this chat box'), 'display_name': this.model.getDisplayName() @@ -49193,7 +49190,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins const vcard = _.get(this.model, 'vcard'), vcard_json = vcard ? vcard.toJSON() : {}; - return templates_user_details_modal_html__WEBPACK_IMPORTED_MODULE_20___default()(_.extend(this.model.toJSON(), vcard_json, { + return templates_user_details_modal_html__WEBPACK_IMPORTED_MODULE_20___default()(Object.assign(this.model.toJSON(), vcard_json, { '_': _, '__': __, 'view': this, @@ -49331,7 +49328,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins render() { // XXX: Is this still needed? this.el.setAttribute('id', this.model.get('box_id')); - this.el.innerHTML = templates_chatbox_html__WEBPACK_IMPORTED_MODULE_7___default()(_.extend(this.model.toJSON(), { + this.el.innerHTML = templates_chatbox_html__WEBPACK_IMPORTED_MODULE_7___default()(Object.assign(this.model.toJSON(), { 'unread_msgs': __('You have unread messages') })); this.content = this.el.querySelector('.chat-content'); @@ -49372,7 +49369,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins } const form_container = this.el.querySelector('.bottom-panel'); - form_container.innerHTML = templates_chatbox_message_form_html__WEBPACK_IMPORTED_MODULE_9___default()(_.extend(this.model.toJSON(), { + form_container.innerHTML = templates_chatbox_message_form_html__WEBPACK_IMPORTED_MODULE_9___default()(Object.assign(this.model.toJSON(), { 'hint_value': _.get(this.el.querySelector('.spoiler-hint'), 'value'), 'label_message': placeholder, 'label_send': __('Send'), @@ -49491,7 +49488,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins label_toggle_spoiler = __('Click to write your message as a spoiler'); } - return _.extend(options || {}, { + return Object.assign(options || {}, { 'label_clear': __('Clear all messages'), 'tooltip_insert_smiley': __('Insert emojis'), 'tooltip_start_call': __('Start a call'), @@ -50445,7 +50442,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins /************************ BEGIN API ************************/ - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "chatview" namespace groups methods pertaining to views * for one-on-one chats. @@ -50486,7 +50483,6 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins } }); /************************ END API ************************/ - } }); @@ -50780,7 +50776,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins } } - this.el.innerHTML = templates_controlbox_html__WEBPACK_IMPORTED_MODULE_8___default()(_.extend(this.model.toJSON())); + this.el.innerHTML = templates_controlbox_html__WEBPACK_IMPORTED_MODULE_8___default()(Object.assign(this.model.toJSON())); if (!this.model.get('closed')) { this.show(); @@ -50968,7 +50964,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins feedback_class = CONNECTION_STATUS_CSS_CLASS[pretty_status]; } - return templates_login_panel_html__WEBPACK_IMPORTED_MODULE_10___default()(_.extend(this.model.toJSON(), { + return templates_login_panel_html__WEBPACK_IMPORTED_MODULE_10___default()(Object.assign(this.model.toJSON(), { '__': __, '_converse': _converse, 'ANONYMOUS': _converse.ANONYMOUS, @@ -51236,7 +51232,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins /************************ BEGIN API ************************/ - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "controlbox" namespace groups methods pertaining to the * controlbox view @@ -51929,7 +51925,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins render() { this.el.setAttribute('id', this.model.get('box_id')); - this.el.innerHTML = templates_chatbox_html__WEBPACK_IMPORTED_MODULE_2___default()(_.extend(this.model.toJSON(), { + this.el.innerHTML = templates_chatbox_html__WEBPACK_IMPORTED_MODULE_2___default()(Object.assign(this.model.toJSON(), { info_close: '', label_personal_message: '', show_send_button: false, @@ -52128,7 +52124,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins this.addSpinner(); - _converse.api.archive.query(_.extend({ + _converse.api.archive.query(Object.assign({ 'groupchat': is_groupchat, 'before': '', // Page backwards from the most recent message @@ -52320,7 +52316,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins _converse.MessageVersionsModal = _converse.BootstrapModal.extend({ toHTML() { - return templates_message_versions_modal_html__WEBPACK_IMPORTED_MODULE_8___default()(_.extend(this.model.toJSON(), { + return templates_message_versions_modal_html__WEBPACK_IMPORTED_MODULE_8___default()(Object.assign(this.model.toJSON(), { '__': __ })); } @@ -52414,7 +52410,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins moment_time = moment(this.model.get('time')), role = this.model.vcard ? this.model.vcard.get('role') : null, roles = role ? role.split(',') : []; - const msg = _converse_headless_utils_emoji__WEBPACK_IMPORTED_MODULE_9__["default"].stringToElement(templates_message_html__WEBPACK_IMPORTED_MODULE_7___default()(_.extend(this.model.toJSON(), { + const msg = _converse_headless_utils_emoji__WEBPACK_IMPORTED_MODULE_9__["default"].stringToElement(templates_message_html__WEBPACK_IMPORTED_MODULE_7___default()(Object.assign(this.model.toJSON(), { '__': __, 'is_me_message': is_me_message, 'roles': roles, @@ -52458,7 +52454,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins renderErrorMessage() { const moment_time = moment(this.model.get('time')), - msg = _converse_headless_utils_emoji__WEBPACK_IMPORTED_MODULE_9__["default"].stringToElement(templates_info_html__WEBPACK_IMPORTED_MODULE_6___default()(_.extend(this.model.toJSON(), { + msg = _converse_headless_utils_emoji__WEBPACK_IMPORTED_MODULE_9__["default"].stringToElement(templates_info_html__WEBPACK_IMPORTED_MODULE_6___default()(Object.assign(this.model.toJSON(), { 'extra_classes': 'chat-error', 'isodate': moment_time.format() }))); @@ -52497,7 +52493,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins }, renderFileUploadProgresBar() { - const msg = _converse_headless_utils_emoji__WEBPACK_IMPORTED_MODULE_9__["default"].stringToElement(templates_file_progress_html__WEBPACK_IMPORTED_MODULE_5___default()(_.extend(this.model.toJSON(), { + const msg = _converse_headless_utils_emoji__WEBPACK_IMPORTED_MODULE_9__["default"].stringToElement(templates_file_progress_html__WEBPACK_IMPORTED_MODULE_5___default()(Object.assign(this.model.toJSON(), { '__': __, 'filename': this.model.file.name, 'filesize': filesize__WEBPACK_IMPORTED_MODULE_2___default()(this.model.file.size) @@ -52963,7 +52959,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins }, render() { - const data = _.extend(this.model.toJSON(), { + const data = Object.assign(this.model.toJSON(), { 'tooltip': __('Click to restore this chat') }); @@ -53160,7 +53156,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins }, render() { - this.el.innerHTML = templates_toggle_chats_html__WEBPACK_IMPORTED_MODULE_4___default()(_.extend(this.model.toJSON(), { + this.el.innerHTML = templates_toggle_chats_html__WEBPACK_IMPORTED_MODULE_4___default()(Object.assign(this.model.toJSON(), { 'Minimized': __('Minimized') })); @@ -53307,8 +53303,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins let alert; - - _.extend(_converse.api, { + Object.assign(_converse.api, { 'alert': { 'show'(type, title, messages) { if (_.isString(messages)) { @@ -53711,7 +53706,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins toHTML() { const muc_domain = this.model.get('muc_domain') || _converse.muc_domain; - return templates_list_chatrooms_modal_html__WEBPACK_IMPORTED_MODULE_22___default()(_.extend(this.model.toJSON(), { + return templates_list_chatrooms_modal_html__WEBPACK_IMPORTED_MODULE_22___default()(Object.assign(this.model.toJSON(), { 'heading_list_chatrooms': __('Query for Groupchats'), 'label_server_address': __('Server address'), 'label_query': __('Show groupchats'), @@ -53854,7 +53849,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins placeholder = muc_domain ? `name@${muc_domain}` : __('name@conference.example.org'); } - return templates_add_chatroom_modal_html__WEBPACK_IMPORTED_MODULE_7___default()(_.extend(this.model.toJSON(), { + return templates_add_chatroom_modal_html__WEBPACK_IMPORTED_MODULE_7___default()(Object.assign(this.model.toJSON(), { '__': _converse.__, '_converse': _converse, 'label_room_address': _converse.muc_domain ? __('Groupchat name') : __('Groupchat address'), @@ -53907,7 +53902,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins this.model.setDomain(jid); } - _converse.api.rooms.open(jid, _.extend(data, { + _converse.api.rooms.open(jid, Object.assign(data, { jid })); @@ -53926,7 +53921,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins }, toHTML() { - return templates_chatroom_details_modal_html__WEBPACK_IMPORTED_MODULE_12___default()(_.extend(this.model.toJSON(), { + return templates_chatroom_details_modal_html__WEBPACK_IMPORTED_MODULE_12___default()(Object.assign(this.model.toJSON(), { '_': _, '__': __, 'display_name': __('Groupchat info for %1$s', this.model.getDisplayName()), @@ -54196,7 +54191,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins generateHeadingHTML() { /* Returns the heading HTML to be rendered. */ - return templates_chatroom_head_html__WEBPACK_IMPORTED_MODULE_16___default()(_.extend(this.model.toJSON(), { + return templates_chatroom_head_html__WEBPACK_IMPORTED_MODULE_16___default()(Object.assign(this.model.toJSON(), { '_converse': _converse, 'Strophe': Strophe, 'info_close': __('Close and leave this groupchat'), @@ -54246,7 +54241,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins }, getToolbarOptions() { - return _.extend(_converse.ChatBoxView.prototype.getToolbarOptions.apply(this, arguments), { + return Object.assign(_converse.ChatBoxView.prototype.getToolbarOptions.apply(this, arguments), { 'label_hide_occupants': __('Hide the list of participants'), 'show_occupants_toggle': this.is_chatroom && _converse.visible_toolbar_buttons.toggle_occupants }); @@ -55579,7 +55574,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins toHTML() { const show = this.model.get('show'); - return templates_occupant_html__WEBPACK_IMPORTED_MODULE_23___default()(_.extend({ + return templates_occupant_html__WEBPACK_IMPORTED_MODULE_23___default()(Object.assign({ '_': _, 'jid': '', 'show': show, @@ -55624,7 +55619,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins }, render() { - this.el.innerHTML = templates_chatroom_sidebar_html__WEBPACK_IMPORTED_MODULE_20___default()(_.extend(this.chatroomview.model.toJSON(), { + this.el.innerHTML = templates_chatroom_sidebar_html__WEBPACK_IMPORTED_MODULE_20___default()(Object.assign(this.chatroomview.model.toJSON(), { 'allow_muc_invitations': _converse.allow_muc_invitations, 'label_occupants': __('Participants') })); @@ -55662,7 +55657,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins if (_.reduce(_.values(picks), iteratee)) { const el = this.el.querySelector('.chatroom-features'); - el.innerHTML = templates_chatroom_features_html__WEBPACK_IMPORTED_MODULE_14___default()(_.extend(features.toJSON(), { + el.innerHTML = templates_chatroom_features_html__WEBPACK_IMPORTED_MODULE_14___default()(Object.assign(features.toJSON(), { __ })); this.setOccupantsHeight(); @@ -55860,7 +55855,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins /************************ BEGIN API ************************/ - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "roomviews" namespace groups methods relevant to chatroom * (aka groupchats) views. @@ -56543,7 +56538,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins if (encrypted.payload) { const key = key_and_tag.slice(0, 16), tag = key_and_tag.slice(16); - const result = await this.decryptMessage(_.extend(encrypted, { + const result = await this.decryptMessage(Object.assign(encrypted, { 'key': key, 'tag': tag })); @@ -56563,11 +56558,11 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins return _converse.omemo_store.generateMissingPreKeys(); }).then(() => _converse.omemo_store.publishBundle()).then(() => { if (plaintext) { - return _.extend(attrs, { + return Object.assign(attrs, { 'plaintext': plaintext }); } else { - return _.extend(attrs, { + return Object.assign(attrs, { 'is_only_key': true }); } @@ -56576,7 +56571,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins return attrs; }); } else { - return session_cipher.decryptWhisperMessage(u.base64ToArrayBuffer(attrs.encrypted.key), 'binary').then(key_and_tag => this.handleDecryptedWhisperMessage(attrs, key_and_tag)).then(plaintext => _.extend(attrs, { + return session_cipher.decryptWhisperMessage(u.base64ToArrayBuffer(attrs.encrypted.key), 'binary').then(key_and_tag => this.handleDecryptedWhisperMessage(attrs, key_and_tag)).then(plaintext => Object.assign(attrs, { 'plaintext': plaintext })).catch(e => { this.reportDecryptionError(e); @@ -56716,7 +56711,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins const _converse = this.__super__._converse, __ = _converse.__, icon = this.el.querySelector('.toggle-omemo'), - html = templates_toolbar_omemo_html__WEBPACK_IMPORTED_MODULE_1___default()(_.extend(this.model.toJSON(), { + html = templates_toolbar_omemo_html__WEBPACK_IMPORTED_MODULE_1___default()(Object.assign(this.model.toJSON(), { '__': __ })); @@ -57070,7 +57065,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins 'pubKey': u.arrayBufferToBase64(key_pair.pubKey), 'privKey': u.arrayBufferToBase64(key_pair.privKey) }; - this.save('prekeys', _.extend(this.getPreKeys(), prekey)); + this.save('prekeys', Object.assign(this.getPreKeys(), prekey)); return Promise.resolve(); }, @@ -57194,7 +57189,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins device = devicelist.devices.get(this.get('device_id')); const bundle = await device.getBundle(); - device.save('bundle', _.extend(bundle, { + device.save('bundle', Object.assign(bundle, { 'prekeys': marshalled_keys })); }, @@ -57699,7 +57694,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins /************************ BEGIN API ************************/ - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "omemo" namespace groups methods relevant to OMEMO * encryption. @@ -57847,7 +57842,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_4__["default"].plugins }, toHTML() { - return templates_profile_modal_html__WEBPACK_IMPORTED_MODULE_7___default()(_.extend(this.model.toJSON(), this.model.vcard.toJSON(), { + return templates_profile_modal_html__WEBPACK_IMPORTED_MODULE_7___default()(Object.assign(this.model.toJSON(), this.model.vcard.toJSON(), { '_': _, '__': __, '_converse': _converse, @@ -57910,19 +57905,17 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_4__["default"].plugins }; if (!image_file.size) { - _.extend(data, { + Object.assign(data, { 'image': this.model.vcard.get('image'), 'image_type': this.model.vcard.get('image_type') }); - this.setVCard(data); } else { reader.onloadend = () => { - _.extend(data, { + Object.assign(data, { 'image': btoa(reader.result), 'image_type': image_file.type }); - this.setVCard(data); }; @@ -57938,7 +57931,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_4__["default"].plugins }, toHTML() { - return templates_chat_status_modal_html__WEBPACK_IMPORTED_MODULE_5___default()(_.extend(this.model.toJSON(), this.model.vcard.toJSON(), { + return templates_chat_status_modal_html__WEBPACK_IMPORTED_MODULE_5___default()(Object.assign(this.model.toJSON(), this.model.vcard.toJSON(), { 'label_away': __('Away'), 'label_close': __('Close'), 'label_busy': __('Busy'), @@ -57982,7 +57975,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_4__["default"].plugins }); _converse.ClientInfoModal = _converse.BootstrapModal.extend({ toHTML() { - return templates_client_info_modal_html__WEBPACK_IMPORTED_MODULE_6___default()(_.extend(this.model.toJSON(), this.model.vcard.toJSON(), { + return templates_client_info_modal_html__WEBPACK_IMPORTED_MODULE_6___default()(Object.assign(this.model.toJSON(), this.model.vcard.toJSON(), { '__': __, 'modal_title': __('About'), 'version_name': _converse.VERSION_NAME, @@ -58008,7 +58001,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_4__["default"].plugins toHTML() { const chat_status = this.model.get('status') || 'offline'; - return templates_profile_view_html__WEBPACK_IMPORTED_MODULE_8___default()(_.extend(this.model.toJSON(), this.model.vcard.toJSON(), { + return templates_profile_view_html__WEBPACK_IMPORTED_MODULE_8___default()(Object.assign(this.model.toJSON(), this.model.vcard.toJSON(), { '__': __, 'fullname': this.model.vcard.get('fullname') || _converse.bare_jid, 'status_message': this.model.get('status_message') || __("I am %1$s", this.getPrettyStatus(chat_status)), @@ -58449,7 +58442,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins _converse.RegisterLinkView = Backbone.VDOMView.extend({ toHTML() { - return templates_register_link_html__WEBPACK_IMPORTED_MODULE_4___default()(_.extend(this.model.toJSON(), { + return templates_register_link_html__WEBPACK_IMPORTED_MODULE_4___default()(Object.assign(this.model.toJSON(), { '__': _converse.__, '_converse': _converse, 'connection_status': _converse.connfeedback.get('connection_status') @@ -58606,11 +58599,10 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins domain: null, form_type: null }; - - _.extend(this, defaults); + Object.assign(this, defaults); if (settings) { - _.extend(this, _.pick(settings, _.keys(defaults))); + Object.assign(this, _.pick(settings, _.keys(defaults))); } }, @@ -59176,7 +59168,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins }, toHTML() { - return templates_rooms_list_item_html__WEBPACK_IMPORTED_MODULE_3___default()(_.extend(this.model.toJSON(), { + return templates_rooms_list_item_html__WEBPACK_IMPORTED_MODULE_3___default()(Object.assign(this.model.toJSON(), { // XXX: By the time this renders, the _converse.bookmarks // collection should already exist if bookmarks are // supported by the XMPP server. So we can use it @@ -59547,7 +59539,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_4__["default"].plugins toHTML() { const label_nickname = _converse.xhr_user_search_url ? __('Contact name') : __('Optional nickname'); - return templates_add_contact_modal_html__WEBPACK_IMPORTED_MODULE_5___default()(_.extend(this.model.toJSON(), { + return templates_add_contact_modal_html__WEBPACK_IMPORTED_MODULE_5___default()(Object.assign(this.model.toJSON(), { '_converse': _converse, 'heading_new_contact': __('Add a Contact'), 'label_xmpp_address': __('XMPP Address'), @@ -59720,7 +59712,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_4__["default"].plugins }, toHTML() { - return templates_roster_filter_html__WEBPACK_IMPORTED_MODULE_10___default()(_.extend(this.model.toJSON(), { + return templates_roster_filter_html__WEBPACK_IMPORTED_MODULE_10___default()(Object.assign(this.model.toJSON(), { visible: this.shouldBeVisible(), placeholder: __('Filter'), title_contact_filter: __('Filter by contact name'), @@ -59912,7 +59904,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_4__["default"].plugins */ const display_name = this.model.getDisplayName(); this.el.classList.add('pending-xmpp-contact'); - this.el.innerHTML = templates_pending_contact_html__WEBPACK_IMPORTED_MODULE_7___default()(_.extend(this.model.toJSON(), { + this.el.innerHTML = templates_pending_contact_html__WEBPACK_IMPORTED_MODULE_7___default()(Object.assign(this.model.toJSON(), { 'display_name': display_name, 'desc_remove': __('Click to remove %1$s as a contact', display_name), 'allow_chat_pending_contacts': _converse.allow_chat_pending_contacts @@ -59920,7 +59912,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_4__["default"].plugins } else if (requesting === true) { const display_name = this.model.getDisplayName(); this.el.classList.add('requesting-xmpp-contact'); - this.el.innerHTML = templates_requesting_contact_html__WEBPACK_IMPORTED_MODULE_8___default()(_.extend(this.model.toJSON(), { + this.el.innerHTML = templates_requesting_contact_html__WEBPACK_IMPORTED_MODULE_8___default()(Object.assign(this.model.toJSON(), { 'display_name': display_name, 'desc_accept': __("Click to accept the contact request from %1$s", display_name), 'desc_decline': __("Click to decline the contact request from %1$s", display_name), @@ -59965,7 +59957,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_4__["default"].plugins } const display_name = item.getDisplayName(); - this.el.innerHTML = templates_roster_item_html__WEBPACK_IMPORTED_MODULE_11___default()(_.extend(item.toJSON(), { + this.el.innerHTML = templates_roster_item_html__WEBPACK_IMPORTED_MODULE_11___default()(Object.assign(item.toJSON(), { 'display_name': display_name, 'desc_status': STATUSES[show], 'status_icon': status_icon, @@ -62770,7 +62762,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha 'type': 'error' }); } else { - const message = this.messages.create(_.extend(this.getOutgoingMessageAttributes(), { + const message = this.messages.create(Object.assign(this.getOutgoingMessageAttributes(), { 'file': true, 'progress': 0, 'slot_request_url': slot_request_url @@ -62868,7 +62860,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha text = this.getMessageBody(stanza) || undefined, chat_state = stanza.getElementsByTagName(_converse.COMPOSING).length && _converse.COMPOSING || stanza.getElementsByTagName(_converse.PAUSED).length && _converse.PAUSED || stanza.getElementsByTagName(_converse.INACTIVE).length && _converse.INACTIVE || stanza.getElementsByTagName(_converse.ACTIVE).length && _converse.ACTIVE || stanza.getElementsByTagName(_converse.GONE).length && _converse.GONE; - const attrs = _.extend({ + const attrs = Object.assign({ 'chat_state': chat_state, 'is_archived': this.isArchived(original_stanza), 'is_delayed': !_.isNil(delay), @@ -63189,11 +63181,10 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha let chatbox = this.get(Strophe.getBareJidFromJid(jid)); if (!chatbox && create) { - _.extend(attrs, { + Object.assign(attrs, { 'jid': jid, 'id': jid }); - chatbox = this.create(attrs, { 'error'(model, response) { _converse.log(response.responseText); @@ -63267,7 +63258,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha /************************ BEGIN API ************************/ - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "chats" namespace (used for one-on-one chats) * @@ -63412,7 +63403,6 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha } }); /************************ END API ************************/ - } }); @@ -63522,9 +63512,7 @@ const _converse = { 'promises': {} }; _converse.VERSION_NAME = "v4.2.0"; - -_lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.extend(_converse, Backbone.Events); // Make converse pluggable - +Object.assign(_converse, Backbone.Events); // Make converse pluggable pluggable_js_dist_pluggable__WEBPACK_IMPORTED_MODULE_8___default.a.enable(_converse, '_converse', 'pluggable'); // Core plugins are whitelisted automatically // These are just the @converse/headless plugins, for the full converse, @@ -65944,7 +65932,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins.add('converse-dis return true; } - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The XEP-0030 service discovery API * @@ -66455,8 +66443,7 @@ function queryForArchivedMessages(_converse, options, callback, errback) { rsm = new Strophe.RSM({ xml: set }); - - _.extend(rsm, _.pick(options, _.concat(MAM_ATTRIBUTES, ['max']))); + Object.assign(rsm, _.pick(options, _.concat(MAM_ATTRIBUTES, ['max']))); } callback(messages, rsm); @@ -66515,7 +66502,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-mam const attrs = this.__super__.getUpdatedMessageAttributes.apply(this, arguments); if (message && !message.get('is_archived')) { - return _.extend(attrs, { + return Object.assign(attrs, { 'is_archived': this.isArchived(stanza) }, this.getStanzaIDs(stanza)); } @@ -66613,7 +66600,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-mam /************************ BEGIN API ************************/ - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The [XEP-0313](https://xmpp.org/extensions/xep-0313.html) Message Archive Management API * @@ -66793,7 +66780,6 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-mam } }); /************************ END API ************************/ - } }); @@ -67457,11 +67443,9 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc }), 'attributes.value') }); const features = await _converse.api.disco.getFeatures(this.get('jid')); - - const attrs = _.extend(_.zipObject(_converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].ROOM_FEATURES, _.map(_converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].ROOM_FEATURES, _.stubFalse)), { + const attrs = Object.assign(_.zipObject(_converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].ROOM_FEATURES, _.map(_converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].ROOM_FEATURES, _.stubFalse)), { 'fetched': moment().format() }); - features.each(feature => { const fieldname = feature.get('var'); @@ -67871,8 +67855,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc } const jid = data.jid || ''; - - const attributes = _.extend(data, { + const attributes = Object.assign(data, { 'jid': Strophe.getBareJidFromJid(jid) || _.get(occupant, 'attributes.jid'), 'resource': Strophe.getResourceFromJid(jid) || _.get(occupant, 'attributes.resource') }); @@ -68214,7 +68197,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc }, initialize(attributes) { - this.set(_.extend({ + this.set(Object.assign({ 'id': _converse.connection.getUniqueId() }, attributes)); this.on('change:image_hash', this.onAvatarChanged, this); @@ -68519,7 +68502,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc // We extend the default converse.js API to add methods specific to MUC groupchats. - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "rooms" namespace groups methods relevant to chatrooms * (aka groupchats). @@ -68700,7 +68683,6 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc } }); /************************ END API ************************/ - } }); @@ -68880,7 +68862,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins.add('converse-pub /************************ BEGIN API ************************/ // We extend the default converse.js API to add methods specific to MUC groupchats. - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "pubsub" namespace groups methods relevant to PubSub * @@ -68955,7 +68937,6 @@ _converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins.add('converse-pub } }); /************************ END API ************************/ - } }); @@ -70069,7 +70050,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins // API methods only available to plugins - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * @namespace _converse.api.contacts * @memberOf _converse.api @@ -70297,7 +70278,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins.add('converse-vca return onVCardData(jid, iq); } - /* Event handlers */ + /************************ BEGIN Event Handlers ************************/ _converse.initVCardCollection = function () { @@ -70325,8 +70306,10 @@ _converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins.add('converse-vca _converse.api.listen.on('addClientFeatures', () => { _converse.api.disco.own.features.add(Strophe.NS.VCARD); }); + /************************ BEGIN API ************************/ - _.extend(_converse.api, { + + Object.assign(_converse.api, { /** * The XEP-0054 VCard API * diff --git a/src/converse-autocomplete.js b/src/converse-autocomplete.js index ad375ff18..5c54be2fa 100644 --- a/src/converse-autocomplete.js +++ b/src/converse-autocomplete.js @@ -370,7 +370,7 @@ converse.plugins.add("converse-autocomplete", { } // Make it an event emitter - _.extend(AutoComplete.prototype, Backbone.Events); + Object.assign(AutoComplete.prototype, Backbone.Events); const helpers = { diff --git a/src/converse-bookmarks.js b/src/converse-bookmarks.js index dffcca71b..1862cf13a 100644 --- a/src/converse-bookmarks.js +++ b/src/converse-bookmarks.js @@ -190,7 +190,7 @@ converse.plugins.add('converse-bookmarks', { _converse.api.promises.add('bookmarksInitialized'); // Pure functions on the _converse object - _.extend(_converse, { + Object.assign(_converse, { removeBookmarkViaEvent (ev) { /* Remove a bookmark as determined by the passed in * event. diff --git a/src/converse-chatview.js b/src/converse-chatview.js index a07fdb96c..be08085bc 100644 --- a/src/converse-chatview.js +++ b/src/converse-chatview.js @@ -102,7 +102,7 @@ converse.plugins.add('converse-chatview', { toHTML () { return tpl_emojis( - _.extend( + Object.assign( this.model.toJSON(), { '_': _, 'transform': u.getEmojiRenderer(_converse), @@ -176,7 +176,7 @@ converse.plugins.add('converse-chatview', { const vcard = _.get(this.model, 'vcard'), vcard_json = vcard ? vcard.toJSON() : {}; this.el.innerHTML = tpl_chatbox_head( - _.extend( + Object.assign( vcard_json, this.model.toJSON(), { '_converse': _converse, @@ -232,7 +232,7 @@ converse.plugins.add('converse-chatview', { toHTML () { const vcard = _.get(this.model, 'vcard'), vcard_json = vcard ? vcard.toJSON() : {}; - return tpl_user_details_modal(_.extend( + return tpl_user_details_modal(Object.assign( this.model.toJSON(), vcard_json, { '_': _, @@ -369,7 +369,7 @@ converse.plugins.add('converse-chatview', { // XXX: Is this still needed? this.el.setAttribute('id', this.model.get('box_id')); this.el.innerHTML = tpl_chatbox( - _.extend(this.model.toJSON(), { + Object.assign(this.model.toJSON(), { 'unread_msgs': __('You have unread messages') } )); @@ -410,7 +410,7 @@ converse.plugins.add('converse-chatview', { } const form_container = this.el.querySelector('.bottom-panel'); form_container.innerHTML = tpl_chatbox_message_form( - _.extend(this.model.toJSON(), { + Object.assign(this.model.toJSON(), { 'hint_value': _.get(this.el.querySelector('.spoiler-hint'), 'value'), 'label_message': placeholder, 'label_send': __('Send'), @@ -516,7 +516,7 @@ converse.plugins.add('converse-chatview', { } else { label_toggle_spoiler = __('Click to write your message as a spoiler'); } - return _.extend(options || {}, { + return Object.assign(options || {}, { 'label_clear': __('Clear all messages'), 'tooltip_insert_smiley': __('Insert emojis'), 'tooltip_start_call': __('Start a call'), @@ -1400,7 +1400,7 @@ converse.plugins.add('converse-chatview', { }); /************************ BEGIN API ************************/ - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "chatview" namespace groups methods pertaining to views * for one-on-one chats. diff --git a/src/converse-controlbox.js b/src/converse-controlbox.js index abb8b2ddf..854dba9e0 100644 --- a/src/converse-controlbox.js +++ b/src/converse-controlbox.js @@ -244,7 +244,7 @@ converse.plugins.add('converse-controlbox', { this.model.set('closed', !_converse.show_controlbox_by_default); } } - this.el.innerHTML = tpl_controlbox(_.extend(this.model.toJSON())); + this.el.innerHTML = tpl_controlbox(Object.assign(this.model.toJSON())); if (!this.model.get('closed')) { this.show(); @@ -416,7 +416,7 @@ converse.plugins.add('converse-controlbox', { feedback_class = CONNECTION_STATUS_CSS_CLASS[pretty_status]; } return tpl_login_panel( - _.extend(this.model.toJSON(), { + Object.assign(this.model.toJSON(), { '__': __, '_converse': _converse, 'ANONYMOUS': _converse.ANONYMOUS, @@ -658,7 +658,7 @@ converse.plugins.add('converse-controlbox', { /************************ BEGIN API ************************/ - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "controlbox" namespace groups methods pertaining to the * controlbox view diff --git a/src/converse-headline.js b/src/converse-headline.js index da2d989de..cf670612b 100644 --- a/src/converse-headline.js +++ b/src/converse-headline.js @@ -96,7 +96,7 @@ converse.plugins.add('converse-headline', { render () { this.el.setAttribute('id', this.model.get('box_id')) this.el.innerHTML = tpl_chatbox( - _.extend(this.model.toJSON(), { + Object.assign(this.model.toJSON(), { info_close: '', label_personal_message: '', show_send_button: false, diff --git a/src/converse-mam-views.js b/src/converse-mam-views.js index b03bfafff..cbed575f7 100644 --- a/src/converse-mam-views.js +++ b/src/converse-mam-views.js @@ -101,7 +101,7 @@ converse.plugins.add('converse-mam-views', { } this.addSpinner(); _converse.api.archive.query( - _.extend({ + Object.assign({ 'groupchat': is_groupchat, 'before': '', // Page backwards from the most recent message 'max': _converse.archived_messages_page_size, diff --git a/src/converse-message-view.js b/src/converse-message-view.js index 306bf2fc1..95742e86b 100644 --- a/src/converse-message-view.js +++ b/src/converse-message-view.js @@ -67,7 +67,7 @@ converse.plugins.add('converse-message-view', { _converse.MessageVersionsModal = _converse.BootstrapModal.extend({ toHTML () { - return tpl_message_versions_modal(_.extend( + return tpl_message_versions_modal(Object.assign( this.model.toJSON(), { '__': __ })); @@ -154,7 +154,7 @@ converse.plugins.add('converse-message-view', { roles = role ? role.split(',') : []; const msg = u.stringToElement(tpl_message( - _.extend( + Object.assign( this.model.toJSON(), { '__': __, 'is_me_message': is_me_message, @@ -203,7 +203,7 @@ converse.plugins.add('converse-message-view', { renderErrorMessage () { const moment_time = moment(this.model.get('time')), msg = u.stringToElement( - tpl_info(_.extend(this.model.toJSON(), { + tpl_info(Object.assign(this.model.toJSON(), { 'extra_classes': 'chat-error', 'isodate': moment_time.format() }))); @@ -244,7 +244,7 @@ converse.plugins.add('converse-message-view', { renderFileUploadProgresBar () { const msg = u.stringToElement(tpl_file_progress( - _.extend(this.model.toJSON(), { + Object.assign(this.model.toJSON(), { '__': __, 'filename': this.model.file.name, 'filesize': filesize(this.model.file.size) diff --git a/src/converse-minimize.js b/src/converse-minimize.js index 03ff023c0..b804041de 100644 --- a/src/converse-minimize.js +++ b/src/converse-minimize.js @@ -348,7 +348,7 @@ converse.plugins.add('converse-minimize', { }, render () { - const data = _.extend( + const data = Object.assign( this.model.toJSON(), { 'tooltip': __('Click to restore this chat') } ); @@ -510,7 +510,7 @@ converse.plugins.add('converse-minimize', { render () { this.el.innerHTML = tpl_toggle_chats( - _.extend(this.model.toJSON(), { + Object.assign(this.model.toJSON(), { 'Minimized': __('Minimized') }) ); diff --git a/src/converse-modal.js b/src/converse-modal.js index 500aa95e5..538965318 100644 --- a/src/converse-modal.js +++ b/src/converse-modal.js @@ -75,7 +75,7 @@ converse.plugins.add('converse-modal', { // We extend the default converse.js API to add methods specific to MUC chat rooms. let alert - _.extend(_converse.api, { + Object.assign(_converse.api, { 'alert': { 'show' (type, title, messages) { if (_.isString(messages)) { diff --git a/src/converse-muc-views.js b/src/converse-muc-views.js index 7aa6c76b6..da83b15dd 100644 --- a/src/converse-muc-views.js +++ b/src/converse-muc-views.js @@ -289,7 +289,7 @@ converse.plugins.add('converse-muc-views', { toHTML () { const muc_domain = this.model.get('muc_domain') || _converse.muc_domain; - return tpl_list_chatrooms_modal(_.extend(this.model.toJSON(), { + return tpl_list_chatrooms_modal(Object.assign(this.model.toJSON(), { 'heading_list_chatrooms': __('Query for Groupchats'), 'label_server_address': __('Server address'), 'label_query': __('Show groupchats'), @@ -420,7 +420,7 @@ converse.plugins.add('converse-muc-views', { const muc_domain = this.model.get('muc_domain') || _converse.muc_domain; placeholder = muc_domain ? `name@${muc_domain}` : __('name@conference.example.org'); } - return tpl_add_chatroom_modal(_.extend(this.model.toJSON(), { + return tpl_add_chatroom_modal(Object.assign(this.model.toJSON(), { '__': _converse.__, '_converse': _converse, 'label_room_address': _converse.muc_domain ? __('Groupchat name') : __('Groupchat address'), @@ -466,7 +466,7 @@ converse.plugins.add('converse-muc-views', { jid = data.jid this.model.setDomain(jid); } - _converse.api.rooms.open(jid, _.extend(data, {jid})); + _converse.api.rooms.open(jid, Object.assign(data, {jid})); this.modal.hide(); ev.target.reset(); } @@ -483,7 +483,7 @@ converse.plugins.add('converse-muc-views', { }, toHTML () { - return tpl_chatroom_details_modal(_.extend( + return tpl_chatroom_details_modal(Object.assign( this.model.toJSON(), { '_': _, '__': __, @@ -728,7 +728,7 @@ converse.plugins.add('converse-muc-views', { /* Returns the heading HTML to be rendered. */ return tpl_chatroom_head( - _.extend(this.model.toJSON(), { + Object.assign(this.model.toJSON(), { '_converse': _converse, 'Strophe': Strophe, 'info_close': __('Close and leave this groupchat'), @@ -774,7 +774,7 @@ converse.plugins.add('converse-muc-views', { }, getToolbarOptions () { - return _.extend( + return Object.assign( _converse.ChatBoxView.prototype.getToolbarOptions.apply(this, arguments), { 'label_hide_occupants': __('Hide the list of participants'), @@ -1989,7 +1989,7 @@ converse.plugins.add('converse-muc-views', { toHTML () { const show = this.model.get('show'); return tpl_occupant( - _.extend( + Object.assign( { '_': _, 'jid': '', 'show': show, @@ -2040,7 +2040,7 @@ converse.plugins.add('converse-muc-views', { render () { this.el.innerHTML = tpl_chatroom_sidebar( - _.extend(this.chatroomview.model.toJSON(), { + Object.assign(this.chatroomview.model.toJSON(), { 'allow_muc_invitations': _converse.allow_muc_invitations, 'label_occupants': __('Participants') }) @@ -2078,7 +2078,7 @@ converse.plugins.add('converse-muc-views', { if (_.reduce(_.values(picks), iteratee)) { const el = this.el.querySelector('.chatroom-features'); - el.innerHTML = tpl_chatroom_features(_.extend(features.toJSON(), {__})); + el.innerHTML = tpl_chatroom_features(Object.assign(features.toJSON(), {__})); this.setOccupantsHeight(); } return this; @@ -2253,7 +2253,7 @@ converse.plugins.add('converse-muc-views', { /************************ BEGIN API ************************/ - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "roomviews" namespace groups methods relevant to chatroom * (aka groupchats) views. diff --git a/src/converse-oauth.js b/src/converse-oauth.js index 0d5dc4656..a5a4143a9 100644 --- a/src/converse-oauth.js +++ b/src/converse-oauth.js @@ -82,7 +82,7 @@ converse.plugins.add("converse-oauth", { initialize () { _.each(_converse.user_settings.oauth_providers, (provider) => { - const item = new Backbone.Model(_.extend(provider, { + const item = new Backbone.Model(Object.assign(provider, { 'login_text': __('Log in with %1$s', provider.name) })); this.add(item, {'silent': true}); @@ -99,7 +99,7 @@ converse.plugins.add("converse-oauth", { toHTML () { return tpl_oauth_providers( - _.extend({ + Object.assign({ '_': _, '__': _converse.__, 'providers': this.model.toJSON() diff --git a/src/converse-omemo.js b/src/converse-omemo.js index a7c33cb69..108033a07 100644 --- a/src/converse-omemo.js +++ b/src/converse-omemo.js @@ -242,7 +242,7 @@ converse.plugins.add('converse-omemo', { if (encrypted.payload) { const key = key_and_tag.slice(0, 16), tag = key_and_tag.slice(16); - const result = await this.decryptMessage(_.extend(encrypted, {'key': key, 'tag': tag})); + const result = await this.decryptMessage(Object.assign(encrypted, {'key': key, 'tag': tag})); device.save('active', true); return result; } @@ -263,9 +263,9 @@ converse.plugins.add('converse-omemo', { }).then(() => _converse.omemo_store.publishBundle()) .then(() => { if (plaintext) { - return _.extend(attrs, {'plaintext': plaintext}); + return Object.assign(attrs, {'plaintext': plaintext}); } else { - return _.extend(attrs, {'is_only_key': true}); + return Object.assign(attrs, {'is_only_key': true}); } }).catch(e => { this.reportDecryptionError(e); @@ -274,7 +274,7 @@ converse.plugins.add('converse-omemo', { } else { return session_cipher.decryptWhisperMessage(u.base64ToArrayBuffer(attrs.encrypted.key), 'binary') .then(key_and_tag => this.handleDecryptedWhisperMessage(attrs, key_and_tag)) - .then(plaintext => _.extend(attrs, {'plaintext': plaintext})) + .then(plaintext => Object.assign(attrs, {'plaintext': plaintext})) .catch(e => { this.reportDecryptionError(e); return attrs; @@ -407,7 +407,7 @@ converse.plugins.add('converse-omemo', { const { _converse } = this.__super__, { __ } = _converse, icon = this.el.querySelector('.toggle-omemo'), - html = tpl_toolbar_omemo(_.extend(this.model.toJSON(), {'__': __})); + html = tpl_toolbar_omemo(Object.assign(this.model.toJSON(), {'__': __})); if (icon) { icon.outerHTML = html; @@ -727,7 +727,7 @@ converse.plugins.add('converse-omemo', { 'pubKey': u.arrayBufferToBase64(key_pair.pubKey), 'privKey': u.arrayBufferToBase64(key_pair.privKey) } - this.save('prekeys', _.extend(this.getPreKeys(), prekey)); + this.save('prekeys', Object.assign(this.getPreKeys(), prekey)); return Promise.resolve(); }, @@ -834,7 +834,7 @@ converse.plugins.add('converse-omemo', { device = devicelist.devices.get(this.get('device_id')); const bundle = await device.getBundle(); - device.save('bundle', _.extend(bundle, {'prekeys': marshalled_keys})); + device.save('bundle', Object.assign(bundle, {'prekeys': marshalled_keys})); }, async generateBundle () { @@ -1242,7 +1242,7 @@ converse.plugins.add('converse-omemo', { }); /************************ BEGIN API ************************/ - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "omemo" namespace groups methods relevant to OMEMO * encryption. diff --git a/src/converse-profile.js b/src/converse-profile.js index a727dddf2..4ff4ea1b6 100644 --- a/src/converse-profile.js +++ b/src/converse-profile.js @@ -58,7 +58,7 @@ converse.plugins.add('converse-profile', { }, toHTML () { - return tpl_profile_modal(_.extend( + return tpl_profile_modal(Object.assign( this.model.toJSON(), this.model.vcard.toJSON(), { '_': _, @@ -128,14 +128,14 @@ converse.plugins.add('converse-profile', { 'url': form_data.get('url'), }; if (!image_file.size) { - _.extend(data, { + Object.assign(data, { 'image': this.model.vcard.get('image'), 'image_type': this.model.vcard.get('image_type') }); this.setVCard(data); } else { reader.onloadend = () => { - _.extend(data, { + Object.assign(data, { 'image': btoa(reader.result), 'image_type': image_file.type }); @@ -155,7 +155,7 @@ converse.plugins.add('converse-profile', { toHTML () { return tpl_chat_status_modal( - _.extend( + Object.assign( this.model.toJSON(), this.model.vcard.toJSON(), { 'label_away': __('Away'), @@ -202,7 +202,7 @@ converse.plugins.add('converse-profile', { toHTML () { return tpl_client_info_modal( - _.extend( + Object.assign( this.model.toJSON(), this.model.vcard.toJSON(), { '__': __, @@ -239,7 +239,7 @@ converse.plugins.add('converse-profile', { toHTML () { const chat_status = this.model.get('status') || 'offline'; - return tpl_profile_view(_.extend( + return tpl_profile_view(Object.assign( this.model.toJSON(), this.model.vcard.toJSON(), { '__': __, diff --git a/src/converse-register.js b/src/converse-register.js index c1bbded2a..b459a10ff 100644 --- a/src/converse-register.js +++ b/src/converse-register.js @@ -151,7 +151,7 @@ converse.plugins.add('converse-register', { _converse.RegisterLinkView = Backbone.VDOMView.extend({ toHTML () { return tpl_register_link( - _.extend(this.model.toJSON(), { + Object.assign(this.model.toJSON(), { '__': _converse.__, '_converse': _converse, 'connection_status': _converse.connfeedback.get('connection_status'), @@ -294,9 +294,9 @@ converse.plugins.add('converse-register', { domain: null, form_type: null }; - _.extend(this, defaults); + Object.assign(this, defaults); if (settings) { - _.extend(this, _.pick(settings, _.keys(defaults))); + Object.assign(this, _.pick(settings, _.keys(defaults))); } }, diff --git a/src/converse-roomslist.js b/src/converse-roomslist.js index cb2cc8840..89759cced 100644 --- a/src/converse-roomslist.js +++ b/src/converse-roomslist.js @@ -113,7 +113,7 @@ converse.plugins.add('converse-roomslist', { toHTML () { return tpl_rooms_list_item( - _.extend(this.model.toJSON(), { + Object.assign(this.model.toJSON(), { // XXX: By the time this renders, the _converse.bookmarks // collection should already exist if bookmarks are // supported by the XMPP server. So we can use it diff --git a/src/converse-rosterview.js b/src/converse-rosterview.js index 6207c9a0a..966188940 100644 --- a/src/converse-rosterview.js +++ b/src/converse-rosterview.js @@ -119,7 +119,7 @@ converse.plugins.add('converse-rosterview', { toHTML () { const label_nickname = _converse.xhr_user_search_url ? __('Contact name') : __('Optional nickname'); - return tpl_add_contact_modal(_.extend(this.model.toJSON(), { + return tpl_add_contact_modal(Object.assign(this.model.toJSON(), { '_converse': _converse, 'heading_new_contact': __('Add a Contact'), 'label_xmpp_address': __('XMPP Address'), @@ -276,7 +276,7 @@ converse.plugins.add('converse-rosterview', { toHTML () { return tpl_roster_filter( - _.extend(this.model.toJSON(), { + Object.assign(this.model.toJSON(), { visible: this.shouldBeVisible(), placeholder: __('Filter'), title_contact_filter: __('Filter by contact name'), @@ -454,7 +454,7 @@ converse.plugins.add('converse-rosterview', { const display_name = this.model.getDisplayName(); this.el.classList.add('pending-xmpp-contact'); this.el.innerHTML = tpl_pending_contact( - _.extend(this.model.toJSON(), { + Object.assign(this.model.toJSON(), { 'display_name': display_name, 'desc_remove': __('Click to remove %1$s as a contact', display_name), 'allow_chat_pending_contacts': _converse.allow_chat_pending_contacts @@ -464,7 +464,7 @@ converse.plugins.add('converse-rosterview', { const display_name = this.model.getDisplayName(); this.el.classList.add('requesting-xmpp-contact'); this.el.innerHTML = tpl_requesting_contact( - _.extend(this.model.toJSON(), { + Object.assign(this.model.toJSON(), { 'display_name': display_name, 'desc_accept': __("Click to accept the contact request from %1$s", display_name), 'desc_decline': __("Click to decline the contact request from %1$s", display_name), @@ -507,7 +507,7 @@ converse.plugins.add('converse-rosterview', { } const display_name = item.getDisplayName(); this.el.innerHTML = tpl_roster_item( - _.extend(item.toJSON(), { + Object.assign(item.toJSON(), { 'display_name': display_name, 'desc_status': STATUSES[show], 'status_icon': status_icon, diff --git a/src/headless/converse-chatboxes.js b/src/headless/converse-chatboxes.js index 6744a3ea4..edd58a303 100644 --- a/src/headless/converse-chatboxes.js +++ b/src/headless/converse-chatboxes.js @@ -639,7 +639,7 @@ converse.plugins.add('converse-chatboxes', { }); } else { const message = this.messages.create( - _.extend( + Object.assign( this.getOutgoingMessageAttributes(), { 'file': true, 'progress': 0, @@ -736,7 +736,7 @@ converse.plugins.add('converse-chatboxes', { stanza.getElementsByTagName(_converse.ACTIVE).length && _converse.ACTIVE || stanza.getElementsByTagName(_converse.GONE).length && _converse.GONE; - const attrs = _.extend({ + const attrs = Object.assign({ 'chat_state': chat_state, 'is_archived': this.isArchived(original_stanza), 'is_delayed': !_.isNil(delay), @@ -1030,7 +1030,7 @@ converse.plugins.add('converse-chatboxes', { let chatbox = this.get(Strophe.getBareJidFromJid(jid)); if (!chatbox && create) { - _.extend(attrs, {'jid': jid, 'id': jid}); + Object.assign(attrs, {'jid': jid, 'id': jid}); chatbox = this.create(attrs, { 'error' (model, response) { _converse.log(response.responseText); @@ -1095,7 +1095,7 @@ converse.plugins.add('converse-chatboxes', { /************************ BEGIN API ************************/ - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "chats" namespace (used for one-on-one chats) * diff --git a/src/headless/converse-core.js b/src/headless/converse-core.js index 632259b71..d89c8c5bb 100644 --- a/src/headless/converse-core.js +++ b/src/headless/converse-core.js @@ -75,7 +75,7 @@ const _converse = { _converse.VERSION_NAME = "v4.2.0"; -_.extend(_converse, Backbone.Events); +Object.assign(_converse, Backbone.Events); // Make converse pluggable pluggable.enable(_converse, '_converse', 'pluggable'); diff --git a/src/headless/converse-disco.js b/src/headless/converse-disco.js index 78d892c33..c97fc4a17 100644 --- a/src/headless/converse-disco.js +++ b/src/headless/converse-disco.js @@ -362,7 +362,7 @@ converse.plugins.add('converse-disco', { } - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The XEP-0030 service discovery API * diff --git a/src/headless/converse-mam.js b/src/headless/converse-mam.js index 8de2a3fff..6354e5897 100644 --- a/src/headless/converse-mam.js +++ b/src/headless/converse-mam.js @@ -89,7 +89,7 @@ function queryForArchivedMessages (_converse, options, callback, errback) { let rsm; if (!_.isUndefined(set)) { rsm = new Strophe.RSM({xml: set}); - _.extend(rsm, _.pick(options, _.concat(MAM_ATTRIBUTES, ['max']))); + Object.assign(rsm, _.pick(options, _.concat(MAM_ATTRIBUTES, ['max']))); } callback(messages, rsm); } @@ -142,7 +142,7 @@ converse.plugins.add('converse-mam', { getUpdatedMessageAttributes (message, stanza) { const attrs = this.__super__.getUpdatedMessageAttributes.apply(this, arguments); if (message && !message.get('is_archived')) { - return _.extend(attrs, { + return Object.assign(attrs, { 'is_archived': this.isArchived(stanza) }, this.getStanzaIDs(stanza)) } @@ -226,7 +226,7 @@ converse.plugins.add('converse-mam', { /************************ BEGIN API ************************/ - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The [XEP-0313](https://xmpp.org/extensions/xep-0313.html) Message Archive Management API * diff --git a/src/headless/converse-muc.js b/src/headless/converse-muc.js index 444c41cca..51a956d08 100644 --- a/src/headless/converse-muc.js +++ b/src/headless/converse-muc.js @@ -559,7 +559,7 @@ converse.plugins.add('converse-muc', { }); const features = await _converse.api.disco.getFeatures(this.get('jid')); - const attrs = _.extend( + const attrs = Object.assign( _.zipObject(converse.ROOM_FEATURES, _.map(converse.ROOM_FEATURES, _.stubFalse)), {'fetched': moment().format()} ); @@ -921,7 +921,7 @@ converse.plugins.add('converse-muc', { } } const jid = data.jid || ''; - const attributes = _.extend(data, { + const attributes = Object.assign(data, { 'jid': Strophe.getBareJidFromJid(jid) || _.get(occupant, 'attributes.jid'), 'resource': Strophe.getResourceFromJid(jid) || _.get(occupant, 'attributes.resource') }); @@ -1224,10 +1224,10 @@ converse.plugins.add('converse-muc', { }, initialize (attributes) { - this.set(_.extend({ - 'id': _converse.connection.getUniqueId(), - }, attributes)); - + this.set(Object.assign( + {'id': _converse.connection.getUniqueId()}, + attributes) + ); this.on('change:image_hash', this.onAvatarChanged, this); }, @@ -1501,7 +1501,7 @@ converse.plugins.add('converse-muc', { /************************ BEGIN API ************************/ // We extend the default converse.js API to add methods specific to MUC groupchats. - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "rooms" namespace groups methods relevant to chatrooms * (aka groupchats). diff --git a/src/headless/converse-pubsub.js b/src/headless/converse-pubsub.js index 108866582..5ab16993f 100644 --- a/src/headless/converse-pubsub.js +++ b/src/headless/converse-pubsub.js @@ -26,7 +26,7 @@ converse.plugins.add('converse-pubsub', { /************************ BEGIN API ************************/ // We extend the default converse.js API to add methods specific to MUC groupchats. - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "pubsub" namespace groups methods relevant to PubSub * diff --git a/src/headless/converse-roster.js b/src/headless/converse-roster.js index 15c90821e..31f96bed9 100644 --- a/src/headless/converse-roster.js +++ b/src/headless/converse-roster.js @@ -968,7 +968,7 @@ converse.plugins.add('converse-roster', { /************************ API ************************/ // API methods only available to plugins - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * @namespace _converse.api.contacts * @memberOf _converse.api diff --git a/src/headless/converse-vcard.js b/src/headless/converse-vcard.js index 38bc48ad9..fd40d1c6b 100644 --- a/src/headless/converse-vcard.js +++ b/src/headless/converse-vcard.js @@ -118,7 +118,7 @@ converse.plugins.add('converse-vcard', { return onVCardData(jid, iq); } - /* Event handlers */ + /************************ BEGIN Event Handlers ************************/ _converse.initVCardCollection = function () { _converse.vcards = new _converse.VCards(); const id = `${_converse.bare_jid}-converse.vcards`; @@ -139,7 +139,8 @@ converse.plugins.add('converse-vcard', { _converse.api.disco.own.features.add(Strophe.NS.VCARD); }); - _.extend(_converse.api, { + /************************ BEGIN API ************************/ + Object.assign(_converse.api, { /** * The XEP-0054 VCard API * diff --git a/src/headless/dist/converse-headless.js b/src/headless/dist/converse-headless.js index 01e453ec2..87c7d4a2d 100644 --- a/src/headless/dist/converse-headless.js +++ b/src/headless/dist/converse-headless.js @@ -30205,7 +30205,6 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ //# sourceMappingURL=pluggable.js.map - /***/ }), /***/ "./node_modules/process/browser.js": @@ -40994,7 +40993,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha 'type': 'error' }); } else { - const message = this.messages.create(_.extend(this.getOutgoingMessageAttributes(), { + const message = this.messages.create(Object.assign(this.getOutgoingMessageAttributes(), { 'file': true, 'progress': 0, 'slot_request_url': slot_request_url @@ -41092,7 +41091,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha text = this.getMessageBody(stanza) || undefined, chat_state = stanza.getElementsByTagName(_converse.COMPOSING).length && _converse.COMPOSING || stanza.getElementsByTagName(_converse.PAUSED).length && _converse.PAUSED || stanza.getElementsByTagName(_converse.INACTIVE).length && _converse.INACTIVE || stanza.getElementsByTagName(_converse.ACTIVE).length && _converse.ACTIVE || stanza.getElementsByTagName(_converse.GONE).length && _converse.GONE; - const attrs = _.extend({ + const attrs = Object.assign({ 'chat_state': chat_state, 'is_archived': this.isArchived(original_stanza), 'is_delayed': !_.isNil(delay), @@ -41413,11 +41412,10 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha let chatbox = this.get(Strophe.getBareJidFromJid(jid)); if (!chatbox && create) { - _.extend(attrs, { + Object.assign(attrs, { 'jid': jid, 'id': jid }); - chatbox = this.create(attrs, { 'error'(model, response) { _converse.log(response.responseText); @@ -41491,7 +41489,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha /************************ BEGIN API ************************/ - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "chats" namespace (used for one-on-one chats) * @@ -41636,7 +41634,6 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha } }); /************************ END API ************************/ - } }); @@ -41746,9 +41743,7 @@ const _converse = { 'promises': {} }; _converse.VERSION_NAME = "v4.2.0"; - -_lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.extend(_converse, Backbone.Events); // Make converse pluggable - +Object.assign(_converse, Backbone.Events); // Make converse pluggable pluggable_js_dist_pluggable__WEBPACK_IMPORTED_MODULE_8___default.a.enable(_converse, '_converse', 'pluggable'); // Core plugins are whitelisted automatically // These are just the @converse/headless plugins, for the full converse, @@ -44168,7 +44163,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins.add('converse-dis return true; } - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The XEP-0030 service discovery API * @@ -44679,8 +44674,7 @@ function queryForArchivedMessages(_converse, options, callback, errback) { rsm = new Strophe.RSM({ xml: set }); - - _.extend(rsm, _.pick(options, _.concat(MAM_ATTRIBUTES, ['max']))); + Object.assign(rsm, _.pick(options, _.concat(MAM_ATTRIBUTES, ['max']))); } callback(messages, rsm); @@ -44739,7 +44733,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-mam const attrs = this.__super__.getUpdatedMessageAttributes.apply(this, arguments); if (message && !message.get('is_archived')) { - return _.extend(attrs, { + return Object.assign(attrs, { 'is_archived': this.isArchived(stanza) }, this.getStanzaIDs(stanza)); } @@ -44837,7 +44831,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-mam /************************ BEGIN API ************************/ - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The [XEP-0313](https://xmpp.org/extensions/xep-0313.html) Message Archive Management API * @@ -45017,7 +45011,6 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-mam } }); /************************ END API ************************/ - } }); @@ -45681,11 +45674,9 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc }), 'attributes.value') }); const features = await _converse.api.disco.getFeatures(this.get('jid')); - - const attrs = _.extend(_.zipObject(_converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].ROOM_FEATURES, _.map(_converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].ROOM_FEATURES, _.stubFalse)), { + const attrs = Object.assign(_.zipObject(_converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].ROOM_FEATURES, _.map(_converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].ROOM_FEATURES, _.stubFalse)), { 'fetched': moment().format() }); - features.each(feature => { const fieldname = feature.get('var'); @@ -46095,8 +46086,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc } const jid = data.jid || ''; - - const attributes = _.extend(data, { + const attributes = Object.assign(data, { 'jid': Strophe.getBareJidFromJid(jid) || _.get(occupant, 'attributes.jid'), 'resource': Strophe.getResourceFromJid(jid) || _.get(occupant, 'attributes.resource') }); @@ -46438,7 +46428,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc }, initialize(attributes) { - this.set(_.extend({ + this.set(Object.assign({ 'id': _converse.connection.getUniqueId() }, attributes)); this.on('change:image_hash', this.onAvatarChanged, this); @@ -46743,7 +46733,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc // We extend the default converse.js API to add methods specific to MUC groupchats. - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "rooms" namespace groups methods relevant to chatrooms * (aka groupchats). @@ -46924,7 +46914,6 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc } }); /************************ END API ************************/ - } }); @@ -47104,7 +47093,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins.add('converse-pub /************************ BEGIN API ************************/ // We extend the default converse.js API to add methods specific to MUC groupchats. - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * The "pubsub" namespace groups methods relevant to PubSub * @@ -47179,7 +47168,6 @@ _converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins.add('converse-pub } }); /************************ END API ************************/ - } }); @@ -48293,7 +48281,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins // API methods only available to plugins - _.extend(_converse.api, { + Object.assign(_converse.api, { /** * @namespace _converse.api.contacts * @memberOf _converse.api @@ -48521,7 +48509,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins.add('converse-vca return onVCardData(jid, iq); } - /* Event handlers */ + /************************ BEGIN Event Handlers ************************/ _converse.initVCardCollection = function () { @@ -48549,8 +48537,10 @@ _converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins.add('converse-vca _converse.api.listen.on('addClientFeatures', () => { _converse.api.disco.own.features.add(Strophe.NS.VCARD); }); + /************************ BEGIN API ************************/ - _.extend(_converse.api, { + + Object.assign(_converse.api, { /** * The XEP-0054 VCard API *