@contember/engine-server 1.2.1 → 1.3.0-alpha.2
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/dist/src/start.js +16 -15
- package/dist/src/start.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/tests/e2e/assume-identity.test.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -22
- package/src/start.ts +10 -8
- package/src/tsconfig.json +4 -45
- package/tests/e2e/assume-identity.test.ts +0 -1
- package/tests/tsconfig.json +2 -6
- package/tsconfig.json +2 -6
- package/dist/src/MasterContainer.d.ts +0 -125
- package/dist/src/MasterContainer.d.ts.map +0 -1
- package/dist/src/MasterContainer.js +0 -102
- package/dist/src/MasterContainer.js.map +0 -1
- package/dist/src/bootstrap/Initializer.d.ts +0 -7
- package/dist/src/bootstrap/Initializer.d.ts.map +0 -1
- package/dist/src/bootstrap/Initializer.js +0 -27
- package/dist/src/bootstrap/Initializer.js.map +0 -1
- package/dist/src/bootstrap/index.d.ts +0 -2
- package/dist/src/bootstrap/index.d.ts.map +0 -1
- package/dist/src/bootstrap/index.js +0 -18
- package/dist/src/bootstrap/index.js.map +0 -1
- package/dist/src/config/config.d.ts +0 -17
- package/dist/src/config/config.d.ts.map +0 -1
- package/dist/src/config/config.js +0 -30
- package/dist/src/config/config.js.map +0 -1
- package/dist/src/config/configSchema.d.ts +0 -201
- package/dist/src/config/configSchema.d.ts.map +0 -1
- package/dist/src/config/configSchema.js +0 -119
- package/dist/src/config/configSchema.js.map +0 -1
- package/dist/src/config/configTemplate.d.ts +0 -2
- package/dist/src/config/configTemplate.d.ts.map +0 -1
- package/dist/src/config/configTemplate.js +0 -90
- package/dist/src/config/configTemplate.js.map +0 -1
- package/dist/src/config/projectConfigResolver.d.ts +0 -8
- package/dist/src/config/projectConfigResolver.d.ts.map +0 -1
- package/dist/src/config/projectConfigResolver.js +0 -91
- package/dist/src/config/projectConfigResolver.js.map +0 -1
- package/dist/src/config/tenantConfigResolver.d.ts +0 -8
- package/dist/src/config/tenantConfigResolver.d.ts.map +0 -1
- package/dist/src/config/tenantConfigResolver.js +0 -31
- package/dist/src/config/tenantConfigResolver.js.map +0 -1
- package/dist/src/index.d.ts +0 -13
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -33
- package/dist/src/index.js.map +0 -1
- package/dist/src/project/ProjectContainer.d.ts +0 -58
- package/dist/src/project/ProjectContainer.d.ts.map +0 -1
- package/dist/src/project/ProjectContainer.js +0 -66
- package/dist/src/project/ProjectContainer.js.map +0 -1
- package/dist/src/project/ProjectContainerResolver.d.ts +0 -24
- package/dist/src/project/ProjectContainerResolver.d.ts.map +0 -1
- package/dist/src/project/ProjectContainerResolver.js +0 -75
- package/dist/src/project/ProjectContainerResolver.js.map +0 -1
- package/dist/src/project/ProjectContainerStore.d.ts +0 -18
- package/dist/src/project/ProjectContainerStore.d.ts.map +0 -1
- package/dist/src/project/ProjectContainerStore.js +0 -30
- package/dist/src/project/ProjectContainerStore.js.map +0 -1
- package/dist/src/project/ProjectInitializer.d.ts +0 -14
- package/dist/src/project/ProjectInitializer.d.ts.map +0 -1
- package/dist/src/project/ProjectInitializer.js +0 -28
- package/dist/src/project/ProjectInitializer.js.map +0 -1
- package/dist/src/project/ProjectSchemaResolver.d.ts +0 -14
- package/dist/src/project/ProjectSchemaResolver.d.ts.map +0 -1
- package/dist/src/project/ProjectSchemaResolver.js +0 -30
- package/dist/src/project/ProjectSchemaResolver.js.map +0 -1
- package/dist/src/project/index.d.ts +0 -5
- package/dist/src/project/index.d.ts.map +0 -1
- package/dist/src/project/index.js +0 -21
- package/dist/src/project/index.js.map +0 -1
- package/dist/src/projectGroup/ProjectGroupContainer.d.ts +0 -26
- package/dist/src/projectGroup/ProjectGroupContainer.d.ts.map +0 -1
- package/dist/src/projectGroup/ProjectGroupContainer.js +0 -70
- package/dist/src/projectGroup/ProjectGroupContainer.js.map +0 -1
- package/dist/src/projectGroup/ProjectGroupResolver.d.ts +0 -7
- package/dist/src/projectGroup/ProjectGroupResolver.d.ts.map +0 -1
- package/dist/src/projectGroup/ProjectGroupResolver.js +0 -13
- package/dist/src/projectGroup/ProjectGroupResolver.js.map +0 -1
- package/dist/src/utils/index.d.ts +0 -3
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js +0 -19
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/utils/sentry.d.ts +0 -10
- package/dist/src/utils/sentry.d.ts.map +0 -1
- package/dist/src/utils/sentry.js +0 -80
- package/dist/src/utils/sentry.js.map +0 -1
- package/dist/src/utils/serverStartup.d.ts +0 -33
- package/dist/src/utils/serverStartup.d.ts.map +0 -1
- package/dist/src/utils/serverStartup.js +0 -79
- package/dist/src/utils/serverStartup.js.map +0 -1
- package/dist/src/utils/serverTermination.d.ts +0 -13
- package/dist/src/utils/serverTermination.d.ts.map +0 -1
- package/dist/src/utils/serverTermination.js +0 -24
- package/dist/src/utils/serverTermination.js.map +0 -1
- package/dist/src/utils/strings.d.ts +0 -2
- package/dist/src/utils/strings.d.ts.map +0 -1
- package/dist/src/utils/strings.js +0 -6
- package/dist/src/utils/strings.js.map +0 -1
- package/dist/tests/cases/configResolver.test.d.ts +0 -2
- package/dist/tests/cases/configResolver.test.d.ts.map +0 -1
- package/dist/tests/cases/configResolver.test.js +0 -67
- package/dist/tests/cases/configResolver.test.js.map +0 -1
- package/src/MasterContainer.ts +0 -206
- package/src/bootstrap/Initializer.ts +0 -27
- package/src/bootstrap/index.ts +0 -1
- package/src/config/config.ts +0 -56
- package/src/config/configSchema.ts +0 -135
- package/src/config/configTemplate.ts +0 -86
- package/src/config/projectConfigResolver.ts +0 -86
- package/src/config/tenantConfigResolver.ts +0 -41
- package/src/index.ts +0 -23
- package/src/project/ProjectContainer.ts +0 -95
- package/src/project/ProjectContainerResolver.ts +0 -87
- package/src/project/ProjectContainerStore.ts +0 -33
- package/src/project/ProjectInitializer.ts +0 -28
- package/src/project/ProjectSchemaResolver.ts +0 -33
- package/src/project/index.ts +0 -4
- package/src/projectGroup/ProjectGroupContainer.ts +0 -134
- package/src/projectGroup/ProjectGroupResolver.ts +0 -12
- package/src/utils/index.ts +0 -2
- package/src/utils/sentry.ts +0 -56
- package/src/utils/serverStartup.ts +0 -78
- package/src/utils/serverTermination.ts +0 -19
- package/src/utils/strings.ts +0 -1
- package/tests/cases/configResolver.test.ts +0 -67
package/dist/src/utils/index.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./sentry"), exports);
|
|
18
|
-
__exportStar(require("./strings"), exports);
|
|
19
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,4CAAyB"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { LogEntry, LoggerHandler, LogLevel } from '@contember/logger';
|
|
2
|
-
export declare class SentryLoggerHandler implements LoggerHandler {
|
|
3
|
-
private readonly logLevel;
|
|
4
|
-
constructor(logLevel: LogLevel);
|
|
5
|
-
getMinLevel(): number;
|
|
6
|
-
handle(entry: LogEntry): void;
|
|
7
|
-
close(): void;
|
|
8
|
-
}
|
|
9
|
-
export declare const createSentryLoggerHandler: (dsn?: string) => null | LoggerHandler;
|
|
10
|
-
//# sourceMappingURL=sentry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.d.ts","sourceRoot":"","sources":["../../../src/utils/sentry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAa,MAAM,mBAAmB,CAAA;AAEhF,qBAAa,mBAAoB,YAAW,aAAa;IAEvD,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAIpC,WAAW,IAAI,MAAM;IAIrB,MAAM,CAAC,KAAK,EAAE,QAAQ;IA0BtB,KAAK,IAAI,IAAI;CAEb;AAED,eAAO,MAAM,yBAAyB,SAAU,MAAM,KAAG,IAAI,GAAG,aAW/D,CAAA"}
|
package/dist/src/utils/sentry.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.createSentryLoggerHandler = exports.SentryLoggerHandler = void 0;
|
|
27
|
-
const Sentry = __importStar(require("@sentry/node"));
|
|
28
|
-
const engine_http_1 = require("@contember/engine-http");
|
|
29
|
-
const logger_1 = require("@contember/logger");
|
|
30
|
-
class SentryLoggerHandler {
|
|
31
|
-
constructor(logLevel) {
|
|
32
|
-
this.logLevel = logLevel;
|
|
33
|
-
}
|
|
34
|
-
getMinLevel() {
|
|
35
|
-
return this.logLevel.value;
|
|
36
|
-
}
|
|
37
|
-
handle(entry) {
|
|
38
|
-
if (!entry.error || entry.level.value < this.logLevel.value) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
Sentry.captureException(entry.error, scope => {
|
|
42
|
-
var _a, _b, _c;
|
|
43
|
-
scope.setTag('project', (_a = entry.loggerAttributes.project) !== null && _a !== void 0 ? _a : entry.ownAttributes.project);
|
|
44
|
-
scope.setTag('module', (_b = entry.loggerAttributes.module) !== null && _b !== void 0 ? _b : entry.ownAttributes.module);
|
|
45
|
-
scope.setLevel('error');
|
|
46
|
-
scope.setUser({
|
|
47
|
-
id: (_c = entry.loggerAttributes.user) !== null && _c !== void 0 ? _c : entry.ownAttributes.user,
|
|
48
|
-
});
|
|
49
|
-
scope.setExtra('requestId', entry.loggerAttributes.requestId);
|
|
50
|
-
scope.addEventProcessor(event => {
|
|
51
|
-
var _a, _b;
|
|
52
|
-
return {
|
|
53
|
-
...event,
|
|
54
|
-
request: {
|
|
55
|
-
url: (_a = entry.loggerAttributes.url) !== null && _a !== void 0 ? _a : entry.ownAttributes.url,
|
|
56
|
-
data: (_b = entry.loggerAttributes[engine_http_1.LoggerRequestSymbol]) === null || _b === void 0 ? void 0 : _b.body,
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
|
-
});
|
|
60
|
-
return scope;
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
close() {
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
exports.SentryLoggerHandler = SentryLoggerHandler;
|
|
67
|
-
const createSentryLoggerHandler = (dsn) => {
|
|
68
|
-
if (!dsn) {
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
Sentry.init({
|
|
72
|
-
dsn: dsn,
|
|
73
|
-
integrations: integrations => {
|
|
74
|
-
return integrations.filter(integration => integration.name !== 'Console' && integration.name !== 'Http');
|
|
75
|
-
},
|
|
76
|
-
});
|
|
77
|
-
return new SentryLoggerHandler(logger_1.LogLevels.warn);
|
|
78
|
-
};
|
|
79
|
-
exports.createSentryLoggerHandler = createSentryLoggerHandler;
|
|
80
|
-
//# sourceMappingURL=sentry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sentry.js","sourceRoot":"","sources":["../../../src/utils/sentry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAsC;AACtC,wDAA4D;AAC5D,8CAAgF;AAEhF,MAAa,mBAAmB;IAC/B,YACkB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAEpC,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAA;IAC3B,CAAC;IAED,MAAM,CAAC,KAAe;QACrB,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YAC5D,OAAM;SACN;QACD,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;;YAC5C,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,MAAA,KAAK,CAAC,gBAAgB,CAAC,OAAO,mCAAI,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YACtF,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAA,KAAK,CAAC,gBAAgB,CAAC,MAAM,mCAAI,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;YACnF,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YACvB,KAAK,CAAC,OAAO,CAAC;gBACb,EAAE,EAAE,MAAA,KAAK,CAAC,gBAAgB,CAAC,IAAI,mCAAI,KAAK,CAAC,aAAa,CAAC,IAAI;aAC3D,CAAC,CAAA;YACF,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;YAE7D,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;;gBAC/B,OAAO;oBACN,GAAG,KAAK;oBACR,OAAO,EAAE;wBACR,GAAG,EAAE,MAAA,KAAK,CAAC,gBAAgB,CAAC,GAAG,mCAAI,KAAK,CAAC,aAAa,CAAC,GAAG;wBAC1D,IAAI,EAAE,MAAA,KAAK,CAAC,gBAAgB,CAAC,iCAAmB,CAAC,0CAAE,IAAI;qBACvD;iBACD,CAAA;YACF,CAAC,CAAC,CAAA;YACF,OAAO,KAAK,CAAA;QACb,CAAC,CAAC,CAAA;IACH,CAAC;IAED,KAAK;IACL,CAAC;CACD;AAtCD,kDAsCC;AAEM,MAAM,yBAAyB,GAAG,CAAC,GAAY,EAAwB,EAAE;IAC/E,IAAI,CAAC,GAAG,EAAE;QACT,OAAO,IAAI,CAAA;KACX;IACD,MAAM,CAAC,IAAI,CAAC;QACX,GAAG,EAAE,GAAG;QACR,YAAY,EAAE,YAAY,CAAC,EAAE;YAC5B,OAAO,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;QACzG,CAAC;KACD,CAAC,CAAA;IACF,OAAO,IAAI,mBAAmB,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAA;AAC/C,CAAC,CAAA;AAXY,QAAA,yBAAyB,6BAWrC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Plugin } from '@contember/engine-plugins';
|
|
2
|
-
import { Type } from '@contember/typesafe';
|
|
3
|
-
import { Logger } from '@contember/logger';
|
|
4
|
-
export declare const getServerVersion: () => string;
|
|
5
|
-
export declare const isDebugMode: () => boolean;
|
|
6
|
-
export declare const printStartInfo: ({ version, isDebug }: {
|
|
7
|
-
version: string;
|
|
8
|
-
isDebug: boolean;
|
|
9
|
-
}, logger: Logger) => void;
|
|
10
|
-
export declare const resolveServerConfig: <T extends {
|
|
11
|
-
readonly port: number;
|
|
12
|
-
readonly http: {
|
|
13
|
-
readonly requestBodySize?: string | undefined;
|
|
14
|
-
};
|
|
15
|
-
readonly logging: {
|
|
16
|
-
sentry?: {
|
|
17
|
-
dsn: string;
|
|
18
|
-
} | undefined;
|
|
19
|
-
} | {
|
|
20
|
-
readonly sentry?: {
|
|
21
|
-
readonly dsn: string;
|
|
22
|
-
} | undefined;
|
|
23
|
-
};
|
|
24
|
-
}>({ plugins, serverConfigSchema }: {
|
|
25
|
-
plugins: Plugin[];
|
|
26
|
-
serverConfigSchema: Type<T>;
|
|
27
|
-
}) => Promise<{
|
|
28
|
-
serverConfig: T;
|
|
29
|
-
projectConfigResolver: import("../config/projectConfigResolver").ProjectConfigResolver;
|
|
30
|
-
tenantConfigResolver: import("..").TenantConfigResolver;
|
|
31
|
-
}>;
|
|
32
|
-
export declare const createDefaultLogger: () => Logger;
|
|
33
|
-
//# sourceMappingURL=serverStartup.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serverStartup.d.ts","sourceRoot":"","sources":["../../../src/utils/serverStartup.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEnE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAyC,MAAM,EAAuC,MAAM,mBAAmB,CAAA;AAEtH,eAAO,MAAM,gBAAgB,QAAO,MAKnC,CAAA;AAED,eAAO,MAAM,WAAW,QAAO,OAAiD,CAAA;AAEhF,eAAO,MAAM,cAAc;aAAqC,MAAM;aAAW,OAAO;WAAY,MAAM,SAOzG,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;aAA8E,MAAM,EAAE;;;;;;EAcrH,CAAA;AAED,eAAO,MAAM,mBAAmB,QAAO,MAqCtC,CAAA"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createDefaultLogger = exports.resolveServerConfig = exports.printStartInfo = exports.isDebugMode = exports.getServerVersion = void 0;
|
|
4
|
-
const node_path_1 = require("node:path");
|
|
5
|
-
const config_1 = require("../config/config");
|
|
6
|
-
const logger_1 = require("@contember/logger");
|
|
7
|
-
const getServerVersion = () => {
|
|
8
|
-
const packageJsonFile = process.env.CONTEMBER_PACKAGE_JSON || (0, node_path_1.join)(__dirname, '../../../package.json');
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
10
|
-
const version = require(packageJsonFile).version;
|
|
11
|
-
return version;
|
|
12
|
-
};
|
|
13
|
-
exports.getServerVersion = getServerVersion;
|
|
14
|
-
const isDebugMode = () => process.env.NODE_ENV === 'development';
|
|
15
|
-
exports.isDebugMode = isDebugMode;
|
|
16
|
-
const printStartInfo = ({ version, isDebug }, logger) => {
|
|
17
|
-
logger.info(`Starting Contember ${version}`);
|
|
18
|
-
logger.info(`NODE_ENV is set to ${process.env.NODE_ENV}`);
|
|
19
|
-
if (isDebug) {
|
|
20
|
-
logger.warn('Starting Contember in debug mode');
|
|
21
|
-
logger.warn('NEVER USE debug mode in production environment');
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
exports.printStartInfo = printStartInfo;
|
|
25
|
-
const resolveServerConfig = async ({ plugins, serverConfigSchema }) => {
|
|
26
|
-
const configProcessors = plugins
|
|
27
|
-
.map(it => (it.getConfigProcessor ? it.getConfigProcessor() : null))
|
|
28
|
-
.filter((it) => it !== null);
|
|
29
|
-
const configSources = [];
|
|
30
|
-
for (const configType of ['file', 'yaml', 'json']) {
|
|
31
|
-
const envValue = process.env['CONTEMBER_CONFIG_' + configType.toUpperCase()];
|
|
32
|
-
if (envValue) {
|
|
33
|
-
configSources.push({ type: configType, data: envValue });
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return await (0, config_1.readConfig)(configSources, configProcessors, serverConfigSchema);
|
|
37
|
-
};
|
|
38
|
-
exports.resolveServerConfig = resolveServerConfig;
|
|
39
|
-
const createDefaultLogger = () => {
|
|
40
|
-
var _a, _b;
|
|
41
|
-
const isDebug = (0, exports.isDebugMode)();
|
|
42
|
-
const loggerType = (_a = process.env.CONTEMBER_LOGGER_FORMAT) !== null && _a !== void 0 ? _a : (isDebug ? 'pretty' : 'json');
|
|
43
|
-
const stream = process.stderr;
|
|
44
|
-
const handler = loggerType === 'pretty'
|
|
45
|
-
? new logger_1.PrettyPrintLoggerHandler(stream, {
|
|
46
|
-
formatters: {
|
|
47
|
-
pid: () => undefined,
|
|
48
|
-
loggerId: () => undefined,
|
|
49
|
-
uri: ({ attributes, chalk }) => {
|
|
50
|
-
const color = attributes.status === undefined
|
|
51
|
-
? chalk.cyan
|
|
52
|
-
: attributes.status < 300
|
|
53
|
-
? chalk.green
|
|
54
|
-
: chalk.yellowBright;
|
|
55
|
-
const timeInfo = attributes.totalTimeMs !== undefined ? ` ${attributes.totalTimeMs}ms` : '';
|
|
56
|
-
const statusInfo = attributes.status !== undefined ? ` [${attributes.status}]` : '';
|
|
57
|
-
return { line: color(`${attributes.method}${statusInfo} ${attributes.uri}${timeInfo} ${chalk.white.dim('#' + attributes.requestId)}`) };
|
|
58
|
-
},
|
|
59
|
-
method: () => undefined,
|
|
60
|
-
requestId: () => undefined,
|
|
61
|
-
timeLabel: () => undefined,
|
|
62
|
-
status: () => undefined,
|
|
63
|
-
totalTimeMs: () => undefined,
|
|
64
|
-
events: ({ formattedValue }) => formattedValue === '[]' ? undefined : formattedValue,
|
|
65
|
-
},
|
|
66
|
-
})
|
|
67
|
-
: new logger_1.JsonStreamLoggerHandler(stream);
|
|
68
|
-
const logLevel = (_b = process.env.CONTEMBER_LOGGER_LEVEL) !== null && _b !== void 0 ? _b : 'info';
|
|
69
|
-
return (0, logger_1.createLogger)(handler, {
|
|
70
|
-
pid: process.pid,
|
|
71
|
-
loggerId: Math.random().toString().substring(2),
|
|
72
|
-
}, {
|
|
73
|
-
fingerCrossedOptions: {
|
|
74
|
-
logAlwaysLevel: logger_1.LogLevels[logLevel],
|
|
75
|
-
},
|
|
76
|
-
});
|
|
77
|
-
};
|
|
78
|
-
exports.createDefaultLogger = createDefaultLogger;
|
|
79
|
-
//# sourceMappingURL=serverStartup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serverStartup.js","sourceRoot":"","sources":["../../../src/utils/serverStartup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Logger } from '@contember/logger';
|
|
2
|
-
declare const signals: {
|
|
3
|
-
SIGHUP: number;
|
|
4
|
-
SIGINT: number;
|
|
5
|
-
SIGTERM: number;
|
|
6
|
-
};
|
|
7
|
-
export declare type TerminationJob = (args: {
|
|
8
|
-
signal: keyof typeof signals;
|
|
9
|
-
code: number;
|
|
10
|
-
}) => Promise<void>;
|
|
11
|
-
export declare const listenOnProcessTermination: (jobs: TerminationJob[], logger: Logger) => void;
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=serverTermination.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serverTermination.d.ts","sourceRoot":"","sources":["../../../src/utils/serverTermination.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,QAAA,MAAM,OAAO;;;;CAIZ,CAAA;AACD,oBAAY,cAAc,GAAG,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,OAAO,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AACpG,eAAO,MAAM,0BAA0B,SAAU,cAAc,EAAE,UAAU,MAAM,SAShF,CAAA"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.listenOnProcessTermination = void 0;
|
|
7
|
-
const node_cluster_1 = __importDefault(require("node:cluster"));
|
|
8
|
-
const signals = {
|
|
9
|
-
SIGHUP: 1,
|
|
10
|
-
SIGINT: 2,
|
|
11
|
-
SIGTERM: 15,
|
|
12
|
-
};
|
|
13
|
-
const listenOnProcessTermination = (jobs, logger) => {
|
|
14
|
-
for (const [signal, code] of Object.entries(signals)) {
|
|
15
|
-
process.on(signal, async () => {
|
|
16
|
-
logger.info(`Process ${process.pid} received a ${signal} signal, executing ${jobs.length} termination jobs`);
|
|
17
|
-
await Promise.allSettled(jobs.map(it => it({ signal: signal, code })));
|
|
18
|
-
logger.info(node_cluster_1.default.isMaster ? `All terminated, exiting` : 'All terminated, exiting a worker');
|
|
19
|
-
process.exit(128 + code);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
exports.listenOnProcessTermination = listenOnProcessTermination;
|
|
24
|
-
//# sourceMappingURL=serverTermination.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serverTermination.js","sourceRoot":"","sources":["../../../src/utils/serverTermination.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAkC;AAGlC,MAAM,OAAO,GAAG;IACf,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,EAAE;CACX,CAAA;AAEM,MAAM,0BAA0B,GAAG,CAAC,IAAsB,EAAE,MAAc,EAAE,EAAE;IACpF,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACrD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YAC7B,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,GAAG,eAAe,MAAM,sBAAsB,IAAI,CAAC,MAAM,mBAAmB,CAAC,CAAA;YAC5G,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAA8B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAC9F,MAAM,CAAC,IAAI,CAAC,sBAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAA;YAC9F,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;KACF;AACF,CAAC,CAAA;AATY,QAAA,0BAA0B,8BAStC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../../src/utils/strings.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,WAAY,MAAM,WAA8D,CAAA"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.upperCaseFirst = void 0;
|
|
4
|
-
const upperCaseFirst = (string) => `${string.charAt(0).toUpperCase()}${string.substring(1)}`;
|
|
5
|
-
exports.upperCaseFirst = upperCaseFirst;
|
|
6
|
-
//# sourceMappingURL=strings.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"strings.js","sourceRoot":"","sources":["../../../src/utils/strings.ts"],"names":[],"mappings":";;;AAAO,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;AAA9F,QAAA,cAAc,kBAAgF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configResolver.test.d.ts","sourceRoot":"","sources":["../../../tests/cases/configResolver.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const tenantConfigResolver_1 = require("../../src/config/tenantConfigResolver");
|
|
5
|
-
const configTemplate_1 = require("../../src/config/configTemplate");
|
|
6
|
-
const projectConfigResolver_1 = require("../../src/config/projectConfigResolver");
|
|
7
|
-
const env = {
|
|
8
|
-
DEFAULT_DB_POOL_IDLE_TIMEOUT_MS: '60000',
|
|
9
|
-
DEFAULT_DB_POOL_MAX_CONNECTIONS: '1000',
|
|
10
|
-
DEFAULT_DB_POOL_MAX_CONNECTING: '10',
|
|
11
|
-
DEFAULT_DB_CONNECTION_TIMEOUT_MS: '5000',
|
|
12
|
-
};
|
|
13
|
-
const tenantConfig = {
|
|
14
|
-
db: {
|
|
15
|
-
host: 'c0.cluster-abc.eu-west-1.rds.amazonaws.com',
|
|
16
|
-
port: 5432,
|
|
17
|
-
user: 'u_test_e',
|
|
18
|
-
password: 'PASSWD',
|
|
19
|
-
database: 'p_test_e',
|
|
20
|
-
read: { host: 'c0.cluster-ro-abc.eu-west-1.rds.amazonaws.com' },
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
(0, vitest_1.it)('resolves tenant config config', () => {
|
|
24
|
-
const tenantResolver = (0, tenantConfigResolver_1.createTenantConfigResolver)(env, configTemplate_1.configTemplate.tenant);
|
|
25
|
-
const resolvedTenantConfig = tenantResolver('test', tenantConfig);
|
|
26
|
-
vitest_1.assert.deepEqual(resolvedTenantConfig, {
|
|
27
|
-
db: {
|
|
28
|
-
host: 'c0.cluster-abc.eu-west-1.rds.amazonaws.com',
|
|
29
|
-
port: 5432,
|
|
30
|
-
user: 'u_test_e',
|
|
31
|
-
password: 'PASSWD',
|
|
32
|
-
database: 'p_test_e',
|
|
33
|
-
connectionTimeoutMs: 5000,
|
|
34
|
-
pool: { maxConnections: 1000, maxConnecting: 10, idleTimeoutMs: 60000 },
|
|
35
|
-
read: { host: 'c0.cluster-ro-abc.eu-west-1.rds.amazonaws.com' },
|
|
36
|
-
}, mailer: {}, credentials: {}, secrets: {},
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
(0, vitest_1.it)('resolves project config config', () => {
|
|
40
|
-
const tenantResolver = (0, tenantConfigResolver_1.createTenantConfigResolver)(env, configTemplate_1.configTemplate.tenant);
|
|
41
|
-
const resolvedTenantConfig = tenantResolver('test', tenantConfig);
|
|
42
|
-
const projectConfigResolver = (0, projectConfigResolver_1.createProjectConfigResolver)(env, configTemplate_1.configTemplate, []);
|
|
43
|
-
const resolvedProjectConfig = projectConfigResolver('test-p', {
|
|
44
|
-
db: {
|
|
45
|
-
useTenantDb: true,
|
|
46
|
-
systemSchema: 'system_test_e',
|
|
47
|
-
}, s3: { prefix: 'test-e/test-e' }, stages: { live: { schema: 'content_test_e_live' } },
|
|
48
|
-
}, {}, resolvedTenantConfig);
|
|
49
|
-
vitest_1.assert.deepEqual(resolvedProjectConfig, {
|
|
50
|
-
name: 'Test p',
|
|
51
|
-
slug: 'test-p',
|
|
52
|
-
stages: [{ name: 'Live', slug: 'live', schema: 'content_test_e_live' }],
|
|
53
|
-
db: {
|
|
54
|
-
host: 'c0.cluster-abc.eu-west-1.rds.amazonaws.com',
|
|
55
|
-
port: 5432,
|
|
56
|
-
user: 'u_test_e',
|
|
57
|
-
password: 'PASSWD',
|
|
58
|
-
database: 'p_test_e',
|
|
59
|
-
connectionTimeoutMs: 5000,
|
|
60
|
-
pool: { maxConnections: 1000, maxConnecting: 10, idleTimeoutMs: 60000 },
|
|
61
|
-
read: { host: 'c0.cluster-ro-abc.eu-west-1.rds.amazonaws.com' },
|
|
62
|
-
useTenantDb: true,
|
|
63
|
-
systemSchema: 'system_test_e',
|
|
64
|
-
},
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
//# sourceMappingURL=configResolver.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configResolver.test.js","sourceRoot":"","sources":["../../../tests/cases/configResolver.test.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AACnC,gFAAkF;AAClF,oEAAgE;AAChE,kFAAoF;AAEpF,MAAM,GAAG,GAAG;IACX,+BAA+B,EAAE,OAAO;IACxC,+BAA+B,EAAE,MAAM;IACvC,8BAA8B,EAAE,IAAI;IACpC,gCAAgC,EAAE,MAAM;CACxC,CAAA;AACD,MAAM,YAAY,GAAG;IACpB,EAAE,EAAE;QACH,IAAI,EAAE,4CAA4C;QAClD,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,EAAE,IAAI,EAAE,+CAA+C,EAAE;KAC/D;CACD,CAAA;AACD,IAAA,WAAE,EAAC,+BAA+B,EAAE,GAAG,EAAE;IACxC,MAAM,cAAc,GAAG,IAAA,iDAA0B,EAAC,GAAG,EAAE,+BAAc,CAAC,MAAM,CAAC,CAAA;IAC7E,MAAM,oBAAoB,GAAG,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACjE,eAAM,CAAC,SAAS,CAAC,oBAAoB,EAAE;QACtC,EAAE,EAAE;YACH,IAAI,EAAE,4CAA4C;YAClD,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,UAAU;YACpB,mBAAmB,EAAE,IAAI;YACzB,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;YACvE,IAAI,EAAE,EAAE,IAAI,EAAE,+CAA+C,EAAE;SAC/D,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;KAC3C,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AACF,IAAA,WAAE,EAAC,gCAAgC,EAAE,GAAG,EAAE;IACzC,MAAM,cAAc,GAAG,IAAA,iDAA0B,EAAC,GAAG,EAAE,+BAAc,CAAC,MAAM,CAAC,CAAA;IAC7E,MAAM,oBAAoB,GAAG,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAEjE,MAAM,qBAAqB,GAAG,IAAA,mDAA2B,EAAC,GAAG,EAAE,+BAAc,EAAE,EAAE,CAAC,CAAA;IAClF,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,QAAQ,EAAE;QAC7D,EAAE,EAAE;YACH,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,eAAe;SAC7B,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE;KACvF,EAAE,EAAE,EAAE,oBAAoB,CAAC,CAAA;IAE5B,eAAM,CAAC,SAAS,CAAC,qBAA4B,EAAE;QAC9C,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;QACvE,EAAE,EAAE;YACH,IAAI,EAAE,4CAA4C;YAClD,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,UAAU;YACpB,mBAAmB,EAAE,IAAI;YACzB,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE;YACvE,IAAI,EAAE,EAAE,IAAI,EAAE,+CAA+C,EAAE;YAC/D,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,eAAe;SAC7B;KACD,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
|
package/src/MasterContainer.ts
DELETED
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
import { SystemContainerFactory } from '@contember/engine-system-api'
|
|
2
|
-
import { TenantContainerFactory } from '@contember/engine-tenant-api'
|
|
3
|
-
import { Builder } from '@contember/dic'
|
|
4
|
-
import { ServerConfig } from './config/config'
|
|
5
|
-
import { ModificationHandlerFactory } from '@contember/schema-migrations'
|
|
6
|
-
import { Initializer } from './bootstrap'
|
|
7
|
-
import { Plugin } from '@contember/engine-plugins'
|
|
8
|
-
import {
|
|
9
|
-
compose,
|
|
10
|
-
ContentApiMiddlewareFactory,
|
|
11
|
-
ContentGraphQLContextFactory,
|
|
12
|
-
ContentQueryHandlerFactory,
|
|
13
|
-
ContentSchemaTransferMappingFactory,
|
|
14
|
-
createHomepageMiddleware,
|
|
15
|
-
createLoggerMiddleware,
|
|
16
|
-
createModuleInfoMiddleware,
|
|
17
|
-
createPlaygroundMiddleware,
|
|
18
|
-
createPoweredByHeaderMiddleware,
|
|
19
|
-
createProviders,
|
|
20
|
-
createTimerMiddleware,
|
|
21
|
-
ErrorMiddlewareFactory,
|
|
22
|
-
ExportApiMiddlewareFactory,
|
|
23
|
-
ExportExecutor,
|
|
24
|
-
ImportApiMiddlewareFactory,
|
|
25
|
-
ImportExecutor,
|
|
26
|
-
Koa,
|
|
27
|
-
NotModifiedChecker,
|
|
28
|
-
ProjectGroupResolver as ProjectGroupResolverInterface,
|
|
29
|
-
Providers,
|
|
30
|
-
route,
|
|
31
|
-
SystemApiMiddlewareFactory,
|
|
32
|
-
SystemGraphQLContextFactory,
|
|
33
|
-
SystemGraphQLHandlerFactory,
|
|
34
|
-
SystemSchemaTransferMappingFactory,
|
|
35
|
-
TenantApiMiddlewareFactory,
|
|
36
|
-
TenantGraphQLContextFactory,
|
|
37
|
-
TenantGraphQLHandlerFactory,
|
|
38
|
-
} from '@contember/engine-http'
|
|
39
|
-
import { ProjectContainerFactoryFactory } from './project'
|
|
40
|
-
import koaCompress from 'koa-compress'
|
|
41
|
-
import bodyParser from 'koa-bodyparser'
|
|
42
|
-
import { ProjectConfigResolver } from './config/projectConfigResolver'
|
|
43
|
-
import { TenantConfigResolver } from './config/tenantConfigResolver'
|
|
44
|
-
import { ProjectGroupContainerFactory } from './projectGroup/ProjectGroupContainer'
|
|
45
|
-
import corsMiddleware from '@koa/cors'
|
|
46
|
-
import { ProjectGroupResolver } from './projectGroup/ProjectGroupResolver'
|
|
47
|
-
import { Logger } from '@contember/logger'
|
|
48
|
-
|
|
49
|
-
export interface MasterContainer {
|
|
50
|
-
initializer: Initializer
|
|
51
|
-
koa: Koa
|
|
52
|
-
providers: Providers
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export interface MasterContainerArgs {
|
|
56
|
-
debugMode: boolean
|
|
57
|
-
serverConfig: ServerConfig
|
|
58
|
-
projectConfigResolver: ProjectConfigResolver
|
|
59
|
-
tenantConfigResolver: TenantConfigResolver
|
|
60
|
-
plugins: Plugin[]
|
|
61
|
-
logger: Logger
|
|
62
|
-
version?: string
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export class MasterContainerFactory {
|
|
66
|
-
createBuilder({
|
|
67
|
-
serverConfig,
|
|
68
|
-
debugMode,
|
|
69
|
-
plugins,
|
|
70
|
-
projectConfigResolver,
|
|
71
|
-
tenantConfigResolver,
|
|
72
|
-
version,
|
|
73
|
-
logger,
|
|
74
|
-
}: MasterContainerArgs) {
|
|
75
|
-
return new Builder({})
|
|
76
|
-
.addService('serverConfig', () =>
|
|
77
|
-
serverConfig)
|
|
78
|
-
.addService('debugMode', () =>
|
|
79
|
-
debugMode)
|
|
80
|
-
.addService('version', () =>
|
|
81
|
-
version)
|
|
82
|
-
.addService('projectConfigResolver', () =>
|
|
83
|
-
projectConfigResolver)
|
|
84
|
-
.addService('tenantConfigResolver', () =>
|
|
85
|
-
tenantConfigResolver)
|
|
86
|
-
.addService('plugins', () =>
|
|
87
|
-
plugins)
|
|
88
|
-
.addService('providers', () =>
|
|
89
|
-
createProviders())
|
|
90
|
-
.addService('tenantContainerFactory', ({ providers }) =>
|
|
91
|
-
new TenantContainerFactory(providers))
|
|
92
|
-
.addService('modificationHandlerFactory', () =>
|
|
93
|
-
new ModificationHandlerFactory(ModificationHandlerFactory.defaultFactoryMap))
|
|
94
|
-
.addService('systemContainerFactory', ({ providers, modificationHandlerFactory }) =>
|
|
95
|
-
new SystemContainerFactory(providers, modificationHandlerFactory))
|
|
96
|
-
.addService('projectContainerFactoryFactory', ({ debugMode, plugins, providers }) =>
|
|
97
|
-
new ProjectContainerFactoryFactory(debugMode, plugins, providers))
|
|
98
|
-
.addService('tenantGraphQLHandlerFactory', () =>
|
|
99
|
-
new TenantGraphQLHandlerFactory())
|
|
100
|
-
.addService('systemGraphQLHandlerFactory', ({ debugMode }) =>
|
|
101
|
-
new SystemGraphQLHandlerFactory(debugMode))
|
|
102
|
-
.addService('logger', () =>
|
|
103
|
-
logger)
|
|
104
|
-
.addService('projectGroupContainerFactory', ({ debugMode, providers, systemContainerFactory, tenantContainerFactory, projectContainerFactoryFactory, projectConfigResolver, tenantGraphQLHandlerFactory, systemGraphQLHandlerFactory, logger }) =>
|
|
105
|
-
new ProjectGroupContainerFactory(debugMode, providers, systemContainerFactory, tenantContainerFactory, projectContainerFactoryFactory, projectConfigResolver, tenantGraphQLHandlerFactory, systemGraphQLHandlerFactory, logger))
|
|
106
|
-
.addService('projectGroupContainer', ({ tenantConfigResolver, projectGroupContainerFactory }) =>
|
|
107
|
-
projectGroupContainerFactory.create({ slug: undefined, config: tenantConfigResolver(undefined, {}) }))
|
|
108
|
-
.addService('httpErrorMiddlewareFactory', ({ debugMode }) =>
|
|
109
|
-
new ErrorMiddlewareFactory(debugMode))
|
|
110
|
-
.addService('projectGroupResolver', ({ projectGroupContainer }): ProjectGroupResolverInterface =>
|
|
111
|
-
new ProjectGroupResolver(projectGroupContainer))
|
|
112
|
-
.addService('notModifiedChecker', () =>
|
|
113
|
-
new NotModifiedChecker())
|
|
114
|
-
.addService('contentGraphqlContextFactory', ({ providers }) =>
|
|
115
|
-
new ContentGraphQLContextFactory(providers))
|
|
116
|
-
.addService('contentQueryHandlerFactory', ({ debugMode }) =>
|
|
117
|
-
new ContentQueryHandlerFactory(debugMode))
|
|
118
|
-
.addService('contentApiMiddlewareFactory', ({ projectGroupResolver, notModifiedChecker, contentGraphqlContextFactory, contentQueryHandlerFactory }) =>
|
|
119
|
-
new ContentApiMiddlewareFactory(projectGroupResolver, notModifiedChecker, contentGraphqlContextFactory, contentQueryHandlerFactory))
|
|
120
|
-
.addService('tenantGraphQLContextFactory', () =>
|
|
121
|
-
new TenantGraphQLContextFactory())
|
|
122
|
-
.addService('tenantApiMiddlewareFactory', ({ debugMode, projectGroupResolver, tenantGraphQLContextFactory }) =>
|
|
123
|
-
new TenantApiMiddlewareFactory(debugMode, projectGroupResolver, tenantGraphQLContextFactory))
|
|
124
|
-
.addService('systemGraphQLContextFactory', () =>
|
|
125
|
-
new SystemGraphQLContextFactory())
|
|
126
|
-
.addService('systemApiMiddlewareFactory', ({ debugMode, projectGroupResolver, systemGraphQLContextFactory }) =>
|
|
127
|
-
new SystemApiMiddlewareFactory(debugMode, projectGroupResolver, systemGraphQLContextFactory))
|
|
128
|
-
.addService('contentSchemaTransferMappingFactory', () =>
|
|
129
|
-
new ContentSchemaTransferMappingFactory())
|
|
130
|
-
.addService('systemSchemaTransferMappingFactory', () =>
|
|
131
|
-
new SystemSchemaTransferMappingFactory())
|
|
132
|
-
.addService('importExecutor', ({ contentSchemaTransferMappingFactory, systemSchemaTransferMappingFactory }) =>
|
|
133
|
-
new ImportExecutor(contentSchemaTransferMappingFactory, systemSchemaTransferMappingFactory))
|
|
134
|
-
.addService('exportExecutor', ({ contentSchemaTransferMappingFactory, systemSchemaTransferMappingFactory }) =>
|
|
135
|
-
new ExportExecutor(contentSchemaTransferMappingFactory, systemSchemaTransferMappingFactory))
|
|
136
|
-
.addService('importApiMiddlewareFactory', ({ projectGroupResolver, importExecutor }) =>
|
|
137
|
-
new ImportApiMiddlewareFactory(projectGroupResolver, importExecutor))
|
|
138
|
-
.addService('exportApiMiddlewareFactory', ({ projectGroupResolver, exportExecutor }) =>
|
|
139
|
-
new ExportApiMiddlewareFactory(projectGroupResolver, exportExecutor))
|
|
140
|
-
.addService('koaMiddlewares', ({ contentApiMiddlewareFactory, tenantApiMiddlewareFactory, systemApiMiddlewareFactory, importApiMiddlewareFactory, exportApiMiddlewareFactory, httpErrorMiddlewareFactory, debugMode, version, serverConfig, logger }) =>
|
|
141
|
-
compose([
|
|
142
|
-
koaCompress({
|
|
143
|
-
br: false,
|
|
144
|
-
}),
|
|
145
|
-
bodyParser({
|
|
146
|
-
jsonLimit: serverConfig.http.requestBodySize || '1mb',
|
|
147
|
-
}),
|
|
148
|
-
createPoweredByHeaderMiddleware(debugMode, version ?? 'unknown'),
|
|
149
|
-
createLoggerMiddleware(logger),
|
|
150
|
-
createTimerMiddleware({ debugMode }),
|
|
151
|
-
httpErrorMiddlewareFactory.create(),
|
|
152
|
-
route('/playground$', createPlaygroundMiddleware()),
|
|
153
|
-
createHomepageMiddleware(),
|
|
154
|
-
corsMiddleware(),
|
|
155
|
-
route(
|
|
156
|
-
'/content/:projectSlug/:stageSlug$',
|
|
157
|
-
compose([
|
|
158
|
-
createModuleInfoMiddleware('content'),
|
|
159
|
-
contentApiMiddlewareFactory.create(),
|
|
160
|
-
]),
|
|
161
|
-
),
|
|
162
|
-
route(
|
|
163
|
-
'/tenant$',
|
|
164
|
-
compose([
|
|
165
|
-
createModuleInfoMiddleware('tenant'),
|
|
166
|
-
tenantApiMiddlewareFactory.create(),
|
|
167
|
-
]),
|
|
168
|
-
),
|
|
169
|
-
route(
|
|
170
|
-
'/system/:projectSlug$',
|
|
171
|
-
compose([
|
|
172
|
-
createModuleInfoMiddleware('system'),
|
|
173
|
-
systemApiMiddlewareFactory.create(),
|
|
174
|
-
]),
|
|
175
|
-
),
|
|
176
|
-
route(
|
|
177
|
-
'/import$',
|
|
178
|
-
compose([
|
|
179
|
-
createModuleInfoMiddleware('transfer'),
|
|
180
|
-
importApiMiddlewareFactory.create(),
|
|
181
|
-
]),
|
|
182
|
-
),
|
|
183
|
-
route(
|
|
184
|
-
'/export$',
|
|
185
|
-
compose([
|
|
186
|
-
createModuleInfoMiddleware('transfer'),
|
|
187
|
-
exportApiMiddlewareFactory.create(),
|
|
188
|
-
]),
|
|
189
|
-
),
|
|
190
|
-
]))
|
|
191
|
-
.addService('koa', ({ koaMiddlewares }) => {
|
|
192
|
-
const app = new Koa()
|
|
193
|
-
app.use(koaMiddlewares)
|
|
194
|
-
|
|
195
|
-
return app
|
|
196
|
-
})
|
|
197
|
-
.addService('initializer', ({ projectGroupContainer }) =>
|
|
198
|
-
new Initializer(projectGroupContainer))
|
|
199
|
-
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
create(args: MasterContainerArgs): MasterContainer {
|
|
203
|
-
const container = this.createBuilder(args).build()
|
|
204
|
-
return container.pick('initializer', 'koa', 'providers')
|
|
205
|
-
}
|
|
206
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { ProjectGroupContainer } from '@contember/engine-http'
|
|
2
|
-
|
|
3
|
-
export class Initializer {
|
|
4
|
-
constructor(
|
|
5
|
-
private readonly projectGroupContainer: ProjectGroupContainer,
|
|
6
|
-
) {}
|
|
7
|
-
|
|
8
|
-
public async initialize(): Promise<string[]> {
|
|
9
|
-
const groupContainer = await this.projectGroupContainer
|
|
10
|
-
const tenantMigrationsLogger = groupContainer.logger.child()
|
|
11
|
-
const tenantContainer = groupContainer.tenantContainer
|
|
12
|
-
await tenantContainer.migrationsRunner.run(tenantMigrationsLogger)
|
|
13
|
-
|
|
14
|
-
const projects: string[] = []
|
|
15
|
-
|
|
16
|
-
const tenantProjects = await tenantContainer.projectManager.getProjects(tenantContainer.databaseContext)
|
|
17
|
-
for (const { slug: projectSlug } of tenantProjects) {
|
|
18
|
-
const projectContainer = await groupContainer.projectContainerResolver.getProjectContainer(projectSlug, { alias: false })
|
|
19
|
-
if (!projectContainer) {
|
|
20
|
-
throw new Error()
|
|
21
|
-
}
|
|
22
|
-
const project = projectContainer.project
|
|
23
|
-
projects.push(project.slug)
|
|
24
|
-
}
|
|
25
|
-
return projects
|
|
26
|
-
}
|
|
27
|
-
}
|
package/src/bootstrap/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './Initializer'
|