@streamr/cli-tools 4.1.1 → 6.0.0-alpha.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/.eslintignore +2 -0
- package/.eslintrc +6 -0
- package/CHANGELOG.md +41 -2
- package/README.md +58 -30
- package/{src/generate.js → bin/streamr-mock-data-generate.ts} +20 -3
- package/bin/streamr-mock-data.ts +10 -0
- package/bin/streamr-storage-node-add-stream.ts +12 -0
- package/bin/streamr-storage-node-list-stream-parts.ts +22 -0
- package/bin/streamr-storage-node-list.ts +27 -0
- package/bin/streamr-storage-node-remove-stream.ts +12 -0
- package/bin/streamr-storage-node.ts +13 -0
- package/bin/streamr-stream-create.ts +23 -0
- package/bin/streamr-stream-grant-permission.ts +10 -0
- package/bin/streamr-stream-publish.ts +62 -0
- package/bin/streamr-stream-resend-from.ts +26 -0
- package/bin/streamr-stream-resend-last.ts +25 -0
- package/bin/streamr-stream-resend-range.ts +32 -0
- package/bin/streamr-stream-resend.ts +11 -0
- package/bin/streamr-stream-revoke-permission.ts +10 -0
- package/bin/streamr-stream-search.ts +17 -0
- package/bin/streamr-stream-show.ts +20 -0
- package/bin/streamr-stream-subscribe.ts +22 -0
- package/bin/{streamr.js → streamr-stream.ts} +7 -5
- package/bin/streamr.ts +12 -0
- package/dist/bin/streamr-mock-data-generate.d.ts +2 -0
- package/dist/bin/streamr-mock-data-generate.js +47 -0
- package/dist/bin/streamr-mock-data-generate.js.map +1 -0
- package/dist/bin/streamr-mock-data.d.ts +2 -0
- package/dist/bin/streamr-mock-data.js +15 -0
- package/dist/bin/streamr-mock-data.js.map +1 -0
- package/dist/bin/streamr-storage-node-add-stream.d.ts +2 -0
- package/dist/bin/streamr-storage-node-add-stream.js +13 -0
- package/dist/bin/streamr-storage-node-add-stream.js.map +1 -0
- package/dist/bin/streamr-storage-node-list-stream-parts.d.ts +2 -0
- package/dist/bin/streamr-storage-node-list-stream-parts.js +26 -0
- package/dist/bin/streamr-storage-node-list-stream-parts.js.map +1 -0
- package/dist/bin/streamr-storage-node-list.d.ts +2 -0
- package/dist/bin/streamr-storage-node-list.js +31 -0
- package/dist/bin/streamr-storage-node-list.js.map +1 -0
- package/dist/bin/streamr-storage-node-remove-stream.d.ts +2 -0
- package/dist/bin/streamr-storage-node-remove-stream.js +13 -0
- package/dist/bin/streamr-storage-node-remove-stream.js.map +1 -0
- package/dist/bin/streamr-storage-node.d.ts +2 -0
- package/dist/bin/streamr-storage-node.js +18 -0
- package/dist/bin/streamr-storage-node.js.map +1 -0
- package/dist/bin/streamr-stream-create.d.ts +2 -0
- package/dist/bin/streamr-stream-create.js +23 -0
- package/dist/bin/streamr-stream-create.js.map +1 -0
- package/dist/bin/streamr-stream-grant-permission.d.ts +2 -0
- package/dist/bin/streamr-stream-grant-permission.js +7 -0
- package/dist/bin/streamr-stream-grant-permission.js.map +1 -0
- package/dist/bin/streamr-stream-list.d.ts +2 -0
- package/dist/bin/streamr-stream-list.js +34 -0
- package/dist/bin/streamr-stream-list.js.map +1 -0
- package/dist/bin/streamr-stream-publish.d.ts +2 -0
- package/dist/bin/streamr-stream-publish.js +59 -0
- package/dist/bin/streamr-stream-publish.js.map +1 -0
- package/dist/bin/streamr-stream-resend-from.d.ts +2 -0
- package/dist/bin/streamr-stream-resend-from.js +27 -0
- package/dist/bin/streamr-stream-resend-from.js.map +1 -0
- package/dist/bin/streamr-stream-resend-last.d.ts +2 -0
- package/dist/bin/streamr-stream-resend-last.js +26 -0
- package/dist/bin/streamr-stream-resend-last.js.map +1 -0
- package/dist/bin/streamr-stream-resend-range.d.ts +2 -0
- package/dist/bin/streamr-stream-resend-range.js +33 -0
- package/dist/bin/streamr-stream-resend-range.js.map +1 -0
- package/dist/bin/streamr-stream-resend.d.ts +2 -0
- package/dist/bin/streamr-stream-resend.js +13 -0
- package/dist/bin/streamr-stream-resend.js.map +1 -0
- package/dist/bin/streamr-stream-revoke-permission.d.ts +2 -0
- package/dist/bin/streamr-stream-revoke-permission.js +7 -0
- package/dist/bin/streamr-stream-revoke-permission.js.map +1 -0
- package/dist/bin/streamr-stream-search.d.ts +2 -0
- package/dist/bin/streamr-stream-search.js +21 -0
- package/dist/bin/streamr-stream-search.js.map +1 -0
- package/dist/bin/streamr-stream-show.d.ts +2 -0
- package/dist/bin/streamr-stream-show.js +24 -0
- package/dist/bin/streamr-stream-show.js.map +1 -0
- package/dist/bin/streamr-stream-subscribe.d.ts +2 -0
- package/dist/bin/streamr-stream-subscribe.js +23 -0
- package/dist/bin/streamr-stream-subscribe.js.map +1 -0
- package/dist/bin/streamr-stream.d.ts +2 -0
- package/dist/bin/streamr-stream.js +22 -0
- package/dist/bin/streamr-stream.js.map +1 -0
- package/dist/bin/streamr.d.ts +2 -0
- package/dist/bin/streamr.js +17 -0
- package/dist/bin/streamr.js.map +1 -0
- package/dist/package.json +53 -0
- package/dist/src/client.d.ts +3 -0
- package/dist/src/client.js +33 -0
- package/dist/src/client.js.map +1 -0
- package/dist/src/command.d.ts +8 -0
- package/dist/src/command.js +45 -0
- package/dist/src/command.js.map +1 -0
- package/dist/src/common.d.ts +6 -0
- package/dist/src/common.js +15 -0
- package/dist/src/common.js.map +1 -0
- package/dist/src/config.d.ts +6 -0
- package/dist/src/config.js +58 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/logLevel.d.ts +0 -0
- package/dist/src/logLevel.js +11 -0
- package/dist/src/logLevel.js.map +1 -0
- package/dist/src/permission.d.ts +4 -0
- package/dist/src/permission.js +48 -0
- package/dist/src/permission.js.map +1 -0
- package/dist/src/resend.d.ts +3 -0
- package/dist/src/resend.js +33 -0
- package/dist/src/resend.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +25 -12
- package/src/client.ts +32 -0
- package/src/command.ts +45 -0
- package/src/common.ts +16 -0
- package/src/config.ts +56 -0
- package/src/logLevel.ts +9 -0
- package/src/permission.ts +49 -0
- package/src/resend.ts +38 -0
- package/tsconfig.json +15 -0
- package/bin/common.js +0 -79
- package/bin/streamr-create.js +0 -41
- package/bin/streamr-generate.js +0 -14
- package/bin/streamr-list.js +0 -35
- package/bin/streamr-publish.js +0 -28
- package/bin/streamr-resend.js +0 -101
- package/bin/streamr-show.js +0 -19
- package/bin/streamr-subscribe.js +0 -20
- package/src/create.js +0 -14
- package/src/list.js +0 -20
- package/src/publish.js +0 -37
- package/src/resend.js +0 -43
- package/src/show.js +0 -17
- package/src/subscribe.js +0 -9
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
require("../src/logLevel");
|
|
5
|
+
const permission_1 = require("../src/permission");
|
|
6
|
+
(0, permission_1.runModifyPermissionsCommand)((stream, permission, target) => stream.revokeUserPermission(permission, target), (stream, permission) => stream.revokePublicPermission(permission), 'revoke');
|
|
7
|
+
//# sourceMappingURL=streamr-stream-revoke-permission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamr-stream-revoke-permission.js","sourceRoot":"","sources":["../../bin/streamr-stream-revoke-permission.ts"],"names":[],"mappings":";;;AACA,2BAAwB;AAExB,kDAA+D;AAE/D,IAAA,wCAA2B,EACvB,CAAC,MAAc,EAAE,UAA4B,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,EACjH,CAAC,MAAc,EAAE,UAA4B,EAAE,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAC3F,QAAQ,CACX,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
require("../src/logLevel");
|
|
8
|
+
const easy_table_1 = __importDefault(require("easy-table"));
|
|
9
|
+
const command_1 = require("../src/command");
|
|
10
|
+
(0, command_1.createClientCommand)(async (client, term) => {
|
|
11
|
+
const streams = await client.searchStreams(term);
|
|
12
|
+
if (streams.length > 0) {
|
|
13
|
+
console.info(easy_table_1.default.print(streams.map(({ id }) => ({
|
|
14
|
+
id
|
|
15
|
+
}))));
|
|
16
|
+
}
|
|
17
|
+
})
|
|
18
|
+
.arguments('<term>')
|
|
19
|
+
.description('search streams')
|
|
20
|
+
.parseAsync();
|
|
21
|
+
//# sourceMappingURL=streamr-stream-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamr-stream-search.js","sourceRoot":"","sources":["../../bin/streamr-stream-search.ts"],"names":[],"mappings":";;;;;;AACA,2BAAwB;AACxB,4DAAkC;AAElC,4CAAoD;AAEpD,IAAA,6BAAmB,EAAC,KAAK,EAAE,MAAqB,EAAE,IAAY,EAAE,EAAE;IAC9D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IAChD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,OAAO,CAAC,IAAI,CAAC,oBAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,CAAC;YAChD,EAAE;SACL,CAAC,CAAC,CAAC,CAAC,CAAA;KACR;AACL,CAAC,CAAC;KACG,SAAS,CAAC,QAAQ,CAAC;KACnB,WAAW,CAAC,gBAAgB,CAAC;KAC7B,UAAU,EAAE,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
require("../src/logLevel");
|
|
8
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
+
const command_1 = require("../src/command");
|
|
10
|
+
const permission_1 = require("../src/permission");
|
|
11
|
+
(0, command_1.createClientCommand)(async (client, streamId, options) => {
|
|
12
|
+
const stream = await client.getStream(streamId);
|
|
13
|
+
const obj = stream.toObject();
|
|
14
|
+
if (options.includePermissions) {
|
|
15
|
+
const permissions = await stream.getPermissions();
|
|
16
|
+
obj.permissions = lodash_1.default.mapValues(permissions, (p) => p.map(permission_1.getPermissionId));
|
|
17
|
+
}
|
|
18
|
+
console.info(JSON.stringify(obj, null, 2));
|
|
19
|
+
})
|
|
20
|
+
.arguments('<streamId>')
|
|
21
|
+
.description('show detailed information about a stream')
|
|
22
|
+
.option('--include-permissions', 'include list of permissions')
|
|
23
|
+
.parseAsync();
|
|
24
|
+
//# sourceMappingURL=streamr-stream-show.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamr-stream-show.js","sourceRoot":"","sources":["../../bin/streamr-stream-show.ts"],"names":[],"mappings":";;;;;;AACA,2BAAwB;AACxB,oDAAsB;AAEtB,4CAAoD;AACpD,kDAAmD;AAEnD,IAAA,6BAAmB,EAAC,KAAK,EAAE,MAAqB,EAAE,QAAgB,EAAE,OAAY,EAAE,EAAE;IAChF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,GAAG,GAAQ,MAAM,CAAC,QAAQ,EAAE,CAAA;IAClC,IAAI,OAAO,CAAC,kBAAkB,EAAE;QAC5B,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAA;QACjD,GAAG,CAAC,WAAW,GAAG,gBAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,4BAAe,CAAC,CAAC,CAAA;KAChG;IACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;AAC9C,CAAC,CAAC;KACG,SAAS,CAAC,YAAY,CAAC;KACvB,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,uBAAuB,EAAE,6BAA6B,CAAC;KAC9D,UAAU,EAAE,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
require("../src/logLevel");
|
|
5
|
+
const command_1 = require("../src/command");
|
|
6
|
+
const common_1 = require("../src/common");
|
|
7
|
+
(0, command_1.createClientCommand)(async (client, streamId, options) => {
|
|
8
|
+
await client.subscribe({
|
|
9
|
+
streamId,
|
|
10
|
+
partition: options.partition,
|
|
11
|
+
}, (message) => console.info(JSON.stringify(message)));
|
|
12
|
+
}, {
|
|
13
|
+
autoDestroyClient: false,
|
|
14
|
+
clientOptionsFactory: (options) => ({
|
|
15
|
+
orderMessages: !options.disableOrdering
|
|
16
|
+
})
|
|
17
|
+
})
|
|
18
|
+
.arguments('<streamId>')
|
|
19
|
+
.description('subscribe to a stream, prints JSON messages to stdout line-by-line')
|
|
20
|
+
.option('-p, --partition [partition]', 'partition', (0, common_1.createFnParseInt)('--partition'), 0)
|
|
21
|
+
.option('-d, --disable-ordering', 'disable ordering of messages by OrderingUtil', false)
|
|
22
|
+
.parseAsync();
|
|
23
|
+
//# sourceMappingURL=streamr-stream-subscribe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamr-stream-subscribe.js","sourceRoot":"","sources":["../../bin/streamr-stream-subscribe.ts"],"names":[],"mappings":";;;AACA,2BAAwB;AAExB,4CAAoD;AACpD,0CAAgD;AAEhD,IAAA,6BAAmB,EAAC,KAAK,EAAE,MAAqB,EAAE,QAAgB,EAAE,OAAY,EAAE,EAAE;IAChF,MAAM,MAAM,CAAC,SAAS,CAAC;QACnB,QAAQ;QACR,SAAS,EAAE,OAAO,CAAC,SAAS;KAC/B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAC1D,CAAC,EAAE;IACC,iBAAiB,EAAE,KAAK;IACxB,oBAAoB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChC,aAAa,EAAE,CAAC,OAAO,CAAC,eAAe;KAC1C,CAAC;CACL,CAAC;KACG,SAAS,CAAC,YAAY,CAAC;KACvB,WAAW,CAAC,oEAAoE,CAAC;KACjF,MAAM,CAAC,6BAA6B,EAAE,WAAW,EAAE,IAAA,yBAAgB,EAAC,aAAa,CAAC,EAAE,CAAC,CAAC;KACtF,MAAM,CAAC,wBAAwB,EAAE,8CAA8C,EAAE,KAAK,CAAC;KACvF,UAAU,EAAE,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const package_json_1 = __importDefault(require("../package.json"));
|
|
9
|
+
commander_1.program
|
|
10
|
+
.version(package_json_1.default.version)
|
|
11
|
+
.usage('<command> [<args>]')
|
|
12
|
+
.description('stream subcommands')
|
|
13
|
+
.command('subscribe', 'subscribe to a stream')
|
|
14
|
+
.command('publish', 'publish to a stream')
|
|
15
|
+
.command('list', 'fetch a list of streams')
|
|
16
|
+
.command('show', 'info about a stream')
|
|
17
|
+
.command("create", "create a new stream")
|
|
18
|
+
.command('resend', 'request resend of a stream')
|
|
19
|
+
.command('grant-permission', 'grant permission')
|
|
20
|
+
.command('revoke-permission', 'revoke permission')
|
|
21
|
+
.parse();
|
|
22
|
+
//# sourceMappingURL=streamr-stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamr-stream.js","sourceRoot":"","sources":["../../bin/streamr-stream.ts"],"names":[],"mappings":";;;;;;AACA,yCAAmC;AACnC,mEAAiC;AAEjC,mBAAO;KACF,OAAO,CAAC,sBAAG,CAAC,OAAO,CAAC;KACpB,KAAK,CAAC,oBAAoB,CAAC;KAC3B,WAAW,CAAC,oBAAoB,CAAC;KACjC,OAAO,CAAC,WAAW,EAAE,uBAAuB,CAAC;KAC7C,OAAO,CAAC,SAAS,EAAE,qBAAqB,CAAC;KACzC,OAAO,CAAC,MAAM,EAAE,yBAAyB,CAAC;KAC1C,OAAO,CAAC,MAAM,EAAE,qBAAqB,CAAC;KACtC,OAAO,CAAC,QAAQ,EAAE,qBAAqB,CAAC;KACxC,OAAO,CAAC,QAAQ,EAAE,4BAA4B,CAAC;KAC/C,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;KAC/C,OAAO,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;KACjD,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const package_json_1 = __importDefault(require("../package.json"));
|
|
9
|
+
commander_1.program
|
|
10
|
+
.version(package_json_1.default.version)
|
|
11
|
+
.usage('<command> <subcommand> [<args>]')
|
|
12
|
+
.description('command line tools for interacting with Streamr https://streamr.network')
|
|
13
|
+
.command('stream', 'stream subcommands')
|
|
14
|
+
.command('storage-node', 'storage node subcommands')
|
|
15
|
+
.command('mock-data', 'mock data subcommands')
|
|
16
|
+
.parse();
|
|
17
|
+
//# sourceMappingURL=streamr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamr.js","sourceRoot":"","sources":["../../bin/streamr.ts"],"names":[],"mappings":";;;;;;AACA,yCAAmC;AACnC,mEAAiC;AAEjC,mBAAO;KACF,OAAO,CAAC,sBAAG,CAAC,OAAO,CAAC;KACpB,KAAK,CAAC,iCAAiC,CAAC;KACxC,WAAW,CAAC,yEAAyE,CAAC;KACtF,OAAO,CAAC,QAAQ,EAAE,oBAAoB,CAAC;KACvC,OAAO,CAAC,cAAc,EAAE,0BAA0B,CAAC;KACnD,OAAO,CAAC,WAAW,EAAE,uBAAuB,CAAC;KAC7C,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@streamr/cli-tools",
|
|
3
|
+
"version": "6.0.0-alpha.1",
|
|
4
|
+
"description": "Command line tools for Streamr.",
|
|
5
|
+
"bin": {
|
|
6
|
+
"streamr": "dist/bin/streamr.js"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"eslint": "eslint --cache --cache-location=node_modules/.cache/.eslintcache/ '*/**/*.{js,ts}'",
|
|
10
|
+
"prepare": "npm run eslint && npm run build",
|
|
11
|
+
"build": "tsc -b tsconfig.json",
|
|
12
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
13
|
+
},
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/streamr-dev/network-monorepo.git",
|
|
17
|
+
"directory": "packages/cli-tools"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"streamr",
|
|
21
|
+
"cli",
|
|
22
|
+
"tool",
|
|
23
|
+
"utility"
|
|
24
|
+
],
|
|
25
|
+
"author": "Streamr <contact@streamr.com>",
|
|
26
|
+
"license": "AGPL-3.0",
|
|
27
|
+
"bugs": {
|
|
28
|
+
"url": "https://github.com/streamr-dev/cli-tools/issues"
|
|
29
|
+
},
|
|
30
|
+
"homepage": "https://github.com/streamr-dev/cli-tools#readme",
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"commander": "^8.3.0",
|
|
33
|
+
"easy-table": "^1.1.1",
|
|
34
|
+
"event-stream": "^4.0.1",
|
|
35
|
+
"lodash": "^4.17.21",
|
|
36
|
+
"streamr-client": "^6.0.0-alpha.23",
|
|
37
|
+
"streamr-client-protocol": "^10.0.0",
|
|
38
|
+
"streamr-test-utils": "^2.0.0"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@streamr/dev-config": "^1.0.0",
|
|
42
|
+
"@types/easy-table": "0.0.32",
|
|
43
|
+
"@types/event-stream": "^3.3.34",
|
|
44
|
+
"@types/jest": "^27.0.2",
|
|
45
|
+
"@types/lodash": "^4.14.175",
|
|
46
|
+
"@typescript-eslint/eslint-plugin": "^5.0.0",
|
|
47
|
+
"@typescript-eslint/parser": "^5.0.0",
|
|
48
|
+
"eslint": "^7.32.0",
|
|
49
|
+
"eslint-config-streamr-ts": "^4.0.1",
|
|
50
|
+
"eslint-plugin-promise": "^5.1.0",
|
|
51
|
+
"typescript": "^4.5.2"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
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.createClient = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const streamr_client_1 = require("streamr-client");
|
|
9
|
+
const config_1 = require("./config");
|
|
10
|
+
const getClientConfig = (commandLineArgs, overridenOptions) => {
|
|
11
|
+
var _a;
|
|
12
|
+
const environmentOptions = (commandLineArgs.dev !== undefined) ? lodash_1.default.omit(streamr_client_1.ConfigTest, 'auth') : undefined;
|
|
13
|
+
const configFileJson = (_a = (0, config_1.getConfig)(commandLineArgs.config)) === null || _a === void 0 ? void 0 : _a.client;
|
|
14
|
+
const authenticationOptions = (commandLineArgs.privateKey !== undefined) ? { auth: { privateKey: commandLineArgs.privateKey } } : undefined;
|
|
15
|
+
return lodash_1.default.merge(environmentOptions, configFileJson, authenticationOptions, overridenOptions);
|
|
16
|
+
};
|
|
17
|
+
const addInterruptHandler = (client) => {
|
|
18
|
+
process.on('SIGINT', async () => {
|
|
19
|
+
try {
|
|
20
|
+
await client.destroy();
|
|
21
|
+
}
|
|
22
|
+
catch { }
|
|
23
|
+
process.exit();
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
const createClient = (commandLineArgs, overridenOptions = {}) => {
|
|
27
|
+
const config = getClientConfig(commandLineArgs, overridenOptions);
|
|
28
|
+
const client = new streamr_client_1.StreamrClient(config);
|
|
29
|
+
addInterruptHandler(client);
|
|
30
|
+
return client;
|
|
31
|
+
};
|
|
32
|
+
exports.createClient = createClient;
|
|
33
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAsB;AACtB,mDAA+E;AAE/E,qCAAoC;AAEpC,MAAM,eAAe,GAAG,CAAC,eAAsC,EAAE,gBAAqC,EAAE,EAAE;;IACtG,MAAM,kBAAkB,GAAG,CAAC,eAAe,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,gBAAC,CAAC,IAAI,CAAC,2BAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACvG,MAAM,cAAc,GAAG,MAAA,IAAA,kBAAS,EAAC,eAAe,CAAC,MAAM,CAAC,0CAAE,MAAM,CAAA;IAChE,MAAM,qBAAqB,GAAG,CAAC,eAAe,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3I,OAAO,gBAAC,CAAC,KAAK,CACV,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,CACnB,CAAA;AACL,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,MAAqB,EAAE,EAAE;IAClD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC5B,IAAI;YACA,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;SACzB;QAAC,MAAM,GAAE;QACV,OAAO,CAAC,IAAI,EAAE,CAAA;IAClB,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAEM,MAAM,YAAY,GAAG,CAAC,eAAsC,EAAE,mBAAwC,EAAE,EAAiB,EAAE;IAC9H,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAA;IACjE,MAAM,MAAM,GAAG,IAAI,8BAAa,CAAC,MAAM,CAAC,CAAA;IACxC,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAC3B,OAAO,MAAM,CAAA;AACjB,CAAC,CAAA;AALY,QAAA,YAAY,gBAKxB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import commander, { Command } from 'commander';
|
|
2
|
+
import { BrubeckClientConfig } from 'streamr-client';
|
|
3
|
+
export declare const createCommand: () => commander.Command;
|
|
4
|
+
export interface CommandOpts {
|
|
5
|
+
autoDestroyClient?: boolean;
|
|
6
|
+
clientOptionsFactory?: (options: any) => BrubeckClientConfig;
|
|
7
|
+
}
|
|
8
|
+
export declare const createClientCommand: (action: (...handleArgs: any[]) => Promise<void>, opts?: CommandOpts) => commander.Command;
|
|
@@ -0,0 +1,45 @@
|
|
|
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.createClientCommand = exports.createCommand = void 0;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const package_json_1 = __importDefault(require("../package.json"));
|
|
9
|
+
const client_1 = require("./client");
|
|
10
|
+
const createCommand = () => {
|
|
11
|
+
return new commander_1.Command()
|
|
12
|
+
.version(package_json_1.default.version)
|
|
13
|
+
.showHelpAfterError()
|
|
14
|
+
.allowExcessArguments(false);
|
|
15
|
+
};
|
|
16
|
+
exports.createCommand = createCommand;
|
|
17
|
+
const createClientCommand = (action, opts = {
|
|
18
|
+
autoDestroyClient: true,
|
|
19
|
+
clientOptionsFactory: () => ({})
|
|
20
|
+
}) => {
|
|
21
|
+
return (0, exports.createCommand)()
|
|
22
|
+
.option('--private-key <key>', 'use an Ethereum private key to authenticate')
|
|
23
|
+
.option('--config <file>', 'read connection and authentication settings from a config file')
|
|
24
|
+
.option('--dev', 'use pre-defined development environment')
|
|
25
|
+
.action(async (...args) => {
|
|
26
|
+
const commandLineOptions = args[args.length - 1].opts();
|
|
27
|
+
try {
|
|
28
|
+
const client = (0, client_1.createClient)(commandLineOptions, opts.clientOptionsFactory(commandLineOptions));
|
|
29
|
+
try {
|
|
30
|
+
await action(...[client].concat(args));
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
if (opts.autoDestroyClient) {
|
|
34
|
+
await client.destroy();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
console.error(e);
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
exports.createClientCommand = createClientCommand;
|
|
45
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/command.ts"],"names":[],"mappings":";;;;;;AAAA,yCAA8C;AAE9C,mEAAiC;AACjC,qCAAuC;AAEhC,MAAM,aAAa,GAAG,GAAsB,EAAE;IACjD,OAAO,IAAI,mBAAO,EAAE;SACf,OAAO,CAAC,sBAAG,CAAC,OAAO,CAAC;SACpB,kBAAkB,EAAE;SACpB,oBAAoB,CAAC,KAAK,CAAC,CAAA;AACpC,CAAC,CAAA;AALY,QAAA,aAAa,iBAKzB;AAOM,MAAM,mBAAmB,GAAG,CAC/B,MAA+C,EAC/C,OAAoB;IAChB,iBAAiB,EAAE,IAAI;IACvB,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;CACnC,EACgB,EAAE;IACnB,OAAO,IAAA,qBAAa,GAAE;SACjB,MAAM,CAAC,qBAAqB,EAAE,6CAA6C,CAAC;SAC5E,MAAM,CAAC,iBAAiB,EAAE,gEAAgE,CAAC;SAC3F,MAAM,CAAC,OAAO,EAAE,yCAAyC,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;QAC7B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACvD,IAAI;YACA,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,kBAAkB,EAAE,IAAI,CAAC,oBAAqB,CAAC,kBAAkB,CAAC,CAAC,CAAA;YAC/F,IAAI;gBACA,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;aACzC;oBAAS;gBACN,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBACxB,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;iBACzB;aACJ;SACJ;QAAC,OAAO,CAAM,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAClB;IACL,CAAC,CAAC,CAAA;AACV,CAAC,CAAA;AA3BY,QAAA,mBAAmB,uBA2B/B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createFnParseInt = void 0;
|
|
4
|
+
function createFnParseInt(name) {
|
|
5
|
+
return (str) => {
|
|
6
|
+
const n = parseInt(str, 10);
|
|
7
|
+
if (isNaN(n)) {
|
|
8
|
+
console.error(`${name} must be an integer (was "${str}")`);
|
|
9
|
+
process.exit(1);
|
|
10
|
+
}
|
|
11
|
+
return n;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
exports.createFnParseInt = createFnParseInt;
|
|
15
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":";;;AAMA,SAAgB,gBAAgB,CAAC,IAAY;IACzC,OAAO,CAAC,GAAW,EAAE,EAAE;QACnB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAC3B,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,6BAA6B,GAAG,IAAI,CAAC,CAAA;YAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAClB;QACD,OAAO,CAAC,CAAA;IACZ,CAAC,CAAA;AACL,CAAC;AATD,4CASC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
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.getConfig = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const os_1 = __importDefault(require("os"));
|
|
9
|
+
const fs_1 = require("fs");
|
|
10
|
+
/*
|
|
11
|
+
* Validate that the config contains at least one root level element: the "client" block.
|
|
12
|
+
* The values of the "client" blocks are validated by StreamrClient when the configuration
|
|
13
|
+
* is used.
|
|
14
|
+
*
|
|
15
|
+
* We don't check other root level elements. It is ok to use a Broker config file as
|
|
16
|
+
* a cli-tools config file. In that case the file contains e.g. "plugins" block,
|
|
17
|
+
* but cli-tools can just ignore that block.
|
|
18
|
+
*/
|
|
19
|
+
const validateConfig = (config, fileName) => {
|
|
20
|
+
const CLIENT_CONFIG_BLOCK = 'client';
|
|
21
|
+
if (config[CLIENT_CONFIG_BLOCK] === undefined) {
|
|
22
|
+
throw new Error(`Missing root element "${CLIENT_CONFIG_BLOCK}" in ${fileName}`);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const tryReadConfigFile = (fileName) => {
|
|
26
|
+
let content;
|
|
27
|
+
try {
|
|
28
|
+
content = (0, fs_1.readFileSync)(fileName, 'utf8');
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
const json = JSON.parse(content);
|
|
34
|
+
validateConfig(json, fileName);
|
|
35
|
+
return json;
|
|
36
|
+
};
|
|
37
|
+
const getConfig = (id) => {
|
|
38
|
+
const CONFIG_DIRECTORY = path_1.default.join(os_1.default.homedir(), '.streamr', 'config');
|
|
39
|
+
if (id !== undefined) {
|
|
40
|
+
const fileNames = [
|
|
41
|
+
id,
|
|
42
|
+
path_1.default.join(CONFIG_DIRECTORY, `${id}.json`),
|
|
43
|
+
];
|
|
44
|
+
for (const fileName of fileNames) {
|
|
45
|
+
const content = tryReadConfigFile(fileName);
|
|
46
|
+
if (content !== undefined) {
|
|
47
|
+
return content;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
throw new Error('Config file not found');
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
const fileName = path_1.default.join(CONFIG_DIRECTORY, `default.json`);
|
|
54
|
+
return tryReadConfigFile(fileName);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
exports.getConfig = getConfig;
|
|
58
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,4CAAmB;AACnB,2BAAiC;AAOjC;;;;;;;;GAQG;AACH,MAAM,cAAc,GAAG,CAAC,MAAW,EAAE,QAAgB,EAAgB,EAAE;IACnE,MAAM,mBAAmB,GAAG,QAAQ,CAAA;IACpC,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,SAAS,EAAE;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,mBAAmB,QAAQ,QAAQ,EAAE,CAAC,CAAA;KAClF;AACL,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAA0B,EAAE;IACnE,IAAI,OAAO,CAAA;IACX,IAAI;QACA,OAAO,GAAG,IAAA,iBAAY,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;KAC3C;IAAC,OAAO,CAAM,EAAE;QACb,OAAO,SAAS,CAAA;KACnB;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAChC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC9B,OAAO,IAAI,CAAA;AACf,CAAC,CAAA;AAEM,MAAM,SAAS,GAAG,CAAC,EAAW,EAAoB,EAAE;IACvD,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;IACtE,IAAI,EAAE,KAAK,SAAS,EAAE;QAClB,MAAM,SAAS,GAAG;YACd,EAAE;YACF,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,OAAO,CAAC;SAC5C,CAAA;QACD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAC9B,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;YAC3C,IAAI,OAAO,KAAK,SAAS,EAAE;gBACvB,OAAO,OAAO,CAAA;aACjB;SACJ;QACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;KAC3C;SAAM;QACH,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;QAC5D,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAA;KACrC;AACL,CAAC,CAAA;AAlBY,QAAA,SAAS,aAkBrB"}
|
|
File without changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Minimal logging for NetworkNode and other users of Logger.ts in the network package.
|
|
4
|
+
* This file needs to be imported before any of the network package classes
|
|
5
|
+
* so that the environment variable is updated before any Logger instances are created.
|
|
6
|
+
* The import is needed for the files where network packages are used (typically
|
|
7
|
+
* the files which call createClientCommand()).
|
|
8
|
+
*/
|
|
9
|
+
var _a;
|
|
10
|
+
process.env.LOG_LEVEL = (_a = process.env.LOG_LEVEL) !== null && _a !== void 0 ? _a : 'error';
|
|
11
|
+
//# sourceMappingURL=logLevel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logLevel.js","sourceRoot":"","sources":["../../src/logLevel.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,SAAS,mCAAI,OAAO,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Stream, StreamPermission } from 'streamr-client';
|
|
2
|
+
export declare const PERMISSIONS: Map<string, StreamPermission>;
|
|
3
|
+
export declare const getPermissionId: (permission: StreamPermission) => string;
|
|
4
|
+
export declare const runModifyPermissionsCommand: (modifyUserPermission: (stream: Stream, permission: StreamPermission, target: string) => Promise<void>, modifyPublicPermission: (stream: Stream, permission: StreamPermission) => Promise<void>, modification: string) => void;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runModifyPermissionsCommand = exports.getPermissionId = exports.PERMISSIONS = void 0;
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const streamr_client_1 = require("streamr-client");
|
|
6
|
+
const command_1 = require("./command");
|
|
7
|
+
const PUBLIC_USER_ID = 'public';
|
|
8
|
+
const getTarget = (user) => {
|
|
9
|
+
if (user === PUBLIC_USER_ID) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
return user;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
exports.PERMISSIONS = new Map([
|
|
17
|
+
['subscribe', streamr_client_1.StreamPermission.SUBSCRIBE],
|
|
18
|
+
['publish', streamr_client_1.StreamPermission.PUBLISH],
|
|
19
|
+
['edit', streamr_client_1.StreamPermission.EDIT],
|
|
20
|
+
['delete', streamr_client_1.StreamPermission.DELETE],
|
|
21
|
+
['grant', streamr_client_1.StreamPermission.GRANT]
|
|
22
|
+
]);
|
|
23
|
+
const getPermissionId = (permission) => {
|
|
24
|
+
return Array.from(exports.PERMISSIONS.entries()).find(([_id, p]) => p === permission)[0];
|
|
25
|
+
};
|
|
26
|
+
exports.getPermissionId = getPermissionId;
|
|
27
|
+
const runModifyPermissionsCommand = (modifyUserPermission, modifyPublicPermission, modification) => {
|
|
28
|
+
(0, command_1.createClientCommand)(async (client, streamId, user, permissionIds) => {
|
|
29
|
+
const target = getTarget(user);
|
|
30
|
+
const stream = await client.getStream(streamId);
|
|
31
|
+
for await (const permissionId of permissionIds) {
|
|
32
|
+
const permission = exports.PERMISSIONS.get(permissionId);
|
|
33
|
+
if (target !== undefined) {
|
|
34
|
+
await modifyUserPermission(stream, permission, target);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
await modifyPublicPermission(stream, permission);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
})
|
|
41
|
+
.addArgument(new commander_1.Argument('<streamId>'))
|
|
42
|
+
.addArgument(new commander_1.Argument('<user>'))
|
|
43
|
+
.addArgument(new commander_1.Argument('<permissions...>').choices(Array.from(exports.PERMISSIONS.keys())))
|
|
44
|
+
.description(`${modification} permission: use keyword "public" as a user to ${modification} a public permission`)
|
|
45
|
+
.parseAsync(process.argv);
|
|
46
|
+
};
|
|
47
|
+
exports.runModifyPermissionsCommand = runModifyPermissionsCommand;
|
|
48
|
+
//# sourceMappingURL=permission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.js","sourceRoot":"","sources":["../../src/permission.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,mDAAwE;AACxE,uCAA+C;AAE/C,MAAM,cAAc,GAAG,QAAQ,CAAA;AAE/B,MAAM,SAAS,GAAG,CAAC,IAAY,EAAoB,EAAE;IACjD,IAAI,IAAI,KAAK,cAAc,EAAE;QACzB,OAAO,SAAS,CAAA;KACnB;SAAM;QACH,OAAO,IAAI,CAAA;KACd;AACL,CAAC,CAAA;AAEY,QAAA,WAAW,GAAG,IAAI,GAAG,CAA0B;IACxD,CAAC,WAAW,EAAE,iCAAgB,CAAC,SAAS,CAAC;IACzC,CAAC,SAAS,EAAE,iCAAgB,CAAC,OAAO,CAAC;IACrC,CAAC,MAAM,EAAE,iCAAgB,CAAC,IAAI,CAAC;IAC/B,CAAC,QAAQ,EAAE,iCAAgB,CAAC,MAAM,CAAC;IACnC,CAAC,OAAO,EAAE,iCAAgB,CAAC,KAAK,CAAC;CACpC,CAAC,CAAA;AAEK,MAAM,eAAe,GAAG,CAAC,UAA4B,EAAU,EAAE;IACpE,OAAO,KAAK,CAAC,IAAI,CAAC,mBAAW,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAE,CAAC,CAAC,CAAC,CAAA;AACrF,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B;AAEM,MAAM,2BAA2B,GAAG,CACvC,oBAAqG,EACrG,sBAAuF,EACvF,YAAoB,EAChB,EAAE;IACN,IAAA,6BAAmB,EAAC,KAAK,EAAE,MAAqB,EAAE,QAAgB,EAAE,IAAY,EAAE,aAAuB,EAAE,EAAE;QACzG,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;QAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC/C,IAAI,KAAK,EAAE,MAAM,YAAY,IAAI,aAAa,EAAE;YAC5C,MAAM,UAAU,GAAG,mBAAW,CAAC,GAAG,CAAC,YAAY,CAAE,CAAA;YACjD,IAAI,MAAM,KAAK,SAAS,EAAE;gBACtB,MAAM,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;aACzD;iBAAM;gBACH,MAAM,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;aACnD;SACJ;IACL,CAAC,CAAC;SACG,WAAW,CAAC,IAAI,oBAAQ,CAAC,YAAY,CAAC,CAAC;SACvC,WAAW,CAAC,IAAI,oBAAQ,CAAC,QAAQ,CAAC,CAAC;SACnC,WAAW,CAAC,IAAI,oBAAQ,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SACrF,WAAW,CAAC,GAAG,YAAY,kDAAkD,YAAY,sBAAsB,CAAC;SAChH,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC,CAAA;AAtBY,QAAA,2BAA2B,+BAsBvC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { StreamrClient, ResendOptions } from 'streamr-client';
|
|
2
|
+
export declare const assertBothOrNoneDefined: (option1: string, option2: string, errorMessage: string, commandOptions: Record<string, unknown>) => void | never;
|
|
3
|
+
export declare const resend: (streamId: string, resendOpts: ResendOptions, client: StreamrClient, subscribe: boolean) => Promise<void>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resend = exports.assertBothOrNoneDefined = void 0;
|
|
4
|
+
const assertBothOrNoneDefined = (option1, option2, errorMessage, commandOptions) => {
|
|
5
|
+
if ((option1 in commandOptions && !(option2 in commandOptions)) || (option2 in commandOptions && !(option1 in commandOptions))) {
|
|
6
|
+
console.error(`option ${errorMessage}`);
|
|
7
|
+
process.exit(1);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
exports.assertBothOrNoneDefined = assertBothOrNoneDefined;
|
|
11
|
+
const resend = async (streamId, resendOpts, client, subscribe) => {
|
|
12
|
+
try {
|
|
13
|
+
const subscribeOpts = {
|
|
14
|
+
stream: streamId,
|
|
15
|
+
resend: resendOpts
|
|
16
|
+
};
|
|
17
|
+
const handler = (message) => {
|
|
18
|
+
console.info(JSON.stringify(message));
|
|
19
|
+
};
|
|
20
|
+
if (subscribe) {
|
|
21
|
+
await client.subscribe(subscribeOpts, handler);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
await client.resend(subscribeOpts, handler);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
console.error(err.message ? err.message : err);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.resend = resend;
|
|
33
|
+
//# sourceMappingURL=resend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resend.js","sourceRoot":"","sources":["../../src/resend.ts"],"names":[],"mappings":";;;AAEO,MAAM,uBAAuB,GAAG,CACnC,OAAe,EACf,OAAe,EACf,YAAoB,EACpB,cAAuC,EAC3B,EAAE;IACd,IAAI,CAAC,OAAO,IAAI,cAAc,IAAI,CAAC,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,cAAc,IAAI,CAAC,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC,EAAE;QAC5H,OAAO,CAAC,KAAK,CAAC,UAAU,YAAY,EAAE,CAAC,CAAA;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAClB;AACL,CAAC,CAAA;AAVY,QAAA,uBAAuB,2BAUnC;AAEM,MAAM,MAAM,GAAG,KAAK,EACvB,QAAgB,EAChB,UAAyB,EACzB,MAAqB,EACrB,SAAkB,EACL,EAAE;IACf,IAAI;QACA,MAAM,aAAa,GAAG;YAClB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,UAAU;SACrB,CAAA;QACD,MAAM,OAAO,GAAG,CAAC,OAAY,EAAE,EAAE;YAC7B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;QACzC,CAAC,CAAA;QACD,IAAI,SAAS,EAAE;YACX,MAAM,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;SACjD;aAAM;YACH,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;SAC9C;KACJ;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAClB;AACL,CAAC,CAAA;AAvBY,QAAA,MAAM,UAuBlB"}
|