@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
package/dist/s3/index.js
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* S3-compatible blob storage adapter.
|
|
3
|
+
*
|
|
4
|
+
* Works with AWS S3, Cloudflare R2, MinIO, and other S3-compatible services.
|
|
5
|
+
* Requires @aws-sdk/client-s3 and @aws-sdk/s3-request-presigner as peer dependencies.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Create an S3-compatible blob storage adapter.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { S3Client, PutObjectCommand, GetObjectCommand, HeadObjectCommand, DeleteObjectCommand } from '@aws-sdk/client-s3';
|
|
13
|
+
* import { getSignedUrl } from '@aws-sdk/s3-request-presigner';
|
|
14
|
+
*
|
|
15
|
+
* const adapter = createS3BlobStorageAdapter({
|
|
16
|
+
* client: new S3Client({ region: 'us-east-1' }),
|
|
17
|
+
* bucket: 'my-bucket',
|
|
18
|
+
* keyPrefix: 'blobs/',
|
|
19
|
+
* commands: { PutObjectCommand, GetObjectCommand, HeadObjectCommand, DeleteObjectCommand },
|
|
20
|
+
* getSignedUrl,
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export function createS3BlobStorageAdapter(options) {
|
|
25
|
+
const { client, bucket, keyPrefix = '', commands, getSignedUrl, requireChecksum = true, } = options;
|
|
26
|
+
function getKey(hash, partitionId) {
|
|
27
|
+
// Remove "sha256:" prefix and use hex as key
|
|
28
|
+
const hex = hash.startsWith('sha256:') ? hash.slice(7) : hash;
|
|
29
|
+
const normalizedPartition = partitionId?.trim();
|
|
30
|
+
if (!normalizedPartition || normalizedPartition === 'default') {
|
|
31
|
+
return `${keyPrefix}${hex}`;
|
|
32
|
+
}
|
|
33
|
+
return `${keyPrefix}${encodeURIComponent(normalizedPartition)}/${hex}`;
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
name: 's3',
|
|
37
|
+
async signUpload(opts) {
|
|
38
|
+
const key = getKey(opts.hash, opts.partitionId);
|
|
39
|
+
// Extract hex hash for checksum (S3 expects base64-encoded SHA-256)
|
|
40
|
+
const hexHash = opts.hash.startsWith('sha256:')
|
|
41
|
+
? opts.hash.slice(7)
|
|
42
|
+
: opts.hash;
|
|
43
|
+
// Convert hex to base64 for S3 checksum header
|
|
44
|
+
const checksumBase64 = hexToBase64(hexHash);
|
|
45
|
+
const commandInput = {
|
|
46
|
+
Bucket: bucket,
|
|
47
|
+
Key: key,
|
|
48
|
+
ContentLength: opts.size,
|
|
49
|
+
ContentType: opts.mimeType,
|
|
50
|
+
};
|
|
51
|
+
if (requireChecksum) {
|
|
52
|
+
commandInput.ChecksumSHA256 = checksumBase64;
|
|
53
|
+
}
|
|
54
|
+
const command = new commands.PutObjectCommand(commandInput);
|
|
55
|
+
const url = await getSignedUrl(client, command, {
|
|
56
|
+
expiresIn: opts.expiresIn,
|
|
57
|
+
});
|
|
58
|
+
const headers = {
|
|
59
|
+
'Content-Type': opts.mimeType,
|
|
60
|
+
'Content-Length': String(opts.size),
|
|
61
|
+
};
|
|
62
|
+
if (requireChecksum) {
|
|
63
|
+
headers['x-amz-checksum-sha256'] = checksumBase64;
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
url,
|
|
67
|
+
method: 'PUT',
|
|
68
|
+
headers,
|
|
69
|
+
};
|
|
70
|
+
},
|
|
71
|
+
async signDownload(opts) {
|
|
72
|
+
const key = getKey(opts.hash, opts.partitionId);
|
|
73
|
+
const command = new commands.GetObjectCommand({
|
|
74
|
+
Bucket: bucket,
|
|
75
|
+
Key: key,
|
|
76
|
+
});
|
|
77
|
+
return getSignedUrl(client, command, { expiresIn: opts.expiresIn });
|
|
78
|
+
},
|
|
79
|
+
async exists(hash, options) {
|
|
80
|
+
const key = getKey(hash, options?.partitionId);
|
|
81
|
+
try {
|
|
82
|
+
const command = new commands.HeadObjectCommand({
|
|
83
|
+
Bucket: bucket,
|
|
84
|
+
Key: key,
|
|
85
|
+
});
|
|
86
|
+
await client.send(command);
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
// Check for NotFound error
|
|
91
|
+
if (isNotFoundError(err)) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
throw err;
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
async delete(hash, options) {
|
|
98
|
+
const key = getKey(hash, options?.partitionId);
|
|
99
|
+
const command = new commands.DeleteObjectCommand({
|
|
100
|
+
Bucket: bucket,
|
|
101
|
+
Key: key,
|
|
102
|
+
});
|
|
103
|
+
await client.send(command);
|
|
104
|
+
},
|
|
105
|
+
async getMetadata(hash, options) {
|
|
106
|
+
const key = getKey(hash, options?.partitionId);
|
|
107
|
+
try {
|
|
108
|
+
const command = new commands.HeadObjectCommand({
|
|
109
|
+
Bucket: bucket,
|
|
110
|
+
Key: key,
|
|
111
|
+
});
|
|
112
|
+
const response = (await client.send(command));
|
|
113
|
+
return {
|
|
114
|
+
size: response.ContentLength ?? 0,
|
|
115
|
+
mimeType: response.ContentType,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
if (isNotFoundError(err)) {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
throw err;
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
async put(hash, data, _metadata, options) {
|
|
126
|
+
const key = getKey(hash, options?.partitionId);
|
|
127
|
+
const command = new commands.PutObjectCommand({
|
|
128
|
+
Bucket: bucket,
|
|
129
|
+
Key: key,
|
|
130
|
+
Body: data,
|
|
131
|
+
ContentLength: data.length,
|
|
132
|
+
ContentType: 'application/octet-stream',
|
|
133
|
+
});
|
|
134
|
+
await client.send(command);
|
|
135
|
+
},
|
|
136
|
+
async get(hash, options) {
|
|
137
|
+
const key = getKey(hash, options?.partitionId);
|
|
138
|
+
try {
|
|
139
|
+
const command = new commands.GetObjectCommand({
|
|
140
|
+
Bucket: bucket,
|
|
141
|
+
Key: key,
|
|
142
|
+
});
|
|
143
|
+
const response = (await client.send(command));
|
|
144
|
+
if (!response.Body)
|
|
145
|
+
return null;
|
|
146
|
+
return response.Body.transformToByteArray();
|
|
147
|
+
}
|
|
148
|
+
catch (err) {
|
|
149
|
+
if (isNotFoundError(err)) {
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
throw err;
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
async getStream(hash, options) {
|
|
156
|
+
const key = getKey(hash, options?.partitionId);
|
|
157
|
+
try {
|
|
158
|
+
const command = new commands.GetObjectCommand({
|
|
159
|
+
Bucket: bucket,
|
|
160
|
+
Key: key,
|
|
161
|
+
});
|
|
162
|
+
const response = (await client.send(command));
|
|
163
|
+
if (!response.Body)
|
|
164
|
+
return null;
|
|
165
|
+
return response.Body.transformToWebStream();
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
if (isNotFoundError(err)) {
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
throw err;
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
function isNotFoundError(err) {
|
|
177
|
+
if (typeof err !== 'object' || err === null)
|
|
178
|
+
return false;
|
|
179
|
+
const e = err;
|
|
180
|
+
return (e.name === 'NotFound' ||
|
|
181
|
+
e.name === 'NoSuchKey' ||
|
|
182
|
+
e.$metadata?.httpStatusCode === 404);
|
|
183
|
+
}
|
|
184
|
+
function hexToBase64(hex) {
|
|
185
|
+
const bytes = new Uint8Array(hex.length / 2);
|
|
186
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
187
|
+
bytes[i] = Number.parseInt(hex.slice(i * 2, i * 2 + 2), 16);
|
|
188
|
+
}
|
|
189
|
+
// Use Buffer if available (Node/Bun), otherwise manual base64
|
|
190
|
+
if (typeof Buffer !== 'undefined') {
|
|
191
|
+
return Buffer.from(bytes).toString('base64');
|
|
192
|
+
}
|
|
193
|
+
// Manual base64 encoding
|
|
194
|
+
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
195
|
+
let result = '';
|
|
196
|
+
const len = bytes.length;
|
|
197
|
+
const remainder = len % 3;
|
|
198
|
+
for (let i = 0; i < len - remainder; i += 3) {
|
|
199
|
+
const a = bytes[i];
|
|
200
|
+
const b = bytes[i + 1];
|
|
201
|
+
const c = bytes[i + 2];
|
|
202
|
+
result +=
|
|
203
|
+
chars.charAt((a >> 2) & 0x3f) +
|
|
204
|
+
chars.charAt(((a << 4) | (b >> 4)) & 0x3f) +
|
|
205
|
+
chars.charAt(((b << 2) | (c >> 6)) & 0x3f) +
|
|
206
|
+
chars.charAt(c & 0x3f);
|
|
207
|
+
}
|
|
208
|
+
if (remainder === 1) {
|
|
209
|
+
const a = bytes[len - 1];
|
|
210
|
+
result += `${chars.charAt((a >> 2) & 0x3f) + chars.charAt((a << 4) & 0x3f)}==`;
|
|
211
|
+
}
|
|
212
|
+
else if (remainder === 2) {
|
|
213
|
+
const a = bytes[len - 2];
|
|
214
|
+
const b = bytes[len - 1];
|
|
215
|
+
result +=
|
|
216
|
+
chars.charAt((a >> 2) & 0x3f) +
|
|
217
|
+
chars.charAt(((a << 4) | (b >> 4)) & 0x3f) +
|
|
218
|
+
chars.charAt((b << 2) & 0x3f) +
|
|
219
|
+
'=';
|
|
220
|
+
}
|
|
221
|
+
return result;
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/s3/index.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* - sync_commits: one row per committed push
|
|
6
6
|
* - sync_changes: one row per emitted change, stamped with scopes
|
|
7
7
|
* - sync_table_commits: commit routing index for fast pull
|
|
8
|
+
* - sync_scope_commits: scope routing index for scoped incremental pull
|
|
8
9
|
*/
|
|
9
10
|
import type { SyncOp } from '@syncular/core';
|
|
10
11
|
import type { Generated } from 'kysely';
|
|
@@ -30,6 +31,10 @@ export interface SyncCommitsTable {
|
|
|
30
31
|
result_json: unknown | null;
|
|
31
32
|
/** Number of emitted changes (denormalized for observability) */
|
|
32
33
|
change_count: Generated<number>;
|
|
34
|
+
/** Hex SHA-256 digest of the canonical persisted commit payload */
|
|
35
|
+
commit_digest: Generated<string | null>;
|
|
36
|
+
/** Hex SHA-256 root chaining this commit to the previous partition root */
|
|
37
|
+
commit_chain_root: Generated<string | null>;
|
|
33
38
|
/**
|
|
34
39
|
* Tables affected by this commit (for realtime notifications).
|
|
35
40
|
* Array of table names that had changes.
|
|
@@ -79,6 +84,15 @@ export interface SyncClientCursorsTable {
|
|
|
79
84
|
* This is the intersection of requested scopes and allowed scopes.
|
|
80
85
|
*/
|
|
81
86
|
effective_scopes: unknown;
|
|
87
|
+
/**
|
|
88
|
+
* Last active realtime subscription snapshot for websocket binary packs.
|
|
89
|
+
*
|
|
90
|
+
* This duplicates the protocol-level subscription id/table/scope/cursor/root
|
|
91
|
+
* shape from the latest successful pull so a restarted realtime server can
|
|
92
|
+
* rebuild scoped binary notifications before the client performs another
|
|
93
|
+
* HTTP pull.
|
|
94
|
+
*/
|
|
95
|
+
realtime_subscriptions: unknown | null;
|
|
82
96
|
/** Last update timestamp */
|
|
83
97
|
updated_at: Generated<string>;
|
|
84
98
|
}
|
|
@@ -100,7 +114,11 @@ export interface SyncSnapshotChunksTable {
|
|
|
100
114
|
row_cursor: string;
|
|
101
115
|
/** Snapshot row limit used to produce this chunk */
|
|
102
116
|
row_limit: number;
|
|
103
|
-
/**
|
|
117
|
+
/** Cursor after this chunk; null means no next row for this table */
|
|
118
|
+
next_row_cursor?: string | null;
|
|
119
|
+
/** 1 when this chunk reaches the end of the table snapshot */
|
|
120
|
+
is_last_page?: number;
|
|
121
|
+
/** Row encoding (e.g. 'binary-table-v1') */
|
|
104
122
|
encoding: string;
|
|
105
123
|
/** Compression algorithm (e.g. 'gzip') */
|
|
106
124
|
compression: string;
|
|
@@ -117,6 +135,105 @@ export interface SyncSnapshotChunksTable {
|
|
|
117
135
|
/** Expiration timestamp (server may delete after this) */
|
|
118
136
|
expires_at: string;
|
|
119
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Cached scoped snapshot artifacts.
|
|
140
|
+
*
|
|
141
|
+
* Artifacts are larger immutable bootstrap payloads, such as scoped SQLite
|
|
142
|
+
* snapshot files, addressed by a verified manifest and stored in object
|
|
143
|
+
* storage via blob_hash.
|
|
144
|
+
*/
|
|
145
|
+
export interface SyncSnapshotArtifactsTable {
|
|
146
|
+
/** Opaque artifact id */
|
|
147
|
+
artifact_id: string;
|
|
148
|
+
/** Logical partition key (tenant / demo / workspace) */
|
|
149
|
+
partition_id: string;
|
|
150
|
+
/** Effective scope key this artifact belongs to */
|
|
151
|
+
scope_key: string;
|
|
152
|
+
/** Stable subscription id this artifact serves */
|
|
153
|
+
subscription_id: string;
|
|
154
|
+
/** App table represented by the artifact */
|
|
155
|
+
table: string;
|
|
156
|
+
/** Artifact format (e.g. 'sqlite-snapshot-v1') */
|
|
157
|
+
artifact_kind: string;
|
|
158
|
+
/** App schema/cache semantic version */
|
|
159
|
+
schema_version: string;
|
|
160
|
+
/** Snapshot as-of commit sequence */
|
|
161
|
+
as_of_commit_seq: number;
|
|
162
|
+
/** Snapshot row cursor key (empty string represents null) */
|
|
163
|
+
row_cursor: string;
|
|
164
|
+
/** Snapshot row limit used to produce this artifact */
|
|
165
|
+
row_limit: number;
|
|
166
|
+
/** Number of rows included in the artifact */
|
|
167
|
+
row_count: number;
|
|
168
|
+
/** Cursor after this artifact; null means no next row for this table */
|
|
169
|
+
next_row_cursor?: string | null;
|
|
170
|
+
/** 1 when this artifact starts at the table's first page */
|
|
171
|
+
is_first_page: number;
|
|
172
|
+
/** 1 when this artifact reaches the end of the table snapshot */
|
|
173
|
+
is_last_page: number;
|
|
174
|
+
/** Artifact compression algorithm */
|
|
175
|
+
compression: string;
|
|
176
|
+
/** Hex-encoded sha256 of artifact body bytes */
|
|
177
|
+
sha256: string;
|
|
178
|
+
/** Byte length of artifact body bytes */
|
|
179
|
+
byte_length: number;
|
|
180
|
+
/** Hex digest of the scoped artifact manifest */
|
|
181
|
+
manifest_digest: string;
|
|
182
|
+
/** Normalized JSON feature set */
|
|
183
|
+
feature_set_json: string;
|
|
184
|
+
/** Canonical manifest JSON */
|
|
185
|
+
manifest_json: string;
|
|
186
|
+
/** Reference to blob storage */
|
|
187
|
+
blob_hash: string;
|
|
188
|
+
/** Created timestamp */
|
|
189
|
+
created_at: Generated<string>;
|
|
190
|
+
/** Expiration timestamp (server may delete after this) */
|
|
191
|
+
expires_at: string;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Shared encrypted CRDT update log.
|
|
195
|
+
*
|
|
196
|
+
* One physical table stores updates for every encrypted CRDT field. The logical
|
|
197
|
+
* stream is keyed by partition_id + stream_id, where stream_id is derived from
|
|
198
|
+
* app_table + row_id + field_name.
|
|
199
|
+
*/
|
|
200
|
+
export interface SyncCrdtUpdatesTable {
|
|
201
|
+
seq: Generated<number>;
|
|
202
|
+
partition_id: string;
|
|
203
|
+
stream_id: string;
|
|
204
|
+
app_table: string;
|
|
205
|
+
row_id: string;
|
|
206
|
+
field_name: string;
|
|
207
|
+
update_id: string;
|
|
208
|
+
actor_id: string | null;
|
|
209
|
+
client_id: string | null;
|
|
210
|
+
key_id: string;
|
|
211
|
+
ciphertext: string;
|
|
212
|
+
scopes: unknown;
|
|
213
|
+
created_at: Generated<string>;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Shared encrypted CRDT checkpoints.
|
|
217
|
+
*
|
|
218
|
+
* Checkpoints contain encrypted full Yjs/Yrs state snapshots and allow old
|
|
219
|
+
* update-log rows to be garbage-collected after retention rules are satisfied.
|
|
220
|
+
*/
|
|
221
|
+
export interface SyncCrdtCheckpointsTable {
|
|
222
|
+
seq: Generated<number>;
|
|
223
|
+
partition_id: string;
|
|
224
|
+
stream_id: string;
|
|
225
|
+
app_table: string;
|
|
226
|
+
row_id: string;
|
|
227
|
+
field_name: string;
|
|
228
|
+
checkpoint_id: string;
|
|
229
|
+
covers_seq: number;
|
|
230
|
+
actor_id: string | null;
|
|
231
|
+
client_id: string | null;
|
|
232
|
+
key_id: string;
|
|
233
|
+
ciphertext: string;
|
|
234
|
+
scopes: unknown;
|
|
235
|
+
created_at: Generated<string>;
|
|
236
|
+
}
|
|
120
237
|
/**
|
|
121
238
|
* Index table: which commits affect which tables.
|
|
122
239
|
*
|
|
@@ -129,6 +246,19 @@ export interface SyncTableCommitsTable {
|
|
|
129
246
|
table: string;
|
|
130
247
|
commit_seq: number;
|
|
131
248
|
}
|
|
249
|
+
/**
|
|
250
|
+
* Index table: which commits affect which table/scope route keys.
|
|
251
|
+
*
|
|
252
|
+
* Used to avoid scanning table-level commits that cannot match a scoped
|
|
253
|
+
* subscription. JSON scope filtering still validates exact multi-scope matches.
|
|
254
|
+
*/
|
|
255
|
+
export interface SyncScopeCommitsTable {
|
|
256
|
+
/** Logical partition key (tenant / demo / workspace) */
|
|
257
|
+
partition_id: string;
|
|
258
|
+
table: string;
|
|
259
|
+
scope_key: string;
|
|
260
|
+
commit_seq: number;
|
|
261
|
+
}
|
|
132
262
|
/**
|
|
133
263
|
* Database interface for sync infrastructure tables
|
|
134
264
|
* Merge this with your app's database interface
|
|
@@ -137,8 +267,12 @@ export interface SyncCoreDb {
|
|
|
137
267
|
sync_commits: SyncCommitsTable;
|
|
138
268
|
sync_changes: SyncChangesTable;
|
|
139
269
|
sync_client_cursors: SyncClientCursorsTable;
|
|
270
|
+
sync_crdt_updates: SyncCrdtUpdatesTable;
|
|
271
|
+
sync_crdt_checkpoints: SyncCrdtCheckpointsTable;
|
|
140
272
|
sync_table_commits: SyncTableCommitsTable;
|
|
273
|
+
sync_scope_commits: SyncScopeCommitsTable;
|
|
141
274
|
sync_snapshot_chunks: SyncSnapshotChunksTable;
|
|
275
|
+
sync_snapshot_artifacts: SyncSnapshotArtifactsTable;
|
|
142
276
|
}
|
|
143
277
|
/**
|
|
144
278
|
* Commit metadata row for pull responses
|
|
@@ -148,6 +282,8 @@ export interface SyncCommitRow {
|
|
|
148
282
|
actor_id: string;
|
|
149
283
|
created_at: string;
|
|
150
284
|
result_json: unknown | null;
|
|
285
|
+
commit_digest: string | null;
|
|
286
|
+
commit_chain_root: string | null;
|
|
151
287
|
}
|
|
152
288
|
/**
|
|
153
289
|
* Change row for pull responses
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* - sync_commits: one row per committed push
|
|
6
6
|
* - sync_changes: one row per emitted change, stamped with scopes
|
|
7
7
|
* - sync_table_commits: commit routing index for fast pull
|
|
8
|
+
* - sync_scope_commits: scope routing index for scoped incremental pull
|
|
8
9
|
*/
|
|
9
10
|
export {};
|
|
10
11
|
//# sourceMappingURL=schema.js.map
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { type SyncTransport } from '@syncular/core';
|
|
2
|
+
import { type ClientOptions } from '@syncular/core/http';
|
|
3
|
+
export declare const SERVICE_WORKER_WAKE_CHANNEL = "syncular-sw-realtime-v1";
|
|
4
|
+
export declare const SERVICE_WORKER_WAKE_MESSAGE_TYPE = "syncular:service-worker:wakeup";
|
|
5
|
+
export type ServiceWorkerConnectionState = 'disconnected' | 'connecting' | 'connected';
|
|
6
|
+
export interface ServiceWorkerWakeMessage {
|
|
7
|
+
type: string;
|
|
8
|
+
timestamp: number;
|
|
9
|
+
cursor?: number;
|
|
10
|
+
sourceClientId?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function isServiceWorkerWakeMessage(value: unknown): value is ServiceWorkerWakeMessage;
|
|
13
|
+
export interface ServiceWorkerWakeTransport extends SyncTransport {
|
|
14
|
+
connect(args: {
|
|
15
|
+
clientId: string;
|
|
16
|
+
}, onEvent: (event: {
|
|
17
|
+
event: 'sync';
|
|
18
|
+
data: {
|
|
19
|
+
cursor?: number;
|
|
20
|
+
timestamp: number;
|
|
21
|
+
};
|
|
22
|
+
}) => void, onStateChange?: (state: ServiceWorkerConnectionState) => void): () => void;
|
|
23
|
+
getConnectionState(): ServiceWorkerConnectionState;
|
|
24
|
+
reconnect(): void;
|
|
25
|
+
}
|
|
26
|
+
export interface ServiceWorkerWakeTransportOptions extends ClientOptions {
|
|
27
|
+
channelName?: string;
|
|
28
|
+
includeServiceWorkerMessages?: boolean;
|
|
29
|
+
isWakeMessage?: (payload: unknown) => payload is ServiceWorkerWakeMessage;
|
|
30
|
+
}
|
|
31
|
+
export declare function createServiceWorkerWakeTransport(options: ServiceWorkerWakeTransportOptions): ServiceWorkerWakeTransport;
|
|
32
|
+
export interface ServiceWorkerServer {
|
|
33
|
+
shouldHandleRequest(request: Request, localOrigin?: string): boolean;
|
|
34
|
+
handleRequest(request: Request): Promise<Response>;
|
|
35
|
+
captureWakeContext(request: Request): Promise<unknown>;
|
|
36
|
+
resolveWakeMessage(args: {
|
|
37
|
+
request: Request;
|
|
38
|
+
response: Response;
|
|
39
|
+
wakeContext: unknown;
|
|
40
|
+
}): Promise<ServiceWorkerWakeMessage | null>;
|
|
41
|
+
}
|
|
42
|
+
export interface ResolveWakeMessageArgs {
|
|
43
|
+
request: Request;
|
|
44
|
+
response: Response;
|
|
45
|
+
wakeContext: unknown;
|
|
46
|
+
}
|
|
47
|
+
export interface ServiceWorkerSyncWakeContext {
|
|
48
|
+
sourceClientId?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface ServiceWorkerSyncWakeMessageResolverOptions {
|
|
51
|
+
syncPathnames?: string[];
|
|
52
|
+
}
|
|
53
|
+
export interface CreateServiceWorkerServerOptions {
|
|
54
|
+
handleRequest: (request: Request) => Promise<Response> | Response;
|
|
55
|
+
apiPrefix?: string;
|
|
56
|
+
serviceWorkerScriptPath?: string;
|
|
57
|
+
syncPathnames?: string[];
|
|
58
|
+
captureWakeContext?: (request: Request) => Promise<unknown>;
|
|
59
|
+
resolveWakeMessage?: (args: ResolveWakeMessageArgs) => Promise<ServiceWorkerWakeMessage | null>;
|
|
60
|
+
onError?: (error: unknown, request: Request) => Promise<Response> | Response;
|
|
61
|
+
}
|
|
62
|
+
export declare function createSyncWakeMessageResolver(options?: ServiceWorkerSyncWakeMessageResolverOptions): {
|
|
63
|
+
captureContext: (request: Request) => Promise<ServiceWorkerSyncWakeContext | null>;
|
|
64
|
+
resolveMessage: (args: ResolveWakeMessageArgs) => Promise<ServiceWorkerWakeMessage | null>;
|
|
65
|
+
};
|
|
66
|
+
export declare function createServiceWorkerServer(options: CreateServiceWorkerServerOptions): ServiceWorkerServer;
|
|
67
|
+
export interface ServiceWorkerGlobalScopeLike {
|
|
68
|
+
addEventListener(type: string, listener: (event: unknown) => void): void;
|
|
69
|
+
location?: {
|
|
70
|
+
origin?: string;
|
|
71
|
+
};
|
|
72
|
+
skipWaiting?: () => Promise<void>;
|
|
73
|
+
clients?: {
|
|
74
|
+
claim?: () => Promise<void>;
|
|
75
|
+
matchAll?: (options?: {
|
|
76
|
+
type?: 'window' | 'worker' | 'sharedworker' | 'all';
|
|
77
|
+
includeUncontrolled?: boolean;
|
|
78
|
+
}) => Promise<Array<{
|
|
79
|
+
postMessage: (message: unknown) => void;
|
|
80
|
+
}>>;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
export interface AttachServiceWorkerServerOptions {
|
|
84
|
+
manageLifecycle?: boolean;
|
|
85
|
+
channelName?: string;
|
|
86
|
+
logger?: {
|
|
87
|
+
error?: (...args: unknown[]) => void;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export declare function attachServiceWorkerServer(globalScope: ServiceWorkerGlobalScopeLike, server: ServiceWorkerServer, options?: AttachServiceWorkerServerOptions): void;
|
|
91
|
+
export interface ConfigureServiceWorkerServerOptions {
|
|
92
|
+
scriptPath: string;
|
|
93
|
+
scriptVersion?: string;
|
|
94
|
+
healthPath?: string;
|
|
95
|
+
healthCheck?: (response: Response) => boolean | Promise<boolean>;
|
|
96
|
+
enabled?: boolean;
|
|
97
|
+
scope?: string;
|
|
98
|
+
type?: 'classic' | 'module';
|
|
99
|
+
updateViaCache?: 'imports' | 'all' | 'none';
|
|
100
|
+
unregisterOnDisable?: boolean;
|
|
101
|
+
controllerTimeoutMs?: number;
|
|
102
|
+
healthTimeoutMs?: number;
|
|
103
|
+
healthRetryDelayMs?: number;
|
|
104
|
+
healthRequestTimeoutMs?: number;
|
|
105
|
+
fetchImpl?: typeof fetch;
|
|
106
|
+
logger?: {
|
|
107
|
+
info?: (...args: unknown[]) => void;
|
|
108
|
+
warn?: (...args: unknown[]) => void;
|
|
109
|
+
error?: (...args: unknown[]) => void;
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
export declare function unregisterServiceWorkerRegistrations(scriptPath: string): Promise<void>;
|
|
113
|
+
export declare function configureServiceWorkerServer(options: ConfigureServiceWorkerServerOptions): Promise<boolean>;
|
|
114
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service-worker/index.ts"],"names":[],"mappings":"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"}
|