wowok 2.1.20 → 2.1.21

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.
Files changed (55) hide show
  1. package/dist/cjs/w/local/account.js +14 -46
  2. package/dist/cjs/w/local/account.js.map +1 -1
  3. package/dist/cjs/w/messenger/crypto.js +31 -0
  4. package/dist/cjs/w/messenger/crypto.js.map +1 -1
  5. package/dist/cjs/w/messenger/messenger-api.d.ts +27 -4
  6. package/dist/cjs/w/messenger/messenger-api.js +190 -255
  7. package/dist/cjs/w/messenger/messenger-api.js.map +1 -1
  8. package/dist/cjs/w/messenger/messenger-manager.d.ts +39 -3
  9. package/dist/cjs/w/messenger/messenger-manager.js +190 -105
  10. package/dist/cjs/w/messenger/messenger-manager.js.map +1 -1
  11. package/dist/cjs/w/messenger/messenger.d.ts +9 -1
  12. package/dist/cjs/w/messenger/messenger.js +33 -0
  13. package/dist/cjs/w/messenger/messenger.js.map +1 -1
  14. package/dist/cjs/w/messenger/server.d.ts +2 -2
  15. package/dist/cjs/w/messenger/server.js.map +1 -1
  16. package/dist/cjs/w/messenger/session.d.ts +15 -0
  17. package/dist/cjs/w/messenger/session.js +83 -35
  18. package/dist/cjs/w/messenger/session.js.map +1 -1
  19. package/dist/cjs/w/messenger/storage.d.ts +12 -0
  20. package/dist/cjs/w/messenger/storage.js +51 -2
  21. package/dist/cjs/w/messenger/storage.js.map +1 -1
  22. package/dist/cjs/w/messenger/templates/wts-html-template.d.ts +64 -0
  23. package/dist/cjs/w/messenger/templates/wts-html-template.js +302 -0
  24. package/dist/cjs/w/messenger/templates/wts-html-template.js.map +1 -0
  25. package/dist/cjs/w/messenger/types.d.ts +4 -3
  26. package/dist/cjs/w/messenger/types.js +1 -1
  27. package/dist/cjs/w/messenger/types.js.map +1 -1
  28. package/dist/esm/w/local/account.js +14 -46
  29. package/dist/esm/w/local/account.js.map +1 -1
  30. package/dist/esm/w/messenger/crypto.js +31 -0
  31. package/dist/esm/w/messenger/crypto.js.map +1 -1
  32. package/dist/esm/w/messenger/messenger-api.d.ts +27 -4
  33. package/dist/esm/w/messenger/messenger-api.js +190 -255
  34. package/dist/esm/w/messenger/messenger-api.js.map +1 -1
  35. package/dist/esm/w/messenger/messenger-manager.d.ts +39 -3
  36. package/dist/esm/w/messenger/messenger-manager.js +190 -105
  37. package/dist/esm/w/messenger/messenger-manager.js.map +1 -1
  38. package/dist/esm/w/messenger/messenger.d.ts +9 -1
  39. package/dist/esm/w/messenger/messenger.js +33 -0
  40. package/dist/esm/w/messenger/messenger.js.map +1 -1
  41. package/dist/esm/w/messenger/server.d.ts +2 -2
  42. package/dist/esm/w/messenger/server.js.map +1 -1
  43. package/dist/esm/w/messenger/session.d.ts +15 -0
  44. package/dist/esm/w/messenger/session.js +83 -35
  45. package/dist/esm/w/messenger/session.js.map +1 -1
  46. package/dist/esm/w/messenger/storage.d.ts +12 -0
  47. package/dist/esm/w/messenger/storage.js +51 -2
  48. package/dist/esm/w/messenger/storage.js.map +1 -1
  49. package/dist/esm/w/messenger/templates/wts-html-template.d.ts +64 -0
  50. package/dist/esm/w/messenger/templates/wts-html-template.js +302 -0
  51. package/dist/esm/w/messenger/templates/wts-html-template.js.map +1 -0
  52. package/dist/esm/w/messenger/types.d.ts +4 -3
  53. package/dist/esm/w/messenger/types.js +1 -1
  54. package/dist/esm/w/messenger/types.js.map +1 -1
  55. package/package.json +1 -1
@@ -0,0 +1,302 @@
1
+ /**
2
+ * WTS to HTML 模板
3
+ * 将 HTML 模板独立出来,便于维护和定制
4
+ */
5
+ /**
6
+ * HTML 转义函数
7
+ */
8
+ export function escapeHtml(text) {
9
+ if (!text)
10
+ return "";
11
+ return text
12
+ .replace(/&/g, "&")
13
+ .replace(/</g, "&lt;")
14
+ .replace(/>/g, "&gt;")
15
+ .replace(/"/g, "&quot;")
16
+ .replace(/'/g, "&#039;");
17
+ }
18
+ /**
19
+ * 格式化文件大小
20
+ */
21
+ export function formatFileSize(bytes) {
22
+ if (bytes < 1024)
23
+ return bytes + " B";
24
+ if (bytes < 1024 * 1024)
25
+ return (bytes / 1024).toFixed(1) + " KB";
26
+ return (bytes / (1024 * 1024)).toFixed(1) + " MB";
27
+ }
28
+ /**
29
+ * 判断是否为非文本消息
30
+ */
31
+ export function isNonTextMessage(msg) {
32
+ // 如果有 zipMetadata,说明是非文本消息(ZIP文件)
33
+ return !!msg.zipMetadata;
34
+ }
35
+ /**
36
+ * 获取文件类型标签
37
+ */
38
+ export function getFileTypeLabel(msg) {
39
+ // 首先检查 zipMetadata 中的 contentType
40
+ if (msg.zipMetadata?.contentType) {
41
+ return msg.zipMetadata.contentType.toUpperCase();
42
+ }
43
+ // 根据文件名推断类型
44
+ const fileName = msg.zipMetadata?.fileName || "";
45
+ if (fileName.endsWith(".wts"))
46
+ return "WTS";
47
+ if (fileName.endsWith(".wip"))
48
+ return "WIP";
49
+ if (fileName.endsWith(".zip"))
50
+ return "ZIP";
51
+ if (fileName.endsWith(".json"))
52
+ return "JSON";
53
+ if (fileName.endsWith(".txt"))
54
+ return "TXT";
55
+ // 根据 zipMetadata 推断
56
+ if (msg.zipMetadata)
57
+ return "ZIP";
58
+ return "FILE";
59
+ }
60
+ /**
61
+ * 获取主题颜色配置
62
+ */
63
+ export function getThemeColors(theme) {
64
+ return {
65
+ bgColor: theme === "dark" ? "#1a1a1a" : "#ffffff",
66
+ textColor: theme === "dark" ? "#e0e0e0" : "#333333",
67
+ borderColor: theme === "dark" ? "#444444" : "#e0e0e0",
68
+ };
69
+ }
70
+ /**
71
+ * 获取消息颜色配置
72
+ */
73
+ export function getMessageColors(theme, isMyMessage) {
74
+ if (isMyMessage) {
75
+ // 发送的消息 - 蓝色系
76
+ return {
77
+ bgColor: theme === "dark" ? "#1a365d" : "#e3f2fd",
78
+ borderColor: theme === "dark" ? "#3b82f6" : "#90caf9",
79
+ };
80
+ }
81
+ else {
82
+ // 接收的消息 - 绿色系
83
+ return {
84
+ bgColor: theme === "dark" ? "#1e3a2f" : "#e8f5e9",
85
+ borderColor: theme === "dark" ? "#10b981" : "#a5d6a7",
86
+ };
87
+ }
88
+ }
89
+ /**
90
+ * 生成文件保存按钮 HTML
91
+ */
92
+ export function generateFileButton(msg, index, theme) {
93
+ if (!msg.plaintext || !msg.zipMetadata?.fileName)
94
+ return "";
95
+ const fileName = msg.zipMetadata.fileName;
96
+ const fileData = msg.plaintext;
97
+ const fileSize = msg.zipMetadata.fileSize || 0;
98
+ const fileType = getFileTypeLabel(msg);
99
+ // 根据主题调整颜色
100
+ const bgColor = theme === "dark" ? "#2a3f2a" : "#e8f5e9";
101
+ const borderColor = theme === "dark" ? "#4caf50" : "#4caf50";
102
+ const textColor = theme === "dark" ? "#81c784" : "#2e7d32";
103
+ const buttonBg = "#4caf50";
104
+ const buttonHover = "#45a049";
105
+ return `
106
+ <div style="margin: 12px 0; padding: 16px; background: ${bgColor}; border: 1px solid ${borderColor}; border-radius: 8px; text-align: center;">
107
+ <div style="font-size: 14px; color: ${textColor}; margin-bottom: 8px;">
108
+ 📎 ${escapeHtml(fileType)} File
109
+ <span style="font-size: 12px; color: #666;">(${formatFileSize(fileSize)})</span>
110
+ </div>
111
+ <button
112
+ onclick="saveFile${index}()"
113
+ style="padding: 10px 24px; background: ${buttonBg}; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 14px;"
114
+ onmouseover="this.style.background='${buttonHover}'"
115
+ onmouseout="this.style.background='${buttonBg}'"
116
+ >
117
+ 💾 Save ${escapeHtml(fileName)}
118
+ </button>
119
+ </div>
120
+ <script>
121
+ function saveFile${index}() {
122
+ try {
123
+ const base64Data = "${escapeHtml(fileData)}";
124
+ const byteCharacters = atob(base64Data);
125
+ const byteNumbers = new Array(byteCharacters.length);
126
+ for (let i = 0; i < byteCharacters.length; i++) {
127
+ byteNumbers[i] = byteCharacters.charCodeAt(i);
128
+ }
129
+ const byteArray = new Uint8Array(byteNumbers);
130
+
131
+ let mimeType = "application/octet-stream";
132
+ const fileName = "${escapeHtml(fileName)}";
133
+ if (fileName.endsWith('.json')) mimeType = "application/json";
134
+ else if (fileName.endsWith('.zip')) mimeType = "application/zip";
135
+ else if (fileName.endsWith('.txt')) mimeType = "text/plain";
136
+
137
+ const blob = new Blob([byteArray], { type: mimeType });
138
+ const url = URL.createObjectURL(blob);
139
+ const a = document.createElement("a");
140
+ a.href = url;
141
+ a.download = fileName;
142
+ document.body.appendChild(a);
143
+ a.click();
144
+ document.body.removeChild(a);
145
+ URL.revokeObjectURL(url);
146
+ } catch (e) {
147
+ alert('保存文件失败: ' + e.message);
148
+ }
149
+ }
150
+ <\/script>
151
+ `;
152
+ }
153
+ /**
154
+ * 生成单条消息 HTML
155
+ */
156
+ export function generateMessageHtml(msg, index, data) {
157
+ const { theme, borderColor, myAddress, maxLastReceivedLeafIndex } = data;
158
+ const isNonText = isNonTextMessage(msg);
159
+ const isMyMessage = msg.from.toLowerCase() === myAddress.toLowerCase();
160
+ const isDeliveredAndDecrypted = isMyMessage &&
161
+ maxLastReceivedLeafIndex >= 0 &&
162
+ msg.leafIndex <= maxLastReceivedLeafIndex;
163
+ const colors = getMessageColors(theme, isMyMessage);
164
+ const contentBgColor = theme === "dark" ? "#333333" : "#ffffff";
165
+ let contentHtml = "";
166
+ if (isNonText) {
167
+ contentHtml = generateFileButton(msg, index, theme);
168
+ }
169
+ else if (msg.plaintext) {
170
+ contentHtml = `<div style="margin: 12px 0; padding: 12px; background: ${contentBgColor}; border: 1px solid ${borderColor}; border-radius: 4px; font-size: 14px; line-height: 1.6; max-height: calc(1.6em * 6); overflow-y: auto; white-space: pre-wrap; word-break: break-word;">${escapeHtml(msg.plaintext)}</div>`;
171
+ }
172
+ const metaHtml = [
173
+ `<div>Merkle Root: ${escapeHtml(msg.merkleRoot)}</div>`,
174
+ msg.arkConfirmed
175
+ ? `<div>ARK Confirmed: ${escapeHtml(msg.arkConfirmed.recipient)} at ${new Date(msg.arkConfirmed.timestamp).toLocaleString()}</div>`
176
+ : "",
177
+ msg.guardAddress
178
+ ? `<div>Guard: ${escapeHtml(msg.guardAddress)}</div>`
179
+ : "",
180
+ msg.passportAddress
181
+ ? `<div>Passport: ${escapeHtml(msg.passportAddress)}</div>`
182
+ : "",
183
+ ]
184
+ .filter(Boolean)
185
+ .join("");
186
+ return `
187
+ <div style="margin: 16px 0; padding: 16px; border: 1px solid ${colors.borderColor}; border-radius: 8px; background: ${colors.bgColor};">
188
+ <div style="display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 12px; color: #666;">
189
+ <span>From: ${escapeHtml(msg.from.slice(0, 6))}...${escapeHtml(msg.from.slice(-3))} To: ${escapeHtml(msg.to.slice(0, 6))}...${escapeHtml(msg.to.slice(-3))}</span>
190
+ <span>${new Date(msg.timestamp).toLocaleString()}</span>
191
+ </div>
192
+ ${contentHtml}
193
+ <div style="margin: 8px 0; font-size: 11px; color: #666;">
194
+ ${metaHtml}
195
+ </div>
196
+ <div style="font-size: 11px; color: #888; margin-top: 8px; padding-top: 8px; border-top: 1px solid ${borderColor}; display: flex; justify-content: space-between; align-items: center;">
197
+ <div>Leaf Index: ${msg.leafIndex}</div>
198
+ ${isDeliveredAndDecrypted ? `<span style="color: #4caf50;">Delivered & Decrypted</span>` : ""}
199
+ </div>
200
+ </div>
201
+ `;
202
+ }
203
+ /**
204
+ * 生成签名验证信息 HTML
205
+ */
206
+ export function generateSignatureHtml(verifyResult, theme, textColor) {
207
+ if (!verifyResult.signatures || verifyResult.signatures.length === 0) {
208
+ return "";
209
+ }
210
+ const bgColor = theme === "dark" ? "#2a3f2a" : "#e8f5e9";
211
+ const headerColor = theme === "dark" ? "#81c784" : "#2e7d32";
212
+ const signaturesHtml = verifyResult.signatures
213
+ .map((s, idx) => `
214
+ <div style="font-size: 10px; color: ${textColor}; margin-left: 8px;">
215
+ ${idx + 1}. ${s.address ? escapeHtml(s.address.slice(0, 6)) + "..." + escapeHtml(s.address.slice(-3)) : "Unknown"}:
216
+ ${s.valid ? '<span style="color: #4caf50;">✓ Valid</span>' : '<span style="color: #f44336;">✗ Invalid</span>'}
217
+ </div>
218
+ `)
219
+ .join("");
220
+ return `
221
+ <div style="margin-top: 8px; padding: 8px; background: ${bgColor}; border-radius: 4px;">
222
+ <div style="font-size: 11px; color: ${headerColor}; margin-bottom: 4px;">
223
+ ✓ Signature Verification (${verifyResult.signatures.length} signature${verifyResult.signatures.length > 1 ? "s" : ""})
224
+ </div>
225
+ ${signaturesHtml}
226
+ </div>
227
+ `;
228
+ }
229
+ /**
230
+ * 生成完整 HTML 页面
231
+ */
232
+ export function generateHtmlPage(data) {
233
+ const { title, theme, bgColor, textColor, borderColor, meta, payload, verifyResult, maxLastReceivedLeafIndex, } = data;
234
+ const messagesHtml = payload.messages
235
+ .map((msg, index) => generateMessageHtml(msg, index, data))
236
+ .join("");
237
+ const signatureHtml = generateSignatureHtml(verifyResult, theme, textColor);
238
+ const verificationStatus = verifyResult.valid
239
+ ? `<span style="color: #4caf50; margin-left: 8px;">✓ The accuracy, sequentiality, and integrity of the messages are verified without tampering</span>`
240
+ : `<span style="color: #ff9800; margin-left: 8px;">⚠ ${verifyResult.error || "Hash mismatch - content has been tampered"}</span>`;
241
+ const lastReceivedHtml = maxLastReceivedLeafIndex >= 0
242
+ ? `<div>Last Received Leaf Index: ${maxLastReceivedLeafIndex} (messages up to this index are delivered and decrypted)</div>`
243
+ : "";
244
+ return `<!DOCTYPE html>
245
+ <html lang="en">
246
+ <head>
247
+ <meta charset="UTF-8">
248
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
249
+ <title>${escapeHtml(title)}</title>
250
+ <style>
251
+ body {
252
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
253
+ max-width: 800px;
254
+ margin: 0 auto;
255
+ padding: 20px;
256
+ background: ${bgColor};
257
+ color: ${textColor};
258
+ }
259
+ .header {
260
+ border-bottom: 2px solid ${borderColor};
261
+ padding-bottom: 16px;
262
+ margin-bottom: 24px;
263
+ }
264
+ .meta {
265
+ font-size: 12px;
266
+ color: #666;
267
+ margin-top: 8px;
268
+ }
269
+ .note {
270
+ font-size: 11px;
271
+ color: #999;
272
+ margin-top: 12px;
273
+ padding: 8px;
274
+ background: ${theme === "dark" ? "#2a2a2a" : "#f5f5f5"};
275
+ border-radius: 4px;
276
+ font-style: italic;
277
+ }
278
+ </style>
279
+ </head>
280
+ <body>
281
+ <div class="header">
282
+ <h1>Witness Timestamped Sequence</h1>
283
+ <div class="note">
284
+ Important Note: This page is for message browsing and verification reference only. Please verify whether the message sequence has been tampered with through the 'verify_wts' API using the WTS file.
285
+ </div>
286
+ <div style="font-size: 14px; color: #666; margin-top: 4px;">
287
+ ${new Date(meta.startTime).toLocaleDateString()} - ${new Date(meta.endTime).toLocaleDateString()}
288
+ ${verificationStatus}
289
+ </div>
290
+ <div class="meta">
291
+ <div>Session Participants: ${payload.session.participants.map((p) => escapeHtml(p.slice(0, 6)) + "..." + escapeHtml(p.slice(-3))).join(", ")}</div>
292
+ <div>Messages: ${meta.messageCount} | Time: ${new Date(meta.startTime).toLocaleString()} - ${new Date(meta.endTime).toLocaleString()}</div>
293
+ <div style="word-break: break-all;">Merkle Root: ${escapeHtml(meta.merkleRoot)}</div>
294
+ ${lastReceivedHtml}
295
+ ${signatureHtml}
296
+ </div>
297
+ </div>
298
+ ${messagesHtml}
299
+ </body>
300
+ </html>`;
301
+ }
302
+ //# sourceMappingURL=wts-html-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wts-html-template.js","sourceRoot":"","sources":["../../../../../src/w/messenger/templates/wts-html-template.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,IAAI;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC3C,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,KAAK,GAAG,IAAI,CAAC;IACtC,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAClE,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAe;IAC/C,kCAAkC;IAClC,OAAO,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAe;IAC/C,kCAAkC;IAClC,IAAI,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC;QAClC,OAAO,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IAClD,CAAC;IAED,YAAY;IACZ,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC;IACjD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,oBAAoB;IACpB,IAAI,GAAG,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAElC,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAuB;IACrD,OAAO;QACN,OAAO,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACjD,SAAS,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACnD,WAAW,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KACrD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC/B,KAAuB,EACvB,WAAoB;IAEpB,IAAI,WAAW,EAAE,CAAC;QACjB,cAAc;QACd,OAAO;YACN,OAAO,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACjD,WAAW,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACrD,CAAC;IACH,CAAC;SAAM,CAAC;QACP,cAAc;QACd,OAAO;YACN,OAAO,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACjD,WAAW,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACrD,CAAC;IACH,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CACjC,GAAe,EACf,KAAa,EACb,KAAuB;IAEvB,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ;QAAE,OAAO,EAAE,CAAC;IAE5D,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC;IAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC;IAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAEvC,WAAW;IACX,MAAM,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,MAAM,WAAW,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,SAAS,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,MAAM,QAAQ,GAAG,SAAS,CAAC;IAC3B,MAAM,WAAW,GAAG,SAAS,CAAC;IAE9B,OAAO;2DACmD,OAAO,uBAAuB,WAAW;yCAC3D,SAAS;SACzC,UAAU,CAAC,QAAQ,CAAC;mDACsB,cAAc,CAAC,QAAQ,CAAC;;;uBAGpD,KAAK;6CACiB,QAAQ;0CACX,WAAW;yCACZ,QAAQ;;cAEnC,UAAU,CAAC,QAAQ,CAAC;;;;sBAIZ,KAAK;;2BAEA,UAAU,CAAC,QAAQ,CAAC;;;;;;;;;yBAStB,UAAU,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;EAmB3C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAClC,GAAe,EACf,KAAa,EACb,IAAkB;IAElB,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,wBAAwB,EAAE,GAAG,IAAI,CAAC;IACzE,MAAM,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC;IACvE,MAAM,uBAAuB,GAC5B,WAAW;QACX,wBAAwB,IAAI,CAAC;QAC7B,GAAG,CAAC,SAAS,IAAI,wBAAwB,CAAC;IAE3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhE,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,SAAS,EAAE,CAAC;QACf,WAAW,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAC1B,WAAW,GAAG,0DAA0D,cAAc,uBAAuB,WAAW,2JAA2J,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;IACtT,CAAC;IAED,MAAM,QAAQ,GAAG;QAChB,qBAAqB,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ;QACvD,GAAG,CAAC,YAAY;YACf,CAAC,CAAC,uBAAuB,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,QAAQ;YACnI,CAAC,CAAC,EAAE;QACL,GAAG,CAAC,YAAY;YACf,CAAC,CAAC,eAAe,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ;YACrD,CAAC,CAAC,EAAE;QACL,GAAG,CAAC,eAAe;YAClB,CAAC,CAAC,kBAAkB,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ;YAC3D,CAAC,CAAC,EAAE;KACL;SACC,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,OAAO;iEACyD,MAAM,CAAC,WAAW,qCAAqC,MAAM,CAAC,OAAO;;kBAEpH,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClJ,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE;;KAE/C,WAAW;;MAEV,QAAQ;;wGAE0F,WAAW;uBAC5F,GAAG,CAAC,SAAS;MAC9B,uBAAuB,CAAC,CAAC,CAAC,4DAA4D,CAAC,CAAC,CAAC,EAAE;;;EAG/F,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACpC,YAAmC,EACnC,KAAuB,EACvB,SAAiB;IAEjB,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,MAAM,WAAW,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7D,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU;SAC5C,GAAG,CACH,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;yCAC0B,SAAS;MAC5C,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;MAC/G,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,gDAAgD;;GAE9G,CACA;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,OAAO;2DACmD,OAAO;yCACzB,WAAW;gCACpB,YAAY,CAAC,UAAU,CAAC,MAAM,aAAa,YAAY,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;KAEnH,cAAc;;EAEjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAkB;IAClD,MAAM,EACL,KAAK,EACL,KAAK,EACL,OAAO,EACP,SAAS,EACT,WAAW,EACX,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,wBAAwB,GACxB,GAAG,IAAI,CAAC;IAET,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ;SACnC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SAC1D,IAAI,CAAC,EAAE,CAAC,CAAC;IAEX,MAAM,aAAa,GAAG,qBAAqB,CAAC,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAE5E,MAAM,kBAAkB,GAAG,YAAY,CAAC,KAAK;QAC5C,CAAC,CAAC,oJAAoJ;QACtJ,CAAC,CAAC,qDAAqD,YAAY,CAAC,KAAK,IAAI,2CAA2C,SAAS,CAAC;IAEnI,MAAM,gBAAgB,GACrB,wBAAwB,IAAI,CAAC;QAC5B,CAAC,CAAC,kCAAkC,wBAAwB,gEAAgE;QAC5H,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;;;;;aAKK,UAAU,CAAC,KAAK,CAAC;;;;;;;0BAOJ,OAAO;qBACZ,SAAS;;;uCAGS,WAAW;;;;;;;;;;;;;;0BAcxB,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;;;;;;;;;;;;;cAapD,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE;cAC9F,kBAAkB;;;yCAGS,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;6BAC3H,IAAI,CAAC,YAAY,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE;+DACjF,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;cAC5E,gBAAgB;cAChB,aAAa;;;MAGrB,YAAY;;QAEV,CAAC;AACT,CAAC"}
@@ -358,6 +358,7 @@ export interface SendMessageResult {
358
358
  serverPublicKey: string;
359
359
  };
360
360
  guardList?: string[];
361
+ lastReceivedLeafIndex?: number;
361
362
  }
362
363
  export interface DecryptedMessage {
363
364
  id: string;
@@ -736,7 +737,7 @@ export interface GetSettingsRequest extends SignedRequestBase {
736
737
  export interface GetSettingsResponse {
737
738
  allowStrangerMessages?: boolean;
738
739
  maxInboxSize?: number;
739
- minUserInboxSize: number;
740
- maxUserInboxSize: number;
741
- defaultAllowStrangerMessages: boolean;
740
+ serverMinInboxSizeLimit: number;
741
+ serverMaxInboxSizeLimit: number;
742
+ serverDefaultAllowStrangerMessages: boolean;
742
743
  }
@@ -39,7 +39,7 @@ export const NORMAL_MESSAGE_BYTES_LIMIT = 10 * 1024; // 10KB 普通消息大小
39
39
  export const DEFAULT_QUERY_LIMIT = 50; // 默认查询返回50条
40
40
  export const MAX_QUERY_LIMIT = 1000; // 最大查询返回1000条
41
41
  export const DEFAULT_DEVICE_ID = 1;
42
- export const SERVER_URL = "https://messenger.wowok.net"; //127.0.0.1:3000
42
+ export const SERVER_URL = "https://messenger.wowok.net"; // "http://127.0.0.1:3000";
43
43
  export const CHAIN_PROOF_TYPE = 1;
44
44
  export const CURRENT_NETWORK = ENTRYPOINT.Testnet;
45
45
  export const DEFAULT_MESSENGER_CONFIG = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/w/messenger/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/w/messenger/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "author": "wowok <build@wowok.net>",
4
4
  "description": "Wowok Blockchain TypeScript API",
5
5
  "homepage": "https://wowok.net",
6
- "version": "2.1.20",
6
+ "version": "2.1.21",
7
7
  "license": "Apache-2.0",
8
8
  "sideEffects": false,
9
9
  "files": [