@streamr/cli-tools 6.0.0-alpha.4 → 6.0.0-beta.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.
Files changed (42) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/README.md +36 -5
  3. package/bin/streamr-stream-grant-permission.ts +2 -3
  4. package/bin/streamr-stream-revoke-permission.ts +2 -3
  5. package/bin/streamr-stream-search.ts +46 -9
  6. package/bin/streamr-stream-show.ts +8 -4
  7. package/bin/streamr-wallet-whoami.ts +10 -0
  8. package/bin/streamr-wallet.ts +10 -0
  9. package/bin/streamr.ts +1 -0
  10. package/dist/bin/streamr-stream-grant-permission.js +1 -1
  11. package/dist/bin/streamr-stream-grant-permission.js.map +1 -1
  12. package/dist/bin/streamr-stream-revoke-permission.js +1 -1
  13. package/dist/bin/streamr-stream-revoke-permission.js.map +1 -1
  14. package/dist/bin/streamr-stream-search.js +32 -11
  15. package/dist/bin/streamr-stream-search.js.map +1 -1
  16. package/dist/bin/streamr-stream-show.js +7 -6
  17. package/dist/bin/streamr-stream-show.js.map +1 -1
  18. package/dist/bin/streamr-wallet-whoami.d.ts +2 -0
  19. package/dist/bin/streamr-wallet-whoami.js +11 -0
  20. package/dist/bin/streamr-wallet-whoami.js.map +1 -0
  21. package/dist/bin/streamr-wallet.d.ts +2 -0
  22. package/dist/bin/streamr-wallet.js +15 -0
  23. package/dist/bin/streamr-wallet.js.map +1 -0
  24. package/dist/bin/streamr.js +1 -0
  25. package/dist/bin/streamr.js.map +1 -1
  26. package/dist/package.json +3 -4
  27. package/dist/src/client.js +3 -6
  28. package/dist/src/client.js.map +1 -1
  29. package/dist/src/common.d.ts +5 -0
  30. package/dist/src/common.js +18 -1
  31. package/dist/src/common.js.map +1 -1
  32. package/dist/src/permission.d.ts +3 -2
  33. package/dist/src/permission.js +24 -19
  34. package/dist/src/permission.js.map +1 -1
  35. package/dist/src/resend.js +5 -6
  36. package/dist/src/resend.js.map +1 -1
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +3 -4
  39. package/src/client.ts +3 -3
  40. package/src/common.ts +15 -0
  41. package/src/permission.ts +22 -18
  42. package/src/resend.ts +5 -6
package/CHANGELOG.md CHANGED
@@ -5,6 +5,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  ## [Unreleased]
8
+ - Add new command `stream wallet whoami` to display Ethereum address
8
9
  - Add permission commands: `stream grant-permission` and `stream revoke-permission`
9
10
  - Remove `typescript` and `ts-node` as run-time dependencies
10
11
  - (Breaking) Remove `--msg-chain-id` parameter from `stream resend from`
package/README.md CHANGED
@@ -67,12 +67,44 @@ Useful for generating test data to be published to a stream with `publish`, e.g.
67
67
  streamr mock-data generate | streamr stream publish <streamId> --private-key <key>
68
68
  ```
69
69
 
70
- ### list
71
- Fetch a list of streams that are accessible to the user authenticated by the private key
70
+ ### search
71
+ Query a list of streams by a search term and/or permissions. E.g.:
72
72
  ```
73
- streamr stream list --private-key <key>
73
+ streamr stream search foobar --user 0x1234567890123456789012345678901234567890
74
74
  ```
75
75
 
76
+ #### Search term
77
+ A search term query searchers over the stream id field. E.g:
78
+ ```
79
+ streamr stream search foobar
80
+ ```
81
+ It could find these streams:
82
+ ```
83
+ 0x1234567890123456789012345678901234567890/abc/foobar/1
84
+ foobar.eth/lorem-ipsum
85
+ ```
86
+
87
+ #### Permission
88
+ A permission query searches over stream permissions. You can either query by direct permissions (which are explicitly granted to a user), or by all permissions (including public permissions, which apply to all users).
89
+
90
+ E.g. all streams where a user has some direct permission:
91
+ ```
92
+ streamr stream search --user 0x1234567890123456789012345678901234567890
93
+ ```
94
+ All streams accessible by a user:
95
+ ```
96
+ streamr stream search --user 0x1234567890123456789012345678901234567890 --public
97
+ ```
98
+
99
+ The argument of the `--user` option can be omitted. In that case, it defaults to the authenticated user (specified by `--private-key`).
100
+
101
+ It is also possible to filter by specific permissions by using `--all` and `--any`. E.g. if you want to find the streams you can subscribe to:
102
+ ```
103
+ streamr stream search --user --public --all subscribe --private-key <key>
104
+ ```
105
+
106
+ If more than one permission is needed, specify the permissions in a comma-separated list (e.g. `--all subscribe,publish`). It returns streams where _all_ listed permissions are granted. If just _any_ of the permissions is required, use `--any` instead of `--all`. Please prefer `--all` to `--any` when possible as it has better query performance.
107
+
76
108
  ### show
77
109
  Show detailed information about a specific stream
78
110
  ```
@@ -128,8 +160,7 @@ The configuration file is a JSON. It has one root-level property `client`, which
128
160
  "client": {
129
161
  "auth": {
130
162
  "privateKey": ...
131
- },
132
- "publishWithSignature": "always"
163
+ }
133
164
  }
134
165
  }
135
166
  ```
@@ -1,10 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import '../src/logLevel'
3
- import { Stream, StreamPermission } from 'streamr-client'
3
+ import { PermissionAssignment, Stream } from 'streamr-client'
4
4
  import { runModifyPermissionsCommand } from '../src/permission'
5
5
 
6
6
  runModifyPermissionsCommand(
7
- (stream: Stream, permission: StreamPermission, target: string) => stream.grantUserPermission(permission, target),
8
- (stream: Stream, permission: StreamPermission) => stream.grantPublicPermission(permission),
7
+ (stream: Stream, assigment: PermissionAssignment) => stream.grantPermissions(assigment),
9
8
  'grant'
10
9
  )
@@ -1,10 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import '../src/logLevel'
3
- import { Stream, StreamPermission } from 'streamr-client'
3
+ import { PermissionAssignment, Stream } from 'streamr-client'
4
4
  import { runModifyPermissionsCommand } from '../src/permission'
5
5
 
6
6
  runModifyPermissionsCommand(
7
- (stream: Stream, permission: StreamPermission, target: string) => stream.revokeUserPermission(permission, target),
8
- (stream: Stream, permission: StreamPermission) => stream.revokePublicPermission(permission),
7
+ (stream: Stream, assigment: PermissionAssignment) => stream.revokePermissions(assigment),
9
8
  'revoke'
10
9
  )
@@ -1,17 +1,54 @@
1
1
  #!/usr/bin/env node
2
2
  import '../src/logLevel'
3
- import EasyTable from 'easy-table'
4
- import StreamrClient from 'streamr-client'
3
+ import StreamrClient, { SearchStreamsPermissionFilter, StreamPermission } from 'streamr-client'
5
4
  import { createClientCommand } from '../src/command'
5
+ import { Option } from 'commander'
6
+ import { getPermission, PERMISSIONS } from '../src/permission'
7
+ import { getOptionType, OptionType } from '../src/common'
6
8
 
7
- createClientCommand(async (client: StreamrClient, term: string) => {
8
- const streams = await client.searchStreams(term)
9
- if (streams.length > 0) {
10
- console.info(EasyTable.print(streams.map(({id}) => ({
11
- id
12
- }))))
9
+ const createPermissionFilter = async (
10
+ user: string | boolean | undefined,
11
+ allowPublic: boolean | undefined,
12
+ allOf: StreamPermission[] | undefined,
13
+ anyOf: StreamPermission[] | undefined,
14
+ client: StreamrClient
15
+ ): Promise<SearchStreamsPermissionFilter| undefined> => {
16
+ if (user !== undefined) {
17
+ return {
18
+ user: (getOptionType(user) === OptionType.ARGUMENT) ? user as string : await client.getAddress(),
19
+ allowPublic: allowPublic ?? false,
20
+ allOf,
21
+ anyOf
22
+ }
23
+ } else if ((allowPublic !== undefined) || (allOf !== undefined) || (anyOf !== undefined)) {
24
+ console.error('specify a user with "--user" when using "--public", "--all" or "--any"')
25
+ process.exit(1)
26
+ }
27
+ }
28
+
29
+ const createPermissionListOption = (id: string) => {
30
+ return new Option(`--${id} <permissions>`, 'comma-separated list of permissions')
31
+ .choices(Array.from(PERMISSIONS.keys()))
32
+ .argParser((value: string) => value.split(',').map((id) => getPermission(id)))
33
+ }
34
+
35
+ createClientCommand(async (client: StreamrClient, term: string | undefined, options: any ) => {
36
+ const permissionFilter = await createPermissionFilter(
37
+ options.user,
38
+ options.public,
39
+ options.all,
40
+ options.any,
41
+ client
42
+ )
43
+ const streams = client.searchStreams(term, permissionFilter)
44
+ for await (const stream of streams) {
45
+ console.log(stream.id)
13
46
  }
14
47
  })
15
- .arguments('<term>')
48
+ .arguments('[term]')
16
49
  .description('search streams')
50
+ .option('--user [user]', 'a stream must have permissions for the given user, defaults to the authenticated user')
51
+ .option('--public', 'the permission can be implicit (a public permission to the stream)')
52
+ .addOption(createPermissionListOption('all'))
53
+ .addOption(createPermissionListOption('any'))
17
54
  .parseAsync()
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import '../src/logLevel'
3
- import _ from 'lodash'
4
- import StreamrClient, { StreamPermission } from 'streamr-client'
3
+ import StreamrClient from 'streamr-client'
5
4
  import { createClientCommand } from '../src/command'
6
5
  import { getPermissionId } from '../src/permission'
7
6
 
@@ -9,8 +8,13 @@ createClientCommand(async (client: StreamrClient, streamId: string, options: any
9
8
  const stream = await client.getStream(streamId)
10
9
  const obj: any = stream.toObject()
11
10
  if (options.includePermissions) {
12
- const permissions = await stream.getPermissions()
13
- obj.permissions = _.mapValues(permissions, (p: StreamPermission[]) => p.map(getPermissionId))
11
+ const assigments = await stream.getPermissions()
12
+ obj.permissions = assigments.map((assignment) => {
13
+ return {
14
+ ...assignment,
15
+ permissions: assignment.permissions.map(getPermissionId)
16
+ }
17
+ })
14
18
  }
15
19
  console.info(JSON.stringify(obj, null, 2))
16
20
  })
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ import '../src/logLevel'
3
+ import StreamrClient from 'streamr-client'
4
+ import { createClientCommand } from '../src/command'
5
+
6
+ createClientCommand(async (client: StreamrClient) => {
7
+ console.info(await client.getAddress())
8
+ })
9
+ .description('displays your public address')
10
+ .parseAsync()
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ import { program } from 'commander'
3
+ import pkg from '../package.json'
4
+
5
+ program
6
+ .version(pkg.version)
7
+ .usage('<command> [<args>]')
8
+ .description('wallet subcommands')
9
+ .command('whoami', 'displays your public address')
10
+ .parse()
package/bin/streamr.ts CHANGED
@@ -9,4 +9,5 @@ program
9
9
  .command('stream', 'stream subcommands')
10
10
  .command('storage-node', 'storage node subcommands')
11
11
  .command('mock-data', 'mock data subcommands')
12
+ .command('wallet', 'wallet subcommands')
12
13
  .parse()
@@ -3,5 +3,5 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  require("../src/logLevel");
5
5
  const permission_1 = require("../src/permission");
6
- (0, permission_1.runModifyPermissionsCommand)((stream, permission, target) => stream.grantUserPermission(permission, target), (stream, permission) => stream.grantPublicPermission(permission), 'grant');
6
+ (0, permission_1.runModifyPermissionsCommand)((stream, assigment) => stream.grantPermissions(assigment), 'grant');
7
7
  //# sourceMappingURL=streamr-stream-grant-permission.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"streamr-stream-grant-permission.js","sourceRoot":"","sources":["../../bin/streamr-stream-grant-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,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,EAChH,CAAC,MAAc,EAAE,UAA4B,EAAE,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,UAAU,CAAC,EAC1F,OAAO,CACV,CAAA"}
1
+ {"version":3,"file":"streamr-stream-grant-permission.js","sourceRoot":"","sources":["../../bin/streamr-stream-grant-permission.ts"],"names":[],"mappings":";;;AACA,2BAAwB;AAExB,kDAA+D;AAE/D,IAAA,wCAA2B,EACvB,CAAC,MAAc,EAAE,SAA+B,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,EACvF,OAAO,CACV,CAAA"}
@@ -3,5 +3,5 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  require("../src/logLevel");
5
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');
6
+ (0, permission_1.runModifyPermissionsCommand)((stream, assigment) => stream.revokePermissions(assigment), 'revoke');
7
7
  //# sourceMappingURL=streamr-stream-revoke-permission.js.map
@@ -1 +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"}
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,SAA+B,EAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,EACxF,QAAQ,CACX,CAAA"}
@@ -1,21 +1,42 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
3
  Object.defineProperty(exports, "__esModule", { value: true });
7
4
  require("../src/logLevel");
8
- const easy_table_1 = __importDefault(require("easy-table"));
9
5
  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
- }))));
6
+ const commander_1 = require("commander");
7
+ const permission_1 = require("../src/permission");
8
+ const common_1 = require("../src/common");
9
+ const createPermissionFilter = async (user, allowPublic, allOf, anyOf, client) => {
10
+ if (user !== undefined) {
11
+ return {
12
+ user: ((0, common_1.getOptionType)(user) === common_1.OptionType.ARGUMENT) ? user : await client.getAddress(),
13
+ allowPublic: allowPublic !== null && allowPublic !== void 0 ? allowPublic : false,
14
+ allOf,
15
+ anyOf
16
+ };
17
+ }
18
+ else if ((allowPublic !== undefined) || (allOf !== undefined) || (anyOf !== undefined)) {
19
+ console.error('specify a user with "--user" when using "--public", "--all" or "--any"');
20
+ process.exit(1);
21
+ }
22
+ };
23
+ const createPermissionListOption = (id) => {
24
+ return new commander_1.Option(`--${id} <permissions>`, 'comma-separated list of permissions')
25
+ .choices(Array.from(permission_1.PERMISSIONS.keys()))
26
+ .argParser((value) => value.split(',').map((id) => (0, permission_1.getPermission)(id)));
27
+ };
28
+ (0, command_1.createClientCommand)(async (client, term, options) => {
29
+ const permissionFilter = await createPermissionFilter(options.user, options.public, options.all, options.any, client);
30
+ const streams = client.searchStreams(term, permissionFilter);
31
+ for await (const stream of streams) {
32
+ console.log(stream.id);
16
33
  }
17
34
  })
18
- .arguments('<term>')
35
+ .arguments('[term]')
19
36
  .description('search streams')
37
+ .option('--user [user]', 'a stream must have permissions for the given user, defaults to the authenticated user')
38
+ .option('--public', 'the permission can be implicit (a public permission to the stream)')
39
+ .addOption(createPermissionListOption('all'))
40
+ .addOption(createPermissionListOption('any'))
20
41
  .parseAsync();
21
42
  //# sourceMappingURL=streamr-stream-search.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"streamr-stream-search.js","sourceRoot":"","sources":["../../bin/streamr-stream-search.ts"],"names":[],"mappings":";;;AACA,2BAAwB;AAExB,4CAAoD;AACpD,yCAAkC;AAClC,kDAA8D;AAC9D,0CAAyD;AAEzD,MAAM,sBAAsB,GAAG,KAAK,EAChC,IAAkC,EAClC,WAAgC,EAChC,KAAqC,EACrC,KAAqC,EACrC,MAAqB,EAC4B,EAAE;IACnD,IAAI,IAAI,KAAK,SAAS,EAAE;QACpB,OAAO;YACH,IAAI,EAAE,CAAC,IAAA,sBAAa,EAAC,IAAI,CAAC,KAAK,mBAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE;YAChG,WAAW,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,KAAK;YACjC,KAAK;YACL,KAAK;SACR,CAAA;KACJ;SAAM,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,EAAE;QACtF,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAA;QACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAClB;AACL,CAAC,CAAA;AAED,MAAM,0BAA0B,GAAG,CAAC,EAAU,EAAE,EAAE;IAC9C,OAAO,IAAI,kBAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,qCAAqC,CAAC;SAC5E,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAW,CAAC,IAAI,EAAE,CAAC,CAAC;SACvC,SAAS,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,0BAAa,EAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACtF,CAAC,CAAA;AAED,IAAA,6BAAmB,EAAC,KAAK,EAAE,MAAqB,EAAE,IAAwB,EAAE,OAAY,EAAG,EAAE;IACzF,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,CACjD,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,GAAG,EACX,MAAM,CACT,CAAA;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;IAC5D,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,OAAO,EAAE;QAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;KACzB;AACL,CAAC,CAAC;KACG,SAAS,CAAC,QAAQ,CAAC;KACnB,WAAW,CAAC,gBAAgB,CAAC;KAC7B,MAAM,CAAC,eAAe,EAAE,uFAAuF,CAAC;KAChH,MAAM,CAAC,UAAU,EAAE,oEAAoE,CAAC;KACxF,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;KAC5C,SAAS,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;KAC5C,UAAU,EAAE,CAAA"}
@@ -1,19 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
3
  Object.defineProperty(exports, "__esModule", { value: true });
7
4
  require("../src/logLevel");
8
- const lodash_1 = __importDefault(require("lodash"));
9
5
  const command_1 = require("../src/command");
10
6
  const permission_1 = require("../src/permission");
11
7
  (0, command_1.createClientCommand)(async (client, streamId, options) => {
12
8
  const stream = await client.getStream(streamId);
13
9
  const obj = stream.toObject();
14
10
  if (options.includePermissions) {
15
- const permissions = await stream.getPermissions();
16
- obj.permissions = lodash_1.default.mapValues(permissions, (p) => p.map(permission_1.getPermissionId));
11
+ const assigments = await stream.getPermissions();
12
+ obj.permissions = assigments.map((assignment) => {
13
+ return {
14
+ ...assignment,
15
+ permissions: assignment.permissions.map(permission_1.getPermissionId)
16
+ };
17
+ });
17
18
  }
18
19
  console.info(JSON.stringify(obj, null, 2));
19
20
  })
@@ -1 +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"}
1
+ {"version":3,"file":"streamr-stream-show.js","sourceRoot":"","sources":["../../bin/streamr-stream-show.ts"],"names":[],"mappings":";;;AACA,2BAAwB;AAExB,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,UAAU,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAA;QAChD,GAAG,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAC5C,OAAO;gBACH,GAAG,UAAU;gBACb,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,4BAAe,CAAC;aAC3D,CAAA;QACL,CAAC,CAAC,CAAA;KACL;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,2 @@
1
+ #!/usr/bin/env node
2
+ import '../src/logLevel';
@@ -0,0 +1,11 @@
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
+ (0, command_1.createClientCommand)(async (client) => {
7
+ console.info(await client.getAddress());
8
+ })
9
+ .description('displays your public address')
10
+ .parseAsync();
11
+ //# sourceMappingURL=streamr-wallet-whoami.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamr-wallet-whoami.js","sourceRoot":"","sources":["../../bin/streamr-wallet-whoami.ts"],"names":[],"mappings":";;;AACA,2BAAwB;AAExB,4CAAoD;AAEpD,IAAA,6BAAmB,EAAC,KAAK,EAAE,MAAqB,EAAE,EAAE;IAChD,OAAO,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;AAC3C,CAAC,CAAC;KACG,WAAW,CAAC,8BAA8B,CAAC;KAC3C,UAAU,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,15 @@
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('wallet subcommands')
13
+ .command('whoami', 'displays your public address')
14
+ .parse();
15
+ //# sourceMappingURL=streamr-wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamr-wallet.js","sourceRoot":"","sources":["../../bin/streamr-wallet.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,QAAQ,EAAE,8BAA8B,CAAC;KACjD,KAAK,EAAE,CAAA"}
@@ -13,5 +13,6 @@ commander_1.program
13
13
  .command('stream', 'stream subcommands')
14
14
  .command('storage-node', 'storage node subcommands')
15
15
  .command('mock-data', 'mock data subcommands')
16
+ .command('wallet', 'wallet subcommands')
16
17
  .parse();
17
18
  //# sourceMappingURL=streamr.js.map
@@ -1 +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"}
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,OAAO,CAAC,QAAQ,EAAE,oBAAoB,CAAC;KACvC,KAAK,EAAE,CAAA"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamr/cli-tools",
3
- "version": "6.0.0-alpha.4",
3
+ "version": "6.0.0-beta.2",
4
4
  "description": "Command line tools for Streamr.",
5
5
  "bin": {
6
6
  "streamr": "dist/bin/streamr.js"
@@ -33,15 +33,14 @@
33
33
  "easy-table": "^1.1.1",
34
34
  "event-stream": "^4.0.1",
35
35
  "lodash": "^4.17.21",
36
- "streamr-client": "^6.0.0-alpha.26",
37
- "streamr-client-protocol": "^11.0.0",
36
+ "streamr-client": "^6.0.0-beta.3",
37
+ "streamr-client-protocol": "^12.0.0",
38
38
  "streamr-test-utils": "^2.0.0"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@streamr/dev-config": "^1.0.0",
42
42
  "@types/easy-table": "0.0.32",
43
43
  "@types/event-stream": "^3.3.34",
44
- "@types/jest": "^27.0.2",
45
44
  "@types/lodash": "^4.14.175",
46
45
  "@typescript-eslint/eslint-plugin": "^5.0.0",
47
46
  "@typescript-eslint/parser": "^5.0.0",
@@ -1,18 +1,15 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.createClient = void 0;
7
- const lodash_1 = __importDefault(require("lodash"));
4
+ const lodash_1 = require("lodash");
8
5
  const streamr_client_1 = require("streamr-client");
9
6
  const config_1 = require("./config");
10
7
  const getClientConfig = (commandLineArgs, overridenOptions) => {
11
8
  var _a;
12
- const environmentOptions = (commandLineArgs.dev !== undefined) ? lodash_1.default.omit(streamr_client_1.ConfigTest, 'auth') : undefined;
9
+ const environmentOptions = (commandLineArgs.dev !== undefined) ? (0, lodash_1.omit)(streamr_client_1.ConfigTest, 'auth') : undefined;
13
10
  const configFileJson = (_a = (0, config_1.getConfig)(commandLineArgs.config)) === null || _a === void 0 ? void 0 : _a.client;
14
11
  const authenticationOptions = (commandLineArgs.privateKey !== undefined) ? { auth: { privateKey: commandLineArgs.privateKey } } : undefined;
15
- return lodash_1.default.merge(environmentOptions, configFileJson, authenticationOptions, overridenOptions);
12
+ return (0, lodash_1.merge)(environmentOptions, configFileJson, authenticationOptions, overridenOptions);
16
13
  };
17
14
  const addInterruptHandler = (client) => {
18
15
  process.on('SIGINT', async () => {
@@ -1 +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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AACpC,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,IAAA,aAAI,EAAC,2BAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACrG,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,IAAA,cAAK,EACR,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"}
@@ -3,4 +3,9 @@ export interface GlobalCommandLineArgs {
3
3
  config?: string;
4
4
  privateKey?: string;
5
5
  }
6
+ export declare enum OptionType {
7
+ FLAG = 0,
8
+ ARGUMENT = 1
9
+ }
10
+ export declare const getOptionType: (value: string | boolean) => OptionType | never;
6
11
  export declare function createFnParseInt(name: string): (s: string) => number;
@@ -1,6 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createFnParseInt = void 0;
3
+ exports.createFnParseInt = exports.getOptionType = exports.OptionType = void 0;
4
+ var OptionType;
5
+ (function (OptionType) {
6
+ OptionType[OptionType["FLAG"] = 0] = "FLAG";
7
+ OptionType[OptionType["ARGUMENT"] = 1] = "ARGUMENT"; // e.g. "--private-key 0x1234"
8
+ })(OptionType = exports.OptionType || (exports.OptionType = {}));
9
+ const getOptionType = (value) => {
10
+ if (typeof value === 'boolean') {
11
+ return OptionType.FLAG;
12
+ }
13
+ else if (typeof value === 'string') {
14
+ return OptionType.ARGUMENT;
15
+ }
16
+ else {
17
+ throw new Error(`unknown option type (value: ${value})`);
18
+ }
19
+ };
20
+ exports.getOptionType = getOptionType;
4
21
  function createFnParseInt(name) {
5
22
  return (str) => {
6
23
  const n = parseInt(str, 10);
@@ -1 +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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":";;;AAMA,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,2CAAI,CAAA;IACJ,mDAAQ,CAAA,CAAE,8BAA8B;AAC5C,CAAC,EAHW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAGrB;AAEM,MAAM,aAAa,GAAG,CAAC,KAAuB,EAAsB,EAAE;IACzE,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;QAC5B,OAAO,UAAU,CAAC,IAAI,CAAA;KACzB;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAClC,OAAO,UAAU,CAAC,QAAQ,CAAA;KAC7B;SAAM;QACH,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,GAAG,CAAC,CAAA;KAC3D;AACL,CAAC,CAAA;AARY,QAAA,aAAa,iBAQzB;AAED,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"}
@@ -1,4 +1,5 @@
1
- import { Stream, StreamPermission } from 'streamr-client';
1
+ import { PermissionAssignment, Stream, StreamPermission } from 'streamr-client';
2
2
  export declare const PERMISSIONS: Map<string, StreamPermission>;
3
+ export declare const getPermission: (id: string) => StreamPermission | never;
3
4
  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;
5
+ export declare const runModifyPermissionsCommand: (modify: (stream: Stream, assignment: PermissionAssignment) => Promise<void>, modification: string) => void;
@@ -1,18 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runModifyPermissionsCommand = exports.getPermissionId = exports.PERMISSIONS = void 0;
3
+ exports.runModifyPermissionsCommand = exports.getPermissionId = exports.getPermission = exports.PERMISSIONS = void 0;
4
4
  const commander_1 = require("commander");
5
5
  const streamr_client_1 = require("streamr-client");
6
6
  const command_1 = require("./command");
7
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
8
  exports.PERMISSIONS = new Map([
17
9
  ['subscribe', streamr_client_1.StreamPermission.SUBSCRIBE],
18
10
  ['publish', streamr_client_1.StreamPermission.PUBLISH],
@@ -20,23 +12,36 @@ exports.PERMISSIONS = new Map([
20
12
  ['delete', streamr_client_1.StreamPermission.DELETE],
21
13
  ['grant', streamr_client_1.StreamPermission.GRANT]
22
14
  ]);
15
+ const getPermission = (id) => {
16
+ const result = exports.PERMISSIONS.get(id);
17
+ if (result === undefined) {
18
+ throw new Error(`unknown permission: ${id}`);
19
+ }
20
+ return result;
21
+ };
22
+ exports.getPermission = getPermission;
23
23
  const getPermissionId = (permission) => {
24
24
  return Array.from(exports.PERMISSIONS.entries()).find(([_id, p]) => p === permission)[0];
25
25
  };
26
26
  exports.getPermissionId = getPermissionId;
27
- const runModifyPermissionsCommand = (modifyUserPermission, modifyPublicPermission, modification) => {
27
+ const runModifyPermissionsCommand = (modify, modification) => {
28
28
  (0, command_1.createClientCommand)(async (client, streamId, user, permissionIds) => {
29
- const target = getTarget(user);
30
29
  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
- }
30
+ const permissions = permissionIds.map((permissionId) => (0, exports.getPermission)(permissionId));
31
+ let assignment;
32
+ if (user === PUBLIC_USER_ID) {
33
+ assignment = {
34
+ permissions,
35
+ public: true
36
+ };
37
+ }
38
+ else {
39
+ assignment = {
40
+ permissions,
41
+ user
42
+ };
39
43
  }
44
+ await modify(stream, assignment);
40
45
  })
41
46
  .addArgument(new commander_1.Argument('<streamId>'))
42
47
  .addArgument(new commander_1.Argument('<user>'))
@@ -1 +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"}
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../src/permission.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,mDAA8F;AAC9F,uCAA+C;AAE/C,MAAM,cAAc,GAAG,QAAQ,CAAA;AAElB,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,aAAa,GAAG,CAAC,EAAU,EAA4B,EAAE;IAClE,MAAM,MAAM,GAAG,mBAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAClC,IAAI,MAAM,KAAK,SAAS,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAA;KAC/C;IACD,OAAO,MAAM,CAAA;AACjB,CAAC,CAAA;AANY,QAAA,aAAa,iBAMzB;AAEM,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,MAA2E,EAC3E,YAAoB,EAChB,EAAE;IACN,IAAA,6BAAmB,EAAC,KAAK,EAAE,MAAqB,EAAE,QAAgB,EAAE,IAAY,EAAE,aAAuB,EAAE,EAAE;QACzG,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC/C,MAAM,WAAW,GAAuB,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,YAAY,CAAC,CAAC,CAAA;QACxG,IAAI,UAAgC,CAAA;QACpC,IAAI,IAAI,KAAK,cAAc,EAAE;YACzB,UAAU,GAAG;gBACT,WAAW;gBACX,MAAM,EAAE,IAAI;aACf,CAAA;SACJ;aAAM;YACH,UAAU,GAAG;gBACT,WAAW;gBACX,IAAI;aACP,CAAA;SACJ;QACD,MAAM,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACpC,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;AA1BY,QAAA,2BAA2B,+BA0BvC"}
@@ -10,18 +10,17 @@ const assertBothOrNoneDefined = (option1, option2, errorMessage, commandOptions)
10
10
  exports.assertBothOrNoneDefined = assertBothOrNoneDefined;
11
11
  const resend = async (streamId, resendOpts, client, subscribe) => {
12
12
  try {
13
- const subscribeOpts = {
14
- stream: streamId,
15
- resend: resendOpts
16
- };
17
13
  const handler = (message) => {
18
14
  console.info(JSON.stringify(message));
19
15
  };
20
16
  if (subscribe) {
21
- await client.subscribe(subscribeOpts, handler);
17
+ await client.subscribe({
18
+ stream: streamId,
19
+ resend: resendOpts
20
+ }, handler);
22
21
  }
23
22
  else {
24
- await client.resend(subscribeOpts, handler);
23
+ await client.resend(streamId, resendOpts, handler);
25
24
  }
26
25
  }
27
26
  catch (err) {