@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/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",
package/src/client.ts CHANGED
@@ -1,13 +1,13 @@
1
- import _ from 'lodash'
1
+ import { merge, omit } from 'lodash'
2
2
  import { BrubeckClientConfig, StreamrClient, ConfigTest } from 'streamr-client'
3
3
  import { GlobalCommandLineArgs } from './common'
4
4
  import { getConfig } from './config'
5
5
 
6
6
  const getClientConfig = (commandLineArgs: GlobalCommandLineArgs, overridenOptions: BrubeckClientConfig) => {
7
- const environmentOptions = (commandLineArgs.dev !== undefined) ? _.omit(ConfigTest, 'auth') : undefined
7
+ const environmentOptions = (commandLineArgs.dev !== undefined) ? omit(ConfigTest, 'auth') : undefined
8
8
  const configFileJson = getConfig(commandLineArgs.config)?.client
9
9
  const authenticationOptions = (commandLineArgs.privateKey !== undefined) ? { auth: { privateKey: commandLineArgs.privateKey } } : undefined
10
- return _.merge(
10
+ return merge(
11
11
  environmentOptions,
12
12
  configFileJson,
13
13
  authenticationOptions,
package/src/common.ts CHANGED
@@ -4,6 +4,21 @@ export interface GlobalCommandLineArgs {
4
4
  privateKey?: string
5
5
  }
6
6
 
7
+ export enum OptionType {
8
+ FLAG, // e.g. "--enable"
9
+ ARGUMENT // e.g. "--private-key 0x1234"
10
+ }
11
+
12
+ export const getOptionType = (value: string | boolean): OptionType | never => {
13
+ if (typeof value === 'boolean') {
14
+ return OptionType.FLAG
15
+ } else if (typeof value === 'string') {
16
+ return OptionType.ARGUMENT
17
+ } else {
18
+ throw new Error(`unknown option type (value: ${value})`)
19
+ }
20
+ }
21
+
7
22
  export function createFnParseInt(name: string): (s: string) => number {
8
23
  return (str: string) => {
9
24
  const n = parseInt(str, 10)
package/src/permission.ts CHANGED
@@ -1,17 +1,9 @@
1
1
  import { Argument } from 'commander'
2
- import { Stream, StreamPermission, StreamrClient } from 'streamr-client'
2
+ import { PermissionAssignment, Stream, StreamPermission, StreamrClient } from 'streamr-client'
3
3
  import { createClientCommand } from './command'
4
4
 
5
5
  const PUBLIC_USER_ID = 'public'
6
6
 
7
- const getTarget = (user: string): string|undefined => {
8
- if (user === PUBLIC_USER_ID) {
9
- return undefined
10
- } else {
11
- return user
12
- }
13
- }
14
-
15
7
  export const PERMISSIONS = new Map<string,StreamPermission>([
16
8
  ['subscribe', StreamPermission.SUBSCRIBE],
17
9
  ['publish', StreamPermission.PUBLISH],
@@ -20,26 +12,38 @@ export const PERMISSIONS = new Map<string,StreamPermission>([
20
12
  ['grant', StreamPermission.GRANT]
21
13
  ])
22
14
 
15
+ export const getPermission = (id: string): StreamPermission | never => {
16
+ const result = PERMISSIONS.get(id)
17
+ if (result === undefined) {
18
+ throw new Error(`unknown permission: ${id}`)
19
+ }
20
+ return result
21
+ }
22
+
23
23
  export const getPermissionId = (permission: StreamPermission): string => {
24
24
  return Array.from(PERMISSIONS.entries()).find(([_id, p]) => p === permission)![0]
25
25
  }
26
26
 
27
27
  export const runModifyPermissionsCommand = (
28
- modifyUserPermission: (stream: Stream, permission: StreamPermission, target: string) => Promise<void>,
29
- modifyPublicPermission: (stream: Stream, permission: StreamPermission) => Promise<void>,
28
+ modify: (stream: Stream, assignment: PermissionAssignment) => Promise<void>,
30
29
  modification: string,
31
30
  ): void => {
32
31
  createClientCommand(async (client: StreamrClient, streamId: string, user: string, permissionIds: string[]) => {
33
- const target = getTarget(user)
34
32
  const stream = await client.getStream(streamId)
35
- for await (const permissionId of permissionIds) {
36
- const permission = PERMISSIONS.get(permissionId)!
37
- if (target !== undefined) {
38
- await modifyUserPermission(stream, permission, target)
39
- } else {
40
- await modifyPublicPermission(stream, permission)
33
+ const permissions: StreamPermission[] = permissionIds.map((permissionId) => getPermission(permissionId))
34
+ let assignment: PermissionAssignment
35
+ if (user === PUBLIC_USER_ID) {
36
+ assignment = {
37
+ permissions,
38
+ public: true
39
+ }
40
+ } else {
41
+ assignment = {
42
+ permissions,
43
+ user
41
44
  }
42
45
  }
46
+ await modify(stream, assignment)
43
47
  })
44
48
  .addArgument(new Argument('<streamId>'))
45
49
  .addArgument(new Argument('<user>'))
package/src/resend.ts CHANGED
@@ -19,17 +19,16 @@ export const resend = async (
19
19
  subscribe: boolean
20
20
  ): Promise<void> => {
21
21
  try {
22
- const subscribeOpts = {
23
- stream: streamId,
24
- resend: resendOpts
25
- }
26
22
  const handler = (message: any) => {
27
23
  console.info(JSON.stringify(message))
28
24
  }
29
25
  if (subscribe) {
30
- await client.subscribe(subscribeOpts, handler)
26
+ await client.subscribe({
27
+ stream: streamId,
28
+ resend: resendOpts
29
+ }, handler)
31
30
  } else {
32
- await client.resend(subscribeOpts, handler)
31
+ await client.resend(streamId, resendOpts, handler)
33
32
  }
34
33
  } catch (err) {
35
34
  console.error(err.message ? err.message : err)