@awiki/dsh-plugin 0.3.0-rc.1 → 0.3.0-rc.2
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/README.md +8 -7
- package/README.zh.md +7 -3
- package/lib/client.js +1608 -478
- package/lib/client.js.map +1 -1
- package/lib/index.js +373 -36
- package/lib/provider.js +1 -1
- package/lib/{sdk-adapter-DLhLrLI6.mjs → sdk-adapter-BIbsJmRj.mjs} +28 -4
- package/lib/typert.host.js +221 -81
- package/lib/typert.remote-client.d.ts +5 -1
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +221 -81
- package/lib/types/client/AwikiGroupAccessNotice.d.ts +12 -0
- package/lib/types/client/AwikiGroupAccessNotice.d.ts.map +1 -0
- package/lib/types/client/AwikiGroupAccessNotice.js +31 -0
- package/lib/types/client/AwikiGroupAccessNotice.js.map +1 -0
- package/lib/types/client/AwikiGroupDetails.d.ts +8 -1
- package/lib/types/client/AwikiGroupDetails.d.ts.map +1 -1
- package/lib/types/client/AwikiGroupDetails.js +40 -4
- package/lib/types/client/AwikiGroupDetails.js.map +1 -1
- package/lib/types/client/AwikiIdentityAccess.d.ts +2 -1
- package/lib/types/client/AwikiIdentityAccess.d.ts.map +1 -1
- package/lib/types/client/AwikiIdentityAccess.js +10 -2
- package/lib/types/client/AwikiIdentityAccess.js.map +1 -1
- package/lib/types/client/AwikiMail.d.ts.map +1 -1
- package/lib/types/client/AwikiMail.js +5 -1
- package/lib/types/client/AwikiMail.js.map +1 -1
- package/lib/types/client/AwikiOnboarding.d.ts.map +1 -1
- package/lib/types/client/AwikiOnboarding.js +4 -1
- package/lib/types/client/AwikiOnboarding.js.map +1 -1
- package/lib/types/client/AwikiOverlay.d.ts.map +1 -1
- package/lib/types/client/AwikiOverlay.js +72 -11
- package/lib/types/client/AwikiOverlay.js.map +1 -1
- package/lib/types/client/AwikiRecoveryForm.d.ts +3 -0
- package/lib/types/client/AwikiRecoveryForm.d.ts.map +1 -1
- package/lib/types/client/AwikiRecoveryForm.js +10 -6
- package/lib/types/client/AwikiRecoveryForm.js.map +1 -1
- package/lib/types/client/AwikiSettingsSection.d.ts.map +1 -1
- package/lib/types/client/AwikiSettingsSection.js +5 -1
- package/lib/types/client/AwikiSettingsSection.js.map +1 -1
- package/lib/types/client/controller.d.ts +38 -2
- package/lib/types/client/controller.d.ts.map +1 -1
- package/lib/types/client/controller.js +473 -47
- package/lib/types/client/controller.js.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/index.js +3 -0
- package/lib/types/client/index.js.map +1 -1
- package/lib/types/client/recharge-availability.d.ts +1 -1
- package/lib/types/client/recharge-availability.d.ts.map +1 -1
- package/lib/types/client/recharge-availability.js +1 -1
- package/lib/types/client/recharge-availability.js.map +1 -1
- package/lib/types/client/settings-locales.d.ts +1 -1
- package/lib/types/client/settings-locales.d.ts.map +1 -1
- package/lib/types/client/settings-locales.js +6 -0
- package/lib/types/client/settings-locales.js.map +1 -1
- package/lib/types/client/slots.d.ts +6 -0
- package/lib/types/client/slots.d.ts.map +1 -1
- package/lib/types/conversation-preferences.d.ts +20 -0
- package/lib/types/conversation-preferences.d.ts.map +1 -0
- package/lib/types/conversation-preferences.js +294 -0
- package/lib/types/conversation-preferences.js.map +1 -0
- package/lib/types/index.d.ts +6 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +39 -0
- package/lib/types/index.js.map +1 -1
- package/lib/types/sdk-adapter.d.ts.map +1 -1
- package/lib/types/sdk-adapter.js +35 -4
- package/lib/types/sdk-adapter.js.map +1 -1
- package/lib/types/types.d.ts +32 -1
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { AwikiConversationPreferenceMutation, AwikiConversationPreferences, AwikiDid } from './types.ts';
|
|
2
|
+
/** Validate one browser mutation before entering private Host persistence. */
|
|
3
|
+
export declare function normalizeConversationPreferenceMutation(value: unknown): AwikiConversationPreferenceMutation | undefined;
|
|
4
|
+
/** Atomic identity-scoped product preferences, independent of Core membership and history. */
|
|
5
|
+
export declare class AwikiConversationPreferenceStore {
|
|
6
|
+
private readonly hostDirectory;
|
|
7
|
+
private readonly directory;
|
|
8
|
+
private mutation;
|
|
9
|
+
constructor(stateRoot: string);
|
|
10
|
+
get(ownerDid: AwikiDid): Promise<AwikiConversationPreferences>;
|
|
11
|
+
update(ownerDid: AwikiDid, request: AwikiConversationPreferenceMutation): Promise<AwikiConversationPreferences>;
|
|
12
|
+
clear(): Promise<void>;
|
|
13
|
+
private load;
|
|
14
|
+
private write;
|
|
15
|
+
private ensureDirectory;
|
|
16
|
+
private hasDirectory;
|
|
17
|
+
private path;
|
|
18
|
+
private key;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=conversation-preferences.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-preferences.d.ts","sourceRoot":"","sources":["../../src/conversation-preferences.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,mCAAmC,EACnC,4BAA4B,EAC5B,QAAQ,EAGT,MAAM,YAAY,CAAA;AAyInB,8EAA8E;AAC9E,wBAAgB,uCAAuC,CACrD,KAAK,EAAE,OAAO,GACb,mCAAmC,GAAG,SAAS,CAoBjD;AAED,8FAA8F;AAC9F,qBAAa,gCAAgC;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAmC;gBAEhC,SAAS,EAAE,MAAM;IAKvB,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAKpE,MAAM,CACX,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,mCAAmC,GAC3C,OAAO,CAAC,4BAA4B,CAAC;IAsC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAerB,IAAI;YAkBJ,KAAK;YAgBL,eAAe;YAWf,YAAY;IAW1B,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,GAAG;CAGZ"}
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import { createHash, randomUUID } from 'node:crypto';
|
|
2
|
+
import { chmod, lstat, mkdir, readFile, rm, rename, unlink, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
const STORE_VERSION = 1;
|
|
5
|
+
const STORE_DIRECTORY = 'conversation-preferences';
|
|
6
|
+
const MAX_STORE_BYTES = 2 * 1024 * 1024;
|
|
7
|
+
const MAX_HIDDEN_CONVERSATIONS = 500;
|
|
8
|
+
const MAX_IDENTIFIER_CHARACTERS = 2_048;
|
|
9
|
+
const MAX_TITLE_CHARACTERS = 1_024;
|
|
10
|
+
const MAX_PREVIEW_CHARACTERS = 4_096;
|
|
11
|
+
const MAX_HANDLE_CHARACTERS = 512;
|
|
12
|
+
const MAX_RECOVERY_SIGNATURE_CHARACTERS = 128;
|
|
13
|
+
function invalidState() {
|
|
14
|
+
throw new TypeError('awiki: conversation preferences are invalid');
|
|
15
|
+
}
|
|
16
|
+
function isMissing(error) {
|
|
17
|
+
return typeof error === 'object' && error !== null && 'code' in error && error.code === 'ENOENT';
|
|
18
|
+
}
|
|
19
|
+
function isFileExists(error) {
|
|
20
|
+
return typeof error === 'object' && error !== null && 'code' in error && error.code === 'EEXIST';
|
|
21
|
+
}
|
|
22
|
+
function isRecord(value) {
|
|
23
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
24
|
+
}
|
|
25
|
+
function boundedString(value, maximum) {
|
|
26
|
+
if (typeof value !== 'string' || value.length === 0 || value.length > maximum * 2)
|
|
27
|
+
invalidState();
|
|
28
|
+
if (Array.from(value).length > maximum)
|
|
29
|
+
invalidState();
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
function optionalString(value, maximum) {
|
|
33
|
+
return value === undefined ? undefined : boundedString(value, maximum);
|
|
34
|
+
}
|
|
35
|
+
function optionalCount(value) {
|
|
36
|
+
if (value === undefined)
|
|
37
|
+
return undefined;
|
|
38
|
+
if (!Number.isSafeInteger(value) || value < 0 || value > 0xffff_ffff)
|
|
39
|
+
invalidState();
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
function optionalTimestamp(value) {
|
|
43
|
+
if (value === undefined)
|
|
44
|
+
return undefined;
|
|
45
|
+
if (!Number.isSafeInteger(value) || value < 0)
|
|
46
|
+
invalidState();
|
|
47
|
+
return value;
|
|
48
|
+
}
|
|
49
|
+
/** Rebuild a bounded display-only snapshot before it reaches private persistence. */
|
|
50
|
+
function conversation(value) {
|
|
51
|
+
if (!isRecord(value))
|
|
52
|
+
invalidState();
|
|
53
|
+
const kind = value.kind;
|
|
54
|
+
const id = boundedString(value.id, MAX_IDENTIFIER_CHARACTERS);
|
|
55
|
+
const title = boundedString(value.title, MAX_TITLE_CHARACTERS);
|
|
56
|
+
const unreadCount = optionalCount(value.unreadCount);
|
|
57
|
+
const lastMessageAt = optionalTimestamp(value.lastMessageAt);
|
|
58
|
+
const lastMessagePreview = optionalString(value.lastMessagePreview, MAX_PREVIEW_CHARACTERS);
|
|
59
|
+
const common = {
|
|
60
|
+
id,
|
|
61
|
+
title,
|
|
62
|
+
...(unreadCount === undefined ? {} : { unreadCount }),
|
|
63
|
+
...(lastMessageAt === undefined ? {} : { lastMessageAt }),
|
|
64
|
+
...(lastMessagePreview === undefined ? {} : { lastMessagePreview }),
|
|
65
|
+
};
|
|
66
|
+
if (kind === 'direct') {
|
|
67
|
+
const peerDid = boundedString(value.peerDid, MAX_IDENTIFIER_CHARACTERS);
|
|
68
|
+
if (!peerDid.startsWith('did:'))
|
|
69
|
+
invalidState();
|
|
70
|
+
const peerHandle = optionalString(value.peerHandle, MAX_HANDLE_CHARACTERS);
|
|
71
|
+
const displayName = optionalString(value.displayName, MAX_TITLE_CHARACTERS);
|
|
72
|
+
return {
|
|
73
|
+
kind,
|
|
74
|
+
...common,
|
|
75
|
+
peerDid: peerDid,
|
|
76
|
+
...(peerHandle === undefined ? {} : { peerHandle: peerHandle }),
|
|
77
|
+
...(displayName === undefined ? {} : { displayName }),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (kind === 'group') {
|
|
81
|
+
const groupDid = boundedString(value.groupDid, MAX_IDENTIFIER_CHARACTERS);
|
|
82
|
+
if (!groupDid.startsWith('did:'))
|
|
83
|
+
invalidState();
|
|
84
|
+
return { kind, ...common, groupDid: groupDid };
|
|
85
|
+
}
|
|
86
|
+
invalidState();
|
|
87
|
+
}
|
|
88
|
+
function hiddenPreference(value) {
|
|
89
|
+
if (!isRecord(value) || !Number.isSafeInteger(value.hiddenAt) || value.hiddenAt < 0)
|
|
90
|
+
invalidState();
|
|
91
|
+
return { conversation: conversation(value.conversation), hiddenAt: value.hiddenAt };
|
|
92
|
+
}
|
|
93
|
+
function preferences(value, expectedOwnerDid) {
|
|
94
|
+
if (!isRecord(value)
|
|
95
|
+
|| value.version !== STORE_VERSION
|
|
96
|
+
|| value.ownerDid !== String(expectedOwnerDid)
|
|
97
|
+
|| !Array.isArray(value.hiddenConversations)
|
|
98
|
+
|| value.hiddenConversations.length > MAX_HIDDEN_CONVERSATIONS)
|
|
99
|
+
invalidState();
|
|
100
|
+
const hiddenConversations = value.hiddenConversations.map(hiddenPreference);
|
|
101
|
+
const seen = new Set();
|
|
102
|
+
for (const hidden of hiddenConversations) {
|
|
103
|
+
if (seen.has(hidden.conversation.id))
|
|
104
|
+
invalidState();
|
|
105
|
+
seen.add(hidden.conversation.id);
|
|
106
|
+
}
|
|
107
|
+
const dismissedGroupRecoverySignature = optionalString(value.dismissedGroupRecoverySignature, MAX_RECOVERY_SIGNATURE_CHARACTERS);
|
|
108
|
+
return {
|
|
109
|
+
version: STORE_VERSION,
|
|
110
|
+
ownerDid: String(expectedOwnerDid),
|
|
111
|
+
hiddenConversations,
|
|
112
|
+
...(dismissedGroupRecoverySignature === undefined ? {} : { dismissedGroupRecoverySignature }),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function publicPreferences(value) {
|
|
116
|
+
return {
|
|
117
|
+
hiddenConversations: value.hiddenConversations.map(hidden => ({
|
|
118
|
+
conversation: { ...hidden.conversation },
|
|
119
|
+
hiddenAt: hidden.hiddenAt,
|
|
120
|
+
})),
|
|
121
|
+
...(value.dismissedGroupRecoverySignature === undefined
|
|
122
|
+
? {}
|
|
123
|
+
: { dismissedGroupRecoverySignature: value.dismissedGroupRecoverySignature }),
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
function emptyPreferences(ownerDid) {
|
|
127
|
+
return { version: STORE_VERSION, ownerDid: String(ownerDid), hiddenConversations: [] };
|
|
128
|
+
}
|
|
129
|
+
/** Validate one browser mutation before entering private Host persistence. */
|
|
130
|
+
export function normalizeConversationPreferenceMutation(value) {
|
|
131
|
+
try {
|
|
132
|
+
if (!isRecord(value))
|
|
133
|
+
return undefined;
|
|
134
|
+
if (value.action === 'hide')
|
|
135
|
+
return { action: 'hide', conversation: conversation(value.conversation) };
|
|
136
|
+
if (value.action === 'restore') {
|
|
137
|
+
return {
|
|
138
|
+
action: 'restore',
|
|
139
|
+
conversationId: boundedString(value.conversationId, MAX_IDENTIFIER_CHARACTERS),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
if (value.action === 'dismiss-group-recovery') {
|
|
143
|
+
return {
|
|
144
|
+
action: 'dismiss-group-recovery',
|
|
145
|
+
signature: boundedString(value.signature, MAX_RECOVERY_SIGNATURE_CHARACTERS),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
/** Atomic identity-scoped product preferences, independent of Core membership and history. */
|
|
155
|
+
export class AwikiConversationPreferenceStore {
|
|
156
|
+
hostDirectory;
|
|
157
|
+
directory;
|
|
158
|
+
mutation = Promise.resolve();
|
|
159
|
+
constructor(stateRoot) {
|
|
160
|
+
this.hostDirectory = join(stateRoot, '.host');
|
|
161
|
+
this.directory = join(this.hostDirectory, STORE_DIRECTORY);
|
|
162
|
+
}
|
|
163
|
+
async get(ownerDid) {
|
|
164
|
+
await this.mutation;
|
|
165
|
+
return publicPreferences(await this.load(ownerDid));
|
|
166
|
+
}
|
|
167
|
+
update(ownerDid, request) {
|
|
168
|
+
const mutate = async () => {
|
|
169
|
+
const normalized = normalizeConversationPreferenceMutation(request);
|
|
170
|
+
if (normalized === undefined)
|
|
171
|
+
invalidState();
|
|
172
|
+
const current = await this.load(ownerDid);
|
|
173
|
+
let next;
|
|
174
|
+
switch (normalized.action) {
|
|
175
|
+
case 'hide': {
|
|
176
|
+
const snapshot = normalized.conversation;
|
|
177
|
+
const hidden = current.hiddenConversations.filter(item => item.conversation.id !== snapshot.id);
|
|
178
|
+
hidden.unshift({ conversation: snapshot, hiddenAt: Date.now() });
|
|
179
|
+
next = { ...current, hiddenConversations: hidden.slice(0, MAX_HIDDEN_CONVERSATIONS) };
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
case 'restore': {
|
|
183
|
+
const conversationId = normalized.conversationId;
|
|
184
|
+
next = {
|
|
185
|
+
...current,
|
|
186
|
+
hiddenConversations: current.hiddenConversations.filter(item => item.conversation.id !== conversationId),
|
|
187
|
+
};
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
case 'dismiss-group-recovery': {
|
|
191
|
+
const signature = normalized.signature;
|
|
192
|
+
next = { ...current, dismissedGroupRecoverySignature: signature };
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
default:
|
|
196
|
+
invalidState();
|
|
197
|
+
}
|
|
198
|
+
await this.write(ownerDid, next);
|
|
199
|
+
return publicPreferences(next);
|
|
200
|
+
};
|
|
201
|
+
const pending = this.mutation.then(mutate, mutate);
|
|
202
|
+
this.mutation = pending.then(() => undefined, () => undefined);
|
|
203
|
+
return pending;
|
|
204
|
+
}
|
|
205
|
+
async clear() {
|
|
206
|
+
await this.mutation;
|
|
207
|
+
try {
|
|
208
|
+
if (!(await this.hasDirectory(this.hostDirectory)))
|
|
209
|
+
return;
|
|
210
|
+
const metadata = await lstat(this.directory);
|
|
211
|
+
if (metadata.isSymbolicLink() || !metadata.isDirectory()) {
|
|
212
|
+
await unlink(this.directory);
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
await rm(this.directory, { recursive: true, force: true });
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
if (!isMissing(error))
|
|
219
|
+
throw error;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
async load(ownerDid) {
|
|
223
|
+
if (!(await this.hasDirectory(this.hostDirectory)) || !(await this.hasDirectory(this.directory))) {
|
|
224
|
+
return emptyPreferences(ownerDid);
|
|
225
|
+
}
|
|
226
|
+
const path = this.path(ownerDid);
|
|
227
|
+
try {
|
|
228
|
+
const metadata = await lstat(path);
|
|
229
|
+
if (!metadata.isFile() || metadata.isSymbolicLink() || metadata.size > MAX_STORE_BYTES)
|
|
230
|
+
invalidState();
|
|
231
|
+
const text = await readFile(path, 'utf8');
|
|
232
|
+
if (Buffer.byteLength(text, 'utf8') > MAX_STORE_BYTES)
|
|
233
|
+
invalidState();
|
|
234
|
+
return preferences(JSON.parse(text), ownerDid);
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
if (isMissing(error))
|
|
238
|
+
return emptyPreferences(ownerDid);
|
|
239
|
+
if (error instanceof SyntaxError)
|
|
240
|
+
invalidState();
|
|
241
|
+
throw error;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
async write(ownerDid, value) {
|
|
245
|
+
const snapshot = preferences(value, ownerDid);
|
|
246
|
+
const text = `${JSON.stringify(snapshot)}\n`;
|
|
247
|
+
if (Buffer.byteLength(text, 'utf8') > MAX_STORE_BYTES)
|
|
248
|
+
invalidState();
|
|
249
|
+
await this.ensureDirectory();
|
|
250
|
+
const path = this.path(ownerDid);
|
|
251
|
+
const temporary = join(this.directory, `.${this.key(ownerDid)}.${randomUUID()}.tmp`);
|
|
252
|
+
try {
|
|
253
|
+
await writeFile(temporary, text, { flag: 'wx', mode: 0o600 });
|
|
254
|
+
await rename(temporary, path);
|
|
255
|
+
await chmod(path, 0o600);
|
|
256
|
+
}
|
|
257
|
+
finally {
|
|
258
|
+
await unlink(temporary).catch(() => undefined);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
async ensureDirectory() {
|
|
262
|
+
await mkdir(this.hostDirectory, { recursive: true, mode: 0o700 });
|
|
263
|
+
if (!(await this.hasDirectory(this.hostDirectory)))
|
|
264
|
+
invalidState();
|
|
265
|
+
await chmod(this.hostDirectory, 0o700);
|
|
266
|
+
await mkdir(this.directory, { mode: 0o700 }).catch((error) => {
|
|
267
|
+
if (!isFileExists(error))
|
|
268
|
+
throw error;
|
|
269
|
+
});
|
|
270
|
+
if (!(await this.hasDirectory(this.directory)))
|
|
271
|
+
invalidState();
|
|
272
|
+
await chmod(this.directory, 0o700);
|
|
273
|
+
}
|
|
274
|
+
async hasDirectory(path) {
|
|
275
|
+
try {
|
|
276
|
+
const metadata = await lstat(path);
|
|
277
|
+
if (!metadata.isDirectory() || metadata.isSymbolicLink())
|
|
278
|
+
invalidState();
|
|
279
|
+
return true;
|
|
280
|
+
}
|
|
281
|
+
catch (error) {
|
|
282
|
+
if (isMissing(error))
|
|
283
|
+
return false;
|
|
284
|
+
throw error;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
path(ownerDid) {
|
|
288
|
+
return join(this.directory, `${this.key(ownerDid)}.json`);
|
|
289
|
+
}
|
|
290
|
+
key(ownerDid) {
|
|
291
|
+
return createHash('sha256').update(String(ownerDid)).digest('hex');
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
//# sourceMappingURL=conversation-preferences.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-preferences.js","sourceRoot":"","sources":["../../src/conversation-preferences.ts"],"names":[],"mappings":"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"}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { Context } from '@deepseek-ai/cordis';
|
|
3
3
|
import z from '@deepseek-ai/schemastery';
|
|
4
4
|
import { TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
|
|
5
|
-
import type { AwikiClearLocalDataRequest, AwikiClearLocalDataResult, AwikiCompletion, AwikiConversation, AwikiConversationSummary, AwikiCreateGroupRequest, AwikiCreateGroupResult, AwikiDownloadAttachmentRequest, AwikiDownloadedAttachment, AwikiGroupMember, AwikiGroupMemberPage, AwikiGroupRebindRecoverySummary, AwikiGroupMembersRequest, AwikiGroupRequest, AwikiGroupSnapshot, AwikiAddGroupMemberRequest, AwikiRemoveGroupMemberRequest, AwikiHistoryRequest, AwikiHostClient, AwikiIdentityAccessInspection, AwikiIdentityAccessInspectionRequest, AwikiIdentity, AwikiLogoutRequest, AwikiMessage, AwikiMailAccount, AwikiMailInboxPage, AwikiMailInboxRequest, AwikiMailMarkReadRequest, AwikiMailMarkReadResult, AwikiMailMessage, AwikiMailReadRequest, AwikiMailSendRequest, AwikiMailSendResult, AwikiMarkConversationReadRequest, AwikiPage, AwikiPageRequest, AwikiProfile, AwikiRecoveryOperationRequest, AwikiRecoveryOtpRequest, AwikiRecoveryOtpResult, AwikiRecoveryPrepareRequest, AwikiRecoveryProgress, AwikiRegistrationOtpRequest, AwikiRegistrationOtpResult, AwikiRegistrationRequest, AwikiResolvePeerRequest, AwikiResolvedPeer, AwikiResult, AwikiRuntimeConfig, AwikiSession, AwikiSendAttachmentRequest, AwikiSendTextRequest, AwikiSummarizeConversationRequest, AwikiUpdateDisplayNameRequest, AwikiUpdateProfileRequest } from './types.ts';
|
|
5
|
+
import type { AwikiClearLocalDataRequest, AwikiClearLocalDataResult, AwikiCompletion, AwikiConversation, AwikiConversationPreferenceMutation, AwikiConversationPreferences, AwikiConversationSummary, AwikiCreateGroupRequest, AwikiCreateGroupResult, AwikiDownloadAttachmentRequest, AwikiDownloadedAttachment, AwikiGroupMember, AwikiGroupMemberPage, AwikiGroupRebindRecoverySummary, AwikiGroupMembersRequest, AwikiGroupRequest, AwikiGroupSnapshot, AwikiAddGroupMemberRequest, AwikiRemoveGroupMemberRequest, AwikiHistoryRequest, AwikiHostClient, AwikiIdentityAccessInspection, AwikiIdentityAccessInspectionRequest, AwikiIdentity, AwikiLogoutRequest, AwikiMessage, AwikiMailAccount, AwikiMailInboxPage, AwikiMailInboxRequest, AwikiMailMarkReadRequest, AwikiMailMarkReadResult, AwikiMailMessage, AwikiMailReadRequest, AwikiMailSendRequest, AwikiMailSendResult, AwikiMarkConversationReadRequest, AwikiPage, AwikiPageRequest, AwikiProfile, AwikiRecoveryOperationRequest, AwikiRecoveryOtpRequest, AwikiRecoveryOtpResult, AwikiRecoveryPrepareRequest, AwikiRecoveryProgress, AwikiRegistrationOtpRequest, AwikiRegistrationOtpResult, AwikiRegistrationRequest, AwikiResolvePeerRequest, AwikiResolvedPeer, AwikiResult, AwikiRuntimeConfig, AwikiSession, AwikiSendAttachmentRequest, AwikiSendTextRequest, AwikiSummarizeConversationRequest, AwikiUpdateDisplayNameRequest, AwikiUpdateProfileRequest } from './types.ts';
|
|
6
6
|
import type { AwikiClientFactory } from './provider-api.ts';
|
|
7
7
|
import type { AwikiSummaryProvider } from './summary-provider-api.ts';
|
|
8
8
|
import type { AwikiExternalHttpAuth } from './external-http-auth.ts';
|
|
@@ -86,6 +86,7 @@ export declare class AwikiService extends TypertRemoteService implements AwikiHo
|
|
|
86
86
|
private readonly sessionStore;
|
|
87
87
|
private readonly imageAttachmentCache;
|
|
88
88
|
private readonly sentMailStore;
|
|
89
|
+
private readonly conversationPreferenceStore;
|
|
89
90
|
private startupUserServiceDomain;
|
|
90
91
|
private settingsProvider;
|
|
91
92
|
private provider;
|
|
@@ -187,6 +188,10 @@ export declare class AwikiService extends TypertRemoteService implements AwikiHo
|
|
|
187
188
|
removeGroupMember(request: AwikiRemoveGroupMemberRequest): Promise<AwikiResult<AwikiGroupMember>>;
|
|
188
189
|
/** Resume durable group membership convergence after account sync restores old groups. */
|
|
189
190
|
resumeGroupRebindRecovery(): Promise<AwikiResult<AwikiGroupRebindRecoverySummary>>;
|
|
191
|
+
/** Read presentation-only roster preferences for the active identity. */
|
|
192
|
+
getConversationPreferences(): Promise<AwikiResult<AwikiConversationPreferences>>;
|
|
193
|
+
/** Persist one bounded local roster preference without changing Core or remote membership. */
|
|
194
|
+
updateConversationPreference(request: AwikiConversationPreferenceMutation): Promise<AwikiResult<AwikiConversationPreferences>>;
|
|
190
195
|
/**
|
|
191
196
|
* List direct and existing group conversations.
|
|
192
197
|
* @param request - Optional opaque cursor and page limit.
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAG7C,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,EAAU,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAE9E,OAAO,KAAK,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,8BAA8B,EAC9B,yBAAyB,EAIzB,gBAAgB,EAChB,oBAAoB,EACpB,+BAA+B,EAC/B,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,0BAA0B,EAC1B,6BAA6B,EAE7B,mBAAmB,EACnB,eAAe,EACf,6BAA6B,EAC7B,oCAAoC,EACpC,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,gCAAgC,EAChC,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,6BAA6B,EAC7B,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,0BAA0B,EAC1B,oBAAoB,EACpB,iCAAiC,EACjC,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,YAAY,CAAA;AAEnB,OAAO,KAAK,EAAE,kBAAkB,EAAsC,MAAM,mBAAmB,CAAA;AAC/F,OAAO,KAAK,EAAE,oBAAoB,EAA6B,MAAM,2BAA2B,CAAA;AAOhG,OAAO,KAAK,EAAE,qBAAqB,EAAgC,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/types/index.js
CHANGED
|
@@ -51,6 +51,7 @@ import { createAwikiSettingsRpcHandler } from "./settings-rpc.js";
|
|
|
51
51
|
import { AwikiSessionStore } from "./session.js";
|
|
52
52
|
import { AwikiImageAttachmentCache, minimumImageAttachmentCacheMaxBytes } from "./attachment-cache.js";
|
|
53
53
|
import { AwikiSentMailStore, isLocalSentMailId } from "./sent-mail-store.js";
|
|
54
|
+
import { AwikiConversationPreferenceStore, normalizeConversationPreferenceMutation, } from "./conversation-preferences.js";
|
|
54
55
|
import { AwikiAgentListener, DshAwikiListenerAgentRuntime, } from "./listener.js";
|
|
55
56
|
export { AWIKI_CLEAR_LOCAL_DATA_CONFIRMATION, AWIKI_LOGOUT_CONFIRMATION } from "./types.js";
|
|
56
57
|
export { AWIKI_EXTERNAL_HTTP_MAX_BODY_BYTES, AwikiExternalHttpAuthError, } from "./external-http-auth.js";
|
|
@@ -99,6 +100,7 @@ const FAILURE_CODES = new Set([
|
|
|
99
100
|
'handle-unavailable',
|
|
100
101
|
'not-found',
|
|
101
102
|
'forbidden',
|
|
103
|
+
'identity-recovery-required',
|
|
102
104
|
'conflict',
|
|
103
105
|
'rate-limited',
|
|
104
106
|
'group-membership-required',
|
|
@@ -127,6 +129,7 @@ const FAILURE_MESSAGES = {
|
|
|
127
129
|
'handle-unavailable': 'The requested AWiki handle is unavailable.',
|
|
128
130
|
'not-found': 'The requested AWiki resource was not found.',
|
|
129
131
|
'forbidden': 'The AWiki operation is not permitted.',
|
|
132
|
+
'identity-recovery-required': 'The local AWiki identity must be recovered before it can be used again.',
|
|
130
133
|
'conflict': 'The AWiki operation conflicts with current state.',
|
|
131
134
|
'rate-limited': 'The AWiki service rate-limited the request.',
|
|
132
135
|
'group-membership-required': 'The active AWiki identity is not a member of this group.',
|
|
@@ -349,11 +352,27 @@ function publicGroupRebindRecoverySummary(value) {
|
|
|
349
352
|
if (counts.some(count => !Number.isSafeInteger(count) || count < 0 || count > 0xffff_ffff)) {
|
|
350
353
|
return undefined;
|
|
351
354
|
}
|
|
355
|
+
if (!Array.isArray(candidate.items) || candidate.items.length > 500)
|
|
356
|
+
return undefined;
|
|
357
|
+
const seen = new Set();
|
|
358
|
+
const items = [];
|
|
359
|
+
for (const value of candidate.items) {
|
|
360
|
+
if (typeof value !== 'object' || value === null)
|
|
361
|
+
return undefined;
|
|
362
|
+
const item = value;
|
|
363
|
+
const groupDid = normalizeGroupDid(item.groupDid);
|
|
364
|
+
if (groupDid === undefined || seen.has(groupDid) || (item.status !== 'pending' && item.status !== 'blocked')) {
|
|
365
|
+
return undefined;
|
|
366
|
+
}
|
|
367
|
+
seen.add(groupDid);
|
|
368
|
+
items.push({ groupDid, status: item.status });
|
|
369
|
+
}
|
|
352
370
|
return {
|
|
353
371
|
processed: candidate.processed,
|
|
354
372
|
completed: candidate.completed,
|
|
355
373
|
pending: candidate.pending,
|
|
356
374
|
blocked: candidate.blocked,
|
|
375
|
+
items,
|
|
357
376
|
};
|
|
358
377
|
}
|
|
359
378
|
function normalizeProfileRequest(request) {
|
|
@@ -652,6 +671,8 @@ let AwikiService = (() => {
|
|
|
652
671
|
let _addGroupMember_decorators;
|
|
653
672
|
let _removeGroupMember_decorators;
|
|
654
673
|
let _resumeGroupRebindRecovery_decorators;
|
|
674
|
+
let _getConversationPreferences_decorators;
|
|
675
|
+
let _updateConversationPreference_decorators;
|
|
655
676
|
let _listConversations_decorators;
|
|
656
677
|
let _getHistory_decorators;
|
|
657
678
|
let _getLocalHistory_decorators;
|
|
@@ -695,6 +716,8 @@ let AwikiService = (() => {
|
|
|
695
716
|
_addGroupMember_decorators = [Remote];
|
|
696
717
|
_removeGroupMember_decorators = [Remote];
|
|
697
718
|
_resumeGroupRebindRecovery_decorators = [Remote];
|
|
719
|
+
_getConversationPreferences_decorators = [Remote];
|
|
720
|
+
_updateConversationPreference_decorators = [Remote];
|
|
698
721
|
_listConversations_decorators = [Remote];
|
|
699
722
|
_getHistory_decorators = [Remote];
|
|
700
723
|
_getLocalHistory_decorators = [Remote];
|
|
@@ -735,6 +758,8 @@ let AwikiService = (() => {
|
|
|
735
758
|
__esDecorate(this, null, _addGroupMember_decorators, { kind: "method", name: "addGroupMember", static: false, private: false, access: { has: obj => "addGroupMember" in obj, get: obj => obj.addGroupMember }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
736
759
|
__esDecorate(this, null, _removeGroupMember_decorators, { kind: "method", name: "removeGroupMember", static: false, private: false, access: { has: obj => "removeGroupMember" in obj, get: obj => obj.removeGroupMember }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
737
760
|
__esDecorate(this, null, _resumeGroupRebindRecovery_decorators, { kind: "method", name: "resumeGroupRebindRecovery", static: false, private: false, access: { has: obj => "resumeGroupRebindRecovery" in obj, get: obj => obj.resumeGroupRebindRecovery }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
761
|
+
__esDecorate(this, null, _getConversationPreferences_decorators, { kind: "method", name: "getConversationPreferences", static: false, private: false, access: { has: obj => "getConversationPreferences" in obj, get: obj => obj.getConversationPreferences }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
762
|
+
__esDecorate(this, null, _updateConversationPreference_decorators, { kind: "method", name: "updateConversationPreference", static: false, private: false, access: { has: obj => "updateConversationPreference" in obj, get: obj => obj.updateConversationPreference }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
738
763
|
__esDecorate(this, null, _listConversations_decorators, { kind: "method", name: "listConversations", static: false, private: false, access: { has: obj => "listConversations" in obj, get: obj => obj.listConversations }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
739
764
|
__esDecorate(this, null, _getHistory_decorators, { kind: "method", name: "getHistory", static: false, private: false, access: { has: obj => "getHistory" in obj, get: obj => obj.getHistory }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
740
765
|
__esDecorate(this, null, _getLocalHistory_decorators, { kind: "method", name: "getLocalHistory", static: false, private: false, access: { has: obj => "getLocalHistory" in obj, get: obj => obj.getLocalHistory }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
@@ -757,6 +782,7 @@ let AwikiService = (() => {
|
|
|
757
782
|
sessionStore;
|
|
758
783
|
imageAttachmentCache;
|
|
759
784
|
sentMailStore;
|
|
785
|
+
conversationPreferenceStore;
|
|
760
786
|
startupUserServiceDomain;
|
|
761
787
|
settingsProvider;
|
|
762
788
|
provider;
|
|
@@ -782,6 +808,7 @@ let AwikiService = (() => {
|
|
|
782
808
|
this.sessionStore = new AwikiSessionStore(this.resolved.stateRoot);
|
|
783
809
|
this.imageAttachmentCache = new AwikiImageAttachmentCache(this.resolved.stateRoot, this.resolved.attachmentMaxBytes, this.resolved.imageAttachmentCacheMaxBytes);
|
|
784
810
|
this.sentMailStore = new AwikiSentMailStore(this.resolved.stateRoot);
|
|
811
|
+
this.conversationPreferenceStore = new AwikiConversationPreferenceStore(this.resolved.stateRoot);
|
|
785
812
|
this.startupUserServiceDomain = this.resolved.userServiceDomain;
|
|
786
813
|
ctx.inject(['settings'], (settingsCtx) => {
|
|
787
814
|
const provider = settingsCtx.settings;
|
|
@@ -1203,6 +1230,17 @@ let AwikiService = (() => {
|
|
|
1203
1230
|
? { ok: false, error: failure('remote') }
|
|
1204
1231
|
: { ok: true, value: summary };
|
|
1205
1232
|
}
|
|
1233
|
+
/** Read presentation-only roster preferences for the active identity. */
|
|
1234
|
+
getConversationPreferences() {
|
|
1235
|
+
return this.run(async (client) => this.conversationPreferenceStore.get(await this.ownerDid(client)));
|
|
1236
|
+
}
|
|
1237
|
+
/** Persist one bounded local roster preference without changing Core or remote membership. */
|
|
1238
|
+
updateConversationPreference(request) {
|
|
1239
|
+
const normalized = normalizeConversationPreferenceMutation(request);
|
|
1240
|
+
if (normalized === undefined)
|
|
1241
|
+
return Promise.resolve({ ok: false, error: failure('invalid-request') });
|
|
1242
|
+
return this.run(async (client) => this.conversationPreferenceStore.update(await this.ownerDid(client), normalized));
|
|
1243
|
+
}
|
|
1206
1244
|
/**
|
|
1207
1245
|
* List direct and existing group conversations.
|
|
1208
1246
|
* @param request - Optional opaque cursor and page limit.
|
|
@@ -1501,6 +1539,7 @@ let AwikiService = (() => {
|
|
|
1501
1539
|
try {
|
|
1502
1540
|
await this.imageAttachmentCache.clear();
|
|
1503
1541
|
await this.sentMailStore.clear();
|
|
1542
|
+
await this.conversationPreferenceStore.clear();
|
|
1504
1543
|
await this.sessionStore.signIn();
|
|
1505
1544
|
this.signedOut = false;
|
|
1506
1545
|
this.activeIdentityDid = undefined;
|