@streamr/cli-tools 6.0.0-alpha.2 → 6.0.0-alpha.6

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 (38) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +36 -5
  3. package/bin/streamr-stream-publish.ts +5 -5
  4. package/bin/streamr-stream-search.ts +46 -9
  5. package/bin/streamr-stream.ts +1 -1
  6. package/bin/streamr-wallet-whoami.ts +10 -0
  7. package/bin/streamr-wallet.ts +10 -0
  8. package/bin/streamr.ts +1 -0
  9. package/dist/bin/streamr-stream-publish.js +5 -5
  10. package/dist/bin/streamr-stream-publish.js.map +1 -1
  11. package/dist/bin/streamr-stream-search.js +32 -11
  12. package/dist/bin/streamr-stream-search.js.map +1 -1
  13. package/dist/bin/streamr-stream.js +1 -1
  14. package/dist/bin/streamr-stream.js.map +1 -1
  15. package/dist/bin/{streamr-stream-list.d.ts → streamr-wallet-whoami.d.ts} +0 -0
  16. package/dist/bin/streamr-wallet-whoami.js +11 -0
  17. package/dist/bin/streamr-wallet-whoami.js.map +1 -0
  18. package/dist/bin/streamr-wallet.d.ts +2 -0
  19. package/dist/bin/streamr-wallet.js +15 -0
  20. package/dist/bin/streamr-wallet.js.map +1 -0
  21. package/dist/bin/streamr-whoami.d.ts +2 -0
  22. package/dist/bin/streamr-whoami.js +11 -0
  23. package/dist/bin/streamr-whoami.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/common.d.ts +5 -0
  28. package/dist/src/common.js +18 -1
  29. package/dist/src/common.js.map +1 -1
  30. package/dist/src/permission.d.ts +1 -0
  31. package/dist/src/permission.js +9 -1
  32. package/dist/src/permission.js.map +1 -1
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +3 -4
  35. package/src/common.ts +15 -0
  36. package/src/permission.ts +8 -0
  37. package/dist/bin/streamr-stream-list.js +0 -34
  38. package/dist/bin/streamr-stream-list.js.map +0 -1
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`
@@ -23,6 +24,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
23
24
  - (Breaking) Rename `--config` argument to `--stream-config` in `stream create`
24
25
  - (Breaking) Remove `stream list` command
25
26
  - Add `stream search` command
27
+ - (Breaking) Rename `--partition-key` argument to `--partition-key-field` in `stream publish`
26
28
  - Bump dependency streamr-client to 6.1.0
27
29
  - Bump dependency commander to 8.3.0
28
30
 
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
  ```
@@ -8,7 +8,7 @@ import { createClientCommand } from '../src/command'
8
8
 
9
9
  const publishStream = (
10
10
  stream: string,
11
- partitionKey: string | undefined,
11
+ partitionKeyField: string | undefined,
12
12
  client: StreamrClient
13
13
  ): Writable => {
14
14
  const writable = new Writable({
@@ -27,8 +27,8 @@ const publishStream = (
27
27
  done(e)
28
28
  return
29
29
  }
30
- // @ts-expect-error TODO: the last argument here looks wrong, should be just `partitionKey`?
31
- client.publish(stream, json, Date.now(), json[partitionKey]).then(
30
+ const partitionKey = (partitionKeyField !== undefined) ? json[partitionKeyField] : undefined
31
+ client.publish(stream, json, Date.now(), partitionKey).then(
32
32
  () => done(),
33
33
  (err) => done(err)
34
34
  )
@@ -38,7 +38,7 @@ const publishStream = (
38
38
  }
39
39
 
40
40
  createClientCommand(async (client: StreamrClient, streamId: string, options: any) => {
41
- const ps = publishStream(streamId, options.partitionKey, client)
41
+ const ps = publishStream(streamId, options.partitionKeyField, client)
42
42
  return new Promise((resolve, reject) => {
43
43
  process.stdin
44
44
  .pipe(es.split())
@@ -58,5 +58,5 @@ createClientCommand(async (client: StreamrClient, streamId: string, options: any
58
58
  })
59
59
  .arguments('<streamId>')
60
60
  .description('publish to a stream by reading JSON messages from stdin line-by-line')
61
- .option('-k, --partition-key <string>', 'field name in each message to use for assigning the message to a stream partition')
61
+ .option('-k, --partition-key-field <string>', 'field name in each message to use for assigning the message to a stream partition')
62
62
  .parseAsync()
@@ -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()
@@ -8,7 +8,7 @@ program
8
8
  .description('stream subcommands')
9
9
  .command('subscribe', 'subscribe to a stream')
10
10
  .command('publish', 'publish to a stream')
11
- .command('list', 'fetch a list of streams')
11
+ .command('search', 'search for streams')
12
12
  .command('show', 'info about a stream')
13
13
  .command("create", "create a new stream")
14
14
  .command('resend', 'request resend of a stream')
@@ -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', 'subscribe to a stream')
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', 'displays your public address')
12
13
  .parse()
@@ -9,7 +9,7 @@ const stream_1 = require("stream");
9
9
  const streamr_test_utils_1 = require("streamr-test-utils");
10
10
  const event_stream_1 = __importDefault(require("event-stream"));
11
11
  const command_1 = require("../src/command");
12
- const publishStream = (stream, partitionKey, client) => {
12
+ const publishStream = (stream, partitionKeyField, client) => {
13
13
  const writable = new stream_1.Writable({
14
14
  objectMode: true,
15
15
  write: (data, _, done) => {
@@ -27,14 +27,14 @@ const publishStream = (stream, partitionKey, client) => {
27
27
  done(e);
28
28
  return;
29
29
  }
30
- // @ts-expect-error TODO: the last argument here looks wrong, should be just `partitionKey`?
31
- client.publish(stream, json, Date.now(), json[partitionKey]).then(() => done(), (err) => done(err));
30
+ const partitionKey = (partitionKeyField !== undefined) ? json[partitionKeyField] : undefined;
31
+ client.publish(stream, json, Date.now(), partitionKey).then(() => done(), (err) => done(err));
32
32
  }
33
33
  });
34
34
  return writable;
35
35
  };
36
36
  (0, command_1.createClientCommand)(async (client, streamId, options) => {
37
- const ps = publishStream(streamId, options.partitionKey, client);
37
+ const ps = publishStream(streamId, options.partitionKeyField, client);
38
38
  return new Promise((resolve, reject) => {
39
39
  process.stdin
40
40
  .pipe(event_stream_1.default.split())
@@ -54,6 +54,6 @@ const publishStream = (stream, partitionKey, client) => {
54
54
  })
55
55
  .arguments('<streamId>')
56
56
  .description('publish to a stream by reading JSON messages from stdin line-by-line')
57
- .option('-k, --partition-key <string>', 'field name in each message to use for assigning the message to a stream partition')
57
+ .option('-k, --partition-key-field <string>', 'field name in each message to use for assigning the message to a stream partition')
58
58
  .parseAsync();
59
59
  //# sourceMappingURL=streamr-stream-publish.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"streamr-stream-publish.js","sourceRoot":"","sources":["../../bin/streamr-stream-publish.ts"],"names":[],"mappings":";;;;;;AACA,2BAAwB;AACxB,mCAAiC;AAEjC,2DAAyC;AACzC,gEAA6B;AAC7B,4CAAoD;AAEpD,MAAM,aAAa,GAAG,CAClB,MAAc,EACd,YAAgC,EAChC,MAAqB,EACb,EAAE;IACV,MAAM,QAAQ,GAAG,IAAI,iBAAQ,CAAC;QAC1B,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,CAAC,IAAS,EAAE,CAAM,EAAE,IAAS,EAAE,EAAE;YACpC,IAAI,IAAI,GAAG,IAAI,CAAA;YACf,uBAAuB;YACvB,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACrC,IAAI,EAAE,CAAA;gBACN,OAAM;aACT;YACD,IAAI;gBACA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;aAC1B;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAC9B,IAAI,CAAC,CAAC,CAAC,CAAA;gBACP,OAAM;aACT;YACD,4FAA4F;YAC5F,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAC7D,GAAG,EAAE,CAAC,IAAI,EAAE,EACZ,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CACrB,CAAA;QACL,CAAC;KACJ,CAAC,CAAA;IACF,OAAO,QAAQ,CAAA;AACnB,CAAC,CAAA;AAED,IAAA,6BAAmB,EAAC,KAAK,EAAE,MAAqB,EAAE,QAAgB,EAAE,OAAY,EAAE,EAAE;IAChF,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IAChE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,OAAO,CAAC,KAAK;aACR,IAAI,CAAC,sBAAE,CAAC,KAAK,EAAE,CAAC;aAChB,IAAI,CAAC,EAAE,CAAC;aACR,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YACvB,iFAAiF;YACjF,2EAA2E;YAC3E,iFAAiF;YACjF,2EAA2E;YAC3E,sFAAsF;YACtF,uDAAuD;YACvD,MAAM,IAAA,yBAAI,EAAC,IAAI,CAAC,CAAA;YAChB,OAAO,CAAC,SAAS,CAAC,CAAA;QACtB,CAAC,CAAC;aACD,IAAI,CAAC,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAE,CAAA;IAClD,CAAC,CAAC,CAAA;AACN,CAAC,CAAC;KACG,SAAS,CAAC,YAAY,CAAC;KACvB,WAAW,CAAC,sEAAsE,CAAC;KACnF,MAAM,CAAC,8BAA8B,EAAE,mFAAmF,CAAC;KAC3H,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"streamr-stream-publish.js","sourceRoot":"","sources":["../../bin/streamr-stream-publish.ts"],"names":[],"mappings":";;;;;;AACA,2BAAwB;AACxB,mCAAiC;AAEjC,2DAAyC;AACzC,gEAA6B;AAC7B,4CAAoD;AAEpD,MAAM,aAAa,GAAG,CAClB,MAAc,EACd,iBAAqC,EACrC,MAAqB,EACb,EAAE;IACV,MAAM,QAAQ,GAAG,IAAI,iBAAQ,CAAC;QAC1B,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,CAAC,IAAS,EAAE,CAAM,EAAE,IAAS,EAAE,EAAE;YACpC,IAAI,IAAI,GAAG,IAAI,CAAA;YACf,uBAAuB;YACvB,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACrC,IAAI,EAAE,CAAA;gBACN,OAAM;aACT;YACD,IAAI;gBACA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;aAC1B;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAC9B,IAAI,CAAC,CAAC,CAAC,CAAA;gBACP,OAAM;aACT;YACD,MAAM,YAAY,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC5F,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC,IAAI,CACvD,GAAG,EAAE,CAAC,IAAI,EAAE,EACZ,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CACrB,CAAA;QACL,CAAC;KACJ,CAAC,CAAA;IACF,OAAO,QAAQ,CAAA;AACnB,CAAC,CAAA;AAED,IAAA,6BAAmB,EAAC,KAAK,EAAE,MAAqB,EAAE,QAAgB,EAAE,OAAY,EAAE,EAAE;IAChF,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;IACrE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,OAAO,CAAC,KAAK;aACR,IAAI,CAAC,sBAAE,CAAC,KAAK,EAAE,CAAC;aAChB,IAAI,CAAC,EAAE,CAAC;aACR,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YACvB,iFAAiF;YACjF,2EAA2E;YAC3E,iFAAiF;YACjF,2EAA2E;YAC3E,sFAAsF;YACtF,uDAAuD;YACvD,MAAM,IAAA,yBAAI,EAAC,IAAI,CAAC,CAAA;YAChB,OAAO,CAAC,SAAS,CAAC,CAAA;QACtB,CAAC,CAAC;aACD,IAAI,CAAC,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAE,CAAA;IAClD,CAAC,CAAC,CAAA;AACN,CAAC,CAAC;KACG,SAAS,CAAC,YAAY,CAAC;KACvB,WAAW,CAAC,sEAAsE,CAAC;KACnF,MAAM,CAAC,oCAAoC,EAAE,mFAAmF,CAAC;KACjI,UAAU,EAAE,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"}
@@ -12,7 +12,7 @@ commander_1.program
12
12
  .description('stream subcommands')
13
13
  .command('subscribe', 'subscribe to a stream')
14
14
  .command('publish', 'publish to a stream')
15
- .command('list', 'fetch a list of streams')
15
+ .command('search', 'search for streams')
16
16
  .command('show', 'info about a stream')
17
17
  .command("create", "create a new stream")
18
18
  .command('resend', 'request resend of a stream')
@@ -1 +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"}
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,QAAQ,EAAE,oBAAoB,CAAC;KACvC,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,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', 'subscribe to a stream')
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,uBAAuB,CAAC;KAC1C,KAAK,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-whoami.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamr-whoami.js","sourceRoot":"","sources":["../../bin/streamr-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"}
@@ -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', 'displays your public address')
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,8BAA8B,CAAC;KACjD,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.2",
3
+ "version": "6.0.0-alpha.6",
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.24",
37
- "streamr-client-protocol": "^11.0.0",
36
+ "streamr-client": "^6.0.0-alpha.32",
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",
@@ -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
1
  import { 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
5
  export declare const runModifyPermissionsCommand: (modifyUserPermission: (stream: Stream, permission: StreamPermission, target: string) => Promise<void>, modifyPublicPermission: (stream: Stream, permission: StreamPermission) => Promise<void>, modification: string) => void;
@@ -1,6 +1,6 @@
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");
@@ -20,6 +20,14 @@ exports.PERMISSIONS = new Map([
20
20
  ['delete', streamr_client_1.StreamPermission.DELETE],
21
21
  ['grant', streamr_client_1.StreamPermission.GRANT]
22
22
  ]);
23
+ const getPermission = (id) => {
24
+ const result = exports.PERMISSIONS.get(id);
25
+ if (result === undefined) {
26
+ throw new Error(`unknown permission: ${id}`);
27
+ }
28
+ return result;
29
+ };
30
+ exports.getPermission = getPermission;
23
31
  const getPermissionId = (permission) => {
24
32
  return Array.from(exports.PERMISSIONS.entries()).find(([_id, p]) => p === permission)[0];
25
33
  };
@@ -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,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,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,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"}