Skip to content

Commit 1cc12df

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 aace46c commit 1cc12df

3 files changed

Lines changed: 26 additions & 380 deletions

File tree

packages/apps/package.json

Lines changed: 21 additions & 1 deletion
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",
@@ -21,10 +41,10 @@
2141
"test:node": "NODE_ENV=test node --require ts-node/register/transpile-only --test-reporter spec --test \"tests/**/*.test.ts\""
2242
},
2343
"dependencies": {
44+
"@msgpack/msgpack": "3.0.0-beta2",
2445
"@rocket.chat/apps-engine": "workspace:^",
2546
"@rocket.chat/core-typings": "workspace:^",
2647
"@rocket.chat/model-typings": "workspace:^",
27-
"@msgpack/msgpack": "3.0.0-beta2",
2848
"adm-zip": "^0.5.16",
2949
"debug": "^4.3.7",
3050
"esbuild": "~0.27.3",

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

Lines changed: 4 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,14 @@
11
import { BaseBridge } from './BaseBridge';
22
import type { IMessage, IMessageRaw } from '@rocket.chat/apps-engine/definition/messages';
3-
import type { IRoom, IRoomRaw, RoomType } from '@rocket.chat/apps-engine/definition/rooms';
3+
import type { IRoom, IRoomRaw } from '@rocket.chat/apps-engine/definition/rooms';
4+
import { GetMessagesSortableFields } from '@rocket.chat/apps-engine/definition/rooms/IGetMessagesOptions';
5+
import type { GetMessagesOptions, GetRoomsFilters, GetRoomsOptions } from '@rocket.chat/apps-engine/definition/rooms/IGetMessagesOptions';
46
import type { IUser } from '@rocket.chat/apps-engine/definition/users';
57
import { PermissionDeniedError } from '../errors/PermissionDeniedError';
68
import { AppPermissionManager } from '../managers/AppPermissionManager';
79
import { AppPermissions } from '../permissions/AppPermissions';
810

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

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

0 commit comments

Comments
 (0)