@fluojs/websockets 1.0.0-beta.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/LICENSE +21 -0
- package/README.ko.md +133 -0
- package/README.md +133 -0
- package/dist/bun/bun-module.d.ts +15 -0
- package/dist/bun/bun-module.d.ts.map +1 -0
- package/dist/bun/bun-module.js +27 -0
- package/dist/bun/bun-service.d.ts +63 -0
- package/dist/bun/bun-service.d.ts.map +1 -0
- package/dist/bun/bun-service.js +558 -0
- package/dist/bun/bun-types.d.ts +58 -0
- package/dist/bun/bun-types.d.ts.map +1 -0
- package/dist/bun/bun-types.js +1 -0
- package/dist/bun/bun.d.ts +4 -0
- package/dist/bun/bun.d.ts.map +1 -0
- package/dist/bun/bun.js +3 -0
- package/dist/bun.d.ts +2 -0
- package/dist/bun.d.ts.map +1 -0
- package/dist/bun.js +1 -0
- package/dist/cloudflare-workers/cloudflare-workers-module.d.ts +15 -0
- package/dist/cloudflare-workers/cloudflare-workers-module.d.ts.map +1 -0
- package/dist/cloudflare-workers/cloudflare-workers-module.js +27 -0
- package/dist/cloudflare-workers/cloudflare-workers-service.d.ts +61 -0
- package/dist/cloudflare-workers/cloudflare-workers-service.d.ts.map +1 -0
- package/dist/cloudflare-workers/cloudflare-workers-service.js +538 -0
- package/dist/cloudflare-workers/cloudflare-workers-types.d.ts +30 -0
- package/dist/cloudflare-workers/cloudflare-workers-types.d.ts.map +1 -0
- package/dist/cloudflare-workers/cloudflare-workers-types.js +1 -0
- package/dist/cloudflare-workers/cloudflare-workers.d.ts +4 -0
- package/dist/cloudflare-workers/cloudflare-workers.d.ts.map +1 -0
- package/dist/cloudflare-workers/cloudflare-workers.js +3 -0
- package/dist/cloudflare-workers.d.ts +2 -0
- package/dist/cloudflare-workers.d.ts.map +1 -0
- package/dist/cloudflare-workers.js +1 -0
- package/dist/decorators.d.ts +56 -0
- package/dist/decorators.d.ts.map +1 -0
- package/dist/decorators.js +115 -0
- package/dist/deno/deno-module.d.ts +15 -0
- package/dist/deno/deno-module.d.ts.map +1 -0
- package/dist/deno/deno-module.js +27 -0
- package/dist/deno/deno-service.d.ts +61 -0
- package/dist/deno/deno-service.d.ts.map +1 -0
- package/dist/deno/deno-service.js +533 -0
- package/dist/deno/deno-types.d.ts +25 -0
- package/dist/deno/deno-types.d.ts.map +1 -0
- package/dist/deno/deno-types.js +1 -0
- package/dist/deno/deno.d.ts +4 -0
- package/dist/deno/deno.d.ts.map +1 -0
- package/dist/deno/deno.js +3 -0
- package/dist/deno.d.ts +2 -0
- package/dist/deno.d.ts.map +1 -0
- package/dist/deno.js +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/internal/shared.d.ts +28 -0
- package/dist/internal/shared.d.ts.map +1 -0
- package/dist/internal/shared.js +188 -0
- package/dist/metadata.d.ts +13 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +81 -0
- package/dist/module.d.ts +26 -0
- package/dist/module.d.ts.map +1 -0
- package/dist/module.js +26 -0
- package/dist/node/node-module.d.ts +15 -0
- package/dist/node/node-module.d.ts.map +1 -0
- package/dist/node/node-module.js +27 -0
- package/dist/node/node-service.d.ts +129 -0
- package/dist/node/node-service.d.ts.map +1 -0
- package/dist/node/node-service.js +892 -0
- package/dist/node/node-types.d.ts +81 -0
- package/dist/node/node-types.d.ts.map +1 -0
- package/dist/node/node-types.js +1 -0
- package/dist/node/node.d.ts +4 -0
- package/dist/node/node.d.ts.map +1 -0
- package/dist/node/node.js +3 -0
- package/dist/node.d.ts +2 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +1 -0
- package/dist/options-token.internal.d.ts +7 -0
- package/dist/options-token.internal.d.ts.map +1 -0
- package/dist/options-token.internal.js +4 -0
- package/dist/service.d.ts +9 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +8 -0
- package/dist/types.d.ts +133 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/package.json +91 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { IncomingMessage } from 'node:http';
|
|
2
|
+
import type { WebSocket } from 'ws';
|
|
3
|
+
/**
|
|
4
|
+
* Strongly typed message handler signature for the Node websocket runtime.
|
|
5
|
+
*/
|
|
6
|
+
export type TypedOnMessageHandler<TEvents extends Record<string, unknown>, K extends keyof TEvents> = (payload: TEvents[K], socket: WebSocket, request: IncomingMessage) => void | Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Request and socket context passed to Node websocket gateway handlers.
|
|
9
|
+
*/
|
|
10
|
+
export interface WebSocketGatewayContext {
|
|
11
|
+
request: IncomingMessage;
|
|
12
|
+
socket: WebSocket;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Structured rejection returned by a pre-upgrade websocket guard.
|
|
16
|
+
*/
|
|
17
|
+
export interface WebSocketUpgradeRejection {
|
|
18
|
+
/** Optional plaintext response body sent with the rejection. */
|
|
19
|
+
body?: string;
|
|
20
|
+
/** Optional HTTP headers added to the rejection response. */
|
|
21
|
+
headers?: Record<string, string>;
|
|
22
|
+
/** HTTP status code returned instead of completing the websocket upgrade. */
|
|
23
|
+
status: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Runtime context passed to pre-upgrade websocket guards.
|
|
27
|
+
*/
|
|
28
|
+
export interface WebSocketUpgradeContext {
|
|
29
|
+
/** Current number of open websocket connections tracked by the lifecycle service. */
|
|
30
|
+
activeConnectionCount: number;
|
|
31
|
+
/** Normalized gateway path targeted by the upgrade request. */
|
|
32
|
+
path: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Hook that can allow or reject a websocket upgrade before the adapter accepts it.
|
|
36
|
+
*/
|
|
37
|
+
export type WebSocketUpgradeGuard = (request: IncomingMessage | Request, context: WebSocketUpgradeContext) => Promise<boolean | WebSocketUpgradeRejection | void> | boolean | WebSocketUpgradeRejection | void;
|
|
38
|
+
/**
|
|
39
|
+
* Runtime options shared by the Node websocket lifecycle service.
|
|
40
|
+
*/
|
|
41
|
+
export interface WebSocketModuleOptions {
|
|
42
|
+
/**
|
|
43
|
+
* Limits that bound connection count and inbound payload size across runtime adapters.
|
|
44
|
+
*/
|
|
45
|
+
limits?: {
|
|
46
|
+
/**
|
|
47
|
+
* Maximum number of concurrently tracked websocket connections before new upgrades are rejected.
|
|
48
|
+
*/
|
|
49
|
+
maxConnections?: number;
|
|
50
|
+
/**
|
|
51
|
+
* Maximum inbound payload size in bytes before the connection is rejected or closed.
|
|
52
|
+
*/
|
|
53
|
+
maxPayloadBytes?: number;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Upgrade-time controls that run before the adapter completes the websocket handshake.
|
|
57
|
+
*/
|
|
58
|
+
upgrade?: {
|
|
59
|
+
/**
|
|
60
|
+
* Optional guard hook that can deny anonymous or otherwise invalid upgrade requests.
|
|
61
|
+
*/
|
|
62
|
+
guard?: WebSocketUpgradeGuard;
|
|
63
|
+
};
|
|
64
|
+
backpressure?: {
|
|
65
|
+
maxBufferedAmountBytes?: number;
|
|
66
|
+
policy?: 'close' | 'drop';
|
|
67
|
+
};
|
|
68
|
+
buffer?: {
|
|
69
|
+
maxPendingMessagesPerSocket?: number;
|
|
70
|
+
overflowPolicy?: 'close' | 'drop-newest' | 'drop-oldest';
|
|
71
|
+
};
|
|
72
|
+
heartbeat?: {
|
|
73
|
+
enabled?: boolean;
|
|
74
|
+
intervalMs?: number;
|
|
75
|
+
timeoutMs?: number;
|
|
76
|
+
};
|
|
77
|
+
shutdown?: {
|
|
78
|
+
timeoutMs?: number;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=node-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-types.d.ts","sourceRoot":"","sources":["../../src/node/node-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpC;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,MAAM,OAAO,IAAI,CACpG,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,eAAe,KACrB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,SAAS,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,qFAAqF;IACrF,qBAAqB,EAAE,MAAM,CAAC;IAE9B,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,eAAe,GAAG,OAAO,EAClC,OAAO,EAAE,uBAAuB,KAE9B,OAAO,CAAC,OAAO,GAAG,yBAAyB,GAAG,IAAI,CAAC,GACnD,OAAO,GACP,yBAAyB,GACzB,IAAI,CAAC;AAET;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE;QACP;;WAEG;QACH,cAAc,CAAC,EAAE,MAAM,CAAC;QAExB;;WAEG;QACH,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EAAE;QACR;;WAEG;QACH,KAAK,CAAC,EAAE,qBAAqB,CAAC;KAC/B,CAAC;IAEF,YAAY,CAAC,EAAE;QACb,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;KAC3B,CAAC;IACF,MAAM,CAAC,EAAE;QACP,2BAA2B,CAAC,EAAE,MAAM,CAAC;QACrC,cAAc,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,aAAa,CAAC;KAC1D,CAAC;IACF,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/node/node.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC"}
|
package/dist/node.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
|
package/dist/node.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './node/node.js';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Token } from '@fluojs/core';
|
|
2
|
+
import type { WebSocketModuleOptions } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Internal injection token for the WebSocket module options.
|
|
5
|
+
*/
|
|
6
|
+
export declare const WEBSOCKET_OPTIONS_INTERNAL: Token<WebSocketModuleOptions>;
|
|
7
|
+
//# sourceMappingURL=options-token.internal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options-token.internal.d.ts","sourceRoot":"","sources":["../src/options-token.internal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,sBAAsB,CAAwC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Root export alias for the default Node.js-backed websocket lifecycle service.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Import this alias from `@fluojs/websockets` when you need the shared lifecycle service token without reaching
|
|
6
|
+
* into runtime-specific subpaths.
|
|
7
|
+
*/
|
|
8
|
+
export { NodeWebSocketGatewayLifecycleService as WebSocketGatewayLifecycleService } from './node/node-service.js';
|
|
9
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,oCAAoC,IAAI,gCAAgC,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/service.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Root export alias for the default Node.js-backed websocket lifecycle service.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* Import this alias from `@fluojs/websockets` when you need the shared lifecycle service token without reaching
|
|
6
|
+
* into runtime-specific subpaths.
|
|
7
|
+
*/
|
|
8
|
+
export { NodeWebSocketGatewayLifecycleService as WebSocketGatewayLifecycleService } from './node/node-service.js';
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { MetadataPropertyKey, Token } from '@fluojs/core';
|
|
2
|
+
import type { TypedOnMessageHandler as NodeTypedOnMessageHandler, WebSocketGatewayContext as NodeWebSocketGatewayContext, WebSocketModuleOptions as NodeWebSocketModuleOptions, WebSocketUpgradeContext as NodeWebSocketUpgradeContext, WebSocketUpgradeGuard as NodeWebSocketUpgradeGuard, WebSocketUpgradeRejection as NodeWebSocketUpgradeRejection } from './node/node-types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Event-name-to-payload map used to type `@OnMessage(...)` handlers.
|
|
5
|
+
*/
|
|
6
|
+
export type WebSocketEventMap = Record<string, unknown>;
|
|
7
|
+
/**
|
|
8
|
+
* Strongly typed message handler signature resolved from one {@link WebSocketEventMap} entry.
|
|
9
|
+
*/
|
|
10
|
+
export type TypedOnMessageHandler<TEvents extends WebSocketEventMap, K extends keyof TEvents> = NodeTypedOnMessageHandler<TEvents, K>;
|
|
11
|
+
/**
|
|
12
|
+
* Dedicated listener configuration for runtimes that can host a standalone WebSocket server.
|
|
13
|
+
*/
|
|
14
|
+
export interface WebSocketGatewayServerBackedOptions {
|
|
15
|
+
/** TCP port used by the dedicated listener. */
|
|
16
|
+
port: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Options accepted by {@link WebSocketGateway}.
|
|
20
|
+
*/
|
|
21
|
+
export interface WebSocketGatewayOptions {
|
|
22
|
+
/** Request path used to match upgrade traffic for this gateway. */
|
|
23
|
+
path?: string;
|
|
24
|
+
/** Optional dedicated listener settings for server-backed Node.js adapters. */
|
|
25
|
+
serverBacked?: WebSocketGatewayServerBackedOptions;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Normalized gateway metadata stored on one decorated gateway class.
|
|
29
|
+
*/
|
|
30
|
+
export interface WebSocketGatewayMetadata {
|
|
31
|
+
/** Normalized path captured from the decorator options. */
|
|
32
|
+
path: string;
|
|
33
|
+
/** Dedicated listener settings when the gateway opts into server-backed hosting. */
|
|
34
|
+
serverBacked?: WebSocketGatewayServerBackedOptions;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Lifecycle categories available to WebSocket gateway handlers.
|
|
38
|
+
*/
|
|
39
|
+
export type WebSocketGatewayHandlerType = 'connect' | 'disconnect' | 'message';
|
|
40
|
+
/**
|
|
41
|
+
* Metadata stored for one decorated gateway method.
|
|
42
|
+
*/
|
|
43
|
+
export interface WebSocketGatewayHandlerMetadata {
|
|
44
|
+
/** Optional inbound event name associated with a message handler. */
|
|
45
|
+
event?: string;
|
|
46
|
+
/** Handler lifecycle category recorded for the decorated method. */
|
|
47
|
+
type: WebSocketGatewayHandlerType;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Normalized descriptor for one discovered gateway handler.
|
|
51
|
+
*/
|
|
52
|
+
export interface WebSocketGatewayHandlerDescriptor {
|
|
53
|
+
/** Optional inbound event name associated with this handler. */
|
|
54
|
+
event?: string;
|
|
55
|
+
/** Metadata property key used to resolve the method on the gateway instance. */
|
|
56
|
+
methodKey: MetadataPropertyKey;
|
|
57
|
+
/** Human-readable method name used in diagnostics and discovery output. */
|
|
58
|
+
methodName: string;
|
|
59
|
+
/** Handler lifecycle category. */
|
|
60
|
+
type: WebSocketGatewayHandlerType;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Runtime descriptor for one discovered gateway class.
|
|
64
|
+
*/
|
|
65
|
+
export interface WebSocketGatewayDescriptor {
|
|
66
|
+
/** Ordered handler descriptors discovered on the gateway. */
|
|
67
|
+
handlers: WebSocketGatewayHandlerDescriptor[];
|
|
68
|
+
/** Module name that contributed this gateway. */
|
|
69
|
+
moduleName: string;
|
|
70
|
+
/** Normalized upgrade path handled by the gateway. */
|
|
71
|
+
path: string;
|
|
72
|
+
/** Dedicated listener settings when the gateway opts into server-backed hosting. */
|
|
73
|
+
serverBacked?: WebSocketGatewayServerBackedOptions;
|
|
74
|
+
/** Class name used in diagnostics and error messages. */
|
|
75
|
+
targetName: string;
|
|
76
|
+
/** DI token used to resolve the gateway instance. */
|
|
77
|
+
token: Token;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Runtime context passed to gateway handlers on the default Node.js adapter surface.
|
|
81
|
+
*/
|
|
82
|
+
export type WebSocketGatewayContext = NodeWebSocketGatewayContext;
|
|
83
|
+
/**
|
|
84
|
+
* Upgrade-time context shared with pre-upgrade websocket guards.
|
|
85
|
+
*/
|
|
86
|
+
export type WebSocketUpgradeContext = NodeWebSocketUpgradeContext;
|
|
87
|
+
/**
|
|
88
|
+
* Structured rejection returned by a pre-upgrade websocket guard.
|
|
89
|
+
*/
|
|
90
|
+
export type WebSocketUpgradeRejection = NodeWebSocketUpgradeRejection;
|
|
91
|
+
/**
|
|
92
|
+
* Hook that can allow or reject a websocket upgrade before the adapter accepts it.
|
|
93
|
+
*/
|
|
94
|
+
export type WebSocketUpgradeGuard = NodeWebSocketUpgradeGuard;
|
|
95
|
+
/**
|
|
96
|
+
* Room management API shared by WebSocket protocol adapters.
|
|
97
|
+
*/
|
|
98
|
+
export interface WebSocketRoomService {
|
|
99
|
+
/**
|
|
100
|
+
* Adds one socket to a room.
|
|
101
|
+
*
|
|
102
|
+
* @param socketId Socket identifier to add.
|
|
103
|
+
* @param room Room identifier to join.
|
|
104
|
+
*/
|
|
105
|
+
joinRoom(socketId: string, room: string): void;
|
|
106
|
+
/**
|
|
107
|
+
* Removes one socket from a room.
|
|
108
|
+
*
|
|
109
|
+
* @param socketId Socket identifier to remove.
|
|
110
|
+
* @param room Room identifier to leave.
|
|
111
|
+
*/
|
|
112
|
+
leaveRoom(socketId: string, room: string): void;
|
|
113
|
+
/**
|
|
114
|
+
* Emits one event to every socket currently in a room.
|
|
115
|
+
*
|
|
116
|
+
* @param room Room identifier that should receive the event.
|
|
117
|
+
* @param event Event name delivered to room members.
|
|
118
|
+
* @param data Payload delivered with the event.
|
|
119
|
+
*/
|
|
120
|
+
broadcastToRoom(room: string, event: string, data: unknown): void;
|
|
121
|
+
/**
|
|
122
|
+
* Returns the rooms currently joined by one socket.
|
|
123
|
+
*
|
|
124
|
+
* @param socketId Socket identifier to inspect.
|
|
125
|
+
* @returns The current room set tracked for that socket.
|
|
126
|
+
*/
|
|
127
|
+
getRooms(socketId: string): ReadonlySet<string>;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Runtime-agnostic module options that currently mirror the Node.js adapter options.
|
|
131
|
+
*/
|
|
132
|
+
export type WebSocketModuleOptions = NodeWebSocketModuleOptions;
|
|
133
|
+
//# 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/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fluojs/websockets",
|
|
3
|
+
"description": "Decorator-based WebSocket gateway authoring core for Fluo, with explicit Node, Bun, Deno, and Cloudflare Workers raw websocket bindings on dedicated subpaths.",
|
|
4
|
+
"keywords": [
|
|
5
|
+
"fluo",
|
|
6
|
+
"websocket",
|
|
7
|
+
"ws",
|
|
8
|
+
"gateway",
|
|
9
|
+
"realtime",
|
|
10
|
+
"upgrade"
|
|
11
|
+
],
|
|
12
|
+
"version": "1.0.0-beta.1",
|
|
13
|
+
"private": false,
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/fluojs/fluo.git",
|
|
18
|
+
"directory": "packages/websockets"
|
|
19
|
+
},
|
|
20
|
+
"engines": {
|
|
21
|
+
"node": ">=20.0.0"
|
|
22
|
+
},
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
},
|
|
26
|
+
"type": "module",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"import": "./dist/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./bun": {
|
|
33
|
+
"types": "./dist/bun.d.ts",
|
|
34
|
+
"import": "./dist/bun.js"
|
|
35
|
+
},
|
|
36
|
+
"./deno": {
|
|
37
|
+
"types": "./dist/deno.d.ts",
|
|
38
|
+
"import": "./dist/deno.js"
|
|
39
|
+
},
|
|
40
|
+
"./cloudflare-workers": {
|
|
41
|
+
"types": "./dist/cloudflare-workers.d.ts",
|
|
42
|
+
"import": "./dist/cloudflare-workers.js"
|
|
43
|
+
},
|
|
44
|
+
"./node": {
|
|
45
|
+
"types": "./dist/node.d.ts",
|
|
46
|
+
"import": "./dist/node.js"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"main": "./dist/index.js",
|
|
50
|
+
"types": "./dist/index.d.ts",
|
|
51
|
+
"typesVersions": {
|
|
52
|
+
"*": {
|
|
53
|
+
"bun": [
|
|
54
|
+
"./dist/bun.d.ts"
|
|
55
|
+
],
|
|
56
|
+
"deno": [
|
|
57
|
+
"./dist/deno.d.ts"
|
|
58
|
+
],
|
|
59
|
+
"cloudflare-workers": [
|
|
60
|
+
"./dist/cloudflare-workers.d.ts"
|
|
61
|
+
],
|
|
62
|
+
"node": [
|
|
63
|
+
"./dist/node.d.ts"
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"files": [
|
|
68
|
+
"dist"
|
|
69
|
+
],
|
|
70
|
+
"dependencies": {
|
|
71
|
+
"ws": "^8.18.3",
|
|
72
|
+
"@fluojs/core": "^1.0.0-beta.1",
|
|
73
|
+
"@fluojs/di": "^1.0.0-beta.1",
|
|
74
|
+
"@fluojs/http": "^1.0.0-beta.1",
|
|
75
|
+
"@fluojs/runtime": "^1.0.0-beta.1"
|
|
76
|
+
},
|
|
77
|
+
"devDependencies": {
|
|
78
|
+
"@types/ws": "^8.18.1",
|
|
79
|
+
"vitest": "^3.2.4",
|
|
80
|
+
"@fluojs/platform-fastify": "^1.0.0-beta.1",
|
|
81
|
+
"@fluojs/platform-express": "^1.0.0-beta.1",
|
|
82
|
+
"@fluojs/platform-bun": "^1.0.0-beta.1"
|
|
83
|
+
},
|
|
84
|
+
"scripts": {
|
|
85
|
+
"prebuild": "node ../../tooling/scripts/clean-dist.mjs",
|
|
86
|
+
"build": "pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json",
|
|
87
|
+
"typecheck": "pnpm exec tsc -p tsconfig.json --noEmit",
|
|
88
|
+
"test": "pnpm exec vitest run -c vitest.config.ts",
|
|
89
|
+
"test:watch": "pnpm exec vitest -c vitest.config.ts"
|
|
90
|
+
}
|
|
91
|
+
}
|