@mono-labs/dev 0.1.255 → 0.1.256
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/cache-relay.d.ts.map +1 -1
- package/dist/cache-relay.js +3 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/websocket/index.d.ts +1 -1
- package/dist/websocket/index.d.ts.map +1 -1
- package/dist/websocket/index.js +5 -5
- package/dist/websocket/socket-gateway-client.d.ts +20 -0
- package/dist/websocket/socket-gateway-client.d.ts.map +1 -0
- package/dist/websocket/socket-gateway-client.js +76 -0
- package/package.json +6 -2
- package/src/cache-relay.ts +4 -1
- package/src/index.ts +1 -1
- package/src/websocket/index.ts +3 -3
- package/src/websocket/socket-gateway-client.ts +83 -0
- package/src/websocket/local-gateway-client.ts +0 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-relay.d.ts","sourceRoot":"","sources":["../src/cache-relay.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cache-relay.d.ts","sourceRoot":"","sources":["../src/cache-relay.ts"],"names":[],"mappings":"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"}
|
package/dist/cache-relay.js
CHANGED
|
@@ -269,7 +269,9 @@ function buildCacheRelay(redis) {
|
|
|
269
269
|
* Requires `ioredis` as a peer dependency — throws a clear error if missing.
|
|
270
270
|
*/
|
|
271
271
|
function initCacheRelay(connectionString) {
|
|
272
|
-
const
|
|
272
|
+
const raw = connectionString ?? 'localhost:6379';
|
|
273
|
+
// Normalize: bare hostname (no port) → hostname:6379
|
|
274
|
+
const connStr = raw.includes(':') ? raw : `${raw}:6379`;
|
|
273
275
|
// Reuse existing instance when the connection string hasn't changed
|
|
274
276
|
if (_cacheRelay && _currentConnectionString === connStr)
|
|
275
277
|
return _cacheRelay;
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export type { ApiGatewayHandler, ALBHandler, LocalServerConfig } from './local-s
|
|
|
3
3
|
export { attachSocketAdapter } from './websocket';
|
|
4
4
|
export { ConnectionRegistry } from './websocket/connection-registry';
|
|
5
5
|
export { ActionRouter } from './websocket/action-router';
|
|
6
|
-
export {
|
|
6
|
+
export { SocketGatewayClient } from './websocket/socket-gateway-client';
|
|
7
7
|
export { InMemoryChannelStore, RedisChannelStore } from './websocket/channel-store';
|
|
8
8
|
export { SocketEmitter } from './websocket/socket-emitter';
|
|
9
9
|
export type { ConnectionId, PostToConnectionFn, SocketAdapterConfig, RedisConfig, ConnectHandlerFn, DisconnectHandlerFn, ActionHandler, ActionHandlerContext, ActionHandlerResult, LocalRequestContext, WebSocketUserContext, } from './websocket/types';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAG5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAG5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,YAAY,EACX,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAG5D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7D,YAAY,EACX,UAAU,EACV,SAAS,EACT,OAAO,EACP,OAAO,EACP,MAAM,EACN,YAAY,EACZ,MAAM,EACN,SAAS,EACT,cAAc,EACd,SAAS,EACT,MAAM,EACN,cAAc,EACd,SAAS,EACT,SAAS,GACT,MAAM,eAAe,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getCacheRelay = exports.initCacheRelay = exports.SocketEmitter = exports.RedisChannelStore = exports.InMemoryChannelStore = exports.
|
|
3
|
+
exports.getCacheRelay = exports.initCacheRelay = exports.SocketEmitter = exports.RedisChannelStore = exports.InMemoryChannelStore = exports.SocketGatewayClient = exports.ActionRouter = exports.ConnectionRegistry = exports.attachSocketAdapter = exports.LocalServer = void 0;
|
|
4
4
|
// Core
|
|
5
5
|
var local_server_1 = require("./local-server");
|
|
6
6
|
Object.defineProperty(exports, "LocalServer", { enumerable: true, get: function () { return local_server_1.LocalServer; } });
|
|
@@ -11,8 +11,8 @@ var connection_registry_1 = require("./websocket/connection-registry");
|
|
|
11
11
|
Object.defineProperty(exports, "ConnectionRegistry", { enumerable: true, get: function () { return connection_registry_1.ConnectionRegistry; } });
|
|
12
12
|
var action_router_1 = require("./websocket/action-router");
|
|
13
13
|
Object.defineProperty(exports, "ActionRouter", { enumerable: true, get: function () { return action_router_1.ActionRouter; } });
|
|
14
|
-
var
|
|
15
|
-
Object.defineProperty(exports, "
|
|
14
|
+
var socket_gateway_client_1 = require("./websocket/socket-gateway-client");
|
|
15
|
+
Object.defineProperty(exports, "SocketGatewayClient", { enumerable: true, get: function () { return socket_gateway_client_1.SocketGatewayClient; } });
|
|
16
16
|
var channel_store_1 = require("./websocket/channel-store");
|
|
17
17
|
Object.defineProperty(exports, "InMemoryChannelStore", { enumerable: true, get: function () { return channel_store_1.InMemoryChannelStore; } });
|
|
18
18
|
Object.defineProperty(exports, "RedisChannelStore", { enumerable: true, get: function () { return channel_store_1.RedisChannelStore; } });
|
|
@@ -5,7 +5,7 @@ import { SocketEmitter } from './socket-emitter';
|
|
|
5
5
|
import type { SocketAdapterConfig } from './types';
|
|
6
6
|
export type { ConnectionId, PostToConnectionFn, SocketAdapterConfig, RedisConfig } from './types';
|
|
7
7
|
export { ConnectionRegistry } from './connection-registry';
|
|
8
|
-
export {
|
|
8
|
+
export { SocketGatewayClient } from './socket-gateway-client';
|
|
9
9
|
export { ActionRouter } from './action-router';
|
|
10
10
|
export { InMemoryChannelStore, RedisChannelStore } from './channel-store';
|
|
11
11
|
export type { ChannelStore } from './channel-store';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/websocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,IAAI,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAI1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,KAAK,EAAgB,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAEhE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/websocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,IAAI,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAI1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,KAAK,EAAgB,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAEhE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACzE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,mBAAmB;;;;;;0BAgJ9D,SAAS;EAEhC"}
|
package/dist/websocket/index.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SocketEmitter = exports.RedisChannelStore = exports.InMemoryChannelStore = exports.ActionRouter = exports.
|
|
3
|
+
exports.SocketEmitter = exports.RedisChannelStore = exports.InMemoryChannelStore = exports.ActionRouter = exports.SocketGatewayClient = exports.ConnectionRegistry = void 0;
|
|
4
4
|
exports.attachSocketAdapter = attachSocketAdapter;
|
|
5
5
|
const action_router_1 = require("./action-router");
|
|
6
6
|
const connection_registry_1 = require("./connection-registry");
|
|
7
7
|
const event_synthesizer_1 = require("./event-synthesizer");
|
|
8
|
-
const
|
|
8
|
+
const socket_gateway_client_1 = require("./socket-gateway-client");
|
|
9
9
|
const channel_store_1 = require("./channel-store");
|
|
10
10
|
const socket_emitter_1 = require("./socket-emitter");
|
|
11
11
|
const cache_relay_1 = require("../cache-relay");
|
|
12
12
|
var connection_registry_2 = require("./connection-registry");
|
|
13
13
|
Object.defineProperty(exports, "ConnectionRegistry", { enumerable: true, get: function () { return connection_registry_2.ConnectionRegistry; } });
|
|
14
|
-
var
|
|
15
|
-
Object.defineProperty(exports, "
|
|
14
|
+
var socket_gateway_client_2 = require("./socket-gateway-client");
|
|
15
|
+
Object.defineProperty(exports, "SocketGatewayClient", { enumerable: true, get: function () { return socket_gateway_client_2.SocketGatewayClient; } });
|
|
16
16
|
var action_router_2 = require("./action-router");
|
|
17
17
|
Object.defineProperty(exports, "ActionRouter", { enumerable: true, get: function () { return action_router_2.ActionRouter; } });
|
|
18
18
|
var channel_store_2 = require("./channel-store");
|
|
@@ -30,7 +30,7 @@ function attachSocketAdapter(wss, config) {
|
|
|
30
30
|
const domainName = config?.domainName ?? 'localhost';
|
|
31
31
|
const stage = config?.stage ?? 'local';
|
|
32
32
|
const connectionRegistry = new connection_registry_1.ConnectionRegistry();
|
|
33
|
-
const gatewayClient = new
|
|
33
|
+
const gatewayClient = new socket_gateway_client_1.SocketGatewayClient(connectionRegistry);
|
|
34
34
|
const postToConnection = gatewayClient.asFunction();
|
|
35
35
|
const actionRouter = new action_router_1.ActionRouter();
|
|
36
36
|
// Create channel store
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ConnectionId, PostToConnectionFn } from './types';
|
|
2
|
+
import type { ConnectionRegistry } from './connection-registry';
|
|
3
|
+
/**
|
|
4
|
+
* Unified gateway client that auto-detects local vs production mode.
|
|
5
|
+
*
|
|
6
|
+
* - Pass a `ConnectionRegistry` → local mode (sends via in-memory WebSocket)
|
|
7
|
+
* - Pass a URL string → API Gateway mode (sends via AWS SDK PostToConnectionCommand)
|
|
8
|
+
*/
|
|
9
|
+
export declare class SocketGatewayClient {
|
|
10
|
+
private mode;
|
|
11
|
+
private registry?;
|
|
12
|
+
private endpoint?;
|
|
13
|
+
constructor(backend: ConnectionRegistry | string);
|
|
14
|
+
postToConnection(connectionId: ConnectionId, data: unknown): Promise<void>;
|
|
15
|
+
private postLocal;
|
|
16
|
+
private postApiGateway;
|
|
17
|
+
/** Returns a bound PostToConnectionFn for dependency injection */
|
|
18
|
+
asFunction(): PostToConnectionFn;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=socket-gateway-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socket-gateway-client.d.ts","sourceRoot":"","sources":["../../src/websocket/socket-gateway-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE/D;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,QAAQ,CAAC,CAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,CAAQ;gBAEb,OAAO,EAAE,kBAAkB,GAAG,MAAM;IAU1C,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YAOlE,SAAS;YAeT,cAAc;IAgC5B,kEAAkE;IAClE,UAAU,IAAI,kBAAkB;CAGhC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SocketGatewayClient = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Unified gateway client that auto-detects local vs production mode.
|
|
6
|
+
*
|
|
7
|
+
* - Pass a `ConnectionRegistry` → local mode (sends via in-memory WebSocket)
|
|
8
|
+
* - Pass a URL string → API Gateway mode (sends via AWS SDK PostToConnectionCommand)
|
|
9
|
+
*/
|
|
10
|
+
class SocketGatewayClient {
|
|
11
|
+
mode;
|
|
12
|
+
registry;
|
|
13
|
+
endpoint;
|
|
14
|
+
constructor(backend) {
|
|
15
|
+
if (typeof backend === 'string') {
|
|
16
|
+
this.mode = 'apigateway';
|
|
17
|
+
this.endpoint = backend;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
this.mode = 'local';
|
|
21
|
+
this.registry = backend;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async postToConnection(connectionId, data) {
|
|
25
|
+
if (this.mode === 'local') {
|
|
26
|
+
return this.postLocal(connectionId, data);
|
|
27
|
+
}
|
|
28
|
+
return this.postApiGateway(connectionId, data);
|
|
29
|
+
}
|
|
30
|
+
async postLocal(connectionId, data) {
|
|
31
|
+
const { WebSocket } = require('ws');
|
|
32
|
+
const ws = this.registry.get(connectionId);
|
|
33
|
+
if (!ws || ws.readyState !== WebSocket.OPEN) {
|
|
34
|
+
const error = new Error(`GoneException: Connection ${connectionId} is no longer available`);
|
|
35
|
+
error.statusCode = 410;
|
|
36
|
+
error.name = 'GoneException';
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
const payload = typeof data === 'string' ? data : JSON.stringify(data);
|
|
40
|
+
ws.send(payload);
|
|
41
|
+
}
|
|
42
|
+
async postApiGateway(connectionId, data) {
|
|
43
|
+
let ApiGatewayManagementApiClient, PostToConnectionCommand;
|
|
44
|
+
try {
|
|
45
|
+
const mod = require('@aws-sdk/client-apigatewaymanagementapi');
|
|
46
|
+
ApiGatewayManagementApiClient = mod.ApiGatewayManagementApiClient;
|
|
47
|
+
PostToConnectionCommand = mod.PostToConnectionCommand;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
throw new Error('API Gateway mode requires "@aws-sdk/client-apigatewaymanagementapi". '
|
|
51
|
+
+ 'Install it with: npm install @aws-sdk/client-apigatewaymanagementapi');
|
|
52
|
+
}
|
|
53
|
+
const client = new ApiGatewayManagementApiClient({ endpoint: this.endpoint });
|
|
54
|
+
const payload = typeof data === 'string' ? data : JSON.stringify(data);
|
|
55
|
+
try {
|
|
56
|
+
await client.send(new PostToConnectionCommand({
|
|
57
|
+
ConnectionId: connectionId,
|
|
58
|
+
Data: new TextEncoder().encode(payload),
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
if (err.name === 'GoneException' || err.$metadata?.httpStatusCode === 410) {
|
|
63
|
+
const error = new Error(`GoneException: Connection ${connectionId} is no longer available`);
|
|
64
|
+
error.statusCode = 410;
|
|
65
|
+
error.name = 'GoneException';
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
throw err;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/** Returns a bound PostToConnectionFn for dependency injection */
|
|
72
|
+
asFunction() {
|
|
73
|
+
return this.postToConnection.bind(this);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.SocketGatewayClient = SocketGatewayClient;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mono-labs/dev",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.256",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"description": "Local development server and WebSocket adapter for mono-labs",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,11 +27,15 @@
|
|
|
27
27
|
"ws": "^8.18.0"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"ioredis": ">=5.0.0"
|
|
30
|
+
"ioredis": ">=5.0.0",
|
|
31
|
+
"@aws-sdk/client-apigatewaymanagementapi": ">=3.0.0"
|
|
31
32
|
},
|
|
32
33
|
"peerDependenciesMeta": {
|
|
33
34
|
"ioredis": {
|
|
34
35
|
"optional": true
|
|
36
|
+
},
|
|
37
|
+
"@aws-sdk/client-apigatewaymanagementapi": {
|
|
38
|
+
"optional": true
|
|
35
39
|
}
|
|
36
40
|
},
|
|
37
41
|
"devDependencies": {
|
package/src/cache-relay.ts
CHANGED
|
@@ -452,7 +452,10 @@ function buildCacheRelay(redis: RedisClient): CacheRelay {
|
|
|
452
452
|
* Requires `ioredis` as a peer dependency — throws a clear error if missing.
|
|
453
453
|
*/
|
|
454
454
|
export function initCacheRelay(connectionString?: string): CacheRelay {
|
|
455
|
-
const
|
|
455
|
+
const raw = connectionString ?? 'localhost:6379'
|
|
456
|
+
|
|
457
|
+
// Normalize: bare hostname (no port) → hostname:6379
|
|
458
|
+
const connStr = raw.includes(':') ? raw : `${raw}:6379`
|
|
456
459
|
|
|
457
460
|
// Reuse existing instance when the connection string hasn't changed
|
|
458
461
|
if (_cacheRelay && _currentConnectionString === connStr) return _cacheRelay
|
package/src/index.ts
CHANGED
|
@@ -6,7 +6,7 @@ export type { ApiGatewayHandler, ALBHandler, LocalServerConfig } from './local-s
|
|
|
6
6
|
export { attachSocketAdapter } from './websocket'
|
|
7
7
|
export { ConnectionRegistry } from './websocket/connection-registry'
|
|
8
8
|
export { ActionRouter } from './websocket/action-router'
|
|
9
|
-
export {
|
|
9
|
+
export { SocketGatewayClient } from './websocket/socket-gateway-client'
|
|
10
10
|
export { InMemoryChannelStore, RedisChannelStore } from './websocket/channel-store'
|
|
11
11
|
export { SocketEmitter } from './websocket/socket-emitter'
|
|
12
12
|
export type {
|
package/src/websocket/index.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { WebSocket, WebSocketServer } from 'ws'
|
|
|
3
3
|
import { ActionRouter } from './action-router'
|
|
4
4
|
import { ConnectionRegistry } from './connection-registry'
|
|
5
5
|
import { buildRequestContext } from './event-synthesizer'
|
|
6
|
-
import {
|
|
6
|
+
import { SocketGatewayClient } from './socket-gateway-client'
|
|
7
7
|
import { InMemoryChannelStore, RedisChannelStore } from './channel-store'
|
|
8
8
|
import { SocketEmitter } from './socket-emitter'
|
|
9
9
|
import { initCacheRelay } from '../cache-relay'
|
|
@@ -11,7 +11,7 @@ import type { ConnectionId, SocketAdapterConfig } from './types'
|
|
|
11
11
|
|
|
12
12
|
export type { ConnectionId, PostToConnectionFn, SocketAdapterConfig, RedisConfig } from './types'
|
|
13
13
|
export { ConnectionRegistry } from './connection-registry'
|
|
14
|
-
export {
|
|
14
|
+
export { SocketGatewayClient } from './socket-gateway-client'
|
|
15
15
|
export { ActionRouter } from './action-router'
|
|
16
16
|
export { InMemoryChannelStore, RedisChannelStore } from './channel-store'
|
|
17
17
|
export type { ChannelStore } from './channel-store'
|
|
@@ -29,7 +29,7 @@ export function attachSocketAdapter(wss: WebSocketServer, config?: SocketAdapter
|
|
|
29
29
|
const stage = config?.stage ?? 'local'
|
|
30
30
|
|
|
31
31
|
const connectionRegistry = new ConnectionRegistry()
|
|
32
|
-
const gatewayClient = new
|
|
32
|
+
const gatewayClient = new SocketGatewayClient(connectionRegistry)
|
|
33
33
|
const postToConnection = gatewayClient.asFunction()
|
|
34
34
|
const actionRouter = new ActionRouter()
|
|
35
35
|
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { ConnectionId, PostToConnectionFn } from './types'
|
|
2
|
+
import type { ConnectionRegistry } from './connection-registry'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Unified gateway client that auto-detects local vs production mode.
|
|
6
|
+
*
|
|
7
|
+
* - Pass a `ConnectionRegistry` → local mode (sends via in-memory WebSocket)
|
|
8
|
+
* - Pass a URL string → API Gateway mode (sends via AWS SDK PostToConnectionCommand)
|
|
9
|
+
*/
|
|
10
|
+
export class SocketGatewayClient {
|
|
11
|
+
private mode: 'local' | 'apigateway'
|
|
12
|
+
private registry?: ConnectionRegistry
|
|
13
|
+
private endpoint?: string
|
|
14
|
+
|
|
15
|
+
constructor(backend: ConnectionRegistry | string) {
|
|
16
|
+
if (typeof backend === 'string') {
|
|
17
|
+
this.mode = 'apigateway'
|
|
18
|
+
this.endpoint = backend
|
|
19
|
+
} else {
|
|
20
|
+
this.mode = 'local'
|
|
21
|
+
this.registry = backend
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async postToConnection(connectionId: ConnectionId, data: unknown): Promise<void> {
|
|
26
|
+
if (this.mode === 'local') {
|
|
27
|
+
return this.postLocal(connectionId, data)
|
|
28
|
+
}
|
|
29
|
+
return this.postApiGateway(connectionId, data)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
private async postLocal(connectionId: ConnectionId, data: unknown): Promise<void> {
|
|
33
|
+
const { WebSocket } = require('ws') as typeof import('ws')
|
|
34
|
+
const ws = this.registry!.get(connectionId)
|
|
35
|
+
|
|
36
|
+
if (!ws || ws.readyState !== WebSocket.OPEN) {
|
|
37
|
+
const error = new Error(`GoneException: Connection ${connectionId} is no longer available`)
|
|
38
|
+
;(error as any).statusCode = 410
|
|
39
|
+
;(error as any).name = 'GoneException'
|
|
40
|
+
throw error
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const payload = typeof data === 'string' ? data : JSON.stringify(data)
|
|
44
|
+
ws.send(payload)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
private async postApiGateway(connectionId: ConnectionId, data: unknown): Promise<void> {
|
|
48
|
+
let ApiGatewayManagementApiClient: any, PostToConnectionCommand: any
|
|
49
|
+
try {
|
|
50
|
+
const mod = require('@aws-sdk/client-apigatewaymanagementapi')
|
|
51
|
+
ApiGatewayManagementApiClient = mod.ApiGatewayManagementApiClient
|
|
52
|
+
PostToConnectionCommand = mod.PostToConnectionCommand
|
|
53
|
+
} catch {
|
|
54
|
+
throw new Error(
|
|
55
|
+
'API Gateway mode requires "@aws-sdk/client-apigatewaymanagementapi". '
|
|
56
|
+
+ 'Install it with: npm install @aws-sdk/client-apigatewaymanagementapi'
|
|
57
|
+
)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const client = new ApiGatewayManagementApiClient({ endpoint: this.endpoint })
|
|
61
|
+
const payload = typeof data === 'string' ? data : JSON.stringify(data)
|
|
62
|
+
|
|
63
|
+
try {
|
|
64
|
+
await client.send(new PostToConnectionCommand({
|
|
65
|
+
ConnectionId: connectionId,
|
|
66
|
+
Data: new TextEncoder().encode(payload),
|
|
67
|
+
}))
|
|
68
|
+
} catch (err: any) {
|
|
69
|
+
if (err.name === 'GoneException' || err.$metadata?.httpStatusCode === 410) {
|
|
70
|
+
const error = new Error(`GoneException: Connection ${connectionId} is no longer available`)
|
|
71
|
+
;(error as any).statusCode = 410
|
|
72
|
+
;(error as any).name = 'GoneException'
|
|
73
|
+
throw error
|
|
74
|
+
}
|
|
75
|
+
throw err
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/** Returns a bound PostToConnectionFn for dependency injection */
|
|
80
|
+
asFunction(): PostToConnectionFn {
|
|
81
|
+
return this.postToConnection.bind(this)
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { WebSocket } from 'ws'
|
|
2
|
-
import type { ConnectionRegistry } from './connection-registry'
|
|
3
|
-
import type { ConnectionId, PostToConnectionFn } from './types'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Local replacement for @aws-sdk/client-apigatewaymanagementapi.
|
|
7
|
-
* Looks up the WebSocket in ConnectionRegistry and sends data directly.
|
|
8
|
-
*/
|
|
9
|
-
export class LocalGatewayClient {
|
|
10
|
-
constructor(private registry: ConnectionRegistry) {}
|
|
11
|
-
|
|
12
|
-
/** Send data to a specific connection. Throws GoneException (410) if not found. */
|
|
13
|
-
async postToConnection(connectionId: ConnectionId, data: unknown): Promise<void> {
|
|
14
|
-
const ws = this.registry.get(connectionId)
|
|
15
|
-
|
|
16
|
-
if (!ws || ws.readyState !== WebSocket.OPEN) {
|
|
17
|
-
const error = new Error(`GoneException: Connection ${connectionId} is no longer available`)
|
|
18
|
-
;(error as any).statusCode = 410
|
|
19
|
-
;(error as any).name = 'GoneException'
|
|
20
|
-
throw error
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const payload = typeof data === 'string' ? data : JSON.stringify(data)
|
|
24
|
-
ws.send(payload)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/** Returns a bound PostToConnectionFn for dependency injection */
|
|
28
|
-
asFunction(): PostToConnectionFn {
|
|
29
|
-
return this.postToConnection.bind(this)
|
|
30
|
-
}
|
|
31
|
-
}
|