@moltzap/client 2026.518.0 → 2026.519.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.
- package/dist/channel-base/format-cross-conv.d.ts +43 -0
- package/dist/channel-base/format-cross-conv.d.ts.map +1 -0
- package/dist/channel-base/format-cross-conv.js +69 -0
- package/dist/channel-base/format-cross-conv.js.map +1 -0
- package/dist/channel-base/format-group-block.d.ts +43 -0
- package/dist/channel-base/format-group-block.d.ts.map +1 -0
- package/dist/channel-base/format-group-block.js +59 -0
- package/dist/channel-base/format-group-block.js.map +1 -0
- package/dist/channel-base/index.d.ts +21 -0
- package/dist/channel-base/index.d.ts.map +1 -0
- package/dist/channel-base/index.js +24 -0
- package/dist/channel-base/index.js.map +1 -0
- package/dist/channel-base/lease-guard.d.ts +30 -0
- package/dist/channel-base/lease-guard.d.ts.map +1 -0
- package/dist/channel-base/lease-guard.js +40 -0
- package/dist/channel-base/lease-guard.js.map +1 -0
- package/dist/channel-base/lease-store.d.ts +30 -0
- package/dist/channel-base/lease-store.d.ts.map +1 -0
- package/dist/channel-base/lease-store.js +58 -0
- package/dist/channel-base/lease-store.js.map +1 -0
- package/dist/channel-base/lease.d.ts +94 -0
- package/dist/channel-base/lease.d.ts.map +1 -0
- package/dist/channel-base/lease.js +110 -0
- package/dist/channel-base/lease.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/notification/__tests__/filter-equivalence.test.d.ts +2 -0
- package/dist/notification/__tests__/filter-equivalence.test.d.ts.map +1 -0
- package/dist/notification/__tests__/filter-equivalence.test.js +123 -0
- package/dist/notification/__tests__/filter-equivalence.test.js.map +1 -0
- package/dist/notification/__tests__/snapshot-semantics.test.d.ts +2 -0
- package/dist/notification/__tests__/snapshot-semantics.test.d.ts.map +1 -0
- package/dist/notification/__tests__/snapshot-semantics.test.js +261 -0
- package/dist/notification/__tests__/snapshot-semantics.test.js.map +1 -0
- package/dist/notification/__tests__/snapshot-semantics.types-check.d.ts +3 -0
- package/dist/notification/__tests__/snapshot-semantics.types-check.d.ts.map +1 -0
- package/dist/notification/__tests__/snapshot-semantics.types-check.js +62 -0
- package/dist/notification/__tests__/snapshot-semantics.types-check.js.map +1 -0
- package/dist/notification/errors.d.ts +27 -0
- package/dist/notification/errors.d.ts.map +1 -0
- package/dist/notification/errors.js +24 -0
- package/dist/notification/errors.js.map +1 -0
- package/dist/notification/stream.d.ts +84 -0
- package/dist/notification/stream.d.ts.map +1 -0
- package/dist/notification/stream.js +106 -0
- package/dist/notification/stream.js.map +1 -0
- package/dist/runtime/index.d.ts +3 -4
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +3 -3
- package/dist/runtime/service-teardown.d.ts +5 -0
- package/dist/runtime/service-teardown.d.ts.map +1 -0
- package/dist/runtime/service-teardown.js +36 -0
- package/dist/runtime/service-teardown.js.map +1 -0
- package/dist/runtime/service-teardown.test.d.ts +2 -0
- package/dist/runtime/service-teardown.test.d.ts.map +1 -0
- package/dist/runtime/service-teardown.test.js +80 -0
- package/dist/runtime/service-teardown.test.js.map +1 -0
- package/dist/runtime/subscribers.d.ts +74 -136
- package/dist/runtime/subscribers.d.ts.map +1 -1
- package/dist/runtime/subscribers.js +187 -93
- package/dist/runtime/subscribers.js.map +1 -1
- package/dist/service.d.ts +10 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +45 -12
- package/dist/service.js.map +1 -1
- package/dist/test-utils/conformance-adapter.d.ts +6 -16
- package/dist/test-utils/conformance-adapter.d.ts.map +1 -1
- package/dist/test-utils/conformance-adapter.js +100 -59
- package/dist/test-utils/conformance-adapter.js.map +1 -1
- package/dist/ws-client-test-support.d.ts +1 -1
- package/dist/ws-client-test-support.d.ts.map +1 -1
- package/dist/ws-client-test-support.js +24 -3
- package/dist/ws-client-test-support.js.map +1 -1
- package/dist/ws-client.d.ts +52 -54
- package/dist/ws-client.d.ts.map +1 -1
- package/dist/ws-client.js +40 -168
- package/dist/ws-client.js.map +1 -1
- package/package.json +7 -3
- package/dist/runtime/subscribers.test.d.ts +0 -2
- package/dist/runtime/subscribers.test.d.ts.map +0 -1
- package/dist/runtime/subscribers.test.js +0 -193
- package/dist/runtime/subscribers.test.js.map +0 -1
package/dist/ws-client.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
/* eslint-disable jsdoc/text-escaping -- JSDoc references to generic types use natural angle-bracket form (TS source style) inside backtick code spans; matches filter-equivalence.test.ts precedent. */
|
|
1
2
|
import * as Socket from "@effect/platform/Socket";
|
|
2
3
|
import * as NodeSocket from "@effect/platform-node/NodeSocket";
|
|
3
|
-
import { Data, Deferred, Duration, Either, Effect, Exit, Fiber, HashMap, ManagedRuntime, Option, Queue, Ref, Schedule, Scope, } from "effect";
|
|
4
|
+
import { Data, Deferred, Duration, Either, Effect, Exit, Fiber, HashMap, ManagedRuntime, Option, Queue, Ref, Schedule, Scope, Stream, } from "effect";
|
|
4
5
|
import { PROTOCOL_VERSION, Connect, encodeErrorResponse, makeJsonRpcClient, makeJsonRpcServer, NotConnectedError, RpcTimeoutError, } from "@moltzap/protocol";
|
|
5
6
|
import { DuplicateServerRpcHandlerError } from "./runtime/errors.js";
|
|
6
7
|
import { decodeFrames } from "./runtime/frame.js";
|
|
7
8
|
import { makeSubscriberRegistry, } from "./runtime/subscribers.js";
|
|
9
|
+
import { subscribe as subscribeStream, subscribeAll as subscribeAllStream, } from "./notification/stream.js";
|
|
8
10
|
import { extractCloseInfo } from "./runtime/close-info.js";
|
|
9
11
|
/**
|
|
10
12
|
* Default per-RPC timeout. Exported so tests driving `TestClock` can match
|
|
@@ -16,7 +18,6 @@ const BASE_RECONNECT_DELAY_MS = 1000;
|
|
|
16
18
|
const MAX_RECONNECT_DELAY_MS = 30_000;
|
|
17
19
|
const RECONNECT_BACKOFF_FACTOR = 2;
|
|
18
20
|
const NORMAL_CLOSE_CODE = 1000;
|
|
19
|
-
const EVENT_WAIT_TIMEOUT_MS = 5000;
|
|
20
21
|
const WEB_SOCKET_OPEN_TIMEOUT_SECONDS = 10;
|
|
21
22
|
const MALFORMED_FRAME_PREVIEW_CHARS = 200;
|
|
22
23
|
/**
|
|
@@ -25,12 +26,6 @@ const MALFORMED_FRAME_PREVIEW_CHARS = 200;
|
|
|
25
26
|
*/
|
|
26
27
|
const MALFORMED_LOG_EVERY = 50;
|
|
27
28
|
export const shouldLogMalformedFrame = (count) => count === 1 || count % MALFORMED_LOG_EVERY === 0;
|
|
28
|
-
/**
|
|
29
|
-
* Cap on the per-client notification buffer. Any frame that has no live
|
|
30
|
-
* `waitForNotification` awaiter lands here until someone drains it. Excess
|
|
31
|
-
* frames are evicted FIFO so a slow consumer can't leak memory.
|
|
32
|
-
*/
|
|
33
|
-
const MAX_EVENT_BUFFER = 1000;
|
|
34
29
|
/**
|
|
35
30
|
* Capacity of the per-connection task-callback executor queue. Sized at
|
|
36
31
|
* 8192 to preserve the pre-cutover burst envelope (256 partitions × 32
|
|
@@ -48,25 +43,6 @@ const UTF8_DECODER = new TextDecoder("utf-8");
|
|
|
48
43
|
const makeNotConnectedError = () => new NotConnectedError({ message: MSG_NOT_CONNECTED });
|
|
49
44
|
class ReconnectAttemptFailedError extends Data.TaggedError("ReconnectAttemptFailedError") {
|
|
50
45
|
}
|
|
51
|
-
/**
|
|
52
|
-
* Notifications are pre-validated by the wire decoder
|
|
53
|
-
* (`decodeNotification` in `@moltzap/protocol`) — fail-close on unknown
|
|
54
|
-
* methods or bad params. Buffer + waiters hold the validated shape
|
|
55
|
-
* directly; no separate Raw|Unknown lift remains.
|
|
56
|
-
*/
|
|
57
|
-
function acceptTypedNotification(definition, notification) {
|
|
58
|
-
return notification.definition === definition;
|
|
59
|
-
}
|
|
60
|
-
/** Drop `waiter` from its notification-definition bucket, pruning an empty bucket. */
|
|
61
|
-
function removeWaiter(m, definition, waiter) {
|
|
62
|
-
const bucket = HashMap.get(m, definition);
|
|
63
|
-
if (bucket._tag === "None")
|
|
64
|
-
return m;
|
|
65
|
-
const filtered = bucket.value.filter((w) => w !== waiter);
|
|
66
|
-
return filtered.length === 0
|
|
67
|
-
? HashMap.remove(m, definition)
|
|
68
|
-
: HashMap.set(m, definition, filtered);
|
|
69
|
-
}
|
|
70
46
|
/**
|
|
71
47
|
* WebSocket lifecycle: open → network/connect → active. On disconnect,
|
|
72
48
|
* exponential backoff (1s base, 30s cap, jittered) retries the handshake via
|
|
@@ -78,23 +54,21 @@ function removeWaiter(m, definition, waiter) {
|
|
|
78
54
|
* `@effect/platform-node/NodeSocket.layerWebSocketConstructor`. The Node
|
|
79
55
|
* `WebSocketConstructor` layer is provided internally via `ManagedRuntime`
|
|
80
56
|
* so callers' `connect()` / `sendRpc()` Effects have no extra requirement.
|
|
57
|
+
*
|
|
58
|
+
* Notification consumption (spec #596 / Spec B): use `subscribe(def, refinement?)`
|
|
59
|
+
* for typed payload Streams; `subscribeAll(refinement?)` for the broad-union
|
|
60
|
+
* escape hatch. Both return `Stream.Stream` of `DecodedNotification` with a `NotConnectedError` error channel.
|
|
61
|
+
* Consume via `Stream.runForEach` (long-lived) or `Stream.runHead` + `Effect.timeoutFail`
|
|
62
|
+
* (one-shot).
|
|
81
63
|
*/
|
|
82
64
|
export class MoltZapWsClient {
|
|
83
65
|
options;
|
|
84
66
|
stateRef;
|
|
85
67
|
malformedRef;
|
|
86
|
-
notificationsBufferRef;
|
|
87
|
-
/**
|
|
88
|
-
* Waiters keyed by notification descriptor identity. Each bucket is a FIFO
|
|
89
|
-
* stack: delivery pops the most recently registered waiter (the tail).
|
|
90
|
-
*/
|
|
91
|
-
notificationWaitersRef;
|
|
92
68
|
runtime;
|
|
93
69
|
/**
|
|
94
|
-
* Per-subscription notification registry. Spec #
|
|
95
|
-
* `
|
|
96
|
-
* synchronously alongside the other Refs; `MoltZapWsClient.subscribe`
|
|
97
|
-
* delegates to it directly.
|
|
70
|
+
* Per-subscription notification registry. Spec #596 / Spec B: callback-based
|
|
71
|
+
* storage feeds `Stream.async` consumers via `notification/stream.ts`.
|
|
98
72
|
*/
|
|
99
73
|
subscribers;
|
|
100
74
|
/**
|
|
@@ -112,8 +86,6 @@ export class MoltZapWsClient {
|
|
|
112
86
|
this.runtime = ManagedRuntime.make(NodeSocket.layerWebSocketConstructor);
|
|
113
87
|
this.stateRef = this.runtime.runSync(Ref.make(Option.none()));
|
|
114
88
|
this.malformedRef = this.runtime.runSync(Ref.make(0));
|
|
115
|
-
this.notificationsBufferRef = this.runtime.runSync(Ref.make([]));
|
|
116
|
-
this.notificationWaitersRef = this.runtime.runSync(Ref.make(HashMap.empty()));
|
|
117
89
|
// Registry construction is `Effect<…, never>`; running it sync here
|
|
118
90
|
// matches every other Ref initializer in this constructor and
|
|
119
91
|
// keeps `subscribers` non-nullable inside the class.
|
|
@@ -123,7 +95,7 @@ export class MoltZapWsClient {
|
|
|
123
95
|
/**
|
|
124
96
|
* Register a handler for a server-initiated RPC method. Survives
|
|
125
97
|
* reconnects — the registry lives on the client, not the per-connection
|
|
126
|
-
* `ConnState`. Returns `Effect
|
|
98
|
+
* `ConnState`. Returns `Effect<void>` that fails with
|
|
127
99
|
* `DuplicateServerRpcHandlerError` if a handler for `method` is already
|
|
128
100
|
* registered (shadowing the existing one would silently swap behaviour
|
|
129
101
|
* mid-flight).
|
|
@@ -181,25 +153,23 @@ export class MoltZapWsClient {
|
|
|
181
153
|
const timeoutMs = opts?.timeoutMs ?? RPC_TIMEOUT_MS;
|
|
182
154
|
return this.sendRpcEffect(definition, params, timeoutMs);
|
|
183
155
|
}
|
|
156
|
+
subscribe(definition,
|
|
157
|
+
// eslint-disable-next-line agent-code-guard/no-conditional-chaining -- optional refinement is a value-level passthrough to the Stream factory; not a refinement-of-discriminant decision
|
|
158
|
+
refinement) {
|
|
159
|
+
return subscribeStream(this.subscribers, definition, refinement);
|
|
160
|
+
}
|
|
184
161
|
/**
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
* handle whose `unsubscribe` Effect drops delivery starting with the
|
|
189
|
-
* next inbound frame (OQ-3 A snapshot semantics).
|
|
162
|
+
* Broad-union escape hatch (spec #596 Goal #2). Returns a Stream of every
|
|
163
|
+
* inbound notification regardless of definition. Payload narrowing is
|
|
164
|
+
* intentionally lost — callers wanting typed payloads use `subscribe`.
|
|
190
165
|
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
* producing frames. Fails with `NotConnectedError` only if the client
|
|
194
|
-
* has been permanently torn down via `close()`.
|
|
166
|
+
* The only intended in-tree consumer is `MoltZapService.connect`'s
|
|
167
|
+
* service-wide notification fanout.
|
|
195
168
|
*/
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
}
|
|
201
|
-
return this.subscribers.register(filter, handler);
|
|
202
|
-
});
|
|
169
|
+
subscribeAll(
|
|
170
|
+
// eslint-disable-next-line agent-code-guard/no-conditional-chaining -- optional refinement is a value-level passthrough to the Stream factory; not a refinement-of-discriminant decision
|
|
171
|
+
refinement) {
|
|
172
|
+
return subscribeAllStream(this.subscribers, refinement);
|
|
203
173
|
}
|
|
204
174
|
/**
|
|
205
175
|
* Close the socket permanently (no reconnection). Writes a clean WebSocket
|
|
@@ -220,9 +190,12 @@ export class MoltZapWsClient {
|
|
|
220
190
|
yield* Effect.forkDaemon(Fiber.interrupt(f));
|
|
221
191
|
}
|
|
222
192
|
yield* this.failAllPending(MSG_NOT_CONNECTED);
|
|
223
|
-
yield* this.failAllNotificationWaiters(MSG_NOT_CONNECTED);
|
|
224
193
|
// Drop every live subscription so handlers stop firing once
|
|
225
|
-
// the client is permanently torn down.
|
|
194
|
+
// the client is permanently torn down. The registry invokes each
|
|
195
|
+
// sub's `onClose(new NotConnectedError(...))` callback, which fires
|
|
196
|
+
// `emit.fail` on the corresponding consumer Stream. Subsumes the
|
|
197
|
+
// deleted `failAllNotificationWaiters` semantic (spec #596 §3.2 +
|
|
198
|
+
// §"Stream lifecycle contract" row 5).
|
|
226
199
|
yield* this.subscribers.closeAll;
|
|
227
200
|
const state = yield* Ref.getAndSet(this.stateRef, Option.none());
|
|
228
201
|
if (Option.isSome(state)) {
|
|
@@ -247,72 +220,6 @@ export class MoltZapWsClient {
|
|
|
247
220
|
this.runtime.dispose();
|
|
248
221
|
})));
|
|
249
222
|
}
|
|
250
|
-
/**
|
|
251
|
-
* Wait for the next inbound notification matching `definition`.
|
|
252
|
-
* Consumes a buffered match if present; otherwise awaits the next match
|
|
253
|
-
* with a per-call timeout.
|
|
254
|
-
*/
|
|
255
|
-
waitForNotification(definition, timeoutMs = EVENT_WAIT_TIMEOUT_MS) {
|
|
256
|
-
return Effect.gen(this, function* () {
|
|
257
|
-
const buffered = yield* this.takeBufferedNotification(definition);
|
|
258
|
-
if (buffered !== null)
|
|
259
|
-
return buffered;
|
|
260
|
-
return yield* this.awaitNotification(definition, timeoutMs);
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
takeBufferedNotification(definition) {
|
|
264
|
-
return Ref.modify(this.notificationsBufferRef, (frames) => {
|
|
265
|
-
for (const [idx, frame] of frames.entries()) {
|
|
266
|
-
if (!acceptTypedNotification(definition, frame))
|
|
267
|
-
continue;
|
|
268
|
-
const next = [...frames.slice(0, idx), ...frames.slice(idx + 1)];
|
|
269
|
-
return [frame, next];
|
|
270
|
-
}
|
|
271
|
-
return [null, frames];
|
|
272
|
-
});
|
|
273
|
-
}
|
|
274
|
-
awaitNotification(definition, timeoutMs) {
|
|
275
|
-
return Effect.gen(this, function* () {
|
|
276
|
-
const deferred = yield* Deferred.make();
|
|
277
|
-
const waiter = this.makeNotificationWaiter(definition, deferred);
|
|
278
|
-
yield* this.addNotificationWaiter(definition, waiter);
|
|
279
|
-
return yield* Deferred.await(deferred).pipe(Effect.timeoutFail({
|
|
280
|
-
duration: `${timeoutMs} millis`,
|
|
281
|
-
onTimeout: () => new Error(`Timeout waiting for notification: ${definition.name}`),
|
|
282
|
-
}), Effect.onExit((exit) => Exit.isFailure(exit)
|
|
283
|
-
? this.removeNotificationWaiter(definition, waiter)
|
|
284
|
-
: Effect.void));
|
|
285
|
-
});
|
|
286
|
-
}
|
|
287
|
-
makeNotificationWaiter(definition, deferred) {
|
|
288
|
-
return {
|
|
289
|
-
definition,
|
|
290
|
-
complete: (notification) => acceptTypedNotification(definition, notification)
|
|
291
|
-
? Deferred.succeed(deferred, notification).pipe(Effect.asVoid)
|
|
292
|
-
: Effect.void,
|
|
293
|
-
fail: (error) => Deferred.fail(deferred, error).pipe(Effect.asVoid),
|
|
294
|
-
};
|
|
295
|
-
}
|
|
296
|
-
addNotificationWaiter(definition, waiter) {
|
|
297
|
-
return Ref.update(this.notificationWaitersRef, (m) => {
|
|
298
|
-
const existing = HashMap.get(m, definition);
|
|
299
|
-
const next = existing._tag === "Some" ? [...existing.value, waiter] : [waiter];
|
|
300
|
-
return HashMap.set(m, definition, next);
|
|
301
|
-
});
|
|
302
|
-
}
|
|
303
|
-
removeNotificationWaiter(definition, waiter) {
|
|
304
|
-
return Ref.update(this.notificationWaitersRef, (m) => removeWaiter(m, definition, waiter));
|
|
305
|
-
}
|
|
306
|
-
/**
|
|
307
|
-
* Return all buffered notifications and clear the buffer. Synchronous.
|
|
308
|
-
* Frames are pre-validation (`params: unknown`) — buffer holds the
|
|
309
|
-
* raw shape produced by the wire decoder.
|
|
310
|
-
*/
|
|
311
|
-
drainNotifications() {
|
|
312
|
-
const snapshot = this.runtime.runSync(Ref.get(this.notificationsBufferRef));
|
|
313
|
-
this.runtime.runSync(Ref.set(this.notificationsBufferRef, []));
|
|
314
|
-
return [...snapshot];
|
|
315
|
-
}
|
|
316
223
|
/** Close the socket without marking as permanently closed, triggering reconnection. */
|
|
317
224
|
disconnect() {
|
|
318
225
|
return Effect.sync(() => this.disconnectSync());
|
|
@@ -522,39 +429,15 @@ export class MoltZapWsClient {
|
|
|
522
429
|
}
|
|
523
430
|
});
|
|
524
431
|
}
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
const chosen = arr[arr.length - 1];
|
|
533
|
-
const rest = arr.slice(0, -1);
|
|
534
|
-
const nextMap = rest.length === 0
|
|
535
|
-
? HashMap.remove(waitersMap, decoded.definition)
|
|
536
|
-
: HashMap.set(waitersMap, decoded.definition, rest);
|
|
537
|
-
return [chosen, nextMap];
|
|
538
|
-
});
|
|
539
|
-
}
|
|
540
|
-
bufferNotification(decoded) {
|
|
541
|
-
return Ref.update(this.notificationsBufferRef, (buffer) => {
|
|
542
|
-
const appended = [...buffer, decoded];
|
|
543
|
-
return appended.length > MAX_EVENT_BUFFER
|
|
544
|
-
? appended.slice(-MAX_EVENT_BUFFER)
|
|
545
|
-
: appended;
|
|
546
|
-
});
|
|
547
|
-
}
|
|
432
|
+
/**
|
|
433
|
+
* Inbound notification routing. Spec #596 / Spec B: dispatch fans out
|
|
434
|
+
* through the registry's stored `onFrame` callbacks into each
|
|
435
|
+
* subscription's `Stream.async` source. The pre-arrival buffer and
|
|
436
|
+
* waiter-pop branches were deleted in Spec B (no top-level waiter, no
|
|
437
|
+
* `notificationsBufferRef`).
|
|
438
|
+
*/
|
|
548
439
|
handleDecodedNotification(decoded) {
|
|
549
|
-
return
|
|
550
|
-
yield* this.subscribers.dispatch(decoded);
|
|
551
|
-
const delivered = yield* this.takeNotificationWaiter(decoded);
|
|
552
|
-
if (delivered !== null) {
|
|
553
|
-
yield* delivered.complete(decoded);
|
|
554
|
-
return;
|
|
555
|
-
}
|
|
556
|
-
yield* this.bufferNotification(decoded);
|
|
557
|
-
});
|
|
440
|
+
return this.subscribers.dispatch(decoded);
|
|
558
441
|
}
|
|
559
442
|
handleDecodedFrame(decoded) {
|
|
560
443
|
switch (decoded._tag) {
|
|
@@ -569,7 +452,7 @@ export class MoltZapWsClient {
|
|
|
569
452
|
}
|
|
570
453
|
/**
|
|
571
454
|
* Route an inbound frame. Malformed frames are logged + dropped; notification
|
|
572
|
-
* frames
|
|
455
|
+
* frames fan out through the per-subscription registry (Spec B).
|
|
573
456
|
*/
|
|
574
457
|
handleIncoming(raw) {
|
|
575
458
|
return Effect.gen(this, function* () {
|
|
@@ -581,17 +464,6 @@ export class MoltZapWsClient {
|
|
|
581
464
|
}
|
|
582
465
|
});
|
|
583
466
|
}
|
|
584
|
-
/** Fail every outstanding notification waiter with `message` and clear the map. */
|
|
585
|
-
failAllNotificationWaiters(message) {
|
|
586
|
-
return Effect.gen(this, function* () {
|
|
587
|
-
const waiters = yield* Ref.getAndSet(this.notificationWaitersRef, HashMap.empty());
|
|
588
|
-
for (const [, bucket] of HashMap.entries(waiters)) {
|
|
589
|
-
for (const w of bucket) {
|
|
590
|
-
yield* w.fail(new Error(message));
|
|
591
|
-
}
|
|
592
|
-
}
|
|
593
|
-
});
|
|
594
|
-
}
|
|
595
467
|
failConnectionPending(state) {
|
|
596
468
|
return state.jsonRpcClient.failAllPending(new NotConnectedError({ message: MSG_NOT_CONNECTED }));
|
|
597
469
|
}
|
package/dist/ws-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"AAAA,wMAAwM;AACxM,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC;AAClD,OAAO,KAAK,UAAU,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,IAAI,EACJ,KAAK,EACL,OAAO,EACP,cAAc,EACd,MAAM,EACN,KAAK,EACL,GAAG,EACH,QAAQ,EACR,KAAK,EACL,MAAM,GACP,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,gBAAgB,EAChB,OAAO,EACP,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAehB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,sBAAsB,GAEvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,SAAS,IAAI,eAAe,EAC5B,YAAY,IAAI,kBAAkB,GACnC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAQ3E;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;AAQrC,sEAAsE;AACtE,MAAM,uBAAuB,GAAG,IAAI,CAAC;AACrC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AACtC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AACnC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAC3C,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAE1C;;;GAGG;AACH,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAW,EAAE,CAChE,KAAK,KAAK,CAAC,IAAI,KAAK,GAAG,mBAAmB,KAAK,CAAC,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAE1C,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAEpD,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AAE9C,MAAM,qBAAqB,GAAG,GAAsB,EAAE,CACpD,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAexD,MAAM,2BAA4B,SAAQ,IAAI,CAAC,WAAW,CACxD,6BAA6B,CAG7B;CAAG;AA4GL;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,eAAe;IA4BG;IA3BZ,QAAQ,CAAoC;IAC5C,YAAY,CAAkB;IAC9B,OAAO,CAGtB;IAEF;;;OAGG;IACc,WAAW,CAAqB;IAEjD;;;;;OAKG;IACc,sBAAsB,CAErC;IAEM,MAAM,GAAG,KAAK,CAAC;IACf,cAAc,GAA2C,IAAI,CAAC;IAC9D,QAAQ,GAAyB,IAAI,CAAC;IAE9C,YAA6B,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;QAC1D,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAClC,GAAG,CAAC,IAAI,CAA2B,MAAM,CAAC,IAAI,EAAE,CAAC,CAClD,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,oEAAoE;QACpE,8DAA8D;QAC9D,qDAAqD;QACrD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAChD,GAAG,CAAC,IAAI,CAEN,OAAO,CAAC,KAAK,EAAE,CAAC,CACnB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,eAAe,CACb,UAAa,EACb,OAA4B;QAE5B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE;gBACnE,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC;oBAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClD,OAAO;oBACL,IAAI;oBACJ,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,OAAiC,CAAC;iBAC9D,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,IAAI,8BAA8B,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAChE,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI;YAC9B,8DAA8D;YAC9D,2DAA2D;YAC3D,8DAA8D;YAC9D,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,yBAAyB,CAAC,CACrD,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,OAAO,CACL,UAAa,EACb,MAAmB,EACnB,IAAqB;QAErB,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,cAAc,CAAC;QACpD,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;IAgCD,SAAS,CACP,UAAa;IACb,yLAAyL;IACzL,UAAyD;QAEzD,OAAO,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;OAOG;IACH,YAAY;IACV,yLAAyL;IACzL,UAEY;QAMZ,OAAO,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;OAKG;IACH,KAAK;QACH,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/B,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO;YACxB,MAAM,qBAAqB,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;YACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;YACD,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAC9C,4DAA4D;YAC5D,iEAAiE;YACjE,oEAAoE;YACpE,iEAAiE;YACjE,kEAAkE;YAClE,uCAAuC;YACvC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,qBAAqB,EAAE,CAAC;oBAC1B,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK;yBACf,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;yBACzD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACtB,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnD,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClE,CAAC;gBACD,6DAA6D;gBAC7D,0DAA0D;gBAC1D,0CAA0C;gBAC1C,0DAA0D;gBAC1D,uDAAuD;gBACvD,2CAA2C;gBAC3C,IAAI,CAAC,OAAO,CAAC,OAAO,CAClB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CACpD,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CACb,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IAED,uFAAuF;IACvF,UAAU;QACR,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAClD,CAAC;IAEO,cAAc;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO;QACjC,oEAAoE;QACpE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,qEAAqE;QACrE,iDAAiD;QACjD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/D,iEAAiE;QACjE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,+DAA+D;QAC/D,kEAAkE;QAClE,4DAA4D;QAC5D,wDAAwD;QACxD,cAAc;QACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEO,gBAAgB,CAAC,KAAgB;QACvC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/B,IAAI,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa;QAKnB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CACvC,iBAAiB,CAAC;gBAChB,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC1B,QAAQ,EAAE,KAAK;aAChB,CAAC,EACF,KAAK,CACN,CAAC;YACF,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAG1C,CAAC;YACJ,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CACtC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,CAAC,eAAe,CAAC,CACxE,CAAC;YAEF,KAAK,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC;gBACjC,KAAK;gBACL,WAAW;gBACX,KAAK;gBACL,aAAa;gBACb,gBAAgB;gBAChB,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;gBAC/C,eAAe,EAAE,UAAU,CAAC,eAAe;aAC5C,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,YAAY;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;IAC/D,CAAC;IAEO,UAAU,CAChB,GAAW,EACX,KAA2B;QAM3B,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QACtE,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CACzE,MAAM,CAAC,WAAW,CAAC;YACjB,QAAQ,EAAE,WAAW;YACrB,SAAS,EAAE,qBAAqB;SACjC,CAAC,EACF,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7B,MAAM,CAAC,QAAQ,CACb,MAAM,CAAC,UAAU,CAAC,uBAAuB,EAAE,KAAK,CAAC,EACjD,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAC/D,CACF,CACF,CAAC;IACJ,CAAC;IAEO,2BAA2B,CACjC,KAAyB;QAEzB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/B,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAC5C,4BAA4B,CAC7B,CAAC;YACF,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAChC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAChC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACrB,IAAI,CAAC,4BAA4B,CAAC,GAAG,EAAE,KAAK,CAAC,CAC9C,CACF,CACF,CAAC;YACF,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YACnD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAClB,MAAuB,EACvB,gBAAgE,EAChE,eAAqC;QAErC,OAAO,MAAM;aACV,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACf,IAAI,CAAC,cAAc,CACjB,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAC5D,CACF;aACA,IAAI,CACH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACrB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAC/D,CACF,CAAC;IACN,CAAC;IAEO,gBAAgB,CACtB,IAAyC,EACzC,gBAAgE,EAChE,eAAqC;QAErC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/B,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAC9C,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAClE,MAAM,CAAC,MAAM,CACd,CAAC;YACF,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,KAAgB;QAC7C,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC;IAEO,gBAAgB,CACtB,gBAAgE;QAEhE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACvC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,WAAW,EAAE,gBAAgB;YAC7B,WAAW,EAAE,gBAAgB;SAC9B,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CACxE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC,CACH,CACF,CAAC;IACJ,CAAC;IAEO,aAAa,CACnB,UAAa,EACb,MAAmB,EACnB,SAAiB;QAEjB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,CACnE,MAAM,CAAC,WAAW,CAAC;gBACjB,QAAQ,EAAE,GAAG,SAAS,SAAS;gBAC/B,SAAS,EAAE,GAAG,EAAE,CACd,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;aAC9D,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,uBAAuB,CAC7B,SAAoB,EACpB,KAAyB;QAEzB,MAAM,KAAK,GAAkB,mBAAmB,CAAC,SAAS,EAAE;YAC1D,IAAI,EAAE,CAAC,KAAK;YACZ,OAAO,EAAE,4DAA4D,4BAA4B,GAAG;SACrG,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CACtC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CACvB,MAAM,CAAC,UAAU,CACf,iDAAiD,EACjD,IAAI,CACL,CACF,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,4BAA4B,CAClC,OAA6B,EAC7B,KAAyB;QAEzB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAC3D,KAAK,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,uBAAuB,CAC7B,OAA6B;QAE7B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC7D,MAAM,SAAS,GAAG,iBAAiB,CACjC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CACtC,CAAC;YACF,OAAO,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;gBAC5C,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAC5B,QAGC;QAED,OAAO,KAAK,CAAC,IAAI,CACf,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EACzB,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAgC,EAAE,CAAC,CAAC;YAC3D,UAAU;YACV,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,CAAC;SACpE,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,uBAAuB,CAC7B,KAAyB,EACzB,KAAoB;QAEpB,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CACtC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CACtB,MAAM,CAAC,UAAU,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAC5D,CACF,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,GAE5B;QACC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACvE,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,qBAAqB,KAAK,GAAG,CAAC,CAAC,IAAI,CAC1D,MAAM,CAAC,YAAY,CAAC;oBAClB,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,6BAA6B,CAAC;iBAC5D,CAAC,CACH,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,qBAAqB,CAC3B,OAAgC;QAEhC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAO;YACjC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa;iBAC7B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;iBACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,0BAA0B,CAChC,OAA6B;QAE7B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAO;YACjC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAChC,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAC7B,OAAO,CACR,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,KAAK,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,yBAAyB,CAC/B,OAAoC;QAEpC,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEO,kBAAkB,CACxB,OAA6B;QAE7B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,iBAAiB,CAAC;YACvB,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC7C,KAAK,eAAe;gBAClB,OAAO,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;YAClD,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,cAAc,CAAC,GAAW;QAChC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/B,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CACjD,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE,EAAE,CAC7C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAC/B,CACF,CAAC;YACF,IAAI,aAAa,KAAK,IAAI;gBAAE,OAAO;YAEnC,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,KAAgB;QAC5C,OAAO,KAAK,CAAC,aAAa,CAAC,cAAc,CACvC,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CACtD,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,OAAe;QACpC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAO;YACjC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,cAAc,CAC7C,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,CACnC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,iBAAiB;QACvB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,OAAO;QAExD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CACvC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACrB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;YACxB,IAAI,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CACH,EACD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,OAAO,CACZ,MAAM,CAAC,KAAK,CAAC;YACX,MAAM,EAAE,GAAG,EAAE,CACX,MAAM,CAAC,IAAI,CACT,IAAI,2BAA2B,CAAC;gBAC9B,MAAM,EAAE,0BAA0B;aACnC,CAAC,CACH;YACH,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SAC1C,CAAC,CACH,CACF,CAAC;QAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAClC,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC,EACxC,wBAAwB,CACzB,CAAC,IAAI,CACJ,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,EACzE,QAAQ,CAAC,QAAQ,CAClB,CAAC;QAEF,MAAM,IAAI,GAA+B,OAAO,CAAC,IAAI,CACnD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EACrB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAClC,MAAM,CAAC,QAAQ,CACb,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACf,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC,CAAC,CACH,EACD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,yBAAyB,CAAC,CACrD,CAAC;QAEF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moltzap/client",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.519.1",
|
|
4
4
|
"description": "MoltZap client service — connection, conversation state, and cross-conversation context",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -32,6 +32,10 @@
|
|
|
32
32
|
"./runtime": {
|
|
33
33
|
"types": "./dist/runtime/index.d.ts",
|
|
34
34
|
"import": "./dist/runtime/index.js"
|
|
35
|
+
},
|
|
36
|
+
"./channel-base": {
|
|
37
|
+
"types": "./dist/channel-base/index.d.ts",
|
|
38
|
+
"import": "./dist/channel-base/index.js"
|
|
35
39
|
}
|
|
36
40
|
},
|
|
37
41
|
"dependencies": {
|
|
@@ -43,7 +47,7 @@
|
|
|
43
47
|
"@effect/rpc": "0.75.1",
|
|
44
48
|
"@effect/typeclass": "0.40.0",
|
|
45
49
|
"effect": "3.21.2",
|
|
46
|
-
"@moltzap/protocol": "2026.
|
|
50
|
+
"@moltzap/protocol": "2026.519.0"
|
|
47
51
|
},
|
|
48
52
|
"devDependencies": {
|
|
49
53
|
"@effect/vitest": "^0.29.0",
|
|
@@ -52,7 +56,7 @@
|
|
|
52
56
|
"fast-check": "^4.6.0",
|
|
53
57
|
"typescript": "^5.7.0",
|
|
54
58
|
"vitest": "^3.0.0",
|
|
55
|
-
"@moltzap/server-core": "2026.
|
|
59
|
+
"@moltzap/server-core": "2026.519.0"
|
|
56
60
|
},
|
|
57
61
|
"scripts": {
|
|
58
62
|
"build": "tsc",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subscribers.test.d.ts","sourceRoot":"","sources":["../../src/runtime/subscribers.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Unit tests for the per-subscription event registry.
|
|
3
|
-
*
|
|
4
|
-
* Spec #222 §5.3 (C4 + the `RealClientEventSubscriber.subscribe` filter
|
|
5
|
-
* stub) requires:
|
|
6
|
-
* - Every set filter field narrows delivery (AND semantics).
|
|
7
|
-
* - Subscriptions fire in registration order.
|
|
8
|
-
* - Unsubscribe-during-dispatch is next-frame effective (OQ-3 A
|
|
9
|
-
* snapshot semantics).
|
|
10
|
-
* - Handler exceptions are caught + logged, not propagated.
|
|
11
|
-
*
|
|
12
|
-
* Each scenario gets a dedicated test so a mutation that bypasses the
|
|
13
|
-
* filter (e.g. force `matchesFilter` to always return `true`) trips the
|
|
14
|
-
* filter-narrows tests but leaves order tests passing — the tests
|
|
15
|
-
* discriminate.
|
|
16
|
-
*/
|
|
17
|
-
import * as fc from "fast-check";
|
|
18
|
-
import { expect, it } from "vitest";
|
|
19
|
-
import { Effect, Ref } from "effect";
|
|
20
|
-
import { ConversationArchivedNotificationDefinition, } from "@moltzap/protocol";
|
|
21
|
-
import { agentId, conversationId, taskId, TaskFailedNotificationDefinition, } from "@moltzap/protocol/testing";
|
|
22
|
-
import { makeSubscriberRegistry, matchesFilter } from "./subscribers.js";
|
|
23
|
-
const TASK_ID = taskId("11111111-1111-4111-8111-111111111111");
|
|
24
|
-
const CONV_1 = conversationId("22222222-2222-4222-8222-222222222222");
|
|
25
|
-
const CONV_2 = conversationId("33333333-3333-4333-8333-333333333333");
|
|
26
|
-
const AGENT_ID = agentId("44444444-4444-4444-8444-444444444444");
|
|
27
|
-
const PROPERTY_RUNS = 25;
|
|
28
|
-
const SUBSCRIBER_DEFECT_MESSAGE = "subscriber blew up";
|
|
29
|
-
const CONSTRUCTION_THROW_MESSAGE = "construction-time throw";
|
|
30
|
-
function pushValue(values, value) {
|
|
31
|
-
return Effect.sync(() => {
|
|
32
|
-
values.push(value);
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
function recordAndMaybeUnsubscribe(calls, frameIdx, unsubscribe) {
|
|
36
|
-
return Effect.gen(function* () {
|
|
37
|
-
calls.push(frameIdx);
|
|
38
|
-
if (frameIdx === 0 && unsubscribe !== null) {
|
|
39
|
-
yield* unsubscribe;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
function subscriberDefect() {
|
|
44
|
-
return Effect.die(new Error(SUBSCRIBER_DEFECT_MESSAGE));
|
|
45
|
-
}
|
|
46
|
-
function constructionThrow() {
|
|
47
|
-
throw new Error(CONSTRUCTION_THROW_MESSAGE);
|
|
48
|
-
}
|
|
49
|
-
function increment(value) {
|
|
50
|
-
return value + 1;
|
|
51
|
-
}
|
|
52
|
-
const filterableNotification = (method, params) => ({
|
|
53
|
-
method,
|
|
54
|
-
params,
|
|
55
|
-
});
|
|
56
|
-
const decodedNotification = (definition, params) => {
|
|
57
|
-
// Construct a DecodedNotification<D> directly from the typed
|
|
58
|
-
// descriptor + params — bypassing the wire decoder is intentional
|
|
59
|
-
// for test fixtures so the result type stays narrow to D rather than
|
|
60
|
-
// collapsing to the group's union.
|
|
61
|
-
const frame = definition.encode(params);
|
|
62
|
-
return {
|
|
63
|
-
_tag: "Notification",
|
|
64
|
-
jsonrpc: frame.jsonrpc,
|
|
65
|
-
definition,
|
|
66
|
-
method: definition.name,
|
|
67
|
-
params,
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
const taskFailedNotification = () => decodedNotification(TaskFailedNotificationDefinition, {
|
|
71
|
-
taskId: TASK_ID,
|
|
72
|
-
});
|
|
73
|
-
const conversationArchivedNotification = (conv) => decodedNotification(ConversationArchivedNotificationDefinition, {
|
|
74
|
-
conversationId: conv,
|
|
75
|
-
archivedAt: "2026-05-03T00:00:00Z",
|
|
76
|
-
by: AGENT_ID,
|
|
77
|
-
});
|
|
78
|
-
it("property: notificationNamePrefix follows string startsWith", () => {
|
|
79
|
-
expect.hasAssertions();
|
|
80
|
-
fc.assert(fc.property(fc.string(), fc.string(), (method, prefix) => {
|
|
81
|
-
expect(matchesFilter({ notificationNamePrefix: prefix }, filterableNotification(method, {}))).toBe(method.startsWith(prefix));
|
|
82
|
-
}), { numRuns: PROPERTY_RUNS });
|
|
83
|
-
});
|
|
84
|
-
it("empty filter matches every frame", () => {
|
|
85
|
-
expect(matchesFilter({}, filterableNotification("any", { x: 1 }))).toBe(true);
|
|
86
|
-
});
|
|
87
|
-
it("emissionTag matches on `__emissionTag` key", () => {
|
|
88
|
-
const frame = filterableNotification("e", { __emissionTag: "tag-1" });
|
|
89
|
-
expect(matchesFilter({ emissionTag: "tag-1" }, frame)).toBe(true);
|
|
90
|
-
expect(matchesFilter({ emissionTag: "tag-other" }, frame)).toBe(false);
|
|
91
|
-
});
|
|
92
|
-
it("conversationId matches on `conversationId` key", () => {
|
|
93
|
-
const frame = filterableNotification("e", { conversationId: "c-1" });
|
|
94
|
-
expect(matchesFilter({ conversationId: "c-1" }, frame)).toBe(true);
|
|
95
|
-
expect(matchesFilter({ conversationId: "c-2" }, frame)).toBe(false);
|
|
96
|
-
});
|
|
97
|
-
it("notificationNamePrefix uses startsWith", () => {
|
|
98
|
-
const frame = filterableNotification("messages/received", {});
|
|
99
|
-
expect(matchesFilter({ notificationNamePrefix: "messages/" }, frame)).toBe(true);
|
|
100
|
-
expect(matchesFilter({ notificationNamePrefix: "presence/" }, frame)).toBe(false);
|
|
101
|
-
});
|
|
102
|
-
it("AND semantics: all set fields must match", () => {
|
|
103
|
-
const frame = filterableNotification("messages/received", {
|
|
104
|
-
__emissionTag: "tag-1",
|
|
105
|
-
conversationId: "c-1",
|
|
106
|
-
});
|
|
107
|
-
expect(matchesFilter({
|
|
108
|
-
emissionTag: "tag-1",
|
|
109
|
-
conversationId: "c-1",
|
|
110
|
-
notificationNamePrefix: "m",
|
|
111
|
-
}, frame)).toBe(true);
|
|
112
|
-
expect(matchesFilter({ emissionTag: "tag-1", conversationId: "c-other" }, frame)).toBe(false);
|
|
113
|
-
});
|
|
114
|
-
it("non-record `params` cannot satisfy payload-key filters", () => {
|
|
115
|
-
const stringData = filterableNotification("e", "string-payload");
|
|
116
|
-
expect(matchesFilter({ emissionTag: "x" }, stringData)).toBe(false);
|
|
117
|
-
expect(matchesFilter({ conversationId: "x" }, stringData)).toBe(false);
|
|
118
|
-
expect(matchesFilter({ notificationNamePrefix: "e" }, stringData)).toBe(true);
|
|
119
|
-
});
|
|
120
|
-
it("dispatches in registration order", () => Effect.runPromise(Effect.gen(function* () {
|
|
121
|
-
const registry = yield* makeSubscriberRegistry();
|
|
122
|
-
const order = [];
|
|
123
|
-
yield* registry.register({}, () => pushValue(order, "a"));
|
|
124
|
-
yield* registry.register({}, () => pushValue(order, "b"));
|
|
125
|
-
yield* registry.dispatch(taskFailedNotification());
|
|
126
|
-
expect(order).toEqual(["a", "b"]);
|
|
127
|
-
})));
|
|
128
|
-
it("unsubscribe stops delivery for the next frame", () => Effect.runPromise(Effect.gen(function* () {
|
|
129
|
-
const registry = yield* makeSubscriberRegistry();
|
|
130
|
-
const aCalls = [];
|
|
131
|
-
const bCalls = [];
|
|
132
|
-
let frameIdx = 0;
|
|
133
|
-
let unsubA = null;
|
|
134
|
-
const handleA = yield* registry.register({}, () => recordAndMaybeUnsubscribe(aCalls, frameIdx, unsubA));
|
|
135
|
-
unsubA = handleA.unsubscribe;
|
|
136
|
-
yield* registry.register({}, () => pushValue(bCalls, frameIdx));
|
|
137
|
-
frameIdx = 0;
|
|
138
|
-
yield* registry.dispatch(taskFailedNotification());
|
|
139
|
-
frameIdx = 1;
|
|
140
|
-
yield* registry.dispatch(taskFailedNotification());
|
|
141
|
-
expect(aCalls).toEqual([0]); // a saw frame 0, not frame 1.
|
|
142
|
-
expect(bCalls).toEqual([0, 1]); // b saw both — snapshot at start of frame 0 still included a; b is unaffected by a's unsub.
|
|
143
|
-
})));
|
|
144
|
-
it("filters narrow delivery", () => Effect.runPromise(Effect.gen(function* () {
|
|
145
|
-
const registry = yield* makeSubscriberRegistry();
|
|
146
|
-
const seenByConv1 = [];
|
|
147
|
-
const seenByConv2 = [];
|
|
148
|
-
yield* registry.register({ conversationId: CONV_1 }, (frame) => pushValue(seenByConv1, frame));
|
|
149
|
-
yield* registry.register({ conversationId: CONV_2 }, (frame) => pushValue(seenByConv2, frame));
|
|
150
|
-
yield* registry.dispatch(conversationArchivedNotification(CONV_1));
|
|
151
|
-
yield* registry.dispatch(conversationArchivedNotification(CONV_2));
|
|
152
|
-
expect(seenByConv1).toHaveLength(1);
|
|
153
|
-
expect(seenByConv2).toHaveLength(1);
|
|
154
|
-
expect(seenByConv1[0].params.conversationId).toBe(CONV_1);
|
|
155
|
-
expect(seenByConv2[0].params.conversationId).toBe(CONV_2);
|
|
156
|
-
})));
|
|
157
|
-
it("handler exceptions are caught and subsequent subscribers still run", () => Effect.runPromise(Effect.gen(function* () {
|
|
158
|
-
const registry = yield* makeSubscriberRegistry();
|
|
159
|
-
const otherCalls = [];
|
|
160
|
-
yield* registry.register({}, subscriberDefect);
|
|
161
|
-
yield* registry.register({}, () => pushValue(otherCalls, 1));
|
|
162
|
-
yield* registry.dispatch(taskFailedNotification());
|
|
163
|
-
expect(otherCalls).toEqual([1]); // other subscribers still fire.
|
|
164
|
-
})));
|
|
165
|
-
it("construction-time handler throw is caught", () => Effect.runPromise(Effect.gen(function* () {
|
|
166
|
-
const registry = yield* makeSubscriberRegistry();
|
|
167
|
-
const otherCalls = [];
|
|
168
|
-
yield* registry.register({}, constructionThrow);
|
|
169
|
-
yield* registry.register({}, () => pushValue(otherCalls, 1));
|
|
170
|
-
yield* registry.dispatch(taskFailedNotification());
|
|
171
|
-
expect(otherCalls).toEqual([1]); // subsequent subscribers still fire.
|
|
172
|
-
})));
|
|
173
|
-
it("closeAll drops every subscription", () => Effect.runPromise(Effect.gen(function* () {
|
|
174
|
-
const registry = yield* makeSubscriberRegistry();
|
|
175
|
-
const calls = [];
|
|
176
|
-
yield* registry.register({}, () => pushValue(calls, 1));
|
|
177
|
-
yield* registry.closeAll;
|
|
178
|
-
yield* registry.dispatch(taskFailedNotification());
|
|
179
|
-
expect(calls).toEqual([]);
|
|
180
|
-
})));
|
|
181
|
-
it("Ref-make composition works inside an Effect.gen", () => Effect.runPromise(
|
|
182
|
-
// Smoke test that the Effect surface composes; the registry never
|
|
183
|
-
// resolves with `never` failure tag, so this can't catch
|
|
184
|
-
// typechecker drift, but it does pin behaviour.
|
|
185
|
-
Effect.gen(function* () {
|
|
186
|
-
const registry = yield* makeSubscriberRegistry();
|
|
187
|
-
const counter = yield* Ref.make(0);
|
|
188
|
-
yield* registry.register({}, () => Ref.update(counter, increment));
|
|
189
|
-
yield* registry.dispatch(taskFailedNotification());
|
|
190
|
-
const result = yield* Ref.get(counter);
|
|
191
|
-
expect(result).toBe(1);
|
|
192
|
-
})));
|
|
193
|
-
//# sourceMappingURL=subscribers.test.js.map
|