diff --git a/.eslintrc b/.eslintrc
index 2db58d7dbd0..7cf4fcf95d8 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -39,6 +39,24 @@
"no-inner-declarations": [2, "functions"],
"no-invalid-regexp": 2,
"no-irregular-whitespace": 2,
+ "no-mixed-operators": [2, {
+ "groups": [
+ ["%", "**"],
+ ["%", "+"],
+ ["%", "-"],
+ ["%", "*"],
+ ["%", "/"],
+ ["**", "+"],
+ ["**", "-"],
+ ["**", "*"],
+ ["**", "/"],
+ ["&", "|", "^", "~", "<<", ">>", ">>>"],
+ ["==", "!=", "===", "!==", ">", ">=", "<", "<="],
+ ["&&", "||"],
+ ["in", "instanceof"]
+ ],
+ "allowSamePrecedence": false
+ }],
"no-mixed-spaces-and-tabs": 2,
"no-sparse-arrays": 2,
"no-negated-in-lhs": 2,
@@ -55,6 +73,22 @@
"no-void": 2,
"no-var": 2,
"no-multiple-empty-lines": [2, { "max": 2 }],
+ "no-nested-ternary": 2,
+ "prefer-rest-params": 2,
+ "array-callback-return": 2,
+ "prefer-destructuring": [2, {
+ "VariableDeclarator": {
+ "array": false,
+ "object": true
+ },
+ "AssignmentExpression": {
+ "array": false,
+ "object": false
+ }
+ }, {
+ "enforceForRenamedProperties": false
+ }],
+ "no-duplicate-imports": 2,
"arrow-parens": [2, "always"],
"quote-props": [2, "as-needed"],
"no-array-constructor": 2,
diff --git a/.scripts/logs.js b/.scripts/logs.js
index f39af360123..be65d91454b 100644
--- a/.scripts/logs.js
+++ b/.scripts/logs.js
@@ -75,7 +75,7 @@ function getPRInfo(number, commit) {
.then((commits) => {
info.contributors = _.unique(_.flatten(commits.data.map((i) => {
if (!i.author || !i.committer) {
- return;
+ return null;
}
return [i.author.login, i.committer.login];
diff --git a/.scripts/md.js b/.scripts/md.js
index 315e27772cf..6f927f192cc 100644
--- a/.scripts/md.js
+++ b/.scripts/md.js
@@ -2,7 +2,7 @@ const path = require('path');
const fs = require('fs');
const semver = require('semver');
const _ = require('underscore');
-const execSync = require('child_process').execSync;
+const { execSync } = require('child_process');
const historyDataFile = path.join(__dirname, '../.github/history.json');
const historyManualDataFile = path.join(__dirname, '../.github/history-manual.json');
diff --git a/.scripts/start.js b/.scripts/start.js
index d6347b1524a..3f08b560827 100644
--- a/.scripts/start.js
+++ b/.scripts/start.js
@@ -3,7 +3,7 @@
const path = require('path');
const fs = require('fs');
const extend = require('util')._extend;
-const exec = require('child_process').exec;
+const { exec } = require('child_process');
const processes = [];
const baseDir = path.resolve(__dirname, '..');
diff --git a/imports/message-read-receipt/server/models/ReadReceipts.js b/imports/message-read-receipt/server/models/ReadReceipts.js
index 2c7937c580c..5d62edb1fdd 100644
--- a/imports/message-read-receipt/server/models/ReadReceipts.js
+++ b/imports/message-read-receipt/server/models/ReadReceipts.js
@@ -1,6 +1,6 @@
class ModelReadReceipts extends RocketChat.models._Base {
- constructor() {
- super(...arguments);
+ constructor(...args) {
+ super(...args);
this.tryEnsureIndex({
roomId: 1,
diff --git a/package.json b/package.json
index 198d9611485..99d6f81f6be 100644
--- a/package.json
+++ b/package.json
@@ -63,8 +63,9 @@
"start": "meteor npm i && meteor",
"debug": "meteor run --inspect",
"debug-brk": "meteor run --inspect-brk",
- "lint": "eslint .",
- "lint-fix": "eslint . --fix",
+ "livechat-lint": "eslint ./packages/rocketchat-livechat/.app/",
+ "core-lint": "eslint .",
+ "lint": "npm run core-lint && npm run livechat-lint",
"stylelint": "stylelint packages/**/*.css",
"test": "node .scripts/start.js",
"deploy": "npm run build && pm2 startOrRestart pm2.json",
diff --git a/packages/chatpal-search/server/provider/provider.js b/packages/chatpal-search/server/provider/provider.js
index 46c2e0e68fe..efe4adf2175 100644
--- a/packages/chatpal-search/server/provider/provider.js
+++ b/packages/chatpal-search/server/provider/provider.js
@@ -1,5 +1,4 @@
-import { searchProviderService } from 'meteor/rocketchat:search';
-import { SearchProvider } from 'meteor/rocketchat:search';
+import { searchProviderService, SearchProvider } from 'meteor/rocketchat:search';
import Index from './index';
import ChatpalLogger from '../utils/logger';
diff --git a/packages/meteor-accounts-saml/saml_client.js b/packages/meteor-accounts-saml/saml_client.js
index 31b4f29aca7..6a85fbdbbf6 100644
--- a/packages/meteor-accounts-saml/saml_client.js
+++ b/packages/meteor-accounts-saml/saml_client.js
@@ -20,7 +20,7 @@ const logoutBehaviour = {
ONLY_RC: 'Local',
};
-Meteor.logout = function() {
+Meteor.logout = function(...args) {
const samlService = ServiceConfiguration.configurations.findOne({ service: 'saml' });
if (samlService) {
const provider = samlService.clientConfig && samlService.clientConfig.provider;
@@ -37,7 +37,7 @@ Meteor.logout = function() {
}
}
}
- return MeteorLogout.apply(Meteor, arguments);
+ return MeteorLogout.apply(Meteor, args);
};
const openCenteredPopup = function(url, width, height) {
diff --git a/packages/meteor-accounts-saml/saml_rocketchat.js b/packages/meteor-accounts-saml/saml_rocketchat.js
index a181a1f8ed5..38e006b9dde 100644
--- a/packages/meteor-accounts-saml/saml_rocketchat.js
+++ b/packages/meteor-accounts-saml/saml_rocketchat.js
@@ -164,11 +164,10 @@ const updateServices = debounce(() => {
$set: samlConfigs,
});
return configureSamlService(samlConfigs);
- } else {
- ServiceConfiguration.configurations.remove({
- service: serviceName.toLowerCase(),
- });
}
+ return ServiceConfiguration.configurations.remove({
+ service: serviceName.toLowerCase(),
+ });
}).filter((e) => e);
}, 2000);
diff --git a/packages/meteor-accounts-saml/saml_server.js b/packages/meteor-accounts-saml/saml_server.js
index 22131e54eab..c65c3b85fae 100644
--- a/packages/meteor-accounts-saml/saml_server.js
+++ b/packages/meteor-accounts-saml/saml_server.js
@@ -49,7 +49,7 @@ Meteor.methods({
}, {
'services.saml': 1,
});
- let nameID = user.services.saml.nameID;
+ let { nameID } = user.services.saml;
const sessionIndex = user.services.saml.idpSession;
nameID = sessionIndex;
if (Accounts.saml.settings.debug) {
diff --git a/packages/meteor-accounts-saml/saml_utils.js b/packages/meteor-accounts-saml/saml_utils.js
index 1d1d8ab8949..0f5a599ba7e 100644
--- a/packages/meteor-accounts-saml/saml_utils.js
+++ b/packages/meteor-accounts-saml/saml_utils.js
@@ -15,9 +15,9 @@ SAML = function(options) {
this.options = this.initialize(options);
};
-function debugLog() {
+function debugLog(...args) {
if (Meteor.settings.debug) {
- console.log.apply(this, arguments);
+ console.log.apply(this, args);
}
}
diff --git a/packages/meteor-autocomplete/client/autocomplete-client.js b/packages/meteor-autocomplete/client/autocomplete-client.js
index c9f225a61ce..4ff92bf9d1a 100755
--- a/packages/meteor-autocomplete/client/autocomplete-client.js
+++ b/packages/meteor-autocomplete/client/autocomplete-client.js
@@ -80,7 +80,7 @@ this.AutoComplete = class {
item: '.-autocomplete-item',
...settings.selector,
};
- const rules = this.rules;
+ const { rules } = this;
Object.keys(rules).forEach((key) => {
const rule = rules[key];
diff --git a/packages/rocketchat-2fa/client/TOTPPassword.js b/packages/rocketchat-2fa/client/TOTPPassword.js
index 862a5127484..d8bf6b114bb 100644
--- a/packages/rocketchat-2fa/client/TOTPPassword.js
+++ b/packages/rocketchat-2fa/client/TOTPPassword.js
@@ -37,7 +37,7 @@ Meteor.loginWithPasswordAndTOTP = function(selector, password, code, callback) {
});
};
-const loginWithPassword = Meteor.loginWithPassword;
+const { loginWithPassword } = Meteor;
Meteor.loginWithPassword = function(email, password, cb) {
loginWithPassword(email, password, (error) => {
diff --git a/packages/rocketchat-api/server/api.js b/packages/rocketchat-api/server/api.js
index 8c17cca0834..c93a84cd927 100644
--- a/packages/rocketchat-api/server/api.js
+++ b/packages/rocketchat-api/server/api.js
@@ -139,7 +139,7 @@ class API extends Restivus {
routes = [routes];
}
- const version = this._config.version;
+ const { version } = this._config;
routes.forEach((route) => {
// Note: This is required due to Restivus calling `addRoute` in the constructor of itself
@@ -362,7 +362,7 @@ class API extends Restivus {
}
}
-const getUserAuth = function _getUserAuth() {
+const getUserAuth = function _getUserAuth(...args) {
const invalidResults = [undefined, null, false];
return {
token: 'services.resume.loginTokens.hashedToken',
@@ -375,7 +375,7 @@ const getUserAuth = function _getUserAuth() {
const method = RocketChat.API.v1.authMethods[i];
if (typeof method === 'function') {
- const result = method.apply(this, arguments);
+ const result = method.apply(this, args);
if (!invalidResults.includes(result)) {
return result;
}
diff --git a/packages/rocketchat-api/server/v1/channels.js b/packages/rocketchat-api/server/v1/channels.js
index 50f69a19589..a2177bfc317 100644
--- a/packages/rocketchat-api/server/v1/channels.js
+++ b/packages/rocketchat-api/server/v1/channels.js
@@ -105,7 +105,7 @@ RocketChat.API.v1.addRoute('channels.close', { authRequired: true }, {
RocketChat.API.v1.addRoute('channels.counters', { authRequired: true }, {
get() {
const access = RocketChat.authz.hasPermission(this.userId, 'view-room-administration');
- const userId = this.requestParams().userId;
+ const { userId } = this.requestParams();
let user = this.userId;
let unreads = null;
let userMentions = null;
@@ -174,10 +174,7 @@ function createChannelValidator(params) {
}
function createChannel(userId, params) {
- let readOnly = false;
- if (typeof params.readOnly !== 'undefined') {
- readOnly = params.readOnly;
- }
+ const readOnly = typeof params.readOnly !== 'undefined' ? params.readOnly : false;
let id;
Meteor.runAsUser(userId, () => {
@@ -197,8 +194,7 @@ RocketChat.API.channels.create = {
RocketChat.API.v1.addRoute('channels.create', { authRequired: true }, {
post() {
- const userId = this.userId;
- const bodyParams = this.bodyParams;
+ const { userId, bodyParams } = this;
let error;
@@ -340,20 +336,14 @@ RocketChat.API.v1.addRoute('channels.history', { authRequired: true }, {
oldestDate = new Date(this.queryParams.oldest);
}
- let inclusive = false;
- if (this.queryParams.inclusive) {
- inclusive = this.queryParams.inclusive;
- }
+ const inclusive = this.queryParams.inclusive || false;
let count = 20;
if (this.queryParams.count) {
count = parseInt(this.queryParams.count);
}
- let unreads = false;
- if (this.queryParams.unreads) {
- unreads = this.queryParams.unreads;
- }
+ const unreads = this.queryParams.unreads || false;
let result;
Meteor.runAsUser(this.userId, () => {
diff --git a/packages/rocketchat-api/server/v1/groups.js b/packages/rocketchat-api/server/v1/groups.js
index 2fb5d3af312..6127a8fad5c 100644
--- a/packages/rocketchat-api/server/v1/groups.js
+++ b/packages/rocketchat-api/server/v1/groups.js
@@ -194,10 +194,7 @@ RocketChat.API.v1.addRoute('groups.create', { authRequired: true }, {
return RocketChat.API.v1.failure('Body param "customFields" must be an object if provided');
}
- let readOnly = false;
- if (typeof this.bodyParams.readOnly !== 'undefined') {
- readOnly = this.bodyParams.readOnly;
- }
+ const readOnly = typeof this.bodyParams.readOnly !== 'undefined' ? this.bodyParams.readOnly : false;
let id;
Meteor.runAsUser(this.userId, () => {
@@ -307,20 +304,14 @@ RocketChat.API.v1.addRoute('groups.history', { authRequired: true }, {
oldestDate = new Date(this.queryParams.oldest);
}
- let inclusive = false;
- if (this.queryParams.inclusive) {
- inclusive = this.queryParams.inclusive;
- }
+ const inclusive = this.queryParams.inclusive || false;
let count = 20;
if (this.queryParams.count) {
count = parseInt(this.queryParams.count);
}
- let unreads = false;
- if (this.queryParams.unreads) {
- unreads = this.queryParams.unreads;
- }
+ const unreads = this.queryParams.unreads || false;
let result;
Meteor.runAsUser(this.userId, () => {
diff --git a/packages/rocketchat-api/server/v1/im.js b/packages/rocketchat-api/server/v1/im.js
index c98c3958374..2956500d428 100644
--- a/packages/rocketchat-api/server/v1/im.js
+++ b/packages/rocketchat-api/server/v1/im.js
@@ -68,7 +68,7 @@ RocketChat.API.v1.addRoute(['dm.counters', 'im.counters'], { authRequired: true
user = ruserId;
}
const rs = findDirectMessageRoom(this.requestParams(), { _id: user });
- const room = rs.room;
+ const { room } = rs;
const dm = rs.subscription;
lm = room.lm ? room.lm : room._updatedAt;
@@ -144,20 +144,14 @@ RocketChat.API.v1.addRoute(['dm.history', 'im.history'], { authRequired: true },
oldestDate = new Date(this.queryParams.oldest);
}
- let inclusive = false;
- if (this.queryParams.inclusive) {
- inclusive = this.queryParams.inclusive;
- }
+ const inclusive = this.queryParams.inclusive || false;
let count = 20;
if (this.queryParams.count) {
count = parseInt(this.queryParams.count);
}
- let unreads = false;
- if (this.queryParams.unreads) {
- unreads = this.queryParams.unreads;
- }
+ const unreads = this.queryParams.unreads || false;
let result;
Meteor.runAsUser(this.userId, () => {
@@ -245,7 +239,7 @@ RocketChat.API.v1.addRoute(['dm.messages.others', 'im.messages.others'], { authR
return RocketChat.API.v1.unauthorized();
}
- const roomId = this.queryParams.roomId;
+ const { roomId } = this.queryParams;
if (!roomId || !roomId.trim()) {
throw new Meteor.Error('error-roomid-param-not-provided', 'The parameter "roomId" is required');
}
diff --git a/packages/rocketchat-api/server/v1/integrations.js b/packages/rocketchat-api/server/v1/integrations.js
index cba06102fd6..f0f6db93cfd 100644
--- a/packages/rocketchat-api/server/v1/integrations.js
+++ b/packages/rocketchat-api/server/v1/integrations.js
@@ -49,7 +49,7 @@ RocketChat.API.v1.addRoute('integrations.history', { authRequired: true }, {
return RocketChat.API.v1.failure('Invalid integration id.');
}
- const id = this.queryParams.id;
+ const { id } = this.queryParams;
const { offset, count } = this.getPaginationItems();
const { sort, fields, query } = this.parseJsonQuery();
diff --git a/packages/rocketchat-api/server/v1/rooms.js b/packages/rocketchat-api/server/v1/rooms.js
index aadbab826d0..0071953d414 100644
--- a/packages/rocketchat-api/server/v1/rooms.js
+++ b/packages/rocketchat-api/server/v1/rooms.js
@@ -120,9 +120,11 @@ RocketChat.API.v1.addRoute('rooms.upload/:rid', { authRequired: true }, {
RocketChat.API.v1.addRoute('rooms.saveNotification', { authRequired: true }, {
post() {
const saveNotifications = (notifications, roomId) => {
- Object.keys(notifications).map((notificationKey) => {
- Meteor.runAsUser(this.userId, () => Meteor.call('saveNotificationSettings', roomId, notificationKey, notifications[notificationKey]));
- });
+ Object.keys(notifications).forEach((notificationKey) =>
+ Meteor.runAsUser(this.userId, () =>
+ Meteor.call('saveNotificationSettings', roomId, notificationKey, notifications[notificationKey])
+ )
+ );
};
const { roomId, notifications } = this.bodyParams;
@@ -171,14 +173,18 @@ RocketChat.API.v1.addRoute('rooms.cleanHistory', { authRequired: true }, {
const latest = new Date(this.bodyParams.latest);
const oldest = new Date(this.bodyParams.oldest);
- let inclusive = false;
- if (typeof this.bodyParams.inclusive !== 'undefined') {
- inclusive = this.bodyParams.inclusive;
- }
-
- Meteor.runAsUser(this.userId, () => {
- Meteor.call('cleanRoomHistory', { roomId: findResult._id, latest, oldest, inclusive, limit: this.bodyParams.limit, excludePinned: this.bodyParams.excludePinned, filesOnly: this.bodyParams.filesOnly, fromUsers: this.bodyParams.users });
- });
+ const inclusive = this.bodyParams.inclusive || false;
+
+ Meteor.runAsUser(this.userId, () => Meteor.call('cleanRoomHistory', {
+ roomId: findResult._id,
+ latest,
+ oldest,
+ inclusive,
+ limit: this.bodyParams.limit,
+ excludePinned: this.bodyParams.excludePinned,
+ filesOnly: this.bodyParams.filesOnly,
+ fromUsers: this.bodyParams.users,
+ }));
return RocketChat.API.v1.success();
},
diff --git a/packages/rocketchat-api/server/v1/settings.js b/packages/rocketchat-api/server/v1/settings.js
index 6cf87ca7a23..270b396b4a9 100644
--- a/packages/rocketchat-api/server/v1/settings.js
+++ b/packages/rocketchat-api/server/v1/settings.js
@@ -128,7 +128,7 @@ RocketChat.API.v1.addRoute('settings/:_id', { authRequired: true }, {
RocketChat.API.v1.addRoute('service.configurations', { authRequired: false }, {
get() {
- const ServiceConfiguration = Package['service-configuration'].ServiceConfiguration;
+ const { ServiceConfiguration } = Package['service-configuration'];
return RocketChat.API.v1.success({
configurations: ServiceConfiguration.configurations.find({}, { fields: { secret: 0 } }).fetch(),
diff --git a/packages/rocketchat-api/server/v1/users.js b/packages/rocketchat-api/server/v1/users.js
index 20e381d710d..f5f40dddcee 100644
--- a/packages/rocketchat-api/server/v1/users.js
+++ b/packages/rocketchat-api/server/v1/users.js
@@ -320,7 +320,7 @@ RocketChat.API.v1.addRoute('users.getPreferences', { authRequired: true }, {
get() {
const user = RocketChat.models.Users.findOneById(this.userId);
if (user.settings) {
- const preferences = user.settings.preferences;
+ const { preferences } = user.settings;
preferences.language = user.language;
return RocketChat.API.v1.success({
@@ -379,7 +379,7 @@ RocketChat.API.v1.addRoute('users.setPreferences', { authRequired: true }, {
};
if (this.bodyParams.data.language) {
- const language = this.bodyParams.data.language;
+ const { language } = this.bodyParams.data;
delete this.bodyParams.data.language;
userData.language = language;
}
diff --git a/packages/rocketchat-apps/client/admin/appInstall.js b/packages/rocketchat-apps/client/admin/appInstall.js
index 4282798fd97..498410a3de3 100644
--- a/packages/rocketchat-apps/client/admin/appInstall.js
+++ b/packages/rocketchat-apps/client/admin/appInstall.js
@@ -88,7 +88,7 @@ Template.appInstall.events({
return;
}
- const files = $('#upload-app')[0].files;
+ const { files } = $('#upload-app')[0];
if (!(files instanceof FileList)) {
return;
}
diff --git a/packages/rocketchat-apps/client/admin/apps.js b/packages/rocketchat-apps/client/admin/apps.js
index 667424b7c1e..ac6a08fcb2a 100644
--- a/packages/rocketchat-apps/client/admin/apps.js
+++ b/packages/rocketchat-apps/client/admin/apps.js
@@ -44,6 +44,7 @@ Template.apps.onCreated(function() {
index = i;
return true;
}
+ return false;
});
apps.splice(index, 1);
diff --git a/packages/rocketchat-apps/server/bridges/settings.js b/packages/rocketchat-apps/server/bridges/settings.js
index 347a40ae39a..ef5028f13d3 100644
--- a/packages/rocketchat-apps/server/bridges/settings.js
+++ b/packages/rocketchat-apps/server/bridges/settings.js
@@ -22,9 +22,9 @@ export class AppSettingBridge {
async getAll(appId) {
console.log(`The App ${ appId } is getting all the settings.`);
- return RocketChat.models.Settings.find({ _id: { $nin: this.disallowedSettings } }).fetch().map((s) => {
- this.orch.getConverters().get('settings').convertToApp(s);
- });
+ return RocketChat.models.Settings.find({ _id: { $nin: this.disallowedSettings } })
+ .fetch()
+ .map((s) => this.orch.getConverters().get('settings').convertToApp(s));
}
async getOneById(id, appId) {
diff --git a/packages/rocketchat-apps/server/communication/rest.js b/packages/rocketchat-apps/server/communication/rest.js
index b9e887af5b0..65e8a7bcd95 100644
--- a/packages/rocketchat-apps/server/communication/rest.js
+++ b/packages/rocketchat-apps/server/communication/rest.js
@@ -256,7 +256,7 @@ export class AppsRestApi {
return RocketChat.API.v1.notFound(`No App found by the id of: ${ this.urlParams.id }`);
}
- const settings = prl.getStorageItem().settings;
+ const { settings } = prl.getStorageItem();
const updated = [];
this.bodyParams.settings.forEach((s) => {
diff --git a/packages/rocketchat-apps/server/storage/logs-storage.js b/packages/rocketchat-apps/server/storage/logs-storage.js
index d499b930cfc..78ef627ba59 100644
--- a/packages/rocketchat-apps/server/storage/logs-storage.js
+++ b/packages/rocketchat-apps/server/storage/logs-storage.js
@@ -7,12 +7,12 @@ export class AppRealLogsStorage extends AppLogStorage {
this.db = model;
}
- find() {
+ find(...args) {
return new Promise((resolve, reject) => {
let docs;
try {
- docs = this.db.find(...arguments).fetch();
+ docs = this.db.find(...args).fetch();
} catch (e) {
return reject(e);
}
diff --git a/packages/rocketchat-assets/server/assets.js b/packages/rocketchat-assets/server/assets.js
index 2a83db30396..b75243180c7 100644
--- a/packages/rocketchat-assets/server/assets.js
+++ b/packages/rocketchat-assets/server/assets.js
@@ -352,7 +352,7 @@ Meteor.startup(function() {
}, 200);
});
-const calculateClientHash = WebAppHashing.calculateClientHash;
+const { calculateClientHash } = WebAppHashing;
WebAppHashing.calculateClientHash = function(manifest, includeFilter, runtimeConfigOverride) {
for (const key of Object.keys(assets)) {
diff --git a/packages/rocketchat-authorization/server/models/Permissions.js b/packages/rocketchat-authorization/server/models/Permissions.js
index 80d875ec70c..0e84bf19c25 100644
--- a/packages/rocketchat-authorization/server/models/Permissions.js
+++ b/packages/rocketchat-authorization/server/models/Permissions.js
@@ -1,6 +1,6 @@
class ModelPermissions extends RocketChat.models._Base {
- constructor() {
- super(...arguments);
+ constructor(...args) {
+ super(...args);
}
// FIND
diff --git a/packages/rocketchat-authorization/server/models/Roles.js b/packages/rocketchat-authorization/server/models/Roles.js
index 2f15a8c0fe7..b57261411af 100644
--- a/packages/rocketchat-authorization/server/models/Roles.js
+++ b/packages/rocketchat-authorization/server/models/Roles.js
@@ -1,6 +1,6 @@
class ModelRoles extends RocketChat.models._Base {
- constructor() {
- super(...arguments);
+ constructor(...args) {
+ super(...args);
this.tryEnsureIndex({ name: 1 });
this.tryEnsureIndex({ scope: 1 });
}
diff --git a/packages/rocketchat-autotranslate/client/lib/autotranslate.js b/packages/rocketchat-autotranslate/client/lib/autotranslate.js
index 6f1fb0f1e3b..d4c7c47788e 100644
--- a/packages/rocketchat-autotranslate/client/lib/autotranslate.js
+++ b/packages/rocketchat-autotranslate/client/lib/autotranslate.js
@@ -9,7 +9,7 @@ RocketChat.AutoTranslate = {
if (rid) {
subscription = RocketChat.models.Subscriptions.findOne({ rid }, { fields: { autoTranslateLanguage: 1 } });
}
- const language = subscription && subscription.autoTranslateLanguage || Meteor.user().language || window.defaultUserLanguage();
+ const language = (subscription && subscription.autoTranslateLanguage) || Meteor.user().language || window.defaultUserLanguage();
if (language.indexOf('-') !== -1) {
if (!_.findWhere(this.supportedLanguages, { language })) {
return language.substr(0, 2);
diff --git a/packages/rocketchat-autotranslate/client/views/autoTranslateFlexTab.js b/packages/rocketchat-autotranslate/client/views/autoTranslateFlexTab.js
index 0324e432b3f..47f3feb7d8c 100644
--- a/packages/rocketchat-autotranslate/client/views/autoTranslateFlexTab.js
+++ b/packages/rocketchat-autotranslate/client/views/autoTranslateFlexTab.js
@@ -33,7 +33,7 @@ Template.autoTranslateFlexTab.helpers({
autoTranslateLanguage: 1,
},
});
- const autoTranslateLanguage = sub && sub.autoTranslateLanguage || Meteor.user().language || window.defaultUserLanguage() || '';
+ const autoTranslateLanguage = (sub && sub.autoTranslateLanguage) || Meteor.user().language || window.defaultUserLanguage() || '';
const supportedLanguages = Template.instance().supportedLanguages.get();
let language = _.findWhere(supportedLanguages, { language: autoTranslateLanguage });
if (language) {
diff --git a/packages/rocketchat-autotranslate/server/autotranslate.js b/packages/rocketchat-autotranslate/server/autotranslate.js
index 543a86a6eba..75a637fa043 100644
--- a/packages/rocketchat-autotranslate/server/autotranslate.js
+++ b/packages/rocketchat-autotranslate/server/autotranslate.js
@@ -93,7 +93,7 @@ class AutoTranslate {
for (const tokenIndex in message.tokens) {
if (message.tokens.hasOwnProperty(tokenIndex)) {
- const token = message.tokens[tokenIndex].token;
+ const { token } = message.tokens[tokenIndex];
if (token.indexOf('notranslate') === -1) {
const newToken = `{${ count++ }}`;
message.msg = message.msg.replace(token, newToken);
diff --git a/packages/rocketchat-channel-settings-mail-messages/client/views/mailMessagesInstructions.js b/packages/rocketchat-channel-settings-mail-messages/client/views/mailMessagesInstructions.js
index 0d883659f63..3fd4e2a39de 100644
--- a/packages/rocketchat-channel-settings-mail-messages/client/views/mailMessagesInstructions.js
+++ b/packages/rocketchat-channel-settings-mail-messages/client/views/mailMessagesInstructions.js
@@ -111,10 +111,8 @@ Template.mailMessagesInstructions.events({
t.reset(true);
},
'click .js-send'(e, instance) {
- const selectedUsers = instance.selectedUsers;
- const selectedEmails = instance.selectedEmails;
+ const { selectedUsers, selectedEmails, selectedMessages } = instance;
const $emailsInput = instance.$('[name="emails"]');
- const selectedMessages = instance.selectedMessages;
const subject = instance.$('[name="subject"]').val();
if (!selectedUsers.get().length && !selectedEmails.get().length && $emailsInput.val().trim() === '') {
@@ -171,7 +169,7 @@ Template.mailMessagesInstructions.events({
'input [name="users"]'(e, t) {
const input = e.target;
const position = input.selectionEnd || input.selectionStart;
- const length = input.value.length;
+ const { length } = input.value;
const modified = filterNames(input.value);
input.value = modified;
document.activeElement === input && e && /input/i.test(e.type) && (input.selectionEnd = position + input.value.length - length);
@@ -229,10 +227,10 @@ Template.mailMessagesInstructions.onRendered(function() {
users.set(usersArr);
});
- const selectedMessages = this.selectedMessages;
+ const { selectedMessages } = this;
$('.messages-box .message').on('click', function() {
- const id = this.id;
+ const { id } = this;
const messages = selectedMessages.get();
if ($(this).hasClass('selected')) {
diff --git a/packages/rocketchat-channel-settings/client/views/channelSettings.js b/packages/rocketchat-channel-settings/client/views/channelSettings.js
index 4cf54d7f26d..1512aa25ccf 100644
--- a/packages/rocketchat-channel-settings/client/views/channelSettings.js
+++ b/packages/rocketchat-channel-settings/client/views/channelSettings.js
@@ -150,13 +150,15 @@ Template.channelSettingsEditing.events({
value: 'disabled',
}];
- const value = this.value.get() ? 'enabled' : this.value.get() === false ? 'disabled' : 'default';
+ const falseOrDisabled = this.value.get() === false ? 'disabled' : 'default';
+ const value = this.value.get() ? 'enabled' : falseOrDisabled;
const config = {
popoverClass: 'notifications-preferences',
template: 'pushNotificationsPopover',
data: {
change : (value) => {
- const realValue = value === 'enabled' ? true : value === 'disabled' ? false : undefined;
+ const falseOrUndefined = value === 'disabled' ? false : undefined;
+ const realValue = value === 'enabled' ? true : falseOrUndefined;
return this.value.set(realValue);
},
value,
@@ -695,7 +697,7 @@ Template.channelSettingsEditing.helpers({
},
retentionEnabled(value) {
const { room } = Template.instance();
- return value || value === undefined && retentionEnabled(room);
+ return (value || value === undefined) && retentionEnabled(room);
},
retentionMaxAgeLabel(label) {
const { room } = Template.instance();
diff --git a/packages/rocketchat-channel-settings/server/functions/saveRoomType.js b/packages/rocketchat-channel-settings/server/functions/saveRoomType.js
index b11341d88a1..a4319609dbd 100644
--- a/packages/rocketchat-channel-settings/server/functions/saveRoomType.js
+++ b/packages/rocketchat-channel-settings/server/functions/saveRoomType.js
@@ -28,11 +28,11 @@ RocketChat.saveRoomType = function(rid, roomType, user, sendMessage = true) {
let message;
if (roomType === 'c') {
message = TAPi18n.__('Channel', {
- lng: user && user.language || RocketChat.settings.get('language') || 'en',
+ lng: (user && user.language) || RocketChat.settings.get('language') || 'en',
});
} else {
message = TAPi18n.__('Private_Group', {
- lng: user && user.language || RocketChat.settings.get('language') || 'en',
+ lng: (user && user.language) || RocketChat.settings.get('language') || 'en',
});
}
RocketChat.models.Messages.createRoomSettingsChangedWithTypeRoomIdMessageAndUser('room_changed_privacy', rid, message, user);
diff --git a/packages/rocketchat-cors/cors.js b/packages/rocketchat-cors/cors.js
index a75a2e4629a..33bfeaed106 100644
--- a/packages/rocketchat-cors/cors.js
+++ b/packages/rocketchat-cors/cors.js
@@ -65,12 +65,12 @@ WebApp.rawConnectHandlers.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
}
- const setHeader = res.setHeader;
- res.setHeader = function(key, val) {
+ const { setHeader } = res;
+ res.setHeader = function(key, val, ...args) {
if (key.toLowerCase() === 'access-control-allow-origin' && val === 'http://meteor.local') {
return;
}
- return setHeader.apply(this, arguments);
+ return setHeader.apply(this, [key, val, ...args]);
};
return next();
});
@@ -86,10 +86,10 @@ const oldHttpServerListeners = WebApp.httpServer.listeners('request').slice(0);
WebApp.httpServer.removeAllListeners('request');
-WebApp.httpServer.addListener('request', function(req, res) {
+WebApp.httpServer.addListener('request', function(req, res, ...args) {
const next = () => {
for (const oldListener of oldHttpServerListeners) {
- oldListener.apply(WebApp.httpServer, arguments);
+ oldListener.apply(WebApp.httpServer, [req, res, ...args]);
}
};
diff --git a/packages/rocketchat-crowd/client/loginHelper.js b/packages/rocketchat-crowd/client/loginHelper.js
index 188e7f02941..3767f50ccd4 100644
--- a/packages/rocketchat-crowd/client/loginHelper.js
+++ b/packages/rocketchat-crowd/client/loginHelper.js
@@ -1,12 +1,9 @@
-Meteor.loginWithCrowd = function(username, password, callback) {
- // Retrieve arguments as array
- const args = [];
- for (let i = 0; i < arguments.length; i++) {
- args.push(arguments[i]);
- }
+Meteor.loginWithCrowd = function(...args) {
// Pull username and password
- username = args.shift();
- password = args.shift();
+ const username = args.shift();
+ const password = args.shift();
+ const callback = args.shift();
+
const loginRequest = {
crowd: true,
username,
@@ -15,12 +12,11 @@ Meteor.loginWithCrowd = function(username, password, callback) {
Accounts.callLoginMethod({
methodArguments: [loginRequest],
userCallback(error) {
- if (error) {
- if (callback) {
- callback(error);
+ if (callback) {
+ if (error) {
+ return callback(error);
}
- } else if (callback) {
- callback();
+ return callback();
}
},
});
diff --git a/packages/rocketchat-custom-oauth/server/custom_oauth_server.js b/packages/rocketchat-custom-oauth/server/custom_oauth_server.js
index eb5d4326e86..416f87128ad 100644
--- a/packages/rocketchat-custom-oauth/server/custom_oauth_server.js
+++ b/packages/rocketchat-custom-oauth/server/custom_oauth_server.js
@@ -326,11 +326,11 @@ export class CustomOAuth {
}
-const updateOrCreateUserFromExternalService = Accounts.updateOrCreateUserFromExternalService;
-Accounts.updateOrCreateUserFromExternalService = function(/* serviceName, serviceData, options*/) {
+const { updateOrCreateUserFromExternalService } = Accounts;
+Accounts.updateOrCreateUserFromExternalService = function(...args /* serviceName, serviceData, options*/) {
for (const hook of BeforeUpdateOrCreateUserFromExternalService) {
- hook.apply(this, arguments);
+ hook.apply(this, args);
}
- return updateOrCreateUserFromExternalService.apply(this, arguments);
+ return updateOrCreateUserFromExternalService.apply(this, args);
};
diff --git a/packages/rocketchat-custom-sounds/client/admin/soundEdit.js b/packages/rocketchat-custom-sounds/client/admin/soundEdit.js
index 99d4ae1e47d..adfad401baf 100644
--- a/packages/rocketchat-custom-sounds/client/admin/soundEdit.js
+++ b/packages/rocketchat-custom-sounds/client/admin/soundEdit.js
@@ -27,7 +27,7 @@ Template.soundEdit.events({
'change input[type=file]'(ev) {
const e = (ev.originalEvent != null) ? ev.originalEvent : ev;
- let files = e.target.files;
+ let { files } = e.target;
if (e.target.files == null || files.length === 0) {
if (e.dataTransfer.files != null) {
files = e.dataTransfer.files;
diff --git a/packages/rocketchat-custom-sounds/client/admin/soundInfo.js b/packages/rocketchat-custom-sounds/client/admin/soundInfo.js
index 3c05661e44f..ca40311d815 100644
--- a/packages/rocketchat-custom-sounds/client/admin/soundInfo.js
+++ b/packages/rocketchat-custom-sounds/client/admin/soundInfo.js
@@ -38,7 +38,7 @@ Template.soundInfo.events({
e.preventDefault();
const sound = instance.sound.get();
if (sound != null) {
- const _id = sound._id;
+ const { _id } = sound;
modal.open({
title: t('Are_you_sure'),
text: t('Custom_Sound_Delete_Warning'),
diff --git a/packages/rocketchat-emoji-custom/admin/emojiEdit.js b/packages/rocketchat-emoji-custom/admin/emojiEdit.js
index f7f20b9d854..b6b12d5701f 100644
--- a/packages/rocketchat-emoji-custom/admin/emojiEdit.js
+++ b/packages/rocketchat-emoji-custom/admin/emojiEdit.js
@@ -27,7 +27,7 @@ Template.emojiEdit.events({
'change input[type=file]'(ev) {
const e = ev.originalEvent != null ? ev.originalEvent : ev;
- let files = e.target.files;
+ let { files } = e.target;
if (files == null || files.length === 0) {
if (e.dataTransfer != null && e.dataTransfer.files != null) {
files = e.dataTransfer.files;
diff --git a/packages/rocketchat-emoji-custom/admin/emojiInfo.js b/packages/rocketchat-emoji-custom/admin/emojiInfo.js
index 76574f0b6c2..17ca686acfb 100644
--- a/packages/rocketchat-emoji-custom/admin/emojiInfo.js
+++ b/packages/rocketchat-emoji-custom/admin/emojiInfo.js
@@ -46,7 +46,7 @@ Template.emojiInfo.events({
e.preventDefault();
const emoji = instance.emoji.get();
if (emoji != null) {
- const _id = emoji._id;
+ const { _id } = emoji;
modal.open({
title: t('Are_you_sure'),
text: t('Custom_Emoji_Delete_Warning'),
diff --git a/packages/rocketchat-emoji/client/emojiPicker.js b/packages/rocketchat-emoji/client/emojiPicker.js
index 49497f89814..31094181ae5 100644
--- a/packages/rocketchat-emoji/client/emojiPicker.js
+++ b/packages/rocketchat-emoji/client/emojiPicker.js
@@ -65,7 +65,7 @@ function getEmojisBySearchTerm(searchTerm) {
if (searchRegExp.test(emoji)) {
const emojiObject = RocketChat.emoji.list[emoji];
- const emojiPackage = emojiObject.emojiPackage;
+ const { emojiPackage } = emojiObject;
let tone = '';
emoji = emoji.replace(/:/g, '');
@@ -228,7 +228,7 @@ Template.emojiPicker.events({
'click .emoji-list li'(event, instance) {
event.stopPropagation();
- const emoji = event.currentTarget.dataset.emoji;
+ const { emoji } = event.currentTarget.dataset;
const actualTone = instance.tone;
let tone = '';
diff --git a/packages/rocketchat-emoji/client/lib/EmojiPicker.js b/packages/rocketchat-emoji/client/lib/EmojiPicker.js
index 12f18daf35c..e305ce3f208 100644
--- a/packages/rocketchat-emoji/client/lib/EmojiPicker.js
+++ b/packages/rocketchat-emoji/client/lib/EmojiPicker.js
@@ -57,8 +57,7 @@ RocketChat.EmojiPicker = {
const windowHeight = window.innerHeight;
const windowBorder = 10;
const sourcePos = $(this.source).offset();
- const left = sourcePos.left;
- const top = sourcePos.top;
+ const { left, top } = sourcePos;
const cssProperties = { top, left };
if (top + this.height >= windowHeight) {
diff --git a/packages/rocketchat-emoji/client/lib/emojiRenderer.js b/packages/rocketchat-emoji/client/lib/emojiRenderer.js
index 2f91e74ea4d..6e70f4d28c7 100644
--- a/packages/rocketchat-emoji/client/lib/emojiRenderer.js
+++ b/packages/rocketchat-emoji/client/lib/emojiRenderer.js
@@ -1,7 +1,7 @@
/* globals HTML, isSetNotNull, renderEmoji:true */
renderEmoji = function(emoji) {
if (isSetNotNull(() => RocketChat.emoji.list[emoji].emojiPackage)) {
- const emojiPackage = RocketChat.emoji.list[emoji].emojiPackage;
+ const { emojiPackage } = RocketChat.emoji.list[emoji];
return RocketChat.emoji.packages[emojiPackage].render(emoji);
}
};
@@ -13,7 +13,7 @@ Template.registerHelper('renderEmoji', new Template('renderEmoji', function() {
const emoji = Blaze.getData(view);
if (isSetNotNull(() => RocketChat.emoji.list[emoji].emojiPackage)) {
- const emojiPackage = RocketChat.emoji.list[emoji].emojiPackage;
+ const { emojiPackage } = RocketChat.emoji.list[emoji];
return new HTML.Raw(RocketChat.emoji.packages[emojiPackage].render(emoji));
}
diff --git a/packages/rocketchat-error-handler/server/lib/RocketChat.ErrorHandler.js b/packages/rocketchat-error-handler/server/lib/RocketChat.ErrorHandler.js
index 08e557b4d8f..4a8b611259e 100644
--- a/packages/rocketchat-error-handler/server/lib/RocketChat.ErrorHandler.js
+++ b/packages/rocketchat-error-handler/server/lib/RocketChat.ErrorHandler.js
@@ -33,12 +33,12 @@ class ErrorHandler {
const self = this;
const originalMeteorDebug = Meteor._debug;
- Meteor._debug = function(message, stack) {
+ Meteor._debug = function(message, stack, ...args) {
if (!self.reporting) {
return originalMeteorDebug.call(this, message, stack);
}
self.trackError(message, stack);
- return originalMeteorDebug.apply(this, arguments);
+ return originalMeteorDebug.apply(this, [message, stack, ...args]);
};
}
diff --git a/packages/rocketchat-file-upload/server/lib/FileUpload.js b/packages/rocketchat-file-upload/server/lib/FileUpload.js
index 40d7f2c63a4..a5e0ce2d360 100644
--- a/packages/rocketchat-file-upload/server/lib/FileUpload.js
+++ b/packages/rocketchat-file-upload/server/lib/FileUpload.js
@@ -112,7 +112,7 @@ Object.assign(FileUpload, {
if (err != null) {
console.error(err);
}
- const size = fs.lstatSync(tempFilePath).size;
+ const { size } = fs.lstatSync(tempFilePath);
this.getCollection().direct.update({ _id: file._id }, { $set: { size } });
future.return();
}));
@@ -170,7 +170,7 @@ Object.assign(FileUpload, {
.then(Meteor.bindEnvironment(() => {
fs.unlink(tmpFile, Meteor.bindEnvironment(() => {
fs.rename(`${ tmpFile }.tmp`, tmpFile, Meteor.bindEnvironment(() => {
- const size = fs.lstatSync(tmpFile).size;
+ const { size } = fs.lstatSync(tmpFile);
this.getCollection().direct.update({ _id: file._id }, {
$set: {
size,
diff --git a/packages/rocketchat-file/file.server.js b/packages/rocketchat-file/file.server.js
index 0426a1e48eb..bb36379426f 100644
--- a/packages/rocketchat-file/file.server.js
+++ b/packages/rocketchat-file/file.server.js
@@ -38,7 +38,7 @@ RocketChatFile.GridFS = class {
this.name = name;
this.transformWrite = transformWrite;
const mongo = Package.mongo.MongoInternals.NpmModule;
- const db = Package.mongo.MongoInternals.defaultRemoteCollectionDriver().mongo.db;
+ const { db } = Package.mongo.MongoInternals.defaultRemoteCollectionDriver().mongo;
this.store = new Grid(db, mongo);
this.findOneSync = Meteor.wrapAsync(this.store.collection(this.name).findOne.bind(this.store.collection(this.name)));
this.removeSync = Meteor.wrapAsync(this.store.remove.bind(this.store));
diff --git a/packages/rocketchat-graphql/server/mocks/accounts/graphql-api.js b/packages/rocketchat-graphql/server/mocks/accounts/graphql-api.js
index b94a295187f..764bce7a35d 100644
--- a/packages/rocketchat-graphql/server/mocks/accounts/graphql-api.js
+++ b/packages/rocketchat-graphql/server/mocks/accounts/graphql-api.js
@@ -5,7 +5,7 @@
// See: https://github.com/meteor/meteor/blob/a362e20a37547362b581fed52f7171d022e83b62/packages/promise/server.js
// Opened issue: https://github.com/js-accounts/graphql/issues/16
export const authenticated = (Accounts, func) => (async(root, args, context, info) => {
- const authToken = context.authToken;
+ const { authToken } = context;
if (!authToken || authToken === '' || authToken === null) {
throw new Error('Unable to find authorization token in request');
diff --git a/packages/rocketchat-iframe-login/iframe_client.js b/packages/rocketchat-iframe-login/iframe_client.js
index 42ac806a767..fc883fd3819 100644
--- a/packages/rocketchat-iframe-login/iframe_client.js
+++ b/packages/rocketchat-iframe-login/iframe_client.js
@@ -2,10 +2,10 @@
import _ from 'underscore';
-const _unstoreLoginToken = Accounts._unstoreLoginToken;
-Accounts._unstoreLoginToken = function() {
+const { _unstoreLoginToken } = Accounts;
+Accounts._unstoreLoginToken = function(...args) {
RocketChat.iframeLogin.tryLogin();
- _unstoreLoginToken.apply(Accounts, arguments);
+ _unstoreLoginToken.apply(Accounts, args);
};
class IframeLogin {
@@ -54,7 +54,7 @@ class IframeLogin {
},
};
- let iframeUrl = this.iframeUrl;
+ let { iframeUrl } = this;
let separator = '?';
if (iframeUrl.indexOf('?') > -1) {
separator = '&';
diff --git a/packages/rocketchat-importer-hipchat/server/importer.js b/packages/rocketchat-importer-hipchat/server/importer.js
index f9c5ff64ab9..6f11bd2b499 100644
--- a/packages/rocketchat-importer-hipchat/server/importer.js
+++ b/packages/rocketchat-importer-hipchat/server/importer.js
@@ -23,7 +23,7 @@ export class HipChatImporter extends Base {
prepare(dataURI, sentContentType, fileName) {
super.prepare(dataURI, sentContentType, fileName);
- const image = RocketChatFile.dataURIParse(dataURI).image;
+ const { image } = RocketChatFile.dataURIParse(dataURI);
// const contentType = ref.contentType;
const zip = new this.AdmZip(new Buffer(image, 'base64'));
const zipEntries = zip.getEntries();
diff --git a/packages/rocketchat-importer/client/admin/adminImportPrepare.js b/packages/rocketchat-importer/client/admin/adminImportPrepare.js
index edfdaa0560b..164aa85eb81 100644
--- a/packages/rocketchat-importer/client/admin/adminImportPrepare.js
+++ b/packages/rocketchat-importer/client/admin/adminImportPrepare.js
@@ -38,7 +38,7 @@ Template.adminImportPrepare.events({
files = (e.dataTransfer != null ? e.dataTransfer.files : undefined) || [];
}
- return Array.from(files).map((file) => {
+ Array.from(files).forEach((file) => {
template.preparing.set(true);
const reader = new FileReader();
diff --git a/packages/rocketchat-integrations/server/lib/triggerHandler.js b/packages/rocketchat-integrations/server/lib/triggerHandler.js
index e84a9d4ff34..03037c94877 100644
--- a/packages/rocketchat-integrations/server/lib/triggerHandler.js
+++ b/packages/rocketchat-integrations/server/lib/triggerHandler.js
@@ -342,48 +342,48 @@ RocketChat.integrations.triggerHandler = new class RocketChatIntegrationHandler
}
}
- eventNameArgumentsToObject() {
+ eventNameArgumentsToObject(...args) {
const argObject = {
- event: arguments[0],
+ event: args[0],
};
switch (argObject.event) {
case 'sendMessage':
- if (arguments.length >= 3) {
- argObject.message = arguments[1];
- argObject.room = arguments[2];
+ if (args.length >= 3) {
+ argObject.message = args[1];
+ argObject.room = args[2];
}
break;
case 'fileUploaded':
- if (arguments.length >= 2) {
- const arghhh = arguments[1];
+ if (args.length >= 2) {
+ const arghhh = args[1];
argObject.user = arghhh.user;
argObject.room = arghhh.room;
argObject.message = arghhh.message;
}
break;
case 'roomArchived':
- if (arguments.length >= 3) {
- argObject.room = arguments[1];
- argObject.user = arguments[2];
+ if (args.length >= 3) {
+ argObject.room = args[1];
+ argObject.user = args[2];
}
break;
case 'roomCreated':
- if (arguments.length >= 3) {
- argObject.owner = arguments[1];
- argObject.room = arguments[2];
+ if (args.length >= 3) {
+ argObject.owner = args[1];
+ argObject.room = args[2];
}
break;
case 'roomJoined':
case 'roomLeft':
- if (arguments.length >= 3) {
- argObject.user = arguments[1];
- argObject.room = arguments[2];
+ if (args.length >= 3) {
+ argObject.user = args[1];
+ argObject.room = args[2];
}
break;
case 'userCreated':
- if (arguments.length >= 2) {
- argObject.user = arguments[1];
+ if (args.length >= 2) {
+ argObject.user = args[1];
}
break;
default:
@@ -479,10 +479,10 @@ RocketChat.integrations.triggerHandler = new class RocketChatIntegrationHandler
}
}
- executeTriggers() {
- logger.outgoing.debug('Execute Trigger:', arguments[0]);
+ executeTriggers(...args) {
+ logger.outgoing.debug('Execute Trigger:', args[0]);
- const argObject = this.eventNameArgumentsToObject(...arguments);
+ const argObject = this.eventNameArgumentsToObject(...args);
const { event, message, room } = argObject;
// Each type of event should have an event and a room attached, otherwise we
@@ -793,7 +793,7 @@ RocketChat.integrations.triggerHandler = new class RocketChatIntegrationHandler
throw new Meteor.Error('history-data-must-be-defined', 'The history data must be defined to replay an integration.');
}
- const event = history.event;
+ const { event } = history;
const message = RocketChat.models.Messages.findOneById(history.data.message_id);
const room = RocketChat.models.Rooms.findOneById(history.data.channel_id);
const user = RocketChat.models.Users.findOneById(history.data.user_id);
diff --git a/packages/rocketchat-integrations/server/triggers.js b/packages/rocketchat-integrations/server/triggers.js
index ce0ebdbedda..1960615f602 100644
--- a/packages/rocketchat-integrations/server/triggers.js
+++ b/packages/rocketchat-integrations/server/triggers.js
@@ -1,6 +1,6 @@
const callbackHandler = function _callbackHandler(eventType) {
- return function _wrapperFunction() {
- return RocketChat.integrations.triggerHandler.executeTriggers(eventType, ...arguments);
+ return function _wrapperFunction(...args) {
+ return RocketChat.integrations.triggerHandler.executeTriggers(eventType, ...args);
};
};
diff --git a/packages/rocketchat-katex/katex.js b/packages/rocketchat-katex/katex.js
index 55522a7d638..de1cad4c873 100644
--- a/packages/rocketchat-katex/katex.js
+++ b/packages/rocketchat-katex/katex.js
@@ -101,7 +101,7 @@ class Katex {
const outer = new Boundary;
// The closing delimiter matching to the opening one
- const closer = opening_delimiter_match.options.closer;
+ const { closer } = opening_delimiter_match.options;
outer.start = opening_delimiter_match.pos;
inner.start = opening_delimiter_match.pos + closer.length;
diff --git a/packages/rocketchat-ldap/client/loginHelper.js b/packages/rocketchat-ldap/client/loginHelper.js
index 67c7feb3521..3fe0d15a9da 100644
--- a/packages/rocketchat-ldap/client/loginHelper.js
+++ b/packages/rocketchat-ldap/client/loginHelper.js
@@ -2,30 +2,17 @@
// customLdapOptions should be passed in if you want to override LDAP_DEFAULTS
// on any particular call (if you have multiple ldap servers you'd like to connect to)
// You'll likely want to set the dn value here {dn: "..."}
-Meteor.loginWithLDAP = function(username, password, customLdapOptions, callback) {
- // Retrieve arguments as array
- const args = [];
- for (let i = 0; i < arguments.length; i++) {
- args.push(arguments[i]);
- }
+Meteor.loginWithLDAP = function(...args) {
// Pull username and password
- username = args.shift();
- password = args.shift();
+ const username = args.shift();
+ const password = args.shift();
// Check if last argument is a function
// if it is, pop it off and set callback to it
- if (typeof args[args.length - 1] === 'function') {
- callback = args.pop();
- } else {
- callback = null;
- }
+ const callback = typeof args[args.length - 1] === 'function' ? args.pop() : null;
// if args still holds options item, grab it
- if (args.length > 0) {
- customLdapOptions = args.shift();
- } else {
- customLdapOptions = {};
- }
+ const customLdapOptions = args.length > 0 ? args.shift() : {};
// Set up loginRequest object
const loginRequest = {
diff --git a/packages/rocketchat-ldap/server/sync.js b/packages/rocketchat-ldap/server/sync.js
index 18b6130b358..000da3b5848 100644
--- a/packages/rocketchat-ldap/server/sync.js
+++ b/packages/rocketchat-ldap/server/sync.js
@@ -129,11 +129,11 @@ export function getDataToSyncUserData(ldapUser, user) {
// TODO: Find a better solution.
const dKeys = userField.split('.');
const lastKey = _.last(dKeys);
- _.reduce(dKeys, (obj, currKey) =>
- ((currKey === lastKey)
+ _.reduce(dKeys, (obj, currKey) => (
+ (currKey === lastKey)
? obj[currKey] = tmpLdapField
- : obj[currKey] = obj[currKey] || {})
- , userData);
+ : obj[currKey] = obj[currKey] || {}
+ ), userData);
logger.debug(`user.${ userField } changed to: ${ tmpLdapField }`);
}
}
diff --git a/packages/rocketchat-lib/client/Notifications.js b/packages/rocketchat-lib/client/Notifications.js
index dbba3281ec3..4b8a5470e6f 100644
--- a/packages/rocketchat-lib/client/Notifications.js
+++ b/packages/rocketchat-lib/client/Notifications.js
@@ -1,5 +1,5 @@
RocketChat.Notifications = new class {
- constructor() {
+ constructor(...args) {
this.logged = Meteor.userId() !== null;
this.loginCb = [];
Tracker.autorun(() => {
@@ -16,10 +16,10 @@ RocketChat.Notifications = new class {
this.streamUser = new Meteor.Streamer('notify-user');
if (this.debug === true) {
this.onAll(function() {
- return console.log('RocketChat.Notifications: onAll', arguments);
+ return console.log('RocketChat.Notifications: onAll', args);
});
this.onUser(function() {
- return console.log('RocketChat.Notifications: onAll', arguments);
+ return console.log('RocketChat.Notifications: onAll', args);
});
}
}
@@ -32,21 +32,21 @@ RocketChat.Notifications = new class {
}
notifyRoom(room, eventName, ...args) {
if (this.debug === true) {
- console.log('RocketChat.Notifications: notifyRoom', arguments);
+ console.log('RocketChat.Notifications: notifyRoom', [room, eventName, ...args]);
}
args.unshift(`${ room }/${ eventName }`);
return this.streamRoom.emit.apply(this.streamRoom, args);
}
notifyUser(userId, eventName, ...args) {
if (this.debug === true) {
- console.log('RocketChat.Notifications: notifyUser', arguments);
+ console.log('RocketChat.Notifications: notifyUser', [userId, eventName, ...args]);
}
args.unshift(`${ userId }/${ eventName }`);
return this.streamUser.emit.apply(this.streamUser, args);
}
notifyUsersOfRoom(room, eventName, ...args) {
if (this.debug === true) {
- console.log('RocketChat.Notifications: notifyUsersOfRoom', arguments);
+ console.log('RocketChat.Notifications: notifyUsersOfRoom', [room, eventName, ...args]);
}
args.unshift(`${ room }/${ eventName }`);
return this.streamRoomUsers.emit.apply(this.streamRoomUsers, args);
@@ -60,7 +60,7 @@ RocketChat.Notifications = new class {
onRoom(room, eventName, callback) {
if (this.debug === true) {
this.streamRoom.on(room, function() {
- return console.log(`RocketChat.Notifications: onRoom ${ room }`, arguments);
+ return console.log(`RocketChat.Notifications: onRoom ${ room }`, [room, eventName, callback]);
});
}
return this.streamRoom.on(`${ room }/${ eventName }`, callback);
diff --git a/packages/rocketchat-lib/client/lib/cachedCollection.js b/packages/rocketchat-lib/client/lib/cachedCollection.js
index 5c043be7d68..aabc101b42a 100644
--- a/packages/rocketchat-lib/client/lib/cachedCollection.js
+++ b/packages/rocketchat-lib/client/lib/cachedCollection.js
@@ -9,7 +9,7 @@ class CachedCollectionManager {
this.loginCb = [];
this.logged = false;
- const _unstoreLoginToken = Accounts._unstoreLoginToken;
+ const { _unstoreLoginToken } = Accounts;
Accounts._unstoreLoginToken = (...args) => {
_unstoreLoginToken.apply(Accounts, args);
this.clearAllCacheOnLogout();
@@ -20,7 +20,7 @@ class CachedCollectionManager {
Meteor.setTimeout(() => {
let connectionWasOnline = true;
Tracker.autorun(() => {
- const connected = Meteor.connection.status().connected;
+ const { connected } = Meteor.connection.status();
if (connected === true && connectionWasOnline === false) {
for (const cb of this.reconnectCb) {
diff --git a/packages/rocketchat-lib/client/lib/openRoom.js b/packages/rocketchat-lib/client/lib/openRoom.js
index 2565e36d124..9625303b724 100644
--- a/packages/rocketchat-lib/client/lib/openRoom.js
+++ b/packages/rocketchat-lib/client/lib/openRoom.js
@@ -9,7 +9,7 @@ function openRoom(type, name) {
return Meteor.defer(() =>
currentTracker = Tracker.autorun(function(c) {
const user = Meteor.user();
- if ((user && user.username == null) || user == null && RocketChat.settings.get('Accounts_AllowAnonymousRead') === false) {
+ if ((user && user.username == null) || (user == null && RocketChat.settings.get('Accounts_AllowAnonymousRead') === false)) {
BlazeLayout.render('main');
return;
}
diff --git a/packages/rocketchat-lib/client/models/_Base.js b/packages/rocketchat-lib/client/models/_Base.js
index 55623317be6..203a3859703 100644
--- a/packages/rocketchat-lib/client/models/_Base.js
+++ b/packages/rocketchat-lib/client/models/_Base.js
@@ -9,36 +9,36 @@ RocketChat.models._Base = class {
return this.model = new Mongo.Collection(this._baseName() + name);
}
- find() {
- return this.model.find.apply(this.model, arguments);
+ find(...args) {
+ return this.model.find.apply(this.model, args);
}
- findOne() {
- return this.model.findOne.apply(this.model, arguments);
+ findOne(...args) {
+ return this.model.findOne.apply(this.model, args);
}
- insert() {
- return this.model.insert.apply(this.model, arguments);
+ insert(...args) {
+ return this.model.insert.apply(this.model, args);
}
- update() {
- return this.model.update.apply(this.model, arguments);
+ update(...args) {
+ return this.model.update.apply(this.model, args);
}
- upsert() {
- return this.model.upsert.apply(this.model, arguments);
+ upsert(...args) {
+ return this.model.upsert.apply(this.model, args);
}
- remove() {
- return this.model.remove.apply(this.model, arguments);
+ remove(...args) {
+ return this.model.remove.apply(this.model, args);
}
- allow() {
- return this.model.allow.apply(this.model, arguments);
+ allow(...args) {
+ return this.model.allow.apply(this.model, args);
}
- deny() {
- return this.model.deny.apply(this.model, arguments);
+ deny(...args) {
+ return this.model.deny.apply(this.model, args);
}
ensureIndex() {}
diff --git a/packages/rocketchat-lib/client/views/customFieldsForm.js b/packages/rocketchat-lib/client/views/customFieldsForm.js
index 04e65c43099..469fcb933ff 100644
--- a/packages/rocketchat-lib/client/views/customFieldsForm.js
+++ b/packages/rocketchat-lib/client/views/customFieldsForm.js
@@ -25,7 +25,7 @@ Template.customFieldsForm.helpers({
return customFieldsArray;
},
selectedField(current, field) {
- const formData = Template.instance().formData;
+ const { formData } = Template.instance();
if (typeof formData[field.fieldName] !== 'undefined') {
return formData[field.fieldName] === current;
@@ -34,7 +34,7 @@ Template.customFieldsForm.helpers({
}
},
fieldValue() {
- const formData = Template.instance().formData;
+ const { formData } = Template.instance();
return formData[this.fieldName];
},
diff --git a/packages/rocketchat-lib/server/functions/Notifications.js b/packages/rocketchat-lib/server/functions/Notifications.js
index b5c7ef93015..92e78e6774b 100644
--- a/packages/rocketchat-lib/server/functions/Notifications.js
+++ b/packages/rocketchat-lib/server/functions/Notifications.js
@@ -50,7 +50,7 @@ RocketChat.Notifications = new class {
notifyAll(eventName, ...args) {
if (this.debug === true) {
- console.log('notifyAll', arguments);
+ console.log('notifyAll', [eventName, ...args]);
}
args.unshift(eventName);
return this.streamAll.emit.apply(this.streamAll, args);
@@ -58,7 +58,7 @@ RocketChat.Notifications = new class {
notifyLogged(eventName, ...args) {
if (this.debug === true) {
- console.log('notifyLogged', arguments);
+ console.log('notifyLogged', [eventName, ...args]);
}
args.unshift(eventName);
return this.streamLogged.emit.apply(this.streamLogged, args);
@@ -66,7 +66,7 @@ RocketChat.Notifications = new class {
notifyRoom(room, eventName, ...args) {
if (this.debug === true) {
- console.log('notifyRoom', arguments);
+ console.log('notifyRoom', [room, eventName, ...args]);
}
args.unshift(`${ room }/${ eventName }`);
return this.streamRoom.emit.apply(this.streamRoom, args);
@@ -74,7 +74,7 @@ RocketChat.Notifications = new class {
notifyUser(userId, eventName, ...args) {
if (this.debug === true) {
- console.log('notifyUser', arguments);
+ console.log('notifyUser', [userId, eventName, ...args]);
}
args.unshift(`${ userId }/${ eventName }`);
return this.streamUser.emit.apply(this.streamUser, args);
@@ -82,7 +82,7 @@ RocketChat.Notifications = new class {
notifyAllInThisInstance(eventName, ...args) {
if (this.debug === true) {
- console.log('notifyAll', arguments);
+ console.log('notifyAll', [eventName, ...args]);
}
args.unshift(eventName);
return this.streamAll.emitWithoutBroadcast.apply(this.streamAll, args);
@@ -90,7 +90,7 @@ RocketChat.Notifications = new class {
notifyLoggedInThisInstance(eventName, ...args) {
if (this.debug === true) {
- console.log('notifyLogged', arguments);
+ console.log('notifyLogged', [eventName, ...args]);
}
args.unshift(eventName);
return this.streamLogged.emitWithoutBroadcast.apply(this.streamLogged, args);
@@ -98,7 +98,7 @@ RocketChat.Notifications = new class {
notifyRoomInThisInstance(room, eventName, ...args) {
if (this.debug === true) {
- console.log('notifyRoomAndBroadcast', arguments);
+ console.log('notifyRoomAndBroadcast', [room, eventName, ...args]);
}
args.unshift(`${ room }/${ eventName }`);
return this.streamRoom.emitWithoutBroadcast.apply(this.streamRoom, args);
@@ -106,7 +106,7 @@ RocketChat.Notifications = new class {
notifyUserInThisInstance(userId, eventName, ...args) {
if (this.debug === true) {
- console.log('notifyUserAndBroadcast', arguments);
+ console.log('notifyUserAndBroadcast', [userId, eventName, ...args]);
}
args.unshift(`${ userId }/${ eventName }`);
return this.streamUser.emitWithoutBroadcast.apply(this.streamUser, args);
diff --git a/packages/rocketchat-lib/server/functions/notifications/email.js b/packages/rocketchat-lib/server/functions/notifications/email.js
index 58dc13d17ec..7635ea86502 100644
--- a/packages/rocketchat-lib/server/functions/notifications/email.js
+++ b/packages/rocketchat-lib/server/functions/notifications/email.js
@@ -13,7 +13,7 @@ RocketChat.settings.get('Email_Footer', (key, value) => {
const divisorMessage = '
';
function getEmailContent({ message, user, room }) {
- const lng = user && user.language || RocketChat.settings.get('language') || 'en';
+ const lng = (user && user.language) || RocketChat.settings.get('language') || 'en';
const roomName = s.escapeHTML(`#${ RocketChat.roomTypes.getRoomName(room.t, room) }`);
const userName = s.escapeHTML(RocketChat.settings.get('UI_Use_Real_Name') ? message.u.name || message.u.username : message.u.username);
diff --git a/packages/rocketchat-lib/server/functions/saveCustomFieldsWithoutValidation.js b/packages/rocketchat-lib/server/functions/saveCustomFieldsWithoutValidation.js
index 7aad5b326aa..b4280fddb7b 100644
--- a/packages/rocketchat-lib/server/functions/saveCustomFieldsWithoutValidation.js
+++ b/packages/rocketchat-lib/server/functions/saveCustomFieldsWithoutValidation.js
@@ -21,7 +21,7 @@ RocketChat.saveCustomFieldsWithoutValidation = function(userId, formData) {
return;
}
- const modifyRecordField = customFieldsMeta[fieldName].modifyRecordField;
+ const { modifyRecordField } = customFieldsMeta[fieldName];
const update = {};
if (modifyRecordField.array) {
update.$addToSet = {};
diff --git a/packages/rocketchat-lib/server/functions/sendMessage.js b/packages/rocketchat-lib/server/functions/sendMessage.js
index 1360a84db20..765729497dd 100644
--- a/packages/rocketchat-lib/server/functions/sendMessage.js
+++ b/packages/rocketchat-lib/server/functions/sendMessage.js
@@ -134,7 +134,7 @@ RocketChat.sendMessage = function(user, message, room, upsert = false) {
}
if (message._id && upsert) {
- const _id = message._id;
+ const { _id } = message;
delete message._id;
RocketChat.models.Messages.upsert({
_id,
diff --git a/packages/rocketchat-lib/server/functions/setUsername.js b/packages/rocketchat-lib/server/functions/setUsername.js
index 8f3045b81d7..20c317c9b03 100644
--- a/packages/rocketchat-lib/server/functions/setUsername.js
+++ b/packages/rocketchat-lib/server/functions/setUsername.js
@@ -45,9 +45,9 @@ RocketChat._setUsername = function(userId, u) {
RocketChat.setUserAvatar(user, avatarData.blob, avatarData.contentType, service);
gravatar = null;
return true;
- } else {
- gravatar = avatarData;
}
+ gravatar = avatarData;
+ return false;
});
if (gravatar != null) {
RocketChat.setUserAvatar(user, gravatar.blob, gravatar.contentType, 'gravatar');
diff --git a/packages/rocketchat-lib/server/lib/RateLimiter.js b/packages/rocketchat-lib/server/lib/RateLimiter.js
index c7cced35c21..1555cd4abee 100644
--- a/packages/rocketchat-lib/server/lib/RateLimiter.js
+++ b/packages/rocketchat-lib/server/lib/RateLimiter.js
@@ -16,7 +16,7 @@ RocketChat.RateLimiter = new class {
rateLimiter.increment(match);
const rateLimitResult = rateLimiter.check(match);
if (rateLimitResult.allowed) {
- return fn.apply(null, arguments);
+ return fn.apply(null, args);
} else {
throw new Meteor.Error('error-too-many-requests', `Error, too many requests. Please slow down. You must wait ${ Math.ceil(rateLimitResult.timeToReset / 1000) } seconds before trying again.`, {
timeToReset: rateLimitResult.timeToReset,
diff --git a/packages/rocketchat-lib/server/lib/bugsnag.js b/packages/rocketchat-lib/server/lib/bugsnag.js
index 43c1e46d9fe..a08d5027467 100644
--- a/packages/rocketchat-lib/server/lib/bugsnag.js
+++ b/packages/rocketchat-lib/server/lib/bugsnag.js
@@ -27,7 +27,7 @@ process.on('uncaughtException', Meteor.bindEnvironment((error) => {
}));
const originalMeteorDebug = Meteor._debug;
-Meteor._debug = function() {
- notify(...arguments);
- return originalMeteorDebug(...arguments);
+Meteor._debug = function(...args) {
+ notify(...args);
+ return originalMeteorDebug(...args);
};
diff --git a/packages/rocketchat-lib/server/lib/debug.js b/packages/rocketchat-lib/server/lib/debug.js
index 8afc8387b09..5ef15b457eb 100644
--- a/packages/rocketchat-lib/server/lib/debug.js
+++ b/packages/rocketchat-lib/server/lib/debug.js
@@ -44,18 +44,18 @@ const traceConnection = (enable, filter, prefix, name, connection, userId) => {
};
const wrapMethods = function(name, originalHandler, methodsMap) {
- methodsMap[name] = function() {
+ methodsMap[name] = function(...originalArgs) {
traceConnection(Log_Trace_Methods, Log_Trace_Methods_Filter, 'method', name, this.connection, this.userId);
const end = RocketChat.metrics.meteorMethods.startTimer({
method: name,
has_connection: this.connection != null,
has_user: this.userId != null,
});
- const args = name === 'ufsWrite' ? Array.prototype.slice.call(arguments, 1) : arguments;
+ const args = name === 'ufsWrite' ? Array.prototype.slice.call(originalArgs, 1) : originalArgs;
logger.method(name, '-> userId:', Meteor.userId(), ', arguments: ', args);
this.unblock();
- const result = originalHandler.apply(this, arguments);
+ const result = originalHandler.apply(this, originalArgs);
end();
return result;
};
@@ -73,18 +73,18 @@ Meteor.methods = function(methodMap) {
const originalMeteorPublish = Meteor.publish;
Meteor.publish = function(name, func) {
- return originalMeteorPublish(name, function() {
+ return originalMeteorPublish(name, function(...args) {
traceConnection(Log_Trace_Subscriptions, Log_Trace_Subscriptions_Filter, 'subscription', name, this.connection, this.userId);
- logger.publish(name, '-> userId:', this.userId, ', arguments: ', arguments);
+ logger.publish(name, '-> userId:', this.userId, ', arguments: ', args);
const end = RocketChat.metrics.meteorSubscriptions.startTimer({ subscription: name });
const originalReady = this.ready;
this.ready = function() {
end();
- return originalReady.apply(this, arguments);
+ return originalReady.apply(this, args);
};
- return func.apply(this, arguments);
+ return func.apply(this, args);
});
};
diff --git a/packages/rocketchat-lib/server/lib/loginErrorMessageOverride.js b/packages/rocketchat-lib/server/lib/loginErrorMessageOverride.js
index bdd3255b2ff..c9bb7a65cd8 100644
--- a/packages/rocketchat-lib/server/lib/loginErrorMessageOverride.js
+++ b/packages/rocketchat-lib/server/lib/loginErrorMessageOverride.js
@@ -1,5 +1,5 @@
// Do not disclose if user exists when password is invalid
-const _runLoginHandlers = Accounts._runLoginHandlers;
+const { _runLoginHandlers } = Accounts;
Accounts._runLoginHandlers = function(methodInvocation, options) {
const result = _runLoginHandlers.call(Accounts, methodInvocation, options);
diff --git a/packages/rocketchat-lib/server/lib/processDirectEmail.js b/packages/rocketchat-lib/server/lib/processDirectEmail.js
index 3c234649a95..c204d213295 100644
--- a/packages/rocketchat-lib/server/lib/processDirectEmail.js
+++ b/packages/rocketchat-lib/server/lib/processDirectEmail.js
@@ -75,7 +75,7 @@ RocketChat.processDirectEmail = function(email) {
message.msg = prevMessageLink + message.msg;
const subscription = RocketChat.models.Subscriptions.findOneByRoomIdAndUserId(message.rid, user._id);
- if (subscription && subscription.blocked || subscription.blocker) {
+ if (subscription && (subscription.blocked || subscription.blocker)) {
// room is blocked
return false;
}
diff --git a/packages/rocketchat-lib/server/lib/sendNotificationsOnMessage.js b/packages/rocketchat-lib/server/lib/sendNotificationsOnMessage.js
index 5cbdd3c0347..c1e92fd8097 100644
--- a/packages/rocketchat-lib/server/lib/sendNotificationsOnMessage.js
+++ b/packages/rocketchat-lib/server/lib/sendNotificationsOnMessage.js
@@ -134,6 +134,7 @@ const sendNotification = ({
return true;
}
+ return false;
});
}
@@ -184,7 +185,7 @@ function sendAllNotifications(message, room) {
}],
};
- ['audio', 'desktop', 'mobile', 'email'].map((kind) => {
+ ['audio', 'desktop', 'mobile', 'email'].forEach((kind) => {
const notificationField = `${ kind === 'mobile' ? 'mobilePush' : kind }Notifications`;
const filter = { [notificationField]: 'all' };
diff --git a/packages/rocketchat-lib/server/methods/filterATAllTag.js b/packages/rocketchat-lib/server/methods/filterATAllTag.js
index cbb1e0f5460..645311691d4 100644
--- a/packages/rocketchat-lib/server/methods/filterATAllTag.js
+++ b/packages/rocketchat-lib/server/methods/filterATAllTag.js
@@ -9,7 +9,7 @@ RocketChat.callbacks.add('beforeSaveMessage', function(message) {
if (!RocketChat.authz.hasPermission(message.u._id, 'mention-all') && !RocketChat.authz.hasPermission(message.u._id, 'mention-all', message.rid)) {
// Get the language of the user for the error notification.
- const language = RocketChat.models.Users.findOneById(message.u._id).language;
+ const { language } = RocketChat.models.Users.findOneById(message.u._id);
const action = TAPi18n.__('Notify_all_in_this_room', {}, language);
// Add a notification to the chat, informing the user that this
diff --git a/packages/rocketchat-lib/server/methods/filterATHereTag.js b/packages/rocketchat-lib/server/methods/filterATHereTag.js
index ba8b17e0608..07cf9a9c536 100644
--- a/packages/rocketchat-lib/server/methods/filterATHereTag.js
+++ b/packages/rocketchat-lib/server/methods/filterATHereTag.js
@@ -9,7 +9,7 @@ RocketChat.callbacks.add('beforeSaveMessage', function(message) {
if (!RocketChat.authz.hasPermission(message.u._id, 'mention-here') && !RocketChat.authz.hasPermission(message.u._id, 'mention-here', message.rid)) {
// Get the language of the user for the error notification.
- const language = RocketChat.models.Users.findOneById(message.u._id).language;
+ const { language } = RocketChat.models.Users.findOneById(message.u._id);
const action = TAPi18n.__('Notify_active_in_this_room', {}, language);
// Add a notification to the chat, informing the user that this
diff --git a/packages/rocketchat-lib/server/models/Rooms.js b/packages/rocketchat-lib/server/models/Rooms.js
index 86221c20701..75aad3b509a 100644
--- a/packages/rocketchat-lib/server/models/Rooms.js
+++ b/packages/rocketchat-lib/server/models/Rooms.js
@@ -2,8 +2,8 @@ import _ from 'underscore';
import s from 'underscore.string';
class ModelRooms extends RocketChat.models._Base {
- constructor() {
- super(...arguments);
+ constructor(...args) {
+ super(...args);
this.tryEnsureIndex({ name: 1 }, { unique: 1, sparse: 1 });
this.tryEnsureIndex({ default: 1 });
diff --git a/packages/rocketchat-lib/server/models/Settings.js b/packages/rocketchat-lib/server/models/Settings.js
index 37f7957b5e2..3cd5af4fb8c 100644
--- a/packages/rocketchat-lib/server/models/Settings.js
+++ b/packages/rocketchat-lib/server/models/Settings.js
@@ -1,6 +1,6 @@
class ModelSettings extends RocketChat.models._Base {
- constructor() {
- super(...arguments);
+ constructor(...args) {
+ super(...args);
this.tryEnsureIndex({ blocked: 1 }, { sparse: 1 });
this.tryEnsureIndex({ hidden: 1 }, { sparse: 1 });
diff --git a/packages/rocketchat-lib/server/models/Subscriptions.js b/packages/rocketchat-lib/server/models/Subscriptions.js
index b1a0372c141..1315c1df25c 100644
--- a/packages/rocketchat-lib/server/models/Subscriptions.js
+++ b/packages/rocketchat-lib/server/models/Subscriptions.js
@@ -1,6 +1,6 @@
class ModelSubscriptions extends RocketChat.models._Base {
- constructor() {
- super(...arguments);
+ constructor(...args) {
+ super(...args);
this.tryEnsureIndex({ rid: 1, 'u._id': 1 }, { unique: 1 });
this.tryEnsureIndex({ rid: 1, 'u.username': 1 });
diff --git a/packages/rocketchat-lib/server/models/Users.js b/packages/rocketchat-lib/server/models/Users.js
index 21710225339..5d31e45087b 100644
--- a/packages/rocketchat-lib/server/models/Users.js
+++ b/packages/rocketchat-lib/server/models/Users.js
@@ -2,8 +2,8 @@ import _ from 'underscore';
import s from 'underscore.string';
class ModelUsers extends RocketChat.models._Base {
- constructor() {
- super(...arguments);
+ constructor(...args) {
+ super(...args);
this.tryEnsureIndex({ roles: 1 }, { sparse: 1 });
this.tryEnsureIndex({ name: 1 });
diff --git a/packages/rocketchat-lib/server/models/_Base.js b/packages/rocketchat-lib/server/models/_Base.js
index dbf0334489b..18e7c471aa1 100644
--- a/packages/rocketchat-lib/server/models/_Base.js
+++ b/packages/rocketchat-lib/server/models/_Base.js
@@ -33,98 +33,98 @@ class ModelsBase {
};
}
- setUpdatedAt(/* record, checkQuery, query*/) {
- return this._db.setUpdatedAt(...arguments);
+ setUpdatedAt(...args/* record, checkQuery, query*/) {
+ return this._db.setUpdatedAt(...args);
}
- find() {
+ find(...args) {
try {
- return this[this.origin].find(...arguments);
+ return this[this.origin].find(...args);
} catch (e) {
- console.error('Exception on find', e, ...arguments);
+ console.error('Exception on find', e, ...args);
}
}
- findOne() {
+ findOne(...args) {
try {
- return this[this.origin].findOne(...arguments);
+ return this[this.origin].findOne(...args);
} catch (e) {
- console.error('Exception on find', e, ...arguments);
+ console.error('Exception on find', e, ...args);
}
}
- findOneById() {
+ findOneById(...args) {
try {
- return this[this.origin].findOneById(...arguments);
+ return this[this.origin].findOneById(...args);
} catch (e) {
- console.error('Exception on find', e, ...arguments);
+ console.error('Exception on find', e, ...args);
}
}
- findOneByIds(ids, options) {
+ findOneByIds(ids, options, ...args) {
check(ids, [String]);
try {
return this[this.origin].findOneByIds(ids, options);
} catch (e) {
- console.error('Exception on find', e, ...arguments);
+ console.error('Exception on find', e, [ids, options, ...args]);
}
}
- insert(/* record*/) {
- return this._db.insert(...arguments);
+ insert(...args/* record*/) {
+ return this._db.insert(...args);
}
- update(/* query, update, options*/) {
- return this._db.update(...arguments);
+ update(...args/* query, update, options*/) {
+ return this._db.update(...args);
}
- upsert(/* query, update*/) {
- return this._db.upsert(...arguments);
+ upsert(...args/* query, update*/) {
+ return this._db.upsert(...args);
}
- remove(/* query*/) {
- return this._db.remove(...arguments);
+ remove(...args/* query*/) {
+ return this._db.remove(...args);
}
- insertOrUpsert() {
- return this._db.insertOrUpsert(...arguments);
+ insertOrUpsert(...args) {
+ return this._db.insertOrUpsert(...args);
}
- allow() {
- return this._db.allow(...arguments);
+ allow(...args) {
+ return this._db.allow(...args);
}
- deny() {
- return this._db.deny(...arguments);
+ deny(...args) {
+ return this._db.deny(...args);
}
- ensureIndex() {
- return this._db.ensureIndex(...arguments);
+ ensureIndex(...args) {
+ return this._db.ensureIndex(...args);
}
- dropIndex() {
- return this._db.dropIndex(...arguments);
+ dropIndex(...args) {
+ return this._db.dropIndex(...args);
}
- tryEnsureIndex() {
- return this._db.tryEnsureIndex(...arguments);
+ tryEnsureIndex(...args) {
+ return this._db.tryEnsureIndex(...args);
}
- tryDropIndex() {
- return this._db.tryDropIndex(...arguments);
+ tryDropIndex(...args) {
+ return this._db.tryDropIndex(...args);
}
- trashFind(/* query, options*/) {
- return this._db.trashFind(...arguments);
+ trashFind(...args/* query, options*/) {
+ return this._db.trashFind(...args);
}
- trashFindOneById(/* _id, options*/) {
- return this._db.trashFindOneById(...arguments);
+ trashFindOneById(...args/* _id, options*/) {
+ return this._db.trashFindOneById(...args);
}
- trashFindDeletedAfter(/* deletedAt, query, options*/) {
- return this._db.trashFindDeletedAfter(...arguments);
+ trashFindDeletedAfter(...args/* deletedAt, query, options*/) {
+ return this._db.trashFindDeletedAfter(...args);
}
processQueryOptionsOnResult(result, options = {}) {
@@ -219,6 +219,8 @@ class ModelsBase {
if (fieldsToGet.length > 0) {
return pickFields(record, fieldsToGet);
}
+
+ return null;
});
} else {
if (fieldsToRemove.length > 0) {
diff --git a/packages/rocketchat-lib/server/models/_BaseDb.js b/packages/rocketchat-lib/server/models/_BaseDb.js
index e339fb30053..9bf6e6e1102 100644
--- a/packages/rocketchat-lib/server/models/_BaseDb.js
+++ b/packages/rocketchat-lib/server/models/_BaseDb.js
@@ -87,16 +87,16 @@ class ModelsBaseDb extends EventEmitter {
};
const self = this;
- this.model.insert = function() {
- return self.insert(...arguments);
+ this.model.insert = function(...args) {
+ return self.insert(...args);
};
- this.model.update = function() {
- return self.update(...arguments);
+ this.model.update = function(...args) {
+ return self.update(...args);
};
- this.model.remove = function() {
- return self.remove(...arguments);
+ this.model.remove = function(...args) {
+ return self.remove(...args);
};
}
@@ -110,14 +110,14 @@ class ModelsBaseDb extends EventEmitter {
}
}
- find() {
- this._doNotMixInclusionAndExclusionFields(arguments[1]);
- return this.model.find(...arguments);
+ find(...args) {
+ this._doNotMixInclusionAndExclusionFields(args[1]);
+ return this.model.find(...args);
}
- findOne() {
- this._doNotMixInclusionAndExclusionFields(arguments[1]);
- return this.model.findOne(...arguments);
+ findOne(...args) {
+ this._doNotMixInclusionAndExclusionFields(args[1]);
+ return this.model.findOne(...args);
}
findOneById(_id, options) {
@@ -198,10 +198,10 @@ class ModelsBaseDb extends EventEmitter {
}
}
- insert(record) {
+ insert(record, ...args) {
this.setUpdatedAt(record);
- const result = this.originals.insert(...arguments);
+ const result = this.originals.insert(record, ...args);
record._id = result;
@@ -307,7 +307,7 @@ class ModelsBaseDb extends EventEmitter {
insertOrUpsert(...args) {
if (args[0] && args[0]._id) {
- const _id = args[0]._id;
+ const { _id } = args[0];
delete args[0]._id;
args.unshift({
_id,
@@ -320,35 +320,35 @@ class ModelsBaseDb extends EventEmitter {
}
}
- allow() {
- return this.model.allow(...arguments);
+ allow(...args) {
+ return this.model.allow(...args);
}
- deny() {
- return this.model.deny(...arguments);
+ deny(...args) {
+ return this.model.deny(...args);
}
- ensureIndex() {
- return this.model._ensureIndex(...arguments);
+ ensureIndex(...args) {
+ return this.model._ensureIndex(...args);
}
- dropIndex() {
- return this.model._dropIndex(...arguments);
+ dropIndex(...args) {
+ return this.model._dropIndex(...args);
}
- tryEnsureIndex() {
+ tryEnsureIndex(...args) {
try {
- return this.ensureIndex(...arguments);
+ return this.ensureIndex(...args);
} catch (e) {
- console.error('Error creating index:', this.name, '->', ...arguments, e);
+ console.error('Error creating index:', this.name, '->', ...args, e);
}
}
- tryDropIndex() {
+ tryDropIndex(...args) {
try {
- return this.dropIndex(...arguments);
+ return this.dropIndex(...args);
} catch (e) {
- console.error('Error dropping index:', this.name, '->', ...arguments, e);
+ console.error('Error dropping index:', this.name, '->', ...args, e);
}
}
diff --git a/packages/rocketchat-lib/server/startup/settingsOnLoadDirectReply.js b/packages/rocketchat-lib/server/startup/settingsOnLoadDirectReply.js
index b172e520a93..54b746c7f39 100644
--- a/packages/rocketchat-lib/server/startup/settingsOnLoadDirectReply.js
+++ b/packages/rocketchat-lib/server/startup/settingsOnLoadDirectReply.js
@@ -1,6 +1,5 @@
import _ from 'underscore';
-import { IMAPIntercepter } from '../lib/interceptDirectReplyEmails.js';
-import { POP3Helper } from '../lib/interceptDirectReplyEmails.js';
+import { IMAPIntercepter, POP3Helper } from '../lib/interceptDirectReplyEmails.js';
const startEmailIntercepter = _.debounce(Meteor.bindEnvironment(function() {
console.log('Starting Email Intercepter...');
diff --git a/packages/rocketchat-livechat/.app/client/lib/CustomFields.js b/packages/rocketchat-livechat/.app/client/lib/CustomFields.js
index 36132c9aa71..4f37bf08c86 100644
--- a/packages/rocketchat-livechat/.app/client/lib/CustomFields.js
+++ b/packages/rocketchat-livechat/.app/client/lib/CustomFields.js
@@ -29,6 +29,6 @@ this.CustomFields = (function() {
return {
init,
- setCustomField
+ setCustomField,
};
}());
diff --git a/packages/rocketchat-livechat/.app/client/lib/LivechatFileUpload.js b/packages/rocketchat-livechat/.app/client/lib/LivechatFileUpload.js
index 2f1b8082617..9d0b4e94221 100644
--- a/packages/rocketchat-livechat/.app/client/lib/LivechatFileUpload.js
+++ b/packages/rocketchat-livechat/.app/client/lib/LivechatFileUpload.js
@@ -1,36 +1,36 @@
-/* globals, fileUpload, Livechat, Handlebars */
-/* exported LivechatFileUpload */
+/* globals fileUpload, Livechat, Handlebars, showError, sendFileUpload */
+/* exported LivechatFileUpload, fileUpload, sendFileUpload */
import visitor from '../../imports/client/visitor';
import swal from 'sweetalert2';
-const handleRequestError = response => {
+const handleRequestError = (response) => {
if (!response.success) {
let reason = t('FileUpload_Error');
switch (response.reason) {
case 'error-type-not-allowed':
- reason = t('FileUpload_MediaType_NotAccepted');
+ reason = t('FileUpload_MediaType_NotAccepted');
break;
case 'error-size-not-allowed':
- reason = t('File_exceeds_allowed_size_of_bytes', {size: response.sizeAllowed});
+ reason = t('File_exceeds_allowed_size_of_bytes', { size: response.sizeAllowed });
}
swal({
text: reason,
type: 'error',
- timer: 4000
+ timer: 4000,
});
}
-}
+};
function sendFileRequest(file, roomId, token) {
const url = `${ Meteor.absoluteUrl() }api/v1/livechat/upload/${ roomId }`;
const form = new FormData();
- form.append('file', file)
+ form.append('file', file);
const request = new XMLHttpRequest();
- request.open("POST", url);
+ request.open('POST', url);
request.responseType = 'json';
- request.setRequestHeader("X-Visitor-Token", token);
+ request.setRequestHeader('X-Visitor-Token', token);
request.onload = () => {
if (request.status !== 200) {
@@ -47,7 +47,7 @@ function sendFileRequest(file, roomId, token) {
function readAsDataURL(file, callback) {
const reader = new FileReader();
- reader.onload = ev => callback(ev.target.result, file);
+ reader.onload = (ev) => callback(ev.target.result, file);
return reader.readAsDataURL(file);
}
@@ -60,7 +60,7 @@ function getUploadPreview(file, callback) {
callback(file, null);
} else if ((file.file.type.indexOf('audio') > -1) || (file.file.type.indexOf('video') > -1) || (file.file.type.indexOf('image') > -1)) {
file.type = file.file.type.split('/')[0];
- return readAsDataURL(file.file, content => callback(file, content));
+ return readAsDataURL(file.file, (content) => callback(file, content));
} else {
return callback(file, null);
}
@@ -80,7 +80,7 @@ function formatBytes(bytes, decimals) {
'MB',
'GB',
'TB',
- 'PB'
+ 'PB',
];
const i = Math.floor(Math.log(bytes) / Math.log(k));
@@ -106,67 +106,64 @@ function sendFileMessage(file, roomId) {
});
}
-sendFileUpload = file => {
-
- return getUploadPreview(file, function(file, preview) {
- let html = '';
- if (file.type === 'audio') {
- html = ``;
- } else if (file.type === 'video') {
- html = ``;
- } else if (file.type === 'image') {
- html = ``;
- } else {
- const fileSize = formatBytes(file.file.size);
- html = `${ Handlebars._escape(file.name) } - ${ fileSize }
`;
+sendFileUpload = (file) => getUploadPreview(file, function(file, preview) {
+ let html = '';
+ if (file.type === 'audio') {
+ html = ``;
+ } else if (file.type === 'video') {
+ html = ``;
+ } else if (file.type === 'image') {
+ html = ``;
+ } else {
+ const fileSize = formatBytes(file.file.size);
+ html = `${ Handlebars._escape(file.name) } - ${ fileSize }
`;
+ }
+
+ swal({
+ title: t('Upload_file_question'),
+ html,
+ showCancelButton: true,
+ cancelButtonText: t('No'),
+ confirmButtonText: t('Yes'),
+ }).then((result) => {
+ if (!result.value) {
+ return;
}
- swal({
- title: t('Upload_file_question'),
- html,
- showCancelButton: true,
- cancelButtonText: t('No'),
- confirmButtonText: t('Yes')
- }).then((result) => {
- if (!result.value) {
- return;
- }
+ const roomId = visitor.getRoom(true);
- const roomId = visitor.getRoom(true);
+ if (visitor.getId()) {
+ return sendFileMessage(file.file, roomId);
+ }
- if (visitor.getId()) {
- return sendFileMessage(file.file, roomId);
- }
+ const guest = {
+ token: visitor.getToken(),
+ };
- const guest = {
- token: visitor.getToken()
- };
+ if (Livechat.department) {
+ guest.department = Livechat.department;
+ }
- if (Livechat.department) {
- guest.department = Livechat.department;
+ Meteor.call('livechat:registerGuest', guest, (error, result) => {
+ if (error) {
+ return showError(error.reason);
}
- Meteor.call('livechat:registerGuest', guest, (error, result) => {
- if (error) {
- return showError(error.reason);
- }
-
- visitor.setId(result.userId);
- sendFileMessage(file.file, roomId);
- });
+ visitor.setId(result.userId);
+ sendFileMessage(file.file, roomId);
});
});
-}
+});
-fileUpload = file => {
+fileUpload = (file) => {
if (file.size === 0) {
swal({
title: t('FileUpload_File_Empty'),
- text: reason,
+ text: '',
type: 'error',
timer: 1000,
- showConfirmButton: false
+ showConfirmButton: false,
});
return;
diff --git a/packages/rocketchat-livechat/.app/client/lib/LivechatVideoCall.js b/packages/rocketchat-livechat/.app/client/lib/LivechatVideoCall.js
index e31490bb45f..e22e7046950 100644
--- a/packages/rocketchat-livechat/.app/client/lib/LivechatVideoCall.js
+++ b/packages/rocketchat-livechat/.app/client/lib/LivechatVideoCall.js
@@ -48,11 +48,11 @@ LivechatVideoCall = new (class LivechatVideoCall {
start(domain, room) {
Meteor.defer(() => {
const interfaceConfig = {};
- interfaceConfig['TOOLBAR_BUTTONS'] = '[""]';
- interfaceConfig['APP_NAME'] = '"Livechat"';
- interfaceConfig['INITIAL_TOOLBAR_TIMEOUT'] = '5000';
- interfaceConfig['MIN_WIDTH'] = '300';
- interfaceConfig['FILM_STRIP_MAX_HEIGHT'] = '50';
+ interfaceConfig.TOOLBAR_BUTTONS = '[""]';
+ interfaceConfig.APP_NAME = '"Livechat"';
+ interfaceConfig.INITIAL_TOOLBAR_TIMEOUT = '5000';
+ interfaceConfig.MIN_WIDTH = '300';
+ interfaceConfig.FILM_STRIP_MAX_HEIGHT = '50';
this.api = new JitsiMeetExternalAPI(domain, room, $('.video-call').width(), $('.video-call').height(), $('.video-call .container').get(0), {}, interfaceConfig);
diff --git a/packages/rocketchat-livechat/.app/client/lib/autolinker.js b/packages/rocketchat-livechat/.app/client/lib/autolinker.js
index 9d4b8b29145..af580034dff 100644
--- a/packages/rocketchat-livechat/.app/client/lib/autolinker.js
+++ b/packages/rocketchat-livechat/.app/client/lib/autolinker.js
@@ -2,5 +2,5 @@ import Autolinker from 'autolinker';
this.livechatAutolinker = new Autolinker({
twitter: false,
- phone: false
+ phone: false,
});
diff --git a/packages/rocketchat-livechat/.app/client/lib/chatMessages.js b/packages/rocketchat-livechat/.app/client/lib/chatMessages.js
index 054b2fbbcd2..65589f9ecd2 100644
--- a/packages/rocketchat-livechat/.app/client/lib/chatMessages.js
+++ b/packages/rocketchat-livechat/.app/client/lib/chatMessages.js
@@ -18,7 +18,7 @@ this.ChatMessages = class ChatMessages {
resize() {
const dif = 60 + $('.messages-container').find('footer').outerHeight();
return $('.messages-box').css({
- height: `calc(100% - ${ dif }px)`
+ height: `calc(100% - ${ dif }px)`,
});
}
@@ -108,7 +108,7 @@ this.ChatMessages = class ChatMessages {
_id: Random.id(),
rid,
msg,
- token: visitor.getToken()
+ token: visitor.getToken(),
};
MsgTyping.stop(rid);
@@ -117,7 +117,7 @@ this.ChatMessages = class ChatMessages {
if (currentAgent) {
agent = {
agentId: currentAgent._id,
- username: currentAgent.username
+ username: currentAgent.username,
};
}
@@ -142,7 +142,7 @@ this.ChatMessages = class ChatMessages {
if (!visitor.getId()) {
const guest = {
- token: visitor.getToken()
+ token: visitor.getToken(),
};
if (Livechat.department) {
@@ -202,7 +202,7 @@ this.ChatMessages = class ChatMessages {
$('.input-message').autogrow({
postGrowCallback: () => {
this.resize();
- }
+ },
});
}
}
@@ -226,7 +226,7 @@ this.ChatMessages = class ChatMessages {
34, // Page Down
35, // Page Up
144, // Num Lock
- 145 // Scroll Lock
+ 145, // Scroll Lock
];
for (i = 35; i <= 40; i++) { keyCodes.push(i); } // Home, End, Arrow Keys
for (i = 112; i <= 123; i++) { keyCodes.push(i); } // F1 - F12
diff --git a/packages/rocketchat-livechat/.app/client/lib/commands.js b/packages/rocketchat-livechat/.app/client/lib/commands.js
index 8d2af23652c..0d27c636b3a 100644
--- a/packages/rocketchat-livechat/.app/client/lib/commands.js
+++ b/packages/rocketchat-livechat/.app/client/lib/commands.js
@@ -28,7 +28,7 @@ this.Commands = {
inputPlaceholder: t('Type_your_email'),
showCancelButton: true,
cancelButtonText: t('no'),
- confirmButtonText: t('yes')
+ confirmButtonText: t('yes'),
}).then((result) => {
if ((typeof result.value === 'boolean') && !result.value) {
return true;
@@ -47,7 +47,7 @@ this.Commands = {
title: t('transcript_sent'),
type: 'success',
timer: 1000,
- showConfirmButton: false
+ showConfirmButton: false,
});
});
});
@@ -56,5 +56,5 @@ this.Commands = {
connected() {
Livechat.connecting = false;
- }
+ },
};
diff --git a/packages/rocketchat-livechat/.app/client/lib/error.js b/packages/rocketchat-livechat/.app/client/lib/error.js
index 7fd5501fc2a..873b84462c6 100644
--- a/packages/rocketchat-livechat/.app/client/lib/error.js
+++ b/packages/rocketchat-livechat/.app/client/lib/error.js
@@ -1,3 +1,3 @@
-this.showError = msg => {
+this.showError = (msg) => {
$('.error').addClass('show').find('span').html(msg);
};
diff --git a/packages/rocketchat-livechat/.app/client/lib/fromApp/Notifications.js b/packages/rocketchat-livechat/.app/client/lib/fromApp/Notifications.js
index 8acbe3d5da1..362962b4bb8 100644
--- a/packages/rocketchat-livechat/.app/client/lib/fromApp/Notifications.js
+++ b/packages/rocketchat-livechat/.app/client/lib/fromApp/Notifications.js
@@ -1,12 +1,12 @@
import visitor from '../../../imports/client/visitor';
this.Notifications = new class {
- constructor() {
+ constructor(...args) {
this.logged = visitor.getId() !== null;
this.loginCb = [];
Tracker.autorun(() => {
if (visitor.getId() !== null && this.logged === false) {
- this.loginCb.forEach(cb => cb());
+ this.loginCb.forEach((cb) => cb());
}
return this.logged = visitor.getId() !== null;
});
@@ -18,10 +18,10 @@ this.Notifications = new class {
this.streamUser = new Meteor.Streamer('notify-user');
if (this.debug === true) {
this.onAll(function() {
- return console.log('RocketChat.Notifications: onAll', arguments);
+ return console.log('RocketChat.Notifications: onAll', args);
});
this.onUser(function() {
- return console.log('RocketChat.Notifications: onAll', arguments);
+ return console.log('RocketChat.Notifications: onAll', args);
});
}
}
@@ -34,14 +34,14 @@ this.Notifications = new class {
}
notifyRoom(room, eventName, ...args) {
if (this.debug === true) {
- console.log('RocketChat.Notifications: notifyRoom', arguments);
+ console.log('RocketChat.Notifications: notifyRoom', room, eventName, ...args);
}
args.unshift(`${ room }/${ eventName }`);
return this.streamRoom.emit.apply(this.streamRoom, args);
}
notifyUser(userId, eventName, ...args) {
if (this.debug === true) {
- console.log('RocketChat.Notifications: notifyUser', arguments);
+ console.log('RocketChat.Notifications: notifyUser', userId, eventName, ...args);
}
args.unshift(`${ userId }/${ eventName }`);
return this.streamUser.emit.apply(this.streamUser, args);
@@ -50,14 +50,12 @@ this.Notifications = new class {
return this.streamAll.on(eventName, { token: visitor.getToken() }, callback);
}
onLogged(eventName, callback) {
- return this.onLogin(() => {
- return this.streamLogged.on(eventName, { token: visitor.getToken() }, callback);
- });
+ return this.onLogin(() => this.streamLogged.on(eventName, { token: visitor.getToken() }, callback));
}
onRoom(room, eventName, callback) {
if (this.debug === true) {
this.streamRoom.on(room, { token: visitor.getToken() }, function() {
- return console.log(`RocketChat.Notifications: onRoom ${ room }`, arguments);
+ return console.log(`RocketChat.Notifications: onRoom ${ room }`, room, eventName, callback);
});
}
return this.streamRoom.on(`${ room }/${ eventName }`, { token: visitor.getToken() }, callback);
diff --git a/packages/rocketchat-livechat/.app/client/lib/fromApp/RoomHistoryManager.js b/packages/rocketchat-livechat/.app/client/lib/fromApp/RoomHistoryManager.js
index 2d6ab8f9244..085e4b7d8eb 100644
--- a/packages/rocketchat-livechat/.app/client/lib/fromApp/RoomHistoryManager.js
+++ b/packages/rocketchat-livechat/.app/client/lib/fromApp/RoomHistoryManager.js
@@ -16,7 +16,7 @@ export const RoomHistoryManager = new class {
isLoading: new ReactiveVar(false),
unreadNotLoaded: new ReactiveVar(0),
firstUnread: new ReactiveVar,
- loaded: undefined
+ loaded: undefined,
};
}
@@ -32,9 +32,9 @@ export const RoomHistoryManager = new class {
room.isLoading.set(true);
- //$('.messages-box .wrapper').data('previous-height', $('.messages-box .wrapper').get(0)?.scrollHeight - $('.messages-box .wrapper').get(0)?.scrollTop)
+ // $('.messages-box .wrapper').data('previous-height', $('.messages-box .wrapper').get(0)?.scrollHeight - $('.messages-box .wrapper').get(0)?.scrollTop)
// ScrollListener.setLoader true
- const lastMessage = ChatMessage.findOne({rid}, { fields: { ts: 1 }, sort: { ts: 1 }});
+ const lastMessage = ChatMessage.findOne({ rid }, { fields: { ts: 1 }, sort: { ts: 1 } });
// lastMessage ?= ChatMessage.findOne({rid: rid}, {sort: {ts: 1}})
let ts;
@@ -52,7 +52,7 @@ export const RoomHistoryManager = new class {
if (result && result.messages) {
result.messages.forEach((item) => {
if (item.t !== 'command') {
- ChatMessage.upsert({_id: item._id}, item);
+ ChatMessage.upsert({ _id: item._id }, item);
}
});
room.isLoading.set(false);
@@ -76,16 +76,16 @@ export const RoomHistoryManager = new class {
room.isLoading.set(true);
- const lastMessage = ChatMessage.findOne({rid}, {sort: {ts: -1}});
+ const lastMessage = ChatMessage.findOne({ rid }, { sort: { ts: -1 } });
let typeName = undefined;
- const subscription = ChatSubscription.findOne({rid});
+ const subscription = ChatSubscription.findOne({ rid });
if (subscription != null) {
// const { ls } = subscription;
typeName = subscription.t + subscription.name;
} else {
- const curRoomDoc = ChatRoom.findOne({_id: rid});
+ const curRoomDoc = ChatRoom.findOne({ _id: rid });
typeName = (curRoomDoc != null ? curRoomDoc.t : undefined) + (curRoomDoc != null ? curRoomDoc.name : undefined);
}
@@ -96,11 +96,11 @@ export const RoomHistoryManager = new class {
for (const item of Array.from((result != null ? result.messages : undefined) || [])) {
if (item.t !== 'command') {
const roles = [
- (item.u && item.u._id && UserRoles.findOne(item.u._id, { fields: { roles: 1 }})) || {},
- (item.u && item.u._id && RoomRoles.findOne({rid: item.rid, 'u._id': item.u._id})) || {}
- ].map(e => e.roles);
+ (item.u && item.u._id && UserRoles.findOne(item.u._id, { fields: { roles: 1 } })) || {},
+ (item.u && item.u._id && RoomRoles.findOne({ rid: item.rid, 'u._id': item.u._id })) || {},
+ ].map((e) => e.roles);
item.roles = _.union.apply(_.union, roles);
- ChatMessage.upsert({_id: item._id}, item);
+ ChatMessage.upsert({ _id: item._id }, item);
}
}
@@ -128,9 +128,9 @@ export const RoomHistoryManager = new class {
if (ChatMessage.findOne(message._id)) {
const wrapper = $('.messages-box .wrapper');
const msgElement = $(`#${ message._id }`, wrapper);
- const pos = (wrapper.scrollTop() + msgElement.offset().top) - (wrapper.height()/2);
+ const pos = (wrapper.scrollTop() + msgElement.offset().top) - (wrapper.height() / 2);
wrapper.animate({
- scrollTop: pos
+ scrollTop: pos,
}, 500);
msgElement.addClass('highlight');
@@ -147,12 +147,12 @@ export const RoomHistoryManager = new class {
let typeName = undefined;
- const subscription = ChatSubscription.findOne({rid: message.rid});
+ const subscription = ChatSubscription.findOne({ rid: message.rid });
if (subscription) {
// const { ls } = subscription;
typeName = subscription.t + subscription.name;
} else {
- const curRoomDoc = ChatRoom.findOne({_id: message.rid});
+ const curRoomDoc = ChatRoom.findOne({ _id: message.rid });
typeName = (curRoomDoc != null ? curRoomDoc.t : undefined) + (curRoomDoc != null ? curRoomDoc.name : undefined);
}
@@ -160,11 +160,11 @@ export const RoomHistoryManager = new class {
for (const item of Array.from((result != null ? result.messages : undefined) || [])) {
if (item.t !== 'command') {
const roles = [
- (item.u && item.u._id && UserRoles.findOne(item.u._id, { fields: { roles: 1 }})) || {},
- (item.u && item.u._id && RoomRoles.findOne({rid: item.rid, 'u._id': item.u._id})) || {}
- ].map(e => e.roles);
+ (item.u && item.u._id && UserRoles.findOne(item.u._id, { fields: { roles: 1 } })) || {},
+ (item.u && item.u._id && RoomRoles.findOne({ rid: item.rid, 'u._id': item.u._id })) || {},
+ ].map((e) => e.roles);
item.roles = _.union.apply(_.union, roles);
- ChatMessage.upsert({_id: item._id}, item);
+ ChatMessage.upsert({ _id: item._id }, item);
}
}
@@ -173,9 +173,9 @@ export const RoomHistoryManager = new class {
RoomManager.updateMentionsMarksOfRoom(typeName);
const wrapper = $('.messages-box .wrapper');
const msgElement = $(`#${ message._id }`, wrapper);
- const pos = (wrapper.scrollTop() + msgElement.offset().top) - (wrapper.height()/2);
+ const pos = (wrapper.scrollTop() + msgElement.offset().top) - (wrapper.height() / 2);
wrapper.animate({
- scrollTop: pos
+ scrollTop: pos,
}, 500);
msgElement.addClass('highlight');
diff --git a/packages/rocketchat-livechat/.app/client/lib/fromApp/avatar.js b/packages/rocketchat-livechat/.app/client/lib/fromApp/avatar.js
index 07aad70c42c..553e602278b 100644
--- a/packages/rocketchat-livechat/.app/client/lib/fromApp/avatar.js
+++ b/packages/rocketchat-livechat/.app/client/lib/fromApp/avatar.js
@@ -1,4 +1,4 @@
-this.getAvatarUrlFromUsername = username => {
+this.getAvatarUrlFromUsername = (username) => {
const key = `avatar_random_${ username }`;
const random = Session.keys[key] || 0;
if (!username) {
@@ -8,7 +8,7 @@ this.getAvatarUrlFromUsername = username => {
return `${ Meteor.absoluteUrl() }avatar/${ username }.jpg?_dc=${ random }`;
};
-this.updateAvatarOfUsername = username => {
+this.updateAvatarOfUsername = (username) => {
const key = `avatar_random_${ username }`;
Session.set(key, Math.round(Math.random() * 1000));
diff --git a/packages/rocketchat-livechat/.app/client/lib/hooks.js b/packages/rocketchat-livechat/.app/client/lib/hooks.js
index 93ba1a6f11c..ec46d2dfbfc 100644
--- a/packages/rocketchat-livechat/.app/client/lib/hooks.js
+++ b/packages/rocketchat-livechat/.app/client/lib/hooks.js
@@ -65,7 +65,7 @@ const api = {
visitor.setToken(result.visitor.token);
}
});
- }
+ },
};
window.addEventListener('message', function(msg) {
diff --git a/packages/rocketchat-livechat/.app/client/lib/msgTyping.js b/packages/rocketchat-livechat/.app/client/lib/msgTyping.js
index 3dbc0ca5001..ed549cc9bde 100644
--- a/packages/rocketchat-livechat/.app/client/lib/msgTyping.js
+++ b/packages/rocketchat-livechat/.app/client/lib/msgTyping.js
@@ -17,7 +17,7 @@ export const MsgTyping = (function() {
return;
}
usersTyping[room] = { users: {} };
- return Notifications.onRoom(room, 'typing', function(username, typing, extraData) {
+ return Notifications.onRoom(room, 'typing', function(username, typing/* , extraData*/) {
const user = Meteor.user();
if (username === (user && user.username)) {
return;
diff --git a/packages/rocketchat-livechat/.app/client/lib/parentCall.js b/packages/rocketchat-livechat/.app/client/lib/parentCall.js
index ae705ec7618..23a31167b85 100644
--- a/packages/rocketchat-livechat/.app/client/lib/parentCall.js
+++ b/packages/rocketchat-livechat/.app/client/lib/parentCall.js
@@ -2,7 +2,7 @@ this.parentCall = (method, args = []) => {
const data = {
src: 'rocketchat',
fn: method,
- args
+ args,
};
window.parent.postMessage(data, '*');
diff --git a/packages/rocketchat-livechat/.app/client/lib/tapi18n.js b/packages/rocketchat-livechat/.app/client/lib/tapi18n.js
index c1ded6b8605..18216eb2395 100644
--- a/packages/rocketchat-livechat/.app/client/lib/tapi18n.js
+++ b/packages/rocketchat-livechat/.app/client/lib/tapi18n.js
@@ -6,7 +6,7 @@ this.t = function(key, ...replaces) {
} else {
return TAPi18n.__(key, {
postProcess: 'sprintf',
- sprintf: replaces
+ sprintf: replaces,
});
}
};
@@ -17,12 +17,12 @@ this.tr = function(key, options, ...replaces) {
} else {
return TAPi18n.__(key, options, {
postProcess: 'sprintf',
- sprintf: replaces
+ sprintf: replaces,
});
}
};
this.isRtl = (lang) => {
- const language = lang ? lang : localStorage.getItem('userLanguage') ? localStorage.getItem('userLanguage') : 'en-US';
+ const language = lang || localStorage.getItem('userLanguage') || 'en-US';
return ['ar', 'dv', 'fa', 'he', 'ku', 'ps', 'sd', 'ug', 'ur', 'yi'].includes(language.split('-').shift().toLowerCase());
};
diff --git a/packages/rocketchat-livechat/.app/client/lib/triggers.js b/packages/rocketchat-livechat/.app/client/lib/triggers.js
index 3f958c47b97..841191a5c43 100644
--- a/packages/rocketchat-livechat/.app/client/lib/triggers.js
+++ b/packages/rocketchat-livechat/.app/client/lib/triggers.js
@@ -17,21 +17,21 @@ function getAgent(triggerAction) {
Meteor.call('livechat:getNextAgent', {
token: visitor.getToken(),
- department: Livechat.department
+ department: Livechat.department,
}, (error, result) => {
if (error) {
return reject(error);
}
localStorage.setItem('triggerAgent', JSON.stringify({
agent: result,
- ts: Date.now()
+ ts: Date.now(),
}));
resolve(result);
});
} else if (params.sender === 'custom') {
resolve({
- username: params.name
+ username: params.name,
});
} else {
reject('Unknown sender');
@@ -66,7 +66,7 @@ this.Triggers = (function() {
ChatMessage.insert({
msg: action.params.msg,
rid: roomId,
- u: agent
+ u: agent,
});
if (agent._id) {
@@ -137,6 +137,6 @@ this.Triggers = (function() {
processRequest,
setTriggers,
setDisabled,
- setEnabled
+ setEnabled,
};
}());
diff --git a/packages/rocketchat-livechat/.app/client/methods/sendMessageExternal.js b/packages/rocketchat-livechat/.app/client/methods/sendMessageExternal.js
index 8a2bdaebf2a..8e67ccd678f 100644
--- a/packages/rocketchat-livechat/.app/client/methods/sendMessageExternal.js
+++ b/packages/rocketchat-livechat/.app/client/methods/sendMessageExternal.js
@@ -14,7 +14,7 @@ Meteor.methods({
message.u = {
_id: visitor.getId(),
- username: user && user.username || 'visitor'
+ username: (user && user.username) || 'visitor',
};
message.temp = true;
@@ -23,5 +23,5 @@ Meteor.methods({
ChatMessage.insert(message);
}
- }
+ },
});
diff --git a/packages/rocketchat-livechat/.app/client/routes/router.js b/packages/rocketchat-livechat/.app/client/routes/router.js
index 9b6e69af295..a18955493f4 100644
--- a/packages/rocketchat-livechat/.app/client/routes/router.js
+++ b/packages/rocketchat-livechat/.app/client/routes/router.js
@@ -5,9 +5,9 @@ BlazeLayout.setRoot('body');
FlowRouter.route('/livechat', {
name: 'index',
triggersEnter: [
- () => visitor.register()
+ () => visitor.register(),
],
action() {
BlazeLayout.render('main', { center: 'livechatWindow' });
- }
+ },
});
diff --git a/packages/rocketchat-livechat/.app/client/startup/visitor.js b/packages/rocketchat-livechat/.app/client/startup/visitor.js
index c073f9a225d..0917815e7a6 100644
--- a/packages/rocketchat-livechat/.app/client/startup/visitor.js
+++ b/packages/rocketchat-livechat/.app/client/startup/visitor.js
@@ -4,7 +4,7 @@ Meteor.startup(() => {
if (!localStorage.getItem('rocketChatLivechat')) {
localStorage.setItem('rocketChatLivechat', Random.id());
} else {
- Tracker.autorun(c => {
+ Tracker.autorun((c) => {
if (!visitor.getId() && visitor.getToken()) {
Meteor.call('livechat:loginByToken', visitor.getToken(), (err, result) => {
if (result && result._id) {
@@ -20,12 +20,12 @@ Meteor.startup(() => {
Meteor.startup(() => {
let connected = false;
Tracker.autorun(function() {
- var connectionStatus = Meteor.status();
+ const connectionStatus = Meteor.status();
if (visitor.getRoom() && visitor.getToken() && connectionStatus.connected && !connected) {
connected = connectionStatus.connected;
document.cookie = `rc_rid=${ visitor.getRoom() }; path=/`;
document.cookie = `rc_token=${ visitor.getToken() }; path=/`;
- document.cookie = `rc_room_type=l; path=/`;
+ document.cookie = 'rc_room_type=l; path=/';
visitor.setConnected();
}
});
diff --git a/packages/rocketchat-livechat/.app/client/views/avatar.js b/packages/rocketchat-livechat/.app/client/views/avatar.js
index 62443cf4991..c2500afbdc0 100644
--- a/packages/rocketchat-livechat/.app/client/views/avatar.js
+++ b/packages/rocketchat-livechat/.app/client/views/avatar.js
@@ -2,9 +2,9 @@ import visitor from '../../imports/client/visitor';
Template.avatar.helpers({
imageUrl() {
- let username = this.username;
+ let { username } = this;
if (!username && this.userId) {
- const user = Meteor.users.findOne(this.userId, { fields: { username: 1 }});
+ const user = Meteor.users.findOne(this.userId, { fields: { username: 1 } });
username = user && user.username;
}
@@ -16,5 +16,5 @@ Template.avatar.helpers({
Session.get(`avatar_random_${ username }`);
return `background-image:url(${ getAvatarUrlFromUsername(username) });`;
- }
+ },
});
diff --git a/packages/rocketchat-livechat/.app/client/views/livechatWindow.js b/packages/rocketchat-livechat/.app/client/views/livechatWindow.js
index dc1bfcc4297..a79c6a65533 100644
--- a/packages/rocketchat-livechat/.app/client/views/livechatWindow.js
+++ b/packages/rocketchat-livechat/.app/client/views/livechatWindow.js
@@ -3,7 +3,7 @@ import visitor from '../../imports/client/visitor';
function showDepartments() {
return Department.find({ showOnRegistration: true }).count() > 1;
-};
+}
Template.livechatWindow.helpers({
title() {
@@ -44,7 +44,7 @@ Template.livechatWindow.helpers({
offlineMessage: Livechat.offlineMessage.replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1
$2'),
offlineSuccessMessage: Livechat.offlineSuccessMessage,
offlineUnavailableMessage: Livechat.offlineUnavailableMessage.replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1
$2'),
- displayOfflineForm: Livechat.displayOfflineForm
+ displayOfflineForm: Livechat.displayOfflineForm,
};
},
videoCalling() {
@@ -55,7 +55,7 @@ Template.livechatWindow.helpers({
},
showWidget() {
return Livechat.online || Livechat.displayOfflineForm;
- }
+ },
});
Template.livechatWindow.events({
@@ -68,12 +68,12 @@ Template.livechatWindow.events({
},
'click .sound'(event) {
event.stopPropagation();
- Session.set({sound: !Session.get('sound')});
- }
+ Session.set({ sound: !Session.get('sound') });
+ },
});
Template.livechatWindow.onCreated(function() {
- Session.set({sound: true});
+ Session.set({ sound: true });
TAPi18n.conf.i18n_files_route = Meteor._relativeToSiteRootUrl('/tap-i18n');
@@ -90,7 +90,7 @@ Template.livechatWindow.onCreated(function() {
return lng;
};
- const loadDepartments = departments => {
+ const loadDepartments = (departments) => {
Department.remove({});
departments.forEach((department) => {
Department.insert(department);
diff --git a/packages/rocketchat-livechat/.app/client/views/message.js b/packages/rocketchat-livechat/.app/client/views/message.js
index dac45da7a1f..b10a98ff15b 100644
--- a/packages/rocketchat-livechat/.app/client/views/message.js
+++ b/packages/rocketchat-livechat/.app/client/views/message.js
@@ -61,12 +61,12 @@ Template.message.helpers({
},
sender() {
- const agent = Livechat.agent;
+ const { agent } = Livechat;
if (agent && this.u.username === agent.username) {
return agent.name || agent.username;
}
return this.u.username;
- }
+ },
});
Template.message.onViewRendered = function(context) {
@@ -96,7 +96,7 @@ Template.message.onViewRendered = function(context) {
}
if (context.urls && context.urls.length > 0 && Template.oembedBaseWidget) {
- context.urls.forEach(item => {
+ context.urls.forEach((item) => {
const urlNode = lastNode.querySelector(`.body a[href="${ item.url }"]`);
if (urlNode) {
$(urlNode).replaceWith(Blaze.toHTMLWithData(Template.oembedBaseWidget, item));
diff --git a/packages/rocketchat-livechat/.app/client/views/messageAttachment.js b/packages/rocketchat-livechat/.app/client/views/messageAttachment.js
index abba74128bb..1a26665917d 100644
--- a/packages/rocketchat-livechat/.app/client/views/messageAttachment.js
+++ b/packages/rocketchat-livechat/.app/client/views/messageAttachment.js
@@ -3,4 +3,4 @@ Template.messageAttachment.helpers({
getImageHeight(height = 200) {
return height;
},
-});
\ No newline at end of file
+});
diff --git a/packages/rocketchat-livechat/.app/client/views/messages.js b/packages/rocketchat-livechat/.app/client/views/messages.js
index 0c3772ae7ff..505d5013028 100644
--- a/packages/rocketchat-livechat/.app/client/views/messages.js
+++ b/packages/rocketchat-livechat/.app/client/views/messages.js
@@ -1,4 +1,4 @@
-/* globals Livechat, LivechatVideoCall, MsgTyping */
+/* globals Livechat, LivechatVideoCall, MsgTyping, fileUpload */
import visitor from '../../imports/client/visitor';
import _ from 'underscore';
import mime from 'mime-type/with-db';
@@ -8,12 +8,12 @@ Template.messages.helpers({
return ChatMessage.find({
rid: visitor.getRoom(),
t: {
- '$nin': ['t', 'livechat_navigation_history']
- }
+ $nin: ['t', 'livechat_navigation_history'],
+ },
}, {
sort: {
- ts: 1
- }
+ ts: 1,
+ },
});
},
showOptions() {
@@ -48,7 +48,7 @@ Template.messages.helpers({
return {
multi: false,
selfTyping: MsgTyping.selfTyping.get(),
- users: users[0]
+ users: users[0],
};
}
// usernames = _.map messages, (message) -> return message.u.username
@@ -62,17 +62,17 @@ Template.messages.helpers({
return {
multi: true,
selfTyping: MsgTyping.selfTyping.get(),
- users: usernames.join(` ${ t('and') } `)
+ users: usernames.join(` ${ t('and') } `),
};
},
agentData() {
- const agent = Livechat.agent;
+ const { agent } = Livechat.agent;
if (!agent) {
return null;
}
const agentData = {
- avatar: getAvatarUrlFromUsername(agent.username)
+ avatar: getAvatarUrlFromUsername(agent.username),
};
if (agent.name) {
@@ -90,14 +90,14 @@ Template.messages.helpers({
}
return agentData;
- }
+ },
});
Template.messages.events({
'keyup .input-message'(event, instance) {
instance.chatMessages.keyup(visitor.getRoom(), event, instance);
instance.updateMessageInputHeight(event.currentTarget);
- instance.isMessageFieldEmpty.set(event.target.value == '');
+ instance.isMessageFieldEmpty.set(event.target.value === '');
},
'keydown .input-message'(event, instance) {
return instance.chatMessages.keydown(visitor.getRoom(), event, instance);
@@ -107,7 +107,7 @@ Template.messages.events({
const sent = instance.chatMessages.send(visitor.getRoom(), input);
input.focus();
instance.updateMessageInputHeight(input);
- instance.isMessageFieldEmpty.set(input.value == '');
+ instance.isMessageFieldEmpty.set(input.value === '');
return sent;
},
@@ -144,29 +144,29 @@ Template.messages.events({
$input.css('display', 'none');
$input.attr({
id: 'fileupload-input',
- type: 'file'
+ type: 'file',
});
$(document.body).append($input);
-
+
$input.one('change', function(e) {
- const files = e.target.files;
- if (files && ( files.length > 0 )) {
+ const { files } = e.target;
+ if (files && (files.length > 0)) {
const file = files[0];
Object.defineProperty(file, 'type', {
- value: mime.lookup(file.name)
+ value: mime.lookup(file.name),
});
fileUpload({
file,
- name: file.name
+ name: file.name,
});
}
$input.remove();
});
-
- $input.click();
- }
+
+ $input.click();
+ },
});
Template.messages.onCreated(function() {
@@ -182,11 +182,12 @@ Template.messages.onCreated(function() {
// If there is no text, reset the height.
const inputScrollHeight = $(input).prop('scrollHeight');
if (inputScrollHeight > 28) {
- return $(input).height($(input).val() === '' ? '15px' : (inputScrollHeight >= 200 ? inputScrollHeight - 50 : inputScrollHeight - 20));
+ const scrollHeight = inputScrollHeight >= 200 ? inputScrollHeight - 50 : inputScrollHeight - 20;
+ return $(input).height($(input).val() === '' ? '15px' : scrollHeight);
}
};
- $(document).click((/*event*/) => {
+ $(document).click((/* event*/) => {
if (!this.showOptions.get()) {
return;
}
diff --git a/packages/rocketchat-livechat/.app/client/views/offlineForm.js b/packages/rocketchat-livechat/.app/client/views/offlineForm.js
index 1914355cb02..10a1da0d363 100644
--- a/packages/rocketchat-livechat/.app/client/views/offlineForm.js
+++ b/packages/rocketchat-livechat/.app/client/views/offlineForm.js
@@ -17,7 +17,7 @@ Template.offlineForm.helpers({
} else {
return TAPi18n.__('Thanks_We_ll_get_back_to_you_soon');
}
- }
+ },
});
Template.offlineForm.events({
@@ -27,9 +27,9 @@ Template.offlineForm.events({
const form = event.currentTarget;
const data = {
- name: form.elements['name'].value,
- email: form.elements['email'].value,
- message: form.elements['message'].value
+ name: form.elements.name.value,
+ email: form.elements.email.value,
+ message: form.elements.message.value,
};
if (!instance.validateForm(form)) {
@@ -49,7 +49,7 @@ Template.offlineForm.events({
parentCall('callback', ['offline-form-submit', data]);
}
});
- }
+ },
});
Template.offlineForm.onCreated(function() {
diff --git a/packages/rocketchat-livechat/.app/client/views/options.js b/packages/rocketchat-livechat/.app/client/views/options.js
index c6a76d56af2..95c892697ea 100644
--- a/packages/rocketchat-livechat/.app/client/views/options.js
+++ b/packages/rocketchat-livechat/.app/client/views/options.js
@@ -11,7 +11,7 @@ Template.options.helpers({
},
selectedDepartment() {
return this._id === Livechat.department;
- }
+ },
});
Template.options.events({
@@ -24,7 +24,7 @@ Template.options.events({
confirmButtonColor: '#DD6B55',
confirmButtonText: t('Yes'),
cancelButtonText: t('No'),
- html: false
+ html: false,
}).then((result) => {
if (result.value) {
Meteor.call('livechat:closeByVisitor', { roomId: visitor.getRoom(), token: visitor.getToken() }, (error) => {
@@ -37,5 +37,5 @@ Template.options.events({
},
'click .switch-department'() {
Livechat.showSwitchDepartmentForm = true;
- }
+ },
});
diff --git a/packages/rocketchat-livechat/.app/client/views/register.js b/packages/rocketchat-livechat/.app/client/views/register.js
index 4139fb1c5c6..faca0b5f0cc 100644
--- a/packages/rocketchat-livechat/.app/client/views/register.js
+++ b/packages/rocketchat-livechat/.app/client/views/register.js
@@ -33,7 +33,7 @@ Template.register.helpers({
},
getEmail() {
return Livechat.guestEmail;
- }
+ },
});
Template.register.events({
@@ -77,7 +77,7 @@ Template.register.events({
token: visitor.getToken(),
name,
email,
- department: Livechat.department || departmentId
+ department: Livechat.department || departmentId,
};
Meteor.call('livechat:registerGuest', guest, function(error, result) {
if (error != null) {
@@ -98,7 +98,7 @@ Template.register.events({
},
'click .request-video'(e, instance) {
instance.request = 'video';
- }
+ },
});
Template.register.onCreated(function() {
@@ -106,9 +106,7 @@ Template.register.onCreated(function() {
this.request = '';
this.validateForm = (form, fields) => {
- const valid = fields.every((field) => {
- return !_.isEmpty(s.trim(form.elements[field].value));
- });
+ const valid = fields.every((field) => !_.isEmpty(s.trim(form.elements[field].value)));
return valid;
};
diff --git a/packages/rocketchat-livechat/.app/client/views/survey.js b/packages/rocketchat-livechat/.app/client/views/survey.js
index cf86c5418df..b70ef65ad9c 100644
--- a/packages/rocketchat-livechat/.app/client/views/survey.js
+++ b/packages/rocketchat-livechat/.app/client/views/survey.js
@@ -9,13 +9,13 @@ Template.survey.events({
'click button.send'(e, instance) {
const formData = instance.$('form').serializeArray();
- Meteor.call('livechat:saveSurveyFeedback', visitor.getToken(), visitor.getRoom(), formData, function(/*err, results*/) {
+ Meteor.call('livechat:saveSurveyFeedback', visitor.getToken(), visitor.getRoom(), formData, function(/* err, results*/) {
instance.$('#survey').remove();
swal({
title: t('Thank_you_for_your_feedback'),
type: 'success',
- timer: 2000
+ timer: 2000,
});
});
- }
+ },
});
diff --git a/packages/rocketchat-livechat/.app/client/views/switchDepartment.js b/packages/rocketchat-livechat/.app/client/views/switchDepartment.js
index d2a4aca88c2..b7486c57ef8 100644
--- a/packages/rocketchat-livechat/.app/client/views/switchDepartment.js
+++ b/packages/rocketchat-livechat/.app/client/views/switchDepartment.js
@@ -7,8 +7,8 @@ Template.switchDepartment.helpers({
return Department.find({
showOnRegistration: true,
_id: {
- $ne: Livechat.department
- }
+ $ne: Livechat.department,
+ },
});
},
error() {
@@ -16,7 +16,7 @@ Template.switchDepartment.helpers({
},
showError() {
return Template.instance().error.get() ? 'show' : '';
- }
+ },
});
Template.switchDepartment.onCreated(function() {
@@ -43,11 +43,11 @@ Template.switchDepartment.events({
confirmButtonColor: '#DD6B55',
confirmButtonText: t('Yes'),
cancelButtonText: t('No'),
- html: false
+ html: false,
}).then((result) => {
if (!result.value) {
return;
- }
+ }
Meteor.call('livechat:closeByVisitor', { roomId: visitor.getRoom(), token: visitor.getToken() }, (error) => {
if (error) {
@@ -56,7 +56,7 @@ Template.switchDepartment.events({
const guestData = {
token: visitor.getToken(),
- department: departmentId
+ department: departmentId,
};
Meteor.call('livechat:setDepartmentForVisitor', guestData, (error) => {
if (error) {
@@ -67,7 +67,7 @@ Template.switchDepartment.events({
swal({
title: t('Department_switched'),
type: 'success',
- timer: 2000
+ timer: 2000,
});
});
});
@@ -76,5 +76,5 @@ Template.switchDepartment.events({
'click #btnCancel'() {
Livechat.showSwitchDepartmentForm = false;
- }
+ },
});
diff --git a/packages/rocketchat-livechat/.app/client/views/videoCall.js b/packages/rocketchat-livechat/.app/client/views/videoCall.js
index 5e44800ea4f..d0e6231feba 100644
--- a/packages/rocketchat-livechat/.app/client/views/videoCall.js
+++ b/packages/rocketchat-livechat/.app/client/views/videoCall.js
@@ -5,7 +5,7 @@ Template.videoCall.helpers({
if (Template.instance().showToolbar.get()) {
return 'visible';
}
- }
+ },
});
Template.videoCall.events({
@@ -23,7 +23,7 @@ Template.videoCall.events({
instance.showToolbar.set(false);
}, 3000);
}
- }
+ },
});
Template.videoCall.onCreated(function() {
diff --git a/packages/rocketchat-livechat/.app/imports/client/visitor.js b/packages/rocketchat-livechat/.app/imports/client/visitor.js
index 641c23589a0..51cfd5d6c15 100644
--- a/packages/rocketchat-livechat/.app/imports/client/visitor.js
+++ b/packages/rocketchat-livechat/.app/imports/client/visitor.js
@@ -1,4 +1,4 @@
-/* globals Commands, Livechat */
+/* globals Commands, Livechat, UserPresence */
const msgStream = new Meteor.Streamer('room-messages');
export default {
@@ -56,7 +56,7 @@ export default {
},
setToken(token) {
- if (!token || token == this.token.get()) {
+ if (!token || token === this.token.get()) {
return;
}
@@ -87,7 +87,7 @@ export default {
const data = {
token: this.getToken(),
- name
+ name,
};
Meteor.call('livechat:registerGuest', data);
@@ -102,7 +102,7 @@ export default {
const data = {
token: this.getToken(),
- email
+ email,
};
Meteor.call('livechat:registerGuest', data);
@@ -166,5 +166,5 @@ export default {
UserPresence.awayTime = 300000; // 5 minutes
UserPresence.start(token);
});
- }
+ },
};
diff --git a/packages/rocketchat-livechat/.app/package-lock.json b/packages/rocketchat-livechat/.app/package-lock.json
new file mode 100644
index 00000000000..bbfd1e1275a
--- /dev/null
+++ b/packages/rocketchat-livechat/.app/package-lock.json
@@ -0,0 +1,1338 @@
+{
+ "name": "rocketchat-livechat",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "@babel/runtime": {
+ "version": "7.0.0-beta.52",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0-beta.52.tgz",
+ "integrity": "sha1-PztCuCuStOGig/x43xuy/Uuo0Mc=",
+ "requires": {
+ "core-js": "2.5.7",
+ "regenerator-runtime": "0.12.0"
+ }
+ },
+ "autolinker": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-1.6.2.tgz",
+ "integrity": "sha512-IKLGtYFb3jzGTtgCpb4bm//1sXmmmgmr0msKshhYoc7EsWmLCFvuyxLcEIfcZ5gbCgZGXrnXkOkcBblOFEnlog=="
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "bcrypt": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-2.0.1.tgz",
+ "integrity": "sha512-DwB7WgJPdskbR+9Y3OTJtwRq09Lmm7Na6b+4ewvXjkD0nfNRi1OozxljHm5ETlDCBq9DTy04lQz+rj+T2ztIJg==",
+ "requires": {
+ "nan": "2.10.0",
+ "node-pre-gyp": "0.9.1"
+ },
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
+ },
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
+ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
+ "requires": {
+ "delegates": "1.0.0",
+ "readable-stream": "2.3.5"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "chownr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
+ "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE="
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
+ "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8="
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
+ },
+ "detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
+ },
+ "fs-minipass": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
+ "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
+ "requires": {
+ "minipass": "2.2.4"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "requires": {
+ "aproba": "1.2.0",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "4.1.1",
+ "signal-exit": "3.0.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wide-align": "1.1.2"
+ }
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
+ },
+ "iconv-lite": {
+ "version": "0.4.21",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz",
+ "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==",
+ "requires": {
+ "safer-buffer": "2.1.2"
+ }
+ },
+ "ignore-walk": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
+ "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
+ "requires": {
+ "minimatch": "3.0.4"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ },
+ "ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "1.1.11"
+ }
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ },
+ "minipass": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz",
+ "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==",
+ "requires": {
+ "safe-buffer": "5.1.1",
+ "yallist": "3.0.2"
+ },
+ "dependencies": {
+ "yallist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz",
+ "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k="
+ }
+ }
+ },
+ "minizlib": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz",
+ "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==",
+ "requires": {
+ "minipass": "2.2.4"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "requires": {
+ "minimist": "0.0.8"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "needle": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz",
+ "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==",
+ "requires": {
+ "debug": "2.6.9",
+ "iconv-lite": "0.4.21",
+ "sax": "1.2.4"
+ }
+ },
+ "node-pre-gyp": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.9.1.tgz",
+ "integrity": "sha1-8RwHUW3ZL4cZnbx+GDjqt81WyeA=",
+ "requires": {
+ "detect-libc": "1.0.3",
+ "mkdirp": "0.5.1",
+ "needle": "2.2.0",
+ "nopt": "4.0.1",
+ "npm-packlist": "1.1.10",
+ "npmlog": "4.1.2",
+ "rc": "1.2.6",
+ "rimraf": "2.6.2",
+ "semver": "5.5.0",
+ "tar": "4.4.1"
+ }
+ },
+ "nopt": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
+ "requires": {
+ "abbrev": "1.1.1",
+ "osenv": "0.1.5"
+ }
+ },
+ "npm-bundled": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz",
+ "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow=="
+ },
+ "npm-packlist": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz",
+ "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==",
+ "requires": {
+ "ignore-walk": "3.0.1",
+ "npm-bundled": "1.0.3"
+ }
+ },
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "requires": {
+ "are-we-there-yet": "1.1.4",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
+ }
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
+ "osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
+ },
+ "rc": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.6.tgz",
+ "integrity": "sha1-6xiYnG1PTxYsOZ953dKfODVWgJI=",
+ "requires": {
+ "deep-extend": "0.4.2",
+ "ini": "1.3.5",
+ "minimist": "1.2.0",
+ "strip-json-comments": "2.0.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz",
+ "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==",
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+ "requires": {
+ "glob": "7.1.2"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "semver": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ },
+ "tar": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz",
+ "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==",
+ "requires": {
+ "chownr": "1.0.1",
+ "fs-minipass": "1.2.5",
+ "minipass": "2.2.4",
+ "minizlib": "1.1.0",
+ "mkdirp": "0.5.1",
+ "safe-buffer": "5.1.1",
+ "yallist": "3.0.2"
+ },
+ "dependencies": {
+ "yallist": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz",
+ "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k="
+ }
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "wide-align": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
+ "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
+ "requires": {
+ "string-width": "1.0.2"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ }
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "core-js": {
+ "version": "2.5.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
+ "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw=="
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ },
+ "inherits-ex": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/inherits-ex/-/inherits-ex-1.2.3.tgz",
+ "integrity": "sha512-DCZqD7BpjXqaha8IKcoAE3ZZr6Hi12ropV1h+3pBnirE14mNRwLuYySvYxUSBemTQ40SjAxPL8BTk2Xw/3IF9w==",
+ "requires": {
+ "xtend": "4.0.1"
+ }
+ },
+ "jquery": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz",
+ "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg=="
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ },
+ "meteor-node-stubs": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-0.3.3.tgz",
+ "integrity": "sha512-TI1aQRK0vqs94OCkUMkmf5lXNWfIsjSaEDP1inUuwRGt9w8/S2V+HdRikz9r1k/gew+7NcJieaqHsHX7pSTEgA==",
+ "requires": {
+ "assert": "1.4.1",
+ "browserify-zlib": "0.1.4",
+ "buffer": "4.9.1",
+ "console-browserify": "1.1.0",
+ "constants-browserify": "1.0.0",
+ "crypto-browserify": "3.12.0",
+ "domain-browser": "1.2.0",
+ "events": "1.1.1",
+ "https-browserify": "0.0.1",
+ "os-browserify": "0.2.1",
+ "path-browserify": "0.0.0",
+ "process": "0.11.10",
+ "punycode": "1.4.1",
+ "querystring-es3": "0.2.1",
+ "readable-stream": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12",
+ "stream-browserify": "2.0.1",
+ "stream-http": "2.8.0",
+ "string_decoder": "1.1.0",
+ "timers-browserify": "1.4.2",
+ "tty-browserify": "0.0.0",
+ "url": "0.11.0",
+ "util": "0.10.3",
+ "vm-browserify": "0.0.4"
+ },
+ "dependencies": {
+ "asn1.js": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+ "requires": {
+ "bn.js": "4.11.8",
+ "inherits": "2.0.1",
+ "minimalistic-assert": "1.0.0"
+ }
+ },
+ "assert": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
+ "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
+ "requires": {
+ "util": "0.10.3"
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "base64-js": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.3.tgz",
+ "integrity": "sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w=="
+ },
+ "bn.js": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
+ },
+ "browserify-aes": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz",
+ "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==",
+ "requires": {
+ "buffer-xor": "1.0.3",
+ "cipher-base": "1.0.4",
+ "create-hash": "1.1.3",
+ "evp_bytestokey": "1.0.3",
+ "inherits": "2.0.1",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
+ "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
+ "requires": {
+ "browserify-aes": "1.1.1",
+ "browserify-des": "1.0.0",
+ "evp_bytestokey": "1.0.3"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
+ "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
+ "requires": {
+ "cipher-base": "1.0.4",
+ "des.js": "1.0.0",
+ "inherits": "2.0.1"
+ }
+ },
+ "browserify-rsa": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+ "requires": {
+ "bn.js": "4.11.8",
+ "randombytes": "2.0.6"
+ }
+ },
+ "browserify-sign": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
+ "requires": {
+ "bn.js": "4.11.8",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "elliptic": "6.4.0",
+ "inherits": "2.0.1",
+ "parse-asn1": "5.1.0"
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
+ "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
+ "requires": {
+ "pako": "0.2.9"
+ }
+ },
+ "buffer": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
+ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+ "requires": {
+ "base64-js": "1.2.3",
+ "ieee754": "1.1.8",
+ "isarray": "1.0.0"
+ }
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
+ },
+ "builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "requires": {
+ "inherits": "2.0.1",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "console-browserify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
+ "requires": {
+ "date-now": "0.1.4"
+ }
+ },
+ "constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U="
+ },
+ "create-ecdh": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
+ "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
+ "requires": {
+ "bn.js": "4.11.8",
+ "elliptic": "6.4.0"
+ }
+ },
+ "create-hash": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
+ "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=",
+ "requires": {
+ "cipher-base": "1.0.4",
+ "inherits": "2.0.1",
+ "ripemd160": "2.0.1",
+ "sha.js": "2.4.10"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
+ "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=",
+ "requires": {
+ "cipher-base": "1.0.4",
+ "create-hash": "1.1.3",
+ "inherits": "2.0.1",
+ "ripemd160": "2.0.1",
+ "safe-buffer": "5.1.1",
+ "sha.js": "2.4.10"
+ }
+ },
+ "crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "requires": {
+ "browserify-cipher": "1.0.0",
+ "browserify-sign": "4.0.4",
+ "create-ecdh": "4.0.0",
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "diffie-hellman": "5.0.2",
+ "inherits": "2.0.1",
+ "pbkdf2": "3.0.14",
+ "public-encrypt": "4.0.0",
+ "randombytes": "2.0.6",
+ "randomfill": "1.0.4"
+ }
+ },
+ "date-now": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs="
+ },
+ "des.js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+ "requires": {
+ "inherits": "2.0.1",
+ "minimalistic-assert": "1.0.0"
+ }
+ },
+ "diffie-hellman": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
+ "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
+ "requires": {
+ "bn.js": "4.11.8",
+ "miller-rabin": "4.0.1",
+ "randombytes": "2.0.6"
+ }
+ },
+ "domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA=="
+ },
+ "elliptic": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
+ "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
+ "requires": {
+ "bn.js": "4.11.8",
+ "brorand": "1.1.0",
+ "hash.js": "1.1.3",
+ "hmac-drbg": "1.0.1",
+ "inherits": "2.0.1",
+ "minimalistic-assert": "1.0.0",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
+ },
+ "events": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "requires": {
+ "md5.js": "1.3.4",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.1",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "hash-base": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
+ "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=",
+ "requires": {
+ "inherits": "2.0.1"
+ }
+ },
+ "hash.js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz",
+ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==",
+ "requires": {
+ "inherits": "2.0.3",
+ "minimalistic-assert": "1.0.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ }
+ }
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "requires": {
+ "hash.js": "1.1.3",
+ "minimalistic-assert": "1.0.0",
+ "minimalistic-crypto-utils": "1.0.1"
+ }
+ },
+ "https-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
+ "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI="
+ },
+ "ieee754": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
+ "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q="
+ },
+ "indexof": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
+ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "1.4.0",
+ "wrappy": "1.0.2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ },
+ "md5.js": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
+ "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
+ "requires": {
+ "hash-base": "3.0.4",
+ "inherits": "2.0.1"
+ },
+ "dependencies": {
+ "hash-base": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+ "requires": {
+ "inherits": "2.0.1",
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
+ },
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "requires": {
+ "bn.js": "4.11.8",
+ "brorand": "1.1.0"
+ }
+ },
+ "minimalistic-assert": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
+ "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M="
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "1.1.11"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1.0.2"
+ }
+ },
+ "os-browserify": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz",
+ "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8="
+ },
+ "pako": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
+ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU="
+ },
+ "parse-asn1": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
+ "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
+ "requires": {
+ "asn1.js": "4.10.1",
+ "browserify-aes": "1.1.1",
+ "create-hash": "1.1.3",
+ "evp_bytestokey": "1.0.3",
+ "pbkdf2": "3.0.14"
+ }
+ },
+ "path-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
+ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo="
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
+ "pbkdf2": {
+ "version": "3.0.14",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz",
+ "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==",
+ "requires": {
+ "create-hash": "1.1.3",
+ "create-hmac": "1.1.6",
+ "ripemd160": "2.0.1",
+ "safe-buffer": "5.1.1",
+ "sha.js": "2.4.10"
+ }
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
+ },
+ "process-nextick-args": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
+ },
+ "public-encrypt": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
+ "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
+ "requires": {
+ "bn.js": "4.11.8",
+ "browserify-rsa": "4.0.1",
+ "create-hash": "1.1.3",
+ "parse-asn1": "5.1.0",
+ "randombytes": "2.0.6"
+ }
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
+ },
+ "querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
+ },
+ "randombytes": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz",
+ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==",
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "requires": {
+ "randombytes": "2.0.6",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "readable-stream": {
+ "version": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12",
+ "requires": {
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.1.0",
+ "util-deprecate": "1.0.2"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ }
+ }
+ },
+ "rimraf": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+ "requires": {
+ "glob": "7.1.2"
+ }
+ },
+ "ripemd160": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
+ "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=",
+ "requires": {
+ "hash-base": "2.0.2",
+ "inherits": "2.0.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
+ },
+ "sha.js": {
+ "version": "2.4.10",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.10.tgz",
+ "integrity": "sha512-vnwmrFDlOExK4Nm16J2KMWHLrp14lBrjxMxBJpu++EnsuBmpiYaM/MEs46Vxxm/4FvdP5yTwuCTO9it5FSjrqA==",
+ "requires": {
+ "inherits": "2.0.1",
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "stream-browserify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
+ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
+ "requires": {
+ "inherits": "2.0.1",
+ "readable-stream": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12"
+ }
+ },
+ "stream-http": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz",
+ "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==",
+ "requires": {
+ "builtin-status-codes": "3.0.0",
+ "inherits": "2.0.1",
+ "readable-stream": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12",
+ "to-arraybuffer": "1.0.1",
+ "xtend": "4.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.0.tgz",
+ "integrity": "sha512-8zQpRF6juocE69ae7CSPmYEGJe4VCXwP6S6dxUWI7i53Gwv54/ec41fiUA+X7BPGGv7fRSQJjBQVa0gomGaOgg==",
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "timers-browserify": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
+ "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=",
+ "requires": {
+ "process": "0.11.10"
+ }
+ },
+ "to-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
+ },
+ "tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
+ }
+ }
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "requires": {
+ "inherits": "2.0.1"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "vm-browserify": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
+ "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
+ "requires": {
+ "indexof": "0.0.1"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
+ }
+ }
+ },
+ "mime-db": {
+ "version": "1.35.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz",
+ "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg=="
+ },
+ "mime-type": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/mime-type/-/mime-type-3.0.5.tgz",
+ "integrity": "sha1-ftKSan2oImifgSVPWYf+lQNiLpo=",
+ "requires": {
+ "media-typer": "0.3.0",
+ "minimatch": "3.0.4",
+ "path.js": "1.0.7",
+ "util-ex": "0.3.15"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "1.1.11"
+ }
+ },
+ "moment": {
+ "version": "2.22.2",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz",
+ "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y="
+ },
+ "nan": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
+ "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA=="
+ },
+ "path.js": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path.js/-/path.js-1.0.7.tgz",
+ "integrity": "sha1-fRNrYH3hm/2YugaIdJJih+ZTSTk=",
+ "requires": {
+ "escape-string-regexp": "1.0.5",
+ "inherits-ex": "1.2.3",
+ "util-ex": "0.3.15"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.0.tgz",
+ "integrity": "sha512-SpV2LhF5Dm9UYMEprB3WwsBnWwqTrmjrm2UZb42cl2G02WVGgx7Mg8aa9pdLEKp6hZ+/abcMc2NxKA8f02EG2w=="
+ },
+ "sprintf-js": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz",
+ "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw="
+ },
+ "sweetalert2": {
+ "version": "7.25.0",
+ "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-7.25.0.tgz",
+ "integrity": "sha512-RwwhSnnLnTWYug/a7rDV6yWee/E6s13c2qkn61Flw6/ZUauIxcbKXz1bTdb/LBzykumI+bjwsJCLgEaFq6t6WA=="
+ },
+ "toastr": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/toastr/-/toastr-2.1.4.tgz",
+ "integrity": "sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE=",
+ "requires": {
+ "jquery": "3.3.1"
+ }
+ },
+ "underscore": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
+ "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
+ },
+ "underscore.string": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz",
+ "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=",
+ "requires": {
+ "sprintf-js": "1.1.1",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ },
+ "util-ex": {
+ "version": "0.3.15",
+ "resolved": "https://registry.npmjs.org/util-ex/-/util-ex-0.3.15.tgz",
+ "integrity": "sha1-+SYc2hPEMn0HQMvme+Eife2LAFg=",
+ "requires": {
+ "inherits-ex": "1.2.3",
+ "xtend": "4.0.1"
+ }
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
+ }
+ }
+}
diff --git a/packages/rocketchat-livechat/client/views/app/livechatAppearance.js b/packages/rocketchat-livechat/client/views/app/livechatAppearance.js
index bad515522e0..2776756385b 100644
--- a/packages/rocketchat-livechat/client/views/app/livechatAppearance.js
+++ b/packages/rocketchat-livechat/client/views/app/livechatAppearance.js
@@ -266,7 +266,7 @@ Template.livechatAppearance.events({
instance[e.currentTarget.name].set(e.currentTarget.checked);
},
'change .preview-settings, keyup .preview-settings'(e, instance) {
- let value = e.currentTarget.value;
+ let { value } = e.currentTarget;
if (e.currentTarget.type === 'radio') {
value = value === 'true';
}
diff --git a/packages/rocketchat-livechat/client/views/app/livechatOfficeHours.js b/packages/rocketchat-livechat/client/views/app/livechatOfficeHours.js
index 51d7f16bb73..08d45cb4f50 100644
--- a/packages/rocketchat-livechat/client/views/app/livechatOfficeHours.js
+++ b/packages/rocketchat-livechat/client/views/app/livechatOfficeHours.js
@@ -66,7 +66,7 @@ Template.livechatOfficeHours.events({
instance.dayVars[temp[0]][temp[1]].set(e.target.checked);
},
'change .preview-settings, keyup .preview-settings'(e, instance) {
- let value = e.currentTarget.value;
+ let { value } = e.currentTarget;
if (e.currentTarget.type === 'radio') {
value = value === 'true';
instance[e.currentTarget.name].set(value);
diff --git a/packages/rocketchat-livechat/imports/server/rest/sms.js b/packages/rocketchat-livechat/imports/server/rest/sms.js
index 37d110c0299..1f4b9ccce17 100644
--- a/packages/rocketchat-livechat/imports/server/rest/sms.js
+++ b/packages/rocketchat-livechat/imports/server/rest/sms.js
@@ -51,7 +51,7 @@ RocketChat.API.v1.addRoute('livechat/sms-incoming/:service', {
message_link: curr.url,
};
- const contentType = curr.contentType;
+ const { contentType } = curr;
switch (contentType.substr(0, contentType.indexOf('/'))) {
case 'image':
attachment.image_url = curr.url;
diff --git a/packages/rocketchat-livechat/livechat.js b/packages/rocketchat-livechat/livechat.js
index 09a688dfc2b..771a1457de9 100644
--- a/packages/rocketchat-livechat/livechat.js
+++ b/packages/rocketchat-livechat/livechat.js
@@ -3,7 +3,7 @@ import _ from 'underscore';
import url from 'url';
WebApp = Package.webapp.WebApp;
-const Autoupdate = Package.autoupdate.Autoupdate;
+const { Autoupdate } = Package.autoupdate.Autoupdate;
WebApp.connectHandlers.use('/livechat', Meteor.bindEnvironment((req, res, next) => {
const reqUrl = url.parse(req.url);
diff --git a/packages/rocketchat-livechat/server/lib/Livechat.js b/packages/rocketchat-livechat/server/lib/Livechat.js
index df81b9bfa27..ba1f95a081c 100644
--- a/packages/rocketchat-livechat/server/lib/Livechat.js
+++ b/packages/rocketchat-livechat/server/lib/Livechat.js
@@ -366,7 +366,7 @@ RocketChat.Livechat = {
return RocketChat.Livechat.returnRoomAsInquiry(room._id, transferData.departmentId);
}
- const servedBy = room.servedBy;
+ const { servedBy } = room;
if (agent && agent.agentId !== servedBy._id) {
RocketChat.models.Rooms.changeAgentByRoomId(room._id, agent);
diff --git a/packages/rocketchat-livestream/server/functions/livestream.js b/packages/rocketchat-livestream/server/functions/livestream.js
index 08077bc5a86..2b91962bf99 100644
--- a/packages/rocketchat-livestream/server/functions/livestream.js
+++ b/packages/rocketchat-livestream/server/functions/livestream.js
@@ -1,5 +1,5 @@
import google from 'googleapis';
-const OAuth2 = google.auth.OAuth2;
+const { OAuth2 } = google.auth;
const p = (fn) => new Promise(function(resolve, reject) {
diff --git a/packages/rocketchat-livestream/server/routes.js b/packages/rocketchat-livestream/server/routes.js
index 186fb6e70ec..9d9436333a4 100644
--- a/packages/rocketchat-livestream/server/routes.js
+++ b/packages/rocketchat-livestream/server/routes.js
@@ -1,5 +1,5 @@
import google from 'googleapis';
-const OAuth2 = google.auth.OAuth2;
+const { OAuth2 } = google.auth;
RocketChat.API.v1.addRoute('livestream/oauth', {
get: function functionName() {
diff --git a/packages/rocketchat-logger/client/logger.js b/packages/rocketchat-logger/client/logger.js
index 7ee726bab75..52aae560559 100644
--- a/packages/rocketchat-logger/client/logger.js
+++ b/packages/rocketchat-logger/client/logger.js
@@ -1,6 +1,6 @@
import _ from 'underscore';
-const Template = Package.templating.Template;
+const { Template } = Package.templating;
Template.log = false;
@@ -24,14 +24,14 @@ const wrapHelpersAndEvents = function(original, prefix, color) {
const template = this;
const fn1 = function(name, fn) {
if (fn instanceof Function) {
- return dict[name] = function() {
+ return dict[name] = function(...args) {
- const result = fn.apply(this, arguments);
+ const result = fn.apply(this, args);
if (Template.log === true) {
const completeName = `${ prefix }:${ template.viewName.replace('Template.', '') }.${ name }`;
if (Template.logMatch.test(completeName)) {
console.log(`%c${ completeName }`, `color: ${ color }`, {
- args: arguments,
+ args,
scope: this,
result,
});
@@ -56,13 +56,13 @@ const wrapLifeCycle = function(original, prefix, color) {
return function(fn) {
const template = this;
if (fn instanceof Function) {
- const wrap = function() {
- const result = fn.apply(this, arguments);
+ const wrap = function(...args) {
+ const result = fn.apply(this, args);
if (Template.log === true) {
const completeName = `${ prefix }:${ template.viewName.replace('Template.', '') }.${ name }`;
if (Template.logMatch.test(completeName)) {
console.log(`%c${ completeName }`, `color: ${ color }; font-weight: bold`, {
- args: arguments,
+ args,
scope: this,
result,
});
diff --git a/packages/rocketchat-logger/server/server.js b/packages/rocketchat-logger/server/server.js
index 870dd96f70c..dc519f8d097 100644
--- a/packages/rocketchat-logger/server/server.js
+++ b/packages/rocketchat-logger/server/server.js
@@ -256,9 +256,9 @@ class _Logger {
return lines;
}
- _log(options) {
+ _log(options, ...args) {
if (LoggerManager.enabled === false) {
- LoggerManager.addToQueue(this, arguments);
+ LoggerManager.addToQueue(this, [options, ...args]);
return;
}
if (options.level == null) {
@@ -327,7 +327,7 @@ SystemLogger = new Logger('System', { // eslint-disable-line no-undef
const StdOut = new class extends EventEmitter {
constructor() {
super();
- const write = process.stdout.write;
+ const { write } = process.stdout;
this.queue = [];
process.stdout.write = (...args) => {
write.apply(process.stdout, args);
diff --git a/packages/rocketchat-markdown/parser/original/code.js b/packages/rocketchat-markdown/parser/original/code.js
index d1c7368d6ea..a208ac561ed 100644
--- a/packages/rocketchat-markdown/parser/original/code.js
+++ b/packages/rocketchat-markdown/parser/original/code.js
@@ -45,12 +45,8 @@ const codeblocks = (message) => {
// Process highlight if this part is code
const singleLine = codeMatch[0].indexOf('\n') === -1;
const lang = !singleLine && Array.from(hljs.listLanguages()).includes(s.trim(codeMatch[1])) ? s.trim(codeMatch[1]) : '';
- const code =
- singleLine ?
- s.unescapeHTML(codeMatch[1]) :
- lang === '' ?
- s.unescapeHTML(codeMatch[1] + codeMatch[2]) :
- s.unescapeHTML(codeMatch[2]);
+ const emptyLanguage = lang === '' ? s.unescapeHTML(codeMatch[1] + codeMatch[2]) : s.unescapeHTML(codeMatch[2]);
+ const code = singleLine ? s.unescapeHTML(codeMatch[1]) : emptyLanguage;
const result = lang === '' ? hljs.highlightAuto((lang + code)) : hljs.highlight(lang, code);
const token = `=!=${ Random.id() }=!=`;
diff --git a/packages/rocketchat-mentions/server/server.js b/packages/rocketchat-mentions/server/server.js
index 8faddd3c501..ea491b61970 100644
--- a/packages/rocketchat-mentions/server/server.js
+++ b/packages/rocketchat-mentions/server/server.js
@@ -10,7 +10,7 @@ const mention = new MentionsServer({
getChannels: (channels) => RocketChat.models.Rooms.find({ name: { $in: _.unique(channels) }, t: 'c' }, { fields: { _id: 1, name: 1 } }).fetch(),
onMaxRoomMembersExceeded({ sender, rid }) {
// Get the language of the user for the error notification.
- const language = this.getUser(sender._id).language;
+ const { language } = this.getUser(sender._id);
const msg = TAPi18n.__('Group_mentions_disabled_x_members', { total: this.messageMaxAll }, language);
RocketChat.Notifications.notifyUser(sender._id, 'message', {
diff --git a/packages/rocketchat-migrations/migrations.js b/packages/rocketchat-migrations/migrations.js
index c0e283a74c6..068f0d08610 100644
--- a/packages/rocketchat-migrations/migrations.js
+++ b/packages/rocketchat-migrations/migrations.js
@@ -168,8 +168,7 @@ Migrations.migrateTo = function(command) {
subcommand = command.split(',')[1];
}
- const maxAttempts = Migrations.options.maxAttempts;
- const retryInterval = Migrations.options.retryInterval;
+ const { maxAttempts, retryInterval } = Migrations.options;
let migrated;
for (let attempts = 1; attempts <= maxAttempts; attempts++) {
if (version === 'latest') {
diff --git a/packages/rocketchat-nrr/nrr.js b/packages/rocketchat-nrr/nrr.js
index f489f2da314..284beafc725 100644
--- a/packages/rocketchat-nrr/nrr.js
+++ b/packages/rocketchat-nrr/nrr.js
@@ -30,9 +30,9 @@ Blaze.toHTMLWithDataNonReactive = function(content, data) {
return Tracker.nonreactive(() => Blaze.toHTMLWithData(content, data));
};
-Blaze.registerHelper('nrrargs', function() {
+Blaze.registerHelper('nrrargs', function(...args) {
return {
- _arguments: arguments,
+ _arguments: args,
};
});
diff --git a/packages/rocketchat-oembed/server/providers.js b/packages/rocketchat-oembed/server/providers.js
index cf17a481992..0bc7dd192ce 100644
--- a/packages/rocketchat-oembed/server/providers.js
+++ b/packages/rocketchat-oembed/server/providers.js
@@ -95,7 +95,7 @@ RocketChat.callbacks.add('oembed:afterParseContent', function(data) {
queryString = QueryString.parse(data.parsedUrl.query);
}
if (queryString.url != null) {
- const url = queryString.url;
+ const { url } = queryString;
const provider = providers.getProviderForUrl(url);
if (provider != null) {
if (data.content && data.content.body) {
diff --git a/packages/rocketchat-push-notifications/client/views/pushNotificationsFlexTab.js b/packages/rocketchat-push-notifications/client/views/pushNotificationsFlexTab.js
index 824e8210d57..d27db69d362 100644
--- a/packages/rocketchat-push-notifications/client/views/pushNotificationsFlexTab.js
+++ b/packages/rocketchat-push-notifications/client/views/pushNotificationsFlexTab.js
@@ -158,7 +158,9 @@ Template.pushNotificationsFlexTab.onCreated(function() {
}
let value = this.form[field].get();
- value = typeof value === 'boolean' ? value ? '1' : '0' : value;
+ if (typeof value === 'boolean') {
+ value = value ? '1' : '0';
+ }
const rid = Session.get('openedRoom');
switch (field) {
case 'desktopNotificationDuration':
@@ -221,7 +223,7 @@ Template.pushNotificationsFlexTab.events({
switch (key) {
case 'audioNotificationValue':
- const audioAssets = RocketChat.CustomSounds && RocketChat.CustomSounds.getList && RocketChat.CustomSounds.getList() || [];
+ const audioAssets = (RocketChat.CustomSounds && RocketChat.CustomSounds.getList && RocketChat.CustomSounds.getList()) || [];
const audioAssetsArray = audioAssets.map((audio) => ({
id: `audioNotificationValue${ audio.name }`,
name: 'audioNotificationValue',
diff --git a/packages/rocketchat-sandstorm/server/lib.js b/packages/rocketchat-sandstorm/server/lib.js
index 3c274fbedfe..9591fd0df0e 100644
--- a/packages/rocketchat-sandstorm/server/lib.js
+++ b/packages/rocketchat-sandstorm/server/lib.js
@@ -6,7 +6,7 @@ RocketChat.Sandstorm = {};
if (process.env.SANDSTORM === '1') {
const Capnp = require('capnp');
- const SandstormHttpBridge = Capnp.importSystem('sandstorm/sandstorm-http-bridge.capnp').SandstormHttpBridge;
+ const { SandstormHttpBridge } = Capnp.importSystem('sandstorm/sandstorm-http-bridge.capnp');
let capnpConnection = null;
let httpBridge = null;
diff --git a/packages/rocketchat-sandstorm/server/powerbox.js b/packages/rocketchat-sandstorm/server/powerbox.js
index 9f47bb47cc1..16aa28a346c 100644
--- a/packages/rocketchat-sandstorm/server/powerbox.js
+++ b/packages/rocketchat-sandstorm/server/powerbox.js
@@ -10,8 +10,8 @@ if (process.env.SANDSTORM === '1') {
RocketChat.Sandstorm.offerUiView = function(token, serializedDescriptor, sessionId) {
const httpBridge = getHttpBridge();
const session = httpBridge.getSessionContext(sessionId).context;
- const api = httpBridge.getSandstormApi(sessionId).api;
- const cap = waitPromise(api.restore(new Buffer(token, 'base64'))).cap;
+ const { api } = httpBridge.getSandstormApi(sessionId);
+ const { cap } = waitPromise(api.restore(new Buffer(token, 'base64')));
return waitPromise(session.offer(cap, undefined, { tags: [{
id: '15831515641881813735',
value: new Buffer(serializedDescriptor, 'base64'),
@@ -26,10 +26,10 @@ if (process.env.SANDSTORM === '1') {
const httpBridge = getHttpBridge();
const session = httpBridge.getSessionContext(sessionId).context;
const cap = waitPromise(session.claimRequest(token)).cap.castAs(Grain.UiView);
- const api = httpBridge.getSandstormApi(sessionId).api;
+ const { api } = httpBridge.getSandstormApi(sessionId);
const newToken = waitPromise(api.save(cap)).token.toString('base64');
const viewInfo = waitPromise(cap.getViewInfo());
- const appTitle = viewInfo.appTitle;
+ const { appTitle } = viewInfo;
const asset = waitPromise(viewInfo.grainIcon.getUrl());
const appIconUrl = `${ asset.protocol }://${ asset.hostPath }`;
return {
diff --git a/packages/rocketchat-search/client/search/search.js b/packages/rocketchat-search/client/search/search.js
index f4647c57617..de1c8300c91 100644
--- a/packages/rocketchat-search/client/search/search.js
+++ b/packages/rocketchat-search/client/search/search.js
@@ -115,7 +115,7 @@ Template.RocketSearch.events = {
return evt.preventDefault();
}
- const value = evt.target.value;
+ const { value } = evt.target;
if (evt.keyCode === 40 || evt.keyCode === 38) {
return evt.preventDefault();
diff --git a/packages/rocketchat-search/server/index.js b/packages/rocketchat-search/server/index.js
index 6df25facaab..2557161112e 100644
--- a/packages/rocketchat-search/server/index.js
+++ b/packages/rocketchat-search/server/index.js
@@ -1,11 +1,10 @@
-import './model/provider';
+import SearchProvider from './model/provider';
import './service/providerService.js';
import './service/validationService.js';
import './events/events.js';
import './provider/defaultProvider.js';
import { searchProviderService } from './service/providerService';
-import SearchProvider from './model/provider';
export {
searchProviderService,
diff --git a/packages/rocketchat-search/server/service/providerService.js b/packages/rocketchat-search/server/service/providerService.js
index 1b7467da39e..701d34961b5 100644
--- a/packages/rocketchat-search/server/service/providerService.js
+++ b/packages/rocketchat-search/server/service/providerService.js
@@ -75,7 +75,7 @@ class SearchProviderService {
start() {
SearchLogger.debug('Load data for all providers');
- const providers = this.providers;
+ const { providers } = this;
// add settings for admininistration
RocketChat.settings.addGroup('Search', function() {
diff --git a/packages/rocketchat-setup-wizard/client/setupWizard.js b/packages/rocketchat-setup-wizard/client/setupWizard.js
index b236305ee63..33119a940ce 100644
--- a/packages/rocketchat-setup-wizard/client/setupWizard.js
+++ b/packages/rocketchat-setup-wizard/client/setupWizard.js
@@ -93,7 +93,7 @@ Template.setupWizard.onCreated(function() {
}
const jsonString = localStorage.getItem('wizard');
- const state = jsonString && JSON.parse(jsonString) || {};
+ const state = (jsonString && JSON.parse(jsonString)) || {};
Object.entries(state).forEach((entry) => this.state.set(...entry));
this.autorun((c) => {
diff --git a/packages/rocketchat-slackbridge/server/RocketAdapter.js b/packages/rocketchat-slackbridge/server/RocketAdapter.js
index 8c3eab7e504..7f71c82a908 100644
--- a/packages/rocketchat-slackbridge/server/RocketAdapter.js
+++ b/packages/rocketchat-slackbridge/server/RocketAdapter.js
@@ -256,7 +256,7 @@ export default class RocketAdapter {
if (slackResults && slackResults.data && slackResults.data.ok === true && slackResults.data.user) {
const rocketUserData = slackResults.data.user;
const isBot = rocketUserData.is_bot === true;
- const email = rocketUserData.profile && rocketUserData.profile.email || '';
+ const email = (rocketUserData.profile && rocketUserData.profile.email) || '';
let existingRocketUser;
if (!isBot) {
existingRocketUser = RocketChat.models.Users.findOneByEmailAddress(email) || RocketChat.models.Users.findOneByUsername(rocketUserData.name);
diff --git a/packages/rocketchat-slackbridge/server/SlackAdapter.js b/packages/rocketchat-slackbridge/server/SlackAdapter.js
index 5846fdd3654..87cb1c2974a 100644
--- a/packages/rocketchat-slackbridge/server/SlackAdapter.js
+++ b/packages/rocketchat-slackbridge/server/SlackAdapter.js
@@ -25,7 +25,7 @@ export default class SlackAdapter {
connect(apiToken) {
this.apiToken = apiToken;
- const RTMClient = this.slackClient.RTMClient;
+ const { RTMClient } = this.slackClient;
if (RTMClient != null) {
RTMClient.disconnect;
}
diff --git a/packages/rocketchat-slashcommands-help/server.js b/packages/rocketchat-slashcommands-help/server.js
index b279ce279aa..7c0ed451595 100644
--- a/packages/rocketchat-slashcommands-help/server.js
+++ b/packages/rocketchat-slashcommands-help/server.js
@@ -29,7 +29,7 @@ RocketChat.slashCommands.add('help', function Help(command, params, item) {
New_line_message_compose_input: 'Shift + Enter',
},
];
- keys.map((key) => {
+ keys.forEach((key) => {
RocketChat.Notifications.notifyUser(Meteor.userId(), 'message', {
_id: Random.id(),
rid: item.rid,
diff --git a/packages/rocketchat-slashcommands-topic/topic.js b/packages/rocketchat-slashcommands-topic/topic.js
index 2dd849d0b28..f68870d06a1 100644
--- a/packages/rocketchat-slashcommands-topic/topic.js
+++ b/packages/rocketchat-slashcommands-topic/topic.js
@@ -5,7 +5,7 @@
function Topic(command, params, item) {
if (command === 'topic') {
- if (Meteor.isClient && RocketChat.authz.hasAtLeastOnePermission('edit-room', item.rid) || (Meteor.isServer && RocketChat.authz.hasPermission(Meteor.userId(), 'edit-room', item.rid))) {
+ if ((Meteor.isClient && RocketChat.authz.hasAtLeastOnePermission('edit-room', item.rid)) || (Meteor.isServer && RocketChat.authz.hasPermission(Meteor.userId(), 'edit-room', item.rid))) {
Meteor.call('saveRoomSettings', item.rid, 'roomTopic', params, (err) => {
if (err) {
if (Meteor.isClient) {
diff --git a/packages/rocketchat-theme/server/server.js b/packages/rocketchat-theme/server/server.js
index f98eab74abc..61325fcf3f9 100644
--- a/packages/rocketchat-theme/server/server.js
+++ b/packages/rocketchat-theme/server/server.js
@@ -28,7 +28,7 @@ WebApp.rawConnectHandlers.use(function(req, res, next) {
}
});
-const calculateClientHash = WebAppHashing.calculateClientHash;
+const { calculateClientHash } = WebAppHashing;
WebAppHashing.calculateClientHash = function(manifest, includeFilter, runtimeConfigOverride) {
const css = RocketChat.theme.getCss();
diff --git a/packages/rocketchat-tooltip/client/rocketchat-tooltip.js b/packages/rocketchat-tooltip/client/rocketchat-tooltip.js
index aa55090e1ee..eea7f3f6689 100644
--- a/packages/rocketchat-tooltip/client/rocketchat-tooltip.js
+++ b/packages/rocketchat-tooltip/client/rocketchat-tooltip.js
@@ -55,7 +55,7 @@ RocketChat.tooltip = {
const tip = $('.tooltip');
let top = sourcePos.top - tip.outerHeight() - 5;
- let left = sourcePos.left;
+ let { left } = sourcePos;
left = left + (sourceWidth / 2) - (tip.outerWidth() / 2);
diff --git a/packages/rocketchat-ui-account/client/accountPreferences.js b/packages/rocketchat-ui-account/client/accountPreferences.js
index da74a9b2ba5..cf7a8cdddb8 100644
--- a/packages/rocketchat-ui-account/client/accountPreferences.js
+++ b/packages/rocketchat-ui-account/client/accountPreferences.js
@@ -316,7 +316,7 @@ Template.accountPreferences.events({
'click .js-dont-ask-remove'(e) {
e.preventDefault();
const selectEl = document.getElementById('dont-ask');
- const options = selectEl.options;
+ const { options } = selectEl;
const selectedOption = selectEl.value;
const optionIndex = Array.from(options).findIndex((option) => option.value === selectedOption);
diff --git a/packages/rocketchat-ui-account/client/accountProfile.js b/packages/rocketchat-ui-account/client/accountProfile.js
index aeed0cf9b36..cc8b489373d 100644
--- a/packages/rocketchat-ui-account/client/accountProfile.js
+++ b/packages/rocketchat-ui-account/client/accountProfile.js
@@ -342,7 +342,7 @@ Template.accountProfile.events({
'input [name=email]'(e, instance) {
const input = e.target;
const position = input.selectionEnd || input.selectionStart;
- const length = input.value.length;
+ const { length } = input.value;
const modified = filterEmail(input.value);
input.value = modified;
document.activeElement === input && e && /input/i.test(e.type) && (input.selectionEnd = position + input.value.length - length);
@@ -351,7 +351,7 @@ Template.accountProfile.events({
'input [name=username]'(e, instance) {
const input = e.target;
const position = input.selectionEnd || input.selectionStart;
- const length = input.value.length;
+ const { length } = input.value;
const modified = filterNames(input.value);
input.value = modified;
document.activeElement === input && e && /input/i.test(e.type) && (input.selectionEnd = position + input.value.length - length);
@@ -499,7 +499,7 @@ Template.accountProfile.events({
},
'change .js-select-avatar-upload [type=file]'(event, template) {
const e = event.originalEvent || event;
- let files = e.target.files;
+ let { files } = e.target;
if (!files || files.length === 0) {
files = (e.dataTransfer && e.dataTransfer.files) || [];
}
diff --git a/packages/rocketchat-ui-account/client/avatar/avatar.js b/packages/rocketchat-ui-account/client/avatar/avatar.js
index 7fd9baff00a..51f8c69b30d 100644
--- a/packages/rocketchat-ui-account/client/avatar/avatar.js
+++ b/packages/rocketchat-ui-account/client/avatar/avatar.js
@@ -2,7 +2,7 @@ Template.avatar.helpers({
src() {
let { url } = Template.instance().data;
if (!url) {
- let username = this.username;
+ let { username } = this;
if (username == null && this.userId != null) {
const user = Meteor.users.findOne(this.userId);
username = user && user.username;
diff --git a/packages/rocketchat-ui-account/client/avatar/prompt.js b/packages/rocketchat-ui-account/client/avatar/prompt.js
index 0e826bb7e74..108a56bf74f 100644
--- a/packages/rocketchat-ui-account/client/avatar/prompt.js
+++ b/packages/rocketchat-ui-account/client/avatar/prompt.js
@@ -81,9 +81,9 @@ Template.avatarPrompt.events({
toastr.error(t('Please_enter_value_for_url'));
}
} else if (this.service === 'upload') {
- let files = instance.find('input[type=file]').files;
+ let { files } = instance.find('input[type=file]');
if (!files || files.length === 0) {
- files = event.dataTransfer && event.dataTransfer.files || [];
+ files = (event.dataTransfer && event.dataTransfer.files) || [];
}
for (let i = 0; i < files.length; i++) {
@@ -139,7 +139,7 @@ Template.avatarPrompt.events({
},
'change .avatar-file-input'(event, template) {
const e = event.originalEvent || event;
- let files = e.target.files;
+ let { files } = e.target;
if (!files || files.length === 0) {
files = (e.dataTransfer && e.dataTransfer.files) || [];
}
diff --git a/packages/rocketchat-ui-admin/client/admin.js b/packages/rocketchat-ui-admin/client/admin.js
index 535420b22b9..e9ec12f9121 100644
--- a/packages/rocketchat-ui-admin/client/admin.js
+++ b/packages/rocketchat-ui-admin/client/admin.js
@@ -494,7 +494,7 @@ Template.admin.events({
},
'change input[type=file]'(ev) {
const e = ev.originalEvent || ev;
- let files = e.target.files;
+ let { files } = e.target;
if (!files || files.length === 0) {
if (e.dataTransfer && e.dataTransfer.files) {
files = e.dataTransfer.files;
diff --git a/packages/rocketchat-ui-admin/client/adminInfo.js b/packages/rocketchat-ui-admin/client/adminInfo.js
index 8e37efd3566..75b7fcfdc1a 100644
--- a/packages/rocketchat-ui-admin/client/adminInfo.js
+++ b/packages/rocketchat-ui-admin/client/adminInfo.js
@@ -49,7 +49,7 @@ Template.adminInfo.helpers({
return RocketChat.Info;
},
build() {
- return RocketChat.Info && RocketChat.Info.compile || RocketChat.Info && RocketChat.Info.build;
+ return RocketChat.Info && (RocketChat.Info.compile || RocketChat.Info.build);
},
});
diff --git a/packages/rocketchat-ui-clean-history/client/views/cleanHistory.js b/packages/rocketchat-ui-clean-history/client/views/cleanHistory.js
index 40eb7389aff..83f74d47748 100644
--- a/packages/rocketchat-ui-clean-history/client/views/cleanHistory.js
+++ b/packages/rocketchat-ui-clean-history/client/views/cleanHistory.js
@@ -323,7 +323,7 @@ Template.cleanHistory.events({
'input [name="users"]'(e, t) {
const input = e.target;
const position = input.selectionEnd || input.selectionStart;
- const length = input.value.length;
+ const { length } = input.value;
const modified = filterNames(input.value);
input.value = modified;
document.activeElement === input && e && /input/i.test(e.type) && (input.selectionEnd = position + input.value.length - length);
diff --git a/packages/rocketchat-ui-flextab/client/tabs/inviteUsers.js b/packages/rocketchat-ui-flextab/client/tabs/inviteUsers.js
index 62919673cfb..bca76cbe4b2 100644
--- a/packages/rocketchat-ui-flextab/client/tabs/inviteUsers.js
+++ b/packages/rocketchat-ui-flextab/client/tabs/inviteUsers.js
@@ -81,7 +81,7 @@ Template.inviteUsers.events({
'input [name="users"]'(e, t) {
const input = e.target;
const position = input.selectionEnd || input.selectionStart;
- const length = input.value.length;
+ const { length } = input.value;
const modified = filterNames(input.value);
input.value = modified;
document.activeElement === input && e && /input/i.test(e.type) && (input.selectionEnd = position + input.value.length - length);
diff --git a/packages/rocketchat-ui-flextab/client/tabs/membersList.js b/packages/rocketchat-ui-flextab/client/tabs/membersList.js
index d13a5fee733..f385395f401 100644
--- a/packages/rocketchat-ui-flextab/client/tabs/membersList.js
+++ b/packages/rocketchat-ui-flextab/client/tabs/membersList.js
@@ -197,7 +197,9 @@ Template.membersList.events({
user: this.user.user,
hideAdminControls: RocketChat.roomTypes.roomTypes[room.t].userDetailShowAdmin(room) || false,
directActions: RocketChat.roomTypes.roomTypes[room.t].userDetailShowAll(room) || false,
- }).map((action) => (typeof action === 'function' ? action.call(this) : action)).filter((action) => action && (!action.condition || action.condition.call(this)));
+ })
+ .map((action) => (typeof action === 'function' ? action.call(this) : action))
+ .filter((action) => action && (!action.condition || action.condition.call(this)));
const groups = [];
const columns = [];
const admin = _actions.filter((action) => action.group === 'admin');
diff --git a/packages/rocketchat-ui-flextab/client/tabs/uploadedFilesList.js b/packages/rocketchat-ui-flextab/client/tabs/uploadedFilesList.js
index 49cdbf86f58..b7d6cdef9f1 100644
--- a/packages/rocketchat-ui-flextab/client/tabs/uploadedFilesList.js
+++ b/packages/rocketchat-ui-flextab/client/tabs/uploadedFilesList.js
@@ -31,7 +31,7 @@ Template.uploadedFilesList.helpers({
},
fileTypeClass() {
- const [, type] = this.type && /^(.+?)\//.exec(this.type) || [];
+ const [, type] = (this.type && /^(.+?)\//.exec(this.type)) || [];
if (type) {
return `room-files-${ type }`;
}
diff --git a/packages/rocketchat-ui-flextab/client/tabs/userInfo.js b/packages/rocketchat-ui-flextab/client/tabs/userInfo.js
index db525a4616e..a4dc8e5348c 100644
--- a/packages/rocketchat-ui-flextab/client/tabs/userInfo.js
+++ b/packages/rocketchat-ui-flextab/client/tabs/userInfo.js
@@ -6,7 +6,10 @@ import moment from 'moment';
import { getActions } from './userActions';
const more = function() {
- return Template.instance().actions.get().map((action) => (typeof action === 'function' ? action.call(this) : action)).filter((action) => action && (!action.condition || action.condition.call(this))).slice(2);
+ return Template.instance().actions.get()
+ .map((action) => (typeof action === 'function' ? action.call(this) : action))
+ .filter((action) => action && (!action.condition || action.condition.call(this)))
+ .slice(2);
};
@@ -17,7 +20,10 @@ Template.userInfo.helpers({
moreActions: more,
actions() {
- return Template.instance().actions.get().map((action) => (typeof action === 'function' ? action.call(this) : action)).filter((action) => action && (!action.condition || action.condition.call(this))).slice(0, 2);
+ return Template.instance().actions.get()
+ .map((action) => (typeof action === 'function' ? action.call(this) : action))
+ .filter((action) => action && (!action.condition || action.condition.call(this)))
+ .slice(0, 2);
},
customField() {
const sCustomFieldsToShow = RocketChat.settings.get('Accounts_CustomFieldsToShowInUserInfo').trim();
@@ -25,7 +31,7 @@ Template.userInfo.helpers({
if (sCustomFieldsToShow) {
const user = Template.instance().user.get();
- const userCustomFields = user && user.customFields || {};
+ const userCustomFields = (user && user.customFields) || {};
const listOfCustomFieldsToShow = JSON.parse(sCustomFieldsToShow);
_.map(listOfCustomFieldsToShow, (el) => {
diff --git a/packages/rocketchat-ui-login/client/login/form.js b/packages/rocketchat-ui-login/client/login/form.js
index 846462a9edc..282d76a14e1 100644
--- a/packages/rocketchat-ui-login/client/login/form.js
+++ b/packages/rocketchat-ui-login/client/login/form.js
@@ -167,8 +167,8 @@ Template.loginForm.events({
$('input[name=emailOrUsername]').val(credentials.username);
return $('input[name=pass]').val(credentials.password);
};
- const errorCallback = function() {
- return console.log('OnePassword errorCallback', arguments);
+ const errorCallback = function(...args) {
+ return console.log('OnePassword errorCallback', ...args);
};
return OnePassword.findLoginForUrl(succesCallback, errorCallback, Meteor.absoluteUrl());
},
diff --git a/packages/rocketchat-ui-master/client/main.js b/packages/rocketchat-ui-master/client/main.js
index fa67062213f..79bf8346795 100644
--- a/packages/rocketchat-ui-master/client/main.js
+++ b/packages/rocketchat-ui-master/client/main.js
@@ -51,11 +51,11 @@ Template.body.onRendered(function() {
});
$(document.body).on('keydown', function(e) {
- const target = e.target;
+ const { target } = e;
if (e.ctrlKey === true || e.metaKey === true) {
return;
}
- if (!(e.keyCode > 45 && e.keyCode < 91 || e.keyCode === 8)) {
+ if (!((e.keyCode > 45 && e.keyCode < 91) || e.keyCode === 8)) {
return;
}
if (/input|textarea|select/i.test(target.tagName)) {
diff --git a/packages/rocketchat-ui-message/client/message.js b/packages/rocketchat-ui-message/client/message.js
index 78de66bd8da..46c34c5c475 100644
--- a/packages/rocketchat-ui-message/client/message.js
+++ b/packages/rocketchat-ui-message/client/message.js
@@ -82,7 +82,7 @@ Template.message.helpers({
return (RocketChat.settings.get('UI_Use_Real_Name') && this.u.name) || this.u.username;
},
showUsername() {
- return this.alias || RocketChat.settings.get('UI_Use_Real_Name') && this.u && this.u.name;
+ return this.alias || (RocketChat.settings.get('UI_Use_Real_Name') && this.u && this.u.name);
},
own() {
if (this.u && this.u._id === Meteor.userId()) {
@@ -131,7 +131,7 @@ Template.message.helpers({
},
});
const language = RocketChat.AutoTranslate.getLanguage(this.rid);
- return this.autoTranslateFetching || subscription && subscription.autoTranslate !== this.autoTranslateShowInverse && this.translations && this.translations[language];
+ return this.autoTranslateFetching || (subscription && subscription.autoTranslate !== this.autoTranslateShowInverse && this.translations && this.translations[language]);
}
},
edited() {
@@ -222,7 +222,10 @@ Template.message.helpers({
return Object.keys(this.reactions || {}).map((emoji) => {
const reaction = this.reactions[emoji];
const total = reaction.usernames.length;
- let usernames = reaction.usernames.slice(0, 15).map((username) => (username === userUsername ? t('You').toLowerCase() : `@${ username }`)).join(', ');
+ let usernames = reaction.usernames
+ .slice(0, 15)
+ .map((username) => (username === userUsername ? t('You').toLowerCase() : `@${ username }`))
+ .join(', ');
if (total > 15) {
usernames = `${ usernames } ${ t('And_more', {
length: total - 15,
diff --git a/packages/rocketchat-ui-message/client/messageBox.js b/packages/rocketchat-ui-message/client/messageBox.js
index 61323a19907..02a5121e194 100644
--- a/packages/rocketchat-ui-message/client/messageBox.js
+++ b/packages/rocketchat-ui-message/client/messageBox.js
@@ -287,7 +287,7 @@ function firefoxPasteUpload(fn) {
if (!user || user[1] > 49) {
return fn;
}
- return function(event, instance) {
+ return function(event, instance, ...args) {
if ((event.originalEvent.ctrlKey || event.originalEvent.metaKey) && (event.keyCode === 86)) {
const textarea = instance.find('textarea');
const { selectionStart, selectionEnd } = textarea;
@@ -328,7 +328,7 @@ function firefoxPasteUpload(fn) {
}
}, 150);
}
- return fn && fn.apply(this, arguments);
+ return fn && fn.apply(this, [event, instance, ...args]);
};
}
@@ -403,15 +403,15 @@ Template.messageBox.events({
return;
}
const items = [...e.originalEvent.clipboardData.items];
- const files = items.map((item) => {
- if (item.kind === 'file' && item.type.indexOf('image/') !== -1) {
+ const files = items
+ .filter((item) => (item.kind === 'file' && item.type.indexOf('image/') !== -1))
+ .map((item) => {
e.preventDefault();
return {
file: item.getAsFile(),
name: `Clipboard - ${ moment().format(RocketChat.settings.get('Message_TimeAndDateFormat')) }`,
};
- }
- }).filter((e) => e);
+ });
if (files.length) {
return fileUpload(files);
} else {
diff --git a/packages/rocketchat-ui-message/client/popup/messagePopup.js b/packages/rocketchat-ui-message/client/popup/messagePopup.js
index 9c3d2e943e9..0381e2c9343 100644
--- a/packages/rocketchat-ui-message/client/popup/messagePopup.js
+++ b/packages/rocketchat-ui-message/client/popup/messagePopup.js
@@ -198,7 +198,7 @@ Template.messagePopup.onCreated(function() {
if (template.value.curValue == null) {
return;
}
- const value = template.input.value;
+ const { value } = template.input;
const caret = getCursorPosition(template.input);
let firstPartValue = value.substr(0, caret);
const lastPartValue = value.substr(caret);
diff --git a/packages/rocketchat-ui-message/client/popup/messagePopupEmoji.js b/packages/rocketchat-ui-message/client/popup/messagePopupEmoji.js
index 8a2d014d993..588945bed93 100644
--- a/packages/rocketchat-ui-message/client/popup/messagePopupEmoji.js
+++ b/packages/rocketchat-ui-message/client/popup/messagePopupEmoji.js
@@ -1,6 +1,6 @@
Template.messagePopupEmoji.helpers({
value() {
- const length = this.data.length;
+ const { length } = this.data;
return this.data[length - 1];
},
});
diff --git a/packages/rocketchat-ui-message/startup/messageBoxActions.js b/packages/rocketchat-ui-message/startup/messageBoxActions.js
index 9b1a6ff01c2..2ae027e42a9 100644
--- a/packages/rocketchat-ui-message/startup/messageBoxActions.js
+++ b/packages/rocketchat-ui-message/startup/messageBoxActions.js
@@ -58,8 +58,7 @@ RocketChat.messageBox.actions.add('Share', 'My_location', {
condition: () => RocketChat.Geolocation.get() !== false,
action({ rid }) {
const position = RocketChat.Geolocation.get();
- const latitude = position.coords.latitude;
- const longitude = position.coords.longitude;
+ const { latitude, longitude } = position.coords;
const text = ``;
modal.open({
diff --git a/packages/rocketchat-ui-sidenav/client/chatRoomItem.js b/packages/rocketchat-ui-sidenav/client/chatRoomItem.js
index 17f491d0b7b..c88b7903d36 100644
--- a/packages/rocketchat-ui-sidenav/client/chatRoomItem.js
+++ b/packages/rocketchat-ui-sidenav/client/chatRoomItem.js
@@ -40,7 +40,7 @@ Template.chatRoomItem.helpers({
if (!this.lastMessage && RocketChat.settings.get('Store_Last_Message')) {
const room = RocketChat.models.Rooms.findOne(this.rid || this._id, { fields: { lastMessage: 1 } });
- roomData.lastMessage = room && room.lastMessage || { msg: t('No_messages_yet') };
+ roomData.lastMessage = (room && room.lastMessage) || { msg: t('No_messages_yet') };
}
return roomData;
},
diff --git a/packages/rocketchat-ui-sidenav/client/roomList.js b/packages/rocketchat-ui-sidenav/client/roomList.js
index 7736345e2de..96247acf644 100644
--- a/packages/rocketchat-ui-sidenav/client/roomList.js
+++ b/packages/rocketchat-ui-sidenav/client/roomList.js
@@ -80,7 +80,7 @@ Template.roomList.helpers({
or is unread and has one room
*/
- return !['unread', 'f'].includes(group.identifier) || (rooms.length || rooms.count && rooms.count());
+ return !['unread', 'f'].includes(group.identifier) || (rooms.length || (rooms.count && rooms.count()));
},
roomType(room) {
diff --git a/packages/rocketchat-ui-sidenav/client/sidebarItem.js b/packages/rocketchat-ui-sidenav/client/sidebarItem.js
index 790d26b1c7f..470e3750985 100644
--- a/packages/rocketchat-ui-sidenav/client/sidebarItem.js
+++ b/packages/rocketchat-ui-sidenav/client/sidebarItem.js
@@ -31,8 +31,8 @@ function timeAgo(time) {
const yesterday = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1);
return (
- now.getDate() === time.getDate() && moment(time).format('LT') ||
- yesterday.getDate() === time.getDate() && t('yesterday') ||
+ (now.getDate() === time.getDate() && moment(time).format('LT')) ||
+ (yesterday.getDate() === time.getDate() && t('yesterday')) ||
moment(time).format('L')
);
}
diff --git a/packages/rocketchat-ui/client/components/header/header.js b/packages/rocketchat-ui/client/components/header/header.js
index c5df84018ba..6f0e5cbb08b 100644
--- a/packages/rocketchat-ui/client/components/header/header.js
+++ b/packages/rocketchat-ui/client/components/header/header.js
@@ -134,5 +134,5 @@ Template.header.events({
});
Template.header.onCreated(function() {
- this.currentChannel = this.data && this.data._id && RocketChat.models.Rooms.findOne(this.data._id) || undefined;
+ this.currentChannel = (this.data && this.data._id && RocketChat.models.Rooms.findOne(this.data._id)) || undefined;
});
diff --git a/packages/rocketchat-ui/client/components/tabs.js b/packages/rocketchat-ui/client/components/tabs.js
index 2d04aaff673..7353f990c5f 100644
--- a/packages/rocketchat-ui/client/components/tabs.js
+++ b/packages/rocketchat-ui/client/components/tabs.js
@@ -4,7 +4,7 @@ Template.tabs.onCreated(function() {
Template.tabs.events({
'click .tab'(e) {
- const value = e.currentTarget.dataset.value;
+ const { value } = e.currentTarget.dataset;
Template.instance().activeTab.set(value);
Template.instance().data.tabs.onChange(value);
},
diff --git a/packages/rocketchat-ui/client/lib/RoomManager.js b/packages/rocketchat-ui/client/lib/RoomManager.js
index 9241a1ae33d..82904ec43bb 100644
--- a/packages/rocketchat-ui/client/lib/RoomManager.js
+++ b/packages/rocketchat-ui/client/lib/RoomManager.js
@@ -265,7 +265,7 @@ Meteor.startup(() => {
if ((currentUsername === undefined) && ((user != null ? user.username : undefined) != null)) {
currentUsername = user.username;
RoomManager.closeAllRooms();
- const roomTypes = RocketChat.roomTypes.roomTypes;
+ const { roomTypes } = RocketChat.roomTypes;
// Reload only if the current route is a channel route
const roomType = Object.keys(roomTypes).find((key) => roomTypes[key].route && roomTypes[key].route.name === FlowRouter.current().route.name);
if (roomType) {
diff --git a/packages/rocketchat-ui/client/lib/chatMessages.js b/packages/rocketchat-ui/client/lib/chatMessages.js
index b6ab885722a..b930bfd0813 100644
--- a/packages/rocketchat-ui/client/lib/chatMessages.js
+++ b/packages/rocketchat-ui/client/lib/chatMessages.js
@@ -473,7 +473,7 @@ this.ChatMessages = class ChatMessages {
const k = event.which;
if (k === 13) {
- if (sendOnEnter == null || sendOnEnter === 'normal' || sendOnEnter === 'desktop' && Meteor.Device.isDesktop()) {
+ if ((sendOnEnter == null || sendOnEnter === 'normal' || sendOnEnter === 'desktop') && Meteor.Device.isDesktop()) {
if (!event.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey) { // Enter without shift/ctrl/alt
event.preventDefault();
event.stopPropagation();
diff --git a/packages/rocketchat-ui/client/lib/iframeCommands.js b/packages/rocketchat-ui/client/lib/iframeCommands.js
index 214b0d96c84..0d59f0e1b7a 100644
--- a/packages/rocketchat-ui/client/lib/iframeCommands.js
+++ b/packages/rocketchat-ui/client/lib/iframeCommands.js
@@ -37,10 +37,10 @@ const commands = {
}
},
- 'login-with-token'(data) {
+ 'login-with-token'(data, ...args) {
if (typeof data.token === 'string') {
Meteor.loginWithToken(data.token, function() {
- console.log('Iframe command [login-with-token]: result', arguments);
+ console.log('Iframe command [login-with-token]: result', [data, ...args]);
});
}
},
diff --git a/packages/rocketchat-ui/client/lib/tapi18n.js b/packages/rocketchat-ui/client/lib/tapi18n.js
index 4ea779af816..a470bb99262 100644
--- a/packages/rocketchat-ui/client/lib/tapi18n.js
+++ b/packages/rocketchat-ui/client/lib/tapi18n.js
@@ -23,6 +23,6 @@ this.tr = function(key, options, ...replaces) {
};
this.isRtl = (lang) => {
- const language = lang ? lang : localStorage.getItem('userLanguage') ? localStorage.getItem('userLanguage') : 'en-US';
+ const language = lang || localStorage.getItem('userLanguage') || 'en-US';
return ['ar', 'dv', 'fa', 'he', 'ku', 'ps', 'sd', 'ug', 'ur', 'yi'].includes(language.split('-').shift().toLowerCase());
};
diff --git a/packages/rocketchat-ui/client/views/app/alerts.js b/packages/rocketchat-ui/client/views/app/alerts.js
index c6be98fb113..679b5f06567 100644
--- a/packages/rocketchat-ui/client/views/app/alerts.js
+++ b/packages/rocketchat-ui/client/views/app/alerts.js
@@ -23,7 +23,7 @@ this.alerts = {
Blaze.remove(this.renderedAlert);
- const activeElement = this.renderedAlert.dataVar.curValue.activeElement;
+ const { activeElement } = this.renderedAlert.dataVar.curValue;
if (activeElement) {
$(activeElement).removeClass('active');
}
diff --git a/packages/rocketchat-ui/client/views/app/createChannel.js b/packages/rocketchat-ui/client/views/app/createChannel.js
index 4cd569f61c1..7c9b55c15a9 100644
--- a/packages/rocketchat-ui/client/views/app/createChannel.js
+++ b/packages/rocketchat-ui/client/views/app/createChannel.js
@@ -172,7 +172,7 @@ Template.createChannel.events({
'input [name="users"]'(e, t) {
const input = e.target;
const position = input.selectionEnd || input.selectionStart;
- const length = input.value.length;
+ const { length } = input.value;
const modified = filterNames(input.value);
input.value = modified;
document.activeElement === input && e && /input/i.test(e.type) && (input.selectionEnd = position + input.value.length - length);
@@ -182,7 +182,7 @@ Template.createChannel.events({
'input [name="name"]'(e, t) {
const input = e.target;
const position = input.selectionEnd || input.selectionStart;
- const length = input.value.length;
+ const { length } = input.value;
const modified = filterNames(input.value);
input.value = modified;
diff --git a/packages/rocketchat-ui/client/views/app/directory.js b/packages/rocketchat-ui/client/views/app/directory.js
index 37863811683..a5a4b491a32 100644
--- a/packages/rocketchat-ui/client/views/app/directory.js
+++ b/packages/rocketchat-ui/client/views/app/directory.js
@@ -23,6 +23,7 @@ function directorySearch(config, cb) {
createdAt: timeAgo(result.createdAt),
};
}
+ return null;
}));
});
}
diff --git a/packages/rocketchat-ui/client/views/app/modal.js b/packages/rocketchat-ui/client/views/app/modal.js
index 31165ff731a..3a6087813d0 100644
--- a/packages/rocketchat-ui/client/views/app/modal.js
+++ b/packages/rocketchat-ui/client/views/app/modal.js
@@ -116,7 +116,7 @@ Template.rc_modal.events({
},
'click .js-confirm'(e, instance) {
e.stopPropagation();
- const dontAskAgain = instance.data.dontAskAgain;
+ const { dontAskAgain } = instance.data;
if (dontAskAgain && document.getElementById('dont-ask-me-again').checked) {
const dontAskAgainObject = {
action: dontAskAgain.action,
diff --git a/packages/rocketchat-ui/client/views/app/popover.js b/packages/rocketchat-ui/client/views/app/popover.js
index bced628203f..155f8bc4110 100644
--- a/packages/rocketchat-ui/client/views/app/popover.js
+++ b/packages/rocketchat-ui/client/views/app/popover.js
@@ -20,7 +20,7 @@ this.popover = {
Blaze.remove(this.renderedPopover);
- const activeElement = this.renderedPopover.dataVar.curValue.activeElement;
+ const { activeElement } = this.renderedPopover.dataVar.curValue;
if (activeElement) {
$(activeElement).removeClass('active');
}
@@ -44,14 +44,16 @@ Template.popover.onRendered(function() {
}
});
const { offsetVertical = 0, offsetHorizontal = 0 } = this.data;
- const activeElement = this.data.activeElement;
+ const { activeElement } = this.data;
const popoverContent = this.firstNode.children[0];
const position = _.throttle(() => {
const direction = typeof this.data.direction === 'function' ? this.data.direction() : this.data.direction;
const verticalDirection = /top/.test(direction) ? 'top' : 'bottom';
- const horizontalDirection = /left/.test(direction) ? 'left' : /right/.test(direction) ? 'right' : isRtl() ^ /inverted/.test(direction) ? 'left' : 'right';
+ const rtlDirection = isRtl() ^ /inverted/.test(direction) ? 'left' : 'right';
+ const rightDirection = /right/.test(direction) ? 'right' : rtlDirection;
+ const horizontalDirection = /left/.test(direction) ? 'left' : rightDirection;
const position = typeof this.data.position === 'function' ? this.data.position() : this.data.position;
const customCSSProperties = typeof this.data.customCSSProperties === 'function' ? this.data.customCSSProperties() : this.data.customCSSProperties;
@@ -147,7 +149,7 @@ Template.popover.events({
popover.close();
},
'click [data-type="messagebox-action"]'(event, t) {
- const id = event.currentTarget.dataset.id;
+ const { id } = event.currentTarget.dataset;
const action = RocketChat.messageBox.actions.getById(id);
if ((action[0] != null ? action[0].action : undefined) != null) {
action[0].action({ rid: t.data.data.rid, messageBox: document.querySelector('.rc-message-box'), element: event.currentTarget, event });
diff --git a/packages/rocketchat-ui/client/views/app/room.js b/packages/rocketchat-ui/client/views/app/room.js
index b4b783decd1..0da60cca1d0 100644
--- a/packages/rocketchat-ui/client/views/app/room.js
+++ b/packages/rocketchat-ui/client/views/app/room.js
@@ -503,7 +503,7 @@ Template.room.events({
},
'touchstart .message'(e, t) {
- const touches = e.originalEvent.touches;
+ const { touches } = e.originalEvent;
if (touches && touches.length) {
lastTouchX = touches[0].pageX;
lastTouchY = touches[0].pagey;
@@ -568,7 +568,7 @@ Template.room.events({
},
'touchmove .message'(e, t) {
- const touches = e.originalEvent.touches;
+ const { touches } = e.originalEvent;
if (touches && touches.length) {
const deltaX = Math.abs(lastTouchX - touches[0].pageX);
const deltaY = Math.abs(lastTouchY - touches[0].pageY);
@@ -635,7 +635,7 @@ Template.room.events({
return;
}
- const username = this._arguments[1].u.username;
+ const { username } = this._arguments[1].u;
openProfileTabOrOpenDM(e, instance, username);
},
@@ -654,7 +654,7 @@ Template.room.events({
}
lastScrollTop = e.target.scrollTop;
- if (RoomHistoryManager.isLoading(this._id) === false && RoomHistoryManager.hasMore(this._id) === true || RoomHistoryManager.hasMoreNext(this._id) === true) {
+ if ((RoomHistoryManager.isLoading(this._id) === false && RoomHistoryManager.hasMore(this._id) === true) || RoomHistoryManager.hasMoreNext(this._id) === true) {
if (RoomHistoryManager.hasMore(this._id) === true && e.target.scrollTop === 0) {
RoomHistoryManager.getMore(this._id);
} else if (RoomHistoryManager.hasMoreNext(this._id) === true && e.target.scrollTop >= e.target.scrollHeight - e.target.clientHeight) {
@@ -931,7 +931,7 @@ Template.room.onCreated(function() {
handleError(error);
}
- return Array.from(results).map((record) => {
+ return Array.from(results).forEach((record) => {
delete record._id;
RoomRoles.upsert({ rid: record.rid, 'u._id': record.u._id }, record);
});
diff --git a/packages/rocketchat-user-data-download/server/cronProcessDownloads.js b/packages/rocketchat-user-data-download/server/cronProcessDownloads.js
index e4678ebc776..5b01120b4da 100644
--- a/packages/rocketchat-user-data-download/server/cronProcessDownloads.js
+++ b/packages/rocketchat-user-data-download/server/cronProcessDownloads.js
@@ -349,9 +349,9 @@ const uploadZipFile = function(exportOperation, callback) {
const stream = fs.createReadStream(filePath);
const contentType = 'application/zip';
- const size = stat.size;
+ const { size } = stat;
- const userId = exportOperation.userId;
+ const { userId } = exportOperation;
const user = RocketChat.models.Users.findOneById(userId);
const userDisplayName = user ? user.name : userId;
const utcDate = new Date().toISOString().split('T')[0];
diff --git a/packages/rocketchat-version-check/server/functions/getNewUpdates.js b/packages/rocketchat-version-check/server/functions/getNewUpdates.js
index 503567903cf..3d9ebdf0a33 100644
--- a/packages/rocketchat-version-check/server/functions/getNewUpdates.js
+++ b/packages/rocketchat-version-check/server/functions/getNewUpdates.js
@@ -6,7 +6,7 @@ import { HTTP } from 'meteor/http';
export default () => {
try {
const uniqueID = RocketChat.models.Settings.findOne('uniqueID');
- const _oplogHandle = MongoInternals.defaultRemoteCollectionDriver().mongo._oplogHandle;
+ const { _oplogHandle } = MongoInternals.defaultRemoteCollectionDriver().mongo;
const oplogEnabled = _oplogHandle && _oplogHandle.onOplogEntry && RocketChat.settings.get('Force_Disable_OpLog_For_Cache') !== true;
const data = {
diff --git a/packages/rocketchat-webrtc/client/WebRTCClass.js b/packages/rocketchat-webrtc/client/WebRTCClass.js
index efd484ed539..ca893919998 100644
--- a/packages/rocketchat-webrtc/client/WebRTCClass.js
+++ b/packages/rocketchat-webrtc/client/WebRTCClass.js
@@ -5,7 +5,7 @@ class WebRTCTransportClass {
this.webrtcInstance = webrtcInstance;
this.callbacks = {};
RocketChat.Notifications.onRoom(this.webrtcInstance.room, 'webrtc', (type, data) => {
- const onRemoteStatus = this.callbacks.onRemoteStatus;
+ const { onRemoteStatus } = this.callbacks;
this.log('WebRTCTransportClass - onRoom', type, data);
switch (type) {
case 'status':
@@ -16,9 +16,9 @@ class WebRTCTransportClass {
});
}
- log() {
+ log(...args) {
if (this.debug === true) {
- console.log.apply(console, arguments);
+ console.log.apply(console, args);
}
}
@@ -27,10 +27,7 @@ class WebRTCTransportClass {
return;
}
this.log('WebRTCTransportClass - onUser', type, data);
- const onRemoteCall = this.callbacks.onRemoteCall;
- const onRemoteJoin = this.callbacks.onRemoteJoin;
- const onRemoteCandidate = this.callbacks.onRemoteCandidate;
- const onRemoteDescription = this.callbacks.onRemoteDescription;
+ const { onRemoteCall, onRemoteJoin, onRemoteCandidate, onRemoteDescription } = this.callbacks;
switch (type) {
case 'call':
@@ -105,7 +102,7 @@ class WebRTCTransportClass {
}
onRemoteCall(fn) {
- const callbacks = this.callbacks;
+ const { callbacks } = this;
if (callbacks.onRemoteCall == null) {
callbacks.onRemoteCall = [];
}
@@ -113,7 +110,7 @@ class WebRTCTransportClass {
}
onRemoteJoin(fn) {
- const callbacks = this.callbacks;
+ const { callbacks } = this;
if (callbacks.onRemoteJoin == null) {
callbacks.onRemoteJoin = [];
}
@@ -121,7 +118,7 @@ class WebRTCTransportClass {
}
onRemoteCandidate(fn) {
- const callbacks = this.callbacks;
+ const { callbacks } = this;
if (callbacks.onRemoteCandidate == null) {
callbacks.onRemoteCandidate = [];
}
@@ -129,7 +126,7 @@ class WebRTCTransportClass {
}
onRemoteDescription(fn) {
- const callbacks = this.callbacks;
+ const { callbacks } = this;
if (callbacks.onRemoteDescription == null) {
callbacks.onRemoteDescription = [];
}
@@ -137,7 +134,7 @@ class WebRTCTransportClass {
}
onRemoteStatus(fn) {
- const callbacks = this.callbacks;
+ const { callbacks } = this;
if (callbacks.onRemoteStatus == null) {
callbacks.onRemoteStatus = [];
}
@@ -221,18 +218,18 @@ class WebRTCClass {
// Meteor.setInterval(this.broadcastStatus.bind(@), 1000);
}
- log() {
+ log(...args) {
if (this.debug === true) {
- console.log.apply(console, arguments);
+ console.log.apply(console, args);
}
}
- onError() {
- console.error.apply(console, arguments);
+ onError(...args) {
+ console.error.apply(console, args);
}
checkPeerConnections() {
- const peerConnections = this.peerConnections;
+ const { peerConnections } = this;
Object.keys(peerConnections).forEach((id) => {
const peerConnection = peerConnections[id];
if (peerConnection.iceConnectionState !== 'connected' && peerConnection.iceConnectionState !== 'completed' && peerConnection.createdAt + 5000 < Date.now()) {
@@ -244,7 +241,7 @@ class WebRTCClass {
updateRemoteItems() {
const items = [];
const itemsById = {};
- const peerConnections = this.peerConnections;
+ const { peerConnections } = this;
Object.keys(peerConnections).forEach((id) => {
const peerConnection = peerConnections[id];
@@ -290,7 +287,7 @@ class WebRTCClass {
return;
}
const remoteConnections = [];
- const peerConnections = this.peerConnections;
+ const { peerConnections } = this;
Object.keys(peerConnections).forEach((id) => {
const peerConnection = peerConnections[id];
remoteConnections.push({
@@ -520,8 +517,8 @@ class WebRTCClass {
@param callback {Function}
*/
- getLocalUserMedia(callback) {
- this.log('getLocalUserMedia', arguments);
+ getLocalUserMedia(callback, ...args) {
+ this.log('getLocalUserMedia', [callback, ...args]);
if (this.localStream != null) {
return callback(null, this.localStream);
}
@@ -530,7 +527,7 @@ class WebRTCClass {
this.localUrl.set(URL.createObjectURL(stream));
this.videoEnabled.set(this.media.video === true);
this.audioEnabled.set(this.media.audio === true);
- const peerConnections = this.peerConnections;
+ const { peerConnections } = this;
Object.keys(peerConnections).forEach((id) => {
const peerConnection = peerConnections[id];
peerConnection.addStream(stream);
@@ -560,7 +557,7 @@ class WebRTCClass {
}
stopAllPeerConnections() {
- const peerConnections = this.peerConnections;
+ const { peerConnections } = this;
Object.keys(peerConnections).forEach((id) => {
this.stopPeerConnection(id);
@@ -663,8 +660,8 @@ class WebRTCClass {
video {Boolean}
*/
- startCall(media = {}) {
- this.log('startCall', arguments);
+ startCall(media = {}, ...args) {
+ this.log('startCall', [media, ...args]);
this.media = media;
this.getLocalUserMedia(() => {
this.active = true;
@@ -674,8 +671,8 @@ class WebRTCClass {
});
}
- startCallAsMonitor(media = {}) {
- this.log('startCallAsMonitor', arguments);
+ startCallAsMonitor(media = {}, ...args) {
+ this.log('startCallAsMonitor', [media, ...args]);
this.media = media;
this.active = true;
this.monitor = true;
@@ -771,7 +768,7 @@ class WebRTCClass {
desktop {Boolean}
*/
- joinCall(data = {}) {
+ joinCall(data = {}, ...args) {
if (data.media && data.media.audio) {
this.media.audio = data.media.audio;
}
@@ -779,7 +776,7 @@ class WebRTCClass {
this.media.video = data.media.video;
}
data.media = this.media;
- this.log('joinCall', arguments);
+ this.log('joinCall', [data, ...args]);
this.getLocalUserMedia(() => {
this.remoteMonitoring = data.monitor;
this.active = true;
@@ -788,11 +785,11 @@ class WebRTCClass {
}
- onRemoteJoin(data) {
+ onRemoteJoin(data, ...args) {
if (this.active !== true) {
return;
}
- this.log('onRemoteJoin', arguments);
+ this.log('onRemoteJoin', [data, ...args]);
let peerConnection = this.getPeerConnection(data.from);
// needsRefresh = false
@@ -844,12 +841,12 @@ class WebRTCClass {
}
- onRemoteOffer(data) {
+ onRemoteOffer(data, ...args) {
if (this.active !== true) {
return;
}
- this.log('onRemoteOffer', arguments);
+ this.log('onRemoteOffer', [data, ...args]);
let peerConnection = this.getPeerConnection(data.from);
if (['have-local-offer', 'stable'].includes(peerConnection.signalingState) && (peerConnection.createdAt < data.ts)) {
@@ -898,14 +895,14 @@ class WebRTCClass {
candidate {RTCIceCandidate JSON encoded}
*/
- onRemoteCandidate(data) {
+ onRemoteCandidate(data, ...args) {
if (this.active !== true) {
return;
}
if (data.to !== this.selfId) {
return;
}
- this.log('onRemoteCandidate', arguments);
+ this.log('onRemoteCandidate', [data, ...args]);
const peerConnection = this.getPeerConnection(data.from);
if (peerConnection.iceConnectionState !== 'closed' && peerConnection.iceConnectionState !== 'failed' && peerConnection.iceConnectionState !== 'disconnected' && peerConnection.iceConnectionState !== 'completed') {
peerConnection.addIceCandidate(new RTCIceCandidate(data.candidate));
@@ -926,14 +923,14 @@ class WebRTCClass {
desktop {Boolean}
*/
- onRemoteDescription(data) {
+ onRemoteDescription(data, ...args) {
if (this.active !== true) {
return;
}
if (data.to !== this.selfId) {
return;
}
- this.log('onRemoteDescription', arguments);
+ this.log('onRemoteDescription', [data, ...args]);
const peerConnection = this.getPeerConnection(data.from);
if (data.type === 'offer') {
peerConnection.remoteMedia = data.media;
diff --git a/server/configuration/accounts_meld.js b/server/configuration/accounts_meld.js
index 807eb9631a1..d4f1280c03c 100644
--- a/server/configuration/accounts_meld.js
+++ b/server/configuration/accounts_meld.js
@@ -2,7 +2,7 @@ import _ from 'underscore';
const orig_updateOrCreateUserFromExternalService = Accounts.updateOrCreateUserFromExternalService;
-Accounts.updateOrCreateUserFromExternalService = function(serviceName, serviceData = {} /* , options*/) {
+Accounts.updateOrCreateUserFromExternalService = function(serviceName, serviceData = {}, ...args /* , options*/) {
const services = [
'facebook',
'github',
@@ -46,5 +46,5 @@ Accounts.updateOrCreateUserFromExternalService = function(serviceName, serviceDa
}
}
- return orig_updateOrCreateUserFromExternalService.apply(this, arguments);
+ return orig_updateOrCreateUserFromExternalService.apply(this, [serviceName, serviceData, ...args]);
};
diff --git a/server/lib/accounts.js b/server/lib/accounts.js
index 631b9add704..1f241bf6b2f 100644
--- a/server/lib/accounts.js
+++ b/server/lib/accounts.js
@@ -38,7 +38,8 @@ Accounts.emailTemplates.userToActivate = {
Accounts.emailTemplates.userActivated = {
subject({ active, username }) {
- const action = active ? (username ? 'Activated' : 'Approved') : 'Deactivated';
+ const activated = username ? 'Activated' : 'Approved';
+ const action = active ? activated : 'Deactivated';
const subject = `Accounts_Email_${ action }_Subject`;
const siteName = RocketChat.settings.get('Site_Name');
@@ -49,7 +50,8 @@ Accounts.emailTemplates.userActivated = {
const header = RocketChat.placeholders.replace(RocketChat.settings.get('Email_Header') || '');
const footer = RocketChat.placeholders.replace(RocketChat.settings.get('Email_Footer') || '');
- const action = active ? (username ? 'Activated' : 'Approved') : 'Deactivated';
+ const activated = username ? 'Activated' : 'Approved';
+ const action = active ? activated : 'Deactivated';
const html = RocketChat.placeholders.replace(TAPi18n.__(`Accounts_Email_${ action }`), {
name: s.escapeHTML(name),
diff --git a/server/publications/spotlight.js b/server/publications/spotlight.js
index 63e29169385..2f2cdc6f98c 100644
--- a/server/publications/spotlight.js
+++ b/server/publications/spotlight.js
@@ -39,7 +39,7 @@ Meteor.methods({
name: 1,
},
};
- const userId = this.userId;
+ const { userId } = this;
if (userId == null) {
if (RocketChat.settings.get('Accounts_AllowAnonymousRead') === true) {
result.rooms = fetchRooms(userId, RocketChat.models.Rooms.findByNameAndTypeNotDefault(regex, 'c', roomOptions).fetch());
diff --git a/server/startup/migrations/v059.js b/server/startup/migrations/v059.js
index 5563a007e6d..c5f0843d440 100644
--- a/server/startup/migrations/v059.js
+++ b/server/startup/migrations/v059.js
@@ -3,7 +3,7 @@ RocketChat.Migrations.add({
up() {
const users = RocketChat.models.Users.find({}, { sort: { createdAt: 1 }, limit: 1 }).fetch();
if (users && users.length > 0) {
- const createdAt = users[0].createdAt;
+ const { createdAt } = users[0];
RocketChat.models.Settings.update({ createdAt: { $exists: 0 } }, { $set: { createdAt } }, { multi: true });
RocketChat.models.Statistics.update({ installedAt: { $exists: 0 } }, { $set: { installedAt: createdAt } }, { multi: true });
}
diff --git a/server/startup/migrations/v070.js b/server/startup/migrations/v070.js
index 53eaaefca12..14eabbf7df3 100644
--- a/server/startup/migrations/v070.js
+++ b/server/startup/migrations/v070.js
@@ -3,7 +3,7 @@ RocketChat.Migrations.add({
up() {
const settings = RocketChat.models.Settings.find({ _id: /^Accounts_OAuth_Custom_.+/ }).fetch();
for (const setting of settings) {
- const _id = setting._id;
+ const { _id } = setting;
setting._id = setting._id.replace(/Accounts_OAuth_Custom_([A-Za-z0-9]+)_(.+)/, 'Accounts_OAuth_Custom-$1-$2');
setting._id = setting._id.replace(/Accounts_OAuth_Custom_([A-Za-z0-9]+)/, 'Accounts_OAuth_Custom-$1');
diff --git a/server/startup/migrations/v094.js b/server/startup/migrations/v094.js
index 907d791e008..cdf69fb0c43 100644
--- a/server/startup/migrations/v094.js
+++ b/server/startup/migrations/v094.js
@@ -12,6 +12,7 @@ RocketChat.Migrations.add({
emailAddress = email.address.address;
return true;
}
+ return false;
});
const existingUser = RocketChat.models.Users.findOne({ 'emails.address': emailAddress }, { fields: { _id: 1 } });
if (existingUser) {
diff --git a/tests/end-to-end/api/01-users.js b/tests/end-to-end/api/01-users.js
index 67889eba659..709df2e91f8 100644
--- a/tests/end-to-end/api/01-users.js
+++ b/tests/end-to-end/api/01-users.js
@@ -344,7 +344,7 @@ describe('[Users]', function() {
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
- const user = res.body.user;
+ const { user } = res.body;
expect(res.body).to.have.property('success', true);
expect(user.username).to.be.equal(editedUsername);
expect(user.name).to.be.equal(editedName);
@@ -363,7 +363,7 @@ describe('[Users]', function() {
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
- const user = res.body.user;
+ const { user } = res.body;
expect(res.body).to.have.property('success', true);
expect(user.username).to.be.equal(editedUsername);
})
@@ -424,7 +424,7 @@ describe('[Users]', function() {
.expect('Content-Type', 'application/json')
.expect(200)
.expect((res) => {
- const user = res.body.user;
+ const { user } = res.body;
expect(res.body).to.have.property('success', true);
expect(user.emails[0].address).to.be.equal(editedEmail);
expect(user.emails[0].verified).to.be.false;
@@ -543,13 +543,16 @@ describe('[Users]', function() {
.set(credentials)
.send({ username: user.username })
.expect('Content-Type', 'application/json')
- .end((err, res) => (err ? done() : request.get(api('me'))
- .set({ 'X-Auth-Token': `${ res.body.data.authToken }`, 'X-User-Id': res.body.data.userId })
- .expect(200)
- .expect((res) => {
- expect(res.body).to.have.property('success', true);
- })
- .end(done))));
+ .end((err, res) => (err ? done() :
+ request.get(api('me'))
+ .set({ 'X-Auth-Token': `${ res.body.data.authToken }`, 'X-User-Id': res.body.data.userId })
+ .expect(200)
+ .expect((res) => {
+ expect(res.body).to.have.property('success', true);
+ })
+ .end(done))
+ )
+ );
});
});
diff --git a/tests/end-to-end/api/11-graphql.js b/tests/end-to-end/api/11-graphql.js
index 47583d82f60..d856f330c5d 100644
--- a/tests/end-to-end/api/11-graphql.js
+++ b/tests/end-to-end/api/11-graphql.js
@@ -186,7 +186,7 @@ describe('GraphQL Tests', function() {
.expect((res) => {
expect(res.body).to.have.property('data');
expect(res.body).to.not.have.property('errors');
- const me = res.body.data.me;
+ const { me } = res.body.data;
expect(me).to.have.property('username', user.username);
expect(me).to.have.property('email', user.email);
expect(me.channels).to.be.an('array');
diff --git a/tests/end-to-end/ui/13-permissions.js b/tests/end-to-end/ui/13-permissions.js
index 0ddc5bdf808..f73f01d6191 100644
--- a/tests/end-to-end/ui/13-permissions.js
+++ b/tests/end-to-end/ui/13-permissions.js
@@ -5,10 +5,9 @@ import sideNav from '../../pageobjects/side-nav.page';
import flexTab from '../../pageobjects/flex-tab.page';
import admin from '../../pageobjects/administration.page';
import mainContent from '../../pageobjects/main-content.page';
-import { checkIfUserIsValid } from '../../data/checks';
+import { checkIfUserIsValid, checkIfUserIsAdmin } from '../../data/checks';
// test data imports
-import { checkIfUserIsAdmin } from '../../data/checks';
import { username, email, password, adminUsername, adminEmail, adminPassword } from '../../data/user.js';
describe.skip('[Permissions]', () => {