@roomkit/client 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,113 @@
1
+ /**
2
+ * 共享类型定义
3
+ */
4
+ /**
5
+ * 房间状态信息
6
+ */
7
+ export interface RoomState {
8
+ roomId: string;
9
+ gameType: string;
10
+ players: PlayerInfo[];
11
+ createdAt: number;
12
+ metadata?: Record<string, unknown>;
13
+ }
14
+ /**
15
+ * 玩家信息
16
+ */
17
+ export interface PlayerInfo {
18
+ userId: string;
19
+ sessionId: string;
20
+ joinedAt: number;
21
+ metadata?: Record<string, unknown>;
22
+ }
23
+ /**
24
+ * 房间可用信息(用于列表)
25
+ */
26
+ export interface AvailableRoom {
27
+ roomId: string;
28
+ name: string;
29
+ clients: number;
30
+ maxClients: number;
31
+ metadata?: Record<string, unknown>;
32
+ }
33
+ /**
34
+ * 错误响应
35
+ */
36
+ export interface ErrorResponse {
37
+ code: number;
38
+ message: string;
39
+ details?: unknown;
40
+ }
41
+ /**
42
+ * WebSocket消息格式
43
+ *
44
+ * 支持两种消息ID格式:
45
+ * - msgType: 字符串类型(新格式,推荐)- 框架内置消息以 'gw:' 前缀
46
+ * - msgId: 数字类型(旧格式,向后兼容)
47
+ *
48
+ * 多房间模式:消息可以带 roomId 指定目标房间
49
+ */
50
+ export interface WsMessage<T = unknown> {
51
+ /** 消息类型(字符串格式,推荐) */
52
+ msgType?: string;
53
+ /** 消息ID(数字格式,向后兼容) */
54
+ msgId?: number;
55
+ /** 消息内容 */
56
+ payload: T;
57
+ /** 请求ID(用于请求-响应匹配) */
58
+ reqId?: string;
59
+ /** 目标房间ID(多房间模式必须指定) */
60
+ roomId?: string;
61
+ /** 认证令牌(仅用于认证和加入房间) */
62
+ token?: string;
63
+ }
64
+ /**
65
+ * 认证响应
66
+ */
67
+ export interface AuthResponse {
68
+ success: boolean;
69
+ userId?: string;
70
+ error?: string;
71
+ }
72
+ /**
73
+ * 创建房间响应
74
+ */
75
+ export interface CreateRoomResponse {
76
+ success: boolean;
77
+ roomId?: string;
78
+ error?: string;
79
+ }
80
+ /**
81
+ * 加入房间响应
82
+ */
83
+ export interface JoinRoomResponse {
84
+ success: boolean;
85
+ roomId?: string;
86
+ sessionId?: string;
87
+ error?: string;
88
+ }
89
+ /**
90
+ * 加入或创建房间响应
91
+ */
92
+ export interface JoinOrCreateResponse {
93
+ success: boolean;
94
+ roomId?: string;
95
+ sessionId?: string;
96
+ created?: boolean;
97
+ error?: string;
98
+ }
99
+ /**
100
+ * 房间列表响应
101
+ */
102
+ export interface RoomListResponse {
103
+ rooms: AvailableRoom[];
104
+ }
105
+ /**
106
+ * 重连信息
107
+ */
108
+ export interface ReconnectInfo {
109
+ roomId: string;
110
+ sessionId: string;
111
+ reconnectToken: string;
112
+ }
113
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,OAAO;IACpC,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW;IACX,OAAO,EAAE,CAAC,CAAC;IACX,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 共享类型定义
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@roomkit/client",
3
+ "version": "1.0.0",
4
+ "description": "Client SDK for Gateway-Worker Framework - Colyseus-inspired TypeScript SDK",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
13
+ }
14
+ },
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "clean": "rimraf dist",
18
+ "dev": "tsc --watch"
19
+ },
20
+ "peerDependencies": {
21
+ "@roomkit/core": "^1.0.0"
22
+ },
23
+ "dependencies": {
24
+ "ws": "^8.18.3"
25
+ },
26
+ "devDependencies": {
27
+ "@roomkit/core": "workspace:*",
28
+ "@types/ws": "^8.5.10",
29
+ "rimraf": "^5.0.5",
30
+ "typescript": "^5.3.0"
31
+ },
32
+ "keywords": [
33
+ "client",
34
+ "websocket",
35
+ "game-client",
36
+ "multiplayer",
37
+ "colyseus",
38
+ "sdk",
39
+ "room",
40
+ "state-sync"
41
+ ],
42
+ "license": "MIT",
43
+ "repository": {
44
+ "type": "git",
45
+ "url": "https://github.com/daxing/gateway-worker.git",
46
+ "directory": "packages/client"
47
+ },
48
+ "bugs": {
49
+ "url": "https://github.com/daxing/gateway-worker/issues"
50
+ },
51
+ "homepage": "https://github.com/daxing/gateway-worker#readme",
52
+ "files": [
53
+ "dist",
54
+ "README.md",
55
+ "LICENSE"
56
+ ],
57
+ "publishConfig": {
58
+ "access": "public"
59
+ }
60
+ }