chore: update eslint plugins (#33879)

pull/33956/head
Guilherme Gazzo 1 year ago committed by GitHub
parent 142fc42dcd
commit b2d864c568
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1
      apps/meteor/.eslintignore
  2. 2
      apps/meteor/app/2fa/server/code/EmailCheck.ts
  3. 2
      apps/meteor/app/2fa/server/code/PasswordCheckFallback.ts
  4. 2
      apps/meteor/app/2fa/server/code/TOTPCheck.ts
  5. 2
      apps/meteor/app/2fa/server/code/index.ts
  6. 2
      apps/meteor/app/2fa/server/loginHandler.ts
  7. 18
      apps/meteor/app/api/server/api.ts
  8. 4
      apps/meteor/app/api/server/v1/import.ts
  9. 2
      apps/meteor/app/api/server/v1/invites.ts
  10. 2
      apps/meteor/app/api/server/v1/voip/extensions.ts
  11. 2
      apps/meteor/app/api/server/v1/voip/omnichannel.ts
  12. 2
      apps/meteor/app/apple/server/appleOauthRegisterService.ts
  13. 4
      apps/meteor/app/apps/server/converters/threads.ts
  14. 4
      apps/meteor/app/apps/server/converters/transformMappedData.ts
  15. 2
      apps/meteor/app/authorization/server/functions/canDeleteMessage.ts
  16. 4
      apps/meteor/app/authorization/server/functions/canSendMessage.ts
  17. 2
      apps/meteor/app/autotranslate/client/lib/actionButton.ts
  18. 2
      apps/meteor/app/autotranslate/server/deeplTranslate.ts
  19. 2
      apps/meteor/app/autotranslate/server/googleTranslate.ts
  20. 4
      apps/meteor/app/autotranslate/server/msTranslate.ts
  21. 4
      apps/meteor/app/cloud/server/functions/connectWorkspace.ts
  22. 4
      apps/meteor/app/cloud/server/functions/getCheckoutUrl.ts
  23. 2
      apps/meteor/app/cloud/server/functions/getWorkspaceKey.ts
  24. 2
      apps/meteor/app/cloud/server/functions/registerPreIntentWorkspaceWizard.ts
  25. 6
      apps/meteor/app/cloud/server/functions/removeLicense.ts
  26. 2
      apps/meteor/app/cloud/server/functions/removeWorkspaceRegistrationInfo.ts
  27. 2
      apps/meteor/app/cloud/server/functions/saveRegistrationData.ts
  28. 6
      apps/meteor/app/cloud/server/functions/startRegisterWorkspace.ts
  29. 2
      apps/meteor/app/cloud/server/functions/startRegisterWorkspaceSetupWizard.ts
  30. 2
      apps/meteor/app/cloud/server/functions/syncWorkspace/index.ts
  31. 4
      apps/meteor/app/cloud/server/functions/userLogout.ts
  32. 2
      apps/meteor/app/cloud/server/index.ts
  33. 2
      apps/meteor/app/cloud/server/methods.ts
  34. 2
      apps/meteor/app/crowd/server/crowd.ts
  35. 4
      apps/meteor/app/crowd/server/methods.ts
  36. 2
      apps/meteor/app/custom-oauth/server/custom_oauth_server.js
  37. 2
      apps/meteor/app/custom-sounds/server/methods/uploadCustomSound.ts
  38. 12
      apps/meteor/app/e2e/client/rocketchat.e2e.room.ts
  39. 32
      apps/meteor/app/e2e/client/rocketchat.e2e.ts
  40. 2
      apps/meteor/app/emoji-custom/server/lib/uploadEmojiCustom.ts
  41. 2
      apps/meteor/app/emoji/client/emojiParser.ts
  42. 2
      apps/meteor/app/federation/server/lib/dns.js
  43. 2
      apps/meteor/app/file-upload/server/config/AmazonS3.ts
  44. 2
      apps/meteor/app/file-upload/server/config/FileSystem.ts
  45. 2
      apps/meteor/app/file-upload/server/config/GoogleStorage.ts
  46. 2
      apps/meteor/app/file-upload/server/config/GridFS.ts
  47. 2
      apps/meteor/app/file-upload/server/lib/FileUpload.ts
  48. 2
      apps/meteor/app/importer-csv/server/index.ts
  49. 2
      apps/meteor/app/importer-pending-avatars/server/index.ts
  50. 2
      apps/meteor/app/importer-pending-files/server/index.ts
  51. 2
      apps/meteor/app/importer-slack-users/server/index.ts
  52. 2
      apps/meteor/app/importer-slack/server/index.ts
  53. 8
      apps/meteor/app/importer/server/classes/Importer.ts
  54. 4
      apps/meteor/app/importer/server/classes/converters/MessageConverter.ts
  55. 2
      apps/meteor/app/importer/server/classes/converters/RecordConverter.ts
  56. 2
      apps/meteor/app/importer/server/classes/converters/RoomConverter.ts
  57. 2
      apps/meteor/app/importer/server/classes/converters/UserConverter.ts
  58. 2
      apps/meteor/app/integrations/server/lib/validateOutgoingIntegration.ts
  59. 2
      apps/meteor/app/integrations/server/triggers.ts
  60. 2
      apps/meteor/app/invites/server/functions/useInviteToken.ts
  61. 2
      apps/meteor/app/irc/server/irc.js
  62. 2
      apps/meteor/app/lib/server/functions/addUserToDefaultChannels.ts
  63. 2
      apps/meteor/app/lib/server/functions/checkUsernameAvailability.ts
  64. 2
      apps/meteor/app/lib/server/functions/cleanRoomHistory.ts
  65. 2
      apps/meteor/app/lib/server/functions/createRoom.ts
  66. 8
      apps/meteor/app/lib/server/functions/deleteUser.ts
  67. 2
      apps/meteor/app/lib/server/functions/getRoomByNameOrIdWithOptionToJoin.ts
  68. 4
      apps/meteor/app/lib/server/functions/processWebhookMessage.ts
  69. 2
      apps/meteor/app/lib/server/functions/relinquishRoomOwnerships.ts
  70. 4
      apps/meteor/app/lib/server/functions/saveCustomFields.ts
  71. 4
      apps/meteor/app/lib/server/functions/saveUser/saveUser.ts
  72. 2
      apps/meteor/app/lib/server/functions/saveUser/sendUserEmail.ts
  73. 2
      apps/meteor/app/lib/server/functions/saveUser/validateUserEditing.ts
  74. 8
      apps/meteor/app/lib/server/functions/saveUserIdentity.ts
  75. 2
      apps/meteor/app/lib/server/functions/sendMessage.ts
  76. 2
      apps/meteor/app/lib/server/functions/setRoomAvatar.ts
  77. 8
      apps/meteor/app/lib/server/functions/setUserActiveStatus.ts
  78. 4
      apps/meteor/app/lib/server/functions/setUserAvatar.ts
  79. 6
      apps/meteor/app/lib/server/functions/setUsername.ts
  80. 2
      apps/meteor/app/lib/server/functions/updateMessage.ts
  81. 2
      apps/meteor/app/lib/server/lib/interceptDirectReplyEmails.js
  82. 6
      apps/meteor/app/lib/server/lib/notifyUsersOnMessage.ts
  83. 2
      apps/meteor/app/lib/server/lib/sendNotificationsOnMessage.ts
  84. 2
      apps/meteor/app/lib/server/lib/validateEmailDomain.js
  85. 4
      apps/meteor/app/lib/server/methods/getChannelHistory.ts
  86. 4
      apps/meteor/app/livechat/server/business-hour/BusinessHourManager.ts
  87. 4
      apps/meteor/app/livechat/server/business-hour/Helper.ts
  88. 4
      apps/meteor/app/livechat/server/business-hour/Single.ts
  89. 2
      apps/meteor/app/livechat/server/business-hour/closeBusinessHour.ts
  90. 2
      apps/meteor/app/livechat/server/business-hour/index.ts
  91. 8
      apps/meteor/app/livechat/server/lib/Helper.ts
  92. 26
      apps/meteor/app/livechat/server/lib/QueueManager.ts
  93. 6
      apps/meteor/app/livechat/server/lib/RoutingManager.ts
  94. 6
      apps/meteor/app/livechat/server/lib/departmentsLib.ts
  95. 2
      apps/meteor/app/livechat/server/lib/parseTranscriptRequest.ts
  96. 2
      apps/meteor/app/livechat/server/lib/tracking.ts
  97. 2
      apps/meteor/app/livechat/server/methods/sendFileLivechatMessage.ts
  98. 2
      apps/meteor/app/livechat/server/roomAccessValidator.compatibility.ts
  99. 2
      apps/meteor/app/livechat/server/sendMessageBySMS.ts
  100. 8
      apps/meteor/app/livechat/server/startup.ts
  101. Some files were not shown because too many files have changed in this diff Show More

@ -13,3 +13,4 @@
!/client/.eslintrc.js
!/ee/client/.eslintrc.js
/storybook-static/
/packages/

@ -4,10 +4,10 @@ import { Random } from '@rocket.chat/random';
import bcrypt from 'bcrypt';
import { Accounts } from 'meteor/accounts-base';
import type { ICodeCheck, IProcessInvalidCodeResult } from './ICodeCheck';
import { i18n } from '../../../../server/lib/i18n';
import * as Mailer from '../../../mailer/server/api';
import { settings } from '../../../settings/server';
import type { ICodeCheck, IProcessInvalidCodeResult } from './ICodeCheck';
export class EmailCheck implements ICodeCheck {
public readonly name = 'email';

@ -1,8 +1,8 @@
import type { IUser } from '@rocket.chat/core-typings';
import { Accounts } from 'meteor/accounts-base';
import { settings } from '../../../settings/server';
import type { ICodeCheck, IProcessInvalidCodeResult } from './ICodeCheck';
import { settings } from '../../../settings/server';
export class PasswordCheckFallback implements ICodeCheck {
public readonly name = 'password';

@ -1,8 +1,8 @@
import type { IUser } from '@rocket.chat/core-typings';
import type { ICodeCheck, IProcessInvalidCodeResult } from './ICodeCheck';
import { settings } from '../../../settings/server';
import { TOTP } from '../lib/totp';
import type { ICodeCheck, IProcessInvalidCodeResult } from './ICodeCheck';
export class TOTPCheck implements ICodeCheck {
public readonly name = 'totp';

@ -5,11 +5,11 @@ import { Users } from '@rocket.chat/models';
import { Accounts } from 'meteor/accounts-base';
import { Meteor } from 'meteor/meteor';
import { settings } from '../../../settings/server';
import { EmailCheck } from './EmailCheck';
import type { ICodeCheck } from './ICodeCheck';
import { PasswordCheckFallback } from './PasswordCheckFallback';
import { TOTPCheck } from './TOTPCheck';
import { settings } from '../../../settings/server';
export interface ITwoFactorOptions {
disablePasswordFallback?: boolean;

@ -3,8 +3,8 @@ import { check } from 'meteor/check';
import { Meteor } from 'meteor/meteor';
import { OAuth } from 'meteor/oauth';
import { callbacks } from '../../../lib/callbacks';
import { checkCodeForUser } from './code/index';
import { callbacks } from '../../../lib/callbacks';
const isMeteorError = (error: any): error is Meteor.Error => {
return error?.meteorError !== undefined;

@ -14,15 +14,6 @@ import type { Request, Response } from 'meteor/rocketchat:restivus';
import { Restivus } from 'meteor/rocketchat:restivus';
import _ from 'underscore';
import { isObject } from '../../../lib/utils/isObject';
import { getNestedProp } from '../../../server/lib/getNestedProp';
import { getRestPayload } from '../../../server/lib/logger/logPayloads';
import { checkCodeForUser } from '../../2fa/server/code';
import { hasPermissionAsync } from '../../authorization/server/functions/hasPermission';
import { notifyOnUserChangeAsync } from '../../lib/server/lib/notifyListener';
import { metrics } from '../../metrics/server';
import { settings } from '../../settings/server';
import { getDefaultUserFields } from '../../utils/server/functions/getDefaultUserFields';
import type { PermissionsPayload } from './api.helpers';
import { checkPermissionsForInvocation, checkPermissions, parseDeprecation } from './api.helpers';
import type {
@ -37,6 +28,15 @@ import type {
} from './definition';
import { getUserInfo } from './helpers/getUserInfo';
import { parseJsonQuery } from './helpers/parseJsonQuery';
import { isObject } from '../../../lib/utils/isObject';
import { getNestedProp } from '../../../server/lib/getNestedProp';
import { getRestPayload } from '../../../server/lib/logger/logPayloads';
import { checkCodeForUser } from '../../2fa/server/code';
import { hasPermissionAsync } from '../../authorization/server/functions/hasPermission';
import { notifyOnUserChangeAsync } from '../../lib/server/lib/notifyListener';
import { metrics } from '../../metrics/server';
import { settings } from '../../settings/server';
import { getDefaultUserFields } from '../../utils/server/functions/getDefaultUserFields';
const logger = new Logger('API');

@ -15,8 +15,6 @@ import {
} from '@rocket.chat/rest-typings';
import { Meteor } from 'meteor/meteor';
import { PendingAvatarImporter } from '../../../importer-pending-avatars/server/PendingAvatarImporter';
import { PendingFileImporter } from '../../../importer-pending-files/server/PendingFileImporter';
import { Importers } from '../../../importer/server';
import {
executeUploadImportFile,
@ -26,6 +24,8 @@ import {
executeStartImport,
executeGetLatestImportOperations,
} from '../../../importer/server/methods';
import { PendingAvatarImporter } from '../../../importer-pending-avatars/server/PendingAvatarImporter';
import { PendingFileImporter } from '../../../importer-pending-files/server/PendingFileImporter';
import { API } from '../api';
API.v1.addRoute(

@ -63,8 +63,6 @@ API.v1.addRoute(
{
async post() {
const { token } = this.bodyParams;
// eslint-disable-next-line react-hooks/rules-of-hooks
// eslint-disable-next-line react-hooks/rules-of-hooks
return API.v1.success(await useInviteToken(this.userId, token));
},

@ -3,10 +3,10 @@ import type { IVoipExtensionBase } from '@rocket.chat/core-typings';
import { Users } from '@rocket.chat/models';
import { Match, check } from 'meteor/check';
import { logger } from './logger';
import { settings } from '../../../../settings/server';
import { generateJWT } from '../../../../utils/server/lib/JWTHelper';
import { API } from '../../api';
import { logger } from './logger';
// Get the connector version and type
API.v1.addRoute(

@ -3,10 +3,10 @@ import type { IUser, IVoipExtensionWithAgentInfo } from '@rocket.chat/core-typin
import { Users } from '@rocket.chat/models';
import { Match, check } from 'meteor/check';
import { logger } from './logger';
import { notifyOnUserChange } from '../../../../lib/server/lib/notifyListener';
import { API } from '../../api';
import { getPaginationItems } from '../../helpers/getPaginationItems';
import { logger } from './logger';
function filter(
array: IVoipExtensionWithAgentInfo[],

@ -1,9 +1,9 @@
import { KJUR } from 'jsrsasign';
import { ServiceConfiguration } from 'meteor/service-configuration';
import { AppleCustomOAuth } from './AppleCustomOAuth';
import { settings } from '../../settings/server';
import { config } from '../lib/config';
import { AppleCustomOAuth } from './AppleCustomOAuth';
new AppleCustomOAuth('apple', config);

@ -1,8 +1,8 @@
import type { IAppRoomsConverter, IAppThreadsConverter, IAppUsersConverter, IAppsMessage, IAppsUser } from '@rocket.chat/apps';
import type { IMessage as AppsEngineMessage, IMessageAttachment } from '@rocket.chat/apps-engine/definition/messages';
import type { IRoom } from '@rocket.chat/apps-engine/definition/rooms';
import type { IUser } from '@rocket.chat/core-typings';
import { isEditedMessage, type IMessage } from '@rocket.chat/core-typings';
import { isEditedMessage } from '@rocket.chat/core-typings';
import type { IUser, IMessage } from '@rocket.chat/core-typings';
import { Messages } from '@rocket.chat/models';
import { cachedFunction } from './cachedFunction';

@ -1,5 +1,3 @@
import cloneDeep from 'lodash.clonedeep';
/**
* Transforms a `data` source object to another object,
* essentially applying a to -> from mapping provided by
@ -79,7 +77,7 @@ export const transformMappedData = async <
data: DataType,
map: MapType,
): Promise<ResultType & { _unmappedProperties_: UnmappedProperties }> => {
const originalData: DataType = cloneDeep(data);
const originalData: DataType = structuredClone(data);
const transformedData: Record<string, any> = {};
for await (const [to, from] of Object.entries(map)) {

@ -1,9 +1,9 @@
import type { IUser, IRoom } from '@rocket.chat/core-typings';
import { Rooms } from '@rocket.chat/models';
import { getValue } from '../../../settings/server/raw';
import { canAccessRoomAsync } from './canAccessRoom';
import { hasPermissionAsync } from './hasPermission';
import { getValue } from '../../../settings/server/raw';
const elapsedTime = (ts: Date): number => {
const dif = Date.now() - ts.getTime();

@ -1,10 +1,10 @@
import type { IRoom, IUser } from '@rocket.chat/core-typings';
import { Subscriptions, Rooms } from '@rocket.chat/models';
import { RoomMemberActions } from '../../../../definition/IRoomTypeConfig';
import { roomCoordinator } from '../../../../server/lib/rooms/roomCoordinator';
import { canAccessRoomAsync } from './canAccessRoom';
import { hasPermissionAsync } from './hasPermission';
import { RoomMemberActions } from '../../../../definition/IRoomTypeConfig';
import { roomCoordinator } from '../../../../server/lib/rooms/roomCoordinator';
const subscriptionOptions = {
projection: {

@ -1,6 +1,7 @@
import { Meteor } from 'meteor/meteor';
import { Tracker } from 'meteor/tracker';
import { AutoTranslate } from './autotranslate';
import { roomCoordinator } from '../../../../client/lib/rooms/roomCoordinator';
import {
hasTranslationLanguageInAttachments,
@ -11,7 +12,6 @@ import { Messages } from '../../../models/client';
import { settings } from '../../../settings/client';
import { MessageAction } from '../../../ui-utils/client/lib/MessageAction';
import { sdk } from '../../../utils/client/lib/SDKClient';
import { AutoTranslate } from './autotranslate';
Meteor.startup(() => {
AutoTranslate.init();

@ -13,10 +13,10 @@ import type {
import { serverFetch as fetch } from '@rocket.chat/server-fetch';
import _ from 'underscore';
import { TranslationProviderRegistry, AutoTranslate } from './autotranslate';
import { i18n } from '../../../server/lib/i18n';
import { SystemLogger } from '../../../server/lib/logger/system';
import { settings } from '../../settings/server';
import { TranslationProviderRegistry, AutoTranslate } from './autotranslate';
const proApiEndpoint = 'https://api.deepl.com/v2/translate';
const freeApiEndpoint = 'https://api-free.deepl.com/v2/translate';

@ -13,10 +13,10 @@ import type {
import { serverFetch as fetch } from '@rocket.chat/server-fetch';
import _ from 'underscore';
import { AutoTranslate, TranslationProviderRegistry } from './autotranslate';
import { i18n } from '../../../server/lib/i18n';
import { SystemLogger } from '../../../server/lib/logger/system';
import { settings } from '../../settings/server';
import { AutoTranslate, TranslationProviderRegistry } from './autotranslate';
/**
* Represents google translate class

@ -6,10 +6,10 @@ import type { IMessage, IProviderMetadata, ISupportedLanguage, ITranslationResul
import { serverFetch as fetch } from '@rocket.chat/server-fetch';
import _ from 'underscore';
import { i18n } from '../../../server/lib/i18n';
import { settings } from '../../settings/server';
import { TranslationProviderRegistry, AutoTranslate } from './autotranslate';
import { msLogger } from './logger';
import { i18n } from '../../../server/lib/i18n';
import { settings } from '../../settings/server';
/**
* Microsoft translation service provider class representation.

@ -1,10 +1,10 @@
import { serverFetch as fetch } from '@rocket.chat/server-fetch';
import { getRedirectUri } from './getRedirectUri';
import { saveRegistrationData } from './saveRegistrationData';
import { CloudWorkspaceConnectionError } from '../../../../lib/errors/CloudWorkspaceConnectionError';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { settings } from '../../../settings/server';
import { getRedirectUri } from './getRedirectUri';
import { saveRegistrationData } from './saveRegistrationData';
const fetchRegistrationDataPayload = async ({
token,

@ -1,10 +1,10 @@
import { serverFetch as fetch } from '@rocket.chat/server-fetch';
import { getWorkspaceAccessTokenOrThrow } from './getWorkspaceAccessToken';
import { syncWorkspace } from './syncWorkspace';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { settings } from '../../../settings/server';
import { getURL } from '../../../utils/server/getURL';
import { getWorkspaceAccessTokenOrThrow } from './getWorkspaceAccessToken';
import { syncWorkspace } from './syncWorkspace';
export const fallback = `https://go.rocket.chat/i/contact-sales`;

@ -1,5 +1,5 @@
import { settings } from '../../../settings/server';
import { retrieveRegistrationStatus } from './retrieveRegistrationStatus';
import { settings } from '../../../settings/server';
export async function getWorkspaceKey() {
const { workspaceRegistered } = await retrieveRegistrationStatus();

@ -2,9 +2,9 @@ import type { IUser } from '@rocket.chat/core-typings';
import { Users } from '@rocket.chat/models';
import { serverFetch as fetch } from '@rocket.chat/server-fetch';
import { buildWorkspaceRegistrationData } from './buildRegistrationData';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { settings } from '../../../settings/server';
import { buildWorkspaceRegistrationData } from './buildRegistrationData';
export async function registerPreIntentWorkspaceWizard(): Promise<boolean> {
const firstUser = (await Users.getOldest({ projection: { name: 1, emails: 1 } })) as IUser | undefined;

@ -1,12 +1,12 @@
import { serverFetch as fetch } from '@rocket.chat/server-fetch';
import { CloudWorkspaceAccessTokenEmptyError, getWorkspaceAccessToken } from './getWorkspaceAccessToken';
import { retrieveRegistrationStatus } from './retrieveRegistrationStatus';
import { syncWorkspace } from './syncWorkspace';
import { callbacks } from '../../../../lib/callbacks';
import { CloudWorkspaceConnectionError } from '../../../../lib/errors/CloudWorkspaceConnectionError';
import { CloudWorkspaceRegistrationError } from '../../../../lib/errors/CloudWorkspaceRegistrationError';
import { settings } from '../../../settings/server';
import { CloudWorkspaceAccessTokenEmptyError, getWorkspaceAccessToken } from './getWorkspaceAccessToken';
import { retrieveRegistrationStatus } from './retrieveRegistrationStatus';
import { syncWorkspace } from './syncWorkspace';
export async function removeLicense() {
try {

@ -1,7 +1,7 @@
import { Settings, WorkspaceCredentials } from '@rocket.chat/models';
import { notifyOnSettingChangedById } from '../../../lib/server/lib/notifyListener';
import { retrieveRegistrationStatus } from './retrieveRegistrationStatus';
import { notifyOnSettingChangedById } from '../../../lib/server/lib/notifyListener';
export async function removeWorkspaceRegistrationInfo() {
const { workspaceRegistered } = await retrieveRegistrationStatus();

@ -1,9 +1,9 @@
import { applyLicense } from '@rocket.chat/license';
import { Settings } from '@rocket.chat/models';
import { syncCloudData } from './syncWorkspace/syncCloudData';
import { notifyOnSettingChangedById } from '../../../lib/server/lib/notifyListener';
import { settings } from '../../../settings/server';
import { syncCloudData } from './syncWorkspace/syncCloudData';
type SaveRegistrationDataDTO = {
workspaceId: string;

@ -1,12 +1,12 @@
import { Settings } from '@rocket.chat/models';
import { serverFetch as fetch } from '@rocket.chat/server-fetch';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { notifyOnSettingChangedById } from '../../../lib/server/lib/notifyListener';
import { settings } from '../../../settings/server';
import { buildWorkspaceRegistrationData } from './buildRegistrationData';
import { retrieveRegistrationStatus } from './retrieveRegistrationStatus';
import { syncWorkspace } from './syncWorkspace';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { notifyOnSettingChangedById } from '../../../lib/server/lib/notifyListener';
import { settings } from '../../../settings/server';
export async function startRegisterWorkspace(resend = false) {
const { workspaceRegistered } = await retrieveRegistrationStatus();

@ -1,9 +1,9 @@
import type { CloudRegistrationIntentData } from '@rocket.chat/core-typings';
import { serverFetch as fetch } from '@rocket.chat/server-fetch';
import { buildWorkspaceRegistrationData } from './buildRegistrationData';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { settings } from '../../../settings/server';
import { buildWorkspaceRegistrationData } from './buildRegistrationData';
export async function startRegisterWorkspaceSetupWizard(resend = false, email: string): Promise<CloudRegistrationIntentData> {
const regInfo = await buildWorkspaceRegistrationData(email);

@ -1,10 +1,10 @@
import { CloudWorkspaceRegistrationError } from '../../../../../lib/errors/CloudWorkspaceRegistrationError';
import { SystemLogger } from '../../../../../server/lib/logger/system';
import { CloudWorkspaceAccessTokenEmptyError, CloudWorkspaceAccessTokenError, isAbortError } from '../getWorkspaceAccessToken';
import { getCachedSupportedVersionsToken } from '../supportedVersionsToken/supportedVersionsToken';
import { announcementSync } from './announcementSync';
import { legacySyncWorkspace } from './legacySyncWorkspace';
import { syncCloudData } from './syncCloudData';
import { getCachedSupportedVersionsToken } from '../supportedVersionsToken/supportedVersionsToken';
/**
* Syncs the workspace with the cloud

@ -1,10 +1,10 @@
import { Users } from '@rocket.chat/models';
import { serverFetch as fetch } from '@rocket.chat/server-fetch';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { settings } from '../../../settings/server';
import { retrieveRegistrationStatus } from './retrieveRegistrationStatus';
import { userLoggedOut } from './userLoggedOut';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { settings } from '../../../settings/server';
export async function userLogout(userId: string): Promise<string | boolean> {
const { workspaceRegistered } = await retrieveRegistrationStatus();

@ -1,12 +1,12 @@
import { cronJobs } from '@rocket.chat/cron';
import { Meteor } from 'meteor/meteor';
import { SystemLogger } from '../../../server/lib/logger/system';
import { connectWorkspace } from './functions/connectWorkspace';
import { CloudWorkspaceAccessTokenEmptyError, getWorkspaceAccessToken } from './functions/getWorkspaceAccessToken';
import { getWorkspaceAccessTokenWithScope } from './functions/getWorkspaceAccessTokenWithScope';
import { retrieveRegistrationStatus } from './functions/retrieveRegistrationStatus';
import { syncWorkspace } from './functions/syncWorkspace';
import { SystemLogger } from '../../../server/lib/logger/system';
import './methods';
const licenseCronName = 'Cloud Workspace Sync';

@ -2,7 +2,6 @@ import type { ServerMethods } from '@rocket.chat/ddp-client';
import { check } from 'meteor/check';
import { Meteor } from 'meteor/meteor';
import { hasPermissionAsync } from '../../authorization/server/functions/hasPermission';
import { buildWorkspaceRegistrationData } from './functions/buildRegistrationData';
import { checkUserHasCloudLogin } from './functions/checkUserHasCloudLogin';
import { connectWorkspace } from './functions/connectWorkspace';
@ -12,6 +11,7 @@ import { retrieveRegistrationStatus } from './functions/retrieveRegistrationStat
import { startRegisterWorkspace } from './functions/startRegisterWorkspace';
import { syncWorkspace } from './functions/syncWorkspace';
import { userLogout } from './functions/userLogout';
import { hasPermissionAsync } from '../../authorization/server/functions/hasPermission';
declare module '@rocket.chat/ddp-client' {
// eslint-disable-next-line @typescript-eslint/naming-convention

@ -6,13 +6,13 @@ import AtlassianCrowd from 'atlassian-crowd-patched';
import { Accounts } from 'meteor/accounts-base';
import { Meteor } from 'meteor/meteor';
import { logger } from './logger';
import { crowdIntervalValuesToCronMap } from '../../../server/settings/crowd';
import { deleteUser } from '../../lib/server/functions/deleteUser';
import { _setRealName } from '../../lib/server/functions/setRealName';
import { setUserActiveStatus } from '../../lib/server/functions/setUserActiveStatus';
import { notifyOnUserChange, notifyOnUserChangeById, notifyOnUserChangeAsync } from '../../lib/server/lib/notifyListener';
import { settings } from '../../settings/server';
import { logger } from './logger';
type CrowdUser = Pick<IUser, '_id' | 'username'> & { crowd: Record<string, any>; crowd_username: string };

@ -2,10 +2,10 @@ import type { ServerMethods } from '@rocket.chat/ddp-client';
import type { TranslationKey } from '@rocket.chat/ui-contexts';
import { Meteor } from 'meteor/meteor';
import { hasPermissionAsync } from '../../authorization/server/functions/hasPermission';
import { settings } from '../../settings/server';
import { CROWD } from './crowd';
import { logger } from './logger';
import { hasPermissionAsync } from '../../authorization/server/functions/hasPermission';
import { settings } from '../../settings/server';
declare module '@rocket.chat/ddp-client' {
// eslint-disable-next-line @typescript-eslint/naming-convention

@ -9,12 +9,12 @@ import { OAuth } from 'meteor/oauth';
import { ServiceConfiguration } from 'meteor/service-configuration';
import _ from 'underscore';
import { normalizers, fromTemplate, renameInvalidProperties } from './transform_helpers';
import { callbacks } from '../../../lib/callbacks';
import { isURL } from '../../../lib/utils/isURL';
import { notifyOnUserChange } from '../../lib/server/lib/notifyListener';
import { registerAccessTokenService } from '../../lib/server/oauth/oauth';
import { settings } from '../../settings/server';
import { normalizers, fromTemplate, renameInvalidProperties } from './transform_helpers';
const logger = new Logger('CustomOAuth');

@ -3,10 +3,10 @@ import type { RequiredField } from '@rocket.chat/core-typings';
import type { ServerMethods } from '@rocket.chat/ddp-client';
import { Meteor } from 'meteor/meteor';
import type { ICustomSoundData } from './insertOrUpdateSound';
import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission';
import { RocketChatFile } from '../../../file/server';
import { RocketChatFileCustomSoundsInstance } from '../startup/custom-sounds';
import type { ICustomSoundData } from './insertOrUpdateSound';
declare module '@rocket.chat/ddp-client' {
// eslint-disable-next-line @typescript-eslint/naming-convention

@ -2,12 +2,6 @@ import { Base64 } from '@rocket.chat/base64';
import { Emitter } from '@rocket.chat/emitter';
import EJSON from 'ejson';
import { RoomManager } from '../../../client/lib/RoomManager';
import { roomCoordinator } from '../../../client/lib/rooms/roomCoordinator';
import { RoomSettingsEnum } from '../../../definition/IRoomTypeConfig';
import { ChatRoom, Subscriptions, Messages } from '../../models/client';
import { sdk } from '../../utils/client/lib/SDKClient';
import { t } from '../../utils/lib/i18n';
import { E2ERoomState } from './E2ERoomState';
import {
toString,
@ -30,6 +24,12 @@ import {
} from './helper';
import { log, logError } from './logger';
import { e2e } from './rocketchat.e2e';
import { RoomManager } from '../../../client/lib/RoomManager';
import { roomCoordinator } from '../../../client/lib/rooms/roomCoordinator';
import { RoomSettingsEnum } from '../../../definition/IRoomTypeConfig';
import { ChatRoom, Subscriptions, Messages } from '../../models/client';
import { sdk } from '../../utils/client/lib/SDKClient';
import { t } from '../../utils/lib/i18n';
const KEY_ID = Symbol('keyID');
const PAUSED = Symbol('PAUSED');

@ -10,22 +10,6 @@ import { Accounts } from 'meteor/accounts-base';
import { Meteor } from 'meteor/meteor';
import { Tracker } from 'meteor/tracker';
import * as banners from '../../../client/lib/banners';
import type { LegacyBannerPayload } from '../../../client/lib/banners';
import { imperativeModal } from '../../../client/lib/imperativeModal';
import { dispatchToastMessage } from '../../../client/lib/toast';
import { mapMessageFromApi } from '../../../client/lib/utils/mapMessageFromApi';
import { waitUntilFind } from '../../../client/lib/utils/waitUntilFind';
import EnterE2EPasswordModal from '../../../client/views/e2e/EnterE2EPasswordModal';
import SaveE2EPasswordModal from '../../../client/views/e2e/SaveE2EPasswordModal';
import { createQuoteAttachment } from '../../../lib/createQuoteAttachment';
import { getMessageUrlRegex } from '../../../lib/getMessageUrlRegex';
import { isTruthy } from '../../../lib/isTruthy';
import { ChatRoom, Subscriptions, Messages } from '../../models/client';
import { settings } from '../../settings/client';
import { getUserAvatarURL } from '../../utils/client';
import { sdk } from '../../utils/client/lib/SDKClient';
import { t } from '../../utils/lib/i18n';
import { E2EEState } from './E2EEState';
import {
toString,
@ -43,6 +27,22 @@ import {
} from './helper';
import { log, logError } from './logger';
import { E2ERoom } from './rocketchat.e2e.room';
import * as banners from '../../../client/lib/banners';
import type { LegacyBannerPayload } from '../../../client/lib/banners';
import { imperativeModal } from '../../../client/lib/imperativeModal';
import { dispatchToastMessage } from '../../../client/lib/toast';
import { mapMessageFromApi } from '../../../client/lib/utils/mapMessageFromApi';
import { waitUntilFind } from '../../../client/lib/utils/waitUntilFind';
import EnterE2EPasswordModal from '../../../client/views/e2e/EnterE2EPasswordModal';
import SaveE2EPasswordModal from '../../../client/views/e2e/SaveE2EPasswordModal';
import { createQuoteAttachment } from '../../../lib/createQuoteAttachment';
import { getMessageUrlRegex } from '../../../lib/getMessageUrlRegex';
import { isTruthy } from '../../../lib/isTruthy';
import { ChatRoom, Subscriptions, Messages } from '../../models/client';
import { settings } from '../../settings/client';
import { getUserAvatarURL } from '../../utils/client';
import { sdk } from '../../utils/client/lib/SDKClient';
import { t } from '../../utils/lib/i18n';
import './events';

@ -5,10 +5,10 @@ import limax from 'limax';
import { Meteor } from 'meteor/meteor';
import sharp from 'sharp';
import type { EmojiData } from './insertOrUpdateEmoji';
import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission';
import { RocketChatFile } from '../../../file/server';
import { RocketChatFileEmojiCustomInstance } from '../startup/emoji-custom';
import type { EmojiData } from './insertOrUpdateEmoji';
const getFile = async (file: Buffer, extension: string) => {
if (extension !== 'svg+xml') {

@ -1,5 +1,5 @@
import { isIE11 } from '../../../client/lib/utils/isIE11';
import { emoji } from './lib';
import { isIE11 } from '../../../client/lib/utils/isIE11';
/**
* emojiParser is a function that will replace emojis

@ -3,10 +3,10 @@ import util from 'util';
import mem from 'mem';
import * as federationErrors from '../functions/errors';
import { federationRequest } from './http';
import { isFederationEnabled } from './isFederationEnabled';
import { dnsLogger } from './logger';
import * as federationErrors from '../functions/errors';
const dnsResolveSRV = util.promisify(dnsResolver.resolveSrv);
const dnsResolveTXT = util.promisify(dnsResolver.resolveTxt);

@ -3,11 +3,11 @@ import https from 'https';
import _ from 'underscore';
import { forceDownload } from './helper';
import { settings } from '../../../settings/server';
import type { S3Options } from '../../ufs/AmazonS3/server';
import { FileUploadClass, FileUpload } from '../lib/FileUpload';
import '../../ufs/AmazonS3/server';
import { forceDownload } from './helper';
const get: FileUploadClass['get'] = async function (this: FileUploadClass, file, req, res) {
const forcedDownload = forceDownload(req);

@ -1,10 +1,10 @@
import fsp from 'fs/promises';
import { getContentDisposition } from './helper';
import { UploadFS } from '../../../../server/ufs';
import { settings } from '../../../settings/server';
import { FileUploadClass, FileUpload } from '../lib/FileUpload';
import { getFileRange, setRangeHeaders } from '../lib/ranges';
import { getContentDisposition } from './helper';
const FileSystemUploads = new FileUploadClass({
name: 'FileSystem:Uploads',

@ -3,10 +3,10 @@ import https from 'https';
import _ from 'underscore';
import { forceDownload } from './helper';
import { settings } from '../../../settings/server';
import { FileUploadClass, FileUpload } from '../lib/FileUpload';
import '../../ufs/GoogleStorage/server';
import { forceDownload } from './helper';
const get: FileUploadClass['get'] = async function (this: FileUploadClass, file, req, res) {
const forcedDownload = forceDownload(req);

@ -6,10 +6,10 @@ import zlib from 'zlib';
import type { IUpload } from '@rocket.chat/core-typings';
import { Logger } from '@rocket.chat/logger';
import { getContentDisposition } from './helper';
import { UploadFS } from '../../../../server/ufs';
import { FileUploadClass, FileUpload } from '../lib/FileUpload';
import { getFileRange, setRangeHeaders } from '../lib/ranges';
import { getContentDisposition } from './helper';
const logger = new Logger('FileUpload');

@ -22,6 +22,7 @@ import sharp from 'sharp';
import type { WritableStreamBuffer } from 'stream-buffers';
import streamBuffers from 'stream-buffers';
import { streamToBuffer } from './streamToBuffer';
import { i18n } from '../../../../server/lib/i18n';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { roomCoordinator } from '../../../../server/lib/rooms/roomCoordinator';
@ -33,7 +34,6 @@ import { settings } from '../../../settings/server';
import { mime } from '../../../utils/lib/mimeTypes';
import { isValidJWT, generateJWT } from '../../../utils/server/lib/JWTHelper';
import { fileUploadIsValidContentType } from '../../../utils/server/restrictions';
import { streamToBuffer } from './streamToBuffer';
const cookie = new Cookies();
let maxFileSize = 0;

@ -1,5 +1,5 @@
import { Importers } from '../../importer/server';
import { CsvImporter } from './CsvImporter';
import { Importers } from '../../importer/server';
Importers.add({
key: 'csv',

@ -1,5 +1,5 @@
import { Importers } from '../../importer/server';
import { PendingAvatarImporter } from './PendingAvatarImporter';
import { Importers } from '../../importer/server';
Importers.add({
key: 'pending-avatars',

@ -1,5 +1,5 @@
import { Importers } from '../../importer/server';
import { PendingFileImporter } from './PendingFileImporter';
import { Importers } from '../../importer/server';
Importers.add({
key: 'pending-files',

@ -1,5 +1,5 @@
import { Importers } from '../../importer/server';
import { SlackUsersImporter } from './SlackUsersImporter';
import { Importers } from '../../importer/server';
Importers.add({
key: 'slack-users',

@ -1,5 +1,5 @@
import { Importers } from '../../importer/server';
import { SlackImporter } from './SlackImporter';
import { Importers } from '../../importer/server';
Importers.add({
key: 'slack',

@ -13,14 +13,14 @@ import AdmZip from 'adm-zip';
import type { MatchKeysAndValues, MongoServerError } from 'mongodb';
import { Selection, SelectionChannel, SelectionUser } from '..';
import { notifyOnSettingChangedById } from '../../../lib/server/lib/notifyListener';
import { t } from '../../../utils/lib/i18n';
import { ProgressStep, ImportPreparingStartedStates } from '../../lib/ImporterProgressStep';
import type { ImporterInfo } from '../definitions/ImporterInfo';
import { ImportDataConverter } from './ImportDataConverter';
import type { ConverterOptions } from './ImportDataConverter';
import { ImporterProgress } from './ImporterProgress';
import { ImporterWebsocket } from './ImporterWebsocket';
import { notifyOnSettingChangedById } from '../../../lib/server/lib/notifyListener';
import { t } from '../../../utils/lib/i18n';
import { ProgressStep, ImportPreparingStartedStates } from '../../lib/ImporterProgressStep';
import type { ImporterInfo } from '../definitions/ImporterInfo';
type OldSettings = {
allowedDomainList?: string | null;

@ -2,10 +2,10 @@ import type { IImportMessageRecord, IMessage as IDBMessage, IImportMessage, IImp
import { Rooms } from '@rocket.chat/models';
import limax from 'limax';
import { insertMessage } from '../../../../lib/server/functions/insertMessage';
import type { IConversionCallbacks } from '../../definitions/IConversionCallbacks';
import type { UserIdentification, MentionedChannel } from './ConverterCache';
import { RecordConverter } from './RecordConverter';
import { insertMessage } from '../../../../lib/server/functions/insertMessage';
import type { IConversionCallbacks } from '../../definitions/IConversionCallbacks';
export type MessageConversionCallbacks = IConversionCallbacks & { afterImportAllMessagesFn?: (roomIds: string[]) => Promise<void> };

@ -4,8 +4,8 @@ import { ImportData } from '@rocket.chat/models';
import { Random } from '@rocket.chat/random';
import { type FindCursor, ObjectId } from 'mongodb';
import type { IConversionCallbacks } from '../../definitions/IConversionCallbacks';
import { ConverterCache } from './ConverterCache';
import type { IConversionCallbacks } from '../../definitions/IConversionCallbacks';
export type RecordConverterOptions = {
workInMemory?: boolean;

@ -2,13 +2,13 @@ import type { IImportChannel, IImportChannelRecord, IRoom } from '@rocket.chat/c
import { Subscriptions, Rooms, Users } from '@rocket.chat/models';
import limax from 'limax';
import { RecordConverter } from './RecordConverter';
import { createDirectMessage } from '../../../../../server/methods/createDirectMessage';
import { saveRoomSettings } from '../../../../channel-settings/server/methods/saveRoomSettings';
import { notifyOnSubscriptionChangedByRoomId } from '../../../../lib/server/lib/notifyListener';
import { createChannelMethod } from '../../../../lib/server/methods/createChannel';
import { createPrivateGroupMethod } from '../../../../lib/server/methods/createPrivateGroup';
import type { IConversionCallbacks } from '../../definitions/IConversionCallbacks';
import { RecordConverter } from './RecordConverter';
export class RoomConverter extends RecordConverter<IImportChannelRecord> {
public startedByUserId: string;

@ -5,6 +5,7 @@ import { SHA256 } from '@rocket.chat/sha256';
import { hash as bcryptHash } from 'bcrypt';
import { Accounts } from 'meteor/accounts-base';
import { RecordConverter, type RecordConverterOptions } from './RecordConverter';
import { callbacks as systemCallbacks } from '../../../../../lib/callbacks';
import { addUserToDefaultChannels } from '../../../../lib/server/functions/addUserToDefaultChannels';
import { generateUsernameSuggestion } from '../../../../lib/server/functions/getUsernameSuggestion';
@ -12,7 +13,6 @@ import { saveUserIdentity } from '../../../../lib/server/functions/saveUserIdent
import { setUserActiveStatus } from '../../../../lib/server/functions/setUserActiveStatus';
import { notifyOnUserChange } from '../../../../lib/server/lib/notifyListener';
import type { IConversionCallbacks } from '../../definitions/IConversionCallbacks';
import { RecordConverter, type RecordConverterOptions } from './RecordConverter';
export type UserConverterOptions = {
flagEmailsAsVerified?: boolean;

@ -5,10 +5,10 @@ import { Babel } from 'meteor/babel-compiler';
import { Match } from 'meteor/check';
import { Meteor } from 'meteor/meteor';
import { isScriptEngineFrozen } from './validateScriptEngine';
import { parseCSV } from '../../../../lib/utils/parseCSV';
import { hasPermissionAsync, hasAllPermissionAsync } from '../../../authorization/server/functions/hasPermission';
import { outgoingEvents } from '../../lib/outgoingEvents';
import { isScriptEngineFrozen } from './validateScriptEngine';
const scopedChannels = ['all_public_channels', 'all_private_groups', 'all_direct_messages'];
const validChannelChars = ['@', '#'];

@ -1,6 +1,6 @@
import { triggerHandler } from './lib/triggerHandler';
import { callbacks } from '../../../lib/callbacks';
import { afterLeaveRoomCallback } from '../../../lib/callbacks/afterLeaveRoomCallback';
import { triggerHandler } from './lib/triggerHandler';
const callbackHandler = function _callbackHandler(eventType: string) {
return function _wrapperFunction(...args: any[]) {

@ -1,10 +1,10 @@
import { Invites, Subscriptions, Users } from '@rocket.chat/models';
import { Meteor } from 'meteor/meteor';
import { validateInviteToken } from './validateInviteToken';
import { RoomMemberActions } from '../../../../definition/IRoomTypeConfig';
import { roomCoordinator } from '../../../../server/lib/rooms/roomCoordinator';
import { addUserToRoom } from '../../../lib/server/functions/addUserToRoom';
import { validateInviteToken } from './validateInviteToken';
export const useInviteToken = async (userId: string, token: string) => {
if (!userId) {

@ -1,7 +1,7 @@
import { Meteor } from 'meteor/meteor';
import { settings } from '../../settings/server';
import Bridge from './irc-bridge';
import { settings } from '../../settings/server';
if (!!settings.get('IRC_Enabled') === true) {
// Normalize the config values

@ -2,11 +2,11 @@ import { Message } from '@rocket.chat/core-services';
import type { IUser } from '@rocket.chat/core-typings';
import { Subscriptions } from '@rocket.chat/models';
import { getDefaultChannels } from './getDefaultChannels';
import { callbacks } from '../../../../lib/callbacks';
import { getSubscriptionAutotranslateDefaultConfig } from '../../../../server/lib/getSubscriptionAutotranslateDefaultConfig';
import { getDefaultSubscriptionPref } from '../../../utils/lib/getDefaultSubscriptionPref';
import { notifyOnSubscriptionChangedById } from '../lib/notifyListener';
import { getDefaultChannels } from './getDefaultChannels';
export const addUserToDefaultChannels = async function (user: IUser, silenced?: boolean): Promise<void> {
await callbacks.run('beforeJoinDefaultChannels', user);

@ -4,8 +4,8 @@ import { escapeRegExp } from '@rocket.chat/string-helpers';
import { Meteor } from 'meteor/meteor';
import _ from 'underscore';
import { settings } from '../../../settings/server';
import { validateName } from './validateName';
import { settings } from '../../../settings/server';
let usernameBlackList: RegExp[] = [];

@ -2,10 +2,10 @@ import { api } from '@rocket.chat/core-services';
import type { IRoom } from '@rocket.chat/core-typings';
import { Messages, Rooms, Subscriptions, ReadReceipts, Users } from '@rocket.chat/models';
import { deleteRoom } from './deleteRoom';
import { i18n } from '../../../../server/lib/i18n';
import { FileUpload } from '../../../file-upload/server';
import { notifyOnRoomChangedById, notifyOnSubscriptionChangedById } from '../lib/notifyListener';
import { deleteRoom } from './deleteRoom';
export async function cleanRoomHistory({
rid = '',

@ -7,13 +7,13 @@ import type { ICreatedRoom, IUser, IRoom, RoomType } from '@rocket.chat/core-typ
import { Rooms, Subscriptions, Users } from '@rocket.chat/models';
import { Meteor } from 'meteor/meteor';
import { createDirectRoom } from './createDirectRoom';
import { callbacks } from '../../../../lib/callbacks';
import { beforeCreateRoomCallback } from '../../../../lib/callbacks/beforeCreateRoomCallback';
import { getSubscriptionAutotranslateDefaultConfig } from '../../../../server/lib/getSubscriptionAutotranslateDefaultConfig';
import { getDefaultSubscriptionPref } from '../../../utils/lib/getDefaultSubscriptionPref';
import { getValidRoomName } from '../../../utils/server/lib/getValidRoomName';
import { notifyOnRoomChanged, notifyOnSubscriptionChangedById } from '../lib/notifyListener';
import { createDirectRoom } from './createDirectRoom';
const isValidName = (name: unknown): name is string => {
return typeof name === 'string' && name.trim().length > 0;

@ -16,6 +16,10 @@ import {
} from '@rocket.chat/models';
import { Meteor } from 'meteor/meteor';
import { getSubscribedRoomsForUserWithDetails, shouldRemoveOrChangeOwner } from './getRoomsWithSingleOwner';
import { getUserSingleOwnedRooms } from './getUserSingleOwnedRooms';
import { relinquishRoomOwnerships } from './relinquishRoomOwnerships';
import { updateGroupDMsName } from './updateGroupDMsName';
import { callbacks } from '../../../../lib/callbacks';
import { i18n } from '../../../../server/lib/i18n';
import { FileUpload } from '../../../file-upload/server';
@ -26,10 +30,6 @@ import {
notifyOnLivechatDepartmentAgentChanged,
notifyOnUserChange,
} from '../lib/notifyListener';
import { getSubscribedRoomsForUserWithDetails, shouldRemoveOrChangeOwner } from './getRoomsWithSingleOwner';
import { getUserSingleOwnedRooms } from './getUserSingleOwnedRooms';
import { relinquishRoomOwnerships } from './relinquishRoomOwnerships';
import { updateGroupDMsName } from './updateGroupDMsName';
export async function deleteUser(userId: string, confirmRelinquish = false, deletedBy?: IUser['_id']): Promise<void> {
if (userId === 'rocket.cat') {

@ -2,9 +2,9 @@ import type { IRoom, IUser, RoomType } from '@rocket.chat/core-typings';
import { Rooms, Users } from '@rocket.chat/models';
import { Meteor } from 'meteor/meteor';
import { addUserToRoom } from './addUserToRoom';
import { isObject } from '../../../../lib/utils/isObject';
import { createDirectMessage } from '../../../../server/methods/createDirectMessage';
import { addUserToRoom } from './addUserToRoom';
export const getRoomByNameOrIdWithOptionToJoin = async ({
user,

@ -2,12 +2,12 @@ import type { IMessage, IUser, RequiredField, MessageAttachment } from '@rocket.
import { Meteor } from 'meteor/meteor';
import _ from 'underscore';
import { getRoomByNameOrIdWithOptionToJoin } from './getRoomByNameOrIdWithOptionToJoin';
import { sendMessage } from './sendMessage';
import { ensureArray } from '../../../../lib/utils/arrayUtils';
import { trim } from '../../../../lib/utils/stringUtils';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { validateRoomMessagePermissionsAsync } from '../../../authorization/server/functions/canSendMessage';
import { getRoomByNameOrIdWithOptionToJoin } from './getRoomByNameOrIdWithOptionToJoin';
import { sendMessage } from './sendMessage';
type Payload = {
channel?: string | string[];

@ -1,8 +1,8 @@
import { Messages, Roles, Rooms, Subscriptions, ReadReceipts } from '@rocket.chat/models';
import type { SubscribedRoomsForUserWithDetails } from './getRoomsWithSingleOwner';
import { FileUpload } from '../../../file-upload/server';
import { notifyOnSubscriptionChanged } from '../lib/notifyListener';
import type { SubscribedRoomsForUserWithDetails } from './getRoomsWithSingleOwner';
const bulkRoomCleanUp = async (rids: string[]): Promise<unknown> => {
// no bulk deletion for files

@ -1,7 +1,7 @@
import { trim } from '../../../../lib/utils/stringUtils';
import { settings } from '../../../settings/server';
import { saveCustomFieldsWithoutValidation } from './saveCustomFieldsWithoutValidation';
import { validateCustomFields } from './validateCustomFields';
import { trim } from '../../../../lib/utils/stringUtils';
import { settings } from '../../../settings/server';
export const saveCustomFields = async function (userId: string, formData: Record<string, any>): Promise<void> {
if (trim(settings.get('Accounts_CustomFields')) !== '') {

@ -1,6 +1,6 @@
import { Apps, AppEvents } from '@rocket.chat/apps';
import type { DeepWritable, DeepPartial } from '@rocket.chat/core-typings';
import { isUserFederated, type IUser, type IRole, type IUserSettings, type RequiredField } from '@rocket.chat/core-typings';
import { isUserFederated } from '@rocket.chat/core-typings';
import type { DeepWritable, DeepPartial, IUser, IRole, IUserSettings, RequiredField } from '@rocket.chat/core-typings';
import { Users } from '@rocket.chat/models';
import { Accounts } from 'meteor/accounts-base';
import { Meteor } from 'meteor/meteor';

@ -1,8 +1,8 @@
import { MeteorError } from '@rocket.chat/core-services';
import type { SaveUserData } from './saveUser';
import * as Mailer from '../../../../mailer/server/api';
import { settings } from '../../../../settings/server';
import type { SaveUserData } from './saveUser';
let html = '';
let passwordChangedHtml = '';

@ -2,9 +2,9 @@ import { MeteorError } from '@rocket.chat/core-services';
import type { IUser, RequiredField } from '@rocket.chat/core-typings';
import { Users } from '@rocket.chat/models';
import type { SaveUserData } from './saveUser';
import { hasPermissionAsync } from '../../../../authorization/server/functions/hasPermission';
import { settings } from '../../../../settings/server';
import type { SaveUserData } from './saveUser';
const isEditingUserRoles = (previousRoles: IUser['roles'], newRoles?: IUser['roles']) =>
newRoles !== undefined &&

@ -1,6 +1,10 @@
import type { IUser } from '@rocket.chat/core-typings';
import { Messages, VideoConference, LivechatDepartmentAgents, Rooms, Subscriptions, Users } from '@rocket.chat/models';
import { _setRealName } from './setRealName';
import { _setUsername } from './setUsername';
import { updateGroupDMsName } from './updateGroupDMsName';
import { validateName } from './validateName';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { FileUpload } from '../../../file-upload/server';
import {
@ -8,10 +12,6 @@ import {
notifyOnSubscriptionChangedByUserId,
notifyOnSubscriptionChangedByNameAndRoomType,
} from '../lib/notifyListener';
import { _setRealName } from './setRealName';
import { _setUsername } from './setUsername';
import { updateGroupDMsName } from './updateGroupDMsName';
import { validateName } from './validateName';
/**
*

@ -4,6 +4,7 @@ import type { IMessage, IRoom } from '@rocket.chat/core-typings';
import { Messages } from '@rocket.chat/models';
import { Match, check } from 'meteor/check';
import { parseUrlsInMessage } from './parseUrlsInMessage';
import { isRelativeURL } from '../../../../lib/utils/isRelativeURL';
import { isURL } from '../../../../lib/utils/isURL';
import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission';
@ -12,7 +13,6 @@ import { settings } from '../../../settings/server';
import { afterSaveMessage } from '../lib/afterSaveMessage';
import { notifyOnRoomChangedById, notifyOnMessageChange } from '../lib/notifyListener';
import { validateCustomMessageFields } from '../lib/validateCustomMessageFields';
import { parseUrlsInMessage } from './parseUrlsInMessage';
// TODO: most of the types here are wrong, but I don't want to change them now

@ -4,8 +4,8 @@ import { isRegisterUser } from '@rocket.chat/core-typings';
import { Avatars, Rooms } from '@rocket.chat/models';
import { Meteor } from 'meteor/meteor';
import { FileUpload } from '../../../file-upload/server';
import { RocketChatFile } from '../../../file/server';
import { FileUpload } from '../../../file-upload/server';
export const setRoomAvatar = async function (rid: string, dataURI: string, user: IUser): Promise<void> {
if (!isRegisterUser(user)) {

@ -6,6 +6,10 @@ import { Accounts } from 'meteor/accounts-base';
import { check } from 'meteor/check';
import { Meteor } from 'meteor/meteor';
import { closeOmnichannelConversations } from './closeOmnichannelConversations';
import { shouldRemoveOrChangeOwner, getSubscribedRoomsForUserWithDetails } from './getRoomsWithSingleOwner';
import { getUserSingleOwnedRooms } from './getUserSingleOwnedRooms';
import { relinquishRoomOwnerships } from './relinquishRoomOwnerships';
import { callbacks } from '../../../../lib/callbacks';
import * as Mailer from '../../../mailer/server/api';
import { settings } from '../../../settings/server';
@ -15,10 +19,6 @@ import {
notifyOnSubscriptionChangedByNameAndRoomType,
notifyOnUserChange,
} from '../lib/notifyListener';
import { closeOmnichannelConversations } from './closeOmnichannelConversations';
import { shouldRemoveOrChangeOwner, getSubscribedRoomsForUserWithDetails } from './getRoomsWithSingleOwner';
import { getUserSingleOwnedRooms } from './getUserSingleOwnedRooms';
import { relinquishRoomOwnerships } from './relinquishRoomOwnerships';
async function reactivateDirectConversations(userId: string) {
// since both users can be deactivated at the same time, we should just reactivate rooms if both users are active

@ -5,12 +5,12 @@ import type { Response } from '@rocket.chat/server-fetch';
import { serverFetch as fetch } from '@rocket.chat/server-fetch';
import { Meteor } from 'meteor/meteor';
import { checkUrlForSsrf } from './checkUrlForSsrf';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission';
import { FileUpload } from '../../../file-upload/server';
import { RocketChatFile } from '../../../file/server';
import { FileUpload } from '../../../file-upload/server';
import { settings } from '../../../settings/server';
import { checkUrlForSsrf } from './checkUrlForSsrf';
export const setAvatarFromServiceWithValidation = async (
userId: string,

@ -5,12 +5,9 @@ import { Accounts } from 'meteor/accounts-base';
import { Meteor } from 'meteor/meteor';
import _ from 'underscore';
import { callbacks } from '../../../../lib/callbacks';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission';
import { settings } from '../../../settings/server';
import { RateLimiter } from '../lib';
import { notifyOnUserChange } from '../lib/notifyListener';
import { addUserToRoom } from './addUserToRoom';
import { checkUsernameAvailability } from './checkUsernameAvailability';
import { getAvatarSuggestionForUser } from './getAvatarSuggestionForUser';
@ -18,6 +15,9 @@ import { joinDefaultChannels } from './joinDefaultChannels';
import { saveUserIdentity } from './saveUserIdentity';
import { setUserAvatar } from './setUserAvatar';
import { validateUsername } from './validateUsername';
import { callbacks } from '../../../../lib/callbacks';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { notifyOnUserChange } from '../lib/notifyListener';
export const setUsernameWithValidation = async (userId: string, username: string, joinDefaultChannelsSilenced?: boolean): Promise<void> => {
if (!username) {

@ -4,11 +4,11 @@ import type { IMessage, IUser, AtLeast } from '@rocket.chat/core-typings';
import { Messages, Rooms } from '@rocket.chat/models';
import { Meteor } from 'meteor/meteor';
import { parseUrlsInMessage } from './parseUrlsInMessage';
import { settings } from '../../../settings/server';
import { afterSaveMessage } from '../lib/afterSaveMessage';
import { notifyOnRoomChangedById, notifyOnMessageChange } from '../lib/notifyListener';
import { validateCustomMessageFields } from '../lib/validateCustomMessageFields';
import { parseUrlsInMessage } from './parseUrlsInMessage';
export const updateMessage = async function (
message: AtLeast<IMessage, '_id' | 'rid' | 'msg' | 'customFields'>,

@ -1,9 +1,9 @@
import POP3Lib from '@rocket.chat/poplib';
import { simpleParser } from 'mailparser';
import { processDirectEmail } from './processDirectEmail';
import { IMAPInterceptor } from '../../../../server/email/IMAPInterceptor';
import { settings } from '../../../settings/server';
import { processDirectEmail } from './processDirectEmail';
export class DirectReplyIMAPInterceptor extends IMAPInterceptor {
constructor(imapConfig, options = {}) {

@ -4,14 +4,14 @@ import type { Updater } from '@rocket.chat/models';
import { Subscriptions, Rooms } from '@rocket.chat/models';
import moment from 'moment';
import { callbacks } from '../../../../lib/callbacks';
import { settings } from '../../../settings/server';
import { messageContainsHighlight } from '../functions/notifications/messageContainsHighlight';
import {
notifyOnSubscriptionChanged,
notifyOnSubscriptionChangedByRoomIdAndUserId,
notifyOnSubscriptionChangedByRoomIdAndUserIds,
} from './notifyListener';
import { callbacks } from '../../../../lib/callbacks';
import { settings } from '../../../settings/server';
import { messageContainsHighlight } from '../functions/notifications/messageContainsHighlight';
export async function getMentions(message: IMessage): Promise<{ toAll: boolean; toHere: boolean; mentionIds: string[] }> {
const {

@ -12,6 +12,7 @@ import emojione from 'emojione';
import moment from 'moment';
import type { RootFilterOperators } from 'mongodb';
import { getMentions } from './notifyUsersOnMessage';
import { callbacks } from '../../../../lib/callbacks';
import { roomCoordinator } from '../../../../server/lib/rooms/roomCoordinator';
import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission';
@ -22,7 +23,6 @@ import { notifyDesktopUser, shouldNotifyDesktop } from '../functions/notificatio
import { getEmailData, shouldNotifyEmail } from '../functions/notifications/email';
import { messageContainsHighlight } from '../functions/notifications/messageContainsHighlight';
import { getPushData, shouldNotifyMobile } from '../functions/notifications/mobile';
import { getMentions } from './notifyUsersOnMessage';
type SubscriptionAggregation = {
receiver: [Pick<IUser, 'active' | 'emails' | 'language' | 'status' | 'statusConnection' | 'username' | 'settings'> | null];

@ -3,9 +3,9 @@ import util from 'util';
import { Meteor } from 'meteor/meteor';
import { emailDomainDefaultBlackList } from './defaultBlockedDomainsList';
import { validateEmail } from '../../../../lib/emailValidator';
import { settings } from '../../../settings/server';
import { emailDomainDefaultBlackList } from './defaultBlockedDomainsList';
const dnsResolveMx = util.promisify(dns.resolveMx);

@ -3,7 +3,6 @@ import type { ServerMethods } from '@rocket.chat/ddp-client';
import { Messages, Subscriptions, Rooms } from '@rocket.chat/models';
import { check } from 'meteor/check';
import { Meteor } from 'meteor/meteor';
import _ from 'underscore';
import { canAccessRoomAsync } from '../../../authorization/server';
import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission';
@ -64,7 +63,8 @@ Meteor.methods<ServerMethods>({
}
// Verify oldest is a date if it exists
if (oldest !== undefined && !_.isDate(oldest)) {
if (oldest !== undefined && {}.toString.call(oldest) !== '[object Date]') {
throw new Meteor.Error('error-invalid-date', 'Invalid date', { method: 'getChannelHistory' });
}

@ -4,12 +4,12 @@ import type { AgendaCronJobs } from '@rocket.chat/cron';
import { LivechatBusinessHours, LivechatDepartment, Users } from '@rocket.chat/models';
import moment from 'moment';
import type { IBusinessHourBehavior, IBusinessHourType } from './AbstractBusinessHour';
import { closeBusinessHour } from './closeBusinessHour';
import { callbacks } from '../../../../lib/callbacks';
import { notifyOnUserChange } from '../../../lib/server/lib/notifyListener';
import { settings } from '../../../settings/server';
import { businessHourLogger } from '../lib/logger';
import type { IBusinessHourBehavior, IBusinessHourType } from './AbstractBusinessHour';
import { closeBusinessHour } from './closeBusinessHour';
const CRON_EVERY_MIDNIGHT_EXPRESSION = '0 0 * * *';
const CRON_DAYLIGHT_JOB_NAME = 'livechat-business-hour-daylight-saving-time-verifier';

@ -3,10 +3,10 @@ import { ILivechatAgentStatus, LivechatBusinessHourTypes } from '@rocket.chat/co
import { LivechatBusinessHours, Users } from '@rocket.chat/models';
import moment from 'moment';
import { notifyOnUserChangeAsync } from '../../../lib/server/lib/notifyListener';
import { businessHourLogger } from '../lib/logger';
import { createDefaultBusinessHourRow } from './LivechatBusinessHours';
import { filterBusinessHoursThatMustBeOpened } from './filterBusinessHoursThatMustBeOpened';
import { notifyOnUserChangeAsync } from '../../../lib/server/lib/notifyListener';
import { businessHourLogger } from '../lib/logger';
export { filterBusinessHoursThatMustBeOpened };

@ -1,11 +1,11 @@
import { ILivechatAgentStatus, LivechatBusinessHourTypes } from '@rocket.chat/core-typings';
import { LivechatBusinessHours, Users } from '@rocket.chat/models';
import { notifyOnUserChange } from '../../../lib/server/lib/notifyListener';
import { businessHourLogger } from '../lib/logger';
import type { IBusinessHourBehavior } from './AbstractBusinessHour';
import { AbstractBusinessHourBehavior } from './AbstractBusinessHour';
import { filterBusinessHoursThatMustBeOpened, makeAgentsUnavailableBasedOnBusinessHour, openBusinessHourDefault } from './Helper';
import { notifyOnUserChange } from '../../../lib/server/lib/notifyListener';
import { businessHourLogger } from '../lib/logger';
export class SingleBusinessHourBehavior extends AbstractBusinessHourBehavior implements IBusinessHourBehavior {
async openBusinessHoursByDayAndHour(): Promise<void> {

@ -2,9 +2,9 @@ import type { ILivechatBusinessHour, IUser } from '@rocket.chat/core-typings';
import { Users } from '@rocket.chat/models';
import { makeFunction } from '@rocket.chat/patch-injection';
import { businessHourLogger } from '../lib/logger';
import { makeAgentsUnavailableBasedOnBusinessHour } from './Helper';
import { getAgentIdsForBusinessHour } from './getAgentIdsForBusinessHour';
import { businessHourLogger } from '../lib/logger';
export const closeBusinessHourByAgentIds = async (
businessHourId: ILivechatBusinessHour['_id'],

@ -3,10 +3,10 @@ import { cronJobs } from '@rocket.chat/cron';
import { Accounts } from 'meteor/accounts-base';
import { Meteor } from 'meteor/meteor';
import { callbacks } from '../../../../lib/callbacks';
import { BusinessHourManager } from './BusinessHourManager';
import { DefaultBusinessHour } from './Default';
import { SingleBusinessHourBehavior } from './Single';
import { callbacks } from '../../../../lib/callbacks';
export const businessHourManager = new BusinessHourManager(cronJobs);

@ -34,6 +34,10 @@ import { Match, check } from 'meteor/check';
import { Meteor } from 'meteor/meteor';
import { ObjectId } from 'mongodb';
import { Livechat as LivechatTyped } from './LivechatTyped';
import { queueInquiry, saveQueueInquiry } from './QueueManager';
import { RoutingManager } from './RoutingManager';
import { getOnlineAgents } from './getOnlineAgents';
import { callbacks } from '../../../../lib/callbacks';
import { validateEmail as validatorFunc } from '../../../../lib/emailValidator';
import { i18n } from '../../../../server/lib/i18n';
@ -47,10 +51,6 @@ import {
notifyOnSubscriptionChanged,
} from '../../../lib/server/lib/notifyListener';
import { settings } from '../../../settings/server';
import { Livechat as LivechatTyped } from './LivechatTyped';
import { queueInquiry, saveQueueInquiry } from './QueueManager';
import { RoutingManager } from './RoutingManager';
import { getOnlineAgents } from './getOnlineAgents';
const logger = new Logger('LivechatHelper');
export const allowAgentSkipQueue = (agent: SelectedAgent) => {

@ -1,12 +1,14 @@
import { Apps, AppEvents } from '@rocket.chat/apps';
import { Omnichannel } from '@rocket.chat/core-services';
import type { ILivechatDepartment, IOmnichannelRoomInfo, IOmnichannelRoomExtraData } from '@rocket.chat/core-typings';
import {
LivechatInquiryStatus,
type ILivechatInquiryRecord,
type ILivechatVisitor,
type IOmnichannelRoom,
type SelectedAgent,
import { LivechatInquiryStatus } from '@rocket.chat/core-typings';
import type {
ILivechatDepartment,
IOmnichannelRoomInfo,
IOmnichannelRoomExtraData,
ILivechatInquiryRecord,
ILivechatVisitor,
IOmnichannelRoom,
SelectedAgent,
} from '@rocket.chat/core-typings';
import { Logger } from '@rocket.chat/logger';
import { LivechatDepartment, LivechatDepartmentAgents, LivechatInquiry, LivechatRooms, Users } from '@rocket.chat/models';
@ -14,6 +16,11 @@ import { Random } from '@rocket.chat/random';
import { Match, check } from 'meteor/check';
import { Meteor } from 'meteor/meteor';
import { createLivechatRoom, createLivechatInquiry, allowAgentSkipQueue } from './Helper';
import { Livechat } from './LivechatTyped';
import { RoutingManager } from './RoutingManager';
import { getOnlineAgents } from './getOnlineAgents';
import { getInquirySortMechanismSetting } from './settings';
import { dispatchInquiryPosition } from '../../../../ee/app/livechat-enterprise/server/lib/Helper';
import { callbacks } from '../../../../lib/callbacks';
import { sendNotification } from '../../../lib/server';
@ -24,11 +31,6 @@ import {
} from '../../../lib/server/lib/notifyListener';
import { settings } from '../../../settings/server';
import { i18n } from '../../../utils/lib/i18n';
import { createLivechatRoom, createLivechatInquiry, allowAgentSkipQueue } from './Helper';
import { Livechat } from './LivechatTyped';
import { RoutingManager } from './RoutingManager';
import { getOnlineAgents } from './getOnlineAgents';
import { getInquirySortMechanismSetting } from './settings';
const logger = new Logger('QueueManager');

@ -17,9 +17,6 @@ import { LivechatInquiry, LivechatRooms, Subscriptions, Rooms, Users } from '@ro
import { Match, check } from 'meteor/check';
import { Meteor } from 'meteor/meteor';
import { callbacks } from '../../../../lib/callbacks';
import { notifyOnLivechatInquiryChangedById, notifyOnLivechatInquiryChanged } from '../../../lib/server/lib/notifyListener';
import { settings } from '../../../settings/server';
import {
createLivechatSubscription,
dispatchAgentDelegated,
@ -30,6 +27,9 @@ import {
updateChatDepartment,
allowAgentSkipQueue,
} from './Helper';
import { callbacks } from '../../../../lib/callbacks';
import { notifyOnLivechatInquiryChangedById, notifyOnLivechatInquiryChanged } from '../../../lib/server/lib/notifyListener';
import { settings } from '../../../settings/server';
const logger = new Logger('RoutingManager');

@ -2,14 +2,14 @@ import type { LivechatDepartmentDTO, ILivechatDepartment, ILivechatDepartmentAge
import { LivechatDepartment, LivechatDepartmentAgents, LivechatVisitors, LivechatRooms } from '@rocket.chat/models';
import { Meteor } from 'meteor/meteor';
import { updateDepartmentAgents } from './Helper';
import { isDepartmentCreationAvailable } from './isDepartmentCreationAvailable';
import { livechatLogger } from './logger';
import { callbacks } from '../../../../lib/callbacks';
import {
notifyOnLivechatDepartmentAgentChangedByDepartmentId,
notifyOnLivechatDepartmentAgentChanged,
} from '../../../lib/server/lib/notifyListener';
import { updateDepartmentAgents } from './Helper';
import { isDepartmentCreationAvailable } from './isDepartmentCreationAvailable';
import { livechatLogger } from './logger';
/**
* @param {string|null} _id - The department id
* @param {Partial<import('@rocket.chat/core-typings').ILivechatDepartment>} departmentData

@ -1,8 +1,8 @@
import type { ILivechatVisitor, IOmnichannelRoom, IUser } from '@rocket.chat/core-typings';
import { LivechatVisitors, Users } from '@rocket.chat/models';
import { settings } from '../../../settings/server';
import type { CloseRoomParams } from './localTypes';
import { settings } from '../../../settings/server';
export const parseTranscriptRequest = async (
room: IOmnichannelRoom,

@ -1,8 +1,8 @@
import { Message } from '@rocket.chat/core-services';
import { Users } from '@rocket.chat/models';
import { settings } from '../../../settings/server';
import { livechatLogger } from './logger';
import { settings } from '../../../settings/server';
type PageInfo = { title: string; location: { href: string }; change: string };

@ -11,8 +11,8 @@ import { Random } from '@rocket.chat/random';
import { Match, check } from 'meteor/check';
import { Meteor } from 'meteor/meteor';
import { FileUpload } from '../../../file-upload/server';
import { sendMessageLivechat } from './sendMessageLivechat';
import { FileUpload } from '../../../file-upload/server';
interface ISendFileLivechatMessage {
roomId: string;

@ -1,9 +1,9 @@
import type { IUser, IOmnichannelRoom } from '@rocket.chat/core-typings';
import { LivechatDepartmentAgents, LivechatInquiry, LivechatRooms, LivechatDepartment } from '@rocket.chat/models';
import { RoutingManager } from './lib/RoutingManager';
import { hasPermissionAsync } from '../../authorization/server/functions/hasPermission';
import { hasRoleAsync } from '../../authorization/server/functions/hasRole';
import { RoutingManager } from './lib/RoutingManager';
type OmnichannelRoomAccessValidator = (
room: IOmnichannelRoom,

@ -2,10 +2,10 @@ import { OmnichannelIntegration } from '@rocket.chat/core-services';
import { isEditedMessage } from '@rocket.chat/core-typings';
import { LivechatVisitors } from '@rocket.chat/models';
import { callbackLogger } from './lib/logger';
import { callbacks } from '../../../lib/callbacks';
import { settings } from '../../settings/server';
import { normalizeMessageFileUpload } from '../../utils/server/functions/normalizeMessageFileUpload';
import { callbackLogger } from './lib/logger';
callbacks.add(
'afterOmnichannelSaveMessage',

@ -5,6 +5,10 @@ import { LivechatRooms } from '@rocket.chat/models';
import { Accounts } from 'meteor/accounts-base';
import { Meteor } from 'meteor/meteor';
import { businessHourManager } from './business-hour';
import { createDefaultBusinessHourIfNotExists } from './business-hour/Helper';
import { Livechat as LivechatTyped } from './lib/LivechatTyped';
import { LivechatAgentActivityMonitor } from './statistics/LivechatAgentActivityMonitor';
import { callbacks } from '../../../lib/callbacks';
import { beforeLeaveRoomCallback } from '../../../lib/callbacks/beforeLeaveRoomCallback';
import { i18n } from '../../../server/lib/i18n';
@ -12,10 +16,6 @@ import { roomCoordinator } from '../../../server/lib/rooms/roomCoordinator';
import { hasPermissionAsync } from '../../authorization/server/functions/hasPermission';
import { notifyOnUserChange } from '../../lib/server/lib/notifyListener';
import { settings } from '../../settings/server';
import { businessHourManager } from './business-hour';
import { createDefaultBusinessHourIfNotExists } from './business-hour/Helper';
import { Livechat as LivechatTyped } from './lib/LivechatTyped';
import { LivechatAgentActivityMonitor } from './statistics/LivechatAgentActivityMonitor';
import './roomAccessValidator.internalService';
const logger = new Logger('LivechatStartup');

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save