@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.
- package/.eslintignore +3 -0
- package/.eslintrc +6 -0
- package/CHANGELOG.md +37 -3
- package/README.md +52 -27
- package/bin/common.ts +94 -0
- package/bin/streamr-misc-get-session-token.ts +33 -0
- package/bin/streamr-misc.ts +10 -0
- package/bin/streamr-mock-data-generate.ts +17 -0
- package/bin/streamr-mock-data.ts +10 -0
- package/bin/streamr-storage-node-add-stream.ts +32 -0
- package/bin/streamr-storage-node-list-stream-parts.ts +38 -0
- package/bin/streamr-storage-node-list.ts +52 -0
- package/bin/streamr-storage-node-remove-stream.ts +32 -0
- package/bin/streamr-storage-node.ts +13 -0
- package/bin/streamr-stream-create.ts +35 -0
- package/bin/streamr-stream-grant-permission.ts +69 -0
- package/bin/streamr-stream-list.ts +33 -0
- package/bin/streamr-stream-publish.ts +30 -0
- package/bin/streamr-stream-resend.ts +99 -0
- package/bin/streamr-stream-revoke-permission.ts +28 -0
- package/bin/streamr-stream-show.ts +21 -0
- package/bin/streamr-stream-subscribe.ts +23 -0
- package/bin/{streamr.js → streamr-stream.ts} +6 -4
- package/bin/streamr.ts +13 -0
- package/dist/bin/common.d.ts +16 -0
- package/dist/bin/common.js +80 -0
- package/dist/bin/common.js.map +1 -0
- package/dist/bin/streamr-misc-get-session-token.d.ts +2 -0
- package/dist/bin/streamr-misc-get-session-token.js +33 -0
- package/dist/bin/streamr-misc-get-session-token.js.map +1 -0
- package/dist/bin/streamr-misc.d.ts +2 -0
- package/dist/bin/streamr-misc.js +15 -0
- package/dist/bin/streamr-misc.js.map +1 -0
- package/dist/bin/streamr-mock-data-generate.d.ts +2 -0
- package/dist/bin/streamr-mock-data-generate.js +21 -0
- package/dist/bin/streamr-mock-data-generate.js.map +1 -0
- package/dist/bin/streamr-mock-data.d.ts +2 -0
- package/dist/bin/streamr-mock-data.js +15 -0
- package/dist/bin/streamr-mock-data.js.map +1 -0
- package/dist/bin/streamr-storage-node-add-stream.d.ts +2 -0
- package/dist/bin/streamr-storage-node-add-stream.js +30 -0
- package/dist/bin/streamr-storage-node-add-stream.js.map +1 -0
- package/dist/bin/streamr-storage-node-list-stream-parts.d.ts +2 -0
- package/dist/bin/streamr-storage-node-list-stream-parts.js +37 -0
- package/dist/bin/streamr-storage-node-list-stream-parts.js.map +1 -0
- package/dist/bin/streamr-storage-node-list.d.ts +2 -0
- package/dist/bin/streamr-storage-node-list.js +48 -0
- package/dist/bin/streamr-storage-node-list.js.map +1 -0
- package/dist/bin/streamr-storage-node-remove-stream.d.ts +2 -0
- package/dist/bin/streamr-storage-node-remove-stream.js +30 -0
- package/dist/bin/streamr-storage-node-remove-stream.js.map +1 -0
- package/dist/bin/streamr-storage-node.d.ts +2 -0
- package/dist/bin/streamr-storage-node.js +18 -0
- package/dist/bin/streamr-storage-node.js.map +1 -0
- package/dist/bin/streamr-stream-create.d.ts +2 -0
- package/dist/bin/streamr-stream-create.js +32 -0
- package/dist/bin/streamr-stream-create.js.map +1 -0
- package/dist/bin/streamr-stream-grant-permission.d.ts +2 -0
- package/dist/bin/streamr-stream-grant-permission.js +68 -0
- package/dist/bin/streamr-stream-grant-permission.js.map +1 -0
- package/dist/bin/streamr-stream-list.d.ts +2 -0
- package/dist/bin/streamr-stream-list.js +37 -0
- package/dist/bin/streamr-stream-list.js.map +1 -0
- package/dist/bin/streamr-stream-publish.d.ts +2 -0
- package/dist/bin/streamr-stream-publish.js +34 -0
- package/dist/bin/streamr-stream-publish.js.map +1 -0
- package/dist/bin/streamr-stream-resend.d.ts +2 -0
- package/dist/bin/streamr-stream-resend.js +95 -0
- package/dist/bin/streamr-stream-resend.js.map +1 -0
- package/dist/bin/streamr-stream-revoke-permission.d.ts +2 -0
- package/dist/bin/streamr-stream-revoke-permission.js +26 -0
- package/dist/bin/streamr-stream-revoke-permission.js.map +1 -0
- package/dist/bin/streamr-stream-show.d.ts +2 -0
- package/dist/bin/streamr-stream-show.js +25 -0
- package/dist/bin/streamr-stream-show.js.map +1 -0
- package/dist/bin/streamr-stream-subscribe.d.ts +2 -0
- package/dist/bin/streamr-stream-subscribe.js +27 -0
- package/dist/bin/streamr-stream-subscribe.js.map +1 -0
- package/dist/bin/streamr-stream.d.ts +2 -0
- package/dist/bin/streamr-stream.js +22 -0
- package/dist/bin/streamr-stream.js.map +1 -0
- package/dist/bin/streamr.d.ts +2 -0
- package/dist/bin/streamr.js +18 -0
- package/dist/bin/streamr.js.map +1 -0
- package/dist/package.json +50 -0
- package/dist/src/create.d.ts +2 -0
- package/dist/src/create.js +20 -0
- package/dist/src/create.js.map +1 -0
- package/dist/src/generate.d.ts +1 -0
- package/dist/src/generate.js +32 -0
- package/dist/src/generate.js.map +1 -0
- package/dist/src/list.d.ts +2 -0
- package/dist/src/list.js +29 -0
- package/dist/src/list.js.map +1 -0
- package/dist/src/publish.d.ts +3 -0
- package/dist/src/publish.js +35 -0
- package/dist/src/publish.js.map +1 -0
- package/dist/src/resend.d.ts +4 -0
- package/dist/src/resend.js +29 -0
- package/dist/src/resend.js.map +1 -0
- package/dist/src/show.d.ts +2 -0
- package/dist/src/show.js +23 -0
- package/dist/src/show.js.map +1 -0
- package/dist/src/subscribe.d.ts +2 -0
- package/dist/src/subscribe.js +13 -0
- package/dist/src/subscribe.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +22 -12
- package/src/{create.js → create.ts} +7 -2
- package/src/{generate.js → generate.ts} +6 -3
- package/src/{list.js → list.ts} +6 -4
- package/src/{publish.js → publish.ts} +11 -7
- package/src/resend.ts +29 -0
- package/src/{show.js → show.ts} +8 -2
- package/src/subscribe.ts +9 -0
- package/tsconfig.json +7 -0
- package/bin/common.js +0 -79
- package/bin/streamr-create.js +0 -40
- package/bin/streamr-generate.js +0 -14
- package/bin/streamr-list.js +0 -35
- package/bin/streamr-publish.js +0 -28
- package/bin/streamr-resend.js +0 -101
- package/bin/streamr-show.js +0 -19
- package/bin/streamr-subscribe.js +0 -20
- package/src/resend.js +0 -43
- 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
|
-
|
|
2
|
+
import { program } from 'commander'
|
|
3
|
+
import pkg from '../package.json'
|
|
3
4
|
|
|
4
5
|
program
|
|
5
|
-
.version(
|
|
6
|
+
.version(pkg.version)
|
|
6
7
|
.usage('<command> [<args>]')
|
|
7
|
-
.description('
|
|
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,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,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,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,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,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"}
|