@streamr/cli-tools 4.1.0 → 6.0.0-alpha.0

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 (126) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc +6 -0
  3. package/CHANGELOG.md +37 -3
  4. package/README.md +52 -27
  5. package/bin/common.ts +94 -0
  6. package/bin/streamr-misc-get-session-token.ts +33 -0
  7. package/bin/streamr-misc.ts +10 -0
  8. package/bin/streamr-mock-data-generate.ts +17 -0
  9. package/bin/streamr-mock-data.ts +10 -0
  10. package/bin/streamr-storage-node-add-stream.ts +32 -0
  11. package/bin/streamr-storage-node-list-stream-parts.ts +38 -0
  12. package/bin/streamr-storage-node-list.ts +52 -0
  13. package/bin/streamr-storage-node-remove-stream.ts +32 -0
  14. package/bin/streamr-storage-node.ts +13 -0
  15. package/bin/streamr-stream-create.ts +35 -0
  16. package/bin/streamr-stream-grant-permission.ts +69 -0
  17. package/bin/streamr-stream-list.ts +33 -0
  18. package/bin/streamr-stream-publish.ts +30 -0
  19. package/bin/streamr-stream-resend.ts +99 -0
  20. package/bin/streamr-stream-revoke-permission.ts +28 -0
  21. package/bin/streamr-stream-show.ts +21 -0
  22. package/bin/streamr-stream-subscribe.ts +23 -0
  23. package/bin/{streamr.js → streamr-stream.ts} +6 -4
  24. package/bin/streamr.ts +13 -0
  25. package/dist/bin/common.d.ts +16 -0
  26. package/dist/bin/common.js +80 -0
  27. package/dist/bin/common.js.map +1 -0
  28. package/dist/bin/streamr-misc-get-session-token.d.ts +2 -0
  29. package/dist/bin/streamr-misc-get-session-token.js +33 -0
  30. package/dist/bin/streamr-misc-get-session-token.js.map +1 -0
  31. package/dist/bin/streamr-misc.d.ts +2 -0
  32. package/dist/bin/streamr-misc.js +15 -0
  33. package/dist/bin/streamr-misc.js.map +1 -0
  34. package/dist/bin/streamr-mock-data-generate.d.ts +2 -0
  35. package/dist/bin/streamr-mock-data-generate.js +21 -0
  36. package/dist/bin/streamr-mock-data-generate.js.map +1 -0
  37. package/dist/bin/streamr-mock-data.d.ts +2 -0
  38. package/dist/bin/streamr-mock-data.js +15 -0
  39. package/dist/bin/streamr-mock-data.js.map +1 -0
  40. package/dist/bin/streamr-storage-node-add-stream.d.ts +2 -0
  41. package/dist/bin/streamr-storage-node-add-stream.js +30 -0
  42. package/dist/bin/streamr-storage-node-add-stream.js.map +1 -0
  43. package/dist/bin/streamr-storage-node-list-stream-parts.d.ts +2 -0
  44. package/dist/bin/streamr-storage-node-list-stream-parts.js +37 -0
  45. package/dist/bin/streamr-storage-node-list-stream-parts.js.map +1 -0
  46. package/dist/bin/streamr-storage-node-list.d.ts +2 -0
  47. package/dist/bin/streamr-storage-node-list.js +48 -0
  48. package/dist/bin/streamr-storage-node-list.js.map +1 -0
  49. package/dist/bin/streamr-storage-node-remove-stream.d.ts +2 -0
  50. package/dist/bin/streamr-storage-node-remove-stream.js +30 -0
  51. package/dist/bin/streamr-storage-node-remove-stream.js.map +1 -0
  52. package/dist/bin/streamr-storage-node.d.ts +2 -0
  53. package/dist/bin/streamr-storage-node.js +18 -0
  54. package/dist/bin/streamr-storage-node.js.map +1 -0
  55. package/dist/bin/streamr-stream-create.d.ts +2 -0
  56. package/dist/bin/streamr-stream-create.js +32 -0
  57. package/dist/bin/streamr-stream-create.js.map +1 -0
  58. package/dist/bin/streamr-stream-grant-permission.d.ts +2 -0
  59. package/dist/bin/streamr-stream-grant-permission.js +68 -0
  60. package/dist/bin/streamr-stream-grant-permission.js.map +1 -0
  61. package/dist/bin/streamr-stream-list.d.ts +2 -0
  62. package/dist/bin/streamr-stream-list.js +37 -0
  63. package/dist/bin/streamr-stream-list.js.map +1 -0
  64. package/dist/bin/streamr-stream-publish.d.ts +2 -0
  65. package/dist/bin/streamr-stream-publish.js +34 -0
  66. package/dist/bin/streamr-stream-publish.js.map +1 -0
  67. package/dist/bin/streamr-stream-resend.d.ts +2 -0
  68. package/dist/bin/streamr-stream-resend.js +95 -0
  69. package/dist/bin/streamr-stream-resend.js.map +1 -0
  70. package/dist/bin/streamr-stream-revoke-permission.d.ts +2 -0
  71. package/dist/bin/streamr-stream-revoke-permission.js +26 -0
  72. package/dist/bin/streamr-stream-revoke-permission.js.map +1 -0
  73. package/dist/bin/streamr-stream-show.d.ts +2 -0
  74. package/dist/bin/streamr-stream-show.js +25 -0
  75. package/dist/bin/streamr-stream-show.js.map +1 -0
  76. package/dist/bin/streamr-stream-subscribe.d.ts +2 -0
  77. package/dist/bin/streamr-stream-subscribe.js +27 -0
  78. package/dist/bin/streamr-stream-subscribe.js.map +1 -0
  79. package/dist/bin/streamr-stream.d.ts +2 -0
  80. package/dist/bin/streamr-stream.js +22 -0
  81. package/dist/bin/streamr-stream.js.map +1 -0
  82. package/dist/bin/streamr.d.ts +2 -0
  83. package/dist/bin/streamr.js +18 -0
  84. package/dist/bin/streamr.js.map +1 -0
  85. package/dist/package.json +50 -0
  86. package/dist/src/create.d.ts +2 -0
  87. package/dist/src/create.js +20 -0
  88. package/dist/src/create.js.map +1 -0
  89. package/dist/src/generate.d.ts +1 -0
  90. package/dist/src/generate.js +32 -0
  91. package/dist/src/generate.js.map +1 -0
  92. package/dist/src/list.d.ts +2 -0
  93. package/dist/src/list.js +29 -0
  94. package/dist/src/list.js.map +1 -0
  95. package/dist/src/publish.d.ts +3 -0
  96. package/dist/src/publish.js +35 -0
  97. package/dist/src/publish.js.map +1 -0
  98. package/dist/src/resend.d.ts +4 -0
  99. package/dist/src/resend.js +29 -0
  100. package/dist/src/resend.js.map +1 -0
  101. package/dist/src/show.d.ts +2 -0
  102. package/dist/src/show.js +23 -0
  103. package/dist/src/show.js.map +1 -0
  104. package/dist/src/subscribe.d.ts +2 -0
  105. package/dist/src/subscribe.js +13 -0
  106. package/dist/src/subscribe.js.map +1 -0
  107. package/dist/tsconfig.tsbuildinfo +1 -0
  108. package/package.json +22 -12
  109. package/src/{create.js → create.ts} +7 -2
  110. package/src/{generate.js → generate.ts} +6 -3
  111. package/src/{list.js → list.ts} +6 -4
  112. package/src/{publish.js → publish.ts} +11 -7
  113. package/src/resend.ts +29 -0
  114. package/src/{show.js → show.ts} +8 -2
  115. package/src/subscribe.ts +9 -0
  116. package/tsconfig.json +7 -0
  117. package/bin/common.js +0 -79
  118. package/bin/streamr-create.js +0 -40
  119. package/bin/streamr-generate.js +0 -14
  120. package/bin/streamr-list.js +0 -35
  121. package/bin/streamr-publish.js +0 -28
  122. package/bin/streamr-resend.js +0 -101
  123. package/bin/streamr-show.js +0 -19
  124. package/bin/streamr-subscribe.js +0 -20
  125. package/src/resend.js +0 -43
  126. package/src/subscribe.js +0 -9
@@ -0,0 +1,69 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander'
3
+ import {
4
+ envOptions,
5
+ authOptions,
6
+ formStreamrOptionsWithEnv,
7
+ getStreamId
8
+ } from './common'
9
+ import pkg from '../package.json'
10
+ import { AnonymousStreamPermisson, StreamOperation, StreamrClient, UserStreamPermission } from 'streamr-client'
11
+ import EasyTable from 'easy-table'
12
+
13
+ const PUBLIC_PERMISSION_ID = 'public'
14
+ const OPERATION_PREFIX = 'stream_'
15
+
16
+ const getOperation = (id: string) => {
17
+ // we support both short ids (e.g. "publish"), and long ids (e.g. "stream_publish")
18
+ // the actual StreamOperation constant is the long id string
19
+ // backend does the validation of invalid constants
20
+ if (!id.startsWith(OPERATION_PREFIX)) {
21
+ return (OPERATION_PREFIX + id) as StreamOperation
22
+ } else {
23
+ return id as StreamOperation
24
+ }
25
+ }
26
+
27
+ const getShortOperationId = (operation: StreamOperation) => {
28
+ const longOperationId = operation as string
29
+ if (longOperationId.startsWith(OPERATION_PREFIX)) {
30
+ return longOperationId.substring(OPERATION_PREFIX.length)
31
+ } else {
32
+ throw new Error(`Assertion failed: unknown prefix for in ${longOperationId}`)
33
+ }
34
+ }
35
+
36
+ const getTarget = (user: string): string|undefined => {
37
+ if (user === PUBLIC_PERMISSION_ID) {
38
+ return undefined
39
+ } else {
40
+ return user
41
+ }
42
+ }
43
+
44
+ const program = new Command()
45
+ program
46
+ .arguments('<streamId> <user> <operations...>')
47
+ .description('grant permission: use keyword "public" as a user to grant a public permission')
48
+ authOptions(program)
49
+ envOptions(program)
50
+ .version(pkg.version)
51
+ .action(async (streamIdOrPath: string, user: string, operationIds: string[], options: any) => {
52
+ const operations = operationIds.map((o: string) => getOperation(o))
53
+ const target = getTarget(user)
54
+ const client = new StreamrClient(formStreamrOptionsWithEnv(options))
55
+ const streamId = getStreamId(streamIdOrPath, options)!
56
+ const stream = await client.getStream(streamId)
57
+ const tasks = operations.map((operation: StreamOperation) => stream.grantPermission(operation, target))
58
+ const permissions = await Promise.all(tasks)
59
+ console.info(EasyTable.print(permissions.map((permission: UserStreamPermission|AnonymousStreamPermisson) => ({
60
+ id: permission.id,
61
+ operation: getShortOperationId(permission.operation),
62
+ user: (permission as AnonymousStreamPermisson).anonymous ? PUBLIC_PERMISSION_ID : (permission as UserStreamPermission).user
63
+ }))))
64
+ })
65
+ .parseAsync(process.argv)
66
+ .catch((e) => {
67
+ console.error(e)
68
+ process.exit(1)
69
+ })
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env node
2
+ import { Command, Option } from 'commander'
3
+ import { list } from '../src/list'
4
+ import { envOptions, authOptions, exitWithHelpIfArgsNotBetween, formStreamrOptionsWithEnv } from './common'
5
+ import pkg from '../package.json'
6
+
7
+ const program = new Command()
8
+ program
9
+ .description('fetch a list of streams that are accessible by the authenticated user')
10
+ .option('-s, --search [term]', 'search for term in name or description')
11
+ // TODO could support shorter forms of operations: e.g. "publish" instead of "stream_publish",
12
+ // see streamr-stream-grant-permission.ts
13
+ .addOption(new Option('-o, --operation [permission]', 'filter by permission')
14
+ .choices(['stream_get','stream_subscribe','stream_publish','stream_delete','stream_share'])
15
+ .default('stream_get'))
16
+ .option('--public-access', 'include publicly available streams')
17
+ .option('--no-granted-access', 'exclude streams that user has directly granted permissions to')
18
+ authOptions(program)
19
+ envOptions(program)
20
+ .version(pkg.version)
21
+ .action((options: any) => {
22
+ const query: any = {
23
+ operation: options.operation,
24
+ noConfig: true,
25
+ publicAccess: options.publicAccess,
26
+ search: options.search,
27
+ grantedAccess: options.grantedAccess
28
+ }
29
+ list(query, formStreamrOptionsWithEnv(options))
30
+ })
31
+ .parse(process.argv)
32
+
33
+ exitWithHelpIfArgsNotBetween(program, 0, 0)
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander'
3
+ import es from 'event-stream'
4
+ import { publishStream } from '../src/publish'
5
+ import { envOptions, authOptions, exitWithHelpIfArgsNotBetween, formStreamrOptionsWithEnv, getStreamId } from './common'
6
+ import pkg from '../package.json'
7
+
8
+ const program = new Command()
9
+ program
10
+ .arguments('<streamId>')
11
+ .description('publish to a stream by reading JSON messages from stdin line-by-line')
12
+ .option('-k, --partition-key <string>', 'field name in each message to use for assigning the message to a stream partition')
13
+ authOptions(program)
14
+ envOptions(program)
15
+ .version(pkg.version)
16
+ .action((streamIdOrPath: string, options: any) => {
17
+ const streamId = getStreamId(streamIdOrPath, options)!
18
+ const ps = publishStream(streamId, options.partitionKey, formStreamrOptionsWithEnv(options))
19
+ process.stdin
20
+ .pipe(es.split())
21
+ .pipe(ps)
22
+ .on('error', (err: any) => {
23
+ console.error(err)
24
+ process.exit(1)
25
+ // process.stdin.pipe(ps) recover pipe to continue execution
26
+ })
27
+ })
28
+ .parse(process.argv)
29
+
30
+ exitWithHelpIfArgsNotBetween(program, 1, 1)
@@ -0,0 +1,99 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander'
3
+ import { StreamrClientOptions } from 'streamr-client'
4
+ import { resend } from '../src/resend'
5
+ import { envOptions, authOptions, exitWithHelpIfArgsNotBetween, formStreamrOptionsWithEnv, getStreamId } from './common'
6
+ import pkg from '../package.json'
7
+
8
+ function assertBothOrNoneDefined(option1: string, option2: string, errorMessage: string, commandOptions: any) {
9
+ if ((option1 in commandOptions && !(option2 in commandOptions)) || (option2 in commandOptions && !(option1 in commandOptions))) {
10
+ console.error(`option ${errorMessage}`)
11
+ process.exit(1)
12
+ }
13
+ }
14
+
15
+ const program = new Command()
16
+
17
+ program
18
+ .usage('<command> [<args>]')
19
+ .description('request resend of stream and print JSON messages to stdout line-by-line')
20
+
21
+ program
22
+ .command('last <n> <streamId>')
23
+ .description('request last N messages')
24
+ .option('-d, --disable-ordering', 'disable ordering of messages by OrderingUtil', false)
25
+ .option('-s, --subscribe', 'subscribe in addition to resend', false)
26
+ .action((n: string, streamIdOrPath: string, options: any, command: Command) => {
27
+ if (isNaN(n as any)) {
28
+ console.error('argument n is not a number')
29
+ process.exit(1)
30
+ }
31
+ const resendOptions = {
32
+ last: parseInt(n)
33
+ }
34
+ const clientOptions: StreamrClientOptions & { subscribe?: boolean } = formStreamrOptionsWithEnv(command.parent!.opts())
35
+ clientOptions.orderMessages = !options.disableOrdering
36
+ clientOptions.subscribe = options.subscribe
37
+ const streamId = getStreamId(streamIdOrPath, command.parent!.opts())!
38
+ resend(streamId, resendOptions, clientOptions)
39
+ })
40
+
41
+ program
42
+ .command('from <from> <streamId>')
43
+ .description('request messages starting from given date-time (format: "YYYY-MM-DDTHH:mm:ss.sssZ")')
44
+ .option('--publisher-id <string>', 'filter results by publisher')
45
+ .option('-d, --disable-ordering', 'disable ordering of messages by OrderingUtil', false)
46
+ .option('-s, --subscribe', 'subscribe in addition to resend', false)
47
+ .action((from: string, streamIdOrPath: string, options: any, command: Command) => {
48
+ const resendOptions = {
49
+ from: {
50
+ timestamp: Date.parse(from),
51
+ sequenceNumber: 0
52
+ },
53
+ publisherId: options.publisherId
54
+ }
55
+ const clientOptions: StreamrClientOptions & { subscribe?: boolean } = formStreamrOptionsWithEnv(command.parent!.opts())
56
+ clientOptions.orderMessages = !options.disableOrdering
57
+ clientOptions.subscribe = options.subscribe
58
+ const streamId = getStreamId(streamIdOrPath, command.parent!.opts())!
59
+ resend(streamId, resendOptions, clientOptions)
60
+ })
61
+
62
+ program
63
+ .command('range <from> <to> <streamId>')
64
+ .description('request messages between two given date-times (format: "YYYY-MM-DDTHH:mm:ss.sssZ")')
65
+ .option('--publisher-id <string>', 'filter results by publisher')
66
+ .option('--msg-chain-id <string>', 'filter results by message chain')
67
+ .option('-d, --disable-ordering', 'disable ordering of messages by OrderingUtil', false)
68
+ .action((from: string, to: string, streamIdOrPath: string, options: any, command: Command) => {
69
+ const resendOptions = {
70
+ from: {
71
+ timestamp: Date.parse(from),
72
+ sequenceNumber: 0
73
+ },
74
+ to: {
75
+ timestamp: Date.parse(to),
76
+ sequenceNumber: 0
77
+ },
78
+ publisherId: options.publisherId,
79
+ msgChainId: options.msgChainId
80
+ }
81
+ assertBothOrNoneDefined('publisherId', 'msgChainId', '--publisher-id must be accompanied by option --msg-chain-id', options)
82
+ const clientOptions = formStreamrOptionsWithEnv(command.parent!.opts())
83
+ clientOptions.orderMessages = !options.disableOrdering
84
+ const streamId = getStreamId(streamIdOrPath, command.parent!.opts())!
85
+ resend(streamId, resendOptions, clientOptions)
86
+ })
87
+
88
+ program
89
+ .on('command:*', (invalidCommand: any) => {
90
+ console.error(`invalid command: ${invalidCommand}`)
91
+ process.exit(1)
92
+ })
93
+
94
+ authOptions(program)
95
+ envOptions(program)
96
+ .version(pkg.version)
97
+ .parse(process.argv)
98
+
99
+ exitWithHelpIfArgsNotBetween(program, 1, Number.MAX_VALUE)
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander'
3
+ import {
4
+ envOptions,
5
+ authOptions,
6
+ exitWithHelpIfArgsNotBetween,
7
+ formStreamrOptionsWithEnv,
8
+ getStreamId
9
+ } from './common'
10
+ import pkg from '../package.json'
11
+ import { StreamrClient } from 'streamr-client'
12
+
13
+ const program = new Command()
14
+ program
15
+ .arguments('<streamId> <permissionId>')
16
+ .description('revoke permission')
17
+ authOptions(program)
18
+ envOptions(program)
19
+ .version(pkg.version)
20
+ .action(async (streamIdOrPath: string, permissionId: number, options: any) => {
21
+ const client = new StreamrClient(formStreamrOptionsWithEnv(options))
22
+ const streamId = getStreamId(streamIdOrPath, options)!
23
+ const stream = await client.getStream(streamId)
24
+ stream.revokePermission(permissionId)
25
+ })
26
+ .parseAsync(process.argv)
27
+
28
+ exitWithHelpIfArgsNotBetween(program, 2, 2)
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander'
3
+ import { show } from '../src/show'
4
+ import { envOptions, authOptions, exitWithHelpIfArgsNotBetween, formStreamrOptionsWithEnv, getStreamId } from './common'
5
+ import pkg from '../package.json'
6
+
7
+ const program = new Command()
8
+ program
9
+ .arguments('<streamId>')
10
+ .description('show detailed information about a stream')
11
+ .option('--include-permissions', 'include list of permissions (requires SHARE permission)')
12
+ authOptions(program)
13
+ envOptions(program)
14
+ .version(pkg.version)
15
+ .action((streamIdOrPath: string, options: any) => {
16
+ const streamId = getStreamId(streamIdOrPath, options)!
17
+ show(streamId, options.includePermissions, formStreamrOptionsWithEnv(options))
18
+ })
19
+ .parse(process.argv)
20
+
21
+ exitWithHelpIfArgsNotBetween(program, 1, 1)
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander'
3
+ import { subscribe } from '../src/subscribe'
4
+ import { envOptions, authOptions, exitWithHelpIfArgsNotBetween, formStreamrOptionsWithEnv, createFnParseInt, getStreamId } from './common'
5
+ import pkg from '../package.json'
6
+
7
+ const program = new Command()
8
+ program
9
+ .arguments('<streamId>')
10
+ .description('subscribe to a stream, prints JSON messages to stdout line-by-line')
11
+ .option('-p, --partition [partition]', 'partition', createFnParseInt('--partition'), 0)
12
+ .option('-d, --disable-ordering', 'disable ordering of messages by OrderingUtil', false)
13
+ authOptions(program)
14
+ envOptions(program)
15
+ .version(pkg.version)
16
+ .action((streamIdOrPath: string, options: any) => {
17
+ options.orderMessages = !options.disableOrdering
18
+ const streamId = getStreamId(streamIdOrPath, options)!
19
+ subscribe(streamId, options.partition, formStreamrOptionsWithEnv(options))
20
+ })
21
+ .parse(process.argv)
22
+
23
+ exitWithHelpIfArgsNotBetween(program, 1, 1)
@@ -1,15 +1,17 @@
1
1
  #!/usr/bin/env node
2
- const program = require('commander')
2
+ import { program } from 'commander'
3
+ import pkg from '../package.json'
3
4
 
4
5
  program
5
- .version(require('../package.json').version)
6
+ .version(pkg.version)
6
7
  .usage('<command> [<args>]')
7
- .description('command line tools for interacting with Streamr https://streamr.network')
8
- .command('generate', 'generate JSON data')
8
+ .description('stream subcommands')
9
9
  .command('subscribe', 'subscribe to a stream')
10
10
  .command('publish', 'publish to a stream')
11
11
  .command('list', 'fetch a list of 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')
15
+ .command('grant-permission', 'grant permission')
16
+ .command('revoke-permission', 'revoke permission')
15
17
  .parse(process.argv)
package/bin/streamr.ts ADDED
@@ -0,0 +1,13 @@
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> <subcommand> [<args>]')
8
+ .description('command line tools for interacting with Streamr https://streamr.network')
9
+ .command('stream', 'stream subcommands')
10
+ .command('storage-node', 'storage node subcommands')
11
+ .command('mock-data', 'mock data subcommands')
12
+ .command('misc', 'miscellaneous subcommands')
13
+ .parse(process.argv)
@@ -0,0 +1,16 @@
1
+ import * as commander from 'commander';
2
+ import { StreamrClientOptions } from 'streamr-client';
3
+ export interface EnvironmentOptions {
4
+ dev?: boolean;
5
+ stg?: boolean;
6
+ httpUrl?: string;
7
+ }
8
+ export interface AuthenticationOptions {
9
+ privateKey?: string;
10
+ }
11
+ export declare function envOptions(program: commander.Command): commander.Command;
12
+ export declare function authOptions(program: commander.Command): commander.Command;
13
+ export declare function exitWithHelpIfArgsNotBetween(program: commander.Command, min: number, max: number): void;
14
+ export declare function formStreamrOptionsWithEnv({ dev, stg, httpUrl, privateKey }: EnvironmentOptions & AuthenticationOptions): StreamrClientOptions;
15
+ export declare function createFnParseInt(name: string): (s: string) => number;
16
+ export declare const getStreamId: (streamIdOrPath: string | undefined, options: any) => string | undefined;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStreamId = exports.createFnParseInt = exports.formStreamrOptionsWithEnv = exports.exitWithHelpIfArgsNotBetween = exports.authOptions = exports.envOptions = void 0;
4
+ const ethers_1 = require("ethers");
5
+ function envOptions(program) {
6
+ return program
7
+ .option('--dev', 'use pre-defined development environment')
8
+ .option('--stg', 'use pre-defined staging environment')
9
+ .option('--ws-url <url>', 'alternative websocket url to use')
10
+ .option('--http-url <url>', 'alternative http url to use');
11
+ }
12
+ exports.envOptions = envOptions;
13
+ function authOptions(program) {
14
+ return program
15
+ .option('--private-key <key>', 'use an Ethereum private key to authenticate');
16
+ }
17
+ exports.authOptions = authOptions;
18
+ function exitWithHelpIfArgsNotBetween(program, min, max) {
19
+ if (program.args.length < min || program.args.length > max) {
20
+ program.help();
21
+ }
22
+ }
23
+ exports.exitWithHelpIfArgsNotBetween = exitWithHelpIfArgsNotBetween;
24
+ function formStreamrOptionsWithEnv({ dev, stg, httpUrl, privateKey }) {
25
+ const options = {};
26
+ if (dev && stg) {
27
+ console.error('flags --dev and --stg cannot be enabled at the same time');
28
+ process.exit(1);
29
+ }
30
+ if (dev) {
31
+ options.restUrl = 'http://localhost/api/v1';
32
+ options.storageNodeRegistry = [{
33
+ // "broker-node-storage-1" on Docker environment
34
+ address: '0xde1112f631486CfC759A50196853011528bC5FA0',
35
+ url: 'http://10.200.10.1:8891'
36
+ }];
37
+ }
38
+ else if (stg) {
39
+ options.restUrl = 'https://staging.streamr.com/api/v1/';
40
+ }
41
+ if (httpUrl) {
42
+ options.restUrl = httpUrl;
43
+ }
44
+ if (privateKey) {
45
+ options.auth = {
46
+ privateKey
47
+ };
48
+ }
49
+ return options;
50
+ }
51
+ exports.formStreamrOptionsWithEnv = formStreamrOptionsWithEnv;
52
+ function createFnParseInt(name) {
53
+ return (str) => {
54
+ const n = parseInt(str, 10);
55
+ if (isNaN(n)) {
56
+ console.error(`${name} must be an integer (was "${str}")`);
57
+ process.exit(1);
58
+ }
59
+ return n;
60
+ };
61
+ }
62
+ exports.createFnParseInt = createFnParseInt;
63
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
64
+ const getStreamId = (streamIdOrPath, options) => {
65
+ if (streamIdOrPath === undefined) {
66
+ return undefined;
67
+ }
68
+ const PATH_PREFIX = '/';
69
+ if (!streamIdOrPath.startsWith(PATH_PREFIX)) {
70
+ return streamIdOrPath;
71
+ }
72
+ const privateKey = options.privateKey;
73
+ if (privateKey === undefined) {
74
+ console.error(`relative stream id ${streamIdOrPath} requires authentication`);
75
+ process.exit(1);
76
+ }
77
+ return new ethers_1.Wallet(privateKey).address.toLowerCase() + streamIdOrPath;
78
+ };
79
+ exports.getStreamId = getStreamId;
80
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../bin/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,33 @@
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 streamr_client_1 = require("streamr-client");
9
+ const common_1 = require("./common");
10
+ const package_json_1 = __importDefault(require("../package.json"));
11
+ const program = new commander_1.Command();
12
+ program
13
+ .description('get a session token for the current user');
14
+ (0, common_1.authOptions)(program);
15
+ (0, common_1.envOptions)(program)
16
+ .version(package_json_1.default.version)
17
+ .action(async (options) => {
18
+ const client = new streamr_client_1.StreamrClient((0, common_1.formStreamrOptionsWithEnv)(options));
19
+ try {
20
+ console.info(await client.session.getSessionToken());
21
+ }
22
+ catch (err) {
23
+ console.error(err);
24
+ process.exit(1);
25
+ }
26
+ })
27
+ .parseAsync(process.argv)
28
+ .catch((e) => {
29
+ console.error(e);
30
+ process.exit(1);
31
+ });
32
+ (0, common_1.exitWithHelpIfArgsNotBetween)(program, 0, 0);
33
+ //# sourceMappingURL=streamr-misc-get-session-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamr-misc-get-session-token.js","sourceRoot":"","sources":["../../bin/streamr-misc-get-session-token.ts"],"names":[],"mappings":";;;;;;AACA,yCAAmC;AACnC,mDAA8C;AAC9C,qCAKiB;AACjB,mEAAiC;AAEjC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAA;AAC7B,OAAO;KACF,WAAW,CAAC,0CAA0C,CAAC,CAAA;AAC5D,IAAA,oBAAW,EAAC,OAAO,CAAC,CAAA;AACpB,IAAA,mBAAU,EAAC,OAAO,CAAC;KACd,OAAO,CAAC,sBAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,EAAE;IAC3B,MAAM,MAAM,GAAG,IAAI,8BAAa,CAAC,IAAA,kCAAyB,EAAC,OAAO,CAAC,CAAC,CAAA;IACpE,IAAI;QACA,OAAO,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;KACvD;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAClB;AACL,CAAC,CAAC;KACD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;KACxB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;IACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC,CAAC,CAAA;AAEN,IAAA,qCAA4B,EAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,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('miscellaneous subcommands')
13
+ .command('get-session-token', 'get a session token for the current user')
14
+ .parse(process.argv);
15
+ //# sourceMappingURL=streamr-misc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamr-misc.js","sourceRoot":"","sources":["../../bin/streamr-misc.ts"],"names":[],"mappings":";;;;;;AACA,yCAAmC;AACnC,mEAAiC;AAEjC,mBAAO;KACF,OAAO,CAAC,sBAAG,CAAC,OAAO,CAAC;KACpB,KAAK,CAAC,oBAAoB,CAAC;KAC3B,WAAW,CAAC,2BAA2B,CAAC;KACxC,OAAO,CAAC,mBAAmB,EAAE,0CAA0C,CAAC;KACxE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -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
+ const commander_1 = require("commander");
8
+ const generate_1 = require("../src/generate");
9
+ const common_1 = require("./common");
10
+ const package_json_1 = __importDefault(require("../package.json"));
11
+ const program = new commander_1.Command();
12
+ program
13
+ .description('generate and print semi-random JSON data to stdout')
14
+ .option('-r, --rate <n>', 'rate in milliseconds', (0, common_1.createFnParseInt)('--rate'), 500)
15
+ .version(package_json_1.default.version)
16
+ .action((options) => {
17
+ (0, generate_1.generate)(options.rate);
18
+ })
19
+ .parse(process.argv);
20
+ (0, common_1.exitWithHelpIfArgsNotBetween)(program, 0, 0);
21
+ //# sourceMappingURL=streamr-mock-data-generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamr-mock-data-generate.js","sourceRoot":"","sources":["../../bin/streamr-mock-data-generate.ts"],"names":[],"mappings":";;;;;;AACA,yCAAmC;AACnC,8CAA0C;AAC1C,qCAAyE;AACzE,mEAAiC;AAEjC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAA;AAC7B,OAAO;KACF,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,IAAA,yBAAgB,EAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;KACjF,OAAO,CAAC,sBAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,CAAC,OAAY,EAAE,EAAE;IACrB,IAAA,mBAAQ,EAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC,CAAC;KACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAExB,IAAA,qCAA4B,EAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,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('mock-data subcommands')
13
+ .command('generate', 'generate JSON data')
14
+ .parse(process.argv);
15
+ //# sourceMappingURL=streamr-mock-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamr-mock-data.js","sourceRoot":"","sources":["../../bin/streamr-mock-data.ts"],"names":[],"mappings":";;;;;;AACA,yCAAmC;AACnC,mEAAiC;AAEjC,mBAAO;KACF,OAAO,CAAC,sBAAG,CAAC,OAAO,CAAC;KACpB,KAAK,CAAC,oBAAoB,CAAC;KAC3B,WAAW,CAAC,uBAAuB,CAAC;KACpC,OAAO,CAAC,UAAU,EAAE,oBAAoB,CAAC;KACzC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,30 @@
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 streamr_client_1 = require("streamr-client");
9
+ const common_1 = require("./common");
10
+ const package_json_1 = __importDefault(require("../package.json"));
11
+ const program = new commander_1.Command();
12
+ program
13
+ .arguments('<storageNodeAddress> <streamId>')
14
+ .description('add stream to a storage node');
15
+ (0, common_1.authOptions)(program);
16
+ (0, common_1.envOptions)(program)
17
+ .version(package_json_1.default.version)
18
+ .action((storageNodeAddress, streamIdOrPath, options) => {
19
+ const client = new streamr_client_1.StreamrClient((0, common_1.formStreamrOptionsWithEnv)(options));
20
+ const streamId = (0, common_1.getStreamId)(streamIdOrPath, options);
21
+ client.getStream(streamId)
22
+ .then((stream) => stream.addToStorageNode(storageNodeAddress))
23
+ .catch((err) => {
24
+ console.error(err);
25
+ process.exit(1);
26
+ });
27
+ })
28
+ .parse(process.argv);
29
+ (0, common_1.exitWithHelpIfArgsNotBetween)(program, 2, 2);
30
+ //# sourceMappingURL=streamr-storage-node-add-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamr-storage-node-add-stream.js","sourceRoot":"","sources":["../../bin/streamr-storage-node-add-stream.ts"],"names":[],"mappings":";;;;;;AACA,yCAAmC;AACnC,mDAAsD;AACtD,qCAMiB;AACjB,mEAAiC;AAEjC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAA;AAC7B,OAAO;KACF,SAAS,CAAC,iCAAiC,CAAC;KAC5C,WAAW,CAAC,8BAA8B,CAAC,CAAA;AAChD,IAAA,oBAAW,EAAC,OAAO,CAAC,CAAA;AACpB,IAAA,mBAAU,EAAC,OAAO,CAAC;KACd,OAAO,CAAC,sBAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,CAAC,kBAA0B,EAAE,cAAsB,EAAE,OAAY,EAAE,EAAE;IACzE,MAAM,MAAM,GAAG,IAAI,8BAAa,CAAC,IAAA,kCAAyB,EAAC,OAAO,CAAC,CAAC,CAAA;IACpE,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,cAAc,EAAE,OAAO,CAAE,CAAA;IACtD,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;SACrB,IAAI,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;SACrE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;AACV,CAAC,CAAC;KACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AAExB,IAAA,qCAA4B,EAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};