@syncular/server-hono 0.0.6-95 → 0.2.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 +5 -23
- package/dist/admin-page.d.ts +14 -0
- package/dist/admin-page.js +217 -0
- package/dist/admin.d.ts +39 -0
- package/dist/admin.js +142 -0
- package/dist/index.d.ts +16 -14
- package/dist/index.js +134 -23
- package/package.json +19 -53
- package/src/admin-page.ts +217 -0
- package/src/admin.ts +193 -0
- package/src/index.ts +175 -31
- package/dist/api-key-auth.d.ts +0 -49
- package/dist/api-key-auth.d.ts.map +0 -1
- package/dist/api-key-auth.js +0 -110
- package/dist/api-key-auth.js.map +0 -1
- package/dist/blobs.d.ts +0 -69
- package/dist/blobs.d.ts.map +0 -1
- package/dist/blobs.js +0 -383
- package/dist/blobs.js.map +0 -1
- package/dist/console/gateway.d.ts +0 -33
- package/dist/console/gateway.d.ts.map +0 -1
- package/dist/console/gateway.js +0 -2534
- package/dist/console/gateway.js.map +0 -1
- package/dist/console/index.d.ts +0 -11
- package/dist/console/index.d.ts.map +0 -1
- package/dist/console/index.js +0 -11
- package/dist/console/index.js.map +0 -1
- package/dist/console/routes.d.ts +0 -33
- package/dist/console/routes.d.ts.map +0 -1
- package/dist/console/routes.js +0 -2890
- package/dist/console/routes.js.map +0 -1
- package/dist/console/schemas.d.ts +0 -490
- package/dist/console/schemas.d.ts.map +0 -1
- package/dist/console/schemas.js +0 -303
- package/dist/console/schemas.js.map +0 -1
- package/dist/console/types.d.ts +0 -142
- package/dist/console/types.d.ts.map +0 -1
- package/dist/console/types.js +0 -2
- package/dist/console/types.js.map +0 -1
- package/dist/console/ui.d.ts +0 -38
- package/dist/console/ui.d.ts.map +0 -1
- package/dist/console/ui.js +0 -43
- package/dist/console/ui.js.map +0 -1
- package/dist/create-server.d.ts +0 -68
- package/dist/create-server.d.ts.map +0 -1
- package/dist/create-server.js +0 -109
- package/dist/create-server.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/openapi.d.ts +0 -45
- package/dist/openapi.d.ts.map +0 -1
- package/dist/openapi.js +0 -59
- package/dist/openapi.js.map +0 -1
- package/dist/proxy/connection-manager.d.ts +0 -78
- package/dist/proxy/connection-manager.d.ts.map +0 -1
- package/dist/proxy/connection-manager.js +0 -251
- package/dist/proxy/connection-manager.js.map +0 -1
- package/dist/proxy/index.d.ts +0 -8
- package/dist/proxy/index.d.ts.map +0 -1
- package/dist/proxy/index.js +0 -8
- package/dist/proxy/index.js.map +0 -1
- package/dist/proxy/routes.d.ts +0 -74
- package/dist/proxy/routes.d.ts.map +0 -1
- package/dist/proxy/routes.js +0 -147
- package/dist/proxy/routes.js.map +0 -1
- package/dist/rate-limit.d.ts +0 -101
- package/dist/rate-limit.d.ts.map +0 -1
- package/dist/rate-limit.js +0 -186
- package/dist/rate-limit.js.map +0 -1
- package/dist/routes.d.ts +0 -145
- package/dist/routes.d.ts.map +0 -1
- package/dist/routes.js +0 -1471
- package/dist/routes.js.map +0 -1
- package/dist/ws.d.ts +0 -235
- package/dist/ws.d.ts.map +0 -1
- package/dist/ws.js +0 -614
- package/dist/ws.js.map +0 -1
- package/src/__tests__/blob-routes.test.ts +0 -424
- package/src/__tests__/console-gateway-live-routes.test.ts +0 -297
- package/src/__tests__/console-gateway-routes.test.ts +0 -1364
- package/src/__tests__/console-routes.test.ts +0 -1543
- package/src/__tests__/console-ui.test.ts +0 -114
- package/src/__tests__/create-server.test.ts +0 -342
- package/src/__tests__/pull-chunk-storage.test.ts +0 -576
- package/src/__tests__/rate-limit.test.ts +0 -78
- package/src/__tests__/realtime-bridge.test.ts +0 -135
- package/src/__tests__/sync-rate-limit-routing.test.ts +0 -185
- package/src/__tests__/ws-connection-manager.test.ts +0 -176
- package/src/api-key-auth.ts +0 -179
- package/src/blobs.ts +0 -534
- package/src/console/gateway.ts +0 -3603
- package/src/console/index.ts +0 -11
- package/src/console/routes.ts +0 -3748
- package/src/console/schemas.ts +0 -434
- package/src/console/types.ts +0 -151
- package/src/console/ui.ts +0 -100
- package/src/create-server.ts +0 -206
- package/src/openapi.ts +0 -74
- package/src/proxy/connection-manager.ts +0 -340
- package/src/proxy/index.ts +0 -8
- package/src/proxy/routes.ts +0 -223
- package/src/rate-limit.ts +0 -321
- package/src/routes.ts +0 -2007
- package/src/ws.ts +0 -802
package/dist/create-server.js
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Simplified server factory for Hono
|
|
3
|
-
*
|
|
4
|
-
* Breaking changes from legacy createSyncRoutes:
|
|
5
|
-
* - sync contract instead of top-level handlers/authenticate
|
|
6
|
-
* - Combined sync + console routes in one call
|
|
7
|
-
*/
|
|
8
|
-
import { createConsoleEventEmitter, createConsoleRoutes, createTokenAuthenticator, } from './console/routes.js';
|
|
9
|
-
import { createSyncRoutes, getSyncWebSocketConnectionManager, } from './routes.js';
|
|
10
|
-
/**
|
|
11
|
-
* Create a simplified sync server with sync and optional console routes.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```typescript
|
|
15
|
-
* // With sync contract
|
|
16
|
-
* const { syncRoutes } = createSyncServer({
|
|
17
|
-
* db,
|
|
18
|
-
* dialect,
|
|
19
|
-
* sync,
|
|
20
|
-
* });
|
|
21
|
-
*
|
|
22
|
-
* // With custom handlers
|
|
23
|
-
* const { syncRoutes, consoleRoutes } = createSyncServer({
|
|
24
|
-
* db,
|
|
25
|
-
* dialect,
|
|
26
|
-
* sync,
|
|
27
|
-
* console: { token: process.env.CONSOLE_TOKEN },
|
|
28
|
-
* });
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
export function createSyncServer(options) {
|
|
32
|
-
const { db, dialect, sync, chunkStorage, scopeCache, routes, upgradeWebSocket, console: consoleConfig, } = options;
|
|
33
|
-
if (sync.handlers.length === 0) {
|
|
34
|
-
throw new Error('At least one handler must be provided');
|
|
35
|
-
}
|
|
36
|
-
const resolvedConsoleConfig = consoleConfig === false || consoleConfig === undefined
|
|
37
|
-
? undefined
|
|
38
|
-
: consoleConfig;
|
|
39
|
-
const isConsoleEnabled = Boolean(resolvedConsoleConfig);
|
|
40
|
-
const consoleToken = isConsoleEnabled
|
|
41
|
-
? (resolvedConsoleConfig?.token ?? process.env.SYNC_CONSOLE_TOKEN)
|
|
42
|
-
: undefined;
|
|
43
|
-
if (isConsoleEnabled && !consoleToken) {
|
|
44
|
-
throw new Error('Console is enabled but no token is configured. Set `console.token` or SYNC_CONSOLE_TOKEN.');
|
|
45
|
-
}
|
|
46
|
-
const consoleEventEmitter = isConsoleEnabled
|
|
47
|
-
? createConsoleEventEmitter()
|
|
48
|
-
: undefined;
|
|
49
|
-
const consoleSchemaReady = isConsoleEnabled && dialect.ensureConsoleSchema
|
|
50
|
-
? dialect.ensureConsoleSchema(db)
|
|
51
|
-
: undefined;
|
|
52
|
-
// Create sync routes
|
|
53
|
-
const syncRoutes = createSyncRoutes({
|
|
54
|
-
db,
|
|
55
|
-
dialect,
|
|
56
|
-
handlers: sync.handlers,
|
|
57
|
-
authenticate: async (context) => sync.authenticate(context.req.raw),
|
|
58
|
-
chunkStorage,
|
|
59
|
-
scopeCache,
|
|
60
|
-
consoleLiveEmitter: consoleEventEmitter,
|
|
61
|
-
consoleSchemaReady,
|
|
62
|
-
sync: {
|
|
63
|
-
...routes,
|
|
64
|
-
websocket: upgradeWebSocket
|
|
65
|
-
? {
|
|
66
|
-
enabled: true,
|
|
67
|
-
upgradeWebSocket,
|
|
68
|
-
...(routes?.websocket?.heartbeatIntervalMs !== undefined && {
|
|
69
|
-
heartbeatIntervalMs: routes.websocket.heartbeatIntervalMs,
|
|
70
|
-
}),
|
|
71
|
-
...(routes?.websocket?.maxConnectionsTotal !== undefined && {
|
|
72
|
-
maxConnectionsTotal: routes.websocket.maxConnectionsTotal,
|
|
73
|
-
}),
|
|
74
|
-
...(routes?.websocket?.maxConnectionsPerClient !== undefined && {
|
|
75
|
-
maxConnectionsPerClient: routes.websocket.maxConnectionsPerClient,
|
|
76
|
-
}),
|
|
77
|
-
}
|
|
78
|
-
: { enabled: false },
|
|
79
|
-
},
|
|
80
|
-
});
|
|
81
|
-
// Console is opt-in; disable unless explicitly configured.
|
|
82
|
-
if (!resolvedConsoleConfig) {
|
|
83
|
-
return { syncRoutes };
|
|
84
|
-
}
|
|
85
|
-
const consoleRoutes = createConsoleRoutes({
|
|
86
|
-
db,
|
|
87
|
-
dialect,
|
|
88
|
-
handlers: sync.handlers,
|
|
89
|
-
authenticate: createTokenAuthenticator(consoleToken),
|
|
90
|
-
corsOrigins: resolvedConsoleConfig.corsOrigins,
|
|
91
|
-
eventEmitter: consoleEventEmitter,
|
|
92
|
-
consoleSchemaReady,
|
|
93
|
-
wsConnectionManager: getSyncWebSocketConnectionManager(syncRoutes),
|
|
94
|
-
metrics: resolvedConsoleConfig.metrics,
|
|
95
|
-
blobBucket: resolvedConsoleConfig.blobBucket,
|
|
96
|
-
...(upgradeWebSocket && {
|
|
97
|
-
websocket: {
|
|
98
|
-
enabled: true,
|
|
99
|
-
upgradeWebSocket,
|
|
100
|
-
},
|
|
101
|
-
}),
|
|
102
|
-
});
|
|
103
|
-
return {
|
|
104
|
-
syncRoutes,
|
|
105
|
-
consoleRoutes,
|
|
106
|
-
consoleEventEmitter,
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
//# sourceMappingURL=create-server.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-server.js","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"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"}
|
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;;;;;GAKG;AAGH,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,KAAK,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGzE,cAAc,WAAW,CAAC;AAG1B,OAAO,EACL,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AAGzB,cAAc,WAAW,CAAC;AAG1B,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,OAAO,EACL,KAAK,uBAAuB,EAC5B,gBAAgB,EAChB,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,UAAU,CAAC;AAGlB,cAAc,MAAM,CAAC"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAe;AACf,cAAc,gBAAgB,CAAC;AAE/B,cAAc;AACd,OAAO,EAAgC,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEzE,UAAU;AACV,cAAc,WAAW,CAAC;AAE1B,4BAA4B;AAC5B,OAAO,EACL,gBAAgB,GAGjB,MAAM,iBAAiB,CAAC;AAEzB,oBAAoB;AACpB,cAAc,WAAW,CAAC;AAE1B,QAAQ;AACR,cAAc,SAAS,CAAC;AAExB,gBAAgB;AAChB,cAAc,cAAc,CAAC;AAE7B,0BAA0B;AAC1B,OAAO,EAEL,gBAAgB,EAChB,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,UAAU,CAAC;AAElB,sCAAsC;AACtC,cAAc,MAAM,CAAC"}
|
package/dist/openapi.d.ts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/server-hono - OpenAPI Spec Export
|
|
3
|
-
*
|
|
4
|
-
* Provides utilities for generating and serving OpenAPI specifications.
|
|
5
|
-
*/
|
|
6
|
-
import type { Hono } from 'hono';
|
|
7
|
-
interface OpenAPIConfig {
|
|
8
|
-
title?: string;
|
|
9
|
-
version?: string;
|
|
10
|
-
description?: string;
|
|
11
|
-
servers?: Array<{
|
|
12
|
-
url: string;
|
|
13
|
-
description?: string;
|
|
14
|
-
}>;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Create an OpenAPI spec handler that can be used with Hono routes.
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```typescript
|
|
21
|
-
* import { Hono } from 'hono';
|
|
22
|
-
* import { createSyncRoutes, createConsoleRoutes, createOpenAPIHandler } from '@syncular/server-hono';
|
|
23
|
-
*
|
|
24
|
-
* const app = new Hono();
|
|
25
|
-
* const syncRoutes = createSyncRoutes({ ... });
|
|
26
|
-
* const consoleRoutes = createConsoleRoutes({ ... });
|
|
27
|
-
*
|
|
28
|
-
* app.route('/sync', syncRoutes);
|
|
29
|
-
* app.route('/console', consoleRoutes);
|
|
30
|
-
*
|
|
31
|
-
* // Add OpenAPI spec endpoint
|
|
32
|
-
* app.get('/openapi.json', createOpenAPIHandler(app, {
|
|
33
|
-
* title: 'Syncular API',
|
|
34
|
-
* version: '1.0.0',
|
|
35
|
-
* }));
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
export declare function createOpenAPIHandler(app: Hono, config?: OpenAPIConfig): import("hono").MiddlewareHandler<import("hono/types").BlankEnv, "/", import("hono/types").BlankInput>;
|
|
39
|
-
/**
|
|
40
|
-
* Generate OpenAPI document from a Hono app instance.
|
|
41
|
-
* This is useful for build-time spec generation.
|
|
42
|
-
*/
|
|
43
|
-
export declare function generateOpenAPIDocument(app: Hono, config?: OpenAPIConfig): Promise<unknown>;
|
|
44
|
-
export {};
|
|
45
|
-
//# sourceMappingURL=openapi.d.ts.map
|
package/dist/openapi.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,GAAE,aAAkB,yGAazE;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,IAAI,EACT,MAAM,GAAE,aAAkB,GACzB,OAAO,CAAC,OAAO,CAAC,CAalB"}
|
package/dist/openapi.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/server-hono - OpenAPI Spec Export
|
|
3
|
-
*
|
|
4
|
-
* Provides utilities for generating and serving OpenAPI specifications.
|
|
5
|
-
*/
|
|
6
|
-
import { generateSpecs, openAPIRouteHandler } from 'hono-openapi';
|
|
7
|
-
/**
|
|
8
|
-
* Create an OpenAPI spec handler that can be used with Hono routes.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```typescript
|
|
12
|
-
* import { Hono } from 'hono';
|
|
13
|
-
* import { createSyncRoutes, createConsoleRoutes, createOpenAPIHandler } from '@syncular/server-hono';
|
|
14
|
-
*
|
|
15
|
-
* const app = new Hono();
|
|
16
|
-
* const syncRoutes = createSyncRoutes({ ... });
|
|
17
|
-
* const consoleRoutes = createConsoleRoutes({ ... });
|
|
18
|
-
*
|
|
19
|
-
* app.route('/sync', syncRoutes);
|
|
20
|
-
* app.route('/console', consoleRoutes);
|
|
21
|
-
*
|
|
22
|
-
* // Add OpenAPI spec endpoint
|
|
23
|
-
* app.get('/openapi.json', createOpenAPIHandler(app, {
|
|
24
|
-
* title: 'Syncular API',
|
|
25
|
-
* version: '1.0.0',
|
|
26
|
-
* }));
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export function createOpenAPIHandler(app, config = {}) {
|
|
30
|
-
return openAPIRouteHandler(app, {
|
|
31
|
-
documentation: {
|
|
32
|
-
info: {
|
|
33
|
-
title: config.title ?? 'Syncular API',
|
|
34
|
-
version: config.version ?? '1.0.0',
|
|
35
|
-
description: config.description ??
|
|
36
|
-
'Sync infrastructure API for real-time data synchronization',
|
|
37
|
-
},
|
|
38
|
-
servers: config.servers,
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Generate OpenAPI document from a Hono app instance.
|
|
44
|
-
* This is useful for build-time spec generation.
|
|
45
|
-
*/
|
|
46
|
-
export async function generateOpenAPIDocument(app, config = {}) {
|
|
47
|
-
return generateSpecs(app, {
|
|
48
|
-
documentation: {
|
|
49
|
-
info: {
|
|
50
|
-
title: config.title ?? 'Syncular API',
|
|
51
|
-
version: config.version ?? '1.0.0',
|
|
52
|
-
description: config.description ??
|
|
53
|
-
'Sync infrastructure API for real-time data synchronization',
|
|
54
|
-
},
|
|
55
|
-
servers: config.servers,
|
|
56
|
-
},
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=openapi.js.map
|
package/dist/openapi.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openapi.js","sourceRoot":"","sources":["../src/openapi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AASlE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAS,EAAE,MAAM,GAAkB,EAAE,EAAE;IAC1E,OAAO,mBAAmB,CAAC,GAAG,EAAE;QAC9B,aAAa,EAAE;YACb,IAAI,EAAE;gBACJ,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,cAAc;gBACrC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO;gBAClC,WAAW,EACT,MAAM,CAAC,WAAW;oBAClB,4DAA4D;aAC/D;YACD,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB;KACF,CAAC,CAAC;AAAA,CACJ;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,GAAS,EACT,MAAM,GAAkB,EAAE,EACR;IAClB,OAAO,aAAa,CAAC,GAAG,EAAE;QACxB,aAAa,EAAE;YACb,IAAI,EAAE;gBACJ,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,cAAc;gBACrC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO;gBAClC,WAAW,EACT,MAAM,CAAC,WAAW;oBAClB,4DAA4D;aAC/D;YACD,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB;KACF,CAAC,CAAC;AAAA,CACJ"}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/server-hono - Proxy Connection Manager
|
|
3
|
-
*
|
|
4
|
-
* Manages WebSocket connections for the proxy.
|
|
5
|
-
*/
|
|
6
|
-
import type { ProxyHandshake, ProxyMessage, ProxyResponse } from '@syncular/core';
|
|
7
|
-
import type { ProxyHandlerCollection, ServerSyncDialect, SyncCoreDb } from '@syncular/server';
|
|
8
|
-
import type { WSContext } from 'hono/ws';
|
|
9
|
-
import type { Kysely, Transaction } from 'kysely';
|
|
10
|
-
export interface ProxyConnectionManagerConfig<DB extends SyncCoreDb = SyncCoreDb> {
|
|
11
|
-
/** Database connection */
|
|
12
|
-
db: Kysely<DB>;
|
|
13
|
-
/** Server sync dialect */
|
|
14
|
-
dialect: ServerSyncDialect;
|
|
15
|
-
/** Proxy table handlers for oplog generation */
|
|
16
|
-
handlers: ProxyHandlerCollection;
|
|
17
|
-
/** Maximum concurrent connections (default: 100) */
|
|
18
|
-
maxConnections?: number;
|
|
19
|
-
/** Idle connection timeout in ms (default: 30000) */
|
|
20
|
-
idleTimeoutMs?: number;
|
|
21
|
-
}
|
|
22
|
-
interface ProxyConnectionState<DB extends SyncCoreDb> {
|
|
23
|
-
ws: WSContext;
|
|
24
|
-
actorId: string;
|
|
25
|
-
clientId: string;
|
|
26
|
-
transaction: Transaction<DB> | null;
|
|
27
|
-
lastActivity: number;
|
|
28
|
-
idleTimer: ReturnType<typeof setTimeout> | null;
|
|
29
|
-
/** Transaction promise resolve callback */
|
|
30
|
-
__resolveTransaction?: () => void;
|
|
31
|
-
/** Transaction promise reject callback */
|
|
32
|
-
__rejectTransaction?: (error: Error) => void;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Manages proxy WebSocket connections and their state.
|
|
36
|
-
*/
|
|
37
|
-
export declare class ProxyConnectionManager<DB extends SyncCoreDb = SyncCoreDb> {
|
|
38
|
-
private connections;
|
|
39
|
-
private config;
|
|
40
|
-
private idleTimeoutMs;
|
|
41
|
-
private maxConnections;
|
|
42
|
-
constructor(config: ProxyConnectionManagerConfig<DB>);
|
|
43
|
-
/**
|
|
44
|
-
* Check if a new connection can be accepted.
|
|
45
|
-
*/
|
|
46
|
-
canAccept(): boolean;
|
|
47
|
-
/**
|
|
48
|
-
* Get the current connection count.
|
|
49
|
-
*/
|
|
50
|
-
getConnectionCount(): number;
|
|
51
|
-
/**
|
|
52
|
-
* Handle the handshake message and register the connection.
|
|
53
|
-
*/
|
|
54
|
-
register(ws: WSContext, handshake: ProxyHandshake): ProxyConnectionState<DB>;
|
|
55
|
-
/**
|
|
56
|
-
* Get the connection state for a WebSocket.
|
|
57
|
-
*/
|
|
58
|
-
get(ws: WSContext): ProxyConnectionState<DB> | undefined;
|
|
59
|
-
/**
|
|
60
|
-
* Unregister and cleanup a connection.
|
|
61
|
-
*/
|
|
62
|
-
unregister(ws: WSContext): Promise<void>;
|
|
63
|
-
/**
|
|
64
|
-
* Handle a proxy message and return the response.
|
|
65
|
-
*/
|
|
66
|
-
handleMessage(ws: WSContext, message: ProxyMessage): Promise<ProxyResponse>;
|
|
67
|
-
private handleBegin;
|
|
68
|
-
private handleCommit;
|
|
69
|
-
private handleRollback;
|
|
70
|
-
private handleQuery;
|
|
71
|
-
private resetIdleTimer;
|
|
72
|
-
/**
|
|
73
|
-
* Close all connections.
|
|
74
|
-
*/
|
|
75
|
-
closeAll(): Promise<void>;
|
|
76
|
-
}
|
|
77
|
-
export {};
|
|
78
|
-
//# sourceMappingURL=connection-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../src/proxy/connection-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAEV,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,EACX,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAElD,MAAM,WAAW,4BAA4B,CAC3C,EAAE,SAAS,UAAU,GAAG,UAAU;IAElC,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,0BAA0B;IAC1B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,gDAAgD;IAChD,QAAQ,EAAE,sBAAsB,CAAC;IACjC,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,oBAAoB,CAAC,EAAE,SAAS,UAAU;IAClD,EAAE,EAAE,SAAS,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;IAChD,2CAA2C;IAC3C,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,0CAA0C;IAC1C,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,qBAAa,sBAAsB,CAAC,EAAE,SAAS,UAAU,GAAG,UAAU;IACpE,OAAO,CAAC,WAAW,CAAkD;IACrE,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;IAE/B,YAAY,MAAM,EAAE,4BAA4B,CAAC,EAAE,CAAC,EAInD;IAED;;OAEG;IACH,SAAS,IAAI,OAAO,CAEnB;IAED;;OAEG;IACH,kBAAkB,IAAI,MAAM,CAE3B;IAED;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAc3E;IAED;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,oBAAoB,CAAC,EAAE,CAAC,GAAG,SAAS,CAEvD;IAED;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB7C;IAED;;OAEG;IACG,aAAa,CACjB,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,aAAa,CAAC,CA0CxB;YAEa,WAAW;YAoCX,YAAY;YA2BZ,cAAc;YA2Bd,WAAW;IAkCzB,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAa9B;CACF"}
|
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/server-hono - Proxy Connection Manager
|
|
3
|
-
*
|
|
4
|
-
* Manages WebSocket connections for the proxy.
|
|
5
|
-
*/
|
|
6
|
-
import { executeProxyQuery } from '@syncular/server';
|
|
7
|
-
/**
|
|
8
|
-
* Manages proxy WebSocket connections and their state.
|
|
9
|
-
*/
|
|
10
|
-
export class ProxyConnectionManager {
|
|
11
|
-
connections = new Map();
|
|
12
|
-
config;
|
|
13
|
-
idleTimeoutMs;
|
|
14
|
-
maxConnections;
|
|
15
|
-
constructor(config) {
|
|
16
|
-
this.config = config;
|
|
17
|
-
this.idleTimeoutMs = config.idleTimeoutMs ?? 30000;
|
|
18
|
-
this.maxConnections = config.maxConnections ?? 100;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Check if a new connection can be accepted.
|
|
22
|
-
*/
|
|
23
|
-
canAccept() {
|
|
24
|
-
return this.connections.size < this.maxConnections;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Get the current connection count.
|
|
28
|
-
*/
|
|
29
|
-
getConnectionCount() {
|
|
30
|
-
return this.connections.size;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Handle the handshake message and register the connection.
|
|
34
|
-
*/
|
|
35
|
-
register(ws, handshake) {
|
|
36
|
-
const state = {
|
|
37
|
-
ws,
|
|
38
|
-
actorId: handshake.actorId,
|
|
39
|
-
clientId: handshake.clientId,
|
|
40
|
-
transaction: null,
|
|
41
|
-
lastActivity: Date.now(),
|
|
42
|
-
idleTimer: null,
|
|
43
|
-
};
|
|
44
|
-
this.connections.set(ws, state);
|
|
45
|
-
this.resetIdleTimer(state);
|
|
46
|
-
return state;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Get the connection state for a WebSocket.
|
|
50
|
-
*/
|
|
51
|
-
get(ws) {
|
|
52
|
-
return this.connections.get(ws);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Unregister and cleanup a connection.
|
|
56
|
-
*/
|
|
57
|
-
async unregister(ws) {
|
|
58
|
-
const state = this.connections.get(ws);
|
|
59
|
-
if (!state)
|
|
60
|
-
return;
|
|
61
|
-
// Clear idle timer
|
|
62
|
-
if (state.idleTimer) {
|
|
63
|
-
clearTimeout(state.idleTimer);
|
|
64
|
-
}
|
|
65
|
-
// Rollback any pending transaction by rejecting the promise
|
|
66
|
-
if (state.transaction) {
|
|
67
|
-
const rejectTransaction = state.__rejectTransaction;
|
|
68
|
-
if (rejectTransaction) {
|
|
69
|
-
rejectTransaction(new Error('Connection closed'));
|
|
70
|
-
}
|
|
71
|
-
state.transaction = null;
|
|
72
|
-
state.__resolveTransaction = undefined;
|
|
73
|
-
state.__rejectTransaction = undefined;
|
|
74
|
-
}
|
|
75
|
-
this.connections.delete(ws);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Handle a proxy message and return the response.
|
|
79
|
-
*/
|
|
80
|
-
async handleMessage(ws, message) {
|
|
81
|
-
const state = this.connections.get(ws);
|
|
82
|
-
if (!state) {
|
|
83
|
-
return {
|
|
84
|
-
id: message.id,
|
|
85
|
-
type: 'error',
|
|
86
|
-
error: 'Connection not registered',
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
// Update activity and reset idle timer
|
|
90
|
-
state.lastActivity = Date.now();
|
|
91
|
-
this.resetIdleTimer(state);
|
|
92
|
-
try {
|
|
93
|
-
switch (message.type) {
|
|
94
|
-
case 'begin':
|
|
95
|
-
return await this.handleBegin(state, message);
|
|
96
|
-
case 'commit':
|
|
97
|
-
return await this.handleCommit(state, message);
|
|
98
|
-
case 'rollback':
|
|
99
|
-
return await this.handleRollback(state, message);
|
|
100
|
-
case 'query':
|
|
101
|
-
return await this.handleQuery(state, message);
|
|
102
|
-
default:
|
|
103
|
-
return {
|
|
104
|
-
id: message.id,
|
|
105
|
-
type: 'error',
|
|
106
|
-
error: `Unknown message type: ${message.type}`,
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
catch (err) {
|
|
111
|
-
return {
|
|
112
|
-
id: message.id,
|
|
113
|
-
type: 'error',
|
|
114
|
-
error: err instanceof Error ? err.message : 'Unknown error',
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
async handleBegin(state, message) {
|
|
119
|
-
if (state.transaction) {
|
|
120
|
-
return {
|
|
121
|
-
id: message.id,
|
|
122
|
-
type: 'error',
|
|
123
|
-
error: 'Transaction already in progress',
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
// Start a transaction and keep it open
|
|
127
|
-
// We use a workaround since Kysely doesn't expose raw transaction control
|
|
128
|
-
return new Promise((resolve) => {
|
|
129
|
-
this.config.db
|
|
130
|
-
.transaction()
|
|
131
|
-
.execute(async (trx) => {
|
|
132
|
-
state.transaction = trx;
|
|
133
|
-
// Wait for commit or rollback
|
|
134
|
-
return new Promise((resolveTransaction, rejectTransaction) => {
|
|
135
|
-
state.__resolveTransaction = resolveTransaction;
|
|
136
|
-
state.__rejectTransaction = rejectTransaction;
|
|
137
|
-
resolve({
|
|
138
|
-
id: message.id,
|
|
139
|
-
type: 'result',
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
})
|
|
143
|
-
.catch(() => {
|
|
144
|
-
// Transaction was rolled back externally
|
|
145
|
-
});
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
async handleCommit(state, message) {
|
|
149
|
-
if (!state.transaction) {
|
|
150
|
-
return {
|
|
151
|
-
id: message.id,
|
|
152
|
-
type: 'error',
|
|
153
|
-
error: 'No transaction in progress',
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
// Resolve the transaction promise to commit
|
|
157
|
-
const resolveTransaction = state.__resolveTransaction;
|
|
158
|
-
if (resolveTransaction) {
|
|
159
|
-
resolveTransaction();
|
|
160
|
-
}
|
|
161
|
-
state.transaction = null;
|
|
162
|
-
state.__resolveTransaction = undefined;
|
|
163
|
-
state.__rejectTransaction = undefined;
|
|
164
|
-
return {
|
|
165
|
-
id: message.id,
|
|
166
|
-
type: 'result',
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
async handleRollback(state, message) {
|
|
170
|
-
if (!state.transaction) {
|
|
171
|
-
return {
|
|
172
|
-
id: message.id,
|
|
173
|
-
type: 'error',
|
|
174
|
-
error: 'No transaction in progress',
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
// Reject the transaction promise to trigger rollback
|
|
178
|
-
const rejectTransaction = state.__rejectTransaction;
|
|
179
|
-
if (rejectTransaction) {
|
|
180
|
-
rejectTransaction(new Error('Transaction rolled back'));
|
|
181
|
-
}
|
|
182
|
-
state.transaction = null;
|
|
183
|
-
state.__resolveTransaction = undefined;
|
|
184
|
-
state.__rejectTransaction = undefined;
|
|
185
|
-
return {
|
|
186
|
-
id: message.id,
|
|
187
|
-
type: 'result',
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
async handleQuery(state, message) {
|
|
191
|
-
if (!message.sql) {
|
|
192
|
-
return {
|
|
193
|
-
id: message.id,
|
|
194
|
-
type: 'error',
|
|
195
|
-
error: 'Missing SQL query',
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
const db = state.transaction ?? this.config.db;
|
|
199
|
-
const result = await executeProxyQuery({
|
|
200
|
-
db,
|
|
201
|
-
dialect: this.config.dialect,
|
|
202
|
-
handlers: this.config.handlers,
|
|
203
|
-
ctx: {
|
|
204
|
-
actorId: state.actorId,
|
|
205
|
-
clientId: state.clientId,
|
|
206
|
-
},
|
|
207
|
-
sqlQuery: message.sql,
|
|
208
|
-
parameters: message.parameters ?? [],
|
|
209
|
-
});
|
|
210
|
-
return {
|
|
211
|
-
id: message.id,
|
|
212
|
-
type: 'result',
|
|
213
|
-
rows: result.rows,
|
|
214
|
-
rowCount: result.rowCount,
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
resetIdleTimer(state) {
|
|
218
|
-
if (state.idleTimer) {
|
|
219
|
-
clearTimeout(state.idleTimer);
|
|
220
|
-
}
|
|
221
|
-
if (this.idleTimeoutMs <= 0)
|
|
222
|
-
return;
|
|
223
|
-
state.idleTimer = setTimeout(() => {
|
|
224
|
-
// Close idle connection
|
|
225
|
-
try {
|
|
226
|
-
state.ws.close(4000, 'Idle timeout');
|
|
227
|
-
}
|
|
228
|
-
catch {
|
|
229
|
-
// Ignore close errors
|
|
230
|
-
}
|
|
231
|
-
this.unregister(state.ws);
|
|
232
|
-
}, this.idleTimeoutMs);
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Close all connections.
|
|
236
|
-
*/
|
|
237
|
-
async closeAll() {
|
|
238
|
-
const promises = [];
|
|
239
|
-
for (const [ws] of this.connections) {
|
|
240
|
-
try {
|
|
241
|
-
ws.close(1000, 'Server shutdown');
|
|
242
|
-
}
|
|
243
|
-
catch {
|
|
244
|
-
// Ignore close errors
|
|
245
|
-
}
|
|
246
|
-
promises.push(this.unregister(ws));
|
|
247
|
-
}
|
|
248
|
-
await Promise.all(promises);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
//# sourceMappingURL=connection-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/proxy/connection-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/proxy/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proxy/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC"}
|
package/dist/proxy/index.js
DELETED
package/dist/proxy/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proxy/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC"}
|