@streamr/node 102.0.0-beta.0 → 102.0.0-beta.1
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/bin/streamr-node.ts +0 -1
- package/dist/bin/streamr-node.js +0 -1
- package/dist/bin/streamr-node.js.map +1 -1
- package/dist/package.json +16 -21
- package/dist/src/broker.js +1 -1
- package/dist/src/broker.js.map +1 -1
- package/dist/src/config/ConfigWizard.js +22 -15
- package/dist/src/config/ConfigWizard.js.map +1 -1
- package/dist/src/config/config.js +19 -9
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/migration.js +0 -1
- package/dist/src/config/migration.js.map +1 -1
- package/dist/src/helpers/applyPluginClientConfigs.d.ts +1 -1
- package/dist/src/helpers/partitions.js +2 -2
- package/dist/src/helpers/partitions.js.map +1 -1
- package/dist/src/helpers/weightedSample.d.ts +3 -3
- package/dist/src/helpers/weightedSample.js +1 -2
- package/dist/src/helpers/weightedSample.js.map +1 -1
- package/dist/src/httpServer.d.ts +1 -3
- package/dist/src/plugins/http/publishEndpoint.js +1 -1
- package/dist/src/plugins/http/publishEndpoint.js.map +1 -1
- package/dist/src/plugins/mqtt/MqttServer.js +17 -7
- package/dist/src/plugins/mqtt/MqttServer.js.map +1 -1
- package/dist/src/plugins/operator/MaintainTopologyHelper.js +1 -1
- package/dist/src/plugins/operator/OperatorPlugin.js +5 -10
- package/dist/src/plugins/operator/OperatorPlugin.js.map +1 -1
- package/dist/src/plugins/operator/checkOperatorValueBreach.d.ts +2 -2
- package/dist/src/plugins/operator/checkOperatorValueBreach.js +9 -4
- package/dist/src/plugins/operator/checkOperatorValueBreach.js.map +1 -1
- package/dist/src/plugins/operator/createIsLeaderFn.js +1 -2
- package/dist/src/plugins/operator/createIsLeaderFn.js.map +1 -1
- package/dist/src/plugins/operator/formCoordinationStreamId.js +1 -2
- package/dist/src/plugins/operator/formCoordinationStreamId.js.map +1 -1
- package/dist/src/plugins/operator/heartbeatUtils.d.ts +4 -1
- package/dist/src/plugins/operator/heartbeatUtils.js +8 -5
- package/dist/src/plugins/operator/heartbeatUtils.js.map +1 -1
- package/dist/src/plugins/operator/inspectOverTime.d.ts +0 -1
- package/dist/src/plugins/operator/inspectOverTime.js +2 -2
- package/dist/src/plugins/operator/inspectOverTime.js.map +1 -1
- package/dist/src/plugins/operator/inspectRandomNode.d.ts +0 -1
- package/dist/src/plugins/operator/inspectRandomNode.js +1 -2
- package/dist/src/plugins/operator/inspectRandomNode.js.map +1 -1
- package/dist/src/plugins/operator/inspectionUtils.d.ts +0 -1
- package/dist/src/plugins/operator/inspectionUtils.js +3 -4
- package/dist/src/plugins/operator/inspectionUtils.js.map +1 -1
- package/dist/src/plugins/operator/maintainOperatorValue.d.ts +2 -1
- package/dist/src/plugins/operator/maintainOperatorValue.js +4 -5
- package/dist/src/plugins/operator/maintainOperatorValue.js.map +1 -1
- package/dist/src/plugins/operator/reviewSuspectNode.d.ts +0 -1
- package/dist/src/plugins/storage/Batch.d.ts +0 -3
- package/dist/src/plugins/storage/Batch.js +1 -1
- package/dist/src/plugins/storage/Batch.js.map +1 -1
- package/dist/src/plugins/storage/BatchManager.d.ts +0 -1
- package/dist/src/plugins/storage/BatchManager.js +1 -1
- package/dist/src/plugins/storage/BatchManager.js.map +1 -1
- package/dist/src/plugins/storage/Bucket.js +2 -2
- package/dist/src/plugins/storage/Bucket.js.map +1 -1
- package/dist/src/plugins/storage/DeleteExpiredCmd.js +2 -2
- package/dist/src/plugins/storage/DeleteExpiredCmd.js.map +1 -1
- package/dist/src/plugins/storage/SetMembershipSynchronizer.js +1 -1
- package/dist/src/plugins/storage/Storage.d.ts +0 -3
- package/dist/src/plugins/storage/Storage.js +2 -2
- package/dist/src/plugins/storage/StorageConfig.js +8 -8
- package/dist/src/plugins/storage/StorageConfig.js.map +1 -1
- package/dist/src/plugins/storage/StorageEventListener.d.ts +1 -1
- package/dist/src/plugins/storage/StorageEventListener.js +3 -3
- package/dist/src/plugins/storage/StorageEventListener.js.map +1 -1
- package/dist/src/plugins/storage/StoragePlugin.js +1 -1
- package/dist/src/plugins/storage/StoragePlugin.js.map +1 -1
- package/dist/src/plugins/storage/StoragePoller.d.ts +1 -2
- package/dist/src/plugins/storage/StoragePoller.js +1 -1
- package/dist/src/plugins/storage/StoragePoller.js.map +1 -1
- package/jest.config.ts +9 -0
- package/package.json +16 -21
- package/bin/broker.ts +0 -11
- package/bin/config-wizard.js +0 -4
- package/bin/config-wizard.ts +0 -9
- package/dist/bin/broker.d.ts +0 -2
- package/dist/bin/broker.js +0 -12
- package/dist/bin/broker.js.map +0 -1
- package/dist/bin/config-wizard.d.ts +0 -2
- package/dist/bin/config-wizard.js +0 -10
- package/dist/bin/config-wizard.js.map +0 -1
- package/dist/src/helpers/fetchOrThrow.d.ts +0 -2
- package/dist/src/helpers/fetchOrThrow.js +0 -20
- package/dist/src/helpers/fetchOrThrow.js.map +0 -1
- package/dist/src/helpers/multiply.d.ts +0 -1
- package/dist/src/helpers/multiply.js +0 -10
- package/dist/src/helpers/multiply.js.map +0 -1
|
@@ -38,14 +38,14 @@ class StorageConfig {
|
|
|
38
38
|
this.clusterSize = clusterSize;
|
|
39
39
|
this.myIndexInCluster = myIndexInCluster;
|
|
40
40
|
this.listener = listener;
|
|
41
|
-
this.storagePoller = new StoragePoller_1.StoragePoller(clusterId, pollInterval, streamrClient, (streams, block) => {
|
|
42
|
-
const streamParts = streams.
|
|
43
|
-
...this.createMyStreamParts(stream)
|
|
44
|
-
|
|
41
|
+
this.storagePoller = new StoragePoller_1.StoragePoller(clusterId, pollInterval, streamrClient, async (streams, block) => {
|
|
42
|
+
const streamParts = (await Promise.all(streams.map(async (stream) => {
|
|
43
|
+
return [...await this.createMyStreamParts(stream)];
|
|
44
|
+
}))).flat();
|
|
45
45
|
this.handleDiff(this.synchronizer.ingestSnapshot(new Set(streamParts), block));
|
|
46
46
|
});
|
|
47
|
-
this.storageEventListener = new StorageEventListener_1.StorageEventListener(clusterId, streamrClient, (stream, type, block) => {
|
|
48
|
-
const streamParts = this.createMyStreamParts(stream);
|
|
47
|
+
this.storageEventListener = new StorageEventListener_1.StorageEventListener(clusterId, streamrClient, async (stream, type, block) => {
|
|
48
|
+
const streamParts = await this.createMyStreamParts(stream);
|
|
49
49
|
this.handleDiff(this.synchronizer.ingestPatch(streamParts, type, block));
|
|
50
50
|
});
|
|
51
51
|
this.abortController = new AbortController();
|
|
@@ -64,8 +64,8 @@ class StorageConfig {
|
|
|
64
64
|
getStreamParts() {
|
|
65
65
|
return this.synchronizer.getState();
|
|
66
66
|
}
|
|
67
|
-
createMyStreamParts(stream) {
|
|
68
|
-
return new Set(stream.getStreamParts().filter((streamPart) => {
|
|
67
|
+
async createMyStreamParts(stream) {
|
|
68
|
+
return new Set((await stream.getStreamParts()).filter((streamPart) => {
|
|
69
69
|
const hashedIndex = (0, utils_1.keyToArrayIndex)(this.clusterSize, streamPart);
|
|
70
70
|
return hashedIndex === this.myIndexInCluster;
|
|
71
71
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageConfig.js","sourceRoot":"","sources":["../../../../src/plugins/storage/StorageConfig.ts"],"names":[],"mappings":";;;AACA,0CAAuF;AACvF,2EAA6E;AAC7E,iEAA6D;AAC7D,mDAA+C;AAE/C,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAOjC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,aAAa;IACL,QAAQ,CAAuB;IAC/B,YAAY,GAAG,IAAI,qDAAyB,EAAgB,CAAA;IAC5D,WAAW,CAAQ;IACnB,gBAAgB,CAAQ;IACxB,aAAa,CAAe;IAC5B,oBAAoB,CAAsB;IAC1C,eAAe,CAAiB;IAEjD,YACI,SAA0B,EAC1B,WAAmB,EACnB,gBAAwB,EACxB,YAAoB,EACpB,aAA4B,EAC5B,QAA+B;QAE/B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,6BAAa,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"StorageConfig.js","sourceRoot":"","sources":["../../../../src/plugins/storage/StorageConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export declare class StorageEventListener {
|
|
|
10
10
|
private readonly onEvent;
|
|
11
11
|
private readonly onAddToStorageNode;
|
|
12
12
|
private readonly onRemoveFromStorageNode;
|
|
13
|
-
constructor(clusterId: EthereumAddress, streamrClient: StreamrClient, onEvent: (stream: Stream, type: 'added' | 'removed', block: number) => void);
|
|
13
|
+
constructor(clusterId: EthereumAddress, streamrClient: StreamrClient, onEvent: (stream: Stream, type: 'added' | 'removed', block: number) => Promise<void>);
|
|
14
14
|
private handleEvent;
|
|
15
15
|
start(): void;
|
|
16
16
|
destroy(): void;
|
|
@@ -27,7 +27,7 @@ class StorageEventListener {
|
|
|
27
27
|
logger.info('Received StorageNodeAssignmentEvent', { type, event });
|
|
28
28
|
try {
|
|
29
29
|
const stream = await this.streamrClient.getStream(event.streamId);
|
|
30
|
-
this.onEvent(stream, type, event.blockNumber);
|
|
30
|
+
await this.onEvent(stream, type, event.blockNumber);
|
|
31
31
|
}
|
|
32
32
|
catch (err) {
|
|
33
33
|
logger.warn('Encountered error handling StorageNodeAssignmentEvent', { err, event, type });
|
|
@@ -35,11 +35,11 @@ class StorageEventListener {
|
|
|
35
35
|
}
|
|
36
36
|
start() {
|
|
37
37
|
this.streamrClient.on('streamAddedToStorageNode', this.onAddToStorageNode);
|
|
38
|
-
this.streamrClient.on('
|
|
38
|
+
this.streamrClient.on('streamRemovedFromStorageNode', this.onRemoveFromStorageNode);
|
|
39
39
|
}
|
|
40
40
|
destroy() {
|
|
41
41
|
this.streamrClient.off('streamAddedToStorageNode', this.onAddToStorageNode);
|
|
42
|
-
this.streamrClient.off('
|
|
42
|
+
this.streamrClient.off('streamRemovedFromStorageNode', this.onRemoveFromStorageNode);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
exports.StorageEventListener = StorageEventListener;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageEventListener.js","sourceRoot":"","sources":["../../../../src/plugins/storage/StorageEventListener.ts"],"names":[],"mappings":";;;AACA,0CAAwD;AAExD,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC;;;GAGG;AACH,MAAa,oBAAoB;IACZ,SAAS,CAAiB;IAC1B,aAAa,CAAe;IAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"StorageEventListener.js","sourceRoot":"","sources":["../../../../src/plugins/storage/StorageEventListener.ts"],"names":[],"mappings":";;;AACA,0CAAwD;AAExD,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC;;;GAGG;AACH,MAAa,oBAAoB;IACZ,SAAS,CAAiB;IAC1B,aAAa,CAAe;IAC5B,OAAO,CAA6E;IACpF,kBAAkB,CAA6C;IAC/D,uBAAuB,CAA6C;IAErF,YACI,SAA0B,EAC1B,aAA4B,EAC5B,OAAoF;QAEpF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,kBAAkB,GAAG,CAAC,KAAiC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACjG,IAAI,CAAC,uBAAuB,GAAG,CAAC,KAAiC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAC5G,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAiC,EAAE,IAAyB;QAClF,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACvC,OAAM;QACV,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACnE,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACjE,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,uDAAuD,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9F,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,0BAA0B,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC1E,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,8BAA8B,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAA;IACvF,CAAC;IAED,OAAO;QACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC3E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,8BAA8B,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAA;IACxF,CAAC;CACJ;AAzCD,oDAyCC"}
|
|
@@ -24,7 +24,7 @@ class StoragePlugin extends Plugin_1.Plugin {
|
|
|
24
24
|
messageListener;
|
|
25
25
|
async start(streamrClient) {
|
|
26
26
|
this.streamrClient = streamrClient;
|
|
27
|
-
const clusterId = this.pluginConfig.cluster.clusterAddress ?? await this.streamrClient.
|
|
27
|
+
const clusterId = this.pluginConfig.cluster.clusterAddress ?? (0, utils_1.toEthereumAddress)(await this.streamrClient.getUserId());
|
|
28
28
|
const assignmentStream = await this.streamrClient.getStream((0, sdk_1.formStorageNodeAssignmentStreamId)(clusterId));
|
|
29
29
|
const metricsContext = await this.streamrClient.getNode().getMetricsContext();
|
|
30
30
|
this.cassandra = await this.startCassandraStorage(metricsContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoragePlugin.js","sourceRoot":"","sources":["../../../../src/plugins/storage/StoragePlugin.ts"],"names":[],"mappings":";;;;;;AAAA,sCAAyH;AACzH,
|
|
1
|
+
{"version":3,"file":"StoragePlugin.js","sourceRoot":"","sources":["../../../../src/plugins/storage/StoragePlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { Stream, StreamrClient } from '@streamr/sdk';
|
|
3
2
|
/**
|
|
4
3
|
* Polls full state of storage node assignments on an interval.
|
|
@@ -8,7 +7,7 @@ export declare class StoragePoller {
|
|
|
8
7
|
private readonly pollInterval;
|
|
9
8
|
private readonly streamrClient;
|
|
10
9
|
private readonly onNewSnapshot;
|
|
11
|
-
constructor(clusterId: string, pollInterval: number, streamrClient: StreamrClient, onNewSnapshot: (streams: Stream[], block: number) => void);
|
|
10
|
+
constructor(clusterId: string, pollInterval: number, streamrClient: StreamrClient, onNewSnapshot: (streams: Stream[], block: number) => Promise<void>);
|
|
12
11
|
start(abortSignal: AbortSignal): Promise<void>;
|
|
13
12
|
poll(): Promise<void>;
|
|
14
13
|
private tryPoll;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoragePoller.js","sourceRoot":"","sources":["../../../../src/plugins/storage/StoragePoller.ts"],"names":[],"mappings":";;;AACA,0CAA2D;AAE3D,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC;;GAEG;AACH,MAAa,aAAa;IACL,SAAS,CAAQ;IACjB,YAAY,CAAQ;IACpB,aAAa,CAAe;IAC5B,aAAa,
|
|
1
|
+
{"version":3,"file":"StoragePoller.js","sourceRoot":"","sources":["../../../../src/plugins/storage/StoragePoller.ts"],"names":[],"mappings":";;;AACA,0CAA2D;AAE3D,MAAM,MAAM,GAAG,IAAI,cAAM,CAAC,MAAM,CAAC,CAAA;AAEjC;;GAEG;AACH,MAAa,aAAa;IACL,SAAS,CAAQ;IACjB,YAAY,CAAQ;IACpB,aAAa,CAAe;IAC5B,aAAa,CAAqD;IAEnF,YACI,SAAiB,EACjB,YAAoB,EACpB,aAA4B,EAC5B,aAAkE;QAElE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,WAAwB;QAChC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAA,0BAAkB,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;QACxF,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QACxB,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACN,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACtB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1F,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,WAAW;SACd,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAClD,CAAC;IAEO,KAAK,CAAC,OAAO;QACjB,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;QACjD,CAAC;IACL,CAAC;CACJ;AA3CD,sCA2CC"}
|
package/jest.config.ts
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@streamr/node",
|
|
3
|
-
"version": "102.0.0-beta.
|
|
3
|
+
"version": "102.0.0-beta.1",
|
|
4
4
|
"description": "A full-featured node implementation for the Streamr Network",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -8,8 +8,6 @@
|
|
|
8
8
|
"directory": "packages/broker"
|
|
9
9
|
},
|
|
10
10
|
"bin": {
|
|
11
|
-
"streamr-broker": "dist/bin/broker.js",
|
|
12
|
-
"streamr-broker-init": "dist/bin/config-wizard.js",
|
|
13
11
|
"streamr-node": "dist/bin/streamr-node.js",
|
|
14
12
|
"streamr-node-init": "dist/bin/streamr-node-init.js",
|
|
15
13
|
"delete-expired-data": "dist/bin/delete-expired-data.js",
|
|
@@ -30,47 +28,44 @@
|
|
|
30
28
|
"author": "Streamr Network AG <contact@streamr.network>",
|
|
31
29
|
"license": "STREAMR NETWORK OPEN SOURCE LICENSE",
|
|
32
30
|
"dependencies": {
|
|
33
|
-
"@inquirer/prompts": "^7.
|
|
34
|
-
"@streamr/config": "^5.4.
|
|
35
|
-
"@streamr/dht": "102.0.0-beta.
|
|
36
|
-
"@streamr/sdk": "102.0.0-beta.
|
|
37
|
-
"@streamr/utils": "102.0.0-beta.
|
|
31
|
+
"@inquirer/prompts": "^7.2.3",
|
|
32
|
+
"@streamr/config": "^5.4.2",
|
|
33
|
+
"@streamr/dht": "102.0.0-beta.1",
|
|
34
|
+
"@streamr/sdk": "102.0.0-beta.1",
|
|
35
|
+
"@streamr/utils": "102.0.0-beta.1",
|
|
38
36
|
"aedes": "^0.51.3",
|
|
39
37
|
"ajv": "^8.17.1",
|
|
40
38
|
"ajv-formats": "^3.0.1",
|
|
41
39
|
"cassandra-driver": "^4.7.2",
|
|
42
40
|
"chalk": "^4.0.0",
|
|
43
|
-
"commander": "^
|
|
41
|
+
"commander": "^13.1.0",
|
|
44
42
|
"consistent-hash": "^1.1.1",
|
|
45
43
|
"cors": "^2.8.5",
|
|
46
44
|
"ethers": "^6.13.0",
|
|
47
45
|
"eventemitter3": "^5.0.0",
|
|
48
|
-
"express": "^4.21.
|
|
46
|
+
"express": "^4.21.2",
|
|
49
47
|
"heap": "^0.2.6",
|
|
50
48
|
"lodash": "^4.17.21",
|
|
51
49
|
"merge2": "^1.4.1",
|
|
52
|
-
"node-fetch": "^2.7.0",
|
|
53
50
|
"p-limit": "^3.1.0",
|
|
54
|
-
"qs": "^6.
|
|
55
|
-
"uuid": "^
|
|
51
|
+
"qs": "^6.14.0",
|
|
52
|
+
"uuid": "^11.0.5",
|
|
56
53
|
"ws": "^8.18.0",
|
|
57
|
-
"zod": "^3.
|
|
54
|
+
"zod": "^3.24.1"
|
|
58
55
|
},
|
|
59
56
|
"devDependencies": {
|
|
60
|
-
"@inquirer/testing": "^2.1.
|
|
57
|
+
"@inquirer/testing": "^2.1.41",
|
|
61
58
|
"@streamr/network-contracts": "^8.2.0",
|
|
62
|
-
"@streamr/test-utils": "102.0.0-beta.
|
|
59
|
+
"@streamr/test-utils": "102.0.0-beta.1",
|
|
63
60
|
"@types/cors": "^2.8.17",
|
|
64
61
|
"@types/express": "^4.17.21",
|
|
65
62
|
"@types/heap": "^0.2.34",
|
|
66
|
-
"@types/lodash": "^4.17.
|
|
63
|
+
"@types/lodash": "^4.17.14",
|
|
67
64
|
"@types/merge2": "^1.4.4",
|
|
68
|
-
"@types/
|
|
69
|
-
"@types/qs": "^6.9.16",
|
|
65
|
+
"@types/qs": "^6.9.18",
|
|
70
66
|
"@types/stream-to-array": "^2.3.3",
|
|
71
67
|
"@types/supertest": "^6.0.2",
|
|
72
|
-
"@types/
|
|
73
|
-
"@types/ws": "^8.5.12",
|
|
68
|
+
"@types/ws": "^8.5.13",
|
|
74
69
|
"async-mqtt": "^2.6.1",
|
|
75
70
|
"stream-to-array": "^2.3.0",
|
|
76
71
|
"supertest": "^7.0.0"
|
package/bin/broker.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { Logger } from '@streamr/utils'
|
|
3
|
-
|
|
4
|
-
// TODO: remove this file and the package.json entry in the future
|
|
5
|
-
// eslint-disable-next-line max-len
|
|
6
|
-
const deprecationMessage = 'The command "streamr-broker" is deprecated and will be removed in the future. Please switch to command "streamr-node" instead.'
|
|
7
|
-
console.warn(deprecationMessage)
|
|
8
|
-
new Logger(module).warn(deprecationMessage)
|
|
9
|
-
|
|
10
|
-
// side-effect: runs the command
|
|
11
|
-
import './streamr-node'
|
package/bin/config-wizard.js
DELETED
package/bin/config-wizard.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// TODO: remove this file and the package.json entry in the future
|
|
4
|
-
// eslint-disable-next-line max-len
|
|
5
|
-
const deprecationMessage = 'The command "streamr-broker-init" is deprecated and will be removed in the future. Please switch to command "streamr-node-init" instead.'
|
|
6
|
-
console.warn(deprecationMessage)
|
|
7
|
-
|
|
8
|
-
// side-effect: runs the command
|
|
9
|
-
import './streamr-node-init'
|
package/dist/bin/broker.d.ts
DELETED
package/dist/bin/broker.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
const utils_1 = require("@streamr/utils");
|
|
5
|
-
// TODO: remove this file and the package.json entry in the future
|
|
6
|
-
// eslint-disable-next-line max-len
|
|
7
|
-
const deprecationMessage = 'The command "streamr-broker" is deprecated and will be removed in the future. Please switch to command "streamr-node" instead.';
|
|
8
|
-
console.warn(deprecationMessage);
|
|
9
|
-
new utils_1.Logger(module).warn(deprecationMessage);
|
|
10
|
-
// side-effect: runs the command
|
|
11
|
-
require("./streamr-node");
|
|
12
|
-
//# sourceMappingURL=broker.js.map
|
package/dist/bin/broker.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../bin/broker.ts"],"names":[],"mappings":";;;AACA,0CAAuC;AAEvC,kEAAkE;AAClE,mCAAmC;AACnC,MAAM,kBAAkB,GAAG,gIAAgI,CAAA;AAC3J,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;AAChC,IAAI,cAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;AAE3C,gCAAgC;AAChC,0BAAuB"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
// TODO: remove this file and the package.json entry in the future
|
|
5
|
-
// eslint-disable-next-line max-len
|
|
6
|
-
const deprecationMessage = 'The command "streamr-broker-init" is deprecated and will be removed in the future. Please switch to command "streamr-node-init" instead.';
|
|
7
|
-
console.warn(deprecationMessage);
|
|
8
|
-
// side-effect: runs the command
|
|
9
|
-
require("./streamr-node-init");
|
|
10
|
-
//# sourceMappingURL=config-wizard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-wizard.js","sourceRoot":"","sources":["../../bin/config-wizard.ts"],"names":[],"mappings":";;;AAEA,kEAAkE;AAClE,mCAAmC;AACnC,MAAM,kBAAkB,GAAG,0IAA0I,CAAA;AACrK,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;AAEhC,gCAAgC;AAChC,+BAA4B"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.fetchOrThrow = void 0;
|
|
7
|
-
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
8
|
-
const utils_1 = require("@streamr/utils");
|
|
9
|
-
const DEFAULT_TIMEOUT = 30 * 1000;
|
|
10
|
-
const fetchOrThrow = async (url, init) => {
|
|
11
|
-
const res = await (0, node_fetch_1.default)(url, (0, utils_1.merge)({ timeout: DEFAULT_TIMEOUT }, init));
|
|
12
|
-
if (res.ok) {
|
|
13
|
-
return res;
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
throw new Error(`request to ${url} failed, response: ${res.status} ${res.statusText}`);
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
exports.fetchOrThrow = fetchOrThrow;
|
|
20
|
-
//# sourceMappingURL=fetchOrThrow.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetchOrThrow.js","sourceRoot":"","sources":["../../../src/helpers/fetchOrThrow.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAyD;AACzD,0CAAsC;AAEtC,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,CAAA;AAE1B,MAAM,YAAY,GAAG,KAAK,EAAE,GAAW,EAAE,IAAkB,EAAqB,EAAE;IACrF,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,EAAE,IAAA,aAAK,EAAC,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC,CAAA;IACvE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;QACT,OAAO,GAAG,CAAA;IACd,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,sBAAsB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;IAC1F,CAAC;AACL,CAAC,CAAA;AAPY,QAAA,YAAY,gBAOxB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const multiply: (val1: bigint, val2: number) => bigint;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.multiply = void 0;
|
|
4
|
-
// this precision is big enough as we typically handle bigints which are in weis (the smallest denomination of Ethereum)
|
|
5
|
-
const PRECISION = 1e18;
|
|
6
|
-
const multiply = (val1, val2) => {
|
|
7
|
-
return val1 * BigInt(PRECISION * val2) / BigInt(PRECISION);
|
|
8
|
-
};
|
|
9
|
-
exports.multiply = multiply;
|
|
10
|
-
//# sourceMappingURL=multiply.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multiply.js","sourceRoot":"","sources":["../../../src/helpers/multiply.ts"],"names":[],"mappings":";;;AAAA,wHAAwH;AACxH,MAAM,SAAS,GAAG,IAAI,CAAA;AAEf,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,IAAY,EAAU,EAAE;IAC3D,OAAO,IAAI,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;AAC9D,CAAC,CAAA;AAFY,QAAA,QAAQ,YAEpB"}
|