@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.
Files changed (126) hide show
  1. package/dist/src/start.js +16 -15
  2. package/dist/src/start.js.map +1 -1
  3. package/dist/src/tsconfig.tsbuildinfo +1 -1
  4. package/dist/tests/e2e/assume-identity.test.js.map +1 -1
  5. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  6. package/package.json +6 -22
  7. package/src/start.ts +10 -8
  8. package/src/tsconfig.json +4 -45
  9. package/tests/e2e/assume-identity.test.ts +0 -1
  10. package/tests/tsconfig.json +2 -6
  11. package/tsconfig.json +2 -6
  12. package/dist/src/MasterContainer.d.ts +0 -125
  13. package/dist/src/MasterContainer.d.ts.map +0 -1
  14. package/dist/src/MasterContainer.js +0 -102
  15. package/dist/src/MasterContainer.js.map +0 -1
  16. package/dist/src/bootstrap/Initializer.d.ts +0 -7
  17. package/dist/src/bootstrap/Initializer.d.ts.map +0 -1
  18. package/dist/src/bootstrap/Initializer.js +0 -27
  19. package/dist/src/bootstrap/Initializer.js.map +0 -1
  20. package/dist/src/bootstrap/index.d.ts +0 -2
  21. package/dist/src/bootstrap/index.d.ts.map +0 -1
  22. package/dist/src/bootstrap/index.js +0 -18
  23. package/dist/src/bootstrap/index.js.map +0 -1
  24. package/dist/src/config/config.d.ts +0 -17
  25. package/dist/src/config/config.d.ts.map +0 -1
  26. package/dist/src/config/config.js +0 -30
  27. package/dist/src/config/config.js.map +0 -1
  28. package/dist/src/config/configSchema.d.ts +0 -201
  29. package/dist/src/config/configSchema.d.ts.map +0 -1
  30. package/dist/src/config/configSchema.js +0 -119
  31. package/dist/src/config/configSchema.js.map +0 -1
  32. package/dist/src/config/configTemplate.d.ts +0 -2
  33. package/dist/src/config/configTemplate.d.ts.map +0 -1
  34. package/dist/src/config/configTemplate.js +0 -90
  35. package/dist/src/config/configTemplate.js.map +0 -1
  36. package/dist/src/config/projectConfigResolver.d.ts +0 -8
  37. package/dist/src/config/projectConfigResolver.d.ts.map +0 -1
  38. package/dist/src/config/projectConfigResolver.js +0 -91
  39. package/dist/src/config/projectConfigResolver.js.map +0 -1
  40. package/dist/src/config/tenantConfigResolver.d.ts +0 -8
  41. package/dist/src/config/tenantConfigResolver.d.ts.map +0 -1
  42. package/dist/src/config/tenantConfigResolver.js +0 -31
  43. package/dist/src/config/tenantConfigResolver.js.map +0 -1
  44. package/dist/src/index.d.ts +0 -13
  45. package/dist/src/index.d.ts.map +0 -1
  46. package/dist/src/index.js +0 -33
  47. package/dist/src/index.js.map +0 -1
  48. package/dist/src/project/ProjectContainer.d.ts +0 -58
  49. package/dist/src/project/ProjectContainer.d.ts.map +0 -1
  50. package/dist/src/project/ProjectContainer.js +0 -66
  51. package/dist/src/project/ProjectContainer.js.map +0 -1
  52. package/dist/src/project/ProjectContainerResolver.d.ts +0 -24
  53. package/dist/src/project/ProjectContainerResolver.d.ts.map +0 -1
  54. package/dist/src/project/ProjectContainerResolver.js +0 -75
  55. package/dist/src/project/ProjectContainerResolver.js.map +0 -1
  56. package/dist/src/project/ProjectContainerStore.d.ts +0 -18
  57. package/dist/src/project/ProjectContainerStore.d.ts.map +0 -1
  58. package/dist/src/project/ProjectContainerStore.js +0 -30
  59. package/dist/src/project/ProjectContainerStore.js.map +0 -1
  60. package/dist/src/project/ProjectInitializer.d.ts +0 -14
  61. package/dist/src/project/ProjectInitializer.d.ts.map +0 -1
  62. package/dist/src/project/ProjectInitializer.js +0 -28
  63. package/dist/src/project/ProjectInitializer.js.map +0 -1
  64. package/dist/src/project/ProjectSchemaResolver.d.ts +0 -14
  65. package/dist/src/project/ProjectSchemaResolver.d.ts.map +0 -1
  66. package/dist/src/project/ProjectSchemaResolver.js +0 -30
  67. package/dist/src/project/ProjectSchemaResolver.js.map +0 -1
  68. package/dist/src/project/index.d.ts +0 -5
  69. package/dist/src/project/index.d.ts.map +0 -1
  70. package/dist/src/project/index.js +0 -21
  71. package/dist/src/project/index.js.map +0 -1
  72. package/dist/src/projectGroup/ProjectGroupContainer.d.ts +0 -26
  73. package/dist/src/projectGroup/ProjectGroupContainer.d.ts.map +0 -1
  74. package/dist/src/projectGroup/ProjectGroupContainer.js +0 -70
  75. package/dist/src/projectGroup/ProjectGroupContainer.js.map +0 -1
  76. package/dist/src/projectGroup/ProjectGroupResolver.d.ts +0 -7
  77. package/dist/src/projectGroup/ProjectGroupResolver.d.ts.map +0 -1
  78. package/dist/src/projectGroup/ProjectGroupResolver.js +0 -13
  79. package/dist/src/projectGroup/ProjectGroupResolver.js.map +0 -1
  80. package/dist/src/utils/index.d.ts +0 -3
  81. package/dist/src/utils/index.d.ts.map +0 -1
  82. package/dist/src/utils/index.js +0 -19
  83. package/dist/src/utils/index.js.map +0 -1
  84. package/dist/src/utils/sentry.d.ts +0 -10
  85. package/dist/src/utils/sentry.d.ts.map +0 -1
  86. package/dist/src/utils/sentry.js +0 -80
  87. package/dist/src/utils/sentry.js.map +0 -1
  88. package/dist/src/utils/serverStartup.d.ts +0 -33
  89. package/dist/src/utils/serverStartup.d.ts.map +0 -1
  90. package/dist/src/utils/serverStartup.js +0 -79
  91. package/dist/src/utils/serverStartup.js.map +0 -1
  92. package/dist/src/utils/serverTermination.d.ts +0 -13
  93. package/dist/src/utils/serverTermination.d.ts.map +0 -1
  94. package/dist/src/utils/serverTermination.js +0 -24
  95. package/dist/src/utils/serverTermination.js.map +0 -1
  96. package/dist/src/utils/strings.d.ts +0 -2
  97. package/dist/src/utils/strings.d.ts.map +0 -1
  98. package/dist/src/utils/strings.js +0 -6
  99. package/dist/src/utils/strings.js.map +0 -1
  100. package/dist/tests/cases/configResolver.test.d.ts +0 -2
  101. package/dist/tests/cases/configResolver.test.d.ts.map +0 -1
  102. package/dist/tests/cases/configResolver.test.js +0 -67
  103. package/dist/tests/cases/configResolver.test.js.map +0 -1
  104. package/src/MasterContainer.ts +0 -206
  105. package/src/bootstrap/Initializer.ts +0 -27
  106. package/src/bootstrap/index.ts +0 -1
  107. package/src/config/config.ts +0 -56
  108. package/src/config/configSchema.ts +0 -135
  109. package/src/config/configTemplate.ts +0 -86
  110. package/src/config/projectConfigResolver.ts +0 -86
  111. package/src/config/tenantConfigResolver.ts +0 -41
  112. package/src/index.ts +0 -23
  113. package/src/project/ProjectContainer.ts +0 -95
  114. package/src/project/ProjectContainerResolver.ts +0 -87
  115. package/src/project/ProjectContainerStore.ts +0 -33
  116. package/src/project/ProjectInitializer.ts +0 -28
  117. package/src/project/ProjectSchemaResolver.ts +0 -33
  118. package/src/project/index.ts +0 -4
  119. package/src/projectGroup/ProjectGroupContainer.ts +0 -134
  120. package/src/projectGroup/ProjectGroupResolver.ts +0 -12
  121. package/src/utils/index.ts +0 -2
  122. package/src/utils/sentry.ts +0 -56
  123. package/src/utils/serverStartup.ts +0 -78
  124. package/src/utils/serverTermination.ts +0 -19
  125. package/src/utils/strings.ts +0 -1
  126. package/tests/cases/configResolver.test.ts +0 -67
@@ -1,201 +0,0 @@
1
- import * as Typesafe from '@contember/typesafe';
2
- import { MailerOptions } from '@contember/engine-tenant-api';
3
- export declare const dbConfigSchema: Typesafe.Type<{
4
- readonly host: string;
5
- readonly port: number;
6
- readonly user: string;
7
- readonly password: string;
8
- readonly database: string;
9
- } & {
10
- readonly ssl?: boolean | undefined;
11
- readonly queryTimeoutMs?: number | undefined;
12
- readonly statementTimeoutMs?: number | undefined;
13
- readonly connectionTimeoutMs?: number | undefined;
14
- readonly pool?: {
15
- readonly maxConnections?: number | undefined;
16
- readonly maxConnecting?: number | undefined;
17
- readonly maxIdle?: number | undefined;
18
- readonly reconnectIntervalMs?: number | undefined;
19
- readonly rateLimitCount?: number | undefined;
20
- readonly rateLimitPeriodMs?: number | undefined;
21
- readonly idleTimeoutMs?: number | undefined;
22
- readonly acquireTimeoutMs?: number | undefined;
23
- readonly maxUses?: number | undefined;
24
- readonly maxAgeMs?: number | undefined;
25
- } | undefined;
26
- } & {
27
- readonly read?: ({
28
- readonly host?: string | undefined;
29
- readonly port?: number | undefined;
30
- readonly user?: string | undefined;
31
- readonly password?: string | undefined;
32
- readonly database?: string | undefined;
33
- } & {
34
- readonly ssl?: boolean | undefined;
35
- readonly queryTimeoutMs?: number | undefined;
36
- readonly statementTimeoutMs?: number | undefined;
37
- readonly connectionTimeoutMs?: number | undefined;
38
- readonly pool?: {
39
- readonly maxConnections?: number | undefined;
40
- readonly maxConnecting?: number | undefined;
41
- readonly maxIdle?: number | undefined;
42
- readonly reconnectIntervalMs?: number | undefined;
43
- readonly rateLimitCount?: number | undefined;
44
- readonly rateLimitPeriodMs?: number | undefined;
45
- readonly idleTimeoutMs?: number | undefined;
46
- readonly acquireTimeoutMs?: number | undefined;
47
- readonly maxUses?: number | undefined;
48
- readonly maxAgeMs?: number | undefined;
49
- } | undefined;
50
- }) | undefined;
51
- }>;
52
- export declare const tenantConfigSchema: Typesafe.Type<{
53
- readonly db: {
54
- readonly host: string;
55
- readonly port: number;
56
- readonly user: string;
57
- readonly password: string;
58
- readonly database: string;
59
- } & {
60
- readonly ssl?: boolean | undefined;
61
- readonly queryTimeoutMs?: number | undefined;
62
- readonly statementTimeoutMs?: number | undefined;
63
- readonly connectionTimeoutMs?: number | undefined;
64
- readonly pool?: {
65
- readonly maxConnections?: number | undefined;
66
- readonly maxConnecting?: number | undefined;
67
- readonly maxIdle?: number | undefined;
68
- readonly reconnectIntervalMs?: number | undefined;
69
- readonly rateLimitCount?: number | undefined;
70
- readonly rateLimitPeriodMs?: number | undefined;
71
- readonly idleTimeoutMs?: number | undefined;
72
- readonly acquireTimeoutMs?: number | undefined;
73
- readonly maxUses?: number | undefined;
74
- readonly maxAgeMs?: number | undefined;
75
- } | undefined;
76
- } & {
77
- readonly read?: ({
78
- readonly host?: string | undefined;
79
- readonly port?: number | undefined;
80
- readonly user?: string | undefined;
81
- readonly password?: string | undefined;
82
- readonly database?: string | undefined;
83
- } & {
84
- readonly ssl?: boolean | undefined;
85
- readonly queryTimeoutMs?: number | undefined;
86
- readonly statementTimeoutMs?: number | undefined;
87
- readonly connectionTimeoutMs?: number | undefined;
88
- readonly pool?: {
89
- readonly maxConnections?: number | undefined;
90
- readonly maxConnecting?: number | undefined;
91
- readonly maxIdle?: number | undefined;
92
- readonly reconnectIntervalMs?: number | undefined;
93
- readonly rateLimitCount?: number | undefined;
94
- readonly rateLimitPeriodMs?: number | undefined;
95
- readonly idleTimeoutMs?: number | undefined;
96
- readonly acquireTimeoutMs?: number | undefined;
97
- readonly maxUses?: number | undefined;
98
- readonly maxAgeMs?: number | undefined;
99
- } | undefined;
100
- }) | undefined;
101
- };
102
- readonly mailer: MailerOptions & Typesafe.JsonObject;
103
- readonly credentials: {
104
- readonly rootToken?: string | undefined;
105
- readonly rootTokenHash?: string | undefined;
106
- readonly rootPassword?: string | undefined;
107
- readonly rootEmail?: string | undefined;
108
- readonly loginToken?: string | undefined;
109
- };
110
- } & {
111
- readonly secrets: {
112
- readonly encryptionKey?: string | undefined;
113
- };
114
- }>;
115
- export declare const serverConfigSchema: Typesafe.Type<{
116
- readonly port: number;
117
- readonly http: {
118
- readonly requestBodySize?: string | undefined;
119
- };
120
- readonly logging: {
121
- sentry?: {
122
- dsn: string;
123
- } | undefined;
124
- } | {
125
- readonly sentry?: {
126
- readonly dsn: string;
127
- } | undefined;
128
- };
129
- }>;
130
- export declare const stageConfig: Typesafe.Type<{
131
- readonly [x: string]: {
132
- readonly name: string;
133
- readonly slug: string;
134
- } & {
135
- readonly schema?: string | undefined;
136
- };
137
- }>;
138
- export declare const projectConfigSchema: Typesafe.Type<{
139
- readonly name: string;
140
- readonly slug: string;
141
- readonly stages: ({
142
- readonly name: string;
143
- readonly slug: string;
144
- } & {
145
- readonly schema?: string | undefined;
146
- })[];
147
- readonly db: (({
148
- readonly host: string;
149
- readonly port: number;
150
- readonly user: string;
151
- readonly password: string;
152
- readonly database: string;
153
- } & {
154
- readonly ssl?: boolean | undefined;
155
- readonly queryTimeoutMs?: number | undefined;
156
- readonly statementTimeoutMs?: number | undefined;
157
- readonly connectionTimeoutMs?: number | undefined;
158
- readonly pool?: {
159
- readonly maxConnections?: number | undefined;
160
- readonly maxConnecting?: number | undefined;
161
- readonly maxIdle?: number | undefined;
162
- readonly reconnectIntervalMs?: number | undefined;
163
- readonly rateLimitCount?: number | undefined;
164
- readonly rateLimitPeriodMs?: number | undefined;
165
- readonly idleTimeoutMs?: number | undefined;
166
- readonly acquireTimeoutMs?: number | undefined;
167
- readonly maxUses?: number | undefined;
168
- readonly maxAgeMs?: number | undefined;
169
- } | undefined;
170
- } & {
171
- readonly read?: ({
172
- readonly host?: string | undefined;
173
- readonly port?: number | undefined;
174
- readonly user?: string | undefined;
175
- readonly password?: string | undefined;
176
- readonly database?: string | undefined;
177
- } & {
178
- readonly ssl?: boolean | undefined;
179
- readonly queryTimeoutMs?: number | undefined;
180
- readonly statementTimeoutMs?: number | undefined;
181
- readonly connectionTimeoutMs?: number | undefined;
182
- readonly pool?: {
183
- readonly maxConnections?: number | undefined;
184
- readonly maxConnecting?: number | undefined;
185
- readonly maxIdle?: number | undefined;
186
- readonly reconnectIntervalMs?: number | undefined;
187
- readonly rateLimitCount?: number | undefined;
188
- readonly rateLimitPeriodMs?: number | undefined;
189
- readonly idleTimeoutMs?: number | undefined;
190
- readonly acquireTimeoutMs?: number | undefined;
191
- readonly maxUses?: number | undefined;
192
- readonly maxAgeMs?: number | undefined;
193
- } | undefined;
194
- }) | undefined;
195
- }) | {
196
- readonly useTenantDb: true;
197
- }) & {
198
- readonly systemSchema?: string | undefined;
199
- };
200
- }>;
201
- //# sourceMappingURL=configSchema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configSchema.d.ts","sourceRoot":"","sources":["../../../src/config/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAwC5D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW1B,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6B9B,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;;iBAMJ,MAAM;;;;;;;EAO/B,CAAA;AAEF,eAAO,MAAM,WAAW;;;;;;;EAcvB,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB9B,CAAA"}
@@ -1,119 +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.projectConfigSchema = exports.stageConfig = exports.serverConfigSchema = exports.tenantConfigSchema = exports.dbConfigSchema = void 0;
27
- const Typesafe = __importStar(require("@contember/typesafe"));
28
- const utils_1 = require("../utils");
29
- const dbConfigRequired = {
30
- host: Typesafe.string,
31
- port: Typesafe.number,
32
- user: Typesafe.string,
33
- password: Typesafe.string,
34
- database: Typesafe.string,
35
- };
36
- const dbConfigOptional = {
37
- ssl: Typesafe.boolean,
38
- queryTimeoutMs: Typesafe.number,
39
- statementTimeoutMs: Typesafe.number,
40
- connectionTimeoutMs: Typesafe.number,
41
- pool: Typesafe.partial({
42
- maxConnections: Typesafe.number,
43
- maxConnecting: Typesafe.number,
44
- maxIdle: Typesafe.number,
45
- reconnectIntervalMs: Typesafe.number,
46
- rateLimitCount: Typesafe.number,
47
- rateLimitPeriodMs: Typesafe.number,
48
- idleTimeoutMs: Typesafe.number,
49
- acquireTimeoutMs: Typesafe.number,
50
- maxUses: Typesafe.number,
51
- maxAgeMs: Typesafe.number,
52
- }),
53
- };
54
- const dbConfigSchemaInner = Typesafe.intersection(Typesafe.object(dbConfigRequired), Typesafe.partial(dbConfigOptional));
55
- const readDbSchema = Typesafe.intersection(Typesafe.partial(dbConfigRequired), Typesafe.partial(dbConfigOptional));
56
- exports.dbConfigSchema = Typesafe.intersection(dbConfigSchemaInner, Typesafe.partial({
57
- read: (val) => {
58
- const readDb = readDbSchema(val);
59
- if ('host' in readDb) {
60
- return readDb;
61
- }
62
- return undefined;
63
- },
64
- }));
65
- exports.tenantConfigSchema = Typesafe.intersection(Typesafe.object({
66
- db: exports.dbConfigSchema,
67
- mailer: Typesafe.transform(Typesafe.partial({
68
- from: Typesafe.string,
69
- host: Typesafe.string,
70
- port: Typesafe.number,
71
- user: Typesafe.string,
72
- password: Typesafe.string,
73
- }), (value, input) => {
74
- return {
75
- ...input,
76
- ...value,
77
- ...(value.user ? { auth: { user: value.user, pass: value.password } } : {}),
78
- };
79
- }),
80
- credentials: Typesafe.partial({
81
- rootToken: Typesafe.string,
82
- rootTokenHash: Typesafe.string,
83
- rootPassword: Typesafe.string,
84
- rootEmail: Typesafe.string,
85
- loginToken: Typesafe.string,
86
- }),
87
- }), Typesafe.object({
88
- secrets: Typesafe.partial({
89
- encryptionKey: Typesafe.string,
90
- }),
91
- }));
92
- exports.serverConfigSchema = Typesafe.object({
93
- port: Typesafe.number,
94
- http: Typesafe.partial({
95
- requestBodySize: Typesafe.string,
96
- }),
97
- logging: Typesafe.union((val) => Typesafe.valueAt(val, ['sentry', 'dsn']) === undefined ? {} : Typesafe.fail([]), Typesafe.partial({
98
- sentry: Typesafe.object({
99
- dsn: Typesafe.string,
100
- }),
101
- })),
102
- });
103
- exports.stageConfig = Typesafe.record(Typesafe.string, Typesafe.intersection(Typesafe.object({
104
- name: Typesafe.union(Typesafe.string, (_, path = []) => (0, utils_1.upperCaseFirst)(String(path[path.length - 2]))),
105
- slug: (_, path = []) => String(path[path.length - 2]),
106
- }), Typesafe.partial({
107
- schema: Typesafe.string,
108
- })));
109
- exports.projectConfigSchema = Typesafe.object({
110
- name: Typesafe.union(Typesafe.string, (_, path = []) => (0, utils_1.upperCaseFirst)(String(path[path.length - 2])).replace(/-/g, ' ')),
111
- slug: (_, path = []) => String(path[path.length - 2]),
112
- stages: (input, path = []) => Object.values((0, exports.stageConfig)(input, path)),
113
- db: Typesafe.intersection(Typesafe.union(Typesafe.object({
114
- useTenantDb: Typesafe.literal(true),
115
- }), exports.dbConfigSchema), Typesafe.partial({
116
- systemSchema: Typesafe.string,
117
- })),
118
- });
119
- //# sourceMappingURL=configSchema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../../src/config/configSchema.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const configTemplate: any;
2
- //# sourceMappingURL=configTemplate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configTemplate.d.ts","sourceRoot":"","sources":["../../../src/config/configTemplate.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,cAAc,EAAE,GAiE5B,CAAA"}
@@ -1,90 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configTemplate = void 0;
4
- const createDbConfigTemplate = (prefix) => {
5
- return {
6
- ssl: `%?${prefix}_SSL::bool%`,
7
- queryTimeoutMs: `%?${prefix}_QUERY_TIMEOUT_MS::number%`,
8
- statementTimeoutMs: `%?${prefix}_STATEMENT_TIMEOUT_MS::number%`,
9
- connectionTimeoutMs: `%?${prefix}_CONNECTION_TIMEOUT_MS::number%`,
10
- pool: {
11
- maxConnections: `%?${prefix}_POOL_MAX_CONNECTIONS::number%`,
12
- maxConnecting: `%?${prefix}_POOL_MAX_CONNECTING::number%`,
13
- maxIdle: `%?${prefix}_POOL_MAX_IDLE::number%`,
14
- reconnectIntervalMs: `%?${prefix}_POOL_RECONNECT_INTERVAL_MS::number%`,
15
- idleTimeoutMs: `%?${prefix}_POOL_IDLE_TIMEOUT_MS::number%`,
16
- acquireTimeoutMs: `%?${prefix}_POOL_ACQUIRE_TIMEOUT_MS::number%`,
17
- maxUses: `%?${prefix}_POOL_MAX_USES::number%`,
18
- maxAgeMs: `%?${prefix}_POOL_MAX_AGE_MS::number%`,
19
- rateLimitCount: `%?${prefix}_POOL_RATE_LIMIT_COUNT::number%`,
20
- rateLimitPeriodMs: `%?${prefix}_POOL_RATE_LIMIT_PERIOD_MS::number%`,
21
- },
22
- };
23
- };
24
- exports.configTemplate = {
25
- tenant: {
26
- db: {
27
- host: `%tenant.env.DB_HOST%`,
28
- port: `%tenant.env.DB_PORT::number%`,
29
- user: `%tenant.env.DB_USER%`,
30
- password: `%tenant.env.DB_PASSWORD%`,
31
- database: `%tenant.env.DB_NAME%`,
32
- ...createDbConfigTemplate('tenant.env.DB'),
33
- },
34
- mailer: {
35
- from: '%?tenant.env.MAILER_FROM%',
36
- host: '%?tenant.env.MAILER_HOST::string%',
37
- port: '%?tenant.env.MAILER_PORT::number%',
38
- secure: '%?tenant.env.MAILER_SECURE::bool%',
39
- user: '%?tenant.env.MAILER_USER%',
40
- password: '%?tenant.env.MAILER_PASSWORD%',
41
- },
42
- credentials: {
43
- rootEmail: '%?env.CONTEMBER_ROOT_EMAIL%',
44
- rootToken: '%?env.CONTEMBER_ROOT_TOKEN%',
45
- rootTokenHash: '%?env.CONTEMBER_ROOT_TOKEN_HASH%',
46
- rootPassword: '%?env.CONTEMBER_ROOT_PASSWORD%',
47
- loginToken: '%?env.CONTEMBER_LOGIN_TOKEN%',
48
- },
49
- secrets: {
50
- encryptionKey: '%?env.CONTEMBER_ENCRYPTION_KEY%',
51
- },
52
- },
53
- projectDefaults: {
54
- db: {
55
- host: `%?project.env.DB_HOST%`,
56
- port: `%?project.env.DB_PORT::number%`,
57
- user: `%?project.env.DB_USER%`,
58
- password: `%?project.secret.db.password||project.env.DB_PASSWORD%`,
59
- database: `%?project.env.DB_NAME||project.slug%`,
60
- ...createDbConfigTemplate('project.env.DB'),
61
- read: {
62
- host: `%?project.env.DB_READ_HOST%`,
63
- port: `%?project.env.DB_READ_PORT::number%`,
64
- user: `%?project.env.DB_READ_USER%`,
65
- password: `%?project.secret.db.read.password||project.env.DB_READ_PASSWORD%`,
66
- database: `%?project.env.DB_READ_NAME%`,
67
- ...createDbConfigTemplate('project.env.DB_READ'),
68
- },
69
- },
70
- },
71
- server: {
72
- port: '%env.CONTEMBER_PORT::number%',
73
- monitoringPort: '%env.CONTEMBER_MONITORING_PORT::number%',
74
- workerCount: '%?env.CONTEMBER_WORKER_COUNT::string%',
75
- http: {
76
- requestBodySize: '%?env.CONTEMBER_HTTP_REQUEST_BODY_SIZE::string%',
77
- },
78
- projectGroup: {
79
- domainMapping: '%?env.CONTEMBER_PROJECT_GROUP_DOMAIN_MAPPING%',
80
- configHeader: '%?env.CONTEMBER_PROJECT_GROUP_CONFIG_HEADER%',
81
- configEncryptionKey: '%?env.CONTEMBER_PROJECT_GROUP_CONFIG_ENCRYPTION_KEY%',
82
- },
83
- logging: {
84
- sentry: {
85
- dsn: '%?env.SENTRY_DSN%',
86
- },
87
- },
88
- },
89
- };
90
- //# sourceMappingURL=configTemplate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configTemplate.js","sourceRoot":"","sources":["../../../src/config/configTemplate.ts"],"names":[],"mappings":";;;AAAA,MAAM,sBAAsB,GAAG,CAAC,MAAc,EAAE,EAAE;IACjD,OAAO;QACN,GAAG,EAAE,KAAK,MAAM,aAAa;QAC7B,cAAc,EAAE,KAAK,MAAM,4BAA4B;QACvD,kBAAkB,EAAE,KAAK,MAAM,gCAAgC;QAC/D,mBAAmB,EAAE,KAAK,MAAM,iCAAiC;QACjE,IAAI,EAAE;YACL,cAAc,EAAE,KAAK,MAAM,gCAAgC;YAC3D,aAAa,EAAE,KAAK,MAAM,+BAA+B;YACzD,OAAO,EAAE,KAAK,MAAM,yBAAyB;YAC7C,mBAAmB,EAAE,KAAK,MAAM,sCAAsC;YACtE,aAAa,EAAE,KAAK,MAAM,gCAAgC;YAC1D,gBAAgB,EAAE,KAAK,MAAM,mCAAmC;YAChE,OAAO,EAAE,KAAK,MAAM,yBAAyB;YAC7C,QAAQ,EAAE,KAAK,MAAM,2BAA2B;YAChD,cAAc,EAAE,KAAK,MAAM,iCAAiC;YAC5D,iBAAiB,EAAE,KAAK,MAAM,qCAAqC;SACnE;KACD,CAAA;AACF,CAAC,CAAA;AACY,QAAA,cAAc,GAAQ;IAClC,MAAM,EAAE;QACP,EAAE,EAAE;YACH,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,8BAA8B;YACpC,IAAI,EAAE,sBAAsB;YAC5B,QAAQ,EAAE,0BAA0B;YACpC,QAAQ,EAAE,sBAAsB;YAChC,GAAG,sBAAsB,CAAC,eAAe,CAAC;SAC1C;QACD,MAAM,EAAE;YACP,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,mCAAmC;YACzC,IAAI,EAAE,mCAAmC;YACzC,MAAM,EAAE,mCAAmC;YAC3C,IAAI,EAAE,2BAA2B;YACjC,QAAQ,EAAE,+BAA+B;SACzC;QACD,WAAW,EAAE;YACZ,SAAS,EAAE,6BAA6B;YACxC,SAAS,EAAE,6BAA6B;YACxC,aAAa,EAAE,kCAAkC;YACjD,YAAY,EAAE,gCAAgC;YAC9C,UAAU,EAAE,8BAA8B;SAC1C;QACD,OAAO,EAAE;YACR,aAAa,EAAE,iCAAiC;SAChD;KACD;IACD,eAAe,EAAE;QAChB,EAAE,EAAE;YACH,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,gCAAgC;YACtC,IAAI,EAAE,wBAAwB;YAC9B,QAAQ,EAAE,wDAAwD;YAClE,QAAQ,EAAE,sCAAsC;YAChD,GAAG,sBAAsB,CAAC,gBAAgB,CAAC;YAC3C,IAAI,EAAE;gBACL,IAAI,EAAE,6BAA6B;gBACnC,IAAI,EAAE,qCAAqC;gBAC3C,IAAI,EAAE,6BAA6B;gBACnC,QAAQ,EAAE,kEAAkE;gBAC5E,QAAQ,EAAE,6BAA6B;gBACvC,GAAG,sBAAsB,CAAC,qBAAqB,CAAC;aAChD;SACD;KACD;IACD,MAAM,EAAE;QACP,IAAI,EAAE,8BAA8B;QACpC,cAAc,EAAE,yCAAyC;QACzD,WAAW,EAAE,uCAAuC;QACpD,IAAI,EAAE;YACL,eAAe,EAAE,iDAAiD;SAClE;QACD,YAAY,EAAE;YACb,aAAa,EAAE,+CAA+C;YAC9D,YAAY,EAAE,8CAA8C;YAC5D,mBAAmB,EAAE,sDAAsD;SAC3E;QACD,OAAO,EAAE;YACR,MAAM,EAAE;gBACP,GAAG,EAAE,mBAAmB;aACxB;SACD;KACD;CACD,CAAA"}
@@ -1,8 +0,0 @@
1
- import { ProjectConfig, ProjectSecrets } from '@contember/engine-http';
2
- import { ConfigProcessor } from '@contember/engine-plugins';
3
- import { TenantConfig } from './config';
4
- export declare type ProjectConfigResolver = (slug: string, additionalConfig: any, secrets: ProjectSecrets, tenantConfig: TenantConfig) => ProjectConfig;
5
- declare type Env = Record<string, string>;
6
- export declare const createProjectConfigResolver: (env: Env, config: any, configProcessors: ConfigProcessor[]) => ProjectConfigResolver;
7
- export {};
8
- //# sourceMappingURL=projectConfigResolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projectConfigResolver.d.ts","sourceRoot":"","sources":["../../../src/config/projectConfigResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAI3D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,oBAAY,qBAAqB,GAAG,CACnC,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,GAAG,EACrB,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,YAAY,KACtB,aAAa,CAAA;AAElB,aAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEjC,eAAO,MAAM,2BAA2B,QAAS,GAAG,UAAU,GAAG,oBAAoB,eAAe,EAAE,KAAG,qBAmCvG,CAAA"}
@@ -1,91 +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.createProjectConfigResolver = void 0;
27
- const config_loader_1 = require("@contember/config-loader");
28
- const Typesafe = __importStar(require("@contember/typesafe"));
29
- const configSchema_1 = require("./configSchema");
30
- const createProjectConfigResolver = (env, config, configProcessors) => (slug, additionalConfig, secrets, tenantConfig) => {
31
- var _a;
32
- const mergedConfig = config_loader_1.Merger.merge(config.projectDefaults, (_a = config === null || config === void 0 ? void 0 : config.projects) === null || _a === void 0 ? void 0 : _a[slug], additionalConfig);
33
- if (!mergedConfig.stages) {
34
- mergedConfig.stages = { live: {} };
35
- }
36
- const resolvedConfig = (0, config_loader_1.resolveParameters)(mergedConfig, createProjectParametersResolver(slug, env, secrets));
37
- const projectConfigSchemaWithPlugins = configProcessors.reduce((schema, current) => {
38
- if (!current.getProjectConfigSchema) {
39
- return schema;
40
- }
41
- return Typesafe.intersection(schema, current.getProjectConfigSchema(slug));
42
- }, configSchema_1.projectConfigSchema);
43
- const projectConfig = projectConfigSchemaWithPlugins(resolvedConfig, ['project', slug]);
44
- if (!('host' in projectConfig.db)) {
45
- return {
46
- ...projectConfig,
47
- db: {
48
- ...tenantConfig.db,
49
- ...projectConfig.db,
50
- },
51
- };
52
- }
53
- return {
54
- ...projectConfig,
55
- db: projectConfig.db,
56
- };
57
- };
58
- exports.createProjectConfigResolver = createProjectConfigResolver;
59
- const createProjectParametersResolver = (slug, env, secrets) => parts => {
60
- if (parts[0] === 'project') {
61
- if (parts[1] === 'env') {
62
- const envName = parts[2];
63
- const projectEnvName = projectNameToEnvName(slug);
64
- const envValue = env[projectEnvName + '_' + envName] || env['DEFAULT_' + envName];
65
- if (envValue === undefined) {
66
- throw new config_loader_1.UndefinedParameterError(`ENV variable "${projectEnvName + '_' + envName}" not found.`);
67
- }
68
- return envValue;
69
- }
70
- else if (parts[1] === 'slug') {
71
- return slug;
72
- }
73
- else if (parts[1] === 'secret') {
74
- const key = parts.slice(2).join('.');
75
- const value = secrets[key];
76
- if (value === undefined) {
77
- throw new config_loader_1.UndefinedParameterError(`Project secret ${parts[2]} not found`);
78
- }
79
- return value;
80
- }
81
- }
82
- throw new config_loader_1.UndefinedParameterError(`Parameter "${parts.join('.')}" not found.`);
83
- };
84
- const projectNameToEnvName = (projectName) => {
85
- const envName = projectName.toUpperCase().replace(/-/g, '_');
86
- if (envName === 'TENANT') {
87
- throw new Error('Forbidden project name');
88
- }
89
- return envName;
90
- };
91
- //# sourceMappingURL=projectConfigResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"projectConfigResolver.js","sourceRoot":"","sources":["../../../src/config/projectConfigResolver.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { TenantConfig } from './config';
2
- import { ParametersResolver } from '@contember/config-loader';
3
- export declare type TenantConfigResolver = (slug: string | undefined, additionalConfig: any) => TenantConfig;
4
- declare type Env = Record<string, string>;
5
- export declare const createTenantConfigResolver: (env: Env, tenantConfig: any) => TenantConfigResolver;
6
- export declare const createTenantParametersResolver: (env: Env) => ParametersResolver;
7
- export {};
8
- //# sourceMappingURL=tenantConfigResolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tenantConfigResolver.d.ts","sourceRoot":"","sources":["../../../src/config/tenantConfigResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAGN,kBAAkB,EAGlB,MAAM,0BAA0B,CAAA;AAGjC,oBAAY,oBAAoB,GAAI,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,gBAAgB,EAAE,GAAG,KAAK,YAAY,CAAA;AAErG,aAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEjC,eAAO,MAAM,0BAA0B,QAAS,GAAG,gBAAgB,GAAG,KAAG,oBAYvE,CAAA;AAGF,eAAO,MAAM,8BAA8B,QAAS,GAAG,KAAG,kBAWxD,CAAA"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTenantParametersResolver = exports.createTenantConfigResolver = void 0;
4
- const config_loader_1 = require("@contember/config-loader");
5
- const configSchema_1 = require("./configSchema");
6
- const createTenantConfigResolver = (env, tenantConfig) => (slug, additionalConfig) => {
7
- const mergedConfig = config_loader_1.Merger.merge(tenantConfig, additionalConfig);
8
- const parametersResolver = (0, config_loader_1.createObjectParametersResolver)({ env });
9
- const tenantParametersResolver = (0, exports.createTenantParametersResolver)(env);
10
- const resolvedConfig = (0, config_loader_1.resolveParameters)(mergedConfig, (parts, path, dataResolver) => {
11
- if (parts[0] === 'tenant') {
12
- return tenantParametersResolver(parts, path, dataResolver);
13
- }
14
- return parametersResolver(parts, path, dataResolver);
15
- });
16
- return (0, configSchema_1.tenantConfigSchema)(resolvedConfig);
17
- };
18
- exports.createTenantConfigResolver = createTenantConfigResolver;
19
- const createTenantParametersResolver = (env) => parts => {
20
- if (parts[1] === 'env') {
21
- const envName = parts[2];
22
- const envValue = env['TENANT_' + envName] || env['DEFAULT_' + envName];
23
- if (envValue === undefined) {
24
- throw new config_loader_1.UndefinedParameterError(`ENV variable "${'TENANT_' + envName}" not found.`);
25
- }
26
- return envValue;
27
- }
28
- throw new config_loader_1.UndefinedParameterError(`Parameter "${parts.join('.')}" not found.`);
29
- };
30
- exports.createTenantParametersResolver = createTenantParametersResolver;
31
- //# sourceMappingURL=tenantConfigResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tenantConfigResolver.js","sourceRoot":"","sources":["../../../src/config/tenantConfigResolver.ts"],"names":[],"mappings":";;;AACA,4DAMiC;AACjC,iDAAmD;AAM5C,MAAM,0BAA0B,GAAG,CAAC,GAAQ,EAAE,YAAiB,EAAwB,EAAE,CAC/F,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE;IAC1B,MAAM,YAAY,GAAG,sBAAM,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA;IACjE,MAAM,kBAAkB,GAAG,IAAA,8CAA8B,EAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAClE,MAAM,wBAAwB,GAAG,IAAA,sCAA8B,EAAC,GAAG,CAAC,CAAA;IACpE,MAAM,cAAc,GAAG,IAAA,iCAAiB,EAAC,YAAY,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE;QACpF,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YAC1B,OAAO,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;SAC1D;QACD,OAAO,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IACF,OAAO,IAAA,iCAAkB,EAAC,cAAc,CAAC,CAAA;AAC1C,CAAC,CAAA;AAZW,QAAA,0BAA0B,8BAYrC;AAGK,MAAM,8BAA8B,GAAG,CAAC,GAAQ,EAAsB,EAAE,CAC9E,KAAK,CAAC,EAAE;IACP,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;QACvB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACxB,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,CAAA;QACtE,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC3B,MAAM,IAAI,uCAAuB,CAAC,iBAAiB,SAAS,GAAG,OAAO,cAAc,CAAC,CAAA;SACrF;QACD,OAAO,QAAQ,CAAA;KACf;IACD,MAAM,IAAI,uCAAuB,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAC/E,CAAC,CAAA;AAXW,QAAA,8BAA8B,kCAWzC"}
@@ -1,13 +0,0 @@
1
- import { MasterContainerArgs } from './MasterContainer';
2
- import { ProjectConfig } from '@contember/engine-http';
3
- import { readConfig } from './config/config';
4
- import { serverConfigSchema } from './config/configSchema';
5
- import { TenantConfigResolver } from './config/tenantConfigResolver';
6
- import { ProjectGroupContainerFactory } from './projectGroup/ProjectGroupContainer';
7
- export * from './utils/serverStartup';
8
- export * from './utils/serverTermination';
9
- export * from './utils/sentry';
10
- export * from './MasterContainer';
11
- export { ProjectConfig, readConfig, serverConfigSchema, TenantConfigResolver, ProjectGroupContainerFactory, };
12
- export declare const createContainer: (args: MasterContainerArgs) => import("./MasterContainer").MasterContainer;
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAA;AAEnF,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AAEjC,OAAO,EACN,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,4BAA4B,GAC5B,CAAA;AAED,eAAO,MAAM,eAAe,SAAU,mBAAmB,gDAExD,CAAA"}
package/dist/src/index.js DELETED
@@ -1,33 +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
- exports.createContainer = exports.ProjectGroupContainerFactory = exports.serverConfigSchema = exports.readConfig = void 0;
18
- const MasterContainer_1 = require("./MasterContainer");
19
- const config_1 = require("./config/config");
20
- Object.defineProperty(exports, "readConfig", { enumerable: true, get: function () { return config_1.readConfig; } });
21
- const configSchema_1 = require("./config/configSchema");
22
- Object.defineProperty(exports, "serverConfigSchema", { enumerable: true, get: function () { return configSchema_1.serverConfigSchema; } });
23
- const ProjectGroupContainer_1 = require("./projectGroup/ProjectGroupContainer");
24
- Object.defineProperty(exports, "ProjectGroupContainerFactory", { enumerable: true, get: function () { return ProjectGroupContainer_1.ProjectGroupContainerFactory; } });
25
- __exportStar(require("./utils/serverStartup"), exports);
26
- __exportStar(require("./utils/serverTermination"), exports);
27
- __exportStar(require("./utils/sentry"), exports);
28
- __exportStar(require("./MasterContainer"), exports);
29
- const createContainer = (args) => {
30
- return new MasterContainer_1.MasterContainerFactory().create(args);
31
- };
32
- exports.createContainer = createContainer;
33
- //# sourceMappingURL=index.js.map