@gravito/ripple 3.0.0 → 3.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.
- package/README.md +179 -6
- package/README.zh-TW.md +104 -2
- package/dist/core/src/Application.d.ts +215 -0
- package/dist/core/src/ConfigManager.d.ts +26 -0
- package/dist/core/src/Container.d.ts +78 -0
- package/dist/core/src/ErrorHandler.d.ts +63 -0
- package/dist/core/src/Event.d.ts +5 -0
- package/dist/core/src/EventManager.d.ts +123 -0
- package/dist/core/src/GlobalErrorHandlers.d.ts +47 -0
- package/dist/core/src/GravitoServer.d.ts +28 -0
- package/dist/core/src/HookManager.d.ts +84 -0
- package/dist/core/src/Listener.d.ts +4 -0
- package/dist/core/src/Logger.d.ts +20 -0
- package/dist/core/src/PlanetCore.d.ts +289 -0
- package/dist/core/src/Route.d.ts +36 -0
- package/dist/core/src/Router.d.ts +288 -0
- package/dist/core/src/ServiceProvider.d.ts +156 -0
- package/dist/core/src/adapters/GravitoEngineAdapter.d.ts +26 -0
- package/dist/core/src/adapters/PhotonAdapter.d.ts +170 -0
- package/dist/core/src/adapters/bun/BunContext.d.ts +45 -0
- package/dist/core/src/adapters/bun/BunNativeAdapter.d.ts +30 -0
- package/dist/core/src/adapters/bun/BunRequest.d.ts +31 -0
- package/dist/core/src/adapters/bun/RadixNode.d.ts +19 -0
- package/dist/core/src/adapters/bun/RadixRouter.d.ts +31 -0
- package/dist/core/src/adapters/bun/types.d.ts +20 -0
- package/dist/core/src/adapters/photon-types.d.ts +73 -0
- package/dist/core/src/adapters/types.d.ts +208 -0
- package/dist/core/src/engine/AOTRouter.d.ts +134 -0
- package/dist/core/src/engine/FastContext.d.ts +98 -0
- package/dist/core/src/engine/Gravito.d.ts +137 -0
- package/dist/core/src/engine/MinimalContext.d.ts +77 -0
- package/dist/core/src/engine/analyzer.d.ts +27 -0
- package/dist/core/src/engine/constants.d.ts +23 -0
- package/dist/core/src/engine/index.d.ts +26 -0
- package/dist/core/src/engine/path.d.ts +26 -0
- package/dist/core/src/engine/pool.d.ts +83 -0
- package/dist/core/src/engine/types.d.ts +138 -0
- package/dist/core/src/exceptions/AuthenticationException.d.ts +8 -0
- package/dist/core/src/exceptions/AuthorizationException.d.ts +8 -0
- package/dist/core/src/exceptions/GravitoException.d.ts +23 -0
- package/dist/core/src/exceptions/HttpException.d.ts +9 -0
- package/dist/core/src/exceptions/ModelNotFoundException.d.ts +10 -0
- package/dist/core/src/exceptions/ValidationException.d.ts +22 -0
- package/dist/core/src/exceptions/index.d.ts +6 -0
- package/dist/core/src/helpers/Arr.d.ts +19 -0
- package/dist/core/src/helpers/Str.d.ts +23 -0
- package/dist/core/src/helpers/data.d.ts +25 -0
- package/dist/core/src/helpers/errors.d.ts +34 -0
- package/dist/core/src/helpers/response.d.ts +41 -0
- package/dist/core/src/helpers.d.ts +338 -0
- package/dist/core/src/http/CookieJar.d.ts +51 -0
- package/dist/core/src/http/cookie.d.ts +29 -0
- package/dist/core/src/http/middleware/BodySizeLimit.d.ts +16 -0
- package/dist/core/src/http/middleware/Cors.d.ts +24 -0
- package/dist/core/src/http/middleware/Csrf.d.ts +23 -0
- package/dist/core/src/http/middleware/HeaderTokenGate.d.ts +28 -0
- package/dist/core/src/http/middleware/SecurityHeaders.d.ts +29 -0
- package/dist/core/src/http/middleware/ThrottleRequests.d.ts +18 -0
- package/dist/core/src/http/types.d.ts +334 -0
- package/dist/core/src/index.d.ts +67 -0
- package/dist/core/src/runtime.d.ts +119 -0
- package/dist/core/src/security/Encrypter.d.ts +33 -0
- package/dist/core/src/security/Hasher.d.ts +29 -0
- package/dist/core/src/testing/HttpTester.d.ts +39 -0
- package/dist/core/src/testing/TestResponse.d.ts +78 -0
- package/dist/core/src/testing/index.d.ts +2 -0
- package/dist/core/src/types/events.d.ts +94 -0
- package/dist/index.js +10206 -37
- package/dist/index.js.map +69 -10
- package/dist/photon/src/index.d.ts +70 -0
- package/dist/photon/src/middleware/binary.d.ts +31 -0
- package/dist/photon/src/middleware/htmx.d.ts +39 -0
- package/dist/ripple/src/OrbitRipple.d.ts +64 -0
- package/dist/ripple/src/RippleServer.d.ts +518 -0
- package/dist/{channels → ripple/src/channels}/Channel.d.ts +6 -1
- package/dist/ripple/src/channels/ChannelManager.d.ts +173 -0
- package/dist/{channels → ripple/src/channels}/index.d.ts +0 -1
- package/dist/ripple/src/drivers/LocalDriver.d.ts +61 -0
- package/dist/ripple/src/drivers/RedisDriver.d.ts +141 -0
- package/dist/ripple/src/drivers/index.d.ts +2 -0
- package/dist/ripple/src/errors/RippleError.d.ts +48 -0
- package/dist/ripple/src/errors/index.d.ts +1 -0
- package/dist/ripple/src/events/BroadcastEvent.d.ts +123 -0
- package/dist/ripple/src/events/BroadcastManager.d.ts +100 -0
- package/dist/ripple/src/events/Broadcaster.d.ts +264 -0
- package/dist/{events → ripple/src/events}/index.d.ts +1 -1
- package/dist/ripple/src/health/HealthChecker.d.ts +93 -0
- package/dist/ripple/src/health/index.d.ts +1 -0
- package/dist/ripple/src/index.d.ts +60 -0
- package/dist/ripple/src/logging/Logger.d.ts +99 -0
- package/dist/ripple/src/logging/index.d.ts +1 -0
- package/dist/ripple/src/tracking/ConnectionTracker.d.ts +116 -0
- package/dist/ripple/src/tracking/index.d.ts +1 -0
- package/dist/ripple/src/types.d.ts +753 -0
- package/dist/ripple/src/utils/MessageSerializer.d.ts +44 -0
- package/dist/ripple/src/utils/index.d.ts +1 -0
- package/package.json +14 -5
- package/dist/OrbitRipple.d.ts +0 -80
- package/dist/OrbitRipple.d.ts.map +0 -1
- package/dist/RippleServer.d.ts +0 -126
- package/dist/RippleServer.d.ts.map +0 -1
- package/dist/channels/Channel.d.ts.map +0 -1
- package/dist/channels/ChannelManager.d.ts +0 -79
- package/dist/channels/ChannelManager.d.ts.map +0 -1
- package/dist/channels/index.d.ts.map +0 -1
- package/dist/drivers/LocalDriver.d.ts +0 -30
- package/dist/drivers/LocalDriver.d.ts.map +0 -1
- package/dist/drivers/index.d.ts +0 -2
- package/dist/drivers/index.d.ts.map +0 -1
- package/dist/events/BroadcastEvent.d.ts +0 -52
- package/dist/events/BroadcastEvent.d.ts.map +0 -1
- package/dist/events/Broadcaster.d.ts +0 -68
- package/dist/events/Broadcaster.d.ts.map +0 -1
- package/dist/events/index.d.ts.map +0 -1
- package/dist/index.d.ts +0 -38
- package/dist/index.d.ts.map +0 -1
- package/dist/types.d.ts +0 -163
- package/dist/types.d.ts.map +0 -1
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ServerMessage } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Utility class for serializing server-to-client messages.
|
|
4
|
+
*
|
|
5
|
+
* Provides performance optimizations like pre-serialized common messages
|
|
6
|
+
* and a per-broadcast cache to reduce JSON.stringify overhead during
|
|
7
|
+
* multi-channel broadcasting.
|
|
8
|
+
*/
|
|
9
|
+
export declare class MessageSerializer {
|
|
10
|
+
/** Pre-serialized pong message for heartbeat responses */
|
|
11
|
+
private static readonly PONG_MESSAGE;
|
|
12
|
+
/** Cached serialized string for the current broadcast operation */
|
|
13
|
+
private broadcastCache;
|
|
14
|
+
/**
|
|
15
|
+
* Get the pre-serialized pong message.
|
|
16
|
+
*
|
|
17
|
+
* @returns Serialized {"type":"pong"} string
|
|
18
|
+
*/
|
|
19
|
+
getPongMessage(): string;
|
|
20
|
+
/**
|
|
21
|
+
* Serialize a server message to a JSON string.
|
|
22
|
+
*
|
|
23
|
+
* @param message - The server message object to serialize
|
|
24
|
+
* @returns Serialized JSON string
|
|
25
|
+
*/
|
|
26
|
+
serialize(message: ServerMessage): string;
|
|
27
|
+
/**
|
|
28
|
+
* Serialize a message for broadcasting, with internal caching.
|
|
29
|
+
*
|
|
30
|
+
* If a broadcast cache already exists, it is returned immediately.
|
|
31
|
+
* Otherwise, the message is serialized and stored in the cache.
|
|
32
|
+
*
|
|
33
|
+
* @param message - The server message to serialize and cache
|
|
34
|
+
* @returns Serialized JSON string
|
|
35
|
+
*/
|
|
36
|
+
serializeForBroadcast(message: ServerMessage): string;
|
|
37
|
+
/**
|
|
38
|
+
* Clear the current broadcast cache.
|
|
39
|
+
*
|
|
40
|
+
* Should be called after a broadcast operation is complete to prepare
|
|
41
|
+
* for the next broadcast.
|
|
42
|
+
*/
|
|
43
|
+
clearBroadcastCache(): void;
|
|
44
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { MessageSerializer } from './MessageSerializer';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gravito/ripple",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "Bun-native WebSocket broadcasting for Gravito. Channel-based real-time communication.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -21,8 +21,9 @@
|
|
|
21
21
|
"build": "bun run build.ts",
|
|
22
22
|
"test": "bun test",
|
|
23
23
|
"typecheck": "bun tsc -p tsconfig.json --noEmit --skipLibCheck",
|
|
24
|
-
"test:coverage": "bun test --coverage --coverage-threshold=
|
|
25
|
-
"test:ci": "bun test --coverage --coverage-threshold=
|
|
24
|
+
"test:coverage": "bun test --coverage --coverage-threshold=60",
|
|
25
|
+
"test:ci": "bun test --coverage --coverage-threshold=60",
|
|
26
|
+
"bench": "bun run benchmarks/index.ts"
|
|
26
27
|
},
|
|
27
28
|
"keywords": [
|
|
28
29
|
"gravito",
|
|
@@ -41,13 +42,21 @@
|
|
|
41
42
|
},
|
|
42
43
|
"homepage": "https://github.com/gravito-framework/gravito#readme",
|
|
43
44
|
"peerDependencies": {
|
|
44
|
-
"@gravito/core": "workspace:*"
|
|
45
|
+
"@gravito/core": "workspace:*",
|
|
46
|
+
"ioredis": "^5.0.0"
|
|
47
|
+
},
|
|
48
|
+
"peerDependenciesMeta": {
|
|
49
|
+
"ioredis": {
|
|
50
|
+
"optional": true
|
|
51
|
+
}
|
|
45
52
|
},
|
|
46
53
|
"devDependencies": {
|
|
47
54
|
"bun-types": "latest",
|
|
55
|
+
"ioredis": "^5.4.2",
|
|
56
|
+
"tinybench": "^6.0.0",
|
|
48
57
|
"typescript": "^5.9.3"
|
|
49
58
|
},
|
|
50
59
|
"publishConfig": {
|
|
51
60
|
"access": "public"
|
|
52
61
|
}
|
|
53
|
-
}
|
|
62
|
+
}
|
package/dist/OrbitRipple.d.ts
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview OrbitRipple - Gravito module wrapper for Ripple WebSocket
|
|
3
|
-
*
|
|
4
|
-
* Integrates RippleServer with Gravito's PlanetCore.
|
|
5
|
-
*
|
|
6
|
-
* @module @gravito/ripple
|
|
7
|
-
*/
|
|
8
|
-
import { RippleServer } from './RippleServer';
|
|
9
|
-
import type { RippleConfig } from './types';
|
|
10
|
-
/**
|
|
11
|
-
* PlanetCore interface for type safety without importing
|
|
12
|
-
*/
|
|
13
|
-
interface PlanetCore {
|
|
14
|
-
logger: {
|
|
15
|
-
info: (msg: string) => void;
|
|
16
|
-
};
|
|
17
|
-
adapter: {
|
|
18
|
-
use: (path: string, handler: (ctx: any, next: () => Promise<Response | undefined>) => Promise<any>) => void;
|
|
19
|
-
};
|
|
20
|
-
hooks: {
|
|
21
|
-
addAction: (hook: string, callback: (args: unknown) => Promise<void>) => void;
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* OrbitRipple - Gravito module for real-time WebSocket communication
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```typescript
|
|
29
|
-
* import { OrbitRipple } from '@gravito/ripple'
|
|
30
|
-
*
|
|
31
|
-
* const core = new PlanetCore()
|
|
32
|
-
*
|
|
33
|
-
* core.install(new OrbitRipple({
|
|
34
|
-
* path: '/ws',
|
|
35
|
-
* authorizer: async (channel, userId, socketId) => {
|
|
36
|
-
* // Return true for authorized, false for denied
|
|
37
|
-
* // For presence channels, return { id: userId, info: { name: '...' } }
|
|
38
|
-
* return true
|
|
39
|
-
* }
|
|
40
|
-
* }))
|
|
41
|
-
*
|
|
42
|
-
* // The WebSocket is automatically integrated with Bun.serve
|
|
43
|
-
* core.boot()
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
export declare class OrbitRipple {
|
|
47
|
-
private server;
|
|
48
|
-
private config;
|
|
49
|
-
constructor(config?: RippleConfig);
|
|
50
|
-
/**
|
|
51
|
-
* Install the module into PlanetCore
|
|
52
|
-
*/
|
|
53
|
-
install(core: PlanetCore): void;
|
|
54
|
-
/**
|
|
55
|
-
* Get the underlying RippleServer instance
|
|
56
|
-
*/
|
|
57
|
-
getServer(): RippleServer;
|
|
58
|
-
/**
|
|
59
|
-
* Get WebSocket handler for Bun.serve integration
|
|
60
|
-
*
|
|
61
|
-
* @example
|
|
62
|
-
* ```typescript
|
|
63
|
-
* const ripple = new OrbitRipple()
|
|
64
|
-
*
|
|
65
|
-
* Bun.serve({
|
|
66
|
-
* fetch: (req, server) => {
|
|
67
|
-
* // Let Ripple handle WebSocket upgrades
|
|
68
|
-
* if (ripple.getServer().upgrade(req, server)) return
|
|
69
|
-
*
|
|
70
|
-
* // Regular HTTP handling
|
|
71
|
-
* return core.adapter.fetch(req, server)
|
|
72
|
-
* },
|
|
73
|
-
* websocket: ripple.getHandler()
|
|
74
|
-
* })
|
|
75
|
-
* ```
|
|
76
|
-
*/
|
|
77
|
-
getHandler(): import("./types").WebSocketHandlerConfig;
|
|
78
|
-
}
|
|
79
|
-
export {};
|
|
80
|
-
//# sourceMappingURL=OrbitRipple.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OrbitRipple.d.ts","sourceRoot":"","sources":["../src/OrbitRipple.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C;;GAEG;AACH,UAAU,UAAU;IAClB,MAAM,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;IACvC,OAAO,EAAE;QACP,GAAG,EAAE,CACH,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,KAC3E,IAAI,CAAA;KACV,CAAA;IACD,KAAK,EAAE;QACL,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;KAC9E,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,GAAE,YAAiB;IAKrC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAuB/B;;OAEG;IACH,SAAS,IAAI,YAAY;IAIzB;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU;CAGX"}
|
package/dist/RippleServer.d.ts
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Ripple WebSocket Server
|
|
3
|
-
*
|
|
4
|
-
* Core WebSocket server implementation using Bun's native WebSocket API.
|
|
5
|
-
*
|
|
6
|
-
* @module @gravito/ripple
|
|
7
|
-
*/
|
|
8
|
-
import type { Server } from 'bun';
|
|
9
|
-
import type { ClientData, RippleConfig, RippleWebSocket, WebSocketHandlerConfig } from './types';
|
|
10
|
-
/**
|
|
11
|
-
* Ripple WebSocket Server
|
|
12
|
-
*
|
|
13
|
-
* Provides channel-based real-time communication using Bun's native WebSocket.
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* const ripple = new RippleServer({
|
|
18
|
-
* path: '/ws',
|
|
19
|
-
* authorizer: async (channel, userId) => {
|
|
20
|
-
* // Custom authorization logic
|
|
21
|
-
* return true
|
|
22
|
-
* }
|
|
23
|
-
* })
|
|
24
|
-
*
|
|
25
|
-
* Bun.serve({
|
|
26
|
-
* fetch: (req, server) => {
|
|
27
|
-
* if (ripple.upgrade(req, server)) return
|
|
28
|
-
* return new Response('Not found', { status: 404 })
|
|
29
|
-
* },
|
|
30
|
-
* websocket: ripple.getHandler()
|
|
31
|
-
* })
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
export declare class RippleServer {
|
|
35
|
-
private channels;
|
|
36
|
-
private driver;
|
|
37
|
-
private authorizer?;
|
|
38
|
-
private pingInterval?;
|
|
39
|
-
private eventListeners;
|
|
40
|
-
readonly config: Required<Pick<RippleConfig, 'path' | 'authEndpoint' | 'pingInterval'>> & RippleConfig;
|
|
41
|
-
constructor(config?: RippleConfig);
|
|
42
|
-
/**
|
|
43
|
-
* Register an event listener for client messages.
|
|
44
|
-
*
|
|
45
|
-
* @param event - The event name to listen for.
|
|
46
|
-
* @param handler - The callback function.
|
|
47
|
-
*/
|
|
48
|
-
on(event: string, handler: (socket: RippleWebSocket, data: any) => void): void;
|
|
49
|
-
/**
|
|
50
|
-
* Fluent API for broadcasting to a channel.
|
|
51
|
-
*
|
|
52
|
-
* @param channel - The channel name.
|
|
53
|
-
*/
|
|
54
|
-
to(channel: string): {
|
|
55
|
-
emit: (event: string, data: unknown) => void;
|
|
56
|
-
};
|
|
57
|
-
/**
|
|
58
|
-
* Attempt to upgrade an HTTP request to WebSocket.
|
|
59
|
-
*
|
|
60
|
-
* @param req - The HTTP request.
|
|
61
|
-
* @param server - The Bun server instance.
|
|
62
|
-
* @returns True if the request was upgraded, false otherwise.
|
|
63
|
-
*/
|
|
64
|
-
upgrade(req: Request, server: Server<ClientData>): boolean;
|
|
65
|
-
/**
|
|
66
|
-
* Get WebSocket handler configuration for Bun.serve.
|
|
67
|
-
*
|
|
68
|
-
* @returns An object containing the WebSocket event handlers.
|
|
69
|
-
*/
|
|
70
|
-
getHandler(): WebSocketHandlerConfig;
|
|
71
|
-
private handleOpen;
|
|
72
|
-
private handleMessage;
|
|
73
|
-
private handleClose;
|
|
74
|
-
private handleDrain;
|
|
75
|
-
private handleSubscribe;
|
|
76
|
-
private handleUnsubscribe;
|
|
77
|
-
private handleWhisper;
|
|
78
|
-
/**
|
|
79
|
-
* Broadcast an event to a channel.
|
|
80
|
-
*
|
|
81
|
-
* @param channel - The channel name.
|
|
82
|
-
* @param event - The event name.
|
|
83
|
-
* @param data - The event data.
|
|
84
|
-
*/
|
|
85
|
-
broadcast(channel: string, event: string, data: unknown): void;
|
|
86
|
-
/**
|
|
87
|
-
* Broadcast to specific client IDs.
|
|
88
|
-
*
|
|
89
|
-
* @param clientIds - An array of client IDs.
|
|
90
|
-
* @param event - The event name.
|
|
91
|
-
* @param data - The event data.
|
|
92
|
-
*/
|
|
93
|
-
broadcastToClients(clientIds: string[], event: string, data: unknown): void;
|
|
94
|
-
private broadcastToChannel;
|
|
95
|
-
private send;
|
|
96
|
-
/**
|
|
97
|
-
* Get server statistics.
|
|
98
|
-
*
|
|
99
|
-
* @returns An object containing connection and channel statistics.
|
|
100
|
-
*/
|
|
101
|
-
getStats(): {
|
|
102
|
-
totalClients: number;
|
|
103
|
-
totalChannels: number;
|
|
104
|
-
channels: {
|
|
105
|
-
name: string;
|
|
106
|
-
subscribers: number;
|
|
107
|
-
}[];
|
|
108
|
-
};
|
|
109
|
-
/**
|
|
110
|
-
* Initialize the server.
|
|
111
|
-
*
|
|
112
|
-
* Initializes the driver and starts the ping interval.
|
|
113
|
-
*
|
|
114
|
-
* @returns A promise that resolves when initialization is complete.
|
|
115
|
-
*/
|
|
116
|
-
init(): Promise<void>;
|
|
117
|
-
/**
|
|
118
|
-
* Shutdown the server.
|
|
119
|
-
*
|
|
120
|
-
* Clears the ping interval and shuts down the driver.
|
|
121
|
-
*
|
|
122
|
-
* @returns A promise that resolves when shutdown is complete.
|
|
123
|
-
*/
|
|
124
|
-
shutdown(): Promise<void>;
|
|
125
|
-
}
|
|
126
|
-
//# sourceMappingURL=RippleServer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RippleServer.d.ts","sourceRoot":"","sources":["../src/RippleServer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAGjC,OAAO,KAAK,EAEV,UAAU,EAEV,YAAY,EAEZ,eAAe,EAEf,sBAAsB,EACvB,MAAM,SAAS,CAAA;AAEhB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAmB;IACtC,OAAO,CAAC,YAAY,CAAC,CAAgC;IACrD,OAAO,CAAC,cAAc,CAA2E;IAEjG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc,CAAC,CAAC,GACrF,YAAY,CAAA;gBAEF,MAAM,GAAE,YAAiB;IAarC;;;;;OAKG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAO9E;;;;OAIG;IACH,EAAE,CAAC,OAAO,EAAE,MAAM;sBAEA,MAAM,QAAQ,OAAO;;IAQvC;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO;IAiB1D;;;;OAIG;IACH,UAAU,IAAI,sBAAsB;IAapC,OAAO,CAAC,UAAU;YAUJ,aAAa;IA6B3B,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,WAAW;YASL,eAAe;IA2D7B,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,aAAa;IA0BrB;;;;;;OAMG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAI9D;;;;;;OAMG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAc3E,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,IAAI;IAQZ;;;;OAIG;IACH,QAAQ;;;;;;;;IAIR;;;;;;OAMG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B;;;;;;OAMG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAMhC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../src/channels/Channel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAMpD,eAAO,MAAM,gBAAgB;;;CAGnB,CAAA;AAMV;;GAEG;AACH,uBAAe,WAAY,YAAW,OAAO;aAGf,IAAI,EAAE,MAAM;IAFxC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;gBAEP,IAAI,EAAE,MAAM;IAExC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAA;IAE/B;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAgBnE;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAM/C;AAMD;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAC5C,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAS;IAEjC,IAAI,QAAQ,IAAI,MAAM,CAErB;CACF;AAMD;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAC7C,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAS;IAElC,IAAI,QAAQ,IAAI,MAAM,CAErB;CACF;AAMD;;;;;;;;GAQG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAS;IAEnC,IAAI,QAAQ,IAAI,MAAM,CAErB;CACF;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAWvD;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,iCAA2B,CAAA"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Channel Manager for @gravito/ripple
|
|
3
|
-
*
|
|
4
|
-
* Manages channel subscriptions and member tracking.
|
|
5
|
-
*
|
|
6
|
-
* @module @gravito/ripple/channels
|
|
7
|
-
*/
|
|
8
|
-
import type { PresenceUserInfo, RippleWebSocket } from '../types';
|
|
9
|
-
/**
|
|
10
|
-
* Manages all channel subscriptions and presence tracking
|
|
11
|
-
*/
|
|
12
|
-
export declare class ChannelManager {
|
|
13
|
-
/** Map of channel name -> Set of client IDs */
|
|
14
|
-
private subscriptions;
|
|
15
|
-
/** Map of client ID -> WebSocket */
|
|
16
|
-
private clients;
|
|
17
|
-
/** Map of presence channel -> Map of user ID -> user info */
|
|
18
|
-
private presenceMembers;
|
|
19
|
-
/**
|
|
20
|
-
* Register a new client connection
|
|
21
|
-
*/
|
|
22
|
-
addClient(ws: RippleWebSocket): void;
|
|
23
|
-
/**
|
|
24
|
-
* Remove a client and all its subscriptions
|
|
25
|
-
*/
|
|
26
|
-
removeClient(clientId: string): string[];
|
|
27
|
-
/**
|
|
28
|
-
* Get a client by ID
|
|
29
|
-
*/
|
|
30
|
-
getClient(clientId: string): RippleWebSocket | undefined;
|
|
31
|
-
/**
|
|
32
|
-
* Get all connected clients
|
|
33
|
-
*/
|
|
34
|
-
getAllClients(): RippleWebSocket[];
|
|
35
|
-
/**
|
|
36
|
-
* Subscribe a client to a channel
|
|
37
|
-
*/
|
|
38
|
-
subscribe(clientId: string, channel: string, userInfo?: PresenceUserInfo): boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Unsubscribe a client from a channel
|
|
41
|
-
*/
|
|
42
|
-
unsubscribe(clientId: string, channel: string): boolean;
|
|
43
|
-
/**
|
|
44
|
-
* Get all subscribers of a channel
|
|
45
|
-
*/
|
|
46
|
-
getSubscribers(channel: string): RippleWebSocket[];
|
|
47
|
-
/**
|
|
48
|
-
* Check if a client is subscribed to a channel
|
|
49
|
-
*/
|
|
50
|
-
isSubscribed(clientId: string, channel: string): boolean;
|
|
51
|
-
/**
|
|
52
|
-
* Add a member to a presence channel
|
|
53
|
-
*/
|
|
54
|
-
private addPresenceMember;
|
|
55
|
-
/**
|
|
56
|
-
* Remove a member from a presence channel
|
|
57
|
-
*/
|
|
58
|
-
private removePresenceMember;
|
|
59
|
-
/**
|
|
60
|
-
* Get all members of a presence channel
|
|
61
|
-
*/
|
|
62
|
-
getPresenceMembers(channel: string): PresenceUserInfo[];
|
|
63
|
-
/**
|
|
64
|
-
* Get member count for a channel
|
|
65
|
-
*/
|
|
66
|
-
getMemberCount(channel: string): number;
|
|
67
|
-
/**
|
|
68
|
-
* Get channel statistics
|
|
69
|
-
*/
|
|
70
|
-
getStats(): {
|
|
71
|
-
totalClients: number;
|
|
72
|
-
totalChannels: number;
|
|
73
|
-
channels: {
|
|
74
|
-
name: string;
|
|
75
|
-
subscribers: number;
|
|
76
|
-
}[];
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=ChannelManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelManager.d.ts","sourceRoot":"","sources":["../../src/channels/ChannelManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAGjE;;GAEG;AACH,qBAAa,cAAc;IACzB,+CAA+C;IAC/C,OAAO,CAAC,aAAa,CAAiC;IAEtD,oCAAoC;IACpC,OAAO,CAAC,OAAO,CAAqC;IAEpD,6DAA6D;IAC7D,OAAO,CAAC,eAAe,CAA4D;IAMnF;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI;IAIpC;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAkBxC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIxD;;OAEG;IACH,aAAa,IAAI,eAAe,EAAE;IAQlC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,OAAO;IAyBlF;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IA0BvD;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE;IAWlD;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IASxD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAKvD;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAQvC;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAA;QACpB,aAAa,EAAE,MAAM,CAAA;QACrB,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAClD;CAUF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/channels/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Local (in-memory) driver for @gravito/ripple
|
|
3
|
-
*
|
|
4
|
-
* Suitable for single-instance deployments. For horizontal scaling,
|
|
5
|
-
* use the Redis driver.
|
|
6
|
-
*
|
|
7
|
-
* @module @gravito/ripple/drivers
|
|
8
|
-
*/
|
|
9
|
-
import type { RippleDriver } from '../types';
|
|
10
|
-
/**
|
|
11
|
-
* In-memory driver for single-instance deployments
|
|
12
|
-
*
|
|
13
|
-
* This driver keeps all state in memory and is suitable for:
|
|
14
|
-
* - Development
|
|
15
|
-
* - Single-server deployments
|
|
16
|
-
* - Serverless functions (with caveats)
|
|
17
|
-
*
|
|
18
|
-
* For multi-server deployments, use RedisDriver instead.
|
|
19
|
-
*/
|
|
20
|
-
export declare class LocalDriver implements RippleDriver {
|
|
21
|
-
readonly name = "local";
|
|
22
|
-
/** Event callbacks per channel */
|
|
23
|
-
private listeners;
|
|
24
|
-
publish(channel: string, event: string, data: unknown): Promise<void>;
|
|
25
|
-
subscribe(channel: string, callback: (event: string, data: unknown) => void): Promise<void>;
|
|
26
|
-
unsubscribe(channel: string): Promise<void>;
|
|
27
|
-
init(): Promise<void>;
|
|
28
|
-
shutdown(): Promise<void>;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=LocalDriver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LocalDriver.d.ts","sourceRoot":"","sources":["../../src/drivers/LocalDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE5C;;;;;;;;;GASG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,QAAQ,CAAC,IAAI,WAAU;IAEvB,kCAAkC;IAClC,OAAO,CAAC,SAAS,CAAiE;IAE5E,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IASrE,SAAS,CACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,GAC/C,OAAO,CAAC,IAAI,CAAC;IAOV,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAGhC"}
|
package/dist/drivers/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/drivers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Broadcast Event base class
|
|
3
|
-
*
|
|
4
|
-
* Events that can be broadcast to WebSocket channels.
|
|
5
|
-
*
|
|
6
|
-
* @module @gravito/ripple/events
|
|
7
|
-
*/
|
|
8
|
-
import type { Channel } from '../types';
|
|
9
|
-
/**
|
|
10
|
-
* Abstract base class for broadcast events
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```typescript
|
|
14
|
-
* class OrderShipped extends BroadcastEvent {
|
|
15
|
-
* constructor(public order: Order) {
|
|
16
|
-
* super()
|
|
17
|
-
* }
|
|
18
|
-
*
|
|
19
|
-
* broadcastOn() {
|
|
20
|
-
* return new PrivateChannel(`orders.${this.order.userId}`)
|
|
21
|
-
* }
|
|
22
|
-
*
|
|
23
|
-
* broadcastAs() {
|
|
24
|
-
* return 'OrderShipped'
|
|
25
|
-
* }
|
|
26
|
-
* }
|
|
27
|
-
*
|
|
28
|
-
* // Broadcast
|
|
29
|
-
* broadcast(new OrderShipped(order))
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
export declare abstract class BroadcastEvent {
|
|
33
|
-
/**
|
|
34
|
-
* The channels to broadcast this event on
|
|
35
|
-
*/
|
|
36
|
-
abstract broadcastOn(): Channel | Channel[];
|
|
37
|
-
/**
|
|
38
|
-
* The event name to use when broadcasting
|
|
39
|
-
* Defaults to the class name
|
|
40
|
-
*/
|
|
41
|
-
broadcastAs(): string;
|
|
42
|
-
/**
|
|
43
|
-
* Socket IDs to exclude from the broadcast
|
|
44
|
-
*/
|
|
45
|
-
broadcastExcept(): string[];
|
|
46
|
-
/**
|
|
47
|
-
* Get the event data payload
|
|
48
|
-
* Override to customize the broadcast payload
|
|
49
|
-
*/
|
|
50
|
-
broadcastWith(): Record<string, unknown>;
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=BroadcastEvent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BroadcastEvent.d.ts","sourceRoot":"","sources":["../../src/events/BroadcastEvent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAEvC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,8BAAsB,cAAc;IAClC;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,GAAG,OAAO,EAAE;IAE3C;;;OAGG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;;OAGG;IACH,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQzC"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Broadcaster for sending events to channels
|
|
3
|
-
*
|
|
4
|
-
* @module @gravito/ripple/events
|
|
5
|
-
*/
|
|
6
|
-
import type { RippleServer } from '../RippleServer';
|
|
7
|
-
import type { BroadcastEvent } from './BroadcastEvent';
|
|
8
|
-
/**
|
|
9
|
-
* Set the global Ripple server instance
|
|
10
|
-
*/
|
|
11
|
-
export declare function setRippleServer(server: RippleServer): void;
|
|
12
|
-
/**
|
|
13
|
-
* Get the global Ripple server instance
|
|
14
|
-
*/
|
|
15
|
-
export declare function getRippleServer(): RippleServer | null;
|
|
16
|
-
/**
|
|
17
|
-
* Broadcast an event to its channels
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```typescript
|
|
21
|
-
* class OrderShipped extends BroadcastEvent {
|
|
22
|
-
* constructor(public order: Order) { super() }
|
|
23
|
-
* broadcastOn() { return new PrivateChannel(`orders.${this.order.userId}`) }
|
|
24
|
-
* }
|
|
25
|
-
*
|
|
26
|
-
* broadcast(new OrderShipped(order))
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export declare function broadcast(event: BroadcastEvent): void;
|
|
30
|
-
/**
|
|
31
|
-
* Fluent Broadcaster API for more control
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* ```typescript
|
|
35
|
-
* Broadcaster.to('orders.123')
|
|
36
|
-
* .emit('OrderUpdated', { status: 'shipped' })
|
|
37
|
-
*
|
|
38
|
-
* Broadcaster.toPrivate('orders.123')
|
|
39
|
-
* .except(socketId)
|
|
40
|
-
* .emit('OrderUpdated', { status: 'shipped' })
|
|
41
|
-
* ```
|
|
42
|
-
*/
|
|
43
|
-
export declare class Broadcaster {
|
|
44
|
-
private _channel;
|
|
45
|
-
private _except;
|
|
46
|
-
private constructor();
|
|
47
|
-
/**
|
|
48
|
-
* Target a public channel
|
|
49
|
-
*/
|
|
50
|
-
static to(channel: string): Broadcaster;
|
|
51
|
-
/**
|
|
52
|
-
* Target a private channel
|
|
53
|
-
*/
|
|
54
|
-
static toPrivate(channel: string): Broadcaster;
|
|
55
|
-
/**
|
|
56
|
-
* Target a presence channel
|
|
57
|
-
*/
|
|
58
|
-
static toPresence(channel: string): Broadcaster;
|
|
59
|
-
/**
|
|
60
|
-
* Exclude specific socket IDs from broadcast
|
|
61
|
-
*/
|
|
62
|
-
except(socketIds: string | string[]): this;
|
|
63
|
-
/**
|
|
64
|
-
* Emit an event to the channel
|
|
65
|
-
*/
|
|
66
|
-
emit(event: string, data: unknown): void;
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=Broadcaster.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Broadcaster.d.ts","sourceRoot":"","sources":["../../src/events/Broadcaster.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAOtD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAE1D;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAiBrD;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,OAAO,CAAe;IAE9B,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IAIvC;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IAI9C;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;IAI/C;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAM1C;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;CAQzC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA"}
|
package/dist/index.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview @gravito/ripple - Bun-native WebSocket broadcasting
|
|
3
|
-
*
|
|
4
|
-
* Channel-based real-time communication for Gravito applications.
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* import { OrbitRipple, broadcast, PrivateChannel, BroadcastEvent } from '@gravito/ripple'
|
|
9
|
-
*
|
|
10
|
-
* // Install the module
|
|
11
|
-
* core.install(new OrbitRipple({
|
|
12
|
-
* path: '/ws',
|
|
13
|
-
* authorizer: async (channel, userId) => userId !== undefined
|
|
14
|
-
* }))
|
|
15
|
-
*
|
|
16
|
-
* // Define a broadcast event
|
|
17
|
-
* class OrderShipped extends BroadcastEvent {
|
|
18
|
-
* constructor(public order: Order) { super() }
|
|
19
|
-
* broadcastOn() { return new PrivateChannel(`orders.${this.order.userId}`) }
|
|
20
|
-
* }
|
|
21
|
-
*
|
|
22
|
-
* // Broadcast from anywhere
|
|
23
|
-
* broadcast(new OrderShipped(order))
|
|
24
|
-
*
|
|
25
|
-
* // Or use the fluent API
|
|
26
|
-
* import { Broadcaster } from '@gravito/ripple'
|
|
27
|
-
* Broadcaster.toPrivate('orders.123').emit('OrderUpdated', { status: 'shipped' })
|
|
28
|
-
* ```
|
|
29
|
-
*
|
|
30
|
-
* @module @gravito/ripple
|
|
31
|
-
*/
|
|
32
|
-
export { CHANNEL_PREFIXES, ChannelManager, createChannel, PresenceChannel, PrivateChannel, PublicChannel, requiresAuth, } from './channels';
|
|
33
|
-
export { LocalDriver } from './drivers';
|
|
34
|
-
export { BroadcastEvent, Broadcaster, broadcast, getRippleServer, setRippleServer } from './events';
|
|
35
|
-
export { OrbitRipple } from './OrbitRipple';
|
|
36
|
-
export { RippleServer } from './RippleServer';
|
|
37
|
-
export type { BroadcastEventInterface, Channel, ChannelAuthorizer, ChannelType, ClientData, ClientMessage, PresenceUserInfo, RippleBunServer, RippleConfig, RippleDriver, RippleWebSocket, ServerMessage, WebSocketHandlerConfig, } from './types';
|
|
38
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAEnG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C,YAAY,EACV,uBAAuB,EACvB,OAAO,EACP,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,sBAAsB,GACvB,MAAM,SAAS,CAAA"}
|