wowok 2.1.20 → 2.1.22
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/local/account.d.ts +1 -1
- package/dist/cjs/w/local/account.js +15 -47
- package/dist/cjs/w/local/account.js.map +1 -1
- package/dist/cjs/w/messenger/crypto.js +31 -0
- package/dist/cjs/w/messenger/crypto.js.map +1 -1
- package/dist/cjs/w/messenger/messenger-api.d.ts +27 -4
- package/dist/cjs/w/messenger/messenger-api.js +191 -256
- package/dist/cjs/w/messenger/messenger-api.js.map +1 -1
- package/dist/cjs/w/messenger/messenger-manager.d.ts +39 -3
- package/dist/cjs/w/messenger/messenger-manager.js +194 -107
- package/dist/cjs/w/messenger/messenger-manager.js.map +1 -1
- package/dist/cjs/w/messenger/messenger.d.ts +9 -1
- package/dist/cjs/w/messenger/messenger.js +33 -0
- package/dist/cjs/w/messenger/messenger.js.map +1 -1
- package/dist/cjs/w/messenger/server.d.ts +2 -2
- package/dist/cjs/w/messenger/server.js.map +1 -1
- package/dist/cjs/w/messenger/session.d.ts +15 -0
- package/dist/cjs/w/messenger/session.js +83 -35
- package/dist/cjs/w/messenger/session.js.map +1 -1
- package/dist/cjs/w/messenger/storage.d.ts +12 -0
- package/dist/cjs/w/messenger/storage.js +51 -2
- package/dist/cjs/w/messenger/storage.js.map +1 -1
- package/dist/cjs/w/messenger/templates/wts-html-template.d.ts +61 -0
- package/dist/cjs/w/messenger/templates/wts-html-template.js +414 -0
- package/dist/cjs/w/messenger/templates/wts-html-template.js.map +1 -0
- package/dist/cjs/w/messenger/types.d.ts +9 -5
- package/dist/cjs/w/messenger/types.js +3 -2
- package/dist/cjs/w/messenger/types.js.map +1 -1
- package/dist/esm/w/local/account.d.ts +1 -1
- package/dist/esm/w/local/account.js +15 -47
- package/dist/esm/w/local/account.js.map +1 -1
- package/dist/esm/w/messenger/crypto.js +31 -0
- package/dist/esm/w/messenger/crypto.js.map +1 -1
- package/dist/esm/w/messenger/messenger-api.d.ts +27 -4
- package/dist/esm/w/messenger/messenger-api.js +191 -256
- package/dist/esm/w/messenger/messenger-api.js.map +1 -1
- package/dist/esm/w/messenger/messenger-manager.d.ts +39 -3
- package/dist/esm/w/messenger/messenger-manager.js +194 -107
- package/dist/esm/w/messenger/messenger-manager.js.map +1 -1
- package/dist/esm/w/messenger/messenger.d.ts +9 -1
- package/dist/esm/w/messenger/messenger.js +33 -0
- package/dist/esm/w/messenger/messenger.js.map +1 -1
- package/dist/esm/w/messenger/server.d.ts +2 -2
- package/dist/esm/w/messenger/server.js.map +1 -1
- package/dist/esm/w/messenger/session.d.ts +15 -0
- package/dist/esm/w/messenger/session.js +83 -35
- package/dist/esm/w/messenger/session.js.map +1 -1
- package/dist/esm/w/messenger/storage.d.ts +12 -0
- package/dist/esm/w/messenger/storage.js +51 -2
- package/dist/esm/w/messenger/storage.js.map +1 -1
- package/dist/esm/w/messenger/templates/wts-html-template.d.ts +61 -0
- package/dist/esm/w/messenger/templates/wts-html-template.js +414 -0
- package/dist/esm/w/messenger/templates/wts-html-template.js.map +1 -0
- package/dist/esm/w/messenger/types.d.ts +9 -5
- package/dist/esm/w/messenger/types.js +3 -2
- package/dist/esm/w/messenger/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,414 @@
|
|
|
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, "<")
|
|
14
|
+
.replace(/>/g, ">")
|
|
15
|
+
.replace(/"/g, """)
|
|
16
|
+
.replace(/'/g, "'");
|
|
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
|
+
const MESSAGES_PER_PAGE = 100;
|
|
233
|
+
export function generateHtmlPage(data) {
|
|
234
|
+
const { title, theme, bgColor, textColor, borderColor, meta, payload, verifyResult, maxLastReceivedLeafIndex, } = data;
|
|
235
|
+
const totalMessages = payload.messages.length;
|
|
236
|
+
const totalPages = Math.ceil(totalMessages / MESSAGES_PER_PAGE);
|
|
237
|
+
// 生成所有页面的消息 HTML
|
|
238
|
+
const pagesHtml = [];
|
|
239
|
+
for (let page = 0; page < totalPages; page++) {
|
|
240
|
+
const start = page * MESSAGES_PER_PAGE;
|
|
241
|
+
const end = Math.min(start + MESSAGES_PER_PAGE, totalMessages);
|
|
242
|
+
const pageMessages = payload.messages.slice(start, end);
|
|
243
|
+
const pageMessagesHtml = pageMessages
|
|
244
|
+
.map((msg, index) => generateMessageHtml(msg, start + index, data))
|
|
245
|
+
.join("");
|
|
246
|
+
pagesHtml.push({
|
|
247
|
+
pageNum: page + 1,
|
|
248
|
+
html: `<div class="page" data-page="${page + 1}" style="display: ${page === 0 ? "block" : "none"};">${pageMessagesHtml}</div>`,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
const paginationHtml = totalPages > 1
|
|
252
|
+
? generatePaginationHtml(totalPages, theme, textColor)
|
|
253
|
+
: "";
|
|
254
|
+
const allPagesHtml = pagesHtml.map((p) => p.html).join("");
|
|
255
|
+
const signatureHtml = generateSignatureHtml(verifyResult, theme, textColor);
|
|
256
|
+
const verificationStatus = verifyResult.valid
|
|
257
|
+
? `<span style="color: #4caf50; margin-left: 8px;">✓ The accuracy, sequentiality, and integrity of the messages are verified without tampering</span>`
|
|
258
|
+
: `<span style="color: #ff9800; margin-left: 8px;">⚠ ${verifyResult.error || "Hash mismatch - content has been tampered"}</span>`;
|
|
259
|
+
const lastReceivedHtml = maxLastReceivedLeafIndex >= 0
|
|
260
|
+
? `<div>Delivered & Decrypted Leaf Index: ${maxLastReceivedLeafIndex} (sent messages are only confirmed as decrypted after receiving a reply from the other party)</div>`
|
|
261
|
+
: "";
|
|
262
|
+
return `<!DOCTYPE html>
|
|
263
|
+
<html lang="en">
|
|
264
|
+
<head>
|
|
265
|
+
<meta charset="UTF-8">
|
|
266
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
267
|
+
<title>${escapeHtml(title)}</title>
|
|
268
|
+
<style>
|
|
269
|
+
body {
|
|
270
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
271
|
+
max-width: 800px;
|
|
272
|
+
margin: 0 auto;
|
|
273
|
+
padding: 20px;
|
|
274
|
+
background: ${bgColor};
|
|
275
|
+
color: ${textColor};
|
|
276
|
+
}
|
|
277
|
+
.header {
|
|
278
|
+
border-bottom: 2px solid ${borderColor};
|
|
279
|
+
padding-bottom: 16px;
|
|
280
|
+
margin-bottom: 24px;
|
|
281
|
+
}
|
|
282
|
+
.meta {
|
|
283
|
+
font-size: 12px;
|
|
284
|
+
color: #666;
|
|
285
|
+
margin-top: 8px;
|
|
286
|
+
}
|
|
287
|
+
.note {
|
|
288
|
+
font-size: 11px;
|
|
289
|
+
color: #999;
|
|
290
|
+
margin-top: 12px;
|
|
291
|
+
padding: 8px;
|
|
292
|
+
background: ${theme === "dark" ? "#2a2a2a" : "#f5f5f5"};
|
|
293
|
+
border-radius: 4px;
|
|
294
|
+
font-style: italic;
|
|
295
|
+
}
|
|
296
|
+
.pagination {
|
|
297
|
+
display: flex;
|
|
298
|
+
justify-content: center;
|
|
299
|
+
align-items: center;
|
|
300
|
+
gap: 8px;
|
|
301
|
+
margin-top: 24px;
|
|
302
|
+
padding: 16px;
|
|
303
|
+
border-top: 1px solid ${borderColor};
|
|
304
|
+
}
|
|
305
|
+
.pagination button {
|
|
306
|
+
padding: 8px 16px;
|
|
307
|
+
border: 1px solid ${borderColor};
|
|
308
|
+
background: ${theme === "dark" ? "#333" : "#fff"};
|
|
309
|
+
color: ${textColor};
|
|
310
|
+
cursor: pointer;
|
|
311
|
+
border-radius: 4px;
|
|
312
|
+
font-size: 14px;
|
|
313
|
+
}
|
|
314
|
+
.pagination button:hover:not(:disabled) {
|
|
315
|
+
background: ${theme === "dark" ? "#444" : "#f0f0f0"};
|
|
316
|
+
}
|
|
317
|
+
.pagination button:disabled {
|
|
318
|
+
opacity: 0.5;
|
|
319
|
+
cursor: not-allowed;
|
|
320
|
+
}
|
|
321
|
+
.pagination .page-info {
|
|
322
|
+
font-size: 14px;
|
|
323
|
+
color: #666;
|
|
324
|
+
}
|
|
325
|
+
.page {
|
|
326
|
+
animation: fadeIn 0.3s ease-in;
|
|
327
|
+
}
|
|
328
|
+
@keyframes fadeIn {
|
|
329
|
+
from { opacity: 0; }
|
|
330
|
+
to { opacity: 1; }
|
|
331
|
+
}
|
|
332
|
+
</style>
|
|
333
|
+
</head>
|
|
334
|
+
<body>
|
|
335
|
+
<div class="header">
|
|
336
|
+
<h1>Witness Timestamped Sequence</h1>
|
|
337
|
+
<div class="note">
|
|
338
|
+
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.
|
|
339
|
+
</div>
|
|
340
|
+
<div style="font-size: 14px; color: #666; margin-top: 4px;">
|
|
341
|
+
${new Date(meta.startTime).toLocaleDateString()} - ${new Date(meta.endTime).toLocaleDateString()}
|
|
342
|
+
${verificationStatus}
|
|
343
|
+
</div>
|
|
344
|
+
<div class="meta">
|
|
345
|
+
<div>Messages: ${meta.messageCount} | Time: ${new Date(meta.startTime).toLocaleString()} - ${new Date(meta.endTime).toLocaleString()}</div>
|
|
346
|
+
<div style="word-break: break-all;">Merkle Root: ${escapeHtml(meta.merkleRoot)}</div>
|
|
347
|
+
${lastReceivedHtml}
|
|
348
|
+
<div style="color: ${theme === "dark" ? "#3b82f6" : "#1976d2"};">Creator: ${escapeHtml(meta.creator)}</div>
|
|
349
|
+
<div style="color: ${theme === "dark" ? "#10b981" : "#2e7d32"};">Participant: ${escapeHtml(meta.participant)}</div>
|
|
350
|
+
${signatureHtml}
|
|
351
|
+
</div>
|
|
352
|
+
</div>
|
|
353
|
+
<div id="messages-container">
|
|
354
|
+
${allPagesHtml}
|
|
355
|
+
</div>
|
|
356
|
+
${paginationHtml}
|
|
357
|
+
<script>
|
|
358
|
+
(function() {
|
|
359
|
+
let currentPage = 1;
|
|
360
|
+
const totalPages = ${totalPages};
|
|
361
|
+
|
|
362
|
+
function showPage(pageNum) {
|
|
363
|
+
// 隐藏所有页面
|
|
364
|
+
document.querySelectorAll('.page').forEach(page => {
|
|
365
|
+
page.style.display = 'none';
|
|
366
|
+
});
|
|
367
|
+
// 显示目标页面
|
|
368
|
+
const targetPage = document.querySelector('.page[data-page="' + pageNum + '"]');
|
|
369
|
+
if (targetPage) {
|
|
370
|
+
targetPage.style.display = 'block';
|
|
371
|
+
}
|
|
372
|
+
currentPage = pageNum;
|
|
373
|
+
updatePaginationButtons();
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
function updatePaginationButtons() {
|
|
377
|
+
const prevBtn = document.getElementById('prev-btn');
|
|
378
|
+
const nextBtn = document.getElementById('next-btn');
|
|
379
|
+
const pageInfo = document.getElementById('page-info');
|
|
380
|
+
if (prevBtn) prevBtn.disabled = currentPage === 1;
|
|
381
|
+
if (nextBtn) nextBtn.disabled = currentPage === totalPages;
|
|
382
|
+
if (pageInfo) pageInfo.textContent = 'Page ' + currentPage + ' of ' + totalPages;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
// 绑定按钮事件
|
|
386
|
+
const prevBtn = document.getElementById('prev-btn');
|
|
387
|
+
const nextBtn = document.getElementById('next-btn');
|
|
388
|
+
if (prevBtn) {
|
|
389
|
+
prevBtn.addEventListener('click', function() {
|
|
390
|
+
if (currentPage > 1) showPage(currentPage - 1);
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
if (nextBtn) {
|
|
394
|
+
nextBtn.addEventListener('click', function() {
|
|
395
|
+
if (currentPage < totalPages) showPage(currentPage + 1);
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// 初始化
|
|
400
|
+
updatePaginationButtons();
|
|
401
|
+
})();
|
|
402
|
+
<\/script>
|
|
403
|
+
</body>
|
|
404
|
+
</html>`;
|
|
405
|
+
}
|
|
406
|
+
function generatePaginationHtml(totalPages, theme, textColor) {
|
|
407
|
+
return `
|
|
408
|
+
<div class="pagination">
|
|
409
|
+
<button id="prev-btn" disabled>← Previous</button>
|
|
410
|
+
<span class="page-info" id="page-info">Page 1 of ${totalPages}</span>
|
|
411
|
+
<button id="next-btn" ${totalPages <= 1 ? "disabled" : ""}>Next →</button>
|
|
412
|
+
</div>`;
|
|
413
|
+
}
|
|
414
|
+
//# 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":"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"}
|
|
@@ -256,7 +256,7 @@ export interface ChainProofResponse {
|
|
|
256
256
|
blockTimestamp: number;
|
|
257
257
|
}
|
|
258
258
|
export declare const WTS_FILE_BYTES_LIMIT: number;
|
|
259
|
-
export declare const WTS_MAX_MESSAGE_COUNT =
|
|
259
|
+
export declare const WTS_MAX_MESSAGE_COUNT = 500;
|
|
260
260
|
export declare const NORMAL_MESSAGE_BYTES_LIMIT: number;
|
|
261
261
|
export declare const DEFAULT_QUERY_LIMIT = 50;
|
|
262
262
|
export declare const MAX_QUERY_LIMIT = 1000;
|
|
@@ -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;
|
|
@@ -667,12 +668,15 @@ export interface WtsMeta {
|
|
|
667
668
|
endTime: number;
|
|
668
669
|
messageCount: number;
|
|
669
670
|
merkleRoot: string;
|
|
671
|
+
/** WTS 生成者地址 */
|
|
672
|
+
creator: string;
|
|
673
|
+
/** 参与者地址(对方) */
|
|
674
|
+
participant: string;
|
|
670
675
|
serverPublicKeys?: WtsServerPublicKey[];
|
|
671
676
|
signature?: WtsSignature | WtsSignature[];
|
|
672
677
|
}
|
|
673
678
|
/** WTS 文件结构 */
|
|
674
679
|
export interface WtsFile {
|
|
675
|
-
wts: string;
|
|
676
680
|
payload: WtsPayload;
|
|
677
681
|
meta: WtsMeta;
|
|
678
682
|
}
|
|
@@ -736,7 +740,7 @@ export interface GetSettingsRequest extends SignedRequestBase {
|
|
|
736
740
|
export interface GetSettingsResponse {
|
|
737
741
|
allowStrangerMessages?: boolean;
|
|
738
742
|
maxInboxSize?: number;
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
743
|
+
serverMinInboxSizeLimit: number;
|
|
744
|
+
serverMaxInboxSizeLimit: number;
|
|
745
|
+
serverDefaultAllowStrangerMessages: boolean;
|
|
742
746
|
}
|
|
@@ -34,12 +34,13 @@ export var MessageStatus;
|
|
|
34
34
|
})(MessageStatus || (MessageStatus = {}));
|
|
35
35
|
// ========== 配置类型 ==========
|
|
36
36
|
export const WTS_FILE_BYTES_LIMIT = 5 * 1024 * 1024; // 5M
|
|
37
|
-
export const WTS_MAX_MESSAGE_COUNT =
|
|
37
|
+
export const WTS_MAX_MESSAGE_COUNT = 500; // 500条消息最大
|
|
38
38
|
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 =
|
|
42
|
+
export const SERVER_URL =
|
|
43
|
+
/* "http://127.0.0.1:3000*/ "https://messenger.wowok.net";
|
|
43
44
|
export const CHAIN_PROOF_TYPE = 1;
|
|
44
45
|
export const CURRENT_NETWORK = ENTRYPOINT.Testnet;
|
|
45
46
|
export const DEFAULT_MESSENGER_CONFIG = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/w/messenger/types.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,sCAAsC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIrD;;;;;;;GAOG;AAEH,6BAA6B;AAE7B,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACtB,iEAAkB,CAAA;IAClB,iEAAkB,CAAA;IAClB,sDAAsD;IACtD,mCAAmC;AACpC,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC3B,iCAAa,CAAA;IACb,yCAAqB,CAAA;AACtB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAED,MAAM,CAAN,IAAY,aAQX;AARD,WAAY,aAAa;IACxB,oCAAmB,CAAA;IACnB,wCAAuB,CAAA;IACvB,8BAAa,CAAA;IACb,kCAAiB,CAAA;IACjB,sCAAqB,CAAA;IACrB,wCAAuB,CAAA;IACvB,kDAAiC,CAAA;AAClC,CAAC,EARW,aAAa,KAAb,aAAa,QAQxB;AAsSD,6BAA6B;AAC7B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/w/messenger/types.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,sCAAsC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIrD;;;;;;;GAOG;AAEH,6BAA6B;AAE7B,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACtB,iEAAkB,CAAA;IAClB,iEAAkB,CAAA;IAClB,sDAAsD;IACtD,mCAAmC;AACpC,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC3B,iCAAa,CAAA;IACb,yCAAqB,CAAA;AACtB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAED,MAAM,CAAN,IAAY,aAQX;AARD,WAAY,aAAa;IACxB,oCAAmB,CAAA;IACnB,wCAAuB,CAAA;IACvB,8BAAa,CAAA;IACb,kCAAiB,CAAA;IACjB,sCAAqB,CAAA;IACrB,wCAAuB,CAAA;IACvB,kDAAiC,CAAA;AAClC,CAAC,EARW,aAAa,KAAb,aAAa,QAQxB;AAsSD,6BAA6B;AAC7B,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC,CAAC,WAAW;AACrD,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,gBAAgB;AACrE,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC,CAAC,YAAY;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,cAAc;AACnD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AACnC,MAAM,CAAC,MAAM,UAAU;AACtB,2BAA2B,CAAC,6BAA6B,CAAC;AAC3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC;AAuBlD,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACxD,YAAY,EAAE,EAAE;IAChB,iBAAiB,EAAE,EAAE,GAAG,IAAI,EAAE,WAAW;IACzC,SAAS,EAAE,UAAU;IACrB,OAAO,EAAE,eAAe;IACxB,gBAAgB;IAChB,qBAAqB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,UAAU;IACtD,UAAU;IACV,iBAAiB,EAAE,mBAAmB,EAAE,KAAK;IAC7C,eAAe;IACf,gCAAgC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM;IACvD,6BAA6B,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK;IAC9C,+BAA+B,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM;IACvD,4BAA4B,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM;IAC/C,qBAAqB,EAAE,GAAG,EAAE,QAAQ;IACpC,oCAAoC,EAAE,CAAC;IACvC,gCAAgC,EAAE,CAAC;CACnC,CAAC;AAoJF,6BAA6B;AAE7B,MAAM,CAAN,IAAY,kBAkBX;AAlBD,WAAY,kBAAkB;IAC7B,mDAA6B,CAAA;IAC7B,6DAAuC,CAAA;IACvC,+DAAyC,CAAA;IACzC,6DAAuC,CAAA;IACvC,yEAAmD,CAAA;IACnD,6DAAuC,CAAA;IACvC,6DAAuC,CAAA;IACvC,mDAA6B,CAAA;IAC7B,qDAA+B,CAAA;IAC/B,qDAA+B,CAAA;IAC/B,qDAA+B,CAAA;IAC/B,uDAAiC,CAAA;IACjC,mEAA6C,CAAA;IAC7C,qEAA+C,CAAA;IAC/C,qDAA+B,CAAA;IAC/B,qFAA+D,CAAA;IAC/D,iEAA2C,CAAA;AAC5C,CAAC,EAlBW,kBAAkB,KAAlB,kBAAkB,QAkB7B;AA8GD,MAAM,OAAO,cAAe,SAAQ,KAAK;IAEhC;IAEA;IAHR,YACQ,IAAwB,EAC/B,OAAe,EACR,KAAa;QAEpB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAoB;QAExB,UAAK,GAAL,KAAK,CAAQ;QAGpB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC9B,CAAC;CACD"}
|