Skip to content

Commit d58ded7

Browse files
d-gubertclaude
andcommitted
refactor(apps): merge IListenerBridge augmentation into the interface directly
The old src/bridges/IListenerBridge.ts used module augmentation (`declare module '@rocket.chat/apps-engine/server/bridges'`) to extend IListenerBridge with core-typings-specific overloads. Now that IListenerBridge lives in this package, the augmentation workaround is no longer needed. The extra overload signatures are merged directly into src/server/bridges/IListenerBridge.ts and the augmentation file is deleted. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent f34ff05 commit d58ded7

3 files changed

Lines changed: 53 additions & 61 deletions

File tree

packages/apps/src/bridges/IListenerBridge.ts

Lines changed: 0 additions & 55 deletions
This file was deleted.

packages/apps/src/index.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import './bridges/IListenerBridge';
2-
31
export type * from './converters';
42
export * from './AppsEngine';
53
export type * from './IAppServerNotifier';
Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,59 @@
1-
import type { IMessage } from '@rocket.chat/apps-engine/definition/messages';
1+
import type { ILivechatDepartment, ILivechatVisitor, IMessage, IOmnichannelRoom, IRoom, IUser } from '@rocket.chat/core-typings';
2+
3+
import type { AppEvents } from '../../AppsEngine';
4+
import type { IMessage as IAppsMessage } from '@rocket.chat/apps-engine/definition/messages';
25
import type { AppInterface } from '@rocket.chat/apps-engine/definition/metadata';
3-
import type { IRoom } from '@rocket.chat/apps-engine/definition/rooms';
6+
import type { IRoom as IAppsRoom } from '@rocket.chat/apps-engine/definition/rooms';
47
import type { UIKitIncomingInteraction } from '@rocket.chat/apps-engine/definition/uikit';
58

69
export interface IListenerBridge {
7-
messageEvent(int: AppInterface, message: IMessage): Promise<void | boolean | IMessage>;
8-
roomEvent(int: AppInterface, room: IRoom): Promise<void | boolean | IRoom>;
10+
messageEvent(int: AppInterface, message: IAppsMessage): Promise<void | boolean | IAppsMessage>;
11+
roomEvent(int: AppInterface, room: IAppsRoom): Promise<void | boolean | IAppsRoom>;
912
uiKitInteractionEvent(int: AppInterface, action: UIKitIncomingInteraction): Promise<void | boolean>;
13+
14+
messageEvent(int: 'IPostMessageDeleted', message: IMessage, userDeleted: IUser): Promise<void>;
15+
messageEvent(int: 'IPostMessageReacted', message: IMessage, userReacted: IUser, reaction: string, isReacted: boolean): Promise<void>;
16+
messageEvent(int: 'IPostMessageFollowed', message: IMessage, userFollowed: IUser, isFollowed: boolean): Promise<void>;
17+
messageEvent(int: 'IPostMessagePinned', message: IMessage, userPinned: IUser, isPinned: boolean): Promise<void>;
18+
messageEvent(int: 'IPostMessageStarred', message: IMessage, userStarred: IUser, isStarred: boolean): Promise<void>;
19+
messageEvent(int: 'IPostMessageReported', message: IMessage, userReported: IUser, reason: boolean): Promise<void>;
20+
messageEvent(
21+
int: 'IPreMessageSentPrevent' | 'IPreMessageDeletePrevent' | 'IPreMessageUpdatedPrevent',
22+
message: IMessage,
23+
): Promise<boolean>;
24+
messageEvent(
25+
int: 'IPreMessageSentExtend' | 'IPreMessageSentModify' | 'IPreMessageUpdatedExtend' | 'IPreMessageUpdatedModify',
26+
message: IMessage,
27+
): Promise<IMessage>;
28+
messageEvent(int: 'IPostMessageSent' | 'IPostMessageUpdated' | 'IPostSystemMessageSent', message: IMessage): Promise<void>;
29+
30+
roomEvent(int: 'IPreRoomUserJoined' | 'IPostRoomUserJoined', room: IRoom, joiningUser: IUser, invitingUser?: IUser): Promise<void>;
31+
roomEvent(int: 'IPreRoomUserLeave' | 'IPostRoomUserLeave', room: IRoom, leavingUser: IUser): Promise<void>;
32+
roomEvent(int: 'IPreRoomCreatePrevent' | 'IPreRoomDeletePrevent', room: IRoom): Promise<boolean>;
33+
roomEvent(int: 'IPreRoomCreateExtend' | 'IPreRoomCreateModify', room: IRoom): Promise<IRoom>;
34+
roomEvent(int: 'IPostRoomCreate' | 'IPostRoomDeleted', room: IRoom): Promise<void>;
35+
36+
livechatEvent(
37+
int:
38+
| 'IPostLivechatAgentAssigned'
39+
| 'IPostLivechatAgentUnassigned'
40+
| 'IPostLivechatDepartmentRemoved'
41+
| 'IPostLivechatDepartmentDisabled',
42+
data: { user: IUser; room: IOmnichannelRoom },
43+
): Promise<void>;
44+
livechatEvent(
45+
int: 'IPostLivechatRoomTransferred',
46+
data: { type: 'agent'; room: IRoom['_id']; from: IUser['_id']; to: IUser['_id'] },
47+
): Promise<void>;
48+
livechatEvent(
49+
int: 'IPostLivechatRoomTransferred',
50+
data: { type: 'department'; room: IRoom['_id']; from: ILivechatDepartment['_id']; to: ILivechatDepartment['_id'] },
51+
): Promise<void>;
52+
livechatEvent(int: 'IPostLivechatGuestSaved', data: ILivechatVisitor['_id']): Promise<void>;
53+
livechatEvent(int: 'IPostLivechatRoomSaved', data: IRoom['_id']): Promise<void>;
54+
livechatEvent(
55+
int: 'ILivechatRoomClosedHandler' | 'IPostLivechatRoomStarted' | 'IPostLivechatRoomClosed' | 'IPreLivechatRoomCreatePrevent',
56+
data: IRoom,
57+
): Promise<void>;
58+
livechatEvent(int: AppEvents | AppEvents[keyof AppEvents], data: any): Promise<void>;
1059
}

0 commit comments

Comments
 (0)