@syncular/server-hono 0.0.6-158 → 0.0.6-165
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/blobs.d.ts +10 -4
- package/dist/blobs.d.ts.map +1 -1
- package/dist/blobs.js +260 -26
- package/dist/blobs.js.map +1 -1
- package/dist/console/gateway.d.ts +4 -0
- package/dist/console/gateway.d.ts.map +1 -1
- package/dist/console/gateway.js +97 -60
- package/dist/console/gateway.js.map +1 -1
- package/dist/console/route-descriptor.d.ts +6 -0
- package/dist/console/route-descriptor.d.ts.map +1 -0
- package/dist/console/route-descriptor.js +16 -0
- package/dist/console/route-descriptor.js.map +1 -0
- package/dist/console/routes.d.ts.map +1 -1
- package/dist/console/routes.js +153 -108
- package/dist/console/routes.js.map +1 -1
- package/dist/console/schema-errors.d.ts +2 -0
- package/dist/console/schema-errors.d.ts.map +1 -0
- package/dist/console/schema-errors.js +17 -0
- package/dist/console/schema-errors.js.map +1 -0
- package/dist/console/schemas.js +1 -1
- package/dist/console/schemas.js.map +1 -1
- package/dist/console/types.d.ts +32 -0
- package/dist/console/types.d.ts.map +1 -1
- package/dist/create-server.d.ts.map +1 -1
- package/dist/create-server.js +13 -10
- package/dist/create-server.js.map +1 -1
- package/dist/proxy/routes.d.ts +10 -0
- package/dist/proxy/routes.d.ts.map +1 -1
- package/dist/proxy/routes.js +57 -6
- package/dist/proxy/routes.js.map +1 -1
- package/dist/routes.d.ts +21 -0
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +338 -352
- package/dist/routes.js.map +1 -1
- package/package.json +7 -6
- package/src/__tests__/blob-routes.test.ts +286 -18
- package/src/__tests__/console-gateway-live-routes.test.ts +61 -1
- package/src/__tests__/console-routes.test.ts +30 -1
- package/src/__tests__/create-server.test.ts +237 -1
- package/src/__tests__/pull-chunk-storage.test.ts +98 -0
- package/src/blobs.ts +360 -34
- package/src/console/gateway.ts +335 -288
- package/src/console/route-descriptor.ts +22 -0
- package/src/console/routes.ts +327 -248
- package/src/console/schema-errors.ts +23 -0
- package/src/console/schemas.ts +1 -1
- package/src/console/types.ts +32 -0
- package/src/create-server.ts +13 -10
- package/src/proxy/routes.ts +73 -9
- package/src/routes.ts +449 -396
package/dist/create-server.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* - Combined sync + console routes in one call
|
|
7
7
|
*/
|
|
8
8
|
import { createConsoleEventEmitter, createConsoleRoutes, createTokenAuthenticator, } from './console/routes.js';
|
|
9
|
+
import { isBenignConsoleSchemaError } from './console/schema-errors.js';
|
|
9
10
|
import { createSyncRoutes, getSyncWebSocketConnectionManager, } from './routes.js';
|
|
10
11
|
/**
|
|
11
12
|
* Create a simplified sync server with sync and optional console routes.
|
|
@@ -47,7 +48,12 @@ export function createSyncServer(options) {
|
|
|
47
48
|
? createConsoleEventEmitter()
|
|
48
49
|
: undefined;
|
|
49
50
|
const consoleSchemaReady = isConsoleEnabled && dialect.ensureConsoleSchema
|
|
50
|
-
? dialect.ensureConsoleSchema(db)
|
|
51
|
+
? dialect.ensureConsoleSchema(db).catch((error) => {
|
|
52
|
+
if (isBenignConsoleSchemaError(error)) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
throw error;
|
|
56
|
+
})
|
|
51
57
|
: undefined;
|
|
52
58
|
// Create sync routes
|
|
53
59
|
const syncRoutes = createSyncRoutes({
|
|
@@ -64,17 +70,9 @@ export function createSyncServer(options) {
|
|
|
64
70
|
...routes,
|
|
65
71
|
websocket: upgradeWebSocket
|
|
66
72
|
? {
|
|
73
|
+
...routes?.websocket,
|
|
67
74
|
enabled: true,
|
|
68
75
|
upgradeWebSocket,
|
|
69
|
-
...(routes?.websocket?.heartbeatIntervalMs !== undefined && {
|
|
70
|
-
heartbeatIntervalMs: routes.websocket.heartbeatIntervalMs,
|
|
71
|
-
}),
|
|
72
|
-
...(routes?.websocket?.maxConnectionsTotal !== undefined && {
|
|
73
|
-
maxConnectionsTotal: routes.websocket.maxConnectionsTotal,
|
|
74
|
-
}),
|
|
75
|
-
...(routes?.websocket?.maxConnectionsPerClient !== undefined && {
|
|
76
|
-
maxConnectionsPerClient: routes.websocket.maxConnectionsPerClient,
|
|
77
|
-
}),
|
|
78
76
|
}
|
|
79
77
|
: { enabled: false },
|
|
80
78
|
},
|
|
@@ -99,6 +97,11 @@ export function createSyncServer(options) {
|
|
|
99
97
|
websocket: {
|
|
100
98
|
enabled: true,
|
|
101
99
|
upgradeWebSocket,
|
|
100
|
+
heartbeatIntervalMs: routes?.websocket?.heartbeatIntervalMs,
|
|
101
|
+
maxMessageBytes: routes?.websocket?.maxMessageBytes,
|
|
102
|
+
maxMessagesPerWindow: routes?.websocket?.maxMessagesPerWindow,
|
|
103
|
+
messageRateWindowMs: routes?.websocket?.messageRateWindowMs,
|
|
104
|
+
allowedOrigins: routes?.websocket?.allowedOrigins,
|
|
102
105
|
},
|
|
103
106
|
}),
|
|
104
107
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-server.js","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"create-server.js","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"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"}
|
package/dist/proxy/routes.d.ts
CHANGED
|
@@ -38,6 +38,16 @@ interface CreateProxyRoutesConfig<DB extends SyncCoreDb = SyncCoreDb> {
|
|
|
38
38
|
maxConnections?: number;
|
|
39
39
|
/** Idle connection timeout in ms (default: 30000) */
|
|
40
40
|
idleTimeoutMs?: number;
|
|
41
|
+
/**
|
|
42
|
+
* Maximum inbound websocket message size in bytes.
|
|
43
|
+
* Default: 1 MiB.
|
|
44
|
+
*/
|
|
45
|
+
maxMessageBytes?: number;
|
|
46
|
+
/**
|
|
47
|
+
* Optional list of allowed websocket origins.
|
|
48
|
+
* Use '*' to allow all origins.
|
|
49
|
+
*/
|
|
50
|
+
allowedOrigins?: string[] | '*';
|
|
41
51
|
}
|
|
42
52
|
/**
|
|
43
53
|
* Create Hono routes for the proxy WebSocket endpoint.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/proxy/routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EAEd,YAAY,EACZ,aAAa,EACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EACV,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC;;GAEG;AACH,UAAU,4BAA4B;IACpC,SAAS,IAAI,OAAO,CAAC;IACrB,kBAAkB,IAAI,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC;IAC5D,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5E,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAOD,UAAU,eAAe;IACvB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,uBAAuB,CAAC,EAAE,SAAS,UAAU,GAAG,UAAU;IAClE,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,0BAA0B;IAC1B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,gDAAgD;IAChD,QAAQ,EAAE,sBAAsB,CAAC;IACjC,qDAAqD;IACrD,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAC9D,2CAA2C;IAC3C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/proxy/routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EAEd,YAAY,EACZ,aAAa,EACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EACV,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC;;GAEG;AACH,UAAU,4BAA4B;IACpC,SAAS,IAAI,OAAO,CAAC;IACrB,kBAAkB,IAAI,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC;IAC5D,aAAa,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5E,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAOD,UAAU,eAAe;IACvB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,uBAAuB,CAAC,EAAE,SAAS,UAAU,GAAG,UAAU;IAClE,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,0BAA0B;IAC1B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,gDAAgD;IAChD,QAAQ,EAAE,sBAAsB,CAAC;IACjC,qDAAqD;IACrD,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAC9D,2CAA2C;IAC3C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,UAAU,EACrD,MAAM,EAAE,uBAAuB,CAAC,EAAE,CAAC,GAClC,IAAI,CAqIN;AA8CD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,IAAI,GACX,4BAA4B,GAAG,SAAS,CAE1C"}
|
package/dist/proxy/routes.js
CHANGED
|
@@ -35,6 +35,7 @@ const proxyConnectionManagerMap = new WeakMap();
|
|
|
35
35
|
*/
|
|
36
36
|
export function createProxyRoutes(config) {
|
|
37
37
|
const app = new Hono();
|
|
38
|
+
const maxMessageBytes = config.maxMessageBytes ?? 1024 * 1024;
|
|
38
39
|
const manager = new ProxyConnectionManager({
|
|
39
40
|
db: config.db,
|
|
40
41
|
dialect: config.dialect,
|
|
@@ -46,6 +47,9 @@ export function createProxyRoutes(config) {
|
|
|
46
47
|
proxyConnectionManagerMap.set(app, manager);
|
|
47
48
|
// WebSocket upgrade endpoint - using regular route since WebSocket doesn't fit OpenAPI well
|
|
48
49
|
app.get('/', async (c) => {
|
|
50
|
+
if (!isWebSocketOriginAllowed(c, config.allowedOrigins)) {
|
|
51
|
+
return c.json({ error: 'FORBIDDEN_ORIGIN' }, 403);
|
|
52
|
+
}
|
|
49
53
|
// Authenticate before upgrade
|
|
50
54
|
const auth = await config.authenticate(c);
|
|
51
55
|
if (!auth) {
|
|
@@ -70,9 +74,16 @@ export function createProxyRoutes(config) {
|
|
|
70
74
|
},
|
|
71
75
|
async onMessage(evt, ws) {
|
|
72
76
|
try {
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
77
|
+
const messageBytes = measureWebSocketMessageBytes(evt.data);
|
|
78
|
+
if (messageBytes > maxMessageBytes) {
|
|
79
|
+
ws.send(JSON.stringify({
|
|
80
|
+
type: 'error',
|
|
81
|
+
error: `Message exceeds max size (${maxMessageBytes} bytes)`,
|
|
82
|
+
}));
|
|
83
|
+
ws.close(1009, 'Message too large');
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const data = decodeWebSocketData(evt.data);
|
|
76
87
|
const message = JSON.parse(data);
|
|
77
88
|
// Handle handshake
|
|
78
89
|
if (message.type === 'handshake') {
|
|
@@ -104,9 +115,7 @@ export function createProxyRoutes(config) {
|
|
|
104
115
|
catch (err) {
|
|
105
116
|
// Send error response if we can parse the message ID
|
|
106
117
|
try {
|
|
107
|
-
const parsed = JSON.parse(
|
|
108
|
-
? evt.data
|
|
109
|
-
: new TextDecoder().decode(evt.data));
|
|
118
|
+
const parsed = JSON.parse(decodeWebSocketData(evt.data));
|
|
110
119
|
if (parsed.id) {
|
|
111
120
|
ws.send(JSON.stringify({
|
|
112
121
|
id: parsed.id,
|
|
@@ -138,6 +147,48 @@ export function createProxyRoutes(config) {
|
|
|
138
147
|
});
|
|
139
148
|
return app;
|
|
140
149
|
}
|
|
150
|
+
function isWebSocketOriginAllowed(c, allowedOrigins) {
|
|
151
|
+
if (!allowedOrigins)
|
|
152
|
+
return true;
|
|
153
|
+
if (allowedOrigins === '*')
|
|
154
|
+
return true;
|
|
155
|
+
const origin = c.req.header('origin');
|
|
156
|
+
if (!origin)
|
|
157
|
+
return false;
|
|
158
|
+
try {
|
|
159
|
+
const normalizedOrigin = new URL(origin).origin;
|
|
160
|
+
return allowedOrigins.includes(normalizedOrigin);
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
function measureWebSocketMessageBytes(data) {
|
|
167
|
+
if (typeof data === 'string') {
|
|
168
|
+
return new TextEncoder().encode(data).byteLength;
|
|
169
|
+
}
|
|
170
|
+
if (data instanceof ArrayBuffer) {
|
|
171
|
+
return data.byteLength;
|
|
172
|
+
}
|
|
173
|
+
if (ArrayBuffer.isView(data)) {
|
|
174
|
+
return data.byteLength;
|
|
175
|
+
}
|
|
176
|
+
if (typeof Blob !== 'undefined' && data instanceof Blob) {
|
|
177
|
+
return data.size;
|
|
178
|
+
}
|
|
179
|
+
return new TextEncoder().encode(String(data)).byteLength;
|
|
180
|
+
}
|
|
181
|
+
function decodeWebSocketData(data) {
|
|
182
|
+
if (typeof data === 'string')
|
|
183
|
+
return data;
|
|
184
|
+
if (data instanceof ArrayBuffer)
|
|
185
|
+
return new TextDecoder().decode(data);
|
|
186
|
+
if (ArrayBuffer.isView(data)) {
|
|
187
|
+
const view = data;
|
|
188
|
+
return new TextDecoder().decode(view);
|
|
189
|
+
}
|
|
190
|
+
return String(data);
|
|
191
|
+
}
|
|
141
192
|
/**
|
|
142
193
|
* Get the ProxyConnectionManager from a proxy routes instance.
|
|
143
194
|
*/
|
package/dist/proxy/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/proxy/routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAa9D,MAAM,yBAAyB,GAAG,IAAI,OAAO,EAG1C,CAAC;
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/proxy/routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAa9D,MAAM,yBAAyB,GAAG,IAAI,OAAO,EAG1C,CAAC;AAkCJ;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAmC,EAC7B;IACN,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,IAAI,GAAG,IAAI,CAAC;IAE9D,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC;QACzC,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC,CAAC,CAAC;IAEH,8CAA8C;IAC9C,yBAAyB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAE5C,4FAA4F;IAC5F,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QACxB,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;QAED,8BAA8B;QAC9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YACzB,YAAY,CAAC;gBACX,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,MAAM,EAAE,iBAAiB;aAC1B,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;QAED,YAAY,CAAC;YACX,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,IAAI,CAAC,OAAO;SACrB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE;YAChC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;gBAChB,gDAAgD;YAD/B,CAElB;YAED,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE;gBACvB,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC5D,IAAI,YAAY,GAAG,eAAe,EAAE,CAAC;wBACnC,EAAE,CAAC,IAAI,CACL,IAAI,CAAC,SAAS,CAAC;4BACb,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,6BAA6B,eAAe,SAAS;yBAC7D,CAAC,CACH,CAAC;wBACF,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;wBACpC,OAAO;oBACT,CAAC;oBAED,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAE3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAEjC,mBAAmB;oBACnB,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBACjC,MAAM,SAAS,GAAG,OAAyB,CAAC;wBAE5C,gEAAgE;wBAChE,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;4BACvC,MAAM,GAAG,GAAsB;gCAC7B,IAAI,EAAE,eAAe;gCACrB,EAAE,EAAE,KAAK;gCACT,KAAK,EAAE,mBAAmB;6BAC3B,CAAC;4BACF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;4BAC7B,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;4BAC/B,OAAO;wBACT,CAAC;wBAED,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;wBAEhC,MAAM,GAAG,GAAsB;4BAC7B,IAAI,EAAE,eAAe;4BACrB,EAAE,EAAE,IAAI;yBACT,CAAC;wBACF,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC7B,OAAO;oBACT,CAAC;oBAED,wBAAwB;oBACxB,MAAM,YAAY,GAAG,OAAuB,CAAC;oBAC7C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;oBAC/D,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,qDAAqD;oBACrD,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;wBACzD,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;4BACd,EAAE,CAAC,IAAI,CACL,IAAI,CAAC,SAAS,CAAC;gCACb,EAAE,EAAE,MAAM,CAAC,EAAE;gCACb,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;6BAC5D,CAAC,CACH,CAAC;wBACJ,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,sBAAsB;oBACxB,CAAC;gBACH,CAAC;YAAA,CACF;YAED,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE;gBACtB,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC7B,YAAY,CAAC;oBACX,KAAK,EAAE,kBAAkB;oBACzB,MAAM,EAAE,IAAI,CAAC,OAAO;iBACrB,CAAC,CAAC;YAAA,CACJ;YAED,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE;gBACtB,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC7B,YAAY,CAAC;oBACX,KAAK,EAAE,aAAa;oBACpB,MAAM,EAAE,IAAI,CAAC,OAAO;iBACrB,CAAC,CAAC;YAAA,CACJ;SACF,CAAC,CAAC;IAAA,CACJ,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AAAA,CACZ;AAED,SAAS,wBAAwB,CAC/B,CAAU,EACV,cAA+B,EACtB;IACT,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,cAAc,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAExC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QAChD,OAAO,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AAAA,CACF;AAED,SAAS,4BAA4B,CAAC,IAAa,EAAU;IAC3D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;IACnD,CAAC;IACD,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;AAAA,CAC1D;AAED,SAAS,mBAAmB,CAAC,IAAa,EAAU;IAClD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,IAAI,YAAY,WAAW;QAAE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvE,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAkB,CAAC;QAChC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AAAA,CACrB;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAY,EAC8B;IAC1C,OAAO,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAAA,CAC9C"}
|
package/dist/routes.d.ts
CHANGED
|
@@ -38,6 +38,27 @@ export interface SyncWebSocketConfig {
|
|
|
38
38
|
* Default: 3
|
|
39
39
|
*/
|
|
40
40
|
maxConnectionsPerClient?: number;
|
|
41
|
+
/**
|
|
42
|
+
* Maximum inbound websocket message size in bytes.
|
|
43
|
+
* Default: 1 MiB.
|
|
44
|
+
*/
|
|
45
|
+
maxMessageBytes?: number;
|
|
46
|
+
/**
|
|
47
|
+
* Maximum inbound websocket messages allowed per connection within one window.
|
|
48
|
+
* Default: 120 messages.
|
|
49
|
+
* Set to 0 or a negative value to disable rate limiting.
|
|
50
|
+
*/
|
|
51
|
+
maxMessagesPerWindow?: number;
|
|
52
|
+
/**
|
|
53
|
+
* Window size in milliseconds for inbound websocket message rate limiting.
|
|
54
|
+
* Default: 10000 ms.
|
|
55
|
+
*/
|
|
56
|
+
messageRateWindowMs?: number;
|
|
57
|
+
/**
|
|
58
|
+
* Optional list of allowed websocket origins.
|
|
59
|
+
* Use '*' to allow all origins.
|
|
60
|
+
*/
|
|
61
|
+
allowedOrigins?: string[] | '*';
|
|
41
62
|
}
|
|
42
63
|
export interface SyncRoutesConfigWithRateLimit {
|
|
43
64
|
/**
|
package/dist/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
|