diff --git a/.eslintrc b/.eslintrc
index a8bdb516600..46805bc5b65 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -1,23 +1,104 @@
{
- "extends": ["@rocket.chat/eslint-config"],
- "parser": "babel-eslint",
- "globals": {
- "__meteor_bootstrap__" : false,
- "__meteor_runtime_config__" : false,
- "Assets" : false,
- "chrome" : false
+ "extends": [
+ "@rocket.chat/eslint-config"
+ ],
+ "parser": "babel-eslint",
+ "globals": {
+ "__meteor_bootstrap__": false,
+ "__meteor_runtime_config__": false,
+ "Assets": false,
+ "chrome": false,
+ "jscolor": false
},
- "plugins": ["react"],
- "rules": {
- "jsx-quotes": ["error", "prefer-single"],
+ "plugins": [
+ "react"
+ ],
+ "rules": {
+ "jsx-quotes": [
+ "error",
+ "prefer-single"
+ ],
"react/jsx-uses-react": "error",
"react/jsx-uses-vars": "error",
"react/jsx-no-undef": "error",
- "react/jsx-fragments": ["error", "syntax"],
+ "react/jsx-fragments": [
+ "error",
+ "syntax"
+ ],
},
"settings": {
"react": {
"version": "detect",
},
},
+ "overrides": [
+ {
+ "files": [
+ "**/*.ts",
+ "**/*.tsx"
+ ],
+ "extends": [
+ "@rocket.chat/eslint-config",
+ "plugin:@typescript-eslint/recommended",
+ "plugin:@typescript-eslint/eslint-recommended"
+ ],
+ "globals": {
+ "Atomics": "readonly",
+ "SharedArrayBuffer": "readonly"
+ },
+ "parser": "@typescript-eslint/parser",
+ "parserOptions": {
+ "sourceType": "module",
+ "ecmaVersion": 2018,
+ "warnOnUnsupportedTypeScriptVersion": false,
+ "ecmaFeatures": {
+ "experimentalObjectRestSpread": true,
+ "legacyDecorators": true
+ }
+ },
+ "plugins": [
+ "react",
+ "@typescript-eslint"
+ ],
+ "rules": {
+ "jsx-quotes": [
+ "error",
+ "prefer-single"
+ ],
+ "react/jsx-uses-react": "error",
+ "react/jsx-uses-vars": "error",
+ "react/jsx-no-undef": "error",
+ "react/jsx-fragments": [
+ "error",
+ "syntax"
+ ],
+ "@typescript-eslint/ban-ts-ignore": "off",
+ "@typescript-eslint/no-explicit-any": "off",
+ "@typescript-eslint/interface-name-prefix": [
+ "error",
+ "always"
+ ]
+ },
+ "env": {
+ "browser": true,
+ "commonjs": true,
+ "es6": true,
+ "node": true
+ },
+ "settings": {
+ "import/resolver": {
+ "node": {
+ "extensions": [
+ ".js",
+ ".ts",
+ ".tsx"
+ ]
+ }
+ },
+ "react": {
+ "version": "detect"
+ }
+ }
+ }
+ ]
}
diff --git a/.meteor/packages b/.meteor/packages
index 09e237c2d25..ec716746c30 100644
--- a/.meteor/packages
+++ b/.meteor/packages
@@ -17,6 +17,7 @@ ddp-rate-limiter@1.0.7
ddp-common@1.4.0
dynamic-import@0.5.1
ecmascript@0.13.0
+typescript
ejson@1.1.0
email@1.2.3
fastclick@1.0.13
diff --git a/.meteor/versions b/.meteor/versions
index 33ffe5ded7f..0642cb7e72a 100644
--- a/.meteor/versions
+++ b/.meteor/versions
@@ -150,6 +150,7 @@ tmeasday:check-npm-versions@0.3.2
todda00:friendly-slugs@0.6.0
tracker@1.2.0
twitter-oauth@1.2.0
+typescript@3.7.0
ui@1.0.13
underscore@1.0.10
url@1.2.0
diff --git a/.scripts/set-version.js b/.scripts/set-version.js
index 5f3a6e4b94c..102f8e14cb9 100644
--- a/.scripts/set-version.js
+++ b/.scripts/set-version.js
@@ -13,7 +13,7 @@ let pkgJson = {};
try {
pkgJson = require(path.resolve( // eslint-disable-line import/no-dynamic-require
process.cwd(),
- './package.json'
+ './package.json',
));
} catch (err) {
console.error('no root package.json found');
@@ -87,7 +87,7 @@ git.status()
type: 'confirm',
message: 'Commit files?',
name: 'commit',
- }])
+ }]),
)
.then((answers) => {
if (!answers.commit) {
diff --git a/.scripts/start.js b/.scripts/start.js
index 5d75151e225..bbc7f551c50 100644
--- a/.scripts/start.js
+++ b/.scripts/start.js
@@ -43,7 +43,7 @@ function startProcess(opts, callback) {
const proc = spawn(
opts.command,
opts.params,
- opts.options
+ opts.options,
);
if (opts.waitForMessage) {
diff --git a/.scripts/version.js b/.scripts/version.js
index 461003c2d58..73fc12c46db 100644
--- a/.scripts/version.js
+++ b/.scripts/version.js
@@ -5,7 +5,7 @@ let pkgJson = {};
try {
pkgJson = require(path.resolve( // eslint-disable-line import/no-dynamic-require
process.cwd(),
- './package.json'
+ './package.json',
));
} catch (err) {
console.error('no root package.json found');
diff --git a/app/api/server/v1/misc.js b/app/api/server/v1/misc.js
index 51892359ec2..b17e0b7a1a1 100644
--- a/app/api/server/v1/misc.js
+++ b/app/api/server/v1/misc.js
@@ -162,7 +162,7 @@ API.v1.addRoute('spotlight', { authRequired: true }, {
const { query } = this.queryParams;
const result = Meteor.runAsUser(this.userId, () =>
- Meteor.call('spotlight', query)
+ Meteor.call('spotlight', query),
);
return API.v1.success(result);
diff --git a/app/api/server/v1/rooms.js b/app/api/server/v1/rooms.js
index 92225c64fee..4db4c8326d6 100644
--- a/app/api/server/v1/rooms.js
+++ b/app/api/server/v1/rooms.js
@@ -134,8 +134,8 @@ API.v1.addRoute('rooms.saveNotification', { authRequired: true }, {
const saveNotifications = (notifications, roomId) => {
Object.keys(notifications).forEach((notificationKey) =>
Meteor.runAsUser(this.userId, () =>
- Meteor.call('saveNotificationSettings', roomId, notificationKey, notifications[notificationKey])
- )
+ Meteor.call('saveNotificationSettings', roomId, notificationKey, notifications[notificationKey]),
+ ),
);
};
const { roomId, notifications } = this.bodyParams;
diff --git a/app/api/server/v1/subscriptions.js b/app/api/server/v1/subscriptions.js
index 8ffa8711a33..236089ad1d6 100644
--- a/app/api/server/v1/subscriptions.js
+++ b/app/api/server/v1/subscriptions.js
@@ -62,7 +62,7 @@ API.v1.addRoute('subscriptions.read', { authRequired: true }, {
});
Meteor.runAsUser(this.userId, () =>
- Meteor.call('readMessages', this.bodyParams.rid)
+ Meteor.call('readMessages', this.bodyParams.rid),
);
return API.v1.success();
@@ -77,7 +77,7 @@ API.v1.addRoute('subscriptions.unread', { authRequired: true }, {
}
Meteor.runAsUser(this.userId, () =>
- Meteor.call('unreadMessages', firstUnreadMessage, roomId)
+ Meteor.call('unreadMessages', firstUnreadMessage, roomId),
);
return API.v1.success();
diff --git a/app/apps/server/bridges/commands.js b/app/apps/server/bridges/commands.js
index 9eefe190611..aab50a25bc2 100644
--- a/app/apps/server/bridges/commands.js
+++ b/app/apps/server/bridges/commands.js
@@ -170,7 +170,7 @@ export class AppCommandsBridge {
Object.freeze(user),
Object.freeze(room),
Object.freeze(params),
- threadId
+ threadId,
);
return Promise.await(this.orch.getManager().getCommandManager().getPreviews(command, context));
}
@@ -185,7 +185,7 @@ export class AppCommandsBridge {
Object.freeze(user),
Object.freeze(room),
Object.freeze(params),
- threadId
+ threadId,
);
Promise.await(this.orch.getManager().getCommandManager().executePreview(command, preview, context));
}
diff --git a/app/apps/server/bridges/messages.js b/app/apps/server/bridges/messages.js
index 062efcd64b8..876c028b4db 100644
--- a/app/apps/server/bridges/messages.js
+++ b/app/apps/server/bridges/messages.js
@@ -77,7 +77,7 @@ export class AppMessageBridge {
Users.findByIds(users, { fields: { _id: 1 } })
.fetch()
.forEach(({ _id }) =>
- Notifications.notifyUser(_id, 'message', rmsg)
+ Notifications.notifyUser(_id, 'message', rmsg),
);
}
}
diff --git a/app/apps/server/cron.js b/app/apps/server/cron.js
index 0e51170734d..6c6f17b94c2 100644
--- a/app/apps/server/cron.js
+++ b/app/apps/server/cron.js
@@ -93,7 +93,7 @@ export const appsUpdateMarketplaceInfo = Meteor.bindEnvironment(function _appsUp
Promise.await(
Apps.updateAppsMarketplaceInfo(data)
.then(notifyAdminsAboutInvalidApps)
- .then(notifyAdminsAboutRenewedApps)
+ .then(notifyAdminsAboutRenewedApps),
);
});
diff --git a/app/authorization/client/views/permissions.js b/app/authorization/client/views/permissions.js
index d03ac7d52cb..1ad319988a8 100644
--- a/app/authorization/client/views/permissions.js
+++ b/app/authorization/client/views/permissions.js
@@ -8,13 +8,12 @@ import { Template } from 'meteor/templating';
import { Roles } from '../../../models';
import { ChatPermissions } from '../lib/ChatPermissions';
import { hasAllPermission } from '../hasPermission';
-
-import { hasAtLeastOnePermission } from '..';
-
import { t } from '../../../utils/client';
import { SideNav } from '../../../ui-utils/client/lib/SideNav';
import { CONSTANTS } from '../../lib';
+import { hasAtLeastOnePermission } from '..';
+
Template.permissions.helpers({
tabsData() {
const {
@@ -85,7 +84,7 @@ Template.permissions.helpers({
_id: 1,
},
limit,
- }
+ },
);
},
@@ -105,7 +104,7 @@ Template.permissions.helpers({
group: 1,
section: 1,
},
- }
+ },
);
},
diff --git a/app/authorization/server/publications/permissions/emitter.js b/app/authorization/server/publications/permissions/emitter.js
index ef958ed4850..a7062439eb4 100644
--- a/app/authorization/server/publications/permissions/emitter.js
+++ b/app/authorization/server/publications/permissions/emitter.js
@@ -25,7 +25,7 @@ Permissions.on('change', ({ clientAction, id, data, diff }) => {
Notifications.notifyLoggedInThisInstance(
'permissions-changed',
clientAction,
- data
+ data,
);
if (data.level && data.level === CONSTANTS.SETTINGS_LEVEL) {
@@ -36,7 +36,7 @@ Permissions.on('change', ({ clientAction, id, data, diff }) => {
Notifications.notifyLoggedInThisInstance(
'private-settings-changed',
'updated',
- setting
+ setting,
);
}
});
diff --git a/app/authorization/server/publications/permissions/index.js b/app/authorization/server/publications/permissions/index.js
index 8e74f7b6932..09e7ccffc6c 100644
--- a/app/authorization/server/publications/permissions/index.js
+++ b/app/authorization/server/publications/permissions/index.js
@@ -16,7 +16,7 @@ Meteor.methods({
remove: Permissions.trashFindDeletedAfter(
updatedAt,
{},
- { fields: { _id: 1, _deletedAt: 1 } }
+ { fields: { _id: 1, _deletedAt: 1 } },
).fetch(),
};
}
diff --git a/app/callbacks/lib/callbacks.js b/app/callbacks/lib/callbacks.js
index efc44c0ee59..d602e038420 100644
--- a/app/callbacks/lib/callbacks.js
+++ b/app/callbacks/lib/callbacks.js
@@ -50,7 +50,7 @@ const createCallbackTimed = (hook, callbacks) =>
callbacks
.map(wrapCallback)
.map(handleResult)
- .reduce(pipe, identity)
+ .reduce(pipe, identity),
);
const create = (hook, cbs) =>
@@ -79,7 +79,7 @@ callbacks.add = function(
hook,
callback,
priority = callbacks.priority.MEDIUM,
- id = Random.id()
+ id = Random.id(),
) {
callbacks[hook] = getHooks(hook);
if (callbacks[hook].find((cb) => cb.id === id)) {
diff --git a/app/cas/client/cas_client.js b/app/cas/client/cas_client.js
index 7046f4d024e..6cfa3c61d6f 100644
--- a/app/cas/client/cas_client.js
+++ b/app/cas/client/cas_client.js
@@ -45,7 +45,7 @@ Meteor.loginWithCas = function(options, callback) {
const popup = openCenteredPopup(
loginUrl,
popup_width || 800,
- popup_height || 600
+ popup_height || 600,
);
diff --git a/app/channel-settings/client/views/channelSettings.js b/app/channel-settings/client/views/channelSettings.js
index 41332e2aa06..1d56f18ff3c 100644
--- a/app/channel-settings/client/views/channelSettings.js
+++ b/app/channel-settings/client/views/channelSettings.js
@@ -412,7 +412,7 @@ Template.channelSettingsEditing.onCreated(function() {
canView() {
return roomTypes.roomTypes[room.t].allowRoomSettingChange(
room,
- RoomSettingsEnum.SYSTEM_MESSAGES
+ RoomSettingsEnum.SYSTEM_MESSAGES,
);
},
getValue() {
@@ -425,9 +425,9 @@ Template.channelSettingsEditing.onCreated(function() {
return call('saveRoomSettings', room._id, 'systemMessages', value).then(
() => {
toastr.success(
- t('System_messages_setting_changed_successfully')
+ t('System_messages_setting_changed_successfully'),
);
- }
+ },
);
},
},
@@ -572,9 +572,9 @@ Template.channelSettingsEditing.onCreated(function() {
return call('saveRoomSettings', room._id, 'retentionOverrideGlobal', value).then(
() => {
toastr.success(
- t('Retention_setting_changed_successfully')
+ t('Retention_setting_changed_successfully'),
);
- }
+ },
);
},
},
@@ -596,9 +596,9 @@ Template.channelSettingsEditing.onCreated(function() {
return call('saveRoomSettings', room._id, 'retentionMaxAge', value).then(
() => {
toastr.success(
- t('Retention_setting_changed_successfully')
+ t('Retention_setting_changed_successfully'),
);
- }
+ },
);
},
},
@@ -620,9 +620,9 @@ Template.channelSettingsEditing.onCreated(function() {
return call('saveRoomSettings', room._id, 'retentionExcludePinned', value).then(
() => {
toastr.success(
- t('Retention_setting_changed_successfully')
+ t('Retention_setting_changed_successfully'),
);
- }
+ },
);
},
},
@@ -644,9 +644,9 @@ Template.channelSettingsEditing.onCreated(function() {
return call('saveRoomSettings', room._id, 'retentionFilesOnly', value).then(
() => {
toastr.success(
- t('Retention_setting_changed_successfully')
+ t('Retention_setting_changed_successfully'),
);
- }
+ },
);
},
},
@@ -664,7 +664,7 @@ Template.channelSettingsEditing.onCreated(function() {
save(value) {
return call('saveRoomSettings', room._id, 'encrypted', value).then(() => {
toastr.success(
- t('Encrypted_setting_changed_successfully')
+ t('Encrypted_setting_changed_successfully'),
);
});
},
diff --git a/app/chatpal-search/server/provider/provider.js b/app/chatpal-search/server/provider/provider.js
index a46d935c725..18ee9a36f42 100644
--- a/app/chatpal-search/server/provider/provider.js
+++ b/app/chatpal-search/server/provider/provider.js
@@ -315,7 +315,7 @@ class ChatpalProvider extends SearchProvider {
payload.start || 0,
payload.rows || this._settings.get('PageSize'),
callback,
- params
+ params,
);
}
@@ -332,7 +332,7 @@ class ChatpalProvider extends SearchProvider {
this._settings.get('Main_Language'),
this._getAcl(context),
type,
- callback
+ callback,
);
}
}
diff --git a/app/custom-sounds/client/admin/adminSounds.js b/app/custom-sounds/client/admin/adminSounds.js
index 552bcd2ea42..ea508e99396 100644
--- a/app/custom-sounds/client/admin/adminSounds.js
+++ b/app/custom-sounds/client/admin/adminSounds.js
@@ -123,7 +123,7 @@ Template.adminSounds.onRendered(() =>
Tracker.afterFlush(function() {
SideNav.setFlex('adminFlex');
SideNav.openFlex();
- })
+ }),
);
Template.adminSounds.events({
diff --git a/app/custom-sounds/client/admin/soundEdit.js b/app/custom-sounds/client/admin/soundEdit.js
index c55f2f5a03d..6562c4b154c 100644
--- a/app/custom-sounds/client/admin/soundEdit.js
+++ b/app/custom-sounds/client/admin/soundEdit.js
@@ -133,7 +133,7 @@ Template.soundEdit.onCreated(function() {
handleError(uploadError);
console.log(uploadError);
}
- }
+ },
);
delete this.soundFile;
toastr.success(TAPi18n.__('File_uploaded'));
diff --git a/app/custom-sounds/client/lib/CustomSounds.js b/app/custom-sounds/client/lib/CustomSounds.js
index 52e1666c4d8..09c175ac6c0 100644
--- a/app/custom-sounds/client/lib/CustomSounds.js
+++ b/app/custom-sounds/client/lib/CustomSounds.js
@@ -20,7 +20,7 @@ class CustomSoundsClass {
sound.src = this.getURL(sound);
}
const audio = $('', { id: sound._id, preload: true }).append(
- $('', { src: sound.src })
+ $('', { src: sound.src }),
);
const list = this.list.get();
list[sound._id] = sound;
@@ -81,5 +81,5 @@ Meteor.startup(() =>
CustomSounds.add(sound);
}
});
- })
+ }),
);
diff --git a/app/custom-sounds/client/notifications/deleteCustomSound.js b/app/custom-sounds/client/notifications/deleteCustomSound.js
index 59b9d0929a9..cd08ad1aa25 100644
--- a/app/custom-sounds/client/notifications/deleteCustomSound.js
+++ b/app/custom-sounds/client/notifications/deleteCustomSound.js
@@ -6,6 +6,6 @@ import { CustomSounds } from '../lib/CustomSounds';
Meteor.startup(() =>
CachedCollectionManager.onLogin(() =>
- Notifications.onAll('deleteCustomSound', (data) => CustomSounds.remove(data.soundData))
- )
+ Notifications.onAll('deleteCustomSound', (data) => CustomSounds.remove(data.soundData)),
+ ),
);
diff --git a/app/custom-sounds/client/notifications/updateCustomSound.js b/app/custom-sounds/client/notifications/updateCustomSound.js
index 813c7dfbd44..2dc5bb40096 100644
--- a/app/custom-sounds/client/notifications/updateCustomSound.js
+++ b/app/custom-sounds/client/notifications/updateCustomSound.js
@@ -6,6 +6,6 @@ import { CustomSounds } from '../lib/CustomSounds';
Meteor.startup(() =>
CachedCollectionManager.onLogin(() =>
- Notifications.onAll('updateCustomSound', (data) => CustomSounds.update(data.soundData))
- )
+ Notifications.onAll('updateCustomSound', (data) => CustomSounds.update(data.soundData)),
+ ),
);
diff --git a/app/custom-sounds/server/methods/uploadCustomSound.js b/app/custom-sounds/server/methods/uploadCustomSound.js
index 7d3d48d361b..ebeecefb1e2 100644
--- a/app/custom-sounds/server/methods/uploadCustomSound.js
+++ b/app/custom-sounds/server/methods/uploadCustomSound.js
@@ -17,7 +17,7 @@ Meteor.methods({
RocketChatFileCustomSoundsInstance.deleteFile(`${ soundData._id }.${ soundData.extension }`);
const ws = RocketChatFileCustomSoundsInstance.createWriteStream(`${ soundData._id }.${ soundData.extension }`, contentType);
ws.on('end', Meteor.bindEnvironment(() =>
- Meteor.setTimeout(() => Notifications.notifyAll('updateCustomSound', { soundData }), 500)
+ Meteor.setTimeout(() => Notifications.notifyAll('updateCustomSound', { soundData }), 500),
));
rs.pipe(ws);
diff --git a/app/dolphin/lib/common.js b/app/dolphin/lib/common.js
index 6f88e4c8b14..5366b5fecec 100644
--- a/app/dolphin/lib/common.js
+++ b/app/dolphin/lib/common.js
@@ -40,7 +40,7 @@ if (Meteor.isServer) {
config.serverURL = settings.get('Accounts_OAuth_Dolphin_URL');
return Dolphin.configure(config);
},
- })
+ }),
);
if (settings.get('Accounts_OAuth_Dolphin_URL')) {
@@ -65,6 +65,6 @@ if (Meteor.isServer) {
config.serverURL = settings.get('Accounts_OAuth_Dolphin_URL');
return Dolphin.configure(config);
}
- })
+ }),
);
}
diff --git a/app/emoji-custom/client/admin/adminEmoji.js b/app/emoji-custom/client/admin/adminEmoji.js
index 8f1ba6d8f3b..1e6e04e053e 100644
--- a/app/emoji-custom/client/admin/adminEmoji.js
+++ b/app/emoji-custom/client/admin/adminEmoji.js
@@ -117,7 +117,7 @@ Template.adminEmoji.onRendered(() =>
Tracker.afterFlush(function() {
SideNav.setFlex('adminFlex');
SideNav.openFlex();
- })
+ }),
);
Template.adminEmoji.events({
diff --git a/app/emoji-custom/client/admin/emojiEdit.js b/app/emoji-custom/client/admin/emojiEdit.js
index 09404693aa5..0247f8e12a7 100644
--- a/app/emoji-custom/client/admin/emojiEdit.js
+++ b/app/emoji-custom/client/admin/emojiEdit.js
@@ -131,7 +131,7 @@ Template.emojiEdit.onCreated(function() {
handleError(uploadError);
console.log(uploadError);
}
- }
+ },
);
delete this.emojiFile;
toastr.success(TAPi18n.__('File_uploaded'));
diff --git a/app/emoji-custom/client/lib/emojiCustom.js b/app/emoji-custom/client/lib/emojiCustom.js
index 00ec847f0fc..f95d3160c6d 100644
--- a/app/emoji-custom/client/lib/emojiCustom.js
+++ b/app/emoji-custom/client/lib/emojiCustom.js
@@ -187,5 +187,5 @@ Meteor.startup(() =>
} catch (e) {
console.error('Error getting custom emoji', e);
}
- })
+ }),
);
diff --git a/app/emoji-custom/client/notifications/deleteEmojiCustom.js b/app/emoji-custom/client/notifications/deleteEmojiCustom.js
index ebc66d17916..f19a17420b4 100644
--- a/app/emoji-custom/client/notifications/deleteEmojiCustom.js
+++ b/app/emoji-custom/client/notifications/deleteEmojiCustom.js
@@ -4,5 +4,5 @@ import { Notifications } from '../../../notifications';
import { deleteEmojiCustom } from '../lib/emojiCustom';
Meteor.startup(() =>
- Notifications.onLogged('deleteEmojiCustom', (data) => deleteEmojiCustom(data.emojiData))
+ Notifications.onLogged('deleteEmojiCustom', (data) => deleteEmojiCustom(data.emojiData)),
);
diff --git a/app/emoji-custom/client/notifications/updateEmojiCustom.js b/app/emoji-custom/client/notifications/updateEmojiCustom.js
index feaa701ee74..b2d5761dd0a 100644
--- a/app/emoji-custom/client/notifications/updateEmojiCustom.js
+++ b/app/emoji-custom/client/notifications/updateEmojiCustom.js
@@ -4,5 +4,5 @@ import { Notifications } from '../../../notifications';
import { updateEmojiCustom } from '../lib/emojiCustom';
Meteor.startup(() =>
- Notifications.onLogged('updateEmojiCustom', (data) => updateEmojiCustom(data.emojiData))
+ Notifications.onLogged('updateEmojiCustom', (data) => updateEmojiCustom(data.emojiData)),
);
diff --git a/app/emoji-custom/server/methods/insertOrUpdateEmoji.js b/app/emoji-custom/server/methods/insertOrUpdateEmoji.js
index 4c5b7f0b472..0e633ecb83c 100644
--- a/app/emoji-custom/server/methods/insertOrUpdateEmoji.js
+++ b/app/emoji-custom/server/methods/insertOrUpdateEmoji.js
@@ -91,7 +91,7 @@ Meteor.methods({
RocketChatFileEmojiCustomInstance.deleteFile(encodeURIComponent(`${ emojiData.name }.${ emojiData.extension }`));
const ws = RocketChatFileEmojiCustomInstance.createWriteStream(encodeURIComponent(`${ emojiData.name }.${ emojiData.previousExtension }`), rs.contentType);
ws.on('end', Meteor.bindEnvironment(() =>
- RocketChatFileEmojiCustomInstance.deleteFile(encodeURIComponent(`${ emojiData.previousName }.${ emojiData.previousExtension }`))
+ RocketChatFileEmojiCustomInstance.deleteFile(encodeURIComponent(`${ emojiData.previousName }.${ emojiData.previousExtension }`)),
));
rs.readStream.pipe(ws);
}
diff --git a/app/emoji-custom/server/methods/uploadEmojiCustom.js b/app/emoji-custom/server/methods/uploadEmojiCustom.js
index b7899e53dbe..3dc49bf3157 100644
--- a/app/emoji-custom/server/methods/uploadEmojiCustom.js
+++ b/app/emoji-custom/server/methods/uploadEmojiCustom.js
@@ -21,7 +21,7 @@ Meteor.methods({
RocketChatFileEmojiCustomInstance.deleteFile(encodeURIComponent(`${ emojiData.name }.${ emojiData.extension }`));
const ws = RocketChatFileEmojiCustomInstance.createWriteStream(encodeURIComponent(`${ emojiData.name }.${ emojiData.extension }`), contentType);
ws.on('end', Meteor.bindEnvironment(() =>
- Meteor.setTimeout(() => Notifications.notifyLogged('updateEmojiCustom', { emojiData }), 500)
+ Meteor.setTimeout(() => Notifications.notifyLogged('updateEmojiCustom', { emojiData }), 500),
));
rs.pipe(ws);
diff --git a/app/emoji/client/emojiParser.js b/app/emoji/client/emojiParser.js
index d7f7980df11..dc72d92273e 100644
--- a/app/emoji/client/emojiParser.js
+++ b/app/emoji/client/emojiParser.js
@@ -49,7 +49,7 @@ Tracker.autorun(() => {
const walker = document.createTreeWalker(
checkEmojiOnly,
NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT,
- filter
+ filter,
);
diff --git a/app/importer-hipchat/server/importer.js b/app/importer-hipchat/server/importer.js
index 2573e9ba63b..d1aebcfe59a 100644
--- a/app/importer-hipchat/server/importer.js
+++ b/app/importer-hipchat/server/importer.js
@@ -170,7 +170,7 @@ export class HipChatImporter extends Base {
if (c.room_id === channel.channel_id) {
c.do_import = channel.do_import;
}
- })
+ }),
);
this.collection.update({ _id: this.channels._id }, { $set: { channels: this.channels.channels } });
diff --git a/app/importer/client/admin/adminImport.js b/app/importer/client/admin/adminImport.js
index f0424272189..4ad22fd87cd 100644
--- a/app/importer/client/admin/adminImport.js
+++ b/app/importer/client/admin/adminImport.js
@@ -1,8 +1,5 @@
import { Meteor } from 'meteor/meteor';
import { Tracker } from 'meteor/tracker';
-
-import { Importers } from '..';
-
import { FlowRouter } from 'meteor/kadira:flow-router';
import { Template } from 'meteor/templating';
import { TAPi18n } from 'meteor/rocketchat:tap-i18n';
@@ -11,6 +8,8 @@ import { hasRole } from '../../../authorization';
import { t, handleError } from '../../../utils';
import { SideNav } from '../../../ui-utils/client';
+import { Importers } from '..';
+
Template.adminImport.helpers({
isAdmin() {
return hasRole(Meteor.userId(), 'admin');
diff --git a/app/importer/client/admin/adminImportHistory.js b/app/importer/client/admin/adminImportHistory.js
index 8458d8dbbb1..2fb1ccf928c 100644
--- a/app/importer/client/admin/adminImportHistory.js
+++ b/app/importer/client/admin/adminImportHistory.js
@@ -1,8 +1,5 @@
import { Meteor } from 'meteor/meteor';
import { Tracker } from 'meteor/tracker';
-
-import { Importers } from '..';
-
import { Template } from 'meteor/templating';
import toastr from 'toastr';
import { ReactiveVar } from 'meteor/reactive-var';
@@ -13,6 +10,8 @@ import { t, APIClient } from '../../../utils';
import { ProgressStep } from '../../lib/ImporterProgressStep';
import { SideNav } from '../../../ui-utils/client';
+import { Importers } from '..';
+
Template.adminImportHistory.helpers({
isAdmin() {
return hasRole(Meteor.userId(), 'admin');
diff --git a/app/importer/client/admin/adminImportPrepare.js b/app/importer/client/admin/adminImportPrepare.js
index 269057c3820..479a791f9b2 100644
--- a/app/importer/client/admin/adminImportPrepare.js
+++ b/app/importer/client/admin/adminImportPrepare.js
@@ -1,9 +1,6 @@
import { Meteor } from 'meteor/meteor';
import { ReactiveVar } from 'meteor/reactive-var';
import { Tracker } from 'meteor/tracker';
-
-import { Importers } from '..';
-
import { FlowRouter } from 'meteor/kadira:flow-router';
import { Template } from 'meteor/templating';
import { TAPi18n } from 'meteor/rocketchat:tap-i18n';
@@ -14,6 +11,8 @@ import { settings } from '../../../settings';
import { t, handleError, APIClient } from '../../../utils';
import { SideNav } from '../../../ui-utils/client';
+import { Importers } from '..';
+
Template.adminImportPrepare.helpers({
isAdmin() {
return hasRole(Meteor.userId(), 'admin');
diff --git a/app/importer/client/admin/adminImportProgress.js b/app/importer/client/admin/adminImportProgress.js
index cc05d750398..bb7f5f930e0 100644
--- a/app/importer/client/admin/adminImportProgress.js
+++ b/app/importer/client/admin/adminImportProgress.js
@@ -1,14 +1,13 @@
import { Meteor } from 'meteor/meteor';
import { ReactiveVar } from 'meteor/reactive-var';
-
-import { Importers, ImporterWebsocketReceiver, ProgressStep } from '..';
-
import { FlowRouter } from 'meteor/kadira:flow-router';
import { Template } from 'meteor/templating';
import toastr from 'toastr';
import { t, handleError } from '../../../utils';
+import { Importers, ImporterWebsocketReceiver, ProgressStep } from '..';
+
Template.adminImportProgress.helpers({
step() {
return Template.instance().step.get();
diff --git a/app/importer/server/classes/ImporterBase.js b/app/importer/server/classes/ImporterBase.js
index 27792029a2b..f7cebb0f885 100644
--- a/app/importer/server/classes/ImporterBase.js
+++ b/app/importer/server/classes/ImporterBase.js
@@ -274,7 +274,7 @@ export class Base {
* @returns {Progress} The progress record of the import.
*/
addCountToTotal(count) {
- this.progress.count.total = this.progress.count.total + count;
+ this.progress.count.total += count;
this.updateRecord({ 'count.total': this.progress.count.total });
return this.progress;
@@ -287,7 +287,7 @@ export class Base {
* @returns {Progress} The progress record of the import.
*/
addCountCompleted(count) {
- this.progress.count.completed = this.progress.count.completed + count;
+ this.progress.count.completed += count;
// Only update the database every 500 records
// Or the completed is greater than or equal to the total amount
diff --git a/app/importer/server/methods/downloadPublicImportFile.js b/app/importer/server/methods/downloadPublicImportFile.js
index 956e75acc79..914a324b995 100644
--- a/app/importer/server/methods/downloadPublicImportFile.js
+++ b/app/importer/server/methods/downloadPublicImportFile.js
@@ -3,12 +3,13 @@ import fs from 'fs';
import { Meteor } from 'meteor/meteor';
-import { Importers } from '..';
import { RocketChatImportFileInstance } from '../startup/store';
import { ProgressStep } from '../../lib/ImporterProgressStep';
import { hasRole } from '../../../authorization';
+import { Importers } from '..';
+
function downloadHttpFile(fileUrl, writeStream) {
http.get(fileUrl, function(response) {
response.pipe(writeStream);
diff --git a/app/importer/server/methods/getImportFileData.js b/app/importer/server/methods/getImportFileData.js
index 3dcfccd497b..9265313d9cd 100644
--- a/app/importer/server/methods/getImportFileData.js
+++ b/app/importer/server/methods/getImportFileData.js
@@ -4,12 +4,11 @@ import fs from 'fs';
import { Meteor } from 'meteor/meteor';
import { RocketChatImportFileInstance } from '../startup/store';
-
-import { Importers } from '..';
-
import { hasRole } from '../../../authorization';
import { ProgressStep } from '../../lib/ImporterProgressStep';
+import { Importers } from '..';
+
Meteor.methods({
getImportFileData(importerKey) {
const userId = Meteor.userId();
diff --git a/app/importer/server/methods/getImportProgress.js b/app/importer/server/methods/getImportProgress.js
index 4bde28d663e..a7f5f33d4be 100644
--- a/app/importer/server/methods/getImportProgress.js
+++ b/app/importer/server/methods/getImportProgress.js
@@ -1,8 +1,9 @@
import { Meteor } from 'meteor/meteor';
+import { hasPermission } from '../../../authorization';
+
import { Importers } from '..';
-import { hasPermission } from '../../../authorization';
Meteor.methods({
getImportProgress(key) {
diff --git a/app/importer/server/methods/getSelectionData.js b/app/importer/server/methods/getSelectionData.js
index 782e0316a67..b49573f1487 100644
--- a/app/importer/server/methods/getSelectionData.js
+++ b/app/importer/server/methods/getSelectionData.js
@@ -1,11 +1,12 @@
import { Meteor } from 'meteor/meteor';
+import { hasPermission } from '../../../authorization';
+
import {
Importers,
ProgressStep,
} from '..';
-import { hasPermission } from '../../../authorization';
Meteor.methods({
getSelectionData(key) {
diff --git a/app/importer/server/methods/prepareImport.js b/app/importer/server/methods/prepareImport.js
index 1444d8af8c3..9f7b763c61c 100644
--- a/app/importer/server/methods/prepareImport.js
+++ b/app/importer/server/methods/prepareImport.js
@@ -1,9 +1,10 @@
import { Meteor } from 'meteor/meteor';
import { check } from 'meteor/check';
+import { hasPermission } from '../../../authorization';
+
import { Importers } from '..';
-import { hasPermission } from '../../../authorization';
Meteor.methods({
prepareImport(key, dataURI, contentType, fileName) {
diff --git a/app/importer/server/methods/restartImport.js b/app/importer/server/methods/restartImport.js
index 94f486bf6d9..f8fb60dcd48 100644
--- a/app/importer/server/methods/restartImport.js
+++ b/app/importer/server/methods/restartImport.js
@@ -1,11 +1,12 @@
import { Meteor } from 'meteor/meteor';
+import { hasPermission } from '../../../authorization';
+
import {
Importers,
ProgressStep,
} from '..';
-import { hasPermission } from '../../../authorization';
Meteor.methods({
restartImport(key) {
diff --git a/app/importer/server/methods/setupImporter.js b/app/importer/server/methods/setupImporter.js
index 1d965382554..a5f8c3cfa1f 100644
--- a/app/importer/server/methods/setupImporter.js
+++ b/app/importer/server/methods/setupImporter.js
@@ -1,8 +1,9 @@
import { Meteor } from 'meteor/meteor';
+import { hasPermission } from '../../../authorization';
+
import { Importers } from '..';
-import { hasPermission } from '../../../authorization';
Meteor.methods({
setupImporter(key) {
diff --git a/app/importer/server/methods/startImport.js b/app/importer/server/methods/startImport.js
index 19e13da783f..540b06bec08 100644
--- a/app/importer/server/methods/startImport.js
+++ b/app/importer/server/methods/startImport.js
@@ -1,5 +1,7 @@
import { Meteor } from 'meteor/meteor';
+import { hasPermission } from '../../../authorization';
+
import {
Importers,
Selection,
@@ -7,7 +9,6 @@ import {
SelectionUser,
} from '..';
-import { hasPermission } from '../../../authorization';
Meteor.methods({
startImport(key, input) {
diff --git a/app/importer/server/methods/uploadImportFile.js b/app/importer/server/methods/uploadImportFile.js
index 54f2e04ae8b..d83776530ca 100644
--- a/app/importer/server/methods/uploadImportFile.js
+++ b/app/importer/server/methods/uploadImportFile.js
@@ -1,11 +1,12 @@
import { Meteor } from 'meteor/meteor';
-import { Importers } from '..';
import { RocketChatFile } from '../../../file';
import { RocketChatImportFileInstance } from '../startup/store';
import { hasRole } from '../../../authorization';
+import { Importers } from '..';
+
Meteor.methods({
uploadImportFile(binaryContent, contentType, fileName, importerKey) {
const userId = Meteor.userId();
diff --git a/app/lazy-load/client/index.js b/app/lazy-load/client/index.js
index 463e58cc16f..248ff4f3bc6 100644
--- a/app/lazy-load/client/index.js
+++ b/app/lazy-load/client/index.js
@@ -34,7 +34,7 @@ window.addEventListener('resize', window.lazyloadtick);
export const lazyloadtick = _.debounce(() => {
const lazyImg = document.querySelectorAll('.lazy-img[data-src]');
Array.from(lazyImg).forEach((el) =>
- isVisible(el, Blaze.getView(el)._templateInstance)
+ isVisible(el, Blaze.getView(el)._templateInstance),
);
}, 300);
diff --git a/app/lib/client/UserDeleted.js b/app/lib/client/UserDeleted.js
index c68ef53e521..8be7d5ed5d4 100644
--- a/app/lib/client/UserDeleted.js
+++ b/app/lib/client/UserDeleted.js
@@ -7,6 +7,6 @@ Meteor.startup(function() {
Notifications.onLogged('Users:Deleted', ({ userId }) =>
ChatMessage.remove({
'u._id': userId,
- })
+ }),
);
});
diff --git a/app/lib/server/functions/cleanRoomHistory.js b/app/lib/server/functions/cleanRoomHistory.js
index e1aed74cbfa..3b58d3885d9 100644
--- a/app/lib/server/functions/cleanRoomHistory.js
+++ b/app/lib/server/functions/cleanRoomHistory.js
@@ -20,7 +20,7 @@ export const cleanRoomHistory = function({ rid, latest = new Date(), oldest = ne
ignoreDiscussion,
ts,
fromUsers,
- { fields: { 'file._id': 1, pinned: 1 }, limit }
+ { fields: { 'file._id': 1, pinned: 1 }, limit },
).forEach((document) => {
FileUpload.getStore('Uploads').deleteById(document.file._id);
fileCount++;
diff --git a/app/lib/server/lib/sendNotificationsOnMessage.js b/app/lib/server/lib/sendNotificationsOnMessage.js
index c64a3b09218..21eab1a8535 100644
--- a/app/lib/server/lib/sendNotificationsOnMessage.js
+++ b/app/lib/server/lib/sendNotificationsOnMessage.js
@@ -329,7 +329,7 @@ export async function sendAllNotifications(message, room) {
await callJoinRoom(userId, room._id);
return userId;
- })
+ }),
).then((users) => {
users.forEach((userId) => {
const subscription = Subscriptions.findOneByRoomIdAndUserId(room._id, userId);
diff --git a/app/lib/server/oauth/oauth.js b/app/lib/server/oauth/oauth.js
index 5b83b4239d9..cafb1ab8268 100644
--- a/app/lib/server/oauth/oauth.js
+++ b/app/lib/server/oauth/oauth.js
@@ -44,7 +44,7 @@ Accounts.registerLoginHandler(function(options) {
type: 'oauth',
error: new Meteor.Error(
Accounts.LoginCancelledError.numericError,
- `No registered oauth service found for: ${ service.serviceName }`
+ `No registered oauth service found for: ${ service.serviceName }`,
),
};
}
diff --git a/app/lib/server/startup/rateLimiter.js b/app/lib/server/startup/rateLimiter.js
index 826e25000b3..1286ade7e99 100644
--- a/app/lib/server/startup/rateLimiter.js
+++ b/app/lib/server/startup/rateLimiter.js
@@ -144,7 +144,7 @@ const reconfigureLimit = Meteor.bindEnvironment((name, rules, factor = 1) => {
rules,
settings.get(`DDP_Rate_Limit_${ name }_Requests_Allowed`) * factor,
settings.get(`DDP_Rate_Limit_${ name }_Interval_Time`) * factor,
- callback(`limit by ${ messages[name] }`, name)
+ callback(`limit by ${ messages[name] }`, name),
);
});
diff --git a/app/livechat/client/views/app/livechatAgents.js b/app/livechat/client/views/app/livechatAgents.js
index f153fbc8832..56c45da892a 100644
--- a/app/livechat/client/views/app/livechatAgents.js
+++ b/app/livechat/client/views/app/livechatAgents.js
@@ -55,7 +55,7 @@ Template.livechatAgents.helpers({
? text
: text.replace(
new RegExp(filter.get()),
- (part) => `${ part }`
+ (part) => `${ part }`,
)
}`;
};
@@ -111,7 +111,7 @@ Template.livechatAgents.events({
},
() => {
Meteor.call('livechat:removeAgent', this.username, async function(
- error /* , result*/
+ error, /* , result*/
) {
if (error) {
return handleError(error);
@@ -131,7 +131,7 @@ Template.livechatAgents.events({
showConfirmButton: false,
});
});
- }
+ },
);
},
@@ -148,7 +148,7 @@ Template.livechatAgents.events({
state.set('loading', true);
try {
await Promise.all(
- users.map(({ username }) => call('livechat:addAgent', username))
+ users.map(({ username }) => call('livechat:addAgent', username)),
);
await loadAgents(instance, limit.get(), filter.get());
diff --git a/app/livechat/client/views/app/livechatDepartmentForm.js b/app/livechat/client/views/app/livechatDepartmentForm.js
index 55ff2346d62..47458c4b001 100644
--- a/app/livechat/client/views/app/livechatDepartmentForm.js
+++ b/app/livechat/client/views/app/livechatDepartmentForm.js
@@ -51,7 +51,7 @@ Template.livechatDepartmentForm.helpers({
? text
: text.replace(
new RegExp(filter.get()),
- (part) => `${ part }`
+ (part) => `${ part }`,
)
}`;
};
diff --git a/app/livechat/client/views/app/livechatManagers.js b/app/livechat/client/views/app/livechatManagers.js
index edb22e906df..94684c1ee93 100644
--- a/app/livechat/client/views/app/livechatManagers.js
+++ b/app/livechat/client/views/app/livechatManagers.js
@@ -50,7 +50,7 @@ Template.livechatManagers.helpers({
? text
: text.replace(
new RegExp(filter.get()),
- (part) => `${ part }`
+ (part) => `${ part }`,
)
}`;
};
@@ -95,7 +95,7 @@ Template.livechatManagers.events({
},
() => {
Meteor.call('livechat:removeManager', this.username, function(
- error /* , result*/
+ error, /* , result*/
) {
if (error) {
return handleError(error);
@@ -109,7 +109,7 @@ Template.livechatManagers.events({
showConfirmButton: false,
});
});
- }
+ },
);
},
async 'submit #form-manager'(e, instance) {
@@ -125,7 +125,7 @@ Template.livechatManagers.events({
state.set('loading', true);
try {
await Promise.all(
- users.map(({ username }) => call('livechat:addManager', username))
+ users.map(({ username }) => call('livechat:addManager', username)),
);
selectedManagers.set([]);
} finally {
@@ -164,7 +164,7 @@ Template.livechatManagers.onCreated(function() {
this.onClickTagManagers = ({ username }) => {
this.selectedManagers.set(
- this.selectedManagers.curValue.filter((user) => user.username !== username)
+ this.selectedManagers.curValue.filter((user) => user.username !== username),
);
};
diff --git a/app/livechat/client/views/app/tabbar/agentInfo.js b/app/livechat/client/views/app/tabbar/agentInfo.js
index bbec7972726..8d5d04a63e7 100644
--- a/app/livechat/client/views/app/tabbar/agentInfo.js
+++ b/app/livechat/client/views/app/tabbar/agentInfo.js
@@ -130,7 +130,7 @@ Template.agentInfo.events({
showConfirmButton: false,
});
});
- }
+ },
);
},
'click .edit-agent'(e, instance) {
diff --git a/app/livechat/lib/LivechatInquiry.js b/app/livechat/lib/LivechatInquiry.js
index af655c339c4..21abc0ebd48 100644
--- a/app/livechat/lib/LivechatInquiry.js
+++ b/app/livechat/lib/LivechatInquiry.js
@@ -40,7 +40,7 @@ if (Meteor.isServer) {
sort: {
ts: 1,
},
- }
+ },
);
}
diff --git a/app/markdown/lib/parser/marked/marked.js b/app/markdown/lib/parser/marked/marked.js
index b61e681a0e5..c9d10189c6f 100644
--- a/app/markdown/lib/parser/marked/marked.js
+++ b/app/markdown/lib/parser/marked/marked.js
@@ -22,9 +22,9 @@ renderer.code = function(code, lang, escaped) {
let text = null;
if (!lang) {
- text = `
${ (escaped ? code : s.escapeHTML(code, true)) }
`;
+ text = `${ escaped ? code : s.escapeHTML(code, true) }
`;
} else {
- text = `${ (escaped ? code : s.escapeHTML(code, true)) }
`;
+ text = `${ escaped ? code : s.escapeHTML(code, true) }
`;
}
if (_.isString(msg)) {
diff --git a/app/message-pin/server/pinMessage.js b/app/message-pin/server/pinMessage.js
index 8af0fbe99b9..a62ef8b7138 100644
--- a/app/message-pin/server/pinMessage.js
+++ b/app/message-pin/server/pinMessage.js
@@ -18,7 +18,7 @@ const recursiveRemove = (msg, deep = 1) => {
}
msg.attachments = Array.isArray(msg.attachments) ? msg.attachments.map(
- (nestedMsg) => recursiveRemove(nestedMsg, deep + 1)
+ (nestedMsg) => recursiveRemove(nestedMsg, deep + 1),
) : null;
return msg;
@@ -106,7 +106,7 @@ Meteor.methods({
attachments: recursiveRemove(attachments),
},
],
- }
+ },
);
},
unpinMessage(message) {
diff --git a/app/message-snippet/server/publications/snippetedMessage.js b/app/message-snippet/server/publications/snippetedMessage.js
index 2d4722ce15d..b96cc2cd3e0 100644
--- a/app/message-snippet/server/publications/snippetedMessage.js
+++ b/app/message-snippet/server/publications/snippetedMessage.js
@@ -35,7 +35,7 @@ Meteor.publish('snippetedMessage', function(_id) {
}
const cursor = Messages.find(
- { _id }
+ { _id },
).observeChanges({
added(_id, record) {
publication.added('rocketchat_snippeted_message', _id, record);
diff --git a/app/message-snippet/server/publications/snippetedMessagesByRoom.js b/app/message-snippet/server/publications/snippetedMessagesByRoom.js
index 1e666030603..60d8e94aa38 100644
--- a/app/message-snippet/server/publications/snippetedMessagesByRoom.js
+++ b/app/message-snippet/server/publications/snippetedMessagesByRoom.js
@@ -25,7 +25,7 @@ Meteor.publish('snippetedMessages', function(rid, limit = 50) {
{
sort: { ts: -1 },
limit,
- }
+ },
).observeChanges({
added(_id, record) {
publication.added('rocketchat_snippeted_message', _id, record);
diff --git a/app/message-snippet/server/requests.js b/app/message-snippet/server/requests.js
index 19cc7c47005..85048091dce 100644
--- a/app/message-snippet/server/requests.js
+++ b/app/message-snippet/server/requests.js
@@ -40,7 +40,7 @@ WebApp.connectHandlers.use('/snippet/download', function(req, res) {
{
_id: match[1],
snippeted: true,
- }
+ },
);
const room = Rooms.findOne({ _id: snippet.rid, usernames: { $in: [user.username] } });
if (room === undefined) {
diff --git a/app/models/client/models/Subscriptions.js b/app/models/client/models/Subscriptions.js
index 661aa004920..06e7effb603 100644
--- a/app/models/client/models/Subscriptions.js
+++ b/app/models/client/models/Subscriptions.js
@@ -1,8 +1,9 @@
-import { Users } from '..';
import _ from 'underscore';
import mem from 'mem';
+import { Users } from '..';
+
const Subscriptions = {};
Object.assign(Subscriptions, {
diff --git a/app/models/server/models/Roles.js b/app/models/server/models/Roles.js
index dd25962cb94..a2e9fa3418f 100644
--- a/app/models/server/models/Roles.js
+++ b/app/models/server/models/Roles.js
@@ -1,6 +1,7 @@
+import { Base } from './_Base';
+
import * as Models from '..';
-import { Base } from './_Base';
export class Roles extends Base {
constructor(...args) {
diff --git a/app/models/server/models/Sessions.js b/app/models/server/models/Sessions.js
index 10e3d1cc71b..5992261e2f9 100644
--- a/app/models/server/models/Sessions.js
+++ b/app/models/server/models/Sessions.js
@@ -159,8 +159,8 @@ export const aggregates = {
},
getMatchOfLastMonthToday({ year, month, day }) {
- const pastMonthLastDay = (new Date(year, month - 1, 0)).getDate();
- const currMonthLastDay = (new Date(year, month, 0)).getDate();
+ const pastMonthLastDay = new Date(year, month - 1, 0).getDate();
+ const currMonthLastDay = new Date(year, month, 0).getDate();
const lastMonthToday = new Date(year, month - 1, day);
lastMonthToday.setMonth(lastMonthToday.getMonth() - 1, (currMonthLastDay === day ? pastMonthLastDay : Math.min(pastMonthLastDay, day)) + 1);
diff --git a/app/models/server/models/Users.js b/app/models/server/models/Users.js
index 06049449102..1c48afddcb9 100644
--- a/app/models/server/models/Users.js
+++ b/app/models/server/models/Users.js
@@ -983,7 +983,7 @@ export class Users extends Base {
setPreferences(_id, preferences) {
const settingsObject = Object.assign(
{},
- ...Object.keys(preferences).map((key) => ({ [`settings.preferences.${ key }`]: preferences[key] }))
+ ...Object.keys(preferences).map((key) => ({ [`settings.preferences.${ key }`]: preferences[key] })),
);
const update = {
diff --git a/app/models/server/models/_BaseDb.js b/app/models/server/models/_BaseDb.js
index c819298f5a2..104c6c24c64 100644
--- a/app/models/server/models/_BaseDb.js
+++ b/app/models/server/models/_BaseDb.js
@@ -11,7 +11,7 @@ try {
trash._ensureIndex({ collection: 1 });
trash._ensureIndex(
{ _deletedAt: 1 },
- { expireAfterSeconds: 60 * 60 * 24 * 30 }
+ { expireAfterSeconds: 60 * 60 * 24 * 30 },
);
} catch (e) {
console.log(e);
@@ -57,12 +57,12 @@ export class BaseDb extends EventEmitter {
MongoInternals.defaultRemoteCollectionDriver().mongo._oplogHandle.onOplogEntry(
query,
- this.processOplogRecord.bind(this)
+ this.processOplogRecord.bind(this),
);
// Meteor will handle if we have a value https://github.com/meteor/meteor/blob/5dcd0b2eb9c8bf881ffbee98bc4cb7631772c4da/packages/mongo/oplog_tailing.js#L5
if (process.env.METEOR_OPLOG_TOO_FAR_BEHIND == null) {
MongoInternals.defaultRemoteCollectionDriver().mongo._oplogHandle._defineTooFarBehind(
- Number.MAX_SAFE_INTEGER
+ Number.MAX_SAFE_INTEGER,
);
}
};
@@ -148,7 +148,7 @@ export class BaseDb extends EventEmitter {
(key) =>
key.includes('.$')
|| (Match.test(update[key], Object)
- && this.updateHasPositionalOperator(update[key]))
+ && this.updateHasPositionalOperator(update[key])),
);
}
diff --git a/app/sms/server/services/mobex.js b/app/sms/server/services/mobex.js
index a954215975e..1f41dece221 100644
--- a/app/sms/server/services/mobex.js
+++ b/app/sms/server/services/mobex.js
@@ -121,7 +121,7 @@ class Mobex {
},
],
},
- }
+ },
);
result.isSuccess = true;
diff --git a/app/ui-clean-history/client/views/cleanHistory.js b/app/ui-clean-history/client/views/cleanHistory.js
index b4b59f6f5d5..aaa66148979 100644
--- a/app/ui-clean-history/client/views/cleanHistory.js
+++ b/app/ui-clean-history/client/views/cleanHistory.js
@@ -41,7 +41,7 @@ const purgeWorker = function(roomId, oldest, latest, inclusive, limit, excludePi
const getTimeZoneOffset = function() {
const offset = new Date().getTimezoneOffset();
const absOffset = Math.abs(offset);
- return `${ offset < 0 ? '+' : '-' }${ `00${ Math.floor(absOffset / 60) }`.slice(-2) }:${ `00${ (absOffset % 60) }`.slice(-2) }`;
+ return `${ offset < 0 ? '+' : '-' }${ `00${ Math.floor(absOffset / 60) }`.slice(-2) }:${ `00${ absOffset % 60 }`.slice(-2) }`;
};
diff --git a/app/ui-flextab/client/flexTabBar.js b/app/ui-flextab/client/flexTabBar.js
index 7b1878a2d3f..59160c93d15 100644
--- a/app/ui-flextab/client/flexTabBar.js
+++ b/app/ui-flextab/client/flexTabBar.js
@@ -22,13 +22,13 @@ const commonHelpers = {
};
function canShowAddUsersButton(rid) {
const canAddToChannel = hasAllPermission(
- 'add-user-to-any-c-room', rid
+ 'add-user-to-any-c-room', rid,
);
const canAddToGroup = hasAllPermission(
- 'add-user-to-any-p-room', rid
+ 'add-user-to-any-p-room', rid,
);
const canAddToJoinedRoom = hasAllPermission(
- 'add-user-to-joined-room', rid
+ 'add-user-to-joined-room', rid,
);
if (
!canAddToJoinedRoom
@@ -68,7 +68,7 @@ Template.flexTabBar.helpers({
...commonHelpers,
buttons() {
return TabBar.getButtons().filter((button) =>
- filterButtons(button, this.anonymous, this.data && this.data.rid)
+ filterButtons(button, this.anonymous, this.data && this.data.rid),
);
},
opened() {
diff --git a/app/ui-flextab/client/tabs/userActions.js b/app/ui-flextab/client/tabs/userActions.js
index dcd6ef6f03d..46356aa4473 100644
--- a/app/ui-flextab/client/tabs/userActions.js
+++ b/app/ui-flextab/client/tabs/userActions.js
@@ -104,7 +104,7 @@ export const getActions = ({ user, directActions, hideAdminControls }) => {
icon: 'message',
name: t('Conversation'),
action: prevent(getUser, ({ username }) =>
- Meteor.call('createDirectMessage', username, success((result) => result.rid && FlowRouter.go('direct', { username }, FlowRouter.current().queryParams)))
+ Meteor.call('createDirectMessage', username, success((result) => result.rid && FlowRouter.go('direct', { username }, FlowRouter.current().queryParams))),
),
condition() {
return canDirectMessageTo(this.username);
@@ -376,7 +376,7 @@ export const getActions = ({ user, directActions, hideAdminControls }) => {
timer: 2000,
showConfirmButton: false,
});
- }))
+ })),
);
}),
};
diff --git a/app/ui-message/client/message.js b/app/ui-message/client/message.js
index 930c5819413..05696a8e455 100644
--- a/app/ui-message/client/message.js
+++ b/app/ui-message/client/message.js
@@ -464,7 +464,7 @@ const findParentMessage = (() => {
repliesCount: message.tcount,
},
},
- { multi: true }
+ { multi: true },
);
};
})();
diff --git a/app/ui-message/client/popup/messagePopupConfig.js b/app/ui-message/client/popup/messagePopupConfig.js
index 4afa3ab0459..a99b3e10838 100644
--- a/app/ui-message/client/popup/messagePopupConfig.js
+++ b/app/ui-message/client/popup/messagePopupConfig.js
@@ -218,7 +218,7 @@ Template.messagePopupConfig.helpers({
{
limit: 5,
sort: { ts: -1 },
- }
+ },
)
.fetch();
@@ -246,7 +246,7 @@ Template.messagePopupConfig.helpers({
},
{
fields: { name: 1 },
- }
+ },
)
.map(({ name }) => name);
const newItems = Users
@@ -263,7 +263,7 @@ Template.messagePopupConfig.helpers({
status: 1,
},
limit: 5 - usernamesAlreadyFetched.length,
- }
+ },
)
.fetch()
.map(({ username, name, status }) => ({
diff --git a/app/ui-utils/client/lib/openRoom.js b/app/ui-utils/client/lib/openRoom.js
index 8cb17b02e2e..10116d1d1e9 100644
--- a/app/ui-utils/client/lib/openRoom.js
+++ b/app/ui-utils/client/lib/openRoom.js
@@ -6,9 +6,6 @@ import { FlowRouter } from 'meteor/kadira:flow-router';
import { BlazeLayout } from 'meteor/kadira:blaze-layout';
import { Session } from 'meteor/session';
import mem from 'mem';
-
-import { RoomManager, fireGlobalEvent, RoomHistoryManager } from '..';
-
import _ from 'underscore';
import { ChatSubscription, Rooms } from '../../../models';
@@ -16,6 +13,8 @@ import { settings } from '../../../settings';
import { callbacks } from '../../../callbacks';
import { roomTypes, handleError } from '../../../utils';
+import { RoomManager, fireGlobalEvent, RoomHistoryManager } from '..';
+
window.currentTracker = undefined;
const getDomOfLoading = mem(function getDomOfLoading() {
diff --git a/app/ui/client/components/header/headerRoom.js b/app/ui/client/components/header/headerRoom.js
index 2d8418fe4ae..28f69ab444a 100644
--- a/app/ui/client/components/header/headerRoom.js
+++ b/app/ui/client/components/header/headerRoom.js
@@ -154,7 +154,7 @@ Template.headerRoom.events({
'toggleFavorite',
this._id,
!instance.state.get('favorite'),
- (err) => err && handleError(err)
+ (err) => err && handleError(err),
);
},
@@ -170,7 +170,7 @@ Template.headerRoom.events({
if (hasAllPermission('edit-room', this._id)) {
call('saveRoomSettings', this._id, 'encrypted', !(room && room.encrypted)).then(() => {
toastr.success(
- t('Encrypted_setting_changed_successfully')
+ t('Encrypted_setting_changed_successfully'),
);
});
}
diff --git a/app/ui/client/components/status.js b/app/ui/client/components/status.js
index da77907c4ee..df435981ec4 100644
--- a/app/ui/client/components/status.js
+++ b/app/ui/client/components/status.js
@@ -18,7 +18,7 @@ const clearRetryInterval = function() {
const trackStatus = function() {
if (Meteor.status().status === 'waiting') {
retryHandle = retryHandle || setInterval(function() {
- const timeDiff = Meteor.status().retryTime - (new Date()).getTime();
+ const timeDiff = Meteor.status().retryTime - new Date().getTime();
const _retryTime = (timeDiff > 0 && Math.round(timeDiff / 1000)) || 0;
retryTime.set(_retryTime);
diff --git a/app/ui/client/lib/notification.js b/app/ui/client/lib/notification.js
index 6e5c09b8228..27ff9d7e903 100644
--- a/app/ui/client/lib/notification.js
+++ b/app/ui/client/lib/notification.js
@@ -56,7 +56,7 @@ export const KonchatNotification = {
_id: Random.id(),
rid: notification.payload.rid,
msg: response,
- })
+ }),
);
}
diff --git a/app/ui/client/views/app/createChannel.js b/app/ui/client/views/app/createChannel.js
index af251012b70..7320c921e14 100644
--- a/app/ui/client/views/app/createChannel.js
+++ b/app/ui/client/views/app/createChannel.js
@@ -155,17 +155,17 @@ Template.createChannel.helpers({
roomTypesBeforeStandard() {
const orderLow = roomTypes.roomTypesOrder.filter((roomTypeOrder) => roomTypeOrder.identifier === 'c')[0].order;
return roomTypes.roomTypesOrder.filter(
- (roomTypeOrder) => roomTypeOrder.order < orderLow
+ (roomTypeOrder) => roomTypeOrder.order < orderLow,
).map(
- (roomTypeOrder) => roomTypes.roomTypes[roomTypeOrder.identifier]
+ (roomTypeOrder) => roomTypes.roomTypes[roomTypeOrder.identifier],
).filter((roomType) => roomType.creationTemplate);
},
roomTypesAfterStandard() {
const orderHigh = roomTypes.roomTypesOrder.filter((roomTypeOrder) => roomTypeOrder.identifier === 'd')[0].order;
return roomTypes.roomTypesOrder.filter(
- (roomTypeOrder) => roomTypeOrder.order > orderHigh
+ (roomTypeOrder) => roomTypeOrder.order > orderHigh,
).map(
- (roomTypeOrder) => roomTypes.roomTypes[roomTypeOrder.identifier]
+ (roomTypeOrder) => roomTypes.roomTypes[roomTypeOrder.identifier],
).filter((roomType) => roomType.creationTemplate);
},
});
diff --git a/app/user-data-download/server/cronProcessDownloads.js b/app/user-data-download/server/cronProcessDownloads.js
index 1e33231ec20..552c420dd23 100644
--- a/app/user-data-download/server/cronProcessDownloads.js
+++ b/app/user-data-download/server/cronProcessDownloads.js
@@ -139,7 +139,7 @@ const hideUserName = function(username, exportOperation) {
if (exportOperation.userData && username === exportOperation.userData.username) {
exportOperation.userNameTable[username] = username;
} else {
- exportOperation.userNameTable[username] = `User_${ (Object.keys(exportOperation.userNameTable).length + 1) }`;
+ exportOperation.userNameTable[username] = `User_${ Object.keys(exportOperation.userNameTable).length + 1 }`;
}
}
diff --git a/app/user-status/client/admin/adminUserStatus.js b/app/user-status/client/admin/adminUserStatus.js
index 4a2ae3da3f2..97a70b2e301 100644
--- a/app/user-status/client/admin/adminUserStatus.js
+++ b/app/user-status/client/admin/adminUserStatus.js
@@ -105,7 +105,7 @@ Template.adminUserStatus.onRendered(() =>
Tracker.afterFlush(function() {
SideNav.setFlex('adminFlex');
SideNav.openFlex();
- })
+ }),
);
Template.adminUserStatus.events({
diff --git a/app/user-status/client/notifications/deleteCustomUserStatus.js b/app/user-status/client/notifications/deleteCustomUserStatus.js
index 8bc89decab3..1b364b874f7 100644
--- a/app/user-status/client/notifications/deleteCustomUserStatus.js
+++ b/app/user-status/client/notifications/deleteCustomUserStatus.js
@@ -4,5 +4,5 @@ import { deleteCustomUserStatus } from '../lib/customUserStatus';
import { Notifications } from '../../../notifications';
Meteor.startup(() =>
- Notifications.onLogged('deleteCustomUserStatus', (data) => deleteCustomUserStatus(data.userStatusData))
+ Notifications.onLogged('deleteCustomUserStatus', (data) => deleteCustomUserStatus(data.userStatusData)),
);
diff --git a/app/user-status/client/notifications/updateCustomUserStatus.js b/app/user-status/client/notifications/updateCustomUserStatus.js
index 28f4ed07e70..675659b9715 100644
--- a/app/user-status/client/notifications/updateCustomUserStatus.js
+++ b/app/user-status/client/notifications/updateCustomUserStatus.js
@@ -4,5 +4,5 @@ import { updateCustomUserStatus } from '../lib/customUserStatus';
import { Notifications } from '../../../notifications';
Meteor.startup(() =>
- Notifications.onLogged('updateCustomUserStatus', (data) => updateCustomUserStatus(data.userStatusData))
+ Notifications.onLogged('updateCustomUserStatus', (data) => updateCustomUserStatus(data.userStatusData)),
);
diff --git a/app/webdav/server/lib/webdavClientAdapter.js b/app/webdav/server/lib/webdavClientAdapter.js
index 3539cd9461b..49d01fa0473 100644
--- a/app/webdav/server/lib/webdavClientAdapter.js
+++ b/app/webdav/server/lib/webdavClientAdapter.js
@@ -5,7 +5,7 @@ export class WebdavClientAdapter {
if (cred.token) {
this._client = createClient(
serverConfig,
- { token: cred.token }
+ { token: cred.token },
);
} else {
this._client = createClient(
@@ -13,7 +13,7 @@ export class WebdavClientAdapter {
{
username: cred.username,
password: cred.password,
- }
+ },
);
}
}
diff --git a/app/webdav/server/methods/addWebdavAccount.js b/app/webdav/server/methods/addWebdavAccount.js
index 1822d66b71a..12186903a3a 100644
--- a/app/webdav/server/methods/addWebdavAccount.js
+++ b/app/webdav/server/methods/addWebdavAccount.js
@@ -36,7 +36,7 @@ Meteor.methods({
{
username: formData.username,
password: formData.pass,
- }
+ },
);
const accountData = {
@@ -73,7 +73,7 @@ Meteor.methods({
try {
const client = new WebdavClientAdapter(
data.serverURL,
- { token: data.token }
+ { token: data.token },
);
const accountData = {
diff --git a/client/components/admin/info/InstancesSection.js b/client/components/admin/info/InstancesSection.js
index 087f1d0b39d..a037fce4579 100644
--- a/client/components/admin/info/InstancesSection.js
+++ b/client/components/admin/info/InstancesSection.js
@@ -24,7 +24,7 @@ export function InstancesSection({ instances }) {
{t('Instance_Record')} > {t('PID')}>}>{instanceRecord.pid}
{t('Instance_Record')} > {t('Created_at')}>}>{formatDate(instanceRecord._createdAt)}
{t('Instance_Record')} > {t('Updated_at')}>}>{formatDate(instanceRecord._updatedAt)}
-
+ ,
)}
>;
}
diff --git a/client/components/admin/info/UsageSection.js b/client/components/admin/info/UsageSection.js
index 171ef59d948..82deef45bac 100644
--- a/client/components/admin/info/UsageSection.js
+++ b/client/components/admin/info/UsageSection.js
@@ -34,9 +34,9 @@ export function UsageSection({ statistics, isLoading }) {
{s(() => statistics.uploadsTotal)}
{s(() => formatMemorySize(statistics.uploadsTotalSize))}
{statistics && statistics.apps && <>
- {statistics.apps.totalInstalled}
- {statistics.apps.totalActive}
- >}
+ {statistics.apps.totalInstalled}
+ {statistics.apps.totalActive}
+ >}
{s(() => statistics.integrations.totalIntegrations)}
{s(() => statistics.integrations.totalIncoming)}
{s(() => statistics.integrations.totalIncomingActive)}
diff --git a/client/components/admin/settings/inputs/ColorSettingInput.js b/client/components/admin/settings/inputs/ColorSettingInput.js
index a5523ac60f5..e1f5367f909 100644
--- a/client/components/admin/settings/inputs/ColorSettingInput.js
+++ b/client/components/admin/settings/inputs/ColorSettingInput.js
@@ -100,7 +100,7 @@ export function ColorSettingInput({
onChange={handleEditorTypeChange}
>
{allowedTypes && allowedTypes.map((allowedType) =>
- {t(allowedType)}
+ {t(allowedType)},
)}
diff --git a/client/components/admin/settings/inputs/LanguageSettingInput.js b/client/components/admin/settings/inputs/LanguageSettingInput.js
index f5e9eb73ffa..21579e7ea32 100644
--- a/client/components/admin/settings/inputs/LanguageSettingInput.js
+++ b/client/components/admin/settings/inputs/LanguageSettingInput.js
@@ -42,7 +42,7 @@ export function LanguageSettingInput({
onChange={handleChange}
>
{languages.map(({ key, name }) =>
- {name}
+ {name},
)}
>;
diff --git a/client/components/admin/settings/inputs/RoomPickSettingInput.js b/client/components/admin/settings/inputs/RoomPickSettingInput.js
index c59be9b192d..5c32933a68c 100644
--- a/client/components/admin/settings/inputs/RoomPickSettingInput.js
+++ b/client/components/admin/settings/inputs/RoomPickSettingInput.js
@@ -81,7 +81,7 @@ export function RoomPickSettingInput({
{value.map(({ _id, name }) =>
{name}
-
+ ,
)}
>;
diff --git a/client/components/admin/settings/inputs/SelectSettingInput.js b/client/components/admin/settings/inputs/SelectSettingInput.js
index 8ad1ac8ca3c..b1ab67b3d6b 100644
--- a/client/components/admin/settings/inputs/SelectSettingInput.js
+++ b/client/components/admin/settings/inputs/SelectSettingInput.js
@@ -43,7 +43,7 @@ export function SelectSettingInput({
onChange={handleChange}
>
{values.map(({ key, i18nLabel }) =>
- {t(i18nLabel)}
+ {t(i18nLabel)},
)}
>;
diff --git a/client/components/basic/Input.js b/client/components/basic/Input.js
index 18136a344c2..712d917e463 100644
--- a/client/components/basic/Input.js
+++ b/client/components/basic/Input.js
@@ -51,7 +51,7 @@ export const Input = ({
value=''
>{placeholder}}
{options.map(({ label, value }, i) =>
-
+ ,
)}
diff --git a/client/components/setupWizard/SideBar.js b/client/components/setupWizard/SideBar.js
index 4429e9b365a..b436e830471 100644
--- a/client/components/setupWizard/SideBar.js
+++ b/client/components/setupWizard/SideBar.js
@@ -32,7 +32,7 @@ export function SideBar({
data-number={step}
>
{title}
-
+ ,
)}
diff --git a/client/components/setupWizard/steps/SettingsBasedStep.js b/client/components/setupWizard/steps/SettingsBasedStep.js
index 5123dd1e6a6..771c8253016 100644
--- a/client/components/setupWizard/steps/SettingsBasedStep.js
+++ b/client/components/setupWizard/steps/SettingsBasedStep.js
@@ -51,7 +51,7 @@ export function SettingsBasedStep({ step, title, active }) {
.filter(({ wizard }) => wizard.step === step)
.filter(({ type }) => ['string', 'select', 'language'].includes(type))
.sort(({ wizard: { order: a } }, { wizard: { order: b } }) => a - b)
- .map(({ value, ...field }) => ({ ...field, value: value || '' }))
+ .map(({ value, ...field }) => ({ ...field, value: value || '' })),
);
}, [settings, currentStep]);
@@ -123,7 +123,7 @@ export function SettingsBasedStep({ step, title, active }) {
.sort((a, b) => a.key - b.key)
.map(({ label, value }) => {label})}
}
-
+ ,
)}
diff --git a/client/routes.js b/client/routes.js
index 2f768d11e89..74caef7684f 100644
--- a/client/routes.js
+++ b/client/routes.js
@@ -38,7 +38,7 @@ const createTemplateForComponent = async (
component,
props = {},
// eslint-disable-next-line new-cap
- renderContainerView = () => HTML.DIV()
+ renderContainerView = () => HTML.DIV(),
) => {
const name = component.displayName || component.name;
diff --git a/package-lock.json b/package-lock.json
index 34451a6c055..80b5193611f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2388,6 +2388,11 @@
"version": "6.1.3",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz",
"integrity": "sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ=="
+ },
+ "typescript": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
+ "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w=="
}
}
},
@@ -5283,6 +5288,12 @@
}
}
},
+ "@types/bcrypt": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-3.0.0.tgz",
+ "integrity": "sha512-nohgNyv+1ViVcubKBh0+XiNJ3dO8nYu///9aJ4cgSqv70gBL+94SNy/iC2NLzKPT2Zt/QavrOkBVbZRLZmw6NQ==",
+ "dev": true
+ },
"@types/body-parser": {
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.1.tgz",
@@ -5313,6 +5324,12 @@
"@types/node": "*"
}
},
+ "@types/eslint-visitor-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
+ "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==",
+ "dev": true
+ },
"@types/events": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@types/events/-/events-1.2.0.tgz",
@@ -5365,6 +5382,12 @@
"@types/node": "*"
}
},
+ "@types/json-schema": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.3.tgz",
+ "integrity": "sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==",
+ "dev": true
+ },
"@types/lodash": {
"version": "4.14.118",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.118.tgz",
@@ -5380,6 +5403,17 @@
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz",
"integrity": "sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q=="
},
+ "@types/meteor": {
+ "version": "1.4.37",
+ "resolved": "https://registry.npmjs.org/@types/meteor/-/meteor-1.4.37.tgz",
+ "integrity": "sha512-r4V1qPp6+oXdL10kCpQFKwhGxc8kRbOb5ZkwSNBpXEbOxbkcA5p45u1UzOwImC+W9YP3xO4+o6DE+aeas+EyIw==",
+ "dev": true,
+ "requires": {
+ "@types/connect": "*",
+ "@types/react": "*",
+ "@types/underscore": "*"
+ }
+ },
"@types/mime": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz",
@@ -5493,6 +5527,12 @@
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.4.tgz",
"integrity": "sha512-Set5ZdrAaKI/qHdFlVMgm/GsAv/wkXhSTuZFkJ+JI7HK+wIkIlOaUXSXieIvJ0+OvGIqtREFoE+NHJtEq0gtEw=="
},
+ "@types/underscore": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@types/underscore/-/underscore-1.9.4.tgz",
+ "integrity": "sha512-CjHWEMECc2/UxOZh0kpiz3lEyX2Px3rQS9HzD20lxMvx571ivOBQKeLnqEjxUY0BMgp6WJWo/pQLRBwMW5v4WQ==",
+ "dev": true
+ },
"@types/webpack-env": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.14.1.tgz",
@@ -5508,6 +5548,140 @@
"@types/node": "*"
}
},
+ "@typescript-eslint/eslint-plugin": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.11.0.tgz",
+ "integrity": "sha512-G2HHA1vpMN0EEbUuWubiCCfd0R3a30BB+UdvnFkxwZIxYEGOrWEXDv8tBFO9f44CWc47Xv9lLM3VSn4ORLI2bA==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/experimental-utils": "2.11.0",
+ "eslint-utils": "^1.4.3",
+ "functional-red-black-tree": "^1.0.1",
+ "regexpp": "^3.0.0",
+ "tsutils": "^3.17.1"
+ },
+ "dependencies": {
+ "eslint-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
+ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
+ "dev": true
+ },
+ "regexpp": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz",
+ "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==",
+ "dev": true
+ }
+ }
+ },
+ "@typescript-eslint/experimental-utils": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.11.0.tgz",
+ "integrity": "sha512-YxcA/y0ZJaCc/fB/MClhcDxHI0nOBB7v2/WxBju2cOTanX7jO9ttQq6Fy4yW9UaY5bPd9xL3cun3lDVqk67sPQ==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.3",
+ "@typescript-eslint/typescript-estree": "2.11.0",
+ "eslint-scope": "^5.0.0"
+ }
+ },
+ "@typescript-eslint/parser": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.11.0.tgz",
+ "integrity": "sha512-DyGXeqhb3moMioEFZIHIp7oXBBh7dEfPTzGrlyP0Mi9ScCra4SWEGs3kPd18mG7Sy9Wy8z88zmrw5tSGL6r/6A==",
+ "dev": true,
+ "requires": {
+ "@types/eslint-visitor-keys": "^1.0.0",
+ "@typescript-eslint/experimental-utils": "2.11.0",
+ "@typescript-eslint/typescript-estree": "2.11.0",
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
+ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
+ "dev": true
+ }
+ }
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.11.0.tgz",
+ "integrity": "sha512-HGY4+d4MagO6cKMcKfIKaTMxcAv7dEVnji2Zi+vi5VV8uWAM631KjAB5GxFcexMYrwKT0EekRiiGK1/Sd7VFGA==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "eslint-visitor-keys": "^1.1.0",
+ "glob": "^7.1.6",
+ "is-glob": "^4.0.1",
+ "lodash.unescape": "4.0.1",
+ "semver": "^6.3.0",
+ "tsutils": "^3.17.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
+ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
+ }
+ },
"@webassemblyjs/ast": {
"version": "1.7.11",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz",
@@ -5741,9 +5915,9 @@
}
},
"acorn-jsx": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz",
- "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz",
+ "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==",
"dev": true
},
"acorn-walk": {
@@ -6154,7 +6328,6 @@
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
"integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
- "dev": true,
"requires": {
"define-properties": "^1.1.2",
"es-abstract": "^1.7.0"
@@ -6196,7 +6369,6 @@
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.2.tgz",
"integrity": "sha512-VXjh7lAL4KXKF2hY4FnEW9eRW6IhdvFW1sN/JwLbmECbCgACCnBHNyP3lFiYuttr0jxRN9Bsc5+G27dMseSWqQ==",
- "dev": true,
"requires": {
"define-properties": "^1.1.3",
"es-abstract": "^1.15.0",
@@ -6207,7 +6379,6 @@
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz",
"integrity": "sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ==",
- "dev": true,
"requires": {
"es-to-primitive": "^1.2.0",
"function-bind": "^1.1.1",
@@ -6224,8 +6395,7 @@
"object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
}
}
},
@@ -6583,17 +6753,28 @@
}
},
"babel-eslint": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.1.tgz",
- "integrity": "sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ==",
+ "version": "10.0.3",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.3.tgz",
+ "integrity": "sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
"@babel/parser": "^7.0.0",
"@babel/traverse": "^7.0.0",
"@babel/types": "^7.0.0",
- "eslint-scope": "3.7.1",
- "eslint-visitor-keys": "^1.0.0"
+ "eslint-visitor-keys": "^1.0.0",
+ "resolve": "^1.12.0"
+ },
+ "dependencies": {
+ "resolve": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz",
+ "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ }
}
},
"babel-generator": {
@@ -9409,8 +9590,7 @@
"builtin-modules": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
- "dev": true
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8="
},
"builtin-status-codes": {
"version": "3.0.0",
@@ -9568,19 +9748,10 @@
}
}
},
- "caller-path": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
- "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
- "dev": true,
- "requires": {
- "callsites": "^0.2.0"
- }
- },
"callsites": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
- "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true
},
"camel-case": {
@@ -10681,8 +10852,7 @@
"contains-path": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
- "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
- "dev": true
+ "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo="
},
"content-disposition": {
"version": "0.5.2",
@@ -12493,7 +12663,6 @@
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
"integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
- "dev": true,
"requires": {
"esutils": "^2.0.2",
"isarray": "^1.0.0"
@@ -12870,7 +13039,6 @@
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
"requires": {
"is-arrayish": "^0.2.1"
},
@@ -12878,8 +13046,7 @@
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
- "dev": true
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
}
}
},
@@ -13002,55 +13169,75 @@
}
},
"eslint": {
- "version": "5.9.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.9.0.tgz",
- "integrity": "sha512-g4KWpPdqN0nth+goDNICNXGfJF7nNnepthp46CAlJoJtC5K/cLu3NgCM3AHu1CkJ5Hzt9V0Y0PBAO6Ay/gGb+w==",
+ "version": "6.7.2",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.7.2.tgz",
+ "integrity": "sha512-qMlSWJaCSxDFr8fBPvJM9kJwbazrhNcBU3+DszDW1OlEwKBBRWsJc7NJFelvwQpanHCR14cOLD41x8Eqvo3Nng==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
- "ajv": "^6.5.3",
+ "ajv": "^6.10.0",
"chalk": "^2.1.0",
"cross-spawn": "^6.0.5",
"debug": "^4.0.1",
- "doctrine": "^2.1.0",
- "eslint-scope": "^4.0.0",
- "eslint-utils": "^1.3.1",
- "eslint-visitor-keys": "^1.0.0",
- "espree": "^4.0.0",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^1.4.3",
+ "eslint-visitor-keys": "^1.1.0",
+ "espree": "^6.1.2",
"esquery": "^1.0.1",
"esutils": "^2.0.2",
- "file-entry-cache": "^2.0.0",
+ "file-entry-cache": "^5.0.1",
"functional-red-black-tree": "^1.0.1",
- "glob": "^7.1.2",
- "globals": "^11.7.0",
+ "glob-parent": "^5.0.0",
+ "globals": "^12.1.0",
"ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
- "inquirer": "^6.1.0",
- "is-resolvable": "^1.1.0",
- "js-yaml": "^3.12.0",
+ "inquirer": "^7.0.0",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.3.0",
- "lodash": "^4.17.5",
+ "lodash": "^4.17.14",
"minimatch": "^3.0.4",
"mkdirp": "^0.5.1",
"natural-compare": "^1.4.0",
- "optionator": "^0.8.2",
- "path-is-inside": "^1.0.2",
- "pluralize": "^7.0.0",
+ "optionator": "^0.8.3",
"progress": "^2.0.0",
"regexpp": "^2.0.1",
- "require-uncached": "^1.0.3",
- "semver": "^5.5.1",
- "strip-ansi": "^4.0.0",
- "strip-json-comments": "^2.0.1",
- "table": "^5.0.2",
- "text-table": "^0.2.0"
+ "semver": "^6.1.2",
+ "strip-ansi": "^5.2.0",
+ "strip-json-comments": "^3.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
},
"dependencies": {
+ "ajv": {
+ "version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-escapes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz",
+ "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.8.1"
+ }
+ },
"ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
"dev": true
},
"ansi-styles": {
@@ -13063,9 +13250,9 @@
}
},
"chalk": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
- "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
@@ -13079,6 +13266,15 @@
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
"dev": true
},
+ "cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^3.1.0"
+ }
+ },
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@@ -13095,37 +13291,45 @@
"dev": true
},
"debug": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
- "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
},
"doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dev": true,
"requires": {
"esutils": "^2.0.2"
}
},
- "eslint-scope": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz",
- "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==",
- "dev": true,
- "requires": {
- "esrecurse": "^4.1.0",
- "estraverse": "^4.1.1"
- }
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "eslint-visitor-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
+ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
+ "dev": true
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true
},
"external-editor": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
- "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
"dev": true,
"requires": {
"chardet": "^0.7.0",
@@ -13134,96 +13338,311 @@
}
},
"figures": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
- "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz",
+ "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==",
"dev": true,
"requires": {
"escape-string-regexp": "^1.0.5"
}
},
+ "file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
+ "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ }
+ }
+ },
+ "globals": {
+ "version": "12.3.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz",
+ "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.8.1"
+ }
+ },
"ignore": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
"integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
"dev": true
},
+ "import-fresh": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
+ "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
"inquirer": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz",
- "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.0.tgz",
+ "integrity": "sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==",
"dev": true,
"requires": {
- "ansi-escapes": "^3.0.0",
- "chalk": "^2.0.0",
- "cli-cursor": "^2.1.0",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^3.1.0",
"cli-width": "^2.0.0",
- "external-editor": "^3.0.0",
- "figures": "^2.0.0",
- "lodash": "^4.17.10",
- "mute-stream": "0.0.7",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.15",
+ "mute-stream": "0.0.8",
"run-async": "^2.2.0",
- "rxjs": "^6.1.0",
- "string-width": "^2.1.0",
- "strip-ansi": "^5.0.0",
+ "rxjs": "^6.4.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^5.1.0",
"through": "^2.3.6"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+ "dev": true
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
+ "dev": true
+ },
+ "onetime": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
+ "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dev": true,
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ }
+ },
+ "restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ }
+ }
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
},
"dependencies": {
- "ansi-regex": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz",
- "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==",
- "dev": true
- },
"strip-ansi": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz",
- "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
- "ansi-regex": "^4.0.0"
+ "ansi-regex": "^5.0.0"
}
}
}
},
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
+ }
+ }
},
- "ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "strip-json-comments": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
+ "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
"dev": true
},
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
+ "has-flag": "^3.0.0"
}
},
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ },
+ "dependencies": {
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ }
}
},
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ },
+ "write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
"dev": true,
"requires": {
- "has-flag": "^3.0.0"
+ "mkdirp": "^0.5.1"
}
}
}
@@ -13232,46 +13651,103 @@
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
"integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
- "dev": true,
"requires": {
"debug": "^2.6.9",
"resolve": "^1.5.0"
}
},
"eslint-module-utils": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz",
- "integrity": "sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==",
- "dev": true,
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.0.tgz",
+ "integrity": "sha512-kCo8pZaNz2dsAW7nCUjuVoI11EBXXpIzfNxmaoLhXoRDOnqXLC4iSGVRdZPhOitfbdEfMEfKOiENaK6wDPZEGw==",
"requires": {
- "debug": "^2.6.8",
+ "debug": "^2.6.9",
"pkg-dir": "^2.0.0"
}
},
+ "eslint-plugin-eslint-plugin": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-2.1.0.tgz",
+ "integrity": "sha512-kT3A/ZJftt28gbl/Cv04qezb/NQ1dwYIbi8lyf806XMxkus7DvOVCLIfTXMrorp322Pnoez7+zabXH29tADIDg==",
+ "dev": true
+ },
"eslint-plugin-import": {
- "version": "2.17.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.17.2.tgz",
- "integrity": "sha512-m+cSVxM7oLsIpmwNn2WXTJoReOF9f/CtLMo7qOVmKd1KntBy0hEcuNZ3erTmWjx+DxRO0Zcrm5KwAvI9wHcV5g==",
- "dev": true,
+ "version": "2.19.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.19.1.tgz",
+ "integrity": "sha512-x68131aKoCZlCae7rDXKSAQmbT5DQuManyXo2sK6fJJ0aK5CWAkv6A6HJZGgqC8IhjQxYPgo6/IY4Oz8AFsbBw==",
"requires": {
"array-includes": "^3.0.3",
+ "array.prototype.flat": "^1.2.1",
"contains-path": "^0.1.0",
"debug": "^2.6.9",
"doctrine": "1.5.0",
"eslint-import-resolver-node": "^0.3.2",
- "eslint-module-utils": "^2.4.0",
+ "eslint-module-utils": "^2.4.1",
"has": "^1.0.3",
- "lodash": "^4.17.11",
"minimatch": "^3.0.4",
+ "object.values": "^1.1.0",
"read-pkg-up": "^2.0.0",
- "resolve": "^1.10.0"
+ "resolve": "^1.12.0"
},
"dependencies": {
+ "es-abstract": {
+ "version": "1.17.0-next.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0-next.1.tgz",
+ "integrity": "sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==",
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.4",
+ "is-regex": "^1.0.4",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.0",
+ "string.prototype.trimright": "^2.1.0"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
+ },
+ "object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw=="
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ },
+ "object.values": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
+ "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
"resolve": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz",
- "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==",
- "dev": true,
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz",
+ "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==",
"requires": {
"path-parse": "^1.0.6"
}
@@ -13279,20 +13755,21 @@
}
},
"eslint-plugin-react": {
- "version": "7.14.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz",
- "integrity": "sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA==",
+ "version": "7.17.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.17.0.tgz",
+ "integrity": "sha512-ODB7yg6lxhBVMeiH1c7E95FLD4E/TwmFjltiU+ethv7KPdCwgiFuOZg9zNRHyufStTDLl/dEFqI2Q1VPmCd78A==",
"dev": true,
"requires": {
"array-includes": "^3.0.3",
"doctrine": "^2.1.0",
+ "eslint-plugin-eslint-plugin": "^2.1.0",
"has": "^1.0.3",
- "jsx-ast-utils": "^2.1.0",
+ "jsx-ast-utils": "^2.2.3",
"object.entries": "^1.1.0",
- "object.fromentries": "^2.0.0",
+ "object.fromentries": "^2.0.1",
"object.values": "^1.1.0",
"prop-types": "^15.7.2",
- "resolve": "^1.10.1"
+ "resolve": "^1.13.1"
},
"dependencies": {
"doctrine": {
@@ -13304,34 +13781,94 @@
"esutils": "^2.0.2"
}
},
+ "es-abstract": {
+ "version": "1.17.0-next.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0-next.1.tgz",
+ "integrity": "sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.1",
+ "is-callable": "^1.1.4",
+ "is-regex": "^1.0.4",
+ "object-inspect": "^1.7.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.0",
+ "string.prototype.trimleft": "^2.1.0",
+ "string.prototype.trimright": "^2.1.0"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
+ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "dev": true
+ },
+ "object-inspect": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
+ "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ },
"object.entries": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz",
- "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz",
+ "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==",
"dev": true,
"requires": {
"define-properties": "^1.1.3",
- "es-abstract": "^1.12.0",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3"
+ }
+ },
+ "object.fromentries": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz",
+ "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
"function-bind": "^1.1.1",
"has": "^1.0.3"
}
},
"object.values": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz",
- "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
+ "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
"dev": true,
"requires": {
"define-properties": "^1.1.3",
- "es-abstract": "^1.12.0",
+ "es-abstract": "^1.17.0-next.1",
"function-bind": "^1.1.1",
"has": "^1.0.3"
}
},
"resolve": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
- "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.1.tgz",
+ "integrity": "sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==",
"dev": true,
"requires": {
"path-parse": "^1.0.6"
@@ -13340,9 +13877,9 @@
}
},
"eslint-scope": {
- "version": "3.7.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
- "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
+ "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
"dev": true,
"requires": {
"esrecurse": "^4.1.0",
@@ -13350,10 +13887,21 @@
}
},
"eslint-utils": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz",
- "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==",
- "dev": true
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
+ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
+ "dev": true
+ }
+ }
},
"eslint-visitor-keys": {
"version": "1.0.0",
@@ -13362,20 +13910,26 @@
"dev": true
},
"espree": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz",
- "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==",
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz",
+ "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==",
"dev": true,
"requires": {
- "acorn": "^6.0.2",
- "acorn-jsx": "^5.0.0",
- "eslint-visitor-keys": "^1.0.0"
+ "acorn": "^7.1.0",
+ "acorn-jsx": "^5.1.0",
+ "eslint-visitor-keys": "^1.1.0"
},
"dependencies": {
"acorn": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.4.tgz",
- "integrity": "sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
+ "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==",
+ "dev": true
+ },
+ "eslint-visitor-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
+ "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
"dev": true
}
}
@@ -14250,6 +14804,12 @@
}
}
},
+ "flatted": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
+ "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
+ "dev": true
+ },
"flatten": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
@@ -16715,8 +17275,7 @@
"hosted-git-info": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
- "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
- "dev": true
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
},
"hot-patcher": {
"version": "0.5.0",
@@ -17674,7 +18233,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
- "dev": true,
"requires": {
"builtin-modules": "^1.0.0"
}
@@ -17928,12 +18486,6 @@
"integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
"dev": true
},
- "is-resolvable": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
- "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
- "dev": true
- },
"is-root": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz",
@@ -18388,9 +18940,9 @@
"integrity": "sha1-Iqu5ZW00owuVMENnIINeicLlwxY="
},
"jsx-ast-utils": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz",
- "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==",
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz",
+ "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==",
"dev": true,
"requires": {
"array-includes": "^3.0.3",
@@ -18909,7 +19461,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
"integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "dev": true,
"requires": {
"graceful-fs": "^4.1.2",
"parse-json": "^2.2.0",
@@ -18920,8 +19471,7 @@
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
}
}
},
@@ -21310,7 +21860,6 @@
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
"integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
- "dev": true,
"requires": {
"hosted-git-info": "^2.1.4",
"is-builtin-module": "^1.0.0",
@@ -21435,8 +21984,7 @@
"object-inspect": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
- "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
- "dev": true
+ "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ=="
},
"object-keys": {
"version": "1.0.12",
@@ -21460,7 +22008,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
"integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
- "dev": true,
"requires": {
"define-properties": "^1.1.2",
"function-bind": "^1.1.1",
@@ -21732,6 +22279,15 @@
"no-case": "^2.2.0"
}
},
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
"parse-asn1": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
@@ -21792,7 +22348,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "dev": true,
"requires": {
"error-ex": "^1.2.0"
}
@@ -21853,8 +22408,7 @@
"path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
- "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
- "dev": true
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
},
"path-posix": {
"version": "1.0.0",
@@ -22151,7 +22705,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
"integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
- "dev": true,
"requires": {
"find-up": "^2.1.0"
},
@@ -22160,7 +22713,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
"requires": {
"locate-path": "^2.0.0"
}
@@ -22169,7 +22721,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "dev": true,
"requires": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
@@ -22179,7 +22730,6 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dev": true,
"requires": {
"p-try": "^1.0.0"
}
@@ -22188,7 +22738,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "dev": true,
"requires": {
"p-limit": "^1.1.0"
}
@@ -22196,8 +22745,7 @@
"p-try": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
- "dev": true
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
}
}
},
@@ -22264,12 +22812,6 @@
"semver-compare": "^1.0.0"
}
},
- "pluralize": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
- "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
- "dev": true
- },
"pn": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
@@ -24419,7 +24961,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
"integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "dev": true,
"requires": {
"load-json-file": "^2.0.0",
"normalize-package-data": "^2.3.2",
@@ -24430,7 +24971,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
"integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "dev": true,
"requires": {
"pify": "^2.0.0"
}
@@ -24438,8 +24978,7 @@
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
}
}
},
@@ -24447,7 +24986,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
"integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "dev": true,
"requires": {
"find-up": "^2.0.0",
"read-pkg": "^2.0.0"
@@ -24457,7 +24995,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
"requires": {
"locate-path": "^2.0.0"
}
@@ -24466,7 +25003,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "dev": true,
"requires": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
@@ -24476,7 +25012,6 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "dev": true,
"requires": {
"p-try": "^1.0.0"
}
@@ -24485,7 +25020,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "dev": true,
"requires": {
"p-limit": "^1.1.0"
}
@@ -24493,8 +25027,7 @@
"p-try": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
- "dev": true
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
}
}
},
@@ -24915,16 +25448,6 @@
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
},
- "require-uncached": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
- "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
- "dev": true,
- "requires": {
- "caller-path": "^0.1.0",
- "resolve-from": "^1.0.0"
- }
- },
"require_optional": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
@@ -24956,7 +25479,6 @@
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
"integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
- "dev": true,
"requires": {
"path-parse": "^1.0.5"
}
@@ -24972,9 +25494,9 @@
}
},
"resolve-from": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
- "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true
},
"resolve-pathname": {
@@ -25103,9 +25625,9 @@
}
},
"rxjs": {
- "version": "6.3.3",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.3.tgz",
- "integrity": "sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
+ "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
"dev": true,
"requires": {
"tslib": "^1.9.0"
@@ -25913,7 +26435,6 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz",
"integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==",
- "dev": true,
"requires": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
@@ -25922,14 +26443,12 @@
"spdx-exceptions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
- "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
- "dev": true
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
},
"spdx-expression-parse": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
"integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
- "dev": true,
"requires": {
"spdx-exceptions": "^2.1.0",
"spdx-license-ids": "^3.0.0"
@@ -25938,8 +26457,7 @@
"spdx-license-ids": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz",
- "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==",
- "dev": true
+ "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg=="
},
"speakeasy": {
"version": "2.0.0",
@@ -26283,7 +26801,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
"integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
- "dev": true,
"requires": {
"define-properties": "^1.1.3",
"function-bind": "^1.1.1"
@@ -26293,7 +26810,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
"integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
- "dev": true,
"requires": {
"define-properties": "^1.1.3",
"function-bind": "^1.1.1"
@@ -26346,8 +26862,7 @@
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
},
"strip-dirs": {
"version": "2.1.0",
@@ -27408,6 +27923,15 @@
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
"dev": true
},
+ "tsutils": {
+ "version": "3.17.1",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz",
+ "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.8.1"
+ }
+ },
"tty-browserify": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
@@ -27543,9 +28067,10 @@
"integrity": "sha512-V60F7OHPH7vPlgIU73vYyeebKxWjQqCTlge+MvKlVn09PIhCOi/ZotowYdgREHB5S1dyHOr906ui6NheYXjlVQ=="
},
"typescript": {
- "version": "2.9.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
- "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w=="
+ "version": "3.7.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.3.tgz",
+ "integrity": "sha512-Mcr/Qk7hXqFBXMN7p7Lusj1ktCBydylfQM/FZCk5glCNQJrCUKPkMHdo9R0MTFWsC/4kPFvDS0fDPvukfCkFsw==",
+ "dev": true
},
"ua-parser-js": {
"version": "0.7.19",
@@ -28138,6 +28663,12 @@
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
},
+ "v8-compile-cache": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
+ "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==",
+ "dev": true
+ },
"valid-data-url": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/valid-data-url/-/valid-data-url-0.1.6.tgz",
@@ -28147,7 +28678,6 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
"integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
"requires": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
@@ -28811,6 +29341,12 @@
"resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.2.5.tgz",
"integrity": "sha512-1Og5JkuMNZfZcDn76HM1ktUqG8MOMWKpaGdExM1pcTloUNSBkx4Mti3/jRKSTt1vI3P7S8BTkFogqMbc7m3A7Q=="
},
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true
+ },
"wordwrap": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
diff --git a/package.json b/package.json
index ca8bead3e79..88040f337e0 100644
--- a/package.json
+++ b/package.json
@@ -25,8 +25,9 @@
"start": "meteor",
"debug": "meteor run --inspect",
"debug-brk": "meteor run --inspect-brk",
- "lint": "meteor npm run stylelint && meteor npm run jslint",
- "jslint": "eslint .",
+ "lint": "meteor npm run stylelint && meteor npm run eslint",
+ "jslint": "npm run eslint",
+ "eslint": "eslint --ext .js,.ts,.jsx,.tsx .",
"stylelint": "stylelint \"app/**/*.css\" \"client/**/*.css\"",
"test": "node .scripts/start.js",
"deploy": "npm run build && pm2 startOrRestart pm2.json",
@@ -68,9 +69,13 @@
"@storybook/addon-viewport": "^5.2.4",
"@storybook/addons": "^5.2.4",
"@storybook/react": "^5.2.4",
+ "@types/bcrypt": "^3.0.0",
+ "@types/meteor": "^1.4.37",
+ "@typescript-eslint/eslint-plugin": "^2.11.0",
+ "@typescript-eslint/parser": "^2.11.0",
"acorn": "^6.0.7",
"autoprefixer": "^9.6.1",
- "babel-eslint": "^10.0.1",
+ "babel-eslint": "^10.0.3",
"babel-loader": "^8.0.6",
"babel-mocha-es6-compiler": "^0.1.0",
"babel-plugin-array-includes": "^2.0.3",
@@ -78,8 +83,9 @@
"chai-datetime": "^1.5.0",
"chimp": "^0.51.1",
"emojione-assets": "^4.5.0",
- "eslint": "^5.9.0",
- "eslint-plugin-react": "^7.14.3",
+ "eslint": "^6.7.2",
+ "eslint-plugin-import": "^2.19.1",
+ "eslint-plugin-react": "^7.17.0",
"fast-glob": "^2.2.6",
"husky": "^1.2.0",
"i18next": "^17.0.17",
@@ -103,6 +109,7 @@
"stylelint": "^9.9.0",
"stylelint-order": "^2.0.0",
"supertest": "^3.3.0",
+ "typescript": "^3.7.3",
"webpack": "^4.29.3"
},
"dependencies": {
diff --git a/server/methods/toogleFavorite.js b/server/methods/toogleFavorite.js
index 9cc84bf82f9..35d2b14da47 100644
--- a/server/methods/toogleFavorite.js
+++ b/server/methods/toogleFavorite.js
@@ -18,7 +18,7 @@ Meteor.methods({
if (!userSubscription) {
throw new Meteor.Error('error-invalid-subscription',
'You must be part of a room to favorite it',
- { method: 'toggleFavorite' }
+ { method: 'toggleFavorite' },
);
}
diff --git a/server/publications/room/emitter.js b/server/publications/room/emitter.js
index a9c3cf787a6..82a489e1209 100644
--- a/server/publications/room/emitter.js
+++ b/server/publications/room/emitter.js
@@ -31,7 +31,7 @@ Rooms.on('change', ({ clientAction, id, data }) => {
u._id,
'rooms-changed',
clientAction,
- data
+ data,
);
});
}
diff --git a/server/publications/subscription/emitter.js b/server/publications/subscription/emitter.js
index f41360cbfab..dfcd50f88a3 100644
--- a/server/publications/subscription/emitter.js
+++ b/server/publications/subscription/emitter.js
@@ -25,6 +25,6 @@ Subscriptions.on('change', ({ clientAction, id, data }) => {
data.u._id,
'subscriptions-changed',
clientAction,
- data
+ data,
);
});
diff --git a/server/startup/migrations/v009.js b/server/startup/migrations/v009.js
index f98905072dd..af97d619ef4 100644
--- a/server/startup/migrations/v009.js
+++ b/server/startup/migrations/v009.js
@@ -40,7 +40,7 @@ Migrations.add({
// use upsert to account for GENERAL room created by initialData
target.upsert({
_id: doc._id,
- }, doc)
+ }, doc),
);
const rawSource = source.rawCollection();
diff --git a/server/startup/migrations/v095.js b/server/startup/migrations/v095.js
index 99446162dc0..466324a5786 100644
--- a/server/startup/migrations/v095.js
+++ b/server/startup/migrations/v095.js
@@ -13,14 +13,14 @@ Migrations.add({
if (!startWithHTML) {
Settings.update(
{ _id: 'Email_Header' },
- { $set: { value: `${ emailHeader.value }` } }
+ { $set: { value: `${ emailHeader.value }` } },
);
}
if (!endsWithHTML) {
Settings.update(
{ _id: 'Email_Footer' },
- { $set: { value: `${ emailFooter.value }` } }
+ { $set: { value: `${ emailFooter.value }` } },
);
}
}
diff --git a/server/startup/migrations/v102.js b/server/startup/migrations/v102.js
index 8babda964b1..f56e1f570d4 100644
--- a/server/startup/migrations/v102.js
+++ b/server/startup/migrations/v102.js
@@ -10,19 +10,19 @@ Migrations.add({
Settings.update(
{ _id: 'LDAP_Connect_Timeout', value: 600000 },
- { $set: { value: 1000 } }
+ { $set: { value: 1000 } },
);
Settings.update(
{ _id: 'LDAP_Idle_Timeout', value: 600000 },
- { $set: { value: 1000 } }
+ { $set: { value: 1000 } },
);
const LDAP_Domain_Base = Settings.findOne({ _id: 'LDAP_Domain_Base' });
if (LDAP_Domain_Base) {
Settings.update(
{ _id: 'LDAP_BaseDN' },
- { $set: { value: LDAP_Domain_Base.value } }
+ { $set: { value: LDAP_Domain_Base.value } },
);
}
Settings.remove({ _id: 'LDAP_Domain_Base' });
@@ -31,7 +31,7 @@ Migrations.add({
if (LDAP_Domain_Search_User_ID) {
Settings.update(
{ _id: 'LDAP_User_Search_Field' },
- { $set: { value: LDAP_Domain_Search_User_ID.value } }
+ { $set: { value: LDAP_Domain_Search_User_ID.value } },
);
}
Settings.remove({ _id: 'LDAP_Domain_Search_User_ID' });
@@ -84,7 +84,7 @@ Migrations.add({
if (LDAP_Domain_Search_Filter && LDAP_Domain_Search_Filter.value) {
Settings.update(
{ _id: 'LDAP_User_Search_Filter' },
- { $set: { value: LDAP_Domain_Search_Filter.value } }
+ { $set: { value: LDAP_Domain_Search_Filter.value } },
);
}
Settings.remove({ _id: 'LDAP_Domain_Search_Filter' });
@@ -92,7 +92,7 @@ Migrations.add({
if (LDAP_Domain_Search_User && LDAP_Domain_Search_User.value) {
Settings.update(
{ _id: 'LDAP_Authentication_UserDN' },
- { $set: { value: LDAP_Domain_Search_User.value } }
+ { $set: { value: LDAP_Domain_Search_User.value } },
);
}
Settings.remove({ _id: 'LDAP_Domain_Search_User' });
@@ -101,7 +101,7 @@ Migrations.add({
if (LDAP_Domain_Search_Password && LDAP_Domain_Search_Password.value) {
Settings.update(
{ _id: 'LDAP_Authentication_Password' },
- { $set: { value: LDAP_Domain_Search_Password.value } }
+ { $set: { value: LDAP_Domain_Search_Password.value } },
);
}
Settings.remove({ _id: 'LDAP_Domain_Search_Password' });
@@ -109,7 +109,7 @@ Migrations.add({
if (LDAP_Domain_Search_User && LDAP_Domain_Search_User.value && LDAP_Domain_Search_Password && LDAP_Domain_Search_Password.value) {
Settings.update(
{ _id: 'LDAP_Authentication' },
- { $set: { value: true } }
+ { $set: { value: true } },
);
}
@@ -123,7 +123,7 @@ Migrations.add({
if (LDAP_Sync_User_Data && LDAP_Sync_User_Data.value) {
Settings.update(
{ _id: 'LDAP_Background_Sync' },
- { $set: { value: true } }
+ { $set: { value: true } },
);
}
@@ -131,7 +131,7 @@ Migrations.add({
if (LDAP_Import_Users && LDAP_Import_Users.value === false) {
Settings.update(
{ _id: 'LDAP_Background_Sync_Import_New_Users' },
- { $set: { value: false } }
+ { $set: { value: false } },
);
}
Settings.remove({ _id: 'LDAP_Import_Users' });
diff --git a/server/startup/migrations/v110.js b/server/startup/migrations/v110.js
index 75b26370f83..98b3483a01d 100644
--- a/server/startup/migrations/v110.js
+++ b/server/startup/migrations/v110.js
@@ -9,11 +9,11 @@ Migrations.add({
if (setting && setting.value) {
Settings.update(
{ _id: 'Accounts_Default_User_Preferences_messageViewMode' },
- { $set: { value: setting.value } }
+ { $set: { value: setting.value } },
);
Settings.remove(
- { _id: 'Accounts_Default_User_Preferences_viewMode' }
+ { _id: 'Accounts_Default_User_Preferences_viewMode' },
);
}
}
@@ -31,11 +31,11 @@ Migrations.add({
if (setting && setting.value) {
Settings.update(
{ _id: 'Accounts_Default_User_Preferences_viewMode' },
- { $set: { value: setting.value } }
+ { $set: { value: setting.value } },
);
Settings.remove(
- { _id: 'Accounts_Default_User_Preferences_messageViewMode' }
+ { _id: 'Accounts_Default_User_Preferences_messageViewMode' },
);
}
}
diff --git a/server/startup/migrations/v112.js b/server/startup/migrations/v112.js
index 9db2cae3d5e..8c266764751 100644
--- a/server/startup/migrations/v112.js
+++ b/server/startup/migrations/v112.js
@@ -9,7 +9,7 @@ Migrations.add({
if (setting && setting.value) {
Settings.update(
{ _id: 'Accounts_Default_User_Preferences_idleTimeoutLimit' },
- { $set: { value: setting.value / 1000 } }
+ { $set: { value: setting.value / 1000 } },
);
}
}
@@ -18,7 +18,7 @@ Migrations.add({
Users.find({ 'settings.preferences.idleTimeLimit': { $exists: 1 } }).forEach(function(user) {
Users.update(
{ _id: user._id },
- { $set: { 'settings.preferences.idleTimeLimit': user.settings.preferences.idleTimeLimit / 1000 } }
+ { $set: { 'settings.preferences.idleTimeLimit': user.settings.preferences.idleTimeLimit / 1000 } },
);
});
}
diff --git a/server/startup/migrations/v114.js b/server/startup/migrations/v114.js
index 2e86b71b635..64f162aa62c 100644
--- a/server/startup/migrations/v114.js
+++ b/server/startup/migrations/v114.js
@@ -9,7 +9,7 @@ Migrations.add({
if (setting && setting.value) {
Settings.upsert(
{ _id: 'Search.defaultProvider.GlobalSearchEnabled' },
- { $set: { value: setting.value } }
+ { $set: { value: setting.value } },
);
Settings.removeById('Message_GlobalSearch');
diff --git a/server/startup/migrations/v117.js b/server/startup/migrations/v117.js
index e1d1c11f514..25cb951a312 100644
--- a/server/startup/migrations/v117.js
+++ b/server/startup/migrations/v117.js
@@ -11,7 +11,7 @@ Migrations.add({
_id: 'Show_Setup_Wizard',
}, {
$set: { value: 'completed' },
- }
+ },
);
}
},
diff --git a/server/startup/migrations/v130.js b/server/startup/migrations/v130.js
index f64b845b0a4..88e9db68368 100644
--- a/server/startup/migrations/v130.js
+++ b/server/startup/migrations/v130.js
@@ -16,7 +16,7 @@ Migrations.add({
},
{
multi: true,
- }
+ },
);
Rooms.find(
@@ -27,10 +27,10 @@ Migrations.add({
fields: {
_id: 1,
},
- }
+ },
).forEach(({ _id }) => {
const usersCount = Subscriptions.findByRoomId(
- _id
+ _id,
).count();
Rooms._db.originals.update(
@@ -41,7 +41,7 @@ Migrations.add({
$set: {
usersCount,
},
- }
+ },
);
});
@@ -57,12 +57,12 @@ Migrations.add({
fields: {
name: 1,
},
- }
+ },
).fetch();
const users = Users.find(
{ username: { $exists: true }, name: { $exists: true } },
- { fields: { username: 1, name: 1 } }
+ { fields: { username: 1, name: 1 } },
).fetch();
const usersByUsername = users.reduce((obj, user) => {
obj[user.username] = user.name;
@@ -85,7 +85,7 @@ Migrations.add({
$set: {
fname: name,
},
- }
+ },
);
resolve();
@@ -103,7 +103,7 @@ Migrations.add({
itens.length,
'of',
subscriptions.length,
- 'subscriptions'
+ 'subscriptions',
);
if (itens.length) {
diff --git a/server/startup/migrations/v153.js b/server/startup/migrations/v153.js
index f8882194a1c..79a10a72850 100644
--- a/server/startup/migrations/v153.js
+++ b/server/startup/migrations/v153.js
@@ -48,7 +48,7 @@ Migrations.add({
$set: {
'metrics.chatDuration': (room.closedAt - room.ts) / 1000,
},
- }
+ },
);
});
@@ -60,7 +60,7 @@ Migrations.add({
status: 'queued',
},
},
- { multi: true }
+ { multi: true },
);
},
});
diff --git a/tests/end-to-end/api/05-chat.js b/tests/end-to-end/api/05-chat.js
index 1becf66dbb4..38e16220433 100644
--- a/tests/end-to-end/api/05-chat.js
+++ b/tests/end-to-end/api/05-chat.js
@@ -90,7 +90,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
it('attachment.author_link', (done) =>
@@ -114,7 +114,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
it('attachment.title_link', (done) =>
@@ -138,7 +138,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
it('attachment.action.url', (done) =>
@@ -169,7 +169,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
it('message.avatar', (done) =>
@@ -201,7 +201,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
it('attachment.action.image_url', (done) =>
@@ -233,7 +233,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
it('attachment.thumb_url', (done) =>
@@ -258,7 +258,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
it('attachment.author_icon', (done) =>
@@ -283,7 +283,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
it('attachment.image_url', (done) =>
@@ -308,7 +308,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
it('attachment.audio_url', (done) =>
request.post(api('chat.postMessage'))
@@ -332,7 +332,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
it('attachment.video_url', (done) =>
request.post(api('chat.postMessage'))
@@ -356,7 +356,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
});
@@ -540,7 +540,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
it('attachment.author_link', (done) =>
@@ -564,7 +564,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
it('attachment.title_link', (done) =>
@@ -588,7 +588,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
it('attachment.action.url', (done) =>
@@ -619,7 +619,7 @@ describe('[Chat]', function() {
expect(res.body).to.have.property('success', false);
expect(res.body).to.have.property('error');
})
- .end(done)
+ .end(done),
);
});
diff --git a/tests/end-to-end/ui/14-message-popup.js b/tests/end-to-end/ui/14-message-popup.js
index fe2e7d166e7..308f14c48d3 100644
--- a/tests/end-to-end/ui/14-message-popup.js
+++ b/tests/end-to-end/ui/14-message-popup.js
@@ -34,7 +34,7 @@ const createTestUser = async ({ email, name, username, password, isMentionable }
joinDefaultChannels: true,
verified: true,
})
- .end(done)
+ .end(done),
);
if (isMentionable) {
@@ -46,7 +46,7 @@ const createTestUser = async ({ email, name, username, password, isMentionable }
userCredentials['X-Auth-Token'] = res.body.data.authToken;
userCredentials['X-User-Id'] = res.body.data.userId;
})
- .end(done)
+ .end(done),
);
await new Promise((done) => request.post(api('chat.postMessage'))
@@ -55,7 +55,7 @@ const createTestUser = async ({ email, name, username, password, isMentionable }
channel: 'general',
text: 'Test',
})
- .end(done)
+ .end(done),
);
}
};
diff --git a/tests/pageobjects/side-nav.page.js b/tests/pageobjects/side-nav.page.js
index 6cf4b2f3c89..1ea9222cf80 100644
--- a/tests/pageobjects/side-nav.page.js
+++ b/tests/pageobjects/side-nav.page.js
@@ -143,7 +143,7 @@ class SideNav extends Page {
return browser.element(`.sidebar-item__name=${ channelName }`);
}
- createChannel(channelName, isPrivate, /* isReadOnly*/) {
+ createChannel(channelName, isPrivate /* isReadOnly*/) {
this.newChannelBtnToolbar.waitForVisible(10000);
this.newChannelBtnToolbar.click();
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 00000000000..84d64aaa3aa
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,47 @@
+{
+ "compilerOptions": {
+ "module": "esNext",
+ "target": "es2018",
+ "lib": ["esnext", "dom"],
+
+ "allowJs": true,
+ "checkJs": false,
+ "jsx": "preserve",
+ "incremental": true,
+ "noEmit": true,
+
+ /* Strict Type-Checking Options */
+ "strict": true,
+ "noImplicitAny": true,
+ "strictNullChecks": true,
+
+ /* Additional Checks */
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noImplicitReturns": false,
+ "noFallthroughCasesInSwitch": false,
+
+ /* Module Resolution Options */
+ "baseUrl": ".",
+ "paths": {
+ /* Support absolute /imports/* with a leading '/' */
+ "/*": ["*"]
+ },
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "types": ["node", "mocha"],
+ "esModuleInterop": true,
+ "preserveSymlinks": true,
+
+ // "sourceMap": true,
+ // "declaration": true,
+ // "removeComments": false,
+ // "emitDecoratorMetadata": true,
+ // "experimentalDecorators": true,
+ },
+ "exclude": [
+ "./.meteor/**",
+ "./packages/**"
+ // "node_modules"
+ ]
+}