@lsync/transport 0.0.1 → 0.0.3

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/dist/index.d.mts CHANGED
@@ -162,6 +162,7 @@ declare const syncChangesResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
162
162
  }, z.core.$strip>>;
163
163
  watermark: z.ZodNumber;
164
164
  hasMore: z.ZodBoolean;
165
+ cursors: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
165
166
  }, z.core.$strip>, z.ZodObject<{
166
167
  type: z.ZodLiteral<"resyncRequired">;
167
168
  collections: z.ZodArray<z.ZodString>;
@@ -308,221 +309,251 @@ declare function compileReadExpression(expression: unknown): ReadPredicate;
308
309
  declare function matchesReadPredicate(row: unknown, predicate: ReadPredicate | undefined): boolean;
309
310
  //#endregion
310
311
  //#region src/rpc.d.ts
311
- declare const rpcIdSchema: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
312
- declare const clientRpcRequestSchema: z.ZodUnion<readonly [z.ZodObject<{
313
- id: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
314
- method: z.ZodLiteral<"mutation">;
315
- params: z.ZodObject<{
316
- path: z.ZodLiteral<"push">;
317
- input: z.ZodObject<{
318
- json: z.ZodObject<{
319
- updates: z.ZodArray<z.ZodObject<{
320
- id: z.ZodString;
321
- collection: z.ZodString;
322
- path: z.ZodOptional<z.ZodString>;
323
- key: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
324
- type: z.ZodEnum<{
325
- insert: "insert";
326
- update: "update";
327
- delete: "delete";
328
- }>;
329
- value: z.ZodOptional<z.ZodUnknown>;
330
- previousValue: z.ZodOptional<z.ZodUnknown>;
331
- clientId: z.ZodOptional<z.ZodString>;
332
- createdAt: z.ZodNumber;
333
- }, z.core.$strip>>;
334
- }, z.core.$strip>;
335
- }, z.core.$strip>;
312
+ declare const protocolVersion: 1;
313
+ declare const protocolVersionSchema: z.ZodLiteral<1>;
314
+ declare const requestIdSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
315
+ declare const protocolErrorCodeSchema: z.ZodEnum<{
316
+ AUTH_DENIED: "AUTH_DENIED";
317
+ VALIDATION_FAILED: "VALIDATION_FAILED";
318
+ CONFLICT: "CONFLICT";
319
+ RESYNC_REQUIRED: "RESYNC_REQUIRED";
320
+ RATE_LIMITED: "RATE_LIMITED";
321
+ NOT_FOUND: "NOT_FOUND";
322
+ UNSUPPORTED_OPERATION: "UNSUPPORTED_OPERATION";
323
+ PROTOCOL_ERROR: "PROTOCOL_ERROR";
324
+ INTERNAL_ERROR: "INTERNAL_ERROR";
325
+ }>;
326
+ declare const protocolErrorSchema: z.ZodObject<{
327
+ code: z.ZodEnum<{
328
+ AUTH_DENIED: "AUTH_DENIED";
329
+ VALIDATION_FAILED: "VALIDATION_FAILED";
330
+ CONFLICT: "CONFLICT";
331
+ RESYNC_REQUIRED: "RESYNC_REQUIRED";
332
+ RATE_LIMITED: "RATE_LIMITED";
333
+ NOT_FOUND: "NOT_FOUND";
334
+ UNSUPPORTED_OPERATION: "UNSUPPORTED_OPERATION";
335
+ PROTOCOL_ERROR: "PROTOCOL_ERROR";
336
+ INTERNAL_ERROR: "INTERNAL_ERROR";
337
+ }>;
338
+ message: z.ZodString;
339
+ details: z.ZodOptional<z.ZodUnknown>;
340
+ }, z.core.$strip>;
341
+ declare const clientMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
342
+ version: z.ZodLiteral<1>;
343
+ id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
344
+ type: z.ZodLiteral<"read">;
345
+ input: z.ZodObject<{
346
+ collection: z.ZodString;
347
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
348
+ field: z.ZodString;
349
+ op: z.ZodDefault<z.ZodEnum<{
350
+ eq: "eq";
351
+ ne: "ne";
352
+ gt: "gt";
353
+ gte: "gte";
354
+ lt: "lt";
355
+ lte: "lte";
356
+ in: "in";
357
+ }>>;
358
+ value: z.ZodUnknown;
359
+ }, z.core.$strip>>>;
360
+ predicate: z.ZodOptional<z.ZodType<ReadPredicate, unknown, z.core.$ZodTypeInternals<ReadPredicate, unknown>>>;
361
+ orderBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
362
+ field: z.ZodString;
363
+ direction: z.ZodDefault<z.ZodEnum<{
364
+ asc: "asc";
365
+ desc: "desc";
366
+ }>>;
367
+ }, z.core.$strip>>>;
368
+ cursor: z.ZodOptional<z.ZodObject<{
369
+ whereCurrent: z.ZodType<ReadPredicate, unknown, z.core.$ZodTypeInternals<ReadPredicate, unknown>>;
370
+ whereFrom: z.ZodType<ReadPredicate, unknown, z.core.$ZodTypeInternals<ReadPredicate, unknown>>;
371
+ lastKey: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
372
+ }, z.core.$strip>>;
373
+ limit: z.ZodOptional<z.ZodNumber>;
374
+ offset: z.ZodOptional<z.ZodNumber>;
336
375
  }, z.core.$strip>;
337
376
  }, z.core.$strip>, z.ZodObject<{
338
- id: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
339
- method: z.ZodLiteral<"query">;
340
- params: z.ZodObject<{
341
- path: z.ZodLiteral<"read">;
342
- input: z.ZodObject<{
343
- json: z.ZodObject<{
344
- collection: z.ZodString;
345
- filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
346
- field: z.ZodString;
347
- op: z.ZodDefault<z.ZodEnum<{
348
- eq: "eq";
349
- ne: "ne";
350
- gt: "gt";
351
- gte: "gte";
352
- lt: "lt";
353
- lte: "lte";
354
- in: "in";
355
- }>>;
356
- value: z.ZodUnknown;
357
- }, z.core.$strip>>>;
358
- predicate: z.ZodOptional<z.ZodType<ReadPredicate, unknown, z.core.$ZodTypeInternals<ReadPredicate, unknown>>>;
359
- orderBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
360
- field: z.ZodString;
361
- direction: z.ZodDefault<z.ZodEnum<{
362
- asc: "asc";
363
- desc: "desc";
364
- }>>;
365
- }, z.core.$strip>>>;
366
- cursor: z.ZodOptional<z.ZodObject<{
367
- whereCurrent: z.ZodType<ReadPredicate, unknown, z.core.$ZodTypeInternals<ReadPredicate, unknown>>;
368
- whereFrom: z.ZodType<ReadPredicate, unknown, z.core.$ZodTypeInternals<ReadPredicate, unknown>>;
369
- lastKey: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
370
- }, z.core.$strip>>;
371
- limit: z.ZodOptional<z.ZodNumber>;
372
- offset: z.ZodOptional<z.ZodNumber>;
373
- }, z.core.$strip>;
374
- }, z.core.$strip>;
377
+ version: z.ZodLiteral<1>;
378
+ id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
379
+ type: z.ZodLiteral<"push">;
380
+ input: z.ZodObject<{
381
+ updates: z.ZodArray<z.ZodObject<{
382
+ id: z.ZodString;
383
+ collection: z.ZodString;
384
+ path: z.ZodOptional<z.ZodString>;
385
+ key: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
386
+ type: z.ZodEnum<{
387
+ insert: "insert";
388
+ update: "update";
389
+ delete: "delete";
390
+ }>;
391
+ value: z.ZodOptional<z.ZodUnknown>;
392
+ previousValue: z.ZodOptional<z.ZodUnknown>;
393
+ clientId: z.ZodOptional<z.ZodString>;
394
+ createdAt: z.ZodNumber;
395
+ }, z.core.$strip>>;
375
396
  }, z.core.$strip>;
376
397
  }, z.core.$strip>, z.ZodObject<{
377
- id: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
378
- method: z.ZodLiteral<"query">;
379
- params: z.ZodObject<{
380
- path: z.ZodLiteral<"changes">;
381
- input: z.ZodObject<{
382
- json: z.ZodObject<{
383
- collections: z.ZodRecord<z.ZodString, z.ZodNumber>;
384
- limit: z.ZodOptional<z.ZodNumber>;
385
- }, z.core.$strip>;
386
- }, z.core.$strip>;
398
+ version: z.ZodLiteral<1>;
399
+ id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
400
+ type: z.ZodLiteral<"changes">;
401
+ input: z.ZodObject<{
402
+ collections: z.ZodRecord<z.ZodString, z.ZodNumber>;
403
+ limit: z.ZodOptional<z.ZodNumber>;
387
404
  }, z.core.$strip>;
388
405
  }, z.core.$strip>, z.ZodObject<{
389
- id: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
390
- method: z.ZodLiteral<"mutation">;
391
- params: z.ZodObject<{
392
- path: z.ZodLiteral<"api">;
393
- input: z.ZodObject<{
394
- json: z.ZodObject<{
395
- path: z.ZodString;
396
- input: z.ZodOptional<z.ZodUnknown>;
397
- }, z.core.$strip>;
398
- }, z.core.$strip>;
406
+ version: z.ZodLiteral<1>;
407
+ id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
408
+ type: z.ZodLiteral<"api">;
409
+ input: z.ZodObject<{
410
+ path: z.ZodString;
411
+ input: z.ZodOptional<z.ZodUnknown>;
399
412
  }, z.core.$strip>;
400
413
  }, z.core.$strip>, z.ZodObject<{
401
- id: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
402
- method: z.ZodEnum<{
414
+ version: z.ZodLiteral<1>;
415
+ id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
416
+ type: z.ZodEnum<{
403
417
  subscribe: "subscribe";
404
418
  unsubscribe: "unsubscribe";
405
419
  }>;
406
- params: z.ZodObject<{
407
- input: z.ZodObject<{
408
- json: z.ZodObject<{
409
- collection: z.ZodString;
410
- }, z.core.$strip>;
411
- }, z.core.$strip>;
412
- }, z.core.$strip>;
413
- }, z.core.$strip>]>;
414
- declare const rpcResultMessageSchema: z.ZodObject<{
415
- id: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
416
- result: z.ZodObject<{
417
- type: z.ZodLiteral<"data">;
418
- data: z.ZodObject<{
419
- json: z.ZodUnknown;
420
- }, z.core.$strip>;
420
+ input: z.ZodObject<{
421
+ collection: z.ZodString;
421
422
  }, z.core.$strip>;
423
+ }, z.core.$strip>], "type">;
424
+ declare const resultMessageSchema: z.ZodObject<{
425
+ version: z.ZodLiteral<1>;
426
+ id: z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
427
+ type: z.ZodLiteral<"result">;
428
+ payload: z.ZodUnknown;
422
429
  }, z.core.$strip>;
423
- declare const rpcErrorMessageSchema: z.ZodObject<{
424
- id: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
430
+ declare const errorMessageSchema: z.ZodObject<{
431
+ version: z.ZodLiteral<1>;
432
+ id: z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
433
+ type: z.ZodLiteral<"error">;
425
434
  error: z.ZodObject<{
435
+ code: z.ZodEnum<{
436
+ AUTH_DENIED: "AUTH_DENIED";
437
+ VALIDATION_FAILED: "VALIDATION_FAILED";
438
+ CONFLICT: "CONFLICT";
439
+ RESYNC_REQUIRED: "RESYNC_REQUIRED";
440
+ RATE_LIMITED: "RATE_LIMITED";
441
+ NOT_FOUND: "NOT_FOUND";
442
+ UNSUPPORTED_OPERATION: "UNSUPPORTED_OPERATION";
443
+ PROTOCOL_ERROR: "PROTOCOL_ERROR";
444
+ INTERNAL_ERROR: "INTERNAL_ERROR";
445
+ }>;
426
446
  message: z.ZodString;
447
+ details: z.ZodOptional<z.ZodUnknown>;
427
448
  }, z.core.$strip>;
428
449
  }, z.core.$strip>;
429
- declare const subscriptionMessageSchema: z.ZodObject<{
430
- method: z.ZodLiteral<"subscription">;
431
- params: z.ZodObject<{
432
- path: z.ZodLiteral<"updates">;
433
- input: z.ZodObject<{
434
- json: z.ZodObject<{
435
- type: z.ZodLiteral<"updates">;
436
- shardId: z.ZodString;
437
- updates: z.ZodArray<z.ZodObject<{
438
- id: z.ZodString;
439
- collection: z.ZodString;
440
- path: z.ZodOptional<z.ZodString>;
441
- key: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
442
- type: z.ZodEnum<{
443
- insert: "insert";
444
- update: "update";
445
- delete: "delete";
446
- }>;
447
- value: z.ZodOptional<z.ZodUnknown>;
448
- previousValue: z.ZodOptional<z.ZodUnknown>;
449
- clientId: z.ZodOptional<z.ZodString>;
450
- createdAt: z.ZodNumber;
451
- sequence: z.ZodNumber;
452
- serverCreatedAt: z.ZodString;
453
- }, z.core.$strip>>;
454
- watermark: z.ZodNumber;
455
- invalidations: z.ZodOptional<z.ZodArray<z.ZodObject<{
456
- collection: z.ZodString;
457
- }, z.core.$strip>>>;
458
- }, z.core.$strip>;
459
- }, z.core.$strip>;
450
+ declare const updatesMessageSchema: z.ZodObject<{
451
+ version: z.ZodLiteral<1>;
452
+ type: z.ZodLiteral<"updates">;
453
+ payload: z.ZodObject<{
454
+ type: z.ZodLiteral<"updates">;
455
+ shardId: z.ZodString;
456
+ updates: z.ZodArray<z.ZodObject<{
457
+ id: z.ZodString;
458
+ collection: z.ZodString;
459
+ path: z.ZodOptional<z.ZodString>;
460
+ key: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
461
+ type: z.ZodEnum<{
462
+ insert: "insert";
463
+ update: "update";
464
+ delete: "delete";
465
+ }>;
466
+ value: z.ZodOptional<z.ZodUnknown>;
467
+ previousValue: z.ZodOptional<z.ZodUnknown>;
468
+ clientId: z.ZodOptional<z.ZodString>;
469
+ createdAt: z.ZodNumber;
470
+ sequence: z.ZodNumber;
471
+ serverCreatedAt: z.ZodString;
472
+ }, z.core.$strip>>;
473
+ watermark: z.ZodNumber;
474
+ invalidations: z.ZodOptional<z.ZodArray<z.ZodObject<{
475
+ collection: z.ZodString;
476
+ }, z.core.$strip>>>;
460
477
  }, z.core.$strip>;
461
478
  }, z.core.$strip>;
462
- declare const serverMessageSchema: z.ZodUnion<readonly [z.ZodObject<{
463
- id: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
464
- result: z.ZodObject<{
465
- type: z.ZodLiteral<"data">;
466
- data: z.ZodObject<{
467
- json: z.ZodUnknown;
468
- }, z.core.$strip>;
469
- }, z.core.$strip>;
479
+ declare const serverMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
480
+ version: z.ZodLiteral<1>;
481
+ id: z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
482
+ type: z.ZodLiteral<"result">;
483
+ payload: z.ZodUnknown;
470
484
  }, z.core.$strip>, z.ZodObject<{
471
- id: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
485
+ version: z.ZodLiteral<1>;
486
+ id: z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
487
+ type: z.ZodLiteral<"error">;
472
488
  error: z.ZodObject<{
489
+ code: z.ZodEnum<{
490
+ AUTH_DENIED: "AUTH_DENIED";
491
+ VALIDATION_FAILED: "VALIDATION_FAILED";
492
+ CONFLICT: "CONFLICT";
493
+ RESYNC_REQUIRED: "RESYNC_REQUIRED";
494
+ RATE_LIMITED: "RATE_LIMITED";
495
+ NOT_FOUND: "NOT_FOUND";
496
+ UNSUPPORTED_OPERATION: "UNSUPPORTED_OPERATION";
497
+ PROTOCOL_ERROR: "PROTOCOL_ERROR";
498
+ INTERNAL_ERROR: "INTERNAL_ERROR";
499
+ }>;
473
500
  message: z.ZodString;
501
+ details: z.ZodOptional<z.ZodUnknown>;
474
502
  }, z.core.$strip>;
475
503
  }, z.core.$strip>, z.ZodObject<{
476
- method: z.ZodLiteral<"subscription">;
477
- params: z.ZodObject<{
478
- path: z.ZodLiteral<"updates">;
479
- input: z.ZodObject<{
480
- json: z.ZodObject<{
481
- type: z.ZodLiteral<"updates">;
482
- shardId: z.ZodString;
483
- updates: z.ZodArray<z.ZodObject<{
484
- id: z.ZodString;
485
- collection: z.ZodString;
486
- path: z.ZodOptional<z.ZodString>;
487
- key: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
488
- type: z.ZodEnum<{
489
- insert: "insert";
490
- update: "update";
491
- delete: "delete";
492
- }>;
493
- value: z.ZodOptional<z.ZodUnknown>;
494
- previousValue: z.ZodOptional<z.ZodUnknown>;
495
- clientId: z.ZodOptional<z.ZodString>;
496
- createdAt: z.ZodNumber;
497
- sequence: z.ZodNumber;
498
- serverCreatedAt: z.ZodString;
499
- }, z.core.$strip>>;
500
- watermark: z.ZodNumber;
501
- invalidations: z.ZodOptional<z.ZodArray<z.ZodObject<{
502
- collection: z.ZodString;
503
- }, z.core.$strip>>>;
504
- }, z.core.$strip>;
505
- }, z.core.$strip>;
504
+ version: z.ZodLiteral<1>;
505
+ type: z.ZodLiteral<"updates">;
506
+ payload: z.ZodObject<{
507
+ type: z.ZodLiteral<"updates">;
508
+ shardId: z.ZodString;
509
+ updates: z.ZodArray<z.ZodObject<{
510
+ id: z.ZodString;
511
+ collection: z.ZodString;
512
+ path: z.ZodOptional<z.ZodString>;
513
+ key: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
514
+ type: z.ZodEnum<{
515
+ insert: "insert";
516
+ update: "update";
517
+ delete: "delete";
518
+ }>;
519
+ value: z.ZodOptional<z.ZodUnknown>;
520
+ previousValue: z.ZodOptional<z.ZodUnknown>;
521
+ clientId: z.ZodOptional<z.ZodString>;
522
+ createdAt: z.ZodNumber;
523
+ sequence: z.ZodNumber;
524
+ serverCreatedAt: z.ZodString;
525
+ }, z.core.$strip>>;
526
+ watermark: z.ZodNumber;
527
+ invalidations: z.ZodOptional<z.ZodArray<z.ZodObject<{
528
+ collection: z.ZodString;
529
+ }, z.core.$strip>>>;
506
530
  }, z.core.$strip>;
507
- }, z.core.$strip>]>;
508
- type RpcId = string | number | null | undefined;
509
- type ClientRpcRequest = z.input<typeof clientRpcRequestSchema>;
510
- type ParsedClientRpcRequest = z.output<typeof clientRpcRequestSchema>;
511
- type RpcResultMessage = z.output<typeof rpcResultMessageSchema>;
512
- type RpcErrorMessage = z.output<typeof rpcErrorMessageSchema>;
513
- type SubscriptionMessage = z.output<typeof subscriptionMessageSchema>;
531
+ }, z.core.$strip>], "type">;
532
+ type RequestId = z.infer<typeof requestIdSchema>;
533
+ type ProtocolErrorCode = z.infer<typeof protocolErrorCodeSchema>;
534
+ type ProtocolErrorPayload = z.output<typeof protocolErrorSchema>;
535
+ type ClientMessage = z.input<typeof clientMessageSchema>;
536
+ type ParsedClientMessage = z.output<typeof clientMessageSchema>;
537
+ type ResultMessage = z.output<typeof resultMessageSchema>;
538
+ type ErrorMessage = z.output<typeof errorMessageSchema>;
539
+ type UpdatesMessage = z.output<typeof updatesMessageSchema>;
514
540
  type ServerMessage = z.output<typeof serverMessageSchema>;
541
+ declare class ProtocolError extends Error {
542
+ readonly code: ProtocolErrorCode;
543
+ readonly details: unknown;
544
+ constructor(error: ProtocolErrorPayload);
545
+ }
515
546
  type TransportPayload = ArrayBuffer | ArrayBufferView | string;
516
547
  interface TransportSocket {
517
548
  send(data: ArrayBuffer): void;
518
549
  }
519
- declare function parseClientRpcRequest(data: TransportPayload): ParsedClientRpcRequest;
550
+ declare function parseClientMessage(data: TransportPayload): ParsedClientMessage;
520
551
  declare function parseServerMessage(data: TransportPayload): ServerMessage;
521
- declare function readRpcId(data: TransportPayload): RpcId;
522
- declare function encodeClientRpcRequest(message: ClientRpcRequest): ArrayBuffer;
552
+ declare function readMessageId(data: TransportPayload): RequestId | null;
553
+ declare function encodeClientMessage(message: ClientMessage): ArrayBuffer;
523
554
  declare function encodeServerMessage(message: ServerMessage): ArrayBuffer;
524
- declare function sendClientRpcRequest(socket: TransportSocket, message: ClientRpcRequest): void;
555
+ declare function sendClientMessage(socket: TransportSocket, message: ClientMessage): void;
525
556
  declare function sendServerMessage(socket: TransportSocket, message: ServerMessage): void;
526
557
  //#endregion
527
- export { type ApiCall, type ApiCallArgs, type ApiCallInput, type ApiContract, type ApiInput, type ApiOutput, type ApiPath, type ApiRoute, type Batch, type Broadcast, type ClientRpcRequest, type CollectionInvalidation, type CollectionSubscription, type CollectionSubscriptionInput, type CollectionSubscriptionResult, type FuncExpression, type OperationType, type ParsedClientRpcRequest, type PushResult, type ReadCursor, type ReadCursorInput, type ReadExpression, type ReadExpressionField, type ReadExpressionInput, type ReadExpressionRow, type ReadFilter, type ReadFilterInput, type ReadFilterOperator, type ReadOrderBy, type ReadOrderByInput, type ReadPredicate, type ReadQuery, type ReadQueryInput, type ReadResult, type RefExpression, type RpcErrorMessage, type RpcId, type RpcResultMessage, type SequencedUpdate, type ServerMessage, type SubscriptionMessage, type SyncChangesQuery, type SyncChangesQueryInput, type SyncChangesResult, type TransportSocket, type Update, type ValExpression, type WebSocketAttachment, and, apiCallSchema, batchSchema, broadcastSchema, clientRpcRequestSchema, collectionInvalidationSchema, collectionSubscriptionResultSchema, collectionSubscriptionSchema, compileReadExpression, encodeClientRpcRequest, encodeServerMessage, eq, field, gt, gte, inArray, lt, lte, matchesReadPredicate, ne, not, operationTypeSchema, or, parseClientRpcRequest, parseServerMessage, pushResultSchema, readCursorSchema, readExpressionReferences, readExpressionRow, readFilterOperatorSchema, readFilterSchema, readOrderBySchema, readPredicateSchema, readQuerySchema, readResultSchema, readRpcId, rpcErrorMessageSchema, rpcIdSchema, rpcResultMessageSchema, sendClientRpcRequest, sendServerMessage, sequencedUpdateSchema, serverMessageSchema, subscriptionMessageSchema, syncChangesQuerySchema, syncChangesResultSchema, updateSchema, val, webSocketAttachmentSchema };
558
+ export { type ApiCall, type ApiCallArgs, type ApiCallInput, type ApiContract, type ApiInput, type ApiOutput, type ApiPath, type ApiRoute, type Batch, type Broadcast, type ClientMessage, type CollectionInvalidation, type CollectionSubscription, type CollectionSubscriptionInput, type CollectionSubscriptionResult, type ErrorMessage, type FuncExpression, type OperationType, type ParsedClientMessage, ProtocolError, type ProtocolErrorCode, type ProtocolErrorPayload, type PushResult, type ReadCursor, type ReadCursorInput, type ReadExpression, type ReadExpressionField, type ReadExpressionInput, type ReadExpressionRow, type ReadFilter, type ReadFilterInput, type ReadFilterOperator, type ReadOrderBy, type ReadOrderByInput, type ReadPredicate, type ReadQuery, type ReadQueryInput, type ReadResult, type RefExpression, type RequestId, type ResultMessage, type SequencedUpdate, type ServerMessage, type SyncChangesQuery, type SyncChangesQueryInput, type SyncChangesResult, type TransportSocket, type Update, type UpdatesMessage, type ValExpression, type WebSocketAttachment, and, apiCallSchema, batchSchema, broadcastSchema, clientMessageSchema, collectionInvalidationSchema, collectionSubscriptionResultSchema, collectionSubscriptionSchema, compileReadExpression, encodeClientMessage, encodeServerMessage, eq, field, gt, gte, inArray, lt, lte, matchesReadPredicate, ne, not, operationTypeSchema, or, parseClientMessage, parseServerMessage, protocolErrorCodeSchema, protocolErrorSchema, protocolVersion, protocolVersionSchema, pushResultSchema, readCursorSchema, readExpressionReferences, readExpressionRow, readFilterOperatorSchema, readFilterSchema, readMessageId, readOrderBySchema, readPredicateSchema, readQuerySchema, readResultSchema, sendClientMessage, sendServerMessage, sequencedUpdateSchema, serverMessageSchema, syncChangesQuerySchema, syncChangesResultSchema, updateSchema, val, webSocketAttachmentSchema };
528
559
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/api.ts","../src/expression.ts","../src/predicate-match.ts","../src/rpc.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/api.ts","../src/expression.ts","../src/predicate-match.ts","../src/rpc.ts"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -78,7 +78,8 @@ const syncChangesPageResultSchema = z.object({
78
78
  type: z.literal("changes"),
79
79
  updates: z.array(sequencedUpdateSchema),
80
80
  watermark: z.number().int().nonnegative(),
81
- hasMore: z.boolean()
81
+ hasMore: z.boolean(),
82
+ cursors: z.record(z.string(), z.number().int().nonnegative()).optional()
82
83
  });
83
84
  const syncChangesResyncRequiredResultSchema = z.object({
84
85
  type: z.literal("resyncRequired"),
@@ -299,97 +300,117 @@ function valueAtPath(row, fieldName) {
299
300
  }
300
301
  //#endregion
301
302
  //#region src/rpc.ts
302
- const rpcIdSchema = z.union([z.string(), z.number()]).nullable().optional();
303
- const rpcInputSchema = z.object({ json: z.unknown() });
304
- const clientRpcMutationRequestSchema = z.object({
305
- id: rpcIdSchema,
306
- method: z.literal("mutation"),
307
- params: z.object({
308
- path: z.literal("push"),
309
- input: z.object({ json: batchSchema })
310
- })
303
+ const protocolVersion = 1;
304
+ const protocolVersionSchema = z.literal(1);
305
+ const requestIdSchema = z.union([z.string(), z.number()]);
306
+ const nullableRequestIdSchema = requestIdSchema.nullable();
307
+ const protocolErrorCodeSchema = z.enum([
308
+ "AUTH_DENIED",
309
+ "VALIDATION_FAILED",
310
+ "CONFLICT",
311
+ "RESYNC_REQUIRED",
312
+ "RATE_LIMITED",
313
+ "NOT_FOUND",
314
+ "UNSUPPORTED_OPERATION",
315
+ "PROTOCOL_ERROR",
316
+ "INTERNAL_ERROR"
317
+ ]);
318
+ const protocolErrorSchema = z.object({
319
+ code: protocolErrorCodeSchema,
320
+ message: z.string(),
321
+ details: z.unknown().optional()
322
+ });
323
+ const readRequestSchema = z.object({
324
+ version: protocolVersionSchema,
325
+ id: requestIdSchema,
326
+ type: z.literal("read"),
327
+ input: readQuerySchema
311
328
  });
312
- const clientRpcReadQueryRequestSchema = z.object({
313
- id: rpcIdSchema,
314
- method: z.literal("query"),
315
- params: z.object({
316
- path: z.literal("read"),
317
- input: z.object({ json: readQuerySchema })
318
- })
329
+ const pushRequestSchema = z.object({
330
+ version: protocolVersionSchema,
331
+ id: requestIdSchema,
332
+ type: z.literal("push"),
333
+ input: batchSchema
319
334
  });
320
- const clientRpcChangesQueryRequestSchema = z.object({
321
- id: rpcIdSchema,
322
- method: z.literal("query"),
323
- params: z.object({
324
- path: z.literal("changes"),
325
- input: z.object({ json: syncChangesQuerySchema })
326
- })
335
+ const changesRequestSchema = z.object({
336
+ version: protocolVersionSchema,
337
+ id: requestIdSchema,
338
+ type: z.literal("changes"),
339
+ input: syncChangesQuerySchema
327
340
  });
328
- const clientRpcApiCallRequestSchema = z.object({
329
- id: rpcIdSchema,
330
- method: z.literal("mutation"),
331
- params: z.object({
332
- path: z.literal("api"),
333
- input: z.object({ json: apiCallSchema })
334
- })
341
+ const apiRequestSchema = z.object({
342
+ version: protocolVersionSchema,
343
+ id: requestIdSchema,
344
+ type: z.literal("api"),
345
+ input: apiCallSchema
335
346
  });
336
- const clientRpcSubscriptionRequestSchema = z.object({
337
- id: rpcIdSchema,
338
- method: z.enum(["subscribe", "unsubscribe"]),
339
- params: z.object({ input: z.object({ json: collectionSubscriptionSchema }) })
347
+ const subscriptionRequestSchema = z.object({
348
+ version: protocolVersionSchema,
349
+ id: requestIdSchema,
350
+ type: z.enum(["subscribe", "unsubscribe"]),
351
+ input: collectionSubscriptionSchema
340
352
  });
341
- const clientRpcRequestSchema = z.union([
342
- clientRpcMutationRequestSchema,
343
- clientRpcReadQueryRequestSchema,
344
- clientRpcChangesQueryRequestSchema,
345
- clientRpcApiCallRequestSchema,
346
- clientRpcSubscriptionRequestSchema
353
+ const clientMessageSchema = z.discriminatedUnion("type", [
354
+ readRequestSchema,
355
+ pushRequestSchema,
356
+ changesRequestSchema,
357
+ apiRequestSchema,
358
+ subscriptionRequestSchema
347
359
  ]);
348
- const rpcResultMessageSchema = z.object({
349
- id: rpcIdSchema,
350
- result: z.object({
351
- type: z.literal("data"),
352
- data: rpcInputSchema
353
- })
360
+ const resultMessageSchema = z.object({
361
+ version: protocolVersionSchema,
362
+ id: nullableRequestIdSchema,
363
+ type: z.literal("result"),
364
+ payload: z.unknown()
354
365
  });
355
- const rpcErrorMessageSchema = z.object({
356
- id: rpcIdSchema,
357
- error: z.object({ message: z.string() })
366
+ const errorMessageSchema = z.object({
367
+ version: protocolVersionSchema,
368
+ id: nullableRequestIdSchema,
369
+ type: z.literal("error"),
370
+ error: protocolErrorSchema
358
371
  });
359
- const subscriptionMessageSchema = z.object({
360
- method: z.literal("subscription"),
361
- params: z.object({
362
- path: z.literal("updates"),
363
- input: z.object({ json: broadcastSchema })
364
- })
372
+ const updatesMessageSchema = z.object({
373
+ version: protocolVersionSchema,
374
+ type: z.literal("updates"),
375
+ payload: broadcastSchema
365
376
  });
366
- const serverMessageSchema = z.union([
367
- rpcResultMessageSchema,
368
- rpcErrorMessageSchema,
369
- subscriptionMessageSchema
377
+ const serverMessageSchema = z.discriminatedUnion("type", [
378
+ resultMessageSchema,
379
+ errorMessageSchema,
380
+ updatesMessageSchema
370
381
  ]);
371
- function parseClientRpcRequest(data) {
372
- return clientRpcRequestSchema.parse(decodeMessage(data));
382
+ var ProtocolError = class extends Error {
383
+ code;
384
+ details;
385
+ constructor(error) {
386
+ super(error.message);
387
+ this.name = "ProtocolError";
388
+ this.code = error.code;
389
+ this.details = error.details;
390
+ }
391
+ };
392
+ function parseClientMessage(data) {
393
+ return clientMessageSchema.parse(decodeMessage(data));
373
394
  }
374
395
  function parseServerMessage(data) {
375
396
  return serverMessageSchema.parse(decodeMessage(data));
376
397
  }
377
- function readRpcId(data) {
398
+ function readMessageId(data) {
378
399
  try {
379
- const message = z.object({ id: rpcIdSchema }).safeParse(decodeMessage(data));
380
- return message.success ? message.data.id : null;
400
+ const message = z.object({ id: nullableRequestIdSchema.optional() }).safeParse(decodeMessage(data));
401
+ return message.success && message.data.id !== void 0 ? message.data.id : null;
381
402
  } catch {
382
403
  return null;
383
404
  }
384
405
  }
385
- function encodeClientRpcRequest(message) {
406
+ function encodeClientMessage(message) {
386
407
  return encodeMessage(message);
387
408
  }
388
409
  function encodeServerMessage(message) {
389
410
  return encodeMessage(message);
390
411
  }
391
- function sendClientRpcRequest(socket, message) {
392
- socket.send(encodeClientRpcRequest(message));
412
+ function sendClientMessage(socket, message) {
413
+ socket.send(encodeClientMessage(message));
393
414
  }
394
415
  function sendServerMessage(socket, message) {
395
416
  socket.send(encodeServerMessage(message));
@@ -405,6 +426,6 @@ function encodeMessage(message) {
405
426
  return buffer;
406
427
  }
407
428
  //#endregion
408
- export { and, apiCallSchema, batchSchema, broadcastSchema, clientRpcRequestSchema, collectionInvalidationSchema, collectionSubscriptionResultSchema, collectionSubscriptionSchema, compileReadExpression, encodeClientRpcRequest, encodeServerMessage, eq, field, gt, gte, inArray, lt, lte, matchesReadPredicate, ne, not, operationTypeSchema, or, parseClientRpcRequest, parseServerMessage, pushResultSchema, readCursorSchema, readExpressionReferences, readExpressionRow, readFilterOperatorSchema, readFilterSchema, readOrderBySchema, readPredicateSchema, readQuerySchema, readResultSchema, readRpcId, rpcErrorMessageSchema, rpcIdSchema, rpcResultMessageSchema, sendClientRpcRequest, sendServerMessage, sequencedUpdateSchema, serverMessageSchema, subscriptionMessageSchema, syncChangesQuerySchema, syncChangesResultSchema, updateSchema, val, webSocketAttachmentSchema };
429
+ export { ProtocolError, and, apiCallSchema, batchSchema, broadcastSchema, clientMessageSchema, collectionInvalidationSchema, collectionSubscriptionResultSchema, collectionSubscriptionSchema, compileReadExpression, encodeClientMessage, encodeServerMessage, eq, field, gt, gte, inArray, lt, lte, matchesReadPredicate, ne, not, operationTypeSchema, or, parseClientMessage, parseServerMessage, protocolErrorCodeSchema, protocolErrorSchema, protocolVersion, protocolVersionSchema, pushResultSchema, readCursorSchema, readExpressionReferences, readExpressionRow, readFilterOperatorSchema, readFilterSchema, readMessageId, readOrderBySchema, readPredicateSchema, readQuerySchema, readResultSchema, sendClientMessage, sendServerMessage, sequencedUpdateSchema, serverMessageSchema, syncChangesQuerySchema, syncChangesResultSchema, updateSchema, val, webSocketAttachmentSchema };
409
430
 
410
431
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/api.ts","../src/expression.ts","../src/predicate-match.ts","../src/rpc.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const operationTypeSchema = z.enum([\"insert\", \"update\", \"delete\"]);\n\nexport const updateSchema = z.object({\n id: z.string(),\n collection: z.string(),\n path: z.string().optional(),\n key: z.union([z.string(), z.number()]),\n type: operationTypeSchema,\n value: z.unknown().optional(),\n previousValue: z.unknown().optional(),\n clientId: z.string().optional(),\n createdAt: z.number(),\n});\n\nexport const sequencedUpdateSchema = updateSchema.extend({\n sequence: z.number().int().positive(),\n serverCreatedAt: z.string(),\n});\n\nexport const batchSchema = z.object({\n updates: z.array(updateSchema).min(1),\n});\n\nexport const readFilterOperatorSchema = z.enum([\"eq\", \"ne\", \"gt\", \"gte\", \"lt\", \"lte\", \"in\"]);\n\nexport const readFilterSchema = z.object({\n field: z.string().min(1),\n op: readFilterOperatorSchema.default(\"eq\"),\n value: z.unknown(),\n});\n\nexport type ReadPredicate =\n | {\n type: \"comparison\";\n field: string;\n op: z.infer<typeof readFilterOperatorSchema>;\n value: unknown;\n }\n | {\n type: \"and\" | \"or\";\n predicates: Array<ReadPredicate>;\n };\n\nconst readComparisonPredicateSchema = z.object({\n type: z.literal(\"comparison\"),\n field: z.string().min(1),\n op: readFilterOperatorSchema,\n value: z.unknown(),\n});\n\nconst readCompoundPredicateSchema = z.object({\n type: z.enum([\"and\", \"or\"]),\n predicates: z.array(z.lazy(() => readPredicateSchema)).min(1),\n});\n\nexport const readPredicateSchema: z.ZodType<ReadPredicate> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [readComparisonPredicateSchema, readCompoundPredicateSchema]),\n);\n\nexport const readOrderBySchema = z.object({\n field: z.string().min(1),\n direction: z.enum([\"asc\", \"desc\"]).default(\"asc\"),\n});\n\nexport const readCursorSchema = z.object({\n whereCurrent: readPredicateSchema,\n whereFrom: readPredicateSchema,\n lastKey: z.union([z.string(), z.number()]).optional(),\n});\n\nexport const readQuerySchema = z.object({\n collection: z.string(),\n filters: z.array(readFilterSchema).optional(),\n predicate: readPredicateSchema.optional(),\n orderBy: z.array(readOrderBySchema).optional(),\n cursor: readCursorSchema.optional(),\n limit: z.number().int().positive().max(1000).optional(),\n offset: z.number().int().nonnegative().optional(),\n});\n\nexport const readResultSchema = z.object({\n rows: z.array(z.unknown()),\n});\n\nexport const pushResultSchema = z.object({\n accepted: z.number().int().nonnegative(),\n watermark: z.number().int().nonnegative(),\n});\n\nexport const syncChangesQuerySchema = z.object({\n collections: z.record(z.string(), z.number().int().nonnegative()),\n limit: z.number().int().positive().max(1000).optional(),\n});\n\nconst syncChangesPageResultSchema = z.object({\n type: z.literal(\"changes\"),\n updates: z.array(sequencedUpdateSchema),\n watermark: z.number().int().nonnegative(),\n hasMore: z.boolean(),\n});\n\nconst syncChangesResyncRequiredResultSchema = z.object({\n type: z.literal(\"resyncRequired\"),\n collections: z.array(z.string()),\n watermark: z.number().int().nonnegative(),\n});\n\nexport const syncChangesResultSchema = z.discriminatedUnion(\"type\", [\n syncChangesPageResultSchema,\n syncChangesResyncRequiredResultSchema,\n]);\n\nexport const apiCallSchema = z.object({\n path: z.string().min(1),\n input: z.unknown().optional(),\n});\n\nexport const collectionSubscriptionSchema = z.object({\n collection: z.string().min(1),\n});\n\nexport const collectionSubscriptionResultSchema = z.object({\n collection: z.string(),\n subscriptions: z.array(z.string()),\n});\n\nexport const collectionInvalidationSchema = z.object({\n collection: z.string(),\n});\n\nexport const broadcastSchema = z.object({\n type: z.literal(\"updates\"),\n shardId: z.string(),\n updates: z.array(sequencedUpdateSchema),\n watermark: z.number().int().nonnegative(),\n invalidations: z.array(collectionInvalidationSchema).optional(),\n});\n\nexport const webSocketAttachmentSchema = z.object({\n clientId: z.string(),\n connectedAt: z.number(),\n auth: z.record(z.string(), z.unknown()).optional(),\n subscriptions: z.array(z.string()).default([]),\n});\n\nexport type OperationType = z.infer<typeof operationTypeSchema>;\nexport type Update = z.infer<typeof updateSchema>;\nexport type SequencedUpdate = z.infer<typeof sequencedUpdateSchema>;\nexport type Batch = z.infer<typeof batchSchema>;\nexport type ReadFilterOperator = z.infer<typeof readFilterOperatorSchema>;\nexport type ReadFilter = z.output<typeof readFilterSchema>;\nexport type ReadFilterInput = z.input<typeof readFilterSchema>;\nexport type ReadCursor = z.output<typeof readCursorSchema>;\nexport type ReadCursorInput = z.input<typeof readCursorSchema>;\nexport type ReadOrderBy = z.output<typeof readOrderBySchema>;\nexport type ReadOrderByInput = z.input<typeof readOrderBySchema>;\nexport type ApiCall = z.output<typeof apiCallSchema>;\nexport type ApiCallInput = z.input<typeof apiCallSchema>;\nexport type CollectionSubscription = z.output<typeof collectionSubscriptionSchema>;\nexport type CollectionSubscriptionInput = z.input<typeof collectionSubscriptionSchema>;\nexport type CollectionSubscriptionResult = z.output<typeof collectionSubscriptionResultSchema>;\nexport type CollectionInvalidation = z.output<typeof collectionInvalidationSchema>;\n\nexport interface ApiRoute<TInput = unknown, TOutput = unknown> {\n input: TInput;\n output: TOutput;\n}\n\nexport type ApiContract = Record<string, ApiRoute>;\nexport type ApiPath<TApi extends ApiContract> = Extract<keyof TApi, string>;\nexport type ApiInput<TApi extends ApiContract, TPath extends ApiPath<TApi>> = TApi[TPath][\"input\"];\nexport type ApiOutput<\n TApi extends ApiContract,\n TPath extends ApiPath<TApi>,\n> = TApi[TPath][\"output\"];\nexport type ApiCallArgs<TApi extends ApiContract, TPath extends ApiPath<TApi>> =\n undefined extends ApiInput<TApi, TPath>\n ? [input?: ApiInput<TApi, TPath>]\n : [input: ApiInput<TApi, TPath>];\n\nexport interface ReadQuery {\n collection: string;\n filters?: Array<ReadFilter>;\n predicate?: ReadPredicate;\n orderBy?: Array<ReadOrderBy>;\n cursor?: ReadCursor;\n limit?: number;\n offset?: number;\n}\nexport interface ReadQueryInput {\n collection: string;\n filters?: Array<ReadFilterInput>;\n predicate?: ReadPredicate;\n orderBy?: Array<ReadOrderByInput>;\n cursor?: ReadCursorInput;\n limit?: number;\n offset?: number;\n}\nexport type PushResult = z.infer<typeof pushResultSchema>;\nexport type SyncChangesQuery = z.output<typeof syncChangesQuerySchema>;\nexport type SyncChangesQueryInput = z.input<typeof syncChangesQuerySchema>;\nexport type SyncChangesResult = z.infer<typeof syncChangesResultSchema>;\nexport type Broadcast = z.infer<typeof broadcastSchema>;\nexport type WebSocketAttachment = z.infer<typeof webSocketAttachmentSchema>;\n\nexport interface ReadResult<T = unknown> {\n rows: Array<T>;\n}\n","import type { ReadFilterOperator, ReadPredicate } from \"./api\";\n\nexport type ReadExpression =\n | FuncExpression\n | RefExpression\n | ValExpression\n | { expression: ReadExpression };\ntype ReadExpressionNode = FuncExpression | RefExpression | ValExpression;\n\nexport interface FuncExpression {\n type: \"func\";\n name: string;\n args: Array<unknown>;\n}\n\nexport interface RefExpression {\n type: \"ref\";\n source?: \"row\" | \"reference\";\n name?: string;\n path: Array<string | number>;\n}\n\nexport interface ValExpression {\n type: \"val\";\n value: unknown;\n}\n\nexport type ReadExpressionInput = ReadExpression;\nexport type ReadExpressionField = RefExpression & Record<string, any>;\nexport type ReadExpressionRow<T extends object = Record<string, unknown>> = {\n readonly [K in keyof T]: ReadExpressionField;\n};\n\nexport function readExpressionRow<\n T extends object = Record<string, unknown>,\n>(): ReadExpressionRow<T> {\n return refProxy([], \"row\") as ReadExpressionRow<T>;\n}\n\nexport function readExpressionReferences<\n TReferences extends Record<string, object> = Record<string, Record<string, unknown>>,\n>(\n names: Array<keyof TReferences & string>,\n): {\n readonly [K in keyof TReferences]: ReadExpressionRow<TReferences[K]>;\n} {\n return Object.fromEntries(\n names.map((name) => [name, refProxy([], \"reference\", name)]),\n ) as unknown as {\n readonly [K in keyof TReferences]: ReadExpressionRow<TReferences[K]>;\n };\n}\n\nexport function field(path: string | Array<string | number>): RefExpression {\n return {\n type: \"ref\",\n source: \"row\",\n path: Array.isArray(path) ? path : path.split(\".\"),\n };\n}\n\nexport function val(value: unknown): ValExpression {\n return { type: \"val\", value };\n}\n\nexport function eq(left: unknown, right: unknown): FuncExpression {\n return func(\"eq\", left, right);\n}\n\nexport function ne(left: unknown, right: unknown): FuncExpression {\n return func(\"not_eq\", left, right);\n}\n\nexport function gt(left: unknown, right: unknown): FuncExpression {\n return func(\"gt\", left, right);\n}\n\nexport function gte(left: unknown, right: unknown): FuncExpression {\n return func(\"gte\", left, right);\n}\n\nexport function lt(left: unknown, right: unknown): FuncExpression {\n return func(\"lt\", left, right);\n}\n\nexport function lte(left: unknown, right: unknown): FuncExpression {\n return func(\"lte\", left, right);\n}\n\nexport function inArray(left: unknown, values: unknown): FuncExpression {\n return func(\"in\", left, values);\n}\n\nexport function and(...expressions: Array<unknown>): FuncExpression {\n return func(\"and\", ...expressions);\n}\n\nexport function or(...expressions: Array<unknown>): FuncExpression {\n return func(\"or\", ...expressions);\n}\n\nexport function not(expression: unknown): FuncExpression {\n return func(\"not\", expression);\n}\n\nexport function compileReadExpression(expression: unknown): ReadPredicate {\n const unwrapped = unwrapExpression(expression);\n\n if (!isFuncExpression(unwrapped)) {\n throw new Error(\"Read access expressions must be function expressions\");\n }\n\n if (unwrapped.name === \"and\" || unwrapped.name === \"or\") {\n return {\n type: unwrapped.name,\n predicates: unwrapped.args.map(compileReadExpression),\n };\n }\n\n if (unwrapped.name === \"not\") {\n return negatePredicate(compileReadExpression(unwrapped.args[0]));\n }\n\n const comparison = comparisonFromExpression(unwrapped);\n if (!comparison) {\n throw new Error(`Unsupported read access operator: ${unwrapped.name}`);\n }\n\n return {\n type: \"comparison\",\n ...comparison,\n };\n}\n\nfunction func(name: string, ...args: Array<unknown>): FuncExpression {\n return {\n type: \"func\",\n name,\n args: args.map(toExpressionArg),\n };\n}\n\nfunction toExpressionArg(value: unknown): unknown {\n return isReadExpressionInput(value) ? value : val(value);\n}\n\nfunction comparisonFromExpression(\n expression: FuncExpression,\n): Omit<Extract<ReadPredicate, { type: \"comparison\" }>, \"type\"> | undefined {\n const op = toReadFilterOperator(expression.name);\n const [left, right] = expression.args;\n const leftExpression = unwrapExpression(left);\n const rightExpression = unwrapExpression(right);\n if (!op || !isRefExpression(leftExpression) || !isValExpression(rightExpression)) {\n return undefined;\n }\n\n return {\n field: rowField(leftExpression),\n op,\n value: rightExpression.value,\n };\n}\n\nfunction rowField(expression: RefExpression): string {\n if (expression.source && expression.source !== \"row\") {\n throw new Error(\"Read access expressions must reduce reference refs before compilation\");\n }\n\n return expression.path.join(\".\");\n}\n\nfunction toReadFilterOperator(operator: string): ReadFilterOperator | undefined {\n switch (operator) {\n case \"eq\":\n case \"gt\":\n case \"gte\":\n case \"lt\":\n case \"lte\":\n case \"in\":\n return operator;\n case \"not_eq\":\n return \"ne\";\n default:\n return undefined;\n }\n}\n\nfunction negatePredicate(predicate: ReadPredicate): ReadPredicate {\n if (predicate.type === \"and\" || predicate.type === \"or\") {\n return {\n type: predicate.type === \"and\" ? \"or\" : \"and\",\n predicates: predicate.predicates.map(negatePredicate),\n };\n }\n\n const comparison = predicate as Extract<ReadPredicate, { type: \"comparison\" }>;\n return {\n ...comparison,\n op: negateOperator(comparison.op),\n };\n}\n\nfunction negateOperator(operator: ReadFilterOperator): ReadFilterOperator {\n switch (operator) {\n case \"eq\":\n return \"ne\";\n case \"ne\":\n return \"eq\";\n case \"gt\":\n return \"lte\";\n case \"gte\":\n return \"lt\";\n case \"lt\":\n return \"gte\";\n case \"lte\":\n return \"gt\";\n case \"in\":\n throw new Error(\"Unsupported read access operator: not(in)\");\n }\n}\n\nfunction refProxy(\n path: Array<string | number>,\n source: RefExpression[\"source\"],\n name?: string,\n): ReadExpressionField {\n return new Proxy({ type: \"ref\", source, ...(name ? { name } : {}), path } as RefExpression, {\n get(target, property) {\n if (property in target) {\n return target[property as keyof RefExpression];\n }\n\n if (typeof property === \"symbol\") {\n return undefined;\n }\n\n return refProxy([...path, property], source, name);\n },\n }) as ReadExpressionField;\n}\n\nfunction unwrapExpression(value: unknown): unknown {\n if (\n typeof value === \"object\" &&\n value !== null &&\n \"expression\" in value &&\n isExpressionLike((value as { expression: unknown }).expression)\n ) {\n return (value as { expression: unknown }).expression;\n }\n\n return value;\n}\n\nfunction isReadExpressionInput(value: unknown): value is ReadExpression {\n return (\n isExpressionLike(value) ||\n (typeof value === \"object\" &&\n value !== null &&\n \"expression\" in value &&\n isReadExpressionInput((value as { expression: unknown }).expression))\n );\n}\n\nfunction isExpressionLike(value: unknown): value is ReadExpressionNode {\n return typeof value === \"object\" && value !== null && \"type\" in value;\n}\n\nfunction isFuncExpression(value: unknown): value is FuncExpression {\n return (\n isExpressionLike(value) &&\n value.type === \"func\" &&\n typeof value.name === \"string\" &&\n Array.isArray(value.args)\n );\n}\n\nfunction isRefExpression(value: unknown): value is RefExpression {\n return isExpressionLike(value) && value.type === \"ref\" && Array.isArray(value.path);\n}\n\nfunction isValExpression(value: unknown): value is ValExpression {\n return isExpressionLike(value) && value.type === \"val\";\n}\n","import type { ReadPredicate } from \"./api\";\n\nexport function matchesReadPredicate(row: unknown, predicate: ReadPredicate | undefined): boolean {\n if (!predicate) {\n return true;\n }\n\n if (predicate.type === \"comparison\") {\n return matchesComparison(row, predicate);\n }\n\n if (predicate.type === \"and\") {\n return predicate.predicates.every((child) => matchesReadPredicate(row, child));\n }\n\n return predicate.predicates.some((child) => matchesReadPredicate(row, child));\n}\n\nfunction matchesComparison(\n row: unknown,\n predicate: Extract<ReadPredicate, { type: \"comparison\" }>,\n): boolean {\n const value = valueAtPath(row, predicate.field);\n\n switch (predicate.op) {\n case \"eq\":\n return value === predicate.value;\n case \"ne\":\n return value !== predicate.value;\n case \"gt\":\n return compareValues(value, predicate.value, (left, right) => left > right);\n case \"gte\":\n return compareValues(value, predicate.value, (left, right) => left >= right);\n case \"lt\":\n return compareValues(value, predicate.value, (left, right) => left < right);\n case \"lte\":\n return compareValues(value, predicate.value, (left, right) => left <= right);\n case \"in\":\n return Array.isArray(predicate.value) && predicate.value.includes(value);\n }\n}\n\nfunction compareValues(\n left: unknown,\n right: unknown,\n compare: (left: number | string, right: number | string) => boolean,\n): boolean {\n if (typeof left === \"number\" && typeof right === \"number\") {\n return compare(left, right);\n }\n\n if (typeof left === \"string\" && typeof right === \"string\") {\n return compare(left, right);\n }\n\n return false;\n}\n\nfunction valueAtPath(row: unknown, fieldName: string): unknown {\n return fieldName.split(\".\").reduce<unknown>((value, segment) => {\n if (typeof value !== \"object\" || value === null) {\n return undefined;\n }\n\n return (value as Record<string, unknown>)[segment];\n }, row);\n}\n","import { decode, encode } from \"@msgpack/msgpack\";\nimport { z } from \"zod\";\nimport {\n apiCallSchema,\n batchSchema,\n broadcastSchema,\n collectionSubscriptionSchema,\n readQuerySchema,\n syncChangesQuerySchema,\n} from \"./api\";\n\nexport const rpcIdSchema = z.union([z.string(), z.number()]).nullable().optional();\n\nconst rpcInputSchema = z.object({\n json: z.unknown(),\n});\n\nconst clientRpcMutationRequestSchema = z.object({\n id: rpcIdSchema,\n method: z.literal(\"mutation\"),\n params: z.object({\n path: z.literal(\"push\"),\n input: z.object({\n json: batchSchema,\n }),\n }),\n});\n\nconst clientRpcReadQueryRequestSchema = z.object({\n id: rpcIdSchema,\n method: z.literal(\"query\"),\n params: z.object({\n path: z.literal(\"read\"),\n input: z.object({\n json: readQuerySchema,\n }),\n }),\n});\n\nconst clientRpcChangesQueryRequestSchema = z.object({\n id: rpcIdSchema,\n method: z.literal(\"query\"),\n params: z.object({\n path: z.literal(\"changes\"),\n input: z.object({\n json: syncChangesQuerySchema,\n }),\n }),\n});\n\nconst clientRpcApiCallRequestSchema = z.object({\n id: rpcIdSchema,\n method: z.literal(\"mutation\"),\n params: z.object({\n path: z.literal(\"api\"),\n input: z.object({\n json: apiCallSchema,\n }),\n }),\n});\n\nconst clientRpcSubscriptionRequestSchema = z.object({\n id: rpcIdSchema,\n method: z.enum([\"subscribe\", \"unsubscribe\"]),\n params: z.object({\n input: z.object({\n json: collectionSubscriptionSchema,\n }),\n }),\n});\n\nexport const clientRpcRequestSchema = z.union([\n clientRpcMutationRequestSchema,\n clientRpcReadQueryRequestSchema,\n clientRpcChangesQueryRequestSchema,\n clientRpcApiCallRequestSchema,\n clientRpcSubscriptionRequestSchema,\n]);\n\nexport const rpcResultMessageSchema = z.object({\n id: rpcIdSchema,\n result: z.object({\n type: z.literal(\"data\"),\n data: rpcInputSchema,\n }),\n});\n\nexport const rpcErrorMessageSchema = z.object({\n id: rpcIdSchema,\n error: z.object({\n message: z.string(),\n }),\n});\n\nexport const subscriptionMessageSchema = z.object({\n method: z.literal(\"subscription\"),\n params: z.object({\n path: z.literal(\"updates\"),\n input: z.object({\n json: broadcastSchema,\n }),\n }),\n});\n\nexport const serverMessageSchema = z.union([\n rpcResultMessageSchema,\n rpcErrorMessageSchema,\n subscriptionMessageSchema,\n]);\n\nexport type RpcId = string | number | null | undefined;\nexport type ClientRpcRequest = z.input<typeof clientRpcRequestSchema>;\nexport type ParsedClientRpcRequest = z.output<typeof clientRpcRequestSchema>;\nexport type RpcResultMessage = z.output<typeof rpcResultMessageSchema>;\nexport type RpcErrorMessage = z.output<typeof rpcErrorMessageSchema>;\nexport type SubscriptionMessage = z.output<typeof subscriptionMessageSchema>;\nexport type ServerMessage = z.output<typeof serverMessageSchema>;\n\nexport type TransportPayload = ArrayBuffer | ArrayBufferView | string;\n\nexport interface TransportSocket {\n send(data: ArrayBuffer): void;\n}\n\nexport function parseClientRpcRequest(data: TransportPayload): ParsedClientRpcRequest {\n return clientRpcRequestSchema.parse(decodeMessage(data));\n}\n\nexport function parseServerMessage(data: TransportPayload): ServerMessage {\n return serverMessageSchema.parse(decodeMessage(data));\n}\n\nexport function readRpcId(data: TransportPayload): RpcId {\n try {\n const message = z.object({ id: rpcIdSchema }).safeParse(decodeMessage(data));\n return message.success ? message.data.id : null;\n } catch {\n return null;\n }\n}\n\nexport function encodeClientRpcRequest(message: ClientRpcRequest): ArrayBuffer {\n return encodeMessage(message);\n}\n\nexport function encodeServerMessage(message: ServerMessage): ArrayBuffer {\n return encodeMessage(message);\n}\n\nexport function sendClientRpcRequest(socket: TransportSocket, message: ClientRpcRequest): void {\n socket.send(encodeClientRpcRequest(message));\n}\n\nexport function sendServerMessage(socket: TransportSocket, message: ServerMessage): void {\n socket.send(encodeServerMessage(message));\n}\n\nfunction decodeMessage(data: TransportPayload): unknown {\n if (typeof data === \"string\") {\n return decode(new TextEncoder().encode(data));\n }\n\n return decode(data);\n}\n\nfunction encodeMessage(message: unknown): ArrayBuffer {\n const bytes = encode(message);\n const buffer = new ArrayBuffer(bytes.byteLength);\n new Uint8Array(buffer).set(bytes);\n return buffer;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/api.ts","../src/expression.ts","../src/predicate-match.ts","../src/rpc.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const operationTypeSchema = z.enum([\"insert\", \"update\", \"delete\"]);\n\nexport const updateSchema = z.object({\n id: z.string(),\n collection: z.string(),\n path: z.string().optional(),\n key: z.union([z.string(), z.number()]),\n type: operationTypeSchema,\n value: z.unknown().optional(),\n previousValue: z.unknown().optional(),\n clientId: z.string().optional(),\n createdAt: z.number(),\n});\n\nexport const sequencedUpdateSchema = updateSchema.extend({\n sequence: z.number().int().positive(),\n serverCreatedAt: z.string(),\n});\n\nexport const batchSchema = z.object({\n updates: z.array(updateSchema).min(1),\n});\n\nexport const readFilterOperatorSchema = z.enum([\"eq\", \"ne\", \"gt\", \"gte\", \"lt\", \"lte\", \"in\"]);\n\nexport const readFilterSchema = z.object({\n field: z.string().min(1),\n op: readFilterOperatorSchema.default(\"eq\"),\n value: z.unknown(),\n});\n\nexport type ReadPredicate =\n | {\n type: \"comparison\";\n field: string;\n op: z.infer<typeof readFilterOperatorSchema>;\n value: unknown;\n }\n | {\n type: \"and\" | \"or\";\n predicates: Array<ReadPredicate>;\n };\n\nconst readComparisonPredicateSchema = z.object({\n type: z.literal(\"comparison\"),\n field: z.string().min(1),\n op: readFilterOperatorSchema,\n value: z.unknown(),\n});\n\nconst readCompoundPredicateSchema = z.object({\n type: z.enum([\"and\", \"or\"]),\n predicates: z.array(z.lazy(() => readPredicateSchema)).min(1),\n});\n\nexport const readPredicateSchema: z.ZodType<ReadPredicate> = z.lazy(() =>\n z.discriminatedUnion(\"type\", [readComparisonPredicateSchema, readCompoundPredicateSchema]),\n);\n\nexport const readOrderBySchema = z.object({\n field: z.string().min(1),\n direction: z.enum([\"asc\", \"desc\"]).default(\"asc\"),\n});\n\nexport const readCursorSchema = z.object({\n whereCurrent: readPredicateSchema,\n whereFrom: readPredicateSchema,\n lastKey: z.union([z.string(), z.number()]).optional(),\n});\n\nexport const readQuerySchema = z.object({\n collection: z.string(),\n filters: z.array(readFilterSchema).optional(),\n predicate: readPredicateSchema.optional(),\n orderBy: z.array(readOrderBySchema).optional(),\n cursor: readCursorSchema.optional(),\n limit: z.number().int().positive().max(1000).optional(),\n offset: z.number().int().nonnegative().optional(),\n});\n\nexport const readResultSchema = z.object({\n rows: z.array(z.unknown()),\n});\n\nexport const pushResultSchema = z.object({\n accepted: z.number().int().nonnegative(),\n watermark: z.number().int().nonnegative(),\n});\n\nexport const syncChangesQuerySchema = z.object({\n collections: z.record(z.string(), z.number().int().nonnegative()),\n limit: z.number().int().positive().max(1000).optional(),\n});\n\nconst syncChangesPageResultSchema = z.object({\n type: z.literal(\"changes\"),\n updates: z.array(sequencedUpdateSchema),\n watermark: z.number().int().nonnegative(),\n hasMore: z.boolean(),\n cursors: z.record(z.string(), z.number().int().nonnegative()).optional(),\n});\n\nconst syncChangesResyncRequiredResultSchema = z.object({\n type: z.literal(\"resyncRequired\"),\n collections: z.array(z.string()),\n watermark: z.number().int().nonnegative(),\n});\n\nexport const syncChangesResultSchema = z.discriminatedUnion(\"type\", [\n syncChangesPageResultSchema,\n syncChangesResyncRequiredResultSchema,\n]);\n\nexport const apiCallSchema = z.object({\n path: z.string().min(1),\n input: z.unknown().optional(),\n});\n\nexport const collectionSubscriptionSchema = z.object({\n collection: z.string().min(1),\n});\n\nexport const collectionSubscriptionResultSchema = z.object({\n collection: z.string(),\n subscriptions: z.array(z.string()),\n});\n\nexport const collectionInvalidationSchema = z.object({\n collection: z.string(),\n});\n\nexport const broadcastSchema = z.object({\n type: z.literal(\"updates\"),\n shardId: z.string(),\n updates: z.array(sequencedUpdateSchema),\n watermark: z.number().int().nonnegative(),\n invalidations: z.array(collectionInvalidationSchema).optional(),\n});\n\nexport const webSocketAttachmentSchema = z.object({\n clientId: z.string(),\n connectedAt: z.number(),\n auth: z.record(z.string(), z.unknown()).optional(),\n subscriptions: z.array(z.string()).default([]),\n});\n\nexport type OperationType = z.infer<typeof operationTypeSchema>;\nexport type Update = z.infer<typeof updateSchema>;\nexport type SequencedUpdate = z.infer<typeof sequencedUpdateSchema>;\nexport type Batch = z.infer<typeof batchSchema>;\nexport type ReadFilterOperator = z.infer<typeof readFilterOperatorSchema>;\nexport type ReadFilter = z.output<typeof readFilterSchema>;\nexport type ReadFilterInput = z.input<typeof readFilterSchema>;\nexport type ReadCursor = z.output<typeof readCursorSchema>;\nexport type ReadCursorInput = z.input<typeof readCursorSchema>;\nexport type ReadOrderBy = z.output<typeof readOrderBySchema>;\nexport type ReadOrderByInput = z.input<typeof readOrderBySchema>;\nexport type ApiCall = z.output<typeof apiCallSchema>;\nexport type ApiCallInput = z.input<typeof apiCallSchema>;\nexport type CollectionSubscription = z.output<typeof collectionSubscriptionSchema>;\nexport type CollectionSubscriptionInput = z.input<typeof collectionSubscriptionSchema>;\nexport type CollectionSubscriptionResult = z.output<typeof collectionSubscriptionResultSchema>;\nexport type CollectionInvalidation = z.output<typeof collectionInvalidationSchema>;\n\nexport interface ApiRoute<TInput = unknown, TOutput = unknown> {\n input: TInput;\n output: TOutput;\n}\n\nexport type ApiContract = Record<string, ApiRoute>;\nexport type ApiPath<TApi extends ApiContract> = Extract<keyof TApi, string>;\nexport type ApiInput<TApi extends ApiContract, TPath extends ApiPath<TApi>> = TApi[TPath][\"input\"];\nexport type ApiOutput<\n TApi extends ApiContract,\n TPath extends ApiPath<TApi>,\n> = TApi[TPath][\"output\"];\nexport type ApiCallArgs<TApi extends ApiContract, TPath extends ApiPath<TApi>> =\n undefined extends ApiInput<TApi, TPath>\n ? [input?: ApiInput<TApi, TPath>]\n : [input: ApiInput<TApi, TPath>];\n\nexport interface ReadQuery {\n collection: string;\n filters?: Array<ReadFilter>;\n predicate?: ReadPredicate;\n orderBy?: Array<ReadOrderBy>;\n cursor?: ReadCursor;\n limit?: number;\n offset?: number;\n}\nexport interface ReadQueryInput {\n collection: string;\n filters?: Array<ReadFilterInput>;\n predicate?: ReadPredicate;\n orderBy?: Array<ReadOrderByInput>;\n cursor?: ReadCursorInput;\n limit?: number;\n offset?: number;\n}\nexport type PushResult = z.infer<typeof pushResultSchema>;\nexport type SyncChangesQuery = z.output<typeof syncChangesQuerySchema>;\nexport type SyncChangesQueryInput = z.input<typeof syncChangesQuerySchema>;\nexport type SyncChangesResult = z.infer<typeof syncChangesResultSchema>;\nexport type Broadcast = z.infer<typeof broadcastSchema>;\nexport type WebSocketAttachment = z.infer<typeof webSocketAttachmentSchema>;\n\nexport interface ReadResult<T = unknown> {\n rows: Array<T>;\n}\n","import type { ReadFilterOperator, ReadPredicate } from \"./api\";\n\nexport type ReadExpression =\n | FuncExpression\n | RefExpression\n | ValExpression\n | { expression: ReadExpression };\ntype ReadExpressionNode = FuncExpression | RefExpression | ValExpression;\n\nexport interface FuncExpression {\n type: \"func\";\n name: string;\n args: Array<unknown>;\n}\n\nexport interface RefExpression {\n type: \"ref\";\n source?: \"row\" | \"reference\";\n name?: string;\n path: Array<string | number>;\n}\n\nexport interface ValExpression {\n type: \"val\";\n value: unknown;\n}\n\nexport type ReadExpressionInput = ReadExpression;\nexport type ReadExpressionField = RefExpression & Record<string, any>;\nexport type ReadExpressionRow<T extends object = Record<string, unknown>> = {\n readonly [K in keyof T]: ReadExpressionField;\n};\n\nexport function readExpressionRow<\n T extends object = Record<string, unknown>,\n>(): ReadExpressionRow<T> {\n return refProxy([], \"row\") as ReadExpressionRow<T>;\n}\n\nexport function readExpressionReferences<\n TReferences extends Record<string, object> = Record<string, Record<string, unknown>>,\n>(\n names: Array<keyof TReferences & string>,\n): {\n readonly [K in keyof TReferences]: ReadExpressionRow<TReferences[K]>;\n} {\n return Object.fromEntries(\n names.map((name) => [name, refProxy([], \"reference\", name)]),\n ) as unknown as {\n readonly [K in keyof TReferences]: ReadExpressionRow<TReferences[K]>;\n };\n}\n\nexport function field(path: string | Array<string | number>): RefExpression {\n return {\n type: \"ref\",\n source: \"row\",\n path: Array.isArray(path) ? path : path.split(\".\"),\n };\n}\n\nexport function val(value: unknown): ValExpression {\n return { type: \"val\", value };\n}\n\nexport function eq(left: unknown, right: unknown): FuncExpression {\n return func(\"eq\", left, right);\n}\n\nexport function ne(left: unknown, right: unknown): FuncExpression {\n return func(\"not_eq\", left, right);\n}\n\nexport function gt(left: unknown, right: unknown): FuncExpression {\n return func(\"gt\", left, right);\n}\n\nexport function gte(left: unknown, right: unknown): FuncExpression {\n return func(\"gte\", left, right);\n}\n\nexport function lt(left: unknown, right: unknown): FuncExpression {\n return func(\"lt\", left, right);\n}\n\nexport function lte(left: unknown, right: unknown): FuncExpression {\n return func(\"lte\", left, right);\n}\n\nexport function inArray(left: unknown, values: unknown): FuncExpression {\n return func(\"in\", left, values);\n}\n\nexport function and(...expressions: Array<unknown>): FuncExpression {\n return func(\"and\", ...expressions);\n}\n\nexport function or(...expressions: Array<unknown>): FuncExpression {\n return func(\"or\", ...expressions);\n}\n\nexport function not(expression: unknown): FuncExpression {\n return func(\"not\", expression);\n}\n\nexport function compileReadExpression(expression: unknown): ReadPredicate {\n const unwrapped = unwrapExpression(expression);\n\n if (!isFuncExpression(unwrapped)) {\n throw new Error(\"Read access expressions must be function expressions\");\n }\n\n if (unwrapped.name === \"and\" || unwrapped.name === \"or\") {\n return {\n type: unwrapped.name,\n predicates: unwrapped.args.map(compileReadExpression),\n };\n }\n\n if (unwrapped.name === \"not\") {\n return negatePredicate(compileReadExpression(unwrapped.args[0]));\n }\n\n const comparison = comparisonFromExpression(unwrapped);\n if (!comparison) {\n throw new Error(`Unsupported read access operator: ${unwrapped.name}`);\n }\n\n return {\n type: \"comparison\",\n ...comparison,\n };\n}\n\nfunction func(name: string, ...args: Array<unknown>): FuncExpression {\n return {\n type: \"func\",\n name,\n args: args.map(toExpressionArg),\n };\n}\n\nfunction toExpressionArg(value: unknown): unknown {\n return isReadExpressionInput(value) ? value : val(value);\n}\n\nfunction comparisonFromExpression(\n expression: FuncExpression,\n): Omit<Extract<ReadPredicate, { type: \"comparison\" }>, \"type\"> | undefined {\n const op = toReadFilterOperator(expression.name);\n const [left, right] = expression.args;\n const leftExpression = unwrapExpression(left);\n const rightExpression = unwrapExpression(right);\n if (!op || !isRefExpression(leftExpression) || !isValExpression(rightExpression)) {\n return undefined;\n }\n\n return {\n field: rowField(leftExpression),\n op,\n value: rightExpression.value,\n };\n}\n\nfunction rowField(expression: RefExpression): string {\n if (expression.source && expression.source !== \"row\") {\n throw new Error(\"Read access expressions must reduce reference refs before compilation\");\n }\n\n return expression.path.join(\".\");\n}\n\nfunction toReadFilterOperator(operator: string): ReadFilterOperator | undefined {\n switch (operator) {\n case \"eq\":\n case \"gt\":\n case \"gte\":\n case \"lt\":\n case \"lte\":\n case \"in\":\n return operator;\n case \"not_eq\":\n return \"ne\";\n default:\n return undefined;\n }\n}\n\nfunction negatePredicate(predicate: ReadPredicate): ReadPredicate {\n if (predicate.type === \"and\" || predicate.type === \"or\") {\n return {\n type: predicate.type === \"and\" ? \"or\" : \"and\",\n predicates: predicate.predicates.map(negatePredicate),\n };\n }\n\n const comparison = predicate as Extract<ReadPredicate, { type: \"comparison\" }>;\n return {\n ...comparison,\n op: negateOperator(comparison.op),\n };\n}\n\nfunction negateOperator(operator: ReadFilterOperator): ReadFilterOperator {\n switch (operator) {\n case \"eq\":\n return \"ne\";\n case \"ne\":\n return \"eq\";\n case \"gt\":\n return \"lte\";\n case \"gte\":\n return \"lt\";\n case \"lt\":\n return \"gte\";\n case \"lte\":\n return \"gt\";\n case \"in\":\n throw new Error(\"Unsupported read access operator: not(in)\");\n }\n}\n\nfunction refProxy(\n path: Array<string | number>,\n source: RefExpression[\"source\"],\n name?: string,\n): ReadExpressionField {\n return new Proxy({ type: \"ref\", source, ...(name ? { name } : {}), path } as RefExpression, {\n get(target, property) {\n if (property in target) {\n return target[property as keyof RefExpression];\n }\n\n if (typeof property === \"symbol\") {\n return undefined;\n }\n\n return refProxy([...path, property], source, name);\n },\n }) as ReadExpressionField;\n}\n\nfunction unwrapExpression(value: unknown): unknown {\n if (\n typeof value === \"object\" &&\n value !== null &&\n \"expression\" in value &&\n isExpressionLike((value as { expression: unknown }).expression)\n ) {\n return (value as { expression: unknown }).expression;\n }\n\n return value;\n}\n\nfunction isReadExpressionInput(value: unknown): value is ReadExpression {\n return (\n isExpressionLike(value) ||\n (typeof value === \"object\" &&\n value !== null &&\n \"expression\" in value &&\n isReadExpressionInput((value as { expression: unknown }).expression))\n );\n}\n\nfunction isExpressionLike(value: unknown): value is ReadExpressionNode {\n return typeof value === \"object\" && value !== null && \"type\" in value;\n}\n\nfunction isFuncExpression(value: unknown): value is FuncExpression {\n return (\n isExpressionLike(value) &&\n value.type === \"func\" &&\n typeof value.name === \"string\" &&\n Array.isArray(value.args)\n );\n}\n\nfunction isRefExpression(value: unknown): value is RefExpression {\n return isExpressionLike(value) && value.type === \"ref\" && Array.isArray(value.path);\n}\n\nfunction isValExpression(value: unknown): value is ValExpression {\n return isExpressionLike(value) && value.type === \"val\";\n}\n","import type { ReadPredicate } from \"./api\";\n\nexport function matchesReadPredicate(row: unknown, predicate: ReadPredicate | undefined): boolean {\n if (!predicate) {\n return true;\n }\n\n if (predicate.type === \"comparison\") {\n return matchesComparison(row, predicate);\n }\n\n if (predicate.type === \"and\") {\n return predicate.predicates.every((child) => matchesReadPredicate(row, child));\n }\n\n return predicate.predicates.some((child) => matchesReadPredicate(row, child));\n}\n\nfunction matchesComparison(\n row: unknown,\n predicate: Extract<ReadPredicate, { type: \"comparison\" }>,\n): boolean {\n const value = valueAtPath(row, predicate.field);\n\n switch (predicate.op) {\n case \"eq\":\n return value === predicate.value;\n case \"ne\":\n return value !== predicate.value;\n case \"gt\":\n return compareValues(value, predicate.value, (left, right) => left > right);\n case \"gte\":\n return compareValues(value, predicate.value, (left, right) => left >= right);\n case \"lt\":\n return compareValues(value, predicate.value, (left, right) => left < right);\n case \"lte\":\n return compareValues(value, predicate.value, (left, right) => left <= right);\n case \"in\":\n return Array.isArray(predicate.value) && predicate.value.includes(value);\n }\n}\n\nfunction compareValues(\n left: unknown,\n right: unknown,\n compare: (left: number | string, right: number | string) => boolean,\n): boolean {\n if (typeof left === \"number\" && typeof right === \"number\") {\n return compare(left, right);\n }\n\n if (typeof left === \"string\" && typeof right === \"string\") {\n return compare(left, right);\n }\n\n return false;\n}\n\nfunction valueAtPath(row: unknown, fieldName: string): unknown {\n return fieldName.split(\".\").reduce<unknown>((value, segment) => {\n if (typeof value !== \"object\" || value === null) {\n return undefined;\n }\n\n return (value as Record<string, unknown>)[segment];\n }, row);\n}\n","import { decode, encode } from \"@msgpack/msgpack\";\nimport { z } from \"zod\";\nimport {\n apiCallSchema,\n batchSchema,\n broadcastSchema,\n collectionSubscriptionSchema,\n readQuerySchema,\n syncChangesQuerySchema,\n} from \"./api\";\n\nexport const protocolVersion = 1 as const;\nexport const protocolVersionSchema = z.literal(protocolVersion);\nexport const requestIdSchema = z.union([z.string(), z.number()]);\nexport const nullableRequestIdSchema = requestIdSchema.nullable();\n\nexport const protocolErrorCodeSchema = z.enum([\n \"AUTH_DENIED\",\n \"VALIDATION_FAILED\",\n \"CONFLICT\",\n \"RESYNC_REQUIRED\",\n \"RATE_LIMITED\",\n \"NOT_FOUND\",\n \"UNSUPPORTED_OPERATION\",\n \"PROTOCOL_ERROR\",\n \"INTERNAL_ERROR\",\n]);\n\nexport const protocolErrorSchema = z.object({\n code: protocolErrorCodeSchema,\n message: z.string(),\n details: z.unknown().optional(),\n});\n\nconst readRequestSchema = z.object({\n version: protocolVersionSchema,\n id: requestIdSchema,\n type: z.literal(\"read\"),\n input: readQuerySchema,\n});\n\nconst pushRequestSchema = z.object({\n version: protocolVersionSchema,\n id: requestIdSchema,\n type: z.literal(\"push\"),\n input: batchSchema,\n});\n\nconst changesRequestSchema = z.object({\n version: protocolVersionSchema,\n id: requestIdSchema,\n type: z.literal(\"changes\"),\n input: syncChangesQuerySchema,\n});\n\nconst apiRequestSchema = z.object({\n version: protocolVersionSchema,\n id: requestIdSchema,\n type: z.literal(\"api\"),\n input: apiCallSchema,\n});\n\nconst subscriptionRequestSchema = z.object({\n version: protocolVersionSchema,\n id: requestIdSchema,\n type: z.enum([\"subscribe\", \"unsubscribe\"]),\n input: collectionSubscriptionSchema,\n});\n\nexport const clientMessageSchema = z.discriminatedUnion(\"type\", [\n readRequestSchema,\n pushRequestSchema,\n changesRequestSchema,\n apiRequestSchema,\n subscriptionRequestSchema,\n]);\n\nconst resultMessageSchema = z.object({\n version: protocolVersionSchema,\n id: nullableRequestIdSchema,\n type: z.literal(\"result\"),\n payload: z.unknown(),\n});\n\nconst errorMessageSchema = z.object({\n version: protocolVersionSchema,\n id: nullableRequestIdSchema,\n type: z.literal(\"error\"),\n error: protocolErrorSchema,\n});\n\nconst updatesMessageSchema = z.object({\n version: protocolVersionSchema,\n type: z.literal(\"updates\"),\n payload: broadcastSchema,\n});\n\nexport const serverMessageSchema = z.discriminatedUnion(\"type\", [\n resultMessageSchema,\n errorMessageSchema,\n updatesMessageSchema,\n]);\n\nexport type RequestId = z.infer<typeof requestIdSchema>;\nexport type ProtocolErrorCode = z.infer<typeof protocolErrorCodeSchema>;\nexport type ProtocolErrorPayload = z.output<typeof protocolErrorSchema>;\nexport type ClientMessage = z.input<typeof clientMessageSchema>;\nexport type ParsedClientMessage = z.output<typeof clientMessageSchema>;\nexport type ResultMessage = z.output<typeof resultMessageSchema>;\nexport type ErrorMessage = z.output<typeof errorMessageSchema>;\nexport type UpdatesMessage = z.output<typeof updatesMessageSchema>;\nexport type ServerMessage = z.output<typeof serverMessageSchema>;\n\nexport class ProtocolError extends Error {\n readonly code: ProtocolErrorCode;\n readonly details: unknown;\n\n constructor(error: ProtocolErrorPayload) {\n super(error.message);\n this.name = \"ProtocolError\";\n this.code = error.code;\n this.details = error.details;\n }\n}\n\nexport type TransportPayload = ArrayBuffer | ArrayBufferView | string;\n\nexport interface TransportSocket {\n send(data: ArrayBuffer): void;\n}\n\nexport function parseClientMessage(data: TransportPayload): ParsedClientMessage {\n return clientMessageSchema.parse(decodeMessage(data));\n}\n\nexport function parseServerMessage(data: TransportPayload): ServerMessage {\n return serverMessageSchema.parse(decodeMessage(data));\n}\n\nexport function readMessageId(data: TransportPayload): RequestId | null {\n try {\n const message = z\n .object({ id: nullableRequestIdSchema.optional() })\n .safeParse(decodeMessage(data));\n return message.success && message.data.id !== undefined ? message.data.id : null;\n } catch {\n return null;\n }\n}\n\nexport function encodeClientMessage(message: ClientMessage): ArrayBuffer {\n return encodeMessage(message);\n}\n\nexport function encodeServerMessage(message: ServerMessage): ArrayBuffer {\n return encodeMessage(message);\n}\n\nexport function sendClientMessage(socket: TransportSocket, message: ClientMessage): void {\n socket.send(encodeClientMessage(message));\n}\n\nexport function sendServerMessage(socket: TransportSocket, message: ServerMessage): void {\n socket.send(encodeServerMessage(message));\n}\n\nfunction decodeMessage(data: TransportPayload): unknown {\n if (typeof data === \"string\") {\n return decode(new TextEncoder().encode(data));\n }\n\n return decode(data);\n}\n\nfunction encodeMessage(message: unknown): ArrayBuffer {\n const bytes = encode(message);\n const buffer = new ArrayBuffer(bytes.byteLength);\n new Uint8Array(buffer).set(bytes);\n return buffer;\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lsync/transport",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "homepage": "https://github.com/Myrannas/lsync#readme",
5
5
  "bugs": {
6
6
  "url": "https://github.com/Myrannas/lsync/issues"