wowok 2.1.16 → 2.1.18
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.
- package/dist/cjs/w/call/base.js +1 -0
- package/dist/cjs/w/call/base.js.map +1 -1
- package/dist/cjs/w/call/entity.js +1 -0
- package/dist/cjs/w/call/entity.js.map +1 -1
- package/dist/cjs/w/call/passport.js +1 -0
- package/dist/cjs/w/call/passport.js.map +1 -1
- package/dist/cjs/w/call/permission.js.map +1 -1
- package/dist/cjs/w/call/proof.js +1 -0
- package/dist/cjs/w/call/proof.js.map +1 -1
- package/dist/cjs/w/call/util.js +1 -0
- package/dist/cjs/w/call/util.js.map +1 -1
- package/dist/cjs/w/local/account.d.ts +2 -2
- package/dist/cjs/w/local/account.js +101 -28
- package/dist/cjs/w/local/account.js.map +1 -1
- package/dist/cjs/w/local/index.d.ts +1 -1
- package/dist/cjs/w/local/index.js +17 -8
- package/dist/cjs/w/local/index.js.map +1 -1
- package/dist/cjs/w/local/local.js +10 -5
- package/dist/cjs/w/local/local.js.map +1 -1
- package/dist/cjs/w/local/wip.js +1 -0
- package/dist/cjs/w/local/wip.js.map +1 -1
- package/dist/cjs/w/messenger/crypto.js +4 -4
- package/dist/cjs/w/messenger/crypto.js.map +1 -1
- package/dist/cjs/w/messenger/messenger-api.d.ts +1 -3
- package/dist/cjs/w/messenger/messenger-api.js +75 -56
- package/dist/cjs/w/messenger/messenger-api.js.map +1 -1
- package/dist/cjs/w/messenger/messenger-manager.d.ts +1 -6
- package/dist/cjs/w/messenger/messenger-manager.js +99 -150
- package/dist/cjs/w/messenger/messenger-manager.js.map +1 -1
- package/dist/cjs/w/messenger/messenger.d.ts +88 -31
- package/dist/cjs/w/messenger/messenger.js +448 -441
- package/dist/cjs/w/messenger/messenger.js.map +1 -1
- package/dist/cjs/w/messenger/server.d.ts +9 -1
- package/dist/cjs/w/messenger/server.js +56 -5
- package/dist/cjs/w/messenger/server.js.map +1 -1
- package/dist/cjs/w/messenger/session.d.ts +13 -10
- package/dist/cjs/w/messenger/session.js +290 -176
- package/dist/cjs/w/messenger/session.js.map +1 -1
- package/dist/cjs/w/messenger/storage.d.ts +30 -0
- package/dist/cjs/w/messenger/storage.js +138 -5
- package/dist/cjs/w/messenger/storage.js.map +1 -1
- package/dist/cjs/w/messenger/types.d.ts +37 -2
- package/dist/cjs/w/messenger/types.js +14 -3
- package/dist/cjs/w/messenger/types.js.map +1 -1
- package/dist/cjs/w/query/object.js +1 -0
- package/dist/cjs/w/query/object.js.map +1 -1
- package/dist/cjs/w/util.js +1 -0
- package/dist/cjs/w/util.js.map +1 -1
- package/dist/esm/w/call/base.js +1 -0
- package/dist/esm/w/call/base.js.map +1 -1
- package/dist/esm/w/call/entity.js +1 -0
- package/dist/esm/w/call/entity.js.map +1 -1
- package/dist/esm/w/call/passport.js +1 -0
- package/dist/esm/w/call/passport.js.map +1 -1
- package/dist/esm/w/call/permission.js.map +1 -1
- package/dist/esm/w/call/proof.js +1 -0
- package/dist/esm/w/call/proof.js.map +1 -1
- package/dist/esm/w/call/util.js +1 -0
- package/dist/esm/w/call/util.js.map +1 -1
- package/dist/esm/w/local/account.d.ts +2 -2
- package/dist/esm/w/local/account.js +101 -28
- package/dist/esm/w/local/account.js.map +1 -1
- package/dist/esm/w/local/index.d.ts +1 -1
- package/dist/esm/w/local/index.js +17 -8
- package/dist/esm/w/local/index.js.map +1 -1
- package/dist/esm/w/local/local.js +10 -5
- package/dist/esm/w/local/local.js.map +1 -1
- package/dist/esm/w/local/wip.js +1 -0
- package/dist/esm/w/local/wip.js.map +1 -1
- package/dist/esm/w/messenger/crypto.js +4 -4
- package/dist/esm/w/messenger/crypto.js.map +1 -1
- package/dist/esm/w/messenger/messenger-api.d.ts +1 -3
- package/dist/esm/w/messenger/messenger-api.js +75 -56
- package/dist/esm/w/messenger/messenger-api.js.map +1 -1
- package/dist/esm/w/messenger/messenger-manager.d.ts +1 -6
- package/dist/esm/w/messenger/messenger-manager.js +99 -150
- package/dist/esm/w/messenger/messenger-manager.js.map +1 -1
- package/dist/esm/w/messenger/messenger.d.ts +88 -31
- package/dist/esm/w/messenger/messenger.js +448 -441
- package/dist/esm/w/messenger/messenger.js.map +1 -1
- package/dist/esm/w/messenger/server.d.ts +9 -1
- package/dist/esm/w/messenger/server.js +56 -5
- package/dist/esm/w/messenger/server.js.map +1 -1
- package/dist/esm/w/messenger/session.d.ts +13 -10
- package/dist/esm/w/messenger/session.js +290 -176
- package/dist/esm/w/messenger/session.js.map +1 -1
- package/dist/esm/w/messenger/storage.d.ts +30 -0
- package/dist/esm/w/messenger/storage.js +138 -5
- package/dist/esm/w/messenger/storage.js.map +1 -1
- package/dist/esm/w/messenger/types.d.ts +37 -2
- package/dist/esm/w/messenger/types.js +14 -3
- package/dist/esm/w/messenger/types.js.map +1 -1
- package/dist/esm/w/query/object.js +1 -0
- package/dist/esm/w/query/object.js.map +1 -1
- package/dist/esm/w/util.js +1 -0
- package/dist/esm/w/util.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import type { CallEnv } from "../common.js";
|
|
2
|
-
import type { MessengerConfig, Message, SendMessageResult, DecryptedMessage, ZipContentType, ListOperationResponse, GuardListItem } from "./types.js";
|
|
2
|
+
import type { MessengerConfig, Message, SendMessageResult, DecryptedMessage, ZipContentType, ListOperationResponse, GuardListItem, PreKeyStatus } from "./types.js";
|
|
3
3
|
export declare class Messenger {
|
|
4
4
|
private session;
|
|
5
5
|
private serverClient;
|
|
6
6
|
private config;
|
|
7
7
|
private userAddress;
|
|
8
|
-
private eventSource;
|
|
9
8
|
private onMessageCallback;
|
|
10
|
-
private
|
|
9
|
+
private pollingTimer;
|
|
10
|
+
private messageConsecutiveEmptyPulls;
|
|
11
|
+
private prekeyConsecutiveOkCount;
|
|
12
|
+
private currentMessageInterval;
|
|
13
|
+
private isPollingRunning;
|
|
11
14
|
private messageStorage;
|
|
12
15
|
private sessionStateStorage;
|
|
16
|
+
private waitingMessages;
|
|
17
|
+
private failedMessages;
|
|
13
18
|
constructor(userAddress: string, config?: Partial<MessengerConfig>);
|
|
14
19
|
/**
|
|
15
20
|
* 获取用户地址
|
|
@@ -43,7 +48,7 @@ export declare class Messenger {
|
|
|
43
48
|
* 2. 注册设备到服务器
|
|
44
49
|
* 3. 上传预密钥
|
|
45
50
|
* 4. 检查预密钥状态(如低于阈值则补充)
|
|
46
|
-
* 5.
|
|
51
|
+
* 5. 启动合并的polling timer
|
|
47
52
|
*/
|
|
48
53
|
initialize(): Promise<void>;
|
|
49
54
|
/**
|
|
@@ -53,13 +58,30 @@ export declare class Messenger {
|
|
|
53
58
|
*/
|
|
54
59
|
private checkAndRefillPrekeys;
|
|
55
60
|
/**
|
|
56
|
-
*
|
|
61
|
+
* 启动合并的polling timer
|
|
57
62
|
*/
|
|
58
|
-
private
|
|
63
|
+
private startPollingTimer;
|
|
59
64
|
/**
|
|
60
|
-
*
|
|
65
|
+
* 停止polling timer
|
|
61
66
|
*/
|
|
62
|
-
|
|
67
|
+
private stopPollingTimer;
|
|
68
|
+
/**
|
|
69
|
+
* 安排下一次poll
|
|
70
|
+
*/
|
|
71
|
+
private scheduleNextPoll;
|
|
72
|
+
/**
|
|
73
|
+
* 获取下次poll的间隔时间
|
|
74
|
+
* 【优化】增加3秒快速模式(有待解密消息时)
|
|
75
|
+
*/
|
|
76
|
+
private getNextPollInterval;
|
|
77
|
+
/**
|
|
78
|
+
* 执行一次poll(拉取消息和检查prekey状态)
|
|
79
|
+
*/
|
|
80
|
+
private poll;
|
|
81
|
+
/**
|
|
82
|
+
* 触发快速poll(发送消息后调用)
|
|
83
|
+
*/
|
|
84
|
+
private triggerFastPoll;
|
|
63
85
|
/**
|
|
64
86
|
* 发送加密消息
|
|
65
87
|
*
|
|
@@ -83,7 +105,10 @@ export declare class Messenger {
|
|
|
83
105
|
* 3. 验证 Merkle 证明
|
|
84
106
|
* 4. 本地存储并确认消息
|
|
85
107
|
*/
|
|
86
|
-
pullMessages(limit?: number): Promise<
|
|
108
|
+
pullMessages(limit?: number): Promise<{
|
|
109
|
+
messages: DecryptedMessage[];
|
|
110
|
+
prekey_status?: PreKeyStatus;
|
|
111
|
+
}>;
|
|
87
112
|
/**
|
|
88
113
|
* 获取最后发送的消息序号
|
|
89
114
|
* @param peerAddress 对方地址
|
|
@@ -111,30 +136,9 @@ export declare class Messenger {
|
|
|
111
136
|
proofAddress: string;
|
|
112
137
|
txHash: string;
|
|
113
138
|
}>;
|
|
114
|
-
/**
|
|
115
|
-
* 建立 SSE 连接并监听服务器事件
|
|
116
|
-
*
|
|
117
|
-
* 安全要求:必须提供签名验证,防止未授权监听他人事件
|
|
118
|
-
* @param onMessage 新消息回调
|
|
119
|
-
* @param signatureParams 签名参数(可选,不提供时自动生成)
|
|
120
|
-
*/
|
|
121
|
-
connectEventSource(onMessage?: (messages: DecryptedMessage[]) => void, signatureParams?: {
|
|
122
|
-
signatureScheme: string;
|
|
123
|
-
signature: string;
|
|
124
|
-
timestamp: number;
|
|
125
|
-
nonce: string;
|
|
126
|
-
}): Promise<void>;
|
|
127
|
-
/**
|
|
128
|
-
* 检查 SSE 是否已连接
|
|
129
|
-
*/
|
|
130
|
-
isEventSourceConnected(): boolean;
|
|
131
|
-
/**
|
|
132
|
-
* 断开 SSE 连接
|
|
133
|
-
*/
|
|
134
|
-
disconnectEventSource(): void;
|
|
135
139
|
/**
|
|
136
140
|
* 销毁 Messenger 实例
|
|
137
|
-
*
|
|
141
|
+
* 清理所有资源(定时器等)
|
|
138
142
|
*/
|
|
139
143
|
destroy(): void;
|
|
140
144
|
/**
|
|
@@ -142,6 +146,11 @@ export declare class Messenger {
|
|
|
142
146
|
* 用于清理资源
|
|
143
147
|
*/
|
|
144
148
|
disconnect(): void;
|
|
149
|
+
/**
|
|
150
|
+
* 设置新消息回调
|
|
151
|
+
* @param onMessage 新消息回调函数
|
|
152
|
+
*/
|
|
153
|
+
setOnMessageCallback(onMessage: (messages: DecryptedMessage[]) => void): void;
|
|
145
154
|
/**
|
|
146
155
|
* 发送 ZIP 压缩文件
|
|
147
156
|
*
|
|
@@ -228,4 +237,52 @@ export declare class Messenger {
|
|
|
228
237
|
* Guard 列表 - 获取列表
|
|
229
238
|
*/
|
|
230
239
|
getGuardList(): Promise<ListOperationResponse>;
|
|
240
|
+
/**
|
|
241
|
+
* 尝试解密单条消息
|
|
242
|
+
* @param serverMsg 服务器消息
|
|
243
|
+
* @returns 解密结果
|
|
244
|
+
*/
|
|
245
|
+
private tryDecryptMessage;
|
|
246
|
+
/**
|
|
247
|
+
* 判断错误是否可重试(Skip Keys 机制)
|
|
248
|
+
* @param errorMessage 错误信息
|
|
249
|
+
* @returns 是否可重试
|
|
250
|
+
*/
|
|
251
|
+
private isRetryableError;
|
|
252
|
+
/**
|
|
253
|
+
* 处理 waitingMessages 池中的消息
|
|
254
|
+
* @param decryptedMessages 解密成功的消息列表
|
|
255
|
+
* @param acknowledgedIds 已确认的消息ID列表
|
|
256
|
+
*/
|
|
257
|
+
private processWaitingMessages;
|
|
258
|
+
/**
|
|
259
|
+
* 保存解密失败的消息
|
|
260
|
+
* @param serverMsg 服务器消息
|
|
261
|
+
* @param error 错误信息
|
|
262
|
+
*/
|
|
263
|
+
private saveFailedMessage;
|
|
264
|
+
/**
|
|
265
|
+
* 重新调度轮询(用于切换到快速模式)
|
|
266
|
+
*/
|
|
267
|
+
private reschedulePolling;
|
|
268
|
+
/**
|
|
269
|
+
* 获取解密失败的消息(供用户决策重发)
|
|
270
|
+
* @returns 失败消息列表
|
|
271
|
+
*/
|
|
272
|
+
getFailedMessages(): Array<{
|
|
273
|
+
messageId: string;
|
|
274
|
+
from: string;
|
|
275
|
+
error: string;
|
|
276
|
+
leafIndex?: number;
|
|
277
|
+
}>;
|
|
278
|
+
/**
|
|
279
|
+
* 清除解密失败的消息记录
|
|
280
|
+
* @param messageId 消息ID(可选,不提供则清除所有)
|
|
281
|
+
*/
|
|
282
|
+
clearFailedMessages(messageId?: string): void;
|
|
283
|
+
/**
|
|
284
|
+
* 获取等待解密的消息数量
|
|
285
|
+
* @returns 等待消息数量
|
|
286
|
+
*/
|
|
287
|
+
getWaitingMessageCount(): number;
|
|
231
288
|
}
|