@livestore/webmesh 0.0.0-snapshot-1d99fea7d2ce2c7a5d9ed0a3752f8a7bda6bc3db → 0.0.0-snapshot-7d3074f682f31cfc38b26ed2c4c2972ce1e9121e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/channel/message-channel-internal.d.ts +26 -0
- package/dist/channel/message-channel-internal.d.ts.map +1 -0
- package/dist/channel/message-channel-internal.js +217 -0
- package/dist/channel/message-channel-internal.js.map +1 -0
- package/dist/channel/message-channel.d.ts +21 -19
- package/dist/channel/message-channel.d.ts.map +1 -1
- package/dist/channel/message-channel.js +132 -162
- package/dist/channel/message-channel.js.map +1 -1
- package/dist/channel/proxy-channel.d.ts +2 -2
- package/dist/channel/proxy-channel.d.ts.map +1 -1
- package/dist/channel/proxy-channel.js +7 -5
- package/dist/channel/proxy-channel.js.map +1 -1
- package/dist/common.d.ts +8 -4
- package/dist/common.d.ts.map +1 -1
- package/dist/common.js +2 -1
- package/dist/common.js.map +1 -1
- package/dist/mesh-schema.d.ts +23 -1
- package/dist/mesh-schema.d.ts.map +1 -1
- package/dist/mesh-schema.js +21 -2
- package/dist/mesh-schema.js.map +1 -1
- package/dist/node.d.ts +12 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +40 -9
- package/dist/node.js.map +1 -1
- package/dist/node.test.d.ts +1 -1
- package/dist/node.test.d.ts.map +1 -1
- package/dist/node.test.js +312 -146
- package/dist/node.test.js.map +1 -1
- package/dist/websocket-connection.d.ts +1 -2
- package/dist/websocket-connection.d.ts.map +1 -1
- package/dist/websocket-connection.js +5 -4
- package/dist/websocket-connection.js.map +1 -1
- package/package.json +3 -3
- package/src/channel/message-channel-internal.ts +356 -0
- package/src/channel/message-channel.ts +190 -310
- package/src/channel/proxy-channel.ts +238 -230
- package/src/common.ts +3 -1
- package/src/mesh-schema.ts +20 -2
- package/src/node.test.ts +444 -174
- package/src/node.ts +70 -12
- package/src/websocket-connection.ts +83 -79
|
@@ -1,175 +1,140 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
1
|
+
import { Cause, Deferred, Effect, Either, Exit, Option, Queue, Schema, Scope, Stream, TQueue, WebChannel, } from '@livestore/utils/effect';
|
|
2
|
+
import { nanoid } from '@livestore/utils/nanoid';
|
|
3
|
+
import { WebmeshSchema } from '../mod.js';
|
|
4
|
+
import { makeMessageChannelInternal } from './message-channel-internal.js';
|
|
5
|
+
/**
|
|
6
|
+
* Behaviour:
|
|
7
|
+
* - Waits until there is an initial connection
|
|
8
|
+
* - Automatically reconnects on disconnect
|
|
9
|
+
*
|
|
10
|
+
* Implementation notes:
|
|
11
|
+
* - We've split up the functionality into a wrapper channel and an internal channel.
|
|
12
|
+
* - The wrapper channel is responsible for:
|
|
13
|
+
* - Forwarding send/listen messages to the internal channel (via a queue)
|
|
14
|
+
* - Establishing the initial channel and reconnecting on disconnect
|
|
15
|
+
* - Listening for new connections as a hint to reconnect if not already connected
|
|
16
|
+
* - The wrapper channel maintains a connection counter which is used as the channel version
|
|
17
|
+
*
|
|
18
|
+
* If needed we can also implement further functionality (like heartbeat) in this wrapper channel.
|
|
19
|
+
*/
|
|
20
|
+
export const makeMessageChannel = ({ schema, newConnectionAvailablePubSub, channelName, checkTransferableConnections, nodeName, incomingPacketsQueue, target, sendPacket, }) => Effect.scopeWithCloseable((scope) => Effect.gen(function* () {
|
|
21
|
+
/** Only used to identify whether a source is the same instance to know when to reconnect */
|
|
22
|
+
const sourceId = nanoid();
|
|
23
|
+
const listenQueue = yield* Queue.unbounded();
|
|
24
|
+
const sendQueue = yield* TQueue.unbounded();
|
|
25
|
+
const initialConnectionDeferred = yield* Deferred.make();
|
|
26
|
+
const debugInfo = {
|
|
27
|
+
pendingSends: 0,
|
|
28
|
+
totalSends: 0,
|
|
29
|
+
connectCounter: 0,
|
|
30
|
+
isConnected: false,
|
|
31
|
+
innerChannelRef: { current: undefined },
|
|
32
|
+
};
|
|
33
|
+
// #region reconnect-loop
|
|
34
|
+
yield* Effect.gen(function* () {
|
|
35
|
+
const resultDeferred = yield* Deferred.make();
|
|
36
|
+
while (true) {
|
|
37
|
+
debugInfo.connectCounter++;
|
|
38
|
+
const channelVersion = debugInfo.connectCounter;
|
|
39
|
+
yield* Effect.spanEvent(`Connecting#${channelVersion}`);
|
|
40
|
+
const makeMessageChannelScope = yield* Scope.make();
|
|
41
|
+
// Attach the new scope to the parent scope
|
|
42
|
+
yield* Effect.addFinalizer((ex) => Scope.close(makeMessageChannelScope, ex));
|
|
43
|
+
/**
|
|
44
|
+
* Expected concurrency behaviour:
|
|
45
|
+
* - We're concurrently running the connection setup and the waitForNewConnectionFiber
|
|
46
|
+
* - Happy path:
|
|
47
|
+
* - The connection setup succeeds and we can interrupt the waitForNewConnectionFiber
|
|
48
|
+
* - Tricky paths:
|
|
49
|
+
* - While a connection is still being setup, we want to re-try when there is a new connection
|
|
50
|
+
* - If the connection setup returns a `MessageChannelResponseNoTransferables` error,
|
|
51
|
+
* we want to wait for a new connection and then re-try
|
|
52
|
+
* - Further notes:
|
|
53
|
+
* - If the parent scope closes, we want to also interrupt both the connection setup and the waitForNewConnectionFiber
|
|
54
|
+
* - We're creating a separate scope for each connection attempt, which
|
|
55
|
+
* - we'll use to fork the message channel in which allows us to interrupt it later
|
|
56
|
+
* - We need to make sure that "interruption" isn't "bubbling out"
|
|
57
|
+
*/
|
|
58
|
+
const waitForNewConnectionFiber = yield* Stream.fromPubSub(newConnectionAvailablePubSub).pipe(Stream.tap((connectionName) => Effect.spanEvent(`new-conn:${connectionName}`)), Stream.take(1), Stream.runDrain, Effect.as('new-connection'), Effect.fork);
|
|
59
|
+
const makeChannel = makeMessageChannelInternal({
|
|
60
|
+
nodeName,
|
|
61
|
+
sourceId,
|
|
62
|
+
incomingPacketsQueue,
|
|
63
|
+
target,
|
|
64
|
+
checkTransferableConnections,
|
|
65
|
+
channelName,
|
|
66
|
+
schema,
|
|
67
|
+
channelVersion,
|
|
68
|
+
newConnectionAvailablePubSub,
|
|
69
|
+
sendPacket,
|
|
70
|
+
scope: makeMessageChannelScope,
|
|
71
|
+
}).pipe(Scope.extend(makeMessageChannelScope), Effect.forkIn(makeMessageChannelScope),
|
|
72
|
+
// Given we only call `Effect.exit` later when joining the fiber,
|
|
73
|
+
// we don't want Effect to produce a "unhandled error" log message
|
|
74
|
+
Effect.withUnhandledErrorLogLevel(Option.none()));
|
|
75
|
+
const raceResult = yield* Effect.raceFirst(makeChannel, waitForNewConnectionFiber.pipe(Effect.disconnect));
|
|
76
|
+
if (raceResult === 'new-connection') {
|
|
77
|
+
yield* Scope.close(makeMessageChannelScope, Exit.fail('new-connection'));
|
|
78
|
+
// We'll try again
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
const channelExit = yield* raceResult.pipe(Effect.exit);
|
|
82
|
+
if (channelExit._tag === 'Failure') {
|
|
83
|
+
yield* Scope.close(makeMessageChannelScope, channelExit);
|
|
84
|
+
if (Cause.isFailType(channelExit.cause) &&
|
|
85
|
+
Schema.is(WebmeshSchema.MessageChannelResponseNoTransferables)(channelExit.cause.error)) {
|
|
86
|
+
// Only retry when there is a new connection available
|
|
87
|
+
yield* waitForNewConnectionFiber.pipe(Effect.exit);
|
|
32
88
|
}
|
|
33
|
-
const thisSideAlsoResponded = channelState._tag === 'ResponseSent';
|
|
34
|
-
const usePortFromThisSide = thisSideAlsoResponded && nodeName > target;
|
|
35
|
-
yield* Effect.annotateCurrentSpan({ usePortFromThisSide });
|
|
36
|
-
const winnerPort = usePortFromThisSide ? channelState.locallyCreatedPort : packet.port;
|
|
37
|
-
yield* Deferred.succeed(channelState.deferred, winnerPort);
|
|
38
|
-
return;
|
|
39
89
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
yield* Deferred.fail(channelState.deferred, packet);
|
|
44
|
-
channelStateRef.current = yield* makeInitialState;
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
case 'MessageChannelRequest': {
|
|
48
|
-
const mc = new MessageChannel();
|
|
49
|
-
const shouldReconnect = channelState._tag === 'Established';
|
|
50
|
-
const deferred = channelState._tag === 'Established'
|
|
51
|
-
? yield* Deferred.make()
|
|
52
|
-
: channelState.deferred;
|
|
53
|
-
channelStateRef.current = { _tag: 'ResponseSent', locallyCreatedPort: mc.port1, deferred };
|
|
54
|
-
yield* respondToSender(MeshSchema.MessageChannelResponseSuccess.make({
|
|
55
|
-
reqId: packet.id,
|
|
56
|
-
target,
|
|
57
|
-
source: nodeName,
|
|
58
|
-
channelName: packet.channelName,
|
|
59
|
-
hops: [],
|
|
60
|
-
remainingHops: packet.hops,
|
|
61
|
-
port: mc.port2,
|
|
62
|
-
}));
|
|
63
|
-
// If there's an established channel, we use the new request as a signal
|
|
64
|
-
// to drop the old channel and use the new one
|
|
65
|
-
if (shouldReconnect) {
|
|
66
|
-
yield* reconnect;
|
|
67
|
-
}
|
|
90
|
+
else {
|
|
91
|
+
const channel = channelExit.value;
|
|
92
|
+
yield* Deferred.succeed(resultDeferred, { channel, makeMessageChannelScope, channelVersion });
|
|
68
93
|
break;
|
|
69
94
|
}
|
|
70
|
-
default: {
|
|
71
|
-
return casesHandled(packet);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}).pipe(Effect.withSpan(`handleMessagePacket:${packet._tag}:${packet.source}→${packet.target}`, {
|
|
75
|
-
attributes: packetAsOtelAttributes(packet),
|
|
76
|
-
}));
|
|
77
|
-
yield* Stream.fromQueue(queue).pipe(Stream.tap(processMessagePacket), Stream.runDrain, Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
78
|
-
const channelFromPort = (port) => Effect.gen(function* () {
|
|
79
|
-
channelStateRef.current = { _tag: 'Established' };
|
|
80
|
-
// NOTE to support re-connects we need to ack each message
|
|
81
|
-
const channel = yield* WebChannel.messagePortChannelWithAck({ port, schema });
|
|
82
|
-
return channel;
|
|
83
|
-
});
|
|
84
|
-
const channelState = channelStateRef.current;
|
|
85
|
-
if (channelState._tag === 'Initial' || channelState._tag === 'RequestSent') {
|
|
86
|
-
// Important to make a new deferred here as the old one might have been used already
|
|
87
|
-
// TODO model this better
|
|
88
|
-
const deferred = channelState._tag === 'RequestSent'
|
|
89
|
-
? yield* Deferred.make()
|
|
90
|
-
: channelState.deferred;
|
|
91
|
-
channelStateRef.current = { _tag: 'RequestSent', deferred };
|
|
92
|
-
const connectionRequest = Effect.gen(function* () {
|
|
93
|
-
const packet = MeshSchema.MessageChannelRequest.make({ source: nodeName, target, channelName, hops: [] });
|
|
94
|
-
const noTransferableResponse = checkTransferableConnections(packet);
|
|
95
|
-
if (noTransferableResponse !== undefined) {
|
|
96
|
-
yield* Effect.spanEvent(`No transferable connections found for ${packet.source}→${packet.target}`);
|
|
97
|
-
yield* Deferred.fail(deferred, noTransferableResponse);
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
yield* sendPacket(packet);
|
|
101
|
-
});
|
|
102
|
-
yield* connectionRequest;
|
|
103
|
-
const retryOnNewConnectionFiber = yield* Stream.fromPubSub(newConnectionAvailablePubSub).pipe(Stream.tap(() => Effect.spanEvent(`RetryOnNewConnection`)), Stream.tap(() => connectionRequest), Stream.runDrain, Effect.forkScoped);
|
|
104
|
-
const portResult = yield* deferred.pipe(Effect.either);
|
|
105
|
-
yield* Fiber.interrupt(retryOnNewConnectionFiber);
|
|
106
|
-
if (portResult._tag === 'Right') {
|
|
107
|
-
return yield* channelFromPort(portResult.right);
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
// We'll keep retrying with a new connection
|
|
111
|
-
yield* Stream.fromPubSub(newConnectionAvailablePubSub).pipe(Stream.take(1), Stream.runDrain);
|
|
112
|
-
yield* reconnect;
|
|
113
|
-
return yield* Effect.interrupt;
|
|
114
95
|
}
|
|
115
96
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
97
|
+
// Now we wait until the first channel is established
|
|
98
|
+
const { channel, makeMessageChannelScope, channelVersion } = yield* resultDeferred;
|
|
99
|
+
yield* Effect.spanEvent(`Connected#${channelVersion}`);
|
|
100
|
+
debugInfo.isConnected = true;
|
|
101
|
+
debugInfo.innerChannelRef.current = channel;
|
|
102
|
+
yield* Deferred.succeed(initialConnectionDeferred, void 0);
|
|
103
|
+
// We'll now forward all incoming messages to the listen queue
|
|
104
|
+
yield* channel.listen.pipe(Stream.flatten(),
|
|
105
|
+
// Stream.tap((msg) => Effect.log(`${target}→${channelName}→${nodeName}:message:${msg.message}`)),
|
|
106
|
+
Stream.tapChunk((chunk) => Queue.offerAll(listenQueue, chunk)), Stream.runDrain, Effect.tapCauseLogPretty, Effect.forkIn(makeMessageChannelScope));
|
|
107
|
+
yield* Effect.gen(function* () {
|
|
108
|
+
while (true) {
|
|
109
|
+
const [msg, deferred] = yield* TQueue.peek(sendQueue);
|
|
110
|
+
// NOTE we don't need an explicit retry flow here since in case of the channel being closed,
|
|
111
|
+
// the send will never succeed. Meanwhile the send-loop fiber will be interrupted and
|
|
112
|
+
// given we only peeked at the queue, the message to send is still there.
|
|
113
|
+
yield* channel.send(msg);
|
|
114
|
+
yield* Deferred.succeed(deferred, void 0);
|
|
115
|
+
yield* TQueue.take(sendQueue); // Remove the message from the queue
|
|
125
116
|
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
const internalChannel = yield* makeMessageChannelInternal;
|
|
137
|
-
yield* SubscriptionRef.set(internalChannelSref, internalChannel);
|
|
138
|
-
yield* Effect.spanEvent(`Connected#${connectCount}`);
|
|
139
|
-
yield* internalChannel.listen.pipe(Stream.flatten(), Stream.tap((msg) => Queue.offer(listenQueue, msg)), Stream.runDrain, Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
140
|
-
yield* Effect.never;
|
|
141
|
-
}).pipe(Effect.scoped);
|
|
142
|
-
const fiberHandle = yield* FiberHandle.make();
|
|
143
|
-
const runConnect = Effect.gen(function* () {
|
|
144
|
-
// Cleanly shutdown the previous connection first
|
|
145
|
-
// Otherwise the old and new connection will "overlap"
|
|
146
|
-
yield* FiberHandle.clear(fiberHandle);
|
|
147
|
-
yield* FiberHandle.run(fiberHandle, connect);
|
|
148
|
-
});
|
|
149
|
-
yield* runConnect;
|
|
150
|
-
// Then listen for reconnects
|
|
151
|
-
yield* Stream.fromQueue(reconnectTriggerQueue).pipe(Stream.tap(() => runConnect), Stream.runDrain, Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
152
|
-
// Wait for the initial connection to be established or for an error to occur
|
|
153
|
-
yield* Effect.raceFirst(SubscriptionRef.waitUntil(internalChannelSref, (channel) => channel !== false), FiberHandle.join(fiberHandle));
|
|
117
|
+
}).pipe(Effect.forkIn(makeMessageChannelScope));
|
|
118
|
+
// Wait until the channel is closed and then try to reconnect
|
|
119
|
+
yield* channel.closedDeferred;
|
|
120
|
+
yield* Scope.close(makeMessageChannelScope, Exit.succeed('channel-closed'));
|
|
121
|
+
yield* Effect.spanEvent(`Disconnected#${channelVersion}`);
|
|
122
|
+
debugInfo.isConnected = false;
|
|
123
|
+
debugInfo.innerChannelRef.current = undefined;
|
|
124
|
+
}).pipe(Effect.scoped, // Additionally scoping here to clean up finalizers after each loop run
|
|
125
|
+
Effect.forever, Effect.tapCauseLogPretty, Effect.forkScoped);
|
|
126
|
+
// #endregion reconnect-loop
|
|
154
127
|
const parentSpan = yield* Effect.currentSpan.pipe(Effect.orDie);
|
|
155
128
|
const send = (message) => Effect.gen(function* () {
|
|
156
|
-
const sendFiberHandle = yield* FiberHandle.make();
|
|
157
129
|
const sentDeferred = yield* Deferred.make();
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
yield* channel.send(message);
|
|
162
|
-
yield* Deferred.succeed(sentDeferred, void 0);
|
|
163
|
-
});
|
|
164
|
-
yield* innerSend.pipe(Effect.timeout(100), Effect.retry(Schedule.exponential(100)), Effect.orDie);
|
|
165
|
-
}).pipe(Effect.tapErrorCause(Effect.logError));
|
|
166
|
-
const rerunOnNewChannelFiber = yield* internalChannelSref.changes.pipe(Stream.filter((_) => _ === false), Stream.tap(() => FiberHandle.run(sendFiberHandle, trySend)), Stream.runDrain, Effect.fork);
|
|
167
|
-
yield* FiberHandle.run(sendFiberHandle, trySend);
|
|
130
|
+
debugInfo.pendingSends++;
|
|
131
|
+
debugInfo.totalSends++;
|
|
132
|
+
yield* TQueue.offer(sendQueue, [message, sentDeferred]);
|
|
168
133
|
yield* sentDeferred;
|
|
169
|
-
|
|
134
|
+
debugInfo.pendingSends--;
|
|
170
135
|
}).pipe(Effect.scoped, Effect.withParentSpan(parentSpan));
|
|
171
|
-
const listen = Stream.fromQueue(listenQueue).pipe(Stream.map(Either.right));
|
|
172
|
-
const closedDeferred = yield* Deferred.make();
|
|
136
|
+
const listen = Stream.fromQueue(listenQueue, { maxChunkSize: 1 }).pipe(Stream.map(Either.right));
|
|
137
|
+
const closedDeferred = yield* Deferred.make().pipe(Effect.acquireRelease(Deferred.done(Exit.void)));
|
|
173
138
|
const webChannel = {
|
|
174
139
|
[WebChannel.WebChannelSymbol]: WebChannel.WebChannelSymbol,
|
|
175
140
|
send,
|
|
@@ -177,7 +142,12 @@ export const makeMessageChannel = ({ nodeName, queue, newConnectionAvailablePubS
|
|
|
177
142
|
closedDeferred,
|
|
178
143
|
supportsTransferables: true,
|
|
179
144
|
schema,
|
|
145
|
+
debugInfo,
|
|
146
|
+
shutdown: Scope.close(scope, Exit.succeed('shutdown')),
|
|
147
|
+
};
|
|
148
|
+
return {
|
|
149
|
+
webChannel: webChannel,
|
|
150
|
+
initialConnectionDeferred,
|
|
180
151
|
};
|
|
181
|
-
|
|
182
|
-
}).pipe(Effect.withSpanScoped('makeMessageChannel'));
|
|
152
|
+
}));
|
|
183
153
|
//# sourceMappingURL=message-channel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-channel.js","sourceRoot":"","sources":["../../src/channel/message-channel.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"message-channel.js","sourceRoot":"","sources":["../../src/channel/message-channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PubSub } from '@livestore/utils/effect';
|
|
2
|
-
import { Effect, Queue, Schema, WebChannel } from '@livestore/utils/effect';
|
|
2
|
+
import { Effect, Queue, Schema, Scope, WebChannel } from '@livestore/utils/effect';
|
|
3
3
|
import { type ChannelName, type MeshNodeName, type ProxyQueueItem } from '../common.js';
|
|
4
4
|
import * as MeshSchema from '../mesh-schema.js';
|
|
5
5
|
interface MakeProxyChannelArgs {
|
|
@@ -14,6 +14,6 @@ interface MakeProxyChannelArgs {
|
|
|
14
14
|
listen: Schema.Schema<any, any>;
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
export declare const makeProxyChannel: ({ queue, nodeName, newConnectionAvailablePubSub, sendPacket, target, channelName, schema, }: MakeProxyChannelArgs) => Effect.Effect<WebChannel.WebChannel<any, any, never>, never,
|
|
17
|
+
export declare const makeProxyChannel: ({ queue, nodeName, newConnectionAvailablePubSub, sendPacket, target, channelName, schema, }: MakeProxyChannelArgs) => Effect.Effect<WebChannel.WebChannel<any, any, never>, never, Scope.Scope>;
|
|
18
18
|
export {};
|
|
19
19
|
//# sourceMappingURL=proxy-channel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-channel.d.ts","sourceRoot":"","sources":["../../src/channel/proxy-channel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAEL,MAAM,
|
|
1
|
+
{"version":3,"file":"proxy-channel.d.ts","sourceRoot":"","sources":["../../src/channel/proxy-channel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAEL,MAAM,EAKN,KAAK,EAEL,MAAM,EACN,KAAK,EAGL,UAAU,EACX,MAAM,yBAAyB,CAAA;AAGhC,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,UAAU,oBAAoB;IAC5B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAClC,QAAQ,EAAE,YAAY,CAAA;IACtB,4BAA4B,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IACzD,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,UAAU,CAAC,kBAAkB,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACtF,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;KAChC,CAAA;CACF;AAED,eAAO,MAAM,gBAAgB,gGAQ1B,oBAAoB,8EAkSpB,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { casesHandled, shouldNeverHappen } from '@livestore/utils';
|
|
2
|
-
import { Deferred, Effect, Either, Fiber, FiberHandle, Queue, Schedule, Schema, Stream, SubscriptionRef, WebChannel, } from '@livestore/utils/effect';
|
|
2
|
+
import { Deferred, Effect, Either, Exit, Fiber, FiberHandle, Queue, Schedule, Schema, Scope, Stream, SubscriptionRef, WebChannel, } from '@livestore/utils/effect';
|
|
3
3
|
import { nanoid } from '@livestore/utils/nanoid';
|
|
4
4
|
import { packetAsOtelAttributes, } from '../common.js';
|
|
5
5
|
import * as MeshSchema from '../mesh-schema.js';
|
|
6
|
-
export const makeProxyChannel = ({ queue, nodeName, newConnectionAvailablePubSub, sendPacket, target, channelName, schema, }) => Effect.gen(function* () {
|
|
6
|
+
export const makeProxyChannel = ({ queue, nodeName, newConnectionAvailablePubSub, sendPacket, target, channelName, schema, }) => Effect.scopeWithCloseable((scope) => Effect.gen(function* () {
|
|
7
7
|
const channelStateRef = { current: { _tag: 'Initial' } };
|
|
8
8
|
/**
|
|
9
9
|
* We need to unique identify a channel as multiple channels might exist between the same two nodes.
|
|
@@ -63,7 +63,8 @@ export const makeProxyChannel = ({ queue, nodeName, newConnectionAvailablePubSub
|
|
|
63
63
|
case 'ProxyChannelResponseSuccess': {
|
|
64
64
|
if (channelState._tag !== 'Pending') {
|
|
65
65
|
// return shouldNeverHappen(`Expected proxy channel to be pending but got ${channelState._tag}`)
|
|
66
|
-
if (channelState._tag === 'Established' &&
|
|
66
|
+
if (channelState._tag === 'Established' &&
|
|
67
|
+
channelState.combinedChannelId !== packet.combinedChannelId) {
|
|
67
68
|
return shouldNeverHappen(`Expected proxy channel to have the same combinedChannelId as the packet:\n${channelState.combinedChannelId} (channel) === ${packet.combinedChannelId} (packet)`);
|
|
68
69
|
}
|
|
69
70
|
else {
|
|
@@ -165,7 +166,7 @@ export const makeProxyChannel = ({ queue, nodeName, newConnectionAvailablePubSub
|
|
|
165
166
|
yield* Fiber.interrupt(rerunOnNewChannelFiber);
|
|
166
167
|
}).pipe(Effect.scoped, Effect.withSpan(`sendAckWithRetry:ProxyChannelPayload`), Effect.withParentSpan(channelSpan));
|
|
167
168
|
const listen = Stream.fromQueue(listenQueue).pipe(Stream.map(Either.right));
|
|
168
|
-
const closedDeferred = yield* Deferred.make();
|
|
169
|
+
const closedDeferred = yield* Deferred.make().pipe(Effect.acquireRelease(Deferred.done(Exit.void)));
|
|
169
170
|
const webChannel = {
|
|
170
171
|
[WebChannel.WebChannelSymbol]: WebChannel.WebChannelSymbol,
|
|
171
172
|
send,
|
|
@@ -173,7 +174,8 @@ export const makeProxyChannel = ({ queue, nodeName, newConnectionAvailablePubSub
|
|
|
173
174
|
closedDeferred,
|
|
174
175
|
supportsTransferables: true,
|
|
175
176
|
schema,
|
|
177
|
+
shutdown: Scope.close(scope, Exit.void),
|
|
176
178
|
};
|
|
177
179
|
return webChannel;
|
|
178
|
-
}).pipe(Effect.withSpanScoped('makeProxyChannel'));
|
|
180
|
+
}).pipe(Effect.withSpanScoped('makeProxyChannel')));
|
|
179
181
|
//# sourceMappingURL=proxy-channel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-channel.js","sourceRoot":"","sources":["../../src/channel/proxy-channel.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"proxy-channel.js","sourceRoot":"","sources":["../../src/channel/proxy-channel.ts"],"names":[],"mappings":"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"}
|
package/dist/common.d.ts
CHANGED
|
@@ -25,7 +25,10 @@ export declare class ConnectionAlreadyExistsError extends ConnectionAlreadyExist
|
|
|
25
25
|
}
|
|
26
26
|
export declare const packetAsOtelAttributes: (packet: typeof Packet.Type) => {
|
|
27
27
|
packet?: {
|
|
28
|
-
readonly remainingHops?: undefined;
|
|
28
|
+
readonly remainingHops?: readonly string[] | undefined;
|
|
29
|
+
readonly channelVersion: number;
|
|
30
|
+
readonly reqId: string | undefined;
|
|
31
|
+
readonly sourceId: string;
|
|
29
32
|
readonly id: string;
|
|
30
33
|
readonly target: string;
|
|
31
34
|
readonly source: string;
|
|
@@ -34,13 +37,13 @@ export declare const packetAsOtelAttributes: (packet: typeof Packet.Type) => {
|
|
|
34
37
|
readonly _tag: "MessageChannelRequest";
|
|
35
38
|
} | {
|
|
36
39
|
readonly remainingHops: readonly string[];
|
|
40
|
+
readonly reqId: string;
|
|
37
41
|
readonly id: string;
|
|
38
42
|
readonly target: string;
|
|
39
43
|
readonly source: string;
|
|
40
44
|
readonly channelName: string;
|
|
41
45
|
readonly hops: readonly string[];
|
|
42
46
|
readonly _tag: "MessageChannelResponseNoTransferables";
|
|
43
|
-
readonly reqId: string;
|
|
44
47
|
} | {
|
|
45
48
|
readonly remainingHops?: undefined;
|
|
46
49
|
readonly id: string;
|
|
@@ -52,24 +55,24 @@ export declare const packetAsOtelAttributes: (packet: typeof Packet.Type) => {
|
|
|
52
55
|
readonly channelIdCandidate: string;
|
|
53
56
|
} | {
|
|
54
57
|
readonly remainingHops: readonly string[];
|
|
58
|
+
readonly reqId: string;
|
|
55
59
|
readonly id: string;
|
|
56
60
|
readonly target: string;
|
|
57
61
|
readonly source: string;
|
|
58
62
|
readonly channelName: string;
|
|
59
63
|
readonly hops: readonly string[];
|
|
60
64
|
readonly _tag: "ProxyChannelResponseSuccess";
|
|
61
|
-
readonly reqId: string;
|
|
62
65
|
readonly channelIdCandidate: string;
|
|
63
66
|
readonly combinedChannelId: string;
|
|
64
67
|
} | {
|
|
65
68
|
readonly remainingHops: readonly string[];
|
|
69
|
+
readonly reqId: string;
|
|
66
70
|
readonly id: string;
|
|
67
71
|
readonly target: string;
|
|
68
72
|
readonly source: string;
|
|
69
73
|
readonly channelName: string;
|
|
70
74
|
readonly hops: readonly string[];
|
|
71
75
|
readonly _tag: "ProxyChannelPayloadAck";
|
|
72
|
-
readonly reqId: string;
|
|
73
76
|
readonly combinedChannelId: string;
|
|
74
77
|
} | {
|
|
75
78
|
readonly id: string;
|
|
@@ -78,6 +81,7 @@ export declare const packetAsOtelAttributes: (packet: typeof Packet.Type) => {
|
|
|
78
81
|
readonly _tag: "NetworkConnectionAdded";
|
|
79
82
|
} | undefined;
|
|
80
83
|
packetId: string;
|
|
84
|
+
'span.label': string;
|
|
81
85
|
};
|
|
82
86
|
export {};
|
|
83
87
|
//# sourceMappingURL=common.d.ts.map
|
package/dist/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAa,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAExE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAExF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,OAAO,kBAAkB,CAAC,IAAI,CAAA;IACtC,eAAe,EAAE,CAAC,GAAG,EAAE,OAAO,kBAAkB,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAC9E,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,OAAO,oBAAoB,CAAC,IAAI,CAAA;IACxC,eAAe,EAAE,CAAC,GAAG,EAAE,OAAO,oBAAoB,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CAChF,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAChC,MAAM,MAAM,UAAU,GAAG,GAAG,YAAY,IAAI,WAAW,EAAE,CAAA;;;;AAGzD,qBAAa,uBAAwB,SAAQ,4BAG5C;CAAG;;;;;;AAEJ,qBAAa,4BAA6B,SAAQ,iCAKjD;CAAG;AAEJ,eAAO,MAAM,sBAAsB,WAAY,OAAO,MAAM,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK/D,CAAA"}
|
package/dist/common.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Schema } from '@livestore/utils/effect';
|
|
1
|
+
import { Predicate, Schema } from '@livestore/utils/effect';
|
|
2
2
|
// TODO actually use this to avoid timeouts in certain cases
|
|
3
3
|
export class NoConnectionRouteSignal extends Schema.TaggedError()('NoConnectionRouteSignal', {}) {
|
|
4
4
|
}
|
|
@@ -8,6 +8,7 @@ export class ConnectionAlreadyExistsError extends Schema.TaggedError()('Connecti
|
|
|
8
8
|
}
|
|
9
9
|
export const packetAsOtelAttributes = (packet) => ({
|
|
10
10
|
packetId: packet.id,
|
|
11
|
+
'span.label': packet.id + (Predicate.hasProperty(packet, 'reqId') && packet.reqId !== undefined ? ` for ${packet.reqId}` : ''),
|
|
11
12
|
...(packet._tag !== 'MessageChannelResponseSuccess' && packet._tag !== 'ProxyChannelPayload' ? { packet } : {}),
|
|
12
13
|
});
|
|
13
14
|
//# sourceMappingURL=common.js.map
|
package/dist/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAmBxE,4DAA4D;AAC5D,MAAM,OAAO,uBAAwB,SAAQ,MAAM,CAAC,WAAW,EAA2B,CACxF,yBAAyB,EACzB,EAAE,CACH;CAAG;AAEJ,MAAM,OAAO,4BAA6B,SAAQ,MAAM,CAAC,WAAW,EAAgC,CAClG,8BAA8B,EAC9B;IACE,MAAM,EAAE,MAAM,CAAC,MAAM;CACtB,CACF;CAAG;AAEJ,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAA0B,EAAE,EAAE,CAAC,CAAC;IACrE,QAAQ,EAAE,MAAM,CAAC,EAAE;IACnB,YAAY,EACV,MAAM,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAClH,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,+BAA+B,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CAChH,CAAC,CAAA"}
|