@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/console/schemas.js
DELETED
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @syncular/server-hono - Console API Zod schemas
|
|
3
|
-
*/
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
// ============================================================================
|
|
6
|
-
// Stats Schema
|
|
7
|
-
// ============================================================================
|
|
8
|
-
export const SyncStatsSchema = z.object({
|
|
9
|
-
commitCount: z.number().int(),
|
|
10
|
-
changeCount: z.number().int(),
|
|
11
|
-
minCommitSeq: z.number().int(),
|
|
12
|
-
maxCommitSeq: z.number().int(),
|
|
13
|
-
clientCount: z.number().int(),
|
|
14
|
-
activeClientCount: z.number().int(),
|
|
15
|
-
minActiveClientCursor: z.number().int().nullable(),
|
|
16
|
-
maxActiveClientCursor: z.number().int().nullable(),
|
|
17
|
-
});
|
|
18
|
-
// ============================================================================
|
|
19
|
-
// Commit Schemas
|
|
20
|
-
// ============================================================================
|
|
21
|
-
export const ConsoleCommitListItemSchema = z.object({
|
|
22
|
-
commitSeq: z.number().int(),
|
|
23
|
-
actorId: z.string(),
|
|
24
|
-
clientId: z.string(),
|
|
25
|
-
clientCommitId: z.string(),
|
|
26
|
-
createdAt: z.string(),
|
|
27
|
-
changeCount: z.number().int(),
|
|
28
|
-
affectedTables: z.array(z.string()),
|
|
29
|
-
});
|
|
30
|
-
export const ConsoleChangeSchema = z.object({
|
|
31
|
-
changeId: z.number().int(),
|
|
32
|
-
table: z.string(),
|
|
33
|
-
rowId: z.string(),
|
|
34
|
-
op: z.enum(['upsert', 'delete']),
|
|
35
|
-
rowJson: z.unknown().nullable(),
|
|
36
|
-
rowVersion: z.number().int().nullable(),
|
|
37
|
-
scopes: z.record(z.string(), z.unknown()),
|
|
38
|
-
});
|
|
39
|
-
export const ConsoleCommitDetailSchema = ConsoleCommitListItemSchema.extend({
|
|
40
|
-
changes: z.array(ConsoleChangeSchema),
|
|
41
|
-
});
|
|
42
|
-
// ============================================================================
|
|
43
|
-
// Client Schemas
|
|
44
|
-
// ============================================================================
|
|
45
|
-
export const ConsoleClientSchema = z.object({
|
|
46
|
-
clientId: z.string(),
|
|
47
|
-
actorId: z.string(),
|
|
48
|
-
cursor: z.number().int(),
|
|
49
|
-
lagCommitCount: z.number().int().nonnegative(),
|
|
50
|
-
connectionPath: z.enum(['direct', 'relay']),
|
|
51
|
-
connectionMode: z.enum(['polling', 'realtime']),
|
|
52
|
-
realtimeConnectionCount: z.number().int().nonnegative(),
|
|
53
|
-
isRealtimeConnected: z.boolean(),
|
|
54
|
-
activityState: z.enum(['active', 'idle', 'stale']),
|
|
55
|
-
lastRequestAt: z.string().nullable(),
|
|
56
|
-
lastRequestType: z.enum(['push', 'pull']).nullable(),
|
|
57
|
-
lastRequestOutcome: z.string().nullable(),
|
|
58
|
-
effectiveScopes: z.record(z.string(), z.unknown()),
|
|
59
|
-
updatedAt: z.string(),
|
|
60
|
-
});
|
|
61
|
-
// ============================================================================
|
|
62
|
-
// Handler Schemas
|
|
63
|
-
// ============================================================================
|
|
64
|
-
export const ConsoleHandlerSchema = z.object({
|
|
65
|
-
table: z.string(),
|
|
66
|
-
dependsOn: z.array(z.string()).optional(),
|
|
67
|
-
snapshotChunkTtlMs: z.number().int().optional(),
|
|
68
|
-
});
|
|
69
|
-
// ============================================================================
|
|
70
|
-
// Prune & Compact Schemas
|
|
71
|
-
// ============================================================================
|
|
72
|
-
export const ConsolePrunePreviewSchema = z.object({
|
|
73
|
-
watermarkCommitSeq: z.number().int(),
|
|
74
|
-
commitsToDelete: z.number().int(),
|
|
75
|
-
});
|
|
76
|
-
export const ConsolePruneResultSchema = z.object({
|
|
77
|
-
deletedCommits: z.number().int(),
|
|
78
|
-
});
|
|
79
|
-
export const ConsoleCompactResultSchema = z.object({
|
|
80
|
-
deletedChanges: z.number().int(),
|
|
81
|
-
});
|
|
82
|
-
// ============================================================================
|
|
83
|
-
// Evict Schema
|
|
84
|
-
// ============================================================================
|
|
85
|
-
export const ConsoleEvictResultSchema = z.object({
|
|
86
|
-
evicted: z.boolean(),
|
|
87
|
-
});
|
|
88
|
-
// ============================================================================
|
|
89
|
-
// Request Event Schemas
|
|
90
|
-
// ============================================================================
|
|
91
|
-
export const ConsoleRequestEventSchema = z.object({
|
|
92
|
-
eventId: z.number().int(),
|
|
93
|
-
partitionId: z.string(),
|
|
94
|
-
requestId: z.string(),
|
|
95
|
-
traceId: z.string().nullable(),
|
|
96
|
-
spanId: z.string().nullable(),
|
|
97
|
-
eventType: z.enum(['push', 'pull']),
|
|
98
|
-
syncPath: z.enum(['http-combined', 'ws-push']),
|
|
99
|
-
transportPath: z.enum(['direct', 'relay']),
|
|
100
|
-
actorId: z.string(),
|
|
101
|
-
clientId: z.string(),
|
|
102
|
-
statusCode: z.number().int(),
|
|
103
|
-
outcome: z.string(),
|
|
104
|
-
responseStatus: z.string(),
|
|
105
|
-
errorCode: z.string().nullable(),
|
|
106
|
-
durationMs: z.number().int(),
|
|
107
|
-
commitSeq: z.number().int().nullable(),
|
|
108
|
-
operationCount: z.number().int().nullable(),
|
|
109
|
-
rowCount: z.number().int().nullable(),
|
|
110
|
-
subscriptionCount: z.number().int().nullable(),
|
|
111
|
-
scopesSummary: z
|
|
112
|
-
.record(z.string(), z.union([z.string(), z.array(z.string())]))
|
|
113
|
-
.nullable(),
|
|
114
|
-
tables: z.array(z.string()),
|
|
115
|
-
errorMessage: z.string().nullable(),
|
|
116
|
-
payloadRef: z.string().nullable(),
|
|
117
|
-
createdAt: z.string(),
|
|
118
|
-
});
|
|
119
|
-
export const ConsoleRequestPayloadSchema = z.object({
|
|
120
|
-
payloadRef: z.string(),
|
|
121
|
-
partitionId: z.string(),
|
|
122
|
-
requestPayload: z.unknown(),
|
|
123
|
-
responsePayload: z.unknown().nullable(),
|
|
124
|
-
createdAt: z.string(),
|
|
125
|
-
});
|
|
126
|
-
export const ConsoleTimelineItemSchema = z.object({
|
|
127
|
-
type: z.enum(['commit', 'event']),
|
|
128
|
-
timestamp: z.string(),
|
|
129
|
-
commit: ConsoleCommitListItemSchema.nullable(),
|
|
130
|
-
event: ConsoleRequestEventSchema.nullable(),
|
|
131
|
-
});
|
|
132
|
-
export const ConsoleClearEventsResultSchema = z.object({
|
|
133
|
-
deletedCount: z.number().int(),
|
|
134
|
-
});
|
|
135
|
-
export const ConsolePruneEventsResultSchema = z.object({
|
|
136
|
-
deletedCount: z.number().int(),
|
|
137
|
-
});
|
|
138
|
-
// ============================================================================
|
|
139
|
-
// Operation Audit Schemas
|
|
140
|
-
// ============================================================================
|
|
141
|
-
export const ConsoleOperationTypeSchema = z.enum([
|
|
142
|
-
'prune',
|
|
143
|
-
'compact',
|
|
144
|
-
'notify_data_change',
|
|
145
|
-
'evict_client',
|
|
146
|
-
]);
|
|
147
|
-
export const ConsoleOperationEventSchema = z.object({
|
|
148
|
-
operationId: z.number().int(),
|
|
149
|
-
operationType: ConsoleOperationTypeSchema,
|
|
150
|
-
consoleUserId: z.string().nullable(),
|
|
151
|
-
partitionId: z.string().nullable(),
|
|
152
|
-
targetClientId: z.string().nullable(),
|
|
153
|
-
requestPayload: z.unknown().nullable(),
|
|
154
|
-
resultPayload: z.unknown().nullable(),
|
|
155
|
-
createdAt: z.string(),
|
|
156
|
-
});
|
|
157
|
-
// ============================================================================
|
|
158
|
-
// API Key Schemas
|
|
159
|
-
// ============================================================================
|
|
160
|
-
export const ApiKeyTypeSchema = z.enum(['relay', 'proxy', 'admin']);
|
|
161
|
-
export const ConsoleApiKeySchema = z.object({
|
|
162
|
-
keyId: z.string(),
|
|
163
|
-
keyPrefix: z.string(),
|
|
164
|
-
name: z.string(),
|
|
165
|
-
keyType: ApiKeyTypeSchema,
|
|
166
|
-
scopeKeys: z.array(z.string()),
|
|
167
|
-
actorId: z.string().nullable(),
|
|
168
|
-
createdAt: z.string(),
|
|
169
|
-
expiresAt: z.string().nullable(),
|
|
170
|
-
lastUsedAt: z.string().nullable(),
|
|
171
|
-
revokedAt: z.string().nullable(),
|
|
172
|
-
});
|
|
173
|
-
export const ConsoleApiKeyCreateRequestSchema = z.object({
|
|
174
|
-
name: z.string().min(1),
|
|
175
|
-
keyType: ApiKeyTypeSchema,
|
|
176
|
-
scopeKeys: z.array(z.string()).optional(),
|
|
177
|
-
actorId: z.string().optional(),
|
|
178
|
-
expiresInDays: z.number().int().positive().optional(),
|
|
179
|
-
});
|
|
180
|
-
export const ConsoleApiKeyCreateResponseSchema = z.object({
|
|
181
|
-
key: ConsoleApiKeySchema,
|
|
182
|
-
secretKey: z.string(),
|
|
183
|
-
});
|
|
184
|
-
export const ConsoleApiKeyRevokeResponseSchema = z.object({
|
|
185
|
-
revoked: z.boolean(),
|
|
186
|
-
});
|
|
187
|
-
export const ConsoleApiKeyBulkRevokeRequestSchema = z.object({
|
|
188
|
-
keyIds: z.array(z.string().min(1)).min(1).max(200),
|
|
189
|
-
});
|
|
190
|
-
export const ConsoleApiKeyBulkRevokeResponseSchema = z.object({
|
|
191
|
-
requestedCount: z.number().int().nonnegative(),
|
|
192
|
-
revokedCount: z.number().int().nonnegative(),
|
|
193
|
-
alreadyRevokedCount: z.number().int().nonnegative(),
|
|
194
|
-
notFoundCount: z.number().int().nonnegative(),
|
|
195
|
-
revokedKeyIds: z.array(z.string()),
|
|
196
|
-
alreadyRevokedKeyIds: z.array(z.string()),
|
|
197
|
-
notFoundKeyIds: z.array(z.string()),
|
|
198
|
-
});
|
|
199
|
-
// ============================================================================
|
|
200
|
-
// Pagination Schemas (Console-specific)
|
|
201
|
-
// ============================================================================
|
|
202
|
-
export const ConsolePaginationQuerySchema = z.object({
|
|
203
|
-
limit: z.coerce.number().int().min(1).max(100).default(50),
|
|
204
|
-
offset: z.coerce.number().int().min(0).default(0),
|
|
205
|
-
});
|
|
206
|
-
export const ConsolePartitionQuerySchema = z.object({
|
|
207
|
-
partitionId: z.string().min(1).optional(),
|
|
208
|
-
});
|
|
209
|
-
export const ConsolePartitionedPaginationQuerySchema = ConsolePaginationQuerySchema.extend({
|
|
210
|
-
partitionId: z.string().min(1).optional(),
|
|
211
|
-
});
|
|
212
|
-
export const ConsolePaginatedResponseSchema = (itemSchema) => z.object({
|
|
213
|
-
items: z.array(itemSchema),
|
|
214
|
-
total: z.number().int(),
|
|
215
|
-
offset: z.number().int(),
|
|
216
|
-
limit: z.number().int(),
|
|
217
|
-
});
|
|
218
|
-
export const ConsoleTimelineQuerySchema = ConsolePartitionedPaginationQuerySchema.extend({
|
|
219
|
-
view: z.enum(['all', 'commits', 'events']).default('all'),
|
|
220
|
-
eventType: z.enum(['push', 'pull']).optional(),
|
|
221
|
-
actorId: z.string().optional(),
|
|
222
|
-
clientId: z.string().optional(),
|
|
223
|
-
requestId: z.string().optional(),
|
|
224
|
-
traceId: z.string().optional(),
|
|
225
|
-
table: z.string().optional(),
|
|
226
|
-
outcome: z.string().optional(),
|
|
227
|
-
search: z.string().optional(),
|
|
228
|
-
from: z.string().datetime().optional(),
|
|
229
|
-
to: z.string().datetime().optional(),
|
|
230
|
-
});
|
|
231
|
-
export const ConsoleOperationsQuerySchema = ConsolePartitionedPaginationQuerySchema.extend({
|
|
232
|
-
operationType: ConsoleOperationTypeSchema.optional(),
|
|
233
|
-
});
|
|
234
|
-
// ============================================================================
|
|
235
|
-
// Time-Series Stats Schemas
|
|
236
|
-
// ============================================================================
|
|
237
|
-
const TimeseriesIntervalSchema = z.enum(['minute', 'hour', 'day']);
|
|
238
|
-
const TimeseriesRangeSchema = z.enum(['1h', '6h', '24h', '7d', '30d']);
|
|
239
|
-
export const TimeseriesQuerySchema = z.object({
|
|
240
|
-
interval: TimeseriesIntervalSchema.default('hour'),
|
|
241
|
-
range: TimeseriesRangeSchema.default('24h'),
|
|
242
|
-
partitionId: z.string().min(1).optional(),
|
|
243
|
-
});
|
|
244
|
-
export const TimeseriesBucketSchema = z.object({
|
|
245
|
-
timestamp: z.string(),
|
|
246
|
-
pushCount: z.number().int(),
|
|
247
|
-
pullCount: z.number().int(),
|
|
248
|
-
errorCount: z.number().int(),
|
|
249
|
-
avgLatencyMs: z.number(),
|
|
250
|
-
});
|
|
251
|
-
export const TimeseriesStatsResponseSchema = z.object({
|
|
252
|
-
buckets: z.array(TimeseriesBucketSchema),
|
|
253
|
-
interval: TimeseriesIntervalSchema,
|
|
254
|
-
range: TimeseriesRangeSchema,
|
|
255
|
-
});
|
|
256
|
-
// ============================================================================
|
|
257
|
-
// Latency Percentiles Schemas
|
|
258
|
-
// ============================================================================
|
|
259
|
-
export const LatencyPercentilesSchema = z.object({
|
|
260
|
-
p50: z.number(),
|
|
261
|
-
p90: z.number(),
|
|
262
|
-
p99: z.number(),
|
|
263
|
-
});
|
|
264
|
-
export const LatencyStatsResponseSchema = z.object({
|
|
265
|
-
push: LatencyPercentilesSchema,
|
|
266
|
-
pull: LatencyPercentilesSchema,
|
|
267
|
-
range: TimeseriesRangeSchema,
|
|
268
|
-
});
|
|
269
|
-
export const LatencyQuerySchema = z.object({
|
|
270
|
-
range: TimeseriesRangeSchema.default('24h'),
|
|
271
|
-
partitionId: z.string().min(1).optional(),
|
|
272
|
-
});
|
|
273
|
-
// ============================================================================
|
|
274
|
-
// Live Events Schemas (for WebSocket)
|
|
275
|
-
// ============================================================================
|
|
276
|
-
export const LiveEventSchema = z.object({
|
|
277
|
-
type: z.enum(['push', 'pull', 'commit', 'client_update']),
|
|
278
|
-
timestamp: z.string(),
|
|
279
|
-
data: z.record(z.string(), z.unknown()),
|
|
280
|
-
});
|
|
281
|
-
// ---------------------------------------------------------------------------
|
|
282
|
-
// Blob storage
|
|
283
|
-
// ---------------------------------------------------------------------------
|
|
284
|
-
export const ConsoleBlobSchema = z.object({
|
|
285
|
-
key: z.string(),
|
|
286
|
-
size: z.number().int(),
|
|
287
|
-
uploaded: z.string(),
|
|
288
|
-
httpMetadata: z.object({ contentType: z.string().optional() }).optional(),
|
|
289
|
-
});
|
|
290
|
-
export const ConsoleBlobListQuerySchema = z.object({
|
|
291
|
-
prefix: z.string().optional(),
|
|
292
|
-
cursor: z.string().optional(),
|
|
293
|
-
limit: z.coerce.number().int().min(1).max(1000).default(100),
|
|
294
|
-
});
|
|
295
|
-
export const ConsoleBlobListResponseSchema = z.object({
|
|
296
|
-
items: z.array(ConsoleBlobSchema),
|
|
297
|
-
truncated: z.boolean(),
|
|
298
|
-
cursor: z.string().nullable(),
|
|
299
|
-
});
|
|
300
|
-
export const ConsoleBlobDeleteResponseSchema = z.object({
|
|
301
|
-
deleted: z.boolean(),
|
|
302
|
-
});
|
|
303
|
-
//# sourceMappingURL=schemas.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/console/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/console/types.d.ts
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import type { ServerSyncDialect, ServerTableHandler, SqlFamily, SyncCoreDb, SyncServerAuth } from '@syncular/server';
|
|
2
|
-
import type { Context } from 'hono';
|
|
3
|
-
import type { UpgradeWebSocket } from 'hono/ws';
|
|
4
|
-
import type { Kysely } from 'kysely';
|
|
5
|
-
import type { WebSocketConnectionManager } from '../ws';
|
|
6
|
-
import type { LiveEvent } from './schemas';
|
|
7
|
-
export interface ConsoleAuthResult {
|
|
8
|
-
/** Identifier for the console user (for audit logging). */
|
|
9
|
-
consoleUserId?: string;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Listener for console live events (SSE streaming).
|
|
13
|
-
*/
|
|
14
|
-
export type ConsoleEventListener = (event: LiveEvent) => void;
|
|
15
|
-
/**
|
|
16
|
-
* Console event emitter for broadcasting live events.
|
|
17
|
-
*/
|
|
18
|
-
export interface ConsoleEventEmitter {
|
|
19
|
-
/** Add a listener for live events */
|
|
20
|
-
addListener(listener: ConsoleEventListener): void;
|
|
21
|
-
/** Remove a listener */
|
|
22
|
-
removeListener(listener: ConsoleEventListener): void;
|
|
23
|
-
/** Emit an event to all listeners */
|
|
24
|
-
emit(event: LiveEvent): void;
|
|
25
|
-
/**
|
|
26
|
-
* Replay recent events, optionally constrained by timestamp, partition, and max count.
|
|
27
|
-
*/
|
|
28
|
-
replay(options?: {
|
|
29
|
-
since?: string;
|
|
30
|
-
limit?: number;
|
|
31
|
-
partitionId?: string;
|
|
32
|
-
}): LiveEvent[];
|
|
33
|
-
}
|
|
34
|
-
export interface ConsoleMetricsOptions {
|
|
35
|
-
/**
|
|
36
|
-
* Metrics query strategy for timeseries/latency endpoints.
|
|
37
|
-
* - raw: in-memory processing from raw event rows
|
|
38
|
-
* - aggregated: DB-level aggregation where supported (raw fallback for unsupported paths)
|
|
39
|
-
* - auto: use raw for small windows, aggregated for larger windows
|
|
40
|
-
*/
|
|
41
|
-
aggregationMode?: 'auto' | 'raw' | 'aggregated';
|
|
42
|
-
/** Max events for using raw mode when aggregationMode is 'auto'. */
|
|
43
|
-
rawFallbackMaxEvents?: number;
|
|
44
|
-
}
|
|
45
|
-
export interface ConsoleBlobObject {
|
|
46
|
-
key: string;
|
|
47
|
-
size: number;
|
|
48
|
-
uploaded: Date;
|
|
49
|
-
httpMetadata?: {
|
|
50
|
-
contentType?: string;
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
export interface ConsoleBlobGetResult {
|
|
54
|
-
body: ReadableStream;
|
|
55
|
-
size: number;
|
|
56
|
-
httpMetadata?: {
|
|
57
|
-
contentType?: string;
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
export interface ConsoleBlobHeadResult {
|
|
61
|
-
size: number;
|
|
62
|
-
httpMetadata?: {
|
|
63
|
-
contentType?: string;
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
export interface ConsoleBlobBucket {
|
|
67
|
-
list(options: {
|
|
68
|
-
prefix?: string;
|
|
69
|
-
cursor?: string;
|
|
70
|
-
limit?: number;
|
|
71
|
-
}): Promise<{
|
|
72
|
-
objects: ConsoleBlobObject[];
|
|
73
|
-
truncated: boolean;
|
|
74
|
-
cursor?: string;
|
|
75
|
-
}>;
|
|
76
|
-
get(key: string): Promise<ConsoleBlobGetResult | null>;
|
|
77
|
-
delete(key: string | string[]): Promise<void>;
|
|
78
|
-
head(key: string): Promise<ConsoleBlobHeadResult | null>;
|
|
79
|
-
}
|
|
80
|
-
export interface ConsoleSharedOptions {
|
|
81
|
-
/**
|
|
82
|
-
* CORS origins to allow. Defaults to ['http://localhost:5173', 'https://console.sync.dev'].
|
|
83
|
-
* Set to '*' to allow all origins (not recommended for production).
|
|
84
|
-
*/
|
|
85
|
-
corsOrigins?: string[] | '*';
|
|
86
|
-
metrics?: ConsoleMetricsOptions;
|
|
87
|
-
blobBucket?: ConsoleBlobBucket;
|
|
88
|
-
}
|
|
89
|
-
export interface CreateConsoleRoutesOptions<DB extends SyncCoreDb = SyncCoreDb, Auth extends SyncServerAuth = SyncServerAuth, F extends SqlFamily = SqlFamily> extends ConsoleSharedOptions {
|
|
90
|
-
db: Kysely<DB>;
|
|
91
|
-
dialect: ServerSyncDialect<F>;
|
|
92
|
-
handlers: ServerTableHandler<DB, Auth>[];
|
|
93
|
-
/**
|
|
94
|
-
* Authentication function for console requests.
|
|
95
|
-
* Return null to reject the request.
|
|
96
|
-
*/
|
|
97
|
-
authenticate: (c: Context) => Promise<ConsoleAuthResult | null>;
|
|
98
|
-
/**
|
|
99
|
-
* Compaction options (required for /compact endpoint).
|
|
100
|
-
*/
|
|
101
|
-
compact?: {
|
|
102
|
-
fullHistoryHours?: number;
|
|
103
|
-
};
|
|
104
|
-
/**
|
|
105
|
-
* Pruning options.
|
|
106
|
-
*/
|
|
107
|
-
prune?: {
|
|
108
|
-
activeWindowMs?: number;
|
|
109
|
-
fallbackMaxAgeMs?: number;
|
|
110
|
-
keepNewestCommits?: number;
|
|
111
|
-
};
|
|
112
|
-
/**
|
|
113
|
-
* Event emitter for live console events.
|
|
114
|
-
* If provided along with websocket config, enables the /events/live WebSocket endpoint.
|
|
115
|
-
*/
|
|
116
|
-
eventEmitter?: ConsoleEventEmitter;
|
|
117
|
-
/**
|
|
118
|
-
* Shared sync WebSocket connection manager.
|
|
119
|
-
* When provided, `/clients` includes realtime connection state per client.
|
|
120
|
-
*/
|
|
121
|
-
wsConnectionManager?: WebSocketConnectionManager;
|
|
122
|
-
/**
|
|
123
|
-
* WebSocket configuration for live events streaming.
|
|
124
|
-
*/
|
|
125
|
-
websocket?: {
|
|
126
|
-
enabled?: boolean;
|
|
127
|
-
/**
|
|
128
|
-
* Runtime-provided WebSocket upgrader (e.g. from `hono/bun`'s `createBunWebSocket()`).
|
|
129
|
-
*/
|
|
130
|
-
upgradeWebSocket?: UpgradeWebSocket;
|
|
131
|
-
/**
|
|
132
|
-
* Heartbeat interval in milliseconds. Default: 30000
|
|
133
|
-
*/
|
|
134
|
-
heartbeatIntervalMs?: number;
|
|
135
|
-
};
|
|
136
|
-
/**
|
|
137
|
-
* Optional console schema readiness promise.
|
|
138
|
-
* When provided, routes wait for this promise before querying console tables.
|
|
139
|
-
*/
|
|
140
|
-
consoleSchemaReady?: Promise<void>;
|
|
141
|
-
}
|
|
142
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/console/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,WAAW,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClD,wBAAwB;IACxB,cAAc,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACrD,qCAAqC;IACrC,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,SAAS,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,YAAY,CAAC;IAChD,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,IAAI,CAAC;IACf,YAAY,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAC3E,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC7B,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAC7B,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,WAAW,0BAA0B,CACzC,EAAE,SAAS,UAAU,GAAG,UAAU,EAClC,IAAI,SAAS,cAAc,GAAG,cAAc,EAC5C,CAAC,SAAS,SAAS,GAAG,SAAS,CAC/B,SAAQ,oBAAoB;IAC5B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC9B,QAAQ,EAAE,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;IACzC;;;OAGG;IACH,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAChE;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF;;OAEG;IACH,KAAK,CAAC,EAAE;QACN,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF;;;OAGG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;IACjD;;OAEG;IACH,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB;;WAEG;QACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QACpC;;WAEG;QACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC"}
|
package/dist/console/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/console/types.ts"],"names":[],"mappings":""}
|
package/dist/console/ui.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { type ConsoleUiPrefill } from '@syncular/console/server';
|
|
2
|
-
import type { Context, Hono } from 'hono';
|
|
3
|
-
type MaybePromise<T> = T | Promise<T>;
|
|
4
|
-
export interface MountConsoleUiOptions {
|
|
5
|
-
/**
|
|
6
|
-
* Browser mount path for the console UI. Defaults to `/console`.
|
|
7
|
-
*/
|
|
8
|
-
mountPath?: string;
|
|
9
|
-
/**
|
|
10
|
-
* API base path used to prefill the console server URL.
|
|
11
|
-
* Defaults to `/api`.
|
|
12
|
-
*/
|
|
13
|
-
apiBasePath?: string;
|
|
14
|
-
/**
|
|
15
|
-
* Resolve prefill values per request.
|
|
16
|
-
* Return `null`/`undefined` to keep defaults.
|
|
17
|
-
*/
|
|
18
|
-
resolvePrefill?: (c: Context) => MaybePromise<ConsoleUiPrefill | null | undefined>;
|
|
19
|
-
/**
|
|
20
|
-
* Convenience callback for prefilled token.
|
|
21
|
-
*/
|
|
22
|
-
resolveToken?: (c: Context) => MaybePromise<string | undefined>;
|
|
23
|
-
/**
|
|
24
|
-
* Override distributable directory.
|
|
25
|
-
*/
|
|
26
|
-
staticDir?: string;
|
|
27
|
-
/**
|
|
28
|
-
* Cache-Control header for index responses.
|
|
29
|
-
*/
|
|
30
|
-
indexCacheControl?: string;
|
|
31
|
-
/**
|
|
32
|
-
* Cache-Control header for static asset responses.
|
|
33
|
-
*/
|
|
34
|
-
assetCacheControl?: string;
|
|
35
|
-
}
|
|
36
|
-
export declare function mountConsoleUi(app: Hono, options?: MountConsoleUiOptions): void;
|
|
37
|
-
export {};
|
|
38
|
-
//# sourceMappingURL=ui.d.ts.map
|
package/dist/console/ui.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/console/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EAItB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE1C,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,cAAc,CAAC,EAAE,CACf,CAAC,EAAE,OAAO,KACP,YAAY,CAAC,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACvD;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAChE;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAeD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,IAAI,EACT,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAqCN"}
|
package/dist/console/ui.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { createConsoleStaticResponder, } from '@syncular/console/server';
|
|
2
|
-
function normalizePath(pathname, fallback) {
|
|
3
|
-
const value = pathname?.trim() ?? '';
|
|
4
|
-
if (!value)
|
|
5
|
-
return fallback;
|
|
6
|
-
if (value === '/')
|
|
7
|
-
return '/';
|
|
8
|
-
const withLeadingSlash = value.startsWith('/') ? value : `/${value}`;
|
|
9
|
-
return withLeadingSlash.replace(/\/+$/g, '') || '/';
|
|
10
|
-
}
|
|
11
|
-
export function mountConsoleUi(app, options = {}) {
|
|
12
|
-
const mountPath = normalizePath(options.mountPath, '/console');
|
|
13
|
-
const apiBasePath = normalizePath(options.apiBasePath, '/api');
|
|
14
|
-
const staticResponderConfig = {
|
|
15
|
-
mountPath,
|
|
16
|
-
staticDir: options.staticDir,
|
|
17
|
-
indexCacheControl: options.indexCacheControl,
|
|
18
|
-
assetCacheControl: options.assetCacheControl,
|
|
19
|
-
};
|
|
20
|
-
const serveConsoleStatic = createConsoleStaticResponder(staticResponderConfig);
|
|
21
|
-
const handler = async (c) => {
|
|
22
|
-
const prefillFromResolver = await options.resolvePrefill?.(c);
|
|
23
|
-
const token = await options.resolveToken?.(c);
|
|
24
|
-
const origin = new URL(c.req.url).origin;
|
|
25
|
-
const prefill = {
|
|
26
|
-
basePath: mountPath,
|
|
27
|
-
serverUrl: `${origin}${apiBasePath}`,
|
|
28
|
-
...prefillFromResolver,
|
|
29
|
-
};
|
|
30
|
-
if (token !== undefined) {
|
|
31
|
-
prefill.token = token;
|
|
32
|
-
}
|
|
33
|
-
const requestOptions = { prefill };
|
|
34
|
-
const response = await serveConsoleStatic(c.req.raw, requestOptions);
|
|
35
|
-
if (!response)
|
|
36
|
-
return c.notFound();
|
|
37
|
-
return response;
|
|
38
|
-
};
|
|
39
|
-
const wildcardPath = mountPath === '/' ? '/*' : `${mountPath}/*`;
|
|
40
|
-
app.get(mountPath, handler);
|
|
41
|
-
app.get(wildcardPath, handler);
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=ui.js.map
|
package/dist/console/ui.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/console/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,4BAA4B,GAE7B,MAAM,0BAA0B,CAAC;AA6ClC,SAAS,aAAa,CAAC,QAA4B,EAAE,QAAgB,EAAU;IAC7E,MAAM,KAAK,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC5B,IAAI,KAAK,KAAK,GAAG;QAAE,OAAO,GAAG,CAAC;IAC9B,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;IACrE,OAAO,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;AAAA,CACrD;AAED,MAAM,UAAU,cAAc,CAC5B,GAAS,EACT,OAAO,GAA0B,EAAE,EAC7B;IACN,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAE/D,MAAM,qBAAqB,GAA0B;QACnD,SAAS;QACT,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;KAC7C,CAAC;IACF,MAAM,kBAAkB,GACtB,4BAA4B,CAAC,qBAAqB,CAAC,CAAC;IAEtD,MAAM,OAAO,GAAG,KAAK,EAAE,CAAU,EAAE,EAAE,CAAC;QACpC,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QAEzC,MAAM,OAAO,GAAqB;YAChC,QAAQ,EAAE,SAAS;YACnB,SAAS,EAAE,GAAG,MAAM,GAAG,WAAW,EAAE;YACpC,GAAG,mBAAmB;SACvB,CAAC;QAEF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACxB,CAAC;QAED,MAAM,cAAc,GAAqC,EAAE,OAAO,EAAE,CAAC;QACrE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnC,OAAO,QAAQ,CAAC;IAAA,CACjB,CAAC;IAEF,MAAM,YAAY,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC;IACjE,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5B,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAAA,CAChC"}
|
package/dist/create-server.d.ts
DELETED
|
@@ -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,CAmG3D"}
|