summaryrefslogtreecommitdiff
path: root/types/IConfig.ts
blob: 2de6dd9cffab6cb4213f6f3468ef02e5c814539c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import {ISystemConfig} from "./ISystemConfig";

/**
 * signal.js configuration options
 */
export interface IConfig {
    /**
     * The phone number that has been previously associated with signal-cli
     * that signal.js will use.
     *
     * `--account` in signal-cli
     */
    account: string,

    /**
     * Whether events should be shown to `console.log`, used mainly for debugging
     */
    logEvents?: boolean,

    /**
     * An absolute or relative (to `process.cwd`) path to a signal-cli
     * executable.
     *
     * If this is not set, `signal-cli` in `$PATH` will be used.
     */
    signalCli?: string,

    /**
     * An optional path to a custom config directory for signal-cli.
     *
     * `--config` in signal-cli
     */
    configPath?: string,

    /**
     * The server environment to use with signal-cli.
     * Leave the default if you don't know what you're doing.
     *
     * `--service-environment` in signal-cli
     */
    environment?: Environment,

    /**
     * A file signal-cli will save logs to
     *
     * Note: Unless `scrubLog` is true, this will contain personal information,
     * such as the exchanged messages.
     *
     * `--log-file` in signal-cli
     */
    cliLog?: string,

    /**
     * Only save technical information to the logs and remove any personal
     * information.
     *
     * `--scrub-log` in signal-cli
     */
    scrubLog?: boolean

    /**
     * The amount of data to store in the log files.
     *
     * `--verbose` in signal-cli
     */
    verbose?: Verbosity,

    /**
     * When to trust new identities.
     *
     * `--trust-new-identities` in signal-cli
     */
    trustLevel?: TrustLevel,

    /**
     * Advanced parameters for the signal-cli process
     */
    system?: ISystemConfig
}

export enum Environment {
    Live = "live",
    Staging = "staging",
    SandBox = "sandbox"
}

export enum TrustLevel {
    All = "always",
    OnFirstUse = "on-first-use",
    None = "never"
}

export enum Verbosity {
    None,
    Info,
    Notices,
    Verbose
}