@solarpunkltd/swarm-chat-js 6.0.1 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +56092 -0
- package/dist/index.js +85 -4
- package/dist/interfaces/chat.d.ts +2 -2
- package/dist/lib/history.d.ts +1 -1
- package/dist/lib/utils.d.ts +1 -1
- package/dist/swarm-chat-umd.js +85 -0
- package/dist/utils/bee.d.ts +1 -1
- package/dist/waku/Waku.d.ts +1 -1
- package/package.json +2 -2
- package/dist/index.js.map +0 -1
- package/dist/interfaces/chat.js +0 -2
- package/dist/interfaces/chat.js.map +0 -1
- package/dist/interfaces/index.js +0 -3
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/message.js +0 -7
- package/dist/interfaces/message.js.map +0 -1
- package/dist/lib/constants.js +0 -11
- package/dist/lib/constants.js.map +0 -1
- package/dist/lib/core.js +0 -225
- package/dist/lib/core.js.map +0 -1
- package/dist/lib/history.js +0 -140
- package/dist/lib/history.js.map +0 -1
- package/dist/lib/utils.js +0 -205
- package/dist/lib/utils.js.map +0 -1
- package/dist/scripts/mine.js +0 -13
- package/dist/scripts/mine.js.map +0 -1
- package/dist/utils/bee.js +0 -64
- package/dist/utils/bee.js.map +0 -1
- package/dist/utils/common.js +0 -33
- package/dist/utils/common.js.map +0 -1
- package/dist/utils/error.js +0 -20
- package/dist/utils/error.js.map +0 -1
- package/dist/utils/eventEmitter.js +0 -32
- package/dist/utils/eventEmitter.js.map +0 -1
- package/dist/utils/logger.js +0 -31
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/validation.js +0 -187
- package/dist/utils/validation.js.map +0 -1
- package/dist/waku/ProtoMessage.js +0 -35
- package/dist/waku/ProtoMessage.js.map +0 -1
- package/dist/waku/Waku.js +0 -84
- package/dist/waku/Waku.js.map +0 -1
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
|
-
import protobuf from 'protobufjs';
|
|
3
|
-
const { load } = protobuf;
|
|
4
|
-
let protoRoot = null;
|
|
5
|
-
let messagePayloadType = null;
|
|
6
|
-
async function initializeProtobuf() {
|
|
7
|
-
if (!protoRoot) {
|
|
8
|
-
protoRoot = await load(path.join(__dirname, '../waku/message.proto'));
|
|
9
|
-
protoRoot.resolveAll();
|
|
10
|
-
messagePayloadType = protoRoot.lookupType('MessagePayload');
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
export async function decodeMessagePayload(buffer) {
|
|
14
|
-
await initializeProtobuf();
|
|
15
|
-
if (!messagePayloadType)
|
|
16
|
-
throw new Error('MessagePayload type not initialized');
|
|
17
|
-
const reverseTypeMap = { 0: 'text', 1: 'thread', 2: 'reaction' };
|
|
18
|
-
try {
|
|
19
|
-
const decoded = messagePayloadType.decode(buffer);
|
|
20
|
-
const decodedObject = messagePayloadType.toObject(decoded);
|
|
21
|
-
const messageData = {
|
|
22
|
-
...decodedObject.message,
|
|
23
|
-
type: reverseTypeMap[decodedObject.message.type] ?? 'text',
|
|
24
|
-
};
|
|
25
|
-
const messageStateRefs = decodedObject.messageStateRefs || [];
|
|
26
|
-
return {
|
|
27
|
-
message: messageData,
|
|
28
|
-
messageStateRefs,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
throw new Error(`Failed to decode message payload: ${error}`);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=ProtoMessage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProtoMessage.js","sourceRoot":"","sources":["../../src/waku/ProtoMessage.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,QAAQ,MAAM,YAAY,CAAC;AAKlC,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;AAI1B,IAAI,SAAS,GAAgB,IAAI,CAAC;AAClC,IAAI,kBAAkB,GAAgB,IAAI,CAAC;AAE3C,KAAK,UAAU,kBAAkB;IAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC;QACtE,SAAS,CAAC,UAAU,EAAE,CAAC;QACvB,kBAAkB,GAAG,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAkB;IAElB,MAAM,kBAAkB,EAAE,CAAC;IAC3B,IAAI,CAAC,kBAAkB;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAEhF,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;IAEjE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE3D,MAAM,WAAW,GAAgB;YAC/B,GAAG,aAAa,CAAC,OAAO;YACxB,IAAI,EAAE,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,IAAmC,CAAC,IAAI,MAAM;SAC1F,CAAC;QAEF,MAAM,gBAAgB,GAAsB,aAAa,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAEjF,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
|
package/dist/waku/Waku.js
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { createDecoder, createLightNode, Protocols } from '@waku/sdk';
|
|
2
|
-
import { createHash } from 'crypto';
|
|
3
|
-
import { WAKU_CLUSTER_ID } from '../lib/constants.js';
|
|
4
|
-
import { Logger } from '../utils/logger.js';
|
|
5
|
-
import { decodeMessagePayload } from '../waku/ProtoMessage.js';
|
|
6
|
-
export class Waku {
|
|
7
|
-
constructor(chatTopic, onMessage, node) {
|
|
8
|
-
this.logger = Logger.getInstance();
|
|
9
|
-
this.wakuNode = null;
|
|
10
|
-
this.handleWakuMessage = async ({ payload }) => {
|
|
11
|
-
try {
|
|
12
|
-
if (!payload)
|
|
13
|
-
return this.logger.warn('Received Waku message without payload');
|
|
14
|
-
const { message } = await decodeMessagePayload(payload);
|
|
15
|
-
if (!message?.id)
|
|
16
|
-
return this.logger.warn('Received invalid message structure via Waku');
|
|
17
|
-
this.onMessage(message);
|
|
18
|
-
}
|
|
19
|
-
catch (error) {
|
|
20
|
-
this.logger.error('Failed to decode Waku message:', error);
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
this.chatTopic = chatTopic;
|
|
24
|
-
this.onMessage = onMessage;
|
|
25
|
-
this.wakuNode = node || null;
|
|
26
|
-
this.initPromise = this.init();
|
|
27
|
-
}
|
|
28
|
-
async init() {
|
|
29
|
-
this.wakuNode = this.wakuNode ?? (await this.createWakuLightNode());
|
|
30
|
-
if (!(await this.subscribeToTopic()))
|
|
31
|
-
throw new Error('Failed to subscribe to Waku topic');
|
|
32
|
-
this.logger.info(`Subscribed to Waku topic: ${this.chatTopic}`);
|
|
33
|
-
}
|
|
34
|
-
async createWakuLightNode() {
|
|
35
|
-
const node = await createLightNode({
|
|
36
|
-
defaultBootstrap: true,
|
|
37
|
-
networkConfig: { clusterId: WAKU_CLUSTER_ID },
|
|
38
|
-
});
|
|
39
|
-
await node.start();
|
|
40
|
-
await node.waitForPeers([Protocols.LightPush, Protocols.Filter], 30000);
|
|
41
|
-
this.logger.info(`Waku node ready: ${node.libp2p.peerId.toString()}`);
|
|
42
|
-
return node;
|
|
43
|
-
}
|
|
44
|
-
createWakuDecoder(topicName) {
|
|
45
|
-
if (!topicName?.trim())
|
|
46
|
-
throw new Error('Topic name must be a non-empty string');
|
|
47
|
-
const hash = createHash('sha256').update(topicName).digest('hex');
|
|
48
|
-
const shardId = Number(BigInt('0x' + hash) % 8n);
|
|
49
|
-
return createDecoder(`solarpunk-msrs/1/${topicName}/proto`, {
|
|
50
|
-
clusterId: WAKU_CLUSTER_ID,
|
|
51
|
-
shardId,
|
|
52
|
-
pubsubTopic: `/waku/2/rs/${WAKU_CLUSTER_ID}/${shardId}`,
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
async subscribeToTopic() {
|
|
56
|
-
if (!this.wakuNode?.isStarted())
|
|
57
|
-
throw new Error('Waku node is not running');
|
|
58
|
-
return this.wakuNode.filter.subscribe(this.createWakuDecoder(this.chatTopic), this.handleWakuMessage);
|
|
59
|
-
}
|
|
60
|
-
async isReady() {
|
|
61
|
-
try {
|
|
62
|
-
await this.initPromise;
|
|
63
|
-
return this.wakuNode?.isStarted() ?? false;
|
|
64
|
-
}
|
|
65
|
-
catch {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
async stop() {
|
|
70
|
-
try {
|
|
71
|
-
await this.initPromise;
|
|
72
|
-
if (this.wakuNode) {
|
|
73
|
-
await this.wakuNode.stop();
|
|
74
|
-
this.wakuNode = null;
|
|
75
|
-
this.logger.info('Waku node stopped successfully');
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
catch (error) {
|
|
79
|
-
this.logger.error('Error stopping Waku node:', error);
|
|
80
|
-
throw error;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=Waku.js.map
|
package/dist/waku/Waku.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Waku.js","sourceRoot":"","sources":["../../src/waku/Waku.ts"],"names":[],"mappings":"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"}
|