@softfault/blacketjs 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,121 @@
1
+ import type { BlacketBazaarPurchaseEvent, BlacketClanAttackEvent, BlacketId, BlacketFriendRemovedEvent, BlacketFriendRequestEvent, BlacketMessageCreateEvent, BlacketMessageEvent, BlacketNotification, BlacketTradeBlooksEvent, BlacketTradeCompleteEvent, BlacketTradeRequestEvent, BlacketTradeStateEvent, BlacketTradeTokensEvent } from "./types";
2
+ /**
3
+ * raw socket message from blacket
4
+ */
5
+ export type BlacketSocketMessage<T = unknown> = {
6
+ event: string;
7
+ data: T;
8
+ [key: string]: unknown;
9
+ };
10
+ /**
11
+ * socket listener callback
12
+ */
13
+ export type BlacketSocketCallback<T = unknown> = (message: BlacketSocketMessage<T>) => void;
14
+ /**
15
+ * known blacket socket events and their payloads
16
+ */
17
+ export type BlacketSocketEvents = {
18
+ heartbeat: unknown;
19
+ notification: BlacketNotification;
20
+ "destroy-session": unknown;
21
+ "bazaar-purchase": BlacketBazaarPurchaseEvent;
22
+ "trading-requests-received": BlacketTradeRequestEvent;
23
+ "trading-requests-accepted": BlacketTradeRequestEvent;
24
+ "trading-requests-declined": BlacketTradeRequestEvent;
25
+ "trading-requests-cancelled": BlacketTradeRequestEvent;
26
+ "trading-ongoing-tokens": BlacketTradeTokensEvent;
27
+ "trading-ongoing-blooks": BlacketTradeBlooksEvent;
28
+ "trading-ongoing-accept": BlacketTradeStateEvent;
29
+ "trading-ongoing-cancel": BlacketTradeStateEvent;
30
+ "trading-ongoing-decline": BlacketTradeStateEvent;
31
+ "trading-ongoing-complete": BlacketTradeCompleteEvent;
32
+ "friends-requests-received": BlacketFriendRequestEvent;
33
+ "friends-requests-accepted": BlacketFriendRequestEvent;
34
+ "friends-requests-declined": BlacketFriendRequestEvent;
35
+ "friends-requests-cancelled": BlacketFriendRequestEvent;
36
+ "friends-relationships-removed": BlacketFriendRemovedEvent;
37
+ "clans-attacks-started": BlacketClanAttackEvent;
38
+ "clans-attacks-attacked": BlacketClanAttackEvent;
39
+ "clans-attacks-attempted": BlacketClanAttackEvent;
40
+ "clans-attacks-rob": BlacketClanAttackEvent;
41
+ "messages-create": BlacketMessageCreateEvent;
42
+ "messages-edit": BlacketMessageEvent;
43
+ "messages-delete": BlacketMessageEvent;
44
+ };
45
+ /**
46
+ * known socket events the sdk can emit
47
+ */
48
+ export type BlacketSocketEmitEvents = {
49
+ heartbeat: undefined;
50
+ "trading-ongoing-blooks": Record<string, number | string>;
51
+ "trading-ongoing-tokens": number | string;
52
+ "trading-ongoing-accept": undefined;
53
+ "trading-ongoing-cancel": undefined;
54
+ "trading-ongoing-decline": undefined;
55
+ "clans-attacks-rob": undefined;
56
+ "messages-create": {
57
+ room: BlacketId;
58
+ content: string;
59
+ };
60
+ };
61
+ /**
62
+ * socket connection options
63
+ */
64
+ export type BlacketSocketOptions = {
65
+ /**
66
+ * extra headers passed to bun's websocket constructor
67
+ */
68
+ headers?: HeadersInit;
69
+ /**
70
+ * reconnect after unexpected closes. defaults to true
71
+ */
72
+ reconnect?: boolean;
73
+ /**
74
+ * custom websocket implementation for tests or non-bun runtimes
75
+ */
76
+ WebSocket?: typeof WebSocket;
77
+ };
78
+ /**
79
+ * small evented wrapper around blacket's websocket. cursed, but contained
80
+ */
81
+ export declare class BlacketSocket {
82
+ readonly url: string;
83
+ private readonly listeners;
84
+ private readonly headers?;
85
+ private readonly reconnect;
86
+ private readonly WebSocketImpl;
87
+ private socket?;
88
+ private manuallyClosed;
89
+ constructor(url: string, options?: BlacketSocketOptions);
90
+ /**
91
+ * opens the websocket connection
92
+ */
93
+ connect(): this;
94
+ /**
95
+ * closes the websocket and disables automatic reconnect for this close
96
+ */
97
+ close(code?: number, reason?: string): void;
98
+ /**
99
+ * resolves once the current websocket connection is open
100
+ */
101
+ waitUntilOpen(): Promise<void>;
102
+ /**
103
+ * registers a listener for a known or custom socket event
104
+ */
105
+ on<K extends keyof BlacketSocketEvents>(event: K, callback: BlacketSocketCallback<BlacketSocketEvents[K]>): () => void;
106
+ on<T = unknown>(event: string, callback: BlacketSocketCallback<T>): () => void;
107
+ /**
108
+ * removes a socket listener
109
+ */
110
+ off<K extends keyof BlacketSocketEvents>(event: K, callback: BlacketSocketCallback<BlacketSocketEvents[K]>): void;
111
+ off<T = unknown>(event: string, callback: BlacketSocketCallback<T>): void;
112
+ /**
113
+ * emits a known or custom socket event
114
+ */
115
+ emit<K extends keyof BlacketSocketEmitEvents>(event: K, ...args: BlacketSocketEmitEvents[K] extends undefined ? [] | [undefined] : [BlacketSocketEmitEvents[K]]): void;
116
+ emit(event: string, data?: unknown): void;
117
+ private handleMessage;
118
+ private parseMessage;
119
+ private createWebSocket;
120
+ }
121
+ //# sourceMappingURL=socket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,420 @@
1
+ /**
2
+ * a json primitive value
3
+ */
4
+ export type BlacketPrimitive = string | number | boolean | null;
5
+ /**
6
+ * json-safe data accepted by the http helper
7
+ */
8
+ export type BlacketJson = BlacketPrimitive | BlacketJson[] | {
9
+ [key: string]: BlacketJson;
10
+ };
11
+ /**
12
+ * unknown api object with string keys
13
+ */
14
+ export type BlacketRecord = Record<string, unknown>;
15
+ /**
16
+ * ids are usually strings from the api, but route helpers also accept numbers
17
+ */
18
+ export type BlacketId = string | number;
19
+ /**
20
+ * standard api error response
21
+ */
22
+ export type BlacketErrorResponse = {
23
+ error: true;
24
+ reason?: string;
25
+ status?: number;
26
+ [key: string]: unknown;
27
+ };
28
+ /**
29
+ * standard api response wrapper
30
+ */
31
+ export type BlacketResponse<T extends BlacketRecord = BlacketRecord> = ({
32
+ error?: false;
33
+ } & T) | BlacketErrorResponse;
34
+ /**
35
+ * login/session settings stored on a user
36
+ */
37
+ export type BlacketUserSettings = {
38
+ requests?: RequestSetting;
39
+ friends?: FriendRequestSetting;
40
+ [key: string]: unknown;
41
+ };
42
+ /**
43
+ * a user's blook inventory, keyed by blook name
44
+ */
45
+ export type BlacketBlookInventory = Record<string, number>;
46
+ /**
47
+ * public user object returned by user, friend, message, trade, and clan endpoints
48
+ */
49
+ export type BlacketUser = {
50
+ id: BlacketId;
51
+ username: string;
52
+ role?: string;
53
+ color?: string;
54
+ avatar?: string;
55
+ banner?: string;
56
+ tokens?: number;
57
+ blooks?: BlacketBlookInventory;
58
+ badges?: string[];
59
+ perms?: string[];
60
+ clan?: BlacketClan | BlacketId | null;
61
+ settings?: BlacketUserSettings;
62
+ createdAt?: string | number;
63
+ updatedAt?: string | number;
64
+ [key: string]: unknown;
65
+ };
66
+ /**
67
+ * static blook metadata from the data endpoint
68
+ */
69
+ export type BlacketBlook = {
70
+ name?: string;
71
+ rarity?: string;
72
+ image?: string;
73
+ price?: number;
74
+ chance?: number;
75
+ [key: string]: unknown;
76
+ };
77
+ /**
78
+ * static rarity metadata from the data endpoint
79
+ */
80
+ export type BlacketRarity = {
81
+ name?: string;
82
+ color?: string;
83
+ animation?: string;
84
+ [key: string]: unknown;
85
+ };
86
+ /**
87
+ * static pack metadata from the data endpoint
88
+ */
89
+ export type BlacketPack = {
90
+ name?: string;
91
+ price?: number;
92
+ image?: string;
93
+ blooks?: string[];
94
+ [key: string]: unknown;
95
+ };
96
+ /**
97
+ * main static data payload
98
+ */
99
+ export type BlacketDataIndex = {
100
+ blooks?: Record<string, BlacketBlook>;
101
+ rarities?: Record<string, BlacketRarity>;
102
+ packs?: Record<string, BlacketPack>;
103
+ config?: BlacketRecord;
104
+ [key: string]: unknown;
105
+ };
106
+ /**
107
+ * static emoji list payload
108
+ */
109
+ export type BlacketEmojis = {
110
+ emojis: string[];
111
+ [key: string]: unknown;
112
+ };
113
+ /**
114
+ * current user or single user lookup response
115
+ */
116
+ export type BlacketUserResponse = BlacketResponse<{
117
+ user: BlacketUser;
118
+ }>;
119
+ /**
120
+ * multi-user lookup response
121
+ */
122
+ export type BlacketUsersResponse = BlacketResponse<{
123
+ users: BlacketUser[];
124
+ }>;
125
+ /**
126
+ * friend list response grouped by relationship state
127
+ */
128
+ export type BlacketFriendListResponse = BlacketResponse<{
129
+ friends: BlacketUser[];
130
+ sending: BlacketUser[];
131
+ receiving: BlacketUser[];
132
+ }>;
133
+ /**
134
+ * clan member object
135
+ */
136
+ export type BlacketClanMember = BlacketUser & {
137
+ rank?: string;
138
+ joinedAt?: string | number;
139
+ };
140
+ /**
141
+ * clan inventory item count map
142
+ */
143
+ export type BlacketClanInventory = Record<string, number>;
144
+ /**
145
+ * clan investment state
146
+ */
147
+ export type BlacketClanInvestment = {
148
+ level?: number;
149
+ tokens?: number;
150
+ users?: Record<string, number>;
151
+ [key: string]: unknown;
152
+ };
153
+ /**
154
+ * clan object returned by clan endpoints and events
155
+ */
156
+ export type BlacketClan = {
157
+ id: BlacketId;
158
+ name: string;
159
+ description?: string;
160
+ image?: string;
161
+ color?: string;
162
+ owner?: BlacketUser;
163
+ members?: BlacketClanMember[];
164
+ inventory?: BlacketClanInventory;
165
+ investments?: BlacketClanInvestment;
166
+ safeMode?: boolean;
167
+ requests?: boolean;
168
+ createdAt?: string | number;
169
+ updatedAt?: string | number;
170
+ [key: string]: unknown;
171
+ };
172
+ /**
173
+ * single clan response
174
+ */
175
+ export type BlacketClanResponse = BlacketResponse<{
176
+ clan: BlacketClan;
177
+ }>;
178
+ /**
179
+ * clan discovery/list response
180
+ */
181
+ export type BlacketClansResponse = BlacketResponse<{
182
+ clans: BlacketClan[];
183
+ page?: number;
184
+ pages?: number;
185
+ }>;
186
+ /**
187
+ * pending clan join request
188
+ */
189
+ export type BlacketClanRequest = {
190
+ id?: BlacketId;
191
+ user: BlacketUser;
192
+ clan?: BlacketClan;
193
+ createdAt?: string | number;
194
+ [key: string]: unknown;
195
+ };
196
+ /**
197
+ * clan join requests response
198
+ */
199
+ export type BlacketClanRequestsResponse = BlacketResponse<{
200
+ requests: BlacketClanRequest[];
201
+ }>;
202
+ /**
203
+ * clan event data
204
+ */
205
+ export type BlacketClanEvent = {
206
+ id?: BlacketId;
207
+ clan?: BlacketClan;
208
+ user?: BlacketUser;
209
+ item?: string;
210
+ tokens?: number;
211
+ startedAt?: string | number;
212
+ endsAt?: string | number;
213
+ [key: string]: unknown;
214
+ };
215
+ /**
216
+ * ongoing clan events response
217
+ */
218
+ export type BlacketClanEventsResponse = BlacketResponse<{
219
+ events: BlacketClanEvent[];
220
+ }>;
221
+ /**
222
+ * a chat room
223
+ */
224
+ export type BlacketRoom = {
225
+ id: BlacketId;
226
+ name?: string;
227
+ type?: string;
228
+ [key: string]: unknown;
229
+ };
230
+ /**
231
+ * a chat message
232
+ */
233
+ export type BlacketMessage = {
234
+ id: BlacketId;
235
+ content: string;
236
+ author?: BlacketUser;
237
+ user?: BlacketUser;
238
+ room?: BlacketRoom;
239
+ createdAt?: string | number;
240
+ updatedAt?: string | number;
241
+ [key: string]: unknown;
242
+ };
243
+ /**
244
+ * message list response
245
+ */
246
+ export type BlacketMessagesResponse = BlacketResponse<{
247
+ messages: BlacketMessage[];
248
+ room?: BlacketRoom;
249
+ }>;
250
+ /**
251
+ * single message response
252
+ */
253
+ export type BlacketMessageResponse = BlacketResponse<{
254
+ message: BlacketMessage;
255
+ }>;
256
+ /**
257
+ * user state inside an ongoing trade
258
+ */
259
+ export type BlacketTradeUserState = {
260
+ user?: BlacketUser;
261
+ tokens: number;
262
+ blooks: BlacketBlookInventory;
263
+ accepted: boolean;
264
+ [key: string]: unknown;
265
+ };
266
+ /**
267
+ * ongoing trade state, keyed by user id
268
+ */
269
+ export type BlacketTrade = {
270
+ users: Record<string, BlacketTradeUserState>;
271
+ [key: string]: unknown;
272
+ };
273
+ /**
274
+ * ongoing trade response
275
+ */
276
+ export type BlacketTradeResponse = BlacketResponse<BlacketTrade>;
277
+ /**
278
+ * rewards returned when a trade completes
279
+ */
280
+ export type BlacketTradeRewards = {
281
+ tokens: number;
282
+ blooks: BlacketBlookInventory;
283
+ [key: string]: unknown;
284
+ };
285
+ /**
286
+ * notification socket payload
287
+ */
288
+ export type BlacketNotification = {
289
+ title?: string;
290
+ message?: string;
291
+ icon?: string;
292
+ time?: number;
293
+ [key: string]: unknown;
294
+ };
295
+ /**
296
+ * bazaar purchase socket payload
297
+ */
298
+ export type BlacketBazaarPurchaseEvent = {
299
+ user?: BlacketUser;
300
+ item?: string;
301
+ blook?: string;
302
+ price?: number;
303
+ [key: string]: unknown;
304
+ };
305
+ /**
306
+ * friend request socket payload
307
+ */
308
+ export type BlacketFriendRequestEvent = {
309
+ user: BlacketUser;
310
+ [key: string]: unknown;
311
+ };
312
+ /**
313
+ * friend relationship removal socket payload
314
+ */
315
+ export type BlacketFriendRemovedEvent = {
316
+ user: BlacketUser;
317
+ [key: string]: unknown;
318
+ };
319
+ /**
320
+ * trade request socket payload
321
+ */
322
+ export type BlacketTradeRequestEvent = {
323
+ user: BlacketUser;
324
+ [key: string]: unknown;
325
+ };
326
+ /**
327
+ * ongoing trade token update socket payload
328
+ */
329
+ export type BlacketTradeTokensEvent = {
330
+ tokens: number;
331
+ user?: BlacketUser;
332
+ [key: string]: unknown;
333
+ };
334
+ /**
335
+ * ongoing trade blook update socket payload
336
+ */
337
+ export type BlacketTradeBlooksEvent = {
338
+ blooks: BlacketBlookInventory;
339
+ user?: BlacketUser;
340
+ [key: string]: unknown;
341
+ };
342
+ /**
343
+ * ongoing trade ready/cancel/decline socket payload
344
+ */
345
+ export type BlacketTradeStateEvent = {
346
+ user?: BlacketUser;
347
+ [key: string]: unknown;
348
+ };
349
+ /**
350
+ * ongoing trade completion socket payload
351
+ */
352
+ export type BlacketTradeCompleteEvent = {
353
+ rewards: BlacketTradeRewards;
354
+ [key: string]: unknown;
355
+ };
356
+ /**
357
+ * clan attack socket payload
358
+ */
359
+ export type BlacketClanAttackEvent = {
360
+ clan?: BlacketClan;
361
+ user?: BlacketUser;
362
+ tokens?: number;
363
+ [key: string]: unknown;
364
+ };
365
+ /**
366
+ * message create socket payload
367
+ */
368
+ export type BlacketMessageCreateEvent = {
369
+ message: BlacketMessage;
370
+ author: BlacketUser;
371
+ room: BlacketRoom;
372
+ [key: string]: unknown;
373
+ };
374
+ /**
375
+ * message edit/delete socket payload
376
+ */
377
+ export type BlacketMessageEvent = {
378
+ message: BlacketMessage;
379
+ author?: BlacketUser;
380
+ room?: BlacketRoom;
381
+ [key: string]: unknown;
382
+ };
383
+ /**
384
+ * bun/dom blob shape accepted by upload endpoints
385
+ */
386
+ export type BlacketUploadFile = Blob & {
387
+ name?: string;
388
+ type: string;
389
+ };
390
+ /**
391
+ * upload response containing the public url
392
+ */
393
+ export type BlacketUploadResponse = BlacketResponse<{
394
+ url: string;
395
+ }>;
396
+ /**
397
+ * trade request visibility setting
398
+ */
399
+ export type RequestSetting = "on" | "off" | "friends";
400
+ /**
401
+ * friend request visibility setting
402
+ */
403
+ export type FriendRequestSetting = "on" | "off" | "mutual";
404
+ /**
405
+ * store purchase item id
406
+ */
407
+ export type StoreItem = "plus" | "1hBooster" | "3hBooster" | "rbpaintbucket" | string;
408
+ /**
409
+ * stripe/legacy purchase response
410
+ */
411
+ export type BlacketPurchaseResponse = BlacketResponse<{
412
+ url: string;
413
+ }>;
414
+ /**
415
+ * pack opening response
416
+ */
417
+ export type BlacketPackOpenResponse = BlacketResponse<{
418
+ blook: string;
419
+ }>;
420
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@softfault/blacketjs",
3
+ "version": "0.1.0",
4
+ "description": "Small TypeScript SDK for the Blacket web API.",
5
+ "module": "./dist/index.js",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "type": "module",
9
+ "private": false,
10
+ "files": [
11
+ "dist",
12
+ "docs",
13
+ "README.md"
14
+ ],
15
+ "exports": {
16
+ ".": {
17
+ "types": "./dist/index.d.ts",
18
+ "import": "./dist/index.js",
19
+ "default": "./dist/index.js"
20
+ }
21
+ },
22
+ "scripts": {
23
+ "build": "bun build ./src/index.ts --target=node --format=esm --outdir=dist && tsc -p tsconfig.build.json",
24
+ "typecheck": "tsc -p tsconfig.json --noEmit",
25
+ "prepublishOnly": "bun run build",
26
+ "publish": "bun run build && npm publish --access public"
27
+ },
28
+ "keywords": [
29
+ "blacket",
30
+ "sdk",
31
+ "bun",
32
+ "typescript"
33
+ ],
34
+ "license": "MIT",
35
+ "publishConfig": {
36
+ "access": "public"
37
+ },
38
+ "devDependencies": {
39
+ "@types/bun": "latest",
40
+ "@types/node": "^26.1.0",
41
+ "typescript": "^5.5.0"
42
+ }
43
+ }