@uncorded/protocol 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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,309 @@
1
+ import { z } from "zod";
2
+ import { MAX_SDP_SIZE, MAX_FILE_SIZE_BYTES, MAX_FILE_NAME_LENGTH, MAX_CONTENT_TYPE_LENGTH, MAX_MAGNET_URI_LENGTH, MAX_INFO_HASH_LENGTH, } from "@uncorded/shared";
3
+ // ── Helpers ──────────────────────────────────────────────────────────────────
4
+ /** Accepts both ISO strings and Date objects (MessagePack preserves Dates). */
5
+ export const coerceDate = z.union([
6
+ z.string().refine((s) => !Number.isNaN(Date.parse(s)), { message: "Invalid date string" }),
7
+ z.date().transform((d) => d.toISOString()),
8
+ ]);
9
+ export const coerceDateNullable = coerceDate.nullable();
10
+ export const authorSchema = z.object({
11
+ id: z.string(),
12
+ username: z.string().nullable(),
13
+ displayName: z.string().nullable(),
14
+ avatarUrl: z.string().nullable(),
15
+ isBot: z.boolean().default(false),
16
+ });
17
+ const userProfileSchema = z.object({
18
+ id: z.string(),
19
+ username: z.string().nullable(),
20
+ displayName: z.string().nullable(),
21
+ avatarUrl: z.string().nullable(),
22
+ status: z.string(),
23
+ });
24
+ export const channelSchema = z.object({
25
+ id: z.string(),
26
+ serverId: z.string(),
27
+ name: z.string().trim().min(1).max(100),
28
+ type: z.string(),
29
+ position: z.number().int().nonnegative(),
30
+ topic: z.string().nullable(),
31
+ fileSharingEnabled: z.boolean(),
32
+ });
33
+ // ── Client → Server (request schemas) ────────────────────────────────────────
34
+ export const identifyRequestSchema = z
35
+ .object({
36
+ ticket: z.string().optional(),
37
+ token: z.string().optional(),
38
+ })
39
+ .refine((d) => d.ticket || d.token, "Must provide ticket or token");
40
+ export const typingStartRequestSchema = z.object({ channelId: z.string().min(1) });
41
+ export const webRtcSignalRequestSchema = z.object({
42
+ targetUserId: z.string().min(1),
43
+ channelId: z.string().min(1),
44
+ data: z.union([
45
+ z.string().max(MAX_SDP_SIZE),
46
+ z
47
+ .record(z.string(), z.unknown())
48
+ .refine((r) => JSON.stringify(r).length <= MAX_SDP_SIZE, "ICE candidate too large"),
49
+ ]),
50
+ });
51
+ export const fileShareRequestSchema = z.object({
52
+ channelId: z.string().min(1),
53
+ fileName: z.string().min(1).max(MAX_FILE_NAME_LENGTH),
54
+ fileSize: z.number().int().positive().max(MAX_FILE_SIZE_BYTES),
55
+ contentType: z.string().min(1).max(MAX_CONTENT_TYPE_LENGTH),
56
+ magnetUri: z.string().min(1).max(MAX_MAGNET_URI_LENGTH).startsWith("magnet:"),
57
+ infoHash: z.string().min(1).max(MAX_INFO_HASH_LENGTH),
58
+ });
59
+ export const fileAvailabilityRequestSchema = z.object({
60
+ fileReceiptId: z.string().min(1),
61
+ channelId: z.string().min(1),
62
+ available: z.boolean(),
63
+ });
64
+ // ── Server → Client (event schemas) ─────────────────────────────────────────
65
+ export const readyEventSchema = z.object({
66
+ user: z.object({
67
+ id: z.string(),
68
+ username: z.string().nullable(),
69
+ displayName: z.string().nullable(),
70
+ avatarUrl: z.string().nullable(),
71
+ status: z.string(),
72
+ subscriptionTier: z.string(),
73
+ isBot: z.boolean().default(false),
74
+ }),
75
+ servers: z.array(z.object({
76
+ id: z.string(),
77
+ name: z.string(),
78
+ iconUrl: z.string().nullable(),
79
+ ownerId: z.string(),
80
+ })),
81
+ dmChannels: z
82
+ .array(z.object({
83
+ id: z.string(),
84
+ otherUser: userProfileSchema,
85
+ }))
86
+ .default([]),
87
+ hasMoreDmChannels: z.boolean(),
88
+ friends: z
89
+ .array(z.object({
90
+ userId: z.string(),
91
+ username: z.string().nullable(),
92
+ displayName: z.string().nullable(),
93
+ avatarUrl: z.string().nullable(),
94
+ status: z.string(),
95
+ friendshipStatus: z.string(),
96
+ incoming: z.boolean(),
97
+ }))
98
+ .default([]),
99
+ hasMoreFriends: z.boolean(),
100
+ });
101
+ export const messageCreateEventSchema = z.object({
102
+ id: z.string(),
103
+ channelId: z.string(),
104
+ content: z.string().nullable(),
105
+ editedAt: coerceDateNullable,
106
+ createdAt: coerceDate,
107
+ author: authorSchema,
108
+ fileReceipt: z
109
+ .object({
110
+ id: z.string(),
111
+ fileName: z.string(),
112
+ fileSize: z.number(),
113
+ contentType: z.string(),
114
+ magnetUri: z.string(),
115
+ infoHash: z.string(),
116
+ })
117
+ .optional(),
118
+ });
119
+ export const messageUpdateEventSchema = z.object({
120
+ id: z.string(),
121
+ channelId: z.string(),
122
+ content: z.string(),
123
+ editedAt: coerceDateNullable,
124
+ });
125
+ export const messageDeleteEventSchema = z.object({
126
+ id: z.string(),
127
+ channelId: z.string(),
128
+ });
129
+ export const typingStartEventSchema = z.object({
130
+ channelId: z.string(),
131
+ userId: z.string(),
132
+ username: z.string(),
133
+ });
134
+ export const serverCreateEventSchema = z.object({
135
+ server: z.object({
136
+ id: z.string(),
137
+ name: z.string(),
138
+ iconUrl: z.string().nullable(),
139
+ ownerId: z.string(),
140
+ }),
141
+ channels: z.array(channelSchema),
142
+ });
143
+ export const serverDeleteEventSchema = z.object({
144
+ id: z.string(),
145
+ });
146
+ export const serverUpdateEventSchema = z.object({
147
+ id: z.string(),
148
+ name: z.string().optional(),
149
+ iconUrl: z.string().nullable().optional(),
150
+ ownerId: z.string().optional(),
151
+ });
152
+ export const channelCreateEventSchema = channelSchema;
153
+ export const channelUpdateEventSchema = z.object({
154
+ id: z.string(),
155
+ serverId: z.string(),
156
+ name: z.string().trim().min(1).max(100).optional(),
157
+ topic: z.string().nullable().optional(),
158
+ position: z.number().int().nonnegative().optional(),
159
+ fileSharingEnabled: z.boolean().optional(),
160
+ });
161
+ export const channelDeleteEventSchema = z.object({
162
+ id: z.string(),
163
+ serverId: z.string(),
164
+ });
165
+ export const memberAddEventSchema = z.object({
166
+ serverId: z.string(),
167
+ user: authorSchema,
168
+ });
169
+ export const memberRemoveEventSchema = z.object({
170
+ serverId: z.string(),
171
+ userId: z.string(),
172
+ });
173
+ export const friendRequestEventSchema = z.object({
174
+ userId: z.string(),
175
+ username: z.string().nullable(),
176
+ displayName: z.string().nullable(),
177
+ avatarUrl: z.string().nullable(),
178
+ status: z.string(),
179
+ });
180
+ export const friendAcceptEventSchema = z.object({
181
+ userId: z.string(),
182
+ username: z.string().nullable(),
183
+ displayName: z.string().nullable(),
184
+ avatarUrl: z.string().nullable(),
185
+ status: z.string(),
186
+ });
187
+ export const friendRemoveEventSchema = z.object({
188
+ userId: z.string(),
189
+ });
190
+ export const dmChannelCreateEventSchema = z.object({
191
+ id: z.string(),
192
+ otherUser: userProfileSchema,
193
+ });
194
+ export const fileShareEventSchema = z.object({
195
+ senderId: z.string(),
196
+ fileReceiptId: z.string(),
197
+ channelId: z.string(),
198
+ fileName: z.string(),
199
+ fileSize: z.number(),
200
+ contentType: z.string(),
201
+ magnetUri: z.string(),
202
+ infoHash: z.string(),
203
+ });
204
+ export const fileAvailabilityEventSchema = z.object({
205
+ fileReceiptId: z.string(),
206
+ channelId: z.string(),
207
+ userId: z.string(),
208
+ available: z.boolean(),
209
+ });
210
+ export const signalingEventSchema = z.object({
211
+ fromUserId: z.string().min(1),
212
+ channelId: z.string().min(1),
213
+ data: z.unknown(),
214
+ });
215
+ export const errorEventSchema = z.object({
216
+ code: z.string(),
217
+ message: z.string(),
218
+ });
219
+ // ── Presence ──────────────────────────────────────────────────────────────────
220
+ /** Client → Server: user sets their own status (no "offline" — server controls that). */
221
+ export const presenceUpdateSchema = z.object({
222
+ status: z.enum(["online", "idle"]),
223
+ });
224
+ /** Server → Client: broadcast when any user's presence changes. */
225
+ export const presenceUpdateEventSchema = z.object({
226
+ userId: z.string(),
227
+ status: z.enum(["online", "idle", "offline"]),
228
+ });
229
+ // ── File Share Session Schemas ──────────────────────────────────────────────
230
+ /** Branded session ID — reused across all file-session event schemas. */
231
+ export const sessionIdSchema = z.string().min(1).max(36).brand();
232
+ /** Client → Server: create a share session */
233
+ export const fileSessionCreateRequestSchema = z.object({
234
+ sessionId: sessionIdSchema,
235
+ fileName: z.string().min(1).max(MAX_FILE_NAME_LENGTH),
236
+ fileSize: z.number().int().positive().max(MAX_FILE_SIZE_BYTES),
237
+ contentType: z.string().min(1).max(MAX_CONTENT_TYPE_LENGTH),
238
+ magnetUri: z.string().min(1).max(MAX_MAGNET_URI_LENGTH).startsWith("magnet:"),
239
+ infoHash: z.string().min(1).max(MAX_INFO_HASH_LENGTH),
240
+ invitees: z.array(z.string().min(1)).min(1).max(50),
241
+ });
242
+ /** Client → Server: join a session */
243
+ export const fileSessionJoinRequestSchema = z.object({
244
+ sessionId: sessionIdSchema,
245
+ });
246
+ /** Client → Server: report download progress */
247
+ export const fileSessionProgressRequestSchema = z.object({
248
+ sessionId: sessionIdSchema,
249
+ progress: z.number().min(0).max(1),
250
+ speed: z.number().nonnegative(),
251
+ });
252
+ /** Client → Server: report download complete */
253
+ export const fileSessionCompleteRequestSchema = z.object({
254
+ sessionId: sessionIdSchema,
255
+ });
256
+ /** Client → Server: close session */
257
+ export const fileSessionCloseRequestSchema = z.object({
258
+ sessionId: sessionIdSchema,
259
+ });
260
+ /** Client → Server: leave session */
261
+ export const fileSessionLeaveRequestSchema = z.object({
262
+ sessionId: sessionIdSchema,
263
+ });
264
+ /** Server → Client: session invite */
265
+ export const fileSessionInviteEventSchema = z.object({
266
+ sessionId: sessionIdSchema,
267
+ senderId: z.string(),
268
+ senderUsername: z.string(),
269
+ senderDisplayName: z.string().nullable(),
270
+ senderAvatarUrl: z.string().nullable(),
271
+ fileName: z.string(),
272
+ fileSize: z.number(),
273
+ contentType: z.string(),
274
+ });
275
+ /** Server → Client: magnetUri for the joining recipient */
276
+ export const fileSessionJoinAcceptEventSchema = z.object({
277
+ sessionId: sessionIdSchema,
278
+ magnetUri: z.string(),
279
+ });
280
+ /** Server → Client: a user joined the session */
281
+ export const fileSessionJoinedEventSchema = z.object({
282
+ sessionId: sessionIdSchema,
283
+ userId: z.string(),
284
+ username: z.string(),
285
+ displayName: z.string().nullable(),
286
+ avatarUrl: z.string().nullable(),
287
+ });
288
+ /** Server → Client: progress update for a participant */
289
+ export const fileSessionProgressEventSchema = z.object({
290
+ sessionId: sessionIdSchema,
291
+ userId: z.string(),
292
+ progress: z.number(),
293
+ speed: z.number(),
294
+ });
295
+ /** Server → Client: participant completed download */
296
+ export const fileSessionCompleteEventSchema = z.object({
297
+ sessionId: sessionIdSchema,
298
+ userId: z.string(),
299
+ });
300
+ /** Server → Client: session closed */
301
+ export const fileSessionCloseEventSchema = z.object({
302
+ sessionId: sessionIdSchema,
303
+ });
304
+ /** Server → Client: participant left the session */
305
+ export const fileSessionLeaveEventSchema = z.object({
306
+ sessionId: sessionIdSchema,
307
+ userId: z.string(),
308
+ });
309
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import type { UserId, ChannelId, FileReceiptId } from "./branded.js";
2
+ export interface WebRtcSignalPayload {
3
+ targetUserId: UserId;
4
+ channelId: ChannelId;
5
+ /** SDP offer/answer or ICE candidate — opaque to server */
6
+ data: unknown;
7
+ }
8
+ /** What the client sends when sharing a file */
9
+ export interface FileShareRequest {
10
+ channelId: ChannelId;
11
+ fileName: string;
12
+ fileSize: number;
13
+ contentType: string;
14
+ magnetUri: string;
15
+ infoHash: string;
16
+ }
17
+ /** What the server broadcasts to channel members */
18
+ export interface FileShareBroadcast {
19
+ senderId: UserId;
20
+ fileReceiptId: FileReceiptId;
21
+ channelId: ChannelId;
22
+ fileName: string;
23
+ fileSize: number;
24
+ contentType: string;
25
+ magnetUri: string;
26
+ infoHash: string;
27
+ }
28
+ export interface FileAvailabilityPayload {
29
+ fileReceiptId: FileReceiptId;
30
+ channelId: ChannelId;
31
+ available: boolean;
32
+ }
33
+ /** Sender -> Server: create a share session */
34
+ export interface FileSessionCreatePayload {
35
+ sessionId: string;
36
+ fileName: string;
37
+ fileSize: number;
38
+ contentType: string;
39
+ magnetUri: string;
40
+ infoHash: string;
41
+ invitees: UserId[];
42
+ }
43
+ /** Server -> Recipients: invitation to a share session */
44
+ export interface FileSessionInvitePayload {
45
+ sessionId: string;
46
+ senderId: UserId;
47
+ senderUsername: string;
48
+ senderDisplayName: string | null;
49
+ senderAvatarUrl: string | null;
50
+ fileName: string;
51
+ fileSize: number;
52
+ contentType: string;
53
+ }
54
+ /** Recipient -> Server: joining a session */
55
+ export interface FileSessionJoinPayload {
56
+ sessionId: string;
57
+ }
58
+ /** Server -> Recipient: magnetUri to start downloading */
59
+ export interface FileSessionJoinAcceptPayload {
60
+ sessionId: string;
61
+ magnetUri: string;
62
+ }
63
+ /** Server -> Sender: a user joined the session */
64
+ export interface FileSessionJoinedPayload {
65
+ sessionId: string;
66
+ userId: UserId;
67
+ username: string;
68
+ displayName: string | null;
69
+ avatarUrl: string | null;
70
+ }
71
+ /** Recipient -> Server -> Sender: download progress */
72
+ export interface FileSessionProgressPayload {
73
+ sessionId: string;
74
+ userId: UserId;
75
+ progress: number;
76
+ speed: number;
77
+ }
78
+ /** Recipient -> Server -> Sender: download complete */
79
+ export interface FileSessionCompletePayload {
80
+ sessionId: string;
81
+ userId: UserId;
82
+ }
83
+ /** Sender -> Server -> All: session ended */
84
+ export interface FileSessionClosePayload {
85
+ sessionId: string;
86
+ }
87
+ /** Recipient -> Server -> Sender: user left the session */
88
+ export interface FileSessionLeavePayload {
89
+ sessionId: string;
90
+ userId: UserId;
91
+ }
92
+ //# sourceMappingURL=signaling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signaling.d.ts","sourceRoot":"","sources":["../src/signaling.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,2DAA2D;IAC3D,IAAI,EAAE,OAAO,CAAC;CACf;AAED,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB;AAID,+CAA+C;AAC/C,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,0DAA0D;AAC1D,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,0DAA0D;AAC1D,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,uDAAuD;AACvD,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uDAAuD;AACvD,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,6CAA6C;AAC7C,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2DAA2D;AAC3D,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=signaling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signaling.js","sourceRoot":"","sources":["../src/signaling.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@uncorded/protocol",
3
+ "version": "0.1.0",
4
+ "keywords": [
5
+ "messagepack",
6
+ "plugin",
7
+ "protocol",
8
+ "sdk",
9
+ "uncorded"
10
+ ],
11
+ "license": "MIT",
12
+ "author": "UnCorded",
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "https://github.com/ItzDevoo/UnCorded",
16
+ "directory": "packages/protocol"
17
+ },
18
+ "files": [
19
+ "dist",
20
+ "README.md"
21
+ ],
22
+ "type": "module",
23
+ "main": "./dist/index.js",
24
+ "types": "./dist/index.d.ts",
25
+ "exports": {
26
+ ".": {
27
+ "types": "./dist/index.d.ts",
28
+ "import": "./dist/index.js"
29
+ }
30
+ },
31
+ "scripts": {
32
+ "build": "tsc",
33
+ "typecheck": "tsc --noEmit",
34
+ "test": "vitest run"
35
+ },
36
+ "dependencies": {
37
+ "@msgpack/msgpack": "^3",
38
+ "@uncorded/shared": "^0.1.0",
39
+ "zod": "^3"
40
+ },
41
+ "devDependencies": {
42
+ "vitest": "^4.0.18"
43
+ }
44
+ }