spec-3nweb-server 1.7.1 → 1.7.6
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/build/3nstorage/3nstorage-app.d.ts +4 -1
- package/build/3nstorage/3nstorage-app.js +18 -9
- package/build/3nstorage/owner.d.ts +3 -2
- package/build/3nstorage/owner.js +39 -32
- package/build/3nstorage/resources/sessions.js +2 -1
- package/build/3nstorage/resources/store.d.ts +5 -5
- package/build/3nstorage/resources/store.js +3 -12
- package/build/3nstorage/resources/users.d.ts +6 -6
- package/build/3nstorage/resources/users.js +13 -16
- package/build/3nstorage/shared.d.ts +2 -6
- package/build/3nstorage/shared.js +5 -9
- package/build/asmail/asmail-app.d.ts +1 -1
- package/build/asmail/asmail-app.js +3 -3
- package/build/asmail/config.d.ts +2 -6
- package/build/asmail/config.js +20 -12
- package/build/asmail/delivery.d.ts +2 -6
- package/build/asmail/delivery.js +0 -6
- package/build/asmail/resources/delivery-sessions.js +1 -2
- package/build/asmail/resources/inbox.d.ts +17 -26
- package/build/asmail/resources/inbox.js +15 -59
- package/build/asmail/resources/recipients.d.ts +28 -10
- package/build/asmail/resources/recipients.js +62 -22
- package/build/asmail/retrieval.d.ts +2 -2
- package/build/asmail/retrieval.js +11 -18
- package/build/config/signup.d.ts +1 -1
- package/build/config/signup.js +1 -1
- package/build/lib-common/assert.js +2 -1
- package/build/lib-common/buffer-utils.js +2 -1
- package/build/lib-common/byte-streaming/common.js +11 -11
- package/build/lib-common/bytes-equal.js +2 -1
- package/build/lib-common/exceptions/error.js +2 -1
- package/build/lib-common/exceptions/file.js +2 -1
- package/build/lib-common/exceptions/http.js +2 -1
- package/build/lib-common/ipc/generic-ipc.js +14 -14
- package/build/lib-common/ipc/ws-ipc.js +2 -1
- package/build/lib-common/json-equal.js +2 -1
- package/build/lib-common/json-utils.js +2 -1
- package/build/lib-common/jwkeys.js +2 -1
- package/build/lib-common/map-of-sets.js +2 -1
- package/build/lib-common/mid-sigs-NaCl-Ed.js +2 -1
- package/build/lib-common/objs-on-disk/file-layout.js +2 -1
- package/build/lib-common/objs-on-disk/obj-file.js +2 -1
- package/build/lib-common/objs-on-disk/v1-obj-file-format.js +2 -1
- package/build/lib-common/processes.js +2 -1
- package/build/lib-common/random-node.js +2 -1
- package/build/lib-common/service-api/3nstorage/owner.d.ts +1 -3
- package/build/lib-common/service-api/3nstorage/owner.js +2 -4
- package/build/lib-common/service-api/asmail/config.d.ts +1 -3
- package/build/lib-common/service-api/asmail/config.js +4 -5
- package/build/lib-common/service-api/asmail/delivery.js +2 -1
- package/build/lib-common/service-api/asmail/retrieval.d.ts +1 -3
- package/build/lib-common/service-api/asmail/retrieval.js +3 -4
- package/build/lib-common/service-api/ipc-api.js +2 -1
- package/build/lib-common/service-api/locker.d.ts +17 -0
- package/build/lib-common/service-api/locker.js +31 -0
- package/build/lib-common/service-api/mailer-id/login.js +2 -1
- package/build/lib-common/service-api/mailer-id/provisioning.d.ts +3 -4
- package/build/lib-common/service-api/mailer-id/provisioning.js +3 -12
- package/build/lib-common/service-api/pub-key-login.js +2 -1
- package/build/lib-common/service-api/web-socket-base.js +2 -1
- package/build/lib-common/session-encryptor.js +2 -1
- package/build/lib-common/time-window-cache.js +2 -1
- package/build/lib-server/mid-access.d.ts +5 -0
- package/build/lib-server/mid-access.js +28 -0
- package/build/lib-server/middleware/body-parsers.d.ts +7 -7
- package/build/lib-server/middleware/body-parsers.js +14 -14
- package/build/lib-server/pkl-access.d.ts +4 -0
- package/build/lib-server/pkl-access.js +28 -0
- package/build/lib-server/resources/dns.js +2 -1
- package/build/lib-server/resources/mailerid-authorizer.js +5 -6
- package/build/lib-server/resources/server-data-folders.d.ts +1 -0
- package/build/lib-server/resources/server-data-folders.js +9 -4
- package/build/{mailerId/resources/compute-login-dhshared-key.js → lib-server/resources/server-key-for-pkl-challenge.js} +5 -5
- package/build/lib-server/resources/sessions.js +7 -7
- package/build/lib-server/resources/user-files.d.ts +3 -3
- package/build/lib-server/resources/user-files.js +4 -2
- package/build/lib-server/routes/sessions/close.js +2 -1
- package/build/lib-server/web-sockets/app.js +2 -3
- package/build/lib-server/web-sockets/server-events.js +1 -2
- package/build/lib.d.ts +1 -1
- package/build/lib.js +2 -2
- package/build/locker/locker-app.d.ts +3 -0
- package/build/locker/locker-app.js +41 -0
- package/build/locker/resources/lockers.d.ts +0 -0
- package/build/{lib-common/binding.js → locker/resources/lockers.js} +3 -10
- package/build/locker/resources/sessions.d.ts +9 -0
- package/build/locker/resources/sessions.js +33 -0
- package/build/locker/routes/create-locker.d.ts +4 -0
- package/build/locker/routes/create-locker.js +37 -0
- package/build/mailerId/mailerId-app.d.ts +1 -1
- package/build/mailerId/mailerId-app.js +12 -11
- package/build/mailerId/routes/certify.js +2 -1
- package/build/main.js +1 -1
- package/build/mock/dns.js +3 -4
- package/build/mock/mock-as-child-proc.js +2 -2
- package/build/mock/node-child-ipc.js +2 -1
- package/build/mock/run-in-proc.js +2 -2
- package/build/mock/tls-options.js +2 -1
- package/build/services.d.ts +2 -1
- package/build/services.js +22 -11
- package/build/{admin → signup}/resources/users.js +3 -4
- package/build/{admin/admin-app.d.ts → signup/signup-app.d.ts} +1 -1
- package/build/{admin/admin-app.js → signup/signup-app.js} +6 -16
- package/package.json +1 -1
- package/build/lib-common/binding.d.ts +0 -1
- /package/build/{mailerId/resources/compute-login-dhshared-key.d.ts → lib-server/resources/server-key-for-pkl-challenge.d.ts} +0 -0
- /package/build/{admin → signup}/resources/users.d.ts +0 -0
- /package/build/{admin → signup}/routes/add.d.ts +0 -0
- /package/build/{admin → signup}/routes/add.js +0 -0
- /package/build/{admin → signup}/routes/get-available-addresses.d.ts +0 -0
- /package/build/{admin → signup}/routes/get-available-addresses.js +0 -0
- /package/build/{admin → signup}/routes/get-available-domains.d.ts +0 -0
- /package/build/{admin → signup}/routes/get-available-domains.js +0 -0
- /package/build/{admin → signup}/signup-tokens.d.ts +0 -0
- /package/build/{admin → signup}/signup-tokens.js +0 -0
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { Factory as UsersFactory } from './resources/users';
|
|
2
|
+
import { SessionsFactory } from './resources/sessions';
|
|
1
3
|
import { MidAuthorizer } from '../lib-server/routes/sessions/mid-auth';
|
|
2
4
|
import { ErrLogger } from '../lib-server/middleware/error-handler';
|
|
3
5
|
import { AppWithWSs } from '../lib-server/web-sockets/app';
|
|
4
|
-
export declare function
|
|
6
|
+
export declare function makeStorageApp(dataFolder: string, domain: string, midAuthorizer: MidAuthorizer, errLogger?: ErrLogger): AppWithWSs;
|
|
7
|
+
export declare function makeStorageAppForLocker(users: UsersFactory, ownersSessions: SessionsFactory, sharingSessions: SessionsFactory, errLogger?: ErrLogger): AppWithWSs;
|
|
@@ -16,18 +16,18 @@
|
|
|
16
16
|
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.
|
|
19
|
+
exports.makeStorageAppForLocker = exports.makeStorageApp = void 0;
|
|
20
20
|
const users_1 = require("./resources/users");
|
|
21
21
|
const sessions_1 = require("./resources/sessions");
|
|
22
22
|
const error_handler_1 = require("../lib-server/middleware/error-handler");
|
|
23
23
|
const app_1 = require("../lib-server/web-sockets/app");
|
|
24
|
-
const
|
|
25
|
-
const
|
|
24
|
+
const owner_1 = require("./owner");
|
|
25
|
+
const shared_1 = require("./shared");
|
|
26
26
|
const PATHS = {
|
|
27
27
|
owner: '/owner/',
|
|
28
28
|
shared: '/shared/'
|
|
29
29
|
};
|
|
30
|
-
function
|
|
30
|
+
function setupStaticStorageEntryRoute(app) {
|
|
31
31
|
app.route('/')
|
|
32
32
|
.get((req, res) => {
|
|
33
33
|
let path = req.originalUrl;
|
|
@@ -42,16 +42,25 @@ function setupStaticEntryRoute(app) {
|
|
|
42
42
|
res.status(200).json(json);
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
|
-
function
|
|
45
|
+
function makeStorageApp(dataFolder, domain, midAuthorizer, errLogger) {
|
|
46
46
|
const app = new app_1.AppWithWSs();
|
|
47
47
|
const ownersSessions = (0, sessions_1.makeSessionFactory)(20 * 60);
|
|
48
48
|
const sharingSessions = (0, sessions_1.makeSessionFactory)(20 * 60);
|
|
49
49
|
const users = (0, users_1.makeFactory)(dataFolder);
|
|
50
|
-
|
|
51
|
-
app.use(PATHS.owner,
|
|
52
|
-
app.http.use(PATHS.shared,
|
|
50
|
+
setupStaticStorageEntryRoute(app.http);
|
|
51
|
+
app.use(PATHS.owner, (0, owner_1.makeOwnerStorageApp)(domain, ownersSessions, users, midAuthorizer));
|
|
52
|
+
app.http.use(PATHS.shared, (0, shared_1.makeSharedStorageApp)(sharingSessions, users));
|
|
53
53
|
app.http.use((0, error_handler_1.makeErrHandler)(errLogger));
|
|
54
54
|
return app;
|
|
55
55
|
}
|
|
56
|
-
exports.
|
|
56
|
+
exports.makeStorageApp = makeStorageApp;
|
|
57
|
+
function makeStorageAppForLocker(users, ownersSessions, sharingSessions, errLogger) {
|
|
58
|
+
const app = new app_1.AppWithWSs();
|
|
59
|
+
setupStaticStorageEntryRoute(app.http);
|
|
60
|
+
app.use(PATHS.owner, (0, owner_1.makeOwnerStorageForLocker)(ownersSessions, users));
|
|
61
|
+
app.http.use(PATHS.shared, (0, shared_1.makeSharedStorageApp)(sharingSessions, users));
|
|
62
|
+
app.http.use((0, error_handler_1.makeErrHandler)(errLogger));
|
|
63
|
+
return app;
|
|
64
|
+
}
|
|
65
|
+
exports.makeStorageAppForLocker = makeStorageAppForLocker;
|
|
57
66
|
Object.freeze(exports);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AppWithWSs } from '../lib-server/web-sockets/app';
|
|
2
2
|
import { SessionsFactory } from './resources/sessions';
|
|
3
|
-
import { Factory as
|
|
3
|
+
import { Factory as UsersFactory } from './resources/users';
|
|
4
4
|
import { MidAuthorizer } from '../lib-server/routes/sessions/mid-auth';
|
|
5
|
-
export declare function
|
|
5
|
+
export declare function makeOwnerStorageApp(domain: string, sessions: SessionsFactory, users: UsersFactory, midAuthorizer: MidAuthorizer): AppWithWSs;
|
|
6
|
+
export declare function makeOwnerStorageForLocker(sessions: SessionsFactory, users: UsersFactory): AppWithWSs;
|
package/build/3nstorage/owner.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
Copyright (C) 2015 - 2017, 2022 3NSoft Inc.
|
|
3
|
+
Copyright (C) 2015 - 2017, 2022, 2024 3NSoft Inc.
|
|
4
4
|
|
|
5
5
|
This program is free software: you can redistribute it and/or modify it under
|
|
6
6
|
the terms of the GNU General Public License as published by the Free Software
|
|
@@ -13,20 +13,13 @@
|
|
|
13
13
|
See the GNU General Public License for more details.
|
|
14
14
|
|
|
15
15
|
You should have received a copy of the GNU General Public License along with
|
|
16
|
-
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
17
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.
|
|
19
|
-
/**
|
|
20
|
-
* This module gives a function that creates a mountable, or app.use()-able,
|
|
21
|
-
* express 3NStorage owners' application.
|
|
22
|
-
*/
|
|
23
|
-
// Internal libs
|
|
19
|
+
exports.makeOwnerStorageForLocker = exports.makeOwnerStorageApp = void 0;
|
|
24
20
|
const body_parsers_1 = require("../lib-server/middleware/body-parsers");
|
|
25
21
|
const app_1 = require("../lib-server/web-sockets/app");
|
|
26
22
|
const server_events_1 = require("../lib-server/web-sockets/server-events");
|
|
27
|
-
// routes
|
|
28
|
-
const mid_auth_1 = require("../lib-server/routes/sessions/mid-auth");
|
|
29
|
-
const start_1 = require("../lib-server/routes/sessions/start");
|
|
30
23
|
const close_1 = require("../lib-server/routes/sessions/close");
|
|
31
24
|
const session_params_1 = require("./routes/owner/session-params");
|
|
32
25
|
const param_getter_1 = require("./routes/owner/param-getter");
|
|
@@ -39,13 +32,28 @@ const delete_obj_1 = require("./routes/owner/delete-obj");
|
|
|
39
32
|
const archive_obj_version_1 = require("./routes/owner/archive-obj-version");
|
|
40
33
|
const get_obj_status_1 = require("./routes/owner/get-obj-status");
|
|
41
34
|
const api = require("../lib-common/service-api/3nstorage/owner");
|
|
42
|
-
|
|
35
|
+
const mid_access_1 = require("../lib-server/mid-access");
|
|
36
|
+
function makeOwnerStorageApp(domain, sessions, users, midAuthorizer) {
|
|
43
37
|
const app = new app_1.AppWithWSs();
|
|
44
|
-
|
|
38
|
+
const setupLoginRoutes = (app, urlPrefix) => (0, mid_access_1.addMailerIdLoginRoutes)(app, domain, urlPrefix, sessions, users.exists, midAuthorizer);
|
|
39
|
+
setHttpPart(app.http, setupLoginRoutes, sessions, users);
|
|
45
40
|
setWSPart(app, sessions, users);
|
|
46
41
|
return app;
|
|
47
42
|
}
|
|
48
|
-
exports.
|
|
43
|
+
exports.makeOwnerStorageApp = makeOwnerStorageApp;
|
|
44
|
+
function makeOwnerStorageForLocker(sessions, users) {
|
|
45
|
+
const app = new app_1.AppWithWSs();
|
|
46
|
+
// XXX WIP
|
|
47
|
+
// const setupLoginRoutes: SetupLoginRoutes = (
|
|
48
|
+
// app, urlPrefix
|
|
49
|
+
// ) => addPKLLoginRoutes(
|
|
50
|
+
// app, urlPrefix, getUserParamsAndKey, sessions, calcNaClBoxSharedKey
|
|
51
|
+
// );
|
|
52
|
+
// setHttpPart(app.http, setupLoginRoutes, sessions, users);
|
|
53
|
+
setWSPart(app, sessions, users);
|
|
54
|
+
return app;
|
|
55
|
+
}
|
|
56
|
+
exports.makeOwnerStorageForLocker = makeOwnerStorageForLocker;
|
|
49
57
|
function setWSPart(app, sessions, users) {
|
|
50
58
|
const sockets = new app_1.UserSockets(sessions.ensureAuthorizedSessionForSocketStart());
|
|
51
59
|
const storageEvents = new server_events_1.ServerEvents(undefined, api.events.all, sockets.socketGetter);
|
|
@@ -55,49 +63,48 @@ function setWSPart(app, sessions, users) {
|
|
|
55
63
|
app.addWS(api.wsEventChannel.URL_END, sockets);
|
|
56
64
|
}
|
|
57
65
|
const MAX_CHUNK_SIZE = '0.5mb';
|
|
58
|
-
function setHttpPart(app,
|
|
59
|
-
app.
|
|
66
|
+
function setHttpPart(app, setupLoginRoutes, sessions, users) {
|
|
67
|
+
app.disable('etag');
|
|
60
68
|
// Login
|
|
61
|
-
app
|
|
62
|
-
app.http.post('/' + api.midLogin.AUTH_URL_END, sessions.ensureOpenedSession(), (0, body_parsers_1.json)('4kb'), (0, mid_auth_1.midLogin)(domain, midAuthorizer));
|
|
69
|
+
setupLoginRoutes(app, '/' + api.midLogin.URL_PART);
|
|
63
70
|
// *** Require authorized session for everything below ***
|
|
64
|
-
app.
|
|
65
|
-
app.
|
|
71
|
+
app.use(sessions.ensureAuthorizedSession());
|
|
72
|
+
app.post('/' + api.closeSession.URL_END, (0, body_parsers_1.emptyBody)(), (0, close_1.closeSession)());
|
|
66
73
|
// Session params
|
|
67
|
-
app.
|
|
74
|
+
app.get('/' + api.sessionParams.URL_END, (0, session_params_1.sessionParams)(MAX_CHUNK_SIZE));
|
|
68
75
|
// Key derivation params
|
|
69
|
-
app.
|
|
76
|
+
app.route('/' + api.keyDerivParams.URL_END)
|
|
70
77
|
.get((0, param_getter_1.getParam)(users.getKeyDerivParams))
|
|
71
78
|
.put((0, body_parsers_1.json)('1kb'), (0, param_setter_1.setParam)(users.setKeyDerivParams));
|
|
72
79
|
// Transaction canceling
|
|
73
|
-
app.
|
|
74
|
-
app.
|
|
80
|
+
app.post('/' + api.cancelTransaction.EXPRESS_URL_END, (0, body_parsers_1.emptyBody)(), (0, cancel_trans_1.cancelTransaction)(false, users.cancelTransaction));
|
|
81
|
+
app.post('/' + api.cancelRootTransaction.EXPRESS_URL_END, (0, body_parsers_1.emptyBody)(), (0, cancel_trans_1.cancelTransaction)(true, users.cancelTransaction));
|
|
75
82
|
// Getting and updating current root object
|
|
76
|
-
app.
|
|
83
|
+
app.route('/' + api.currentRootObj.EXPRESS_URL_END)
|
|
77
84
|
.get((0, get_current_obj_1.getCurrentObj)(true, users.getCurrentRootObj))
|
|
78
85
|
.put((0, put_current_obj_1.saveCurrentObj)(true, users.saveNewRootVersion, MAX_CHUNK_SIZE));
|
|
79
86
|
// Getting, updating and removing current non-root objects
|
|
80
|
-
app.
|
|
87
|
+
app.route('/' + api.currentObj.EXPRESS_URL_END)
|
|
81
88
|
.get((0, get_current_obj_1.getCurrentObj)(false, users.getCurrentObj))
|
|
82
89
|
.delete((0, delete_obj_1.deleteCurrentObjVer)(users.deleteCurrentObjVersion))
|
|
83
90
|
.put((0, put_current_obj_1.saveCurrentObj)(false, users.saveNewObjVersion, MAX_CHUNK_SIZE));
|
|
84
91
|
// Getting root archived versions
|
|
85
|
-
app.
|
|
92
|
+
app.route('/' + api.archivedRootVersion.EXPRESS_URL_END)
|
|
86
93
|
.get((0, get_archived_obj_ver_1.getArchivedObjVersion)(true, users.getArchivedRootVersion));
|
|
87
94
|
// Getting non-root object archived versions
|
|
88
|
-
app.
|
|
95
|
+
app.route('/' + api.archivedObjVersion.EXPRESS_URL_END)
|
|
89
96
|
.get((0, get_archived_obj_ver_1.getArchivedObjVersion)(false, users.getArchivedObjVersion));
|
|
90
97
|
// Archive root's current version
|
|
91
|
-
app.
|
|
98
|
+
app.route('/' + api.archiveRoot.EXPRESS_URL_END)
|
|
92
99
|
.post((0, body_parsers_1.emptyBody)(), (0, archive_obj_version_1.archiveCurrentObjVersion)(true, users.archiveObjVersion))
|
|
93
100
|
.delete((0, delete_obj_1.deleteArchivedObjVer)(true, users.deleteArchivedObjVersion));
|
|
94
101
|
// Archive non-root object's current version
|
|
95
|
-
app.
|
|
102
|
+
app.route('/' + api.archiveObj.EXPRESS_URL_END)
|
|
96
103
|
.post((0, body_parsers_1.emptyBody)(), (0, archive_obj_version_1.archiveCurrentObjVersion)(false, users.archiveObjVersion))
|
|
97
104
|
.delete((0, delete_obj_1.deleteArchivedObjVer)(false, users.deleteArchivedObjVersion));
|
|
98
105
|
// Getting root object status
|
|
99
|
-
app.
|
|
106
|
+
app.get('/' + api.rootStatus.EXPRESS_URL_END, (0, get_obj_status_1.getObjStatus)(true, users.getObjStatus));
|
|
100
107
|
// Getting object status
|
|
101
|
-
app.
|
|
108
|
+
app.get('/' + api.objStatus.EXPRESS_URL_END, (0, get_obj_status_1.getObjStatus)(false, users.getObjStatus));
|
|
102
109
|
}
|
|
103
110
|
Object.freeze(exports);
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
See the GNU General Public License for more details.
|
|
14
14
|
|
|
15
15
|
You should have received a copy of the GNU General Public License along with
|
|
16
|
-
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
17
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
19
|
exports.makeSessionFactory = void 0;
|
|
19
20
|
const mem_backed_sessions_factory_1 = require("../../lib-server/resources/mem-backed-sessions-factory");
|
|
@@ -36,7 +36,10 @@ export interface TransactionInfo extends TransactionParams {
|
|
|
36
36
|
transactionType: 'write' | 'remove' | 'archive';
|
|
37
37
|
transactionId: string;
|
|
38
38
|
}
|
|
39
|
-
export
|
|
39
|
+
export interface StorageParams {
|
|
40
|
+
"key-deriv": any;
|
|
41
|
+
}
|
|
42
|
+
export declare class Store extends UserFiles<StorageParams> {
|
|
40
43
|
private storageEventsSink;
|
|
41
44
|
private objVerFiles;
|
|
42
45
|
private statuses;
|
|
@@ -112,8 +115,5 @@ export declare class Store extends UserFiles {
|
|
|
112
115
|
private rmObjFiles;
|
|
113
116
|
archiveCurrentObjVersion(objId: string, version: number): Promise<void>;
|
|
114
117
|
getObjStatus(objId: string): Promise<ObjStatus>;
|
|
115
|
-
|
|
116
|
-
static getKeyDerivParams(store: Store): Promise<any>;
|
|
117
|
-
static setKeyDerivParams(store: Store, params: any, setDefault: boolean): Promise<boolean>;
|
|
118
|
-
getKeyDerivParams(): Promise<any>;
|
|
118
|
+
setKeyDerivParams(params: any, setDefault: boolean): Promise<boolean>;
|
|
119
119
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
Copyright (C) 2015 - 2017, 2019 - 2020, 2022 3NSoft Inc.
|
|
3
|
+
Copyright (C) 2015 - 2017, 2019 - 2020, 2022, 2025 3NSoft Inc.
|
|
4
4
|
|
|
5
5
|
This program is free software: you can redistribute it and/or modify it under
|
|
6
6
|
the terms of the GNU General Public License as published by the Free Software
|
|
@@ -422,25 +422,16 @@ class Store extends user_files_1.UserFiles {
|
|
|
422
422
|
archived: status.archivedVersions
|
|
423
423
|
};
|
|
424
424
|
}
|
|
425
|
-
|
|
426
|
-
return store.getSpaceQuota();
|
|
427
|
-
}
|
|
428
|
-
static getKeyDerivParams(store) {
|
|
429
|
-
return store.getParam('key-deriv');
|
|
430
|
-
}
|
|
431
|
-
static async setKeyDerivParams(store, params, setDefault) {
|
|
425
|
+
async setKeyDerivParams(params, setDefault) {
|
|
432
426
|
if (setDefault) {
|
|
433
427
|
params = {};
|
|
434
428
|
}
|
|
435
429
|
else if ((typeof params !== 'object') || Array.isArray(params)) {
|
|
436
430
|
return false;
|
|
437
431
|
}
|
|
438
|
-
await
|
|
432
|
+
await this.setParam('key-deriv', params);
|
|
439
433
|
return true;
|
|
440
434
|
}
|
|
441
|
-
getKeyDerivParams() {
|
|
442
|
-
return this.getParam('key-deriv');
|
|
443
|
-
}
|
|
444
435
|
}
|
|
445
436
|
exports.Store = Store;
|
|
446
437
|
Object.freeze(Store.prototype);
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* which is created by this module.
|
|
6
6
|
*/
|
|
7
7
|
import { Readable as ReadableStream } from 'stream';
|
|
8
|
-
import { ObjReader, StorageEventsSink } from './store';
|
|
8
|
+
import { ObjReader, StorageEventsSink, StorageParams } from './store';
|
|
9
9
|
import { PutObjFirstQueryOpts, PutObjSecondQueryOpts, DiffInfo, ObjStatus } from '../../lib-common/service-api/3nstorage/owner';
|
|
10
10
|
export { SC, ObjReader, MismatchedObjVerException } from './store';
|
|
11
11
|
export type UserExists = (userId: string) => Promise<boolean>;
|
|
@@ -20,11 +20,11 @@ export type ArchiveObjCurrentVersion = (userId: string, objId: string, version:
|
|
|
20
20
|
export type GetObjStatus = (userId: string, objId: string) => Promise<ObjStatus>;
|
|
21
21
|
export type DeleteCurrentObjVersion = (userId: string, objId: string, version?: number) => Promise<void>;
|
|
22
22
|
export type DeleteArchivedObjVersion = (userId: string, objId: string | null, version: number) => Promise<void>;
|
|
23
|
-
type
|
|
24
|
-
type
|
|
25
|
-
|
|
26
|
-
export type GetKeyDerivParams = GetParam<
|
|
27
|
-
export type SetKeyDerivParams = SetParam<
|
|
23
|
+
export type GetSpaceQuota = (userId: string) => Promise<number>;
|
|
24
|
+
type GetParam<P extends keyof StorageParams> = (userId: string) => Promise<StorageParams[P]>;
|
|
25
|
+
type SetParam<P extends keyof StorageParams> = (userId: string, param: StorageParams[P]) => Promise<boolean>;
|
|
26
|
+
export type GetKeyDerivParams = GetParam<'key-deriv'>;
|
|
27
|
+
export type SetKeyDerivParams = SetParam<'key-deriv'>;
|
|
28
28
|
export type EventsSink = StorageEventsSink;
|
|
29
29
|
/**
|
|
30
30
|
* This is an external interface, behind which all storage machinery is hidding.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
Copyright (C) 2015 - 2017, 2020 3NSoft Inc.
|
|
3
|
+
Copyright (C) 2015 - 2017, 2020, 2025 3NSoft Inc.
|
|
4
4
|
|
|
5
5
|
This program is free software: you can redistribute it and/or modify it under
|
|
6
6
|
the terms of the GNU General Public License as published by the Free Software
|
|
@@ -46,18 +46,6 @@ function makeFactory(rootFolder, writeBufferSize, readBufferSize) {
|
|
|
46
46
|
return store;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
function makeParamGetter(staticGetter) {
|
|
50
|
-
return async (userId) => {
|
|
51
|
-
const store = await getStore(userId);
|
|
52
|
-
return staticGetter(store);
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
function makeParamSetter(staticSetter) {
|
|
56
|
-
return async (userId, param, setDefault) => {
|
|
57
|
-
const store = await getStore(userId);
|
|
58
|
-
return staticSetter(store, param, !!setDefault);
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
49
|
function makeCurrentObjGetter(isRoot) {
|
|
62
50
|
return async (userId, objId, header, segsOffset, segsLimit) => {
|
|
63
51
|
if ((isRoot && objId) || (!isRoot && !objId)) {
|
|
@@ -112,9 +100,18 @@ function makeFactory(rootFolder, writeBufferSize, readBufferSize) {
|
|
|
112
100
|
return false;
|
|
113
101
|
}
|
|
114
102
|
},
|
|
115
|
-
getSpaceQuota:
|
|
116
|
-
|
|
117
|
-
|
|
103
|
+
getSpaceQuota: async (userId) => {
|
|
104
|
+
const store = await getStore(userId);
|
|
105
|
+
return await store.getSpaceQuota();
|
|
106
|
+
},
|
|
107
|
+
getKeyDerivParams: async (userId) => {
|
|
108
|
+
const store = await getStore(userId);
|
|
109
|
+
return await store.getParam('key-deriv');
|
|
110
|
+
},
|
|
111
|
+
setKeyDerivParams: async (userId, keyParams) => {
|
|
112
|
+
const store = await getStore(userId);
|
|
113
|
+
return await store.setKeyDerivParams(keyParams, false);
|
|
114
|
+
},
|
|
118
115
|
getCurrentRootObj: makeCurrentObjGetter(true),
|
|
119
116
|
getCurrentObj: makeCurrentObjGetter(false),
|
|
120
117
|
getArchivedRootVersion: makeArchivedObjGetter(true),
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This module gives a function that creates a mountable, or app.use()-able,
|
|
3
|
-
* express 3NStorage sharing application.
|
|
4
|
-
*/
|
|
5
1
|
import * as express from 'express';
|
|
6
|
-
import { Factory as
|
|
2
|
+
import { Factory as UsersFactory } from './resources/users';
|
|
7
3
|
import { SessionsFactory } from './resources/sessions';
|
|
8
|
-
export declare function
|
|
4
|
+
export declare function makeSharedStorageApp(sessions: SessionsFactory, users: UsersFactory): express.Express;
|
|
@@ -13,17 +13,13 @@
|
|
|
13
13
|
See the GNU General Public License for more details.
|
|
14
14
|
|
|
15
15
|
You should have received a copy of the GNU General Public License along with
|
|
16
|
-
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
17
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.
|
|
19
|
-
/**
|
|
20
|
-
* This module gives a function that creates a mountable, or app.use()-able,
|
|
21
|
-
* express 3NStorage sharing application.
|
|
22
|
-
*/
|
|
19
|
+
exports.makeSharedStorageApp = void 0;
|
|
23
20
|
const express = require("express");
|
|
24
|
-
// routes
|
|
25
21
|
//import * as api from '../../lib-common/service-api/3nstorage/shared';
|
|
26
|
-
function
|
|
22
|
+
function makeSharedStorageApp(sessions, users) {
|
|
27
23
|
const app = express();
|
|
28
24
|
app.disable('etag');
|
|
29
25
|
// TODO add sharing routes with proper session creation for authorities/capabilities
|
|
@@ -36,5 +32,5 @@ function makeApp(sessions, users) {
|
|
|
36
32
|
// and file keys.
|
|
37
33
|
return app;
|
|
38
34
|
}
|
|
39
|
-
exports.
|
|
35
|
+
exports.makeSharedStorageApp = makeSharedStorageApp;
|
|
40
36
|
Object.freeze(exports);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { AppWithWSs } from '../lib-server/web-sockets/app';
|
|
2
2
|
import { MidAuthorizer } from '../lib-server/routes/sessions/mid-auth';
|
|
3
3
|
import { ErrLogger } from '../lib-server/middleware/error-handler';
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function makeASMailApp(rootFolder: string, domain: string, midAuthorizer: MidAuthorizer, errLogger?: ErrLogger): AppWithWSs;
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.
|
|
19
|
+
exports.makeASMailApp = void 0;
|
|
20
20
|
const app_1 = require("../lib-server/web-sockets/app");
|
|
21
21
|
const delivery_sessions_1 = require("./resources/delivery-sessions");
|
|
22
22
|
const sessions_1 = require("./resources/sessions");
|
|
@@ -46,7 +46,7 @@ function setupStaticEntryRoute(app) {
|
|
|
46
46
|
res.status(200).json(json);
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
|
-
function
|
|
49
|
+
function makeASMailApp(rootFolder, domain, midAuthorizer, errLogger) {
|
|
50
50
|
const app = new app_1.AppWithWSs();
|
|
51
51
|
const mailDeliverySessions = delivery_sessions_1.DeliverySessions.make(5 * 60);
|
|
52
52
|
const recipientsSessions = (0, sessions_1.makeSessionFactory)(10 * 60);
|
|
@@ -59,5 +59,5 @@ function makeApp(rootFolder, domain, midAuthorizer, errLogger) {
|
|
|
59
59
|
app.http.use((0, error_handler_1.makeErrHandler)(errLogger));
|
|
60
60
|
return app;
|
|
61
61
|
}
|
|
62
|
-
exports.
|
|
62
|
+
exports.makeASMailApp = makeASMailApp;
|
|
63
63
|
Object.freeze(exports);
|
package/build/asmail/config.d.ts
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This module gives a function that creates a mountable, or app.use()-able,
|
|
3
|
-
* express ASMail-Configuration application.
|
|
4
|
-
*/
|
|
5
1
|
import * as express from 'express';
|
|
6
2
|
import { SessionsFactory } from './resources/sessions';
|
|
7
|
-
import { Factory as
|
|
3
|
+
import { Factory as UsersFactory } from './resources/recipients';
|
|
8
4
|
import { MidAuthorizer } from '../lib-server/routes/sessions/mid-auth';
|
|
9
|
-
export declare function makeApp(domain: string, sessions: SessionsFactory, recipients:
|
|
5
|
+
export declare function makeApp(domain: string, sessions: SessionsFactory, recipients: UsersFactory, midAuthorizer: MidAuthorizer): express.Express;
|
package/build/asmail/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
Copyright (C) 2015 - 2016 3NSoft Inc.
|
|
3
|
+
Copyright (C) 2015 - 2016, 2024 - 2025 3NSoft Inc.
|
|
4
4
|
|
|
5
5
|
This program is free software: you can redistribute it and/or modify it under
|
|
6
6
|
the terms of the GNU General Public License as published by the Free Software
|
|
@@ -17,34 +17,42 @@
|
|
|
17
17
|
*/
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.makeApp = void 0;
|
|
20
|
-
/**
|
|
21
|
-
* This module gives a function that creates a mountable, or app.use()-able,
|
|
22
|
-
* express ASMail-Configuration application.
|
|
23
|
-
*/
|
|
24
20
|
const express = require("express");
|
|
25
|
-
// Internal libs
|
|
26
21
|
const body_parsers_1 = require("../lib-server/middleware/body-parsers");
|
|
27
|
-
// routes
|
|
28
|
-
const mid_auth_1 = require("../lib-server/routes/sessions/mid-auth");
|
|
29
|
-
const start_1 = require("../lib-server/routes/sessions/start");
|
|
30
22
|
const close_1 = require("../lib-server/routes/sessions/close");
|
|
31
23
|
const param_getter_1 = require("./routes/config/param-getter");
|
|
32
24
|
const param_setter_1 = require("./routes/config/param-setter");
|
|
33
25
|
const api = require("../lib-common/service-api/asmail/config");
|
|
26
|
+
const mid_access_1 = require("../lib-server/mid-access");
|
|
34
27
|
function makeApp(domain, sessions, recipients, midAuthorizer) {
|
|
35
28
|
const app = express();
|
|
36
29
|
app.disable('etag');
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
// Login
|
|
31
|
+
(0, mid_access_1.addMailerIdLoginRoutes)(app, domain, '/' + api.midLogin.URL_PART, sessions, recipients.exists, midAuthorizer);
|
|
39
32
|
// *** Require authorized session for everything below ***
|
|
40
33
|
app.use(sessions.ensureAuthorizedSession());
|
|
41
34
|
app.post('/' + api.closeSession.URL_END, (0, body_parsers_1.emptyBody)(), (0, close_1.closeSession)());
|
|
42
35
|
app.route('/' + api.p.initPubKey.URL_END)
|
|
43
36
|
.get((0, param_getter_1.getParam)(recipients.getPubKey))
|
|
44
37
|
.put((0, body_parsers_1.json)('4kb', true), (0, param_setter_1.setParam)(recipients.setPubKey));
|
|
38
|
+
app.route('/' + api.p.anonSenderPolicy.URL_END)
|
|
39
|
+
.get((0, param_getter_1.getParam)(recipients.getAnonSenderInvites))
|
|
40
|
+
.put((0, body_parsers_1.json)('40kb', true), (0, param_setter_1.setParam)(recipients.setAnonSenderPolicy));
|
|
45
41
|
app.route('/' + api.p.anonSenderInvites.URL_END)
|
|
46
42
|
.get((0, param_getter_1.getParam)(recipients.getAnonSenderInvites))
|
|
47
|
-
.put((0, body_parsers_1.json)('
|
|
43
|
+
.put((0, body_parsers_1.json)('40kb', true), (0, param_setter_1.setParam)(recipients.setAnonSenderInvites));
|
|
44
|
+
app.route('/' + api.p.authSenderPolicy.URL_END)
|
|
45
|
+
.get((0, param_getter_1.getParam)(recipients.getAuthSenderPolicy))
|
|
46
|
+
.put((0, body_parsers_1.json)('4kb', true), (0, param_setter_1.setParam)(recipients.setAuthSenderPolicy));
|
|
47
|
+
app.route('/' + api.p.authSenderInvites.URL_END)
|
|
48
|
+
.get((0, param_getter_1.getParam)(recipients.getAuthSenderInvites))
|
|
49
|
+
.put((0, body_parsers_1.json)('40kb', true), (0, param_setter_1.setParam)(recipients.setAuthSenderInvites));
|
|
50
|
+
app.route('/' + api.p.authSenderWhitelist.URL_END)
|
|
51
|
+
.get((0, param_getter_1.getParam)(recipients.getAuthSenderWhitelist))
|
|
52
|
+
.put((0, body_parsers_1.json)('40kb', true), (0, param_setter_1.setParam)(recipients.setAuthSenderWhitelist));
|
|
53
|
+
app.route('/' + api.p.authSenderBlacklist.URL_END)
|
|
54
|
+
.get((0, param_getter_1.getParam)(recipients.getAuthSenderBlacklist))
|
|
55
|
+
.put((0, body_parsers_1.json)('40kb', true), (0, param_setter_1.setParam)(recipients.setAuthSenderBlacklist));
|
|
48
56
|
return app;
|
|
49
57
|
}
|
|
50
58
|
exports.makeApp = makeApp;
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This module gives a function that creates a mountable, or app.use()-able,
|
|
3
|
-
* express ASMail application.
|
|
4
|
-
*/
|
|
5
1
|
import * as express from 'express';
|
|
6
2
|
import { SessionsFactory } from './resources/delivery-sessions';
|
|
7
|
-
import { Factory as
|
|
3
|
+
import { Factory as RecipFactory } from './resources/recipients';
|
|
8
4
|
import { IMidAuthorizer } from './routes/delivery/sender-authorization';
|
|
9
|
-
export declare function makeApp(domain: string, sessions: SessionsFactory, recipients:
|
|
5
|
+
export declare function makeApp(domain: string, sessions: SessionsFactory, recipients: RecipFactory, midAuthorizer: IMidAuthorizer): express.Express;
|
package/build/asmail/delivery.js
CHANGED
|
@@ -17,14 +17,8 @@
|
|
|
17
17
|
*/
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.makeApp = void 0;
|
|
20
|
-
/**
|
|
21
|
-
* This module gives a function that creates a mountable, or app.use()-able,
|
|
22
|
-
* express ASMail application.
|
|
23
|
-
*/
|
|
24
20
|
const express = require("express");
|
|
25
|
-
// Internal libs
|
|
26
21
|
const body_parsers_1 = require("../lib-server/middleware/body-parsers");
|
|
27
|
-
// Modules for ASMail delivery protocol
|
|
28
22
|
const start_session_1 = require("./routes/delivery/start-session");
|
|
29
23
|
const pre_flight_1 = require("./routes/delivery/pre-flight");
|
|
30
24
|
const restart_session_1 = require("./routes/delivery/restart-session");
|
|
@@ -22,7 +22,6 @@ exports.DeliverySessions = void 0;
|
|
|
22
22
|
*/
|
|
23
23
|
const mem_backed_sessions_factory_1 = require("../../lib-server/resources/mem-backed-sessions-factory");
|
|
24
24
|
const sessions_1 = require("../../lib-server/resources/sessions");
|
|
25
|
-
const binding_1 = require("../../lib-common/binding");
|
|
26
25
|
class DeliverySessions extends mem_backed_sessions_factory_1.InMemorySessions {
|
|
27
26
|
constructor(timeoutSecs) {
|
|
28
27
|
super(timeoutSecs, sessionId => this.makeSessionParams(sessionId));
|
|
@@ -84,7 +83,7 @@ class DeliverySessions extends mem_backed_sessions_factory_1.InMemorySessions {
|
|
|
84
83
|
static make(timeout) {
|
|
85
84
|
const factory = new DeliverySessions(timeout);
|
|
86
85
|
const wrap = (0, sessions_1.wrapFactory)(factory);
|
|
87
|
-
wrap.getSessionForMsg =
|
|
86
|
+
wrap.getSessionForMsg = factory.getSessionForMsg.bind(factory);
|
|
88
87
|
return Object.freeze(wrap);
|
|
89
88
|
}
|
|
90
89
|
}
|
|
@@ -22,7 +22,16 @@ export declare const SC: {
|
|
|
22
22
|
WRONG_OBJ_STATE: string;
|
|
23
23
|
OBJ_FILE_INCOMPLETE: string;
|
|
24
24
|
};
|
|
25
|
-
export
|
|
25
|
+
export interface InboxParams {
|
|
26
|
+
"pubkey": deliveryApi.initPubKey.Reply;
|
|
27
|
+
"anonymous/policy": AnonSenderPolicy;
|
|
28
|
+
"anonymous/invites": AnonSenderInvites;
|
|
29
|
+
"authenticated/policy": AuthSenderPolicy;
|
|
30
|
+
"authenticated/blacklist": Blacklist;
|
|
31
|
+
"authenticated/whitelist": Whitelist;
|
|
32
|
+
"authenticated/invites": AuthSenderInvites;
|
|
33
|
+
}
|
|
34
|
+
export declare class Inbox extends UserFiles<InboxParams> {
|
|
26
35
|
private metas;
|
|
27
36
|
private objFiles;
|
|
28
37
|
private mailEventsSink;
|
|
@@ -97,35 +106,17 @@ export declare class Inbox extends UserFiles {
|
|
|
97
106
|
*/
|
|
98
107
|
getObj(msgId: string, objId: string, header: boolean, segsOfs: number, segsLimit: number | undefined): Promise<ObjReader>;
|
|
99
108
|
/**
|
|
100
|
-
* @param inbox
|
|
101
109
|
* @param initKeyCerts
|
|
102
110
|
* @param setDefault when it is true, sets default values -- null --
|
|
103
111
|
* in place of an object with certs.
|
|
104
112
|
* @return a promise, resolvable to true, when certs are set, or
|
|
105
113
|
* resolvable to false, when given certs do not pass sanitization.
|
|
106
114
|
*/
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
static setAnonSenderPolicy(inbox: Inbox, policy: AnonSenderPolicy, setDefault: boolean): Promise<boolean>;
|
|
115
|
-
getAnonSenderPolicy(): Promise<AnonSenderPolicy>;
|
|
116
|
-
static getAnonSenderInvites(inbox: Inbox): Promise<AnonSenderInvites>;
|
|
117
|
-
static setAnonSenderInvites(inbox: Inbox, invites: AnonSenderInvites, setDefault: boolean): Promise<boolean>;
|
|
118
|
-
getAnonSenderInvites(): Promise<AnonSenderInvites>;
|
|
119
|
-
static getAuthSenderPolicy(inbox: Inbox): Promise<AuthSenderPolicy>;
|
|
120
|
-
static setAuthSenderPolicy(inbox: Inbox, policy: AuthSenderPolicy, setDefault: boolean): Promise<boolean>;
|
|
121
|
-
getAuthSenderPolicy(): Promise<AuthSenderPolicy>;
|
|
122
|
-
static getAuthSenderBlacklist(inbox: Inbox): Promise<Blacklist>;
|
|
123
|
-
static setAuthSenderBlacklist(inbox: Inbox, list: Blacklist, setDefault: boolean): Promise<boolean>;
|
|
124
|
-
getAuthSenderBlacklist(): Promise<Blacklist>;
|
|
125
|
-
static getAuthSenderWhitelist(inbox: Inbox): Promise<Whitelist>;
|
|
126
|
-
static setAuthSenderWhitelist(inbox: Inbox, list: Whitelist, setDefault: boolean): Promise<boolean>;
|
|
127
|
-
getAuthSenderWhitelist(): Promise<Whitelist>;
|
|
128
|
-
static getAuthSenderInvites(inbox: Inbox): Promise<AuthSenderInvites>;
|
|
129
|
-
static setAuthSenderInvites(inbox: Inbox, invites: AuthSenderInvites, setDefault: boolean): Promise<boolean>;
|
|
130
|
-
getAuthSenderInvites(): Promise<AuthSenderInvites>;
|
|
115
|
+
setPubKey(initKeyCerts: deliveryApi.initPubKey.Reply, setDefault: boolean): Promise<boolean>;
|
|
116
|
+
setAnonSenderPolicy(policy: AnonSenderPolicy, setDefault: boolean): Promise<boolean>;
|
|
117
|
+
setAnonSenderInvites(invites: AnonSenderInvites, setDefault: boolean): Promise<boolean>;
|
|
118
|
+
setAuthSenderPolicy(policy: AuthSenderPolicy, setDefault: boolean): Promise<boolean>;
|
|
119
|
+
setAuthSenderBlacklist(list: Blacklist, setDefault: boolean): Promise<boolean>;
|
|
120
|
+
setAuthSenderWhitelist(list: Whitelist, setDefault: boolean): Promise<boolean>;
|
|
121
|
+
setAuthSenderInvites(invites: AuthSenderInvites, setDefault: boolean): Promise<boolean>;
|
|
131
122
|
}
|