Skip to content

Commit ac06baf

Browse files
d-gubertclaude
andcommitted
refactor(apps): source room options and OAuth2Client from apps-engine definition
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 <noreply@anthropic.com>
1 parent 072de96 commit ac06baf

3 files changed

Lines changed: 29 additions & 379 deletions

File tree

packages/apps/package.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,26 @@
44
"private": true,
55
"main": "./dist/index.js",
66
"typings": "./dist/index.d.ts",
7+
"exports": {
8+
".": {
9+
"require": "./dist/index.js",
10+
"types": "./dist/index.d.ts"
11+
},
12+
"./server/*": {
13+
"require": "./dist/server/*.js",
14+
"types": "./dist/server/*.d.ts"
15+
},
16+
"./client/*": {
17+
"require": "./dist/client/*.js",
18+
"types": "./dist/client/*.d.ts"
19+
}
20+
},
21+
"typesVersions": {
22+
"*": {
23+
"server/*": ["./dist/server/*"],
24+
"client/*": ["./dist/client/*"]
25+
}
26+
},
727
"files": [
828
"/dist",
929
"/deno-runtime",

packages/apps/src/server/bridges/RoomBridge.ts

Lines changed: 8 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,19 @@
11
import type { IMessage, IMessageRaw } from '@rocket.chat/apps-engine/definition/messages';
2-
import type { IRoom, IRoomRaw, RoomType } from '@rocket.chat/apps-engine/definition/rooms';
2+
import type { IRoom, IRoomRaw } from '@rocket.chat/apps-engine/definition/rooms';
3+
import type {
4+
GetMessagesSortableFields,
5+
GetMessagesOptions,
6+
GetRoomsFilters,
7+
GetRoomsOptions,
8+
} from '@rocket.chat/apps-engine/definition/rooms/IGetMessagesOptions';
39
import type { IUser } from '@rocket.chat/apps-engine/definition/users';
410

511
import { BaseBridge } from './BaseBridge';
612
import { PermissionDeniedError } from '../errors/PermissionDeniedError';
713
import { AppPermissionManager } from '../managers/AppPermissionManager';
814
import { AppPermissions } from '../permissions/AppPermissions';
915

10-
export const GetMessagesSortableFields = ['createdAt'] as const;
11-
12-
export type GetMessagesOptions = {
13-
limit: number;
14-
skip: number;
15-
sort: Record<(typeof GetMessagesSortableFields)[number], 'asc' | 'desc'>;
16-
showThreadMessages: boolean;
17-
};
18-
19-
/**
20-
* Filters for querying rooms in the system.
21-
*/
22-
export type GetRoomsFilters = {
23-
/**
24-
* When specified, only rooms matching the provided types will be returned.
25-
*/
26-
types?: Array<RoomType>;
27-
/**
28-
* Filter to include or exclude discussion rooms.
29-
*
30-
* When undefined (default), discussions are included in the result set.
31-
*
32-
* When true, ONLY discussions are included in the result set (remove non-discussions).
33-
* When false, discussion rooms are excluded from the result set.
34-
*/
35-
discussions?: boolean;
36-
/**
37-
* Filter to include or exclude team main rooms.
38-
*
39-
* When undefined (default), team main rooms are included in the result set.
40-
*
41-
* When true, ONLY team main rooms are included in the result set (remove non-teams).
42-
* When false, team main rooms are excluded from the result set.
43-
*/
44-
teams?: boolean;
45-
};
46-
47-
export type GetRoomsOptions = {
48-
limit?: number;
49-
skip?: number;
50-
};
16+
export type { GetMessagesSortableFields, GetMessagesOptions, GetRoomsFilters, GetRoomsOptions };
5117

5218
export abstract class RoomBridge extends BaseBridge {
5319
public async doCreate(room: IRoom, members: Array<string>, appId: string): Promise<string> {

0 commit comments

Comments
 (0)