@syncular/server-hono 0.0.6-96 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +5 -23
  2. package/dist/admin-page.d.ts +14 -0
  3. package/dist/admin-page.js +217 -0
  4. package/dist/admin.d.ts +39 -0
  5. package/dist/admin.js +142 -0
  6. package/dist/index.d.ts +16 -14
  7. package/dist/index.js +134 -23
  8. package/package.json +19 -53
  9. package/src/admin-page.ts +217 -0
  10. package/src/admin.ts +193 -0
  11. package/src/index.ts +175 -31
  12. package/dist/api-key-auth.d.ts +0 -49
  13. package/dist/api-key-auth.d.ts.map +0 -1
  14. package/dist/api-key-auth.js +0 -110
  15. package/dist/api-key-auth.js.map +0 -1
  16. package/dist/blobs.d.ts +0 -69
  17. package/dist/blobs.d.ts.map +0 -1
  18. package/dist/blobs.js +0 -383
  19. package/dist/blobs.js.map +0 -1
  20. package/dist/console/gateway.d.ts +0 -33
  21. package/dist/console/gateway.d.ts.map +0 -1
  22. package/dist/console/gateway.js +0 -2534
  23. package/dist/console/gateway.js.map +0 -1
  24. package/dist/console/index.d.ts +0 -11
  25. package/dist/console/index.d.ts.map +0 -1
  26. package/dist/console/index.js +0 -11
  27. package/dist/console/index.js.map +0 -1
  28. package/dist/console/routes.d.ts +0 -33
  29. package/dist/console/routes.d.ts.map +0 -1
  30. package/dist/console/routes.js +0 -3029
  31. package/dist/console/routes.js.map +0 -1
  32. package/dist/console/schemas.d.ts +0 -490
  33. package/dist/console/schemas.d.ts.map +0 -1
  34. package/dist/console/schemas.js +0 -303
  35. package/dist/console/schemas.js.map +0 -1
  36. package/dist/console/types.d.ts +0 -175
  37. package/dist/console/types.d.ts.map +0 -1
  38. package/dist/console/types.js +0 -2
  39. package/dist/console/types.js.map +0 -1
  40. package/dist/console/ui.d.ts +0 -38
  41. package/dist/console/ui.d.ts.map +0 -1
  42. package/dist/console/ui.js +0 -43
  43. package/dist/console/ui.js.map +0 -1
  44. package/dist/create-server.d.ts +0 -68
  45. package/dist/create-server.d.ts.map +0 -1
  46. package/dist/create-server.js +0 -110
  47. package/dist/create-server.js.map +0 -1
  48. package/dist/index.d.ts.map +0 -1
  49. package/dist/index.js.map +0 -1
  50. package/dist/openapi.d.ts +0 -45
  51. package/dist/openapi.d.ts.map +0 -1
  52. package/dist/openapi.js +0 -59
  53. package/dist/openapi.js.map +0 -1
  54. package/dist/proxy/connection-manager.d.ts +0 -78
  55. package/dist/proxy/connection-manager.d.ts.map +0 -1
  56. package/dist/proxy/connection-manager.js +0 -251
  57. package/dist/proxy/connection-manager.js.map +0 -1
  58. package/dist/proxy/index.d.ts +0 -8
  59. package/dist/proxy/index.d.ts.map +0 -1
  60. package/dist/proxy/index.js +0 -8
  61. package/dist/proxy/index.js.map +0 -1
  62. package/dist/proxy/routes.d.ts +0 -74
  63. package/dist/proxy/routes.d.ts.map +0 -1
  64. package/dist/proxy/routes.js +0 -147
  65. package/dist/proxy/routes.js.map +0 -1
  66. package/dist/rate-limit.d.ts +0 -101
  67. package/dist/rate-limit.d.ts.map +0 -1
  68. package/dist/rate-limit.js +0 -186
  69. package/dist/rate-limit.js.map +0 -1
  70. package/dist/routes.d.ts +0 -161
  71. package/dist/routes.d.ts.map +0 -1
  72. package/dist/routes.js +0 -1493
  73. package/dist/routes.js.map +0 -1
  74. package/dist/ws.d.ts +0 -235
  75. package/dist/ws.d.ts.map +0 -1
  76. package/dist/ws.js +0 -614
  77. package/dist/ws.js.map +0 -1
  78. package/src/__tests__/blob-routes.test.ts +0 -424
  79. package/src/__tests__/console-gateway-live-routes.test.ts +0 -297
  80. package/src/__tests__/console-gateway-routes.test.ts +0 -1364
  81. package/src/__tests__/console-routes.test.ts +0 -1626
  82. package/src/__tests__/console-ui.test.ts +0 -114
  83. package/src/__tests__/create-server.test.ts +0 -485
  84. package/src/__tests__/pull-chunk-storage.test.ts +0 -576
  85. package/src/__tests__/rate-limit.test.ts +0 -78
  86. package/src/__tests__/realtime-bridge.test.ts +0 -135
  87. package/src/__tests__/sync-rate-limit-routing.test.ts +0 -185
  88. package/src/__tests__/ws-connection-manager.test.ts +0 -176
  89. package/src/api-key-auth.ts +0 -179
  90. package/src/blobs.ts +0 -534
  91. package/src/console/gateway.ts +0 -3603
  92. package/src/console/index.ts +0 -11
  93. package/src/console/routes.ts +0 -3936
  94. package/src/console/schemas.ts +0 -434
  95. package/src/console/types.ts +0 -185
  96. package/src/console/ui.ts +0 -100
  97. package/src/create-server.ts +0 -207
  98. package/src/openapi.ts +0 -74
  99. package/src/proxy/connection-manager.ts +0 -340
  100. package/src/proxy/index.ts +0 -8
  101. package/src/proxy/routes.ts +0 -223
  102. package/src/rate-limit.ts +0 -321
  103. package/src/routes.ts +0 -2059
  104. package/src/ws.ts +0 -802
@@ -1,68 +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 type { ScopeCacheBackend, ServerSyncConfig, ServerSyncDialect, SnapshotChunkStorage, SqlFamily, SyncCoreDb } from '@syncular/server';
9
- import type { UpgradeWebSocket } from 'hono/ws';
10
- import type { Kysely } from 'kysely';
11
- import { createConsoleRoutes } from './console/routes';
12
- import type { ConsoleEventEmitter, ConsoleSharedOptions } from './console/types';
13
- import { createSyncRoutes, type SyncAuthResult, type SyncRoutesConfigWithRateLimit } from './routes';
14
- export interface SyncServerOptions<DB extends SyncCoreDb = SyncCoreDb, Auth extends SyncAuthResult = SyncAuthResult, F extends SqlFamily = SqlFamily> {
15
- /** Kysely database instance */
16
- db: Kysely<DB>;
17
- /** Server sync dialect */
18
- dialect: ServerSyncDialect<F>;
19
- /** Sync contract with auth + table handlers */
20
- sync: ServerSyncConfig<DB, Auth>;
21
- /** Snapshot chunk storage (external body storage, e.g. R2/S3) */
22
- chunkStorage?: SnapshotChunkStorage;
23
- /** Scope cache backend for resolveScopes() results */
24
- scopeCache?: ScopeCacheBackend;
25
- /** Sync route configuration */
26
- routes?: SyncRoutesConfigWithRateLimit;
27
- /** WebSocket upgrader for realtime */
28
- upgradeWebSocket?: UpgradeWebSocket;
29
- /**
30
- * Console configuration for dashboard/monitoring.
31
- * Omit or set to false to disable console routes.
32
- */
33
- console?: false | ({
34
- /** Console bearer token for authentication (required unless SYNC_CONSOLE_TOKEN is set) */
35
- token?: string;
36
- } & ConsoleSharedOptions);
37
- }
38
- export interface SyncServerResult {
39
- /** Sync routes for Hono */
40
- syncRoutes: ReturnType<typeof createSyncRoutes>;
41
- /** Console routes for Hono (if enabled) */
42
- consoleRoutes?: ReturnType<typeof createConsoleRoutes>;
43
- /** Console event emitter (if console enabled) */
44
- consoleEventEmitter?: ConsoleEventEmitter;
45
- }
46
- /**
47
- * Create a simplified sync server with sync and optional console routes.
48
- *
49
- * @example
50
- * ```typescript
51
- * // With sync contract
52
- * const { syncRoutes } = createSyncServer({
53
- * db,
54
- * dialect,
55
- * sync,
56
- * });
57
- *
58
- * // With custom handlers
59
- * const { syncRoutes, consoleRoutes } = createSyncServer({
60
- * db,
61
- * dialect,
62
- * sync,
63
- * console: { token: process.env.CONSOLE_TOKEN },
64
- * });
65
- * ```
66
- */
67
- export declare function createSyncServer<DB extends SyncCoreDb = SyncCoreDb, Auth extends SyncAuthResult = SyncAuthResult, F extends SqlFamily = SqlFamily>(options: SyncServerOptions<DB, Auth, F>): SyncServerResult;
68
- //# sourceMappingURL=create-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-server.d.ts","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,SAAS,EACT,UAAU,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAEL,mBAAmB,EAEpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAEhB,KAAK,cAAc,EACnB,KAAK,6BAA6B,EACnC,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,iBAAiB,CAChC,EAAE,SAAS,UAAU,GAAG,UAAU,EAClC,IAAI,SAAS,cAAc,GAAG,cAAc,EAC5C,CAAC,SAAS,SAAS,GAAG,SAAS;IAE/B,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAEf,0BAA0B;IAC1B,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAE9B,+CAA+C;IAC/C,IAAI,EAAE,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAEjC,iEAAiE;IACjE,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAEpC,sDAAsD;IACtD,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/B,+BAA+B;IAC/B,MAAM,CAAC,EAAE,6BAA6B,CAAC;IAEvC,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;OAGG;IACH,OAAO,CAAC,EACJ,KAAK,GACL,CAAC;QACC,0FAA0F;QAC1F,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,oBAAoB,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,UAAU,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAChD,2CAA2C;IAC3C,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IACvD,iDAAiD;IACjD,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,SAAS,UAAU,GAAG,UAAU,EAClC,IAAI,SAAS,cAAc,GAAG,cAAc,EAC5C,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,OAAO,EAAE,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAoG3D"}
@@ -1,110 +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
- maintenance: resolvedConsoleConfig.maintenance,
96
- blobBucket: resolvedConsoleConfig.blobBucket,
97
- ...(upgradeWebSocket && {
98
- websocket: {
99
- enabled: true,
100
- upgradeWebSocket,
101
- },
102
- }),
103
- });
104
- return {
105
- syncRoutes,
106
- consoleRoutes,
107
- consoleEventEmitter,
108
- };
109
- }
110
- //# 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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"}
@@ -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
@@ -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
@@ -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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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * @syncular/server-hono - Proxy Exports
3
- *
4
- * WebSocket endpoint for admin database proxy.
5
- */
6
- export * from './connection-manager';
7
- export * from './routes';
8
- //# sourceMappingURL=index.d.ts.map
@@ -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"}