@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/index.d.ts
CHANGED
|
@@ -37,4 +37,5 @@ export * from './openapi';
|
|
|
37
37
|
export { type DEBUG_TYPE, debugLog, directLog, getValueAtPath, mapZodIssuesToValidationErrors, requireValidatedFieldsAsync, requireOneOfValidatedFieldsAsync, requireValidatedFieldsOrThrow, isValidStringObjectId as isValidStringId, DEFAULT_RETRY_ATTEMPTS, DEFAULT_TRANSACTION_TIMEOUT, DEFAULT_TRANSACTION_LOCK_REQUEST_TIMEOUT, type TransactionOptions, getDefaultBaseDelay, withTransaction, sendApiMessageResponse, sendApiErrorResponse, sendApiExpressValidationErrorResponse, sendApiMongoValidationErrorResponse, sendRawJsonResponse, handleError, locatePEMRoot, lengthEncodeData, decodeLengthEncodedData, isValidTimezone, omit, validateEnumCollection, uint8ArrayToBase64, base64ToUint8Array, uint8ArrayToHex, hexToUint8Array, crc16, stringToUint8Array, uint8ArrayToString, randomBytes, arraysEqual, concatUint8Arrays, getLengthEncodingTypeForLength, getLengthEncodingTypeFromValue, getLengthForLengthType, parseBackupCodes, isValidHostname, parseHostnames, } from './utils';
|
|
38
38
|
export type { TransactionOptions as UtilsTransactionOptions } from './utils';
|
|
39
39
|
export * from './validation';
|
|
40
|
+
export { defaultMongoUriValidator } from './utils/default-mongo-uri-validator';
|
|
40
41
|
//# 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,wBAAwB,CAAC;AACvC,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"}
|
|
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,wBAAwB,CAAC;AACvC,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,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC"}
|
package/src/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
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.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);
|
|
@@ -81,4 +81,6 @@ Object.defineProperty(exports, "parseBackupCodes", { enumerable: true, get: func
|
|
|
81
81
|
Object.defineProperty(exports, "isValidHostname", { enumerable: true, get: function () { return utils_1.isValidHostname; } });
|
|
82
82
|
Object.defineProperty(exports, "parseHostnames", { enumerable: true, get: function () { return utils_1.parseHostnames; } });
|
|
83
83
|
tslib_1.__exportStar(require("./validation"), exports);
|
|
84
|
+
var default_mongo_uri_validator_1 = require("./utils/default-mongo-uri-validator");
|
|
85
|
+
Object.defineProperty(exports, "defaultMongoUriValidator", { enumerable: true, get: function () { return default_mongo_uri_validator_1.defaultMongoUriValidator; } });
|
|
84
86
|
//# 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,iEAAuC;AACvC,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"}
|
|
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,iEAAuC;AACvC,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,mFAA+E;AAAtE,uIAAA,wBAAwB,OAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Storage-agnostic interface for database operations.
|
|
3
|
+
* Implementations wrap specific database technologies (mongoose, BrightChainDb, etc.).
|
|
4
|
+
* @module interfaces/document-store
|
|
5
|
+
*/
|
|
6
|
+
import { Model } from '@digitaldefiance/mongoose-types';
|
|
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
|
+
}
|
|
38
|
+
//# sourceMappingURL=document-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-store.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/document-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;GAKG;AAEH,MAAM,WAAW,cAAc,CAC7B,GAAG,SAAS,UAAU,GAAG,MAAM,EAC/B,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CACjE,MAAM,EACN,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CACxB;IAED,8EAA8E;IAC9E,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC,yCAAyC;IACzC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,yEAAyE;IACzE,WAAW,IAAI,OAAO,CAAC;IAEvB,kDAAkD;IAClD,QAAQ,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEzE,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,CAAC,EAAE;SAAG,CAAC,IAAI,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;IAE9E,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAE1C,6EAA6E;IAC7E,aAAa,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEzC,yDAAyD;IACzD,kBAAkB,CAAC,CAAC,YAAY,EAC9B,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,GACrB,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Storage-agnostic interface for database operations.
|
|
4
|
+
* Implementations wrap specific database technologies (mongoose, BrightChainDb, etc.).
|
|
5
|
+
* @module interfaces/document-store
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
//# sourceMappingURL=document-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-store.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/document-store.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
|
|
@@ -1,20 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @fileoverview Failable result interface for operation outcomes.
|
|
3
|
-
*
|
|
3
|
+
* Re-exported from @brightchain/brightchain-lib for backward compatibility.
|
|
4
4
|
* @module interfaces/failable-result
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
* Result of an operation that can succeed or fail.
|
|
8
|
-
* @template T - Result data type
|
|
9
|
-
* @property {boolean} success - True if operation succeeded
|
|
10
|
-
* @property {T} [data] - Result data if successful
|
|
11
|
-
* @property {string} [message] - Success or informational message
|
|
12
|
-
* @property {string | Error} [error] - Error message or object if failed
|
|
13
|
-
*/
|
|
14
|
-
export interface IFailableResult<T> {
|
|
15
|
-
success: boolean;
|
|
16
|
-
data?: T;
|
|
17
|
-
message?: string;
|
|
18
|
-
error?: string | Error;
|
|
19
|
-
}
|
|
6
|
+
export type { IFailableResult } from '@brightchain/brightchain-lib';
|
|
20
7
|
//# sourceMappingURL=failable-result.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failable-result.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/failable-result.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"failable-result.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/failable-result.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,YAAY,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @fileoverview Failable result interface for operation outcomes.
|
|
4
|
-
* Generic interface for operations that can succeed or fail.
|
|
5
|
-
* @module interfaces/failable-result
|
|
6
|
-
*/
|
|
7
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
3
|
//# sourceMappingURL=failable-result.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failable-result.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/failable-result.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"failable-result.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/failable-result.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AAEjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC"}
|
package/src/interfaces/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./document-store"), exports);
|
|
4
5
|
tslib_1.__exportStar(require("./api-error-response"), exports);
|
|
5
6
|
tslib_1.__exportStar(require("./api-express-validation-error-response"), exports);
|
|
6
7
|
tslib_1.__exportStar(require("./api-message-response"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC;AACrC,kFAAwD;AACxD,iEAAuC;AACvC,gFAAsD;AACtD,0DAAgC;AAChC,wDAA8B;AAC9B,4DAAkC;AAClC,4DAAkC;AAClC,4DAAkC;AAClC,sDAA4B;AAC5B,8DAAoC;AACpC,+DAAqC;AACrC,uDAA6B;AAC7B,2DAAiC;AACjC,2DAAiC;AACjC,sEAA4C;AAC5C,0DAAgC;AAChC,wDAA8B;AAC9B,8DAAoC;AACpC,4DAAkC;AAClC,uDAA6B;AAC7B,yDAA+B;AAC/B,qEAA2C;AAC3C,uDAA6B;AAC7B,8DAAoC;AACpC,mDAAyB;AACzB,yDAA+B;AAC/B,oDAA0B;AAC1B,oDAA0B;AAC1B,yDAA+B;AAC/B,iEAAuC;AACvC,mDAAyB;AACzB,+DAAqC;AACrC,iEAAuC;AACvC,yEAA+C;AAC/C,2DAAiC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AAEjC,+DAAqC;AACrC,kFAAwD;AACxD,iEAAuC;AACvC,gFAAsD;AACtD,0DAAgC;AAChC,wDAA8B;AAC9B,4DAAkC;AAClC,4DAAkC;AAClC,4DAAkC;AAClC,sDAA4B;AAC5B,8DAAoC;AACpC,+DAAqC;AACrC,uDAA6B;AAC7B,2DAAiC;AACjC,2DAAiC;AACjC,sEAA4C;AAC5C,0DAAgC;AAChC,wDAA8B;AAC9B,8DAAoC;AACpC,4DAAkC;AAClC,uDAA6B;AAC7B,yDAA+B;AAC/B,qEAA2C;AAC3C,uDAA6B;AAC7B,8DAAoC;AACpC,mDAAyB;AACzB,yDAA+B;AAC/B,oDAA0B;AAC1B,oDAA0B;AAC1B,yDAA+B;AAC/B,iEAAuC;AACvC,mDAAyB;AACzB,+DAAqC;AACrC,iEAAuC;AACvC,yEAA+C;AAC/C,2DAAiC"}
|
package/src/services/index.d.ts
CHANGED
|
@@ -19,4 +19,8 @@ export * from './xor';
|
|
|
19
19
|
export * from './upnp';
|
|
20
20
|
export * from './upnp-config';
|
|
21
21
|
export * from './upnp-manager';
|
|
22
|
+
export * from './mongoose-document-store';
|
|
23
|
+
export * from './mongoose-session-adapter';
|
|
24
|
+
export * from './mongoose-collection';
|
|
25
|
+
export * from './mongoose-database';
|
|
22
26
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,OAAO,CAAC;AACtB,cAAc,qBAAqB,CAAC;AACpC,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,OAAO,CAAC;AACtB,cAAc,qBAAqB,CAAC;AACpC,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC"}
|
package/src/services/index.js
CHANGED
|
@@ -22,4 +22,8 @@ tslib_1.__exportStar(require("./xor"), exports);
|
|
|
22
22
|
tslib_1.__exportStar(require("./upnp"), exports);
|
|
23
23
|
tslib_1.__exportStar(require("./upnp-config"), exports);
|
|
24
24
|
tslib_1.__exportStar(require("./upnp-manager"), exports);
|
|
25
|
+
tslib_1.__exportStar(require("./mongoose-document-store"), exports);
|
|
26
|
+
tslib_1.__exportStar(require("./mongoose-session-adapter"), exports);
|
|
27
|
+
tslib_1.__exportStar(require("./mongoose-collection"), exports);
|
|
28
|
+
tslib_1.__exportStar(require("./mongoose-database"), exports);
|
|
25
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,iDAAuB;AACvB,qDAA2B;AAC3B,oEAA0C;AAC1C,0DAAgC;AAChC,+DAAqC;AACrC,gEAAsC;AACtC,gDAAsB;AACtB,8DAAoC;AACpC,gDAAsB;AACtB,yDAA+B;AAC/B,qDAA2B;AAC3B,yDAA+B;AAC/B,iDAAuB;AACvB,sDAA4B;AAC5B,wDAA8B;AAC9B,iDAAuB;AACvB,gDAAsB;AACtB,iDAAuB;AACvB,wDAA8B;AAC9B,yDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,iDAAuB;AACvB,qDAA2B;AAC3B,oEAA0C;AAC1C,0DAAgC;AAChC,+DAAqC;AACrC,gEAAsC;AACtC,gDAAsB;AACtB,8DAAoC;AACpC,gDAAsB;AACtB,yDAA+B;AAC/B,qDAA2B;AAC3B,yDAA+B;AAC/B,iDAAuB;AACvB,sDAA4B;AAC5B,wDAA8B;AAC9B,iDAAuB;AACvB,gDAAsB;AACtB,iDAAuB;AACvB,wDAA8B;AAC9B,yDAA+B;AAC/B,oEAA0C;AAC1C,qEAA2C;AAC3C,gEAAsC;AACtC,8DAAoC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Mongoose collection adapter implementing ICollection.
|
|
3
|
+
* Wraps a mongoose Model to conform to the shared ICollection interface
|
|
4
|
+
* from brightchain-lib.
|
|
5
|
+
* @module services/mongoose-collection
|
|
6
|
+
*/
|
|
7
|
+
import type { AggregationStage, BsonDocument, BulkWriteOperation, BulkWriteOptions, BulkWriteResult, ChangeListener, CollectionSchema, DeleteResult, DocumentId, FilterQuery, FindOptions, ICollection, IndexOptions, IndexSpec, InsertManyResult, InsertOneResult, ReadPreference, ReplaceResult, TextIndexOptions, UpdateOptions, UpdateQuery, UpdateResult, ValidationFieldError, WriteConcern, WriteOptions } from '@brightchain/brightchain-lib';
|
|
8
|
+
import type { Connection } from '@digitaldefiance/mongoose-types';
|
|
9
|
+
/**
|
|
10
|
+
* Adapts a mongoose Model to the ICollection<T> interface.
|
|
11
|
+
* Delegates CRUD, query, index, and bulk operations to the underlying
|
|
12
|
+
* mongoose model. Schema validation methods are no-ops since mongoose
|
|
13
|
+
* handles schema validation internally.
|
|
14
|
+
*/
|
|
15
|
+
export declare class MongooseCollection<T extends BsonDocument = BsonDocument> implements ICollection<T> {
|
|
16
|
+
private _model;
|
|
17
|
+
private _writeConcern;
|
|
18
|
+
private _readPreference;
|
|
19
|
+
constructor(connection: Connection, collectionName: string);
|
|
20
|
+
insertOne(doc: T, options?: WriteOptions): Promise<InsertOneResult>;
|
|
21
|
+
insertMany(docs: T[], options?: WriteOptions): Promise<InsertManyResult>;
|
|
22
|
+
findOne(filter?: FilterQuery<T>, options?: FindOptions<T>): Promise<T | null>;
|
|
23
|
+
find(filter?: FilterQuery<T>, options?: FindOptions<T>): Promise<T[]>;
|
|
24
|
+
findById(id: DocumentId): Promise<T | null>;
|
|
25
|
+
updateOne(filter: FilterQuery<T>, update: UpdateQuery<T>, options?: UpdateOptions): Promise<UpdateResult>;
|
|
26
|
+
updateMany(filter: FilterQuery<T>, update: UpdateQuery<T>, options?: UpdateOptions): Promise<UpdateResult>;
|
|
27
|
+
deleteOne(filter: FilterQuery<T>, options?: WriteOptions): Promise<DeleteResult>;
|
|
28
|
+
deleteMany(filter: FilterQuery<T>, options?: WriteOptions): Promise<DeleteResult>;
|
|
29
|
+
replaceOne(filter: FilterQuery<T>, doc: T, options?: UpdateOptions): Promise<ReplaceResult>;
|
|
30
|
+
countDocuments(filter?: FilterQuery<T>): Promise<number>;
|
|
31
|
+
estimatedDocumentCount(): Promise<number>;
|
|
32
|
+
distinct<K extends keyof T>(field: K, filter?: FilterQuery<T>): Promise<Array<T[K]>>;
|
|
33
|
+
aggregate(pipeline: AggregationStage[]): Promise<BsonDocument[]>;
|
|
34
|
+
createIndex(spec: IndexSpec, options?: IndexOptions): Promise<string>;
|
|
35
|
+
dropIndex(name: string): Promise<void>;
|
|
36
|
+
listIndexes(): string[];
|
|
37
|
+
bulkWrite(operations: BulkWriteOperation<T>[], options?: BulkWriteOptions): Promise<BulkWriteResult>;
|
|
38
|
+
watch(listener: ChangeListener<T>): () => void;
|
|
39
|
+
setSchema(_schema: CollectionSchema): void;
|
|
40
|
+
getSchema(): CollectionSchema | undefined;
|
|
41
|
+
removeSchema(): void;
|
|
42
|
+
validateDoc(_doc: T): ValidationFieldError[];
|
|
43
|
+
getWriteConcern(): WriteConcern;
|
|
44
|
+
setWriteConcern(wc: WriteConcern): void;
|
|
45
|
+
getReadPreference(): ReadPreference;
|
|
46
|
+
setReadPreference(rp: ReadPreference): void;
|
|
47
|
+
createTextIndex(options: TextIndexOptions): string;
|
|
48
|
+
dropTextIndex(): void;
|
|
49
|
+
hasTextIndex(): boolean;
|
|
50
|
+
drop(): Promise<void>;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=mongoose-collection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongoose-collection.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/mongoose-collection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,iCAAiC,CAAC;AAoBzE;;;;;GAKG;AACH,qBAAa,kBAAkB,CAC7B,CAAC,SAAS,YAAY,GAAG,YAAY,CACrC,YAAW,WAAW,CAAC,CAAC,CAAC;IACzB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,eAAe,CAA6B;gBAExC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM;IAapD,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;IAUnE,UAAU,CACd,IAAI,EAAE,CAAC,EAAE,EACT,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,gBAAgB,CAAC;IActB,OAAO,CACX,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EACvB,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAcd,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAoBrE,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAK3C,SAAS,CACb,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC;IAgBlB,UAAU,CACd,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC;IAgBlB,SAAS,CACb,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,YAAY,CAAC;IAYlB,UAAU,CACd,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,YAAY,CAAC;IAYlB,UAAU,CACd,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,GAAG,EAAE,CAAC,EACN,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,aAAa,CAAC;IAkBnB,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAMxD,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIzC,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,EAC9B,KAAK,EAAE,CAAC,EACR,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAOjB,SAAS,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAWhE,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAWrE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,WAAW,IAAI,MAAM,EAAE;IASjB,SAAS,CACb,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,EACnC,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC;IAsE3B,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAyB9C,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAI1C,SAAS,IAAI,gBAAgB,GAAG,SAAS;IAKzC,YAAY,IAAI,IAAI;IAIpB,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,oBAAoB,EAAE;IAO5C,eAAe,IAAI,YAAY;IAI/B,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;IAIvC,iBAAiB,IAAI,cAAc;IAInC,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI;IAM3C,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM;IAiBlD,aAAa,IAAI,IAAI;IAOrB,YAAY,IAAI,OAAO;IAQjB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Mongoose collection adapter implementing ICollection.
|
|
4
|
+
* Wraps a mongoose Model to conform to the shared ICollection interface
|
|
5
|
+
* from brightchain-lib.
|
|
6
|
+
* @module services/mongoose-collection
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.MongooseCollection = void 0;
|
|
10
|
+
const mongoose_types_1 = require("@digitaldefiance/mongoose-types");
|
|
11
|
+
const mongoose_session_adapter_1 = require("./mongoose-session-adapter");
|
|
12
|
+
/**
|
|
13
|
+
* Extract the native mongodb ClientSession from WriteOptions if present.
|
|
14
|
+
* The IClientSession in options may be a MongooseSessionAdapter wrapping
|
|
15
|
+
* a native session.
|
|
16
|
+
*/
|
|
17
|
+
function extractNativeSession(options) {
|
|
18
|
+
if (!options?.session)
|
|
19
|
+
return undefined;
|
|
20
|
+
if (options.session instanceof mongoose_session_adapter_1.MongooseSessionAdapter) {
|
|
21
|
+
return options.session.nativeSession;
|
|
22
|
+
}
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Adapts a mongoose Model to the ICollection<T> interface.
|
|
27
|
+
* Delegates CRUD, query, index, and bulk operations to the underlying
|
|
28
|
+
* mongoose model. Schema validation methods are no-ops since mongoose
|
|
29
|
+
* handles schema validation internally.
|
|
30
|
+
*/
|
|
31
|
+
class MongooseCollection {
|
|
32
|
+
_model;
|
|
33
|
+
_writeConcern = { w: 1 };
|
|
34
|
+
_readPreference = 'primary';
|
|
35
|
+
constructor(connection, collectionName) {
|
|
36
|
+
// Get existing model or create a permissive one with a flexible schema
|
|
37
|
+
try {
|
|
38
|
+
this._model = connection.model(collectionName);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// Model doesn't exist yet — create with a permissive schema
|
|
42
|
+
const schema = new mongoose_types_1.Schema({}, { strict: false, versionKey: false });
|
|
43
|
+
this._model = connection.model(collectionName, schema);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// ── CRUD ──
|
|
47
|
+
async insertOne(doc, options) {
|
|
48
|
+
const session = extractNativeSession(options);
|
|
49
|
+
const created = await this._model.create([doc], { session });
|
|
50
|
+
const first = created[0];
|
|
51
|
+
return {
|
|
52
|
+
acknowledged: true,
|
|
53
|
+
insertedId: String(first._id),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
async insertMany(docs, options) {
|
|
57
|
+
const session = extractNativeSession(options);
|
|
58
|
+
const created = await this._model.create(docs, { session });
|
|
59
|
+
const insertedIds = {};
|
|
60
|
+
for (let i = 0; i < created.length; i++) {
|
|
61
|
+
insertedIds[i] = String(created[i]._id);
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
acknowledged: true,
|
|
65
|
+
insertedCount: created.length,
|
|
66
|
+
insertedIds,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
async findOne(filter, options) {
|
|
70
|
+
const session = extractNativeSession(options);
|
|
71
|
+
const query = this._model.findOne((filter ?? {}), options?.projection, { session, lean: true });
|
|
72
|
+
if (options?.sort) {
|
|
73
|
+
query.sort(options.sort);
|
|
74
|
+
}
|
|
75
|
+
const result = await query.exec();
|
|
76
|
+
return result ?? null;
|
|
77
|
+
}
|
|
78
|
+
async find(filter, options) {
|
|
79
|
+
const session = extractNativeSession(options);
|
|
80
|
+
const query = this._model.find((filter ?? {}), options?.projection, { session, lean: true });
|
|
81
|
+
if (options?.sort) {
|
|
82
|
+
query.sort(options.sort);
|
|
83
|
+
}
|
|
84
|
+
if (options?.skip !== undefined) {
|
|
85
|
+
query.skip(options.skip);
|
|
86
|
+
}
|
|
87
|
+
if (options?.limit !== undefined) {
|
|
88
|
+
query.limit(options.limit);
|
|
89
|
+
}
|
|
90
|
+
const results = await query.exec();
|
|
91
|
+
return results;
|
|
92
|
+
}
|
|
93
|
+
async findById(id) {
|
|
94
|
+
const result = await this._model.findById(id).lean().exec();
|
|
95
|
+
return result ?? null;
|
|
96
|
+
}
|
|
97
|
+
async updateOne(filter, update, options) {
|
|
98
|
+
const session = extractNativeSession(options);
|
|
99
|
+
const result = await this._model.updateOne(filter, update, { session, upsert: options?.upsert });
|
|
100
|
+
return {
|
|
101
|
+
acknowledged: result.acknowledged,
|
|
102
|
+
matchedCount: result.matchedCount,
|
|
103
|
+
modifiedCount: result.modifiedCount,
|
|
104
|
+
upsertedCount: result.upsertedCount,
|
|
105
|
+
upsertedId: result.upsertedId ? String(result.upsertedId) : undefined,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
async updateMany(filter, update, options) {
|
|
109
|
+
const session = extractNativeSession(options);
|
|
110
|
+
const result = await this._model.updateMany(filter, update, { session, upsert: options?.upsert });
|
|
111
|
+
return {
|
|
112
|
+
acknowledged: result.acknowledged,
|
|
113
|
+
matchedCount: result.matchedCount,
|
|
114
|
+
modifiedCount: result.modifiedCount,
|
|
115
|
+
upsertedCount: result.upsertedCount,
|
|
116
|
+
upsertedId: result.upsertedId ? String(result.upsertedId) : undefined,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
async deleteOne(filter, options) {
|
|
120
|
+
const session = extractNativeSession(options);
|
|
121
|
+
const result = await this._model.deleteOne(filter, { session });
|
|
122
|
+
return {
|
|
123
|
+
acknowledged: result.acknowledged,
|
|
124
|
+
deletedCount: result.deletedCount,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
async deleteMany(filter, options) {
|
|
128
|
+
const session = extractNativeSession(options);
|
|
129
|
+
const result = await this._model.deleteMany(filter, { session });
|
|
130
|
+
return {
|
|
131
|
+
acknowledged: result.acknowledged,
|
|
132
|
+
deletedCount: result.deletedCount,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
async replaceOne(filter, doc, options) {
|
|
136
|
+
const session = extractNativeSession(options);
|
|
137
|
+
const result = await this._model.replaceOne(filter, doc, { session, upsert: options?.upsert });
|
|
138
|
+
return {
|
|
139
|
+
acknowledged: result.acknowledged,
|
|
140
|
+
matchedCount: result.matchedCount,
|
|
141
|
+
modifiedCount: result.modifiedCount,
|
|
142
|
+
upsertedCount: result.upsertedCount,
|
|
143
|
+
upsertedId: result.upsertedId ? String(result.upsertedId) : undefined,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
// ── Query ──
|
|
147
|
+
async countDocuments(filter) {
|
|
148
|
+
return this._model
|
|
149
|
+
.countDocuments((filter ?? {}))
|
|
150
|
+
.exec();
|
|
151
|
+
}
|
|
152
|
+
async estimatedDocumentCount() {
|
|
153
|
+
return this._model.estimatedDocumentCount().exec();
|
|
154
|
+
}
|
|
155
|
+
async distinct(field, filter) {
|
|
156
|
+
const result = await this._model
|
|
157
|
+
.distinct(String(field), (filter ?? {}))
|
|
158
|
+
.exec();
|
|
159
|
+
return result;
|
|
160
|
+
}
|
|
161
|
+
async aggregate(pipeline) {
|
|
162
|
+
// Use the native collection's aggregate to avoid mongoose PipelineStage type constraints
|
|
163
|
+
const cursor = this._model.collection.aggregate(pipeline);
|
|
164
|
+
const result = await cursor.toArray();
|
|
165
|
+
return result;
|
|
166
|
+
}
|
|
167
|
+
// ── Indexes ──
|
|
168
|
+
async createIndex(spec, options) {
|
|
169
|
+
const indexName = await this._model.collection.createIndex(spec, {
|
|
170
|
+
unique: options?.unique,
|
|
171
|
+
name: options?.name,
|
|
172
|
+
sparse: options?.sparse,
|
|
173
|
+
background: options?.background,
|
|
174
|
+
expireAfterSeconds: options?.expireAfterSeconds,
|
|
175
|
+
});
|
|
176
|
+
return indexName;
|
|
177
|
+
}
|
|
178
|
+
async dropIndex(name) {
|
|
179
|
+
await this._model.collection.dropIndex(name);
|
|
180
|
+
}
|
|
181
|
+
listIndexes() {
|
|
182
|
+
// Synchronous listing is not directly supported by mongoose.
|
|
183
|
+
// Return an empty array; callers needing async index listing
|
|
184
|
+
// should use the native collection directly.
|
|
185
|
+
return [];
|
|
186
|
+
}
|
|
187
|
+
// ── Bulk operations ──
|
|
188
|
+
async bulkWrite(operations, options) {
|
|
189
|
+
const session = extractNativeSession(options);
|
|
190
|
+
const mongooseOps = operations.map((op) => {
|
|
191
|
+
if ('insertOne' in op) {
|
|
192
|
+
return {
|
|
193
|
+
insertOne: {
|
|
194
|
+
document: op.insertOne.document,
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
if ('updateOne' in op) {
|
|
199
|
+
return {
|
|
200
|
+
updateOne: {
|
|
201
|
+
filter: op.updateOne.filter,
|
|
202
|
+
update: op.updateOne.update,
|
|
203
|
+
upsert: op.updateOne.upsert,
|
|
204
|
+
},
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
if ('updateMany' in op) {
|
|
208
|
+
return {
|
|
209
|
+
updateMany: {
|
|
210
|
+
filter: op.updateMany.filter,
|
|
211
|
+
update: op.updateMany.update,
|
|
212
|
+
},
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
if ('deleteOne' in op) {
|
|
216
|
+
return {
|
|
217
|
+
deleteOne: { filter: op.deleteOne.filter },
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
if ('deleteMany' in op) {
|
|
221
|
+
return {
|
|
222
|
+
deleteMany: {
|
|
223
|
+
filter: op.deleteMany.filter,
|
|
224
|
+
},
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
if ('replaceOne' in op) {
|
|
228
|
+
return {
|
|
229
|
+
replaceOne: {
|
|
230
|
+
filter: op.replaceOne.filter,
|
|
231
|
+
replacement: op.replaceOne.replacement,
|
|
232
|
+
upsert: op.replaceOne.upsert,
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
return op;
|
|
237
|
+
});
|
|
238
|
+
const result = await this._model.bulkWrite(mongooseOps, { session, ordered: options?.ordered });
|
|
239
|
+
return {
|
|
240
|
+
acknowledged: true,
|
|
241
|
+
insertedCount: result.insertedCount,
|
|
242
|
+
matchedCount: result.matchedCount,
|
|
243
|
+
modifiedCount: result.modifiedCount,
|
|
244
|
+
deletedCount: result.deletedCount,
|
|
245
|
+
upsertedCount: result.upsertedCount,
|
|
246
|
+
insertedIds: {},
|
|
247
|
+
upsertedIds: {},
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
// ── Change streams ──
|
|
251
|
+
watch(listener) {
|
|
252
|
+
const changeStream = this._model.watch();
|
|
253
|
+
changeStream.on('change', (change) => {
|
|
254
|
+
listener({
|
|
255
|
+
operationType: change['operationType'],
|
|
256
|
+
documentKey: change['documentKey'],
|
|
257
|
+
fullDocument: change['fullDocument'],
|
|
258
|
+
updateDescription: change['updateDescription'],
|
|
259
|
+
ns: change['ns'],
|
|
260
|
+
timestamp: new Date(),
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
return () => {
|
|
264
|
+
void changeStream.close();
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
// ── Schema validation (no-ops for mongoose) ──
|
|
268
|
+
setSchema(_schema) {
|
|
269
|
+
// No-op: mongoose handles schema validation internally
|
|
270
|
+
}
|
|
271
|
+
getSchema() {
|
|
272
|
+
// No-op: mongoose handles schema validation internally
|
|
273
|
+
return undefined;
|
|
274
|
+
}
|
|
275
|
+
removeSchema() {
|
|
276
|
+
// No-op: mongoose handles schema validation internally
|
|
277
|
+
}
|
|
278
|
+
validateDoc(_doc) {
|
|
279
|
+
// No validation errors — mongoose handles validation internally
|
|
280
|
+
return [];
|
|
281
|
+
}
|
|
282
|
+
// ── Write concern / Read preference ──
|
|
283
|
+
getWriteConcern() {
|
|
284
|
+
return this._writeConcern;
|
|
285
|
+
}
|
|
286
|
+
setWriteConcern(wc) {
|
|
287
|
+
this._writeConcern = wc;
|
|
288
|
+
}
|
|
289
|
+
getReadPreference() {
|
|
290
|
+
return this._readPreference;
|
|
291
|
+
}
|
|
292
|
+
setReadPreference(rp) {
|
|
293
|
+
this._readPreference = rp;
|
|
294
|
+
}
|
|
295
|
+
// ── Text index ──
|
|
296
|
+
createTextIndex(options) {
|
|
297
|
+
const indexSpec = {};
|
|
298
|
+
for (const field of Object.keys(options.fields)) {
|
|
299
|
+
indexSpec[field] = 'text';
|
|
300
|
+
}
|
|
301
|
+
const indexName = options.name ?? 'text_index';
|
|
302
|
+
void this._model.collection.createIndex(indexSpec, {
|
|
303
|
+
name: indexName,
|
|
304
|
+
weights: options.fields,
|
|
305
|
+
default_language: options.defaultLanguage,
|
|
306
|
+
});
|
|
307
|
+
return indexName;
|
|
308
|
+
}
|
|
309
|
+
dropTextIndex() {
|
|
310
|
+
// Attempt to drop the text index; best-effort
|
|
311
|
+
void this._model.collection.dropIndex('text_index').catch(() => {
|
|
312
|
+
// Ignore errors if the index doesn't exist
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
hasTextIndex() {
|
|
316
|
+
// Synchronous check is not possible with mongoose.
|
|
317
|
+
// Return false; callers needing accurate info should check asynchronously.
|
|
318
|
+
return false;
|
|
319
|
+
}
|
|
320
|
+
// ── Lifecycle ──
|
|
321
|
+
async drop() {
|
|
322
|
+
await this._model.collection.drop();
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
exports.MongooseCollection = MongooseCollection;
|
|
326
|
+
//# sourceMappingURL=mongoose-collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongoose-collection.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/mongoose-collection.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA8BH,oEAAyD;AAEzD,yEAAoE;AAEpE;;;;GAIG;AACH,SAAS,oBAAoB,CAC3B,OAAkE;IAElE,IAAI,CAAC,OAAO,EAAE,OAAO;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,OAAO,CAAC,OAAO,YAAY,iDAAsB,EAAE,CAAC;QACtD,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;IACvC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAa,kBAAkB;IAGrB,MAAM,CAAW;IACjB,aAAa,GAAiB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACvC,eAAe,GAAmB,SAAS,CAAC;IAEpD,YAAY,UAAsB,EAAE,cAAsB;QACxD,uEAAuE;QACvE,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAI,cAAc,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,4DAA4D;YAC5D,MAAM,MAAM,GAAG,IAAI,uBAAM,CAAI,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAI,cAAc,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,aAAa;IAEb,KAAK,CAAC,SAAS,CAAC,GAAM,EAAE,OAAsB;QAC5C,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO;YACL,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;SAC9B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAS,EACT,OAAsB;QAEtB,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,WAAW,GAA+B,EAAE,CAAC;QACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO;YACL,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,OAAO,CAAC,MAAM;YAC7B,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAuB,EACvB,OAAwB;QAExB,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAC/B,CAAC,MAAM,IAAI,EAAE,CAA4B,EACzC,OAAO,EAAE,UAAgD,EACzD,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CACxB,CAAC;QACF,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAA8B,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,OAAQ,MAAmB,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAuB,EAAE,OAAwB;QAC1D,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAC5B,CAAC,MAAM,IAAI,EAAE,CAA4B,EACzC,OAAO,EAAE,UAAgD,EACzD,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CACxB,CAAC;QACF,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAA8B,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,OAAc,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAc;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5D,OAAQ,MAAmB,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAsB,EACtB,MAAsB,EACtB,OAAuB;QAEvB,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CACxC,MAAiC,EACjC,MAAiC,EACjC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CACrC,CAAC;QACF,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;SACtE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,MAAsB,EACtB,MAAsB,EACtB,OAAuB;QAEvB,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CACzC,MAAiC,EACjC,MAAiC,EACjC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CACrC,CAAC;QACF,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;SACtE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CACb,MAAsB,EACtB,OAAsB;QAEtB,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CACxC,MAAiC,EACjC,EAAE,OAAO,EAAE,CACZ,CAAC;QACF,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,MAAsB,EACtB,OAAsB;QAEtB,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CACzC,MAAiC,EACjC,EAAE,OAAO,EAAE,CACZ,CAAC;QACF,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,MAAsB,EACtB,GAAM,EACN,OAAuB;QAEvB,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CACzC,MAAiC,EACjC,GAA8B,EAC9B,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CACrC,CAAC;QACF,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;SACtE,CAAC;IACJ,CAAC;IAED,cAAc;IAEd,KAAK,CAAC,cAAc,CAAC,MAAuB;QAC1C,OAAO,IAAI,CAAC,MAAM;aACf,cAAc,CAAC,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;aACzD,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,KAAQ,EACR,MAAuB;QAEvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM;aAC7B,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;aAClE,IAAI,EAAE,CAAC;QACV,OAAO,MAAqB,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAA4B;QAC1C,yFAAyF;QACzF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAC7C,QAAqC,CACtC,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACtC,OAAO,MAAwB,CAAC;IAClC,CAAC;IAED,gBAAgB;IAEhB,KAAK,CAAC,WAAW,CAAC,IAAe,EAAE,OAAsB;QACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE;YAC/D,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,IAAI,EAAE,OAAO,EAAE,IAAI;YACnB,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,UAAU,EAAE,OAAO,EAAE,UAAU;YAC/B,kBAAkB,EAAE,OAAO,EAAE,kBAAkB;SAChD,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,WAAW;QACT,6DAA6D;QAC7D,6DAA6D;QAC7D,6CAA6C;QAC7C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,wBAAwB;IAExB,KAAK,CAAC,SAAS,CACb,UAAmC,EACnC,OAA0B;QAE1B,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACxC,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;gBACtB,OAAO;oBACL,SAAS,EAAE;wBACT,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,QAAmC;qBAC3D;iBACF,CAAC;YACJ,CAAC;YACD,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;gBACtB,OAAO;oBACL,SAAS,EAAE;wBACT,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAiC;wBACtD,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAiC;wBACtD,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM;qBAC5B;iBACF,CAAC;YACJ,CAAC;YACD,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;gBACvB,OAAO;oBACL,UAAU,EAAE;wBACV,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAiC;wBACvD,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAiC;qBACxD;iBACF,CAAC;YACJ,CAAC;YACD,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;gBACtB,OAAO;oBACL,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAiC,EAAE;iBACtE,CAAC;YACJ,CAAC;YACD,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;gBACvB,OAAO;oBACL,UAAU,EAAE;wBACV,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAiC;qBACxD;iBACF,CAAC;YACJ,CAAC;YACD,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;gBACvB,OAAO;oBACL,UAAU,EAAE;wBACV,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAiC;wBACvD,WAAW,EAAE,EAAE,CAAC,UAAU,CAAC,WAAsC;wBACjE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;qBAC7B;iBACF,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CACxC,WAA0D,EAC1D,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CACvC,CAAC;QAEF,OAAO;YACL,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,EAAE;SAChB,CAAC;IACJ,CAAC;IAED,uBAAuB;IAEvB,KAAK,CAAC,QAA2B;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAA+B,EAAE,EAAE;YAC5D,QAAQ,CAAC;gBACP,aAAa,EAAE,MAAM,CAAC,eAAe,CAIzB;gBACZ,WAAW,EAAE,MAAM,CAAC,aAAa,CAAwB;gBACzD,YAAY,EAAE,MAAM,CAAC,cAAc,CAAkB;gBACrD,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,CAEhC;gBACb,EAAE,EAAE,MAAM,CAAC,IAAI,CAAiC;gBAChD,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,KAAK,YAAY,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC,CAAC;IACJ,CAAC;IAED,gDAAgD;IAEhD,SAAS,CAAC,OAAyB;QACjC,uDAAuD;IACzD,CAAC;IAED,SAAS;QACP,uDAAuD;QACvD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,YAAY;QACV,uDAAuD;IACzD,CAAC;IAED,WAAW,CAAC,IAAO;QACjB,gEAAgE;QAChE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,wCAAwC;IAExC,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,eAAe,CAAC,EAAgB;QAC9B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,iBAAiB,CAAC,EAAkB;QAClC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,mBAAmB;IAEnB,eAAe,CAAC,OAAyB;QACvC,MAAM,SAAS,GAAoC,EAAE,CAAC;QACtD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;QAC5B,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;QAC/C,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CACrC,SAA4C,EAC5C;YACE,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,gBAAgB,EAAE,OAAO,CAAC,eAAe;SAC1C,CACF,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,aAAa;QACX,8CAA8C;QAC9C,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAC7D,2CAA2C;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,mDAAmD;QACnD,2EAA2E;QAC3E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kBAAkB;IAElB,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACF;AAvZD,gDAuZC"}
|