@livestore/sync-cf 0.4.0-dev.17 → 0.4.0-dev.19
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/.tsbuildinfo +1 -1
- package/dist/cf-worker/do/layer.d.ts +3 -3
- package/dist/cf-worker/do/layer.d.ts.map +1 -1
- package/dist/cf-worker/do/layer.js +5 -5
- package/dist/cf-worker/do/layer.js.map +1 -1
- package/dist/cf-worker/do/pull.d.ts.map +1 -1
- package/dist/cf-worker/do/pull.js +3 -3
- package/dist/cf-worker/do/pull.js.map +1 -1
- package/dist/cf-worker/do/push.js +4 -4
- package/dist/cf-worker/do/push.js.map +1 -1
- package/dist/cf-worker/do/sqlite.js +3 -3
- package/dist/cf-worker/do/sqlite.js.map +1 -1
- package/dist/cf-worker/do/sync-storage.d.ts +6 -6
- package/dist/cf-worker/do/sync-storage.d.ts.map +1 -1
- package/dist/cf-worker/do/sync-storage.js +10 -10
- package/dist/cf-worker/do/sync-storage.js.map +1 -1
- package/dist/cf-worker/shared.d.ts +1 -3
- package/dist/cf-worker/shared.d.ts.map +1 -1
- package/dist/cf-worker/shared.js.map +1 -1
- package/dist/cf-worker/worker.d.ts +1 -1
- package/dist/cf-worker/worker.js +4 -4
- package/dist/cf-worker/worker.js.map +1 -1
- package/dist/client/transport/do-rpc-client.d.ts.map +1 -1
- package/dist/client/transport/do-rpc-client.js +4 -6
- package/dist/client/transport/do-rpc-client.js.map +1 -1
- package/dist/client/transport/http-rpc-client.d.ts.map +1 -1
- package/dist/client/transport/http-rpc-client.js +6 -6
- package/dist/client/transport/http-rpc-client.js.map +1 -1
- package/dist/client/transport/ws-rpc-client.d.ts +2 -1
- package/dist/client/transport/ws-rpc-client.d.ts.map +1 -1
- package/dist/client/transport/ws-rpc-client.js +5 -5
- package/dist/client/transport/ws-rpc-client.js.map +1 -1
- package/dist/common/http-rpc-schema.d.ts +2 -2
- package/dist/common/http-rpc-schema.d.ts.map +1 -1
- package/dist/common/http-rpc-schema.js +2 -2
- package/dist/common/http-rpc-schema.js.map +1 -1
- package/dist/common/sync-message-types.js +3 -3
- package/dist/common/sync-message-types.js.map +1 -1
- package/package.json +5 -5
- package/src/cf-worker/do/layer.ts +6 -6
- package/src/cf-worker/do/pull.ts +3 -5
- package/src/cf-worker/do/push.ts +4 -4
- package/src/cf-worker/do/sqlite.ts +3 -3
- package/src/cf-worker/do/sync-storage.ts +26 -26
- package/src/cf-worker/shared.ts +1 -3
- package/src/cf-worker/worker.ts +4 -4
- package/src/client/transport/do-rpc-client.ts +4 -6
- package/src/client/transport/http-rpc-client.ts +7 -7
- package/src/client/transport/ws-rpc-client.ts +7 -7
- package/src/common/http-rpc-schema.ts +2 -2
- package/src/common/sync-message-types.ts +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InvalidPullError, InvalidPushError, SyncBackend,
|
|
1
|
+
import { InvalidPullError, InvalidPushError, SyncBackend, UnknownError } from '@livestore/common'
|
|
2
2
|
import { splitChunkBySize } from '@livestore/common/sync'
|
|
3
3
|
import { type CfTypes, layerProtocolDurableObject } from '@livestore/common-cf'
|
|
4
4
|
import { omit, shouldNeverHappen } from '@livestore/utils'
|
|
@@ -114,7 +114,7 @@ export const makeDoRpcSync =
|
|
|
114
114
|
backendId,
|
|
115
115
|
}),
|
|
116
116
|
}),
|
|
117
|
-
Effect.mapError((cause) => new InvalidPushError({ cause: new
|
|
117
|
+
Effect.mapError((cause) => new InvalidPushError({ cause: new UnknownError({ cause }) })),
|
|
118
118
|
)
|
|
119
119
|
|
|
120
120
|
for (const chunk of Chunk.toReadonlyArray(batchChunks)) {
|
|
@@ -123,9 +123,7 @@ export const makeDoRpcSync =
|
|
|
123
123
|
}
|
|
124
124
|
}).pipe(
|
|
125
125
|
Effect.mapError((cause) =>
|
|
126
|
-
cause._tag === 'InvalidPushError'
|
|
127
|
-
? cause
|
|
128
|
-
: InvalidPushError.make({ cause: new UnexpectedError({ cause }) }),
|
|
126
|
+
cause._tag === 'InvalidPushError' ? cause : InvalidPushError.make({ cause: new UnknownError({ cause }) }),
|
|
129
127
|
),
|
|
130
128
|
Effect.withSpan('rpc-sync-client:push'),
|
|
131
129
|
)
|
|
@@ -133,7 +131,7 @@ export const makeDoRpcSync =
|
|
|
133
131
|
const ping: SyncBackend.SyncBackend<{ createdAt: string }>['ping'] = rpcClient.SyncDoRpc.Ping({
|
|
134
132
|
storeId,
|
|
135
133
|
payload,
|
|
136
|
-
}).pipe(
|
|
134
|
+
}).pipe(UnknownError.mapToUnknownError, Effect.withSpan('rpc-sync-client:ping'))
|
|
137
135
|
|
|
138
136
|
return SyncBackend.of({
|
|
139
137
|
connect,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InvalidPullError, InvalidPushError, SyncBackend,
|
|
1
|
+
import { InvalidPullError, InvalidPushError, SyncBackend, UnknownError } from '@livestore/common'
|
|
2
2
|
import type { EventSequenceNumber } from '@livestore/common/schema'
|
|
3
3
|
import { splitChunkBySize } from '@livestore/common/sync'
|
|
4
4
|
import { omit } from '@livestore/utils'
|
|
@@ -76,7 +76,7 @@ export const makeHttpSync =
|
|
|
76
76
|
storeId,
|
|
77
77
|
payload,
|
|
78
78
|
transport: 'http',
|
|
79
|
-
}).pipe(
|
|
79
|
+
}).pipe(UnknownError.mapToUnknownError)
|
|
80
80
|
|
|
81
81
|
const urlParams = UrlParams.fromInput(urlParamsData)
|
|
82
82
|
|
|
@@ -103,7 +103,7 @@ export const makeHttpSync =
|
|
|
103
103
|
|
|
104
104
|
yield* SubscriptionRef.set(isConnected, true)
|
|
105
105
|
}).pipe(
|
|
106
|
-
|
|
106
|
+
UnknownError.mapToUnknownError,
|
|
107
107
|
Effect.timeout(pingTimeout),
|
|
108
108
|
Effect.catchTag('TimeoutException', () => SubscriptionRef.set(isConnected, false)),
|
|
109
109
|
)
|
|
@@ -116,14 +116,14 @@ export const makeHttpSync =
|
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
// Helps already establish a TCP connection to the server
|
|
119
|
-
const connect = ping.pipe(
|
|
119
|
+
const connect = ping.pipe(UnknownError.mapToUnknownError)
|
|
120
120
|
|
|
121
121
|
const backendIdHelper = yield* SyncBackend.makeBackendIdHelper
|
|
122
122
|
|
|
123
123
|
const mapCursor = (cursor: Option.Option<{ eventSequenceNumber: number }>) =>
|
|
124
124
|
cursor.pipe(
|
|
125
125
|
Option.map((a) => ({
|
|
126
|
-
eventSequenceNumber: a.eventSequenceNumber as EventSequenceNumber.
|
|
126
|
+
eventSequenceNumber: a.eventSequenceNumber as EventSequenceNumber.Global.Type,
|
|
127
127
|
backendId: backendIdHelper.get().pipe(Option.getOrThrow),
|
|
128
128
|
})),
|
|
129
129
|
)
|
|
@@ -190,7 +190,7 @@ export const makeHttpSync =
|
|
|
190
190
|
backendId,
|
|
191
191
|
}),
|
|
192
192
|
}),
|
|
193
|
-
Effect.mapError((cause) => new InvalidPushError({ cause: new
|
|
193
|
+
Effect.mapError((cause) => new InvalidPushError({ cause: new UnknownError({ cause }) })),
|
|
194
194
|
)
|
|
195
195
|
|
|
196
196
|
for (const chunk of Chunk.toReadonlyArray(batchChunks)) {
|
|
@@ -200,7 +200,7 @@ export const makeHttpSync =
|
|
|
200
200
|
}).pipe(
|
|
201
201
|
pushSemaphore.withPermits(1),
|
|
202
202
|
Effect.mapError((cause) =>
|
|
203
|
-
cause._tag === 'InvalidPushError' ? cause : new InvalidPushError({ cause: new
|
|
203
|
+
cause._tag === 'InvalidPushError' ? cause : new InvalidPushError({ cause: new UnknownError({ cause }) }),
|
|
204
204
|
),
|
|
205
205
|
Effect.withSpan('http-sync-client:push'),
|
|
206
206
|
)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InvalidPullError, InvalidPushError, IsOfflineError, SyncBackend,
|
|
1
|
+
import { InvalidPullError, InvalidPushError, IsOfflineError, SyncBackend, UnknownError } from '@livestore/common'
|
|
2
2
|
import type { LiveStoreEvent } from '@livestore/common/schema'
|
|
3
3
|
import { splitChunkBySize } from '@livestore/common/sync'
|
|
4
4
|
import { omit } from '@livestore/utils'
|
|
@@ -17,8 +17,8 @@ import {
|
|
|
17
17
|
Stream,
|
|
18
18
|
SubscriptionRef,
|
|
19
19
|
UrlParams,
|
|
20
|
-
type WebSocket,
|
|
21
20
|
} from '@livestore/utils/effect'
|
|
21
|
+
import type { WebSocket } from '@livestore/utils/effect/browser'
|
|
22
22
|
import { MAX_PUSH_EVENTS_PER_REQUEST, MAX_WS_MESSAGE_BYTES } from '../../common/constants.ts'
|
|
23
23
|
import { SearchParamsSchema } from '../../common/mod.ts'
|
|
24
24
|
import type { SyncMetadata } from '../../common/sync-message-types.ts'
|
|
@@ -73,7 +73,7 @@ export const makeWsSync =
|
|
|
73
73
|
storeId,
|
|
74
74
|
payload,
|
|
75
75
|
transport: 'ws',
|
|
76
|
-
}).pipe(
|
|
76
|
+
}).pipe(UnknownError.mapToUnknownError)
|
|
77
77
|
|
|
78
78
|
const urlParams = UrlParams.fromInput(urlParamsData)
|
|
79
79
|
const wsUrl = `${options.url}?${UrlParams.toString(urlParams)}`
|
|
@@ -119,7 +119,7 @@ export const makeWsSync =
|
|
|
119
119
|
}).pipe(
|
|
120
120
|
Effect.timeout(pingTimeout),
|
|
121
121
|
Effect.catchTag('TimeoutException', () => SubscriptionRef.set(isConnected, false)),
|
|
122
|
-
|
|
122
|
+
UnknownError.mapToUnknownError,
|
|
123
123
|
Effect.withSpan('ping'),
|
|
124
124
|
)
|
|
125
125
|
|
|
@@ -156,7 +156,7 @@ export const makeWsSync =
|
|
|
156
156
|
Effect.gen(function* () {
|
|
157
157
|
if (batch.length === 0) return
|
|
158
158
|
|
|
159
|
-
const encodePayload = (batch: ReadonlyArray<LiveStoreEvent.
|
|
159
|
+
const encodePayload = (batch: ReadonlyArray<LiveStoreEvent.Global.Encoded>) => ({
|
|
160
160
|
storeId,
|
|
161
161
|
payload,
|
|
162
162
|
batch,
|
|
@@ -169,7 +169,7 @@ export const makeWsSync =
|
|
|
169
169
|
maxBytes: MAX_WS_MESSAGE_BYTES,
|
|
170
170
|
encode: encodePayload,
|
|
171
171
|
}),
|
|
172
|
-
Effect.mapError((cause) => new InvalidPushError({ cause: new
|
|
172
|
+
Effect.mapError((cause) => new InvalidPushError({ cause: new UnknownError({ cause }) })),
|
|
173
173
|
)
|
|
174
174
|
|
|
175
175
|
for (const sub of chunksChunk) {
|
|
@@ -182,7 +182,7 @@ export const makeWsSync =
|
|
|
182
182
|
Effect.mapError((cause) =>
|
|
183
183
|
cause._tag === 'InvalidPushError'
|
|
184
184
|
? cause
|
|
185
|
-
: new InvalidPushError({ cause: new
|
|
185
|
+
: new InvalidPushError({ cause: new UnknownError({ cause }) }),
|
|
186
186
|
),
|
|
187
187
|
)
|
|
188
188
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InvalidPullError, InvalidPushError,
|
|
1
|
+
import { InvalidPullError, InvalidPushError, UnknownError } from '@livestore/common'
|
|
2
2
|
import { Rpc, RpcGroup, Schema } from '@livestore/utils/effect'
|
|
3
3
|
import * as SyncMessage from './sync-message-types.ts'
|
|
4
4
|
|
|
@@ -35,6 +35,6 @@ export class SyncHttpRpc extends RpcGroup.make(
|
|
|
35
35
|
payload: Schema.optional(Schema.JsonValue),
|
|
36
36
|
}),
|
|
37
37
|
success: SyncMessage.Pong,
|
|
38
|
-
error:
|
|
38
|
+
error: UnknownError,
|
|
39
39
|
}),
|
|
40
40
|
) {}
|
|
@@ -20,7 +20,7 @@ export const PullRequest = Schema.Struct({
|
|
|
20
20
|
cursor: Schema.Option(
|
|
21
21
|
Schema.Struct({
|
|
22
22
|
backendId: BackendId,
|
|
23
|
-
eventSequenceNumber: EventSequenceNumber.
|
|
23
|
+
eventSequenceNumber: EventSequenceNumber.Global.Schema,
|
|
24
24
|
}),
|
|
25
25
|
),
|
|
26
26
|
}).annotations({ title: '@livestore/sync-cf:PullRequest' })
|
|
@@ -30,7 +30,7 @@ export type PullRequest = typeof PullRequest.Type
|
|
|
30
30
|
export const PullResponse = Schema.Struct({
|
|
31
31
|
batch: Schema.Array(
|
|
32
32
|
Schema.Struct({
|
|
33
|
-
eventEncoded: LiveStoreEvent.
|
|
33
|
+
eventEncoded: LiveStoreEvent.Global.Encoded,
|
|
34
34
|
metadata: Schema.Option(SyncMetadata),
|
|
35
35
|
}),
|
|
36
36
|
),
|
|
@@ -48,7 +48,7 @@ export const emptyPullResponse = (backendId: string) =>
|
|
|
48
48
|
export type PullResponse = typeof PullResponse.Type
|
|
49
49
|
|
|
50
50
|
export const PushRequest = Schema.Struct({
|
|
51
|
-
batch: Schema.Array(LiveStoreEvent.
|
|
51
|
+
batch: Schema.Array(LiveStoreEvent.Global.Encoded),
|
|
52
52
|
backendId: Schema.Option(BackendId),
|
|
53
53
|
}).annotations({ title: '@livestore/sync-cf:PushRequest' })
|
|
54
54
|
|