Skip to content

chore: reorganize backend folder structure — Phase 6 (lib, hooks, feature code)#41315

Open
sampaiodiego wants to merge 10 commits into
developfrom
backend-restructure-phase6
Open

chore: reorganize backend folder structure — Phase 6 (lib, hooks, feature code)#41315
sampaiodiego wants to merge 10 commits into
developfrom
backend-restructure-phase6

Conversation

@sampaiodiego

@sampaiodiego sampaiodiego commented Jul 10, 2026

Copy link
Copy Markdown
Member

Proposed changes

Phase 6 of the backend folder-structure migration: move the remaining feature-specific server code — auth providers, hooks, notification/messaging libraries, media, importers, and misc libs — from app/*/server/ into server/lib/<domain>/ and server/hooks/<domain>/, with the matching EE mirror inside ee/server/. Files move as-is — only import paths change, no refactoring.

Stray Meteor method files found along the way (crowd, push, search, cloud, and the deferred methods/ dirs from Phase 5) were routed to server/meteor-methods/<domain>/ — including the new media/ domain — keeping the Phase 5 invariant that all Meteor methods live in meteor-methods/.

Please read comment with detailed information on the changes that are not plain file moves / path rewrites: #41315 (comment)

Folder structure

Community — before

apps/meteor/app/
├── apple/ crowd/ custom-oauth/ dolphin/ drupal/ github/ github-enterprise/ gitlab/
│   google-oauth/ iframe-login/ linkedin/ meteor-developer/ wordpress/    13 OAuth provider server/ dirs
├── lib/server/oauth/                     (5)    meteor-accounts-saml/server/  (36, incl. methods/)
├── 2fa/server/                           (17)   authentication/server/        (6)    token-login/server/ (2)
├── livechat/server/hooks/                (14)   threads|discussion/server/hooks/
├── lib/server/lib/{afterSaveMessage,notifyUsersOnMessage,sendNotificationsOnMessage,beforeAddUserToRoom}.ts
├── push/server/ (8, incl. methods)  push-notifications/server/ (3)  mailer/server/ (2)
├── mail-messages/server/ (3)  notification-queue/server/ (1)  notifications/server/ (3)
├── mentions/ reactions/ message-pin/ message-star/ message-mark-as-unread/ markdown/ emoji/  (server/ of each)
├── file-upload/server/ (18, incl. methods/) + file-upload/ufs/ (3)   file/server/ (4)
├── emoji-custom/server/ (7, incl. methods/)  emoji-native/server/ (3)  custom-sounds/server/ (9, incl. methods/)  assets/server/ (2)
├── importer/server/ (20)  importer-{csv,slack,slack-users,omnichannel-contacts,pending-avatars,pending-files}/server/
├── search/server/ (16, incl. methods)  autotranslate/server/ (11)  e2e/server/ (5)
├── integrations/server/ (16, incl. api/)  statistics/server/ (18, incl. methods/)  metrics/server/ (4)
└── cloud/server/ (4, incl. methods)  version-check/server/ (7, incl. methods/)  license/server/ (1)

Community — after (one commit per sub-phase)

apps/meteor/server/
├── lib/
│   ├── auth-providers/    6a  apple/ crowd/ custom-oauth/ oauth/ + 13 single-file providers
│   ├── saml/              6a  from app/meteor-accounts-saml/server (methods → meteor-methods/auth)
│   ├── 2fa/               6a  from app/2fa/server
│   ├── auth/              6a  ILoginAttempt, log/restrictLoginAttempts, startup, token-login
│   ├── notifications/     6c  push/ push-config/ email/ mail-messages/ queue/ core/
│   ├── messaging/         6d  threads/ discussions/ reactions/ pins/ stars/ unread/ mentions/ markdown.ts emoji.ts
│   ├── media/             6e  file-upload/ (+ufs adapters) file/ emoji-custom/ emoji-native/ custom-sounds/ assets/
│   ├── import/            6e  importer classes + csv/ slack/ slack-users/ omnichannel-contacts/ pending-*/
│   ├── search/            6e  autotranslate/  e2e/  integrations/  statistics/  metrics/
│   └── cloud/             6e  merged app/cloud/server + version-check/ + license/
├── hooks/
│   ├── auth/              6b  login.ts
│   ├── messages/          6b  afterSaveMessage, notifyUsersOnMessage, sendNotificationsOnMessage,
│   │                          processThreads (renamed, see reviewer comment), propagateDiscussionMetadata
│   ├── rooms/             6b  beforeAddUserToRoom
│   └── omnichannel/       6b  14 livechat hooks
├── api/webhooks.ts        6e  /hooks/* webhook API (REST responsibility, same reasoning as Phase 3)
└── meteor-methods/
    ├── media/             NEW  emoji-custom + custom-sounds admin methods, getS3FileUrl
    ├── auth/              +crowd.ts +addSamlService +samlLogout
    ├── platform/          +push +search +cloud +getStatistics +banner_dismiss
    ├── messages/          +sendFileMessage(+spec) +getUserMentionsByChannel
    └── users/             +saveNotificationSettings

→ all Phase 6 app/*/server dirs removed; remaining app/*/server dirs are Phase 7 scope
  (livechat lib, settings, utils, channel-settings, invites, user-status, …; app/apps is out of scope)
EE mirror — before / after (stays inside ee/)

Before

apps/meteor/ee/app/
├── livechat-enterprise/server/hooks/     (34)
├── canned-responses/server/              hooks/ (3) + settings, permissions, index
├── message-read-receipt/server/          hooks/ (3 + index) + index
├── license/server/                       (8: startup, settings, canEnableApp, getSeatsRequestLink, …)
└── authorization/server/                 callback.ts + index

After

apps/meteor/ee/server/
├── hooks/
│   ├── omnichannel/         34 livechat-enterprise hooks (license-gated loading untouched)
│   ├── canned-responses/    3 hooks
│   ├── messages/            message-read-receipt hooks (join existing folder)
│   └── auth/                authorization callback.ts
└── lib/
    ├── canned-responses/    settings, permissions (License.onLicense gating untouched)
    ├── license/             from ee/app/license/server (root startRocketChat.ts import updated)
    └── message-read-receipt/  feature loader joins existing ReadReceipt.ts

ee/app/{canned-responses,license,message-read-receipt}/server and all EE hooks dirs removed. No file crossed the license boundary in either direction (enforced by the move script's guard).

Deviations from the plan (each for a concrete reason)

  • threads/server/hooks/aftersavemessage.tsserver/hooks/messages/processThreads.ts — it would case-collide with afterSaveMessage.ts in the same folder on case-insensitive filesystems (macOS/Windows). Named after its exported processThreads.
  • isImagePreviewSupported.tsserver/lib/media/file-upload/ — the plan routed it to meteor-methods/media/, but it's a pure helper (no Meteor.methods call); putting it there would permanently trip the registration audit.
  • linkedin + meteor-developer OAuth providers were missing from the plan's 6a table — moved to server/lib/auth-providers/ (same shape as dolphin/drupal).
  • app/file-upload/ufs/ (S3/GoogleStorage/Webdav server adapters) wasn't listed but is server-only and imported solely by the moved config files — moved to server/lib/media/file-upload/ufs/.
  • EE canned-responses hooks got a domain subfolder (ee/server/hooks/canned-responses/) instead of the table's flat ee/server/hooks/, matching the existing abac//federation//messages/ layout.
  • Trivial side-effect index.ts aggregators were folded into importPackages.ts / meteor-methods/index.ts and deleted (32 files). Indexes containing real code (importer container, cloud cron startup, e2e callback registration, re-export barrels) moved as-is.
  • One dead-code removal (the single exception to "files move as-is", in its own commit df4b5bc): ee/app/authorization/lib/addRoleRestrictions.ts and the unused Authorization.addRoleRestrictions service method. The function's only call site ever was client-side and was removed in chore: move all webclient code out of the COSS folders #32273 — since then the module was only side-effect imported, defining a function nobody called. Surfaced by review, removed deliberately rather than relocated.

Verification

  • yarn lint --quiet ✅ (exit 0)
  • tsc --noEmit ✅ (exit 0, standalone)
  • mocha unit suite ✅ 1999 passing
  • jest unit suite ✅ 274 suites, 1892 passed / 8 skipped
  • Method-registration audit (MIGRATION_PLAN.md Phase 5 procedure) ✅ every file under server/meteor-methods/ + ee/server/meteor-methods/ is registered
  • verify-no-old-imports.mjs over every Phase 6 source path ✅ · check-broken-imports.mjs: every relative import in the tree resolves ✅

🤖 Generated with Claude Code

@sampaiodiego sampaiodiego requested review from a team as code owners July 10, 2026 20:11
@dionisio-bot

dionisio-bot Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Looks like this PR is not ready to merge, because of the following issues:

  • This PR is missing the 'stat: QA assured' label
  • This PR is missing the required milestone or project

Please fix the issues and try again

If you have any trouble, please check the PR guidelines

@hacktron-app

hacktron-app Bot commented Jul 10, 2026

Copy link
Copy Markdown

⏭️ Hacktron Security Check — Skipped

Reason: This PR exceeds Hacktron's 200-file review cap and will not be scanned. Split the PR into smaller changes for review coverage.

Split the PR into smaller commits or open separate PRs for unrelated changes.

@changeset-bot

changeset-bot Bot commented Jul 10, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: c6f1e22

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 596 files, which is 446 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7ef50675-9ee9-41eb-b53a-23884f3f5c1b

📥 Commits

Reviewing files that changed from the base of the PR and between 01202cc and c6f1e22.

⛔ Files ignored due to path filters (7)
  • apps/meteor/scripts/migration/phase6a-auth-providers.tsv is excluded by !**/*.tsv
  • apps/meteor/scripts/migration/phase6a-followup-oauth.tsv is excluded by !**/*.tsv
  • apps/meteor/scripts/migration/phase6b-ee-hooks.tsv is excluded by !**/*.tsv
  • apps/meteor/scripts/migration/phase6b-hooks.tsv is excluded by !**/*.tsv
  • apps/meteor/scripts/migration/phase6c-notifications.tsv is excluded by !**/*.tsv
  • apps/meteor/scripts/migration/phase6d-messaging.tsv is excluded by !**/*.tsv
  • apps/meteor/scripts/migration/phase6e-media-import-libs.tsv is excluded by !**/*.tsv
📒 Files selected for processing (596)
  • apps/meteor/.mocharc.js
  • apps/meteor/app/2fa/server/index.ts
  • apps/meteor/app/apple/server/index.ts
  • apps/meteor/app/apps/server/bridges/cloud.ts
  • apps/meteor/app/apps/server/bridges/email.ts
  • apps/meteor/app/apps/server/bridges/messages.ts
  • apps/meteor/app/apps/server/bridges/uploads.ts
  • apps/meteor/app/authentication/server/index.ts
  • apps/meteor/app/crowd/server/index.ts
  • apps/meteor/app/custom-sounds/server/index.ts
  • apps/meteor/app/discussion/server/index.ts
  • apps/meteor/app/dolphin/server/index.ts
  • apps/meteor/app/drupal/server/index.ts
  • apps/meteor/app/emoji-custom/server/index.ts
  • apps/meteor/app/emoji-native/server/index.ts
  • apps/meteor/app/emoji/server/index.ts
  • apps/meteor/app/github-enterprise/server/index.ts
  • apps/meteor/app/github/server/index.ts
  • apps/meteor/app/gitlab/server/index.ts
  • apps/meteor/app/iframe-login/server/index.ts
  • apps/meteor/app/integrations/server/index.ts
  • apps/meteor/app/invites/server/functions/sendInvitationEmail.ts
  • apps/meteor/app/lib/server/functions/notifications/desktop.ts
  • apps/meteor/app/lib/server/functions/notifications/email.js
  • apps/meteor/app/lib/server/index.ts
  • apps/meteor/app/lib/server/lib/debug.js
  • apps/meteor/app/lib/server/lib/deprecationWarningLogger.ts
  • apps/meteor/app/lib/server/lib/index.ts
  • apps/meteor/app/lib/server/lib/msgStream.ts
  • apps/meteor/app/lib/server/lib/processDirectEmail.ts
  • apps/meteor/app/lib/server/startup/rateLimiter.js
  • apps/meteor/app/linkedin/server/index.ts
  • apps/meteor/app/livechat/server/index.ts
  • apps/meteor/app/livechat/server/lib/guests.ts
  • apps/meteor/app/livechat/server/lib/hooks.ts
  • apps/meteor/app/livechat/server/lib/messages.ts
  • apps/meteor/app/livechat/server/lib/sendTranscript.ts
  • apps/meteor/app/livechat/server/lib/webhooks.ts
  • apps/meteor/app/mentions/server/index.ts
  • apps/meteor/app/message-mark-as-unread/server/index.ts
  • apps/meteor/app/message-pin/server/index.ts
  • apps/meteor/app/message-star/server/index.ts
  • apps/meteor/app/meteor-accounts-saml/server/index.ts
  • apps/meteor/app/meteor-developer/server/index.ts
  • apps/meteor/app/reactions/server/index.ts
  • apps/meteor/app/search/server/index.ts
  • apps/meteor/app/threads/server/hooks/index.ts
  • apps/meteor/app/threads/server/index.ts
  • apps/meteor/app/token-login/server/index.ts
  • apps/meteor/app/utils/server/functions/normalizeMessageFileUpload.ts
  • apps/meteor/app/wordpress/server/index.ts
  • apps/meteor/ee/app/authorization/lib/addRoleRestrictions.ts
  • apps/meteor/ee/app/authorization/server/index.ts
  • apps/meteor/ee/app/canned-responses/server/index.ts
  • apps/meteor/ee/app/license/server/index.ts
  • apps/meteor/ee/app/livechat-enterprise/server/index.ts
  • apps/meteor/ee/app/livechat-enterprise/server/lib/routing/LoadBalancing.ts
  • apps/meteor/ee/app/livechat-enterprise/server/lib/routing/LoadRotation.ts
  • apps/meteor/ee/app/message-read-receipt/server/hooks/index.ts
  • apps/meteor/ee/app/message-read-receipt/server/index.ts
  • apps/meteor/ee/server/apps/appRequestsCron.ts
  • apps/meteor/ee/server/apps/communication/rest.ts
  • apps/meteor/ee/server/apps/communication/websockets.ts
  • apps/meteor/ee/server/apps/cron.ts
  • apps/meteor/ee/server/apps/marketplace/appInstall.ts
  • apps/meteor/ee/server/apps/marketplace/appRequestNotifyUsers.ts
  • apps/meteor/ee/server/apps/marketplace/fetchMarketplaceApps.ts
  • apps/meteor/ee/server/apps/marketplace/fetchMarketplaceCategories.ts
  • apps/meteor/ee/server/apps/orchestrator.js
  • apps/meteor/ee/server/configuration/saml.ts
  • apps/meteor/ee/server/hooks/abac/beforeAddUserToRoom.ts
  • apps/meteor/ee/server/hooks/auth/callback.ts
  • apps/meteor/ee/server/hooks/canned-responses/cannedResponses.ts
  • apps/meteor/ee/server/hooks/canned-responses/onRemoveAgentDepartment.ts
  • apps/meteor/ee/server/hooks/canned-responses/onSaveAgentDepartment.ts
  • apps/meteor/ee/server/hooks/messages/afterDeleteRoom.ts
  • apps/meteor/ee/server/hooks/messages/afterReadMessages.ts
  • apps/meteor/ee/server/hooks/messages/afterSaveMessage.ts
  • apps/meteor/ee/server/hooks/omnichannel/addDepartmentAncestors.ts
  • apps/meteor/ee/server/hooks/omnichannel/afterForwardChatToAgent.ts
  • apps/meteor/ee/server/hooks/omnichannel/afterForwardChatToDepartment.ts
  • apps/meteor/ee/server/hooks/omnichannel/afterInquiryQueued.ts
  • apps/meteor/ee/server/hooks/omnichannel/afterOnHold.ts
  • apps/meteor/ee/server/hooks/omnichannel/afterOnHoldChatResumed.ts
  • apps/meteor/ee/server/hooks/omnichannel/afterRemoveDepartment.ts
  • apps/meteor/ee/server/hooks/omnichannel/afterReturnRoomAsInquiry.ts
  • apps/meteor/ee/server/hooks/omnichannel/afterTagRemoved.ts
  • apps/meteor/ee/server/hooks/omnichannel/afterTakeInquiry.ts
  • apps/meteor/ee/server/hooks/omnichannel/applyRoomRestrictions.ts
  • apps/meteor/ee/server/hooks/omnichannel/applySimultaneousChatsRestrictions.ts
  • apps/meteor/ee/server/hooks/omnichannel/beforeForwardRoomToDepartment.ts
  • apps/meteor/ee/server/hooks/omnichannel/beforeJoinRoom.ts
  • apps/meteor/ee/server/hooks/omnichannel/beforeListTags.ts
  • apps/meteor/ee/server/hooks/omnichannel/beforeNewInquiry.ts
  • apps/meteor/ee/server/hooks/omnichannel/beforeNewRoom.ts
  • apps/meteor/ee/server/hooks/omnichannel/beforeRoutingChat.ts
  • apps/meteor/ee/server/hooks/omnichannel/checkAgentBeforeTakeInquiry.ts
  • apps/meteor/ee/server/hooks/omnichannel/handleNextAgentPreferredEvents.ts
  • apps/meteor/ee/server/hooks/omnichannel/index.ts
  • apps/meteor/ee/server/hooks/omnichannel/manageDepartmentUnit.ts
  • apps/meteor/ee/server/hooks/omnichannel/onAgentAssignmentFailed.ts
  • apps/meteor/ee/server/hooks/omnichannel/onBusinessHourStart.ts
  • apps/meteor/ee/server/hooks/omnichannel/onCheckRoomParamsApi.ts
  • apps/meteor/ee/server/hooks/omnichannel/onCloseLivechat.ts
  • apps/meteor/ee/server/hooks/omnichannel/onLoadConfigApi.ts
  • apps/meteor/ee/server/hooks/omnichannel/onLoadForwardDepartmentRestrictions.ts
  • apps/meteor/ee/server/hooks/omnichannel/onSaveVisitorInfo.ts
  • apps/meteor/ee/server/hooks/omnichannel/onTransferFailure.ts
  • apps/meteor/ee/server/hooks/omnichannel/resumeOnHold.ts
  • apps/meteor/ee/server/hooks/omnichannel/scheduleAutoTransfer.ts
  • apps/meteor/ee/server/hooks/omnichannel/sendPdfTranscriptOnClose.ts
  • apps/meteor/ee/server/hooks/omnichannel/setPredictedVisitorAbandonmentTime.ts
  • apps/meteor/ee/server/index.ts
  • apps/meteor/ee/server/lib/audit/methods.ts
  • apps/meteor/ee/server/lib/canned-responses/index.ts
  • apps/meteor/ee/server/lib/canned-responses/permissions.ts
  • apps/meteor/ee/server/lib/canned-responses/settings.ts
  • apps/meteor/ee/server/lib/deviceManagement/session.ts
  • apps/meteor/ee/server/lib/ldap/Manager.spec.ts
  • apps/meteor/ee/server/lib/ldap/Manager.ts
  • apps/meteor/ee/server/lib/license/airGappedRestrictions.ts
  • apps/meteor/ee/server/lib/license/canEnableApp.ts
  • apps/meteor/ee/server/lib/license/getSeatsRequestLink.ts
  • apps/meteor/ee/server/lib/license/lib/getAppCount.ts
  • apps/meteor/ee/server/lib/license/license.internalService.ts
  • apps/meteor/ee/server/lib/license/settings.ts
  • apps/meteor/ee/server/lib/license/startup.ts
  • apps/meteor/ee/server/lib/message-read-receipt/index.ts
  • apps/meteor/ee/server/meteor-methods/removeCannedResponse.ts
  • apps/meteor/ee/server/meteor-methods/saveCannedResponse.ts
  • apps/meteor/ee/server/patches/airGappedRestrictionsWrapper.ts
  • apps/meteor/ee/server/requestSeatsRoute.ts
  • apps/meteor/ee/server/settings/saml.ts
  • apps/meteor/ee/server/startup/index.ts
  • apps/meteor/ee/server/startup/services.ts
  • apps/meteor/ee/tests/unit/server/airgappedRestrictions/airGappedRestrictionsWrapper.spec.ts
  • apps/meteor/ee/tests/unit/server/airgappedRestrictions/airgappedRestrictions.spec.ts
  • apps/meteor/ee/tests/unit/server/hooks/omnichannel/afterInquiryQueued.spec.ts
  • apps/meteor/ee/tests/unit/server/hooks/omnichannel/manageDepartmentUnit.spec.ts
  • apps/meteor/imports/personal-access-tokens/server/api/methods/generateToken.ts
  • apps/meteor/imports/personal-access-tokens/server/api/methods/regenerateToken.ts
  • apps/meteor/imports/personal-access-tokens/server/api/methods/removeToken.ts
  • apps/meteor/jest.config.ts
  • apps/meteor/scripts/migration/check-broken-imports.mjs
  • apps/meteor/scripts/migration/check-mock-keys.mjs
  • apps/meteor/server/api/ApiClass.ts
  • apps/meteor/server/api/api.ts
  • apps/meteor/server/api/definition.ts
  • apps/meteor/server/api/v1/assets.ts
  • apps/meteor/server/api/v1/autotranslate.ts
  • apps/meteor/server/api/v1/channels.ts
  • apps/meteor/server/api/v1/chat.ts
  • apps/meteor/server/api/v1/custom-sounds.ts
  • apps/meteor/server/api/v1/e2e.ts
  • apps/meteor/server/api/v1/emoji-custom.ts
  • apps/meteor/server/api/v1/groups.ts
  • apps/meteor/server/api/v1/import.ts
  • apps/meteor/server/api/v1/integrations.ts
  • apps/meteor/server/api/v1/mailer.ts
  • apps/meteor/server/api/v1/omnichannel/sms.ts
  • apps/meteor/server/api/v1/omnichannel/upload.ts
  • apps/meteor/server/api/v1/push.ts
  • apps/meteor/server/api/v1/rooms.ts
  • apps/meteor/server/api/v1/stats.ts
  • apps/meteor/server/api/v1/subscriptions.ts
  • apps/meteor/server/api/v1/twoFactorChallenges.ts
  • apps/meteor/server/api/v1/users.ts
  • apps/meteor/server/api/webhooks.ts
  • apps/meteor/server/bridges/nextcloud/lib.ts
  • apps/meteor/server/bridges/slack/SlackAdapter.ts
  • apps/meteor/server/bridges/smarsh/functions/sendEmail.ts
  • apps/meteor/server/configuration/configureAssets.ts
  • apps/meteor/server/configuration/pushNotification.ts
  • apps/meteor/server/cron/temporaryUploadsCleanup.ts
  • apps/meteor/server/cron/usageReport.spec.ts
  • apps/meteor/server/cron/usageReport.ts
  • apps/meteor/server/features/EmailInbox/EmailInbox_Incoming.ts
  • apps/meteor/server/features/EmailInbox/EmailInbox_Outgoing.ts
  • apps/meteor/server/hooks/auth/login.ts
  • apps/meteor/server/hooks/messages/afterSaveMessage.ts
  • apps/meteor/server/hooks/messages/notifyUsersOnMessage.ts
  • apps/meteor/server/hooks/messages/processThreads.ts
  • apps/meteor/server/hooks/messages/propagateDiscussionMetadata.ts
  • apps/meteor/server/hooks/messages/sendNotificationsOnMessage.ts
  • apps/meteor/server/hooks/omnichannel/afterAgentRemoved.ts
  • apps/meteor/server/hooks/omnichannel/afterSaveOmnichannelMessage.ts
  • apps/meteor/server/hooks/omnichannel/afterUserActions.ts
  • apps/meteor/server/hooks/omnichannel/leadCapture.ts
  • apps/meteor/server/hooks/omnichannel/markRoomNotResponded.ts
  • apps/meteor/server/hooks/omnichannel/markRoomResponded.ts
  • apps/meteor/server/hooks/omnichannel/offlineMessage.ts
  • apps/meteor/server/hooks/omnichannel/offlineMessageToChannel.ts
  • apps/meteor/server/hooks/omnichannel/processRoomAbandonment.ts
  • apps/meteor/server/hooks/omnichannel/saveAnalyticsData.ts
  • apps/meteor/server/hooks/omnichannel/saveLastMessageToInquiry.ts
  • apps/meteor/server/hooks/omnichannel/saveLastVisitorMessageTs.ts
  • apps/meteor/server/hooks/omnichannel/sendEmailTranscriptOnClose.ts
  • apps/meteor/server/hooks/omnichannel/sendToCRM.ts
  • apps/meteor/server/hooks/rooms/beforeAddUserToRoom.ts
  • apps/meteor/server/hooks/sauMonitorHooks.ts
  • apps/meteor/server/importPackages.ts
  • apps/meteor/server/lib/2fa/MethodInvocationOverride.js
  • apps/meteor/server/lib/2fa/code/EmailCheck.spec.ts
  • apps/meteor/server/lib/2fa/code/EmailCheck.ts
  • apps/meteor/server/lib/2fa/code/EmailCheckForOAuth.ts
  • apps/meteor/server/lib/2fa/code/ICodeCheck.ts
  • apps/meteor/server/lib/2fa/code/PasswordCheckFallback.ts
  • apps/meteor/server/lib/2fa/code/TOTPCheck.ts
  • apps/meteor/server/lib/2fa/code/TOTPCheckForOAuth.ts
  • apps/meteor/server/lib/2fa/code/checkCodeForUser.spec.ts
  • apps/meteor/server/lib/2fa/code/index.spec.ts
  • apps/meteor/server/lib/2fa/code/index.ts
  • apps/meteor/server/lib/2fa/definitions/MeteorUser.d.ts
  • apps/meteor/server/lib/2fa/functions/resetTOTP.ts
  • apps/meteor/server/lib/2fa/lib/totp.ts
  • apps/meteor/server/lib/2fa/loginHandler.ts
  • apps/meteor/server/lib/2fa/twoFactorRequired.ts
  • apps/meteor/server/lib/auth-providers/apple/AppleCustomOAuth.ts
  • apps/meteor/server/lib/auth-providers/apple/appleOauthRegisterService.ts
  • apps/meteor/server/lib/auth-providers/apple/applePassportOAuth.ts
  • apps/meteor/server/lib/auth-providers/apple/loginHandler.spec.ts
  • apps/meteor/server/lib/auth-providers/apple/loginHandler.ts
  • apps/meteor/server/lib/auth-providers/crowd/crowd.ts
  • apps/meteor/server/lib/auth-providers/crowd/logger.ts
  • apps/meteor/server/lib/auth-providers/custom-oauth/customOAuth.ts
  • apps/meteor/server/lib/auth-providers/custom-oauth/custom_oauth_server.d.ts
  • apps/meteor/server/lib/auth-providers/custom-oauth/custom_oauth_server.js
  • apps/meteor/server/lib/auth-providers/custom-oauth/transform_helpers.js
  • apps/meteor/server/lib/auth-providers/dolphin.ts
  • apps/meteor/server/lib/auth-providers/drupal.ts
  • apps/meteor/server/lib/auth-providers/github-enterprise.ts
  • apps/meteor/server/lib/auth-providers/github.ts
  • apps/meteor/server/lib/auth-providers/gitlab.ts
  • apps/meteor/server/lib/auth-providers/google.js
  • apps/meteor/server/lib/auth-providers/iframe.ts
  • apps/meteor/server/lib/auth-providers/linkedin.ts
  • apps/meteor/server/lib/auth-providers/meteor-developer.ts
  • apps/meteor/server/lib/auth-providers/oauth/facebook.js
  • apps/meteor/server/lib/auth-providers/oauth/google.js
  • apps/meteor/server/lib/auth-providers/oauth/oauth.js
  • apps/meteor/server/lib/auth-providers/oauth/proxy.js
  • apps/meteor/server/lib/auth-providers/oauth/twitter.js
  • apps/meteor/server/lib/auth-providers/wordpress.ts
  • apps/meteor/server/lib/auth/ILoginAttempt.ts
  • apps/meteor/server/lib/auth/logLoginAttempts.ts
  • apps/meteor/server/lib/auth/restrictLoginAttempts.ts
  • apps/meteor/server/lib/auth/startup.js
  • apps/meteor/server/lib/auth/token-login.js
  • apps/meteor/server/lib/autotranslate/autotranslate.ts
  • apps/meteor/server/lib/autotranslate/deeplTranslate.ts
  • apps/meteor/server/lib/autotranslate/functions/getSupportedLanguages.ts
  • apps/meteor/server/lib/autotranslate/functions/saveSettings.ts
  • apps/meteor/server/lib/autotranslate/functions/translateMessage.ts
  • apps/meteor/server/lib/autotranslate/googleTranslate.ts
  • apps/meteor/server/lib/autotranslate/index.ts
  • apps/meteor/server/lib/autotranslate/libreTranslate.ts
  • apps/meteor/server/lib/autotranslate/logger.ts
  • apps/meteor/server/lib/autotranslate/msTranslate.ts
  • apps/meteor/server/lib/autotranslate/permissions.ts
  • apps/meteor/server/lib/callbacks.ts
  • apps/meteor/server/lib/cloud/buildRegistrationData.ts
  • apps/meteor/server/lib/cloud/finishOAuthAuthorization.ts
  • apps/meteor/server/lib/cloud/getOAuthAuthorizationUrl.ts
  • apps/meteor/server/lib/cloud/getWorkspaceAccessToken.ts
  • apps/meteor/server/lib/cloud/getWorkspaceAccessTokenWithScope.ts
  • apps/meteor/server/lib/cloud/getWorkspaceLicense.ts
  • apps/meteor/server/lib/cloud/index.ts
  • apps/meteor/server/lib/cloud/license.ts
  • apps/meteor/server/lib/cloud/license/airGappedRestrictionsWrapper.ts
  • apps/meteor/server/lib/cloud/oauthScopes.ts
  • apps/meteor/server/lib/cloud/supportedVersionsToken/supportedVersionsToken.ts
  • apps/meteor/server/lib/cloud/version-check/functions/buildVersionUpdateMessage.spec.ts
  • apps/meteor/server/lib/cloud/version-check/functions/buildVersionUpdateMessage.ts
  • apps/meteor/server/lib/cloud/version-check/functions/checkVersionUpdate.ts
  • apps/meteor/server/lib/cloud/version-check/functions/getNewUpdates.ts
  • apps/meteor/server/lib/cloud/version-check/index.ts
  • apps/meteor/server/lib/cloud/version-check/logger.ts
  • apps/meteor/server/lib/dataExport/copyFileUpload.ts
  • apps/meteor/server/lib/dataExport/processDataDownloads.spec.ts
  • apps/meteor/server/lib/dataExport/processDataDownloads.ts
  • apps/meteor/server/lib/dataExport/sendEmail.ts
  • apps/meteor/server/lib/dataExport/sendViaEmail.ts
  • apps/meteor/server/lib/dataExport/uploadZipFile.ts
  • apps/meteor/server/lib/e2e/beforeCreateRoom.ts
  • apps/meteor/server/lib/e2e/functions/handleSuggestedGroupKey.ts
  • apps/meteor/server/lib/e2e/functions/provideUsersSuggestedGroupKeys.ts
  • apps/meteor/server/lib/e2e/functions/resetRoomKey.ts
  • apps/meteor/server/lib/e2e/index.ts
  • apps/meteor/server/lib/import/classes/ImportDataConverter.ts
  • apps/meteor/server/lib/import/classes/Importer.ts
  • apps/meteor/server/lib/import/classes/ImporterProgress.ts
  • apps/meteor/server/lib/import/classes/ImporterSelection.ts
  • apps/meteor/server/lib/import/classes/ImporterSelectionChannel.ts
  • apps/meteor/server/lib/import/classes/ImporterSelectionUser.ts
  • apps/meteor/server/lib/import/classes/ImporterWebsocket.ts
  • apps/meteor/server/lib/import/classes/ImportersContainer.ts
  • apps/meteor/server/lib/import/classes/converters/ContactConverter.ts
  • apps/meteor/server/lib/import/classes/converters/ConverterCache.ts
  • apps/meteor/server/lib/import/classes/converters/MessageConverter.ts
  • apps/meteor/server/lib/import/classes/converters/RecordConverter.ts
  • apps/meteor/server/lib/import/classes/converters/RoomConverter.ts
  • apps/meteor/server/lib/import/classes/converters/UserConverter.ts
  • apps/meteor/server/lib/import/classes/converters/generateTempPassword.ts
  • apps/meteor/server/lib/import/csv/CsvImporter.ts
  • apps/meteor/server/lib/import/csv/index.ts
  • apps/meteor/server/lib/import/definitions/IConversionCallbacks.ts
  • apps/meteor/server/lib/import/definitions/ImporterInfo.ts
  • apps/meteor/server/lib/import/index.ts
  • apps/meteor/server/lib/import/omnichannel-contacts/ContactImporter.ts
  • apps/meteor/server/lib/import/omnichannel-contacts/addParsedContacts.ts
  • apps/meteor/server/lib/import/omnichannel-contacts/index.ts
  • apps/meteor/server/lib/import/pending-avatars/PendingAvatarImporter.ts
  • apps/meteor/server/lib/import/pending-avatars/index.ts
  • apps/meteor/server/lib/import/pending-files/PendingFileImporter.ts
  • apps/meteor/server/lib/import/pending-files/index.ts
  • apps/meteor/server/lib/import/slack-users/SlackUsersImporter.ts
  • apps/meteor/server/lib/import/slack-users/index.ts
  • apps/meteor/server/lib/import/slack/SlackImporter.ts
  • apps/meteor/server/lib/import/slack/index.ts
  • apps/meteor/server/lib/import/startup/setImportsToInvalid.js
  • apps/meteor/server/lib/import/startup/store.js
  • apps/meteor/server/lib/integrations/functions/clearIntegrationHistory.ts
  • apps/meteor/server/lib/integrations/lib/ScriptEngine.ts
  • apps/meteor/server/lib/integrations/lib/compileIntegrationScript.ts
  • apps/meteor/server/lib/integrations/lib/definition.ts
  • apps/meteor/server/lib/integrations/lib/isolated-vm/buildSandbox.ts
  • apps/meteor/server/lib/integrations/lib/isolated-vm/getCompatibilityScript.ts
  • apps/meteor/server/lib/integrations/lib/isolated-vm/isolated-vm.ts
  • apps/meteor/server/lib/integrations/lib/mountQueriesBasedOnPermission.ts
  • apps/meteor/server/lib/integrations/lib/triggerHandler.ts
  • apps/meteor/server/lib/integrations/lib/updateHistory.ts
  • apps/meteor/server/lib/integrations/lib/validateOutgoingIntegration.ts
  • apps/meteor/server/lib/integrations/lib/validateScriptEngine.ts
  • apps/meteor/server/lib/integrations/logger.ts
  • apps/meteor/server/lib/integrations/startup.ts
  • apps/meteor/server/lib/integrations/triggers.ts
  • apps/meteor/server/lib/ldap/Manager.ts
  • apps/meteor/server/lib/ldap/UserConverter.ts
  • apps/meteor/server/lib/media/assets/assets.ts
  • apps/meteor/server/lib/media/assets/index.ts
  • apps/meteor/server/lib/media/custom-sounds/lib/deleteCustomSound.ts
  • apps/meteor/server/lib/media/custom-sounds/lib/insertOrUpdateSound.ts
  • apps/meteor/server/lib/media/custom-sounds/lib/uploadCustomSound.ts
  • apps/meteor/server/lib/media/custom-sounds/startup/custom-sounds.js
  • apps/meteor/server/lib/media/emoji-custom/lib/insertOrUpdateEmoji.ts
  • apps/meteor/server/lib/media/emoji-custom/lib/uploadEmojiCustom.ts
  • apps/meteor/server/lib/media/emoji-custom/startup/emoji-custom.js
  • apps/meteor/server/lib/media/emoji-native/callbacks.ts
  • apps/meteor/server/lib/media/emoji-native/lib.ts
  • apps/meteor/server/lib/media/file-upload/config/AmazonS3.ts
  • apps/meteor/server/lib/media/file-upload/config/FileSystem.ts
  • apps/meteor/server/lib/media/file-upload/config/GoogleStorage.ts
  • apps/meteor/server/lib/media/file-upload/config/GridFS.ts
  • apps/meteor/server/lib/media/file-upload/config/Webdav.ts
  • apps/meteor/server/lib/media/file-upload/config/_configUploadStorage.ts
  • apps/meteor/server/lib/media/file-upload/config/helper.ts
  • apps/meteor/server/lib/media/file-upload/index.ts
  • apps/meteor/server/lib/media/file-upload/isImagePreviewSupported.ts
  • apps/meteor/server/lib/media/file-upload/lib/FileUpload.spec.ts
  • apps/meteor/server/lib/media/file-upload/lib/FileUpload.ts
  • apps/meteor/server/lib/media/file-upload/lib/ranges.ts
  • apps/meteor/server/lib/media/file-upload/lib/requests.ts
  • apps/meteor/server/lib/media/file-upload/lib/urlExpiry.spec.ts
  • apps/meteor/server/lib/media/file-upload/lib/urlExpiry.ts
  • apps/meteor/server/lib/media/file-upload/ufs/AmazonS3/server.ts
  • apps/meteor/server/lib/media/file-upload/ufs/GoogleStorage/server.ts
  • apps/meteor/server/lib/media/file-upload/ufs/Webdav/server.ts
  • apps/meteor/server/lib/media/file/file.server.ts
  • apps/meteor/server/lib/media/file/functions/sanitizeFileName.spec.ts
  • apps/meteor/server/lib/media/file/functions/sanitizeFileName.ts
  • apps/meteor/server/lib/media/file/index.ts
  • apps/meteor/server/lib/messages/deleteMessage.ts
  • apps/meteor/server/lib/messages/parseUrlsInMessage.ts
  • apps/meteor/server/lib/messages/sendMessage.ts
  • apps/meteor/server/lib/messages/updateMessage.ts
  • apps/meteor/server/lib/messaging/discussions/permissions.ts
  • apps/meteor/server/lib/messaging/emoji.ts
  • apps/meteor/server/lib/messaging/markdown.ts
  • apps/meteor/server/lib/messaging/mentions/Mentions.ts
  • apps/meteor/server/lib/messaging/mentions/getMentionedTeamMembers.ts
  • apps/meteor/server/lib/messaging/pins/pinMessage.ts
  • apps/meteor/server/lib/messaging/reactions/setReaction.ts
  • apps/meteor/server/lib/messaging/stars/starMessage.ts
  • apps/meteor/server/lib/messaging/threads/functions.ts
  • apps/meteor/server/lib/messaging/unread/logger.ts
  • apps/meteor/server/lib/messaging/unread/unreadMessages.ts
  • apps/meteor/server/lib/metrics/index.ts
  • apps/meteor/server/lib/metrics/lib/collectMetrics.ts
  • apps/meteor/server/lib/metrics/lib/metrics.ts
  • apps/meteor/server/lib/metrics/lib/statsTracker.js
  • apps/meteor/server/lib/moderation/deleteReportedMessages.ts
  • apps/meteor/server/lib/notifications/core/index.ts
  • apps/meteor/server/lib/notifications/core/lib/Notifications.ts
  • apps/meteor/server/lib/notifications/core/lib/Presence.ts
  • apps/meteor/server/lib/notifications/email/api.ts
  • apps/meteor/server/lib/notifications/email/replaceVariables.ts
  • apps/meteor/server/lib/notifications/mail-messages/functions/sendMail.ts
  • apps/meteor/server/lib/notifications/mail-messages/functions/unsubscribe.ts
  • apps/meteor/server/lib/notifications/mail-messages/lib/Mailer.ts
  • apps/meteor/server/lib/notifications/push-config/index.ts
  • apps/meteor/server/lib/notifications/push-config/lib/PushNotification.ts
  • apps/meteor/server/lib/notifications/push/apn.spec.ts
  • apps/meteor/server/lib/notifications/push/apn.ts
  • apps/meteor/server/lib/notifications/push/definition.ts
  • apps/meteor/server/lib/notifications/push/fcm.ts
  • apps/meteor/server/lib/notifications/push/index.ts
  • apps/meteor/server/lib/notifications/push/logger.ts
  • apps/meteor/server/lib/notifications/push/push.ts
  • apps/meteor/server/lib/notifications/queue/NotificationQueue.ts
  • apps/meteor/server/lib/oauth/addPassportCustomOAuth.ts
  • apps/meteor/server/lib/oauth/twoFactorAuth.ts
  • apps/meteor/server/lib/oauth/updateOAuthServices.ts
  • apps/meteor/server/lib/pushConfig.ts
  • apps/meteor/server/lib/refreshLoginServices.ts
  • apps/meteor/server/lib/resetUserE2EKey.ts
  • apps/meteor/server/lib/rooms/addUserToRoom.ts
  • apps/meteor/server/lib/rooms/cleanRoomHistory.ts
  • apps/meteor/server/lib/rooms/deleteRoom.ts
  • apps/meteor/server/lib/rooms/relinquishRoomOwnerships.ts
  • apps/meteor/server/lib/rooms/setRoomAvatar.ts
  • apps/meteor/server/lib/saml/definition/IAttributeMapping.ts
  • apps/meteor/server/lib/saml/definition/IAuthorizeRequestVariables.ts
  • apps/meteor/server/lib/saml/definition/ILogoutRequestVariables.ts
  • apps/meteor/server/lib/saml/definition/ILogoutResponse.ts
  • apps/meteor/server/lib/saml/definition/ILogoutResponseVariables.ts
  • apps/meteor/server/lib/saml/definition/IMetadataVariables.ts
  • apps/meteor/server/lib/saml/definition/ISAMLAction.ts
  • apps/meteor/server/lib/saml/definition/ISAMLAssertion.ts
  • apps/meteor/server/lib/saml/definition/ISAMLGlobalSettings.ts
  • apps/meteor/server/lib/saml/definition/ISAMLRequest.ts
  • apps/meteor/server/lib/saml/definition/ISAMLUser.ts
  • apps/meteor/server/lib/saml/definition/IServiceProviderOptions.ts
  • apps/meteor/server/lib/saml/definition/SAMLEnvelope.ts
  • apps/meteor/server/lib/saml/definition/callbacks.ts
  • apps/meteor/server/lib/saml/lib/SAML.ts
  • apps/meteor/server/lib/saml/lib/ServiceProvider.ts
  • apps/meteor/server/lib/saml/lib/Utils.ts
  • apps/meteor/server/lib/saml/lib/constants.ts
  • apps/meteor/server/lib/saml/lib/generators/AuthorizeRequest.ts
  • apps/meteor/server/lib/saml/lib/generators/LogoutRequest.ts
  • apps/meteor/server/lib/saml/lib/generators/LogoutResponse.ts
  • apps/meteor/server/lib/saml/lib/generators/ServiceProviderMetadata.ts
  • apps/meteor/server/lib/saml/lib/getSAMLEnvelope.ts
  • apps/meteor/server/lib/saml/lib/parsers/LogoutRequest.ts
  • apps/meteor/server/lib/saml/lib/parsers/LogoutResponse.ts
  • apps/meteor/server/lib/saml/lib/parsers/Response.ts
  • apps/meteor/server/lib/saml/lib/settings.ts
  • apps/meteor/server/lib/saml/lib/signature/signatureAlgorithms.ts
  • apps/meteor/server/lib/saml/lib/signature/validateRedirectSignature.ts
  • apps/meteor/server/lib/saml/listener.ts
  • apps/meteor/server/lib/saml/loginHandler.ts
  • apps/meteor/server/lib/saml/startup.ts
  • apps/meteor/server/lib/search/events/EventService.ts
  • apps/meteor/server/lib/search/events/index.ts
  • apps/meteor/server/lib/search/logger/logger.ts
  • apps/meteor/server/lib/search/model/ISearchResult.ts
  • apps/meteor/server/lib/search/model/SearchProvider.ts
  • apps/meteor/server/lib/search/model/Setting.ts
  • apps/meteor/server/lib/search/model/Settings.ts
  • apps/meteor/server/lib/search/provider/DefaultProvider.ts
  • apps/meteor/server/lib/search/register.ts
  • apps/meteor/server/lib/search/search.internalService.ts
  • apps/meteor/server/lib/search/service/SearchProviderService.ts
  • apps/meteor/server/lib/search/service/SearchResultValidationService.ts
  • apps/meteor/server/lib/search/service/index.ts
  • apps/meteor/server/lib/search/startup.ts
  • apps/meteor/server/lib/statistics/functions/getLastStatistics.ts
  • apps/meteor/server/lib/statistics/functions/getStatistics.ts
  • apps/meteor/server/lib/statistics/functions/sendUsageReport.spec.ts
  • apps/meteor/server/lib/statistics/functions/sendUsageReport.ts
  • apps/meteor/server/lib/statistics/functions/slashCommandsStats.ts
  • apps/meteor/server/lib/statistics/functions/updateStatsCounter.ts
  • apps/meteor/server/lib/statistics/index.ts
  • apps/meteor/server/lib/statistics/lib/SAUMonitor.ts
  • apps/meteor/server/lib/statistics/lib/UAParserCustom.js
  • apps/meteor/server/lib/statistics/lib/getAppsStatistics.ts
  • apps/meteor/server/lib/statistics/lib/getContactVerificationStatistics.ts
  • apps/meteor/server/lib/statistics/lib/getEEStatistics.ts
  • apps/meteor/server/lib/statistics/lib/getImporterStatistics.ts
  • apps/meteor/server/lib/statistics/lib/getServicesStatistics.ts
  • apps/meteor/server/lib/statistics/lib/statistics.ts
  • apps/meteor/server/lib/statistics/lib/telemetryEvents.ts
  • apps/meteor/server/lib/statistics/startup/monitor.ts
  • apps/meteor/server/lib/users/deleteUser.ts
  • apps/meteor/server/lib/users/saveUser/sendUserEmail.ts
  • apps/meteor/server/lib/users/saveUserIdentity.ts
  • apps/meteor/server/lib/users/setEmail.ts
  • apps/meteor/server/lib/users/setUserActiveStatus.ts
  • apps/meteor/server/lib/users/setUserAvatar.ts
  • apps/meteor/server/meteor-methods/auth/addSamlService.ts
  • apps/meteor/server/meteor-methods/auth/crowd.ts
  • apps/meteor/server/meteor-methods/auth/disable.ts
  • apps/meteor/server/meteor-methods/auth/enable.ts
  • apps/meteor/server/meteor-methods/auth/regenerateCodes.ts
  • apps/meteor/server/meteor-methods/auth/samlLogout.ts
  • apps/meteor/server/meteor-methods/auth/validateTempToken.ts
  • apps/meteor/server/meteor-methods/import/downloadPublicImportFile.ts
  • apps/meteor/server/meteor-methods/import/getImportFileData.ts
  • apps/meteor/server/meteor-methods/import/getImportProgress.ts
  • apps/meteor/server/meteor-methods/import/startImport.ts
  • apps/meteor/server/meteor-methods/import/uploadImportFile.ts
  • apps/meteor/server/meteor-methods/index.ts
  • apps/meteor/server/meteor-methods/integrations/clearIntegrationHistory.ts
  • apps/meteor/server/meteor-methods/integrations/incoming/addIncomingIntegration.ts
  • apps/meteor/server/meteor-methods/integrations/incoming/updateIncomingIntegration.ts
  • apps/meteor/server/meteor-methods/integrations/outgoing/addOutgoingIntegration.ts
  • apps/meteor/server/meteor-methods/integrations/outgoing/replayOutgoingIntegration.ts
  • apps/meteor/server/meteor-methods/integrations/outgoing/updateOutgoingIntegration.ts
  • apps/meteor/server/meteor-methods/media/deleteCustomSound.ts
  • apps/meteor/server/meteor-methods/media/deleteEmojiCustom.ts
  • apps/meteor/server/meteor-methods/media/getS3FileUrl.ts
  • apps/meteor/server/meteor-methods/media/insertOrUpdateEmoji.ts
  • apps/meteor/server/meteor-methods/media/insertOrUpdateSound.ts
  • apps/meteor/server/meteor-methods/media/listCustomSounds.ts
  • apps/meteor/server/meteor-methods/media/uploadCustomSound.ts
  • apps/meteor/server/meteor-methods/media/uploadEmojiCustom.ts
  • apps/meteor/server/meteor-methods/messages/createDiscussion.ts
  • apps/meteor/server/meteor-methods/messages/deleteFileMessage.ts
  • apps/meteor/server/meteor-methods/messages/followMessage.ts
  • apps/meteor/server/meteor-methods/messages/getThreadMessages.ts
  • apps/meteor/server/meteor-methods/messages/getUserMentionsByChannel.ts
  • apps/meteor/server/meteor-methods/messages/messageSearch.ts
  • apps/meteor/server/meteor-methods/messages/readThreads.ts
  • apps/meteor/server/meteor-methods/messages/sendFileMessage.spec.ts
  • apps/meteor/server/meteor-methods/messages/sendFileMessage.ts
  • apps/meteor/server/meteor-methods/messages/sendMessage.ts
  • apps/meteor/server/meteor-methods/messages/unfollowMessage.ts
  • apps/meteor/server/meteor-methods/messages/updateMessage.ts
  • apps/meteor/server/meteor-methods/omnichannel/sendFileLivechatMessage.ts
  • apps/meteor/server/meteor-methods/platform/banner_dismiss.ts
  • apps/meteor/server/meteor-methods/platform/cloud.ts
  • apps/meteor/server/meteor-methods/platform/getProviderUiMetadata.ts
  • apps/meteor/server/meteor-methods/platform/getStatistics.ts
  • apps/meteor/server/meteor-methods/platform/getSupportedLanguages.ts
  • apps/meteor/server/meteor-methods/platform/push.ts
  • apps/meteor/server/meteor-methods/platform/resetOwnE2EKey.ts
  • apps/meteor/server/meteor-methods/platform/saveSettings.ts
  • apps/meteor/server/meteor-methods/platform/search.ts
  • apps/meteor/server/meteor-methods/platform/translateMessage.ts
  • apps/meteor/server/meteor-methods/rooms/addAllUserToRoom.ts
  • apps/meteor/server/meteor-methods/settings/saveSetting.ts
  • apps/meteor/server/meteor-methods/settings/saveSettings.ts
  • apps/meteor/server/meteor-methods/settings/sendSMTPTestEmail.ts
  • apps/meteor/server/meteor-methods/users/saveNotificationSettings.ts
  • apps/meteor/server/meteor-methods/users/saveUserProfile.ts
  • apps/meteor/server/modules/core-apps/cloudAnnouncements.module.ts
  • apps/meteor/server/modules/notifications/notifications.module.ts
  • apps/meteor/server/routes/avatar/utils.spec.ts
  • apps/meteor/server/routes/avatar/utils.ts
  • apps/meteor/server/routes/userDataDownload.ts
  • apps/meteor/server/services/authorization/service.ts
  • apps/meteor/server/services/import/service.spec.ts
  • apps/meteor/server/services/import/service.ts
  • apps/meteor/server/services/media-call/push/sendVoipPushNotification.ts
  • apps/meteor/server/services/messages/hooks/BeforeSaveMentions.ts
  • apps/meteor/server/services/messages/service.ts
  • apps/meteor/server/services/meteor/service.ts
  • apps/meteor/server/services/nps/getAndCreateNpsSurvey.ts
  • apps/meteor/server/services/nps/sendNpsResults.ts
  • apps/meteor/server/services/omnichannel/queue.ts
  • apps/meteor/server/services/room/service.ts
  • apps/meteor/server/services/upload/service.ts
  • apps/meteor/server/services/video-conference/service.ts
  • apps/meteor/server/startup/callbacks.ts
  • apps/meteor/server/startup/initialData.ts
  • apps/meteor/startRocketChat.ts
  • apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts
  • apps/meteor/tests/unit/app/livechat/server/lib/sendTranscript.spec.ts
  • apps/meteor/tests/unit/app/livechat/server/lib/webhooks.spec.ts
  • apps/meteor/tests/unit/app/mailer/api.spec.ts
  • apps/meteor/tests/unit/app/mailer/getEmailContent.spec.ts
  • apps/meteor/tests/unit/server/hooks/omnichannel/beforeNewRoom.spec.ts
  • apps/meteor/tests/unit/server/hooks/omnichannel/markRoomResponded.spec.ts
  • apps/meteor/tests/unit/server/hooks/omnichannel/processRoomAbandonment.spec.ts
  • apps/meteor/tests/unit/server/hooks/omnichannel/sendToCRM.tests.ts
  • apps/meteor/tests/unit/server/lib/auth-providers/custom-oauth/transform_helpers.tests.js
  • apps/meteor/tests/unit/server/lib/dataExport/uploadZipFile.spec.ts
  • apps/meteor/tests/unit/server/lib/e2e/functions/resetRoomKey.spec.ts
  • apps/meteor/tests/unit/server/lib/import/messageConverter.spec.ts
  • apps/meteor/tests/unit/server/lib/import/recordConverter.spec.ts
  • apps/meteor/tests/unit/server/lib/import/roomConverter.spec.ts
  • apps/meteor/tests/unit/server/lib/import/transformMappedData.spec.ts
  • apps/meteor/tests/unit/server/lib/import/userConverter.spec.ts
  • apps/meteor/tests/unit/server/lib/messaging/mentions/server.tests.js
  • apps/meteor/tests/unit/server/lib/messaging/reactions/setReaction.spec.ts
  • apps/meteor/tests/unit/server/lib/notifications/push/push.spec.ts
  • apps/meteor/tests/unit/server/lib/saml/data.ts
  • apps/meteor/tests/unit/server/lib/saml/helpers.ts
  • apps/meteor/tests/unit/server/lib/saml/loginHandler.spec.ts
  • apps/meteor/tests/unit/server/lib/saml/server.tests.ts
  • apps/meteor/tests/unit/server/lib/statistics/lib/UAParserCustom.tests.js
  • apps/meteor/tests/unit/server/lib/users/saveUser/sendUserEmail.spec.ts
  • apps/meteor/tests/unit/server/meteor-methods/messages/deleteFileMessage.spec.ts
  • apps/meteor/tests/unit/server/services/omnichannel/queue.tests.ts
  • apps/meteor/tests/unit/server/startup/initialData.tests.ts
  • apps/meteor/tests/unit/server/users/saveUserIdentity.spec.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 600 files

Note: This PR contains a large number of files. cubic only reviews up to 200 files per PR, so some files may not have been reviewed. cubic prioritizes the most important files to review.

Re-trigger cubic

Comment thread apps/meteor/scripts/migration/check-broken-imports.mjs Outdated
Comment thread apps/meteor/ee/server/startup/index.ts Outdated
@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 68.21%. Comparing base (73c3aec) to head (c6f1e22).
⚠️ Report is 2 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop   #41315      +/-   ##
===========================================
- Coverage    69.12%   68.21%   -0.92%     
===========================================
  Files         3762     3968     +206     
  Lines       147936   154740    +6804     
  Branches     26451    27774    +1323     
===========================================
+ Hits        102258   105549    +3291     
- Misses       41173    44394    +3221     
- Partials      4505     4797     +292     
Flag Coverage Δ
e2e 59.24% <ø> (-0.05%) ⬇️
e2e-api 44.38% <ø> (-5.02%) ⬇️
unit 70.59% <100.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@sampaiodiego

sampaiodiego commented Jul 11, 2026

Copy link
Copy Markdown
Member Author

For reviewers — everything that is NOT a pure file move / import-path rewrite

Of the diff, 362 files are renames (moves with only import specifiers recomputed) and most of the 194 modified files only had import paths rewritten by the migration script. The changes below are the ones that deserve actual review.

1. Files renamed (not just relocated)

Old name New path Why
app/threads/server/hooks/aftersavemessage.ts server/hooks/messages/processThreads.ts would case-collide with afterSaveMessage.ts in the same folder on macOS/Windows; named after its exported processThreads
app/integrations/server/api/api.ts server/api/webhooks.ts REST responsibility (plan row)
app/{dolphin,drupal,github,github-enterprise,gitlab,linkedin,meteor-developer,wordpress}/server/lib.ts server/lib/auth-providers/<name>.ts single-file providers flattened (plan's target structure)
app/google-oauth/server/index.js server/lib/auth-providers/google.js single-file feature
app/iframe-login/server/iframe_server.ts server/lib/auth-providers/iframe.ts plan row
app/token-login/server/login_token_server.js server/lib/auth/token-login.js plan row
app/authentication/server/startup/index.js server/lib/auth/startup.js real 532-line module, not an aggregator
app/markdown/server/index.ts server/lib/messaging/markdown.ts real module (startup + re-export), single file
app/emoji/server/lib.ts server/lib/messaging/emoji.ts single-file feature
app/{crowd,push,search,cloud}/server/methods.ts server/meteor-methods/{auth/crowd,platform/push,platform/search,platform/cloud}.ts Meteor method files the plan tables missed; keeps the Phase 5 "all methods live in meteor-methods/" invariant

2. Deleted files: 32 side-effect index.ts aggregators folded away

Feature indexes that only did import './x' were folded into the entry points and deleted (per the plan's aggregator-folding note). Their contents now live as direct imports in:

  • server/importPackages.ts — loads each feature's concrete files instead of ../app/<feature>/server (2fa, apple, crowd, dolphin, drupal, github, github-enterprise, gitlab, iframe-login, token-login, wordpress, saml, authentication, emoji, mentions, message-mark-as-unread, message-pin, message-star, threads, discussion, reactions, emoji-custom, emoji-native, custom-sounds, search, integrations).
  • server/meteor-methods/index.ts — +17 new registrations moved out of feature indexes: auth/{addSamlService,samlLogout,crowd}, platform/{push,search,cloud,getStatistics,banner_dismiss}, users/saveNotificationSettings, messages/{sendFileMessage,getUserMentionsByChannel}, media/{deleteCustomSound,deleteEmojiCustom,getS3FileUrl,insertOrUpdateEmoji,insertOrUpdateSound,listCustomSounds,uploadCustomSound,uploadEmojiCustom}. Please double-check nothing lost its side-effect load — the registration audit from MIGRATION_PLAN.md Phase 5 passes (every non-spec file under server/meteor-methods/ + ee/server/meteor-methods/ is imported by the aggregator or a named-import consumer).
  • ee/server/index.ts../app/license/server folded to ../app/license/server/settings (later moved) + ./meteor-methods/license.
  • ee/server/startup/index.ts../../app/authorization/server folded to a direct import of the moved callback.ts. The aggregator's other import, ../lib/addRoleRestrictions, turned out to be dead code (see §6) and was removed instead of relocated.
  • ee/server/lib/message-read-receipt/index.tsawait import('./hooks') expanded to three per-file dynamic imports; License.onLicense gating preserved (same for canned-responses and livechat-enterprise — EE hooks are still only loaded inside their license callbacks).

Indexes with real code were kept and moved as-is: importer Importers container, cloud cron startup, version-check cron, e2e afterJoinRoom callback registration, metrics/assets/file/file-upload/push/push-config/notifications-core re-export barrels, livechat-enterprise hooks index.

3. Hand-written import fixes (migration-script blind spot)

The move script cannot rewrite a moved file's import of its own feature's dir-index (resolution happens after git mv). Fixed manually, same specifier semantics:

  • server/lib/search/{register,startup,search.internalService,events/*}.ts./service, ./events, ../service
  • server/lib/autotranslate/functions/{getSupportedLanguages,translateMessage}.ts../index
  • server/lib/import/classes/Importer.ts../index
  • server/lib/statistics/functions/sendUsageReport.ts../index
  • server/lib/media/emoji-native/lib.ts../../messaging/emoji (was left stale by the emoji move)
  • server/lib/messaging/reactions/setReaction.ts../emoji
  • Root startRocketChat.ts./ee/server/lib/license/startup (this file is outside ESLint's coverage; only a standalone tsc run catches it)
  • ee/server/index.ts — removed a leftover import of the deleted EE authorization aggregator (also invisible to ESLint)

4. Test infrastructure (lint/tsc cannot verify any of this — see plan §Test Mocks)

  • Runner globs: .mocharc.jsapp/2fa|push|file-upload|statistics/**server/lib/{2fa,notifications/push,media,statistics}/**, new server/meteor-methods/**/*.spec.ts and tests/unit/server/**/*.tests.js globs. jest.config.ts — apple, version-check, EE license globs re-pointed.
    • Side effect: sanitizeFileName.spec.ts (file feature) was previously matched by no glob at all — it now actually runs (passes).
  • ~30 spec files: proxyquire .load() targets and mock keys rewritten to the moved modules' new import specifiers (proxyquire matches keys literally; the script does not touch string literals). Verified by a new checker script, plus actually running both suites.
  • Two silently-broken tests fixed: tests/unit/app/livechat/server/lib/webhooks.spec.ts and tests/unit/app/mailer/getEmailContent.spec.ts held their stub objects in variables, so the stale keys (../../../metrics/server, ../../../../mailer/server/api) escaped the checker; the real app/settings/server loaded and 9 tests crashed with the misleading top-level-await/CJS error.
  • Mirrored specs relocated with their sources (e.g. tests/unit/app/meteor-accounts-samltests/unit/server/lib/saml, livechat hook specs → tests/unit/server/hooks/omnichannel, EE livechat-enterprise hook specs → ee/tests/unit/server/hooks/omnichannel).

5. New disposable tooling (deleted with the rest in Phase 7)

apps/meteor/scripts/migration/: per-sub-phase TSV manifests, plus two new helpers — check-mock-keys.mjs (validates proxyquire/jest.mock string literals against the loaded modules' real specifiers) and check-broken-imports.mjs (resolves every relative import in the tree, covering the directories ESLint ignores).

6. One dead-code removal (commit df4b5bc)

The single exception to "files move as-is": ee/app/authorization/lib/addRoleRestrictions.ts, its side-effect import in ee/server/startup/index.ts, and the unused Authorization.addRoleRestrictions service method were deleted, not moved. The function's only call site in the repo's history was client-side and was removed in #32273 — since then evaluating the module defined a function nobody invoked, so the guest permission whitelist it referenced has not been active for a long time. Raised during review (see the discussion on ee/server/startup/index.ts); removing dead code was preferred over relocating it.

Known pre-existing issues left alone

16 dead proxyquire stub entries (keys for imports their modules no longer have — harmless, proxyquire ignores unmatched keys) predate this PR and were deliberately not touched, e.g. banUserFromRoom.spec.ts's ../lib/rooms/roomCoordinator, the importer converter specs' ../../../settings/server.

@sampaiodiego sampaiodiego force-pushed the backend-restructure-phase6 branch from f0e0661 to df4b5bc Compare July 11, 2026 02:34
KevLehman
KevLehman previously approved these changes Jul 11, 2026
d-gubert
d-gubert previously approved these changes Jul 13, 2026
sampaiodiego and others added 10 commits July 13, 2026 17:23
- app/{apple,crowd,custom-oauth,dolphin,drupal,github,github-enterprise,gitlab,google-oauth,iframe-login,wordpress}/server -> server/lib/auth-providers/
- app/lib/server/oauth -> server/lib/auth-providers/oauth/
- app/meteor-accounts-saml/server -> server/lib/saml/ (methods -> server/meteor-methods/auth/)
- app/2fa/server -> server/lib/2fa/
- app/{authentication,token-login}/server -> server/lib/auth/
- crowd methods -> server/meteor-methods/auth/crowd.ts
- folded trivial feature index.ts aggregators into importPackages.ts
- re-wired mocha/jest globs; fixed stale proxyquire/jest.mock keys

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- app/livechat/server/hooks -> server/hooks/omnichannel/
- app/{authentication,discussion,threads}/server/hooks -> server/hooks/{auth,messages}/
- threads aftersavemessage.ts renamed processThreads.ts (case-collision with afterSaveMessage.ts)
- app/lib/server/lib/{afterSaveMessage,notifyUsersOnMessage,sendNotificationsOnMessage} -> server/hooks/messages/
- app/lib/server/lib/beforeAddUserToRoom -> server/hooks/rooms/
- EE mirror: livechat-enterprise hooks -> ee/server/hooks/omnichannel/, canned-responses hooks -> ee/server/hooks/canned-responses/, message-read-receipt hooks -> ee/server/hooks/messages/, authorization callback -> ee/server/hooks/auth/
- relocated mirrored specs; rewrote proxyquire targets and stale mock keys

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… 6c+6d)

Phase 6c — notifications:
- app/push/server -> server/lib/notifications/push/ (methods -> server/meteor-methods/platform/push.ts)
- app/push-notifications/server -> server/lib/notifications/push-config/ (saveNotificationSettings -> server/meteor-methods/users/)
- app/mailer/server -> server/lib/notifications/email/
- app/mail-messages/server -> server/lib/notifications/mail-messages/
- app/notification-queue/server -> server/lib/notifications/queue/
- app/notifications/server -> server/lib/notifications/core/

Phase 6d — messaging:
- app/mentions/server -> server/lib/messaging/mentions/ (getUserMentionsByChannel -> server/meteor-methods/messages/)
- app/threads/server/functions.ts -> server/lib/messaging/threads/
- app/discussion/server/permissions.ts -> server/lib/messaging/discussions/
- app/reactions|message-pin|message-star|message-mark-as-unread -> server/lib/messaging/{reactions,pins,stars,unread}/
- app/markdown/server -> server/lib/messaging/markdown.ts
- app/emoji/server -> server/lib/messaging/emoji.ts
- folded side-effect index.ts aggregators; relocated mirrored specs; re-wired globs and mock keys

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ib (Phase 6e)

- app/file-upload/server -> server/lib/media/file-upload/ (sendFileMessage -> server/meteor-methods/messages/, getS3FileUrl -> server/meteor-methods/media/, isImagePreviewSupported stays lib)
- app/{file,emoji-custom,emoji-native,custom-sounds,assets}/server -> server/lib/media/*
- custom-sounds/emoji-custom methods -> server/meteor-methods/media/
- app/importer*/server -> server/lib/import/*
- app/search/server -> server/lib/search/ (methods -> server/meteor-methods/platform/search.ts)
- app/autotranslate/server -> server/lib/autotranslate/
- app/e2e/server -> server/lib/e2e/
- app/integrations/server -> server/lib/integrations/ (api/api.ts -> server/api/webhooks.ts)
- app/statistics/server -> server/lib/statistics/ (getStatistics method -> server/meteor-methods/platform/)
- app/metrics/server -> server/lib/metrics/
- app/cloud/server -> server/lib/cloud/ (methods -> server/meteor-methods/platform/cloud.ts)
- app/version-check/server -> server/lib/cloud/version-check/ (banner_dismiss -> server/meteor-methods/platform/)
- app/license/server -> server/lib/cloud/license/
- fixed broken ee/server/index.ts import of removed authorization aggregator (6b leftover; in ESLint blind spot)
- re-wired mocha/jest globs; relocated test mirrors; rewrote stale proxyquire/jest.mock keys

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- ee/app/canned-responses/server -> ee/server/lib/canned-responses/
- ee/app/license/server -> ee/server/lib/license/ (fixed root startRocketChat.ts import — outside lint/scan coverage)
- ee/app/message-read-receipt/server -> ee/server/lib/message-read-receipt/

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ib/auth-providers (Phase 6a follow-up)

Missed by the plan's 6a table; same shape as dolphin/drupal/github.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…6 fixups)

- webhooks.spec.ts / getEmailContent.spec.ts had stale proxyquire keys (variable-held
  stub objects, invisible to the literal-key checker) that let the real
  app/settings/server load and crash 9 tests via top-level await
- app/file-upload/ufs (server-only storage adapters) -> server/lib/media/file-upload/ufs

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…server/lib

#40728 (merged on develop after Phase 6e) added
app/integrations/server/functions/clearIntegrationHistory.ts at the old
location; relocate it to server/lib/integrations/functions/ and fix its
imports of already-moved modules (notifications core, triggerHandler).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sampaiodiego sampaiodiego dismissed stale reviews from d-gubert and KevLehman via c6f1e22 July 13, 2026 20:38
@sampaiodiego sampaiodiego force-pushed the backend-restructure-phase6 branch from df4b5bc to c6f1e22 Compare July 13, 2026 20:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants