spec-3nweb-server 1.6.2 → 1.6.4
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 +2 -1
- package/build/3nstorage/3nstorage-app.js +2 -7
- package/build/3nstorage/resources/store.js +1 -1
- package/build/3nstorage/routes/owner/archive-obj-version.js +11 -4
- package/build/admin/admin-app.d.ts +2 -1
- package/build/admin/admin-app.js +2 -2
- package/build/asmail/asmail-app.d.ts +2 -1
- package/build/asmail/asmail-app.js +2 -7
- package/build/lib-common/service-api/3nstorage/owner.d.ts +8 -5
- package/build/lib-common/service-api/3nstorage/owner.js +2 -1
- package/build/lib-server/middleware/error-handler.d.ts +1 -0
- package/build/lib-server/middleware/error-handler.js +11 -2
- package/build/lib.d.ts +5 -4
- package/build/lib.js +12 -4
- package/build/mailerId/mailerId-app.d.ts +2 -1
- package/build/mailerId/mailerId-app.js +2 -2
- package/build/main.js +6 -6
- package/build/run.js +19 -9
- package/build/services.d.ts +3 -2
- package/build/services.js +10 -6
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { MidAuthorizer } from '../lib-server/routes/sessions/mid-auth';
|
|
2
|
+
import { ErrLogger } from '../lib-server/middleware/error-handler';
|
|
2
3
|
import { AppWithWSs } from '../lib-server/web-sockets/app';
|
|
3
|
-
export declare function makeApp(dataFolder: string, domain: string, midAuthorizer: MidAuthorizer): AppWithWSs;
|
|
4
|
+
export declare function makeApp(dataFolder: string, domain: string, midAuthorizer: MidAuthorizer, errLogger?: ErrLogger): AppWithWSs;
|
|
@@ -42,7 +42,7 @@ function setupStaticEntryRoute(app) {
|
|
|
42
42
|
res.status(200).json(json);
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
|
-
function makeApp(dataFolder, domain, midAuthorizer) {
|
|
45
|
+
function makeApp(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);
|
|
@@ -50,12 +50,7 @@ function makeApp(dataFolder, domain, midAuthorizer) {
|
|
|
50
50
|
setupStaticEntryRoute(app.http);
|
|
51
51
|
app.use(PATHS.owner, owners.makeApp(domain, ownersSessions, users, midAuthorizer));
|
|
52
52
|
app.http.use(PATHS.shared, sharing.makeApp(sharingSessions, users));
|
|
53
|
-
app.http.use((0, error_handler_1.makeErrHandler)(
|
|
54
|
-
if (typeof err.status !== 'number') {
|
|
55
|
-
console.error(`\n --- Error occured in storage, when handling ${req.method} request to ${req.originalUrl}`);
|
|
56
|
-
console.error(err);
|
|
57
|
-
}
|
|
58
|
-
}));
|
|
53
|
+
app.http.use((0, error_handler_1.makeErrHandler)(errLogger));
|
|
59
54
|
return app;
|
|
60
55
|
}
|
|
61
56
|
exports.makeApp = makeApp;
|
|
@@ -403,7 +403,7 @@ class Store extends user_files_1.UserFiles {
|
|
|
403
403
|
throw exports.SC.OBJ_UNKNOWN;
|
|
404
404
|
}
|
|
405
405
|
if (status.currentVersion !== version) {
|
|
406
|
-
throw
|
|
406
|
+
throw makeMismatchedObjVerException(status.currentVersion);
|
|
407
407
|
}
|
|
408
408
|
const arch = status.archivedVersions;
|
|
409
409
|
if (Array.isArray(arch)) {
|
|
@@ -38,10 +38,17 @@ function archiveCurrentObjVersion(root, archiveObjVerFunc) {
|
|
|
38
38
|
}
|
|
39
39
|
catch (err) {
|
|
40
40
|
if ("string" !== typeof err) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
if (err.type === 'mismatched-obj-ver') {
|
|
42
|
+
const rep = {
|
|
43
|
+
error: "Current object version doesn't match assumed one.",
|
|
44
|
+
current_version: err.current_version
|
|
45
|
+
};
|
|
46
|
+
res.set(owner_1.HTTP_HEADER.objVersion, `${err.current_version}`);
|
|
47
|
+
res.status(owner_1.archiveObj.SC.mismatchedObjVer).json(rep);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
next(err);
|
|
51
|
+
}
|
|
45
52
|
}
|
|
46
53
|
else if (err === users_1.SC.OBJ_UNKNOWN) {
|
|
47
54
|
res.status(SC.unknownObj).send(root ?
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import * as express from 'express';
|
|
2
|
+
import { ErrLogger } from '../lib-server/middleware/error-handler';
|
|
2
3
|
import { Configurations } from '../services';
|
|
3
|
-
export declare function makeApp(conf: Configurations): express.Express;
|
|
4
|
+
export declare function makeApp(conf: Configurations, errLogger?: ErrLogger): express.Express;
|
package/build/admin/admin-app.js
CHANGED
|
@@ -33,14 +33,14 @@ function apiPart(users) {
|
|
|
33
33
|
app.post('/' + signupApi.addUser.URL_END, (0, body_parsers_1.json)('4kb'), (0, add_1.addUser)(users.add));
|
|
34
34
|
return app;
|
|
35
35
|
}
|
|
36
|
-
function makeApp(conf) {
|
|
36
|
+
function makeApp(conf, errLogger) {
|
|
37
37
|
const app = express();
|
|
38
38
|
const noTokenFile = (conf.signup ? conf.signup.noTokenFile : undefined);
|
|
39
39
|
const users = (0, users_1.makeFactory)(conf.rootFolder, noTokenFile);
|
|
40
40
|
if (conf.signup) {
|
|
41
41
|
app.use('/signup', apiPart(users));
|
|
42
42
|
}
|
|
43
|
-
app.use((0, error_handler_1.makeErrHandler)());
|
|
43
|
+
app.use((0, error_handler_1.makeErrHandler)(errLogger));
|
|
44
44
|
return app;
|
|
45
45
|
}
|
|
46
46
|
exports.makeApp = makeApp;
|
|
@@ -1,3 +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 makeApp(rootFolder: string, domain: string, midAuthorizer: MidAuthorizer, errLogger?: ErrLogger): AppWithWSs;
|
|
@@ -46,7 +46,7 @@ function setupStaticEntryRoute(app) {
|
|
|
46
46
|
res.status(200).json(json);
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
|
-
function makeApp(rootFolder, domain, midAuthorizer) {
|
|
49
|
+
function makeApp(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);
|
|
@@ -56,12 +56,7 @@ function makeApp(rootFolder, domain, midAuthorizer) {
|
|
|
56
56
|
app.http.use(PATHS.delivery, (0, delivery_1.makeApp)(domain, mailDeliverySessions, recipients, midAuthorizer));
|
|
57
57
|
app.use(PATHS.retrieval, (0, retrieval_1.makeApp)(domain, recipientsSessions, recipients, midAuthorizer));
|
|
58
58
|
app.http.use(PATHS.config, (0, config_1.makeApp)(domain, userSettingSessions, recipients, midAuthorizer));
|
|
59
|
-
app.http.use((0, error_handler_1.makeErrHandler)(
|
|
60
|
-
if (typeof err.status !== 'number') {
|
|
61
|
-
console.error(`\n --- Error occured in asmail, when handling ${req.method} request to ${req.originalUrl}`);
|
|
62
|
-
console.error(err);
|
|
63
|
-
}
|
|
64
|
-
}));
|
|
59
|
+
app.http.use((0, error_handler_1.makeErrHandler)(errLogger));
|
|
65
60
|
return app;
|
|
66
61
|
}
|
|
67
62
|
exports.makeApp = makeApp;
|
|
@@ -128,9 +128,10 @@ export declare namespace currentObj {
|
|
|
128
128
|
mismatchedObjVer: number;
|
|
129
129
|
objIncomplete: number;
|
|
130
130
|
};
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
131
|
+
type MismatchedObjVerReply = MismatchedObjVerErrReply;
|
|
132
|
+
}
|
|
133
|
+
export interface MismatchedObjVerErrReply extends ErrorReply {
|
|
134
|
+
current_version: number;
|
|
134
135
|
}
|
|
135
136
|
export declare namespace currentRootObj {
|
|
136
137
|
const EXPRESS_URL_END = "root/current";
|
|
@@ -236,23 +237,25 @@ export declare namespace rootStatus {
|
|
|
236
237
|
export declare namespace archiveObj {
|
|
237
238
|
const EXPRESS_URL_END = "obj/:objId/archive";
|
|
238
239
|
function postAndDelReqUrlEnd(objId: string, version: number): string;
|
|
239
|
-
type
|
|
240
|
+
type MismatchedObjVerReply = MismatchedObjVerErrReply;
|
|
240
241
|
const SC: {
|
|
241
242
|
okPost: number;
|
|
242
243
|
okDelete: number;
|
|
243
244
|
unknownObj: number;
|
|
244
245
|
unknownObjVer: number;
|
|
246
|
+
mismatchedObjVer: number;
|
|
245
247
|
};
|
|
246
248
|
}
|
|
247
249
|
export declare namespace archiveRoot {
|
|
248
250
|
const EXPRESS_URL_END = "root/archive";
|
|
249
251
|
function postAndDelReqUrlEnd(version: number): string;
|
|
250
|
-
type
|
|
252
|
+
type MismatchedObjVerReply = archiveObj.MismatchedObjVerReply;
|
|
251
253
|
const SC: {
|
|
252
254
|
okPost: number;
|
|
253
255
|
okDelete: number;
|
|
254
256
|
unknownObj: number;
|
|
255
257
|
unknownObjVer: number;
|
|
258
|
+
mismatchedObjVer: number;
|
|
256
259
|
};
|
|
257
260
|
}
|
|
258
261
|
export interface ErrorReply {
|
|
@@ -258,7 +258,8 @@ var archiveObj;
|
|
|
258
258
|
okPost: 200,
|
|
259
259
|
okDelete: 200,
|
|
260
260
|
unknownObj: 474,
|
|
261
|
-
unknownObjVer: 494
|
|
261
|
+
unknownObjVer: 494,
|
|
262
|
+
mismatchedObjVer: 495
|
|
262
263
|
};
|
|
263
264
|
})(archiveObj = exports.archiveObj || (exports.archiveObj = {}));
|
|
264
265
|
Object.freeze(archiveObj);
|
|
@@ -13,3 +13,4 @@ export interface HttpError extends ErrorWithCause {
|
|
|
13
13
|
export declare function makeErr(code: number, msg: string, cause?: any): HttpError;
|
|
14
14
|
export declare type ErrLogger = (err: any, req: Request) => void;
|
|
15
15
|
export declare function makeErrHandler(log?: ErrLogger): ErrorRequestHandler;
|
|
16
|
+
export declare function makeErrLoggerToConsole(srvName: string): ErrLogger;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
Copyright (C) 2016, 2020 3NSoft Inc.
|
|
3
|
+
Copyright (C) 2016, 2020, 2023 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
|
|
@@ -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.makeErrHandler = exports.makeErr = void 0;
|
|
19
|
+
exports.makeErrLoggerToConsole = exports.makeErrHandler = exports.makeErr = void 0;
|
|
20
20
|
const http = require("http");
|
|
21
21
|
const error_1 = require("../../lib-common/exceptions/error");
|
|
22
22
|
/**
|
|
@@ -63,4 +63,13 @@ function makeErrHandler(log) {
|
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
65
|
exports.makeErrHandler = makeErrHandler;
|
|
66
|
+
function makeErrLoggerToConsole(srvName) {
|
|
67
|
+
return (err, req) => {
|
|
68
|
+
if (typeof err.status !== 'number') {
|
|
69
|
+
console.error(`\n --- Error occured in ${srvName}, when handling ${req.method} request to ${req.originalUrl}`);
|
|
70
|
+
console.error(err);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
exports.makeErrLoggerToConsole = makeErrLoggerToConsole;
|
|
66
75
|
Object.freeze(exports);
|
package/build/lib.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export import
|
|
1
|
+
export { AppWithWSs } from './lib-server/web-sockets/app';
|
|
2
|
+
export { Configurations, servicesApp, adminApp } from './services';
|
|
3
|
+
export { addSingleUserSignup, getConfsFromEnv, getBindParamsFromEnv } from './run-config';
|
|
4
|
+
export import errors = require('./lib-server/middleware/error-handler');
|
|
5
|
+
export * as mock from './mock/run-in-proc';
|
package/build/lib.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
Copyright (C) 2020 3NSoft Inc.
|
|
3
|
+
Copyright (C) 2020, 2023 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
|
|
@@ -16,8 +16,16 @@
|
|
|
16
16
|
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
exports.
|
|
20
|
-
|
|
21
|
-
exports
|
|
19
|
+
exports.mock = exports.getBindParamsFromEnv = exports.getConfsFromEnv = exports.addSingleUserSignup = exports.adminApp = exports.servicesApp = exports.AppWithWSs = void 0;
|
|
20
|
+
var app_1 = require("./lib-server/web-sockets/app");
|
|
21
|
+
Object.defineProperty(exports, "AppWithWSs", { enumerable: true, get: function () { return app_1.AppWithWSs; } });
|
|
22
|
+
var services_1 = require("./services");
|
|
23
|
+
Object.defineProperty(exports, "servicesApp", { enumerable: true, get: function () { return services_1.servicesApp; } });
|
|
24
|
+
Object.defineProperty(exports, "adminApp", { enumerable: true, get: function () { return services_1.adminApp; } });
|
|
25
|
+
var run_config_1 = require("./run-config");
|
|
26
|
+
Object.defineProperty(exports, "addSingleUserSignup", { enumerable: true, get: function () { return run_config_1.addSingleUserSignup; } });
|
|
27
|
+
Object.defineProperty(exports, "getConfsFromEnv", { enumerable: true, get: function () { return run_config_1.getConfsFromEnv; } });
|
|
28
|
+
Object.defineProperty(exports, "getBindParamsFromEnv", { enumerable: true, get: function () { return run_config_1.getBindParamsFromEnv; } });
|
|
29
|
+
exports.errors = require("./lib-server/middleware/error-handler");
|
|
22
30
|
exports.mock = require("./mock/run-in-proc");
|
|
23
31
|
Object.freeze(exports);
|
|
@@ -3,4 +3,5 @@
|
|
|
3
3
|
* express MailerId application.
|
|
4
4
|
*/
|
|
5
5
|
import * as express from 'express';
|
|
6
|
-
|
|
6
|
+
import { ErrLogger } from '../lib-server/middleware/error-handler';
|
|
7
|
+
export declare function makeApp(rootFolder: string, domain: string, certFile: string, errLogger?: ErrLogger): express.Express;
|
|
@@ -43,7 +43,7 @@ function provisioningApp(sessions, users, certifier, computeDHSharedKey) {
|
|
|
43
43
|
app.post('/' + api.certify.URL_END, sessions.ensureAuthorizedSession(), (0, body_parsers_1.binary)('16kb'), (0, certify_1.certify)(certifier.certify));
|
|
44
44
|
return app;
|
|
45
45
|
}
|
|
46
|
-
function makeApp(rootFolder, domain, certFile) {
|
|
46
|
+
function makeApp(rootFolder, domain, certFile, errLogger) {
|
|
47
47
|
const app = express();
|
|
48
48
|
const certProvisSessions = (0, sessions_1.makeSessionFactory)(2 * 60);
|
|
49
49
|
const users = (0, users_1.makeFactory)(rootFolder);
|
|
@@ -62,7 +62,7 @@ function makeApp(rootFolder, domain, certFile) {
|
|
|
62
62
|
};
|
|
63
63
|
res.status(200).json(json); // content type application/json
|
|
64
64
|
});
|
|
65
|
-
app.use((0, error_handler_1.makeErrHandler)());
|
|
65
|
+
app.use((0, error_handler_1.makeErrHandler)(errLogger));
|
|
66
66
|
return app;
|
|
67
67
|
}
|
|
68
68
|
exports.makeApp = makeApp;
|
package/build/main.js
CHANGED
|
@@ -13,13 +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
19
|
/*
|
|
19
20
|
* This script starts server, according to settings, given in config file.
|
|
20
21
|
*/
|
|
21
|
-
const
|
|
22
|
-
const app_1 = require("./lib-server/web-sockets/app");
|
|
22
|
+
const lib_1 = require("./lib");
|
|
23
23
|
const fs_1 = require("fs");
|
|
24
24
|
const async_fs_node_1 = require("./lib-common/async-fs-node");
|
|
25
25
|
const child_process_1 = require("child_process");
|
|
@@ -64,9 +64,9 @@ const noop = () => { };
|
|
|
64
64
|
(0, async_fs_node_1.unlink)(PID_FILE).catch(noop);
|
|
65
65
|
}
|
|
66
66
|
try {
|
|
67
|
-
app = new
|
|
68
|
-
app.use((0,
|
|
69
|
-
app.use((0,
|
|
67
|
+
app = new lib_1.AppWithWSs();
|
|
68
|
+
app.use((0, lib_1.servicesApp)(conf));
|
|
69
|
+
app.use((0, lib_1.adminApp)(conf));
|
|
70
70
|
const { hostname, port, sslOpts } = conf.servicesConnect;
|
|
71
71
|
await app.start(sslOpts, port, hostname);
|
|
72
72
|
console.log(`Started 3NWeb server at address "${hostname}", port ${port}, ${sslOpts ? 'via TLS' : 'without TLS, and requiring TLS reverse proxy infront.'}`);
|
package/build/run.js
CHANGED
|
@@ -13,22 +13,32 @@
|
|
|
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
|
-
const
|
|
19
|
-
const app_1 = require("./lib-server/web-sockets/app");
|
|
20
|
-
const run_config_1 = require("./run-config");
|
|
19
|
+
const lib_1 = require("./lib");
|
|
21
20
|
(async () => {
|
|
21
|
+
let app = undefined;
|
|
22
|
+
async function stopProcess() {
|
|
23
|
+
if (!app) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
app.stop().then(err => console.log(err));
|
|
27
|
+
app = undefined;
|
|
28
|
+
}
|
|
22
29
|
try {
|
|
23
|
-
const conf = (0,
|
|
24
|
-
|
|
25
|
-
app.use((0,
|
|
26
|
-
app.use((0,
|
|
27
|
-
const { address, port, sslOpts } = (0,
|
|
30
|
+
const conf = (0, lib_1.getConfsFromEnv)();
|
|
31
|
+
app = new lib_1.AppWithWSs();
|
|
32
|
+
app.use((0, lib_1.servicesApp)(conf));
|
|
33
|
+
app.use((0, lib_1.adminApp)(conf));
|
|
34
|
+
const { address, port, sslOpts } = (0, lib_1.getBindParamsFromEnv)();
|
|
28
35
|
await app.start(sslOpts, port, address);
|
|
29
36
|
console.log(`Started 3NWeb server at address ${address}, port ${port}, ${sslOpts ? 'via TLS' : 'without TLS, and requiring TLS reverse proxy infront.'}`);
|
|
37
|
+
process.on('SIGINT', stopProcess);
|
|
38
|
+
process.on('SIGTERM', stopProcess);
|
|
30
39
|
}
|
|
31
40
|
catch (err) {
|
|
41
|
+
stopProcess();
|
|
32
42
|
console.error(err);
|
|
33
43
|
process.exit(-500);
|
|
34
44
|
}
|
package/build/services.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import * as https from "https";
|
|
3
3
|
import { AppWithWSs } from './lib-server/web-sockets/app';
|
|
4
|
+
import { ErrLogger } from "./lib-server/middleware/error-handler";
|
|
4
5
|
export interface Configurations {
|
|
5
6
|
enabledServices: {
|
|
6
7
|
asmail?: boolean;
|
|
@@ -21,5 +22,5 @@ export interface Configurations {
|
|
|
21
22
|
noTokenFile?: string;
|
|
22
23
|
};
|
|
23
24
|
}
|
|
24
|
-
export declare function servicesApp(conf: Configurations): AppWithWSs;
|
|
25
|
-
export declare function adminApp(conf: Configurations): AppWithWSs;
|
|
25
|
+
export declare function servicesApp(conf: Configurations, errLogger?: ErrLogger | 'console'): AppWithWSs;
|
|
26
|
+
export declare function adminApp(conf: Configurations, errLogger?: ErrLogger | 'console'): AppWithWSs;
|
package/build/services.js
CHANGED
|
@@ -23,26 +23,30 @@ const mailerId_app_1 = require("./mailerId/mailerId-app");
|
|
|
23
23
|
const asmail_app_1 = require("./asmail/asmail-app");
|
|
24
24
|
const _3nstorage_app_1 = require("./3nstorage/3nstorage-app");
|
|
25
25
|
const admin_app_1 = require("./admin/admin-app");
|
|
26
|
-
|
|
26
|
+
const error_handler_1 = require("./lib-server/middleware/error-handler");
|
|
27
|
+
function servicesApp(conf, errLogger) {
|
|
27
28
|
if (!conf.enabledServices || (typeof conf.enabledServices !== 'object')) {
|
|
28
29
|
throw new Error('Missing enabled-services sections in confs.');
|
|
29
30
|
}
|
|
30
31
|
const app = new app_1.AppWithWSs();
|
|
31
32
|
const midAuthorizer = (0, mailerid_authorizer_1.validator)(); // share, allowing for caching of certs
|
|
32
33
|
if (conf.enabledServices.mailerId) {
|
|
33
|
-
app.http.use('/mailerid', (0, mailerId_app_1.makeApp)(conf.rootFolder, conf.domain, conf.mailerId.certs));
|
|
34
|
+
app.http.use('/mailerid', (0, mailerId_app_1.makeApp)(conf.rootFolder, conf.domain, conf.mailerId.certs, (errLogger === 'console') ? (0, error_handler_1.makeErrLoggerToConsole)('mailerid') : errLogger));
|
|
34
35
|
}
|
|
35
36
|
if (conf.enabledServices.asmail) {
|
|
36
|
-
app.use('/asmail', (0, asmail_app_1.makeApp)(conf.rootFolder, conf.domain, midAuthorizer));
|
|
37
|
+
app.use('/asmail', (0, asmail_app_1.makeApp)(conf.rootFolder, conf.domain, midAuthorizer, (errLogger === 'console') ? (0, error_handler_1.makeErrLoggerToConsole)('asmail') : errLogger));
|
|
37
38
|
}
|
|
38
39
|
if (conf.enabledServices.storage) {
|
|
39
|
-
app.use('/3nstorage', (0, _3nstorage_app_1.makeApp)(conf.rootFolder, conf.domain, midAuthorizer));
|
|
40
|
+
app.use('/3nstorage', (0, _3nstorage_app_1.makeApp)(conf.rootFolder, conf.domain, midAuthorizer, (errLogger === 'console') ? (0, error_handler_1.makeErrLoggerToConsole)('storage') : errLogger));
|
|
40
41
|
}
|
|
41
42
|
return app;
|
|
42
43
|
}
|
|
43
44
|
exports.servicesApp = servicesApp;
|
|
44
|
-
function adminApp(conf) {
|
|
45
|
-
|
|
45
|
+
function adminApp(conf, errLogger) {
|
|
46
|
+
if (errLogger === 'console') {
|
|
47
|
+
errLogger = (0, error_handler_1.makeErrLoggerToConsole)('3NWeb server admin');
|
|
48
|
+
}
|
|
49
|
+
return new app_1.AppWithWSs((0, admin_app_1.makeApp)(conf, errLogger));
|
|
46
50
|
}
|
|
47
51
|
exports.adminApp = adminApp;
|
|
48
52
|
Object.freeze(exports);
|