@digitaldefiance/node-express-suite 3.12.16 → 3.13.0
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/package.json +2 -1
- package/src/application-base.d.ts +50 -47
- package/src/application-base.d.ts.map +1 -1
- package/src/application-base.js +180 -229
- package/src/application-base.js.map +1 -1
- package/src/application.d.ts +2 -1
- package/src/application.d.ts.map +1 -1
- package/src/application.js +8 -4
- package/src/application.js.map +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +3 -1
- package/src/index.js.map +1 -1
- package/src/interfaces/document-store.d.ts +38 -0
- package/src/interfaces/document-store.d.ts.map +1 -0
- package/src/interfaces/document-store.js +8 -0
- package/src/interfaces/document-store.js.map +1 -0
- package/src/interfaces/failable-result.d.ts +2 -15
- package/src/interfaces/failable-result.d.ts.map +1 -1
- package/src/interfaces/failable-result.js +0 -5
- package/src/interfaces/failable-result.js.map +1 -1
- package/src/interfaces/index.d.ts +1 -0
- package/src/interfaces/index.d.ts.map +1 -1
- package/src/interfaces/index.js +1 -0
- package/src/interfaces/index.js.map +1 -1
- package/src/services/index.d.ts +4 -0
- package/src/services/index.d.ts.map +1 -1
- package/src/services/index.js +4 -0
- package/src/services/index.js.map +1 -1
- package/src/services/mongoose-collection.d.ts +52 -0
- package/src/services/mongoose-collection.d.ts.map +1 -0
- package/src/services/mongoose-collection.js +326 -0
- package/src/services/mongoose-collection.js.map +1 -0
- package/src/services/mongoose-database.d.ts +64 -0
- package/src/services/mongoose-database.d.ts.map +1 -0
- package/src/services/mongoose-database.js +121 -0
- package/src/services/mongoose-database.js.map +1 -0
- package/src/services/mongoose-document-store.d.ts +109 -0
- package/src/services/mongoose-document-store.d.ts.map +1 -0
- package/src/services/mongoose-document-store.js +264 -0
- package/src/services/mongoose-document-store.js.map +1 -0
- package/src/services/mongoose-session-adapter.d.ts +39 -0
- package/src/services/mongoose-session-adapter.d.ts.map +1 -0
- package/src/services/mongoose-session-adapter.js +63 -0
- package/src/services/mongoose-session-adapter.js.map +1 -0
- package/src/utils/default-mongo-uri-validator.d.ts +15 -0
- package/src/utils/default-mongo-uri-validator.d.ts.map +1 -0
- package/src/utils/default-mongo-uri-validator.js +46 -0
- package/src/utils/default-mongo-uri-validator.js.map +1 -0
- package/src/utils.d.ts +21 -2
- package/src/utils.d.ts.map +1 -1
- package/src/utils.js +124 -49
- package/src/utils.js.map +1 -1
package/src/application-base.js
CHANGED
|
@@ -1,50 +1,65 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* @fileoverview Base application class with core functionality.
|
|
4
|
-
*
|
|
4
|
+
* Delegates database operations to an IDatabase instance (or legacy IDocumentStore).
|
|
5
5
|
* @module application-base
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.BaseApplication = void 0;
|
|
9
|
-
const tslib_1 = require("tslib");
|
|
10
|
-
// Avoid importing from the barrel (../index) here to prevent circular deps
|
|
11
|
-
const mongoose_types_1 = tslib_1.__importDefault(require("@digitaldefiance/mongoose-types"));
|
|
12
9
|
const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
|
|
13
|
-
const mongodb_memory_server_1 = require("mongodb-memory-server");
|
|
14
10
|
const path_1 = require("path");
|
|
15
11
|
const container_1 = require("./container");
|
|
16
12
|
const environment_1 = require("./environment");
|
|
17
|
-
const model_registry_1 = require("./model-registry");
|
|
18
13
|
const plugins_1 = require("./plugins");
|
|
14
|
+
const mongoose_document_store_1 = require("./services/mongoose-document-store");
|
|
15
|
+
const default_mongo_uri_validator_1 = require("./utils/default-mongo-uri-validator");
|
|
19
16
|
const utils_1 = require("./utils");
|
|
20
17
|
/**
|
|
21
|
-
*
|
|
18
|
+
* Duck-typing check to determine if a value conforms to the IDatabase interface.
|
|
19
|
+
* Checks for the key methods that distinguish IDatabase from IDocumentStore.
|
|
20
|
+
*/
|
|
21
|
+
function isIDatabase(value) {
|
|
22
|
+
return (typeof value === 'object' &&
|
|
23
|
+
value !== null &&
|
|
24
|
+
'collection' in value &&
|
|
25
|
+
'startSession' in value &&
|
|
26
|
+
typeof value['collection'] === 'function' &&
|
|
27
|
+
typeof value['startSession'] === 'function');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Base Application class with core functionality.
|
|
31
|
+
* Accepts an IDatabase (preferred) or legacy IDocumentStore for backward compatibility.
|
|
32
|
+
* When an IDatabase is provided, database lifecycle is managed through the IDatabase contract.
|
|
33
|
+
* When a legacy IDocumentStore is provided, it is used directly for backward compatibility.
|
|
22
34
|
*/
|
|
23
35
|
class BaseApplication {
|
|
24
36
|
/**
|
|
25
37
|
* Application environment
|
|
26
38
|
*/
|
|
27
39
|
_environment;
|
|
28
|
-
/**
|
|
29
|
-
* In-memory MongoDB instance for development
|
|
30
|
-
*/
|
|
31
|
-
_devDatabase;
|
|
32
40
|
/**
|
|
33
41
|
* Constants for the application
|
|
34
42
|
*/
|
|
35
43
|
_constants;
|
|
36
44
|
/**
|
|
37
|
-
*
|
|
45
|
+
* The IDatabase instance for storage-agnostic database operations.
|
|
46
|
+
* Set when an IDatabase is passed to the constructor.
|
|
38
47
|
*/
|
|
39
|
-
|
|
48
|
+
_database;
|
|
40
49
|
/**
|
|
41
|
-
*
|
|
50
|
+
* The injected document store handling all database operations.
|
|
51
|
+
* Set when a legacy IDocumentStore is passed to the constructor.
|
|
52
|
+
* @deprecated Prefer _database (IDatabase) for new code.
|
|
42
53
|
*/
|
|
43
|
-
|
|
54
|
+
_documentStore;
|
|
44
55
|
/**
|
|
45
|
-
*
|
|
56
|
+
* Optional lifecycle hooks for database initialization on the IDatabase path.
|
|
46
57
|
*/
|
|
47
|
-
|
|
58
|
+
_lifecycleHooks;
|
|
59
|
+
/**
|
|
60
|
+
* Whether setupDevStore was invoked during start() (for teardown on stop).
|
|
61
|
+
*/
|
|
62
|
+
_devStoreProvisioned = false;
|
|
48
63
|
/**
|
|
49
64
|
* Get the application environment
|
|
50
65
|
*/
|
|
@@ -69,18 +84,18 @@ class BaseApplication {
|
|
|
69
84
|
return distPath;
|
|
70
85
|
}
|
|
71
86
|
/**
|
|
72
|
-
*
|
|
73
|
-
|
|
74
|
-
_db;
|
|
75
|
-
/**
|
|
76
|
-
* Schema map for all models
|
|
87
|
+
* Schema map for all models, delegated to the document store.
|
|
88
|
+
* Only available when a legacy IDocumentStore is used.
|
|
77
89
|
*/
|
|
78
|
-
_schemaMap;
|
|
79
90
|
get schemaMap() {
|
|
80
|
-
if (!this.
|
|
91
|
+
if (!this._documentStore) {
|
|
92
|
+
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Admin_Error_SchemaMapIsNotLoadedYet);
|
|
93
|
+
}
|
|
94
|
+
const map = this._documentStore.schemaMap;
|
|
95
|
+
if (!map) {
|
|
81
96
|
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Admin_Error_SchemaMapIsNotLoadedYet);
|
|
82
97
|
}
|
|
83
|
-
return
|
|
98
|
+
return map;
|
|
84
99
|
}
|
|
85
100
|
/**
|
|
86
101
|
* Flag indicating whether the application is ready to handle requests
|
|
@@ -95,215 +110,63 @@ class BaseApplication {
|
|
|
95
110
|
*/
|
|
96
111
|
plugins;
|
|
97
112
|
/**
|
|
98
|
-
* Get the connected MongoDB database instance
|
|
113
|
+
* Get the connected MongoDB database instance.
|
|
114
|
+
* @deprecated Use database (IDatabase) or documentStore instead for storage-agnostic access.
|
|
99
115
|
*/
|
|
100
116
|
get db() {
|
|
101
|
-
if (
|
|
102
|
-
|
|
117
|
+
if (this._documentStore instanceof mongoose_document_store_1.MongooseDocumentStore) {
|
|
118
|
+
return this._documentStore.db;
|
|
103
119
|
}
|
|
104
|
-
|
|
120
|
+
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Admin_Error_DatabaseNotConnectedYet);
|
|
105
121
|
}
|
|
106
122
|
/**
|
|
107
|
-
* Get
|
|
123
|
+
* Get the IDatabase instance, if one was provided.
|
|
108
124
|
*/
|
|
109
|
-
get
|
|
110
|
-
return this.
|
|
111
|
-
}
|
|
112
|
-
constructor(environment, schemaMapFactory, databaseInitFunction, initResultHashFunction, constants = suite_core_lib_1.Constants) {
|
|
113
|
-
this._ready = false;
|
|
114
|
-
this._environment = environment;
|
|
115
|
-
this._constants = constants;
|
|
116
|
-
this._schemaMapFactory = schemaMapFactory;
|
|
117
|
-
this._databaseInitFunction = databaseInitFunction;
|
|
118
|
-
this._initResultHashFunction = initResultHashFunction;
|
|
119
|
-
this.services = new container_1.ServiceContainer();
|
|
120
|
-
this.plugins = new plugins_1.PluginManager();
|
|
125
|
+
get database() {
|
|
126
|
+
return this._database;
|
|
121
127
|
}
|
|
122
128
|
/**
|
|
123
|
-
*
|
|
129
|
+
* Get the injected document store.
|
|
130
|
+
* @deprecated Prefer database (IDatabase) for new code.
|
|
124
131
|
*/
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (!uri.startsWith('mongodb://') && !uri.startsWith('mongodb+srv://')) {
|
|
128
|
-
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Admin_Error_InvalidMongoUri);
|
|
129
|
-
}
|
|
130
|
-
// In production, block private IPs and localhost
|
|
131
|
-
if (this._environment.production) {
|
|
132
|
-
// Updated regex to handle IPv6 addresses with brackets
|
|
133
|
-
const urlMatch = uri.match(/^mongodb(?:\+srv)?:\/\/(?:[^@]+@)?(\[[^\]]+\]|[^:/]+)/);
|
|
134
|
-
if (urlMatch) {
|
|
135
|
-
// Remove brackets from hostname for IPv6 addresses
|
|
136
|
-
const hostname = urlMatch[1].replace(/[[\]]/g, '');
|
|
137
|
-
// Block localhost and private IP ranges
|
|
138
|
-
if (hostname === 'localhost' ||
|
|
139
|
-
hostname === '127.0.0.1' ||
|
|
140
|
-
hostname.startsWith('10.') ||
|
|
141
|
-
hostname.startsWith('192.168.') ||
|
|
142
|
-
/^172\.(1[6-9]|2[0-9]|3[0-1])\./.test(hostname) ||
|
|
143
|
-
hostname.startsWith('169.254.') || // Link-local
|
|
144
|
-
hostname === '::1' || // IPv6 localhost
|
|
145
|
-
hostname.startsWith('fc00:') || // IPv6 private
|
|
146
|
-
hostname.startsWith('fd00:') // IPv6 private
|
|
147
|
-
) {
|
|
148
|
-
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Admin_Error_InvalidMongoUri);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Connect to MongoDB and initialize schemas
|
|
155
|
-
*/
|
|
156
|
-
async connectDatabase(mongoUri, debug = false) {
|
|
157
|
-
this.validateMongoUri(mongoUri);
|
|
158
|
-
(0, utils_1.debugLog)(debug, 'log', `[ ${(0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_Connecting, undefined, undefined, { constants: this.constants })} ] ${(0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_MongoDB, undefined, undefined, { constants: this.constants })}: ${mongoUri}`);
|
|
159
|
-
// Always disconnect first to ensure clean state
|
|
160
|
-
if (mongoose_types_1.default.connection.readyState !== 0) {
|
|
161
|
-
await mongoose_types_1.default.disconnect();
|
|
162
|
-
}
|
|
163
|
-
// amazonq-ignore-next-line solved above with validateMongoUri call
|
|
164
|
-
await mongoose_types_1.default.connect(mongoUri, {
|
|
165
|
-
maxPoolSize: this._environment.mongo.maxPoolSize,
|
|
166
|
-
minPoolSize: this._environment.mongo.minPoolSize,
|
|
167
|
-
maxIdleTimeMS: this._environment.mongo.maxIdleTimeMS,
|
|
168
|
-
serverSelectionTimeoutMS: this._environment.mongo.serverSelectionTimeoutMS,
|
|
169
|
-
socketTimeoutMS: this._environment.mongo.socketTimeoutMS,
|
|
170
|
-
retryWrites: this._environment.mongo.retryWrites,
|
|
171
|
-
retryReads: this._environment.mongo.retryReads,
|
|
172
|
-
readConcern: this._environment.mongo.readConcern,
|
|
173
|
-
writeConcern: this._environment.mongo.writeConcern,
|
|
174
|
-
});
|
|
175
|
-
this._db = mongoose_types_1.default;
|
|
176
|
-
await new Promise((resolve) => {
|
|
177
|
-
if (mongoose_types_1.default.connection.readyState === 1) {
|
|
178
|
-
resolve();
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
mongoose_types_1.default.connection.once('connected', resolve);
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
const engine = (0, suite_core_lib_1.getSuiteCoreI18nEngine)({ constants: this.constants });
|
|
185
|
-
(0, utils_1.debugLog)(debug, 'log', engine.t('[ {{SuiteCoreStringKey.Common_Connected}} ] {{SuiteCoreStringKey.Common_MongoDB}}'));
|
|
186
|
-
(0, utils_1.debugLog)(debug, 'log', engine.t('[ {{SuiteCoreStringKey.Common_Loading}} ] {{SuiteCoreStringKey.Common_Schemas}}'));
|
|
187
|
-
this._schemaMap = this._schemaMapFactory(this.db.connection);
|
|
188
|
-
// Register all base models in ModelRegistry for extensibility
|
|
189
|
-
if (this._schemaMap) {
|
|
190
|
-
Object.values(this._schemaMap).forEach((schema) => {
|
|
191
|
-
model_registry_1.ModelRegistry.instance.register({
|
|
192
|
-
modelName: schema.modelName,
|
|
193
|
-
schema: schema.schema,
|
|
194
|
-
model: schema.model,
|
|
195
|
-
collection: schema.collection,
|
|
196
|
-
discriminators: schema.discriminators,
|
|
197
|
-
});
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
if (debug) {
|
|
201
|
-
Object.values(this._schemaMap).forEach((schema) => {
|
|
202
|
-
console.log(engine.t(`[ {{SuiteCoreStringKey.Common_Loaded}} ] {{SuiteCoreStringKey.Common_Schema}} '${schema.modelName.replace(/[\r\n]/g, '')}'`));
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
if (!this._db.connection.db) {
|
|
206
|
-
console.error(engine.translateStringKey(suite_core_lib_1.SuiteCoreStringKey.Admin_Error_FailedToSetTransactionTimeout));
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
const command = {
|
|
210
|
-
...(this._environment.mongo.setParameterSupported
|
|
211
|
-
? { setParameter: 1 }
|
|
212
|
-
: {}),
|
|
213
|
-
...(this._environment.mongo.useTransactions &&
|
|
214
|
-
this._environment.mongo.transactionLifetimeLimitSecondsSupported
|
|
215
|
-
? {
|
|
216
|
-
transactionLifetimeLimitSeconds: this._environment.mongo.transactionTimeout,
|
|
217
|
-
}
|
|
218
|
-
: {}),
|
|
219
|
-
...(this._environment.mongo.useTransactions &&
|
|
220
|
-
this._environment.mongo.maxTransactionLockRequestTimeoutMillisSupported
|
|
221
|
-
? {
|
|
222
|
-
maxTransactionLockRequestTimeoutMillis: this._environment.mongo.transactionLockRequestTimeout,
|
|
223
|
-
}
|
|
224
|
-
: {}),
|
|
225
|
-
};
|
|
226
|
-
if (Object.keys(command).length > 0) {
|
|
227
|
-
await this._db.connection.db
|
|
228
|
-
.admin()
|
|
229
|
-
.command(command)
|
|
230
|
-
.catch(() => undefined);
|
|
231
|
-
}
|
|
232
|
-
(0, utils_1.debugLog)(debug, 'log', engine.translateStringKey(suite_core_lib_1.SuiteCoreStringKey.Admin_SetTransactionTimeoutSuccessfully));
|
|
233
|
-
}
|
|
132
|
+
get documentStore() {
|
|
133
|
+
return this._documentStore;
|
|
234
134
|
}
|
|
235
135
|
/**
|
|
236
|
-
*
|
|
136
|
+
* Get the in-memory MongoDB instance (if any), delegated to the document store.
|
|
137
|
+
* Only available when a legacy IDocumentStore is used.
|
|
237
138
|
*/
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
await this._db.disconnect();
|
|
241
|
-
}
|
|
242
|
-
const engine = (0, suite_core_lib_1.getSuiteCoreI18nEngine)({ constants: this.constants });
|
|
243
|
-
this._db = undefined;
|
|
244
|
-
(0, utils_1.debugLog)(debug, 'log', `[ ${engine.translateStringKey(suite_core_lib_1.SuiteCoreStringKey.Common_Disconnected)} ] ${engine.translateStringKey(suite_core_lib_1.SuiteCoreStringKey.Common_MongoDB)}`);
|
|
139
|
+
get devDatabase() {
|
|
140
|
+
return this._documentStore?.devDatabase;
|
|
245
141
|
}
|
|
246
142
|
/**
|
|
247
|
-
*
|
|
248
|
-
* @returns The MongoDB connection URI
|
|
143
|
+
* Get whether the application is ready to handle requests
|
|
249
144
|
*/
|
|
250
|
-
|
|
251
|
-
this.
|
|
252
|
-
replSet: { count: 1, storageEngine: 'wiredTiger' },
|
|
253
|
-
});
|
|
254
|
-
await this._devDatabase.waitUntilRunning();
|
|
255
|
-
const mongoUri = this._devDatabase.getUri(this._environment.devDatabase) +
|
|
256
|
-
'&maxPoolSize=20&minPoolSize=4';
|
|
257
|
-
this._environment.setEnvironment('mongo.uri', mongoUri);
|
|
258
|
-
(0, utils_1.debugLog)(this._environment.debug, 'log', `MongoDB Memory Server with transactions: ${mongoUri}`);
|
|
259
|
-
return mongoUri;
|
|
145
|
+
get ready() {
|
|
146
|
+
return this._ready;
|
|
260
147
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
})}`);
|
|
271
|
-
let initTimeout;
|
|
272
|
-
const initTimeoutMs = 300000;
|
|
273
|
-
const accountDataResult = await Promise.race([
|
|
274
|
-
this._databaseInitFunction(this),
|
|
275
|
-
new Promise((_, reject) => {
|
|
276
|
-
initTimeout = setTimeout(() => {
|
|
277
|
-
const logMsg = engine.translateStringKey(suite_core_lib_1.SuiteCoreStringKey.Admin_Error_FailedToInitializeUserDatabaseTimeoutTemplate, { timeMs: initTimeoutMs.toString() });
|
|
278
|
-
console.error(logMsg);
|
|
279
|
-
reject(new Error(logMsg));
|
|
280
|
-
}, initTimeoutMs);
|
|
281
|
-
}),
|
|
282
|
-
]);
|
|
283
|
-
if (initTimeout)
|
|
284
|
-
clearTimeout(initTimeout);
|
|
285
|
-
if (accountDataResult.success && accountDataResult.data) {
|
|
286
|
-
if (this._environment.detailedDebug) {
|
|
287
|
-
const initHash = this._initResultHashFunction(accountDataResult.data);
|
|
288
|
-
(0, utils_1.debugLog)(true, 'log', engine.translateStringKey(suite_core_lib_1.SuiteCoreStringKey.Admin_DatabaseInitializedWithOptionsHashTemplate, { hash: initHash }));
|
|
289
|
-
}
|
|
290
|
-
return accountDataResult.data;
|
|
148
|
+
constructor(environment, databaseOrStore, constants = suite_core_lib_1.Constants, lifecycleHooks) {
|
|
149
|
+
this._ready = false;
|
|
150
|
+
this._environment = environment;
|
|
151
|
+
this._constants = constants;
|
|
152
|
+
// Duck-typing detection: IDatabase has 'collection' and 'startSession' methods
|
|
153
|
+
if (isIDatabase(databaseOrStore)) {
|
|
154
|
+
this._database = databaseOrStore;
|
|
155
|
+
this._documentStore = undefined;
|
|
156
|
+
this._lifecycleHooks = lifecycleHooks;
|
|
291
157
|
}
|
|
292
158
|
else {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
159
|
+
this._database = undefined;
|
|
160
|
+
this._documentStore = databaseOrStore;
|
|
161
|
+
// Lifecycle hooks are only used on the IDatabase path
|
|
162
|
+
this._lifecycleHooks = undefined;
|
|
297
163
|
}
|
|
164
|
+
this.services = new container_1.ServiceContainer();
|
|
165
|
+
this.plugins = new plugins_1.PluginManager();
|
|
298
166
|
}
|
|
299
167
|
/**
|
|
300
|
-
*
|
|
301
|
-
|
|
302
|
-
get devDatabase() {
|
|
303
|
-
return this._devDatabase;
|
|
304
|
-
}
|
|
305
|
-
/**
|
|
306
|
-
* Start the application and connect to the database
|
|
168
|
+
* Start the application and connect to the database.
|
|
169
|
+
* Delegates connection to IDatabase or legacy IDocumentStore.
|
|
307
170
|
*/
|
|
308
171
|
async start(mongoUri, delayReady) {
|
|
309
172
|
if (this._ready) {
|
|
@@ -314,14 +177,72 @@ class BaseApplication {
|
|
|
314
177
|
}
|
|
315
178
|
process.exit(1);
|
|
316
179
|
}
|
|
317
|
-
|
|
318
|
-
|
|
180
|
+
// Legacy IDocumentStore path: handle dev database setup
|
|
181
|
+
if (this._documentStore) {
|
|
182
|
+
if (this._environment.devDatabase && !this._documentStore.devDatabase) {
|
|
183
|
+
if (this._documentStore.setupDevStore) {
|
|
184
|
+
mongoUri = (await this._documentStore.setupDevStore());
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// IDatabase path: handle dev store setup via lifecycle hooks
|
|
189
|
+
if (this._database &&
|
|
190
|
+
this._lifecycleHooks?.setupDevStore &&
|
|
191
|
+
this._environment.devDatabase) {
|
|
192
|
+
mongoUri = await this._lifecycleHooks.setupDevStore();
|
|
193
|
+
this._devStoreProvisioned = true;
|
|
319
194
|
}
|
|
320
195
|
try {
|
|
321
|
-
|
|
196
|
+
const uri = mongoUri ?? this.environment.mongo.uri;
|
|
197
|
+
if (this._database) {
|
|
198
|
+
// IDatabase path: validate URI before connecting
|
|
199
|
+
if (this._lifecycleHooks?.validateUri) {
|
|
200
|
+
this._lifecycleHooks.validateUri(uri);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
(0, default_mongo_uri_validator_1.defaultMongoUriValidator)(uri, this._environment.production);
|
|
204
|
+
}
|
|
205
|
+
await this._database.connect(uri);
|
|
206
|
+
}
|
|
207
|
+
else if (this._documentStore) {
|
|
208
|
+
// Legacy IDocumentStore path
|
|
209
|
+
await this._documentStore.connect(uri);
|
|
210
|
+
}
|
|
322
211
|
// Initialize plugins
|
|
323
212
|
await this.plugins.initAll(this);
|
|
324
|
-
//
|
|
213
|
+
// IDatabase path: run database initialization hook in dev mode
|
|
214
|
+
if (this._database &&
|
|
215
|
+
this._lifecycleHooks?.initializeDatabase &&
|
|
216
|
+
this._environment.devDatabase) {
|
|
217
|
+
const initTimeoutMs = 300000; // 5 minutes
|
|
218
|
+
const engine = (0, suite_core_lib_1.getSuiteCoreI18nEngine)({ constants: this._constants });
|
|
219
|
+
let initTimeout;
|
|
220
|
+
const initResult = await Promise.race([
|
|
221
|
+
this._lifecycleHooks.initializeDatabase(this),
|
|
222
|
+
new Promise((_, reject) => {
|
|
223
|
+
initTimeout = setTimeout(() => {
|
|
224
|
+
const logMsg = engine.translateStringKey(suite_core_lib_1.SuiteCoreStringKey.Admin_Error_FailedToInitializeUserDatabaseTimeoutTemplate, { timeMs: initTimeoutMs.toString() });
|
|
225
|
+
console.error(logMsg);
|
|
226
|
+
reject(new Error(logMsg));
|
|
227
|
+
}, initTimeoutMs);
|
|
228
|
+
}),
|
|
229
|
+
]);
|
|
230
|
+
if (initTimeout)
|
|
231
|
+
clearTimeout(initTimeout);
|
|
232
|
+
if (initResult.success && initResult.data !== undefined) {
|
|
233
|
+
if (this._environment.detailedDebug &&
|
|
234
|
+
this._lifecycleHooks.hashInitResults) {
|
|
235
|
+
const initHash = this._lifecycleHooks.hashInitResults(initResult.data);
|
|
236
|
+
(0, utils_1.debugLog)(true, 'log', engine.translateStringKey(suite_core_lib_1.SuiteCoreStringKey.Admin_DatabaseInitializedWithOptionsHashTemplate, { hash: initHash }));
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
if (this._environment.detailedDebug && initResult.error) {
|
|
241
|
+
(0, utils_1.debugLog)(true, 'log', initResult.error);
|
|
242
|
+
}
|
|
243
|
+
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Admin_Error_FailedToInitializeUserDatabase);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
325
246
|
}
|
|
326
247
|
catch (err) {
|
|
327
248
|
const sanitizedErr = err instanceof Error
|
|
@@ -336,28 +257,58 @@ class BaseApplication {
|
|
|
336
257
|
this._ready = delayReady ? false : true;
|
|
337
258
|
}
|
|
338
259
|
/**
|
|
339
|
-
* Stop the application
|
|
260
|
+
* Stop the application.
|
|
261
|
+
* Delegates disconnection to IDatabase or legacy IDocumentStore.
|
|
340
262
|
*/
|
|
341
263
|
async stop() {
|
|
342
264
|
await this.plugins.stopAll();
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
await this.
|
|
346
|
-
|
|
265
|
+
if (this._database) {
|
|
266
|
+
// IDatabase path
|
|
267
|
+
await this._database.disconnect();
|
|
268
|
+
// Teardown dev store if it was provisioned via lifecycle hooks
|
|
269
|
+
if (this._devStoreProvisioned && this._lifecycleHooks?.teardownDevStore) {
|
|
270
|
+
try {
|
|
271
|
+
await this._lifecycleHooks.teardownDevStore();
|
|
272
|
+
}
|
|
273
|
+
catch (teardownErr) {
|
|
274
|
+
console.error('Failed to teardown dev store:', teardownErr instanceof Error
|
|
275
|
+
? teardownErr.message
|
|
276
|
+
: String(teardownErr));
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
else if (this._documentStore) {
|
|
281
|
+
// Legacy IDocumentStore path
|
|
282
|
+
await this._documentStore.disconnect();
|
|
283
|
+
if (this._documentStore.devDatabase) {
|
|
284
|
+
await this._documentStore.devDatabase.stop();
|
|
285
|
+
}
|
|
347
286
|
}
|
|
348
287
|
this._ready = false;
|
|
349
288
|
}
|
|
350
289
|
/**
|
|
351
|
-
* Get a
|
|
290
|
+
* Get a collection by name via the IDatabase interface.
|
|
291
|
+
* @param name Name of the collection
|
|
292
|
+
* @returns ICollection<T> for the named collection
|
|
293
|
+
* @throws if no IDatabase was provided
|
|
294
|
+
*/
|
|
295
|
+
getCollection(name) {
|
|
296
|
+
if (!this._database) {
|
|
297
|
+
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Admin_Error_DatabaseNotConnectedYet);
|
|
298
|
+
}
|
|
299
|
+
return this._database.collection(name);
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Get a model by name, delegated to the legacy document store.
|
|
303
|
+
* @deprecated Use getCollection<T>(name) with IDatabase instead.
|
|
352
304
|
* @param modelName Name of the model
|
|
353
|
-
* @returns
|
|
354
305
|
*/
|
|
306
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
355
307
|
getModel(modelName) {
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
return
|
|
360
|
-
//return this.db.connection.model<T>(modelName);
|
|
308
|
+
if (!this._documentStore) {
|
|
309
|
+
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Admin_Error_DatabaseNotConnectedYet);
|
|
310
|
+
}
|
|
311
|
+
return this._documentStore.getModel(modelName);
|
|
361
312
|
}
|
|
362
313
|
}
|
|
363
314
|
exports.BaseApplication = BaseApplication;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-base.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/application-base.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,2EAA2E;AAC3E,6FAAkE;AAClE,oEAMyC;AACzC,iEAA2D;AAC3D,+BAA4B;AAC5B,2CAA+C;AAE/C,+CAA4C;AAK5C,qDAAiD;AACjD,uCAA0C;AAE1C,mCAAmC;AAGnC;;GAEG;AACH,MAAa,eAAe;IAM1B;;OAEG;IACK,YAAY,CAAmB;IACvC;;OAEG;IACK,YAAY,CAAsB;IAC1C;;OAEG;IACK,UAAU,CAAa;IAC/B;;OAEG;IACc,iBAAiB,CAEF;IAChC;;OAEG;IACc,qBAAqB,CAEM;IAC5C;;OAEG;IACc,uBAAuB,CAE5B;IAEZ;;OAEG;IACH,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,IAAa,EAAE,QAAQ,GAAG,IAAI;QACrD,IAAI,CAAC,YAAY,GAAG,IAAI,yBAAW,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACI,MAAM,KAAK,OAAO;QACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACO,GAAG,CAAmB;IAEhC;;OAEG;IACO,UAAU,CAAyC;IAC7D,IAAW,SAAS;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,mCAAmC,CACvD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACO,MAAM,CAAU;IAE1B;;OAEG;IACa,QAAQ,CAAmB;IAE3C;;OAEG;IACa,OAAO,CAAqB;IAE5C;;OAEG;IACH,IAAW,EAAE;QACX,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,mCAAmC,CACvD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,YACE,WAA6B,EAC7B,gBAE+B,EAC/B,oBAE2C,EAC3C,sBAA6D,EAC7D,YAAwB,0BAAuB;QAE/C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,uBAAuB,GAAG,sBAAsB,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,4BAAgB,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAa,EAAO,CAAC;IAC1C,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,GAAW;QAClC,oBAAoB;QACpB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,2BAA2B,CAC/C,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YACjC,uDAAuD;YACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CACxB,uDAAuD,CACxD,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACb,mDAAmD;gBACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACnD,wCAAwC;gBACxC,IACE,QAAQ,KAAK,WAAW;oBACxB,QAAQ,KAAK,WAAW;oBACxB,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;oBAC1B,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;oBAC/B,gCAAgC,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC/C,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,aAAa;oBAChD,QAAQ,KAAK,KAAK,IAAI,iBAAiB;oBACvC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,eAAe;oBAC/C,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,eAAe;kBAC5C,CAAC;oBACD,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,2BAA2B,CAC/C,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,eAAe,CAC7B,QAAgB,EAChB,KAAK,GAAG,KAAK;QAEb,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEhC,IAAA,gBAAQ,EACN,KAAK,EACL,KAAK,EACL,KAAK,IAAA,wCAAuB,EAC1B,mCAAkB,CAAC,iBAAiB,EACpC,SAAS,EACT,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAC9B,MAAM,IAAA,wCAAuB,EAC5B,mCAAkB,CAAC,cAAc,EACjC,SAAS,EACT,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAC9B,KAAK,QAAQ,EAAE,CACjB,CAAC;QAEF,gDAAgD;QAChD,IAAI,wBAAQ,CAAC,UAAU,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,wBAAQ,CAAC,UAAU,EAAE,CAAC;QAC9B,CAAC;QAED,mEAAmE;QACnE,MAAM,wBAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC/B,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW;YAChD,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW;YAChD,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,aAAa;YACpD,wBAAwB,EACtB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,wBAAwB;YAClD,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,eAAe;YACxD,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW;YAChD,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU;YAC9C,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,WAAW;YAChD,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY;SACnD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,GAAG,wBAAQ,CAAC;QAEpB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,wBAAQ,CAAC,UAAU,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBACzC,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,wBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAA,uCAAsB,EAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACrE,IAAA,gBAAQ,EACN,KAAK,EACL,KAAK,EACL,MAAM,CAAC,CAAC,CACN,mFAAmF,CACpF,CACF,CAAC;QAEF,IAAA,gBAAQ,EACN,KAAK,EACL,KAAK,EACL,MAAM,CAAC,CAAC,CACN,iFAAiF,CAClF,CACF,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAC7D,8DAA8D;QAC9D,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChD,8BAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC9B,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,cAAc,EAAE,MAAM,CAAC,cAAc;iBACtC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YAER,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAI9B,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACnB,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,CAAC,CACN,kFAAkF,MAAM,CAAC,SAAS,CAAC,OAAO,CACxG,SAAS,EACT,EAAE,CACH,GAAG,CACL,CACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CACX,MAAM,CAAC,kBAAkB,CACvB,mCAAkB,CAAC,yCAAyC,CAC7D,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG;gBACd,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,qBAAqB;oBAC/C,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;oBACrB,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,eAAe;oBAC3C,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,wCAAwC;oBAC9D,CAAC,CAAC;wBACE,+BAA+B,EAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,kBAAkB;qBAC7C;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,eAAe;oBAC3C,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,+CAA+C;oBACrE,CAAC,CAAC;wBACE,sCAAsC,EACpC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,6BAA6B;qBACxD;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;qBACzB,KAAK,EAAE;qBACP,OAAO,CAAC,OAAO,CAAC;qBAChB,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC5B,CAAC;YACD,IAAA,gBAAQ,EACN,KAAK,EACL,KAAK,EACL,MAAM,CAAC,kBAAkB,CACvB,mCAAkB,CAAC,uCAAuC,CAC3D,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,kBAAkB,CAAC,KAAK,GAAG,KAAK;QAC9C,IAAI,IAAI,CAAC,GAAG,IAAI,wBAAQ,CAAC,UAAU,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC9B,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,uCAAsB,EAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACrB,IAAA,gBAAQ,EACN,KAAK,EACL,KAAK,EACL,KAAK,MAAM,CAAC,kBAAkB,CAC5B,mCAAkB,CAAC,mBAAmB,CACvC,MAAM,MAAM,CAAC,kBAAkB,CAAC,mCAAkB,CAAC,cAAc,CAAC,EAAE,CACtE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,gBAAgB;QAC9B,IAAI,CAAC,YAAY,GAAG,MAAM,0CAAkB,CAAC,MAAM,CAAC;YAClD,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE;SACnD,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;QAC3C,MAAM,QAAQ,GACZ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;YACvD,+BAA+B,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAA,gBAAQ,EACN,IAAI,CAAC,YAAY,CAAC,KAAK,EACvB,KAAK,EACL,4CAA4C,QAAQ,EAAE,CACvD,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,qBAAqB;QACnC,MAAM,MAAM,GAAG,IAAA,uCAAsB,EAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACrE,IAAA,gBAAQ,EACN,IAAI,CAAC,YAAY,CAAC,KAAK,EACvB,KAAK,EACL,GAAG,MAAM,CAAC,kBAAkB,CAC1B,mCAAkB,CAAC,oCAAoC,CACxD,KAAK,MAAM,CAAC,kBAAkB,CAC7B,mCAAkB,CAAC,yCAAyC,EAC5D;YACE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,eAAe;gBAC5C,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,mCAAkB,CAAC,cAAc,CAAC;gBAC9D,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,mCAAkB,CAAC,eAAe,CAAC;SAClE,CACF,EAAE,CACJ,CAAC;QACF,IAAI,WAAuC,CAAC;QAC5C,MAAM,aAAa,GAAG,MAAM,CAAC;QAE7B,MAAM,iBAAiB,GAAkC,MAAM,OAAO,CAAC,IAAI,CACzE;YACE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAChC,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAC/B,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,CACtC,mCAAkB,CAAC,yDAAyD,EAC5E,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,EAAE,CACrC,CAAC;oBACF,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACtB,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5B,CAAC,EAAE,aAAa,CAAC,CAAC;YACpB,CAAC,CAAC;SACH,CACF,CAAC;QACF,IAAI,WAAW;YAAE,YAAY,CAAC,WAAW,CAAC,CAAC;QAE3C,IAAI,iBAAiB,CAAC,OAAO,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACtE,IAAA,gBAAQ,EACN,IAAI,EACJ,KAAK,EACL,MAAM,CAAC,kBAAkB,CACvB,mCAAkB,CAAC,gDAAgD,EACnE,EAAE,IAAI,EAAE,QAAQ,EAAE,CACnB,CACF,CAAC;YACJ,CAAC;YACD,OAAO,iBAAiB,CAAC,IAAI,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,iBAAiB,CAAC,KAAK,EAAE,CAAC;gBAC/D,IAAA,gBAAQ,EAAC,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,0CAA0C,CAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK,CAAC,QAAiB,EAAE,UAAoB;QACxD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CACX,kCAAkC,EAClC,gCAAgC,CACjC,CAAC;YACF,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACxD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;gBACvC,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACxD,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,eAAe,CACxB,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EACtC,IAAI,CAAC,WAAW,CAAC,KAAK,CACvB,CAAC;YAEF,qBAAqB;YACrB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEjC,yEAAyE;QAC3E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK;gBAClB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;gBACrC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,YAAY,CAAC,CAAC;YAChE,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;gBACvC,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI;QACf,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACI,QAAQ,CACb,SAAiB;QAEjB,kBAAkB;QAClB,wEAAwE;QACxE,IAAI;QACJ,OAAO,8BAAa,CAAC,QAAQ,CAAC,GAAG,CAAS,SAAS,CAAC,CAAC,KAAK,CAAC;QAC3D,gDAAgD;IAClD,CAAC;CACF;AAjfD,0CAifC"}
|
|
1
|
+
{"version":3,"file":"application-base.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/application-base.ts"],"names":[],"mappings":"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"}
|
package/src/application.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { IBaseDocument } from './documents/base';
|
|
|
11
11
|
import { Environment } from './environment';
|
|
12
12
|
import { IApplication, ICSPConfig, IFailableResult, IServerInitResult } from './interfaces';
|
|
13
13
|
import { IConstants } from './interfaces/constants';
|
|
14
|
+
import { IDocumentStore } from './interfaces/document-store';
|
|
14
15
|
import { IFlexibleCSP } from './interfaces/flexible-csp';
|
|
15
16
|
import { initMiddleware } from './middleware-utils';
|
|
16
17
|
import { AppRouter } from './routers/app';
|
|
@@ -28,7 +29,7 @@ export declare class Application<TInitResults extends IServerInitResult<TID>, TM
|
|
|
28
29
|
private greenlockManager;
|
|
29
30
|
get environment(): TEnvironment;
|
|
30
31
|
protected registerServices(): void;
|
|
31
|
-
constructor(environment: TEnvironment, apiRouterFactory: (app: IApplication<TID>) => BaseRouter<TID>, schemaMapFactory: (connection: mongoose.Connection) => SchemaMap<TID, TModelDocs>, databaseInitFunction: (application: BaseApplication<TID, TModelDocs, TInitResults>) => Promise<IFailableResult<TInitResults>>, initResultHashFunction: (initResults: TInitResults) => string, cspConfig?: ICSPConfig | HelmetOptions | IFlexibleCSP, constants?: TConstants, appRouterFactory?: (apiRouter: BaseRouter<TID>) => TAppRouter, customInitMiddleware?: typeof initMiddleware);
|
|
32
|
+
constructor(environment: TEnvironment, apiRouterFactory: (app: IApplication<TID>) => BaseRouter<TID>, schemaMapFactory: (connection: mongoose.Connection) => SchemaMap<TID, TModelDocs>, databaseInitFunction: (application: BaseApplication<TID, TModelDocs, TInitResults>) => Promise<IFailableResult<TInitResults>>, initResultHashFunction: (initResults: TInitResults) => string, cspConfig?: ICSPConfig | HelmetOptions | IFlexibleCSP, constants?: TConstants, appRouterFactory?: (apiRouter: BaseRouter<TID>) => TAppRouter, customInitMiddleware?: typeof initMiddleware, documentStore?: IDocumentStore<TID, TModelDocs>);
|
|
32
33
|
start(mongoUri?: string): Promise<void>;
|
|
33
34
|
stop(): Promise<void>;
|
|
34
35
|
}
|
package/src/application.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/application.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AAOvD,OAAgB,EACd,WAAW,IAAI,kBAAkB,EAIlC,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAIvC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,eAAe,EAEf,iBAAiB,EAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAiB,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAmB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/application.ts"],"names":[],"mappings":"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"}
|
package/src/application.js
CHANGED
|
@@ -48,8 +48,10 @@ class Application extends application_base_1.BaseApplication {
|
|
|
48
48
|
fontSrc: [],
|
|
49
49
|
frameSrc: [],
|
|
50
50
|
},
|
|
51
|
-
}, constants = suite_core_lib_1.Constants, appRouterFactory = (apiRouter) => new app_1.AppRouter(apiRouter), customInitMiddleware = middleware_utils_1.initMiddleware) {
|
|
52
|
-
|
|
51
|
+
}, constants = suite_core_lib_1.Constants, appRouterFactory = (apiRouter) => new app_1.AppRouter(apiRouter), customInitMiddleware = middleware_utils_1.initMiddleware, documentStore) {
|
|
52
|
+
const store = documentStore ??
|
|
53
|
+
new services_1.MongooseDocumentStore(schemaMapFactory, databaseInitFunction, initResultHashFunction, environment, constants);
|
|
54
|
+
super(environment, store, constants);
|
|
53
55
|
this._apiRouterFactory = apiRouterFactory;
|
|
54
56
|
this._appRouterFactory = appRouterFactory;
|
|
55
57
|
this._initMiddleware = customInitMiddleware;
|
|
@@ -62,8 +64,10 @@ class Application extends application_base_1.BaseApplication {
|
|
|
62
64
|
const engine = (0, suite_core_lib_1.getSuiteCoreI18nEngine)({ constants: this.constants });
|
|
63
65
|
await super.start(mongoUri, true);
|
|
64
66
|
if (this.devDatabase) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
if (this._documentStore?.initializeDevStore) {
|
|
68
|
+
const result = await this._documentStore.initializeDevStore(this);
|
|
69
|
+
services_1.DatabaseInitializationService.printServerInitResults(result, false);
|
|
70
|
+
}
|
|
67
71
|
}
|
|
68
72
|
try {
|
|
69
73
|
this._apiRouter = this._apiRouterFactory(this);
|
package/src/application.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/application.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,wDAA4D;AAE5D,oEAKyC;AACzC,8DAKiB;AACjB,2BAAkC;AAGlC,iCAAqC;AACrC,+BAAsD;AACtD,yDAAqD;AAGrD,6CAMsB;
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/application.ts"],"names":[],"mappings":"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"}
|