@fluojs/socket.io 1.0.0-beta.4 → 1.0.1

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/dist/adapter.d.ts CHANGED
@@ -83,11 +83,13 @@ export declare class SocketIoLifecycleService implements OnApplicationBootstrap,
83
83
  private createBunSocketIoBinding;
84
84
  private tryResolvePathname;
85
85
  private matchesSocketIoEnginePath;
86
+ private ensureBunRealtimeBindingForRawServerAccess;
86
87
  private assertNoServerBackedGatewayOptIn;
87
88
  private prepareNamespaceAttachments;
88
89
  private resolveNamespace;
89
90
  private resolveContextNamespace;
90
91
  private resolveRequiredNamespace;
92
+ private resolveRoomOperationTarget;
91
93
  private resolveSocket;
92
94
  private bindNamespaceHandlers;
93
95
  private runConnectionGuard;
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
package/dist/adapter.js CHANGED
@@ -212,6 +212,7 @@ class SocketIoLifecycleService {
212
212
  }
213
213
  const descriptors = this.discoverGatewayDescriptors();
214
214
  if (descriptors.length === 0) {
215
+ this.ensureBunRealtimeBindingForRawServerAccess();
215
216
  return;
216
217
  }
217
218
  this.assertNoServerBackedGatewayOptIn(descriptors);
@@ -246,12 +247,15 @@ class SocketIoLifecycleService {
246
247
  * @param namespacePath Optional namespace path required when the helper runs outside gateway handler context.
247
248
  */
248
249
  joinRoom(socketId, room, namespacePath) {
249
- const socket = this.resolveSocket(socketId);
250
+ const {
251
+ namespace,
252
+ socket
253
+ } = this.resolveRoomOperationTarget(socketId, namespacePath);
250
254
  if (socket) {
251
255
  void socket.join(room);
252
256
  return;
253
257
  }
254
- this.resolveRequiredNamespace(namespacePath).in(socketId).socketsJoin(room);
258
+ namespace.in(socketId).socketsJoin(room);
255
259
  }
256
260
 
257
261
  /**
@@ -262,12 +266,15 @@ class SocketIoLifecycleService {
262
266
  * @param namespacePath Optional namespace path required when the helper runs outside gateway handler context.
263
267
  */
264
268
  leaveRoom(socketId, room, namespacePath) {
265
- const socket = this.resolveSocket(socketId);
269
+ const {
270
+ namespace,
271
+ socket
272
+ } = this.resolveRoomOperationTarget(socketId, namespacePath);
266
273
  if (socket) {
267
274
  void socket.leave(room);
268
275
  return;
269
276
  }
270
- this.resolveRequiredNamespace(namespacePath).in(socketId).socketsLeave(room);
277
+ namespace.in(socketId).socketsLeave(room);
271
278
  }
272
279
 
273
280
  /**
@@ -367,6 +374,12 @@ class SocketIoLifecycleService {
367
374
  matchesSocketIoEnginePath(pathname) {
368
375
  return pathname === '/socket.io' || pathname === DEFAULT_SOCKETIO_ENGINE_PATH;
369
376
  }
377
+ ensureBunRealtimeBindingForRawServerAccess() {
378
+ if (!hasBunRealtimeBindingHost(this.adapter)) {
379
+ return;
380
+ }
381
+ this.getServer();
382
+ }
370
383
  assertNoServerBackedGatewayOptIn(descriptors) {
371
384
  const runtime = resolveSocketIoBootstrapRuntime(this.adapter);
372
385
  if (runtime.kind !== 'bun') {
@@ -411,6 +424,25 @@ class SocketIoLifecycleService {
411
424
  }
412
425
  return namespace;
413
426
  }
427
+ resolveRoomOperationTarget(socketId, namespacePath) {
428
+ const namespace = namespacePath ? this.resolveRequiredNamespace(namespacePath) : this.resolveContextNamespace();
429
+ if (namespace) {
430
+ return {
431
+ namespace,
432
+ socket: namespace.sockets.get(socketId)
433
+ };
434
+ }
435
+ const socket = this.resolveSocket(socketId);
436
+ if (socket) {
437
+ return {
438
+ namespace: socket.nsp,
439
+ socket
440
+ };
441
+ }
442
+ return {
443
+ namespace: this.resolveRequiredNamespace(namespacePath)
444
+ };
445
+ }
414
446
  resolveSocket(socketId) {
415
447
  const registered = this.socketRegistry.get(socketId);
416
448
  if (registered) {
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "realtime",
10
10
  "platform"
11
11
  ],
12
- "version": "1.0.0-beta.4",
12
+ "version": "1.0.1",
13
13
  "private": false,
14
14
  "license": "MIT",
15
15
  "repository": {
@@ -37,11 +37,11 @@
37
37
  ],
38
38
  "dependencies": {
39
39
  "@socket.io/bun-engine": "^0.1.0",
40
- "@fluojs/di": "^1.0.0-beta.7",
41
- "@fluojs/http": "^1.0.0-beta.10",
42
- "@fluojs/runtime": "^1.0.0-beta.12",
43
- "@fluojs/websockets": "^1.0.0-beta.6",
44
- "@fluojs/core": "^1.0.0-beta.5"
40
+ "@fluojs/core": "^1.0.1",
41
+ "@fluojs/di": "^1.0.1",
42
+ "@fluojs/http": "^1.0.0",
43
+ "@fluojs/runtime": "^1.0.1",
44
+ "@fluojs/websockets": "^1.0.1"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "socket.io": "^4.0.0"
@@ -50,9 +50,9 @@
50
50
  "socket.io": "^4.8.1",
51
51
  "socket.io-client": "^4.8.1",
52
52
  "vitest": "^3.2.4",
53
- "@fluojs/platform-fastify": "^1.0.0-beta.8",
54
- "@fluojs/platform-nodejs": "^1.0.0-beta.5",
55
- "@fluojs/platform-express": "^1.0.0-beta.7"
53
+ "@fluojs/platform-express": "^1.0.1",
54
+ "@fluojs/platform-fastify": "^1.0.1",
55
+ "@fluojs/platform-nodejs": "^1.0.1"
56
56
  },
57
57
  "scripts": {
58
58
  "prebuild": "node ../../tooling/scripts/clean-dist.mjs",