@meshwhisper/sdk 0.1.0
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 +138 -0
- package/dist/browser/index.d.ts +4 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +19 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/chaff/index.d.ts +91 -0
- package/dist/chaff/index.d.ts.map +1 -0
- package/dist/chaff/index.js +268 -0
- package/dist/chaff/index.js.map +1 -0
- package/dist/cluster/index.d.ts +159 -0
- package/dist/cluster/index.d.ts.map +1 -0
- package/dist/cluster/index.js +393 -0
- package/dist/cluster/index.js.map +1 -0
- package/dist/compliance/index.d.ts +129 -0
- package/dist/compliance/index.d.ts.map +1 -0
- package/dist/compliance/index.js +315 -0
- package/dist/compliance/index.js.map +1 -0
- package/dist/crypto/index.d.ts +65 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +146 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/group/index.d.ts +155 -0
- package/dist/group/index.d.ts.map +1 -0
- package/dist/group/index.js +560 -0
- package/dist/group/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/namespace/index.d.ts +155 -0
- package/dist/namespace/index.d.ts.map +1 -0
- package/dist/namespace/index.js +278 -0
- package/dist/namespace/index.js.map +1 -0
- package/dist/node/index.d.ts +4 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +19 -0
- package/dist/node/index.js.map +1 -0
- package/dist/packet/index.d.ts +63 -0
- package/dist/packet/index.d.ts.map +1 -0
- package/dist/packet/index.js +244 -0
- package/dist/packet/index.js.map +1 -0
- package/dist/permissions/index.d.ts +107 -0
- package/dist/permissions/index.d.ts.map +1 -0
- package/dist/permissions/index.js +282 -0
- package/dist/permissions/index.js.map +1 -0
- package/dist/persistence/idb-storage.d.ts +27 -0
- package/dist/persistence/idb-storage.d.ts.map +1 -0
- package/dist/persistence/idb-storage.js +75 -0
- package/dist/persistence/idb-storage.js.map +1 -0
- package/dist/persistence/index.d.ts +4 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +3 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/node-storage.d.ts +33 -0
- package/dist/persistence/node-storage.d.ts.map +1 -0
- package/dist/persistence/node-storage.js +90 -0
- package/dist/persistence/node-storage.js.map +1 -0
- package/dist/persistence/serialization.d.ts +4 -0
- package/dist/persistence/serialization.d.ts.map +1 -0
- package/dist/persistence/serialization.js +49 -0
- package/dist/persistence/serialization.js.map +1 -0
- package/dist/persistence/types.d.ts +29 -0
- package/dist/persistence/types.d.ts.map +1 -0
- package/dist/persistence/types.js +5 -0
- package/dist/persistence/types.js.map +1 -0
- package/dist/ratchet/index.d.ts +80 -0
- package/dist/ratchet/index.d.ts.map +1 -0
- package/dist/ratchet/index.js +259 -0
- package/dist/ratchet/index.js.map +1 -0
- package/dist/reciprocity/index.d.ts +109 -0
- package/dist/reciprocity/index.d.ts.map +1 -0
- package/dist/reciprocity/index.js +311 -0
- package/dist/reciprocity/index.js.map +1 -0
- package/dist/relay/index.d.ts +87 -0
- package/dist/relay/index.d.ts.map +1 -0
- package/dist/relay/index.js +286 -0
- package/dist/relay/index.js.map +1 -0
- package/dist/routing/index.d.ts +136 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +478 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/sdk/index.d.ts +322 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +1530 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sybil/index.d.ts +123 -0
- package/dist/sybil/index.d.ts.map +1 -0
- package/dist/sybil/index.js +491 -0
- package/dist/sybil/index.js.map +1 -0
- package/dist/transport/browser/index.d.ts +34 -0
- package/dist/transport/browser/index.d.ts.map +1 -0
- package/dist/transport/browser/index.js +176 -0
- package/dist/transport/browser/index.js.map +1 -0
- package/dist/transport/local/index.d.ts +57 -0
- package/dist/transport/local/index.d.ts.map +1 -0
- package/dist/transport/local/index.js +442 -0
- package/dist/transport/local/index.js.map +1 -0
- package/dist/transport/negotiator/index.d.ts +79 -0
- package/dist/transport/negotiator/index.d.ts.map +1 -0
- package/dist/transport/negotiator/index.js +289 -0
- package/dist/transport/negotiator/index.js.map +1 -0
- package/dist/transport/node/index.d.ts +56 -0
- package/dist/transport/node/index.d.ts.map +1 -0
- package/dist/transport/node/index.js +209 -0
- package/dist/transport/node/index.js.map +1 -0
- package/dist/transport/noop/index.d.ts +11 -0
- package/dist/transport/noop/index.d.ts.map +1 -0
- package/dist/transport/noop/index.js +20 -0
- package/dist/transport/noop/index.js.map +1 -0
- package/dist/transport/p2p/index.d.ts +109 -0
- package/dist/transport/p2p/index.d.ts.map +1 -0
- package/dist/transport/p2p/index.js +237 -0
- package/dist/transport/p2p/index.js.map +1 -0
- package/dist/transport/websocket/index.d.ts +89 -0
- package/dist/transport/websocket/index.d.ts.map +1 -0
- package/dist/transport/websocket/index.js +498 -0
- package/dist/transport/websocket/index.js.map +1 -0
- package/dist/transport/websocket/serialize.d.ts +5 -0
- package/dist/transport/websocket/serialize.d.ts.map +1 -0
- package/dist/transport/websocket/serialize.js +55 -0
- package/dist/transport/websocket/serialize.js.map +1 -0
- package/dist/types.d.ts +215 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -0
- package/dist/x3dh/index.d.ts +120 -0
- package/dist/x3dh/index.d.ts.map +1 -0
- package/dist/x3dh/index.js +290 -0
- package/dist/x3dh/index.js.map +1 -0
- package/package.json +59 -0
- package/src/browser/index.ts +19 -0
- package/src/chaff/index.ts +340 -0
- package/src/cluster/index.ts +482 -0
- package/src/compliance/index.ts +407 -0
- package/src/crypto/index.ts +193 -0
- package/src/group/index.ts +719 -0
- package/src/index.ts +87 -0
- package/src/lz4js.d.ts +58 -0
- package/src/namespace/index.ts +336 -0
- package/src/node/index.ts +19 -0
- package/src/packet/index.ts +326 -0
- package/src/permissions/index.ts +405 -0
- package/src/persistence/idb-storage.ts +83 -0
- package/src/persistence/index.ts +3 -0
- package/src/persistence/node-storage.ts +96 -0
- package/src/persistence/serialization.ts +75 -0
- package/src/persistence/types.ts +33 -0
- package/src/ratchet/index.ts +363 -0
- package/src/reciprocity/index.ts +371 -0
- package/src/relay/index.ts +382 -0
- package/src/routing/index.ts +577 -0
- package/src/sdk/index.ts +1994 -0
- package/src/sybil/index.ts +661 -0
- package/src/transport/browser/index.ts +201 -0
- package/src/transport/local/index.ts +540 -0
- package/src/transport/negotiator/index.ts +397 -0
- package/src/transport/node/index.ts +234 -0
- package/src/transport/noop/index.ts +22 -0
- package/src/transport/p2p/index.ts +345 -0
- package/src/transport/websocket/index.ts +660 -0
- package/src/transport/websocket/serialize.ts +68 -0
- package/src/types.ts +275 -0
- package/src/x3dh/index.ts +388 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import type { Group, GroupMember, PermissionModel } from '../types.js';
|
|
2
|
+
/** Relay tree node representing a group member's position in the relay topology. */
|
|
3
|
+
export interface TreeNode {
|
|
4
|
+
peerId: string;
|
|
5
|
+
children: TreeNode[];
|
|
6
|
+
activityScore: number;
|
|
7
|
+
lastActive: number;
|
|
8
|
+
}
|
|
9
|
+
/** Invitation payload to join a group, distributed via pairwise encrypted channels. */
|
|
10
|
+
export interface GroupInvite {
|
|
11
|
+
groupId: string;
|
|
12
|
+
groupName: string;
|
|
13
|
+
invitedBy: string;
|
|
14
|
+
senderKeys: Map<string, Uint8Array>;
|
|
15
|
+
members: string[];
|
|
16
|
+
}
|
|
17
|
+
/** Distribution message for a single sender key. */
|
|
18
|
+
export interface SenderKeyDistribution {
|
|
19
|
+
groupId: string;
|
|
20
|
+
senderId: string;
|
|
21
|
+
senderKey: Uint8Array;
|
|
22
|
+
iteration: number;
|
|
23
|
+
}
|
|
24
|
+
export declare class GroupManager {
|
|
25
|
+
private readonly localPeerId;
|
|
26
|
+
private readonly groups;
|
|
27
|
+
constructor(localPeerId: string);
|
|
28
|
+
/**
|
|
29
|
+
* Creates a new group. The local peer is the initial admin and tree root.
|
|
30
|
+
* Generates sender keys for the local peer and all initial members.
|
|
31
|
+
*/
|
|
32
|
+
createGroup(name: string, members: string[], permissionModel: PermissionModel): Group;
|
|
33
|
+
/**
|
|
34
|
+
* Joins an existing group using invite data received via a pairwise channel.
|
|
35
|
+
* Stores all distributed sender keys from the invite.
|
|
36
|
+
*/
|
|
37
|
+
joinGroup(groupId: string, inviteData: GroupInvite): Group;
|
|
38
|
+
/**
|
|
39
|
+
* Leaves a group, removing all local state for it.
|
|
40
|
+
*/
|
|
41
|
+
leaveGroup(groupId: string): void;
|
|
42
|
+
/**
|
|
43
|
+
* Returns the group with the given ID, or null if not found.
|
|
44
|
+
*/
|
|
45
|
+
getGroup(groupId: string): Group | null;
|
|
46
|
+
/**
|
|
47
|
+
* Returns all groups the local peer is participating in.
|
|
48
|
+
*/
|
|
49
|
+
getGroups(): Group[];
|
|
50
|
+
/**
|
|
51
|
+
* Adds a new member to the group and generates a sender key for them.
|
|
52
|
+
*/
|
|
53
|
+
addMember(groupId: string, peerId: string): void;
|
|
54
|
+
/**
|
|
55
|
+
* Removes a member from the group and triggers rotation of all sender keys
|
|
56
|
+
* to maintain forward secrecy — the removed member must not be able to
|
|
57
|
+
* decrypt future messages.
|
|
58
|
+
*/
|
|
59
|
+
removeMember(groupId: string, peerId: string): void;
|
|
60
|
+
/**
|
|
61
|
+
* Returns the list of all members in a group.
|
|
62
|
+
*/
|
|
63
|
+
getMembers(groupId: string): GroupMember[];
|
|
64
|
+
/**
|
|
65
|
+
* Returns the role of a member in a group, or null if not a member.
|
|
66
|
+
*/
|
|
67
|
+
getMemberRole(groupId: string, peerId: string): 'admin' | 'member' | null;
|
|
68
|
+
/**
|
|
69
|
+
* Updates a member's role within the group.
|
|
70
|
+
*/
|
|
71
|
+
setMemberRole(groupId: string, peerId: string, role: 'admin' | 'member'): void;
|
|
72
|
+
/**
|
|
73
|
+
* Generates a new 32-byte sender key using cryptographically secure randomness.
|
|
74
|
+
*/
|
|
75
|
+
generateSenderKey(): Uint8Array;
|
|
76
|
+
/**
|
|
77
|
+
* Creates a sender key distribution message for a specific recipient.
|
|
78
|
+
* This message should be encrypted via the pairwise channel before transmission.
|
|
79
|
+
*/
|
|
80
|
+
distributeSenderKey(groupId: string, senderKey: Uint8Array, recipientId: string): SenderKeyDistribution;
|
|
81
|
+
/**
|
|
82
|
+
* Processes a received sender key distribution message from another member.
|
|
83
|
+
*/
|
|
84
|
+
receiveSenderKey(distribution: SenderKeyDistribution): void;
|
|
85
|
+
/**
|
|
86
|
+
* Rotates all sender keys in a group. Called when a member is removed
|
|
87
|
+
* to ensure forward secrecy.
|
|
88
|
+
*/
|
|
89
|
+
rotateAllSenderKeys(groupId: string): void;
|
|
90
|
+
/**
|
|
91
|
+
* Returns the sender key for a specific member in a group, or null if unknown.
|
|
92
|
+
*/
|
|
93
|
+
getSenderKey(groupId: string, memberId: string): Uint8Array | null;
|
|
94
|
+
/**
|
|
95
|
+
* Encrypts plaintext for the group using the local peer's sender key.
|
|
96
|
+
* Uses AES-256-GCM. The ciphertext format is: nonce (12) || ciphertext || tag (16).
|
|
97
|
+
*/
|
|
98
|
+
encryptForGroup(groupId: string, plaintext: Uint8Array): {
|
|
99
|
+
ciphertext: Uint8Array;
|
|
100
|
+
senderId: string;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Decrypts a group message from a specific sender using their sender key.
|
|
104
|
+
* Expects the ciphertext format: nonce (12) || ciphertext || tag (16).
|
|
105
|
+
*/
|
|
106
|
+
decryptFromGroup(groupId: string, senderId: string, ciphertext: Uint8Array): Uint8Array;
|
|
107
|
+
/**
|
|
108
|
+
* Records a message-send activity for a member. Used to compute
|
|
109
|
+
* activity scores that drive relay tree topology.
|
|
110
|
+
*/
|
|
111
|
+
updateActivity(groupId: string, peerId: string): void;
|
|
112
|
+
/**
|
|
113
|
+
* Builds (or returns cached) relay tree for the group. The tree is
|
|
114
|
+
* structured so that the most active members form the trunk near the
|
|
115
|
+
* root, and less active members are leaves.
|
|
116
|
+
*
|
|
117
|
+
* The tree is rebuilt at most once per TREE_REBUILD_INTERVAL_MS.
|
|
118
|
+
*/
|
|
119
|
+
buildRelayTree(groupId: string): TreeNode;
|
|
120
|
+
/**
|
|
121
|
+
* Determines which peer should relay a message to reach the target peer.
|
|
122
|
+
* Returns the parent of the target in the relay tree, or null if the
|
|
123
|
+
* target is the root or not found.
|
|
124
|
+
*/
|
|
125
|
+
getRelayTarget(groupId: string, targetPeerId: string): string | null;
|
|
126
|
+
/**
|
|
127
|
+
* Returns the list of peer IDs that the local peer should relay messages to
|
|
128
|
+
* (i.e., the local peer's children in the relay tree).
|
|
129
|
+
*/
|
|
130
|
+
getRelayChildren(groupId: string): string[];
|
|
131
|
+
/**
|
|
132
|
+
* Routes a group message through the relay tree. Returns the list of peers
|
|
133
|
+
* that the local peer should forward the message to, based on the relay
|
|
134
|
+
* tree position.
|
|
135
|
+
*
|
|
136
|
+
* If the local peer is the sender (or root), it forwards to its children.
|
|
137
|
+
* If the local peer is relaying, it forwards to its children plus its parent
|
|
138
|
+
* (if the message didn't come from the parent direction).
|
|
139
|
+
*/
|
|
140
|
+
routeGroupMessage(groupId: string, ciphertext: Uint8Array, senderId: string): Array<{
|
|
141
|
+
peerId: string;
|
|
142
|
+
data: Uint8Array;
|
|
143
|
+
}>;
|
|
144
|
+
/** Generates a random hex-encoded group ID. */
|
|
145
|
+
private generateGroupId;
|
|
146
|
+
/** Retrieves group state or throws if the group is unknown. */
|
|
147
|
+
private requireGroupState;
|
|
148
|
+
/** Searches the relay tree for a node by peer ID. */
|
|
149
|
+
private findNodeInTree;
|
|
150
|
+
/** Finds the parent node of a given peer in the relay tree. */
|
|
151
|
+
private findParentInTree;
|
|
152
|
+
/** Checks whether a peer is anywhere in the subtree rooted at the given node. */
|
|
153
|
+
private isInSubtree;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/group/index.ts"],"names":[],"mappings":"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"}
|