1// A peer in the room, keyed by Trystero peer id. `self` marks our own entry.
2export type Peer = {
3 id: string
4 name: string
5 self: boolean
6}
8// One line in the message log.
9export type LogEntry = {
10 key: string
11 time: number
12 kind: 'system' | 'text' | 'binary'
13 dir: 'in' | 'out' | 'sys'
14 peerId?: string
15 peerName?: string
16 text?: string
17 // binary-only fields
18 fileName?: string
19 size?: number
20 sha256?: string
21 // a received binary payload, kept so the user can download it
22 blobUrl?: string
23}
25// Metadata that rides along with a binary transfer so the receiver knows what
26// it's getting (Trystero delivers this via the `metadata` send option).
27export type BinaryMeta = {
28 transferId: string
29 fileName: string
30 mime: string
31 size: number
32}
34// An in-flight (or completed) binary transfer, shown as a progress bar.
35export type Transfer = {
36 id: string
37 dir: 'in' | 'out'
38 peerId: string
39 peerName: string
40 fileName: string
41 size: number
42 percent: number
43 done: boolean
44}