@digitaldefiance/node-express-suite 3.18.3 → 4.0.1
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/README.md +230 -1
- package/package.json +1 -1
- package/src/__tests__/helpers/setup-test-env.d.ts +2 -1
- package/src/__tests__/helpers/setup-test-env.d.ts.map +1 -1
- package/src/__tests__/helpers/setup-test-env.js +55 -43
- package/src/__tests__/helpers/setup-test-env.js.map +1 -1
- package/src/application.d.ts +52 -11
- package/src/application.d.ts.map +1 -1
- package/src/application.js +131 -27
- package/src/application.js.map +1 -1
- package/src/{application-base.d.ts → base-application.d.ts} +4 -4
- package/src/{application-base.d.ts.map → base-application.d.ts.map} +1 -1
- package/src/{application-base.js → base-application.js} +4 -4
- package/src/{application-base.js.map → base-application.js.map} +1 -1
- package/src/builders/application-builder.d.ts +13 -8
- package/src/builders/application-builder.d.ts.map +1 -1
- package/src/builders/application-builder.js +18 -3
- package/src/builders/application-builder.js.map +1 -1
- package/src/index.d.ts +3 -3
- package/src/index.d.ts.map +1 -1
- package/src/index.js +5 -4
- package/src/index.js.map +1 -1
- package/src/interfaces/document-store.d.ts +3 -34
- package/src/interfaces/document-store.d.ts.map +1 -1
- package/src/interfaces/document-store.js +5 -3
- package/src/interfaces/document-store.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/interfaces/mongoose-document-store.d.ts +42 -0
- package/src/interfaces/mongoose-document-store.d.ts.map +1 -0
- package/src/interfaces/mongoose-document-store.js +10 -0
- package/src/interfaces/mongoose-document-store.js.map +1 -0
- package/src/{application-concrete.d.ts → mongo-application-concrete.d.ts} +12 -6
- package/src/mongo-application-concrete.d.ts.map +1 -0
- package/src/mongo-application-concrete.js +49 -0
- package/src/mongo-application-concrete.js.map +1 -0
- package/src/plugins/database-plugin.d.ts +66 -0
- package/src/plugins/database-plugin.d.ts.map +1 -0
- package/src/plugins/database-plugin.js +10 -0
- package/src/plugins/database-plugin.js.map +1 -0
- package/src/plugins/index.d.ts +2 -0
- package/src/plugins/index.d.ts.map +1 -1
- package/src/plugins/index.js +2 -0
- package/src/plugins/index.js.map +1 -1
- package/src/plugins/mongo-database-plugin.d.ts +115 -0
- package/src/plugins/mongo-database-plugin.d.ts.map +1 -0
- package/src/plugins/mongo-database-plugin.js +234 -0
- package/src/plugins/mongo-database-plugin.js.map +1 -0
- package/src/services/mongoose-document-store.d.ts +3 -3
- package/src/services/mongoose-document-store.d.ts.map +1 -1
- package/src/services/mongoose-document-store.js.map +1 -1
- package/src/utils/index.d.ts +2 -0
- package/src/utils/index.d.ts.map +1 -0
- package/src/utils/index.js +6 -0
- package/src/utils/index.js.map +1 -0
- package/src/utils/no-op-database.d.ts +8 -0
- package/src/utils/no-op-database.d.ts.map +1 -0
- package/src/utils/no-op-database.js +37 -0
- package/src/utils/no-op-database.js.map +1 -0
- package/src/application-concrete.d.ts.map +0 -1
- package/src/application-concrete.js +0 -34
- package/src/application-concrete.js.map +0 -1
- package/src/mongo-application-base.d.ts +0 -81
- package/src/mongo-application-base.d.ts.map +0 -1
- package/src/mongo-application-base.js +0 -216
- package/src/mongo-application-base.js.map +0 -1
package/src/application.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* @fileoverview
|
|
4
|
-
* Extends
|
|
3
|
+
* @fileoverview Generic Express application class.
|
|
4
|
+
* Extends BaseApplication with HTTP/HTTPS server, routing, and middleware.
|
|
5
|
+
* Database-agnostic — database backends are provided via IDatabasePlugin.
|
|
5
6
|
* @module application
|
|
6
7
|
*/
|
|
7
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -13,15 +14,28 @@ const express_1 = tslib_1.__importDefault(require("express"));
|
|
|
13
14
|
const fs_1 = require("fs");
|
|
14
15
|
const https_1 = require("https");
|
|
15
16
|
const path_1 = require("path");
|
|
16
|
-
const
|
|
17
|
+
const base_application_1 = require("./base-application");
|
|
17
18
|
const interfaces_1 = require("./interfaces");
|
|
18
19
|
const flexible_csp_1 = require("./interfaces/flexible-csp");
|
|
19
20
|
const middleware_utils_1 = require("./middleware-utils");
|
|
20
21
|
const app_1 = require("./routers/app");
|
|
21
|
-
const services_1 = require("./services");
|
|
22
22
|
const utils_1 = require("./utils");
|
|
23
23
|
const greenlock_manager_1 = require("./greenlock-manager");
|
|
24
|
-
|
|
24
|
+
const mongo_database_plugin_1 = require("./plugins/mongo-database-plugin");
|
|
25
|
+
const no_op_database_1 = require("./utils/no-op-database");
|
|
26
|
+
/**
|
|
27
|
+
* Generic Express application class.
|
|
28
|
+
*
|
|
29
|
+
* Provides HTTP/HTTPS server, routing, middleware, and error handling.
|
|
30
|
+
* Database backends are plugged in via IDatabasePlugin rather than
|
|
31
|
+
* being baked into the class hierarchy.
|
|
32
|
+
*
|
|
33
|
+
* @template TID - Platform ID type (Buffer, ObjectId, etc.)
|
|
34
|
+
* @template TEnvironment - Environment type
|
|
35
|
+
* @template TConstants - Constants type
|
|
36
|
+
* @template TAppRouter - App router type
|
|
37
|
+
*/
|
|
38
|
+
class Application extends base_application_1.BaseApplication {
|
|
25
39
|
expressApp;
|
|
26
40
|
server = null;
|
|
27
41
|
_cspConfig;
|
|
@@ -30,14 +44,59 @@ class Application extends mongo_application_base_1.MongoApplicationBase {
|
|
|
30
44
|
_initMiddleware;
|
|
31
45
|
_apiRouter;
|
|
32
46
|
greenlockManager = null;
|
|
47
|
+
_databasePlugin = null;
|
|
33
48
|
get environment() {
|
|
34
49
|
return super.environment;
|
|
35
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Get the registered database plugin, if any.
|
|
53
|
+
*/
|
|
54
|
+
get databasePlugin() {
|
|
55
|
+
return this._databasePlugin;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get the Mongoose database instance.
|
|
59
|
+
* Delegates to the MongoDatabasePlugin when registered.
|
|
60
|
+
* This allows the Application to satisfy IMongoApplication
|
|
61
|
+
* when a MongoDatabasePlugin is in use.
|
|
62
|
+
*/
|
|
63
|
+
get db() {
|
|
64
|
+
if (this._databasePlugin &&
|
|
65
|
+
this._databasePlugin instanceof mongo_database_plugin_1.MongoDatabasePlugin) {
|
|
66
|
+
return this._databasePlugin.db;
|
|
67
|
+
}
|
|
68
|
+
throw new Error('No MongoDatabasePlugin registered. The db accessor requires a MongoDatabasePlugin.');
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get a Mongoose model by name.
|
|
72
|
+
* Delegates to the MongoDatabasePlugin when registered.
|
|
73
|
+
*/
|
|
74
|
+
getModel(modelName) {
|
|
75
|
+
if (this._databasePlugin &&
|
|
76
|
+
this._databasePlugin instanceof mongo_database_plugin_1.MongoDatabasePlugin) {
|
|
77
|
+
return this._databasePlugin.getModel(modelName);
|
|
78
|
+
}
|
|
79
|
+
throw new Error('No MongoDatabasePlugin registered. The getModel accessor requires a MongoDatabasePlugin.');
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Register a database plugin. Must be called before start().
|
|
83
|
+
* The plugin will be initialized during start() and its database
|
|
84
|
+
* will be used as the application's primary database.
|
|
85
|
+
*/
|
|
86
|
+
useDatabasePlugin(plugin) {
|
|
87
|
+
this._databasePlugin = plugin;
|
|
88
|
+
// Also register it as a regular plugin so it participates in the lifecycle
|
|
89
|
+
this.plugins.register(plugin);
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Hook for subclasses to register services before the server starts.
|
|
94
|
+
* Called during the constructor.
|
|
95
|
+
*/
|
|
36
96
|
registerServices() {
|
|
37
|
-
//
|
|
38
|
-
// Base implementation does nothing
|
|
97
|
+
// Subclasses can override to register services
|
|
39
98
|
}
|
|
40
|
-
constructor(environment, apiRouterFactory,
|
|
99
|
+
constructor(environment, apiRouterFactory, cspConfig = {
|
|
41
100
|
corsWhitelist: [],
|
|
42
101
|
csp: {
|
|
43
102
|
defaultSrc: [],
|
|
@@ -48,10 +107,8 @@ class Application extends mongo_application_base_1.MongoApplicationBase {
|
|
|
48
107
|
fontSrc: [],
|
|
49
108
|
frameSrc: [],
|
|
50
109
|
},
|
|
51
|
-
}, constants = suite_core_lib_1.Constants, appRouterFactory = (apiRouter) => new app_1.AppRouter(apiRouter), customInitMiddleware = middleware_utils_1.initMiddleware,
|
|
52
|
-
|
|
53
|
-
new services_1.MongooseDocumentStore(schemaMapFactory, databaseInitFunction, initResultHashFunction, environment, constants);
|
|
54
|
-
super(environment, store, constants);
|
|
110
|
+
}, constants = suite_core_lib_1.Constants, appRouterFactory = (apiRouter) => new app_1.AppRouter(apiRouter), customInitMiddleware = middleware_utils_1.initMiddleware, database) {
|
|
111
|
+
super(environment, database ?? (0, no_op_database_1.createNoOpDatabase)(), constants);
|
|
55
112
|
this._apiRouterFactory = apiRouterFactory;
|
|
56
113
|
this._appRouterFactory = appRouterFactory;
|
|
57
114
|
this._initMiddleware = customInitMiddleware;
|
|
@@ -60,15 +117,56 @@ class Application extends mongo_application_base_1.MongoApplicationBase {
|
|
|
60
117
|
this._cspConfig = cspConfig;
|
|
61
118
|
this.registerServices();
|
|
62
119
|
}
|
|
63
|
-
async start(
|
|
120
|
+
async start(uri) {
|
|
64
121
|
const engine = (0, suite_core_lib_1.getSuiteCoreI18nEngine)({ constants: this.constants });
|
|
65
|
-
|
|
66
|
-
if (this.
|
|
67
|
-
if (this.
|
|
68
|
-
|
|
69
|
-
|
|
122
|
+
// If a database plugin is registered, handle its lifecycle
|
|
123
|
+
if (this._databasePlugin) {
|
|
124
|
+
if (this._ready) {
|
|
125
|
+
console.error('Failed to start the application:', 'Application is already running');
|
|
126
|
+
const err = new Error('Application is already running');
|
|
127
|
+
if (process.env['NODE_ENV'] === 'test') {
|
|
128
|
+
throw err;
|
|
129
|
+
}
|
|
130
|
+
process.exit(1);
|
|
70
131
|
}
|
|
132
|
+
// Dev store setup
|
|
133
|
+
if (this.environment.devDatabase && this._databasePlugin.setupDevStore) {
|
|
134
|
+
const devUri = await this._databasePlugin.setupDevStore();
|
|
135
|
+
if (devUri) {
|
|
136
|
+
uri = devUri;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
try {
|
|
140
|
+
// Connect the database plugin
|
|
141
|
+
await this._databasePlugin.connect(uri);
|
|
142
|
+
// Initialize all plugins (including the database plugin)
|
|
143
|
+
await this.plugins.initAll(this);
|
|
144
|
+
// Wire up auth provider from database plugin
|
|
145
|
+
if (this._databasePlugin.authenticationProvider && !this.authProvider) {
|
|
146
|
+
this.authProvider = this._databasePlugin.authenticationProvider;
|
|
147
|
+
}
|
|
148
|
+
// Dev store initialization (seeding)
|
|
149
|
+
if (this.environment.devDatabase &&
|
|
150
|
+
this._databasePlugin.initializeDevStore) {
|
|
151
|
+
await this._databasePlugin.initializeDevStore();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch (err) {
|
|
155
|
+
const sanitizedErr = err instanceof Error
|
|
156
|
+
? err.message.replace(/[\r\n]/g, ' ')
|
|
157
|
+
: String(err).replace(/[\r\n]/g, ' ');
|
|
158
|
+
console.error('Failed to start the application:', sanitizedErr);
|
|
159
|
+
if (process.env['NODE_ENV'] === 'test') {
|
|
160
|
+
throw err;
|
|
161
|
+
}
|
|
162
|
+
process.exit(1);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
// No database plugin — use BaseApplication's IDatabase path
|
|
167
|
+
await super.start(uri, true);
|
|
71
168
|
}
|
|
169
|
+
// Start Express server and routing
|
|
72
170
|
try {
|
|
73
171
|
this._apiRouter = this._apiRouterFactory(this);
|
|
74
172
|
if ((0, flexible_csp_1.isFlexibleCSP)(this._cspConfig) || (0, interfaces_1.isCSPConfig)(this._cspConfig)) {
|
|
@@ -107,14 +205,13 @@ class Application extends mongo_application_base_1.MongoApplicationBase {
|
|
|
107
205
|
setImmediate(safeHandle);
|
|
108
206
|
});
|
|
109
207
|
const serversReady = [];
|
|
110
|
-
serversReady.push(new Promise((
|
|
208
|
+
serversReady.push(new Promise((resolvePromise) => {
|
|
111
209
|
this.server = this.expressApp.listen(this.environment.port, this.environment.host, () => {
|
|
112
210
|
(0, utils_1.debugLog)(this.environment.debug, 'log', `[ ${engine.translateStringKey(suite_core_lib_1.SuiteCoreStringKey.Common_Ready)} ] http://${this.environment.host}:${this.environment.port}`);
|
|
113
|
-
|
|
211
|
+
resolvePromise();
|
|
114
212
|
});
|
|
115
213
|
}));
|
|
116
214
|
if (this.environment.letsEncrypt.enabled) {
|
|
117
|
-
// Let's Encrypt mode: start GreenlockManager for HTTPS on 443 + redirect on 80
|
|
118
215
|
this.greenlockManager = new greenlock_manager_1.GreenlockManager(this.environment.letsEncrypt);
|
|
119
216
|
serversReady.push(this.greenlockManager.start(this.expressApp));
|
|
120
217
|
}
|
|
@@ -135,10 +232,10 @@ class Application extends mongo_application_base_1.MongoApplicationBase {
|
|
|
135
232
|
// amazonq-ignore-next-line fixed above
|
|
136
233
|
cert: (0, fs_1.readFileSync)(certPath),
|
|
137
234
|
};
|
|
138
|
-
serversReady.push(new Promise((
|
|
235
|
+
serversReady.push(new Promise((resolvePromise) => {
|
|
139
236
|
(0, https_1.createServer)(options, this.expressApp).listen(this.environment.httpsDevPort, this.environment.host, () => {
|
|
140
237
|
console.log(`[ ${engine.translateStringKey(suite_core_lib_1.SuiteCoreStringKey.Common_Ready)} ] https://${this.environment.host}:${this.environment.httpsDevPort}`);
|
|
141
|
-
|
|
238
|
+
resolvePromise();
|
|
142
239
|
});
|
|
143
240
|
}));
|
|
144
241
|
}
|
|
@@ -165,21 +262,28 @@ class Application extends mongo_application_base_1.MongoApplicationBase {
|
|
|
165
262
|
const engine = (0, suite_core_lib_1.getSuiteCoreI18nEngine)({ constants: this.constants });
|
|
166
263
|
if (this.server) {
|
|
167
264
|
(0, utils_1.debugLog)(this.environment.debug, 'log', `[ ${engine.translateStringKey(suite_core_lib_1.SuiteCoreStringKey.Common_Stopping)} ] ${engine.translateStringKey(suite_core_lib_1.SuiteCoreStringKey.Common_ApplicationAndDatabase)}`);
|
|
168
|
-
await new Promise((
|
|
265
|
+
await new Promise((resolvePromise, reject) => {
|
|
169
266
|
this.server.closeAllConnections?.();
|
|
170
267
|
this.server.close((err) => {
|
|
171
268
|
if (err) {
|
|
172
269
|
reject(err);
|
|
173
270
|
}
|
|
174
271
|
else {
|
|
175
|
-
|
|
272
|
+
resolvePromise();
|
|
176
273
|
}
|
|
177
274
|
});
|
|
178
275
|
});
|
|
179
276
|
this.server = null;
|
|
180
277
|
}
|
|
181
|
-
|
|
182
|
-
|
|
278
|
+
// Database plugin handles its own teardown via stop()
|
|
279
|
+
// which is called by PluginManager.stopAll() in super.stop()
|
|
280
|
+
if (this._databasePlugin) {
|
|
281
|
+
await this.plugins.stopAll();
|
|
282
|
+
this._ready = false;
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
await super.stop();
|
|
286
|
+
}
|
|
183
287
|
(0, utils_1.debugLog)(this.environment.debug, 'log', `[ ${engine.translateStringKey(suite_core_lib_1.SuiteCoreStringKey.Common_Stopped)} ] ${engine.translateStringKey(suite_core_lib_1.SuiteCoreStringKey.Common_ApplicationAndDatabase)}`);
|
|
184
288
|
}
|
|
185
289
|
}
|
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;;;;
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview Database-agnostic base application class.
|
|
3
3
|
* Delegates database operations to an IDatabase instance.
|
|
4
|
-
* For MongoDB/Mongoose-specific functionality, see
|
|
5
|
-
* @module application
|
|
4
|
+
* For MongoDB/Mongoose-specific functionality, see MongoDatabasePlugin.
|
|
5
|
+
* @module base-application
|
|
6
6
|
*/
|
|
7
7
|
import type { BsonDocument, ICollection, IDatabase, IDatabaseLifecycleHooks } from './interfaces/storage';
|
|
8
8
|
import { ServiceContainer } from './container';
|
|
@@ -18,7 +18,7 @@ import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
|
18
18
|
* for dev store provisioning, URI validation, and database initialization.
|
|
19
19
|
*
|
|
20
20
|
* For MongoDB/Mongoose-specific functionality (IDocumentStore, schemaMap,
|
|
21
|
-
* getModel, db), use
|
|
21
|
+
* getModel, db), use MongoDatabasePlugin which plugs into Application.
|
|
22
22
|
*/
|
|
23
23
|
export declare class BaseApplication<TID extends PlatformID, TInitResults = unknown, TConstants extends IConstants = IConstants> implements IApplication<TID> {
|
|
24
24
|
/**
|
|
@@ -99,4 +99,4 @@ export declare class BaseApplication<TID extends PlatformID, TInitResults = unkn
|
|
|
99
99
|
*/
|
|
100
100
|
getCollection<T extends BsonDocument>(name: string): ICollection<T>;
|
|
101
101
|
}
|
|
102
|
-
//# sourceMappingURL=application
|
|
102
|
+
//# sourceMappingURL=base-application.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application
|
|
1
|
+
{"version":3,"file":"base-application.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/base-application.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,SAAS,EACT,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE;;;;;;;GAOG;AACH,qBAAa,eAAe,CAC1B,GAAG,SAAS,UAAU,EACtB,YAAY,GAAG,OAAO,EACtB,UAAU,SAAS,UAAU,GAAG,UAAU,CAC1C,YAAW,YAAY,CAAC,GAAG,CAAC;IAC5B;;OAEG;IACH,OAAO,CAAC,YAAY,CAAmB;IAEvC;;OAEG;IACH,OAAO,CAAC,UAAU,CAAa;IAE/B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAExC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,EAC9B,uBAAuB,CAAC,YAAY,CAAC,GACrC,SAAS,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC,oBAAoB,UAAS;IAEvC;;OAEG;IACH,IAAW,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,CAEzC;IAED,IAAW,SAAS,IAAI,UAAU,CAEjC;IAED;;OAEG;IACI,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,IAAI;IAI9D;;OAEG;IACH,WAAkB,OAAO,IAAI,MAAM,CAIlC;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,SAAgB,QAAQ,EAAE,gBAAgB,CAAC;IAE3C;;OAEG;IACH,SAAgB,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAE5C;;OAEG;IACH,IAAW,QAAQ,IAAI,SAAS,CAE/B;IAED;;;OAGG;IACH,OAAO,CAAC,aAAa,CAA2C;IAEhE,IAAW,YAAY,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,SAAS,CAElE;IAED,IAAW,YAAY,CAAC,QAAQ,EAAE,uBAAuB,CAAC,GAAG,CAAC,GAAG,SAAS,EAEzE;IAED;;OAEG;IACH,IAAW,KAAK,IAAI,OAAO,CAE1B;gBAGC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,EAC7B,QAAQ,EAAE,SAAS,EACnB,SAAS,GAAE,UAAoC,EAC/C,cAAc,CAAC,EAAE,uBAAuB,CAAC,YAAY,CAAC;IAWxD;;;OAGG;IACU,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiGrE;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBlC;;;;OAIG;IACI,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;CAG3E"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* @fileoverview Database-agnostic base application class.
|
|
4
4
|
* Delegates database operations to an IDatabase instance.
|
|
5
|
-
* For MongoDB/Mongoose-specific functionality, see
|
|
6
|
-
* @module application
|
|
5
|
+
* For MongoDB/Mongoose-specific functionality, see MongoDatabasePlugin.
|
|
6
|
+
* @module base-application
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.BaseApplication = void 0;
|
|
@@ -19,7 +19,7 @@ const utils_1 = require("./utils");
|
|
|
19
19
|
* for dev store provisioning, URI validation, and database initialization.
|
|
20
20
|
*
|
|
21
21
|
* For MongoDB/Mongoose-specific functionality (IDocumentStore, schemaMap,
|
|
22
|
-
* getModel, db), use
|
|
22
|
+
* getModel, db), use MongoDatabasePlugin which plugs into Application.
|
|
23
23
|
*/
|
|
24
24
|
class BaseApplication {
|
|
25
25
|
/**
|
|
@@ -213,4 +213,4 @@ class BaseApplication {
|
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
exports.BaseApplication = BaseApplication;
|
|
216
|
-
//# sourceMappingURL=application
|
|
216
|
+
//# sourceMappingURL=base-application.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application
|
|
1
|
+
{"version":3,"file":"base-application.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/base-application.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview Application builder for fluent application construction.
|
|
3
|
-
* Provides builder pattern for creating Application instances.
|
|
3
|
+
* Provides builder pattern for creating Application instances with MongoDatabasePlugin.
|
|
4
4
|
* @module builders/application-builder
|
|
5
5
|
*/
|
|
6
6
|
import mongoose from '@digitaldefiance/mongoose-types';
|
|
7
7
|
import { HelmetOptions } from 'helmet';
|
|
8
8
|
import { Application } from '../application';
|
|
9
|
-
import { MongoApplicationBase } from '../mongo-application-base';
|
|
10
9
|
import { IBaseDocument } from '../documents';
|
|
11
10
|
import { Environment } from '../environment';
|
|
12
|
-
import { ICSPConfig, IFailableResult, IServerInitResult } from '../interfaces';
|
|
11
|
+
import { IApplication, ICSPConfig, IFailableResult, IServerInitResult } from '../interfaces';
|
|
13
12
|
import { IConstants } from '../interfaces/constants';
|
|
14
13
|
import { IFlexibleCSP } from '../interfaces/flexible-csp';
|
|
14
|
+
import { IMongoApplication } from '../interfaces/mongo-application';
|
|
15
15
|
import { initMiddleware } from '../middleware-utils';
|
|
16
16
|
import { AppRouter } from '../routers/app';
|
|
17
17
|
import { BaseRouter } from '../routers/base';
|
|
18
18
|
import { SchemaMap } from '../types';
|
|
19
19
|
import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
20
20
|
/**
|
|
21
|
-
* Builder for constructing Application instances with fluent API.
|
|
21
|
+
* Builder for constructing Application instances with MongoDatabasePlugin using a fluent API.
|
|
22
|
+
*
|
|
22
23
|
* @template TID - Platform ID type
|
|
23
24
|
* @template TModelDocs - Model documents type
|
|
24
25
|
* @template TInitResults - Initialization results type
|
|
25
26
|
* @template TConstants - Constants type (defaults to IConstants)
|
|
26
27
|
*/
|
|
27
|
-
export declare class ApplicationBuilder<TID extends PlatformID, TModelDocs extends Record<string, IBaseDocument<
|
|
28
|
+
export declare class ApplicationBuilder<TID extends PlatformID, TModelDocs extends Record<string, IBaseDocument<never, TID>>, TInitResults extends IServerInitResult<TID>, TConstants extends IConstants = IConstants> {
|
|
28
29
|
private environment?;
|
|
29
30
|
private apiRouterFactory?;
|
|
30
31
|
private appRouterFactory?;
|
|
@@ -35,13 +36,17 @@ export declare class ApplicationBuilder<TID extends PlatformID, TModelDocs exten
|
|
|
35
36
|
private constants?;
|
|
36
37
|
private customInitMiddleware?;
|
|
37
38
|
withEnvironment(env: Environment<TID>): this;
|
|
38
|
-
withApiRouter(factory: (app:
|
|
39
|
+
withApiRouter(factory: (app: IApplication<TID>) => BaseRouter<TID>): this;
|
|
39
40
|
withAppRouter(factory: (apiRouter: BaseRouter<TID>) => AppRouter<TID>): this;
|
|
40
41
|
withSchemaMap(factory: (connection: mongoose.Connection) => SchemaMap<TID, TModelDocs>): this;
|
|
41
|
-
withDatabaseInit(initFn: (app:
|
|
42
|
+
withDatabaseInit(initFn: (app: IMongoApplication<TID>) => Promise<IFailableResult<TInitResults>>, hashFn: (results: TInitResults) => string): this;
|
|
42
43
|
withCSP(config: ICSPConfig | HelmetOptions | IFlexibleCSP): this;
|
|
43
44
|
withConstants(constants: TConstants): this;
|
|
44
45
|
withMiddleware(middleware: typeof initMiddleware): this;
|
|
45
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Build an Application with a MongoDatabasePlugin pre-registered.
|
|
48
|
+
* Returns the Application instance with the plugin already wired up.
|
|
49
|
+
*/
|
|
50
|
+
build(): Application<TID, Environment<TID>, TConstants, AppRouter<TID>>;
|
|
46
51
|
}
|
|
47
52
|
//# sourceMappingURL=application-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/builders/application-builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AAKvD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"application-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/builders/application-builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AAKvD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE;;;;;;;GAOG;AACH,qBAAa,kBAAkB,CAC7B,GAAG,SAAS,UAAU,EACtB,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAC5D,YAAY,SAAS,iBAAiB,CAAC,GAAG,CAAC,EAC3C,UAAU,SAAS,UAAU,GAAG,UAAU;IAE1C,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,gBAAgB,CAAC,CAA8C;IACvE,OAAO,CAAC,gBAAgB,CAAC,CAAiD;IAC1E,OAAO,CAAC,gBAAgB,CAAC,CAEO;IAChC,OAAO,CAAC,oBAAoB,CAAC,CAEe;IAC5C,OAAO,CAAC,sBAAsB,CAAC,CAAoC;IACnE,OAAO,CAAC,SAAS,CAAC,CAA4C;IAC9D,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,oBAAoB,CAAC,CAAwB;IAErD,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI;IAK5C,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI;IAKzE,aAAa,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI;IAK5E,aAAa,CACX,OAAO,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,GACvE,IAAI;IAKP,gBAAgB,CACd,MAAM,EAAE,CACN,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,KACxB,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,EAC3C,MAAM,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,MAAM,GACxC,IAAI;IAMP,OAAO,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,IAAI;IAKhE,aAAa,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI;IAK1C,cAAc,CAAC,UAAU,EAAE,OAAO,cAAc,GAAG,IAAI;IAKvD;;;OAGG;IACH,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;CAqDxE"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* @fileoverview Application builder for fluent application construction.
|
|
4
|
-
* Provides builder pattern for creating Application instances.
|
|
4
|
+
* Provides builder pattern for creating Application instances with MongoDatabasePlugin.
|
|
5
5
|
* @module builders/application-builder
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.ApplicationBuilder = void 0;
|
|
9
9
|
const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
|
|
10
10
|
const application_1 = require("../application");
|
|
11
|
+
const mongo_database_plugin_1 = require("../plugins/mongo-database-plugin");
|
|
11
12
|
/**
|
|
12
|
-
* Builder for constructing Application instances with fluent API.
|
|
13
|
+
* Builder for constructing Application instances with MongoDatabasePlugin using a fluent API.
|
|
14
|
+
*
|
|
13
15
|
* @template TID - Platform ID type
|
|
14
16
|
* @template TModelDocs - Model documents type
|
|
15
17
|
* @template TInitResults - Initialization results type
|
|
@@ -58,6 +60,10 @@ class ApplicationBuilder {
|
|
|
58
60
|
this.customInitMiddleware = middleware;
|
|
59
61
|
return this;
|
|
60
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Build an Application with a MongoDatabasePlugin pre-registered.
|
|
65
|
+
* Returns the Application instance with the plugin already wired up.
|
|
66
|
+
*/
|
|
61
67
|
build() {
|
|
62
68
|
if (!this.environment)
|
|
63
69
|
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Error_EnvironmentIsRequired);
|
|
@@ -69,7 +75,16 @@ class ApplicationBuilder {
|
|
|
69
75
|
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Error_DatabaseInitFunctionIsRequired);
|
|
70
76
|
if (!this.initResultHashFunction)
|
|
71
77
|
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Error_InitResultHashFunctionIsRequired);
|
|
72
|
-
|
|
78
|
+
const app = new application_1.Application(this.environment, this.apiRouterFactory, this.cspConfig, this.constants, this.appRouterFactory, this.customInitMiddleware);
|
|
79
|
+
const mongoPlugin = new mongo_database_plugin_1.MongoDatabasePlugin({
|
|
80
|
+
schemaMapFactory: this.schemaMapFactory,
|
|
81
|
+
databaseInitFunction: this.databaseInitFunction,
|
|
82
|
+
initResultHashFunction: this.initResultHashFunction,
|
|
83
|
+
environment: this.environment,
|
|
84
|
+
constants: this.constants,
|
|
85
|
+
});
|
|
86
|
+
app.useDatabasePlugin(mongoPlugin);
|
|
87
|
+
return app;
|
|
73
88
|
}
|
|
74
89
|
}
|
|
75
90
|
exports.ApplicationBuilder = ApplicationBuilder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-builder.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/builders/application-builder.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,oEAGyC;AAEzC,gDAA6C;
|
|
1
|
+
{"version":3,"file":"application-builder.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/builders/application-builder.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,oEAGyC;AAEzC,gDAA6C;AAe7C,4EAAuE;AAIvE;;;;;;;GAOG;AACH,MAAa,kBAAkB;IAMrB,WAAW,CAAoB;IAC/B,gBAAgB,CAA+C;IAC/D,gBAAgB,CAAkD;IAClE,gBAAgB,CAEQ;IACxB,oBAAoB,CAEgB;IACpC,sBAAsB,CAAqC;IAC3D,SAAS,CAA6C;IACtD,SAAS,CAAc;IACvB,oBAAoB,CAAyB;IAErD,eAAe,CAAC,GAAqB;QACnC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,OAAoD;QAChE,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,OAAuD;QACnE,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CACX,OAAwE;QAExE,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CACd,MAE2C,EAC3C,MAAyC;QAEzC,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC;QACnC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,MAAiD;QACvD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAAC,SAAqB;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,UAAiC;QAC9C,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,WAAW;YACnB,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,2BAA2B,CAC/C,CAAC;QACJ,IAAI,CAAC,IAAI,CAAC,gBAAgB;YACxB,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,gCAAgC,CACpD,CAAC;QACJ,IAAI,CAAC,IAAI,CAAC,gBAAgB;YACxB,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,gCAAgC,CACpD,CAAC;QACJ,IAAI,CAAC,IAAI,CAAC,oBAAoB;YAC5B,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,oCAAoC,CACxD,CAAC;QACJ,IAAI,CAAC,IAAI,CAAC,sBAAsB;YAC9B,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,sCAAsC,CAC1D,CAAC;QAEJ,MAAM,GAAG,GAAG,IAAI,yBAAW,CAMzB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,oBAAoB,CAC1B,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,2CAAmB,CAKzC;YACA,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,GAAG,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAEnC,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA7HD,gDA6HC"}
|
package/src/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
2
|
export * from './application';
|
|
3
|
-
export * from './application
|
|
4
|
-
export * from './application-concrete';
|
|
5
|
-
export * from './mongo-application-base';
|
|
3
|
+
export * from './base-application';
|
|
4
|
+
export * from './mongo-application-concrete';
|
|
6
5
|
export * from './backup-code';
|
|
7
6
|
export * from './builders';
|
|
8
7
|
export * from './constants';
|
|
@@ -40,4 +39,5 @@ export type { TransactionOptions as UtilsTransactionOptions } from './utils';
|
|
|
40
39
|
export * from './validation';
|
|
41
40
|
export * from './branded-responses';
|
|
42
41
|
export { defaultMongoUriValidator } from './utils/default-mongo-uri-validator';
|
|
42
|
+
export { createNoOpDatabase } from './utils/no-op-database';
|
|
43
43
|
//# sourceMappingURL=index.d.ts.map
|
package/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,KAAK,UAAU,EACf,QAAQ,EACR,SAAS,EACT,cAAc,EACd,8BAA8B,EAC9B,2BAA2B,EAC3B,gCAAgC,EAChC,6BAA6B,EAC7B,qBAAqB,IAAI,eAAe,EACxC,sBAAsB,EACtB,2BAA2B,EAC3B,wCAAwC,EACxC,KAAK,kBAAkB,EACvB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,qCAAqC,EACrC,mCAAmC,EACnC,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,IAAI,EACJ,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,8BAA8B,EAC9B,8BAA8B,EAC9B,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,kBAAkB,IAAI,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAC7E,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/src/index.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defaultMongoUriValidator = exports.parseHostnames = exports.isValidHostname = exports.parseBackupCodes = exports.getLengthForLengthType = exports.getLengthEncodingTypeFromValue = exports.getLengthEncodingTypeForLength = exports.concatUint8Arrays = exports.arraysEqual = exports.randomBytes = exports.uint8ArrayToString = exports.stringToUint8Array = exports.crc16 = exports.hexToUint8Array = exports.uint8ArrayToHex = exports.base64ToUint8Array = exports.uint8ArrayToBase64 = exports.validateEnumCollection = exports.omit = exports.isValidTimezone = exports.decodeLengthEncodedData = exports.lengthEncodeData = exports.locatePEMRoot = exports.handleError = exports.sendRawJsonResponse = exports.sendApiMongoValidationErrorResponse = exports.sendApiExpressValidationErrorResponse = exports.sendApiErrorResponse = exports.sendApiMessageResponse = exports.withTransaction = exports.getDefaultBaseDelay = exports.DEFAULT_TRANSACTION_LOCK_REQUEST_TIMEOUT = exports.DEFAULT_TRANSACTION_TIMEOUT = exports.DEFAULT_RETRY_ATTEMPTS = exports.isValidStringId = exports.requireValidatedFieldsOrThrow = exports.requireOneOfValidatedFieldsAsync = exports.requireValidatedFieldsAsync = exports.mapZodIssuesToValidationErrors = exports.getValueAtPath = exports.directLog = exports.debugLog = exports.RouteBuilder = void 0;
|
|
3
|
+
exports.createNoOpDatabase = exports.defaultMongoUriValidator = exports.parseHostnames = exports.isValidHostname = exports.parseBackupCodes = exports.getLengthForLengthType = exports.getLengthEncodingTypeFromValue = exports.getLengthEncodingTypeForLength = exports.concatUint8Arrays = exports.arraysEqual = exports.randomBytes = exports.uint8ArrayToString = exports.stringToUint8Array = exports.crc16 = exports.hexToUint8Array = exports.uint8ArrayToHex = exports.base64ToUint8Array = exports.uint8ArrayToBase64 = exports.validateEnumCollection = exports.omit = exports.isValidTimezone = exports.decodeLengthEncodedData = exports.lengthEncodeData = exports.locatePEMRoot = exports.handleError = exports.sendRawJsonResponse = exports.sendApiMongoValidationErrorResponse = exports.sendApiExpressValidationErrorResponse = exports.sendApiErrorResponse = exports.sendApiMessageResponse = exports.withTransaction = exports.getDefaultBaseDelay = exports.DEFAULT_TRANSACTION_LOCK_REQUEST_TIMEOUT = exports.DEFAULT_TRANSACTION_TIMEOUT = exports.DEFAULT_RETRY_ATTEMPTS = exports.isValidStringId = exports.requireValidatedFieldsOrThrow = exports.requireOneOfValidatedFieldsAsync = exports.requireValidatedFieldsAsync = exports.mapZodIssuesToValidationErrors = exports.getValueAtPath = exports.directLog = exports.debugLog = exports.RouteBuilder = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
require("reflect-metadata");
|
|
6
6
|
tslib_1.__exportStar(require("./application"), exports);
|
|
7
|
-
tslib_1.__exportStar(require("./application
|
|
8
|
-
tslib_1.__exportStar(require("./application-concrete"), exports);
|
|
9
|
-
tslib_1.__exportStar(require("./mongo-application-base"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./base-application"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./mongo-application-concrete"), exports);
|
|
10
9
|
tslib_1.__exportStar(require("./backup-code"), exports);
|
|
11
10
|
tslib_1.__exportStar(require("./builders"), exports);
|
|
12
11
|
tslib_1.__exportStar(require("./constants"), exports);
|
|
@@ -85,4 +84,6 @@ tslib_1.__exportStar(require("./validation"), exports);
|
|
|
85
84
|
tslib_1.__exportStar(require("./branded-responses"), exports);
|
|
86
85
|
var default_mongo_uri_validator_1 = require("./utils/default-mongo-uri-validator");
|
|
87
86
|
Object.defineProperty(exports, "defaultMongoUriValidator", { enumerable: true, get: function () { return default_mongo_uri_validator_1.defaultMongoUriValidator; } });
|
|
87
|
+
var no_op_database_1 = require("./utils/no-op-database");
|
|
88
|
+
Object.defineProperty(exports, "createNoOpDatabase", { enumerable: true, get: function () { return no_op_database_1.createNoOpDatabase; } });
|
|
88
89
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/index.ts"],"names":[],"mappings":";;;;AAAA,4BAA0B;AAE1B,wDAA8B;AAC9B,6DAAmC;AACnC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/index.ts"],"names":[],"mappings":";;;;AAAA,4BAA0B;AAE1B,wDAA8B;AAC9B,6DAAmC;AACnC,uEAA6C;AAC7C,wDAA8B;AAC9B,qDAA2B;AAC3B,sDAA4B;AAC5B,sDAA4B;AAC5B,wDAA8B;AAC9B,qDAA2B;AAC3B,uDAA6B;AAC7B,qDAA2B;AAC3B,sDAA4B;AAC5B,yDAA+B;AAC/B,wDAA8B;AAC9B,mDAAyB;AACzB,yDAA+B;AAC/B,8DAAoC;AACpC,yDAA+B;AAC/B,uDAA6B;AAC7B,wDAA8B;AAC9B,6DAAmC;AACnC,2DAAiC;AACjC,mDAAyB;AACzB,qDAA2B;AAC3B,oDAA0B;AAC1B,qDAA2B;AAC3B,sDAA4B;AAC5B,oDAA0B;AAC1B,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AAErB,oDAA0B;AAC1B,qDAA2B;AAC3B,yDAA+B;AAC/B,kDAAwB;AACxB,oDAA0B;AAC1B,iCA4CiB;AA1Cf,iGAAA,QAAQ,OAAA;AACR,kGAAA,SAAS,OAAA;AACT,uGAAA,cAAc,OAAA;AACd,uHAAA,8BAA8B,OAAA;AAC9B,oHAAA,2BAA2B,OAAA;AAC3B,yHAAA,gCAAgC,OAAA;AAChC,sHAAA,6BAA6B,OAAA;AAC7B,wGAAA,qBAAqB,OAAmB;AACxC,+GAAA,sBAAsB,OAAA;AACtB,oHAAA,2BAA2B,OAAA;AAC3B,iIAAA,wCAAwC,OAAA;AAExC,4GAAA,mBAAmB,OAAA;AACnB,wGAAA,eAAe,OAAA;AACf,+GAAA,sBAAsB,OAAA;AACtB,6GAAA,oBAAoB,OAAA;AACpB,8HAAA,qCAAqC,OAAA;AACrC,4HAAA,mCAAmC,OAAA;AACnC,4GAAA,mBAAmB,OAAA;AACnB,oGAAA,WAAW,OAAA;AACX,sGAAA,aAAa,OAAA;AACb,yGAAA,gBAAgB,OAAA;AAChB,gHAAA,uBAAuB,OAAA;AACvB,wGAAA,eAAe,OAAA;AACf,6FAAA,IAAI,OAAA;AACJ,+GAAA,sBAAsB,OAAA;AACtB,2GAAA,kBAAkB,OAAA;AAClB,2GAAA,kBAAkB,OAAA;AAClB,wGAAA,eAAe,OAAA;AACf,wGAAA,eAAe,OAAA;AACf,8FAAA,KAAK,OAAA;AACL,2GAAA,kBAAkB,OAAA;AAClB,2GAAA,kBAAkB,OAAA;AAClB,oGAAA,WAAW,OAAA;AACX,oGAAA,WAAW,OAAA;AACX,0GAAA,iBAAiB,OAAA;AACjB,uHAAA,8BAA8B,OAAA;AAC9B,uHAAA,8BAA8B,OAAA;AAC9B,+GAAA,sBAAsB,OAAA;AACtB,yGAAA,gBAAgB,OAAA;AAChB,wGAAA,eAAe,OAAA;AACf,uGAAA,cAAc,OAAA;AAGhB,uDAA6B;AAC7B,8DAAoC;AACpC,mFAA+E;AAAtE,uIAAA,wBAAwB,OAAA;AACjC,yDAA4D;AAAnD,oHAAA,kBAAkB,OAAA"}
|
|
@@ -1,38 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview
|
|
3
|
-
*
|
|
2
|
+
* @fileoverview Backward-compatible re-export of IDocumentStore.
|
|
3
|
+
* @deprecated Import from './mongoose-document-store' instead.
|
|
4
4
|
* @module interfaces/document-store
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
import type { PlatformID } from '@digitaldefiance/node-ecies-lib';
|
|
8
|
-
import { MongoMemoryReplSet } from 'mongodb-memory-server';
|
|
9
|
-
import { IBaseDocument } from '../documents/base';
|
|
10
|
-
import { ISchema } from './schema';
|
|
11
|
-
import { IApplication } from './application';
|
|
12
|
-
/**
|
|
13
|
-
* Storage-agnostic interface for database operations.
|
|
14
|
-
* Implementations wrap specific database technologies (mongoose, BrightChainDb, etc.).
|
|
15
|
-
* @template TID - Platform-specific ID type extending PlatformID
|
|
16
|
-
* @template TModelDocs - Record mapping model names to their document types
|
|
17
|
-
*/
|
|
18
|
-
export interface IDocumentStore<TID extends PlatformID = Buffer, TModelDocs extends Record<string, IBaseDocument<any, TID>> = Record<string, IBaseDocument<any, TID>>> {
|
|
19
|
-
/** Connect to the backing store. URI may be ignored by non-network stores. */
|
|
20
|
-
connect(uri?: string): Promise<void>;
|
|
21
|
-
/** Disconnect from the backing store. */
|
|
22
|
-
disconnect(): Promise<void>;
|
|
23
|
-
/** Whether the store is currently connected and ready for operations. */
|
|
24
|
-
isConnected(): boolean;
|
|
25
|
-
/** Retrieve a model/collection handle by name. */
|
|
26
|
-
getModel<T extends IBaseDocument<any, TID>>(modelName: string): Model<T>;
|
|
27
|
-
/** The schema map, if available (populated after connect). */
|
|
28
|
-
readonly schemaMap?: {
|
|
29
|
-
[K in keyof TModelDocs]: ISchema<TID, TModelDocs[K]>;
|
|
30
|
-
};
|
|
31
|
-
/** The dev database instance, if any (for cleanup on stop). */
|
|
32
|
-
readonly devDatabase?: MongoMemoryReplSet;
|
|
33
|
-
/** Optional: provision a dev/test database, returning its connection URI. */
|
|
34
|
-
setupDevStore?(): Promise<string | void>;
|
|
35
|
-
/** Optional: seed the dev database with initial data. */
|
|
36
|
-
initializeDevStore?<TInitResults>(app: IApplication<TID>): Promise<TInitResults>;
|
|
37
|
-
}
|
|
6
|
+
export * from './mongoose-document-store';
|
|
38
7
|
//# sourceMappingURL=document-store.d.ts.map
|