@livestore/sync-cf 0.4.0 → 0.5.0-dev.1

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.
Files changed (134) hide show
  1. package/README.md +5 -5
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/cf-worker/do/durable-object.d.ts.map +1 -1
  4. package/dist/cf-worker/do/durable-object.js +53 -36
  5. package/dist/cf-worker/do/durable-object.js.map +1 -1
  6. package/dist/cf-worker/do/layer.d.ts +22 -18
  7. package/dist/cf-worker/do/layer.d.ts.map +1 -1
  8. package/dist/cf-worker/do/layer.js +45 -35
  9. package/dist/cf-worker/do/layer.js.map +1 -1
  10. package/dist/cf-worker/do/observability.d.ts +23 -0
  11. package/dist/cf-worker/do/observability.d.ts.map +1 -0
  12. package/dist/cf-worker/do/observability.js +52 -0
  13. package/dist/cf-worker/do/observability.js.map +1 -0
  14. package/dist/cf-worker/do/observability.test.d.ts +2 -0
  15. package/dist/cf-worker/do/observability.test.d.ts.map +1 -0
  16. package/dist/cf-worker/do/observability.test.js +204 -0
  17. package/dist/cf-worker/do/observability.test.js.map +1 -0
  18. package/dist/cf-worker/do/pull.d.ts +3 -3
  19. package/dist/cf-worker/do/pull.d.ts.map +1 -1
  20. package/dist/cf-worker/do/pull.js +19 -20
  21. package/dist/cf-worker/do/pull.js.map +1 -1
  22. package/dist/cf-worker/do/push.d.ts +16 -3
  23. package/dist/cf-worker/do/push.d.ts.map +1 -1
  24. package/dist/cf-worker/do/push.js +74 -53
  25. package/dist/cf-worker/do/push.js.map +1 -1
  26. package/dist/cf-worker/do/push.test.d.ts +2 -0
  27. package/dist/cf-worker/do/push.test.d.ts.map +1 -0
  28. package/dist/cf-worker/do/push.test.js +30 -0
  29. package/dist/cf-worker/do/push.test.js.map +1 -0
  30. package/dist/cf-worker/do/sqlite.d.ts +34 -46
  31. package/dist/cf-worker/do/sqlite.d.ts.map +1 -1
  32. package/dist/cf-worker/do/sqlite.js +2 -2
  33. package/dist/cf-worker/do/sqlite.js.map +1 -1
  34. package/dist/cf-worker/do/sync-storage.d.ts +7 -6
  35. package/dist/cf-worker/do/sync-storage.d.ts.map +1 -1
  36. package/dist/cf-worker/do/sync-storage.js +29 -17
  37. package/dist/cf-worker/do/sync-storage.js.map +1 -1
  38. package/dist/cf-worker/do/transport/do-rpc-server.d.ts +17 -2
  39. package/dist/cf-worker/do/transport/do-rpc-server.d.ts.map +1 -1
  40. package/dist/cf-worker/do/transport/do-rpc-server.js +41 -23
  41. package/dist/cf-worker/do/transport/do-rpc-server.js.map +1 -1
  42. package/dist/cf-worker/do/transport/do-rpc-server.test.d.ts +2 -0
  43. package/dist/cf-worker/do/transport/do-rpc-server.test.d.ts.map +1 -0
  44. package/dist/cf-worker/do/transport/do-rpc-server.test.js +28 -0
  45. package/dist/cf-worker/do/transport/do-rpc-server.test.js.map +1 -0
  46. package/dist/cf-worker/do/transport/http-rpc-server.d.ts +2 -2
  47. package/dist/cf-worker/do/transport/http-rpc-server.d.ts.map +1 -1
  48. package/dist/cf-worker/do/transport/http-rpc-server.js +12 -12
  49. package/dist/cf-worker/do/transport/http-rpc-server.js.map +1 -1
  50. package/dist/cf-worker/do/transport/ws-rpc-server.d.ts +9 -2
  51. package/dist/cf-worker/do/transport/ws-rpc-server.d.ts.map +1 -1
  52. package/dist/cf-worker/do/transport/ws-rpc-server.js +37 -29
  53. package/dist/cf-worker/do/transport/ws-rpc-server.js.map +1 -1
  54. package/dist/cf-worker/mod.js +3 -3
  55. package/dist/cf-worker/shared.d.ts +37 -29
  56. package/dist/cf-worker/shared.d.ts.map +1 -1
  57. package/dist/cf-worker/shared.js +14 -12
  58. package/dist/cf-worker/shared.js.map +1 -1
  59. package/dist/cf-worker/worker.d.ts +9 -9
  60. package/dist/cf-worker/worker.d.ts.map +1 -1
  61. package/dist/cf-worker/worker.js +17 -15
  62. package/dist/cf-worker/worker.js.map +1 -1
  63. package/dist/client/mod.js +3 -3
  64. package/dist/client/transport/do-rpc-client.d.ts +18 -6
  65. package/dist/client/transport/do-rpc-client.d.ts.map +1 -1
  66. package/dist/client/transport/do-rpc-client.js +112 -38
  67. package/dist/client/transport/do-rpc-client.js.map +1 -1
  68. package/dist/client/transport/do-rpc-client.test.d.ts +2 -0
  69. package/dist/client/transport/do-rpc-client.test.d.ts.map +1 -0
  70. package/dist/client/transport/do-rpc-client.test.js +268 -0
  71. package/dist/client/transport/do-rpc-client.test.js.map +1 -0
  72. package/dist/client/transport/http-rpc-client.d.ts +3 -3
  73. package/dist/client/transport/http-rpc-client.d.ts.map +1 -1
  74. package/dist/client/transport/http-rpc-client.js +48 -29
  75. package/dist/client/transport/http-rpc-client.js.map +1 -1
  76. package/dist/client/transport/rpc-client-error.d.ts +5 -0
  77. package/dist/client/transport/rpc-client-error.d.ts.map +1 -0
  78. package/dist/client/transport/rpc-client-error.js +8 -0
  79. package/dist/client/transport/rpc-client-error.js.map +1 -0
  80. package/dist/client/transport/rpc-client-error.test.d.ts +2 -0
  81. package/dist/client/transport/rpc-client-error.test.d.ts.map +1 -0
  82. package/dist/client/transport/rpc-client-error.test.js +33 -0
  83. package/dist/client/transport/rpc-client-error.test.js.map +1 -0
  84. package/dist/client/transport/ws-rpc-client.d.ts +3 -3
  85. package/dist/client/transport/ws-rpc-client.d.ts.map +1 -1
  86. package/dist/client/transport/ws-rpc-client.js +33 -23
  87. package/dist/client/transport/ws-rpc-client.js.map +1 -1
  88. package/dist/common/do-rpc-schema.d.ts +53 -41
  89. package/dist/common/do-rpc-schema.d.ts.map +1 -1
  90. package/dist/common/do-rpc-schema.js +13 -4
  91. package/dist/common/do-rpc-schema.js.map +1 -1
  92. package/dist/common/http-rpc-schema.d.ts +38 -39
  93. package/dist/common/http-rpc-schema.d.ts.map +1 -1
  94. package/dist/common/http-rpc-schema.js +6 -6
  95. package/dist/common/http-rpc-schema.js.map +1 -1
  96. package/dist/common/mod.d.ts +5 -5
  97. package/dist/common/mod.d.ts.map +1 -1
  98. package/dist/common/mod.js +7 -7
  99. package/dist/common/mod.js.map +1 -1
  100. package/dist/common/sync-message-types.d.ts +116 -133
  101. package/dist/common/sync-message-types.d.ts.map +1 -1
  102. package/dist/common/sync-message-types.js +26 -14
  103. package/dist/common/sync-message-types.js.map +1 -1
  104. package/dist/common/ws-rpc-schema.d.ts +33 -34
  105. package/dist/common/ws-rpc-schema.d.ts.map +1 -1
  106. package/dist/common/ws-rpc-schema.js +5 -5
  107. package/dist/common/ws-rpc-schema.js.map +1 -1
  108. package/package.json +42 -58
  109. package/src/cf-worker/do/durable-object.ts +70 -64
  110. package/src/cf-worker/do/layer.ts +142 -99
  111. package/src/cf-worker/do/observability.test.ts +337 -0
  112. package/src/cf-worker/do/observability.ts +121 -0
  113. package/src/cf-worker/do/pull.ts +28 -28
  114. package/src/cf-worker/do/push.test.ts +40 -0
  115. package/src/cf-worker/do/push.ts +139 -115
  116. package/src/cf-worker/do/sqlite.ts +1 -1
  117. package/src/cf-worker/do/sync-storage.ts +34 -21
  118. package/src/cf-worker/do/transport/do-rpc-server.test.ts +32 -0
  119. package/src/cf-worker/do/transport/do-rpc-server.ts +46 -35
  120. package/src/cf-worker/do/transport/http-rpc-server.ts +7 -10
  121. package/src/cf-worker/do/transport/ws-rpc-server.ts +52 -28
  122. package/src/cf-worker/shared.ts +29 -17
  123. package/src/cf-worker/worker.ts +21 -22
  124. package/src/client/transport/do-rpc-client.test.ts +411 -0
  125. package/src/client/transport/do-rpc-client.ts +175 -51
  126. package/src/client/transport/http-rpc-client.ts +66 -45
  127. package/src/client/transport/rpc-client-error.test.ts +41 -0
  128. package/src/client/transport/rpc-client-error.ts +9 -0
  129. package/src/client/transport/ws-rpc-client.ts +40 -32
  130. package/src/common/do-rpc-schema.ts +13 -3
  131. package/src/common/http-rpc-schema.ts +5 -5
  132. package/src/common/mod.ts +4 -4
  133. package/src/common/sync-message-types.ts +16 -16
  134. package/src/common/ws-rpc-schema.ts +4 -4
@@ -1,10 +1,10 @@
1
- import { IsOfflineError, SyncBackend, UnknownError } from '@livestore/common';
2
- import { splitChunkBySize } from '@livestore/common/sync';
3
- import { omit } from '@livestore/utils';
4
- import { Chunk, Effect, Layer, Option, RpcClient, RpcSerialization, Schedule, Schema, Socket, Stream, SubscriptionRef, UrlParams, } from '@livestore/utils/effect';
5
- import { MAX_PUSH_EVENTS_PER_REQUEST, MAX_WS_MESSAGE_BYTES } from "../../common/constants.js";
6
- import { SearchParamsSchema } from "../../common/mod.js";
7
- import { SyncWsRpc } from "../../common/ws-rpc-schema.js";
1
+ import { SyncBackend, UnknownError } from '@livestore/common';
2
+ import { splitArrayBySize } from '@livestore/common/sync';
3
+ import { Duration, Effect, Layer, Option, ReadonlyArray as EffectArray, RpcClient, RpcSerialization, Schedule, Schema, Socket, Stream, Struct, SubscriptionRef, UrlParams, } from '@livestore/utils/effect';
4
+ import { MAX_PUSH_EVENTS_PER_REQUEST, MAX_WS_MESSAGE_BYTES } from '../../common/constants.js';
5
+ import { SearchParamsSchema } from '../../common/mod.js';
6
+ import { SyncWsRpc } from '../../common/ws-rpc-schema.js';
7
+ import { mapRpcClientError } from './rpc-client-error.js';
8
8
  /**
9
9
  * Creates a sync backend that uses WebSocket to communicate with the sync backend.
10
10
  *
@@ -15,7 +15,7 @@ import { SyncWsRpc } from "../../common/ws-rpc-schema.js";
15
15
  * const syncBackend = makeWsSync({ url: 'wss://sync.example.com' })
16
16
  */
17
17
  export const makeWsSync = (options) => ({ storeId, payload }) => Effect.gen(function* () {
18
- const urlParamsData = yield* Schema.encode(SearchParamsSchema)({
18
+ const urlParamsData = yield* Schema.encodeEffect(SearchParamsSchema)({
19
19
  storeId,
20
20
  payload,
21
21
  transport: 'ws',
@@ -31,13 +31,13 @@ export const makeWsSync = (options) => ({ storeId, payload }) => Effect.gen(func
31
31
  // }
32
32
  // TODO bring this back in a cross-platform way
33
33
  // if (navigator.onLine === false) {
34
- // yield* Effect.async((cb) => self.addEventListener('online', () => cb(Effect.void)))
34
+ // yield* Effect.callback((cb) => self.addEventListener('online', () => cb(Effect.void)))
35
35
  // }
36
36
  const pingInterval = options.ping?.requestInterval ?? 10_000;
37
37
  const ProtocolLive = RpcClient.layerProtocolSocketWithIsConnected({
38
38
  isConnected,
39
- retryTransientErrors: Schedule.exponential('1 seconds').pipe(Schedule.union(Schedule.fixed('30 seconds')), Schedule.jittered),
40
- pingSchedule: Schedule.once.pipe(Schedule.andThen(Schedule.fixed(pingInterval))),
39
+ retryTransientErrors: Schedule.exponential('1 seconds').pipe(Schedule.modifyDelay(({ duration }) => Effect.succeed(Duration.min(duration, Duration.seconds(30)))), Schedule.jittered),
40
+ pingSchedule: Schedule.recurs(1).pipe(Schedule.concat(Schedule.fixed(pingInterval))),
41
41
  url: wsUrl,
42
42
  }).pipe(Layer.provide(Socket.layerWebSocket(wsUrl)), Layer.provide(Socket.layerWebSocketConstructorGlobal), Layer.provide(RpcSerialization.layerJson));
43
43
  // Warning: we need to build the layer here eagerly to tie it to the scope
@@ -49,12 +49,15 @@ export const makeWsSync = (options) => ({ storeId, payload }) => Effect.gen(func
49
49
  const pinger = yield* RpcClient.SocketPinger.pipe(Effect.provide(ctx));
50
50
  yield* pinger.ping;
51
51
  yield* SubscriptionRef.set(isConnected, true);
52
- }).pipe(Effect.timeout(pingTimeout), Effect.catchTag('TimeoutException', () => SubscriptionRef.set(isConnected, false)), UnknownError.mapToUnknownError, Effect.withSpan('ping'));
52
+ }).pipe(Effect.timeoutOrElse({
53
+ duration: pingTimeout,
54
+ orElse: () => SubscriptionRef.set(isConnected, false),
55
+ }), UnknownError.mapToUnknownError, Effect.withSpan('ping'));
53
56
  const backendIdHelper = yield* SyncBackend.makeBackendIdHelper;
54
57
  return SyncBackend.of({
55
58
  isConnected,
56
59
  connect: ping,
57
- pull: (cursor, options) => rpcClient.SyncWsRpc.Pull({
60
+ pull: (cursor, options) => rpcClient['SyncWsRpc.Pull']({
58
61
  storeId,
59
62
  payload,
60
63
  cursor: cursor.pipe(Option.map((a) => ({
@@ -62,8 +65,8 @@ export const makeWsSync = (options) => ({ storeId, payload }) => Effect.gen(func
62
65
  backendId: backendIdHelper.get().pipe(Option.getOrThrow),
63
66
  }))),
64
67
  live: options?.live === true,
65
- }).pipe(Stream.tap((res) => backendIdHelper.lazySet(res.backendId)), Stream.map((res) => omit(res, ['backendId'])), Stream.mapError((cause) => cause._tag === 'RpcClientError' && Socket.isSocketError(cause.cause) === true
66
- ? new IsOfflineError({ cause: cause.cause })
68
+ }).pipe(Stream.tap((res) => backendIdHelper.lazySet(res.backendId)), Stream.map((res) => Struct.omit(res, ['backendId'])), Stream.mapError((cause) => cause._tag === 'RpcClientError'
69
+ ? mapRpcClientError(cause)
67
70
  : cause._tag === 'UnknownError' || cause._tag === 'BackendIdMismatchError'
68
71
  ? cause
69
72
  : new UnknownError({ cause })), Stream.withSpan('pull')),
@@ -76,20 +79,27 @@ export const makeWsSync = (options) => ({ storeId, payload }) => Effect.gen(func
76
79
  batch,
77
80
  backendId: backendIdHelper.get(),
78
81
  });
79
- const chunksChunk = yield* Chunk.fromIterable(batch).pipe(splitChunkBySize({
82
+ if (EffectArray.isReadonlyArrayNonEmpty(batch) === false) {
83
+ return;
84
+ }
85
+ const batchChunks = yield* splitArrayBySize({
80
86
  maxItems: MAX_PUSH_EVENTS_PER_REQUEST,
81
87
  maxBytes: MAX_WS_MESSAGE_BYTES,
82
88
  encode: encodePayload,
83
- }), Effect.mapError((cause) => new UnknownError({ cause })));
84
- for (const sub of chunksChunk) {
85
- yield* rpcClient.SyncWsRpc.Push({
89
+ })(batch).pipe(Effect.mapError((cause) => new UnknownError({ cause })));
90
+ for (const batchChunk of batchChunks) {
91
+ yield* rpcClient['SyncWsRpc.Push']({
86
92
  storeId,
87
93
  payload,
88
- batch: Chunk.toReadonlyArray(sub),
94
+ batch: batchChunk,
89
95
  backendId: backendIdHelper.get(),
90
- }).pipe(Effect.mapError((cause) => cause._tag === 'UnknownError' || cause._tag === 'ServerAheadError' || cause._tag === 'BackendIdMismatchError'
91
- ? cause
92
- : new UnknownError({ cause })));
96
+ }).pipe(Effect.mapError((cause) => cause._tag === 'RpcClientError'
97
+ ? mapRpcClientError(cause)
98
+ : cause._tag === 'UnknownError' ||
99
+ cause._tag === 'ServerAheadError' ||
100
+ cause._tag === 'BackendIdMismatchError'
101
+ ? cause
102
+ : new UnknownError({ cause })));
93
103
  }
94
104
  }),
95
105
  ping,
@@ -1 +1 @@
1
- {"version":3,"file":"ws-rpc-client.js","sourceRoot":"","sources":["../../../src/client/transport/ws-rpc-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-rpc-client.js","sourceRoot":"","sources":["../../../src/client/transport/ws-rpc-client.ts"],"names":[],"mappings":"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"}
@@ -1,75 +1,87 @@
1
1
  import { BackendIdMismatchError, ServerAheadError, UnknownError } from '@livestore/common';
2
2
  import { Rpc, RpcGroup, Schema } from '@livestore/utils/effect';
3
- declare const SyncDoRpc_base: RpcGroup.RpcGroup<Rpc.Rpc<"SyncDoRpc.Pull", Schema.Struct<{
3
+ declare const SyncDoRpc_base: RpcGroup.RpcGroup<Rpc.Rpc<"SyncDoRpc.Ping", Schema.Struct<{
4
4
  /**
5
5
  * While the storeId is already implied by the Durable Object, we still need the explicit storeId
6
6
  * since a DO doesn't know its own id.name value. 🫠
7
7
  * https://community.cloudflare.com/t/how-can-i-get-the-name-of-a-durable-object-from-itself/505961/8
8
8
  */
9
- storeId: typeof Schema.String;
9
+ storeId: Schema.String;
10
10
  /** Needed for various reasons (e.g. auth) */
11
- payload: Schema.optional<Schema.Schema<Schema.JsonValue, Schema.JsonValue, never>>;
11
+ payload: Schema.optional<Schema.Codec<Schema.Json, Schema.Json, never, never>>;
12
+ }>, Schema.Void, Schema.Never, never, never> | Rpc.Rpc<"SyncDoRpc.Pull", Schema.Struct<{
13
+ /**
14
+ * While the storeId is already implied by the Durable Object, we still need the explicit storeId
15
+ * since a DO doesn't know its own id.name value. 🫠
16
+ * https://community.cloudflare.com/t/how-can-i-get-the-name-of-a-durable-object-from-itself/505961/8
17
+ */
18
+ storeId: Schema.String;
19
+ /** Needed for various reasons (e.g. auth) */
20
+ payload: Schema.optional<Schema.Codec<Schema.Json, Schema.Json, never, never>>;
12
21
  /** Omitting the cursor will start from the beginning */
13
22
  cursor: Schema.Option<Schema.Struct<{
14
- backendId: Schema.SchemaClass<string, string, never>;
15
- eventSequenceNumber: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
23
+ readonly backendId: Schema.String;
24
+ readonly eventSequenceNumber: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
16
25
  }>>;
17
26
  /** Whether to keep the pull stream alive and wait for more events */
18
27
  rpcContext: Schema.optional<Schema.Struct<{
19
- callerContext: Schema.Struct<{
20
- bindingName: typeof Schema.String;
21
- durableObjectId: typeof Schema.String;
28
+ readonly callerContext: Schema.Struct<{
29
+ readonly bindingName: Schema.String;
30
+ readonly durableObjectId: Schema.String;
22
31
  }>;
23
32
  }>>;
24
- }>, import("@effect/rpc/RpcSchema").Stream<Schema.Struct<{
25
- batch: Schema.Array$<Schema.Struct<{
26
- eventEncoded: Schema.Struct<{
27
- name: typeof Schema.String;
28
- args: typeof Schema.Any;
29
- seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
30
- parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
31
- clientId: typeof Schema.String;
32
- sessionId: typeof Schema.String;
33
+ }>, import("effect/rpc/RpcSchema").Stream<Schema.Struct<{
34
+ readonly batch: Schema.$Array<Schema.Struct<{
35
+ readonly eventEncoded: Schema.Struct<{
36
+ readonly name: Schema.String;
37
+ readonly args: Schema.Any;
38
+ readonly seqNum: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
39
+ readonly parentSeqNum: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
40
+ readonly clientId: Schema.String;
41
+ readonly sessionId: Schema.String;
33
42
  }>;
34
- metadata: Schema.Option<Schema.Struct<{
35
- _tag: Schema.tag<"SyncMessage.SyncMetadata">;
36
- } & {
37
- createdAt: typeof Schema.String;
43
+ readonly metadata: Schema.Option<Schema.Struct<{
44
+ readonly _tag: Schema.tag<"SyncMessage.SyncMetadata">;
45
+ readonly createdAt: Schema.String;
38
46
  }>>;
39
47
  }>>;
40
- pageInfo: Schema.Union<[Schema.TaggedStruct<"MoreUnknown", {}>, Schema.TaggedStruct<"MoreKnown", {
41
- remaining: typeof Schema.Number;
48
+ readonly pageInfo: Schema.Union<readonly [Schema.TaggedStruct<"MoreUnknown", {}>, Schema.TaggedStruct<"MoreKnown", {
49
+ readonly remaining: Schema.Finite;
42
50
  }>, Schema.TaggedStruct<"NoMore", {}>]>;
43
- backendId: Schema.SchemaClass<string, string, never>;
44
- rpcRequestId: typeof Schema.String;
45
- }>, Schema.Union<[typeof UnknownError, typeof BackendIdMismatchError]>>, typeof Schema.Never, never> | Rpc.Rpc<"SyncDoRpc.Push", Schema.Struct<{
51
+ readonly backendId: Schema.String;
52
+ readonly rpcRequestId: Schema.String;
53
+ }>, Schema.Union<readonly [typeof UnknownError, typeof BackendIdMismatchError]>>, Schema.Never, never, never> | Rpc.Rpc<"SyncDoRpc.Push", Schema.Struct<{
54
+ batch: Schema.$Array<Schema.Struct<{
55
+ readonly name: Schema.String;
56
+ readonly args: Schema.Any;
57
+ readonly seqNum: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
58
+ readonly parentSeqNum: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
59
+ readonly clientId: Schema.String;
60
+ readonly sessionId: Schema.String;
61
+ }>>;
62
+ backendId: Schema.Option<Schema.String>;
46
63
  /**
47
64
  * While the storeId is already implied by the Durable Object, we still need the explicit storeId
48
65
  * since a DO doesn't know its own id.name value. 🫠
49
66
  * https://community.cloudflare.com/t/how-can-i-get-the-name-of-a-durable-object-from-itself/505961/8
50
67
  */
51
- storeId: typeof Schema.String;
68
+ storeId: Schema.String;
52
69
  /** Needed for various reasons (e.g. auth) */
53
- payload: Schema.optional<Schema.Schema<Schema.JsonValue, Schema.JsonValue, never>>;
54
- batch: Schema.Array$<Schema.Struct<{
55
- name: typeof Schema.String;
56
- args: typeof Schema.Any;
57
- seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
58
- parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
59
- clientId: typeof Schema.String;
60
- sessionId: typeof Schema.String;
61
- }>>;
62
- backendId: Schema.Option<Schema.SchemaClass<string, string, never>>;
63
- }>, Schema.Struct<{}>, Schema.Union<[typeof UnknownError, typeof ServerAheadError, typeof BackendIdMismatchError]>, never> | Rpc.Rpc<"SyncDoRpc.Ping", Schema.Struct<{
70
+ payload: Schema.optional<Schema.Codec<Schema.Json, Schema.Json, never, never>>;
71
+ }>, Schema.Struct<{}>, Schema.Union<readonly [typeof UnknownError, typeof ServerAheadError, typeof BackendIdMismatchError]>, never, never> | Rpc.Rpc<"SyncDoRpc.Unsubscribe", Schema.Struct<{
64
72
  /**
65
73
  * While the storeId is already implied by the Durable Object, we still need the explicit storeId
66
74
  * since a DO doesn't know its own id.name value. 🫠
67
75
  * https://community.cloudflare.com/t/how-can-i-get-the-name-of-a-durable-object-from-itself/505961/8
68
76
  */
69
- storeId: typeof Schema.String;
77
+ storeId: Schema.String;
70
78
  /** Needed for various reasons (e.g. auth) */
71
- payload: Schema.optional<Schema.Schema<Schema.JsonValue, Schema.JsonValue, never>>;
72
- }>, typeof Schema.Void, typeof Schema.Never, never>>;
79
+ payload: Schema.optional<Schema.Codec<Schema.Json, Schema.Json, never, never>>;
80
+ /** Client DO id whose live-pull subscription row to drop. */
81
+ durableObjectId: Schema.String;
82
+ /** Request id of the live pull that registered the row; the row is only dropped if it still matches. */
83
+ requestId: Schema.String;
84
+ }>, Schema.Void, Schema.Never, never, never>>;
73
85
  export declare class SyncDoRpc extends SyncDoRpc_base {
74
86
  }
75
87
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"do-rpc-schema.d.ts","sourceRoot":"","sources":["../../src/common/do-rpc-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC1F,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;;IAK7D;;;;OAIG;;IAEH,6CAA6C;;IAOzC,wDAAwD;;;;;IAGxD,qEAAqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAhBzE;;;;OAIG;;IAEH,6CAA6C;;;;;;;;;;;;IAN7C;;;;OAIG;;IAEH,6CAA6C;;;AAI/C,qBAAa,SAAU,SAAQ,cAsC9B;CAAG"}
1
+ {"version":3,"file":"do-rpc-schema.d.ts","sourceRoot":"","sources":["../../src/common/do-rpc-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC1F,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;;IAK7D;;;;OAIG;;IAEH,6CAA6C;;;IAN7C;;;;OAIG;;IAEH,6CAA6C;;IAOzC,wDAAwD;;;;;IAGxD,qEAAqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAhBzE;;;;OAIG;;IAEH,6CAA6C;;;IAN7C;;;;OAIG;;IAEH,6CAA6C;;IA4CzC,6DAA6D;;IAE7D,wGAAwG;;;AA1C9G,qBAAa,SAAU,SAAQ,cAgD9B;CAAG"}
@@ -1,6 +1,6 @@
1
1
  import { BackendIdMismatchError, ServerAheadError, UnknownError } from '@livestore/common';
2
2
  import { Rpc, RpcGroup, Schema } from '@livestore/utils/effect';
3
- import * as SyncMessage from "./sync-message-types.js";
3
+ import * as SyncMessage from './sync-message-types.js';
4
4
  const commonPayloadFields = {
5
5
  /**
6
6
  * While the storeId is already implied by the Durable Object, we still need the explicit storeId
@@ -9,7 +9,7 @@ const commonPayloadFields = {
9
9
  */
10
10
  storeId: Schema.String,
11
11
  /** Needed for various reasons (e.g. auth) */
12
- payload: Schema.optional(Schema.JsonValue),
12
+ payload: Schema.optional(Schema.Json),
13
13
  };
14
14
  export class SyncDoRpc extends RpcGroup.make(Rpc.make('SyncDoRpc.Pull', {
15
15
  payload: {
@@ -29,7 +29,7 @@ export class SyncDoRpc extends RpcGroup.make(Rpc.make('SyncDoRpc.Pull', {
29
29
  rpcRequestId: Schema.String,
30
30
  ...SyncMessage.PullResponse.fields,
31
31
  }),
32
- error: Schema.Union(UnknownError, BackendIdMismatchError),
32
+ error: Schema.Union([UnknownError, BackendIdMismatchError]),
33
33
  stream: true,
34
34
  }), Rpc.make('SyncDoRpc.Push', {
35
35
  payload: {
@@ -37,12 +37,21 @@ export class SyncDoRpc extends RpcGroup.make(Rpc.make('SyncDoRpc.Pull', {
37
37
  ...commonPayloadFields,
38
38
  },
39
39
  success: SyncMessage.PushAck,
40
- error: Schema.Union(UnknownError, ServerAheadError, BackendIdMismatchError),
40
+ error: Schema.Union([UnknownError, ServerAheadError, BackendIdMismatchError]),
41
41
  }), Rpc.make('SyncDoRpc.Ping', {
42
42
  payload: {
43
43
  ...commonPayloadFields,
44
44
  },
45
45
  success: Schema.Void,
46
+ }), Rpc.make('SyncDoRpc.Unsubscribe', {
47
+ payload: {
48
+ /** Client DO id whose live-pull subscription row to drop. */
49
+ durableObjectId: Schema.String,
50
+ /** Request id of the live pull that registered the row; the row is only dropped if it still matches. */
51
+ requestId: Schema.String,
52
+ ...commonPayloadFields,
53
+ },
54
+ success: Schema.Void,
46
55
  })) {
47
56
  }
48
57
  //# sourceMappingURL=do-rpc-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"do-rpc-schema.js","sourceRoot":"","sources":["../../src/common/do-rpc-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC1F,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE/D,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AAEtD,MAAM,mBAAmB,GAAG;IAC1B;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;CAC3C,CAAA;AAED,MAAM,OAAO,SAAU,SAAQ,QAAQ,CAAC,IAAI,CAC1C,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE;IACzB,OAAO,EAAE;QACP,wDAAwD;QACxD,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM;QAC7C,cAAc;QACd,qEAAqE;QACrE,UAAU,EAAE,MAAM,CAAC,QAAQ,CACzB,MAAM,CAAC,MAAM,CAAC;YACZ,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;gBAC3B,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,eAAe,EAAE,MAAM,CAAC,MAAM;aAC/B,CAAC;SACH,CAAC,CACH;QACD,GAAG,mBAAmB;KACvB;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC,MAAM;QAC3B,GAAG,WAAW,CAAC,YAAY,CAAC,MAAM;KACnC,CAAC;IACF,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,sBAAsB,CAAC;IACzD,MAAM,EAAE,IAAI;CACb,CAAC,EACF,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE;IACzB,OAAO,EAAE;QACP,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM;QACjC,GAAG,mBAAmB;KACvB;IACD,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,CAAC;CAC5E,CAAC,EACF,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE;IACzB,OAAO,EAAE;QACP,GAAG,mBAAmB;KACvB;IACD,OAAO,EAAE,MAAM,CAAC,IAAI;CACrB,CAAC,CACH;CAAG"}
1
+ {"version":3,"file":"do-rpc-schema.js","sourceRoot":"","sources":["../../src/common/do-rpc-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC1F,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE/D,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AAEtD,MAAM,mBAAmB,GAAG;IAC1B;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;CACtC,CAAA;AAED,MAAM,OAAO,SAAU,SAAQ,QAAQ,CAAC,IAAI,CAC1C,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE;IACzB,OAAO,EAAE;QACP,wDAAwD;QACxD,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM;QAC7C,cAAc;QACd,qEAAqE;QACrE,UAAU,EAAE,MAAM,CAAC,QAAQ,CACzB,MAAM,CAAC,MAAM,CAAC;YACZ,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;gBAC3B,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,eAAe,EAAE,MAAM,CAAC,MAAM;aAC/B,CAAC;SACH,CAAC,CACH;QACD,GAAG,mBAAmB;KACvB;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC,MAAM;QAC3B,GAAG,WAAW,CAAC,YAAY,CAAC,MAAM;KACnC,CAAC;IACF,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;IAC3D,MAAM,EAAE,IAAI;CACb,CAAC,EACF,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE;IACzB,OAAO,EAAE;QACP,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM;QACjC,GAAG,mBAAmB;KACvB;IACD,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;CAC9E,CAAC,EACF,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE;IACzB,OAAO,EAAE;QACP,GAAG,mBAAmB;KACvB;IACD,OAAO,EAAE,MAAM,CAAC,IAAI;CACrB,CAAC,EACF,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE;IAChC,OAAO,EAAE;QACP,6DAA6D;QAC7D,eAAe,EAAE,MAAM,CAAC,MAAM;QAC9B,wGAAwG;QACxG,SAAS,EAAE,MAAM,CAAC,MAAM;QACxB,GAAG,mBAAmB;KACvB;IACD,OAAO,EAAE,MAAM,CAAC,IAAI;CACrB,CAAC,CACH;CAAG"}
@@ -1,50 +1,49 @@
1
1
  import { BackendIdMismatchError, ServerAheadError, UnknownError } from '@livestore/common';
2
2
  import { Rpc, RpcGroup, Schema } from '@livestore/utils/effect';
3
- declare const SyncHttpRpc_base: RpcGroup.RpcGroup<Rpc.Rpc<"SyncHttpRpc.Pull", Schema.Struct<{
4
- cursor: Schema.Option<Schema.Struct<{
5
- backendId: Schema.SchemaClass<string, string, never>;
6
- eventSequenceNumber: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
3
+ declare const SyncHttpRpc_base: RpcGroup.RpcGroup<Rpc.Rpc<"SyncHttpRpc.Ping", Schema.Struct<{
4
+ readonly storeId: Schema.String;
5
+ readonly payload: Schema.optional<Schema.Codec<Schema.Json, Schema.Json, never, never>>;
6
+ }>, Schema.Struct<{
7
+ readonly _tag: Schema.tag<"SyncMessage.Pong">;
8
+ }>, typeof UnknownError, never, never> | Rpc.Rpc<"SyncHttpRpc.Pull", Schema.Struct<{
9
+ readonly cursor: Schema.Option<Schema.Struct<{
10
+ readonly backendId: Schema.String;
11
+ readonly eventSequenceNumber: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
7
12
  }>>;
8
- storeId: typeof Schema.String;
9
- payload: Schema.optional<Schema.Schema<Schema.JsonValue, Schema.JsonValue, never>>;
10
- }>, import("@effect/rpc/RpcSchema").Stream<Schema.Struct<{
11
- batch: Schema.Array$<Schema.Struct<{
12
- eventEncoded: Schema.Struct<{
13
- name: typeof Schema.String;
14
- args: typeof Schema.Any;
15
- seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
16
- parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
17
- clientId: typeof Schema.String;
18
- sessionId: typeof Schema.String;
13
+ readonly storeId: Schema.String;
14
+ readonly payload: Schema.optional<Schema.Codec<Schema.Json, Schema.Json, never, never>>;
15
+ }>, import("effect/rpc/RpcSchema").Stream<Schema.Struct<{
16
+ readonly batch: Schema.$Array<Schema.Struct<{
17
+ readonly eventEncoded: Schema.Struct<{
18
+ readonly name: Schema.String;
19
+ readonly args: Schema.Any;
20
+ readonly seqNum: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
21
+ readonly parentSeqNum: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
22
+ readonly clientId: Schema.String;
23
+ readonly sessionId: Schema.String;
19
24
  }>;
20
- metadata: Schema.Option<Schema.Struct<{
21
- _tag: Schema.tag<"SyncMessage.SyncMetadata">;
22
- } & {
23
- createdAt: typeof Schema.String;
25
+ readonly metadata: Schema.Option<Schema.Struct<{
26
+ readonly _tag: Schema.tag<"SyncMessage.SyncMetadata">;
27
+ readonly createdAt: Schema.String;
24
28
  }>>;
25
29
  }>>;
26
- pageInfo: Schema.Union<[Schema.TaggedStruct<"MoreUnknown", {}>, Schema.TaggedStruct<"MoreKnown", {
27
- remaining: typeof Schema.Number;
30
+ readonly pageInfo: Schema.Union<readonly [Schema.TaggedStruct<"MoreUnknown", {}>, Schema.TaggedStruct<"MoreKnown", {
31
+ readonly remaining: Schema.Finite;
28
32
  }>, Schema.TaggedStruct<"NoMore", {}>]>;
29
- backendId: Schema.SchemaClass<string, string, never>;
30
- }>, Schema.Union<[typeof UnknownError, typeof BackendIdMismatchError]>>, typeof Schema.Never, never> | Rpc.Rpc<"SyncHttpRpc.Push", Schema.Struct<{
31
- batch: Schema.Array$<Schema.Struct<{
32
- name: typeof Schema.String;
33
- args: typeof Schema.Any;
34
- seqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
35
- parentSeqNum: Schema.BrandSchema<number & import("effect/Brand").Brand<"GlobalEventSequenceNumber">, number, never>;
36
- clientId: typeof Schema.String;
37
- sessionId: typeof Schema.String;
33
+ readonly backendId: Schema.String;
34
+ }>, Schema.Union<readonly [typeof UnknownError, typeof BackendIdMismatchError]>>, Schema.Never, never, never> | Rpc.Rpc<"SyncHttpRpc.Push", Schema.Struct<{
35
+ readonly batch: Schema.$Array<Schema.Struct<{
36
+ readonly name: Schema.String;
37
+ readonly args: Schema.Any;
38
+ readonly seqNum: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
39
+ readonly parentSeqNum: Schema.brand<Schema.Int, "GlobalEventSequenceNumber">;
40
+ readonly clientId: Schema.String;
41
+ readonly sessionId: Schema.String;
38
42
  }>>;
39
- backendId: Schema.Option<Schema.SchemaClass<string, string, never>>;
40
- storeId: typeof Schema.String;
41
- payload: Schema.optional<Schema.Schema<Schema.JsonValue, Schema.JsonValue, never>>;
42
- }>, Schema.Struct<{}>, Schema.Union<[typeof UnknownError, typeof ServerAheadError, typeof BackendIdMismatchError]>, never> | Rpc.Rpc<"SyncHttpRpc.Ping", Schema.Struct<{
43
- storeId: typeof Schema.String;
44
- payload: Schema.optional<Schema.Schema<Schema.JsonValue, Schema.JsonValue, never>>;
45
- }>, Schema.Struct<{
46
- _tag: Schema.tag<"SyncMessage.Pong">;
47
- }>, typeof UnknownError, never>>;
43
+ readonly backendId: Schema.Option<Schema.String>;
44
+ readonly storeId: Schema.String;
45
+ readonly payload: Schema.optional<Schema.Codec<Schema.Json, Schema.Json, never, never>>;
46
+ }>, Schema.Struct<{}>, Schema.Union<readonly [typeof UnknownError, typeof ServerAheadError, typeof BackendIdMismatchError]>, never, never>>;
48
47
  /**
49
48
  * HTTP RPC Schema for LiveStore CF Sync Provider
50
49
  *
@@ -1 +1 @@
1
- {"version":3,"file":"http-rpc-schema.d.ts","sourceRoot":"","sources":["../../src/common/http-rpc-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC1F,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAI/D;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,gBA4BhC;CAAG"}
1
+ {"version":3,"file":"http-rpc-schema.d.ts","sourceRoot":"","sources":["../../src/common/http-rpc-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC1F,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAI/D;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,gBA4BhC;CAAG"}
@@ -1,6 +1,6 @@
1
1
  import { BackendIdMismatchError, ServerAheadError, UnknownError } from '@livestore/common';
2
2
  import { Rpc, RpcGroup, Schema } from '@livestore/utils/effect';
3
- import * as SyncMessage from "./sync-message-types.js";
3
+ import * as SyncMessage from './sync-message-types.js';
4
4
  /**
5
5
  * HTTP RPC Schema for LiveStore CF Sync Provider
6
6
  *
@@ -11,24 +11,24 @@ import * as SyncMessage from "./sync-message-types.js";
11
11
  export class SyncHttpRpc extends RpcGroup.make(Rpc.make('SyncHttpRpc.Pull', {
12
12
  payload: Schema.Struct({
13
13
  storeId: Schema.String,
14
- payload: Schema.optional(Schema.JsonValue),
14
+ payload: Schema.optional(Schema.Json),
15
15
  ...SyncMessage.PullRequest.fields,
16
16
  }),
17
17
  success: SyncMessage.PullResponse,
18
- error: Schema.Union(UnknownError, BackendIdMismatchError),
18
+ error: Schema.Union([UnknownError, BackendIdMismatchError]),
19
19
  stream: true,
20
20
  }), Rpc.make('SyncHttpRpc.Push', {
21
21
  payload: Schema.Struct({
22
22
  storeId: Schema.String,
23
- payload: Schema.optional(Schema.JsonValue),
23
+ payload: Schema.optional(Schema.Json),
24
24
  ...SyncMessage.PushRequest.fields,
25
25
  }),
26
26
  success: SyncMessage.PushAck,
27
- error: Schema.Union(UnknownError, ServerAheadError, BackendIdMismatchError),
27
+ error: Schema.Union([UnknownError, ServerAheadError, BackendIdMismatchError]),
28
28
  }), Rpc.make('SyncHttpRpc.Ping', {
29
29
  payload: Schema.Struct({
30
30
  storeId: Schema.String,
31
- payload: Schema.optional(Schema.JsonValue),
31
+ payload: Schema.optional(Schema.Json),
32
32
  }),
33
33
  success: SyncMessage.Pong,
34
34
  error: UnknownError,
@@ -1 +1 @@
1
- {"version":3,"file":"http-rpc-schema.js","sourceRoot":"","sources":["../../src/common/http-rpc-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC1F,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE/D,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,OAAO,WAAY,SAAQ,QAAQ,CAAC,IAAI,CAC5C,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC1C,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM;KAClC,CAAC;IACF,OAAO,EAAE,WAAW,CAAC,YAAY;IACjC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,sBAAsB,CAAC;IACzD,MAAM,EAAE,IAAI;CACb,CAAC,EACF,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC1C,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM;KAClC,CAAC;IACF,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,CAAC;CAC5E,CAAC,EACF,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;KAC3C,CAAC;IACF,OAAO,EAAE,WAAW,CAAC,IAAI;IACzB,KAAK,EAAE,YAAY;CACpB,CAAC,CACH;CAAG"}
1
+ {"version":3,"file":"http-rpc-schema.js","sourceRoot":"","sources":["../../src/common/http-rpc-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC1F,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE/D,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,OAAO,WAAY,SAAQ,QAAQ,CAAC,IAAI,CAC5C,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QACrC,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM;KAClC,CAAC;IACF,OAAO,EAAE,WAAW,CAAC,YAAY;IACjC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;IAC3D,MAAM,EAAE,IAAI;CACb,CAAC,EACF,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QACrC,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM;KAClC,CAAC;IACF,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;CAC9E,CAAC,EACF,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;KACtC,CAAC;IACF,OAAO,EAAE,WAAW,CAAC,IAAI;IACzB,KAAK,EAAE,YAAY;CACpB,CAAC,CACH;CAAG"}
@@ -1,14 +1,14 @@
1
- import { OversizeChunkItemError, splitChunkBySize } from '@livestore/common/sync';
1
+ export { OversizeChunkItemError, splitArrayBySize } from '@livestore/common/sync';
2
2
  import { Schema } from '@livestore/utils/effect';
3
3
  export type { CfTypes } from '@livestore/common-cf';
4
4
  export * from './constants.ts';
5
+ export { SyncDoRpc } from './do-rpc-schema.ts';
5
6
  export { SyncHttpRpc } from './http-rpc-schema.ts';
6
7
  export * as SyncMessage from './sync-message-types.ts';
7
- export { OversizeChunkItemError, splitChunkBySize };
8
8
  export declare const SearchParamsSchema: Schema.Struct<{
9
- storeId: typeof Schema.String;
10
- payload: Schema.UndefinedOr<Schema.transform<Schema.transformOrFail<Schema.SchemaClass<string, string, never>, typeof Schema.String, never>, Schema.transform<Schema.SchemaClass<unknown, string, never>, Schema.Schema<Schema.JsonValue, Schema.JsonValue, never>>>>;
11
- transport: Schema.Literal<["http", "ws"]>;
9
+ readonly storeId: Schema.String;
10
+ readonly payload: Schema.optional<Schema.compose<Schema.fromJsonString<Schema.Codec<Schema.Json, Schema.Json, never, never>>, Schema.StringFromUriComponent>>;
11
+ readonly transport: Schema.Literals<readonly ["http", "ws"]>;
12
12
  }>;
13
13
  export type SearchParams = typeof SearchParamsSchema.Type;
14
14
  //# sourceMappingURL=mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/common/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,CAAA;AAEnD,eAAO,MAAM,kBAAkB;;;;EAK7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAA"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/common/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AAEtD,eAAO,MAAM,kBAAkB;;;;EAK7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAA"}
@@ -1,13 +1,13 @@
1
- import { OversizeChunkItemError, splitChunkBySize } from '@livestore/common/sync';
1
+ export { OversizeChunkItemError, splitArrayBySize } from '@livestore/common/sync';
2
2
  import { Schema } from '@livestore/utils/effect';
3
- export * from "./constants.js";
4
- export { SyncHttpRpc } from "./http-rpc-schema.js";
5
- export * as SyncMessage from "./sync-message-types.js";
6
- export { OversizeChunkItemError, splitChunkBySize };
3
+ export * from './constants.js';
4
+ export { SyncDoRpc } from './do-rpc-schema.js';
5
+ export { SyncHttpRpc } from './http-rpc-schema.js';
6
+ export * as SyncMessage from './sync-message-types.js';
7
7
  export const SearchParamsSchema = Schema.Struct({
8
8
  storeId: Schema.String,
9
- payload: Schema.compose(Schema.StringFromUriComponent, Schema.parseJson(Schema.JsonValue)).pipe(Schema.UndefinedOr),
9
+ payload: Schema.optional(Schema.StringFromUriComponent.pipe(Schema.decodeTo(Schema.fromJsonString(Schema.Json)))),
10
10
  // NOTE `do-rpc` is handled differently
11
- transport: Schema.Literal('http', 'ws'),
11
+ transport: Schema.Literals(['http', 'ws']),
12
12
  });
13
13
  //# sourceMappingURL=mod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/common/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,CAAA;AAEnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACnH,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;CACxC,CAAC,CAAA"}
1
+ {"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/common/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AAEtD,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC,MAAM;IACtB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjH,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CAC3C,CAAC,CAAA"}