@zerotal/broadcasting 1.7.2 → 1.7.4

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.
Files changed (2) hide show
  1. package/api-surface.md +20 -12
  2. package/package.json +2 -2
package/api-surface.md CHANGED
@@ -16,7 +16,7 @@ class AnonymousBroadcast = {
16
16
 
17
17
  class Broadcast = {
18
18
  new (): Broadcast
19
- static channel: (pattern: string, callback: ChannelCallback) => void
19
+ static channel: <User = unknown>(pattern: string, callback: ChannelCallback<User>) => void
20
20
  static channels: () => { pattern: string; paramNames: string[];}[]
21
21
  static fake: () => BroadcastFake
22
22
  static getMembers: (channel: string) => PresenceMember[]
@@ -109,7 +109,7 @@ class ChannelRegistry = {
109
109
  all: () => { pattern: string; paramNames: string[];}[]
110
110
  authorize: (channelName: string, user: unknown) => Promise<AuthorizeResult>
111
111
  clear: () => void
112
- register: (pattern: string, callback: ChannelCallback) => void
112
+ register: <User = unknown>(pattern: string, callback: ChannelCallback<User>) => void
113
113
  }
114
114
 
115
115
  class MissingChannelParameterError = {
@@ -155,9 +155,9 @@ class RedisBroadcastDriver = {
155
155
  boot: () => Promise<void>
156
156
  connectionCount: () => number
157
157
  getMembers: (channel: string) => PresenceMember[]
158
- handleClose: (ws: ServerWebSocket<WsConnectionData>) => void
159
- handleMessage: (ws: ServerWebSocket<WsConnectionData>, raw: string | Uint8Array) => Promise<void>
160
- handleOpen: (ws: ServerWebSocket<WsConnectionData>) => void
158
+ handleClose: (ws: Bun.ServerWebSocket<WsConnectionData>) => void
159
+ handleMessage: (ws: Bun.ServerWebSocket<WsConnectionData>, raw: string | Uint8Array) => Promise<void>
160
+ handleOpen: (ws: Bun.ServerWebSocket<WsConnectionData>) => void
161
161
  send: (event: BroadcastEvent, opts?: { exceptSocketId?: string;}) => void
162
162
  setAuthSecret: (secret: string) => void
163
163
  signAuth: (socketId: string, channel: string, channelData?: string) => string
@@ -167,7 +167,7 @@ class RedisBroadcastDriver = {
167
167
  to: (channel: string, event: string, data?: unknown, opts?: { exceptSocketId?: string;}) => void
168
168
  upgradeData: (req: Request) => Record<string, unknown>
169
169
  verifyAuth: (socketId: string, channel: string, auth: string, channelData?: string) => boolean
170
- wsHandlers: { open: (ws: ServerWebSocket<WsConnectionData>) => void; message: (ws: ServerWebSocket<WsConnectionData>, msg: string | Uint8Array) => undefined; close: (ws: ServerWebSocket<WsConnectionData>) => void;}
170
+ wsHandlers: { open: (ws: Bun.ServerWebSocket<WsConnectionData>) => void; message: (ws: Bun.ServerWebSocket<WsConnectionData>, msg: string | Uint8Array) => undefined; close: (ws: Bun.ServerWebSocket<WsConnectionData>) => void;}
171
171
  }
172
172
 
173
173
  class TypedBroadcastManager = {
@@ -176,9 +176,9 @@ class TypedBroadcastManager = {
176
176
  authorizeWith: (fn: ChannelAuthFn) => void
177
177
  connectionCount: () => number
178
178
  getMembers: (channel: string) => PresenceMember[]
179
- handleClose: (ws: ServerWebSocket<WsConnectionData>) => void
180
- handleMessage: (ws: ServerWebSocket<WsConnectionData>, raw: string | Uint8Array) => Promise<void>
181
- handleOpen: (ws: ServerWebSocket<WsConnectionData>) => void
179
+ handleClose: (ws: Bun.ServerWebSocket<WsConnectionData>) => void
180
+ handleMessage: (ws: Bun.ServerWebSocket<WsConnectionData>, raw: string | Uint8Array) => Promise<void>
181
+ handleOpen: (ws: Bun.ServerWebSocket<WsConnectionData>) => void
182
182
  send: (event: TypedBroadcastEvent<Channels, keyof Channels & string> | BroadcastEvent) => void
183
183
  setAuthSecret: (secret: string) => void
184
184
  signAuth: (socketId: string, channel: string, channelData?: string) => string
@@ -188,7 +188,7 @@ class TypedBroadcastManager = {
188
188
  toChannel: <Pattern extends ParameterizedChannels<Channels>, Ev extends EventsOf<Channels, Pattern>>(pattern: Pattern, params: ChannelParamRecord<Pattern>, event: Ev, data: PayloadOf<Channels, Pattern, Ev>) => void
189
189
  upgradeData: (req: Request) => Record<string, unknown>
190
190
  verifyAuth: (socketId: string, channel: string, auth: string, channelData?: string) => boolean
191
- wsHandlers: { open: (ws: ServerWebSocket<WsConnectionData>) => void; message: (ws: ServerWebSocket<WsConnectionData>, msg: string | Uint8Array) => undefined; close: (ws: ServerWebSocket<WsConnectionData>) => void;}
191
+ wsHandlers: { open: (ws: Bun.ServerWebSocket<WsConnectionData>) => void; message: (ws: Bun.ServerWebSocket<WsConnectionData>, msg: string | Uint8Array) => undefined; close: (ws: Bun.ServerWebSocket<WsConnectionData>) => void;}
192
192
  }
193
193
 
194
194
  const channelRegistry = ChannelRegistry
@@ -211,6 +211,14 @@ function presenceChannel = (name: string) => string
211
211
 
212
212
  function privateChannel = (name: string) => string
213
213
 
214
+ interface BroadcastConfigShape = {
215
+ channels?: string
216
+ driver: 'null' | 'ws' | 'redis' | 'pusher'
217
+ path: string
218
+ pusher?: { appKey: string; appSecret: string;}
219
+ redis?: { url: string;}
220
+ }
221
+
214
222
  interface BroadcastEvent = {
215
223
  broadcastAs?: () => string
216
224
  broadcastOn: () => string | string[]
@@ -258,13 +266,13 @@ interface WsConnectionData = {
258
266
  userId?: string | number
259
267
  }
260
268
 
261
- type AuthorizeResult = { matched: false;} | { matched: true; result: boolean | PresenceMemberData | null | undefined;}
269
+ type AuthorizeResult = { matched: false } | { matched: true; result: boolean | PresenceMemberData | null | undefined }
262
270
 
263
271
  type BroadcastChannelMap = { [x: string]: Record<string, object>;}
264
272
 
265
273
  type ChannelAuthFn = (channel: string, ws: ServerWebSocket<WsConnectionData>) => boolean | Promise<boolean>
266
274
 
267
- type ChannelCallback = (user: unknown, ...params: string[]) => boolean | PresenceMemberData | null | undefined | Promise<boolean | PresenceMemberData | null | undefined>
275
+ type ChannelCallback = (user: User, ...params: string[]) => boolean | PresenceMemberData | null | undefined | Promise<boolean | PresenceMemberData | null | undefined>
268
276
 
269
277
  type ChannelParamRecord = [ChannelParams<Pattern>] extends [never] ? undefined : { [K in ChannelParams<Pattern>]: string | number; }
270
278
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerotal/broadcasting",
3
- "version": "1.7.2",
3
+ "version": "1.7.4",
4
4
  "license": "MIT",
5
5
  "maturity": "stable",
6
6
  "private": false,
@@ -30,7 +30,7 @@
30
30
  "typecheck": "tsc --noEmit"
31
31
  },
32
32
  "dependencies": {
33
- "@zerotal/core": "1.7.2"
33
+ "@zerotal/core": "1.7.4"
34
34
  },
35
35
  "devDependencies": {
36
36
  "typescript": "^5.8.0"