@waku/core 0.0.18 → 0.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,40 @@
1
+ import { proto_filter_v2 as proto, WakuMessage } from "@waku/proto";
2
+ /**
3
+ * FilterPushRPC represents a message conforming to the Waku FilterPush protocol.
4
+ * Protocol documentation: https://rfc.vac.dev/spec/12/
5
+ */
6
+ export declare class FilterPushRpc {
7
+ proto: proto.MessagePush;
8
+ constructor(proto: proto.MessagePush);
9
+ static decode(bytes: Uint8Array): FilterPushRpc;
10
+ encode(): Uint8Array;
11
+ get wakuMessage(): WakuMessage | undefined;
12
+ /**
13
+ * Get the pubsub topic from the FilterPushRpc object.
14
+ * @returns string
15
+ */
16
+ get pubsubTopic(): string | undefined;
17
+ }
18
+ export declare class FilterSubscribeRpc {
19
+ proto: proto.FilterSubscribeRequest;
20
+ constructor(proto: proto.FilterSubscribeRequest);
21
+ static createSubscribeRequest(pubsubTopic: string, contentTopics: string[]): FilterSubscribeRpc;
22
+ static createUnsubscribeRequest(pubsubTopic: string, contentTopics: string[]): FilterSubscribeRpc;
23
+ static createUnsubscribeAllRequest(pubsubTopic: string): FilterSubscribeRpc;
24
+ static createSubscriberPingRequest(): FilterSubscribeRpc;
25
+ static decode(bytes: Uint8Array): FilterSubscribeRpc;
26
+ encode(): Uint8Array;
27
+ get filterSubscribeType(): proto.FilterSubscribeRequest.FilterSubscribeType;
28
+ get requestId(): string;
29
+ get pubsubTopic(): string | undefined;
30
+ get contentTopics(): string[];
31
+ }
32
+ export declare class FilterSubscribeResponse {
33
+ proto: proto.FilterSubscribeResponse;
34
+ constructor(proto: proto.FilterSubscribeResponse);
35
+ static decode(bytes: Uint8Array): FilterSubscribeResponse;
36
+ encode(): Uint8Array;
37
+ get statusCode(): number;
38
+ get statusDesc(): string | undefined;
39
+ get requestId(): string;
40
+ }
@@ -0,0 +1,109 @@
1
+ import { proto_filter_v2 as proto } from "@waku/proto";
2
+ import { v4 as uuid } from "uuid";
3
+ /**
4
+ * FilterPushRPC represents a message conforming to the Waku FilterPush protocol.
5
+ * Protocol documentation: https://rfc.vac.dev/spec/12/
6
+ */
7
+ export class FilterPushRpc {
8
+ proto;
9
+ constructor(proto) {
10
+ this.proto = proto;
11
+ }
12
+ static decode(bytes) {
13
+ const res = proto.MessagePush.decode(bytes);
14
+ return new FilterPushRpc(res);
15
+ }
16
+ encode() {
17
+ return proto.MessagePush.encode(this.proto);
18
+ }
19
+ get wakuMessage() {
20
+ return this.proto.wakuMessage;
21
+ }
22
+ /**
23
+ * Get the pubsub topic from the FilterPushRpc object.
24
+ * @returns string
25
+ */
26
+ get pubsubTopic() {
27
+ return this.proto.pubsubTopic;
28
+ }
29
+ }
30
+ export class FilterSubscribeRpc {
31
+ proto;
32
+ constructor(proto) {
33
+ this.proto = proto;
34
+ }
35
+ static createSubscribeRequest(pubsubTopic, contentTopics) {
36
+ return new FilterSubscribeRpc({
37
+ requestId: uuid(),
38
+ filterSubscribeType: proto.FilterSubscribeRequest.FilterSubscribeType.SUBSCRIBE,
39
+ pubsubTopic,
40
+ contentTopics,
41
+ });
42
+ }
43
+ static createUnsubscribeRequest(pubsubTopic, contentTopics) {
44
+ return new FilterSubscribeRpc({
45
+ requestId: uuid(),
46
+ filterSubscribeType: proto.FilterSubscribeRequest.FilterSubscribeType.UNSUBSCRIBE,
47
+ pubsubTopic,
48
+ contentTopics,
49
+ });
50
+ }
51
+ static createUnsubscribeAllRequest(pubsubTopic) {
52
+ return new FilterSubscribeRpc({
53
+ requestId: uuid(),
54
+ filterSubscribeType: proto.FilterSubscribeRequest.FilterSubscribeType.UNSUBSCRIBE_ALL,
55
+ pubsubTopic,
56
+ contentTopics: [],
57
+ });
58
+ }
59
+ static createSubscriberPingRequest() {
60
+ return new FilterSubscribeRpc({
61
+ requestId: uuid(),
62
+ filterSubscribeType: proto.FilterSubscribeRequest.FilterSubscribeType.SUBSCRIBER_PING,
63
+ pubsubTopic: "",
64
+ contentTopics: [],
65
+ });
66
+ }
67
+ static decode(bytes) {
68
+ const res = proto.FilterSubscribeRequest.decode(bytes);
69
+ return new FilterSubscribeRpc(res);
70
+ }
71
+ encode() {
72
+ return proto.FilterSubscribeRequest.encode(this.proto);
73
+ }
74
+ get filterSubscribeType() {
75
+ return this.proto.filterSubscribeType;
76
+ }
77
+ get requestId() {
78
+ return this.proto.requestId;
79
+ }
80
+ get pubsubTopic() {
81
+ return this.proto.pubsubTopic;
82
+ }
83
+ get contentTopics() {
84
+ return this.proto.contentTopics;
85
+ }
86
+ }
87
+ export class FilterSubscribeResponse {
88
+ proto;
89
+ constructor(proto) {
90
+ this.proto = proto;
91
+ }
92
+ static decode(bytes) {
93
+ const res = proto.FilterSubscribeResponse.decode(bytes);
94
+ return new FilterSubscribeResponse(res);
95
+ }
96
+ encode() {
97
+ return proto.FilterSubscribeResponse.encode(this.proto);
98
+ }
99
+ get statusCode() {
100
+ return this.proto.statusCode;
101
+ }
102
+ get statusDesc() {
103
+ return this.proto.statusDesc;
104
+ }
105
+ get requestId() {
106
+ return this.proto.requestId;
107
+ }
108
+ }
109
+ //# sourceMappingURL=filter_rpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter_rpc.js","sourceRoot":"","sources":["../../../../src/lib/filter/v2/filter_rpc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Libp2p } from "@libp2p/interface-libp2p";
2
+ import type { IFilterV2, ProtocolCreateOptions } from "@waku/interfaces";
3
+ export declare function wakuFilterV2(init?: Partial<ProtocolCreateOptions>): (libp2p: Libp2p) => IFilterV2;
@@ -0,0 +1,235 @@
1
+ import { groupByContentTopic, toAsyncIterator } from "@waku/utils";
2
+ import debug from "debug";
3
+ import all from "it-all";
4
+ import * as lp from "it-length-prefixed";
5
+ import { pipe } from "it-pipe";
6
+ import { BaseProtocol } from "../../base_protocol.js";
7
+ import { DefaultPubSubTopic } from "../../constants.js";
8
+ import { FilterPushRpc, FilterSubscribeResponse, FilterSubscribeRpc, } from "./filter_rpc.js";
9
+ const log = debug("waku:filter:v2");
10
+ const FilterV2Codecs = {
11
+ SUBSCRIBE: "/vac/waku/filter-subscribe/2.0.0-beta1",
12
+ PUSH: "/vac/waku/filter-push/2.0.0-beta1",
13
+ };
14
+ class Subscription {
15
+ peer;
16
+ pubSubTopic;
17
+ newStream;
18
+ subscriptionCallbacks;
19
+ constructor(pubSubTopic, remotePeer, newStream) {
20
+ this.peer = remotePeer;
21
+ this.pubSubTopic = pubSubTopic;
22
+ this.newStream = newStream;
23
+ this.subscriptionCallbacks = new Map();
24
+ }
25
+ async subscribe(decoders, callback) {
26
+ const decodersArray = Array.isArray(decoders) ? decoders : [decoders];
27
+ const decodersGroupedByCT = groupByContentTopic(decodersArray);
28
+ const contentTopics = Array.from(decodersGroupedByCT.keys());
29
+ const stream = await this.newStream(this.peer);
30
+ const request = FilterSubscribeRpc.createSubscribeRequest(this.pubSubTopic, contentTopics);
31
+ try {
32
+ const res = await pipe([request.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
33
+ const { statusCode, requestId, statusDesc } = FilterSubscribeResponse.decode(res[0].slice());
34
+ if (statusCode < 200 || statusCode >= 300) {
35
+ throw new Error(`Filter subscribe request ${requestId} failed with status code ${statusCode}: ${statusDesc}`);
36
+ }
37
+ log("Subscribed to peer ", this.peer.id.toString(), "for content topics", contentTopics);
38
+ }
39
+ catch (e) {
40
+ throw new Error("Error subscribing to peer: " +
41
+ this.peer.id.toString() +
42
+ " for content topics: " +
43
+ contentTopics +
44
+ ": " +
45
+ e);
46
+ }
47
+ // Save the callback functions by content topics so they
48
+ // can easily be removed (reciprocally replaced) if `unsubscribe` (reciprocally `subscribe`)
49
+ // is called for those content topics
50
+ decodersGroupedByCT.forEach((decoders, contentTopic) => {
51
+ // Cast the type because a given `subscriptionCallbacks` map may hold
52
+ // Decoder that decode to different implementations of `IDecodedMessage`
53
+ const subscriptionCallback = {
54
+ decoders,
55
+ callback,
56
+ };
57
+ // The callback and decoder may override previous values, this is on
58
+ // purpose as the user may call `subscribe` to refresh the subscription
59
+ this.subscriptionCallbacks.set(contentTopic, subscriptionCallback);
60
+ });
61
+ }
62
+ async unsubscribe(contentTopics) {
63
+ const stream = await this.newStream(this.peer);
64
+ const unsubscribeRequest = FilterSubscribeRpc.createUnsubscribeRequest(this.pubSubTopic, contentTopics);
65
+ try {
66
+ await pipe([unsubscribeRequest.encode()], lp.encode, stream.sink);
67
+ }
68
+ catch (error) {
69
+ throw new Error("Error subscribing: " + error);
70
+ }
71
+ contentTopics.forEach((contentTopic) => {
72
+ this.subscriptionCallbacks.delete(contentTopic);
73
+ });
74
+ }
75
+ async ping() {
76
+ const stream = await this.newStream(this.peer);
77
+ const request = FilterSubscribeRpc.createSubscriberPingRequest();
78
+ try {
79
+ const res = await pipe([request.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
80
+ const { statusCode, requestId, statusDesc } = FilterSubscribeResponse.decode(res[0].slice());
81
+ if (statusCode < 200 || statusCode >= 300) {
82
+ throw new Error(`Filter ping request ${requestId} failed with status code ${statusCode}: ${statusDesc}`);
83
+ }
84
+ log("Ping successful");
85
+ }
86
+ catch (error) {
87
+ log("Error pinging: ", error);
88
+ throw new Error("Error pinging: " + error);
89
+ }
90
+ }
91
+ async unsubscribeAll() {
92
+ const stream = await this.newStream(this.peer);
93
+ const request = FilterSubscribeRpc.createUnsubscribeAllRequest(this.pubSubTopic);
94
+ try {
95
+ const res = await pipe([request.encode()], lp.encode, stream, lp.decode, async (source) => await all(source));
96
+ const { statusCode, requestId, statusDesc } = FilterSubscribeResponse.decode(res[0].slice());
97
+ if (statusCode < 200 || statusCode >= 300) {
98
+ throw new Error(`Filter unsubscribe all request ${requestId} failed with status code ${statusCode}: ${statusDesc}`);
99
+ }
100
+ this.subscriptionCallbacks.clear();
101
+ log("Unsubscribed from all content topics");
102
+ }
103
+ catch (error) {
104
+ throw new Error("Error unsubscribing from all content topics: " + error);
105
+ }
106
+ }
107
+ async processMessage(message) {
108
+ const contentTopic = message.contentTopic;
109
+ const subscriptionCallback = this.subscriptionCallbacks.get(contentTopic);
110
+ if (!subscriptionCallback) {
111
+ log("No subscription callback available for ", contentTopic);
112
+ return;
113
+ }
114
+ await pushMessage(subscriptionCallback, this.pubSubTopic, message);
115
+ }
116
+ }
117
+ class FilterV2 extends BaseProtocol {
118
+ libp2p;
119
+ options;
120
+ activeSubscriptions = new Map();
121
+ getActiveSubscription(pubSubTopic, peerIdStr) {
122
+ return this.activeSubscriptions.get(`${pubSubTopic}_${peerIdStr}`);
123
+ }
124
+ setActiveSubscription(pubSubTopic, peerIdStr, subscription) {
125
+ this.activeSubscriptions.set(`${pubSubTopic}_${peerIdStr}`, subscription);
126
+ return subscription;
127
+ }
128
+ constructor(libp2p, options) {
129
+ super(FilterV2Codecs.SUBSCRIBE, libp2p.peerStore, libp2p.getConnections.bind(libp2p));
130
+ this.libp2p = libp2p;
131
+ this.libp2p
132
+ .handle(FilterV2Codecs.PUSH, this.onRequest.bind(this))
133
+ .catch((e) => {
134
+ log("Failed to register ", FilterV2Codecs.PUSH, e);
135
+ });
136
+ this.activeSubscriptions = new Map();
137
+ this.options = options ?? {};
138
+ }
139
+ async createSubscription(pubSubTopic, peerId) {
140
+ const _pubSubTopic = pubSubTopic ?? this.options.pubSubTopic ?? DefaultPubSubTopic;
141
+ const peer = await this.getPeer(peerId);
142
+ const subscription = this.getActiveSubscription(_pubSubTopic, peer.id.toString()) ??
143
+ this.setActiveSubscription(_pubSubTopic, peer.id.toString(), new Subscription(_pubSubTopic, peer, this.newStream.bind(this, peer)));
144
+ return subscription;
145
+ }
146
+ toSubscriptionIterator(decoders, opts) {
147
+ return toAsyncIterator(this, decoders, opts);
148
+ }
149
+ /**
150
+ * This method is used to satisfy the `IReceiver` interface.
151
+ *
152
+ * @hidden
153
+ *
154
+ * @param decoders The decoders to use for the subscription.
155
+ * @param callback The callback function to use for the subscription.
156
+ * @param opts Optional protocol options for the subscription.
157
+ *
158
+ * @returns A Promise that resolves to a function that unsubscribes from the subscription.
159
+ *
160
+ * @remarks
161
+ * This method should not be used directly.
162
+ * Instead, use `createSubscription` to create a new subscription.
163
+ */
164
+ async subscribe(decoders, callback, opts) {
165
+ const subscription = await this.createSubscription(undefined, opts?.peerId);
166
+ subscription.subscribe(decoders, callback);
167
+ const contentTopics = Array.from(groupByContentTopic(Array.isArray(decoders) ? decoders : [decoders]).keys());
168
+ return async () => {
169
+ await subscription.unsubscribe(contentTopics);
170
+ };
171
+ }
172
+ onRequest(streamData) {
173
+ log("Receiving message push");
174
+ try {
175
+ pipe(streamData.stream, lp.decode, async (source) => {
176
+ for await (const bytes of source) {
177
+ const response = FilterPushRpc.decode(bytes.slice());
178
+ const { pubsubTopic, wakuMessage } = response;
179
+ if (!wakuMessage) {
180
+ log("Received empty message");
181
+ return;
182
+ }
183
+ if (!pubsubTopic) {
184
+ log("PubSub topic missing from push message");
185
+ return;
186
+ }
187
+ const peerIdStr = streamData.connection.remotePeer.toString();
188
+ const subscription = this.getActiveSubscription(pubsubTopic, peerIdStr);
189
+ if (!subscription) {
190
+ log(`No subscription locally registered for topic ${pubsubTopic}`);
191
+ return;
192
+ }
193
+ await subscription.processMessage(wakuMessage);
194
+ }
195
+ }).then(() => {
196
+ log("Receiving pipe closed.");
197
+ }, (e) => {
198
+ log("Error with receiving pipe", e);
199
+ });
200
+ }
201
+ catch (e) {
202
+ log("Error decoding message", e);
203
+ }
204
+ }
205
+ }
206
+ export function wakuFilterV2(init = {}) {
207
+ return (libp2p) => new FilterV2(libp2p, init);
208
+ }
209
+ async function pushMessage(subscriptionCallback, pubSubTopic, message) {
210
+ const { decoders, callback } = subscriptionCallback;
211
+ const { contentTopic } = message;
212
+ if (!contentTopic) {
213
+ log("Message has no content topic, skipping");
214
+ return;
215
+ }
216
+ let didDecodeMsg = false;
217
+ // We don't want to wait for decoding failure, just attempt to decode
218
+ // all messages and do the call back on the one that works
219
+ // noinspection ES6MissingAwait
220
+ decoders.forEach(async (dec) => {
221
+ if (didDecodeMsg)
222
+ return;
223
+ const decoded = await dec.fromProtoObj(pubSubTopic, message);
224
+ // const decoded = await dec.fromProtoObj(pubSubTopic, message);
225
+ if (!decoded) {
226
+ log("Not able to decode message");
227
+ return;
228
+ }
229
+ // This is just to prevent more decoding attempt
230
+ // TODO: Could be better if we were to abort promises
231
+ didDecodeMsg = Boolean(decoded);
232
+ await callback(decoded);
233
+ });
234
+ }
235
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/filter/v2/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import type { Stream } from "@libp2p/interface-connection";
2
2
  import type { Libp2p } from "@libp2p/interface-libp2p";
3
- import type { PeerId } from "@libp2p/interface-peer-id";
4
- import type { MultiaddrInput } from "@multiformats/multiaddr";
5
- import type { IFilter, ILightPush, IRelay, IStore, Waku } from "@waku/interfaces";
3
+ import { PeerId } from "@libp2p/interface-peer-id";
4
+ import { MultiaddrInput } from "@multiformats/multiaddr";
5
+ import type { IFilter, IFilterV2, ILightPush, IRelay, IStore, Waku } from "@waku/interfaces";
6
6
  import { Protocols } from "@waku/interfaces";
7
7
  import { ConnectionManager } from "./connection_manager.js";
8
8
  export declare const DefaultPingKeepAliveValueSecs = 0;
@@ -33,10 +33,10 @@ export declare class WakuNode implements Waku {
33
33
  libp2p: Libp2p;
34
34
  relay?: IRelay;
35
35
  store?: IStore;
36
- filter?: IFilter;
36
+ filter?: IFilter | IFilterV2;
37
37
  lightPush?: ILightPush;
38
38
  connectionManager: ConnectionManager;
39
- constructor(options: WakuOptions, libp2p: Libp2p, store?: (libp2p: Libp2p) => IStore, lightPush?: (libp2p: Libp2p) => ILightPush, filter?: (libp2p: Libp2p) => IFilter, relay?: (libp2p: Libp2p) => IRelay);
39
+ constructor(options: WakuOptions, libp2p: Libp2p, store?: (libp2p: Libp2p) => IStore, lightPush?: (libp2p: Libp2p) => ILightPush, filter?: (libp2p: Libp2p) => IFilter | IFilterV2, relay?: (libp2p: Libp2p) => IRelay);
40
40
  /**
41
41
  * Dials to the provided peer.
42
42
  *
@@ -1 +1 @@
1
- {"version":3,"file":"waku.js","sourceRoot":"","sources":["../../src/lib/waku.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"waku.js","sourceRoot":"","sources":["../../src/lib/waku.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waku/core",
3
- "version": "0.0.18",
3
+ "version": "0.0.19",
4
4
  "description": "TypeScript implementation of the Waku v2 protocol",
5
5
  "types": "./dist/index.d.ts",
6
6
  "module": "./dist/index.js",
@@ -56,7 +56,6 @@
56
56
  "build:bundle": "rollup --config rollup.config.js",
57
57
  "fix": "run-s fix:*",
58
58
  "fix:lint": "eslint src *.js --fix",
59
- "pretest": "run-s pretest:*",
60
59
  "check": "run-s check:*",
61
60
  "check:tsc": "tsc -p tsconfig.dev.json",
62
61
  "check:lint": "eslint src *.js",
@@ -74,9 +73,9 @@
74
73
  },
75
74
  "dependencies": {
76
75
  "@noble/hashes": "^1.3.0",
77
- "@waku/interfaces": "0.0.13",
78
- "@waku/proto": "*",
79
- "@waku/utils": "0.0.6",
76
+ "@waku/interfaces": "0.0.14",
77
+ "@waku/proto": "0.0.5",
78
+ "@waku/utils": "0.0.7",
80
79
  "debug": "^4.3.4",
81
80
  "it-all": "^3.0.1",
82
81
  "it-length-prefixed": "^9.0.1",
@@ -121,7 +120,7 @@
121
120
  "npm-run-all": "^4.1.5",
122
121
  "prettier": "^2.8.8",
123
122
  "process": "^0.11.10",
124
- "puppeteer": "^19.8.2",
123
+ "puppeteer": "^20.4.0",
125
124
  "rollup": "^3.21.3",
126
125
  "ts-loader": "^9.4.2",
127
126
  "ts-node": "^10.9.1",
package/src/index.ts CHANGED
@@ -11,8 +11,11 @@ export * as message from "./lib/message/index.js";
11
11
  export * as waku from "./lib/waku.js";
12
12
  export { WakuNode, WakuOptions } from "./lib/waku.js";
13
13
 
14
- export * as waku_filter from "./lib/filter/index.js";
15
- export { wakuFilter } from "./lib/filter/index.js";
14
+ export * as waku_filter_v1 from "./lib/filter/v1/index.js";
15
+ export { wakuFilter as wakuFilterV1 } from "./lib/filter/v1/index.js";
16
+
17
+ export * as waku_filter_v2 from "./lib/filter/v2/index.js";
18
+ export { wakuFilterV2 } from "./lib/filter/v2/index.js";
16
19
 
17
20
  export * as waku_light_push from "./lib/light_push/index.js";
18
21
  export { wakuLightPush, LightPushCodec } from "./lib/light_push/index.js";
@@ -1,10 +1,7 @@
1
+ import { ContentFilter } from "@waku/interfaces";
1
2
  import { proto_filter as proto } from "@waku/proto";
2
3
  import { v4 as uuid } from "uuid";
3
4
 
4
- export type ContentFilter = {
5
- contentTopic: string;
6
- };
7
-
8
5
  /**
9
6
  * FilterRPC represents a message conforming to the Waku Filter protocol
10
7
  */
@@ -4,6 +4,7 @@ import type { IncomingStreamData } from "@libp2p/interface-registrar";
4
4
  import type {
5
5
  ActiveSubscriptions,
6
6
  Callback,
7
+ ContentFilter,
7
8
  IAsyncIterator,
8
9
  IDecodedMessage,
9
10
  IDecoder,
@@ -19,13 +20,11 @@ import all from "it-all";
19
20
  import * as lp from "it-length-prefixed";
20
21
  import { pipe } from "it-pipe";
21
22
 
22
- import { BaseProtocol } from "../base_protocol.js";
23
- import { DefaultPubSubTopic } from "../constants.js";
24
- import { toProtoMessage } from "../to_proto_message.js";
23
+ import { BaseProtocol } from "../../base_protocol.js";
24
+ import { DefaultPubSubTopic } from "../../constants.js";
25
+ import { toProtoMessage } from "../../to_proto_message.js";
25
26
 
26
- import { ContentFilter, FilterRpc } from "./filter_rpc.js";
27
-
28
- export { ContentFilter };
27
+ import { FilterRpc } from "./filter_rpc.js";
29
28
 
30
29
  export const FilterCodec = "/vac/waku/filter/2.0.0-beta1";
31
30