From a32575c94ed28f929d69bd6862a1869d92cf56ea Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Thu, 16 Apr 2026 13:27:56 -0300 Subject: [PATCH 01/25] refactor(apps): point AppsEngine facade and IAppServerOrchestrator to local server/ paths These files previously re-exported AppManager, AppBridges, and AppMetadataStorage from @rocket.chat/apps-engine/server/. Now that server/ lives in this package, the imports are updated to local paths. Co-Authored-By: Claude Sonnet 4.6 --- packages/apps/src/AppsEngine.ts | 6 +++--- packages/apps/src/IAppServerOrchestrator.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/apps/src/AppsEngine.ts b/packages/apps/src/AppsEngine.ts index 4bffbbbc810fb..1184c237b060d 100644 --- a/packages/apps/src/AppsEngine.ts +++ b/packages/apps/src/AppsEngine.ts @@ -20,6 +20,6 @@ export type { IVideoConference as IAppsVideoConference, VideoConference as AppsVideoConference, } from '@rocket.chat/apps-engine/definition/videoConferences'; -export { AppManager } from '@rocket.chat/apps-engine/server/AppManager'; -export { AppBridges } from '@rocket.chat/apps-engine/server/bridges'; -export { AppMetadataStorage } from '@rocket.chat/apps-engine/server/storage'; +export { AppManager } from './server/AppManager'; +export { AppBridges } from './server/bridges'; +export { AppMetadataStorage } from './server/storage'; diff --git a/packages/apps/src/IAppServerOrchestrator.ts b/packages/apps/src/IAppServerOrchestrator.ts index 2f1f7db5d4b50..20e1edef03f35 100644 --- a/packages/apps/src/IAppServerOrchestrator.ts +++ b/packages/apps/src/IAppServerOrchestrator.ts @@ -1,5 +1,5 @@ -import type { AppManager } from '@rocket.chat/apps-engine/server/AppManager'; -import type { AppSourceStorage } from '@rocket.chat/apps-engine/server/storage'; +import type { AppManager } from './server/AppManager'; +import type { AppSourceStorage } from './server/storage'; import type { Logger } from '@rocket.chat/logger'; import type { IAppsPersistenceModel } from '@rocket.chat/model-typings'; From 6e9c4714e102976ba1bd219649c09a245228870e Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Thu, 16 Apr 2026 13:28:45 -0300 Subject: [PATCH 02/25] refactor(meteor): migrate apps-engine/server/ imports to @rocket.chat/apps/server/ Hard-cut all import paths from `@rocket.chat/apps-engine/server/*` to `@rocket.chat/apps/server/*` across apps/meteor. Covers bridges, storage, managers, marketplace, and service files (50 files, purely mechanical rename). Co-Authored-By: Claude Sonnet 4.6 --- apps/meteor/app/apps/server/bridges/activation.ts | 4 ++-- apps/meteor/app/apps/server/bridges/api.ts | 4 ++-- apps/meteor/app/apps/server/bridges/bridges.js | 2 +- apps/meteor/app/apps/server/bridges/cloud.ts | 2 +- apps/meteor/app/apps/server/bridges/commands.ts | 2 +- apps/meteor/app/apps/server/bridges/contact.ts | 2 +- apps/meteor/app/apps/server/bridges/details.ts | 2 +- apps/meteor/app/apps/server/bridges/email.ts | 2 +- apps/meteor/app/apps/server/bridges/environmental.ts | 2 +- apps/meteor/app/apps/server/bridges/experimental.ts | 2 +- apps/meteor/app/apps/server/bridges/http.ts | 4 ++-- apps/meteor/app/apps/server/bridges/internal.ts | 2 +- apps/meteor/app/apps/server/bridges/internalFederation.ts | 2 +- apps/meteor/app/apps/server/bridges/livechat.ts | 2 +- apps/meteor/app/apps/server/bridges/messages.ts | 4 ++-- apps/meteor/app/apps/server/bridges/moderation.ts | 2 +- apps/meteor/app/apps/server/bridges/oauthApps.ts | 2 +- .../meteor/app/apps/server/bridges/outboundCommunication.ts | 2 +- apps/meteor/app/apps/server/bridges/persistence.ts | 2 +- apps/meteor/app/apps/server/bridges/roles.ts | 2 +- apps/meteor/app/apps/server/bridges/rooms.ts | 4 ++-- apps/meteor/app/apps/server/bridges/scheduler.ts | 2 +- apps/meteor/app/apps/server/bridges/settings.ts | 2 +- apps/meteor/app/apps/server/bridges/thread.ts | 2 +- apps/meteor/app/apps/server/bridges/uiInteraction.ts | 2 +- apps/meteor/app/apps/server/bridges/uploads.ts | 2 +- apps/meteor/app/apps/server/bridges/users.ts | 2 +- apps/meteor/app/apps/server/bridges/videoConferences.ts | 2 +- apps/meteor/app/statistics/server/lib/getAppsStatistics.ts | 2 +- apps/meteor/ee/app/license/server/canEnableApp.ts | 2 +- apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts | 6 +++--- .../server/apps/communication/endpoints/appsCountHandler.ts | 2 +- apps/meteor/ee/server/apps/communication/rest.ts | 4 ++-- apps/meteor/ee/server/apps/cron.ts | 2 +- apps/meteor/ee/server/apps/orchestrator.js | 2 +- .../ee/server/apps/storage/AppFileSystemSourceStorage.ts | 4 ++-- .../meteor/ee/server/apps/storage/AppGridFSSourceStorage.ts | 4 ++-- apps/meteor/ee/server/apps/storage/AppRealLogStorage.ts | 6 +++--- apps/meteor/ee/server/apps/storage/AppRealStorage.ts | 6 +++--- .../ee/server/apps/storage/ConfigurableAppSourceStorage.ts | 4 ++-- .../meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts | 2 +- .../lib/apps/getInstallationSourceFromAppStorageItem.ts | 2 +- apps/meteor/server/services/apps-engine/service.ts | 4 ++-- apps/meteor/server/services/video-conference/service.ts | 2 +- apps/meteor/server/startup/migrations/v294.ts | 4 ++-- apps/meteor/server/startup/migrations/v307.ts | 4 ++-- apps/meteor/tests/end-to-end/apps/app-logs-export.ts | 2 +- .../tests/end-to-end/apps/app-logs-nested-requests.ts | 2 +- apps/meteor/tests/end-to-end/apps/app-logs.ts | 2 +- .../tests/unit/app/license/server/canEnableApp.spec.ts | 4 ++-- 50 files changed, 69 insertions(+), 69 deletions(-) diff --git a/apps/meteor/app/apps/server/bridges/activation.ts b/apps/meteor/app/apps/server/bridges/activation.ts index 399dfd285e65e..e33626ea967ce 100644 --- a/apps/meteor/app/apps/server/bridges/activation.ts +++ b/apps/meteor/app/apps/server/bridges/activation.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator, AppStatus } from '@rocket.chat/apps'; -import type { ProxiedApp } from '@rocket.chat/apps-engine/server/ProxiedApp'; -import { AppActivationBridge as ActivationBridge } from '@rocket.chat/apps-engine/server/bridges/AppActivationBridge'; +import type { ProxiedApp } from '@rocket.chat/apps/server/ProxiedApp'; +import { AppActivationBridge as ActivationBridge } from '@rocket.chat/apps/server/bridges/AppActivationBridge'; import { UserStatus } from '@rocket.chat/core-typings'; import { Users } from '@rocket.chat/models'; diff --git a/apps/meteor/app/apps/server/bridges/api.ts b/apps/meteor/app/apps/server/bridges/api.ts index f115897c82d82..c4cfc481e0795 100644 --- a/apps/meteor/app/apps/server/bridges/api.ts +++ b/apps/meteor/app/apps/server/bridges/api.ts @@ -1,8 +1,8 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { RequestMethod } from '@rocket.chat/apps-engine/definition/accessors'; import type { IApiRequest, IApiEndpoint, IApi } from '@rocket.chat/apps-engine/definition/api'; -import { ApiBridge } from '@rocket.chat/apps-engine/server/bridges/ApiBridge'; -import type { AppApi } from '@rocket.chat/apps-engine/server/managers/AppApi'; +import { ApiBridge } from '@rocket.chat/apps/server/bridges/ApiBridge'; +import type { AppApi } from '@rocket.chat/apps/server/managers/AppApi'; import type { Response, Request, IRouter, RequestHandler } from 'express'; import express from 'express'; import { Meteor } from 'meteor/meteor'; diff --git a/apps/meteor/app/apps/server/bridges/bridges.js b/apps/meteor/app/apps/server/bridges/bridges.js index 3b49cd91394e9..a62aae2436595 100644 --- a/apps/meteor/app/apps/server/bridges/bridges.js +++ b/apps/meteor/app/apps/server/bridges/bridges.js @@ -1,4 +1,4 @@ -import { AppBridges } from '@rocket.chat/apps-engine/server/bridges'; +import { AppBridges } from '@rocket.chat/apps/server/bridges'; import { AppActivationBridge } from './activation'; import { AppApisBridge } from './api'; diff --git a/apps/meteor/app/apps/server/bridges/cloud.ts b/apps/meteor/app/apps/server/bridges/cloud.ts index 0f908ccfe0a39..f762ee7b44fa6 100644 --- a/apps/meteor/app/apps/server/bridges/cloud.ts +++ b/apps/meteor/app/apps/server/bridges/cloud.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { IWorkspaceToken } from '@rocket.chat/apps-engine/definition/cloud/IWorkspaceToken'; -import { CloudWorkspaceBridge } from '@rocket.chat/apps-engine/server/bridges/CloudWorkspaceBridge'; +import { CloudWorkspaceBridge } from '@rocket.chat/apps/server/bridges/CloudWorkspaceBridge'; import { getWorkspaceAccessTokenWithScope } from '../../../cloud/server'; diff --git a/apps/meteor/app/apps/server/bridges/commands.ts b/apps/meteor/app/apps/server/bridges/commands.ts index 0f378a4a7abc4..7a1b522286ff3 100644 --- a/apps/meteor/app/apps/server/bridges/commands.ts +++ b/apps/meteor/app/apps/server/bridges/commands.ts @@ -1,7 +1,7 @@ import type { IAppServerOrchestrator, IAppsRoom, IAppsUser } from '@rocket.chat/apps'; import type { ISlashCommand, ISlashCommandPreview, ISlashCommandPreviewItem } from '@rocket.chat/apps-engine/definition/slashcommands'; import { SlashCommandContext } from '@rocket.chat/apps-engine/definition/slashcommands'; -import { CommandBridge } from '@rocket.chat/apps-engine/server/bridges/CommandBridge'; +import { CommandBridge } from '@rocket.chat/apps/server/bridges/CommandBridge'; import type { IMessage, RequiredField, SlashCommand, SlashCommandCallbackParams } from '@rocket.chat/core-typings'; import { Utilities } from '../../../../ee/lib/misc/Utilities'; diff --git a/apps/meteor/app/apps/server/bridges/contact.ts b/apps/meteor/app/apps/server/bridges/contact.ts index 802b0bb3ec16b..fab0976b716dd 100644 --- a/apps/meteor/app/apps/server/bridges/contact.ts +++ b/apps/meteor/app/apps/server/bridges/contact.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { ILivechatContact } from '@rocket.chat/apps-engine/definition/livechat'; -import { ContactBridge } from '@rocket.chat/apps-engine/server/bridges'; +import { ContactBridge } from '@rocket.chat/apps/server/bridges'; import { addContactEmail } from '../../../livechat/server/lib/contacts/addContactEmail'; import { verifyContactChannel } from '../../../livechat/server/lib/contacts/verifyContactChannel'; diff --git a/apps/meteor/app/apps/server/bridges/details.ts b/apps/meteor/app/apps/server/bridges/details.ts index 3930cdd451cc7..6da3433f58702 100644 --- a/apps/meteor/app/apps/server/bridges/details.ts +++ b/apps/meteor/app/apps/server/bridges/details.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; -import { AppDetailChangesBridge as DetailChangesBridge } from '@rocket.chat/apps-engine/server/bridges/AppDetailChangesBridge'; +import { AppDetailChangesBridge as DetailChangesBridge } from '@rocket.chat/apps/server/bridges/AppDetailChangesBridge'; export class AppDetailChangesBridge extends DetailChangesBridge { constructor(private readonly orch: IAppServerOrchestrator) { diff --git a/apps/meteor/app/apps/server/bridges/email.ts b/apps/meteor/app/apps/server/bridges/email.ts index 6d75a45044832..53d1db8f1a47c 100644 --- a/apps/meteor/app/apps/server/bridges/email.ts +++ b/apps/meteor/app/apps/server/bridges/email.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { IEmail } from '@rocket.chat/apps-engine/definition/email'; -import { EmailBridge } from '@rocket.chat/apps-engine/server/bridges'; +import { EmailBridge } from '@rocket.chat/apps/server/bridges'; import * as Mailer from '../../../mailer/server/api'; import { settings } from '../../../settings/server'; diff --git a/apps/meteor/app/apps/server/bridges/environmental.ts b/apps/meteor/app/apps/server/bridges/environmental.ts index 705a27186dee7..2b980948fbccb 100644 --- a/apps/meteor/app/apps/server/bridges/environmental.ts +++ b/apps/meteor/app/apps/server/bridges/environmental.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { EnvironmentalVariableBridge } from '@rocket.chat/apps-engine/server/bridges/EnvironmentalVariableBridge'; +import { EnvironmentalVariableBridge } from '@rocket.chat/apps/server/bridges/EnvironmentalVariableBridge'; export class AppEnvironmentalVariableBridge extends EnvironmentalVariableBridge { allowed: Array; diff --git a/apps/meteor/app/apps/server/bridges/experimental.ts b/apps/meteor/app/apps/server/bridges/experimental.ts index d505a54d5665d..05ccccdca5a03 100644 --- a/apps/meteor/app/apps/server/bridges/experimental.ts +++ b/apps/meteor/app/apps/server/bridges/experimental.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { ExperimentalBridge } from '@rocket.chat/apps-engine/server/bridges'; +import { ExperimentalBridge } from '@rocket.chat/apps/server/bridges'; export class AppExperimentalBridge extends ExperimentalBridge { constructor(protected readonly orch: IAppServerOrchestrator) { diff --git a/apps/meteor/app/apps/server/bridges/http.ts b/apps/meteor/app/apps/server/bridges/http.ts index cd297009c4afc..121730731d8e9 100644 --- a/apps/meteor/app/apps/server/bridges/http.ts +++ b/apps/meteor/app/apps/server/bridges/http.ts @@ -1,7 +1,7 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { IHttpResponse } from '@rocket.chat/apps-engine/definition/accessors'; -import type { IHttpBridgeRequestInfo } from '@rocket.chat/apps-engine/server/bridges'; -import { HttpBridge } from '@rocket.chat/apps-engine/server/bridges/HttpBridge'; +import type { IHttpBridgeRequestInfo } from '@rocket.chat/apps/server/bridges'; +import { HttpBridge } from '@rocket.chat/apps/server/bridges/HttpBridge'; import { serverFetch as fetch, type ExtendedFetchOptions } from '@rocket.chat/server-fetch'; import { censorUrl } from '@rocket.chat/tools'; diff --git a/apps/meteor/app/apps/server/bridges/internal.ts b/apps/meteor/app/apps/server/bridges/internal.ts index 22e44a2bb2d0b..223f5af55ab8f 100644 --- a/apps/meteor/app/apps/server/bridges/internal.ts +++ b/apps/meteor/app/apps/server/bridges/internal.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator, IAppsSetting } from '@rocket.chat/apps'; -import { InternalBridge } from '@rocket.chat/apps-engine/server/bridges/InternalBridge'; +import { InternalBridge } from '@rocket.chat/apps/server/bridges/InternalBridge'; import type { ISetting, ISubscription } from '@rocket.chat/core-typings'; import { Settings, Subscriptions } from '@rocket.chat/models'; import { isTruthy } from '@rocket.chat/tools'; diff --git a/apps/meteor/app/apps/server/bridges/internalFederation.ts b/apps/meteor/app/apps/server/bridges/internalFederation.ts index 9bf3b34439ce5..008e55cd672f0 100644 --- a/apps/meteor/app/apps/server/bridges/internalFederation.ts +++ b/apps/meteor/app/apps/server/bridges/internalFederation.ts @@ -1,4 +1,4 @@ -import type { IInternalFederationBridge } from '@rocket.chat/apps-engine/server/bridges/IInternalFederationBridge'; +import type { IInternalFederationBridge } from '@rocket.chat/apps/server/bridges/IInternalFederationBridge'; import { FederationKeys } from '@rocket.chat/models'; export class AppInternalFederationBridge implements IInternalFederationBridge { diff --git a/apps/meteor/app/apps/server/bridges/livechat.ts b/apps/meteor/app/apps/server/bridges/livechat.ts index c73bbda1d3580..9e72a7e8232ab 100644 --- a/apps/meteor/app/apps/server/bridges/livechat.ts +++ b/apps/meteor/app/apps/server/bridges/livechat.ts @@ -10,7 +10,7 @@ import type { } from '@rocket.chat/apps-engine/definition/livechat'; import type { IMessage as IAppsEngineMessage } from '@rocket.chat/apps-engine/definition/messages'; import type { IUser } from '@rocket.chat/apps-engine/definition/users'; -import { LivechatBridge } from '@rocket.chat/apps-engine/server/bridges/LivechatBridge'; +import { LivechatBridge } from '@rocket.chat/apps/server/bridges/LivechatBridge'; import type { ILivechatDepartment, IOmnichannelRoom, SelectedAgent, IMessage, ILivechatVisitor } from '@rocket.chat/core-typings'; import { OmnichannelSourceType } from '@rocket.chat/core-typings'; import { LivechatVisitors, LivechatRooms, LivechatDepartment, Users } from '@rocket.chat/models'; diff --git a/apps/meteor/app/apps/server/bridges/messages.ts b/apps/meteor/app/apps/server/bridges/messages.ts index 16366626c07c8..40b9526b401ac 100644 --- a/apps/meteor/app/apps/server/bridges/messages.ts +++ b/apps/meteor/app/apps/server/bridges/messages.ts @@ -1,8 +1,8 @@ import type { IAppServerOrchestrator, IAppsMessage, IAppsUser } from '@rocket.chat/apps'; import type { Reaction } from '@rocket.chat/apps-engine/definition/messages'; import type { IRoom } from '@rocket.chat/apps-engine/definition/rooms'; -import type { ITypingDescriptor } from '@rocket.chat/apps-engine/server/bridges/MessageBridge'; -import { MessageBridge } from '@rocket.chat/apps-engine/server/bridges/MessageBridge'; +import type { ITypingDescriptor } from '@rocket.chat/apps/server/bridges/MessageBridge'; +import { MessageBridge } from '@rocket.chat/apps/server/bridges/MessageBridge'; import { api } from '@rocket.chat/core-services'; import type { IMessage } from '@rocket.chat/core-typings'; import { Users, Subscriptions } from '@rocket.chat/models'; diff --git a/apps/meteor/app/apps/server/bridges/moderation.ts b/apps/meteor/app/apps/server/bridges/moderation.ts index 0f1e56bbdec35..c8158d322ccfc 100644 --- a/apps/meteor/app/apps/server/bridges/moderation.ts +++ b/apps/meteor/app/apps/server/bridges/moderation.ts @@ -1,7 +1,7 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { IMessage } from '@rocket.chat/apps-engine/definition/messages'; import type { IUser } from '@rocket.chat/apps-engine/definition/users'; -import { ModerationBridge } from '@rocket.chat/apps-engine/server/bridges/ModerationBridge'; +import { ModerationBridge } from '@rocket.chat/apps/server/bridges/ModerationBridge'; import { ModerationReports } from '@rocket.chat/models'; import { reportMessage } from '../../../../server/lib/moderation/reportMessage'; diff --git a/apps/meteor/app/apps/server/bridges/oauthApps.ts b/apps/meteor/app/apps/server/bridges/oauthApps.ts index bfd72917a367c..9461d8acb1510 100644 --- a/apps/meteor/app/apps/server/bridges/oauthApps.ts +++ b/apps/meteor/app/apps/server/bridges/oauthApps.ts @@ -2,7 +2,7 @@ import { randomUUID } from 'crypto'; import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { IOAuthApp, IOAuthAppParams } from '@rocket.chat/apps-engine/definition/accessors/IOAuthApp'; -import { OAuthAppsBridge } from '@rocket.chat/apps-engine/server/bridges/OAuthAppsBridge'; +import { OAuthAppsBridge } from '@rocket.chat/apps/server/bridges/OAuthAppsBridge'; import type { IOAuthApps } from '@rocket.chat/core-typings'; import { OAuthApps, Users } from '@rocket.chat/models'; import { Random } from '@rocket.chat/random'; diff --git a/apps/meteor/app/apps/server/bridges/outboundCommunication.ts b/apps/meteor/app/apps/server/bridges/outboundCommunication.ts index 146ae18b38ead..7d973e1b53cd9 100644 --- a/apps/meteor/app/apps/server/bridges/outboundCommunication.ts +++ b/apps/meteor/app/apps/server/bridges/outboundCommunication.ts @@ -4,7 +4,7 @@ import type { IOutboundMessageProviders, IOutboundPhoneMessageProvider, } from '@rocket.chat/apps-engine/definition/outboundCommunication'; -import { OutboundMessageBridge } from '@rocket.chat/apps-engine/server/bridges'; +import { OutboundMessageBridge } from '@rocket.chat/apps/server/bridges'; import { getOutboundService } from '../../../livechat/server/lib/outboundcommunication'; diff --git a/apps/meteor/app/apps/server/bridges/persistence.ts b/apps/meteor/app/apps/server/bridges/persistence.ts index e1dedd270ac6e..cb3ba23e5d606 100644 --- a/apps/meteor/app/apps/server/bridges/persistence.ts +++ b/apps/meteor/app/apps/server/bridges/persistence.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { RocketChatAssociationRecord } from '@rocket.chat/apps-engine/definition/metadata'; -import { PersistenceBridge } from '@rocket.chat/apps-engine/server/bridges/PersistenceBridge'; +import { PersistenceBridge } from '@rocket.chat/apps/server/bridges/PersistenceBridge'; import type { InsertOneResult } from 'mongodb'; export class AppPersistenceBridge extends PersistenceBridge { diff --git a/apps/meteor/app/apps/server/bridges/roles.ts b/apps/meteor/app/apps/server/bridges/roles.ts index aa0fcdc7b80b7..f0d5b5381c09e 100644 --- a/apps/meteor/app/apps/server/bridges/roles.ts +++ b/apps/meteor/app/apps/server/bridges/roles.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator, IAppsRole } from '@rocket.chat/apps'; -import { RoleBridge } from '@rocket.chat/apps-engine/server/bridges'; +import { RoleBridge } from '@rocket.chat/apps/server/bridges'; import type { IRole } from '@rocket.chat/core-typings'; import { Roles } from '@rocket.chat/models'; diff --git a/apps/meteor/app/apps/server/bridges/rooms.ts b/apps/meteor/app/apps/server/bridges/rooms.ts index 473614edfe25c..1f68497347ee1 100644 --- a/apps/meteor/app/apps/server/bridges/rooms.ts +++ b/apps/meteor/app/apps/server/bridges/rooms.ts @@ -3,8 +3,8 @@ import type { IMessage, IMessageRaw } from '@rocket.chat/apps-engine/definition/ import type { IRoom, IRoomRaw } from '@rocket.chat/apps-engine/definition/rooms'; import { RoomType } from '@rocket.chat/apps-engine/definition/rooms'; import type { IUser } from '@rocket.chat/apps-engine/definition/users'; -import type { GetMessagesOptions, GetRoomsFilters, GetRoomsOptions } from '@rocket.chat/apps-engine/server/bridges/RoomBridge'; -import { RoomBridge } from '@rocket.chat/apps-engine/server/bridges/RoomBridge'; +import type { GetMessagesOptions, GetRoomsFilters, GetRoomsOptions } from '@rocket.chat/apps/server/bridges/RoomBridge'; +import { RoomBridge } from '@rocket.chat/apps/server/bridges/RoomBridge'; import type { ISubscription, IUser as ICoreUser, IRoom as ICoreRoom, IMessage as ICoreMessage } from '@rocket.chat/core-typings'; import { Subscriptions, Users, Rooms, Messages } from '@rocket.chat/models'; import type { FindOptions, Sort } from 'mongodb'; diff --git a/apps/meteor/app/apps/server/bridges/scheduler.ts b/apps/meteor/app/apps/server/bridges/scheduler.ts index b08d49182c9bc..0b909457b5d22 100644 --- a/apps/meteor/app/apps/server/bridges/scheduler.ts +++ b/apps/meteor/app/apps/server/bridges/scheduler.ts @@ -3,7 +3,7 @@ import { Agenda } from '@rocket.chat/agenda'; import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { IProcessor, IOnetimeSchedule, IRecurringSchedule, IJobContext } from '@rocket.chat/apps-engine/definition/scheduler'; import { StartupType } from '@rocket.chat/apps-engine/definition/scheduler'; -import { SchedulerBridge } from '@rocket.chat/apps-engine/server/bridges/SchedulerBridge'; +import { SchedulerBridge } from '@rocket.chat/apps/server/bridges/SchedulerBridge'; import { ObjectId } from 'bson'; import { MongoInternals } from 'meteor/mongo'; diff --git a/apps/meteor/app/apps/server/bridges/settings.ts b/apps/meteor/app/apps/server/bridges/settings.ts index 7c569a3f12fd7..5707db884e7a7 100644 --- a/apps/meteor/app/apps/server/bridges/settings.ts +++ b/apps/meteor/app/apps/server/bridges/settings.ts @@ -1,7 +1,7 @@ import { Apps, type IAppServerOrchestrator } from '@rocket.chat/apps'; import type { IReadSettingPermission } from '@rocket.chat/apps-engine/definition/permissions/IPermission'; import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; -import { ServerSettingBridge } from '@rocket.chat/apps-engine/server/bridges/ServerSettingBridge'; +import { ServerSettingBridge } from '@rocket.chat/apps/server/bridges/ServerSettingBridge'; import { Settings } from '@rocket.chat/models'; import { updateAuditedByApp } from '../../../../server/settings/lib/auditedSettingUpdates'; diff --git a/apps/meteor/app/apps/server/bridges/thread.ts b/apps/meteor/app/apps/server/bridges/thread.ts index 099fe9184e004..b379394468ba8 100644 --- a/apps/meteor/app/apps/server/bridges/thread.ts +++ b/apps/meteor/app/apps/server/bridges/thread.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { IMessage } from '@rocket.chat/apps-engine/definition/messages'; -import { ThreadBridge } from '@rocket.chat/apps-engine/server/bridges/ThreadBridge'; +import { ThreadBridge } from '@rocket.chat/apps/server/bridges/ThreadBridge'; export class AppThreadBridge extends ThreadBridge { constructor(private readonly orch: IAppServerOrchestrator) { diff --git a/apps/meteor/app/apps/server/bridges/uiInteraction.ts b/apps/meteor/app/apps/server/bridges/uiInteraction.ts index fc68e4e30d3ff..bf22a9bc0f331 100644 --- a/apps/meteor/app/apps/server/bridges/uiInteraction.ts +++ b/apps/meteor/app/apps/server/bridges/uiInteraction.ts @@ -1,7 +1,7 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { IUIKitInteraction } from '@rocket.chat/apps-engine/definition/uikit'; import type { IUser } from '@rocket.chat/apps-engine/definition/users'; -import { UiInteractionBridge as AppsEngineUiInteractionBridge } from '@rocket.chat/apps-engine/server/bridges/UiInteractionBridge'; +import { UiInteractionBridge as AppsEngineUiInteractionBridge } from '@rocket.chat/apps/server/bridges/UiInteractionBridge'; import { api } from '@rocket.chat/core-services'; import type * as UiKit from '@rocket.chat/ui-kit'; diff --git a/apps/meteor/app/apps/server/bridges/uploads.ts b/apps/meteor/app/apps/server/bridges/uploads.ts index b9d0ff67de58e..74fbd99096582 100644 --- a/apps/meteor/app/apps/server/bridges/uploads.ts +++ b/apps/meteor/app/apps/server/bridges/uploads.ts @@ -1,7 +1,7 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { IUpload } from '@rocket.chat/apps-engine/definition/uploads'; import type { IUploadDetails } from '@rocket.chat/apps-engine/definition/uploads/IUploadDetails'; -import { UploadBridge } from '@rocket.chat/apps-engine/server/bridges/UploadBridge'; +import { UploadBridge } from '@rocket.chat/apps/server/bridges/UploadBridge'; import { determineFileType } from '../../../../ee/lib/misc/determineFileType'; import { FileUpload } from '../../../file-upload/server'; diff --git a/apps/meteor/app/apps/server/bridges/users.ts b/apps/meteor/app/apps/server/bridges/users.ts index 43cd7f9ea89e1..4735dcd6462d2 100644 --- a/apps/meteor/app/apps/server/bridges/users.ts +++ b/apps/meteor/app/apps/server/bridges/users.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { IUserCreationOptions, IUser, UserType } from '@rocket.chat/apps-engine/definition/users'; -import { UserBridge } from '@rocket.chat/apps-engine/server/bridges/UserBridge'; +import { UserBridge } from '@rocket.chat/apps/server/bridges/UserBridge'; import { Presence } from '@rocket.chat/core-services'; import type { UserStatus } from '@rocket.chat/core-typings'; import { Subscriptions, Users } from '@rocket.chat/models'; diff --git a/apps/meteor/app/apps/server/bridges/videoConferences.ts b/apps/meteor/app/apps/server/bridges/videoConferences.ts index 8986c15a3c6dd..36f6ce4a8e6b2 100644 --- a/apps/meteor/app/apps/server/bridges/videoConferences.ts +++ b/apps/meteor/app/apps/server/bridges/videoConferences.ts @@ -1,7 +1,7 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; import type { IVideoConfProvider } from '@rocket.chat/apps-engine/definition/videoConfProviders'; import type { AppVideoConference, VideoConference } from '@rocket.chat/apps-engine/definition/videoConferences'; -import { VideoConferenceBridge } from '@rocket.chat/apps-engine/server/bridges/VideoConferenceBridge'; +import { VideoConferenceBridge } from '@rocket.chat/apps/server/bridges/VideoConferenceBridge'; import { VideoConf } from '@rocket.chat/core-services'; import { videoConfProviders } from '../../../../server/lib/videoConfProviders'; diff --git a/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts b/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts index 90e05d1923563..def9e15511b61 100644 --- a/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts +++ b/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts @@ -1,6 +1,6 @@ import { Apps } from '@rocket.chat/apps'; import { AppStatus, AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus'; -import { AppInstallationSource } from '@rocket.chat/apps-engine/server/storage'; +import { AppInstallationSource } from '@rocket.chat/apps/server/storage'; import mem from 'mem'; import { SystemLogger } from '../../../../server/lib/logger/system'; diff --git a/apps/meteor/ee/app/license/server/canEnableApp.ts b/apps/meteor/ee/app/license/server/canEnableApp.ts index c18ad9efb6619..647168c15d6a8 100644 --- a/apps/meteor/ee/app/license/server/canEnableApp.ts +++ b/apps/meteor/ee/app/license/server/canEnableApp.ts @@ -1,4 +1,4 @@ -import type { IAppStorageItem } from '@rocket.chat/apps-engine/server/storage'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; import { Apps } from '@rocket.chat/core-services'; import type { LicenseModule } from '@rocket.chat/core-typings'; import { License, type LicenseImp } from '@rocket.chat/license'; diff --git a/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts b/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts index 7819404525d5f..f34391c528055 100644 --- a/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts +++ b/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts @@ -1,8 +1,8 @@ import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; -import type { ProxiedApp } from '@rocket.chat/apps-engine/server/ProxiedApp'; -import type { AppLicenseValidationResult } from '@rocket.chat/apps-engine/server/marketplace/license'; -import type { IAppStorageItem } from '@rocket.chat/apps-engine/server/storage'; +import type { ProxiedApp } from '@rocket.chat/apps/server/ProxiedApp'; +import type { AppLicenseValidationResult } from '@rocket.chat/apps/server/marketplace/license'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; import type { AppStatusReport } from '@rocket.chat/core-services'; import type { App } from '@rocket.chat/core-typings'; diff --git a/apps/meteor/ee/server/apps/communication/endpoints/appsCountHandler.ts b/apps/meteor/ee/server/apps/communication/endpoints/appsCountHandler.ts index 402ceb709a16a..ad10d68e43e2f 100644 --- a/apps/meteor/ee/server/apps/communication/endpoints/appsCountHandler.ts +++ b/apps/meteor/ee/server/apps/communication/endpoints/appsCountHandler.ts @@ -1,4 +1,4 @@ -import type { AppManager } from '@rocket.chat/apps-engine/server/AppManager'; +import type { AppManager } from '@rocket.chat/apps/server/AppManager'; import { License } from '@rocket.chat/license'; import { API } from '../../../../../app/api/server'; diff --git a/apps/meteor/ee/server/apps/communication/rest.ts b/apps/meteor/ee/server/apps/communication/rest.ts index 62af65d40987f..add85f1c642ee 100644 --- a/apps/meteor/ee/server/apps/communication/rest.ts +++ b/apps/meteor/ee/server/apps/communication/rest.ts @@ -1,7 +1,7 @@ import { AppStatus, AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; -import type { AppManager } from '@rocket.chat/apps-engine/server/AppManager'; -import type { IMarketplaceInfo } from '@rocket.chat/apps-engine/server/marketplace'; +import type { AppManager } from '@rocket.chat/apps/server/AppManager'; +import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace'; import type { AppStatusReport } from '@rocket.chat/core-services'; import type { IMessage, IUser } from '@rocket.chat/core-typings'; import { License } from '@rocket.chat/license'; diff --git a/apps/meteor/ee/server/apps/cron.ts b/apps/meteor/ee/server/apps/cron.ts index d5e7111972821..1cd937d805ea5 100644 --- a/apps/meteor/ee/server/apps/cron.ts +++ b/apps/meteor/ee/server/apps/cron.ts @@ -1,5 +1,5 @@ import { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; -import type { ProxiedApp } from '@rocket.chat/apps-engine/server/ProxiedApp'; +import type { ProxiedApp } from '@rocket.chat/apps/server/ProxiedApp'; import { cronJobs } from '@rocket.chat/cron'; import { Settings, Users } from '@rocket.chat/models'; diff --git a/apps/meteor/ee/server/apps/orchestrator.js b/apps/meteor/ee/server/apps/orchestrator.js index 919f695bedc6d..047af450f7668 100644 --- a/apps/meteor/ee/server/apps/orchestrator.js +++ b/apps/meteor/ee/server/apps/orchestrator.js @@ -4,7 +4,7 @@ import * as path from 'path'; import { registerOrchestrator } from '@rocket.chat/apps'; import { EssentialAppDisabledException } from '@rocket.chat/apps-engine/definition/exceptions'; -import { AppManager } from '@rocket.chat/apps-engine/server/AppManager'; +import { AppManager } from '@rocket.chat/apps/server/AppManager'; import { Logger } from '@rocket.chat/logger'; import { AppLogs, Apps as AppsModel, AppsPersistence, Statistics } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; diff --git a/apps/meteor/ee/server/apps/storage/AppFileSystemSourceStorage.ts b/apps/meteor/ee/server/apps/storage/AppFileSystemSourceStorage.ts index 54e83a11df5d5..31c34a6d09bed 100644 --- a/apps/meteor/ee/server/apps/storage/AppFileSystemSourceStorage.ts +++ b/apps/meteor/ee/server/apps/storage/AppFileSystemSourceStorage.ts @@ -1,8 +1,8 @@ import { promises as fs } from 'fs'; import { join, normalize } from 'path'; -import type { IAppStorageItem } from '@rocket.chat/apps-engine/server/storage'; -import { AppSourceStorage } from '@rocket.chat/apps-engine/server/storage'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import { AppSourceStorage } from '@rocket.chat/apps/server/storage'; export class AppFileSystemSourceStorage extends AppSourceStorage { private pathPrefix = 'fs:/'; diff --git a/apps/meteor/ee/server/apps/storage/AppGridFSSourceStorage.ts b/apps/meteor/ee/server/apps/storage/AppGridFSSourceStorage.ts index 2fd4232ee6d35..d9561c45ed7db 100644 --- a/apps/meteor/ee/server/apps/storage/AppGridFSSourceStorage.ts +++ b/apps/meteor/ee/server/apps/storage/AppGridFSSourceStorage.ts @@ -1,5 +1,5 @@ -import type { IAppStorageItem } from '@rocket.chat/apps-engine/server/storage'; -import { AppSourceStorage } from '@rocket.chat/apps-engine/server/storage'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import { AppSourceStorage } from '@rocket.chat/apps/server/storage'; import { streamToBuffer } from '@rocket.chat/tools'; import { MongoInternals } from 'meteor/mongo'; import { NpmModuleMongodb } from 'meteor/npm-mongo'; diff --git a/apps/meteor/ee/server/apps/storage/AppRealLogStorage.ts b/apps/meteor/ee/server/apps/storage/AppRealLogStorage.ts index e86bafe7afe88..0bdb8f38e4aeb 100644 --- a/apps/meteor/ee/server/apps/storage/AppRealLogStorage.ts +++ b/apps/meteor/ee/server/apps/storage/AppRealLogStorage.ts @@ -1,6 +1,6 @@ -import type { ILoggerStorageEntry } from '@rocket.chat/apps-engine/server/logging'; -import type { IAppLogStorageFindOptions } from '@rocket.chat/apps-engine/server/storage'; -import { AppLogStorage } from '@rocket.chat/apps-engine/server/storage'; +import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging'; +import type { IAppLogStorageFindOptions } from '@rocket.chat/apps/server/storage'; +import { AppLogStorage } from '@rocket.chat/apps/server/storage'; import { InstanceStatus } from '@rocket.chat/instance-status'; import type { AppLogs } from '@rocket.chat/models'; diff --git a/apps/meteor/ee/server/apps/storage/AppRealStorage.ts b/apps/meteor/ee/server/apps/storage/AppRealStorage.ts index db96013af0c76..09f92b3328805 100644 --- a/apps/meteor/ee/server/apps/storage/AppRealStorage.ts +++ b/apps/meteor/ee/server/apps/storage/AppRealStorage.ts @@ -1,9 +1,9 @@ import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; -import type { IMarketplaceInfo } from '@rocket.chat/apps-engine/server/marketplace'; -import type { IAppStorageItem } from '@rocket.chat/apps-engine/server/storage'; -import { AppMetadataStorage } from '@rocket.chat/apps-engine/server/storage'; +import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import { AppMetadataStorage } from '@rocket.chat/apps/server/storage'; import type { Apps } from '@rocket.chat/models'; import { removeEmpty } from '@rocket.chat/tools'; import type { UpdateFilter } from 'mongodb'; diff --git a/apps/meteor/ee/server/apps/storage/ConfigurableAppSourceStorage.ts b/apps/meteor/ee/server/apps/storage/ConfigurableAppSourceStorage.ts index ee70cd38b409f..d201dc2d76bb2 100644 --- a/apps/meteor/ee/server/apps/storage/ConfigurableAppSourceStorage.ts +++ b/apps/meteor/ee/server/apps/storage/ConfigurableAppSourceStorage.ts @@ -1,5 +1,5 @@ -import type { IAppStorageItem } from '@rocket.chat/apps-engine/server/storage'; -import { AppSourceStorage } from '@rocket.chat/apps-engine/server/storage'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import { AppSourceStorage } from '@rocket.chat/apps/server/storage'; import { AppFileSystemSourceStorage } from './AppFileSystemSourceStorage'; import { AppGridFSSourceStorage } from './AppGridFSSourceStorage'; diff --git a/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts b/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts index 3ea794fd06614..c90331956d90f 100644 --- a/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts +++ b/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts @@ -1,7 +1,7 @@ import { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import { AppInterface } from '@rocket.chat/apps-engine/definition/metadata'; import { SettingType } from '@rocket.chat/apps-engine/definition/settings'; -import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps-engine/server/storage'; +import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps/server/storage'; import { expect } from 'chai'; import sinon from 'sinon'; diff --git a/apps/meteor/lib/apps/getInstallationSourceFromAppStorageItem.ts b/apps/meteor/lib/apps/getInstallationSourceFromAppStorageItem.ts index d8fd5a48f79f3..ec346e7ddd22d 100644 --- a/apps/meteor/lib/apps/getInstallationSourceFromAppStorageItem.ts +++ b/apps/meteor/lib/apps/getInstallationSourceFromAppStorageItem.ts @@ -1,4 +1,4 @@ -import type { IAppStorageItem } from '@rocket.chat/apps-engine/server/storage'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; import type { LicenseAppSources } from '@rocket.chat/core-typings'; /** diff --git a/apps/meteor/server/services/apps-engine/service.ts b/apps/meteor/server/services/apps-engine/service.ts index 0be60a579908d..ab535fad01b8e 100644 --- a/apps/meteor/server/services/apps-engine/service.ts +++ b/apps/meteor/server/services/apps-engine/service.ts @@ -2,8 +2,8 @@ import { Apps, AppEvents } from '@rocket.chat/apps'; import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import { AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; -import type { IGetAppsFilter } from '@rocket.chat/apps-engine/server/IGetAppsFilter'; -import type { IAppStorageItem } from '@rocket.chat/apps-engine/server/storage'; +import type { IGetAppsFilter } from '@rocket.chat/apps/server/IGetAppsFilter'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; import type { AppStatusReport, IAppsEngineService } from '@rocket.chat/core-services'; import { ServiceClassInternal } from '@rocket.chat/core-services'; diff --git a/apps/meteor/server/services/video-conference/service.ts b/apps/meteor/server/services/video-conference/service.ts index 3c33979fdd3a0..b98f7f7064863 100644 --- a/apps/meteor/server/services/video-conference/service.ts +++ b/apps/meteor/server/services/video-conference/service.ts @@ -1,6 +1,6 @@ import { Apps } from '@rocket.chat/apps'; import type { VideoConfData, VideoConfDataExtended } from '@rocket.chat/apps-engine/definition/videoConfProviders'; -import type { AppVideoConfProviderManager } from '@rocket.chat/apps-engine/server/managers'; +import type { AppVideoConfProviderManager } from '@rocket.chat/apps/server/managers'; import type { IVideoConfService, VideoConferenceJoinOptions } from '@rocket.chat/core-services'; import { api, ServiceClassInternal, Room } from '@rocket.chat/core-services'; import type { diff --git a/apps/meteor/server/startup/migrations/v294.ts b/apps/meteor/server/startup/migrations/v294.ts index 07f6dc2acc1fe..f31cd6a1d6bc1 100644 --- a/apps/meteor/server/startup/migrations/v294.ts +++ b/apps/meteor/server/startup/migrations/v294.ts @@ -1,6 +1,6 @@ import { Apps } from '@rocket.chat/apps'; -import type { AppSignatureManager } from '@rocket.chat/apps-engine/server/managers/AppSignatureManager'; -import type { IAppStorageItem } from '@rocket.chat/apps-engine/server/storage'; +import type { AppSignatureManager } from '@rocket.chat/apps/server/managers/AppSignatureManager'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; import type { AppRealStorage } from '../../../ee/server/apps/storage'; import { addMigration } from '../../lib/migrations'; diff --git a/apps/meteor/server/startup/migrations/v307.ts b/apps/meteor/server/startup/migrations/v307.ts index d16d16220edc8..3be8a80f0bca6 100644 --- a/apps/meteor/server/startup/migrations/v307.ts +++ b/apps/meteor/server/startup/migrations/v307.ts @@ -1,6 +1,6 @@ import { Apps } from '@rocket.chat/apps'; -import type { AppSignatureManager } from '@rocket.chat/apps-engine/server/managers/AppSignatureManager'; -import type { IAppStorageItem } from '@rocket.chat/apps-engine/server/storage'; +import type { AppSignatureManager } from '@rocket.chat/apps/server/managers/AppSignatureManager'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; import { License } from '@rocket.chat/license'; import type { AppRealStorage } from '../../../ee/server/apps/storage'; diff --git a/apps/meteor/tests/end-to-end/apps/app-logs-export.ts b/apps/meteor/tests/end-to-end/apps/app-logs-export.ts index 0d8b1fc088a44..30422bffa7bf3 100644 --- a/apps/meteor/tests/end-to-end/apps/app-logs-export.ts +++ b/apps/meteor/tests/end-to-end/apps/app-logs-export.ts @@ -1,4 +1,4 @@ -import type { ILoggerStorageEntry } from '@rocket.chat/apps-engine/server/logging'; +import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging'; import type { App } from '@rocket.chat/core-typings'; import { expect } from 'chai'; import { after, before, describe, it } from 'mocha'; diff --git a/apps/meteor/tests/end-to-end/apps/app-logs-nested-requests.ts b/apps/meteor/tests/end-to-end/apps/app-logs-nested-requests.ts index 76080fe704c72..302ec44961139 100644 --- a/apps/meteor/tests/end-to-end/apps/app-logs-nested-requests.ts +++ b/apps/meteor/tests/end-to-end/apps/app-logs-nested-requests.ts @@ -1,4 +1,4 @@ -import type { ILoggerStorageEntry } from '@rocket.chat/apps-engine/server/logging'; +import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging'; import { expect } from 'chai'; import { after, before, describe, it } from 'mocha'; diff --git a/apps/meteor/tests/end-to-end/apps/app-logs.ts b/apps/meteor/tests/end-to-end/apps/app-logs.ts index da12c1bc77988..de990875ef905 100644 --- a/apps/meteor/tests/end-to-end/apps/app-logs.ts +++ b/apps/meteor/tests/end-to-end/apps/app-logs.ts @@ -1,4 +1,4 @@ -import type { ILoggerStorageEntry } from '@rocket.chat/apps-engine/server/logging'; +import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging'; import type { App } from '@rocket.chat/core-typings'; import { expect } from 'chai'; import { after, before, describe, it } from 'mocha'; diff --git a/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts b/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts index 0cb68734fb462..c2548d1add1af 100644 --- a/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts +++ b/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts @@ -1,6 +1,6 @@ import { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; -import type { IMarketplaceInfo } from '@rocket.chat/apps-engine/server/marketplace'; -import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps-engine/server/storage'; +import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace'; +import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps/server/storage'; import type { Apps } from '@rocket.chat/core-services'; import type { LicenseImp } from '@rocket.chat/license'; import { expect } from 'chai'; From 8f3e4f5a00c13cbbc75bf07adba79ec6353193a4 Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Thu, 16 Apr 2026 13:29:28 -0300 Subject: [PATCH 03/25] refactor(meteor): migrate apps-engine/client/ imports to @rocket.chat/apps/client/ Hard-cut all import paths from `@rocket.chat/apps-engine/client/*` to `@rocket.chat/apps/client/*` across apps/meteor (5 files). Co-Authored-By: Claude Sonnet 4.6 --- apps/meteor/client/apps/RealAppsEngineUIHost.ts | 4 ++-- apps/meteor/client/apps/orchestrator.ts | 4 ++-- apps/meteor/client/contexts/AppsContext.tsx | 2 +- apps/meteor/tests/mocks/client/marketplace.tsx | 6 +++--- apps/meteor/tests/mocks/data.ts | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/meteor/client/apps/RealAppsEngineUIHost.ts b/apps/meteor/client/apps/RealAppsEngineUIHost.ts index c6a746f6bb7a8..61e7ce516aab6 100644 --- a/apps/meteor/client/apps/RealAppsEngineUIHost.ts +++ b/apps/meteor/client/apps/RealAppsEngineUIHost.ts @@ -1,5 +1,5 @@ -import { AppsEngineUIHost } from '@rocket.chat/apps-engine/client/AppsEngineUIHost'; -import type { IExternalComponentRoomInfo, IExternalComponentUserInfo } from '@rocket.chat/apps-engine/client/definition'; +import { AppsEngineUIHost } from '@rocket.chat/apps/client/AppsEngineUIHost'; +import type { IExternalComponentRoomInfo, IExternalComponentUserInfo } from '@rocket.chat/apps/client/definition'; import { getUserAvatarURL } from '../../app/utils/client/getUserAvatarURL'; import { sdk } from '../../app/utils/client/lib/SDKClient'; diff --git a/apps/meteor/client/apps/orchestrator.ts b/apps/meteor/client/apps/orchestrator.ts index d08641da34d22..82529f6938000 100644 --- a/apps/meteor/client/apps/orchestrator.ts +++ b/apps/meteor/client/apps/orchestrator.ts @@ -1,5 +1,5 @@ -import { AppClientManager } from '@rocket.chat/apps-engine/client/AppClientManager'; -import type { AppsEngineUIHost } from '@rocket.chat/apps-engine/client/AppsEngineUIHost'; +import { AppClientManager } from '@rocket.chat/apps/client/AppClientManager'; +import type { AppsEngineUIHost } from '@rocket.chat/apps/client/AppsEngineUIHost'; import type { IPermission } from '@rocket.chat/apps-engine/definition/permissions/IPermission'; import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; import type { Serialized } from '@rocket.chat/core-typings'; diff --git a/apps/meteor/client/contexts/AppsContext.tsx b/apps/meteor/client/contexts/AppsContext.tsx index 39929c20aed08..8361b80bdfe27 100644 --- a/apps/meteor/client/contexts/AppsContext.tsx +++ b/apps/meteor/client/contexts/AppsContext.tsx @@ -1,4 +1,4 @@ -import type { AppClientManager } from '@rocket.chat/apps-engine/client/AppClientManager'; +import type { AppClientManager } from '@rocket.chat/apps/client/AppClientManager'; import type { IPermission } from '@rocket.chat/apps-engine/definition/permissions/IPermission'; import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; import type { Serialized } from '@rocket.chat/core-typings'; diff --git a/apps/meteor/tests/mocks/client/marketplace.tsx b/apps/meteor/tests/mocks/client/marketplace.tsx index 52f1acae2c584..5c26331333a25 100644 --- a/apps/meteor/tests/mocks/client/marketplace.tsx +++ b/apps/meteor/tests/mocks/client/marketplace.tsx @@ -1,6 +1,6 @@ -import { AppClientManager } from '@rocket.chat/apps-engine/client/AppClientManager'; -import { AppsEngineUIHost } from '@rocket.chat/apps-engine/client/AppsEngineUIHost'; -import type { IExternalComponentRoomInfo } from '@rocket.chat/apps-engine/client/definition'; +import { AppClientManager } from '@rocket.chat/apps/client/AppClientManager'; +import { AppsEngineUIHost } from '@rocket.chat/apps/client/AppsEngineUIHost'; +import type { IExternalComponentRoomInfo } from '@rocket.chat/apps/client/definition'; import type { ReactNode } from 'react'; import { AppsContext, type IAppsOrchestrator } from '../../../client/contexts/AppsContext'; diff --git a/apps/meteor/tests/mocks/data.ts b/apps/meteor/tests/mocks/data.ts index fb8859a3055b2..a4ecfa5ba4b95 100644 --- a/apps/meteor/tests/mocks/data.ts +++ b/apps/meteor/tests/mocks/data.ts @@ -1,5 +1,5 @@ import { faker } from '@faker-js/faker'; -import type { IExternalComponentRoomInfo, IExternalComponentUserInfo } from '@rocket.chat/apps-engine/client/definition'; +import type { IExternalComponentRoomInfo, IExternalComponentUserInfo } from '@rocket.chat/apps/client/definition'; import type { ILivechatContact } from '@rocket.chat/apps-engine/definition/livechat'; import { AppSubscriptionStatus, From 00c8b0bd5ff6573a4f0f07deb5e947370640470f Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Thu, 16 Apr 2026 13:29:44 -0300 Subject: [PATCH 04/25] refactor(core-services): migrate apps-engine/server/ imports to @rocket.chat/apps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit IAppsEngineService imported IGetAppsFilter and IAppStorageItem from @rocket.chat/apps-engine/server/ — server internals that now live in @rocket.chat/apps. Update imports and swap the devDependency accordingly. Co-Authored-By: Claude Sonnet 4.6 --- packages/core-services/package.json | 2 +- packages/core-services/src/types/IAppsEngineService.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core-services/package.json b/packages/core-services/package.json index 12423f388bde2..30f4f74e1e5a7 100644 --- a/packages/core-services/package.json +++ b/packages/core-services/package.json @@ -29,7 +29,7 @@ "@rocket.chat/ui-kit": "workspace:~" }, "devDependencies": { - "@rocket.chat/apps-engine": "workspace:^", + "@rocket.chat/apps": "workspace:^", "@rocket.chat/jest-presets": "workspace:~", "@rocket.chat/tsconfig": "workspace:*", "@types/jest": "~30.0.0", diff --git a/packages/core-services/src/types/IAppsEngineService.ts b/packages/core-services/src/types/IAppsEngineService.ts index 5d026c5149fb9..7c5ddccf24822 100644 --- a/packages/core-services/src/types/IAppsEngineService.ts +++ b/packages/core-services/src/types/IAppsEngineService.ts @@ -1,7 +1,7 @@ import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; -import type { IGetAppsFilter } from '@rocket.chat/apps-engine/server/IGetAppsFilter'; -import type { IAppStorageItem } from '@rocket.chat/apps-engine/server/storage'; +import type { IGetAppsFilter } from '@rocket.chat/apps/server/IGetAppsFilter'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; export type AppStatusReport = { [appId: string]: { instanceId: string; isLocal: boolean; status: AppStatus }[]; From 1e8c2cee5ecb7dff6c537acf624d4033f4e0d20d Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Thu, 16 Apr 2026 14:10:50 -0300 Subject: [PATCH 05/25] refactor(apps-engine): promote cross-boundary types to definition layer OAuth2Client, IExternalComponentRoomInfo/UserInfo, and the room query option types (GetMessagesOptions, GetRoomsFilters, GetRoomsOptions) were defined in server/ or client/ but were imported by definition/ files. Move them into the definition layer so the public API is self-contained. Co-Authored-By: Claude Sonnet 4.6 --- .../src/definition/accessors/IRoomRead.ts | 2 +- .../IExternalComponentRoomInfo.ts | 16 + .../IExternalComponentState.ts | 3 +- .../IExternalComponentUserInfo.ts | 14 + .../src/definition/externalComponent/index.ts | 4 + .../src/definition/oauth2/OAuth2.ts | 2 +- .../src/definition/oauth2/OAuth2Client.ts | 337 ++++++++++++++++++ .../definition/rooms/IGetMessagesOptions.ts | 43 +++ .../apps-engine/src/definition/rooms/index.ts | 1 + 9 files changed, 419 insertions(+), 3 deletions(-) create mode 100644 packages/apps-engine/src/definition/externalComponent/IExternalComponentRoomInfo.ts create mode 100644 packages/apps-engine/src/definition/externalComponent/IExternalComponentUserInfo.ts create mode 100644 packages/apps-engine/src/definition/oauth2/OAuth2Client.ts create mode 100644 packages/apps-engine/src/definition/rooms/IGetMessagesOptions.ts diff --git a/packages/apps-engine/src/definition/accessors/IRoomRead.ts b/packages/apps-engine/src/definition/accessors/IRoomRead.ts index ae086150784f9..bfd35b33c9a90 100644 --- a/packages/apps-engine/src/definition/accessors/IRoomRead.ts +++ b/packages/apps-engine/src/definition/accessors/IRoomRead.ts @@ -1,4 +1,4 @@ -import type { GetMessagesOptions, GetRoomsFilters, GetRoomsOptions } from '../../server/bridges/RoomBridge'; +import type { GetMessagesOptions, GetRoomsFilters, GetRoomsOptions } from '../rooms/IGetMessagesOptions'; import type { IMessageRaw } from '../messages/index'; import type { IRoom, IRoomRaw } from '../rooms/index'; import type { IUser } from '../users/index'; diff --git a/packages/apps-engine/src/definition/externalComponent/IExternalComponentRoomInfo.ts b/packages/apps-engine/src/definition/externalComponent/IExternalComponentRoomInfo.ts new file mode 100644 index 0000000000000..090b9b6903379 --- /dev/null +++ b/packages/apps-engine/src/definition/externalComponent/IExternalComponentRoomInfo.ts @@ -0,0 +1,16 @@ +import type { IRoom } from '../rooms'; +import type { IExternalComponentUserInfo } from './IExternalComponentUserInfo'; + +type ClientRoomInfo = Pick; + +/** + * Represents the room's information returned to the + * external component. + */ +export interface IExternalComponentRoomInfo extends ClientRoomInfo { + /** + * the list that contains all the users belonging + * to this room. + */ + members: Array; +} diff --git a/packages/apps-engine/src/definition/externalComponent/IExternalComponentState.ts b/packages/apps-engine/src/definition/externalComponent/IExternalComponentState.ts index ba33072a28281..db726a8cd177f 100644 --- a/packages/apps-engine/src/definition/externalComponent/IExternalComponentState.ts +++ b/packages/apps-engine/src/definition/externalComponent/IExternalComponentState.ts @@ -1,4 +1,5 @@ -import type { IExternalComponentRoomInfo, IExternalComponentUserInfo } from '../../client/definition'; +import type { IExternalComponentRoomInfo } from './IExternalComponentRoomInfo'; +import type { IExternalComponentUserInfo } from './IExternalComponentUserInfo'; /** * The state of an external component, which contains the diff --git a/packages/apps-engine/src/definition/externalComponent/IExternalComponentUserInfo.ts b/packages/apps-engine/src/definition/externalComponent/IExternalComponentUserInfo.ts new file mode 100644 index 0000000000000..dd681db8d42bf --- /dev/null +++ b/packages/apps-engine/src/definition/externalComponent/IExternalComponentUserInfo.ts @@ -0,0 +1,14 @@ +import type { IUser } from '../users'; + +type ClientUserInfo = Pick; + +/** + * Represents the user's information returned to + * the external component. + */ +export interface IExternalComponentUserInfo extends ClientUserInfo { + /** + * the avatar URL of the Rocket.Chat user + */ + avatarUrl: string; +} diff --git a/packages/apps-engine/src/definition/externalComponent/index.ts b/packages/apps-engine/src/definition/externalComponent/index.ts index 69231fca5211f..6229bf8995f75 100644 --- a/packages/apps-engine/src/definition/externalComponent/index.ts +++ b/packages/apps-engine/src/definition/externalComponent/index.ts @@ -3,3 +3,7 @@ import type { IPostExternalComponentClosed } from './IPostExternalComponentClose import type { IPostExternalComponentOpened } from './IPostExternalComponentOpened'; export type { IExternalComponent, IPostExternalComponentClosed, IPostExternalComponentOpened }; + +export type * from './IExternalComponentState'; +export type * from './IExternalComponentRoomInfo'; +export type * from './IExternalComponentUserInfo'; diff --git a/packages/apps-engine/src/definition/oauth2/OAuth2.ts b/packages/apps-engine/src/definition/oauth2/OAuth2.ts index 6339e5ea224a4..d4d0dfe9fdc98 100644 --- a/packages/apps-engine/src/definition/oauth2/OAuth2.ts +++ b/packages/apps-engine/src/definition/oauth2/OAuth2.ts @@ -1,4 +1,4 @@ -import { OAuth2Client } from '../../server/oauth2/OAuth2Client'; +import { OAuth2Client } from './OAuth2Client'; import type { App } from '../App'; import type { IOAuth2ClientOptions } from './IOAuth2'; diff --git a/packages/apps-engine/src/definition/oauth2/OAuth2Client.ts b/packages/apps-engine/src/definition/oauth2/OAuth2Client.ts new file mode 100644 index 0000000000000..ba6f8a90d454f --- /dev/null +++ b/packages/apps-engine/src/definition/oauth2/OAuth2Client.ts @@ -0,0 +1,337 @@ +import { URL } from 'url'; + +import type { App } from '../App'; +import type { IConfigurationExtend, IHttp, IModify, IPersistence, IRead } from '../accessors'; +import { HttpStatusCode } from '../accessors'; +import type { IApiEndpointInfo, IApiRequest, IApiResponse } from '../api'; +import { ApiSecurity, ApiVisibility } from '../api'; +import { RocketChatAssociationModel, RocketChatAssociationRecord } from '../metadata'; +import type { IAuthData, IOAuth2Client, IOAuth2ClientOptions } from './IOAuth2'; +import { SettingType } from '../settings'; +import type { IUser } from '../users'; + +export enum GrantType { + RefreshToken = 'refresh_token', + AuthorizationCode = 'authorization_code', +} + +export class OAuth2Client implements IOAuth2Client { + private defaultContents = { + success: `
\ +

\ + Authorization went successfully
\ + You can close this tab now
\ +

\ +
`, + failed: `
\ +

\ + Oops, something went wrong, please try again or in case it still does not work, contact the administrator.\ +

\ +
`, + }; + + constructor( + private readonly app: App, + private readonly config: IOAuth2ClientOptions, + ) {} + + public async setup(configuration: IConfigurationExtend): Promise { + configuration.api.provideApi({ + security: ApiSecurity.UNSECURE, + visibility: ApiVisibility.PUBLIC, + endpoints: [ + { + path: `${this.config.alias}-callback`, + get: this.handleOAuthCallback.bind(this), + }, + ], + }); + + await Promise.all([ + configuration.settings.provideSetting({ + id: `${this.config.alias}-oauth-client-id`, + type: SettingType.STRING, + public: true, + required: true, + packageValue: '', + i18nLabel: `${this.config.alias}-oauth-client-id`, + }), + + configuration.settings.provideSetting({ + id: `${this.config.alias}-oauth-clientsecret`, + type: SettingType.STRING, + public: true, + required: true, + packageValue: '', + i18nLabel: `${this.config.alias}-oauth-client-secret`, + }), + ]); + } + + public async getUserAuthorizationUrl(user: IUser, scopes?: Array): Promise { + const redirectUri = this.app.getAccessors().providedApiEndpoints[0].computedPath.substring(1); + + const siteUrl = await this.getBaseURLWithoutTrailingSlash(); + + const finalScopes = ([] as Array).concat(this.config.defaultScopes || [], scopes || []); + + const { authUri } = this.config; + + const clientId = await this.app + .getAccessors() + .reader.getEnvironmentReader() + .getSettings() + .getValueById(`${this.config.alias}-oauth-client-id`); + + const url = new URL(authUri, siteUrl); + + url.searchParams.set('response_type', 'code'); + url.searchParams.set('redirect_uri', `${siteUrl}/${redirectUri}`); + url.searchParams.set('state', user.id); + url.searchParams.set('client_id', clientId); + url.searchParams.set('access_type', 'offline'); + + if (finalScopes.length > 0) { + url.searchParams.set('scope', finalScopes.join(' ')); + } + + return url; + } + + public async getAccessTokenForUser(user: IUser): Promise { + const associations = [ + new RocketChatAssociationRecord(RocketChatAssociationModel.USER, user.id), + new RocketChatAssociationRecord(RocketChatAssociationModel.MISC, `${this.config.alias}-oauth-connection`), + ]; + + const [result] = (await this.app.getAccessors().reader.getPersistenceReader().readByAssociations(associations)) as unknown as Array< + IAuthData | undefined + >; + + return result; + } + + public async refreshUserAccessToken(user: IUser, persis: IPersistence): Promise { + try { + const tokenInfo = await this.getAccessTokenForUser(user); + + if (!tokenInfo) { + throw new Error('User has no access token information'); + } + + if (!tokenInfo.refreshToken) { + throw new Error('User token information has no refresh token available'); + } + + const { + config: { refreshTokenUri }, + } = this; + + const clientId = await this.app + .getAccessors() + .reader.getEnvironmentReader() + .getSettings() + .getValueById(`${this.config.alias}-oauth-client-id`); + + const clientSecret = await this.app + .getAccessors() + .reader.getEnvironmentReader() + .getSettings() + .getValueById(`${this.config.alias}-oauth-clientsecret`); + + const siteUrl = await this.getBaseURLWithoutTrailingSlash(); + + const redirectUri = this.app.getAccessors().providedApiEndpoints[0].computedPath.substring(1); + + const url = new URL(refreshTokenUri); + + url.searchParams.set('client_id', clientId); + url.searchParams.set('client_secret', clientSecret); + url.searchParams.set('redirect_uri', `${siteUrl}/${redirectUri}`); + url.searchParams.set('refresh_token', tokenInfo.refreshToken); + url.searchParams.set('grant_type', GrantType.RefreshToken); + + const { content, statusCode } = await this.app.getAccessors().http.post(url.href); + + if (statusCode !== 200) { + throw new Error('Request to provider was unsuccessful. Check logs for more information'); + } + + const { access_token, expires_in, refresh_token, scope } = JSON.parse(content as string); + + if (!access_token) { + throw new Error('No access token returned by the provider'); + } + + const authData: IAuthData = { + scope, + token: access_token, + expiresAt: expires_in, + refreshToken: refresh_token || tokenInfo.refreshToken, + }; + + await this.saveToken(authData, user.id, persis); + + return authData; + } catch (error) { + this.app.getLogger().error(error); + throw error; + } + } + + public async revokeUserAccessToken(user: IUser, persis: IPersistence): Promise { + try { + const tokenInfo = await this.getAccessTokenForUser(user); + + if (!tokenInfo?.token) { + throw new Error('No access token available for this user.'); + } + + const url = new URL(this.config.revokeTokenUri); + + url.searchParams.set('token', tokenInfo?.token); + + const result = await this.app.getAccessors().http.post(url.href); + + if (result.statusCode !== 200) { + throw new Error('Provider did not allow token to be revoked'); + } + + await this.removeToken({ userId: user.id, persis }); + + return true; + } catch (error) { + this.app.getLogger().error(error); + return false; + } + } + + private async getBaseURLWithoutTrailingSlash(): Promise { + const SITE_URL = 'Site_Url'; + const url = await this.app.getAccessors().environmentReader.getServerSettings().getValueById(SITE_URL); + + if (url.endsWith('/')) { + return url.substr(0, url.length - 1); + } + return url; + } + + private async handleOAuthCallback( + request: IApiRequest, + endpoint: IApiEndpointInfo, + read: IRead, + modify: IModify, + http: IHttp, + persis: IPersistence, + ): Promise { + try { + const { + query: { code, state }, + } = request; + + const user = await this.app.getAccessors().reader.getUserReader().getById(state); + + if (!user) { + throw new Error('User could not be determined.'); + } + + // User chose not to authorize the access + if (!code) { + const failedResult = await this.config.authorizationCallback?.(undefined, user, read, modify, http, persis); + + return { + status: HttpStatusCode.UNAUTHORIZED, + content: failedResult?.responseContent || this.defaultContents.failed, + }; + } + + const siteUrl = await this.getBaseURLWithoutTrailingSlash(); + + const accessTokenUrl = this.config.accessTokenUri; + + const redirectUri = this.app.getAccessors().providedApiEndpoints[0].computedPath.substring(1); + + const clientId = await this.app + .getAccessors() + .reader.getEnvironmentReader() + .getSettings() + .getValueById(`${this.config.alias}-oauth-client-id`); + + const clientSecret = await this.app + .getAccessors() + .reader.getEnvironmentReader() + .getSettings() + .getValueById(`${this.config.alias}-oauth-clientsecret`); + + const url = new URL(accessTokenUrl, siteUrl); + + url.searchParams.set('client_id', clientId); + url.searchParams.set('redirect_uri', `${siteUrl}/${redirectUri}`); + url.searchParams.set('code', code); + url.searchParams.set('client_secret', clientSecret); + url.searchParams.set('access_type', 'offline'); + url.searchParams.set('grant_type', GrantType.AuthorizationCode); + + const { content, statusCode } = await http.post(url.href, { + headers: { Accept: 'application/json' }, + }); + + // If provider had a server error, nothing we can do + if (statusCode >= 500) { + throw new Error('Request for access token failed. Check logs for more information'); + } + + const response = JSON.parse(content as string); + const { access_token, expires_in, refresh_token, scope } = response; + + const authData: IAuthData = { + scope, + token: access_token, + expiresAt: expires_in, + refreshToken: refresh_token, + }; + + const result = await this.config.authorizationCallback?.(authData, user, read, modify, http, persis); + + await this.saveToken(authData, user.id, persis); + + return { + status: statusCode, + content: result?.responseContent || this.defaultContents.success, + }; + } catch (error) { + this.app.getLogger().error(error); + return { + status: HttpStatusCode.INTERNAL_SERVER_ERROR, + content: this.defaultContents.failed, + }; + } + } + + private async saveToken(authData: IAuthData, userId: string, persis: IPersistence): Promise { + const { scope, token, expiresAt, refreshToken } = authData; + + return persis.updateByAssociations( + [ + new RocketChatAssociationRecord(RocketChatAssociationModel.USER, userId), + new RocketChatAssociationRecord(RocketChatAssociationModel.MISC, `${this.config.alias}-oauth-connection`), + ], + { + scope, + token, + expiresAt: expiresAt || '', + refreshToken: refreshToken || '', + }, + true, // we want to create the record if it doesn't exist + ); + } + + private async removeToken({ userId, persis }: { userId: string; persis: IPersistence }): Promise { + const [result] = (await persis.removeByAssociations([ + new RocketChatAssociationRecord(RocketChatAssociationModel.USER, userId), + new RocketChatAssociationRecord(RocketChatAssociationModel.MISC, `${this.config.alias}-oauth-connection`), + ])) as unknown as Array; + + return result; + } +} diff --git a/packages/apps-engine/src/definition/rooms/IGetMessagesOptions.ts b/packages/apps-engine/src/definition/rooms/IGetMessagesOptions.ts new file mode 100644 index 0000000000000..b2a36adde9843 --- /dev/null +++ b/packages/apps-engine/src/definition/rooms/IGetMessagesOptions.ts @@ -0,0 +1,43 @@ +import type { RoomType } from './RoomType'; + +export const GetMessagesSortableFields = ['createdAt'] as const; + +export type GetMessagesOptions = { + limit: number; + skip: number; + sort: Record<(typeof GetMessagesSortableFields)[number], 'asc' | 'desc'>; + showThreadMessages: boolean; +}; + +/** + * Filters for querying rooms in the system. + */ +export type GetRoomsFilters = { + /** + * When specified, only rooms matching the provided types will be returned. + */ + types?: Array; + /** + * Filter to include or exclude discussion rooms. + * + * When undefined (default), discussions are included in the result set. + * + * When true, ONLY discussions are included in the result set (remove non-discussions). + * When false, discussion rooms are excluded from the result set. + */ + discussions?: boolean; + /** + * Filter to include or exclude team main rooms. + * + * When undefined (default), team main rooms are included in the result set. + * + * When true, ONLY team main rooms are included in the result set (remove non-teams). + * When false, team main rooms are excluded from the result set. + */ + teams?: boolean; +}; + +export type GetRoomsOptions = { + limit?: number; + skip?: number; +}; diff --git a/packages/apps-engine/src/definition/rooms/index.ts b/packages/apps-engine/src/definition/rooms/index.ts index d4e51c6089c77..eb5083756daa1 100644 --- a/packages/apps-engine/src/definition/rooms/index.ts +++ b/packages/apps-engine/src/definition/rooms/index.ts @@ -26,3 +26,4 @@ export type * from './IRoomUserJoinedContext'; export type * from './IPreRoomUserLeave'; export type * from './IPostRoomUserLeave'; export type * from './IRoomUserLeaveContext'; +export type * from './IGetMessagesOptions'; From fbcaeaff55d461338fdadb1d1b6fed6897f17790 Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Thu, 16 Apr 2026 14:11:04 -0300 Subject: [PATCH 06/25] refactor(apps): source room options and OAuth2Client from apps-engine definition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GetMessagesOptions, GetRoomsFilters, GetRoomsOptions, and GetMessagesSortableFields are now canonical in @rocket.chat/apps-engine/definition/rooms/IGetMessagesOptions — import them from there and re-export for downstream consumers. OAuth2Client is now canonical in @rocket.chat/apps-engine/definition/oauth2/OAuth2Client — replace the duplicate copy with a re-export. Also add typesVersions to @rocket.chat/apps/package.json so that consumers using moduleResolution: "node" can resolve ./server/* and ./client/* subpath imports without needing node16/bundler resolution. Co-Authored-By: Claude Sonnet 4.6 --- packages/apps/package.json | 20 ++ .../apps/src/server/bridges/RoomBridge.ts | 50 +-- .../apps/src/server/oauth2/OAuth2Client.ts | 338 +----------------- 3 files changed, 29 insertions(+), 379 deletions(-) diff --git a/packages/apps/package.json b/packages/apps/package.json index f5f11360d9e1e..6c5f42bc755e7 100644 --- a/packages/apps/package.json +++ b/packages/apps/package.json @@ -4,6 +4,26 @@ "private": true, "main": "./dist/index.js", "typings": "./dist/index.d.ts", + "exports": { + ".": { + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + }, + "./server/*": { + "require": "./dist/server/*.js", + "types": "./dist/server/*.d.ts" + }, + "./client/*": { + "require": "./dist/client/*.js", + "types": "./dist/client/*.d.ts" + } + }, + "typesVersions": { + "*": { + "server/*": ["./dist/server/*"], + "client/*": ["./dist/client/*"] + } + }, "files": [ "/dist", "/deno-runtime", diff --git a/packages/apps/src/server/bridges/RoomBridge.ts b/packages/apps/src/server/bridges/RoomBridge.ts index 5f1d7b2ae7ff6..180802bd88dfc 100644 --- a/packages/apps/src/server/bridges/RoomBridge.ts +++ b/packages/apps/src/server/bridges/RoomBridge.ts @@ -1,5 +1,11 @@ import type { IMessage, IMessageRaw } from '@rocket.chat/apps-engine/definition/messages'; -import type { IRoom, IRoomRaw, RoomType } from '@rocket.chat/apps-engine/definition/rooms'; +import type { IRoom, IRoomRaw } from '@rocket.chat/apps-engine/definition/rooms'; +import type { + GetMessagesSortableFields, + GetMessagesOptions, + GetRoomsFilters, + GetRoomsOptions, +} from '@rocket.chat/apps-engine/definition/rooms/IGetMessagesOptions'; import type { IUser } from '@rocket.chat/apps-engine/definition/users'; import { BaseBridge } from './BaseBridge'; @@ -7,47 +13,7 @@ import { PermissionDeniedError } from '../errors/PermissionDeniedError'; import { AppPermissionManager } from '../managers/AppPermissionManager'; import { AppPermissions } from '../permissions/AppPermissions'; -export const GetMessagesSortableFields = ['createdAt'] as const; - -export type GetMessagesOptions = { - limit: number; - skip: number; - sort: Record<(typeof GetMessagesSortableFields)[number], 'asc' | 'desc'>; - showThreadMessages: boolean; -}; - -/** - * Filters for querying rooms in the system. - */ -export type GetRoomsFilters = { - /** - * When specified, only rooms matching the provided types will be returned. - */ - types?: Array; - /** - * Filter to include or exclude discussion rooms. - * - * When undefined (default), discussions are included in the result set. - * - * When true, ONLY discussions are included in the result set (remove non-discussions). - * When false, discussion rooms are excluded from the result set. - */ - discussions?: boolean; - /** - * Filter to include or exclude team main rooms. - * - * When undefined (default), team main rooms are included in the result set. - * - * When true, ONLY team main rooms are included in the result set (remove non-teams). - * When false, team main rooms are excluded from the result set. - */ - teams?: boolean; -}; - -export type GetRoomsOptions = { - limit?: number; - skip?: number; -}; +export type { GetMessagesSortableFields, GetMessagesOptions, GetRoomsFilters, GetRoomsOptions }; export abstract class RoomBridge extends BaseBridge { public async doCreate(room: IRoom, members: Array, appId: string): Promise { diff --git a/packages/apps/src/server/oauth2/OAuth2Client.ts b/packages/apps/src/server/oauth2/OAuth2Client.ts index 08cbd0314aec9..d6277bca86622 100644 --- a/packages/apps/src/server/oauth2/OAuth2Client.ts +++ b/packages/apps/src/server/oauth2/OAuth2Client.ts @@ -1,337 +1 @@ -import { URL } from 'url'; - -import type { App } from '@rocket.chat/apps-engine/definition/App'; -import type { IConfigurationExtend, IHttp, IModify, IPersistence, IRead } from '@rocket.chat/apps-engine/definition/accessors'; -import { HttpStatusCode } from '@rocket.chat/apps-engine/definition/accessors'; -import type { IApiEndpointInfo, IApiRequest, IApiResponse } from '@rocket.chat/apps-engine/definition/api'; -import { ApiSecurity, ApiVisibility } from '@rocket.chat/apps-engine/definition/api'; -import { RocketChatAssociationModel, RocketChatAssociationRecord } from '@rocket.chat/apps-engine/definition/metadata'; -import type { IAuthData, IOAuth2Client, IOAuth2ClientOptions } from '@rocket.chat/apps-engine/definition/oauth2/IOAuth2'; -import { SettingType } from '@rocket.chat/apps-engine/definition/settings'; -import type { IUser } from '@rocket.chat/apps-engine/definition/users'; - -export enum GrantType { - RefreshToken = 'refresh_token', - AuthorizationCode = 'authorization_code', -} - -export class OAuth2Client implements IOAuth2Client { - private defaultContents = { - success: `
\ -

\ - Authorization went successfully
\ - You can close this tab now
\ -

\ -
`, - failed: `
\ -

\ - Oops, something went wrong, please try again or in case it still does not work, contact the administrator.\ -

\ -
`, - }; - - constructor( - private readonly app: App, - private readonly config: IOAuth2ClientOptions, - ) {} - - public async setup(configuration: IConfigurationExtend): Promise { - await configuration.api.provideApi({ - security: ApiSecurity.UNSECURE, - visibility: ApiVisibility.PUBLIC, - endpoints: [ - { - path: `${this.config.alias}-callback`, - get: this.handleOAuthCallback.bind(this), - }, - ], - }); - - await Promise.all([ - configuration.settings.provideSetting({ - id: `${this.config.alias}-oauth-client-id`, - type: SettingType.STRING, - public: true, - required: true, - packageValue: '', - i18nLabel: `${this.config.alias}-oauth-client-id`, - }), - - configuration.settings.provideSetting({ - id: `${this.config.alias}-oauth-clientsecret`, - type: SettingType.STRING, - public: true, - required: true, - packageValue: '', - i18nLabel: `${this.config.alias}-oauth-client-secret`, - }), - ]); - } - - public async getUserAuthorizationUrl(user: IUser, scopes?: Array): Promise { - const redirectUri = this.app.getAccessors().providedApiEndpoints[0].computedPath.substring(1); - - const siteUrl = await this.getBaseURLWithoutTrailingSlash(); - - const finalScopes = ([] as Array).concat(this.config.defaultScopes || [], scopes || []); - - const { authUri } = this.config; - - const clientId = await this.app - .getAccessors() - .reader.getEnvironmentReader() - .getSettings() - .getValueById(`${this.config.alias}-oauth-client-id`); - - const url = new URL(authUri, siteUrl); - - url.searchParams.set('response_type', 'code'); - url.searchParams.set('redirect_uri', `${siteUrl}/${redirectUri}`); - url.searchParams.set('state', user.id); - url.searchParams.set('client_id', clientId); - url.searchParams.set('access_type', 'offline'); - - if (finalScopes.length > 0) { - url.searchParams.set('scope', finalScopes.join(' ')); - } - - return url; - } - - public async getAccessTokenForUser(user: IUser): Promise { - const associations = [ - new RocketChatAssociationRecord(RocketChatAssociationModel.USER, user.id), - new RocketChatAssociationRecord(RocketChatAssociationModel.MISC, `${this.config.alias}-oauth-connection`), - ]; - - const [result] = (await this.app.getAccessors().reader.getPersistenceReader().readByAssociations(associations)) as unknown as Array< - IAuthData | undefined - >; - - return result; - } - - public async refreshUserAccessToken(user: IUser, persis: IPersistence): Promise { - try { - const tokenInfo = await this.getAccessTokenForUser(user); - - if (!tokenInfo) { - throw new Error('User has no access token information'); - } - - if (!tokenInfo.refreshToken) { - throw new Error('User token information has no refresh token available'); - } - - const { - config: { refreshTokenUri }, - } = this; - - const clientId = await this.app - .getAccessors() - .reader.getEnvironmentReader() - .getSettings() - .getValueById(`${this.config.alias}-oauth-client-id`); - - const clientSecret = await this.app - .getAccessors() - .reader.getEnvironmentReader() - .getSettings() - .getValueById(`${this.config.alias}-oauth-clientsecret`); - - const siteUrl = await this.getBaseURLWithoutTrailingSlash(); - - const redirectUri = this.app.getAccessors().providedApiEndpoints[0].computedPath.substring(1); - - const url = new URL(refreshTokenUri); - - url.searchParams.set('client_id', clientId); - url.searchParams.set('client_secret', clientSecret); - url.searchParams.set('redirect_uri', `${siteUrl}/${redirectUri}`); - url.searchParams.set('refresh_token', tokenInfo.refreshToken); - url.searchParams.set('grant_type', GrantType.RefreshToken); - - const { content, statusCode } = await this.app.getAccessors().http.post(url.href); - - if (statusCode !== 200) { - throw new Error('Request to provider was unsuccessful. Check logs for more information'); - } - - const { access_token, expires_in, refresh_token, scope } = JSON.parse(content as string); - - if (!access_token) { - throw new Error('No access token returned by the provider'); - } - - const authData: IAuthData = { - scope, - token: access_token, - expiresAt: expires_in, - refreshToken: refresh_token || tokenInfo.refreshToken, - }; - - await this.saveToken(authData, user.id, persis); - - return authData; - } catch (error) { - this.app.getLogger().error(error); - throw error; - } - } - - public async revokeUserAccessToken(user: IUser, persis: IPersistence): Promise { - try { - const tokenInfo = await this.getAccessTokenForUser(user); - - if (!tokenInfo?.token) { - throw new Error('No access token available for this user.'); - } - - const url = new URL(this.config.revokeTokenUri); - - url.searchParams.set('token', tokenInfo?.token); - - const result = await this.app.getAccessors().http.post(url.href); - - if (result.statusCode !== 200) { - throw new Error('Provider did not allow token to be revoked'); - } - - await this.removeToken({ userId: user.id, persis }); - - return true; - } catch (error) { - this.app.getLogger().error(error); - return false; - } - } - - private async getBaseURLWithoutTrailingSlash(): Promise { - const SITE_URL = 'Site_Url'; - const url = await this.app.getAccessors().environmentReader.getServerSettings().getValueById(SITE_URL); - - if (url.endsWith('/')) { - return url.substr(0, url.length - 1); - } - return url; - } - - private async handleOAuthCallback( - request: IApiRequest, - endpoint: IApiEndpointInfo, - read: IRead, - modify: IModify, - http: IHttp, - persis: IPersistence, - ): Promise { - try { - const { - query: { code, state }, - } = request; - - const user = await this.app.getAccessors().reader.getUserReader().getById(state); - - if (!user) { - throw new Error('User could not be determined.'); - } - - // User chose not to authorize the access - if (!code) { - const failedResult = await this.config.authorizationCallback?.(undefined, user, read, modify, http, persis); - - return { - status: HttpStatusCode.UNAUTHORIZED, - content: failedResult?.responseContent || this.defaultContents.failed, - }; - } - - const siteUrl = await this.getBaseURLWithoutTrailingSlash(); - - const accessTokenUrl = this.config.accessTokenUri; - - const redirectUri = this.app.getAccessors().providedApiEndpoints[0].computedPath.substring(1); - - const clientId = await this.app - .getAccessors() - .reader.getEnvironmentReader() - .getSettings() - .getValueById(`${this.config.alias}-oauth-client-id`); - - const clientSecret = await this.app - .getAccessors() - .reader.getEnvironmentReader() - .getSettings() - .getValueById(`${this.config.alias}-oauth-clientsecret`); - - const url = new URL(accessTokenUrl, siteUrl); - - url.searchParams.set('client_id', clientId); - url.searchParams.set('redirect_uri', `${siteUrl}/${redirectUri}`); - url.searchParams.set('code', code); - url.searchParams.set('client_secret', clientSecret); - url.searchParams.set('access_type', 'offline'); - url.searchParams.set('grant_type', GrantType.AuthorizationCode); - - const { content, statusCode } = await http.post(url.href, { - headers: { Accept: 'application/json' }, - }); - - // If provider had a server error, nothing we can do - if (statusCode >= 500) { - throw new Error('Request for access token failed. Check logs for more information'); - } - - const response = JSON.parse(content as string); - const { access_token, expires_in, refresh_token, scope } = response; - - const authData: IAuthData = { - scope, - token: access_token, - expiresAt: expires_in, - refreshToken: refresh_token, - }; - - const result = await this.config.authorizationCallback?.(authData, user, read, modify, http, persis); - - await this.saveToken(authData, user.id, persis); - - return { - status: statusCode, - content: result?.responseContent || this.defaultContents.success, - }; - } catch (error) { - this.app.getLogger().error(error); - return { - status: HttpStatusCode.INTERNAL_SERVER_ERROR, - content: this.defaultContents.failed, - }; - } - } - - private async saveToken(authData: IAuthData, userId: string, persis: IPersistence): Promise { - const { scope, token, expiresAt, refreshToken } = authData; - - return persis.updateByAssociations( - [ - new RocketChatAssociationRecord(RocketChatAssociationModel.USER, userId), - new RocketChatAssociationRecord(RocketChatAssociationModel.MISC, `${this.config.alias}-oauth-connection`), - ], - { - scope, - token, - expiresAt: expiresAt || '', - refreshToken: refreshToken || '', - }, - true, // we want to create the record if it doesn't exist - ); - } - - private async removeToken({ userId, persis }: { userId: string; persis: IPersistence }): Promise { - const [result] = (await persis.removeByAssociations([ - new RocketChatAssociationRecord(RocketChatAssociationModel.USER, userId), - new RocketChatAssociationRecord(RocketChatAssociationModel.MISC, `${this.config.alias}-oauth-connection`), - ])) as unknown as Array; - - return result; - } -} +export { OAuth2Client, GrantType } from '@rocket.chat/apps-engine/definition/oauth2/OAuth2Client'; From 3a521fbfa1707f8ce13e971e51e167d709373a88 Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Mon, 27 Apr 2026 19:47:46 -0300 Subject: [PATCH 07/25] fix outdated import --- packages/apps-engine/src/definition/oauth2/OAuth2Client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/apps-engine/src/definition/oauth2/OAuth2Client.ts b/packages/apps-engine/src/definition/oauth2/OAuth2Client.ts index ba6f8a90d454f..0f8a95b031321 100644 --- a/packages/apps-engine/src/definition/oauth2/OAuth2Client.ts +++ b/packages/apps-engine/src/definition/oauth2/OAuth2Client.ts @@ -36,7 +36,7 @@ export class OAuth2Client implements IOAuth2Client { ) {} public async setup(configuration: IConfigurationExtend): Promise { - configuration.api.provideApi({ + await configuration.api.provideApi({ security: ApiSecurity.UNSECURE, visibility: ApiVisibility.PUBLIC, endpoints: [ From c84f9924cc01b59023ad9a6d4fb175dc7adbc2ad Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 28 Apr 2026 10:44:55 +0000 Subject: [PATCH 08/25] fix(apps): export GetMessagesSortableFields as value, not type GetMessagesSortableFields is a runtime const array, not just a type. The previous refactor accidentally imported and re-exported it via 'import type' / 'export type', making it unavailable as a value. This caused TS1362 errors in RoomRead.ts where it is used at runtime (Array.includes and Array.join calls). Co-authored-by: d-gubert <1810309+d-gubert@users.noreply.github.com> --- packages/apps/src/server/bridges/RoomBridge.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/apps/src/server/bridges/RoomBridge.ts b/packages/apps/src/server/bridges/RoomBridge.ts index 180802bd88dfc..662fb1039b76c 100644 --- a/packages/apps/src/server/bridges/RoomBridge.ts +++ b/packages/apps/src/server/bridges/RoomBridge.ts @@ -1,11 +1,7 @@ import type { IMessage, IMessageRaw } from '@rocket.chat/apps-engine/definition/messages'; import type { IRoom, IRoomRaw } from '@rocket.chat/apps-engine/definition/rooms'; -import type { - GetMessagesSortableFields, - GetMessagesOptions, - GetRoomsFilters, - GetRoomsOptions, -} from '@rocket.chat/apps-engine/definition/rooms/IGetMessagesOptions'; +import { GetMessagesSortableFields } from '@rocket.chat/apps-engine/definition/rooms/IGetMessagesOptions'; +import type { GetMessagesOptions, GetRoomsFilters, GetRoomsOptions } from '@rocket.chat/apps-engine/definition/rooms/IGetMessagesOptions'; import type { IUser } from '@rocket.chat/apps-engine/definition/users'; import { BaseBridge } from './BaseBridge'; @@ -13,7 +9,8 @@ import { PermissionDeniedError } from '../errors/PermissionDeniedError'; import { AppPermissionManager } from '../managers/AppPermissionManager'; import { AppPermissions } from '../permissions/AppPermissions'; -export type { GetMessagesSortableFields, GetMessagesOptions, GetRoomsFilters, GetRoomsOptions }; +export { GetMessagesSortableFields }; +export type { GetMessagesOptions, GetRoomsFilters, GetRoomsOptions }; export abstract class RoomBridge extends BaseBridge { public async doCreate(room: IRoom, members: Array, appId: string): Promise { From 9e03355ca3bcdf7a5c92a047818c6706f9dc222f Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Tue, 28 Apr 2026 12:25:04 -0300 Subject: [PATCH 09/25] fix lint --- packages/apps-engine/src/definition/accessors/IRoomRead.ts | 2 +- packages/core-services/src/types/IAppsEngineService.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/apps-engine/src/definition/accessors/IRoomRead.ts b/packages/apps-engine/src/definition/accessors/IRoomRead.ts index bfd35b33c9a90..dc78134e66974 100644 --- a/packages/apps-engine/src/definition/accessors/IRoomRead.ts +++ b/packages/apps-engine/src/definition/accessors/IRoomRead.ts @@ -1,5 +1,5 @@ -import type { GetMessagesOptions, GetRoomsFilters, GetRoomsOptions } from '../rooms/IGetMessagesOptions'; import type { IMessageRaw } from '../messages/index'; +import type { GetMessagesOptions, GetRoomsFilters, GetRoomsOptions } from '../rooms/IGetMessagesOptions'; import type { IRoom, IRoomRaw } from '../rooms/index'; import type { IUser } from '../users/index'; diff --git a/packages/core-services/src/types/IAppsEngineService.ts b/packages/core-services/src/types/IAppsEngineService.ts index 7c5ddccf24822..bac06f180dfc0 100644 --- a/packages/core-services/src/types/IAppsEngineService.ts +++ b/packages/core-services/src/types/IAppsEngineService.ts @@ -1,7 +1,7 @@ -import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; -import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; import type { IGetAppsFilter } from '@rocket.chat/apps/server/IGetAppsFilter'; import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; +import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; export type AppStatusReport = { [appId: string]: { instanceId: string; isLocal: boolean; status: AppStatus }[]; From 102bc2f809e4395c7202465a2116050c1af47009 Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Tue, 28 Apr 2026 13:10:54 -0300 Subject: [PATCH 10/25] auto fix lint --- apps/meteor/app/apps/server/bridges/activation.ts | 1 - apps/meteor/app/apps/server/bridges/api.ts | 4 ++-- apps/meteor/app/apps/server/bridges/cloud.ts | 2 +- apps/meteor/app/apps/server/bridges/commands.ts | 2 +- apps/meteor/app/apps/server/bridges/contact.ts | 2 +- apps/meteor/app/apps/server/bridges/details.ts | 2 +- apps/meteor/app/apps/server/bridges/email.ts | 2 +- apps/meteor/app/apps/server/bridges/http.ts | 2 +- apps/meteor/app/apps/server/bridges/listeners.ts | 15 ++++++--------- apps/meteor/app/apps/server/bridges/livechat.ts | 15 +++++++-------- apps/meteor/app/apps/server/bridges/messages.ts | 4 ++-- apps/meteor/app/apps/server/bridges/moderation.ts | 2 +- apps/meteor/app/apps/server/bridges/oauthApps.ts | 2 +- .../apps/server/bridges/outboundCommunication.ts | 2 +- .../meteor/app/apps/server/bridges/persistence.ts | 2 +- apps/meteor/app/apps/server/bridges/rooms.ts | 4 ++-- apps/meteor/app/apps/server/bridges/scheduler.ts | 4 ++-- apps/meteor/app/apps/server/bridges/settings.ts | 2 +- apps/meteor/app/apps/server/bridges/thread.ts | 2 +- .../app/apps/server/bridges/uiInteraction.ts | 2 +- apps/meteor/app/apps/server/bridges/uploads.ts | 2 +- apps/meteor/app/apps/server/bridges/users.ts | 2 +- .../app/apps/server/bridges/videoConferences.ts | 2 +- .../statistics/server/lib/getAppsStatistics.ts | 2 +- .../ee/lib/misc/formatAppInstanceForRest.ts | 4 ++-- apps/meteor/ee/server/apps/communication/rest.ts | 4 ++-- apps/meteor/ee/server/apps/cron.ts | 2 +- apps/meteor/ee/server/apps/orchestrator.js | 2 +- .../ee/server/apps/storage/AppRealStorage.ts | 6 +++--- .../tests/unit/server/apps/AppRealStorage.spec.ts | 2 +- .../meteor/server/services/apps-engine/service.ts | 4 ++-- .../server/services/video-conference/service.ts | 2 +- .../unit/app/license/server/canEnableApp.spec.ts | 5 +---- packages/apps/src/IAppServerOrchestrator.ts | 4 ++-- 34 files changed, 54 insertions(+), 62 deletions(-) diff --git a/apps/meteor/app/apps/server/bridges/activation.ts b/apps/meteor/app/apps/server/bridges/activation.ts index e33626ea967ce..b694174522370 100644 --- a/apps/meteor/app/apps/server/bridges/activation.ts +++ b/apps/meteor/app/apps/server/bridges/activation.ts @@ -5,7 +5,6 @@ import { UserStatus } from '@rocket.chat/core-typings'; import { Users } from '@rocket.chat/models'; export class AppActivationBridge extends ActivationBridge { - // eslint-disable-next-line no-empty-function constructor(private readonly orch: IAppServerOrchestrator) { super(); } diff --git a/apps/meteor/app/apps/server/bridges/api.ts b/apps/meteor/app/apps/server/bridges/api.ts index c4cfc481e0795..224bc0ed16eb3 100644 --- a/apps/meteor/app/apps/server/bridges/api.ts +++ b/apps/meteor/app/apps/server/bridges/api.ts @@ -1,8 +1,8 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import type { RequestMethod } from '@rocket.chat/apps-engine/definition/accessors'; -import type { IApiRequest, IApiEndpoint, IApi } from '@rocket.chat/apps-engine/definition/api'; import { ApiBridge } from '@rocket.chat/apps/server/bridges/ApiBridge'; import type { AppApi } from '@rocket.chat/apps/server/managers/AppApi'; +import type { RequestMethod } from '@rocket.chat/apps-engine/definition/accessors'; +import type { IApiRequest, IApiEndpoint, IApi } from '@rocket.chat/apps-engine/definition/api'; import type { Response, Request, IRouter, RequestHandler } from 'express'; import express from 'express'; import { Meteor } from 'meteor/meteor'; diff --git a/apps/meteor/app/apps/server/bridges/cloud.ts b/apps/meteor/app/apps/server/bridges/cloud.ts index f762ee7b44fa6..b42f8af3e592e 100644 --- a/apps/meteor/app/apps/server/bridges/cloud.ts +++ b/apps/meteor/app/apps/server/bridges/cloud.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import type { IWorkspaceToken } from '@rocket.chat/apps-engine/definition/cloud/IWorkspaceToken'; import { CloudWorkspaceBridge } from '@rocket.chat/apps/server/bridges/CloudWorkspaceBridge'; +import type { IWorkspaceToken } from '@rocket.chat/apps-engine/definition/cloud/IWorkspaceToken'; import { getWorkspaceAccessTokenWithScope } from '../../../cloud/server'; diff --git a/apps/meteor/app/apps/server/bridges/commands.ts b/apps/meteor/app/apps/server/bridges/commands.ts index 7a1b522286ff3..478c44f8744e4 100644 --- a/apps/meteor/app/apps/server/bridges/commands.ts +++ b/apps/meteor/app/apps/server/bridges/commands.ts @@ -1,7 +1,7 @@ import type { IAppServerOrchestrator, IAppsRoom, IAppsUser } from '@rocket.chat/apps'; +import { CommandBridge } from '@rocket.chat/apps/server/bridges/CommandBridge'; import type { ISlashCommand, ISlashCommandPreview, ISlashCommandPreviewItem } from '@rocket.chat/apps-engine/definition/slashcommands'; import { SlashCommandContext } from '@rocket.chat/apps-engine/definition/slashcommands'; -import { CommandBridge } from '@rocket.chat/apps/server/bridges/CommandBridge'; import type { IMessage, RequiredField, SlashCommand, SlashCommandCallbackParams } from '@rocket.chat/core-typings'; import { Utilities } from '../../../../ee/lib/misc/Utilities'; diff --git a/apps/meteor/app/apps/server/bridges/contact.ts b/apps/meteor/app/apps/server/bridges/contact.ts index fab0976b716dd..c8871e6cb0cc7 100644 --- a/apps/meteor/app/apps/server/bridges/contact.ts +++ b/apps/meteor/app/apps/server/bridges/contact.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import type { ILivechatContact } from '@rocket.chat/apps-engine/definition/livechat'; import { ContactBridge } from '@rocket.chat/apps/server/bridges'; +import type { ILivechatContact } from '@rocket.chat/apps-engine/definition/livechat'; import { addContactEmail } from '../../../livechat/server/lib/contacts/addContactEmail'; import { verifyContactChannel } from '../../../livechat/server/lib/contacts/verifyContactChannel'; diff --git a/apps/meteor/app/apps/server/bridges/details.ts b/apps/meteor/app/apps/server/bridges/details.ts index 6da3433f58702..5269d68f3732f 100644 --- a/apps/meteor/app/apps/server/bridges/details.ts +++ b/apps/meteor/app/apps/server/bridges/details.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; import { AppDetailChangesBridge as DetailChangesBridge } from '@rocket.chat/apps/server/bridges/AppDetailChangesBridge'; +import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; export class AppDetailChangesBridge extends DetailChangesBridge { constructor(private readonly orch: IAppServerOrchestrator) { diff --git a/apps/meteor/app/apps/server/bridges/email.ts b/apps/meteor/app/apps/server/bridges/email.ts index 53d1db8f1a47c..25a798b878723 100644 --- a/apps/meteor/app/apps/server/bridges/email.ts +++ b/apps/meteor/app/apps/server/bridges/email.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import type { IEmail } from '@rocket.chat/apps-engine/definition/email'; import { EmailBridge } from '@rocket.chat/apps/server/bridges'; +import type { IEmail } from '@rocket.chat/apps-engine/definition/email'; import * as Mailer from '../../../mailer/server/api'; import { settings } from '../../../settings/server'; diff --git a/apps/meteor/app/apps/server/bridges/http.ts b/apps/meteor/app/apps/server/bridges/http.ts index 121730731d8e9..060d921df5c4c 100644 --- a/apps/meteor/app/apps/server/bridges/http.ts +++ b/apps/meteor/app/apps/server/bridges/http.ts @@ -1,7 +1,7 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import type { IHttpResponse } from '@rocket.chat/apps-engine/definition/accessors'; import type { IHttpBridgeRequestInfo } from '@rocket.chat/apps/server/bridges'; import { HttpBridge } from '@rocket.chat/apps/server/bridges/HttpBridge'; +import type { IHttpResponse } from '@rocket.chat/apps-engine/definition/accessors'; import { serverFetch as fetch, type ExtendedFetchOptions } from '@rocket.chat/server-fetch'; import { censorUrl } from '@rocket.chat/tools'; diff --git a/apps/meteor/app/apps/server/bridges/listeners.ts b/apps/meteor/app/apps/server/bridges/listeners.ts index 6c3b97e81f0a4..2df3d53d85f78 100644 --- a/apps/meteor/app/apps/server/bridges/listeners.ts +++ b/apps/meteor/app/apps/server/bridges/listeners.ts @@ -447,15 +447,12 @@ export class AppListenerBridge { throw new Error(`Transfer to entity with id ${transferData.to} not found`); } - return this.orch - .getManager() - .getListenerManager() - .executeListener(args.event, { - room, - from: from as NonNullable, // type definition in the apps-engine seems to be incorrect - to, - type: transferData.type, - }); + return this.orch.getManager().getListenerManager().executeListener(args.event, { + room, + from, // type definition in the apps-engine seems to be incorrect + to, + type: transferData.type, + }); } case AppInterface.IPostLivechatGuestSaved: { diff --git a/apps/meteor/app/apps/server/bridges/livechat.ts b/apps/meteor/app/apps/server/bridges/livechat.ts index 9e72a7e8232ab..ee3245e58ec03 100644 --- a/apps/meteor/app/apps/server/bridges/livechat.ts +++ b/apps/meteor/app/apps/server/bridges/livechat.ts @@ -1,4 +1,5 @@ import type { IAppServerOrchestrator, IAppsLivechatMessage, IAppsMessage } from '@rocket.chat/apps'; +import { LivechatBridge } from '@rocket.chat/apps/server/bridges/LivechatBridge'; import type { IExtraRoomParams } from '@rocket.chat/apps-engine/definition/accessors/ILivechatCreator'; import type { IVisitorExternalIdentifier, @@ -10,7 +11,6 @@ import type { } from '@rocket.chat/apps-engine/definition/livechat'; import type { IMessage as IAppsEngineMessage } from '@rocket.chat/apps-engine/definition/messages'; import type { IUser } from '@rocket.chat/apps-engine/definition/users'; -import { LivechatBridge } from '@rocket.chat/apps/server/bridges/LivechatBridge'; import type { ILivechatDepartment, IOmnichannelRoom, SelectedAgent, IMessage, ILivechatVisitor } from '@rocket.chat/core-typings'; import { OmnichannelSourceType } from '@rocket.chat/core-typings'; import { LivechatVisitors, LivechatRooms, LivechatDepartment, Users } from '@rocket.chat/models'; @@ -129,13 +129,12 @@ export class AppLivechatBridge extends LivechatBridge { type: OmnichannelSourceType.APP, id: appId, alias: this.orch.getManager()?.getOneById(appId)?.getName(), - ...(source && - source.type === 'app' && { - sidebarIcon: source.sidebarIcon, - defaultIcon: source.defaultIcon, - label: source.label, - destination: source.destination, - }), + ...(source?.type === 'app' && { + sidebarIcon: source.sidebarIcon, + defaultIcon: source.defaultIcon, + label: source.label, + destination: source.destination, + }), }, }, agent: agentRoom, diff --git a/apps/meteor/app/apps/server/bridges/messages.ts b/apps/meteor/app/apps/server/bridges/messages.ts index 40b9526b401ac..b0aadff9f7dff 100644 --- a/apps/meteor/app/apps/server/bridges/messages.ts +++ b/apps/meteor/app/apps/server/bridges/messages.ts @@ -1,8 +1,8 @@ import type { IAppServerOrchestrator, IAppsMessage, IAppsUser } from '@rocket.chat/apps'; -import type { Reaction } from '@rocket.chat/apps-engine/definition/messages'; -import type { IRoom } from '@rocket.chat/apps-engine/definition/rooms'; import type { ITypingDescriptor } from '@rocket.chat/apps/server/bridges/MessageBridge'; import { MessageBridge } from '@rocket.chat/apps/server/bridges/MessageBridge'; +import type { Reaction } from '@rocket.chat/apps-engine/definition/messages'; +import type { IRoom } from '@rocket.chat/apps-engine/definition/rooms'; import { api } from '@rocket.chat/core-services'; import type { IMessage } from '@rocket.chat/core-typings'; import { Users, Subscriptions } from '@rocket.chat/models'; diff --git a/apps/meteor/app/apps/server/bridges/moderation.ts b/apps/meteor/app/apps/server/bridges/moderation.ts index c8158d322ccfc..a80e79c5682eb 100644 --- a/apps/meteor/app/apps/server/bridges/moderation.ts +++ b/apps/meteor/app/apps/server/bridges/moderation.ts @@ -1,7 +1,7 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; +import { ModerationBridge } from '@rocket.chat/apps/server/bridges/ModerationBridge'; import type { IMessage } from '@rocket.chat/apps-engine/definition/messages'; import type { IUser } from '@rocket.chat/apps-engine/definition/users'; -import { ModerationBridge } from '@rocket.chat/apps/server/bridges/ModerationBridge'; import { ModerationReports } from '@rocket.chat/models'; import { reportMessage } from '../../../../server/lib/moderation/reportMessage'; diff --git a/apps/meteor/app/apps/server/bridges/oauthApps.ts b/apps/meteor/app/apps/server/bridges/oauthApps.ts index 9461d8acb1510..abba6a4fd3387 100644 --- a/apps/meteor/app/apps/server/bridges/oauthApps.ts +++ b/apps/meteor/app/apps/server/bridges/oauthApps.ts @@ -1,8 +1,8 @@ import { randomUUID } from 'crypto'; import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import type { IOAuthApp, IOAuthAppParams } from '@rocket.chat/apps-engine/definition/accessors/IOAuthApp'; import { OAuthAppsBridge } from '@rocket.chat/apps/server/bridges/OAuthAppsBridge'; +import type { IOAuthApp, IOAuthAppParams } from '@rocket.chat/apps-engine/definition/accessors/IOAuthApp'; import type { IOAuthApps } from '@rocket.chat/core-typings'; import { OAuthApps, Users } from '@rocket.chat/models'; import { Random } from '@rocket.chat/random'; diff --git a/apps/meteor/app/apps/server/bridges/outboundCommunication.ts b/apps/meteor/app/apps/server/bridges/outboundCommunication.ts index 7d973e1b53cd9..73b522aa7c501 100644 --- a/apps/meteor/app/apps/server/bridges/outboundCommunication.ts +++ b/apps/meteor/app/apps/server/bridges/outboundCommunication.ts @@ -1,10 +1,10 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; +import { OutboundMessageBridge } from '@rocket.chat/apps/server/bridges'; import type { IOutboundEmailMessageProvider, IOutboundMessageProviders, IOutboundPhoneMessageProvider, } from '@rocket.chat/apps-engine/definition/outboundCommunication'; -import { OutboundMessageBridge } from '@rocket.chat/apps/server/bridges'; import { getOutboundService } from '../../../livechat/server/lib/outboundcommunication'; diff --git a/apps/meteor/app/apps/server/bridges/persistence.ts b/apps/meteor/app/apps/server/bridges/persistence.ts index cb3ba23e5d606..e75dc50055988 100644 --- a/apps/meteor/app/apps/server/bridges/persistence.ts +++ b/apps/meteor/app/apps/server/bridges/persistence.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import type { RocketChatAssociationRecord } from '@rocket.chat/apps-engine/definition/metadata'; import { PersistenceBridge } from '@rocket.chat/apps/server/bridges/PersistenceBridge'; +import type { RocketChatAssociationRecord } from '@rocket.chat/apps-engine/definition/metadata'; import type { InsertOneResult } from 'mongodb'; export class AppPersistenceBridge extends PersistenceBridge { diff --git a/apps/meteor/app/apps/server/bridges/rooms.ts b/apps/meteor/app/apps/server/bridges/rooms.ts index 1f68497347ee1..27e4b45aea2b2 100644 --- a/apps/meteor/app/apps/server/bridges/rooms.ts +++ b/apps/meteor/app/apps/server/bridges/rooms.ts @@ -1,10 +1,10 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; +import type { GetMessagesOptions, GetRoomsFilters, GetRoomsOptions } from '@rocket.chat/apps/server/bridges/RoomBridge'; +import { RoomBridge } from '@rocket.chat/apps/server/bridges/RoomBridge'; import type { IMessage, IMessageRaw } from '@rocket.chat/apps-engine/definition/messages'; import type { IRoom, IRoomRaw } from '@rocket.chat/apps-engine/definition/rooms'; import { RoomType } from '@rocket.chat/apps-engine/definition/rooms'; import type { IUser } from '@rocket.chat/apps-engine/definition/users'; -import type { GetMessagesOptions, GetRoomsFilters, GetRoomsOptions } from '@rocket.chat/apps/server/bridges/RoomBridge'; -import { RoomBridge } from '@rocket.chat/apps/server/bridges/RoomBridge'; import type { ISubscription, IUser as ICoreUser, IRoom as ICoreRoom, IMessage as ICoreMessage } from '@rocket.chat/core-typings'; import { Subscriptions, Users, Rooms, Messages } from '@rocket.chat/models'; import type { FindOptions, Sort } from 'mongodb'; diff --git a/apps/meteor/app/apps/server/bridges/scheduler.ts b/apps/meteor/app/apps/server/bridges/scheduler.ts index 0b909457b5d22..cb4113b3ebfb9 100644 --- a/apps/meteor/app/apps/server/bridges/scheduler.ts +++ b/apps/meteor/app/apps/server/bridges/scheduler.ts @@ -1,9 +1,9 @@ import type { Job } from '@rocket.chat/agenda'; import { Agenda } from '@rocket.chat/agenda'; import type { IAppServerOrchestrator } from '@rocket.chat/apps'; +import { SchedulerBridge } from '@rocket.chat/apps/server/bridges/SchedulerBridge'; import type { IProcessor, IOnetimeSchedule, IRecurringSchedule, IJobContext } from '@rocket.chat/apps-engine/definition/scheduler'; import { StartupType } from '@rocket.chat/apps-engine/definition/scheduler'; -import { SchedulerBridge } from '@rocket.chat/apps/server/bridges/SchedulerBridge'; import { ObjectId } from 'bson'; import { MongoInternals } from 'meteor/mongo'; @@ -90,7 +90,7 @@ export class AppSchedulerBridge extends SchedulerBridge { }); if (runAfterRegister.length) { - return Promise.all(runAfterRegister) as Promise>; + return Promise.all(runAfterRegister); } } diff --git a/apps/meteor/app/apps/server/bridges/settings.ts b/apps/meteor/app/apps/server/bridges/settings.ts index 5707db884e7a7..d4b5813b364c1 100644 --- a/apps/meteor/app/apps/server/bridges/settings.ts +++ b/apps/meteor/app/apps/server/bridges/settings.ts @@ -1,7 +1,7 @@ import { Apps, type IAppServerOrchestrator } from '@rocket.chat/apps'; +import { ServerSettingBridge } from '@rocket.chat/apps/server/bridges/ServerSettingBridge'; import type { IReadSettingPermission } from '@rocket.chat/apps-engine/definition/permissions/IPermission'; import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; -import { ServerSettingBridge } from '@rocket.chat/apps/server/bridges/ServerSettingBridge'; import { Settings } from '@rocket.chat/models'; import { updateAuditedByApp } from '../../../../server/settings/lib/auditedSettingUpdates'; diff --git a/apps/meteor/app/apps/server/bridges/thread.ts b/apps/meteor/app/apps/server/bridges/thread.ts index b379394468ba8..a68c7a6d51484 100644 --- a/apps/meteor/app/apps/server/bridges/thread.ts +++ b/apps/meteor/app/apps/server/bridges/thread.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import type { IMessage } from '@rocket.chat/apps-engine/definition/messages'; import { ThreadBridge } from '@rocket.chat/apps/server/bridges/ThreadBridge'; +import type { IMessage } from '@rocket.chat/apps-engine/definition/messages'; export class AppThreadBridge extends ThreadBridge { constructor(private readonly orch: IAppServerOrchestrator) { diff --git a/apps/meteor/app/apps/server/bridges/uiInteraction.ts b/apps/meteor/app/apps/server/bridges/uiInteraction.ts index bf22a9bc0f331..8644b360d7d96 100644 --- a/apps/meteor/app/apps/server/bridges/uiInteraction.ts +++ b/apps/meteor/app/apps/server/bridges/uiInteraction.ts @@ -1,7 +1,7 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; +import { UiInteractionBridge as AppsEngineUiInteractionBridge } from '@rocket.chat/apps/server/bridges/UiInteractionBridge'; import type { IUIKitInteraction } from '@rocket.chat/apps-engine/definition/uikit'; import type { IUser } from '@rocket.chat/apps-engine/definition/users'; -import { UiInteractionBridge as AppsEngineUiInteractionBridge } from '@rocket.chat/apps/server/bridges/UiInteractionBridge'; import { api } from '@rocket.chat/core-services'; import type * as UiKit from '@rocket.chat/ui-kit'; diff --git a/apps/meteor/app/apps/server/bridges/uploads.ts b/apps/meteor/app/apps/server/bridges/uploads.ts index 74fbd99096582..b854a69414255 100644 --- a/apps/meteor/app/apps/server/bridges/uploads.ts +++ b/apps/meteor/app/apps/server/bridges/uploads.ts @@ -1,7 +1,7 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; +import { UploadBridge } from '@rocket.chat/apps/server/bridges/UploadBridge'; import type { IUpload } from '@rocket.chat/apps-engine/definition/uploads'; import type { IUploadDetails } from '@rocket.chat/apps-engine/definition/uploads/IUploadDetails'; -import { UploadBridge } from '@rocket.chat/apps/server/bridges/UploadBridge'; import { determineFileType } from '../../../../ee/lib/misc/determineFileType'; import { FileUpload } from '../../../file-upload/server'; diff --git a/apps/meteor/app/apps/server/bridges/users.ts b/apps/meteor/app/apps/server/bridges/users.ts index 4735dcd6462d2..21609230a450b 100644 --- a/apps/meteor/app/apps/server/bridges/users.ts +++ b/apps/meteor/app/apps/server/bridges/users.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import type { IUserCreationOptions, IUser, UserType } from '@rocket.chat/apps-engine/definition/users'; import { UserBridge } from '@rocket.chat/apps/server/bridges/UserBridge'; +import type { IUserCreationOptions, IUser, UserType } from '@rocket.chat/apps-engine/definition/users'; import { Presence } from '@rocket.chat/core-services'; import type { UserStatus } from '@rocket.chat/core-typings'; import { Subscriptions, Users } from '@rocket.chat/models'; diff --git a/apps/meteor/app/apps/server/bridges/videoConferences.ts b/apps/meteor/app/apps/server/bridges/videoConferences.ts index 36f6ce4a8e6b2..aa3bfafc40f58 100644 --- a/apps/meteor/app/apps/server/bridges/videoConferences.ts +++ b/apps/meteor/app/apps/server/bridges/videoConferences.ts @@ -1,7 +1,7 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; +import { VideoConferenceBridge } from '@rocket.chat/apps/server/bridges/VideoConferenceBridge'; import type { IVideoConfProvider } from '@rocket.chat/apps-engine/definition/videoConfProviders'; import type { AppVideoConference, VideoConference } from '@rocket.chat/apps-engine/definition/videoConferences'; -import { VideoConferenceBridge } from '@rocket.chat/apps/server/bridges/VideoConferenceBridge'; import { VideoConf } from '@rocket.chat/core-services'; import { videoConfProviders } from '../../../../server/lib/videoConfProviders'; diff --git a/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts b/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts index def9e15511b61..fc0abfb728f8e 100644 --- a/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts +++ b/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts @@ -1,6 +1,6 @@ import { Apps } from '@rocket.chat/apps'; -import { AppStatus, AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus'; import { AppInstallationSource } from '@rocket.chat/apps/server/storage'; +import { AppStatus, AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus'; import mem from 'mem'; import { SystemLogger } from '../../../../server/lib/logger/system'; diff --git a/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts b/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts index f34391c528055..538a8ebf2aac5 100644 --- a/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts +++ b/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts @@ -1,8 +1,8 @@ -import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; -import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; import type { ProxiedApp } from '@rocket.chat/apps/server/ProxiedApp'; import type { AppLicenseValidationResult } from '@rocket.chat/apps/server/marketplace/license'; import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; +import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; import type { AppStatusReport } from '@rocket.chat/core-services'; import type { App } from '@rocket.chat/core-typings'; diff --git a/apps/meteor/ee/server/apps/communication/rest.ts b/apps/meteor/ee/server/apps/communication/rest.ts index add85f1c642ee..704b5765bf78d 100644 --- a/apps/meteor/ee/server/apps/communication/rest.ts +++ b/apps/meteor/ee/server/apps/communication/rest.ts @@ -1,7 +1,7 @@ -import { AppStatus, AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus'; -import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; import type { AppManager } from '@rocket.chat/apps/server/AppManager'; import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace'; +import { AppStatus, AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus'; +import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; import type { AppStatusReport } from '@rocket.chat/core-services'; import type { IMessage, IUser } from '@rocket.chat/core-typings'; import { License } from '@rocket.chat/license'; diff --git a/apps/meteor/ee/server/apps/cron.ts b/apps/meteor/ee/server/apps/cron.ts index 1cd937d805ea5..074ff8804d129 100644 --- a/apps/meteor/ee/server/apps/cron.ts +++ b/apps/meteor/ee/server/apps/cron.ts @@ -1,5 +1,5 @@ -import { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { ProxiedApp } from '@rocket.chat/apps/server/ProxiedApp'; +import { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import { cronJobs } from '@rocket.chat/cron'; import { Settings, Users } from '@rocket.chat/models'; diff --git a/apps/meteor/ee/server/apps/orchestrator.js b/apps/meteor/ee/server/apps/orchestrator.js index 047af450f7668..0905185c999f8 100644 --- a/apps/meteor/ee/server/apps/orchestrator.js +++ b/apps/meteor/ee/server/apps/orchestrator.js @@ -3,8 +3,8 @@ import * as os from 'os'; import * as path from 'path'; import { registerOrchestrator } from '@rocket.chat/apps'; -import { EssentialAppDisabledException } from '@rocket.chat/apps-engine/definition/exceptions'; import { AppManager } from '@rocket.chat/apps/server/AppManager'; +import { EssentialAppDisabledException } from '@rocket.chat/apps-engine/definition/exceptions'; import { Logger } from '@rocket.chat/logger'; import { AppLogs, Apps as AppsModel, AppsPersistence, Statistics } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; diff --git a/apps/meteor/ee/server/apps/storage/AppRealStorage.ts b/apps/meteor/ee/server/apps/storage/AppRealStorage.ts index 09f92b3328805..0d64214397184 100644 --- a/apps/meteor/ee/server/apps/storage/AppRealStorage.ts +++ b/apps/meteor/ee/server/apps/storage/AppRealStorage.ts @@ -1,9 +1,9 @@ -import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; -import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; -import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace'; import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; import { AppMetadataStorage } from '@rocket.chat/apps/server/storage'; +import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; +import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; +import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; import type { Apps } from '@rocket.chat/models'; import { removeEmpty } from '@rocket.chat/tools'; import type { UpdateFilter } from 'mongodb'; diff --git a/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts b/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts index c90331956d90f..2775a40dde6e1 100644 --- a/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts +++ b/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts @@ -1,7 +1,7 @@ +import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps/server/storage'; import { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import { AppInterface } from '@rocket.chat/apps-engine/definition/metadata'; import { SettingType } from '@rocket.chat/apps-engine/definition/settings'; -import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps/server/storage'; import { expect } from 'chai'; import sinon from 'sinon'; diff --git a/apps/meteor/server/services/apps-engine/service.ts b/apps/meteor/server/services/apps-engine/service.ts index ab535fad01b8e..8ad533911c751 100644 --- a/apps/meteor/server/services/apps-engine/service.ts +++ b/apps/meteor/server/services/apps-engine/service.ts @@ -1,9 +1,9 @@ import { Apps, AppEvents } from '@rocket.chat/apps'; +import type { IGetAppsFilter } from '@rocket.chat/apps/server/IGetAppsFilter'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import { AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; -import type { IGetAppsFilter } from '@rocket.chat/apps/server/IGetAppsFilter'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; import type { AppStatusReport, IAppsEngineService } from '@rocket.chat/core-services'; import { ServiceClassInternal } from '@rocket.chat/core-services'; diff --git a/apps/meteor/server/services/video-conference/service.ts b/apps/meteor/server/services/video-conference/service.ts index b98f7f7064863..886fe52dccada 100644 --- a/apps/meteor/server/services/video-conference/service.ts +++ b/apps/meteor/server/services/video-conference/service.ts @@ -1,6 +1,6 @@ import { Apps } from '@rocket.chat/apps'; -import type { VideoConfData, VideoConfDataExtended } from '@rocket.chat/apps-engine/definition/videoConfProviders'; import type { AppVideoConfProviderManager } from '@rocket.chat/apps/server/managers'; +import type { VideoConfData, VideoConfDataExtended } from '@rocket.chat/apps-engine/definition/videoConfProviders'; import type { IVideoConfService, VideoConferenceJoinOptions } from '@rocket.chat/core-services'; import { api, ServiceClassInternal, Room } from '@rocket.chat/core-services'; import type { diff --git a/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts b/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts index c2548d1add1af..c97e1a37787bb 100644 --- a/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts +++ b/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts @@ -1,6 +1,6 @@ -import { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace'; import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { Apps } from '@rocket.chat/core-services'; import type { LicenseImp } from '@rocket.chat/license'; import { expect } from 'chai'; @@ -34,9 +34,6 @@ const getDefaultApp = (): IAppStorageItem => ({ updatedAt: new Date('2024-10-09T19:27:33.923Z'), }); -// We will be passing promises to the `expect` function -/* eslint-disable @typescript-eslint/no-floating-promises */ - describe('canEnableApp', () => { it('should throw the message "apps-engine-not-initialized" when appropriate', () => { const AppsMock = { diff --git a/packages/apps/src/IAppServerOrchestrator.ts b/packages/apps/src/IAppServerOrchestrator.ts index 20e1edef03f35..aabfb0078750c 100644 --- a/packages/apps/src/IAppServerOrchestrator.ts +++ b/packages/apps/src/IAppServerOrchestrator.ts @@ -1,11 +1,11 @@ -import type { AppManager } from './server/AppManager'; -import type { AppSourceStorage } from './server/storage'; import type { Logger } from '@rocket.chat/logger'; import type { IAppsPersistenceModel } from '@rocket.chat/model-typings'; import type { AppBridges, AppEvents, AppMetadataStorage } from './AppsEngine'; import type { IAppServerNotifier } from './IAppServerNotifier'; import type { IAppConvertersMap } from './converters'; +import type { AppManager } from './server/AppManager'; +import type { AppSourceStorage } from './server/storage'; export interface IAppServerOrchestrator { initialize(): void; From f7d29929313413d23e434a8852bb142a2c6701fe Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Tue, 28 Apr 2026 19:58:54 -0300 Subject: [PATCH 11/25] fix apps package.json --- packages/apps/package.json | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/packages/apps/package.json b/packages/apps/package.json index 6c5f42bc755e7..17e16c9f9cddc 100644 --- a/packages/apps/package.json +++ b/packages/apps/package.json @@ -6,28 +6,26 @@ "typings": "./dist/index.d.ts", "exports": { ".": { - "require": "./dist/index.js", - "types": "./dist/index.d.ts" + "types": "./dist/index.d.ts", + "require": "./dist/index.js" }, "./server/*": { - "require": "./dist/server/*.js", - "types": "./dist/server/*.d.ts" + "types": "./dist/server/*.d.ts", + "require": "./dist/server/*.js" }, "./client/*": { - "require": "./dist/client/*.js", - "types": "./dist/client/*.d.ts" + "types": "./dist/client/*.d.ts", + "require": "./dist/client/*.js" } }, "typesVersions": { "*": { - "server/*": ["./dist/server/*"], - "client/*": ["./dist/client/*"] + "*": ["./dist/*"] } }, "files": [ "/dist", - "/deno-runtime", - "/scripts" + "/deno-runtime" ], "scripts": { "build": "run-s build:clean build:default build:deno-cache", From 6accfcb56deca21a662e8d8d7624f2218038c32e Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Tue, 28 Apr 2026 20:00:11 -0300 Subject: [PATCH 12/25] fix messages converter --- packages/apps/src/converters/IAppMessagesConverter.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/apps/src/converters/IAppMessagesConverter.ts b/packages/apps/src/converters/IAppMessagesConverter.ts index 8c10114304d09..5a2a025b86206 100644 --- a/packages/apps/src/converters/IAppMessagesConverter.ts +++ b/packages/apps/src/converters/IAppMessagesConverter.ts @@ -5,8 +5,8 @@ import type { IAppsMessage, IAppsMesssageRaw } from '../AppsEngine'; export interface IAppMessagesConverter { convertById(messageId: IMessage['_id']): Promise; convertMessage(message: undefined | null): Promise; - convertMessage(message: IMessage): Promise; - convertMessage(message: IMessage | undefined | null): Promise; + convertMessage(message: IMessage, cacheKey?: object): Promise; + convertMessage(message: IMessage | undefined | null, cacheKey?: object): Promise; convertAppMessage(message: undefined | null): Promise; convertAppMessage(message: IAppsMessage): Promise; convertAppMessage(message: IAppsMessage, isPartial: boolean): Promise>; From 3a733bfeb46384c50cc7252e9ee1ef93847b58ff Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Tue, 28 Apr 2026 20:23:38 -0300 Subject: [PATCH 13/25] fix apps package.json --- packages/apps/package.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/apps/package.json b/packages/apps/package.json index 17e16c9f9cddc..66b590e2e664c 100644 --- a/packages/apps/package.json +++ b/packages/apps/package.json @@ -2,8 +2,6 @@ "name": "@rocket.chat/apps", "version": "0.6.9", "private": true, - "main": "./dist/index.js", - "typings": "./dist/index.d.ts", "exports": { ".": { "types": "./dist/index.d.ts", From 27ad74fdea0b8d5ab19a1a1e48f0b0ec08dbb7c3 Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Tue, 28 Apr 2026 20:38:12 -0300 Subject: [PATCH 14/25] stop importing from deep index files --- apps/meteor/app/apps/server/bridges/bridges.js | 2 +- apps/meteor/app/apps/server/bridges/contact.ts | 2 +- apps/meteor/app/apps/server/bridges/email.ts | 2 +- apps/meteor/app/apps/server/bridges/experimental.ts | 2 +- apps/meteor/app/apps/server/bridges/http.ts | 2 +- apps/meteor/app/apps/server/bridges/index.ts | 4 +--- apps/meteor/app/apps/server/bridges/livechat.ts | 12 +++--------- .../app/apps/server/bridges/outboundCommunication.ts | 2 +- apps/meteor/app/apps/server/bridges/roles.ts | 2 +- .../app/statistics/server/lib/getAppsStatistics.ts | 2 +- apps/meteor/client/apps/RealAppsEngineUIHost.ts | 3 ++- apps/meteor/ee/app/license/server/canEnableApp.ts | 2 +- apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts | 4 ++-- apps/meteor/ee/server/apps/communication/rest.ts | 2 +- .../apps/storage/AppFileSystemSourceStorage.ts | 4 ++-- .../ee/server/apps/storage/AppGridFSSourceStorage.ts | 4 ++-- .../ee/server/apps/storage/AppRealLogStorage.ts | 6 +++--- apps/meteor/ee/server/apps/storage/AppRealStorage.ts | 6 +++--- .../apps/storage/ConfigurableAppSourceStorage.ts | 4 ++-- .../ee/tests/unit/server/apps/AppRealStorage.spec.ts | 2 +- .../apps/getInstallationSourceFromAppStorageItem.ts | 2 +- apps/meteor/server/services/apps-engine/service.ts | 2 +- .../server/services/video-conference/service.ts | 2 +- apps/meteor/server/startup/migrations/v294.ts | 10 ++++------ apps/meteor/server/startup/migrations/v307.ts | 10 ++++------ apps/meteor/tests/end-to-end/apps/app-logs-export.ts | 2 +- .../end-to-end/apps/app-logs-nested-requests.ts | 2 +- apps/meteor/tests/end-to-end/apps/app-logs.ts | 2 +- apps/meteor/tests/mocks/client/marketplace.tsx | 2 +- apps/meteor/tests/mocks/data.ts | 3 ++- .../unit/app/license/server/canEnableApp.spec.ts | 4 ++-- 31 files changed, 50 insertions(+), 60 deletions(-) diff --git a/apps/meteor/app/apps/server/bridges/bridges.js b/apps/meteor/app/apps/server/bridges/bridges.js index a62aae2436595..7ec5279e00d3f 100644 --- a/apps/meteor/app/apps/server/bridges/bridges.js +++ b/apps/meteor/app/apps/server/bridges/bridges.js @@ -1,4 +1,4 @@ -import { AppBridges } from '@rocket.chat/apps/server/bridges'; +import { AppBridges } from '@rocket.chat/apps/server/bridges/AppBridges'; import { AppActivationBridge } from './activation'; import { AppApisBridge } from './api'; diff --git a/apps/meteor/app/apps/server/bridges/contact.ts b/apps/meteor/app/apps/server/bridges/contact.ts index c8871e6cb0cc7..d6d47c6c2c4ec 100644 --- a/apps/meteor/app/apps/server/bridges/contact.ts +++ b/apps/meteor/app/apps/server/bridges/contact.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { ContactBridge } from '@rocket.chat/apps/server/bridges'; +import { ContactBridge } from '@rocket.chat/apps/server/bridges/ContactBridge'; import type { ILivechatContact } from '@rocket.chat/apps-engine/definition/livechat'; import { addContactEmail } from '../../../livechat/server/lib/contacts/addContactEmail'; diff --git a/apps/meteor/app/apps/server/bridges/email.ts b/apps/meteor/app/apps/server/bridges/email.ts index 25a798b878723..7bec7dce6a1af 100644 --- a/apps/meteor/app/apps/server/bridges/email.ts +++ b/apps/meteor/app/apps/server/bridges/email.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { EmailBridge } from '@rocket.chat/apps/server/bridges'; +import { EmailBridge } from '@rocket.chat/apps/server/bridges/EmailBridge'; import type { IEmail } from '@rocket.chat/apps-engine/definition/email'; import * as Mailer from '../../../mailer/server/api'; diff --git a/apps/meteor/app/apps/server/bridges/experimental.ts b/apps/meteor/app/apps/server/bridges/experimental.ts index 05ccccdca5a03..b379b7a00f2a9 100644 --- a/apps/meteor/app/apps/server/bridges/experimental.ts +++ b/apps/meteor/app/apps/server/bridges/experimental.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { ExperimentalBridge } from '@rocket.chat/apps/server/bridges'; +import { ExperimentalBridge } from '@rocket.chat/apps/server/bridges/ExperimentalBridge'; export class AppExperimentalBridge extends ExperimentalBridge { constructor(protected readonly orch: IAppServerOrchestrator) { diff --git a/apps/meteor/app/apps/server/bridges/http.ts b/apps/meteor/app/apps/server/bridges/http.ts index 060d921df5c4c..d443f97591cbc 100644 --- a/apps/meteor/app/apps/server/bridges/http.ts +++ b/apps/meteor/app/apps/server/bridges/http.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import type { IHttpBridgeRequestInfo } from '@rocket.chat/apps/server/bridges'; +import type { IHttpBridgeRequestInfo } from '@rocket.chat/apps/server/bridges/HttpBridge'; import { HttpBridge } from '@rocket.chat/apps/server/bridges/HttpBridge'; import type { IHttpResponse } from '@rocket.chat/apps-engine/definition/accessors'; import { serverFetch as fetch, type ExtendedFetchOptions } from '@rocket.chat/server-fetch'; diff --git a/apps/meteor/app/apps/server/bridges/index.ts b/apps/meteor/app/apps/server/bridges/index.ts index 7705ea45498f0..7ac397768f74d 100644 --- a/apps/meteor/app/apps/server/bridges/index.ts +++ b/apps/meteor/app/apps/server/bridges/index.ts @@ -1,3 +1 @@ -import { RealAppBridges } from './bridges'; - -export { RealAppBridges }; +export * from './bridges'; diff --git a/apps/meteor/app/apps/server/bridges/livechat.ts b/apps/meteor/app/apps/server/bridges/livechat.ts index ee3245e58ec03..47746e58b5d46 100644 --- a/apps/meteor/app/apps/server/bridges/livechat.ts +++ b/apps/meteor/app/apps/server/bridges/livechat.ts @@ -1,4 +1,4 @@ -import type { IAppServerOrchestrator, IAppsLivechatMessage, IAppsMessage } from '@rocket.chat/apps'; +import type { IAppServerOrchestrator, IAppsLivechatMessage } from '@rocket.chat/apps'; import { LivechatBridge } from '@rocket.chat/apps/server/bridges/LivechatBridge'; import type { IExtraRoomParams } from '@rocket.chat/apps-engine/definition/accessors/ILivechatCreator'; import type { @@ -11,7 +11,7 @@ import type { } from '@rocket.chat/apps-engine/definition/livechat'; import type { IMessage as IAppsEngineMessage } from '@rocket.chat/apps-engine/definition/messages'; import type { IUser } from '@rocket.chat/apps-engine/definition/users'; -import type { ILivechatDepartment, IOmnichannelRoom, SelectedAgent, IMessage, ILivechatVisitor } from '@rocket.chat/core-typings'; +import type { ILivechatDepartment, IOmnichannelRoom, SelectedAgent, ILivechatVisitor } from '@rocket.chat/core-typings'; import { OmnichannelSourceType } from '@rocket.chat/core-typings'; import { LivechatVisitors, LivechatRooms, LivechatDepartment, Users } from '@rocket.chat/models'; import { registerGuest } from '@rocket.chat/omni-core'; @@ -29,12 +29,6 @@ import { online } from '../../../livechat/server/lib/service-status'; import { transfer } from '../../../livechat/server/lib/transfer'; import { settings } from '../../../settings/server'; -declare module '@rocket.chat/apps/dist/converters/IAppMessagesConverter' { - export interface IAppMessagesConverter { - convertMessage(message: IMessage, cacheObj?: object): Promise; - } -} - declare module '@rocket.chat/apps-engine/definition/accessors/ILivechatCreator' { interface IExtraRoomParams { customFields?: Record; @@ -65,7 +59,7 @@ export class AppLivechatBridge extends LivechatBridge { // #TODO: #AppsEngineTypes - Remove explicit types and typecasts once the apps-engine definition/implementation mismatch is fixed. const guest = this.orch.getConverters().get('visitors').convertAppVisitor(message.visitor); - const appMessage = (await this.orch.getConverters().get('messages').convertAppMessage(message)) as IMessage | undefined; + const appMessage = await this.orch.getConverters().get('messages').convertAppMessage(message); const livechatMessage = appMessage as ILivechatMessage | undefined; const msg = await sendMessage({ diff --git a/apps/meteor/app/apps/server/bridges/outboundCommunication.ts b/apps/meteor/app/apps/server/bridges/outboundCommunication.ts index 73b522aa7c501..3f6422aa7ffd4 100644 --- a/apps/meteor/app/apps/server/bridges/outboundCommunication.ts +++ b/apps/meteor/app/apps/server/bridges/outboundCommunication.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { OutboundMessageBridge } from '@rocket.chat/apps/server/bridges'; +import { OutboundMessageBridge } from '@rocket.chat/apps/server/bridges/OutboundMessagesBridge'; import type { IOutboundEmailMessageProvider, IOutboundMessageProviders, diff --git a/apps/meteor/app/apps/server/bridges/roles.ts b/apps/meteor/app/apps/server/bridges/roles.ts index f0d5b5381c09e..7001cc92f7483 100644 --- a/apps/meteor/app/apps/server/bridges/roles.ts +++ b/apps/meteor/app/apps/server/bridges/roles.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator, IAppsRole } from '@rocket.chat/apps'; -import { RoleBridge } from '@rocket.chat/apps/server/bridges'; +import { RoleBridge } from '@rocket.chat/apps/server/bridges/RoleBridge'; import type { IRole } from '@rocket.chat/core-typings'; import { Roles } from '@rocket.chat/models'; diff --git a/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts b/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts index fc0abfb728f8e..f9170ddc36da6 100644 --- a/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts +++ b/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts @@ -1,5 +1,5 @@ import { Apps } from '@rocket.chat/apps'; -import { AppInstallationSource } from '@rocket.chat/apps/server/storage'; +import { AppInstallationSource } from '@rocket.chat/apps/server/storage/IAppStorageItem'; import { AppStatus, AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus'; import mem from 'mem'; diff --git a/apps/meteor/client/apps/RealAppsEngineUIHost.ts b/apps/meteor/client/apps/RealAppsEngineUIHost.ts index 61e7ce516aab6..5d09c997216da 100644 --- a/apps/meteor/client/apps/RealAppsEngineUIHost.ts +++ b/apps/meteor/client/apps/RealAppsEngineUIHost.ts @@ -1,5 +1,6 @@ import { AppsEngineUIHost } from '@rocket.chat/apps/client/AppsEngineUIHost'; -import type { IExternalComponentRoomInfo, IExternalComponentUserInfo } from '@rocket.chat/apps/client/definition'; +import type { IExternalComponentRoomInfo } from '@rocket.chat/apps/client/definition/IExternalComponentRoomInfo'; +import type { IExternalComponentUserInfo } from '@rocket.chat/apps/client/definition/IExternalComponentUserInfo'; import { getUserAvatarURL } from '../../app/utils/client/getUserAvatarURL'; import { sdk } from '../../app/utils/client/lib/SDKClient'; diff --git a/apps/meteor/ee/app/license/server/canEnableApp.ts b/apps/meteor/ee/app/license/server/canEnableApp.ts index 647168c15d6a8..78fbf319b9e30 100644 --- a/apps/meteor/ee/app/license/server/canEnableApp.ts +++ b/apps/meteor/ee/app/license/server/canEnableApp.ts @@ -1,4 +1,4 @@ -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; import { Apps } from '@rocket.chat/core-services'; import type { LicenseModule } from '@rocket.chat/core-typings'; import { License, type LicenseImp } from '@rocket.chat/license'; diff --git a/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts b/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts index 538a8ebf2aac5..48ee6e29d51d6 100644 --- a/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts +++ b/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts @@ -1,6 +1,6 @@ import type { ProxiedApp } from '@rocket.chat/apps/server/ProxiedApp'; -import type { AppLicenseValidationResult } from '@rocket.chat/apps/server/marketplace/license'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import type { AppLicenseValidationResult } from '@rocket.chat/apps/server/marketplace/license/AppLicenseValidationResult'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; import type { AppStatusReport } from '@rocket.chat/core-services'; diff --git a/apps/meteor/ee/server/apps/communication/rest.ts b/apps/meteor/ee/server/apps/communication/rest.ts index 704b5765bf78d..ba05689d2a67c 100644 --- a/apps/meteor/ee/server/apps/communication/rest.ts +++ b/apps/meteor/ee/server/apps/communication/rest.ts @@ -1,5 +1,5 @@ import type { AppManager } from '@rocket.chat/apps/server/AppManager'; -import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace'; +import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace/IMarketplaceInfo'; import { AppStatus, AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; import type { AppStatusReport } from '@rocket.chat/core-services'; diff --git a/apps/meteor/ee/server/apps/storage/AppFileSystemSourceStorage.ts b/apps/meteor/ee/server/apps/storage/AppFileSystemSourceStorage.ts index 31c34a6d09bed..2b96171100326 100644 --- a/apps/meteor/ee/server/apps/storage/AppFileSystemSourceStorage.ts +++ b/apps/meteor/ee/server/apps/storage/AppFileSystemSourceStorage.ts @@ -1,8 +1,8 @@ import { promises as fs } from 'fs'; import { join, normalize } from 'path'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; -import { AppSourceStorage } from '@rocket.chat/apps/server/storage'; +import { AppSourceStorage } from '@rocket.chat/apps/server/storage/AppSourceStorage'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; export class AppFileSystemSourceStorage extends AppSourceStorage { private pathPrefix = 'fs:/'; diff --git a/apps/meteor/ee/server/apps/storage/AppGridFSSourceStorage.ts b/apps/meteor/ee/server/apps/storage/AppGridFSSourceStorage.ts index d9561c45ed7db..c8771cf6ae1a3 100644 --- a/apps/meteor/ee/server/apps/storage/AppGridFSSourceStorage.ts +++ b/apps/meteor/ee/server/apps/storage/AppGridFSSourceStorage.ts @@ -1,5 +1,5 @@ -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; -import { AppSourceStorage } from '@rocket.chat/apps/server/storage'; +import { AppSourceStorage } from '@rocket.chat/apps/server/storage/AppSourceStorage'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; import { streamToBuffer } from '@rocket.chat/tools'; import { MongoInternals } from 'meteor/mongo'; import { NpmModuleMongodb } from 'meteor/npm-mongo'; diff --git a/apps/meteor/ee/server/apps/storage/AppRealLogStorage.ts b/apps/meteor/ee/server/apps/storage/AppRealLogStorage.ts index 0bdb8f38e4aeb..ba5927dd2f56d 100644 --- a/apps/meteor/ee/server/apps/storage/AppRealLogStorage.ts +++ b/apps/meteor/ee/server/apps/storage/AppRealLogStorage.ts @@ -1,6 +1,6 @@ -import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging'; -import type { IAppLogStorageFindOptions } from '@rocket.chat/apps/server/storage'; -import { AppLogStorage } from '@rocket.chat/apps/server/storage'; +import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging/ILoggerStorageEntry'; +import type { IAppLogStorageFindOptions } from '@rocket.chat/apps/server/storage/AppLogStorage'; +import { AppLogStorage } from '@rocket.chat/apps/server/storage/AppLogStorage'; import { InstanceStatus } from '@rocket.chat/instance-status'; import type { AppLogs } from '@rocket.chat/models'; diff --git a/apps/meteor/ee/server/apps/storage/AppRealStorage.ts b/apps/meteor/ee/server/apps/storage/AppRealStorage.ts index 0d64214397184..d1438bc2858d3 100644 --- a/apps/meteor/ee/server/apps/storage/AppRealStorage.ts +++ b/apps/meteor/ee/server/apps/storage/AppRealStorage.ts @@ -1,6 +1,6 @@ -import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; -import { AppMetadataStorage } from '@rocket.chat/apps/server/storage'; +import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace/IMarketplaceInfo'; +import { AppMetadataStorage } from '@rocket.chat/apps/server/storage/AppMetadataStorage'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; diff --git a/apps/meteor/ee/server/apps/storage/ConfigurableAppSourceStorage.ts b/apps/meteor/ee/server/apps/storage/ConfigurableAppSourceStorage.ts index d201dc2d76bb2..9666514634899 100644 --- a/apps/meteor/ee/server/apps/storage/ConfigurableAppSourceStorage.ts +++ b/apps/meteor/ee/server/apps/storage/ConfigurableAppSourceStorage.ts @@ -1,5 +1,5 @@ -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; -import { AppSourceStorage } from '@rocket.chat/apps/server/storage'; +import { AppSourceStorage } from '@rocket.chat/apps/server/storage/AppSourceStorage'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; import { AppFileSystemSourceStorage } from './AppFileSystemSourceStorage'; import { AppGridFSSourceStorage } from './AppGridFSSourceStorage'; diff --git a/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts b/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts index 2775a40dde6e1..4c6a585c4f629 100644 --- a/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts +++ b/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts @@ -1,4 +1,4 @@ -import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; import { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import { AppInterface } from '@rocket.chat/apps-engine/definition/metadata'; import { SettingType } from '@rocket.chat/apps-engine/definition/settings'; diff --git a/apps/meteor/lib/apps/getInstallationSourceFromAppStorageItem.ts b/apps/meteor/lib/apps/getInstallationSourceFromAppStorageItem.ts index ec346e7ddd22d..d851da8e469c9 100644 --- a/apps/meteor/lib/apps/getInstallationSourceFromAppStorageItem.ts +++ b/apps/meteor/lib/apps/getInstallationSourceFromAppStorageItem.ts @@ -1,4 +1,4 @@ -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; import type { LicenseAppSources } from '@rocket.chat/core-typings'; /** diff --git a/apps/meteor/server/services/apps-engine/service.ts b/apps/meteor/server/services/apps-engine/service.ts index 8ad533911c751..307e5280b8d90 100644 --- a/apps/meteor/server/services/apps-engine/service.ts +++ b/apps/meteor/server/services/apps-engine/service.ts @@ -1,6 +1,6 @@ import { Apps, AppEvents } from '@rocket.chat/apps'; import type { IGetAppsFilter } from '@rocket.chat/apps/server/IGetAppsFilter'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import { AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; diff --git a/apps/meteor/server/services/video-conference/service.ts b/apps/meteor/server/services/video-conference/service.ts index 886fe52dccada..1005d4ba331a3 100644 --- a/apps/meteor/server/services/video-conference/service.ts +++ b/apps/meteor/server/services/video-conference/service.ts @@ -1,5 +1,5 @@ import { Apps } from '@rocket.chat/apps'; -import type { AppVideoConfProviderManager } from '@rocket.chat/apps/server/managers'; +import type { AppVideoConfProviderManager } from '@rocket.chat/apps/server/managers/AppVideoConfProviderManager'; import type { VideoConfData, VideoConfDataExtended } from '@rocket.chat/apps-engine/definition/videoConfProviders'; import type { IVideoConfService, VideoConferenceJoinOptions } from '@rocket.chat/core-services'; import { api, ServiceClassInternal, Room } from '@rocket.chat/core-services'; diff --git a/apps/meteor/server/startup/migrations/v294.ts b/apps/meteor/server/startup/migrations/v294.ts index f31cd6a1d6bc1..79d3d53223dfd 100644 --- a/apps/meteor/server/startup/migrations/v294.ts +++ b/apps/meteor/server/startup/migrations/v294.ts @@ -1,8 +1,6 @@ import { Apps } from '@rocket.chat/apps'; -import type { AppSignatureManager } from '@rocket.chat/apps/server/managers/AppSignatureManager'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; -import type { AppRealStorage } from '../../../ee/server/apps/storage'; import { addMigration } from '../../lib/migrations'; addMigration({ @@ -14,12 +12,12 @@ addMigration({ Apps.initialize(); - const sigMan = Apps.getManager()?.getSignatureManager() as AppSignatureManager; - const appsStorage = Apps.getStorage() as AppRealStorage; + const sigMan = Apps.getManager().getSignatureManager(); + const appsStorage = Apps.getStorage(); const apps = await appsStorage.retrieveAll(); - for await (const app of apps.values()) { + for (const app of apps.values()) { if (app.installationSource && app.signature) { continue; } diff --git a/apps/meteor/server/startup/migrations/v307.ts b/apps/meteor/server/startup/migrations/v307.ts index 3be8a80f0bca6..188dae706e16c 100644 --- a/apps/meteor/server/startup/migrations/v307.ts +++ b/apps/meteor/server/startup/migrations/v307.ts @@ -1,9 +1,7 @@ import { Apps } from '@rocket.chat/apps'; -import type { AppSignatureManager } from '@rocket.chat/apps/server/managers/AppSignatureManager'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; import { License } from '@rocket.chat/license'; -import type { AppRealStorage } from '../../../ee/server/apps/storage'; import { addMigration } from '../../lib/migrations'; addMigration({ @@ -21,11 +19,11 @@ addMigration({ Apps.initialize(); - const sigMan = Apps.getManager()?.getSignatureManager() as AppSignatureManager; - const appsStorage = Apps.getStorage() as AppRealStorage; + const sigMan = Apps.getManager().getSignatureManager(); + const appsStorage = Apps.getStorage(); const apps = await appsStorage.retrieveAllPrivate(); - for await (const app of apps.values()) { + for (const app of apps.values()) { const updatedApp = { ...app, migrated: true, diff --git a/apps/meteor/tests/end-to-end/apps/app-logs-export.ts b/apps/meteor/tests/end-to-end/apps/app-logs-export.ts index 30422bffa7bf3..83cf3dcdb4ccf 100644 --- a/apps/meteor/tests/end-to-end/apps/app-logs-export.ts +++ b/apps/meteor/tests/end-to-end/apps/app-logs-export.ts @@ -1,4 +1,4 @@ -import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging'; +import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging/ILoggerStorageEntry'; import type { App } from '@rocket.chat/core-typings'; import { expect } from 'chai'; import { after, before, describe, it } from 'mocha'; diff --git a/apps/meteor/tests/end-to-end/apps/app-logs-nested-requests.ts b/apps/meteor/tests/end-to-end/apps/app-logs-nested-requests.ts index 302ec44961139..072fb3e49dcfd 100644 --- a/apps/meteor/tests/end-to-end/apps/app-logs-nested-requests.ts +++ b/apps/meteor/tests/end-to-end/apps/app-logs-nested-requests.ts @@ -1,4 +1,4 @@ -import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging'; +import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging/ILoggerStorageEntry'; import { expect } from 'chai'; import { after, before, describe, it } from 'mocha'; diff --git a/apps/meteor/tests/end-to-end/apps/app-logs.ts b/apps/meteor/tests/end-to-end/apps/app-logs.ts index de990875ef905..b5284b7dfbddd 100644 --- a/apps/meteor/tests/end-to-end/apps/app-logs.ts +++ b/apps/meteor/tests/end-to-end/apps/app-logs.ts @@ -1,4 +1,4 @@ -import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging'; +import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging/ILoggerStorageEntry'; import type { App } from '@rocket.chat/core-typings'; import { expect } from 'chai'; import { after, before, describe, it } from 'mocha'; diff --git a/apps/meteor/tests/mocks/client/marketplace.tsx b/apps/meteor/tests/mocks/client/marketplace.tsx index 5c26331333a25..bb1c49573aa30 100644 --- a/apps/meteor/tests/mocks/client/marketplace.tsx +++ b/apps/meteor/tests/mocks/client/marketplace.tsx @@ -1,6 +1,6 @@ import { AppClientManager } from '@rocket.chat/apps/client/AppClientManager'; import { AppsEngineUIHost } from '@rocket.chat/apps/client/AppsEngineUIHost'; -import type { IExternalComponentRoomInfo } from '@rocket.chat/apps/client/definition'; +import type { IExternalComponentRoomInfo } from '@rocket.chat/apps/client/definition/IExternalComponentRoomInfo'; import type { ReactNode } from 'react'; import { AppsContext, type IAppsOrchestrator } from '../../../client/contexts/AppsContext'; diff --git a/apps/meteor/tests/mocks/data.ts b/apps/meteor/tests/mocks/data.ts index a4ecfa5ba4b95..f10f5bfc06644 100644 --- a/apps/meteor/tests/mocks/data.ts +++ b/apps/meteor/tests/mocks/data.ts @@ -1,5 +1,6 @@ import { faker } from '@faker-js/faker'; -import type { IExternalComponentRoomInfo, IExternalComponentUserInfo } from '@rocket.chat/apps/client/definition'; +import type { IExternalComponentRoomInfo } from '@rocket.chat/apps/client/definition/IExternalComponentRoomInfo'; +import type { IExternalComponentUserInfo } from '@rocket.chat/apps/client/definition/IExternalComponentUserInfo'; import type { ILivechatContact } from '@rocket.chat/apps-engine/definition/livechat'; import { AppSubscriptionStatus, diff --git a/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts b/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts index c97e1a37787bb..c72168f504d0f 100644 --- a/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts +++ b/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts @@ -1,5 +1,5 @@ -import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace'; -import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace/IMarketplaceInfo'; +import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; import { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { Apps } from '@rocket.chat/core-services'; import type { LicenseImp } from '@rocket.chat/license'; From 6ba5857dff27075f02a9562f9a888f2546cd08c2 Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Tue, 28 Apr 2026 20:39:02 -0300 Subject: [PATCH 15/25] fix type error in listeners bridge --- apps/meteor/app/apps/server/bridges/listeners.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/apps/meteor/app/apps/server/bridges/listeners.ts b/apps/meteor/app/apps/server/bridges/listeners.ts index 2df3d53d85f78..6c3b97e81f0a4 100644 --- a/apps/meteor/app/apps/server/bridges/listeners.ts +++ b/apps/meteor/app/apps/server/bridges/listeners.ts @@ -447,12 +447,15 @@ export class AppListenerBridge { throw new Error(`Transfer to entity with id ${transferData.to} not found`); } - return this.orch.getManager().getListenerManager().executeListener(args.event, { - room, - from, // type definition in the apps-engine seems to be incorrect - to, - type: transferData.type, - }); + return this.orch + .getManager() + .getListenerManager() + .executeListener(args.event, { + room, + from: from as NonNullable, // type definition in the apps-engine seems to be incorrect + to, + type: transferData.type, + }); } case AppInterface.IPostLivechatGuestSaved: { From ad33f7176c747ffae663066cd1d46ed5e2944a72 Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Tue, 28 Apr 2026 20:39:09 -0300 Subject: [PATCH 16/25] update yarn.lock --- yarn.lock | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index b8074571378cf..3882adc09d08d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9052,7 +9052,7 @@ __metadata: version: 0.0.0-use.local resolution: "@rocket.chat/core-services@workspace:packages/core-services" dependencies: - "@rocket.chat/apps-engine": "workspace:^" + "@rocket.chat/apps": "workspace:^" "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/federation-sdk": "npm:0.6.3" "@rocket.chat/http-router": "workspace:^" @@ -14828,7 +14828,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>=0.0.2, @types/node@npm:>=12, @types/node@npm:>=12.0.0, @types/node@npm:>=13.7.0, @types/node@npm:>=18, @types/node@npm:>=18.0.0": +"@types/node@npm:*, @types/node@npm:>=12, @types/node@npm:>=12.0.0, @types/node@npm:>=13.7.0, @types/node@npm:>=18, @types/node@npm:>=18.0.0": version: 22.16.1 resolution: "@types/node@npm:22.16.1" dependencies: @@ -14837,6 +14837,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:>=0.0.2": + version: 25.6.0 + resolution: "@types/node@npm:25.6.0" + dependencies: + undici-types: "npm:~7.19.0" + checksum: 10/99b18690a4be55904cbf8f6a6ac8eed5ec5b8d791fdd8ee2ae598b46c0fa9b83cda7b70dd7f00dbfb18189dcfc67648fdc7fdd3fcced2619a5a6453d9aec107d + languageName: node + linkType: hard + "@types/node@npm:^12.7.1": version: 12.20.55 resolution: "@types/node@npm:12.20.55" @@ -26727,7 +26736,7 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:^3.13.1, js-yaml@npm:^3.14.1, js-yaml@npm:^3.2.7, js-yaml@npm:^3.6.1": +"js-yaml@npm:^3.13.1, js-yaml@npm:^3.14.1, js-yaml@npm:^3.6.1": version: 3.14.1 resolution: "js-yaml@npm:3.14.1" dependencies: @@ -26739,6 +26748,18 @@ __metadata: languageName: node linkType: hard +"js-yaml@npm:^3.2.7": + version: 3.14.2 + resolution: "js-yaml@npm:3.14.2" + dependencies: + argparse: "npm:^1.0.7" + esprima: "npm:^4.0.0" + bin: + js-yaml: bin/js-yaml.js + checksum: 10/172e0b6007b0bf0fc8d2469c94424f7dd765c64a047d2b790831fecef2204a4054eabf4d911eb73ab8c9a3256ab8ba1ee8d655b789bf24bf059c772acc2075a1 + languageName: node + linkType: hard + "js-yaml@npm:^4.1.1": version: 4.1.1 resolution: "js-yaml@npm:4.1.1" @@ -36914,6 +36935,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~7.19.0": + version: 7.19.2 + resolution: "undici-types@npm:7.19.2" + checksum: 10/05c34c63444c8caca7137f122b29ed50c1d7d05d1e0b2337f423575d3264054c4a0139e47e82e65723d09b97fcad6d8b0223b3550430a9006cc00e72a1e035bf + languageName: node + linkType: hard + "undici@npm:^6.23.0, undici@npm:^6.24.0": version: 6.25.0 resolution: "undici@npm:6.25.0" From 77f8a1295e56cccffc54df02858a4b4204005a5e Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Wed, 29 Apr 2026 13:00:04 -0300 Subject: [PATCH 17/25] fix: meteor bundled doesn't support "exports" mapping in package.json --- packages/apps/package.json | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/packages/apps/package.json b/packages/apps/package.json index 66b590e2e664c..75655cbdf441d 100644 --- a/packages/apps/package.json +++ b/packages/apps/package.json @@ -2,28 +2,12 @@ "name": "@rocket.chat/apps", "version": "0.6.9", "private": true, - "exports": { - ".": { - "types": "./dist/index.d.ts", - "require": "./dist/index.js" - }, - "./server/*": { - "types": "./dist/server/*.d.ts", - "require": "./dist/server/*.js" - }, - "./client/*": { - "types": "./dist/client/*.d.ts", - "require": "./dist/client/*.js" - } - }, - "typesVersions": { - "*": { - "*": ["./dist/*"] - } - }, + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "files": [ - "/dist", - "/deno-runtime" + "dist/", + "deno-runtime/", + ".deno-cache/" ], "scripts": { "build": "run-s build:clean build:default build:deno-cache", From 7c0c7383ab953adb5a11ac4dccf27184a3eb5efb Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Wed, 29 Apr 2026 13:02:03 -0300 Subject: [PATCH 18/25] deno: add @types/node for lsp integration --- packages/apps/deno-runtime/deno.lock | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/apps/deno-runtime/deno.lock b/packages/apps/deno-runtime/deno.lock index bc87cb5e87d84..4ef784109019f 100644 --- a/packages/apps/deno-runtime/deno.lock +++ b/packages/apps/deno-runtime/deno.lock @@ -7,6 +7,7 @@ "jsr:@std/streams@^1.0.16": "1.0.16", "npm:@msgpack/msgpack@3.0.0-beta2": "3.0.0-beta2", "npm:@rocket.chat/ui-kit@~0.31.22": "0.31.25_@rocket.chat+icons@0.32.0", + "npm:@types/node@*": "22.12.0", "npm:acorn-walk@8.2.0": "8.2.0", "npm:acorn@8.10.0": "8.10.0", "npm:astring@1.8.6": "1.8.6", @@ -37,7 +38,8 @@ }, "npm": { "@msgpack/msgpack@3.0.0-beta2": { - "integrity": "sha512-y+l1PNV0XDyY8sM3YtuMLK5vE3/hkfId+Do8pLo/OPxfxuFAUwcGz3oiiUuV46/aBpwTzZ+mRWVMtlSKbradhw==" + "integrity": "sha512-y+l1PNV0XDyY8sM3YtuMLK5vE3/hkfId+Do8pLo/OPxfxuFAUwcGz3oiiUuV46/aBpwTzZ+mRWVMtlSKbradhw==", + "deprecated": true }, "@rocket.chat/icons@0.32.0": { "integrity": "sha512-7yhhELKNLb9kUtXCvau0V+iMXraV2bOsxcPjc/ZtLR5VeeIDTeaflqRWGtLroX6f3bE+J1n5qB5zi8A4YXuH2g==" @@ -48,6 +50,12 @@ "@rocket.chat/icons" ] }, + "@types/node@22.12.0": { + "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", + "dependencies": [ + "undici-types" + ] + }, "acorn-walk@8.2.0": { "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" }, @@ -65,6 +73,9 @@ "stack-trace@0.0.10": { "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==" }, + "undici-types@6.20.0": { + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" + }, "uuid@8.3.2": { "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "bin": true From db5af43957fc96ce2693f29364f60decbf094f4e Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Wed, 29 Apr 2026 13:34:50 -0300 Subject: [PATCH 19/25] refactor: adapt imports to use dist --- apps/meteor/app/apps/server/bridges/activation.ts | 4 ++-- apps/meteor/app/apps/server/bridges/api.ts | 4 ++-- apps/meteor/app/apps/server/bridges/bridges.js | 2 +- apps/meteor/app/apps/server/bridges/cloud.ts | 2 +- apps/meteor/app/apps/server/bridges/commands.ts | 2 +- apps/meteor/app/apps/server/bridges/contact.ts | 2 +- apps/meteor/app/apps/server/bridges/details.ts | 2 +- apps/meteor/app/apps/server/bridges/email.ts | 2 +- apps/meteor/app/apps/server/bridges/environmental.ts | 2 +- apps/meteor/app/apps/server/bridges/experimental.ts | 2 +- apps/meteor/app/apps/server/bridges/http.ts | 4 ++-- apps/meteor/app/apps/server/bridges/internal.ts | 2 +- apps/meteor/app/apps/server/bridges/internalFederation.ts | 2 +- apps/meteor/app/apps/server/bridges/livechat.ts | 2 +- apps/meteor/app/apps/server/bridges/messages.ts | 4 ++-- apps/meteor/app/apps/server/bridges/moderation.ts | 2 +- apps/meteor/app/apps/server/bridges/oauthApps.ts | 2 +- .../meteor/app/apps/server/bridges/outboundCommunication.ts | 2 +- apps/meteor/app/apps/server/bridges/persistence.ts | 2 +- apps/meteor/app/apps/server/bridges/roles.ts | 2 +- apps/meteor/app/apps/server/bridges/rooms.ts | 4 ++-- apps/meteor/app/apps/server/bridges/scheduler.ts | 2 +- apps/meteor/app/apps/server/bridges/settings.ts | 2 +- apps/meteor/app/apps/server/bridges/thread.ts | 2 +- apps/meteor/app/apps/server/bridges/uiInteraction.ts | 2 +- apps/meteor/app/apps/server/bridges/uploads.ts | 2 +- apps/meteor/app/apps/server/bridges/users.ts | 2 +- apps/meteor/app/apps/server/bridges/videoConferences.ts | 2 +- apps/meteor/app/statistics/server/lib/getAppsStatistics.ts | 2 +- apps/meteor/client/apps/RealAppsEngineUIHost.ts | 6 +++--- apps/meteor/client/apps/orchestrator.ts | 4 ++-- apps/meteor/client/contexts/AppsContext.tsx | 2 +- apps/meteor/ee/app/license/server/canEnableApp.ts | 2 +- apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts | 6 +++--- .../server/apps/communication/endpoints/appsCountHandler.ts | 2 +- apps/meteor/ee/server/apps/communication/rest.ts | 4 ++-- apps/meteor/ee/server/apps/cron.ts | 2 +- apps/meteor/ee/server/apps/orchestrator.js | 2 +- .../ee/server/apps/storage/AppFileSystemSourceStorage.ts | 4 ++-- .../meteor/ee/server/apps/storage/AppGridFSSourceStorage.ts | 4 ++-- apps/meteor/ee/server/apps/storage/AppRealLogStorage.ts | 6 +++--- apps/meteor/ee/server/apps/storage/AppRealStorage.ts | 6 +++--- .../ee/server/apps/storage/ConfigurableAppSourceStorage.ts | 4 ++-- .../meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts | 2 +- .../lib/apps/getInstallationSourceFromAppStorageItem.ts | 2 +- apps/meteor/server/services/apps-engine/service.ts | 4 ++-- apps/meteor/server/services/video-conference/service.ts | 2 +- apps/meteor/server/startup/migrations/v294.ts | 2 +- apps/meteor/server/startup/migrations/v307.ts | 2 +- apps/meteor/tests/end-to-end/apps/app-logs-export.ts | 2 +- apps/meteor/tests/end-to-end/apps/app-logs-general.ts | 2 +- .../tests/end-to-end/apps/app-logs-nested-requests.ts | 2 +- apps/meteor/tests/end-to-end/apps/app-logs.ts | 2 +- apps/meteor/tests/mocks/client/marketplace.tsx | 6 +++--- apps/meteor/tests/mocks/data.ts | 4 ++-- .../tests/unit/app/license/server/canEnableApp.spec.ts | 4 ++-- packages/core-services/src/types/IAppsEngineService.ts | 4 ++-- 57 files changed, 81 insertions(+), 81 deletions(-) diff --git a/apps/meteor/app/apps/server/bridges/activation.ts b/apps/meteor/app/apps/server/bridges/activation.ts index b694174522370..b22aeac49b220 100644 --- a/apps/meteor/app/apps/server/bridges/activation.ts +++ b/apps/meteor/app/apps/server/bridges/activation.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator, AppStatus } from '@rocket.chat/apps'; -import type { ProxiedApp } from '@rocket.chat/apps/server/ProxiedApp'; -import { AppActivationBridge as ActivationBridge } from '@rocket.chat/apps/server/bridges/AppActivationBridge'; +import type { ProxiedApp } from '@rocket.chat/apps/dist/server/ProxiedApp'; +import { AppActivationBridge as ActivationBridge } from '@rocket.chat/apps/dist/server/bridges/AppActivationBridge'; import { UserStatus } from '@rocket.chat/core-typings'; import { Users } from '@rocket.chat/models'; diff --git a/apps/meteor/app/apps/server/bridges/api.ts b/apps/meteor/app/apps/server/bridges/api.ts index 224bc0ed16eb3..4e117855615ed 100644 --- a/apps/meteor/app/apps/server/bridges/api.ts +++ b/apps/meteor/app/apps/server/bridges/api.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { ApiBridge } from '@rocket.chat/apps/server/bridges/ApiBridge'; -import type { AppApi } from '@rocket.chat/apps/server/managers/AppApi'; +import { ApiBridge } from '@rocket.chat/apps/dist/server/bridges/ApiBridge'; +import type { AppApi } from '@rocket.chat/apps/dist/server/managers/AppApi'; import type { RequestMethod } from '@rocket.chat/apps-engine/definition/accessors'; import type { IApiRequest, IApiEndpoint, IApi } from '@rocket.chat/apps-engine/definition/api'; import type { Response, Request, IRouter, RequestHandler } from 'express'; diff --git a/apps/meteor/app/apps/server/bridges/bridges.js b/apps/meteor/app/apps/server/bridges/bridges.js index 7ec5279e00d3f..4205c2afa91bc 100644 --- a/apps/meteor/app/apps/server/bridges/bridges.js +++ b/apps/meteor/app/apps/server/bridges/bridges.js @@ -1,4 +1,4 @@ -import { AppBridges } from '@rocket.chat/apps/server/bridges/AppBridges'; +import { AppBridges } from '@rocket.chat/apps/dist/server/bridges/AppBridges'; import { AppActivationBridge } from './activation'; import { AppApisBridge } from './api'; diff --git a/apps/meteor/app/apps/server/bridges/cloud.ts b/apps/meteor/app/apps/server/bridges/cloud.ts index b42f8af3e592e..83d9f98311c1b 100644 --- a/apps/meteor/app/apps/server/bridges/cloud.ts +++ b/apps/meteor/app/apps/server/bridges/cloud.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { CloudWorkspaceBridge } from '@rocket.chat/apps/server/bridges/CloudWorkspaceBridge'; +import { CloudWorkspaceBridge } from '@rocket.chat/apps/dist/server/bridges/CloudWorkspaceBridge'; import type { IWorkspaceToken } from '@rocket.chat/apps-engine/definition/cloud/IWorkspaceToken'; import { getWorkspaceAccessTokenWithScope } from '../../../cloud/server'; diff --git a/apps/meteor/app/apps/server/bridges/commands.ts b/apps/meteor/app/apps/server/bridges/commands.ts index 478c44f8744e4..36eaaed5f047d 100644 --- a/apps/meteor/app/apps/server/bridges/commands.ts +++ b/apps/meteor/app/apps/server/bridges/commands.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator, IAppsRoom, IAppsUser } from '@rocket.chat/apps'; -import { CommandBridge } from '@rocket.chat/apps/server/bridges/CommandBridge'; +import { CommandBridge } from '@rocket.chat/apps/dist/server/bridges/CommandBridge'; import type { ISlashCommand, ISlashCommandPreview, ISlashCommandPreviewItem } from '@rocket.chat/apps-engine/definition/slashcommands'; import { SlashCommandContext } from '@rocket.chat/apps-engine/definition/slashcommands'; import type { IMessage, RequiredField, SlashCommand, SlashCommandCallbackParams } from '@rocket.chat/core-typings'; diff --git a/apps/meteor/app/apps/server/bridges/contact.ts b/apps/meteor/app/apps/server/bridges/contact.ts index d6d47c6c2c4ec..fa00a839c6a4e 100644 --- a/apps/meteor/app/apps/server/bridges/contact.ts +++ b/apps/meteor/app/apps/server/bridges/contact.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { ContactBridge } from '@rocket.chat/apps/server/bridges/ContactBridge'; +import { ContactBridge } from '@rocket.chat/apps/dist/server/bridges/ContactBridge'; import type { ILivechatContact } from '@rocket.chat/apps-engine/definition/livechat'; import { addContactEmail } from '../../../livechat/server/lib/contacts/addContactEmail'; diff --git a/apps/meteor/app/apps/server/bridges/details.ts b/apps/meteor/app/apps/server/bridges/details.ts index 5269d68f3732f..03f25d9f6d05b 100644 --- a/apps/meteor/app/apps/server/bridges/details.ts +++ b/apps/meteor/app/apps/server/bridges/details.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { AppDetailChangesBridge as DetailChangesBridge } from '@rocket.chat/apps/server/bridges/AppDetailChangesBridge'; +import { AppDetailChangesBridge as DetailChangesBridge } from '@rocket.chat/apps/dist/server/bridges/AppDetailChangesBridge'; import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; export class AppDetailChangesBridge extends DetailChangesBridge { diff --git a/apps/meteor/app/apps/server/bridges/email.ts b/apps/meteor/app/apps/server/bridges/email.ts index 7bec7dce6a1af..8f984b7bb6ce2 100644 --- a/apps/meteor/app/apps/server/bridges/email.ts +++ b/apps/meteor/app/apps/server/bridges/email.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { EmailBridge } from '@rocket.chat/apps/server/bridges/EmailBridge'; +import { EmailBridge } from '@rocket.chat/apps/dist/server/bridges/EmailBridge'; import type { IEmail } from '@rocket.chat/apps-engine/definition/email'; import * as Mailer from '../../../mailer/server/api'; diff --git a/apps/meteor/app/apps/server/bridges/environmental.ts b/apps/meteor/app/apps/server/bridges/environmental.ts index 2b980948fbccb..c79ffbe9f6cf5 100644 --- a/apps/meteor/app/apps/server/bridges/environmental.ts +++ b/apps/meteor/app/apps/server/bridges/environmental.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { EnvironmentalVariableBridge } from '@rocket.chat/apps/server/bridges/EnvironmentalVariableBridge'; +import { EnvironmentalVariableBridge } from '@rocket.chat/apps/dist/server/bridges/EnvironmentalVariableBridge'; export class AppEnvironmentalVariableBridge extends EnvironmentalVariableBridge { allowed: Array; diff --git a/apps/meteor/app/apps/server/bridges/experimental.ts b/apps/meteor/app/apps/server/bridges/experimental.ts index b379b7a00f2a9..fea16f9cb8a82 100644 --- a/apps/meteor/app/apps/server/bridges/experimental.ts +++ b/apps/meteor/app/apps/server/bridges/experimental.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { ExperimentalBridge } from '@rocket.chat/apps/server/bridges/ExperimentalBridge'; +import { ExperimentalBridge } from '@rocket.chat/apps/dist/server/bridges/ExperimentalBridge'; export class AppExperimentalBridge extends ExperimentalBridge { constructor(protected readonly orch: IAppServerOrchestrator) { diff --git a/apps/meteor/app/apps/server/bridges/http.ts b/apps/meteor/app/apps/server/bridges/http.ts index d443f97591cbc..f3bb6c502a426 100644 --- a/apps/meteor/app/apps/server/bridges/http.ts +++ b/apps/meteor/app/apps/server/bridges/http.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import type { IHttpBridgeRequestInfo } from '@rocket.chat/apps/server/bridges/HttpBridge'; -import { HttpBridge } from '@rocket.chat/apps/server/bridges/HttpBridge'; +import type { IHttpBridgeRequestInfo } from '@rocket.chat/apps/dist/server/bridges/HttpBridge'; +import { HttpBridge } from '@rocket.chat/apps/dist/server/bridges/HttpBridge'; import type { IHttpResponse } from '@rocket.chat/apps-engine/definition/accessors'; import { serverFetch as fetch, type ExtendedFetchOptions } from '@rocket.chat/server-fetch'; import { censorUrl } from '@rocket.chat/tools'; diff --git a/apps/meteor/app/apps/server/bridges/internal.ts b/apps/meteor/app/apps/server/bridges/internal.ts index 223f5af55ab8f..8f5ab68e68787 100644 --- a/apps/meteor/app/apps/server/bridges/internal.ts +++ b/apps/meteor/app/apps/server/bridges/internal.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator, IAppsSetting } from '@rocket.chat/apps'; -import { InternalBridge } from '@rocket.chat/apps/server/bridges/InternalBridge'; +import { InternalBridge } from '@rocket.chat/apps/dist/server/bridges/InternalBridge'; import type { ISetting, ISubscription } from '@rocket.chat/core-typings'; import { Settings, Subscriptions } from '@rocket.chat/models'; import { isTruthy } from '@rocket.chat/tools'; diff --git a/apps/meteor/app/apps/server/bridges/internalFederation.ts b/apps/meteor/app/apps/server/bridges/internalFederation.ts index 008e55cd672f0..1b221844488e8 100644 --- a/apps/meteor/app/apps/server/bridges/internalFederation.ts +++ b/apps/meteor/app/apps/server/bridges/internalFederation.ts @@ -1,4 +1,4 @@ -import type { IInternalFederationBridge } from '@rocket.chat/apps/server/bridges/IInternalFederationBridge'; +import type { IInternalFederationBridge } from '@rocket.chat/apps/dist/server/bridges/IInternalFederationBridge'; import { FederationKeys } from '@rocket.chat/models'; export class AppInternalFederationBridge implements IInternalFederationBridge { diff --git a/apps/meteor/app/apps/server/bridges/livechat.ts b/apps/meteor/app/apps/server/bridges/livechat.ts index 47746e58b5d46..81a6d8551f82e 100644 --- a/apps/meteor/app/apps/server/bridges/livechat.ts +++ b/apps/meteor/app/apps/server/bridges/livechat.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator, IAppsLivechatMessage } from '@rocket.chat/apps'; -import { LivechatBridge } from '@rocket.chat/apps/server/bridges/LivechatBridge'; +import { LivechatBridge } from '@rocket.chat/apps/dist/server/bridges/LivechatBridge'; import type { IExtraRoomParams } from '@rocket.chat/apps-engine/definition/accessors/ILivechatCreator'; import type { IVisitorExternalIdentifier, diff --git a/apps/meteor/app/apps/server/bridges/messages.ts b/apps/meteor/app/apps/server/bridges/messages.ts index b0aadff9f7dff..b5be15ae7ca92 100644 --- a/apps/meteor/app/apps/server/bridges/messages.ts +++ b/apps/meteor/app/apps/server/bridges/messages.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator, IAppsMessage, IAppsUser } from '@rocket.chat/apps'; -import type { ITypingDescriptor } from '@rocket.chat/apps/server/bridges/MessageBridge'; -import { MessageBridge } from '@rocket.chat/apps/server/bridges/MessageBridge'; +import type { ITypingDescriptor } from '@rocket.chat/apps/dist/server/bridges/MessageBridge'; +import { MessageBridge } from '@rocket.chat/apps/dist/server/bridges/MessageBridge'; import type { Reaction } from '@rocket.chat/apps-engine/definition/messages'; import type { IRoom } from '@rocket.chat/apps-engine/definition/rooms'; import { api } from '@rocket.chat/core-services'; diff --git a/apps/meteor/app/apps/server/bridges/moderation.ts b/apps/meteor/app/apps/server/bridges/moderation.ts index a80e79c5682eb..42d521b102f83 100644 --- a/apps/meteor/app/apps/server/bridges/moderation.ts +++ b/apps/meteor/app/apps/server/bridges/moderation.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { ModerationBridge } from '@rocket.chat/apps/server/bridges/ModerationBridge'; +import { ModerationBridge } from '@rocket.chat/apps/dist/server/bridges/ModerationBridge'; import type { IMessage } from '@rocket.chat/apps-engine/definition/messages'; import type { IUser } from '@rocket.chat/apps-engine/definition/users'; import { ModerationReports } from '@rocket.chat/models'; diff --git a/apps/meteor/app/apps/server/bridges/oauthApps.ts b/apps/meteor/app/apps/server/bridges/oauthApps.ts index abba6a4fd3387..ad9d26c24ae4c 100644 --- a/apps/meteor/app/apps/server/bridges/oauthApps.ts +++ b/apps/meteor/app/apps/server/bridges/oauthApps.ts @@ -1,7 +1,7 @@ import { randomUUID } from 'crypto'; import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { OAuthAppsBridge } from '@rocket.chat/apps/server/bridges/OAuthAppsBridge'; +import { OAuthAppsBridge } from '@rocket.chat/apps/dist/server/bridges/OAuthAppsBridge'; import type { IOAuthApp, IOAuthAppParams } from '@rocket.chat/apps-engine/definition/accessors/IOAuthApp'; import type { IOAuthApps } from '@rocket.chat/core-typings'; import { OAuthApps, Users } from '@rocket.chat/models'; diff --git a/apps/meteor/app/apps/server/bridges/outboundCommunication.ts b/apps/meteor/app/apps/server/bridges/outboundCommunication.ts index 3f6422aa7ffd4..3ba7218a601c0 100644 --- a/apps/meteor/app/apps/server/bridges/outboundCommunication.ts +++ b/apps/meteor/app/apps/server/bridges/outboundCommunication.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { OutboundMessageBridge } from '@rocket.chat/apps/server/bridges/OutboundMessagesBridge'; +import { OutboundMessageBridge } from '@rocket.chat/apps/dist/server/bridges/OutboundMessagesBridge'; import type { IOutboundEmailMessageProvider, IOutboundMessageProviders, diff --git a/apps/meteor/app/apps/server/bridges/persistence.ts b/apps/meteor/app/apps/server/bridges/persistence.ts index e75dc50055988..ce85b801a9808 100644 --- a/apps/meteor/app/apps/server/bridges/persistence.ts +++ b/apps/meteor/app/apps/server/bridges/persistence.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { PersistenceBridge } from '@rocket.chat/apps/server/bridges/PersistenceBridge'; +import { PersistenceBridge } from '@rocket.chat/apps/dist/server/bridges/PersistenceBridge'; import type { RocketChatAssociationRecord } from '@rocket.chat/apps-engine/definition/metadata'; import type { InsertOneResult } from 'mongodb'; diff --git a/apps/meteor/app/apps/server/bridges/roles.ts b/apps/meteor/app/apps/server/bridges/roles.ts index 7001cc92f7483..7f7daddd328de 100644 --- a/apps/meteor/app/apps/server/bridges/roles.ts +++ b/apps/meteor/app/apps/server/bridges/roles.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator, IAppsRole } from '@rocket.chat/apps'; -import { RoleBridge } from '@rocket.chat/apps/server/bridges/RoleBridge'; +import { RoleBridge } from '@rocket.chat/apps/dist/server/bridges/RoleBridge'; import type { IRole } from '@rocket.chat/core-typings'; import { Roles } from '@rocket.chat/models'; diff --git a/apps/meteor/app/apps/server/bridges/rooms.ts b/apps/meteor/app/apps/server/bridges/rooms.ts index 27e4b45aea2b2..11b2b405fb2e6 100644 --- a/apps/meteor/app/apps/server/bridges/rooms.ts +++ b/apps/meteor/app/apps/server/bridges/rooms.ts @@ -1,6 +1,6 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import type { GetMessagesOptions, GetRoomsFilters, GetRoomsOptions } from '@rocket.chat/apps/server/bridges/RoomBridge'; -import { RoomBridge } from '@rocket.chat/apps/server/bridges/RoomBridge'; +import type { GetMessagesOptions, GetRoomsFilters, GetRoomsOptions } from '@rocket.chat/apps/dist/server/bridges/RoomBridge'; +import { RoomBridge } from '@rocket.chat/apps/dist/server/bridges/RoomBridge'; import type { IMessage, IMessageRaw } from '@rocket.chat/apps-engine/definition/messages'; import type { IRoom, IRoomRaw } from '@rocket.chat/apps-engine/definition/rooms'; import { RoomType } from '@rocket.chat/apps-engine/definition/rooms'; diff --git a/apps/meteor/app/apps/server/bridges/scheduler.ts b/apps/meteor/app/apps/server/bridges/scheduler.ts index cb4113b3ebfb9..8f044cf1832f9 100644 --- a/apps/meteor/app/apps/server/bridges/scheduler.ts +++ b/apps/meteor/app/apps/server/bridges/scheduler.ts @@ -1,7 +1,7 @@ import type { Job } from '@rocket.chat/agenda'; import { Agenda } from '@rocket.chat/agenda'; import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { SchedulerBridge } from '@rocket.chat/apps/server/bridges/SchedulerBridge'; +import { SchedulerBridge } from '@rocket.chat/apps/dist/server/bridges/SchedulerBridge'; import type { IProcessor, IOnetimeSchedule, IRecurringSchedule, IJobContext } from '@rocket.chat/apps-engine/definition/scheduler'; import { StartupType } from '@rocket.chat/apps-engine/definition/scheduler'; import { ObjectId } from 'bson'; diff --git a/apps/meteor/app/apps/server/bridges/settings.ts b/apps/meteor/app/apps/server/bridges/settings.ts index d4b5813b364c1..145f81fc129ae 100644 --- a/apps/meteor/app/apps/server/bridges/settings.ts +++ b/apps/meteor/app/apps/server/bridges/settings.ts @@ -1,5 +1,5 @@ import { Apps, type IAppServerOrchestrator } from '@rocket.chat/apps'; -import { ServerSettingBridge } from '@rocket.chat/apps/server/bridges/ServerSettingBridge'; +import { ServerSettingBridge } from '@rocket.chat/apps/dist/server/bridges/ServerSettingBridge'; import type { IReadSettingPermission } from '@rocket.chat/apps-engine/definition/permissions/IPermission'; import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; import { Settings } from '@rocket.chat/models'; diff --git a/apps/meteor/app/apps/server/bridges/thread.ts b/apps/meteor/app/apps/server/bridges/thread.ts index a68c7a6d51484..7857005eaea23 100644 --- a/apps/meteor/app/apps/server/bridges/thread.ts +++ b/apps/meteor/app/apps/server/bridges/thread.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { ThreadBridge } from '@rocket.chat/apps/server/bridges/ThreadBridge'; +import { ThreadBridge } from '@rocket.chat/apps/dist/server/bridges/ThreadBridge'; import type { IMessage } from '@rocket.chat/apps-engine/definition/messages'; export class AppThreadBridge extends ThreadBridge { diff --git a/apps/meteor/app/apps/server/bridges/uiInteraction.ts b/apps/meteor/app/apps/server/bridges/uiInteraction.ts index 8644b360d7d96..69172f9cf5d59 100644 --- a/apps/meteor/app/apps/server/bridges/uiInteraction.ts +++ b/apps/meteor/app/apps/server/bridges/uiInteraction.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { UiInteractionBridge as AppsEngineUiInteractionBridge } from '@rocket.chat/apps/server/bridges/UiInteractionBridge'; +import { UiInteractionBridge as AppsEngineUiInteractionBridge } from '@rocket.chat/apps/dist/server/bridges/UiInteractionBridge'; import type { IUIKitInteraction } from '@rocket.chat/apps-engine/definition/uikit'; import type { IUser } from '@rocket.chat/apps-engine/definition/users'; import { api } from '@rocket.chat/core-services'; diff --git a/apps/meteor/app/apps/server/bridges/uploads.ts b/apps/meteor/app/apps/server/bridges/uploads.ts index b854a69414255..929e70743c557 100644 --- a/apps/meteor/app/apps/server/bridges/uploads.ts +++ b/apps/meteor/app/apps/server/bridges/uploads.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { UploadBridge } from '@rocket.chat/apps/server/bridges/UploadBridge'; +import { UploadBridge } from '@rocket.chat/apps/dist/server/bridges/UploadBridge'; import type { IUpload } from '@rocket.chat/apps-engine/definition/uploads'; import type { IUploadDetails } from '@rocket.chat/apps-engine/definition/uploads/IUploadDetails'; diff --git a/apps/meteor/app/apps/server/bridges/users.ts b/apps/meteor/app/apps/server/bridges/users.ts index 21609230a450b..ee5f8d93f799f 100644 --- a/apps/meteor/app/apps/server/bridges/users.ts +++ b/apps/meteor/app/apps/server/bridges/users.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { UserBridge } from '@rocket.chat/apps/server/bridges/UserBridge'; +import { UserBridge } from '@rocket.chat/apps/dist/server/bridges/UserBridge'; import type { IUserCreationOptions, IUser, UserType } from '@rocket.chat/apps-engine/definition/users'; import { Presence } from '@rocket.chat/core-services'; import type { UserStatus } from '@rocket.chat/core-typings'; diff --git a/apps/meteor/app/apps/server/bridges/videoConferences.ts b/apps/meteor/app/apps/server/bridges/videoConferences.ts index aa3bfafc40f58..56f70e3e416e4 100644 --- a/apps/meteor/app/apps/server/bridges/videoConferences.ts +++ b/apps/meteor/app/apps/server/bridges/videoConferences.ts @@ -1,5 +1,5 @@ import type { IAppServerOrchestrator } from '@rocket.chat/apps'; -import { VideoConferenceBridge } from '@rocket.chat/apps/server/bridges/VideoConferenceBridge'; +import { VideoConferenceBridge } from '@rocket.chat/apps/dist/server/bridges/VideoConferenceBridge'; import type { IVideoConfProvider } from '@rocket.chat/apps-engine/definition/videoConfProviders'; import type { AppVideoConference, VideoConference } from '@rocket.chat/apps-engine/definition/videoConferences'; import { VideoConf } from '@rocket.chat/core-services'; diff --git a/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts b/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts index f9170ddc36da6..1734d175c6c5d 100644 --- a/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts +++ b/apps/meteor/app/statistics/server/lib/getAppsStatistics.ts @@ -1,5 +1,5 @@ import { Apps } from '@rocket.chat/apps'; -import { AppInstallationSource } from '@rocket.chat/apps/server/storage/IAppStorageItem'; +import { AppInstallationSource } from '@rocket.chat/apps/dist/server/storage/IAppStorageItem'; import { AppStatus, AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus'; import mem from 'mem'; diff --git a/apps/meteor/client/apps/RealAppsEngineUIHost.ts b/apps/meteor/client/apps/RealAppsEngineUIHost.ts index 5d09c997216da..a8da21e8aeea1 100644 --- a/apps/meteor/client/apps/RealAppsEngineUIHost.ts +++ b/apps/meteor/client/apps/RealAppsEngineUIHost.ts @@ -1,6 +1,6 @@ -import { AppsEngineUIHost } from '@rocket.chat/apps/client/AppsEngineUIHost'; -import type { IExternalComponentRoomInfo } from '@rocket.chat/apps/client/definition/IExternalComponentRoomInfo'; -import type { IExternalComponentUserInfo } from '@rocket.chat/apps/client/definition/IExternalComponentUserInfo'; +import { AppsEngineUIHost } from '@rocket.chat/apps/dist/client/AppsEngineUIHost'; +import type { IExternalComponentRoomInfo } from '@rocket.chat/apps/dist/client/definition/IExternalComponentRoomInfo'; +import type { IExternalComponentUserInfo } from '@rocket.chat/apps/dist/client/definition/IExternalComponentUserInfo'; import { getUserAvatarURL } from '../../app/utils/client/getUserAvatarURL'; import { sdk } from '../../app/utils/client/lib/SDKClient'; diff --git a/apps/meteor/client/apps/orchestrator.ts b/apps/meteor/client/apps/orchestrator.ts index 82529f6938000..e376211b8260a 100644 --- a/apps/meteor/client/apps/orchestrator.ts +++ b/apps/meteor/client/apps/orchestrator.ts @@ -1,5 +1,5 @@ -import { AppClientManager } from '@rocket.chat/apps/client/AppClientManager'; -import type { AppsEngineUIHost } from '@rocket.chat/apps/client/AppsEngineUIHost'; +import { AppClientManager } from '@rocket.chat/apps/dist/client/AppClientManager'; +import type { AppsEngineUIHost } from '@rocket.chat/apps/dist/client/AppsEngineUIHost'; import type { IPermission } from '@rocket.chat/apps-engine/definition/permissions/IPermission'; import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; import type { Serialized } from '@rocket.chat/core-typings'; diff --git a/apps/meteor/client/contexts/AppsContext.tsx b/apps/meteor/client/contexts/AppsContext.tsx index 8361b80bdfe27..38eda15a7ab98 100644 --- a/apps/meteor/client/contexts/AppsContext.tsx +++ b/apps/meteor/client/contexts/AppsContext.tsx @@ -1,4 +1,4 @@ -import type { AppClientManager } from '@rocket.chat/apps/client/AppClientManager'; +import type { AppClientManager } from '@rocket.chat/apps/dist/client/AppClientManager'; import type { IPermission } from '@rocket.chat/apps-engine/definition/permissions/IPermission'; import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; import type { Serialized } from '@rocket.chat/core-typings'; diff --git a/apps/meteor/ee/app/license/server/canEnableApp.ts b/apps/meteor/ee/app/license/server/canEnableApp.ts index 78fbf319b9e30..b691656226e23 100644 --- a/apps/meteor/ee/app/license/server/canEnableApp.ts +++ b/apps/meteor/ee/app/license/server/canEnableApp.ts @@ -1,4 +1,4 @@ -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; +import type { IAppStorageItem } from '@rocket.chat/apps/dist/server/storage/IAppStorageItem'; import { Apps } from '@rocket.chat/core-services'; import type { LicenseModule } from '@rocket.chat/core-typings'; import { License, type LicenseImp } from '@rocket.chat/license'; diff --git a/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts b/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts index 48ee6e29d51d6..4a976c0ef7c03 100644 --- a/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts +++ b/apps/meteor/ee/lib/misc/formatAppInstanceForRest.ts @@ -1,6 +1,6 @@ -import type { ProxiedApp } from '@rocket.chat/apps/server/ProxiedApp'; -import type { AppLicenseValidationResult } from '@rocket.chat/apps/server/marketplace/license/AppLicenseValidationResult'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; +import type { ProxiedApp } from '@rocket.chat/apps/dist/server/ProxiedApp'; +import type { AppLicenseValidationResult } from '@rocket.chat/apps/dist/server/marketplace/license/AppLicenseValidationResult'; +import type { IAppStorageItem } from '@rocket.chat/apps/dist/server/storage/IAppStorageItem'; import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; import type { AppStatusReport } from '@rocket.chat/core-services'; diff --git a/apps/meteor/ee/server/apps/communication/endpoints/appsCountHandler.ts b/apps/meteor/ee/server/apps/communication/endpoints/appsCountHandler.ts index ad10d68e43e2f..67665124d980c 100644 --- a/apps/meteor/ee/server/apps/communication/endpoints/appsCountHandler.ts +++ b/apps/meteor/ee/server/apps/communication/endpoints/appsCountHandler.ts @@ -1,4 +1,4 @@ -import type { AppManager } from '@rocket.chat/apps/server/AppManager'; +import type { AppManager } from '@rocket.chat/apps/dist/server/AppManager'; import { License } from '@rocket.chat/license'; import { API } from '../../../../../app/api/server'; diff --git a/apps/meteor/ee/server/apps/communication/rest.ts b/apps/meteor/ee/server/apps/communication/rest.ts index ba05689d2a67c..27440ba7caeea 100644 --- a/apps/meteor/ee/server/apps/communication/rest.ts +++ b/apps/meteor/ee/server/apps/communication/rest.ts @@ -1,5 +1,5 @@ -import type { AppManager } from '@rocket.chat/apps/server/AppManager'; -import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace/IMarketplaceInfo'; +import type { AppManager } from '@rocket.chat/apps/dist/server/AppManager'; +import type { IMarketplaceInfo } from '@rocket.chat/apps/dist/server/marketplace/IMarketplaceInfo'; import { AppStatus, AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; import type { AppStatusReport } from '@rocket.chat/core-services'; diff --git a/apps/meteor/ee/server/apps/cron.ts b/apps/meteor/ee/server/apps/cron.ts index 074ff8804d129..9a09a1b457d18 100644 --- a/apps/meteor/ee/server/apps/cron.ts +++ b/apps/meteor/ee/server/apps/cron.ts @@ -1,4 +1,4 @@ -import type { ProxiedApp } from '@rocket.chat/apps/server/ProxiedApp'; +import type { ProxiedApp } from '@rocket.chat/apps/dist/server/ProxiedApp'; import { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import { cronJobs } from '@rocket.chat/cron'; import { Settings, Users } from '@rocket.chat/models'; diff --git a/apps/meteor/ee/server/apps/orchestrator.js b/apps/meteor/ee/server/apps/orchestrator.js index 0905185c999f8..0c04100add928 100644 --- a/apps/meteor/ee/server/apps/orchestrator.js +++ b/apps/meteor/ee/server/apps/orchestrator.js @@ -3,7 +3,7 @@ import * as os from 'os'; import * as path from 'path'; import { registerOrchestrator } from '@rocket.chat/apps'; -import { AppManager } from '@rocket.chat/apps/server/AppManager'; +import { AppManager } from '@rocket.chat/apps/dist/server/AppManager'; import { EssentialAppDisabledException } from '@rocket.chat/apps-engine/definition/exceptions'; import { Logger } from '@rocket.chat/logger'; import { AppLogs, Apps as AppsModel, AppsPersistence, Statistics } from '@rocket.chat/models'; diff --git a/apps/meteor/ee/server/apps/storage/AppFileSystemSourceStorage.ts b/apps/meteor/ee/server/apps/storage/AppFileSystemSourceStorage.ts index 2b96171100326..afd3d16808d77 100644 --- a/apps/meteor/ee/server/apps/storage/AppFileSystemSourceStorage.ts +++ b/apps/meteor/ee/server/apps/storage/AppFileSystemSourceStorage.ts @@ -1,8 +1,8 @@ import { promises as fs } from 'fs'; import { join, normalize } from 'path'; -import { AppSourceStorage } from '@rocket.chat/apps/server/storage/AppSourceStorage'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; +import { AppSourceStorage } from '@rocket.chat/apps/dist/server/storage/AppSourceStorage'; +import type { IAppStorageItem } from '@rocket.chat/apps/dist/server/storage/IAppStorageItem'; export class AppFileSystemSourceStorage extends AppSourceStorage { private pathPrefix = 'fs:/'; diff --git a/apps/meteor/ee/server/apps/storage/AppGridFSSourceStorage.ts b/apps/meteor/ee/server/apps/storage/AppGridFSSourceStorage.ts index c8771cf6ae1a3..e903ce2023a17 100644 --- a/apps/meteor/ee/server/apps/storage/AppGridFSSourceStorage.ts +++ b/apps/meteor/ee/server/apps/storage/AppGridFSSourceStorage.ts @@ -1,5 +1,5 @@ -import { AppSourceStorage } from '@rocket.chat/apps/server/storage/AppSourceStorage'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; +import { AppSourceStorage } from '@rocket.chat/apps/dist/server/storage/AppSourceStorage'; +import type { IAppStorageItem } from '@rocket.chat/apps/dist/server/storage/IAppStorageItem'; import { streamToBuffer } from '@rocket.chat/tools'; import { MongoInternals } from 'meteor/mongo'; import { NpmModuleMongodb } from 'meteor/npm-mongo'; diff --git a/apps/meteor/ee/server/apps/storage/AppRealLogStorage.ts b/apps/meteor/ee/server/apps/storage/AppRealLogStorage.ts index ba5927dd2f56d..f8f7e632c4353 100644 --- a/apps/meteor/ee/server/apps/storage/AppRealLogStorage.ts +++ b/apps/meteor/ee/server/apps/storage/AppRealLogStorage.ts @@ -1,6 +1,6 @@ -import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging/ILoggerStorageEntry'; -import type { IAppLogStorageFindOptions } from '@rocket.chat/apps/server/storage/AppLogStorage'; -import { AppLogStorage } from '@rocket.chat/apps/server/storage/AppLogStorage'; +import type { ILoggerStorageEntry } from '@rocket.chat/apps/dist/server/logging/ILoggerStorageEntry'; +import type { IAppLogStorageFindOptions } from '@rocket.chat/apps/dist/server/storage/AppLogStorage'; +import { AppLogStorage } from '@rocket.chat/apps/dist/server/storage/AppLogStorage'; import { InstanceStatus } from '@rocket.chat/instance-status'; import type { AppLogs } from '@rocket.chat/models'; diff --git a/apps/meteor/ee/server/apps/storage/AppRealStorage.ts b/apps/meteor/ee/server/apps/storage/AppRealStorage.ts index d1438bc2858d3..eba729edce941 100644 --- a/apps/meteor/ee/server/apps/storage/AppRealStorage.ts +++ b/apps/meteor/ee/server/apps/storage/AppRealStorage.ts @@ -1,6 +1,6 @@ -import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace/IMarketplaceInfo'; -import { AppMetadataStorage } from '@rocket.chat/apps/server/storage/AppMetadataStorage'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; +import type { IMarketplaceInfo } from '@rocket.chat/apps/dist/server/marketplace/IMarketplaceInfo'; +import { AppMetadataStorage } from '@rocket.chat/apps/dist/server/storage/AppMetadataStorage'; +import type { IAppStorageItem } from '@rocket.chat/apps/dist/server/storage/IAppStorageItem'; import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; diff --git a/apps/meteor/ee/server/apps/storage/ConfigurableAppSourceStorage.ts b/apps/meteor/ee/server/apps/storage/ConfigurableAppSourceStorage.ts index 9666514634899..87a8fd21a8642 100644 --- a/apps/meteor/ee/server/apps/storage/ConfigurableAppSourceStorage.ts +++ b/apps/meteor/ee/server/apps/storage/ConfigurableAppSourceStorage.ts @@ -1,5 +1,5 @@ -import { AppSourceStorage } from '@rocket.chat/apps/server/storage/AppSourceStorage'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; +import { AppSourceStorage } from '@rocket.chat/apps/dist/server/storage/AppSourceStorage'; +import type { IAppStorageItem } from '@rocket.chat/apps/dist/server/storage/IAppStorageItem'; import { AppFileSystemSourceStorage } from './AppFileSystemSourceStorage'; import { AppGridFSSourceStorage } from './AppGridFSSourceStorage'; diff --git a/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts b/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts index 4c6a585c4f629..ed13081ecc1e6 100644 --- a/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts +++ b/apps/meteor/ee/tests/unit/server/apps/AppRealStorage.spec.ts @@ -1,4 +1,4 @@ -import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; +import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps/dist/server/storage/IAppStorageItem'; import { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import { AppInterface } from '@rocket.chat/apps-engine/definition/metadata'; import { SettingType } from '@rocket.chat/apps-engine/definition/settings'; diff --git a/apps/meteor/lib/apps/getInstallationSourceFromAppStorageItem.ts b/apps/meteor/lib/apps/getInstallationSourceFromAppStorageItem.ts index d851da8e469c9..43c87ca56e80e 100644 --- a/apps/meteor/lib/apps/getInstallationSourceFromAppStorageItem.ts +++ b/apps/meteor/lib/apps/getInstallationSourceFromAppStorageItem.ts @@ -1,4 +1,4 @@ -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; +import type { IAppStorageItem } from '@rocket.chat/apps/dist/server/storage/IAppStorageItem'; import type { LicenseAppSources } from '@rocket.chat/core-typings'; /** diff --git a/apps/meteor/server/services/apps-engine/service.ts b/apps/meteor/server/services/apps-engine/service.ts index 307e5280b8d90..dcf0497a2ef53 100644 --- a/apps/meteor/server/services/apps-engine/service.ts +++ b/apps/meteor/server/services/apps-engine/service.ts @@ -1,6 +1,6 @@ import { Apps, AppEvents } from '@rocket.chat/apps'; -import type { IGetAppsFilter } from '@rocket.chat/apps/server/IGetAppsFilter'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; +import type { IGetAppsFilter } from '@rocket.chat/apps/dist/server/IGetAppsFilter'; +import type { IAppStorageItem } from '@rocket.chat/apps/dist/server/storage/IAppStorageItem'; import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import { AppStatusUtils } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; diff --git a/apps/meteor/server/services/video-conference/service.ts b/apps/meteor/server/services/video-conference/service.ts index 1005d4ba331a3..1517dc4d56e0b 100644 --- a/apps/meteor/server/services/video-conference/service.ts +++ b/apps/meteor/server/services/video-conference/service.ts @@ -1,5 +1,5 @@ import { Apps } from '@rocket.chat/apps'; -import type { AppVideoConfProviderManager } from '@rocket.chat/apps/server/managers/AppVideoConfProviderManager'; +import type { AppVideoConfProviderManager } from '@rocket.chat/apps/dist/server/managers/AppVideoConfProviderManager'; import type { VideoConfData, VideoConfDataExtended } from '@rocket.chat/apps-engine/definition/videoConfProviders'; import type { IVideoConfService, VideoConferenceJoinOptions } from '@rocket.chat/core-services'; import { api, ServiceClassInternal, Room } from '@rocket.chat/core-services'; diff --git a/apps/meteor/server/startup/migrations/v294.ts b/apps/meteor/server/startup/migrations/v294.ts index 79d3d53223dfd..0cc7b55f45373 100644 --- a/apps/meteor/server/startup/migrations/v294.ts +++ b/apps/meteor/server/startup/migrations/v294.ts @@ -1,5 +1,5 @@ import { Apps } from '@rocket.chat/apps'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; +import type { IAppStorageItem } from '@rocket.chat/apps/dist/server/storage/IAppStorageItem'; import { addMigration } from '../../lib/migrations'; diff --git a/apps/meteor/server/startup/migrations/v307.ts b/apps/meteor/server/startup/migrations/v307.ts index 188dae706e16c..d10bb62349d55 100644 --- a/apps/meteor/server/startup/migrations/v307.ts +++ b/apps/meteor/server/startup/migrations/v307.ts @@ -1,5 +1,5 @@ import { Apps } from '@rocket.chat/apps'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; +import type { IAppStorageItem } from '@rocket.chat/apps/dist/server/storage/IAppStorageItem'; import { License } from '@rocket.chat/license'; import { addMigration } from '../../lib/migrations'; diff --git a/apps/meteor/tests/end-to-end/apps/app-logs-export.ts b/apps/meteor/tests/end-to-end/apps/app-logs-export.ts index 83cf3dcdb4ccf..4022133b4abec 100644 --- a/apps/meteor/tests/end-to-end/apps/app-logs-export.ts +++ b/apps/meteor/tests/end-to-end/apps/app-logs-export.ts @@ -1,4 +1,4 @@ -import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging/ILoggerStorageEntry'; +import type { ILoggerStorageEntry } from '@rocket.chat/apps/dist/server/logging/ILoggerStorageEntry'; import type { App } from '@rocket.chat/core-typings'; import { expect } from 'chai'; import { after, before, describe, it } from 'mocha'; diff --git a/apps/meteor/tests/end-to-end/apps/app-logs-general.ts b/apps/meteor/tests/end-to-end/apps/app-logs-general.ts index 34ad33b561523..92d9d668f7b7d 100644 --- a/apps/meteor/tests/end-to-end/apps/app-logs-general.ts +++ b/apps/meteor/tests/end-to-end/apps/app-logs-general.ts @@ -1,4 +1,4 @@ -import type { ILoggerStorageEntry } from '@rocket.chat/apps-engine/server/logging'; +import type { ILoggerStorageEntry } from '@rocket.chat/apps/dist/server/logging/ILoggerStorageEntry'; import type { App } from '@rocket.chat/core-typings'; import { expect } from 'chai'; import { after, before, describe, it } from 'mocha'; diff --git a/apps/meteor/tests/end-to-end/apps/app-logs-nested-requests.ts b/apps/meteor/tests/end-to-end/apps/app-logs-nested-requests.ts index 072fb3e49dcfd..6ef79a8cc60f0 100644 --- a/apps/meteor/tests/end-to-end/apps/app-logs-nested-requests.ts +++ b/apps/meteor/tests/end-to-end/apps/app-logs-nested-requests.ts @@ -1,4 +1,4 @@ -import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging/ILoggerStorageEntry'; +import type { ILoggerStorageEntry } from '@rocket.chat/apps/dist/server/logging/ILoggerStorageEntry'; import { expect } from 'chai'; import { after, before, describe, it } from 'mocha'; diff --git a/apps/meteor/tests/end-to-end/apps/app-logs.ts b/apps/meteor/tests/end-to-end/apps/app-logs.ts index b5284b7dfbddd..71c576e38fb75 100644 --- a/apps/meteor/tests/end-to-end/apps/app-logs.ts +++ b/apps/meteor/tests/end-to-end/apps/app-logs.ts @@ -1,4 +1,4 @@ -import type { ILoggerStorageEntry } from '@rocket.chat/apps/server/logging/ILoggerStorageEntry'; +import type { ILoggerStorageEntry } from '@rocket.chat/apps/dist/server/logging/ILoggerStorageEntry'; import type { App } from '@rocket.chat/core-typings'; import { expect } from 'chai'; import { after, before, describe, it } from 'mocha'; diff --git a/apps/meteor/tests/mocks/client/marketplace.tsx b/apps/meteor/tests/mocks/client/marketplace.tsx index bb1c49573aa30..a571ddf06bf3f 100644 --- a/apps/meteor/tests/mocks/client/marketplace.tsx +++ b/apps/meteor/tests/mocks/client/marketplace.tsx @@ -1,6 +1,6 @@ -import { AppClientManager } from '@rocket.chat/apps/client/AppClientManager'; -import { AppsEngineUIHost } from '@rocket.chat/apps/client/AppsEngineUIHost'; -import type { IExternalComponentRoomInfo } from '@rocket.chat/apps/client/definition/IExternalComponentRoomInfo'; +import { AppClientManager } from '@rocket.chat/apps/dist/client/AppClientManager'; +import { AppsEngineUIHost } from '@rocket.chat/apps/dist/client/AppsEngineUIHost'; +import type { IExternalComponentRoomInfo } from '@rocket.chat/apps/dist/client/definition/IExternalComponentRoomInfo'; import type { ReactNode } from 'react'; import { AppsContext, type IAppsOrchestrator } from '../../../client/contexts/AppsContext'; diff --git a/apps/meteor/tests/mocks/data.ts b/apps/meteor/tests/mocks/data.ts index f10f5bfc06644..7e8e290f4f510 100644 --- a/apps/meteor/tests/mocks/data.ts +++ b/apps/meteor/tests/mocks/data.ts @@ -1,6 +1,6 @@ import { faker } from '@faker-js/faker'; -import type { IExternalComponentRoomInfo } from '@rocket.chat/apps/client/definition/IExternalComponentRoomInfo'; -import type { IExternalComponentUserInfo } from '@rocket.chat/apps/client/definition/IExternalComponentUserInfo'; +import type { IExternalComponentRoomInfo } from '@rocket.chat/apps/dist/client/definition/IExternalComponentRoomInfo'; +import type { IExternalComponentUserInfo } from '@rocket.chat/apps/dist/client/definition/IExternalComponentUserInfo'; import type { ILivechatContact } from '@rocket.chat/apps-engine/definition/livechat'; import { AppSubscriptionStatus, diff --git a/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts b/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts index c72168f504d0f..0208c3afccacc 100644 --- a/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts +++ b/apps/meteor/tests/unit/app/license/server/canEnableApp.spec.ts @@ -1,5 +1,5 @@ -import type { IMarketplaceInfo } from '@rocket.chat/apps/server/marketplace/IMarketplaceInfo'; -import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps/server/storage/IAppStorageItem'; +import type { IMarketplaceInfo } from '@rocket.chat/apps/dist/server/marketplace/IMarketplaceInfo'; +import { AppInstallationSource, type IAppStorageItem } from '@rocket.chat/apps/dist/server/storage/IAppStorageItem'; import { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { Apps } from '@rocket.chat/core-services'; import type { LicenseImp } from '@rocket.chat/license'; diff --git a/packages/core-services/src/types/IAppsEngineService.ts b/packages/core-services/src/types/IAppsEngineService.ts index bac06f180dfc0..361112ce42945 100644 --- a/packages/core-services/src/types/IAppsEngineService.ts +++ b/packages/core-services/src/types/IAppsEngineService.ts @@ -1,5 +1,5 @@ -import type { IGetAppsFilter } from '@rocket.chat/apps/server/IGetAppsFilter'; -import type { IAppStorageItem } from '@rocket.chat/apps/server/storage'; +import type { IGetAppsFilter } from '@rocket.chat/apps/dist/server/IGetAppsFilter'; +import type { IAppStorageItem } from '@rocket.chat/apps/dist/server/storage'; import type { AppStatus } from '@rocket.chat/apps-engine/definition/AppStatus'; import type { IAppInfo } from '@rocket.chat/apps-engine/definition/metadata'; From 526575dffd06a4f18e9ff3a3bf0a2dd0218b5491 Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Wed, 29 Apr 2026 14:47:29 -0300 Subject: [PATCH 20/25] fix: deno-runtime import problems Co-authored-by: Copilot --- packages/apps/package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/apps/package.json b/packages/apps/package.json index 75655cbdf441d..c26be6883498b 100644 --- a/packages/apps/package.json +++ b/packages/apps/package.json @@ -53,5 +53,8 @@ }, "volta": { "extends": "../../package.json" + }, + "installConfig": { + "hoistingLimits": "workspaces" } } From a7d44ea3cc203973a84db45d50b2a6bd4738bc9b Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Wed, 29 Apr 2026 20:07:24 -0300 Subject: [PATCH 21/25] enables test on apps --- packages/apps/package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/apps/package.json b/packages/apps/package.json index c26be6883498b..c361880f7d705 100644 --- a/packages/apps/package.json +++ b/packages/apps/package.json @@ -17,8 +17,9 @@ "dev": "tsc -p tsconfig.json --watch --preserveWatchOutput", "lint": "eslint .", "lint:fix": "eslint --fix .", - "test:deno": "cd deno-runtime && deno task test", - "test:node": "NODE_ENV=test node --require ts-node/register/transpile-only --test-reporter spec --test \"tests/**/*.test.ts\"" + "test:deno": "deno task --config=deno-runtime/deno.jsonc test", + "test:node": "NODE_ENV=test node --require ts-node/register/transpile-only --test-reporter spec --test \"tests/**/*.test.ts\"", + "testunit": "yarn test:node && yarn test:deno" }, "dependencies": { "@msgpack/msgpack": "3.0.0-beta2", From e5c7324c9c8210b35b05a8d0156dcd699206c8d2 Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Wed, 29 Apr 2026 20:15:27 -0300 Subject: [PATCH 22/25] refactor(apps): package json --- packages/apps/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/apps/package.json b/packages/apps/package.json index c361880f7d705..20aacfec4cea8 100644 --- a/packages/apps/package.json +++ b/packages/apps/package.json @@ -16,10 +16,10 @@ "build:deno-cache": "node scripts/deno-cache.js", "dev": "tsc -p tsconfig.json --watch --preserveWatchOutput", "lint": "eslint .", - "lint:fix": "eslint --fix .", "test:deno": "deno task --config=deno-runtime/deno.jsonc test", "test:node": "NODE_ENV=test node --require ts-node/register/transpile-only --test-reporter spec --test \"tests/**/*.test.ts\"", - "testunit": "yarn test:node && yarn test:deno" + "testunit": "yarn test:node && yarn test:deno", + "typecheck": "tsc -p tsconfig.json --noEmit" }, "dependencies": { "@msgpack/msgpack": "3.0.0-beta2", From 316730e01c7ae0f8c79af8a499fdb4cd3a1a8d9c Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Wed, 29 Apr 2026 20:19:13 -0300 Subject: [PATCH 23/25] chore(ci): remove esbuild from apps packages' node_modules along with apps-engine --- .github/actions/build-docker/action.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/actions/build-docker/action.yml b/.github/actions/build-docker/action.yml index 77ebf4aa3ad03..6f9341c17b183 100644 --- a/.github/actions/build-docker/action.yml +++ b/.github/actions/build-docker/action.yml @@ -100,6 +100,8 @@ runs: find /tmp/build/bundle/programs/server/npm/node_modules/@esbuild -type d -name 'linux-*' -not -name "*-${swc_arch}" -exec rm -rf {} + find /tmp/build/bundle/programs/server/npm/node_modules/@rocket.chat/apps-engine/node_modules/@esbuild -type d -name 'linux-*' -not -name "*-${swc_arch}" -exec rm -rf {} + + + find /tmp/build/bundle/programs/server/npm/node_modules/@rocket.chat/apps/node_modules/@esbuild -type d -name 'linux-*' -not -name "*-${swc_arch}" -exec rm -rf {} + fi if [[ "$INPUT_PUBLISH_IMAGE" == 'true' ]]; then From e05c9cd220432d830e49989a2540ede1a0d54713 Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Wed, 29 Apr 2026 20:50:07 -0300 Subject: [PATCH 24/25] fix: remove apps-engine copying from Dockerfiles --- ee/apps/account-service/Dockerfile | 1 - ee/apps/authorization-service/Dockerfile | 1 - ee/apps/ddp-streamer/Dockerfile | 1 - ee/apps/omnichannel-transcript/Dockerfile | 1 - ee/apps/presence-service/Dockerfile | 1 - ee/apps/queue-worker/Dockerfile | 1 - 6 files changed, 6 deletions(-) diff --git a/ee/apps/account-service/Dockerfile b/ee/apps/account-service/Dockerfile index 3c4dd3b6f3dd9..d2560ff77089c 100644 --- a/ee/apps/account-service/Dockerfile +++ b/ee/apps/account-service/Dockerfile @@ -11,7 +11,6 @@ COPY ./packages/core-services/package.json packages/core-services/package.json COPY ./packages/core-services/dist packages/core-services/dist COPY ./packages/apps-engine/package.json packages/apps-engine/package.json -COPY ./packages/apps-engine/client packages/apps-engine/client COPY ./packages/apps-engine/definition packages/apps-engine/definition COPY ./packages/agenda/package.json packages/agenda/package.json diff --git a/ee/apps/authorization-service/Dockerfile b/ee/apps/authorization-service/Dockerfile index 747b9793bb66e..743b4c30629dc 100644 --- a/ee/apps/authorization-service/Dockerfile +++ b/ee/apps/authorization-service/Dockerfile @@ -11,7 +11,6 @@ COPY ./packages/core-services/package.json packages/core-services/package.json COPY ./packages/core-services/dist packages/core-services/dist COPY ./packages/apps-engine/package.json packages/apps-engine/package.json -COPY ./packages/apps-engine/client packages/apps-engine/client COPY ./packages/apps-engine/definition packages/apps-engine/definition COPY ./packages/agenda/package.json packages/agenda/package.json diff --git a/ee/apps/ddp-streamer/Dockerfile b/ee/apps/ddp-streamer/Dockerfile index bc489a5a24a21..0205a95371f95 100644 --- a/ee/apps/ddp-streamer/Dockerfile +++ b/ee/apps/ddp-streamer/Dockerfile @@ -11,7 +11,6 @@ COPY ./packages/core-services/package.json packages/core-services/package.json COPY ./packages/core-services/dist packages/core-services/dist COPY ./packages/apps-engine/package.json packages/apps-engine/package.json -COPY ./packages/apps-engine/client packages/apps-engine/client COPY ./packages/apps-engine/definition packages/apps-engine/definition COPY ./packages/agenda/package.json packages/agenda/package.json diff --git a/ee/apps/omnichannel-transcript/Dockerfile b/ee/apps/omnichannel-transcript/Dockerfile index 9425aaeb9cf7a..b869abbfd9254 100644 --- a/ee/apps/omnichannel-transcript/Dockerfile +++ b/ee/apps/omnichannel-transcript/Dockerfile @@ -11,7 +11,6 @@ COPY ./packages/core-services/package.json packages/core-services/package.json COPY ./packages/core-services/dist packages/core-services/dist COPY ./packages/apps-engine/package.json packages/apps-engine/package.json -COPY ./packages/apps-engine/client packages/apps-engine/client COPY ./packages/apps-engine/definition packages/apps-engine/definition COPY ./packages/agenda/package.json packages/agenda/package.json diff --git a/ee/apps/presence-service/Dockerfile b/ee/apps/presence-service/Dockerfile index 4bdb808180d23..affe93f578f9e 100644 --- a/ee/apps/presence-service/Dockerfile +++ b/ee/apps/presence-service/Dockerfile @@ -17,7 +17,6 @@ COPY ./packages/core-services/package.json packages/core-services/package.json COPY ./packages/core-services/dist packages/core-services/dist COPY ./packages/apps-engine/package.json packages/apps-engine/package.json -COPY ./packages/apps-engine/client packages/apps-engine/client COPY ./packages/apps-engine/definition packages/apps-engine/definition COPY ./packages/core-typings/package.json packages/core-typings/package.json diff --git a/ee/apps/queue-worker/Dockerfile b/ee/apps/queue-worker/Dockerfile index 9425aaeb9cf7a..b869abbfd9254 100644 --- a/ee/apps/queue-worker/Dockerfile +++ b/ee/apps/queue-worker/Dockerfile @@ -11,7 +11,6 @@ COPY ./packages/core-services/package.json packages/core-services/package.json COPY ./packages/core-services/dist packages/core-services/dist COPY ./packages/apps-engine/package.json packages/apps-engine/package.json -COPY ./packages/apps-engine/client packages/apps-engine/client COPY ./packages/apps-engine/definition packages/apps-engine/definition COPY ./packages/agenda/package.json packages/agenda/package.json From a7dcbfcaa6aa8a8c1a3ec381ae1f817ea33b1fe4 Mon Sep 17 00:00:00 2001 From: Douglas Gubert Date: Mon, 4 May 2026 17:06:25 -0300 Subject: [PATCH 25/25] docs: apps-engine-migration.md --- docs/apps-engine-migration.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/apps-engine-migration.md b/docs/apps-engine-migration.md index 9e39dca694aaa..dd7271e715271 100644 --- a/docs/apps-engine-migration.md +++ b/docs/apps-engine-migration.md @@ -26,3 +26,4 @@ To make this migration easier to understand and review, we're using a stacked PR - [40183](https://github.com/RocketChat/Rocket.Chat/pull/40183) Replaces `AppPackageParser.getEngineVersion()` - which resolved the version by traversing the filesystem relative to `__dirname` - with a direct import of `ENGINE_VERSION`. This will support the migration of the `AppPackageParser` class itself. - [40184](https://github.com/RocketChat/Rocket.Chat/pull/40184) Copies all relevant source files from `packages/apps-engine/src/server`, `packages/apps-engine/src/client`, `packages/apps-engine/deno-runtime`, `packages/apps-engine/tests` and `packages/apps-engine/scripts` into their corresponding path at `packages/apps`. - [40185](https://github.com/RocketChat/Rocket.Chat/pull/40185) Adapts the path resolution of the apps-engine package for the deno runtime +- [40186](https://github.com/RocketChat/Rocket.Chat/pull/40186) Flips the switch; changes code in `apps/meteor` and `packages/core-services` that pointed to `@rocket.chat/apps-engine` and makes it point to `@rocket.chat/apps`. This is the turning point in what is actually executed.