@syncular/server 0.0.6-95 → 0.1.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 +1 -2
- package/dist/auth-leases.d.ts +85 -0
- package/dist/auth-leases.d.ts.map +1 -0
- package/dist/auth-leases.js +368 -0
- package/dist/auth-leases.js.map +1 -0
- package/dist/better-sqlite3.d.ts +22 -0
- package/dist/better-sqlite3.d.ts.map +1 -0
- package/dist/better-sqlite3.js +16 -0
- package/dist/better-sqlite3.js.map +1 -0
- package/dist/blobs/access.d.ts +35 -0
- package/dist/blobs/access.d.ts.map +1 -0
- package/dist/blobs/access.js +149 -0
- package/dist/blobs/access.js.map +1 -0
- package/dist/blobs/adapters/database.d.ts +26 -9
- package/dist/blobs/adapters/database.d.ts.map +1 -1
- package/dist/blobs/adapters/database.js +68 -23
- package/dist/blobs/adapters/database.js.map +1 -1
- package/dist/blobs/index.d.ts +1 -0
- package/dist/blobs/index.d.ts.map +1 -1
- package/dist/blobs/index.js +5 -4
- package/dist/blobs/index.js.map +1 -1
- package/dist/blobs/manager.d.ts +69 -44
- package/dist/blobs/manager.d.ts.map +1 -1
- package/dist/blobs/manager.js +250 -65
- package/dist/blobs/manager.js.map +1 -1
- package/dist/blobs/migrate.d.ts.map +1 -1
- package/dist/blobs/migrate.js +16 -8
- package/dist/blobs/migrate.js.map +1 -1
- package/dist/blobs/types.d.ts +4 -0
- package/dist/blobs/types.d.ts.map +1 -1
- package/dist/bun-sqlite.d.ts +19 -0
- package/dist/bun-sqlite.d.ts.map +1 -0
- package/dist/bun-sqlite.js +19 -0
- package/dist/bun-sqlite.js.map +1 -0
- package/dist/clients.d.ts +1 -0
- package/dist/clients.d.ts.map +1 -1
- package/dist/clients.js.map +1 -1
- package/dist/cloudflare/durable-object.d.ts +93 -0
- package/dist/cloudflare/durable-object.d.ts.map +1 -0
- package/dist/cloudflare/durable-object.js +210 -0
- package/dist/cloudflare/durable-object.js.map +1 -0
- package/dist/cloudflare/index.d.ts +22 -0
- package/dist/cloudflare/index.d.ts.map +1 -0
- package/dist/cloudflare/index.js +22 -0
- package/dist/cloudflare/index.js.map +1 -0
- package/dist/cloudflare/r2.d.ts +180 -0
- package/dist/cloudflare/r2.d.ts.map +1 -0
- package/dist/cloudflare/r2.js +258 -0
- package/dist/cloudflare/r2.js.map +1 -0
- package/dist/cloudflare/scope-cache.d.ts +54 -0
- package/dist/cloudflare/scope-cache.d.ts.map +1 -0
- package/dist/cloudflare/scope-cache.js +223 -0
- package/dist/cloudflare/scope-cache.js.map +1 -0
- package/dist/cloudflare/sentry.d.ts +47 -0
- package/dist/cloudflare/sentry.d.ts.map +1 -0
- package/dist/cloudflare/sentry.js +163 -0
- package/dist/cloudflare/sentry.js.map +1 -0
- package/dist/cloudflare/worker.d.ts +46 -0
- package/dist/cloudflare/worker.d.ts.map +1 -0
- package/dist/cloudflare/worker.js +63 -0
- package/dist/cloudflare/worker.js.map +1 -0
- package/dist/commit-integrity.d.ts +38 -0
- package/dist/commit-integrity.d.ts.map +1 -0
- package/dist/commit-integrity.js +260 -0
- package/dist/commit-integrity.js.map +1 -0
- package/dist/compaction.js.map +1 -1
- package/dist/crdt-yjs/index.d.ts +99 -0
- package/dist/crdt-yjs/index.d.ts.map +1 -0
- package/dist/crdt-yjs/index.js +629 -0
- package/dist/crdt-yjs/index.js.map +1 -0
- package/dist/d1.d.ts +13 -0
- package/dist/d1.d.ts.map +1 -0
- package/dist/d1.js +14 -0
- package/dist/d1.js.map +1 -0
- package/dist/dialect/base.d.ts +11 -1
- package/dist/dialect/base.d.ts.map +1 -1
- package/dist/dialect/base.js +43 -6
- package/dist/dialect/base.js.map +1 -1
- package/dist/dialect/helpers.d.ts +6 -0
- package/dist/dialect/helpers.d.ts.map +1 -1
- package/dist/dialect/helpers.js +24 -0
- package/dist/dialect/helpers.js.map +1 -1
- package/dist/dialect/index.js +3 -3
- package/dist/dialect/types.d.ts +40 -0
- package/dist/dialect/types.d.ts.map +1 -1
- package/dist/encrypted-crdt.d.ts +67 -0
- package/dist/encrypted-crdt.d.ts.map +1 -0
- package/dist/encrypted-crdt.js +426 -0
- package/dist/encrypted-crdt.js.map +1 -0
- package/dist/errors.d.ts +10 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +13 -0
- package/dist/errors.js.map +1 -0
- package/dist/filesystem/index.d.ts +44 -0
- package/dist/filesystem/index.d.ts.map +1 -0
- package/dist/filesystem/index.js +164 -0
- package/dist/filesystem/index.js.map +1 -0
- package/dist/handlers/collection.d.ts +11 -3
- package/dist/handlers/collection.d.ts.map +1 -1
- package/dist/handlers/collection.js +34 -56
- package/dist/handlers/collection.js.map +1 -1
- package/dist/handlers/create-handler.d.ts +31 -7
- package/dist/handlers/create-handler.d.ts.map +1 -1
- package/dist/handlers/create-handler.js +332 -115
- package/dist/handlers/create-handler.js.map +1 -1
- package/dist/handlers/index.js +3 -3
- package/dist/handlers/types.d.ts +86 -1
- package/dist/handlers/types.d.ts.map +1 -1
- package/dist/helpers/conflict.js.map +1 -1
- package/dist/helpers/emitted-change.js.map +1 -1
- package/dist/helpers/index.d.ts +2 -0
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js +6 -4
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/paginate.js.map +1 -1
- package/dist/helpers/scope-authorization.d.ts +7 -0
- package/dist/helpers/scope-authorization.d.ts.map +1 -0
- package/dist/helpers/scope-authorization.js +19 -0
- package/dist/helpers/scope-authorization.js.map +1 -0
- package/dist/helpers/scope-commit-index.d.ts +12 -0
- package/dist/helpers/scope-commit-index.d.ts.map +1 -0
- package/dist/helpers/scope-commit-index.js +35 -0
- package/dist/helpers/scope-commit-index.js.map +1 -0
- package/dist/helpers/scope-strings.js.map +1 -1
- package/dist/hono/api-key-auth.d.ts +49 -0
- package/dist/hono/api-key-auth.d.ts.map +1 -0
- package/dist/hono/api-key-auth.js +108 -0
- package/dist/hono/api-key-auth.js.map +1 -0
- package/dist/hono/audit-redaction.d.ts +20 -0
- package/dist/hono/audit-redaction.d.ts.map +1 -0
- package/dist/hono/audit-redaction.js +85 -0
- package/dist/hono/audit-redaction.js.map +1 -0
- package/dist/hono/blobs.d.ts +75 -0
- package/dist/hono/blobs.d.ts.map +1 -0
- package/dist/hono/blobs.js +586 -0
- package/dist/hono/blobs.js.map +1 -0
- package/dist/hono/console/gateway.d.ts +42 -0
- package/dist/hono/console/gateway.d.ts.map +1 -0
- package/dist/hono/console/gateway.js +2158 -0
- package/dist/hono/console/gateway.js.map +1 -0
- package/dist/hono/console/live-auth.d.ts +7 -0
- package/dist/hono/console/live-auth.d.ts.map +1 -0
- package/dist/hono/console/live-auth.js +39 -0
- package/dist/hono/console/live-auth.js.map +1 -0
- package/dist/hono/console/route-descriptor.d.ts +6 -0
- package/dist/hono/console/route-descriptor.d.ts.map +1 -0
- package/dist/hono/console/route-descriptor.js +16 -0
- package/dist/hono/console/route-descriptor.js.map +1 -0
- package/dist/hono/console/routes/api-keys.d.ts +8 -0
- package/dist/hono/console/routes/api-keys.d.ts.map +1 -0
- package/dist/hono/console/routes/api-keys.js +575 -0
- package/dist/hono/console/routes/api-keys.js.map +1 -0
- package/dist/hono/console/routes/clients.d.ts +8 -0
- package/dist/hono/console/routes/clients.d.ts.map +1 -0
- package/dist/hono/console/routes/clients.js +322 -0
- package/dist/hono/console/routes/clients.js.map +1 -0
- package/dist/hono/console/routes/commits.d.ts +8 -0
- package/dist/hono/console/routes/commits.d.ts.map +1 -0
- package/dist/hono/console/routes/commits.js +882 -0
- package/dist/hono/console/routes/commits.js.map +1 -0
- package/dist/hono/console/routes/context.d.ts +188 -0
- package/dist/hono/console/routes/context.d.ts.map +1 -0
- package/dist/hono/console/routes/context.js +633 -0
- package/dist/hono/console/routes/context.js.map +1 -0
- package/dist/hono/console/routes/events.d.ts +8 -0
- package/dist/hono/console/routes/events.d.ts.map +1 -0
- package/dist/hono/console/routes/events.js +501 -0
- package/dist/hono/console/routes/events.js.map +1 -0
- package/dist/hono/console/routes/maintenance.d.ts +8 -0
- package/dist/hono/console/routes/maintenance.d.ts.map +1 -0
- package/dist/hono/console/routes/maintenance.js +341 -0
- package/dist/hono/console/routes/maintenance.js.map +1 -0
- package/dist/hono/console/routes/shared.d.ts +174 -0
- package/dist/hono/console/routes/shared.d.ts.map +1 -0
- package/dist/hono/console/routes/shared.js +583 -0
- package/dist/hono/console/routes/shared.js.map +1 -0
- package/dist/hono/console/routes/stats.d.ts +8 -0
- package/dist/hono/console/routes/stats.d.ts.map +1 -0
- package/dist/hono/console/routes/stats.js +295 -0
- package/dist/hono/console/routes/stats.js.map +1 -0
- package/dist/hono/console/routes/storage.d.ts +8 -0
- package/dist/hono/console/routes/storage.d.ts.map +1 -0
- package/dist/hono/console/routes/storage.js +121 -0
- package/dist/hono/console/routes/storage.js.map +1 -0
- package/dist/hono/console/routes.d.ts +36 -0
- package/dist/hono/console/routes.d.ts.map +1 -0
- package/dist/hono/console/routes.js +112 -0
- package/dist/hono/console/routes.js.map +1 -0
- package/dist/hono/console/schema-errors.d.ts +2 -0
- package/dist/hono/console/schema-errors.d.ts.map +1 -0
- package/dist/hono/console/schema-errors.js +17 -0
- package/dist/hono/console/schema-errors.js.map +1 -0
- package/dist/hono/console/schemas.d.ts +1515 -0
- package/dist/hono/console/schemas.d.ts.map +1 -0
- package/dist/hono/console/schemas.js +661 -0
- package/dist/hono/console/schemas.js.map +1 -0
- package/dist/hono/console/types.d.ts +213 -0
- package/dist/hono/console/types.d.ts.map +1 -0
- package/dist/hono/console/types.js +2 -0
- package/dist/hono/console/types.js.map +1 -0
- package/dist/hono/console/ui.d.ts +38 -0
- package/dist/hono/console/ui.d.ts.map +1 -0
- package/dist/hono/console/ui.js +43 -0
- package/dist/hono/console/ui.js.map +1 -0
- package/dist/hono/create-server.d.ts +71 -0
- package/dist/hono/create-server.d.ts.map +1 -0
- package/dist/hono/create-server.js +121 -0
- package/dist/hono/create-server.js.map +1 -0
- package/dist/hono/errors.d.ts +13 -0
- package/dist/hono/errors.d.ts.map +1 -0
- package/dist/hono/errors.js +21 -0
- package/dist/hono/errors.js.map +1 -0
- package/dist/hono/index.d.ts +20 -0
- package/dist/hono/index.d.ts.map +1 -0
- package/dist/hono/index.js +31 -0
- package/dist/hono/index.js.map +1 -0
- package/dist/hono/openapi.d.ts +72 -0
- package/dist/hono/openapi.d.ts.map +1 -0
- package/dist/hono/openapi.js +99 -0
- package/dist/hono/openapi.js.map +1 -0
- package/dist/hono/proxy/connection-manager.d.ts +78 -0
- package/dist/hono/proxy/connection-manager.d.ts.map +1 -0
- package/dist/hono/proxy/connection-manager.js +251 -0
- package/dist/hono/proxy/connection-manager.js.map +1 -0
- package/dist/hono/proxy/index.d.ts +8 -0
- package/dist/hono/proxy/index.d.ts.map +1 -0
- package/dist/hono/proxy/index.js +8 -0
- package/dist/hono/proxy/index.js.map +1 -0
- package/dist/hono/proxy/routes.d.ts +86 -0
- package/dist/hono/proxy/routes.d.ts.map +1 -0
- package/dist/hono/proxy/routes.js +183 -0
- package/dist/hono/proxy/routes.js.map +1 -0
- package/dist/hono/rate-limit.d.ts +101 -0
- package/dist/hono/rate-limit.d.ts.map +1 -0
- package/dist/hono/rate-limit.js +184 -0
- package/dist/hono/rate-limit.js.map +1 -0
- package/dist/hono/realtime-sync-packs.d.ts +43 -0
- package/dist/hono/realtime-sync-packs.d.ts.map +1 -0
- package/dist/hono/realtime-sync-packs.js +219 -0
- package/dist/hono/realtime-sync-packs.js.map +1 -0
- package/dist/hono/routes/audit.d.ts +12 -0
- package/dist/hono/routes/audit.d.ts.map +1 -0
- package/dist/hono/routes/audit.js +385 -0
- package/dist/hono/routes/audit.js.map +1 -0
- package/dist/hono/routes/auth-leases.d.ts +8 -0
- package/dist/hono/routes/auth-leases.d.ts.map +1 -0
- package/dist/hono/routes/auth-leases.js +88 -0
- package/dist/hono/routes/auth-leases.js.map +1 -0
- package/dist/hono/routes/combined.d.ts +8 -0
- package/dist/hono/routes/combined.d.ts.map +1 -0
- package/dist/hono/routes/combined.js +392 -0
- package/dist/hono/routes/combined.js.map +1 -0
- package/dist/hono/routes/context.d.ts +314 -0
- package/dist/hono/routes/context.d.ts.map +1 -0
- package/dist/hono/routes/context.js +1147 -0
- package/dist/hono/routes/context.js.map +1 -0
- package/dist/hono/routes/health.d.ts +8 -0
- package/dist/hono/routes/health.d.ts.map +1 -0
- package/dist/hono/routes/health.js +16 -0
- package/dist/hono/routes/health.js.map +1 -0
- package/dist/hono/routes/realtime.d.ts +9 -0
- package/dist/hono/routes/realtime.d.ts.map +1 -0
- package/dist/hono/routes/realtime.js +626 -0
- package/dist/hono/routes/realtime.js.map +1 -0
- package/dist/hono/routes/shared.d.ts +689 -0
- package/dist/hono/routes/shared.d.ts.map +1 -0
- package/dist/hono/routes/shared.js +972 -0
- package/dist/hono/routes/shared.js.map +1 -0
- package/dist/hono/routes/snapshots.d.ts +10 -0
- package/dist/hono/routes/snapshots.d.ts.map +1 -0
- package/dist/hono/routes/snapshots.js +281 -0
- package/dist/hono/routes/snapshots.js.map +1 -0
- package/dist/hono/routes.d.ts +19 -0
- package/dist/hono/routes.d.ts.map +1 -0
- package/dist/hono/routes.js +37 -0
- package/dist/hono/routes.js.map +1 -0
- package/dist/hono/validation.d.ts +5 -0
- package/dist/hono/validation.d.ts.map +1 -0
- package/dist/hono/validation.js +47 -0
- package/dist/hono/validation.js.map +1 -0
- package/dist/hono/websocket-origin.d.ts +9 -0
- package/dist/hono/websocket-origin.d.ts.map +1 -0
- package/dist/hono/websocket-origin.js +96 -0
- package/dist/hono/websocket-origin.js.map +1 -0
- package/dist/hono/ws.d.ts +341 -0
- package/dist/hono/ws.d.ts.map +1 -0
- package/dist/hono/ws.js +711 -0
- package/dist/hono/ws.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -18
- package/dist/index.js.map +1 -1
- package/dist/libsql.d.ts +29 -0
- package/dist/libsql.d.ts.map +1 -0
- package/dist/libsql.js +25 -0
- package/dist/libsql.js.map +1 -0
- package/dist/migrate.js.map +1 -1
- package/dist/neon.d.ts +21 -0
- package/dist/neon.d.ts.map +1 -0
- package/dist/neon.js +22 -0
- package/dist/neon.js.map +1 -0
- package/dist/notify.d.ts +30 -0
- package/dist/notify.d.ts.map +1 -1
- package/dist/notify.js +160 -41
- package/dist/notify.js.map +1 -1
- package/dist/pglite.d.ts +37 -0
- package/dist/pglite.d.ts.map +1 -0
- package/dist/pglite.js +37 -0
- package/dist/pglite.js.map +1 -0
- package/dist/plugins/index.d.ts +2 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +2 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/types.d.ts +73 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +30 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/postgres/index.d.ts +68 -0
- package/dist/postgres/index.d.ts.map +1 -0
- package/dist/postgres/index.js +924 -0
- package/dist/postgres/index.js.map +1 -0
- package/dist/proxy/collection.d.ts +0 -2
- package/dist/proxy/collection.d.ts.map +1 -1
- package/dist/proxy/collection.js +2 -17
- package/dist/proxy/collection.js.map +1 -1
- package/dist/proxy/handler.d.ts +1 -1
- package/dist/proxy/handler.d.ts.map +1 -1
- package/dist/proxy/handler.js +3 -4
- package/dist/proxy/handler.js.map +1 -1
- package/dist/proxy/index.d.ts +1 -1
- package/dist/proxy/index.d.ts.map +1 -1
- package/dist/proxy/index.js +3 -3
- package/dist/proxy/index.js.map +1 -1
- package/dist/proxy/mutation-detector.js.map +1 -1
- package/dist/proxy/oplog.d.ts.map +1 -1
- package/dist/proxy/oplog.js +32 -8
- package/dist/proxy/oplog.js.map +1 -1
- package/dist/prune.d.ts +8 -1
- package/dist/prune.d.ts.map +1 -1
- package/dist/prune.js +68 -28
- package/dist/prune.js.map +1 -1
- package/dist/pull.d.ts +31 -0
- package/dist/pull.d.ts.map +1 -1
- package/dist/pull.js +1014 -474
- package/dist/pull.js.map +1 -1
- package/dist/push.d.ts +36 -2
- package/dist/push.d.ts.map +1 -1
- package/dist/push.js +603 -358
- package/dist/push.js.map +1 -1
- package/dist/realtime/in-memory.js.map +1 -1
- package/dist/realtime/index.d.ts +2 -1
- package/dist/realtime/index.d.ts.map +1 -1
- package/dist/realtime/index.js +2 -1
- package/dist/realtime/index.js.map +1 -1
- package/dist/realtime/types.d.ts +12 -0
- package/dist/realtime/types.d.ts.map +1 -1
- package/dist/realtime/types.js +13 -1
- package/dist/realtime/types.js.map +1 -1
- package/dist/relay/client-role/forward-engine.d.ts +63 -0
- package/dist/relay/client-role/forward-engine.d.ts.map +1 -0
- package/dist/relay/client-role/forward-engine.js +267 -0
- package/dist/relay/client-role/forward-engine.js.map +1 -0
- package/dist/relay/client-role/index.d.ts +9 -0
- package/dist/relay/client-role/index.d.ts.map +1 -0
- package/dist/relay/client-role/index.js +9 -0
- package/dist/relay/client-role/index.js.map +1 -0
- package/dist/relay/client-role/pull-engine.d.ts +72 -0
- package/dist/relay/client-role/pull-engine.d.ts.map +1 -0
- package/dist/relay/client-role/pull-engine.js +249 -0
- package/dist/relay/client-role/pull-engine.js.map +1 -0
- package/dist/relay/client-role/sequence-mapper.d.ts +65 -0
- package/dist/relay/client-role/sequence-mapper.d.ts.map +1 -0
- package/dist/relay/client-role/sequence-mapper.js +161 -0
- package/dist/relay/client-role/sequence-mapper.js.map +1 -0
- package/dist/relay/evaluation/relay-paths.d.ts +41 -0
- package/dist/relay/evaluation/relay-paths.d.ts.map +1 -0
- package/dist/relay/evaluation/relay-paths.js +504 -0
- package/dist/relay/evaluation/relay-paths.js.map +1 -0
- package/dist/relay/evaluation/rust-boundary.d.ts +47 -0
- package/dist/relay/evaluation/rust-boundary.d.ts.map +1 -0
- package/dist/relay/evaluation/rust-boundary.js +220 -0
- package/dist/relay/evaluation/rust-boundary.js.map +1 -0
- package/dist/relay/index.d.ts +37 -0
- package/dist/relay/index.d.ts.map +1 -0
- package/dist/relay/index.js +44 -0
- package/dist/relay/index.js.map +1 -0
- package/dist/relay/migrate.d.ts +18 -0
- package/dist/relay/migrate.d.ts.map +1 -0
- package/dist/relay/migrate.js +99 -0
- package/dist/relay/migrate.js.map +1 -0
- package/dist/relay/mode-manager.d.ts +60 -0
- package/dist/relay/mode-manager.d.ts.map +1 -0
- package/dist/relay/mode-manager.js +114 -0
- package/dist/relay/mode-manager.js.map +1 -0
- package/dist/relay/realtime.d.ts +90 -0
- package/dist/relay/realtime.d.ts.map +1 -0
- package/dist/relay/realtime.js +147 -0
- package/dist/relay/realtime.js.map +1 -0
- package/dist/relay/relay.d.ts +190 -0
- package/dist/relay/relay.d.ts.map +1 -0
- package/dist/relay/relay.js +320 -0
- package/dist/relay/relay.js.map +1 -0
- package/dist/relay/schema.d.ts +158 -0
- package/dist/relay/schema.d.ts.map +1 -0
- package/dist/relay/schema.js +7 -0
- package/dist/relay/schema.js.map +1 -0
- package/dist/relay/server-role/index.d.ts +56 -0
- package/dist/relay/server-role/index.d.ts.map +1 -0
- package/dist/relay/server-role/index.js +193 -0
- package/dist/relay/server-role/index.js.map +1 -0
- package/dist/relay/server-role/pull.d.ts +27 -0
- package/dist/relay/server-role/pull.d.ts.map +1 -0
- package/dist/relay/server-role/pull.js +24 -0
- package/dist/relay/server-role/pull.js.map +1 -0
- package/dist/relay/server-role/push.d.ts +29 -0
- package/dist/relay/server-role/push.d.ts.map +1 -0
- package/dist/relay/server-role/push.js +122 -0
- package/dist/relay/server-role/push.js.map +1 -0
- package/dist/s3/index.d.ts +83 -0
- package/dist/s3/index.d.ts.map +1 -0
- package/dist/s3/index.js +223 -0
- package/dist/s3/index.js.map +1 -0
- package/dist/schema.d.ts +137 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +1 -0
- package/dist/schema.js.map +1 -1
- package/dist/service-worker/index.d.ts +114 -0
- package/dist/service-worker/index.d.ts.map +1 -0
- package/dist/service-worker/index.js +487 -0
- package/dist/service-worker/index.js.map +1 -0
- package/dist/snapshot-artifacts/sqlite-bun.d.ts +15 -0
- package/dist/snapshot-artifacts/sqlite-bun.d.ts.map +1 -0
- package/dist/snapshot-artifacts/sqlite-bun.js +128 -0
- package/dist/snapshot-artifacts/sqlite-bun.js.map +1 -0
- package/dist/snapshot-artifacts.d.ts +206 -0
- package/dist/snapshot-artifacts.d.ts.map +1 -0
- package/dist/snapshot-artifacts.js +545 -0
- package/dist/snapshot-artifacts.js.map +1 -0
- package/dist/snapshot-chunks/db-metadata.d.ts +18 -0
- package/dist/snapshot-chunks/db-metadata.d.ts.map +1 -1
- package/dist/snapshot-chunks/db-metadata.js +91 -63
- package/dist/snapshot-chunks/db-metadata.js.map +1 -1
- package/dist/snapshot-chunks/index.js +2 -2
- package/dist/snapshot-chunks/types.d.ts +2 -0
- package/dist/snapshot-chunks/types.d.ts.map +1 -1
- package/dist/snapshot-chunks.d.ts +33 -3
- package/dist/snapshot-chunks.d.ts.map +1 -1
- package/dist/snapshot-chunks.js +136 -55
- package/dist/snapshot-chunks.js.map +1 -1
- package/dist/sqlite/index.d.ts +53 -0
- package/dist/sqlite/index.d.ts.map +1 -0
- package/dist/sqlite/index.js +795 -0
- package/dist/sqlite/index.js.map +1 -0
- package/dist/sqlite3.d.ts +22 -0
- package/dist/sqlite3.d.ts.map +1 -0
- package/dist/sqlite3.js +99 -0
- package/dist/sqlite3.js.map +1 -0
- package/dist/stats.d.ts +8 -0
- package/dist/stats.d.ts.map +1 -1
- package/dist/stats.js +45 -13
- package/dist/stats.js.map +1 -1
- package/dist/subscriptions/cache.d.ts +3 -0
- package/dist/subscriptions/cache.d.ts.map +1 -1
- package/dist/subscriptions/cache.js +44 -0
- package/dist/subscriptions/cache.js.map +1 -1
- package/dist/subscriptions/index.js +2 -2
- package/dist/subscriptions/resolve.d.ts +3 -1
- package/dist/subscriptions/resolve.d.ts.map +1 -1
- package/dist/subscriptions/resolve.js +91 -52
- package/dist/subscriptions/resolve.js.map +1 -1
- package/dist/sync.d.ts +3 -0
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +9 -5
- package/dist/sync.js.map +1 -1
- package/package.json +297 -8
- package/src/auth-leases.ts +649 -0
- package/src/better-sqlite3.ts +35 -0
- package/src/blobs/access.ts +244 -0
- package/src/blobs/adapters/database.ts +125 -43
- package/src/blobs/index.ts +1 -0
- package/src/blobs/manager.ts +366 -65
- package/src/blobs/migrate.ts +16 -8
- package/src/blobs/types.ts +4 -0
- package/src/bun-sqlite-ambient.d.ts +19 -0
- package/src/bun-sqlite.ts +27 -0
- package/src/clients.ts +1 -0
- package/src/cloudflare/durable-object.ts +289 -0
- package/src/cloudflare/index.ts +22 -0
- package/src/cloudflare/r2.ts +526 -0
- package/src/cloudflare/scope-cache.ts +341 -0
- package/src/cloudflare/sentry.ts +230 -0
- package/src/cloudflare/worker.ts +77 -0
- package/src/commit-integrity.ts +371 -0
- package/src/crdt-yjs/index.ts +931 -0
- package/src/d1.ts +16 -0
- package/src/dialect/base.ts +71 -5
- package/src/dialect/helpers.ts +31 -0
- package/src/dialect/types.ts +47 -0
- package/src/encrypted-crdt.ts +786 -0
- package/src/errors.ts +22 -0
- package/src/filesystem/index.ts +262 -0
- package/src/handlers/collection.ts +78 -78
- package/src/handlers/create-handler.ts +540 -147
- package/src/handlers/types.ts +116 -0
- package/src/helpers/index.ts +2 -0
- package/src/helpers/scope-authorization.ts +27 -0
- package/src/helpers/scope-commit-index.ts +52 -0
- package/src/hono/api-key-auth.ts +177 -0
- package/src/hono/audit-redaction.ts +135 -0
- package/src/hono/blobs.ts +851 -0
- package/src/hono/console/gateway.ts +3046 -0
- package/src/hono/console/live-auth.ts +46 -0
- package/src/hono/console/route-descriptor.ts +22 -0
- package/src/hono/console/routes/api-keys.ts +721 -0
- package/src/hono/console/routes/clients.ts +447 -0
- package/src/hono/console/routes/commits.ts +1137 -0
- package/src/hono/console/routes/context.ts +956 -0
- package/src/hono/console/routes/events.ts +669 -0
- package/src/hono/console/routes/maintenance.ts +461 -0
- package/src/hono/console/routes/shared.ts +816 -0
- package/src/hono/console/routes/stats.ts +392 -0
- package/src/hono/console/routes/storage.ts +159 -0
- package/src/hono/console/routes.ts +146 -0
- package/src/hono/console/schema-errors.ts +23 -0
- package/src/hono/console/schemas.ts +914 -0
- package/src/hono/console/types.ts +223 -0
- package/src/hono/console/ui.ts +100 -0
- package/src/hono/create-server.ts +230 -0
- package/src/hono/errors.ts +50 -0
- package/src/hono/index.ts +54 -0
- package/src/hono/openapi.ts +139 -0
- package/src/hono/proxy/connection-manager.ts +340 -0
- package/src/hono/proxy/index.ts +8 -0
- package/src/hono/proxy/routes.ts +272 -0
- package/src/hono/rate-limit.ts +319 -0
- package/src/hono/realtime-sync-packs.ts +354 -0
- package/src/hono/routes/audit.ts +499 -0
- package/src/hono/routes/auth-leases.ts +119 -0
- package/src/hono/routes/combined.ts +583 -0
- package/src/hono/routes/context.ts +1629 -0
- package/src/hono/routes/health.ts +26 -0
- package/src/hono/routes/realtime.ts +808 -0
- package/src/hono/routes/shared.ts +1626 -0
- package/src/hono/routes/snapshots.ts +345 -0
- package/src/hono/routes.ts +68 -0
- package/src/hono/validation.ts +81 -0
- package/src/hono/websocket-origin.ts +131 -0
- package/src/hono/ws.ts +1134 -0
- package/src/index.ts +6 -0
- package/src/libsql.ts +51 -0
- package/src/neon.ts +28 -0
- package/src/notify.ts +224 -44
- package/src/pglite.ts +68 -0
- package/src/plugins/index.ts +1 -0
- package/src/plugins/types.ts +144 -0
- package/src/postgres/index.ts +1291 -0
- package/src/proxy/collection.ts +5 -27
- package/src/proxy/handler.ts +2 -2
- package/src/proxy/index.ts +0 -2
- package/src/proxy/oplog.ts +41 -10
- package/src/prune.ts +137 -36
- package/src/pull.ts +1504 -591
- package/src/push.ts +881 -443
- package/src/realtime/index.ts +2 -0
- package/src/realtime/types.ts +35 -0
- package/src/relay/bun-types.d.ts +50 -0
- package/src/relay/client-role/forward-engine.ts +355 -0
- package/src/relay/client-role/index.ts +9 -0
- package/src/relay/client-role/pull-engine.ts +329 -0
- package/src/relay/client-role/sequence-mapper.ts +201 -0
- package/src/relay/evaluation/relay-paths.ts +699 -0
- package/src/relay/evaluation/rust-boundary.ts +464 -0
- package/src/relay/index.ts +50 -0
- package/src/relay/migrate.ts +113 -0
- package/src/relay/mode-manager.ts +142 -0
- package/src/relay/realtime.ts +207 -0
- package/src/relay/relay.ts +431 -0
- package/src/relay/schema.ts +171 -0
- package/src/relay/server-role/index.ts +338 -0
- package/src/relay/server-role/pull.ts +43 -0
- package/src/relay/server-role/push.ts +164 -0
- package/src/s3/index.ts +346 -0
- package/src/schema.ts +141 -1
- package/src/service-worker/index.ts +773 -0
- package/src/snapshot-artifacts/sqlite-bun.ts +168 -0
- package/src/snapshot-artifacts.ts +896 -0
- package/src/snapshot-chunks/db-metadata.ts +131 -72
- package/src/snapshot-chunks/types.ts +2 -0
- package/src/snapshot-chunks.ts +194 -70
- package/src/sqlite/index.ts +1064 -0
- package/src/sqlite3.ts +137 -0
- package/src/stats.ts +76 -13
- package/src/subscriptions/cache.ts +58 -0
- package/src/subscriptions/resolve.ts +99 -58
- package/src/sync.ts +16 -6
- package/src/blobs/adapters/database.test.ts +0 -67
- package/src/notify.test.ts +0 -520
- package/src/proxy/handler.test.ts +0 -126
- package/src/proxy/mutation-detector.test.ts +0 -71
- package/src/snapshot-chunks/db-metadata.test.ts +0 -172
- package/src/subscriptions/resolve.test.ts +0 -180
|
@@ -0,0 +1,914 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @syncular/server/hono - Console API Zod schemas
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Stats Schema
|
|
9
|
+
// ============================================================================
|
|
10
|
+
|
|
11
|
+
export const SyncStatsSchema = z.object({
|
|
12
|
+
commitCount: z.number().int(),
|
|
13
|
+
changeCount: z.number().int(),
|
|
14
|
+
minCommitSeq: z.number().int(),
|
|
15
|
+
maxCommitSeq: z.number().int(),
|
|
16
|
+
clientCount: z.number().int(),
|
|
17
|
+
activeClientCount: z.number().int(),
|
|
18
|
+
minActiveClientCursor: z.number().int().nullable(),
|
|
19
|
+
maxActiveClientCursor: z.number().int().nullable(),
|
|
20
|
+
snapshotChunkCount: z.number().int().nonnegative(),
|
|
21
|
+
snapshotChunkBytes: z.number().int().nonnegative(),
|
|
22
|
+
expiredSnapshotChunkCount: z.number().int().nonnegative(),
|
|
23
|
+
expiredSnapshotChunkBytes: z.number().int().nonnegative(),
|
|
24
|
+
snapshotArtifactCount: z.number().int().nonnegative(),
|
|
25
|
+
snapshotArtifactBytes: z.number().int().nonnegative(),
|
|
26
|
+
expiredSnapshotArtifactCount: z.number().int().nonnegative(),
|
|
27
|
+
expiredSnapshotArtifactBytes: z.number().int().nonnegative(),
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
export type SyncStats = z.infer<typeof SyncStatsSchema>;
|
|
31
|
+
|
|
32
|
+
// ============================================================================
|
|
33
|
+
// Commit Schemas
|
|
34
|
+
// ============================================================================
|
|
35
|
+
|
|
36
|
+
export const ConsoleCommitListItemSchema = z.object({
|
|
37
|
+
commitSeq: z.number().int(),
|
|
38
|
+
actorId: z.string(),
|
|
39
|
+
clientId: z.string(),
|
|
40
|
+
clientCommitId: z.string(),
|
|
41
|
+
createdAt: z.string(),
|
|
42
|
+
changeCount: z.number().int(),
|
|
43
|
+
affectedTables: z.array(z.string()),
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
export type ConsoleCommitListItem = z.infer<typeof ConsoleCommitListItemSchema>;
|
|
47
|
+
|
|
48
|
+
export const ConsoleAuditChangeKindSchema = z.enum([
|
|
49
|
+
'app_row',
|
|
50
|
+
'delete',
|
|
51
|
+
'blob_reference',
|
|
52
|
+
'encrypted_field_envelope',
|
|
53
|
+
'encrypted_crdt_update',
|
|
54
|
+
'encrypted_crdt_checkpoint',
|
|
55
|
+
]);
|
|
56
|
+
|
|
57
|
+
export const ConsoleAuditChangeRedactionSchema = z.object({
|
|
58
|
+
payload: z.literal('omitted'),
|
|
59
|
+
reason: z.literal('audit_redacted_by_default'),
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
export const ConsoleChangeSchema = z.object({
|
|
63
|
+
changeId: z.number().int(),
|
|
64
|
+
table: z.string(),
|
|
65
|
+
rowId: z.string(),
|
|
66
|
+
op: z.enum(['upsert', 'delete']),
|
|
67
|
+
rowVersion: z.number().int().nullable(),
|
|
68
|
+
fields: z.array(z.string()),
|
|
69
|
+
scopeFields: z.array(z.string()),
|
|
70
|
+
changeKind: ConsoleAuditChangeKindSchema,
|
|
71
|
+
sensitiveFields: z.array(z.string()),
|
|
72
|
+
redaction: ConsoleAuditChangeRedactionSchema,
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
export type ConsoleChange = z.infer<typeof ConsoleChangeSchema>;
|
|
76
|
+
|
|
77
|
+
export const ConsoleCommitDetailSchema = ConsoleCommitListItemSchema.extend({
|
|
78
|
+
changes: z.array(ConsoleChangeSchema),
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
export type ConsoleCommitDetail = z.infer<typeof ConsoleCommitDetailSchema>;
|
|
82
|
+
|
|
83
|
+
export const ConsoleRowHistoryEntrySchema = z.object({
|
|
84
|
+
commitSeq: z.number().int(),
|
|
85
|
+
actorId: z.string(),
|
|
86
|
+
clientId: z.string(),
|
|
87
|
+
clientCommitId: z.string(),
|
|
88
|
+
createdAt: z.string(),
|
|
89
|
+
changeId: z.number().int(),
|
|
90
|
+
table: z.string(),
|
|
91
|
+
rowId: z.string(),
|
|
92
|
+
op: z.enum(['upsert', 'delete']),
|
|
93
|
+
rowVersion: z.number().int().nullable(),
|
|
94
|
+
fields: z.array(z.string()),
|
|
95
|
+
scopeFields: z.array(z.string()),
|
|
96
|
+
changeKind: ConsoleAuditChangeKindSchema,
|
|
97
|
+
sensitiveFields: z.array(z.string()),
|
|
98
|
+
redaction: ConsoleAuditChangeRedactionSchema,
|
|
99
|
+
requestEventIds: z.array(z.number().int()),
|
|
100
|
+
requestIds: z.array(z.string()),
|
|
101
|
+
traceIds: z.array(z.string()),
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
export type ConsoleRowHistoryEntry = z.infer<
|
|
105
|
+
typeof ConsoleRowHistoryEntrySchema
|
|
106
|
+
>;
|
|
107
|
+
|
|
108
|
+
export const ConsoleRowHistoryResponseSchema = z.object({
|
|
109
|
+
table: z.string(),
|
|
110
|
+
rowId: z.string(),
|
|
111
|
+
partitionId: z.string(),
|
|
112
|
+
history: z.array(ConsoleRowHistoryEntrySchema),
|
|
113
|
+
nextCursor: z.number().int().nullable(),
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
export type ConsoleRowHistoryResponse = z.infer<
|
|
117
|
+
typeof ConsoleRowHistoryResponseSchema
|
|
118
|
+
>;
|
|
119
|
+
|
|
120
|
+
export const ConsoleRowInvestigationClientSchema = z.object({
|
|
121
|
+
clientId: z.string(),
|
|
122
|
+
actorId: z.string(),
|
|
123
|
+
cursor: z.number().int(),
|
|
124
|
+
effectiveScopeKeys: z.array(z.string()),
|
|
125
|
+
updatedAt: z.string(),
|
|
126
|
+
lastRequestAt: z.string().nullable(),
|
|
127
|
+
lastRequestType: z.enum(['sync', 'push', 'pull']).nullable(),
|
|
128
|
+
lastRequestOutcome: z.string().nullable(),
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
export type ConsoleRowInvestigationClient = z.infer<
|
|
132
|
+
typeof ConsoleRowInvestigationClientSchema
|
|
133
|
+
>;
|
|
134
|
+
|
|
135
|
+
export const ConsoleRowInvestigationScopeEligibilitySchema = z.object({
|
|
136
|
+
status: z.enum(['eligible', 'not_eligible', 'unknown', 'no_client']),
|
|
137
|
+
requiredScopeKeys: z.array(z.string()),
|
|
138
|
+
matchedScopeKeys: z.array(z.string()),
|
|
139
|
+
missingScopeKeys: z.array(z.string()),
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
export type ConsoleRowInvestigationScopeEligibility = z.infer<
|
|
143
|
+
typeof ConsoleRowInvestigationScopeEligibilitySchema
|
|
144
|
+
>;
|
|
145
|
+
|
|
146
|
+
export const ConsoleRowInvestigationFindingSchema = z.object({
|
|
147
|
+
severity: z.enum(['info', 'warning', 'error']),
|
|
148
|
+
code: z.string(),
|
|
149
|
+
message: z.string(),
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
export type ConsoleRowInvestigationFinding = z.infer<
|
|
153
|
+
typeof ConsoleRowInvestigationFindingSchema
|
|
154
|
+
>;
|
|
155
|
+
|
|
156
|
+
export const ConsoleRowInvestigationSubscriptionEvidenceSchema = z.object({
|
|
157
|
+
status: z.enum(['observed', 'revoked', 'not_observed', 'unknown']),
|
|
158
|
+
matchingEventCount: z.number().int().nonnegative(),
|
|
159
|
+
latestEventId: z.number().int().nullable(),
|
|
160
|
+
latestRequestId: z.string().nullable(),
|
|
161
|
+
latestEventOutcome: z.string().nullable(),
|
|
162
|
+
latestSubscriptionCount: z.number().int().nullable(),
|
|
163
|
+
requestedTableObserved: z.boolean(),
|
|
164
|
+
observedScopeKeys: z.array(z.string()),
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
export type ConsoleRowInvestigationSubscriptionEvidence = z.infer<
|
|
168
|
+
typeof ConsoleRowInvestigationSubscriptionEvidenceSchema
|
|
169
|
+
>;
|
|
170
|
+
|
|
171
|
+
export const ConsoleRowInvestigationRequestEvidenceSchema = z.object({
|
|
172
|
+
matchingEventCount: z.number().int().nonnegative(),
|
|
173
|
+
successEventCount: z.number().int().nonnegative(),
|
|
174
|
+
nonSuccessEventCount: z.number().int().nonnegative(),
|
|
175
|
+
latestEventId: z.number().int().nullable(),
|
|
176
|
+
latestRequestId: z.string().nullable(),
|
|
177
|
+
latestOutcome: z.string().nullable(),
|
|
178
|
+
latestResponseStatus: z.string().nullable(),
|
|
179
|
+
latestErrorCode: z.string().nullable(),
|
|
180
|
+
latestErrorMessage: z.string().nullable(),
|
|
181
|
+
latestSuccessRequestId: z.string().nullable(),
|
|
182
|
+
latestNonSuccessRequestId: z.string().nullable(),
|
|
183
|
+
latestNonSuccessResponseStatus: z.string().nullable(),
|
|
184
|
+
latestNonSuccessErrorCode: z.string().nullable(),
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
export type ConsoleRowInvestigationRequestEvidence = z.infer<
|
|
188
|
+
typeof ConsoleRowInvestigationRequestEvidenceSchema
|
|
189
|
+
>;
|
|
190
|
+
|
|
191
|
+
export const ConsoleRowInvestigationSnapshotEvidenceSchema = z.object({
|
|
192
|
+
pageCount: z.number().int().nonnegative(),
|
|
193
|
+
inlineRowCount: z.number().int().nonnegative(),
|
|
194
|
+
chunkCount: z.number().int().nonnegative(),
|
|
195
|
+
chunkBytes: z.number().int().nonnegative(),
|
|
196
|
+
artifactCount: z.number().int().nonnegative(),
|
|
197
|
+
artifactBytes: z.number().int().nonnegative(),
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
export type ConsoleRowInvestigationSnapshotEvidence = z.infer<
|
|
201
|
+
typeof ConsoleRowInvestigationSnapshotEvidenceSchema
|
|
202
|
+
>;
|
|
203
|
+
|
|
204
|
+
export const ConsoleRowInvestigationRealtimeEvidenceSchema = z.object({
|
|
205
|
+
matchingEventCount: z.number().int().nonnegative(),
|
|
206
|
+
connectedEventCount: z.number().int().nonnegative(),
|
|
207
|
+
pullRequiredEventCount: z.number().int().nonnegative(),
|
|
208
|
+
ackEventCount: z.number().int().nonnegative(),
|
|
209
|
+
rejectedEventCount: z.number().int().nonnegative(),
|
|
210
|
+
errorEventCount: z.number().int().nonnegative(),
|
|
211
|
+
latestEventId: z.number().int().nullable(),
|
|
212
|
+
latestEventType: z.string().nullable(),
|
|
213
|
+
latestReason: z.string().nullable(),
|
|
214
|
+
latestCursor: z.number().int().nullable(),
|
|
215
|
+
latestServerCursor: z.number().int().nullable(),
|
|
216
|
+
latestPullRequiredReason: z.string().nullable(),
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
export type ConsoleRowInvestigationRealtimeEvidence = z.infer<
|
|
220
|
+
typeof ConsoleRowInvestigationRealtimeEvidenceSchema
|
|
221
|
+
>;
|
|
222
|
+
|
|
223
|
+
export const ConsoleRequestEventResponseSummarySchema = z
|
|
224
|
+
.object({
|
|
225
|
+
subscriptionCount: z.number().int().nonnegative().optional(),
|
|
226
|
+
activeSubscriptionCount: z.number().int().nonnegative().optional(),
|
|
227
|
+
revokedSubscriptionCount: z.number().int().nonnegative().optional(),
|
|
228
|
+
bootstrapSubscriptionCount: z.number().int().nonnegative().optional(),
|
|
229
|
+
commitCount: z.number().int().nonnegative().optional(),
|
|
230
|
+
changeCount: z.number().int().nonnegative().optional(),
|
|
231
|
+
snapshotPageCount: z.number().int().nonnegative().optional(),
|
|
232
|
+
snapshotInlineRowCount: z.number().int().nonnegative().optional(),
|
|
233
|
+
snapshotChunkCount: z.number().int().nonnegative().optional(),
|
|
234
|
+
snapshotChunkBytes: z.number().int().nonnegative().optional(),
|
|
235
|
+
snapshotArtifactCount: z.number().int().nonnegative().optional(),
|
|
236
|
+
snapshotArtifactBytes: z.number().int().nonnegative().optional(),
|
|
237
|
+
})
|
|
238
|
+
.passthrough();
|
|
239
|
+
|
|
240
|
+
export type ConsoleRequestEventResponseSummary = z.infer<
|
|
241
|
+
typeof ConsoleRequestEventResponseSummarySchema
|
|
242
|
+
>;
|
|
243
|
+
|
|
244
|
+
export const ConsoleDebugExportCommitSchema =
|
|
245
|
+
ConsoleCommitListItemSchema.extend({
|
|
246
|
+
changes: z.array(ConsoleChangeSchema),
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
export type ConsoleDebugExportCommit = z.infer<
|
|
250
|
+
typeof ConsoleDebugExportCommitSchema
|
|
251
|
+
>;
|
|
252
|
+
|
|
253
|
+
export const ConsoleDebugExportEventSchema = z.object({
|
|
254
|
+
eventId: z.number().int(),
|
|
255
|
+
partitionId: z.string(),
|
|
256
|
+
requestId: z.string(),
|
|
257
|
+
traceId: z.string().nullable(),
|
|
258
|
+
spanId: z.string().nullable(),
|
|
259
|
+
eventType: z.enum(['sync', 'push', 'pull']),
|
|
260
|
+
syncPath: z.enum(['http-combined', 'ws-push']),
|
|
261
|
+
transportPath: z.enum(['direct', 'relay']),
|
|
262
|
+
actorId: z.string(),
|
|
263
|
+
clientId: z.string(),
|
|
264
|
+
statusCode: z.number().int(),
|
|
265
|
+
outcome: z.string(),
|
|
266
|
+
responseStatus: z.string(),
|
|
267
|
+
errorCode: z.string().nullable(),
|
|
268
|
+
durationMs: z.number().int(),
|
|
269
|
+
commitSeq: z.number().int().nullable(),
|
|
270
|
+
operationCount: z.number().int().nullable(),
|
|
271
|
+
rowCount: z.number().int().nullable(),
|
|
272
|
+
subscriptionCount: z.number().int().nullable(),
|
|
273
|
+
scopesSummary: z
|
|
274
|
+
.record(z.string(), z.union([z.string(), z.array(z.string())]))
|
|
275
|
+
.nullable(),
|
|
276
|
+
responseSummary: ConsoleRequestEventResponseSummarySchema.nullable(),
|
|
277
|
+
tables: z.array(z.string()),
|
|
278
|
+
createdAt: z.string(),
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
export type ConsoleDebugExportEvent = z.infer<
|
|
282
|
+
typeof ConsoleDebugExportEventSchema
|
|
283
|
+
>;
|
|
284
|
+
|
|
285
|
+
export const ConsoleDebugExportResponseSchema = z.object({
|
|
286
|
+
generatedAt: z.string(),
|
|
287
|
+
partitionId: z.string(),
|
|
288
|
+
limits: z.object({
|
|
289
|
+
commits: z.number().int(),
|
|
290
|
+
requestEvents: z.number().int(),
|
|
291
|
+
}),
|
|
292
|
+
truncated: z.object({
|
|
293
|
+
commits: z.boolean(),
|
|
294
|
+
requestEvents: z.boolean(),
|
|
295
|
+
}),
|
|
296
|
+
commits: z.array(ConsoleDebugExportCommitSchema),
|
|
297
|
+
requestEvents: z.array(ConsoleDebugExportEventSchema),
|
|
298
|
+
});
|
|
299
|
+
|
|
300
|
+
export type ConsoleDebugExportResponse = z.infer<
|
|
301
|
+
typeof ConsoleDebugExportResponseSchema
|
|
302
|
+
>;
|
|
303
|
+
|
|
304
|
+
// ============================================================================
|
|
305
|
+
// Client Schemas
|
|
306
|
+
// ============================================================================
|
|
307
|
+
|
|
308
|
+
export const ConsoleClientDiagnosticHealthSeveritySchema = z.enum([
|
|
309
|
+
'debug',
|
|
310
|
+
'info',
|
|
311
|
+
'warn',
|
|
312
|
+
'error',
|
|
313
|
+
]);
|
|
314
|
+
|
|
315
|
+
export type ConsoleClientDiagnosticHealthSeverity = z.infer<
|
|
316
|
+
typeof ConsoleClientDiagnosticHealthSeveritySchema
|
|
317
|
+
>;
|
|
318
|
+
|
|
319
|
+
export const ConsoleClientDiagnosticFreshnessStateSchema = z.enum([
|
|
320
|
+
'active',
|
|
321
|
+
'idle',
|
|
322
|
+
'stale',
|
|
323
|
+
]);
|
|
324
|
+
|
|
325
|
+
export type ConsoleClientDiagnosticFreshnessState = z.infer<
|
|
326
|
+
typeof ConsoleClientDiagnosticFreshnessStateSchema
|
|
327
|
+
>;
|
|
328
|
+
|
|
329
|
+
export const ConsoleClientSchema = z.object({
|
|
330
|
+
clientId: z.string(),
|
|
331
|
+
actorId: z.string(),
|
|
332
|
+
cursor: z.number().int(),
|
|
333
|
+
lagCommitCount: z.number().int().nonnegative(),
|
|
334
|
+
connectionPath: z.enum(['direct', 'relay']),
|
|
335
|
+
connectionMode: z.enum(['polling', 'realtime']),
|
|
336
|
+
realtimeConnectionCount: z.number().int().nonnegative(),
|
|
337
|
+
isRealtimeConnected: z.boolean(),
|
|
338
|
+
activityState: z.enum(['active', 'idle', 'stale']),
|
|
339
|
+
diagnosticFreshnessState:
|
|
340
|
+
ConsoleClientDiagnosticFreshnessStateSchema.nullable(),
|
|
341
|
+
diagnosticHealthMaxSeverity:
|
|
342
|
+
ConsoleClientDiagnosticHealthSeveritySchema.nullable(),
|
|
343
|
+
diagnosticReceivedAt: z.string().nullable(),
|
|
344
|
+
lastRequestAt: z.string().nullable(),
|
|
345
|
+
lastRequestType: z.enum(['sync', 'push', 'pull']).nullable(),
|
|
346
|
+
lastRequestOutcome: z.string().nullable(),
|
|
347
|
+
effectiveScopes: z.record(z.string(), z.unknown()),
|
|
348
|
+
updatedAt: z.string(),
|
|
349
|
+
});
|
|
350
|
+
|
|
351
|
+
export type ConsoleClient = z.infer<typeof ConsoleClientSchema>;
|
|
352
|
+
|
|
353
|
+
export const ConsoleClientDiagnosticRuntimeSchema = z
|
|
354
|
+
.object({
|
|
355
|
+
packageName: z.string().optional(),
|
|
356
|
+
packageVersion: z.string().optional(),
|
|
357
|
+
workerProtocolVersion: z.number().int().optional(),
|
|
358
|
+
storage: z.string().optional(),
|
|
359
|
+
storageFallback: z
|
|
360
|
+
.object({
|
|
361
|
+
from: z.string().optional(),
|
|
362
|
+
to: z.string().optional(),
|
|
363
|
+
reason: z.string().optional(),
|
|
364
|
+
})
|
|
365
|
+
.passthrough()
|
|
366
|
+
.optional(),
|
|
367
|
+
workerUrl: z.string().optional(),
|
|
368
|
+
wasmGlueUrl: z.string().optional(),
|
|
369
|
+
wasmUrl: z.string().optional(),
|
|
370
|
+
rust: z
|
|
371
|
+
.object({
|
|
372
|
+
crateName: z.string().optional(),
|
|
373
|
+
crateVersion: z.string().optional(),
|
|
374
|
+
schemaVersion: z.number().int().optional(),
|
|
375
|
+
features: z.array(z.string()).optional(),
|
|
376
|
+
})
|
|
377
|
+
.passthrough()
|
|
378
|
+
.optional(),
|
|
379
|
+
})
|
|
380
|
+
.passthrough();
|
|
381
|
+
|
|
382
|
+
export type ConsoleClientDiagnosticRuntime = z.infer<
|
|
383
|
+
typeof ConsoleClientDiagnosticRuntimeSchema
|
|
384
|
+
>;
|
|
385
|
+
|
|
386
|
+
export const ConsoleClientDiagnosticConnectionSchema = z
|
|
387
|
+
.object({
|
|
388
|
+
closed: z.boolean().optional(),
|
|
389
|
+
pendingRequests: z.number().int().nonnegative().optional(),
|
|
390
|
+
realtime: z.string().optional(),
|
|
391
|
+
storageFallback: z.unknown().optional(),
|
|
392
|
+
lastDiagnostic: z.unknown().optional(),
|
|
393
|
+
lastError: z.unknown().optional(),
|
|
394
|
+
})
|
|
395
|
+
.passthrough();
|
|
396
|
+
|
|
397
|
+
export const ConsoleClientDiagnosticLifecycleSchema = z
|
|
398
|
+
.object({
|
|
399
|
+
phase: z.string().optional(),
|
|
400
|
+
realtime: z.string().optional(),
|
|
401
|
+
online: z.boolean().optional(),
|
|
402
|
+
requiresAction: z.boolean().optional(),
|
|
403
|
+
pendingRequests: z.number().int().nonnegative().optional(),
|
|
404
|
+
bootstrap: z.unknown().optional(),
|
|
405
|
+
outbox: z.unknown().optional(),
|
|
406
|
+
conflicts: z.unknown().optional(),
|
|
407
|
+
blobUploads: z.unknown().optional(),
|
|
408
|
+
lastDiagnostic: z.unknown().optional(),
|
|
409
|
+
lastError: z.unknown().optional(),
|
|
410
|
+
})
|
|
411
|
+
.passthrough();
|
|
412
|
+
|
|
413
|
+
export const ConsoleClientDiagnosticSubscriptionSchema = z
|
|
414
|
+
.object({
|
|
415
|
+
id: z.string(),
|
|
416
|
+
table: z.string(),
|
|
417
|
+
scopeKeys: z.array(z.string()).default([]),
|
|
418
|
+
scopeValueCount: z.number().int().nonnegative().default(0),
|
|
419
|
+
paramsKeys: z.array(z.string()).default([]),
|
|
420
|
+
paramsValueCount: z.number().int().nonnegative().default(0),
|
|
421
|
+
status: z.string().nullable().default(null),
|
|
422
|
+
ready: z.boolean().default(false),
|
|
423
|
+
phase: z.string().optional(),
|
|
424
|
+
progressPercent: z.number().default(0),
|
|
425
|
+
cursor: z.union([z.number().int(), z.string()]).nullable().default(null),
|
|
426
|
+
bootstrapPhase: z.number().int().default(0),
|
|
427
|
+
bootstrapState: z.unknown().nullable().default(null),
|
|
428
|
+
})
|
|
429
|
+
.passthrough();
|
|
430
|
+
|
|
431
|
+
export type ConsoleClientDiagnosticSubscription = z.infer<
|
|
432
|
+
typeof ConsoleClientDiagnosticSubscriptionSchema
|
|
433
|
+
>;
|
|
434
|
+
|
|
435
|
+
export const ConsoleClientDiagnosticEventSchema = z
|
|
436
|
+
.object({
|
|
437
|
+
at: z.number(),
|
|
438
|
+
level: z.enum(['debug', 'info', 'warn', 'error']).catch('info'),
|
|
439
|
+
source: z.string(),
|
|
440
|
+
code: z.string(),
|
|
441
|
+
message: z.string(),
|
|
442
|
+
syncAttemptId: z.string().optional(),
|
|
443
|
+
traceId: z.string().optional(),
|
|
444
|
+
spanId: z.string().optional(),
|
|
445
|
+
clientId: z.string().optional(),
|
|
446
|
+
subscriptionId: z.string().optional(),
|
|
447
|
+
table: z.string().optional(),
|
|
448
|
+
rowId: z.string().optional(),
|
|
449
|
+
cursor: z.union([z.number(), z.string()]).nullable().optional(),
|
|
450
|
+
details: z.record(z.string(), z.unknown()).optional(),
|
|
451
|
+
})
|
|
452
|
+
.passthrough();
|
|
453
|
+
|
|
454
|
+
export type ConsoleClientDiagnosticEvent = z.infer<
|
|
455
|
+
typeof ConsoleClientDiagnosticEventSchema
|
|
456
|
+
>;
|
|
457
|
+
|
|
458
|
+
export const ConsoleClientDiagnosticCodeSummarySchema = z.object({
|
|
459
|
+
code: z.string(),
|
|
460
|
+
count: z.number().int().nonnegative(),
|
|
461
|
+
maxLevel: ConsoleClientDiagnosticHealthSeveritySchema,
|
|
462
|
+
});
|
|
463
|
+
|
|
464
|
+
export type ConsoleClientDiagnosticCodeSummary = z.infer<
|
|
465
|
+
typeof ConsoleClientDiagnosticCodeSummarySchema
|
|
466
|
+
>;
|
|
467
|
+
|
|
468
|
+
export const ConsoleClientDiagnosticSnapshotSchema = z
|
|
469
|
+
.object({
|
|
470
|
+
generatedAt: z.number().optional(),
|
|
471
|
+
runtime: ConsoleClientDiagnosticRuntimeSchema.optional(),
|
|
472
|
+
connection: ConsoleClientDiagnosticConnectionSchema.optional(),
|
|
473
|
+
subscriptions: z
|
|
474
|
+
.array(ConsoleClientDiagnosticSubscriptionSchema)
|
|
475
|
+
.default([]),
|
|
476
|
+
recentDiagnostics: z.array(ConsoleClientDiagnosticEventSchema).default([]),
|
|
477
|
+
recentSyncTimings: z.array(z.record(z.string(), z.unknown())).default([]),
|
|
478
|
+
bootstrap: z.record(z.string(), z.unknown()).optional(),
|
|
479
|
+
transportStats: z.record(z.string(), z.unknown()).optional(),
|
|
480
|
+
outboxStats: z.record(z.string(), z.unknown()).optional(),
|
|
481
|
+
conflictStats: z.record(z.string(), z.unknown()).optional(),
|
|
482
|
+
blobUploadStats: z.record(z.string(), z.unknown()).optional(),
|
|
483
|
+
})
|
|
484
|
+
.passthrough();
|
|
485
|
+
|
|
486
|
+
export type ConsoleClientDiagnosticSnapshot = z.infer<
|
|
487
|
+
typeof ConsoleClientDiagnosticSnapshotSchema
|
|
488
|
+
>;
|
|
489
|
+
|
|
490
|
+
export const ConsoleClientDiagnosticIngestSchema = z.object({
|
|
491
|
+
clientId: z.string().min(1),
|
|
492
|
+
actorId: z.string().min(1).optional(),
|
|
493
|
+
partitionId: z.string().min(1).default('default'),
|
|
494
|
+
lifecycle: ConsoleClientDiagnosticLifecycleSchema.optional(),
|
|
495
|
+
snapshot: ConsoleClientDiagnosticSnapshotSchema,
|
|
496
|
+
});
|
|
497
|
+
|
|
498
|
+
export type ConsoleClientDiagnosticIngest = z.infer<
|
|
499
|
+
typeof ConsoleClientDiagnosticIngestSchema
|
|
500
|
+
>;
|
|
501
|
+
|
|
502
|
+
export const ConsoleClientDiagnosticRecordSchema = z.object({
|
|
503
|
+
clientId: z.string(),
|
|
504
|
+
actorId: z.string().nullable(),
|
|
505
|
+
partitionId: z.string(),
|
|
506
|
+
reportedAt: z.string(),
|
|
507
|
+
receivedAt: z.string(),
|
|
508
|
+
freshnessState: ConsoleClientDiagnosticFreshnessStateSchema,
|
|
509
|
+
healthMaxSeverity: ConsoleClientDiagnosticHealthSeveritySchema.nullable(),
|
|
510
|
+
diagnosticCodesSummary: z.array(ConsoleClientDiagnosticCodeSummarySchema),
|
|
511
|
+
queueSummary: z.record(z.string(), z.unknown()).nullable(),
|
|
512
|
+
timingSummary: z.record(z.string(), z.unknown()).nullable(),
|
|
513
|
+
redactionSummary: z.record(z.string(), z.unknown()),
|
|
514
|
+
runtime: ConsoleClientDiagnosticRuntimeSchema.nullable(),
|
|
515
|
+
connection: ConsoleClientDiagnosticConnectionSchema.nullable(),
|
|
516
|
+
lifecycle: ConsoleClientDiagnosticLifecycleSchema.nullable(),
|
|
517
|
+
bootstrap: z.record(z.string(), z.unknown()).nullable(),
|
|
518
|
+
transportStats: z.record(z.string(), z.unknown()).nullable(),
|
|
519
|
+
outboxStats: z.record(z.string(), z.unknown()).nullable(),
|
|
520
|
+
conflictStats: z.record(z.string(), z.unknown()).nullable(),
|
|
521
|
+
blobUploadStats: z.record(z.string(), z.unknown()).nullable(),
|
|
522
|
+
subscriptions: z.array(ConsoleClientDiagnosticSubscriptionSchema),
|
|
523
|
+
recentDiagnostics: z.array(ConsoleClientDiagnosticEventSchema),
|
|
524
|
+
recentSyncTimings: z.array(z.record(z.string(), z.unknown())),
|
|
525
|
+
});
|
|
526
|
+
|
|
527
|
+
export type ConsoleClientDiagnosticRecord = z.infer<
|
|
528
|
+
typeof ConsoleClientDiagnosticRecordSchema
|
|
529
|
+
>;
|
|
530
|
+
|
|
531
|
+
// ============================================================================
|
|
532
|
+
// Handler Schemas
|
|
533
|
+
// ============================================================================
|
|
534
|
+
|
|
535
|
+
export const ConsoleHandlerSchema = z.object({
|
|
536
|
+
table: z.string(),
|
|
537
|
+
dependsOn: z.array(z.string()).optional(),
|
|
538
|
+
snapshotChunkTtlMs: z.number().int().optional(),
|
|
539
|
+
});
|
|
540
|
+
|
|
541
|
+
export type ConsoleHandler = z.infer<typeof ConsoleHandlerSchema>;
|
|
542
|
+
|
|
543
|
+
// ============================================================================
|
|
544
|
+
// Prune & Compact Schemas
|
|
545
|
+
// ============================================================================
|
|
546
|
+
|
|
547
|
+
export const ConsolePrunePreviewSchema = z.object({
|
|
548
|
+
watermarkCommitSeq: z.number().int(),
|
|
549
|
+
commitsToDelete: z.number().int(),
|
|
550
|
+
});
|
|
551
|
+
|
|
552
|
+
export type ConsolePrunePreview = z.infer<typeof ConsolePrunePreviewSchema>;
|
|
553
|
+
|
|
554
|
+
export const ConsolePruneResultSchema = z.object({
|
|
555
|
+
deletedCommits: z.number().int(),
|
|
556
|
+
});
|
|
557
|
+
|
|
558
|
+
export type ConsolePruneResult = z.infer<typeof ConsolePruneResultSchema>;
|
|
559
|
+
|
|
560
|
+
export const ConsoleCompactResultSchema = z.object({
|
|
561
|
+
deletedChanges: z.number().int(),
|
|
562
|
+
});
|
|
563
|
+
|
|
564
|
+
export type ConsoleCompactResult = z.infer<typeof ConsoleCompactResultSchema>;
|
|
565
|
+
|
|
566
|
+
// ============================================================================
|
|
567
|
+
// Evict Schema
|
|
568
|
+
// ============================================================================
|
|
569
|
+
|
|
570
|
+
export const ConsoleEvictResultSchema = z.object({
|
|
571
|
+
evicted: z.boolean(),
|
|
572
|
+
});
|
|
573
|
+
|
|
574
|
+
export type ConsoleEvictResult = z.infer<typeof ConsoleEvictResultSchema>;
|
|
575
|
+
|
|
576
|
+
// ============================================================================
|
|
577
|
+
// Request Event Schemas
|
|
578
|
+
// ============================================================================
|
|
579
|
+
|
|
580
|
+
export const ConsoleRequestEventSchema = z.object({
|
|
581
|
+
eventId: z.number().int(),
|
|
582
|
+
partitionId: z.string(),
|
|
583
|
+
requestId: z.string(),
|
|
584
|
+
traceId: z.string().nullable(),
|
|
585
|
+
spanId: z.string().nullable(),
|
|
586
|
+
eventType: z.enum(['sync', 'push', 'pull']),
|
|
587
|
+
syncPath: z.enum(['http-combined', 'ws-push']),
|
|
588
|
+
transportPath: z.enum(['direct', 'relay']),
|
|
589
|
+
actorId: z.string(),
|
|
590
|
+
clientId: z.string(),
|
|
591
|
+
statusCode: z.number().int(),
|
|
592
|
+
outcome: z.string(),
|
|
593
|
+
responseStatus: z.string(),
|
|
594
|
+
errorCode: z.string().nullable(),
|
|
595
|
+
durationMs: z.number().int(),
|
|
596
|
+
commitSeq: z.number().int().nullable(),
|
|
597
|
+
operationCount: z.number().int().nullable(),
|
|
598
|
+
rowCount: z.number().int().nullable(),
|
|
599
|
+
subscriptionCount: z.number().int().nullable(),
|
|
600
|
+
scopesSummary: z
|
|
601
|
+
.record(z.string(), z.union([z.string(), z.array(z.string())]))
|
|
602
|
+
.nullable(),
|
|
603
|
+
responseSummary: ConsoleRequestEventResponseSummarySchema.nullable(),
|
|
604
|
+
tables: z.array(z.string()),
|
|
605
|
+
errorMessage: z.string().nullable(),
|
|
606
|
+
payloadRef: z.string().nullable(),
|
|
607
|
+
createdAt: z.string(),
|
|
608
|
+
});
|
|
609
|
+
|
|
610
|
+
export type ConsoleRequestEvent = z.infer<typeof ConsoleRequestEventSchema>;
|
|
611
|
+
|
|
612
|
+
export const ConsoleRowInvestigationResponseSchema = z.object({
|
|
613
|
+
table: z.string(),
|
|
614
|
+
rowId: z.string(),
|
|
615
|
+
partitionId: z.string(),
|
|
616
|
+
clientId: z.string().nullable(),
|
|
617
|
+
rowKnown: z.boolean(),
|
|
618
|
+
latestCommitSeq: z.number().int().nullable(),
|
|
619
|
+
latestOp: z.enum(['upsert', 'delete']).nullable(),
|
|
620
|
+
client: ConsoleRowInvestigationClientSchema.nullable(),
|
|
621
|
+
scopeEligibility: ConsoleRowInvestigationScopeEligibilitySchema,
|
|
622
|
+
subscriptionEvidence: ConsoleRowInvestigationSubscriptionEvidenceSchema,
|
|
623
|
+
requestEvidence: ConsoleRowInvestigationRequestEvidenceSchema,
|
|
624
|
+
snapshotEvidence: ConsoleRowInvestigationSnapshotEvidenceSchema,
|
|
625
|
+
realtimeEvidence: ConsoleRowInvestigationRealtimeEvidenceSchema,
|
|
626
|
+
history: z.array(ConsoleRowHistoryEntrySchema),
|
|
627
|
+
relevantEvents: z.array(ConsoleRequestEventSchema),
|
|
628
|
+
findings: z.array(ConsoleRowInvestigationFindingSchema),
|
|
629
|
+
nextCursor: z.number().int().nullable(),
|
|
630
|
+
});
|
|
631
|
+
|
|
632
|
+
export type ConsoleRowInvestigationResponse = z.infer<
|
|
633
|
+
typeof ConsoleRowInvestigationResponseSchema
|
|
634
|
+
>;
|
|
635
|
+
|
|
636
|
+
export const ConsoleRequestPayloadSchema = z.object({
|
|
637
|
+
payloadRef: z.string(),
|
|
638
|
+
partitionId: z.string(),
|
|
639
|
+
requestPayload: z.unknown(),
|
|
640
|
+
responsePayload: z.unknown().nullable(),
|
|
641
|
+
createdAt: z.string(),
|
|
642
|
+
});
|
|
643
|
+
|
|
644
|
+
export type ConsoleRequestPayload = z.infer<typeof ConsoleRequestPayloadSchema>;
|
|
645
|
+
|
|
646
|
+
export const ConsoleTimelineItemSchema = z.object({
|
|
647
|
+
type: z.enum(['commit', 'event']),
|
|
648
|
+
timestamp: z.string(),
|
|
649
|
+
commit: ConsoleCommitListItemSchema.nullable(),
|
|
650
|
+
event: ConsoleRequestEventSchema.nullable(),
|
|
651
|
+
});
|
|
652
|
+
|
|
653
|
+
export type ConsoleTimelineItem = z.infer<typeof ConsoleTimelineItemSchema>;
|
|
654
|
+
|
|
655
|
+
export const ConsoleClearEventsResultSchema = z.object({
|
|
656
|
+
deletedCount: z.number().int(),
|
|
657
|
+
});
|
|
658
|
+
|
|
659
|
+
export type ConsoleClearEventsResult = z.infer<
|
|
660
|
+
typeof ConsoleClearEventsResultSchema
|
|
661
|
+
>;
|
|
662
|
+
|
|
663
|
+
export const ConsolePruneEventsResultSchema = z.object({
|
|
664
|
+
deletedCount: z.number().int(),
|
|
665
|
+
requestEventsDeleted: z.number().int().nonnegative(),
|
|
666
|
+
operationEventsDeleted: z.number().int().nonnegative(),
|
|
667
|
+
realtimeEventsDeleted: z.number().int().nonnegative(),
|
|
668
|
+
payloadDeletedCount: z.number().int().nonnegative(),
|
|
669
|
+
});
|
|
670
|
+
|
|
671
|
+
export type ConsolePruneEventsResult = z.infer<
|
|
672
|
+
typeof ConsolePruneEventsResultSchema
|
|
673
|
+
>;
|
|
674
|
+
|
|
675
|
+
// ============================================================================
|
|
676
|
+
// Operation Audit Schemas
|
|
677
|
+
// ============================================================================
|
|
678
|
+
|
|
679
|
+
export const ConsoleOperationTypeSchema = z.enum([
|
|
680
|
+
'prune',
|
|
681
|
+
'compact',
|
|
682
|
+
'notify_data_change',
|
|
683
|
+
'evict_client',
|
|
684
|
+
]);
|
|
685
|
+
|
|
686
|
+
export type ConsoleOperationType = z.infer<typeof ConsoleOperationTypeSchema>;
|
|
687
|
+
|
|
688
|
+
export const ConsoleOperationEventSchema = z.object({
|
|
689
|
+
operationId: z.number().int(),
|
|
690
|
+
operationType: ConsoleOperationTypeSchema,
|
|
691
|
+
consoleUserId: z.string().nullable(),
|
|
692
|
+
partitionId: z.string().nullable(),
|
|
693
|
+
targetClientId: z.string().nullable(),
|
|
694
|
+
requestPayload: z.unknown().nullable(),
|
|
695
|
+
resultPayload: z.unknown().nullable(),
|
|
696
|
+
createdAt: z.string(),
|
|
697
|
+
});
|
|
698
|
+
|
|
699
|
+
export type ConsoleOperationEvent = z.infer<typeof ConsoleOperationEventSchema>;
|
|
700
|
+
|
|
701
|
+
// ============================================================================
|
|
702
|
+
// API Key Schemas
|
|
703
|
+
// ============================================================================
|
|
704
|
+
|
|
705
|
+
export const ApiKeyTypeSchema = z.enum(['relay', 'proxy', 'admin']);
|
|
706
|
+
export type ApiKeyType = z.infer<typeof ApiKeyTypeSchema>;
|
|
707
|
+
|
|
708
|
+
export const ConsoleApiKeySchema = z.object({
|
|
709
|
+
keyId: z.string(),
|
|
710
|
+
keyPrefix: z.string(),
|
|
711
|
+
name: z.string(),
|
|
712
|
+
keyType: ApiKeyTypeSchema,
|
|
713
|
+
scopeKeys: z.array(z.string()),
|
|
714
|
+
actorId: z.string().nullable(),
|
|
715
|
+
createdAt: z.string(),
|
|
716
|
+
expiresAt: z.string().nullable(),
|
|
717
|
+
lastUsedAt: z.string().nullable(),
|
|
718
|
+
revokedAt: z.string().nullable(),
|
|
719
|
+
});
|
|
720
|
+
|
|
721
|
+
export type ConsoleApiKey = z.infer<typeof ConsoleApiKeySchema>;
|
|
722
|
+
|
|
723
|
+
export const ConsoleApiKeyCreateRequestSchema = z.object({
|
|
724
|
+
name: z.string().min(1),
|
|
725
|
+
keyType: ApiKeyTypeSchema,
|
|
726
|
+
scopeKeys: z.array(z.string()).optional(),
|
|
727
|
+
actorId: z.string().optional(),
|
|
728
|
+
expiresInDays: z.number().int().positive().optional(),
|
|
729
|
+
});
|
|
730
|
+
|
|
731
|
+
export const ConsoleApiKeyCreateResponseSchema = z.object({
|
|
732
|
+
key: ConsoleApiKeySchema,
|
|
733
|
+
secretKey: z.string(),
|
|
734
|
+
});
|
|
735
|
+
|
|
736
|
+
export type ConsoleApiKeyCreateResponse = z.infer<
|
|
737
|
+
typeof ConsoleApiKeyCreateResponseSchema
|
|
738
|
+
>;
|
|
739
|
+
|
|
740
|
+
export const ConsoleApiKeyRevokeResponseSchema = z.object({
|
|
741
|
+
revoked: z.boolean(),
|
|
742
|
+
});
|
|
743
|
+
|
|
744
|
+
export const ConsoleApiKeyBulkRevokeRequestSchema = z.object({
|
|
745
|
+
keyIds: z.array(z.string().min(1)).min(1).max(200),
|
|
746
|
+
});
|
|
747
|
+
|
|
748
|
+
export const ConsoleApiKeyBulkRevokeResponseSchema = z.object({
|
|
749
|
+
requestedCount: z.number().int().nonnegative(),
|
|
750
|
+
revokedCount: z.number().int().nonnegative(),
|
|
751
|
+
alreadyRevokedCount: z.number().int().nonnegative(),
|
|
752
|
+
notFoundCount: z.number().int().nonnegative(),
|
|
753
|
+
revokedKeyIds: z.array(z.string()),
|
|
754
|
+
alreadyRevokedKeyIds: z.array(z.string()),
|
|
755
|
+
notFoundKeyIds: z.array(z.string()),
|
|
756
|
+
});
|
|
757
|
+
|
|
758
|
+
export type ConsoleApiKeyBulkRevokeResponse = z.infer<
|
|
759
|
+
typeof ConsoleApiKeyBulkRevokeResponseSchema
|
|
760
|
+
>;
|
|
761
|
+
|
|
762
|
+
// ============================================================================
|
|
763
|
+
// Pagination Schemas (Console-specific)
|
|
764
|
+
// ============================================================================
|
|
765
|
+
|
|
766
|
+
export const ConsolePaginationQuerySchema = z.object({
|
|
767
|
+
limit: z.coerce.number().int().min(1).max(100).default(50),
|
|
768
|
+
offset: z.coerce.number().int().min(0).max(10_000).default(0),
|
|
769
|
+
});
|
|
770
|
+
|
|
771
|
+
export const ConsolePartitionQuerySchema = z.object({
|
|
772
|
+
partitionId: z.string().min(1).optional(),
|
|
773
|
+
});
|
|
774
|
+
|
|
775
|
+
export const ConsolePartitionedPaginationQuerySchema =
|
|
776
|
+
ConsolePaginationQuerySchema.extend({
|
|
777
|
+
partitionId: z.string().min(1).optional(),
|
|
778
|
+
});
|
|
779
|
+
|
|
780
|
+
export const ConsolePaginatedResponseSchema = <T extends z.ZodTypeAny>(
|
|
781
|
+
itemSchema: T
|
|
782
|
+
) =>
|
|
783
|
+
z.object({
|
|
784
|
+
items: z.array(itemSchema),
|
|
785
|
+
total: z.number().int(),
|
|
786
|
+
offset: z.number().int(),
|
|
787
|
+
limit: z.number().int(),
|
|
788
|
+
});
|
|
789
|
+
|
|
790
|
+
export type ConsolePaginatedResponse<T> = {
|
|
791
|
+
items: T[];
|
|
792
|
+
total: number;
|
|
793
|
+
offset: number;
|
|
794
|
+
limit: number;
|
|
795
|
+
};
|
|
796
|
+
|
|
797
|
+
export const ConsoleTimelineQuerySchema =
|
|
798
|
+
ConsolePartitionedPaginationQuerySchema.extend({
|
|
799
|
+
view: z.enum(['all', 'commits', 'events']).default('all'),
|
|
800
|
+
eventType: z.enum(['sync', 'push', 'pull']).optional(),
|
|
801
|
+
actorId: z.string().optional(),
|
|
802
|
+
clientId: z.string().optional(),
|
|
803
|
+
requestId: z.string().optional(),
|
|
804
|
+
traceId: z.string().optional(),
|
|
805
|
+
syncAttemptId: z.string().optional(),
|
|
806
|
+
table: z.string().optional(),
|
|
807
|
+
outcome: z.string().optional(),
|
|
808
|
+
search: z.string().optional(),
|
|
809
|
+
from: z.string().datetime().optional(),
|
|
810
|
+
to: z.string().datetime().optional(),
|
|
811
|
+
});
|
|
812
|
+
|
|
813
|
+
export const ConsoleOperationsQuerySchema =
|
|
814
|
+
ConsolePartitionedPaginationQuerySchema.extend({
|
|
815
|
+
operationType: ConsoleOperationTypeSchema.optional(),
|
|
816
|
+
});
|
|
817
|
+
|
|
818
|
+
// ============================================================================
|
|
819
|
+
// Time-Series Stats Schemas
|
|
820
|
+
// ============================================================================
|
|
821
|
+
|
|
822
|
+
const TimeseriesIntervalSchema = z.enum(['minute', 'hour', 'day']);
|
|
823
|
+
const TimeseriesRangeSchema = z.enum(['1h', '6h', '24h', '7d', '30d']);
|
|
824
|
+
export const TimeseriesQuerySchema = z.object({
|
|
825
|
+
interval: TimeseriesIntervalSchema.default('hour'),
|
|
826
|
+
range: TimeseriesRangeSchema.default('24h'),
|
|
827
|
+
partitionId: z.string().min(1).optional(),
|
|
828
|
+
});
|
|
829
|
+
|
|
830
|
+
export const TimeseriesBucketSchema = z.object({
|
|
831
|
+
timestamp: z.string(),
|
|
832
|
+
pushCount: z.number().int(),
|
|
833
|
+
pullCount: z.number().int(),
|
|
834
|
+
errorCount: z.number().int(),
|
|
835
|
+
avgLatencyMs: z.number(),
|
|
836
|
+
});
|
|
837
|
+
|
|
838
|
+
export type TimeseriesBucket = z.infer<typeof TimeseriesBucketSchema>;
|
|
839
|
+
|
|
840
|
+
export const TimeseriesStatsResponseSchema = z.object({
|
|
841
|
+
buckets: z.array(TimeseriesBucketSchema),
|
|
842
|
+
interval: TimeseriesIntervalSchema,
|
|
843
|
+
range: TimeseriesRangeSchema,
|
|
844
|
+
});
|
|
845
|
+
|
|
846
|
+
export type TimeseriesStatsResponse = z.infer<
|
|
847
|
+
typeof TimeseriesStatsResponseSchema
|
|
848
|
+
>;
|
|
849
|
+
|
|
850
|
+
// ============================================================================
|
|
851
|
+
// Latency Percentiles Schemas
|
|
852
|
+
// ============================================================================
|
|
853
|
+
|
|
854
|
+
export const LatencyPercentilesSchema = z.object({
|
|
855
|
+
p50: z.number(),
|
|
856
|
+
p90: z.number(),
|
|
857
|
+
p99: z.number(),
|
|
858
|
+
});
|
|
859
|
+
|
|
860
|
+
export type LatencyPercentiles = z.infer<typeof LatencyPercentilesSchema>;
|
|
861
|
+
|
|
862
|
+
export const LatencyStatsResponseSchema = z.object({
|
|
863
|
+
push: LatencyPercentilesSchema,
|
|
864
|
+
pull: LatencyPercentilesSchema,
|
|
865
|
+
range: TimeseriesRangeSchema,
|
|
866
|
+
});
|
|
867
|
+
|
|
868
|
+
export type LatencyStatsResponse = z.infer<typeof LatencyStatsResponseSchema>;
|
|
869
|
+
|
|
870
|
+
export const LatencyQuerySchema = z.object({
|
|
871
|
+
range: TimeseriesRangeSchema.default('24h'),
|
|
872
|
+
partitionId: z.string().min(1).optional(),
|
|
873
|
+
});
|
|
874
|
+
|
|
875
|
+
// ============================================================================
|
|
876
|
+
// Live Events Schemas (for WebSocket)
|
|
877
|
+
// ============================================================================
|
|
878
|
+
|
|
879
|
+
export const LiveEventSchema = z.object({
|
|
880
|
+
type: z.enum(['sync', 'push', 'pull', 'commit', 'client_update']),
|
|
881
|
+
timestamp: z.string(),
|
|
882
|
+
data: z.record(z.string(), z.unknown()),
|
|
883
|
+
});
|
|
884
|
+
|
|
885
|
+
export type LiveEvent = z.infer<typeof LiveEventSchema>;
|
|
886
|
+
|
|
887
|
+
// ---------------------------------------------------------------------------
|
|
888
|
+
// Blob storage
|
|
889
|
+
// ---------------------------------------------------------------------------
|
|
890
|
+
|
|
891
|
+
export const ConsoleBlobSchema = z.object({
|
|
892
|
+
key: z.string(),
|
|
893
|
+
size: z.number().int(),
|
|
894
|
+
uploaded: z.string(),
|
|
895
|
+
httpMetadata: z.object({ contentType: z.string().optional() }).optional(),
|
|
896
|
+
});
|
|
897
|
+
|
|
898
|
+
export type ConsoleBlob = z.infer<typeof ConsoleBlobSchema>;
|
|
899
|
+
|
|
900
|
+
export const ConsoleBlobListQuerySchema = z.object({
|
|
901
|
+
prefix: z.string().optional(),
|
|
902
|
+
cursor: z.string().optional(),
|
|
903
|
+
limit: z.coerce.number().int().min(1).max(1000).default(100),
|
|
904
|
+
});
|
|
905
|
+
|
|
906
|
+
export const ConsoleBlobListResponseSchema = z.object({
|
|
907
|
+
items: z.array(ConsoleBlobSchema),
|
|
908
|
+
truncated: z.boolean(),
|
|
909
|
+
cursor: z.string().nullable(),
|
|
910
|
+
});
|
|
911
|
+
|
|
912
|
+
export const ConsoleBlobDeleteResponseSchema = z.object({
|
|
913
|
+
deleted: z.boolean(),
|
|
914
|
+
});
|