@peerbit/pubsub 4.1.4 → 5.0.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.
Files changed (46) hide show
  1. package/README.md +23 -20
  2. package/dist/benchmark/fanout-tree-sim-lib.d.ts +201 -0
  3. package/dist/benchmark/fanout-tree-sim-lib.d.ts.map +1 -0
  4. package/dist/benchmark/fanout-tree-sim-lib.js +1225 -0
  5. package/dist/benchmark/fanout-tree-sim-lib.js.map +1 -0
  6. package/dist/benchmark/fanout-tree-sim.d.ts +11 -0
  7. package/dist/benchmark/fanout-tree-sim.d.ts.map +1 -0
  8. package/dist/benchmark/fanout-tree-sim.js +521 -0
  9. package/dist/benchmark/fanout-tree-sim.js.map +1 -0
  10. package/dist/benchmark/index.d.ts +6 -0
  11. package/dist/benchmark/index.d.ts.map +1 -1
  12. package/dist/benchmark/index.js +38 -80
  13. package/dist/benchmark/index.js.map +1 -1
  14. package/dist/benchmark/pubsub-topic-sim-lib.d.ts +82 -0
  15. package/dist/benchmark/pubsub-topic-sim-lib.d.ts.map +1 -0
  16. package/dist/benchmark/pubsub-topic-sim-lib.js +625 -0
  17. package/dist/benchmark/pubsub-topic-sim-lib.js.map +1 -0
  18. package/dist/benchmark/pubsub-topic-sim.d.ts +9 -0
  19. package/dist/benchmark/pubsub-topic-sim.d.ts.map +1 -0
  20. package/dist/benchmark/pubsub-topic-sim.js +116 -0
  21. package/dist/benchmark/pubsub-topic-sim.js.map +1 -0
  22. package/dist/benchmark/sim/bench-utils.d.ts +25 -0
  23. package/dist/benchmark/sim/bench-utils.d.ts.map +1 -0
  24. package/dist/benchmark/sim/bench-utils.js +141 -0
  25. package/dist/benchmark/sim/bench-utils.js.map +1 -0
  26. package/dist/src/fanout-channel.d.ts +62 -0
  27. package/dist/src/fanout-channel.d.ts.map +1 -0
  28. package/dist/src/fanout-channel.js +114 -0
  29. package/dist/src/fanout-channel.js.map +1 -0
  30. package/dist/src/fanout-tree.d.ts +551 -0
  31. package/dist/src/fanout-tree.d.ts.map +1 -0
  32. package/dist/src/fanout-tree.js +4980 -0
  33. package/dist/src/fanout-tree.js.map +1 -0
  34. package/dist/src/index.d.ts +168 -39
  35. package/dist/src/index.d.ts.map +1 -1
  36. package/dist/src/index.js +1416 -457
  37. package/dist/src/index.js.map +1 -1
  38. package/dist/src/topic-root-control-plane.d.ts +43 -0
  39. package/dist/src/topic-root-control-plane.d.ts.map +1 -0
  40. package/dist/src/topic-root-control-plane.js +120 -0
  41. package/dist/src/topic-root-control-plane.js.map +1 -0
  42. package/package.json +8 -7
  43. package/src/fanout-channel.ts +150 -0
  44. package/src/fanout-tree.ts +6346 -0
  45. package/src/index.ts +1693 -591
  46. package/src/topic-root-control-plane.ts +160 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubsub-topic-sim-lib.js","sourceRoot":"","sources":["../../benchmark/pubsub-topic-sim-lib.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * In-memory TopicControlPlane simulator (1 writer -> many subscribers).
3
+ *
4
+ * Goal: stress the real @peerbit/pubsub + @peerbit/stream code paths (routing,
5
+ * ACK learning, backpressure/lanes, dialer/pruner) while avoiding real sockets
6
+ * and heavy crypto costs.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=pubsub-topic-sim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubsub-topic-sim.d.ts","sourceRoot":"","sources":["../../benchmark/pubsub-topic-sim.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * In-memory TopicControlPlane simulator (1 writer -> many subscribers).
3
+ *
4
+ * Goal: stress the real @peerbit/pubsub + @peerbit/stream code paths (routing,
5
+ * ACK learning, backpressure/lanes, dialer/pruner) while avoiding real sockets
6
+ * and heavy crypto costs.
7
+ */
8
+ import { formatPubsubTopicSimResult, resolvePubsubTopicSimParams, runPubsubTopicSim, } from "./pubsub-topic-sim-lib.js";
9
+ const parseArgs = (argv) => {
10
+ const get = (key) => {
11
+ const idx = argv.indexOf(key);
12
+ if (idx === -1)
13
+ return undefined;
14
+ return argv[idx + 1];
15
+ };
16
+ const has = (key) => argv.includes(key);
17
+ if (argv.includes("--help") || argv.includes("-h")) {
18
+ console.log([
19
+ "pubsub-topic-sim.ts",
20
+ "",
21
+ "Args:",
22
+ " --nodes N total nodes (default: 2000)",
23
+ " --degree K target undirected degree (default: 6)",
24
+ " --writerIndex I writer node index (default: 0)",
25
+ " --fanoutTopic 0|1 use fanout-backed topic delivery (default: 0)",
26
+ " --fanoutRootIndex I fanout root node index (default: writerIndex)",
27
+ " --subscribers N number of subscribers (default: nodes-1)",
28
+ " --messages M messages to publish (default: 200)",
29
+ " --msgSize BYTES payload bytes (default: 1024)",
30
+ " --intervalMs MS delay between publishes (default: 0)",
31
+ " --strict 0|1 alias for --silent (default: 0)",
32
+ " --silent 0|1 publish with SilentDelivery (default: 0)",
33
+ " --redundancy R stream redundancy (default: 2)",
34
+ " --seed S RNG seed (default: 1)",
35
+ " --topic NAME topic name (default: concert)",
36
+ " --subscribeModel real|preseed (default: preseed)",
37
+ " --subscriptionDebounceDelayMs MS (default: 0)",
38
+ " --warmupMs MS warmup delay before measuring (default: 0)",
39
+ " --warmupMessages N warmup messages before measuring (default: 0)",
40
+ " --settleMs MS time to wait for delivery after publish (default: 200)",
41
+ " --timeoutMs MS global timeout (default: 300000)",
42
+ " --dialConcurrency N dial concurrency (default: 256)",
43
+ " --dialer 0|1 enable stream autodial (default: 0)",
44
+ " --pruner 0|1 enable stream pruning (default: 0)",
45
+ " --prunerIntervalMs MS (default: 50)",
46
+ " --prunerMaxBufferBytes BYTES (default: 65536)",
47
+ " --dialDelayMs MS artificial dial delay (default: 0)",
48
+ " --streamRxDelayMs MS per-chunk inbound delay in shim (default: 0)",
49
+ " --streamHighWaterMarkBytes B backpressure threshold (default: 262144)",
50
+ " --dropDataFrameRate P drop rate for stream data frames (default: 0)",
51
+ " --maxLatencySamples N reservoir sample size (default: 1000000)",
52
+ " --churnEveryMs MS churn interval (default: 0, off)",
53
+ " --churnDownMs MS offline duration per churn (default: 0, off)",
54
+ " --churnFraction F fraction to churn per event (default: 0, off)",
55
+ " --churnRedialIntervalMs MS graph redial tick (default: 50)",
56
+ " --churnRedialConcurrency N redial concurrency (default: 128)",
57
+ "",
58
+ "Examples:",
59
+ " pnpm -C packages/transport/pubsub run bench -- topic-sim --nodes 3 --degree 2 --subscribers 2 --messages 5 --msgSize 32 --intervalMs 0 --seed 1 --subscribeModel preseed",
60
+ " pnpm -C packages/transport/pubsub run bench -- topic-sim --nodes 2000 --degree 6 --subscribers 1500 --messages 200 --msgSize 1024 --intervalMs 0 --seed 1 --subscribeModel preseed",
61
+ ].join("\n"));
62
+ process.exit(0);
63
+ }
64
+ const nodes = Number(get("--nodes") ?? 2000);
65
+ const strict = has("--strict") ? String(get("--strict") ?? "0") === "1" : undefined;
66
+ const silent = has("--silent") ? String(get("--silent") ?? "0") === "1" : undefined;
67
+ return resolvePubsubTopicSimParams({
68
+ nodes,
69
+ degree: Number(get("--degree") ?? 6),
70
+ writerIndex: Number(get("--writerIndex") ?? 0),
71
+ fanoutTopic: String(get("--fanoutTopic") ?? "0") === "1",
72
+ fanoutRootIndex: Number(get("--fanoutRootIndex") ?? Number(get("--writerIndex") ?? 0)),
73
+ subscribers: Number(get("--subscribers") ?? nodes - 1),
74
+ messages: Number(get("--messages") ?? 200),
75
+ msgSize: Number(get("--msgSize") ?? 1024),
76
+ intervalMs: Number(get("--intervalMs") ?? 0),
77
+ silent: silent ?? strict ?? false,
78
+ redundancy: Number(get("--redundancy") ?? 2),
79
+ seed: Number(get("--seed") ?? 1),
80
+ topic: String(get("--topic") ?? "concert"),
81
+ subscribeModel: String(get("--subscribeModel") ?? "preseed") ?? "preseed",
82
+ subscriptionDebounceDelayMs: Number(get("--subscriptionDebounceDelayMs") ?? 0),
83
+ warmupMs: Number(get("--warmupMs") ?? 0),
84
+ warmupMessages: Number(get("--warmupMessages") ?? 0),
85
+ settleMs: Number(get("--settleMs") ?? 200),
86
+ timeoutMs: Number(get("--timeoutMs") ?? 300_000),
87
+ dialConcurrency: Number(get("--dialConcurrency") ?? 256),
88
+ dialer: String(get("--dialer") ?? "0") === "1",
89
+ pruner: String(get("--pruner") ?? "0") === "1",
90
+ prunerIntervalMs: Number(get("--prunerIntervalMs") ?? 50),
91
+ prunerMaxBufferBytes: Number(get("--prunerMaxBufferBytes") ?? 64 * 1024),
92
+ dialDelayMs: Number(get("--dialDelayMs") ?? 0),
93
+ streamRxDelayMs: Number(get("--streamRxDelayMs") ?? 0),
94
+ streamHighWaterMarkBytes: Number(get("--streamHighWaterMarkBytes") ?? 256 * 1024),
95
+ dropDataFrameRate: Number(get("--dropDataFrameRate") ?? 0),
96
+ maxLatencySamples: Number(get("--maxLatencySamples") ?? 1_000_000),
97
+ churnEveryMs: Number(get("--churnEveryMs") ?? 0),
98
+ churnDownMs: Number(get("--churnDownMs") ?? 0),
99
+ churnFraction: Number(get("--churnFraction") ?? 0),
100
+ churnRedialIntervalMs: Number(get("--churnRedialIntervalMs") ?? 50),
101
+ churnRedialConcurrency: Number(get("--churnRedialConcurrency") ?? 128),
102
+ });
103
+ };
104
+ const main = async () => {
105
+ const params = parseArgs(process.argv.slice(2));
106
+ const result = await runPubsubTopicSim(params);
107
+ console.log(formatPubsubTopicSimResult(result));
108
+ };
109
+ try {
110
+ await main();
111
+ }
112
+ catch (e) {
113
+ console.error(e?.message ?? e);
114
+ process.exit(String(e?.message ?? "").includes("timed out") ? 124 : 1);
115
+ }
116
+ //# sourceMappingURL=pubsub-topic-sim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubsub-topic-sim.js","sourceRoot":"","sources":["../../benchmark/pubsub-topic-sim.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export declare const BENCH_ID_PREFIX: Uint8Array<ArrayBuffer>;
2
+ export declare const isBenchId: (id: Uint8Array) => boolean;
3
+ export declare const writeU32BE: (buf: Uint8Array, offset: number, value: number) => void;
4
+ export declare const readU32BE: (buf: Uint8Array, offset: number) => number;
5
+ export declare const mulberry32: (seed: number) => () => number;
6
+ export declare const int: (rng: () => number, maxExclusive: number) => number;
7
+ export declare const quantile: (sorted: number[], q: number) => number;
8
+ export declare const buildRandomGraph: (n: number, targetDegree: number, rng: () => number) => number[][];
9
+ export declare const runWithConcurrency: <T>(tasks: Array<() => Promise<T>>, concurrency: number) => Promise<T[]>;
10
+ type ProtocolNode = {
11
+ multicodecs: string[];
12
+ components: {
13
+ connectionManager: {
14
+ getConnections: () => Array<{
15
+ streams: Array<{
16
+ protocol?: string;
17
+ direction?: string;
18
+ }>;
19
+ }>;
20
+ };
21
+ };
22
+ };
23
+ export declare const waitForProtocolStreams: (nodes: ProtocolNode[], timeoutMs?: number) => Promise<void>;
24
+ export {};
25
+ //# sourceMappingURL=bench-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bench-utils.d.ts","sourceRoot":"","sources":["../../../benchmark/sim/bench-utils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,yBAA4C,CAAC;AAEzE,eAAO,MAAM,SAAS,GAAI,IAAI,UAAU,YAKX,CAAC;AAE9B,eAAO,MAAM,UAAU,GAAI,KAAK,UAAU,EAAE,QAAQ,MAAM,EAAE,OAAO,MAAM,SAKxE,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,KAAK,UAAU,EAAE,QAAQ,MAAM,WAIjC,CAAC;AAEzB,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,iBAStC,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM,MAAM,EAAE,cAAc,MAAM,WAC1B,CAAC;AAElC,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,EAAE,EAAE,GAAG,MAAM,WAOnD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC5B,GAAG,MAAM,EACT,cAAc,MAAM,EACpB,KAAK,MAAM,MAAM,KACf,MAAM,EAAE,EA4DV,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,CAAC,EACzC,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAC9B,aAAa,MAAM,KACjB,OAAO,CAAC,CAAC,EAAE,CAYb,CAAC;AAEF,KAAK,YAAY,GAAG;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE;QACX,iBAAiB,EAAE;YAClB,cAAc,EAAE,MAAM,KAAK,CAAC;gBAC3B,OAAO,EAAE,KAAK,CAAC;oBAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;oBAAC,SAAS,CAAC,EAAE,MAAM,CAAA;iBAAE,CAAC,CAAC;aAC1D,CAAC,CAAC;SACH,CAAC;KACF,CAAC;CACF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAClC,OAAO,YAAY,EAAE,EACrB,kBAAkB,kBA+BlB,CAAC"}
@@ -0,0 +1,141 @@
1
+ import { delay } from "@peerbit/time";
2
+ export const BENCH_ID_PREFIX = Uint8Array.from([0x50, 0x53, 0x49, 0x4d]); // "PSIM"
3
+ export const isBenchId = (id) => id.length === 32 &&
4
+ id[0] === BENCH_ID_PREFIX[0] &&
5
+ id[1] === BENCH_ID_PREFIX[1] &&
6
+ id[2] === BENCH_ID_PREFIX[2] &&
7
+ id[3] === BENCH_ID_PREFIX[3];
8
+ export const writeU32BE = (buf, offset, value) => {
9
+ buf[offset + 0] = (value >>> 24) & 0xff;
10
+ buf[offset + 1] = (value >>> 16) & 0xff;
11
+ buf[offset + 2] = (value >>> 8) & 0xff;
12
+ buf[offset + 3] = value & 0xff;
13
+ };
14
+ export const readU32BE = (buf, offset) => ((buf[offset + 0] << 24) |
15
+ (buf[offset + 1] << 16) |
16
+ (buf[offset + 2] << 8) |
17
+ buf[offset + 3]) >>> 0;
18
+ export const mulberry32 = (seed) => {
19
+ let t = seed >>> 0;
20
+ return () => {
21
+ t += 0x6d2b79f5;
22
+ let x = t;
23
+ x = Math.imul(x ^ (x >>> 15), x | 1);
24
+ x ^= x + Math.imul(x ^ (x >>> 7), x | 61);
25
+ return ((x ^ (x >>> 14)) >>> 0) / 4294967296;
26
+ };
27
+ };
28
+ export const int = (rng, maxExclusive) => Math.floor(rng() * maxExclusive);
29
+ export const quantile = (sorted, q) => {
30
+ if (sorted.length === 0)
31
+ return NaN;
32
+ const idx = Math.min(sorted.length - 1, Math.max(0, Math.floor(q * (sorted.length - 1))));
33
+ return sorted[idx];
34
+ };
35
+ export const buildRandomGraph = (n, targetDegree, rng) => {
36
+ if (n <= 0)
37
+ throw new Error("nodes must be > 0");
38
+ if (targetDegree < 0)
39
+ throw new Error("degree must be >= 0");
40
+ if (targetDegree >= n) {
41
+ throw new Error("degree must be < nodes for a simple graph");
42
+ }
43
+ const adj = Array.from({ length: n }, () => new Set());
44
+ const degree = new Uint16Array(n);
45
+ const connect = (a, b) => {
46
+ if (a === b)
47
+ return false;
48
+ if (adj[a].has(b))
49
+ return false;
50
+ if (degree[a] >= targetDegree || degree[b] >= targetDegree)
51
+ return false;
52
+ adj[a].add(b);
53
+ adj[b].add(a);
54
+ degree[a] += 1;
55
+ degree[b] += 1;
56
+ return true;
57
+ };
58
+ // Seed connectivity.
59
+ if (targetDegree >= 2 && n >= 3) {
60
+ for (let i = 0; i < n; i++)
61
+ connect(i, (i + 1) % n);
62
+ }
63
+ else if (targetDegree >= 1 && n >= 2) {
64
+ for (let i = 0; i < n - 1; i++)
65
+ connect(i, i + 1);
66
+ }
67
+ const available = [];
68
+ const pos = new Int32Array(n).fill(-1);
69
+ for (let i = 0; i < n; i++) {
70
+ if (degree[i] < targetDegree) {
71
+ pos[i] = available.length;
72
+ available.push(i);
73
+ }
74
+ }
75
+ const removeAvailable = (id) => {
76
+ const p = pos[id];
77
+ if (p < 0)
78
+ return;
79
+ const last = available.pop();
80
+ if (last !== id) {
81
+ available[p] = last;
82
+ pos[last] = p;
83
+ }
84
+ pos[id] = -1;
85
+ };
86
+ const maxAttempts = n * Math.max(1, targetDegree) * 200;
87
+ let attempts = 0;
88
+ while (available.length > 1 && attempts < maxAttempts) {
89
+ attempts++;
90
+ const a = available[int(rng, available.length)];
91
+ const b = available[int(rng, available.length)];
92
+ if (a === b)
93
+ continue;
94
+ if (!connect(a, b))
95
+ continue;
96
+ if (degree[a] >= targetDegree)
97
+ removeAvailable(a);
98
+ if (degree[b] >= targetDegree)
99
+ removeAvailable(b);
100
+ }
101
+ return adj.map((s) => [...s]);
102
+ };
103
+ export const runWithConcurrency = async (tasks, concurrency) => {
104
+ const results = new Array(tasks.length);
105
+ let index = 0;
106
+ const workers = Array.from({ length: Math.max(1, concurrency) }, async () => {
107
+ for (;;) {
108
+ const i = index++;
109
+ if (i >= tasks.length)
110
+ return;
111
+ results[i] = await tasks[i]();
112
+ }
113
+ });
114
+ await Promise.all(workers);
115
+ return results;
116
+ };
117
+ export const waitForProtocolStreams = async (nodes, timeoutMs = 30_000) => {
118
+ const start = Date.now();
119
+ while (Date.now() - start < timeoutMs) {
120
+ let missing = 0;
121
+ for (const node of nodes) {
122
+ const protocols = node.multicodecs;
123
+ for (const conn of node.components.connectionManager.getConnections()) {
124
+ const streams = conn.streams;
125
+ const hasOutbound = streams.some((s) => s.protocol &&
126
+ protocols.includes(s.protocol) &&
127
+ s.direction === "outbound");
128
+ const hasInbound = streams.some((s) => s.protocol &&
129
+ protocols.includes(s.protocol) &&
130
+ s.direction === "inbound");
131
+ if (!hasOutbound || !hasInbound)
132
+ missing++;
133
+ }
134
+ }
135
+ if (missing === 0)
136
+ return;
137
+ await delay(0);
138
+ }
139
+ throw new Error("Timeout waiting for protocol streams to become duplex");
140
+ };
141
+ //# sourceMappingURL=bench-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bench-utils.js","sourceRoot":"","sources":["../../../benchmark/sim/bench-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import type { FanoutTree, FanoutTreeChannelOptions, FanoutTreeDataEvent, FanoutTreeJoinOptions, FanoutTreeUnicastEvent } from "./fanout-tree.js";
2
+ export interface FanoutChannelEvents {
3
+ data: CustomEvent<FanoutTreeDataEvent>;
4
+ unicast: CustomEvent<FanoutTreeUnicastEvent>;
5
+ joined: CustomEvent<{
6
+ topic: string;
7
+ root: string;
8
+ parent: string;
9
+ }>;
10
+ kicked: CustomEvent<{
11
+ topic: string;
12
+ root: string;
13
+ from: string;
14
+ }>;
15
+ }
16
+ export declare class FanoutChannel extends EventTarget {
17
+ private readonly fanout;
18
+ readonly root: string;
19
+ readonly topic: string;
20
+ private listening;
21
+ private readonly onData;
22
+ private readonly onUnicast;
23
+ private readonly onJoined;
24
+ private readonly onKicked;
25
+ constructor(fanout: FanoutTree, opts: {
26
+ topic: string;
27
+ root: string;
28
+ });
29
+ static fromSelf(fanout: FanoutTree, topic: string): FanoutChannel;
30
+ private ensureListening;
31
+ close(): void;
32
+ leave(options?: {
33
+ notifyParent?: boolean;
34
+ kickChildren?: boolean;
35
+ }): Promise<void>;
36
+ openAsRoot(options: Omit<FanoutTreeChannelOptions, "role">): import("./fanout-tree.js").FanoutTreeChannelId;
37
+ join(options: Omit<FanoutTreeChannelOptions, "role">, joinOpts?: FanoutTreeJoinOptions): Promise<void>;
38
+ publish(payload: Uint8Array): Promise<void>;
39
+ getPeerHashes(options?: {
40
+ includeSelf?: boolean;
41
+ }): string[];
42
+ getRouteToken(): string[];
43
+ resolveRouteToken(targetHash: string, options?: {
44
+ timeoutMs?: number;
45
+ signal?: AbortSignal;
46
+ }): Promise<string[]>;
47
+ unicast(toRoute: string[], payload: Uint8Array): Promise<void>;
48
+ unicastTo(targetHash: string, payload: Uint8Array, options?: {
49
+ timeoutMs?: number;
50
+ signal?: AbortSignal;
51
+ }): Promise<void>;
52
+ unicastAck(toRoute: string[], payload: Uint8Array, options?: {
53
+ timeoutMs?: number;
54
+ signal?: AbortSignal;
55
+ }): Promise<void>;
56
+ unicastToAck(targetHash: string, payload: Uint8Array, options?: {
57
+ timeoutMs?: number;
58
+ signal?: AbortSignal;
59
+ }): Promise<void>;
60
+ end(lastSeqExclusive: number): Promise<void>;
61
+ }
62
+ //# sourceMappingURL=fanout-channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fanout-channel.d.ts","sourceRoot":"","sources":["../../src/fanout-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,UAAU,EACV,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,WAAW,CAAC,mBAAmB,CAAC,CAAC;IACvC,OAAO,EAAE,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAC7C,MAAM,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,MAAM,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE;AAED,qBAAa,aAAc,SAAQ,WAAW;IAmC5C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAlCxB,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAE9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAMrB;IACF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAMxB;IACF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAMvB;IACF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAMvB;gBAGgB,MAAM,EAAE,UAAU,EACnC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAOtC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa;IAIjE,OAAO,CAAC,eAAe;IAShB,KAAK;IASC,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;IAKxE,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAK1D,IAAI,CACV,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,EAC/C,QAAQ,CAAC,EAAE,qBAAqB;IAM1B,OAAO,CAAC,OAAO,EAAE,UAAU;IAI3B,aAAa,CAAC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE;IAIjD,aAAa;IAIb,iBAAiB,CACvB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;IAKhD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU;IAI9C,SAAS,CACf,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;IAKhD,UAAU,CAChB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;IAMhD,YAAY,CAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;IAKhD,GAAG,CAAC,gBAAgB,EAAE,MAAM;CAGnC"}
@@ -0,0 +1,114 @@
1
+ export class FanoutChannel extends EventTarget {
2
+ fanout;
3
+ root;
4
+ topic;
5
+ listening = false;
6
+ onData = (ev) => {
7
+ const d = ev?.detail;
8
+ if (!d)
9
+ return;
10
+ if (d.root !== this.root)
11
+ return;
12
+ if (d.topic !== this.topic)
13
+ return;
14
+ this.dispatchEvent(new CustomEvent("data", { detail: d }));
15
+ };
16
+ onUnicast = (ev) => {
17
+ const d = ev?.detail;
18
+ if (!d)
19
+ return;
20
+ if (d.root !== this.root)
21
+ return;
22
+ if (d.topic !== this.topic)
23
+ return;
24
+ this.dispatchEvent(new CustomEvent("unicast", { detail: d }));
25
+ };
26
+ onJoined = (ev) => {
27
+ const d = ev?.detail;
28
+ if (!d)
29
+ return;
30
+ if (d.root !== this.root)
31
+ return;
32
+ if (d.topic !== this.topic)
33
+ return;
34
+ this.dispatchEvent(new CustomEvent("joined", { detail: d }));
35
+ };
36
+ onKicked = (ev) => {
37
+ const d = ev?.detail;
38
+ if (!d)
39
+ return;
40
+ if (d.root !== this.root)
41
+ return;
42
+ if (d.topic !== this.topic)
43
+ return;
44
+ this.dispatchEvent(new CustomEvent("kicked", { detail: d }));
45
+ };
46
+ constructor(fanout, opts) {
47
+ super();
48
+ this.fanout = fanout;
49
+ this.topic = opts.topic;
50
+ this.root = opts.root;
51
+ }
52
+ static fromSelf(fanout, topic) {
53
+ return new FanoutChannel(fanout, { topic, root: fanout.publicKeyHash });
54
+ }
55
+ ensureListening() {
56
+ if (this.listening)
57
+ return;
58
+ this.listening = true;
59
+ this.fanout.addEventListener("fanout:data", this.onData);
60
+ this.fanout.addEventListener("fanout:unicast", this.onUnicast);
61
+ this.fanout.addEventListener("fanout:joined", this.onJoined);
62
+ this.fanout.addEventListener("fanout:kicked", this.onKicked);
63
+ }
64
+ close() {
65
+ if (!this.listening)
66
+ return;
67
+ this.listening = false;
68
+ this.fanout.removeEventListener("fanout:data", this.onData);
69
+ this.fanout.removeEventListener("fanout:unicast", this.onUnicast);
70
+ this.fanout.removeEventListener("fanout:joined", this.onJoined);
71
+ this.fanout.removeEventListener("fanout:kicked", this.onKicked);
72
+ }
73
+ async leave(options) {
74
+ this.close();
75
+ await this.fanout.closeChannel(this.topic, this.root, options);
76
+ }
77
+ openAsRoot(options) {
78
+ this.ensureListening();
79
+ return this.fanout.openChannel(this.topic, this.root, { ...options, role: "root" });
80
+ }
81
+ join(options, joinOpts) {
82
+ this.ensureListening();
83
+ return this.fanout.joinChannel(this.topic, this.root, options, joinOpts);
84
+ }
85
+ publish(payload) {
86
+ return this.fanout.publishToChannel(this.topic, this.root, payload);
87
+ }
88
+ getPeerHashes(options) {
89
+ return this.fanout.getChannelPeerHashes(this.topic, this.root, options);
90
+ }
91
+ getRouteToken() {
92
+ return this.fanout.getRouteToken(this.topic, this.root);
93
+ }
94
+ resolveRouteToken(targetHash, options) {
95
+ return this.fanout.resolveRouteToken(this.topic, this.root, targetHash, options);
96
+ }
97
+ unicast(toRoute, payload) {
98
+ return this.fanout.unicast(this.topic, this.root, toRoute, payload);
99
+ }
100
+ unicastTo(targetHash, payload, options) {
101
+ return this.fanout.unicastTo(this.topic, this.root, targetHash, payload, options);
102
+ }
103
+ unicastAck(toRoute, payload, options) {
104
+ const target = toRoute[toRoute.length - 1];
105
+ return this.fanout.unicastAck(this.topic, this.root, toRoute, target, payload, options);
106
+ }
107
+ unicastToAck(targetHash, payload, options) {
108
+ return this.fanout.unicastToAck(this.topic, this.root, targetHash, payload, options);
109
+ }
110
+ end(lastSeqExclusive) {
111
+ return this.fanout.publishEnd(this.topic, this.root, lastSeqExclusive);
112
+ }
113
+ }
114
+ //# sourceMappingURL=fanout-channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fanout-channel.js","sourceRoot":"","sources":["../../src/fanout-channel.ts"],"names":[],"mappings":"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"}