@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.
- 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 -3029
- 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 -175
- 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 -110
- 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 -161
- package/dist/routes.d.ts.map +0 -1
- package/dist/routes.js +0 -1493
- 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 -1626
- package/src/__tests__/console-ui.test.ts +0 -114
- package/src/__tests__/create-server.test.ts +0 -485
- 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 -3936
- package/src/console/schemas.ts +0 -434
- package/src/console/types.ts +0 -185
- package/src/console/ui.ts +0 -100
- package/src/create-server.ts +0 -207
- 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 -2059
- package/src/ws.ts +0 -802
package/dist/routes.d.ts
DELETED
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/server-hono - Sync routes for Hono
|
|
3
|
-
*
|
|
4
|
-
* Provides:
|
|
5
|
-
* - POST / (combined push + pull in one round-trip)
|
|
6
|
-
* - GET /snapshot-chunks/:chunkId (download encoded snapshot chunks)
|
|
7
|
-
* - GET /realtime (optional WebSocket "wake up" notifications)
|
|
8
|
-
*/
|
|
9
|
-
import type { ScopeCacheBackend, ServerSyncDialect, ServerTableHandler, SnapshotChunkStorage, SqlFamily, SyncCoreDb, SyncRealtimeBroadcaster, SyncServerAuth } from '@syncular/server';
|
|
10
|
-
import { type CompactOptions, type PruneOptions } from '@syncular/server';
|
|
11
|
-
import type { Context } from 'hono';
|
|
12
|
-
import { Hono } from 'hono';
|
|
13
|
-
import type { UpgradeWebSocket } from 'hono/ws';
|
|
14
|
-
import { type Kysely } from 'kysely';
|
|
15
|
-
import { type SyncRateLimitConfig } from './rate-limit';
|
|
16
|
-
import { WebSocketConnectionManager } from './ws';
|
|
17
|
-
export interface SyncAuthResult extends SyncServerAuth {
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* WebSocket configuration for realtime sync.
|
|
21
|
-
*
|
|
22
|
-
* Note: this endpoint is only a "wake up" mechanism; clients must still pull.
|
|
23
|
-
*/
|
|
24
|
-
export interface SyncWebSocketConfig {
|
|
25
|
-
enabled?: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* Runtime-provided WebSocket upgrader (e.g. from `hono/bun`'s `createBunWebSocket()`).
|
|
28
|
-
*/
|
|
29
|
-
upgradeWebSocket?: UpgradeWebSocket;
|
|
30
|
-
heartbeatIntervalMs?: number;
|
|
31
|
-
/**
|
|
32
|
-
* Maximum number of concurrent WebSocket connections across the entire process.
|
|
33
|
-
* Default: 5000
|
|
34
|
-
*/
|
|
35
|
-
maxConnectionsTotal?: number;
|
|
36
|
-
/**
|
|
37
|
-
* Maximum number of concurrent WebSocket connections per clientId.
|
|
38
|
-
* Default: 3
|
|
39
|
-
*/
|
|
40
|
-
maxConnectionsPerClient?: number;
|
|
41
|
-
}
|
|
42
|
-
export interface SyncRoutesConfigWithRateLimit {
|
|
43
|
-
/**
|
|
44
|
-
* Max commits per pull request.
|
|
45
|
-
* Default: 100
|
|
46
|
-
*/
|
|
47
|
-
maxPullLimitCommits?: number;
|
|
48
|
-
/**
|
|
49
|
-
* Max subscriptions per pull request.
|
|
50
|
-
* Default: 200
|
|
51
|
-
*/
|
|
52
|
-
maxSubscriptionsPerPull?: number;
|
|
53
|
-
/**
|
|
54
|
-
* Max snapshot rows per snapshot page.
|
|
55
|
-
* Default: 5000
|
|
56
|
-
*/
|
|
57
|
-
maxPullLimitSnapshotRows?: number;
|
|
58
|
-
/**
|
|
59
|
-
* Max snapshot pages per subscription per pull response.
|
|
60
|
-
* Default: 10
|
|
61
|
-
*/
|
|
62
|
-
maxPullMaxSnapshotPages?: number;
|
|
63
|
-
/**
|
|
64
|
-
* Max operations per pushed commit.
|
|
65
|
-
* Default: 200
|
|
66
|
-
*/
|
|
67
|
-
maxOperationsPerPush?: number;
|
|
68
|
-
/**
|
|
69
|
-
* Request/response payload snapshots recorded for console inspection.
|
|
70
|
-
*/
|
|
71
|
-
requestPayloadSnapshots?: {
|
|
72
|
-
/**
|
|
73
|
-
* Enable payload snapshot storage in `sync_request_payloads`.
|
|
74
|
-
* Default: true when console event recording is enabled.
|
|
75
|
-
*/
|
|
76
|
-
enabled?: boolean;
|
|
77
|
-
/**
|
|
78
|
-
* Max serialized payload size in bytes per request/response snapshot.
|
|
79
|
-
* Larger payloads are truncated with metadata.
|
|
80
|
-
* Default: 128 KiB.
|
|
81
|
-
*/
|
|
82
|
-
maxBytes?: number;
|
|
83
|
-
};
|
|
84
|
-
/**
|
|
85
|
-
* Rate limiting configuration.
|
|
86
|
-
* Set to false to disable all rate limiting.
|
|
87
|
-
*/
|
|
88
|
-
rateLimit?: SyncRateLimitConfig | false;
|
|
89
|
-
/**
|
|
90
|
-
* WebSocket realtime configuration.
|
|
91
|
-
*/
|
|
92
|
-
websocket?: SyncWebSocketConfig;
|
|
93
|
-
/**
|
|
94
|
-
* Optional pruning configuration. When enabled, the server periodically prunes
|
|
95
|
-
* old commit history based on active client cursors.
|
|
96
|
-
*/
|
|
97
|
-
prune?: {
|
|
98
|
-
/** Minimum time between prune runs. Default: 5 minutes. */
|
|
99
|
-
minIntervalMs?: number;
|
|
100
|
-
/** Pruning watermark options. */
|
|
101
|
-
options?: PruneOptions;
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* Optional compaction configuration. When enabled, the server periodically
|
|
105
|
-
* compacts older change history to reduce storage.
|
|
106
|
-
*/
|
|
107
|
-
compact?: {
|
|
108
|
-
/** Minimum time between compaction runs. Default: 30 minutes. */
|
|
109
|
-
minIntervalMs?: number;
|
|
110
|
-
/** Compaction options. */
|
|
111
|
-
options?: CompactOptions;
|
|
112
|
-
};
|
|
113
|
-
/**
|
|
114
|
-
* Optional multi-instance realtime broadcaster.
|
|
115
|
-
* When provided, instances publish/subscribe commit wakeups via the broadcaster.
|
|
116
|
-
*/
|
|
117
|
-
realtime?: {
|
|
118
|
-
broadcaster: SyncRealtimeBroadcaster;
|
|
119
|
-
/** Optional stable instance id (useful in tests). */
|
|
120
|
-
instanceId?: string;
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
export interface CreateSyncRoutesOptions<DB extends SyncCoreDb = SyncCoreDb, Auth extends SyncAuthResult = SyncAuthResult, F extends SqlFamily = SqlFamily> {
|
|
124
|
-
db: Kysely<DB>;
|
|
125
|
-
dialect: ServerSyncDialect<F>;
|
|
126
|
-
handlers: ServerTableHandler<DB, Auth>[];
|
|
127
|
-
authenticate: (c: Context) => Promise<Auth | null>;
|
|
128
|
-
sync?: SyncRoutesConfigWithRateLimit;
|
|
129
|
-
wsConnectionManager?: WebSocketConnectionManager;
|
|
130
|
-
/**
|
|
131
|
-
* Optional snapshot chunk storage adapter.
|
|
132
|
-
* When provided, stores snapshot chunk bodies in external storage
|
|
133
|
-
* (S3, R2, etc.) instead of inline in the database.
|
|
134
|
-
*/
|
|
135
|
-
chunkStorage?: SnapshotChunkStorage;
|
|
136
|
-
/**
|
|
137
|
-
* Optional scope cache backend for resolveScopes() results.
|
|
138
|
-
* Request-local memoization is always applied for every pull.
|
|
139
|
-
*/
|
|
140
|
-
scopeCache?: ScopeCacheBackend;
|
|
141
|
-
/**
|
|
142
|
-
* Optional live emitter for console websocket activity feed.
|
|
143
|
-
* When provided, sync lifecycle events are published to `/console/events/live`.
|
|
144
|
-
*/
|
|
145
|
-
consoleLiveEmitter?: {
|
|
146
|
-
emit(event: {
|
|
147
|
-
type: 'push' | 'pull' | 'commit' | 'client_update';
|
|
148
|
-
timestamp: string;
|
|
149
|
-
data: Record<string, unknown>;
|
|
150
|
-
}): void;
|
|
151
|
-
};
|
|
152
|
-
/**
|
|
153
|
-
* Optional console schema readiness promise.
|
|
154
|
-
* When provided, request-event recording waits for this promise before writing.
|
|
155
|
-
*/
|
|
156
|
-
consoleSchemaReady?: Promise<void>;
|
|
157
|
-
}
|
|
158
|
-
export declare function createSyncRoutes<DB extends SyncCoreDb = SyncCoreDb, Auth extends SyncAuthResult = SyncAuthResult, F extends SqlFamily = SqlFamily>(options: CreateSyncRoutesOptions<DB, Auth, F>): Hono;
|
|
159
|
-
export declare function getSyncWebSocketConnectionManager(routes: Hono): WebSocketConnectionManager | undefined;
|
|
160
|
-
export declare function getSyncRealtimeUnsubscribe(routes: Hono): (() => void) | undefined;
|
|
161
|
-
//# sourceMappingURL=routes.d.ts.map
|
package/dist/routes.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
|