@laserdata/laser-sdk 0.5.3 → 0.6.0
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 +105 -79
- package/dist/agent/agdx.d.ts +8 -3
- package/dist/agent/agdx.d.ts.map +1 -1
- package/dist/agent/agdx.js +39 -22
- package/dist/agent/agdx.js.map +1 -1
- package/dist/agent/builder.d.ts +25 -15
- package/dist/agent/builder.d.ts.map +1 -1
- package/dist/agent/builder.js +103 -59
- package/dist/agent/builder.js.map +1 -1
- package/dist/agent/context.d.ts +3 -6
- package/dist/agent/context.d.ts.map +1 -1
- package/dist/agent/context.js +17 -9
- package/dist/agent/context.js.map +1 -1
- package/dist/agent/contract.d.ts +2 -2
- package/dist/agent/contract.d.ts.map +1 -1
- package/dist/agent/contract.js +10 -6
- package/dist/agent/contract.js.map +1 -1
- package/dist/agent/memory-handler.d.ts +25 -0
- package/dist/agent/memory-handler.d.ts.map +1 -0
- package/dist/agent/memory-handler.js +43 -0
- package/dist/agent/memory-handler.js.map +1 -0
- package/dist/agent/registry.d.ts +3 -10
- package/dist/agent/registry.d.ts.map +1 -1
- package/dist/agent/registry.js +22 -19
- package/dist/agent/registry.js.map +1 -1
- package/dist/agent/reliable-consumer.d.ts +19 -9
- package/dist/agent/reliable-consumer.d.ts.map +1 -1
- package/dist/agent/reliable-consumer.js +193 -54
- package/dist/agent/reliable-consumer.js.map +1 -1
- package/dist/agent/replies.d.ts +6 -0
- package/dist/agent/replies.d.ts.map +1 -1
- package/dist/agent/replies.js +55 -4
- package/dist/agent/replies.js.map +1 -1
- package/dist/agent/router.d.ts +1 -1
- package/dist/agent/router.d.ts.map +1 -1
- package/dist/agent/router.js +5 -19
- package/dist/agent/router.js.map +1 -1
- package/dist/agent/scope.d.ts +7 -3
- package/dist/agent/scope.d.ts.map +1 -1
- package/dist/agent/scope.js +11 -1
- package/dist/agent/scope.js.map +1 -1
- package/dist/agent/timer.d.ts +6 -0
- package/dist/agent/timer.d.ts.map +1 -0
- package/dist/agent/timer.js +21 -0
- package/dist/agent/timer.js.map +1 -0
- package/dist/agent/workflow.d.ts +16 -19
- package/dist/agent/workflow.d.ts.map +1 -1
- package/dist/agent/workflow.js +17 -6
- package/dist/agent/workflow.js.map +1 -1
- package/dist/blob.d.ts +2 -3
- package/dist/blob.d.ts.map +1 -1
- package/dist/blob.js.map +1 -1
- package/dist/bridges/a2a.d.ts +34 -23
- package/dist/bridges/a2a.d.ts.map +1 -1
- package/dist/bridges/a2a.js +29 -19
- package/dist/bridges/a2a.js.map +1 -1
- package/dist/bridges/hops.d.ts +1 -1
- package/dist/bridges/hops.d.ts.map +1 -1
- package/dist/bridges/hops.js +1 -1
- package/dist/bridges/hops.js.map +1 -1
- package/dist/bridges/mcp.d.ts +27 -7
- package/dist/bridges/mcp.d.ts.map +1 -1
- package/dist/bridges/mcp.js +24 -9
- package/dist/bridges/mcp.js.map +1 -1
- package/dist/client/bytes.d.ts +5 -0
- package/dist/client/bytes.d.ts.map +1 -1
- package/dist/client/bytes.js +15 -0
- package/dist/client/bytes.js.map +1 -1
- package/dist/client/capabilities.d.ts +25 -13
- package/dist/client/capabilities.d.ts.map +1 -1
- package/dist/client/capabilities.js +145 -123
- package/dist/client/capabilities.js.map +1 -1
- package/dist/client/error-classify.d.ts +57 -0
- package/dist/client/error-classify.d.ts.map +1 -0
- package/dist/client/error-classify.js +347 -0
- package/dist/client/error-classify.js.map +1 -0
- package/dist/client/errors.d.ts +113 -40
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +191 -53
- package/dist/client/errors.js.map +1 -1
- package/dist/client/internals.d.ts +1 -0
- package/dist/client/internals.d.ts.map +1 -1
- package/dist/client/internals.js +1 -0
- package/dist/client/internals.js.map +1 -1
- package/dist/client/laser.d.ts +62 -46
- package/dist/client/laser.d.ts.map +1 -1
- package/dist/client/laser.js +206 -120
- package/dist/client/laser.js.map +1 -1
- package/dist/client/managed.d.ts +3 -0
- package/dist/client/managed.d.ts.map +1 -1
- package/dist/client/managed.js +70 -3
- package/dist/client/managed.js.map +1 -1
- package/dist/context-scope.d.ts +25 -9
- package/dist/context-scope.d.ts.map +1 -1
- package/dist/context-scope.js +36 -9
- package/dist/context-scope.js.map +1 -1
- package/dist/context.d.ts +33 -16
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +174 -95
- package/dist/context.js.map +1 -1
- package/dist/conversation-state.d.ts +1 -1
- package/dist/conversation-state.d.ts.map +1 -1
- package/dist/conversation-state.js +35 -16
- package/dist/conversation-state.js.map +1 -1
- package/dist/govern.d.ts +24 -5
- package/dist/govern.d.ts.map +1 -1
- package/dist/govern.js +116 -28
- package/dist/govern.js.map +1 -1
- package/dist/iggy/apache-iggy.d.ts +59 -56
- package/dist/iggy/apache-iggy.d.ts.map +1 -1
- package/dist/iggy/apache-iggy.js +300 -137
- package/dist/iggy/apache-iggy.js.map +1 -1
- package/dist/index.d.ts +97 -65
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -30
- package/dist/index.js.map +1 -1
- package/dist/intent.d.ts +16 -2
- package/dist/intent.d.ts.map +1 -1
- package/dist/intent.js +50 -18
- package/dist/intent.js.map +1 -1
- package/dist/managed/coordination.d.ts +82 -0
- package/dist/managed/coordination.d.ts.map +1 -0
- package/dist/managed/coordination.js +367 -0
- package/dist/managed/coordination.js.map +1 -0
- package/dist/managed/destinations.d.ts +4 -3
- package/dist/managed/destinations.d.ts.map +1 -1
- package/dist/managed/destinations.js +29 -13
- package/dist/managed/destinations.js.map +1 -1
- package/dist/managed/filters.d.ts +5 -5
- package/dist/managed/filters.d.ts.map +1 -1
- package/dist/managed/filters.js +39 -22
- package/dist/managed/filters.js.map +1 -1
- package/dist/managed/forks.d.ts +8 -11
- package/dist/managed/forks.d.ts.map +1 -1
- package/dist/managed/forks.js +33 -13
- package/dist/managed/forks.js.map +1 -1
- package/dist/managed/graph.d.ts +1 -4
- package/dist/managed/graph.d.ts.map +1 -1
- package/dist/managed/graph.js +5 -3
- package/dist/managed/graph.js.map +1 -1
- package/dist/managed/kv.d.ts +26 -14
- package/dist/managed/kv.d.ts.map +1 -1
- package/dist/managed/kv.js +88 -61
- package/dist/managed/kv.js.map +1 -1
- package/dist/managed/projections.d.ts +5 -8
- package/dist/managed/projections.d.ts.map +1 -1
- package/dist/managed/projections.js +22 -2
- package/dist/managed/projections.js.map +1 -1
- package/dist/managed/query.d.ts +20 -6
- package/dist/managed/query.d.ts.map +1 -1
- package/dist/managed/query.js +97 -24
- package/dist/managed/query.js.map +1 -1
- package/dist/managed/runs.d.ts +2 -4
- package/dist/managed/runs.d.ts.map +1 -1
- package/dist/managed/runs.js +9 -1
- package/dist/managed/runs.js.map +1 -1
- package/dist/managed/watch.d.ts +2 -4
- package/dist/managed/watch.d.ts.map +1 -1
- package/dist/managed/watch.js +9 -1
- package/dist/managed/watch.js.map +1 -1
- package/dist/memory/handle.d.ts +75 -22
- package/dist/memory/handle.d.ts.map +1 -1
- package/dist/memory/handle.js +232 -58
- package/dist/memory/handle.js.map +1 -1
- package/dist/memory/log-memory.d.ts +24 -12
- package/dist/memory/log-memory.d.ts.map +1 -1
- package/dist/memory/log-memory.js +214 -100
- package/dist/memory/log-memory.js.map +1 -1
- package/dist/memory/topic.d.ts +2 -2
- package/dist/memory/topic.d.ts.map +1 -1
- package/dist/memory/topic.js +7 -5
- package/dist/memory/topic.js.map +1 -1
- package/dist/memory/types.d.ts +41 -5
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +44 -18
- package/dist/memory/types.js.map +1 -1
- package/dist/memory/vector-memory.d.ts +8 -6
- package/dist/memory/vector-memory.d.ts.map +1 -1
- package/dist/memory/vector-memory.js +65 -34
- package/dist/memory/vector-memory.js.map +1 -1
- package/dist/memory.d.ts +6 -5
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +4 -4
- package/dist/memory.js.map +1 -1
- package/dist/provenance/agent-topic.d.ts +3 -1
- package/dist/provenance/agent-topic.d.ts.map +1 -1
- package/dist/provenance/agent-topic.js +3 -1
- package/dist/provenance/agent-topic.js.map +1 -1
- package/dist/provenance/provenance.d.ts +3 -3
- package/dist/provenance/provenance.d.ts.map +1 -1
- package/dist/provenance/provenance.js +30 -18
- package/dist/provenance/provenance.js.map +1 -1
- package/dist/runtime/clock.d.ts +3 -0
- package/dist/runtime/clock.d.ts.map +1 -1
- package/dist/runtime/clock.js +16 -3
- package/dist/runtime/clock.js.map +1 -1
- package/dist/schema-codecs.d.ts +7 -3
- package/dist/schema-codecs.d.ts.map +1 -1
- package/dist/schema-codecs.js +80 -12
- package/dist/schema-codecs.js.map +1 -1
- package/dist/session.d.ts +27 -18
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +95 -37
- package/dist/session.js.map +1 -1
- package/dist/signing.d.ts +11 -5
- package/dist/signing.d.ts.map +1 -1
- package/dist/signing.js +64 -21
- package/dist/signing.js.map +1 -1
- package/dist/snapshot.d.ts +10 -2
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/snapshot.js +62 -28
- package/dist/snapshot.js.map +1 -1
- package/dist/state-store.d.ts +1 -1
- package/dist/state-store.d.ts.map +1 -1
- package/dist/state-store.js.map +1 -1
- package/dist/stream/batching.d.ts +81 -0
- package/dist/stream/batching.d.ts.map +1 -0
- package/dist/stream/batching.js +210 -0
- package/dist/stream/batching.js.map +1 -0
- package/dist/stream/bson.d.ts +3 -0
- package/dist/stream/bson.d.ts.map +1 -0
- package/dist/stream/bson.js +245 -0
- package/dist/stream/bson.js.map +1 -0
- package/dist/stream/codecs.d.ts +58 -6
- package/dist/stream/codecs.d.ts.map +1 -1
- package/dist/stream/codecs.js +143 -59
- package/dist/stream/codecs.js.map +1 -1
- package/dist/stream/consumer-group.d.ts +13 -10
- package/dist/stream/consumer-group.d.ts.map +1 -1
- package/dist/stream/consumer-group.js +91 -31
- package/dist/stream/consumer-group.js.map +1 -1
- package/dist/stream/consumer-start.d.ts +17 -0
- package/dist/stream/consumer-start.d.ts.map +1 -0
- package/dist/stream/consumer-start.js +2 -0
- package/dist/stream/consumer-start.js.map +1 -0
- package/dist/stream/consumer.d.ts +166 -24
- package/dist/stream/consumer.d.ts.map +1 -1
- package/dist/stream/consumer.js +451 -68
- package/dist/stream/consumer.js.map +1 -1
- package/dist/stream/cursor.d.ts +5 -12
- package/dist/stream/cursor.d.ts.map +1 -1
- package/dist/stream/cursor.js +34 -8
- package/dist/stream/cursor.js.map +1 -1
- package/dist/stream/header-value.d.ts +61 -15
- package/dist/stream/header-value.d.ts.map +1 -1
- package/dist/stream/header-value.js.map +1 -1
- package/dist/stream/message.d.ts +17 -0
- package/dist/stream/message.d.ts.map +1 -0
- package/dist/stream/message.js +9 -0
- package/dist/stream/message.js.map +1 -0
- package/dist/stream/producer.d.ts +127 -11
- package/dist/stream/producer.d.ts.map +1 -1
- package/dist/stream/producer.js +401 -36
- package/dist/stream/producer.js.map +1 -1
- package/dist/stream/publish.d.ts +6 -15
- package/dist/stream/publish.d.ts.map +1 -1
- package/dist/stream/publish.js +18 -28
- package/dist/stream/publish.js.map +1 -1
- package/dist/stream/record.d.ts +4 -6
- package/dist/stream/record.d.ts.map +1 -1
- package/dist/stream/record.js +4 -3
- package/dist/stream/record.js.map +1 -1
- package/dist/stream/routing.d.ts +12 -0
- package/dist/stream/routing.d.ts.map +1 -1
- package/dist/stream/routing.js +6 -1
- package/dist/stream/routing.js.map +1 -1
- package/dist/stream/stream.d.ts +1 -4
- package/dist/stream/stream.d.ts.map +1 -1
- package/dist/stream/stream.js +5 -1
- package/dist/stream/stream.js.map +1 -1
- package/dist/stream/topic.d.ts +22 -23
- package/dist/stream/topic.d.ts.map +1 -1
- package/dist/stream/topic.js +90 -30
- package/dist/stream/topic.js.map +1 -1
- package/dist/stream/typed-topic.d.ts +9 -13
- package/dist/stream/typed-topic.d.ts.map +1 -1
- package/dist/stream/typed-topic.js +25 -10
- package/dist/stream/typed-topic.js.map +1 -1
- package/dist/swarm.d.ts +0 -1
- package/dist/swarm.d.ts.map +1 -1
- package/dist/swarm.js +1 -0
- package/dist/swarm.js.map +1 -1
- package/dist/testing.d.ts +3 -3
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +3 -3
- package/dist/testing.js.map +1 -1
- package/dist/types/ids.d.ts +17 -2
- package/dist/types/ids.d.ts.map +1 -1
- package/dist/types/ids.js +34 -14
- package/dist/types/ids.js.map +1 -1
- package/dist/wire/agent.d.ts +22 -0
- package/dist/wire/agent.d.ts.map +1 -1
- package/dist/wire/agent.js +80 -25
- package/dist/wire/agent.js.map +1 -1
- package/dist/wire/authz.d.ts +35 -1
- package/dist/wire/authz.d.ts.map +1 -1
- package/dist/wire/authz.js +45 -15
- package/dist/wire/authz.js.map +1 -1
- package/dist/wire/cbor.d.ts.map +1 -1
- package/dist/wire/cbor.js +13 -2
- package/dist/wire/cbor.js.map +1 -1
- package/dist/wire/checkpoint.d.ts +17 -12
- package/dist/wire/checkpoint.d.ts.map +1 -1
- package/dist/wire/checkpoint.js +28 -3
- package/dist/wire/checkpoint.js.map +1 -1
- package/dist/wire/control.d.ts +82 -0
- package/dist/wire/control.d.ts.map +1 -1
- package/dist/wire/control.js +219 -0
- package/dist/wire/control.js.map +1 -1
- package/dist/wire/filter-eval.d.ts +41 -7
- package/dist/wire/filter-eval.d.ts.map +1 -1
- package/dist/wire/filter-eval.js +26 -28
- package/dist/wire/filter-eval.js.map +1 -1
- package/dist/wire/filter.d.ts +51 -17
- package/dist/wire/filter.d.ts.map +1 -1
- package/dist/wire/filter.js +99 -10
- package/dist/wire/filter.js.map +1 -1
- package/dist/wire/fork.d.ts +14 -1
- package/dist/wire/fork.d.ts.map +1 -1
- package/dist/wire/fork.js +19 -8
- package/dist/wire/fork.js.map +1 -1
- package/dist/wire/graph.d.ts +3 -0
- package/dist/wire/graph.d.ts.map +1 -1
- package/dist/wire/graph.js +18 -4
- package/dist/wire/graph.js.map +1 -1
- package/dist/wire/hello.d.ts +4 -1
- package/dist/wire/hello.d.ts.map +1 -1
- package/dist/wire/hello.js +13 -3
- package/dist/wire/hello.js.map +1 -1
- package/dist/wire/index.d.ts +4 -1
- package/dist/wire/index.d.ts.map +1 -1
- package/dist/wire/index.js +4 -1
- package/dist/wire/index.js.map +1 -1
- package/dist/wire/kv.d.ts +37 -2
- package/dist/wire/kv.d.ts.map +1 -1
- package/dist/wire/kv.js +36 -18
- package/dist/wire/kv.js.map +1 -1
- package/dist/wire/query.d.ts +6 -0
- package/dist/wire/query.d.ts.map +1 -1
- package/dist/wire/query.js +38 -12
- package/dist/wire/query.js.map +1 -1
- package/dist/wire/schema.d.ts +29 -6
- package/dist/wire/schema.d.ts.map +1 -1
- package/dist/wire/schema.js +61 -26
- package/dist/wire/schema.js.map +1 -1
- package/dist/wire/snapshot.js +1 -1
- package/dist/wire/snapshot.js.map +1 -1
- package/dist/wire/value.d.ts +10 -2
- package/dist/wire/value.d.ts.map +1 -1
- package/dist/wire/value.js +29 -3
- package/dist/wire/value.js.map +1 -1
- package/package.json +2 -3
- package/dist/stream/polling-strategy.d.ts +0 -14
- package/dist/stream/polling-strategy.d.ts.map +0 -1
- package/dist/stream/polling-strategy.js +0 -2
- package/dist/stream/polling-strategy.js.map +0 -1
package/dist/snapshot.js
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { decodeOne, encodeNamed, expectMap } from "./wire/cbor.js";
|
|
2
2
|
import { decodeFoldSnapshot, encodeFoldSnapshot } from "./wire/snapshot.js";
|
|
3
|
+
import { NoStreamError } from "./client/errors.js";
|
|
3
4
|
import { INTERNAL_TRANSPORT } from "./client/internals.js";
|
|
4
5
|
export const DEFAULT_SNAPSHOT_NAMESPACE = "agent.snapshots";
|
|
5
6
|
export const DEFAULT_SNAPSHOT_TOPIC = "agent.snapshots";
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
const SCAN_BATCH = 256n;
|
|
8
|
+
/** Encode a fold snapshot to the named-field CBOR bytes used by Rust. */
|
|
9
|
+
export function encodeSnapshot(snapshot) {
|
|
10
|
+
return encodeNamed(encodeFoldSnapshot(snapshot));
|
|
11
|
+
}
|
|
12
|
+
/** Decode a fold snapshot from its stored bytes. */
|
|
13
|
+
export function decodeSnapshot(payload) {
|
|
14
|
+
const context = "fold snapshot";
|
|
15
|
+
return decodeFoldSnapshot(expectMap(decodeOne(payload, context), context), context);
|
|
8
16
|
}
|
|
9
17
|
export class TopicSnapshotStore {
|
|
10
18
|
laser;
|
|
@@ -13,39 +21,42 @@ export class TopicSnapshotStore {
|
|
|
13
21
|
this.laser = laser;
|
|
14
22
|
this.topic = topic;
|
|
15
23
|
}
|
|
24
|
+
/** Walks each partition backward from its tail and stops at the newest
|
|
25
|
+
* record for the conversation, so a hit costs the distance to the last
|
|
26
|
+
* checkpoint. A conversation with no snapshot walks the whole topic, so keep
|
|
27
|
+
* the snapshots topic on retention. */
|
|
16
28
|
async latest(conversation) {
|
|
17
29
|
const stream = this.laser.defaultStream;
|
|
18
|
-
if (stream === undefined)
|
|
19
|
-
|
|
20
|
-
|
|
30
|
+
if (stream === undefined) {
|
|
31
|
+
throw new NoStreamError("a snapshot lookup requires a default stream, use connectWithStream() or withDefaultStream()");
|
|
32
|
+
}
|
|
33
|
+
const transport = this.laser[INTERNAL_TRANSPORT]();
|
|
34
|
+
const partitions = await transport.findTopicPartitionCount(stream, this.topic);
|
|
21
35
|
if (partitions === undefined)
|
|
22
36
|
return undefined;
|
|
23
|
-
|
|
24
|
-
let
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (latest === undefined ||
|
|
42
|
-
timestamp > latest.timestamp ||
|
|
43
|
-
(timestamp === latest.timestamp && record.offset > latest.offset)) {
|
|
44
|
-
latest = { snapshot, timestamp, offset: record.offset };
|
|
37
|
+
let newest;
|
|
38
|
+
for (let partitionId = 0; partitionId < partitions; partitionId += 1) {
|
|
39
|
+
const target = { kind: "single", partitionId };
|
|
40
|
+
const tail = await transport.pollMessages(stream, this.topic, target, { kind: "last" }, 1, false);
|
|
41
|
+
const last = tail[tail.length - 1];
|
|
42
|
+
if (last === undefined)
|
|
43
|
+
continue;
|
|
44
|
+
let end = last.offset + 1n;
|
|
45
|
+
// Newest window first, and within a window the highest matching offset
|
|
46
|
+
// wins, so the walk stops at the conversation's latest checkpoint.
|
|
47
|
+
while (end > 0n) {
|
|
48
|
+
const start = end > SCAN_BATCH ? end - SCAN_BATCH : 0n;
|
|
49
|
+
const window = await transport.pollMessages(stream, this.topic, target, { kind: "offset", value: start }, Number(SCAN_BATCH), false);
|
|
50
|
+
const found = newestMatch(window, end, conversation);
|
|
51
|
+
if (found !== undefined) {
|
|
52
|
+
if (newest === undefined || found.offset > newest.offset)
|
|
53
|
+
newest = found;
|
|
54
|
+
break;
|
|
45
55
|
}
|
|
56
|
+
end = start;
|
|
46
57
|
}
|
|
47
58
|
}
|
|
48
|
-
return
|
|
59
|
+
return newest?.snapshot;
|
|
49
60
|
}
|
|
50
61
|
async save(snapshot) {
|
|
51
62
|
await this.laser.topic(this.topic).send(encodeNamed(encodeFoldSnapshot(snapshot)), {
|
|
@@ -77,4 +88,27 @@ export class KvSnapshotStore {
|
|
|
77
88
|
.send();
|
|
78
89
|
}
|
|
79
90
|
}
|
|
91
|
+
function sameConversation(left, right) {
|
|
92
|
+
return left.toString() === right.toString();
|
|
93
|
+
}
|
|
94
|
+
function snapshotOf(payload) {
|
|
95
|
+
try {
|
|
96
|
+
return decodeSnapshot(payload);
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function newestMatch(window, end, conversation) {
|
|
103
|
+
for (let index = window.length - 1; index >= 0; index -= 1) {
|
|
104
|
+
const message = window[index];
|
|
105
|
+
if (message === undefined || message.offset >= end)
|
|
106
|
+
continue;
|
|
107
|
+
const snapshot = snapshotOf(message.payload);
|
|
108
|
+
if (snapshot !== undefined && sameConversation(snapshot.conversation, conversation)) {
|
|
109
|
+
return { offset: message.offset, snapshot };
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
80
114
|
//# sourceMappingURL=snapshot.js.map
|
package/dist/snapshot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAqB,MAAM,oBAAoB,CAAA;AAG9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAG1D,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAA;AAC3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAqB,MAAM,oBAAoB,CAAA;AAG9F,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAG1D,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAA;AAC3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CAAA;AAEvD,MAAM,UAAU,GAAG,IAAI,CAAA;AAOvB,yEAAyE;AACzE,MAAM,UAAU,cAAc,CAAC,QAAsB;IACnD,OAAO,WAAW,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAA;AAClD,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,cAAc,CAAC,OAAmB;IAChD,MAAM,OAAO,GAAG,eAAe,CAAA;IAC/B,OAAO,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;AACrF,CAAC;AAED,MAAM,OAAO,kBAAkB;IAEV,KAAK;IACL,KAAK;IAFxB,YACmB,KAAY,EACZ,KAAK,GAAG,sBAAsB;qBAD9B,KAAK;qBACL,KAAK;IACrB,CAAC;IAEJ;;;2CAGuC;IACvC,KAAK,CAAC,MAAM,CAAC,YAA+B;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAA;QACvC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,aAAa,CACrB,6FAA6F,CAC9F,CAAA;QACH,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAA;QAClD,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC9E,IAAI,UAAU,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAC9C,IAAI,MAAgF,CAAA;QACpF,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,UAAU,EAAE,WAAW,IAAI,CAAC,EAAE,CAAC;YACrE,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAW,CAAA;YACvD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,YAAY,CACvC,MAAM,EACN,IAAI,CAAC,KAAK,EACV,MAAM,EACN,EAAE,IAAI,EAAE,MAAM,EAAE,EAChB,CAAC,EACD,KAAK,CACN,CAAA;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAClC,IAAI,IAAI,KAAK,SAAS;gBAAE,SAAQ;YAChC,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;YAC1B,uEAAuE;YACvE,mEAAmE;YACnE,OAAO,GAAG,GAAG,EAAE,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;gBACtD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CACzC,MAAM,EACN,IAAI,CAAC,KAAK,EACV,MAAM,EACN,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAChC,MAAM,CAAC,UAAU,CAAC,EAClB,KAAK,CACN,CAAA;gBACD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,CAAA;gBACpD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;wBAAE,MAAM,GAAG,KAAK,CAAA;oBACxE,MAAK;gBACP,CAAC;gBACD,GAAG,GAAG,KAAK,CAAA;YACb,CAAC;QACH,CAAC;QACD,OAAO,MAAM,EAAE,QAAQ,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAsB;QAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,EAAE;YACjF,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;SAChE,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,eAAe;IAEP,KAAK;IACL,SAAS;IAF5B,YACmB,KAAY,EACZ,SAAS,GAAG,0BAA0B;qBADtC,KAAK;yBACL,SAAS;IACzB,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,YAA+B;QAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK;aAC7B,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;aAClB,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QACzD,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAC3C,MAAM,OAAO,GAAG,eAAe,CAAA;QAC/B,OAAO,kBAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;IACrF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAsB;QAC/B,MAAM,IAAI,CAAC,KAAK;aACb,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;aAClB,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC/D,KAAK,CAAC,WAAW,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;aAChD,IAAI,EAAE,CAAA;IACX,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,IAAoB,EAAE,KAAwB;IACtE,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAA;AAC7C,CAAC;AAED,SAAS,UAAU,CAAC,OAAmB;IACrC,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,MAA4E,EAC5E,GAAW,EACX,YAA+B;IAE/B,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC7B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG;YAAE,SAAQ;QAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,QAAQ,KAAK,SAAS,IAAI,gBAAgB,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CAAC;YACpF,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAA;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
package/dist/state-store.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export declare class InMemoryStore implements StateStore {
|
|
|
10
10
|
delete(key: string): Promise<void>;
|
|
11
11
|
}
|
|
12
12
|
export declare class FileStore implements StateStore {
|
|
13
|
-
readonly root
|
|
13
|
+
private readonly root;
|
|
14
14
|
constructor(root: string);
|
|
15
15
|
get(key: string): Promise<Uint8Array | undefined>;
|
|
16
16
|
set(key: string, value: Uint8Array): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../src/state-store.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAA;IACjD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACnC;AAED,qBAAa,aAAc,YAAW,UAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IAExD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAGhD;IAED,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjD;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjC;CACF;AAQD,qBAAa,SAAU,YAAW,UAAU;IAC9B,QAAQ,CAAC,IAAI
|
|
1
|
+
{"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../src/state-store.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAA;IACjD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACnC;AAED,qBAAa,aAAc,YAAW,UAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IAExD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAGhD;IAED,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjD;IAED,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjC;CACF;AAQD,qBAAa,SAAU,YAAW,UAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,MAAM,EAAI;IAEvC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAOtD;IAEK,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvD;IAEK,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvC;IAED,OAAO,CAAC,OAAO;CAGhB"}
|
package/dist/state-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-store.js","sourceRoot":"","sources":["../src/state-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAQpD,MAAM,OAAO,aAAa;IACP,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAA;IAExD,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACnC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;IACzE,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAiB;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;QACpC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACxB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF;AAED,SAAS,MAAM,CAAC,GAAW;IACzB,OAAO,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACjD,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED,MAAM,OAAO,SAAS;
|
|
1
|
+
{"version":3,"file":"state-store.js","sourceRoot":"","sources":["../src/state-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { type BytesLike } from "../client/bytes.js";
|
|
2
|
+
import type { MessageWithHeaders } from "../iggy/apache-iggy.js";
|
|
3
|
+
import type { HeaderValue } from "./header-value.js";
|
|
4
|
+
/** Flush at this many queued records unless overridden. */
|
|
5
|
+
export declare const DEFAULT_MAX_RECORDS = 512;
|
|
6
|
+
/** Flush at this many queued payload bytes unless overridden (1 MiB). */
|
|
7
|
+
export declare const DEFAULT_MAX_BYTES: number;
|
|
8
|
+
/** Flush a non-empty queue after at most this many milliseconds unless overridden. */
|
|
9
|
+
export declare const DEFAULT_LINGER_MS = 5;
|
|
10
|
+
/** The smallest linger the timer runs at. */
|
|
11
|
+
export declare const MIN_LINGER_MS = 1;
|
|
12
|
+
/** Appends one flushed batch under the handle's partitioning. */
|
|
13
|
+
export type BatchSink = (records: readonly MessageWithHeaders[], partitionKey: Uint8Array | undefined) => Promise<unknown>;
|
|
14
|
+
/**
|
|
15
|
+
* Builds a `BatchingProducer`, opened with `topic.batching()`. The batch
|
|
16
|
+
* flushes on whichever of `maxRecords`, `maxBytes`, or `lingerMs` trips first.
|
|
17
|
+
*/
|
|
18
|
+
export declare class BatchingProducerBuilder {
|
|
19
|
+
private readonly sink;
|
|
20
|
+
private readonly stream;
|
|
21
|
+
private readonly topic;
|
|
22
|
+
private maxRecordsValue;
|
|
23
|
+
private maxBytesValue;
|
|
24
|
+
private lingerValue;
|
|
25
|
+
private partitionKeyValue;
|
|
26
|
+
private constructor();
|
|
27
|
+
/** Flush once this many records are queued. */
|
|
28
|
+
maxRecords(count: number): this;
|
|
29
|
+
/** Flush once the queued payload bytes reach this bound. */
|
|
30
|
+
maxBytes(bytes: number): this;
|
|
31
|
+
/** Flush a non-empty queue after at most this long, so a trickle of records
|
|
32
|
+
* never waits for a full batch. */
|
|
33
|
+
linger(milliseconds: number): this;
|
|
34
|
+
/** Pins every record of this handle to one partition key, so ordering within
|
|
35
|
+
* the key is never interleaved. Without a key, each flushed batch is
|
|
36
|
+
* spread by the balanced partitioner. */
|
|
37
|
+
partitionKey(key: string | BytesLike): this;
|
|
38
|
+
/** Builds the handle and starts its linger timer. */
|
|
39
|
+
build(): BatchingProducer;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A size-and-time batching publisher over one topic: `send` enqueues, and the
|
|
43
|
+
* queue flushes as one append when `maxRecords`, `maxBytes`, or the linger
|
|
44
|
+
* trips. `flush()` is the guaranteed path, and `close()` flushes and stops the
|
|
45
|
+
* timer.
|
|
46
|
+
*
|
|
47
|
+
* A failed linger flush never stops the timer. Its failure is kept and thrown
|
|
48
|
+
* by the next `send()`, `flush()`, or `close()`. When several batches fail
|
|
49
|
+
* before the caller asks, the report is one `PublishFailedError` that lists
|
|
50
|
+
* the records of all of them.
|
|
51
|
+
*/
|
|
52
|
+
export declare class BatchingProducer implements AsyncDisposable {
|
|
53
|
+
private readonly sink;
|
|
54
|
+
private readonly target;
|
|
55
|
+
private readonly partitionKey;
|
|
56
|
+
private readonly maxRecords;
|
|
57
|
+
private readonly maxBytes;
|
|
58
|
+
private queue;
|
|
59
|
+
private payloadBytes;
|
|
60
|
+
private flushing;
|
|
61
|
+
private readonly timer;
|
|
62
|
+
private closed;
|
|
63
|
+
private failure;
|
|
64
|
+
private constructor();
|
|
65
|
+
/** Enqueues one payload with optional headers. Flushes inline when a size
|
|
66
|
+
* bound trips, so backpressure lands on the sender. An error is the failure
|
|
67
|
+
* of that inline flush and lists this record as unconfirmed. A failure an
|
|
68
|
+
* earlier linger flush left is thrown here instead of queueing the record,
|
|
69
|
+
* with this record added to its unconfirmed list, so a failing topic never
|
|
70
|
+
* grows the queue. */
|
|
71
|
+
send(payload: BytesLike, headers?: ReadonlyMap<string, HeaderValue>): Promise<void>;
|
|
72
|
+
/** Flushes everything queued as one batch append, then reports the failure
|
|
73
|
+
* an earlier linger flush left, if any. A no-op on an empty queue. */
|
|
74
|
+
flush(): Promise<void>;
|
|
75
|
+
private drain;
|
|
76
|
+
/** Flushes, stops the linger timer, and reports a kept linger failure. */
|
|
77
|
+
close(): Promise<void>;
|
|
78
|
+
/** Delegates async disposal to `close()`. */
|
|
79
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=batching.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batching.d.ts","sourceRoot":"","sources":["../../src/stream/batching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,oBAAoB,CAAA;AAE/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,2DAA2D;AAC3D,eAAO,MAAM,mBAAmB,MAAM,CAAA;AACtC,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,QAAc,CAAA;AAC5C,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAClC,6CAA6C;AAC7C,eAAO,MAAM,aAAa,IAAI,CAAA;AAE9B,iEAAiE;AACjE,MAAM,MAAM,SAAS,GAAG,CACtB,OAAO,EAAE,SAAS,kBAAkB,EAAE,EACtC,YAAY,EAAE,UAAU,GAAG,SAAS,KACjC,OAAO,CAAC,OAAO,CAAC,CAAA;AAErB;;;GAGG;AACH,qBAAa,uBAAuB;IAOhC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IARxB,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,iBAAiB,CAAwB;IAEjD,OAAO,eAIH;IAOJ,+CAA+C;IAC/C,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG9B;IAED,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG5B;IAED;uCACmC;IACnC,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAMjC;IAED;;6CAEyC;IACzC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAI1C;IAED,qDAAqD;IACrD,KAAK,IAAI,gBAAgB,CASxB;CACF;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAiB,YAAW,eAAe;IASpD,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAZ3B,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAyC;IAExD,OAAO,eAYN;IAcD;;;;;0BAKsB;IAChB,IAAI,CACR,OAAO,EAAE,SAAS,EAClB,OAAO,GAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAa,GACpD,OAAO,CAAC,IAAI,CAAC,CAgBf;IAED;0EACsE;IACtE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAErB;IAKD,OAAO,CAAC,KAAK;IAqCb,0EAA0E;IACpE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAK3B;IAED,6CAA6C;IAC7C,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAErC;CACF"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { ownedBytes } from "../client/bytes.js";
|
|
2
|
+
import { InvalidError, PublishFailedError } from "../client/errors.js";
|
|
3
|
+
/** Flush at this many queued records unless overridden. */
|
|
4
|
+
export const DEFAULT_MAX_RECORDS = 512;
|
|
5
|
+
/** Flush at this many queued payload bytes unless overridden (1 MiB). */
|
|
6
|
+
export const DEFAULT_MAX_BYTES = 1024 * 1024;
|
|
7
|
+
/** Flush a non-empty queue after at most this many milliseconds unless overridden. */
|
|
8
|
+
export const DEFAULT_LINGER_MS = 5;
|
|
9
|
+
/** The smallest linger the timer runs at. */
|
|
10
|
+
export const MIN_LINGER_MS = 1;
|
|
11
|
+
/**
|
|
12
|
+
* Builds a `BatchingProducer`, opened with `topic.batching()`. The batch
|
|
13
|
+
* flushes on whichever of `maxRecords`, `maxBytes`, or `lingerMs` trips first.
|
|
14
|
+
*/
|
|
15
|
+
export class BatchingProducerBuilder {
|
|
16
|
+
sink;
|
|
17
|
+
stream;
|
|
18
|
+
topic;
|
|
19
|
+
maxRecordsValue = DEFAULT_MAX_RECORDS;
|
|
20
|
+
maxBytesValue = DEFAULT_MAX_BYTES;
|
|
21
|
+
lingerValue = DEFAULT_LINGER_MS;
|
|
22
|
+
partitionKeyValue;
|
|
23
|
+
constructor(sink, stream, topic) {
|
|
24
|
+
this.sink = sink;
|
|
25
|
+
this.stream = stream;
|
|
26
|
+
this.topic = topic;
|
|
27
|
+
}
|
|
28
|
+
/** @internal */
|
|
29
|
+
static create(sink, stream, topic) {
|
|
30
|
+
return new BatchingProducerBuilder(sink, stream, topic);
|
|
31
|
+
}
|
|
32
|
+
/** Flush once this many records are queued. */
|
|
33
|
+
maxRecords(count) {
|
|
34
|
+
this.maxRecordsValue = Math.max(1, positive(count, "maxRecords"));
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
/** Flush once the queued payload bytes reach this bound. */
|
|
38
|
+
maxBytes(bytes) {
|
|
39
|
+
this.maxBytesValue = Math.max(1, positive(bytes, "maxBytes"));
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/** Flush a non-empty queue after at most this long, so a trickle of records
|
|
43
|
+
* never waits for a full batch. */
|
|
44
|
+
linger(milliseconds) {
|
|
45
|
+
if (!Number.isFinite(milliseconds) || milliseconds < 0) {
|
|
46
|
+
throw new InvalidError("linger must be a non-negative finite number");
|
|
47
|
+
}
|
|
48
|
+
this.lingerValue = milliseconds;
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
/** Pins every record of this handle to one partition key, so ordering within
|
|
52
|
+
* the key is never interleaved. Without a key, each flushed batch is
|
|
53
|
+
* spread by the balanced partitioner. */
|
|
54
|
+
partitionKey(key) {
|
|
55
|
+
this.partitionKeyValue =
|
|
56
|
+
typeof key === "string" ? new TextEncoder().encode(key) : ownedBytes(key);
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
/** Builds the handle and starts its linger timer. */
|
|
60
|
+
build() {
|
|
61
|
+
return BatchingProducer.create(this.sink, { stream: this.stream, topic: this.topic }, this.partitionKeyValue, this.maxRecordsValue, this.maxBytesValue, Math.max(MIN_LINGER_MS, this.lingerValue));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* A size-and-time batching publisher over one topic: `send` enqueues, and the
|
|
66
|
+
* queue flushes as one append when `maxRecords`, `maxBytes`, or the linger
|
|
67
|
+
* trips. `flush()` is the guaranteed path, and `close()` flushes and stops the
|
|
68
|
+
* timer.
|
|
69
|
+
*
|
|
70
|
+
* A failed linger flush never stops the timer. Its failure is kept and thrown
|
|
71
|
+
* by the next `send()`, `flush()`, or `close()`. When several batches fail
|
|
72
|
+
* before the caller asks, the report is one `PublishFailedError` that lists
|
|
73
|
+
* the records of all of them.
|
|
74
|
+
*/
|
|
75
|
+
export class BatchingProducer {
|
|
76
|
+
sink;
|
|
77
|
+
target;
|
|
78
|
+
partitionKey;
|
|
79
|
+
maxRecords;
|
|
80
|
+
maxBytes;
|
|
81
|
+
queue = [];
|
|
82
|
+
payloadBytes = 0;
|
|
83
|
+
flushing = Promise.resolve();
|
|
84
|
+
timer;
|
|
85
|
+
closed = false;
|
|
86
|
+
failure;
|
|
87
|
+
constructor(sink, target, partitionKey, maxRecords, maxBytes, lingerMs) {
|
|
88
|
+
this.sink = sink;
|
|
89
|
+
this.target = target;
|
|
90
|
+
this.partitionKey = partitionKey;
|
|
91
|
+
this.maxRecords = maxRecords;
|
|
92
|
+
this.maxBytes = maxBytes;
|
|
93
|
+
this.timer = setInterval(() => {
|
|
94
|
+
void this.drain("timer");
|
|
95
|
+
}, lingerMs);
|
|
96
|
+
this.timer.unref();
|
|
97
|
+
}
|
|
98
|
+
/** @internal */
|
|
99
|
+
static create(sink, target, partitionKey, maxRecords, maxBytes, lingerMs) {
|
|
100
|
+
return new BatchingProducer(sink, target, partitionKey, maxRecords, maxBytes, lingerMs);
|
|
101
|
+
}
|
|
102
|
+
/** Enqueues one payload with optional headers. Flushes inline when a size
|
|
103
|
+
* bound trips, so backpressure lands on the sender. An error is the failure
|
|
104
|
+
* of that inline flush and lists this record as unconfirmed. A failure an
|
|
105
|
+
* earlier linger flush left is thrown here instead of queueing the record,
|
|
106
|
+
* with this record added to its unconfirmed list, so a failing topic never
|
|
107
|
+
* grows the queue. */
|
|
108
|
+
async send(payload, headers = new Map()) {
|
|
109
|
+
if (this.closed)
|
|
110
|
+
throw new InvalidError("send() called after close()");
|
|
111
|
+
const bytes = ownedBytes(payload);
|
|
112
|
+
const record = { payload: bytes, headers: new Map(headers) };
|
|
113
|
+
// A flush in flight may still keep a failure, so the check waits for it.
|
|
114
|
+
await this.flushing;
|
|
115
|
+
const kept = this.failure;
|
|
116
|
+
if (kept !== undefined) {
|
|
117
|
+
this.failure = undefined;
|
|
118
|
+
throw refuse(kept.error, record, this.target);
|
|
119
|
+
}
|
|
120
|
+
this.queue.push(record);
|
|
121
|
+
this.payloadBytes += bytes.byteLength;
|
|
122
|
+
if (this.queue.length >= this.maxRecords || this.payloadBytes >= this.maxBytes) {
|
|
123
|
+
await this.drain("send");
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/** Flushes everything queued as one batch append, then reports the failure
|
|
127
|
+
* an earlier linger flush left, if any. A no-op on an empty queue. */
|
|
128
|
+
flush() {
|
|
129
|
+
return this.drain("caller");
|
|
130
|
+
}
|
|
131
|
+
// Drains run one at a time, so batches reach the log in queue order. A
|
|
132
|
+
// sender hears its own inline flush. The timer keeps a failure. The caller
|
|
133
|
+
// hears everything kept so far together with its own flush.
|
|
134
|
+
drain(trigger) {
|
|
135
|
+
const next = this.flushing.then(async () => {
|
|
136
|
+
const batch = this.queue;
|
|
137
|
+
this.queue = [];
|
|
138
|
+
this.payloadBytes = 0;
|
|
139
|
+
let sent;
|
|
140
|
+
if (batch.length > 0) {
|
|
141
|
+
try {
|
|
142
|
+
await this.sink(batch, this.partitionKey);
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
sent = { error };
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (trigger === "send") {
|
|
149
|
+
if (sent !== undefined)
|
|
150
|
+
throw sent.error;
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (trigger === "timer") {
|
|
154
|
+
if (sent !== undefined) {
|
|
155
|
+
this.failure =
|
|
156
|
+
this.failure === undefined
|
|
157
|
+
? sent
|
|
158
|
+
: { error: mergeFailures(this.failure.error, sent.error) };
|
|
159
|
+
}
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const kept = this.failure;
|
|
163
|
+
this.failure = undefined;
|
|
164
|
+
if (kept !== undefined) {
|
|
165
|
+
throw sent === undefined ? kept.error : mergeFailures(kept.error, sent.error);
|
|
166
|
+
}
|
|
167
|
+
if (sent !== undefined)
|
|
168
|
+
throw sent.error;
|
|
169
|
+
});
|
|
170
|
+
this.flushing = next.catch(() => undefined);
|
|
171
|
+
return next;
|
|
172
|
+
}
|
|
173
|
+
/** Flushes, stops the linger timer, and reports a kept linger failure. */
|
|
174
|
+
async close() {
|
|
175
|
+
if (this.closed)
|
|
176
|
+
return;
|
|
177
|
+
this.closed = true;
|
|
178
|
+
clearInterval(this.timer);
|
|
179
|
+
await this.flush();
|
|
180
|
+
}
|
|
181
|
+
/** Delegates async disposal to `close()`. */
|
|
182
|
+
[Symbol.asyncDispose]() {
|
|
183
|
+
return this.close();
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// One report for every batch that failed: the first cause, with the records
|
|
187
|
+
// of the later batch added. A later failure that carries no records gives way
|
|
188
|
+
// to the earlier one.
|
|
189
|
+
function mergeFailures(earlier, later) {
|
|
190
|
+
if (!(earlier instanceof PublishFailedError) || !(later instanceof PublishFailedError)) {
|
|
191
|
+
return earlier;
|
|
192
|
+
}
|
|
193
|
+
return new PublishFailedError(earlier.stream, earlier.topic, [...earlier.committed, ...later.committed], [...earlier.unconfirmed, ...later.unconfirmed], earlier.cause);
|
|
194
|
+
}
|
|
195
|
+
// A kept failure reported to a sender, with the sender's record added to the
|
|
196
|
+
// unconfirmed records because it was never queued. A kept failure that lists
|
|
197
|
+
// no records becomes the cause of a publish failure for this one record.
|
|
198
|
+
function refuse(failure, record, target) {
|
|
199
|
+
if (!(failure instanceof PublishFailedError)) {
|
|
200
|
+
return new PublishFailedError(target.stream, target.topic, [], [record], failure);
|
|
201
|
+
}
|
|
202
|
+
return new PublishFailedError(failure.stream, failure.topic, failure.committed, [...failure.unconfirmed, record], failure.cause);
|
|
203
|
+
}
|
|
204
|
+
function positive(value, name) {
|
|
205
|
+
if (!Number.isSafeInteger(value) || value < 0) {
|
|
206
|
+
throw new InvalidError(`${name} must be a non-negative safe integer`);
|
|
207
|
+
}
|
|
208
|
+
return value;
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=batching.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batching.js","sourceRoot":"","sources":["../../src/stream/batching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAItE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;AACtC,yEAAyE;AACzE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAA;AAC5C,sFAAsF;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAClC,6CAA6C;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAA;AAQ9B;;;GAGG;AACH,MAAM,OAAO,uBAAuB;IAOf,IAAI;IACJ,MAAM;IACN,KAAK;IARhB,eAAe,GAAG,mBAAmB,CAAA;IACrC,aAAa,GAAG,iBAAiB,CAAA;IACjC,WAAW,GAAG,iBAAiB,CAAA;IAC/B,iBAAiB,CAAwB;IAEjD,YACmB,IAAe,EACf,MAAc,EACd,KAAa;oBAFb,IAAI;sBACJ,MAAM;qBACN,KAAK;IACrB,CAAC;IAEJ,gBAAgB;IAChB,MAAM,CAAC,MAAM,CAAC,IAAe,EAAE,MAAc,EAAE,KAAa;QAC1D,OAAO,IAAI,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IACzD,CAAC;IAED,+CAA+C;IAC/C,UAAU,CAAC,KAAa;QACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAA;QACjE,OAAO,IAAI,CAAA;IACb,CAAC;IAED,4DAA4D;IAC5D,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA;QAC7D,OAAO,IAAI,CAAA;IACb,CAAC;IAED;uCACmC;IACnC,MAAM,CAAC,YAAoB;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,YAAY,CAAC,6CAA6C,CAAC,CAAA;QACvE,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,YAAY,CAAA;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;6CAEyC;IACzC,YAAY,CAAC,GAAuB;QAClC,IAAI,CAAC,iBAAiB;YACpB,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAC3E,OAAO,IAAI,CAAA;IACb,CAAC;IAED,qDAAqD;IACrD,KAAK;QACH,OAAO,gBAAgB,CAAC,MAAM,CAC5B,IAAI,CAAC,IAAI,EACT,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAC1C,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAC1C,CAAA;IACH,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,gBAAgB;IASR,IAAI;IACJ,MAAM;IACN,YAAY;IACZ,UAAU;IACV,QAAQ;IAZnB,KAAK,GAAyB,EAAE,CAAA;IAChC,YAAY,GAAG,CAAC,CAAA;IAChB,QAAQ,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAA;IAClC,KAAK,CAAgC;IAC9C,MAAM,GAAG,KAAK,CAAA;IACd,OAAO,CAAyC;IAExD,YACmB,IAAe,EACf,MAA2D,EAC3D,YAAoC,EACpC,UAAkB,EAClB,QAAgB,EACjC,QAAgB;oBALC,IAAI;sBACJ,MAAM;4BACN,YAAY;0BACZ,UAAU;wBACV,QAAQ;QAGzB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC1B,CAAC,EAAE,QAAQ,CAAC,CAAA;QACZ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAED,gBAAgB;IAChB,MAAM,CAAC,MAAM,CACX,IAAe,EACf,MAA2D,EAC3D,YAAoC,EACpC,UAAkB,EAClB,QAAgB,EAChB,QAAgB;QAEhB,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACzF,CAAC;IAED;;;;;0BAKsB;IACtB,KAAK,CAAC,IAAI,CACR,OAAkB,EAClB,OAAO,GAAqC,IAAI,GAAG,EAAE;QAErD,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,YAAY,CAAC,6BAA6B,CAAC,CAAA;QACtE,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,CAAA;QAC5D,yEAAyE;QACzE,MAAM,IAAI,CAAC,QAAQ,CAAA;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAA;QACzB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;YACxB,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAC/C,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACvB,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,UAAU,CAAA;QACrC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/E,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;IAED;0EACsE;IACtE,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC7B,CAAC;IAED,uEAAuE;IACvE,2EAA2E;IAC3E,4DAA4D;IACpD,KAAK,CAAC,OAAoC;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;YACf,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;YACrB,IAAI,IAA6C,CAAA;YACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;gBAC3C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,GAAG,EAAE,KAAK,EAAE,CAAA;gBAClB,CAAC;YACH,CAAC;YACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBACvB,IAAI,IAAI,KAAK,SAAS;oBAAE,MAAM,IAAI,CAAC,KAAK,CAAA;gBACxC,OAAM;YACR,CAAC;YACD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACxB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,IAAI,CAAC,OAAO;wBACV,IAAI,CAAC,OAAO,KAAK,SAAS;4BACxB,CAAC,CAAC,IAAI;4BACN,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;gBAChE,CAAC;gBACD,OAAM;YACR,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAA;YACzB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;YACxB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/E,CAAC;YACD,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,IAAI,CAAC,KAAK,CAAA;QAC1C,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;QAC3C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM;YAAE,OAAM;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACzB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAED,6CAA6C;IAC7C,CAAC,MAAM,CAAC,YAAY,CAAC;QACnB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;CACF;AAED,4EAA4E;AAC5E,8EAA8E;AAC9E,sBAAsB;AACtB,SAAS,aAAa,CAAC,OAAgB,EAAE,KAAc;IACrD,IAAI,CAAC,CAAC,OAAO,YAAY,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC,EAAE,CAAC;QACvF,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,OAAO,IAAI,kBAAkB,CAC3B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,EACb,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,EAC1C,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,EAC9C,OAAO,CAAC,KAAK,CACd,CAAA;AACH,CAAC;AAED,6EAA6E;AAC7E,6EAA6E;AAC7E,yEAAyE;AACzE,SAAS,MAAM,CACb,OAAgB,EAChB,MAA0B,EAC1B,MAA2D;IAE3D,IAAI,CAAC,CAAC,OAAO,YAAY,kBAAkB,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;IACnF,CAAC;IACD,OAAO,IAAI,kBAAkB,CAC3B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,SAAS,EACjB,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,EAChC,OAAO,CAAC,KAAK,CACd,CAAA;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,IAAY;IAC3C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,YAAY,CAAC,GAAG,IAAI,sCAAsC,CAAC,CAAA;IACvE,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bson.d.ts","sourceRoot":"","sources":["../../src/stream/bson.ts"],"names":[],"mappings":"AAmBA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAM7D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAK/E"}
|