@streamr/cli-tools 5.0.1 → 6.0.0-alpha.3
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 +0 -1
- package/CHANGELOG.md +18 -1
- package/README.md +42 -17
- package/bin/streamr-mock-data-generate.ts +38 -8
- package/bin/streamr-mock-data.ts +1 -1
- package/bin/streamr-storage-node-add-stream.ts +8 -26
- package/bin/streamr-storage-node-list-stream-parts.ts +18 -34
- package/bin/streamr-storage-node-list.ts +14 -34
- package/bin/streamr-storage-node-remove-stream.ts +8 -26
- package/bin/streamr-storage-node.ts +1 -1
- package/bin/streamr-stream-create.ts +17 -29
- package/bin/streamr-stream-grant-permission.ts +9 -66
- package/bin/streamr-stream-publish.ts +54 -21
- package/bin/streamr-stream-resend-from.ts +26 -0
- package/bin/streamr-stream-resend-last.ts +25 -0
- package/bin/streamr-stream-resend-range.ts +32 -0
- package/bin/streamr-stream-resend.ts +7 -92
- package/bin/streamr-stream-revoke-permission.ts +8 -24
- package/bin/streamr-stream-search.ts +17 -0
- package/bin/streamr-stream-show.ts +16 -16
- package/bin/streamr-stream-subscribe.ts +16 -16
- package/bin/streamr-stream.ts +2 -2
- package/bin/streamr.ts +1 -2
- package/dist/bin/streamr-mock-data-generate.d.ts +1 -1
- package/dist/bin/streamr-mock-data-generate.js +35 -9
- package/dist/bin/streamr-mock-data-generate.js.map +1 -1
- package/dist/bin/streamr-mock-data.js +1 -1
- package/dist/bin/streamr-mock-data.js.map +1 -1
- package/dist/bin/streamr-storage-node-add-stream.d.ts +1 -1
- package/dist/bin/streamr-storage-node-add-stream.js +8 -24
- package/dist/bin/streamr-storage-node-add-stream.js.map +1 -1
- package/dist/bin/streamr-storage-node-list-stream-parts.d.ts +1 -1
- package/dist/bin/streamr-storage-node-list-stream-parts.js +17 -28
- package/dist/bin/streamr-storage-node-list-stream-parts.js.map +1 -1
- package/dist/bin/streamr-storage-node-list.d.ts +1 -1
- package/dist/bin/streamr-storage-node-list.js +15 -30
- package/dist/bin/streamr-storage-node-list.js.map +1 -1
- package/dist/bin/streamr-storage-node-remove-stream.d.ts +1 -1
- package/dist/bin/streamr-storage-node-remove-stream.js +8 -24
- package/dist/bin/streamr-storage-node-remove-stream.js.map +1 -1
- package/dist/bin/streamr-storage-node.js +1 -1
- package/dist/bin/streamr-storage-node.js.map +1 -1
- package/dist/bin/streamr-stream-create.d.ts +1 -1
- package/dist/bin/streamr-stream-create.js +14 -23
- package/dist/bin/streamr-stream-create.js.map +1 -1
- package/dist/bin/streamr-stream-grant-permission.d.ts +1 -1
- package/dist/bin/streamr-stream-grant-permission.js +3 -63
- package/dist/bin/streamr-stream-grant-permission.js.map +1 -1
- package/dist/bin/streamr-stream-publish.d.ts +1 -1
- package/dist/bin/streamr-stream-publish.js +49 -23
- package/dist/bin/streamr-stream-publish.js.map +1 -1
- package/dist/bin/streamr-stream-resend-from.d.ts +2 -0
- package/dist/bin/streamr-stream-resend-from.js +27 -0
- package/dist/bin/streamr-stream-resend-from.js.map +1 -0
- package/dist/bin/streamr-stream-resend-last.d.ts +2 -0
- package/dist/bin/streamr-stream-resend-last.js +26 -0
- package/dist/bin/streamr-stream-resend-last.js.map +1 -0
- package/dist/bin/streamr-stream-resend-range.d.ts +2 -0
- package/dist/bin/streamr-stream-resend-range.js +33 -0
- package/dist/bin/streamr-stream-resend-range.js.map +1 -0
- package/dist/bin/streamr-stream-resend.d.ts +1 -1
- package/dist/bin/streamr-stream-resend.js +8 -87
- package/dist/bin/streamr-stream-resend.js.map +1 -1
- package/dist/bin/streamr-stream-revoke-permission.d.ts +1 -1
- package/dist/bin/streamr-stream-revoke-permission.js +3 -21
- package/dist/bin/streamr-stream-revoke-permission.js.map +1 -1
- package/dist/bin/streamr-stream-search.d.ts +2 -0
- package/dist/bin/streamr-stream-search.js +21 -0
- package/dist/bin/streamr-stream-search.js.map +1 -0
- package/dist/bin/streamr-stream-show.d.ts +1 -1
- package/dist/bin/streamr-stream-show.js +15 -15
- package/dist/bin/streamr-stream-show.js.map +1 -1
- package/dist/bin/streamr-stream-subscribe.d.ts +1 -1
- package/dist/bin/streamr-stream-subscribe.js +17 -20
- package/dist/bin/streamr-stream-subscribe.js.map +1 -1
- package/dist/bin/streamr-stream.js +2 -2
- package/dist/bin/streamr-stream.js.map +1 -1
- package/dist/bin/streamr.js +1 -2
- package/dist/bin/streamr.js.map +1 -1
- package/dist/package.json +18 -13
- package/dist/src/client.d.ts +3 -0
- package/dist/src/client.js +33 -0
- package/dist/src/client.js.map +1 -0
- package/dist/src/command.d.ts +8 -0
- package/dist/src/command.js +45 -0
- package/dist/src/command.js.map +1 -0
- package/dist/src/common.d.ts +6 -0
- package/dist/src/common.js +15 -0
- package/dist/src/common.js.map +1 -0
- package/dist/src/config.d.ts +6 -0
- package/dist/src/config.js +58 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/logLevel.d.ts +0 -0
- package/dist/src/logLevel.js +11 -0
- package/dist/src/logLevel.js.map +1 -0
- package/dist/src/permission.d.ts +4 -0
- package/dist/src/permission.js +48 -0
- package/dist/src/permission.js.map +1 -0
- package/dist/src/resend.d.ts +3 -4
- package/dist/src/resend.js +12 -23
- package/dist/src/resend.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -8525
- package/package.json +18 -13
- package/src/client.ts +32 -0
- package/src/command.ts +45 -0
- package/src/common.ts +16 -0
- package/src/config.ts +56 -0
- package/src/logLevel.ts +9 -0
- package/src/permission.ts +49 -0
- package/src/resend.ts +19 -28
- package/tsconfig.json +13 -5
- package/bin/common.ts +0 -93
- package/bin/streamr-misc-get-session-token.ts +0 -33
- package/bin/streamr-misc.ts +0 -10
- package/bin/streamr-stream-list.ts +0 -33
- package/dist/bin/common.d.ts +0 -17
- package/dist/bin/common.js +0 -77
- package/dist/bin/common.js.map +0 -1
- package/dist/bin/streamr-misc-get-session-token.d.ts +0 -2
- package/dist/bin/streamr-misc-get-session-token.js +0 -33
- package/dist/bin/streamr-misc-get-session-token.js.map +0 -1
- package/dist/bin/streamr-misc.d.ts +0 -2
- package/dist/bin/streamr-misc.js +0 -15
- package/dist/bin/streamr-misc.js.map +0 -1
- package/dist/bin/streamr-stream-list.d.ts +0 -2
- package/dist/bin/streamr-stream-list.js +0 -37
- package/dist/bin/streamr-stream-list.js.map +0 -1
- package/dist/commands/common.js +0 -76
- package/dist/commands/streamor.js +0 -16
- package/dist/commands/streamr-mock-data-generate.js +0 -20
- package/dist/commands/streamr-mock-data.js +0 -14
- package/dist/commands/streamr-storage-node-add-stream.js +0 -24
- package/dist/commands/streamr-storage-node-list-stream-parts.js +0 -32
- package/dist/commands/streamr-storage-node-list.js +0 -44
- package/dist/commands/streamr-storage-node-remove-stream.js +0 -24
- package/dist/commands/streamr-storage-node.js +0 -17
- package/dist/commands/streamr-stream-create.js +0 -31
- package/dist/commands/streamr-stream-grant-permission.js +0 -62
- package/dist/commands/streamr-stream-list.js +0 -33
- package/dist/commands/streamr-stream-publish.js +0 -32
- package/dist/commands/streamr-stream-resend.js +0 -101
- package/dist/commands/streamr-stream-revoke-permission.js +0 -24
- package/dist/commands/streamr-stream-show.js +0 -23
- package/dist/commands/streamr-stream-subscribe.js +0 -25
- package/dist/commands/streamr-stream.js +0 -21
- package/dist/src/create.d.ts +0 -2
- package/dist/src/create.js +0 -19
- package/dist/src/create.js.map +0 -1
- package/dist/src/generate.d.ts +0 -1
- package/dist/src/generate.js +0 -32
- package/dist/src/generate.js.map +0 -1
- package/dist/src/list.d.ts +0 -2
- package/dist/src/list.js +0 -29
- package/dist/src/list.js.map +0 -1
- package/dist/src/publish.d.ts +0 -3
- package/dist/src/publish.js +0 -36
- package/dist/src/publish.js.map +0 -1
- package/dist/src/show.d.ts +0 -2
- package/dist/src/show.js +0 -23
- package/dist/src/show.js.map +0 -1
- package/dist/src/subscribe.d.ts +0 -2
- package/dist/src/subscribe.js +0 -13
- package/dist/src/subscribe.js.map +0 -1
- package/src/create.ts +0 -16
- package/src/generate.ts +0 -33
- package/src/list.ts +0 -22
- package/src/publish.ts +0 -42
- package/src/show.ts +0 -23
- package/src/subscribe.ts +0 -9
package/package.json
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@streamr/cli-tools",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0-alpha.3",
|
|
4
4
|
"description": "Command line tools for Streamr.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"streamr": "dist/bin/streamr.js"
|
|
7
7
|
},
|
|
8
8
|
"scripts": {
|
|
9
|
-
"eslint": "eslint
|
|
10
|
-
"prepare": "eslint
|
|
11
|
-
"build": "tsc",
|
|
9
|
+
"eslint": "eslint --cache --cache-location=node_modules/.cache/.eslintcache/ '*/**/*.{js,ts}'",
|
|
10
|
+
"prepare": "npm run eslint && npm run build",
|
|
11
|
+
"build": "tsc -b tsconfig.json",
|
|
12
12
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
13
13
|
},
|
|
14
14
|
"repository": {
|
|
15
15
|
"type": "git",
|
|
16
|
-
"url": "git
|
|
16
|
+
"url": "git+https://github.com/streamr-dev/network-monorepo.git",
|
|
17
|
+
"directory": "packages/cli-tools"
|
|
17
18
|
},
|
|
18
19
|
"keywords": [
|
|
19
20
|
"streamr",
|
|
@@ -28,21 +29,25 @@
|
|
|
28
29
|
},
|
|
29
30
|
"homepage": "https://github.com/streamr-dev/cli-tools#readme",
|
|
30
31
|
"dependencies": {
|
|
31
|
-
"commander": "^
|
|
32
|
+
"commander": "^8.3.0",
|
|
32
33
|
"easy-table": "^1.1.1",
|
|
33
34
|
"event-stream": "^4.0.1",
|
|
34
|
-
"
|
|
35
|
+
"lodash": "^4.17.21",
|
|
36
|
+
"streamr-client": "^6.0.0-alpha.24",
|
|
37
|
+
"streamr-client-protocol": "^11.0.0",
|
|
38
|
+
"streamr-test-utils": "^2.0.0"
|
|
35
39
|
},
|
|
36
40
|
"devDependencies": {
|
|
37
41
|
"@streamr/dev-config": "^1.0.0",
|
|
38
42
|
"@types/easy-table": "0.0.32",
|
|
39
43
|
"@types/event-stream": "^3.3.34",
|
|
40
|
-
"@types/jest": "^
|
|
41
|
-
"@
|
|
42
|
-
"@typescript-eslint/
|
|
43
|
-
"eslint": "^
|
|
44
|
-
"eslint
|
|
44
|
+
"@types/jest": "^27.0.2",
|
|
45
|
+
"@types/lodash": "^4.14.175",
|
|
46
|
+
"@typescript-eslint/eslint-plugin": "^5.0.0",
|
|
47
|
+
"@typescript-eslint/parser": "^5.0.0",
|
|
48
|
+
"eslint": "^7.32.0",
|
|
49
|
+
"eslint-config-streamr-ts": "^4.0.1",
|
|
45
50
|
"eslint-plugin-promise": "^5.1.0",
|
|
46
|
-
"typescript": "^4.2
|
|
51
|
+
"typescript": "^4.5.2"
|
|
47
52
|
}
|
|
48
53
|
}
|
package/src/client.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import _ from 'lodash'
|
|
2
|
+
import { BrubeckClientConfig, StreamrClient, ConfigTest } from 'streamr-client'
|
|
3
|
+
import { GlobalCommandLineArgs } from './common'
|
|
4
|
+
import { getConfig } from './config'
|
|
5
|
+
|
|
6
|
+
const getClientConfig = (commandLineArgs: GlobalCommandLineArgs, overridenOptions: BrubeckClientConfig) => {
|
|
7
|
+
const environmentOptions = (commandLineArgs.dev !== undefined) ? _.omit(ConfigTest, 'auth') : undefined
|
|
8
|
+
const configFileJson = getConfig(commandLineArgs.config)?.client
|
|
9
|
+
const authenticationOptions = (commandLineArgs.privateKey !== undefined) ? { auth: { privateKey: commandLineArgs.privateKey } } : undefined
|
|
10
|
+
return _.merge(
|
|
11
|
+
environmentOptions,
|
|
12
|
+
configFileJson,
|
|
13
|
+
authenticationOptions,
|
|
14
|
+
overridenOptions
|
|
15
|
+
)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const addInterruptHandler = (client: StreamrClient) => {
|
|
19
|
+
process.on('SIGINT', async () => {
|
|
20
|
+
try {
|
|
21
|
+
await client.destroy()
|
|
22
|
+
} catch {}
|
|
23
|
+
process.exit()
|
|
24
|
+
})
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const createClient = (commandLineArgs: GlobalCommandLineArgs, overridenOptions: BrubeckClientConfig = {}): StreamrClient => {
|
|
28
|
+
const config = getClientConfig(commandLineArgs, overridenOptions)
|
|
29
|
+
const client = new StreamrClient(config)
|
|
30
|
+
addInterruptHandler(client)
|
|
31
|
+
return client
|
|
32
|
+
}
|
package/src/command.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import commander, { Command } from 'commander'
|
|
2
|
+
import { BrubeckClientConfig } from 'streamr-client'
|
|
3
|
+
import pkg from '../package.json'
|
|
4
|
+
import { createClient } from './client'
|
|
5
|
+
|
|
6
|
+
export const createCommand = (): commander.Command => {
|
|
7
|
+
return new Command()
|
|
8
|
+
.version(pkg.version)
|
|
9
|
+
.showHelpAfterError()
|
|
10
|
+
.allowExcessArguments(false)
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface CommandOpts {
|
|
14
|
+
autoDestroyClient?: boolean
|
|
15
|
+
clientOptionsFactory?: (options: any) => BrubeckClientConfig
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const createClientCommand = (
|
|
19
|
+
action: (...handleArgs: any[]) => Promise<void>,
|
|
20
|
+
opts: CommandOpts = {
|
|
21
|
+
autoDestroyClient: true,
|
|
22
|
+
clientOptionsFactory: () => ({})
|
|
23
|
+
}
|
|
24
|
+
): commander.Command => {
|
|
25
|
+
return createCommand()
|
|
26
|
+
.option('--private-key <key>', 'use an Ethereum private key to authenticate')
|
|
27
|
+
.option('--config <file>', 'read connection and authentication settings from a config file')
|
|
28
|
+
.option('--dev', 'use pre-defined development environment')
|
|
29
|
+
.action(async (...args: any[]) => {
|
|
30
|
+
const commandLineOptions = args[args.length - 1].opts()
|
|
31
|
+
try {
|
|
32
|
+
const client = createClient(commandLineOptions, opts.clientOptionsFactory!(commandLineOptions))
|
|
33
|
+
try {
|
|
34
|
+
await action(...[client].concat(args))
|
|
35
|
+
} finally {
|
|
36
|
+
if (opts.autoDestroyClient) {
|
|
37
|
+
await client.destroy()
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
} catch (e: any) {
|
|
41
|
+
console.error(e)
|
|
42
|
+
process.exit(1)
|
|
43
|
+
}
|
|
44
|
+
})
|
|
45
|
+
}
|
package/src/common.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface GlobalCommandLineArgs {
|
|
2
|
+
dev?: boolean
|
|
3
|
+
config?: string
|
|
4
|
+
privateKey?: string
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export function createFnParseInt(name: string): (s: string) => number {
|
|
8
|
+
return (str: string) => {
|
|
9
|
+
const n = parseInt(str, 10)
|
|
10
|
+
if (isNaN(n)) {
|
|
11
|
+
console.error(`${name} must be an integer (was "${str}")`)
|
|
12
|
+
process.exit(1)
|
|
13
|
+
}
|
|
14
|
+
return n
|
|
15
|
+
}
|
|
16
|
+
}
|
package/src/config.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import path from 'path'
|
|
2
|
+
import os from 'os'
|
|
3
|
+
import { readFileSync } from 'fs'
|
|
4
|
+
import { BrubeckClientConfig } from 'streamr-client'
|
|
5
|
+
|
|
6
|
+
interface Config {
|
|
7
|
+
client: BrubeckClientConfig
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/*
|
|
11
|
+
* Validate that the config contains at least one root level element: the "client" block.
|
|
12
|
+
* The values of the "client" blocks are validated by StreamrClient when the configuration
|
|
13
|
+
* is used.
|
|
14
|
+
*
|
|
15
|
+
* We don't check other root level elements. It is ok to use a Broker config file as
|
|
16
|
+
* a cli-tools config file. In that case the file contains e.g. "plugins" block,
|
|
17
|
+
* but cli-tools can just ignore that block.
|
|
18
|
+
*/
|
|
19
|
+
const validateConfig = (config: any, fileName: string): void | never => {
|
|
20
|
+
const CLIENT_CONFIG_BLOCK = 'client'
|
|
21
|
+
if (config[CLIENT_CONFIG_BLOCK] === undefined) {
|
|
22
|
+
throw new Error(`Missing root element "${CLIENT_CONFIG_BLOCK}" in ${fileName}`)
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const tryReadConfigFile = (fileName: string): Config|undefined|never => {
|
|
27
|
+
let content
|
|
28
|
+
try {
|
|
29
|
+
content = readFileSync(fileName, 'utf8')
|
|
30
|
+
} catch (e: any) {
|
|
31
|
+
return undefined
|
|
32
|
+
}
|
|
33
|
+
const json = JSON.parse(content)
|
|
34
|
+
validateConfig(json, fileName)
|
|
35
|
+
return json
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export const getConfig = (id?: string): Config|undefined => {
|
|
39
|
+
const CONFIG_DIRECTORY = path.join(os.homedir(), '.streamr', 'config')
|
|
40
|
+
if (id !== undefined) {
|
|
41
|
+
const fileNames = [
|
|
42
|
+
id,
|
|
43
|
+
path.join(CONFIG_DIRECTORY, `${id}.json`),
|
|
44
|
+
]
|
|
45
|
+
for (const fileName of fileNames) {
|
|
46
|
+
const content = tryReadConfigFile(fileName)
|
|
47
|
+
if (content !== undefined) {
|
|
48
|
+
return content
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
throw new Error('Config file not found')
|
|
52
|
+
} else {
|
|
53
|
+
const fileName = path.join(CONFIG_DIRECTORY, `default.json`)
|
|
54
|
+
return tryReadConfigFile(fileName)
|
|
55
|
+
}
|
|
56
|
+
}
|
package/src/logLevel.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Minimal logging for NetworkNode and other users of Logger.ts in the network package.
|
|
3
|
+
* This file needs to be imported before any of the network package classes
|
|
4
|
+
* so that the environment variable is updated before any Logger instances are created.
|
|
5
|
+
* The import is needed for the files where network packages are used (typically
|
|
6
|
+
* the files which call createClientCommand()).
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
process.env.LOG_LEVEL = process.env.LOG_LEVEL ?? 'error'
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Argument } from 'commander'
|
|
2
|
+
import { Stream, StreamPermission, StreamrClient } from 'streamr-client'
|
|
3
|
+
import { createClientCommand } from './command'
|
|
4
|
+
|
|
5
|
+
const PUBLIC_USER_ID = 'public'
|
|
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
|
+
export const PERMISSIONS = new Map<string,StreamPermission>([
|
|
16
|
+
['subscribe', StreamPermission.SUBSCRIBE],
|
|
17
|
+
['publish', StreamPermission.PUBLISH],
|
|
18
|
+
['edit', StreamPermission.EDIT],
|
|
19
|
+
['delete', StreamPermission.DELETE],
|
|
20
|
+
['grant', StreamPermission.GRANT]
|
|
21
|
+
])
|
|
22
|
+
|
|
23
|
+
export const getPermissionId = (permission: StreamPermission): string => {
|
|
24
|
+
return Array.from(PERMISSIONS.entries()).find(([_id, p]) => p === permission)![0]
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const runModifyPermissionsCommand = (
|
|
28
|
+
modifyUserPermission: (stream: Stream, permission: StreamPermission, target: string) => Promise<void>,
|
|
29
|
+
modifyPublicPermission: (stream: Stream, permission: StreamPermission) => Promise<void>,
|
|
30
|
+
modification: string,
|
|
31
|
+
): void => {
|
|
32
|
+
createClientCommand(async (client: StreamrClient, streamId: string, user: string, permissionIds: string[]) => {
|
|
33
|
+
const target = getTarget(user)
|
|
34
|
+
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)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
})
|
|
44
|
+
.addArgument(new Argument('<streamId>'))
|
|
45
|
+
.addArgument(new Argument('<user>'))
|
|
46
|
+
.addArgument(new Argument('<permissions...>').choices(Array.from(PERMISSIONS.keys())))
|
|
47
|
+
.description(`${modification} permission: use keyword "public" as a user to ${modification} a public permission`)
|
|
48
|
+
.parseAsync(process.argv)
|
|
49
|
+
}
|
package/src/resend.ts
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
|
-
import { StreamrClient,
|
|
1
|
+
import { StreamrClient, ResendOptions } from 'streamr-client'
|
|
2
|
+
|
|
3
|
+
export const assertBothOrNoneDefined = (
|
|
4
|
+
option1: string,
|
|
5
|
+
option2: string,
|
|
6
|
+
errorMessage: string,
|
|
7
|
+
commandOptions: Record<string, unknown>
|
|
8
|
+
): void | never => {
|
|
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
|
+
}
|
|
2
14
|
|
|
3
15
|
export const resend = async (
|
|
4
16
|
streamId: string,
|
|
5
17
|
resendOpts: ResendOptions,
|
|
6
|
-
|
|
18
|
+
client: StreamrClient,
|
|
19
|
+
subscribe: boolean
|
|
7
20
|
): Promise<void> => {
|
|
8
|
-
const options = { ...streamrOptions }
|
|
9
|
-
const client = new StreamrClient(options)
|
|
10
|
-
|
|
11
|
-
let sub
|
|
12
21
|
try {
|
|
13
22
|
const subscribeOpts = {
|
|
14
23
|
stream: streamId,
|
|
@@ -17,31 +26,13 @@ export const resend = async (
|
|
|
17
26
|
const handler = (message: any) => {
|
|
18
27
|
console.info(JSON.stringify(message))
|
|
19
28
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
sub = await client.subscribe(subscribeOpts, handler)
|
|
29
|
+
if (subscribe) {
|
|
30
|
+
await client.subscribe(subscribeOpts, handler)
|
|
23
31
|
} else {
|
|
24
|
-
|
|
32
|
+
await client.resend(subscribeOpts, handler)
|
|
25
33
|
}
|
|
26
34
|
} catch (err) {
|
|
27
35
|
console.error(err.message ? err.message : err)
|
|
28
36
|
process.exit(1)
|
|
29
37
|
}
|
|
30
|
-
|
|
31
|
-
sub.on('error', (err: any) => {
|
|
32
|
-
console.error(err)
|
|
33
|
-
process.exit(1)
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
sub.on('resent', () => {
|
|
37
|
-
if (!options.subscribe) {
|
|
38
|
-
process.exit(0)
|
|
39
|
-
}
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
sub.on('no_resend', () => {
|
|
43
|
-
if (!options.subscribe) {
|
|
44
|
-
process.exit(0)
|
|
45
|
-
}
|
|
46
|
-
})
|
|
47
|
-
}
|
|
38
|
+
}
|
package/tsconfig.json
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
"extends": "@streamr/dev-config/ts/tsconfig.node.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"composite": true,
|
|
5
|
+
"outDir": "dist"
|
|
6
|
+
},
|
|
7
|
+
"include": [
|
|
8
|
+
"package.json",
|
|
9
|
+
"src/**/*",
|
|
10
|
+
"bin/**/*"
|
|
11
|
+
],
|
|
12
|
+
"references": [
|
|
13
|
+
{ "path": "../client/tsconfig.node.json" }
|
|
14
|
+
]
|
|
7
15
|
}
|
package/bin/common.ts
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import * as commander from 'commander'
|
|
2
|
-
import { StreamrClientOptions } from 'streamr-client'
|
|
3
|
-
|
|
4
|
-
export interface EnvironmentOptions {
|
|
5
|
-
dev?: boolean
|
|
6
|
-
stg?: boolean
|
|
7
|
-
wsUrl?: string
|
|
8
|
-
httpUrl?: string
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export interface AuthenticationOptions {
|
|
12
|
-
privateKey?: string
|
|
13
|
-
apiKey?: string
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export function envOptions(program: commander.Command): commander.Command {
|
|
17
|
-
return program
|
|
18
|
-
.option('--dev', 'use pre-defined development environment')
|
|
19
|
-
.option('--stg', 'use pre-defined staging environment')
|
|
20
|
-
.option('--ws-url <url>', 'alternative websocket url to use')
|
|
21
|
-
.option('--http-url <url>', 'alternative http url to use')
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export function authOptions(program: commander.Command): commander.Command {
|
|
25
|
-
return program
|
|
26
|
-
.option('--private-key <key>', 'use an Ethereum private key to authenticate')
|
|
27
|
-
.option('--api-key <key>', 'use an API key to authenticate (deprecated)')
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export function exitWithHelpIfArgsNotBetween(program: commander.Command, min: number, max: number): void {
|
|
31
|
-
if (program.args.length < min || program.args.length > max) {
|
|
32
|
-
program.help()
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export function formStreamrOptionsWithEnv(
|
|
37
|
-
{ dev, stg, wsUrl, httpUrl, privateKey, apiKey }: EnvironmentOptions & AuthenticationOptions
|
|
38
|
-
): StreamrClientOptions {
|
|
39
|
-
const options: StreamrClientOptions = {}
|
|
40
|
-
|
|
41
|
-
if (dev && stg) {
|
|
42
|
-
console.error('flags --dev and --stg cannot be enabled at the same time')
|
|
43
|
-
process.exit(1)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (dev) {
|
|
47
|
-
options.url = 'ws://localhost/api/v1/ws'
|
|
48
|
-
options.restUrl = 'http://localhost/api/v1'
|
|
49
|
-
options.storageNode = {
|
|
50
|
-
// "broker-node-storage-1" on Docker environment
|
|
51
|
-
address: '0xde1112f631486CfC759A50196853011528bC5FA0',
|
|
52
|
-
url: 'http://10.200.10.1:8891'
|
|
53
|
-
}
|
|
54
|
-
} else if (stg) {
|
|
55
|
-
options.url = 'wss://staging.streamr.com/api/v1/ws'
|
|
56
|
-
options.restUrl = 'https://staging.streamr.com/api/v1/'
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
if (wsUrl) {
|
|
60
|
-
options.url = wsUrl
|
|
61
|
-
}
|
|
62
|
-
if (httpUrl) {
|
|
63
|
-
options.restUrl = httpUrl
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
if (privateKey && apiKey) {
|
|
67
|
-
console.error('flags --privateKey and --apiKey cannot be used at the same time')
|
|
68
|
-
process.exit(1)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (privateKey) {
|
|
72
|
-
options.auth = {
|
|
73
|
-
privateKey
|
|
74
|
-
}
|
|
75
|
-
} else if (apiKey) {
|
|
76
|
-
options.auth = {
|
|
77
|
-
apiKey
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return options
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export function createFnParseInt(name: string): (s: string) => number {
|
|
85
|
-
return (str: string) => {
|
|
86
|
-
const n = parseInt(str, 10)
|
|
87
|
-
if (isNaN(n)) {
|
|
88
|
-
console.error(`${name} must be an integer (was "${str}")`)
|
|
89
|
-
process.exit(1)
|
|
90
|
-
}
|
|
91
|
-
return n
|
|
92
|
-
}
|
|
93
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { Command } from 'commander'
|
|
3
|
-
import { StreamrClient } from 'streamr-client'
|
|
4
|
-
import {
|
|
5
|
-
envOptions,
|
|
6
|
-
authOptions,
|
|
7
|
-
exitWithHelpIfArgsNotBetween,
|
|
8
|
-
formStreamrOptionsWithEnv,
|
|
9
|
-
} from './common'
|
|
10
|
-
import pkg from '../package.json'
|
|
11
|
-
|
|
12
|
-
const program = new Command()
|
|
13
|
-
program
|
|
14
|
-
.description('get a session token for the current user')
|
|
15
|
-
authOptions(program)
|
|
16
|
-
envOptions(program)
|
|
17
|
-
.version(pkg.version)
|
|
18
|
-
.action(async (options: any) => {
|
|
19
|
-
const client = new StreamrClient(formStreamrOptionsWithEnv(options))
|
|
20
|
-
try {
|
|
21
|
-
console.info(await client.session.getSessionToken())
|
|
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
|
-
|
|
33
|
-
exitWithHelpIfArgsNotBetween(program, 0, 0)
|
package/bin/streamr-misc.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
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('miscellaneous subcommands')
|
|
9
|
-
.command('get-session-token', 'get a session token for the current user')
|
|
10
|
-
.parse(process.argv)
|
|
@@ -1,33 +0,0 @@
|
|
|
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)
|
package/dist/bin/common.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import * as commander from 'commander';
|
|
2
|
-
import { StreamrClientOptions } from 'streamr-client';
|
|
3
|
-
export interface EnvironmentOptions {
|
|
4
|
-
dev?: boolean;
|
|
5
|
-
stg?: boolean;
|
|
6
|
-
wsUrl?: string;
|
|
7
|
-
httpUrl?: string;
|
|
8
|
-
}
|
|
9
|
-
export interface AuthenticationOptions {
|
|
10
|
-
privateKey?: string;
|
|
11
|
-
apiKey?: string;
|
|
12
|
-
}
|
|
13
|
-
export declare function envOptions(program: commander.Command): commander.Command;
|
|
14
|
-
export declare function authOptions(program: commander.Command): commander.Command;
|
|
15
|
-
export declare function exitWithHelpIfArgsNotBetween(program: commander.Command, min: number, max: number): void;
|
|
16
|
-
export declare function formStreamrOptionsWithEnv({ dev, stg, wsUrl, httpUrl, privateKey, apiKey }: EnvironmentOptions & AuthenticationOptions): StreamrClientOptions;
|
|
17
|
-
export declare function createFnParseInt(name: string): (s: string) => number;
|
package/dist/bin/common.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createFnParseInt = exports.formStreamrOptionsWithEnv = exports.exitWithHelpIfArgsNotBetween = exports.authOptions = exports.envOptions = void 0;
|
|
4
|
-
function envOptions(program) {
|
|
5
|
-
return program
|
|
6
|
-
.option('--dev', 'use pre-defined development environment')
|
|
7
|
-
.option('--stg', 'use pre-defined staging environment')
|
|
8
|
-
.option('--ws-url <url>', 'alternative websocket url to use')
|
|
9
|
-
.option('--http-url <url>', 'alternative http url to use');
|
|
10
|
-
}
|
|
11
|
-
exports.envOptions = envOptions;
|
|
12
|
-
function authOptions(program) {
|
|
13
|
-
return program
|
|
14
|
-
.option('--private-key <key>', 'use an Ethereum private key to authenticate')
|
|
15
|
-
.option('--api-key <key>', 'use an API key to authenticate (deprecated)');
|
|
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, wsUrl, httpUrl, privateKey, apiKey }) {
|
|
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.url = 'ws://localhost/api/v1/ws';
|
|
32
|
-
options.restUrl = 'http://localhost/api/v1';
|
|
33
|
-
options.storageNode = {
|
|
34
|
-
// "broker-node-storage-1" on Docker environment
|
|
35
|
-
address: '0xde1112f631486CfC759A50196853011528bC5FA0',
|
|
36
|
-
url: 'http://10.200.10.1:8891'
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
else if (stg) {
|
|
40
|
-
options.url = 'wss://staging.streamr.com/api/v1/ws';
|
|
41
|
-
options.restUrl = 'https://staging.streamr.com/api/v1/';
|
|
42
|
-
}
|
|
43
|
-
if (wsUrl) {
|
|
44
|
-
options.url = wsUrl;
|
|
45
|
-
}
|
|
46
|
-
if (httpUrl) {
|
|
47
|
-
options.restUrl = httpUrl;
|
|
48
|
-
}
|
|
49
|
-
if (privateKey && apiKey) {
|
|
50
|
-
console.error('flags --privateKey and --apiKey cannot be used at the same time');
|
|
51
|
-
process.exit(1);
|
|
52
|
-
}
|
|
53
|
-
if (privateKey) {
|
|
54
|
-
options.auth = {
|
|
55
|
-
privateKey
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
else if (apiKey) {
|
|
59
|
-
options.auth = {
|
|
60
|
-
apiKey
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
return options;
|
|
64
|
-
}
|
|
65
|
-
exports.formStreamrOptionsWithEnv = formStreamrOptionsWithEnv;
|
|
66
|
-
function createFnParseInt(name) {
|
|
67
|
-
return (str) => {
|
|
68
|
-
const n = parseInt(str, 10);
|
|
69
|
-
if (isNaN(n)) {
|
|
70
|
-
console.error(`${name} must be an integer (was "${str}")`);
|
|
71
|
-
process.exit(1);
|
|
72
|
-
}
|
|
73
|
-
return n;
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
exports.createFnParseInt = createFnParseInt;
|
|
77
|
-
//# sourceMappingURL=common.js.map
|
package/dist/bin/common.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../bin/common.ts"],"names":[],"mappings":";;;AAeA,SAAgB,UAAU,CAAC,OAA0B;IACjD,OAAO,OAAO;SACT,MAAM,CAAC,OAAO,EAAE,yCAAyC,CAAC;SAC1D,MAAM,CAAC,OAAO,EAAE,qCAAqC,CAAC;SACtD,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;SAC5D,MAAM,CAAC,kBAAkB,EAAE,6BAA6B,CAAC,CAAA;AAClE,CAAC;AAND,gCAMC;AAED,SAAgB,WAAW,CAAC,OAA0B;IAClD,OAAO,OAAO;SACT,MAAM,CAAC,qBAAqB,EAAE,6CAA6C,CAAC;SAC5E,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,CAAC,CAAA;AACjF,CAAC;AAJD,kCAIC;AAED,SAAgB,4BAA4B,CAAC,OAA0B,EAAE,GAAW,EAAE,GAAW;IAC7F,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE;QACxD,OAAO,CAAC,IAAI,EAAE,CAAA;KACjB;AACL,CAAC;AAJD,oEAIC;AAED,SAAgB,yBAAyB,CACrC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAA8C;IAE5F,MAAM,OAAO,GAAyB,EAAE,CAAA;IAExC,IAAI,GAAG,IAAI,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAA;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAClB;IAED,IAAI,GAAG,EAAE;QACL,OAAO,CAAC,GAAG,GAAG,0BAA0B,CAAA;QACxC,OAAO,CAAC,OAAO,GAAG,yBAAyB,CAAA;QAC3C,OAAO,CAAC,WAAW,GAAG;YAClB,gDAAgD;YAChD,OAAO,EAAE,4CAA4C;YACrD,GAAG,EAAE,yBAAyB;SACjC,CAAA;KACJ;SAAM,IAAI,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,GAAG,qCAAqC,CAAA;QACnD,OAAO,CAAC,OAAO,GAAG,qCAAqC,CAAA;KAC1D;IAED,IAAI,KAAK,EAAE;QACP,OAAO,CAAC,GAAG,GAAG,KAAK,CAAA;KACtB;IACD,IAAI,OAAO,EAAE;QACT,OAAO,CAAC,OAAO,GAAG,OAAO,CAAA;KAC5B;IAED,IAAI,UAAU,IAAI,MAAM,EAAE;QACtB,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAA;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAClB;IAED,IAAI,UAAU,EAAE;QACZ,OAAO,CAAC,IAAI,GAAG;YACX,UAAU;SACb,CAAA;KACJ;SAAM,IAAI,MAAM,EAAE;QACf,OAAO,CAAC,IAAI,GAAG;YACX,MAAM;SACT,CAAA;KACJ;IAED,OAAO,OAAO,CAAA;AAClB,CAAC;AA9CD,8DA8CC;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,33 +0,0 @@
|
|
|
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
|
-
common_1.authOptions(program);
|
|
15
|
-
common_1.envOptions(program)
|
|
16
|
-
.version(package_json_1.default.version)
|
|
17
|
-
.action(async (options) => {
|
|
18
|
-
const client = new streamr_client_1.StreamrClient(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
|
-
common_1.exitWithHelpIfArgsNotBetween(program, 0, 0);
|
|
33
|
-
//# sourceMappingURL=streamr-misc-get-session-token.js.map
|