forked from maidsafe-archive/safe_app_nodejs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
consts.js
125 lines (112 loc) · 4.68 KB
/
consts.js
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
// Copyright 2018 MaidSafe.net limited.
//
// This SAFE Network Software is licensed to you under
// the MIT license <LICENSE-MIT or http://opensource.org/licenses/MIT> or
// the Modified BSD license <LICENSE-BSD or https://opensource.org/licenses/BSD-3-Clause>,
// at your option.
//
// This file may not be copied, modified, or distributed except according to those terms.
//
// Please review the Licences for the specific language governing permissions and limitations
// relating to use of the SAFE Network Software.
const os = require('os');
const TAG_TYPE_DNS = 15001;
const TAG_TYPE_WWW = 15002;
const NET_STATE_INIT = -100;
const NET_STATE_DISCONNECTED = -1;
const NET_STATE_CONNECTED = 0;
const LIB_LOCATION_MOCK = 'mock';
const LIB_LOCATION_PROD = 'prod';
/**
* @typedef {Object} CONSTANTS
* Constants available for the applications to be used in a few cases
* as values of input parameters.
*
* @param {Number} NFS_FILE_MODE_OVERWRITE NFS File open in overwrite mode.
* When used as the `openMode` parameter for `nfs.open(<fileName>, <openMode>)` the entire content
* of the file will be replaced when writing data to it.
*
* @param {Number} NFS_FILE_MODE_APPEND NFS File open in append mode.
* When used as the `openMode` param for `nfs.open(<fileName>, <openMode>)` any new content
* written to the file will be appended to the end without modifying existing data.
*
* @param {Number} NFS_FILE_MODE_READ NFS File open in read-only mode.
* When used as the `openMode` param for `nfs.open(<fileName>, <openMode>)` only the read
* operation is allowed.
*
* @param {Number} NFS_FILE_START Read the file from the beginning.
* When used as the `position` param for the NFS `file.read(<position>, <length>)`
* function, the file will be read from the beginning.
*
* @param {Number} NFS_FILE_END Read until the end of a file.
* When used as the `length` param for the NFS `file.read(<position>, <length>)`
* function, the file will be read from the position provided until the end
* of its content. E.g. if `NFS_FILE_START` and `NFS_FILE_END` are passed in as
* the `position` and `length` parameters respectively, then the whole content of the
* file will be read.
*
* @param {Number} USER_ANYONE Any user.
* When used as the `signkey` param in any of the MutableData functions to
* manipulate user permissions, like `getUserPermissions`, `setUserPermissions`,
* `delUserPermissions`, etc., this will associate the permissions operation to
* any user rather than to a particular sign key.
* E.g. if this constant is used as the `signkey` param of
* the `setUserPermissions(<signKey>, <permissionSet>, <version>)` function,
* the permissions in the `permissionSet` provided will be granted to anyone
* rather to a specific user's/aplication's sign key.
*
* @param {String} MD_METADATA_KEY MutableData's entry key where its metadata is stored.
* The MutableData's metadata can be set either when invoking the `quickSetup`
* function or by invking the `setMetadata` function.
* The metadata is stored as an encoded entry in the MutableData which key
* is `MD_METADATA_KEY`, thus this constant can be used to realise which of the
* entries is not application's data but the MutableData's metadata instead.
* The metadata is particularly used by the Authenticator when another
* application has requested mutation permissions on a MutableData,
* displaying this information to the user, so the user can make a better
* decision to either allow or deny such a request based on it.
*
* @param {Number} MD_ENTRIES_EMPTY Represents an empty set of MutableData's entries.
* This can be used when invoking the `put` function of the MutableData API to
* signal that it should be committed to the network with an empty set of entries.
*
* @param {Number} MD_PERMISSION_EMPTY Represents an empty set of MutableData's permissions.
* This can be used when invoking the `put` function of the MutableData API to
* signal that it should be committed to the network with an empty set of permissions.
*
*/
const pubConsts = {
NFS_FILE_MODE_OVERWRITE: 1,
NFS_FILE_MODE_APPEND: 2,
NFS_FILE_MODE_READ: 4,
NFS_FILE_START: 0,
NFS_FILE_END: 0,
USER_ANYONE: 0,
MD_METADATA_KEY: '_metadata',
MD_ENTRIES_EMPTY: 0,
MD_PERMISSION_EMPTY: 0,
};
const SAFE_APP_LIB_FILENAME = {
win32: 'safe_app.dll',
darwin: 'libsafe_app.dylib',
linux: 'libsafe_app.so'
}[os.platform()];
const SYSTEM_URI_LIB_FILENAME = {
win32: 'system_uri.dll',
darwin: 'libsystem_uri.dylib',
linux: 'libsystem_uri.so'
}[os.platform()];
const INDEX_HTML = 'index.html';
module.exports = {
TAG_TYPE_DNS,
TAG_TYPE_WWW,
NET_STATE_INIT,
NET_STATE_DISCONNECTED,
NET_STATE_CONNECTED,
LIB_LOCATION_MOCK,
LIB_LOCATION_PROD,
INDEX_HTML,
pubConsts,
SAFE_APP_LIB_FILENAME,
SYSTEM_URI_LIB_FILENAME
};