Skip to content

Commit da1b18d

Browse files
committed
feat: export Decoder, Encoder and DecodedMessage types from root
Fixes #1010
1 parent abe1e20 commit da1b18d

File tree

6 files changed

+50
-49
lines changed

6 files changed

+50
-49
lines changed

packages/core/src/index.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
export { DefaultPubSubTopic } from "./lib/constants.js";
22
export { DefaultUserAgent } from "./lib/waku.js";
33

4-
export {
5-
createEncoder,
6-
createDecoder,
4+
export { createEncoder, createDecoder } from "./lib/message/version_0.js";
5+
export type {
6+
Encoder,
7+
Decoder,
78
DecodedMessage,
89
} from "./lib/message/version_0.js";
910
export * as message from "./lib/message/index.js";
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import {
2+
DecodedMessage as DecodedMessageV0,
3+
proto,
4+
} from "@waku/core/lib/message/version_0";
5+
import type { IDecodedMessage } from "@waku/interfaces";
6+
7+
export class DecodedMessage
8+
extends DecodedMessageV0
9+
implements IDecodedMessage
10+
{
11+
private readonly _decodedPayload: Uint8Array;
12+
13+
constructor(
14+
proto: proto.WakuMessage,
15+
decodedPayload: Uint8Array,
16+
public signature?: Uint8Array,
17+
public signaturePublicKey?: Uint8Array
18+
) {
19+
super(proto);
20+
this._decodedPayload = decodedPayload;
21+
}
22+
23+
get payload(): Uint8Array {
24+
return this._decodedPayload;
25+
}
26+
}

packages/message-encryption/src/ecies.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import type {
99
import { WakuMessage } from "@waku/proto";
1010
import debug from "debug";
1111

12+
import { DecodedMessage } from "./decoded_message.js";
1213
import {
1314
decryptAsymmetric,
1415
encryptAsymmetric,
@@ -17,18 +18,18 @@ import {
1718
} from "./waku_payload.js";
1819

1920
import {
20-
DecodedMessage,
2121
generatePrivateKey,
2222
getPublicKey,
2323
OneMillion,
2424
Version,
2525
} from "./index.js";
2626

27-
export { DecodedMessage, generatePrivateKey, getPublicKey };
27+
export { generatePrivateKey, getPublicKey };
28+
export type { Encoder, Decoder, DecodedMessage };
2829

2930
const log = debug("waku:message-encryption:ecies");
3031

31-
export class Encoder implements IEncoder {
32+
class Encoder implements IEncoder {
3233
constructor(
3334
public contentTopic: string,
3435
private publicKey: Uint8Array,
@@ -88,7 +89,7 @@ export function createEncoder({
8889
return new Encoder(contentTopic, publicKey, sigPrivKey, ephemeral);
8990
}
9091

91-
export class Decoder extends DecoderV0 implements IDecoder<DecodedMessage> {
92+
class Decoder extends DecoderV0 implements IDecoder<DecodedMessage> {
9293
constructor(contentTopic: string, private privateKey: Uint8Array) {
9394
super(contentTopic);
9495
}
+2-27
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
1-
import {
2-
DecodedMessage as DecodedMessageV0,
3-
proto,
4-
} from "@waku/core/lib/message/version_0";
5-
import type { IDecodedMessage } from "@waku/interfaces";
6-
71
import {
82
generatePrivateKey,
93
generateSymmetricKey,
104
getPublicKey,
115
} from "./crypto/index.js";
6+
import { DecodedMessage } from "./decoded_message.js";
127

138
export const OneMillion = BigInt(1_000_000);
149

1510
export { generatePrivateKey, generateSymmetricKey, getPublicKey };
11+
export type { DecodedMessage };
1612

1713
export * as ecies from "./ecies.js";
1814
export * as symmetric from "./symmetric.js";
@@ -23,24 +19,3 @@ export type Signature = {
2319
signature: Uint8Array;
2420
publicKey: Uint8Array | undefined;
2521
};
26-
27-
export class DecodedMessage
28-
extends DecodedMessageV0
29-
implements IDecodedMessage
30-
{
31-
private readonly _decodedPayload: Uint8Array;
32-
33-
constructor(
34-
proto: proto.WakuMessage,
35-
decodedPayload: Uint8Array,
36-
public signature?: Uint8Array,
37-
public signaturePublicKey?: Uint8Array
38-
) {
39-
super(proto);
40-
this._decodedPayload = decodedPayload;
41-
}
42-
43-
get payload(): Uint8Array {
44-
return this._decodedPayload;
45-
}
46-
}

packages/message-encryption/src/symmetric.ts

+6-9
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,22 @@ import type {
99
import { WakuMessage } from "@waku/proto";
1010
import debug from "debug";
1111

12+
import { DecodedMessage } from "./decoded_message.js";
1213
import {
1314
decryptSymmetric,
1415
encryptSymmetric,
1516
postCipher,
1617
preCipher,
1718
} from "./waku_payload.js";
1819

19-
import {
20-
DecodedMessage,
21-
generateSymmetricKey,
22-
OneMillion,
23-
Version,
24-
} from "./index.js";
20+
import { generateSymmetricKey, OneMillion, Version } from "./index.js";
2521

26-
export { DecodedMessage, generateSymmetricKey };
22+
export { generateSymmetricKey };
23+
export type { DecodedMessage, Encoder, Decoder };
2724

2825
const log = debug("waku:message-encryption:symmetric");
2926

30-
export class Encoder implements IEncoder {
27+
class Encoder implements IEncoder {
3128
constructor(
3229
public contentTopic: string,
3330
private symKey: Uint8Array,
@@ -87,7 +84,7 @@ export function createEncoder({
8784
return new Encoder(contentTopic, symKey, sigPrivKey, ephemeral);
8885
}
8986

90-
export class Decoder extends DecoderV0 implements IDecoder<DecodedMessage> {
87+
class Decoder extends DecoderV0 implements IDecoder<DecodedMessage> {
9188
constructor(contentTopic: string, private symKey: Uint8Array) {
9289
super(contentTopic);
9390
}

packages/tests/tests/store.node.spec.ts

+7-6
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ import {
22
createCursor,
33
createDecoder,
44
createEncoder,
5+
DecodedMessage,
56
PageDirection,
67
waitForRemotePeer,
78
} from "@waku/core";
89
import { createLightNode } from "@waku/create";
9-
import type { IDecodedMessage, IMessage, LightNode } from "@waku/interfaces";
10+
import type { IMessage, LightNode } from "@waku/interfaces";
1011
import { Protocols } from "@waku/interfaces";
1112
import {
1213
createDecoder as createEciesDecoder,
@@ -147,10 +148,10 @@ describe("Waku Store", () => {
147148
const query = waku.store.queryGenerator([TestDecoder]);
148149

149150
// messages in reversed order (first message at last index)
150-
const messages: IDecodedMessage[] = [];
151+
const messages: DecodedMessage[] = [];
151152
for await (const page of query) {
152153
for await (const msg of page.reverse()) {
153-
messages.push(msg as IDecodedMessage);
154+
messages.push(msg as DecodedMessage);
154155
}
155156
}
156157

@@ -160,12 +161,12 @@ describe("Waku Store", () => {
160161
// create cursor to extract messages after the 3rd index
161162
const cursor = await createCursor(messages[cursorIndex]);
162163

163-
const messagesAfterCursor: IDecodedMessage[] = [];
164+
const messagesAfterCursor: DecodedMessage[] = [];
164165
for await (const page of waku.store.queryGenerator([TestDecoder], {
165166
cursor,
166167
})) {
167168
for await (const msg of page.reverse()) {
168-
messagesAfterCursor.push(msg as IDecodedMessage);
169+
messagesAfterCursor.push(msg as DecodedMessage);
169170
}
170171
}
171172

@@ -419,7 +420,7 @@ describe("Waku Store", () => {
419420

420421
await waitForRemotePeer(waku2, [Protocols.Store]);
421422

422-
const messages: IDecodedMessage[] = [];
423+
const messages: DecodedMessage[] = [];
423424
log("Retrieve messages from store");
424425

425426
for await (const msgPromises of waku2.store.queryGenerator([

0 commit comments

Comments
 (0)