json-crdt-server
Version:
JSON CRDT server and syncing local-first browser client
5 lines (4 loc) • 18.4 kB
TypeScript
import type { RouteDeps } from './types';
import type { ObjectValue } from '@jsonjoy.com/json-type/lib/value/ObjectValue';
import type { ObjectType } from '@jsonjoy.com/json-type';
export declare const routes: (d: RouteDeps) => <R extends ObjectType<any>>(r: ObjectValue<R>) => ObjectValue<ObjectType<[...import("@jsonjoy.com/json-type/lib/value/ObjectValue").UnObjectType<R>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.pull", import("@jsonjoy.com/json-type").FunctionType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"create", import("@jsonjoy.com/json-type").BooleanType>]>, ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.scan", import("@jsonjoy.com/json-type").FunctionType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"limit", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").BooleanType>]>, ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.listen", import("@jsonjoy.com/json-type").FunctionStreamingType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"clientId", import("@jsonjoy.com/json-type").NumberType>]>, ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"event", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").OrType<[import("@jsonjoy.com/json-type").TupleType<[import("@jsonjoy.com/json-type").ConstType<"new">]>, import("@jsonjoy.com/json-type").TupleType<[import("@jsonjoy.com/json-type").ConstType<"upd">, ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batch", import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>]>, import("@jsonjoy.com/json-type").NumberType]>, import("@jsonjoy.com/json-type").TupleType<[import("@jsonjoy.com/json-type").ConstType<"del">]>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.del", import("@jsonjoy.com/json-type").FunctionType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>]>, ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"success", import("@jsonjoy.com/json-type").BooleanType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.upd", import("@jsonjoy.com/json-type").FunctionType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"batch", import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>]>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"create", import("@jsonjoy.com/json-type").BooleanType>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"clientId", import("@jsonjoy.com/json-type").NumberType>]>, ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batch", import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"pull", ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>]>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.view", import("@jsonjoy.com/json-type").FunctionType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>]>, ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"view", import("@jsonjoy.com/json-type").AnyType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.get", import("@jsonjoy.com/json-type").FunctionType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>]>, ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"block", import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"uts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"tip", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"block.new", import("@jsonjoy.com/json-type").FunctionType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"batch", import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"patches", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blob", import("@jsonjoy.com/json-type").BinaryType<import("@jsonjoy.com/json-type").AnyType>>]>>>>, import("@jsonjoy.com/json-type").ObjectOptionalFieldType<"cts", import("@jsonjoy.com/json-type").NumberType>]>>>]>, ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"snapshot", import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").StringType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"seq", import("@jsonjoy.com/json-type").RefType<import("@jsonjoy.com/json-type").NumberType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"ts", import("@jsonjoy.com/json-type").NumberType>]>>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"presence.listen", import("@jsonjoy.com/json-type").FunctionStreamingType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"room", import("@jsonjoy.com/json-type").StringType>]>, ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"entries", import("@jsonjoy.com/json-type").ArrayType<import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"lastSeen", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"validUntil", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"data", ObjectType<[]>>]>>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"time", import("@jsonjoy.com/json-type").NumberType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"presence.remove", import("@jsonjoy.com/json-type").FunctionType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"room", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").StringType>]>, ObjectType<[]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"presence.update", import("@jsonjoy.com/json-type").FunctionType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"room", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"data", import("@jsonjoy.com/json-type").AnyType>]>, ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"entry", import("@jsonjoy.com/json-type").RefType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"id", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"lastSeen", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"validUntil", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"data", ObjectType<[]>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"time", import("@jsonjoy.com/json-type").NumberType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"pubsub.listen", import("@jsonjoy.com/json-type").FunctionStreamingType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"channel", import("@jsonjoy.com/json-type").StringType>]>, ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"message", import("@jsonjoy.com/json-type").AnyType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"pubsub.publish", import("@jsonjoy.com/json-type").FunctionType<ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"channel", import("@jsonjoy.com/json-type").StringType>, import("@jsonjoy.com/json-type").ObjectFieldType<"message", import("@jsonjoy.com/json-type").AnyType>]>, ObjectType<[]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"util.schema", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").AnyType, ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"typescript", import("@jsonjoy.com/json-type").StringType>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"util.info", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").AnyType, ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"now", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"stats", ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"pubsub", ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"channels", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"observers", import("@jsonjoy.com/json-type").NumberType>]>>, import("@jsonjoy.com/json-type").ObjectFieldType<"presence", ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"rooms", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"entries", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"observers", import("@jsonjoy.com/json-type").NumberType>]>>, import("@jsonjoy.com/json-type").ObjectFieldType<"blocks", ObjectType<[import("@jsonjoy.com/json-type").ObjectFieldType<"blocks", import("@jsonjoy.com/json-type").NumberType>, import("@jsonjoy.com/json-type").ObjectFieldType<"batches", import("@jsonjoy.com/json-type").NumberType>]>>]>>]>>>, import("@jsonjoy.com/json-type").ObjectFieldType<"util.echo", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").AnyType, import("@jsonjoy.com/json-type").AnyType>>, import("@jsonjoy.com/json-type").ObjectFieldType<"util.ping", import("@jsonjoy.com/json-type").FunctionType<import("@jsonjoy.com/json-type").ConstType<undefined>, import("@jsonjoy.com/json-type").ConstType<"pong">>>]>>;