nostr-double-ratchet 0.0.63 → 0.0.65
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/SessionManager.d.ts +27 -1
- package/dist/SessionManager.d.ts.map +1 -1
- package/dist/nostr-double-ratchet.es.js +1780 -1650
- package/dist/nostr-double-ratchet.umd.js +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/SessionManager.ts +243 -9
- package/src/types.ts +11 -0
package/dist/SessionManager.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IdentityKey, NostrSubscribe, NostrPublish, Rumor, ReceiptType, ExpirationOptions, ChatSettingsPayloadV1 } from "./types";
|
|
2
2
|
import { StorageAdapter } from "./StorageAdapter";
|
|
3
3
|
import { AppKeys } from "./AppKeys";
|
|
4
|
+
import { Invite } from "./Invite";
|
|
4
5
|
import { Session } from "./Session";
|
|
5
6
|
export type OnEventMeta = {
|
|
6
7
|
fromDeviceId?: string;
|
|
@@ -28,6 +29,14 @@ export interface UserRecord {
|
|
|
28
29
|
/** Full AppKeys for this user - single source of truth for device list */
|
|
29
30
|
appKeys?: AppKeys;
|
|
30
31
|
}
|
|
32
|
+
export interface AcceptInviteOptions {
|
|
33
|
+
ownerPublicKey?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface AcceptInviteResult {
|
|
36
|
+
ownerPublicKey: string;
|
|
37
|
+
deviceId: string;
|
|
38
|
+
session: Session;
|
|
39
|
+
}
|
|
31
40
|
export declare class SessionManager {
|
|
32
41
|
private readonly storageVersion;
|
|
33
42
|
private readonly versionPrefix;
|
|
@@ -48,6 +57,7 @@ export declare class SessionManager {
|
|
|
48
57
|
private peerExpiration;
|
|
49
58
|
private groupExpiration;
|
|
50
59
|
private autoAdoptChatSettings;
|
|
60
|
+
private chatTombstones;
|
|
51
61
|
private userRecordWriteChain;
|
|
52
62
|
private ourInviteResponseSubscription;
|
|
53
63
|
private inviteSubscriptions;
|
|
@@ -59,8 +69,11 @@ export declare class SessionManager {
|
|
|
59
69
|
private expirationPeerKey;
|
|
60
70
|
private expirationGroupPrefix;
|
|
61
71
|
private expirationGroupKey;
|
|
72
|
+
private chatTombstonePrefix;
|
|
73
|
+
private chatTombstoneKey;
|
|
62
74
|
private validateExpirationOptions;
|
|
63
75
|
private loadExpirationSettings;
|
|
76
|
+
private loadChatTombstones;
|
|
64
77
|
constructor(ourPublicKey: string, identityKey: IdentityKey, deviceId: string, nostrSubscribe: NostrSubscribe, nostrPublish: NostrPublish, ownerPublicKey: string, inviteKeys: InviteCredentials, storage?: StorageAdapter);
|
|
65
78
|
init(): Promise<void>;
|
|
66
79
|
/**
|
|
@@ -107,6 +120,8 @@ export declare class SessionManager {
|
|
|
107
120
|
* When enabled, receiving a valid settings payload updates per-peer expiration defaults.
|
|
108
121
|
*/
|
|
109
122
|
setAutoAdoptChatSettings(enabled: boolean): void;
|
|
123
|
+
isChatTombstoned(userPubkey: string): boolean;
|
|
124
|
+
private setChatTombstone;
|
|
110
125
|
getDeviceId(): string;
|
|
111
126
|
getUserRecords(): Map<string, UserRecord>;
|
|
112
127
|
/**
|
|
@@ -125,10 +140,20 @@ export declare class SessionManager {
|
|
|
125
140
|
setExpirationForGroup(groupId: string, options: ExpirationOptions | null | undefined): Promise<void>;
|
|
126
141
|
close(): void;
|
|
127
142
|
deactivateCurrentSessions(publicKey: string): void;
|
|
128
|
-
|
|
143
|
+
deleteChat(userPubkey: string, options?: {
|
|
144
|
+
syncToOwnDevices?: boolean;
|
|
145
|
+
tombstone?: boolean;
|
|
146
|
+
}): Promise<void>;
|
|
147
|
+
deleteUser(userPubkey: string, options?: {
|
|
148
|
+
syncToOwnDevices?: boolean;
|
|
149
|
+
tombstone?: boolean;
|
|
150
|
+
}): Promise<void>;
|
|
151
|
+
private publishChatTombstone;
|
|
152
|
+
private deleteUserLocal;
|
|
129
153
|
private removeSessionSubscription;
|
|
130
154
|
private deleteUserSessionsFromStorage;
|
|
131
155
|
private flushMessageQueue;
|
|
156
|
+
acceptInvite(invite: Invite, options?: AcceptInviteOptions): Promise<AcceptInviteResult>;
|
|
132
157
|
sendEvent(recipientIdentityKey: string, event: Partial<Rumor>): Promise<Rumor | undefined>;
|
|
133
158
|
sendMessage(recipientPublicKey: string, content: string, options?: {
|
|
134
159
|
kind?: number;
|
|
@@ -152,6 +177,7 @@ export declare class SessionManager {
|
|
|
152
177
|
setChatSettingsForPeer(peerPubkey: string, messageTtlSeconds: ChatSettingsPayloadV1["messageTtlSeconds"]): Promise<Rumor>;
|
|
153
178
|
sendReceipt(recipientPublicKey: string, receiptType: ReceiptType, messageIds: string[]): Promise<Rumor | undefined>;
|
|
154
179
|
sendTyping(recipientPublicKey: string): Promise<Rumor>;
|
|
180
|
+
private maybeHandleLocalChatTombstone;
|
|
155
181
|
private maybeAutoAdoptChatSettings;
|
|
156
182
|
private cleanupDevice;
|
|
157
183
|
private buildMessageTags;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../src/SessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,KAAK,
|
|
1
|
+
{"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../src/SessionManager.ts"],"names":[],"mappings":"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"}
|