@digitaldefiance/suite-core-lib 3.13.5 → 3.13.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/package.json +1 -1
  2. package/src/interfaces/index.d.ts +1 -0
  3. package/src/interfaces/index.d.ts.map +1 -1
  4. package/src/interfaces/index.js +1 -0
  5. package/src/interfaces/index.js.map +1 -1
  6. package/src/interfaces/storage/client-session.d.ts +22 -0
  7. package/src/interfaces/storage/client-session.d.ts.map +1 -0
  8. package/src/interfaces/storage/client-session.js +3 -0
  9. package/src/interfaces/storage/client-session.js.map +1 -0
  10. package/src/interfaces/storage/collection.d.ts +80 -0
  11. package/src/interfaces/storage/collection.d.ts.map +1 -0
  12. package/src/interfaces/storage/collection.js +3 -0
  13. package/src/interfaces/storage/collection.js.map +1 -0
  14. package/src/interfaces/storage/database-lifecycle-hooks.d.ts +43 -0
  15. package/src/interfaces/storage/database-lifecycle-hooks.d.ts.map +1 -0
  16. package/src/interfaces/storage/database-lifecycle-hooks.js +3 -0
  17. package/src/interfaces/storage/database-lifecycle-hooks.js.map +1 -0
  18. package/src/interfaces/storage/database.d.ts +30 -0
  19. package/src/interfaces/storage/database.d.ts.map +1 -0
  20. package/src/interfaces/storage/database.js +3 -0
  21. package/src/interfaces/storage/database.js.map +1 -0
  22. package/src/interfaces/storage/document-types.d.ts +415 -0
  23. package/src/interfaces/storage/document-types.d.ts.map +1 -0
  24. package/src/interfaces/storage/document-types.js +8 -0
  25. package/src/interfaces/storage/document-types.js.map +1 -0
  26. package/src/interfaces/storage/index.d.ts +6 -0
  27. package/src/interfaces/storage/index.d.ts.map +1 -0
  28. package/src/interfaces/storage/index.js +9 -0
  29. package/src/interfaces/storage/index.js.map +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digitaldefiance/suite-core-lib",
3
- "version": "3.13.5",
3
+ "version": "3.13.6",
4
4
  "homepage": "https://github.com/Digital-Defiance/suite-core-lib",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,4 +25,5 @@ export * from './success-message';
25
25
  export * from './token-user';
26
26
  export * from './user-settings';
27
27
  export * from './i18n-constants';
28
+ export * from './storage';
28
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,mBAAmB,wBAAwB,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,mBAAmB,wBAAwB,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC"}
@@ -24,4 +24,5 @@ tslib_1.__exportStar(require("./success-message"), exports);
24
24
  tslib_1.__exportStar(require("./token-user"), exports);
25
25
  tslib_1.__exportStar(require("./user-settings"), exports);
26
26
  tslib_1.__exportStar(require("./i18n-constants"), exports);
27
+ tslib_1.__exportStar(require("./storage"), exports);
27
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/index.ts"],"names":[],"mappings":";;;AAIA,wDAA8B;AAC9B,+DAAqC;AACrC,kDAAwB;AACxB,qEAA2C;AAC3C,sDAA4B;AAC5B,wDAA8B;AAC9B,yDAA+B;AAC/B,gDAAsB;AACtB,4DAAkC;AAClC,6DAAmC;AACnC,yDAA+B;AAC/B,wDAA8B;AAC9B,mDAAyB;AACzB,4DAAkC;AAClC,6DAAmC;AACnC,iEAAuC;AACvC,2DAAiC;AACjC,wDAA8B;AAC9B,wDAA8B;AAC9B,4DAAkC;AAClC,uDAA6B;AAC7B,0DAAgC;AAChC,2DAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/index.ts"],"names":[],"mappings":";;;AAIA,wDAA8B;AAC9B,+DAAqC;AACrC,kDAAwB;AACxB,qEAA2C;AAC3C,sDAA4B;AAC5B,wDAA8B;AAC9B,yDAA+B;AAC/B,gDAAsB;AACtB,4DAAkC;AAClC,6DAAmC;AACnC,yDAA+B;AAC/B,wDAA8B;AAC9B,mDAAyB;AACzB,4DAAkC;AAClC,6DAAmC;AACnC,iEAAuC;AACvC,2DAAiC;AACjC,wDAA8B;AAC9B,wDAA8B;AAC9B,4DAAkC;AAClC,uDAA6B;AAC7B,0DAAgC;AAChC,2DAAiC;AACjC,oDAA0B"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Storage-agnostic client session interface for transaction support.
3
+ *
4
+ * Both brightchain-db's DbSession and mongoose-based session adapters
5
+ * implement this interface, allowing transaction-aware code to work
6
+ * with any database backend.
7
+ */
8
+ export interface IClientSession {
9
+ /** Unique session ID */
10
+ readonly id: string;
11
+ /** Whether a transaction is currently active */
12
+ readonly inTransaction: boolean;
13
+ /** Start a new transaction */
14
+ startTransaction(): void;
15
+ /** Commit the current transaction */
16
+ commitTransaction(): Promise<void>;
17
+ /** Abort the current transaction */
18
+ abortTransaction(): Promise<void>;
19
+ /** End the session */
20
+ endSession(): void;
21
+ }
22
+ //# sourceMappingURL=client-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-session.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/storage/client-session.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,8BAA8B;IAC9B,gBAAgB,IAAI,IAAI,CAAC;IACzB,qCAAqC;IACrC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,oCAAoC;IACpC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,sBAAsB;IACtB,UAAU,IAAI,IAAI,CAAC;CACpB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=client-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-session.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/storage/client-session.ts"],"names":[],"mappings":""}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Storage-agnostic collection interface for document CRUD, query, index,
3
+ * aggregation, schema validation, and lifecycle operations.
4
+ *
5
+ * Both brightchain-db's Collection and mongoose-based collection adapters
6
+ * implement this interface, allowing collection-level code to work with
7
+ * any database backend.
8
+ */
9
+ import { AggregationStage, BsonDocument, BulkWriteOperation, BulkWriteOptions, BulkWriteResult, ChangeListener, CollectionSchema, DeleteResult, DocumentId, FilterQuery, FindOptions, IndexOptions, IndexSpec, InsertManyResult, InsertOneResult, ReadPreference, ReplaceResult, TextIndexOptions, UpdateOptions, UpdateQuery, UpdateResult, ValidationFieldError, WriteConcern, WriteOptions } from './document-types';
10
+ export interface ICollection<T extends BsonDocument = BsonDocument> {
11
+ /** Insert a single document. */
12
+ insertOne(doc: T, options?: WriteOptions): Promise<InsertOneResult>;
13
+ /** Insert multiple documents. */
14
+ insertMany(docs: T[], options?: WriteOptions): Promise<InsertManyResult>;
15
+ /** Find the first document matching the filter. */
16
+ findOne(filter?: FilterQuery<T>, options?: FindOptions<T>): Promise<T | null>;
17
+ /**
18
+ * Find all documents matching the filter.
19
+ *
20
+ * Return type is `T[] | PromiseLike<T[]>` to accommodate both synchronous
21
+ * in-memory results (brightchain-db Cursor, which is thenable) and async
22
+ * mongoose queries.
23
+ */
24
+ find(filter?: FilterQuery<T>, options?: FindOptions<T>): T[] | PromiseLike<T[]>;
25
+ /** Find a document by its `_id`. */
26
+ findById(id: DocumentId): Promise<T | null>;
27
+ /** Update the first document matching the filter. */
28
+ updateOne(filter: FilterQuery<T>, update: UpdateQuery<T>, options?: UpdateOptions): Promise<UpdateResult>;
29
+ /** Update all documents matching the filter. */
30
+ updateMany(filter: FilterQuery<T>, update: UpdateQuery<T>, options?: UpdateOptions): Promise<UpdateResult>;
31
+ /** Delete the first document matching the filter. */
32
+ deleteOne(filter: FilterQuery<T>, options?: WriteOptions): Promise<DeleteResult>;
33
+ /** Delete all documents matching the filter. */
34
+ deleteMany(filter: FilterQuery<T>, options?: WriteOptions): Promise<DeleteResult>;
35
+ /** Replace the first document matching the filter. */
36
+ replaceOne(filter: FilterQuery<T>, doc: T, options?: UpdateOptions): Promise<ReplaceResult>;
37
+ /** Count documents matching the filter. */
38
+ countDocuments(filter?: FilterQuery<T>): Promise<number>;
39
+ /** Estimated total document count (may be faster than countDocuments). */
40
+ estimatedDocumentCount(): Promise<number>;
41
+ /** Return distinct values for a field, optionally filtered. */
42
+ distinct<K extends keyof T>(field: K, filter?: FilterQuery<T>): Promise<Array<T[K]>>;
43
+ /** Run an aggregation pipeline. */
44
+ aggregate(pipeline: AggregationStage[]): Promise<BsonDocument[]>;
45
+ /** Create an index on the collection. Returns the index name. */
46
+ createIndex(spec: IndexSpec, options?: IndexOptions): Promise<string>;
47
+ /** Drop an index by name. */
48
+ dropIndex(name: string): Promise<void>;
49
+ /** List all index names on this collection. */
50
+ listIndexes(): string[];
51
+ /** Execute multiple write operations in bulk. */
52
+ bulkWrite(operations: BulkWriteOperation<T>[], options?: BulkWriteOptions): Promise<BulkWriteResult>;
53
+ /** Watch for changes on this collection. Returns an unsubscribe function. */
54
+ watch(listener: ChangeListener<T>): () => void;
55
+ /** Set a validation schema for this collection. */
56
+ setSchema(schema: CollectionSchema): void;
57
+ /** Get the current validation schema (if any). */
58
+ getSchema(): CollectionSchema | undefined;
59
+ /** Remove the validation schema. */
60
+ removeSchema(): void;
61
+ /** Validate a document against the current schema. */
62
+ validateDoc(doc: T): ValidationFieldError[];
63
+ /** Get the current write concern. */
64
+ getWriteConcern(): WriteConcern;
65
+ /** Set the write concern for this collection. */
66
+ setWriteConcern(wc: WriteConcern): void;
67
+ /** Get the current read preference. */
68
+ getReadPreference(): ReadPreference;
69
+ /** Set the read preference for this collection. */
70
+ setReadPreference(rp: ReadPreference): void;
71
+ /** Create a text index. Returns the index name. */
72
+ createTextIndex(options: TextIndexOptions): string;
73
+ /** Drop the text index. */
74
+ dropTextIndex(): void;
75
+ /** Whether a text index exists on this collection. */
76
+ hasTextIndex(): boolean;
77
+ /** Drop this collection and all its data. */
78
+ drop(): Promise<void>;
79
+ }
80
+ //# sourceMappingURL=collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/storage/collection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/storage/collection.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ import { IFailableResult } from '../failable-result';
2
+ /**
3
+ * Storage-agnostic lifecycle hooks for database initialization.
4
+ * Provided to BaseApplication to enable init, validation, and dev setup
5
+ * regardless of which database backend (IDatabase or IDocumentStore) is used.
6
+ *
7
+ * All hooks are optional, allowing partial configuration.
8
+ * Each hook is a stateless function (or closure) receiving all needed context
9
+ * as parameters, enabling independent unit testing.
10
+ *
11
+ * @template TInitResults - Application-specific initialization result type
12
+ */
13
+ export interface IDatabaseLifecycleHooks<TInitResults = unknown> {
14
+ /**
15
+ * Validate a database connection URI before connecting.
16
+ * Should throw on invalid or unsafe URIs.
17
+ * If not provided, BaseApplication uses a default validator.
18
+ */
19
+ validateUri?: (uri: string) => void;
20
+ /**
21
+ * Provision an ephemeral dev/test database.
22
+ * Returns the connection URI for the provisioned store.
23
+ * Called before connect() when environment.devDatabase is truthy.
24
+ */
25
+ setupDevStore?: () => Promise<string>;
26
+ /**
27
+ * Clean up the ephemeral dev/test database on shutdown.
28
+ * Called during stop() if setupDevStore was invoked.
29
+ */
30
+ teardownDevStore?: () => Promise<void>;
31
+ /**
32
+ * Initialize/seed the database after connection.
33
+ * Called after connect() when environment.devDatabase is truthy.
34
+ * Must return a failable result indicating success or failure.
35
+ */
36
+ initializeDatabase?: (application: unknown) => Promise<IFailableResult<TInitResults>>;
37
+ /**
38
+ * Hash the initialization results for logging purposes.
39
+ * Called after successful initializeDatabase when detailedDebug is enabled.
40
+ */
41
+ hashInitResults?: (initResults: TInitResults) => string;
42
+ }
43
+ //# sourceMappingURL=database-lifecycle-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-lifecycle-hooks.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/storage/database-lifecycle-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,uBAAuB,CAAC,YAAY,GAAG,OAAO;IAC7D;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CACnB,WAAW,EAAE,OAAO,KACjB,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;IAE5C;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,MAAM,CAAC;CACzD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=database-lifecycle-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-lifecycle-hooks.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/storage/database-lifecycle-hooks.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Storage-agnostic database interface for collection access, session/transaction
3
+ * management, and connection lifecycle.
4
+ *
5
+ * Both brightchain-db's BrightChainDb and mongoose-based database adapters
6
+ * implement this interface, allowing application code to work with any
7
+ * database backend through a single contract.
8
+ */
9
+ import { IClientSession } from './client-session';
10
+ import { ICollection } from './collection';
11
+ import { BsonDocument, CollectionOptions } from './document-types';
12
+ export interface IDatabase {
13
+ /** Get or create a collection by name. */
14
+ collection<T extends BsonDocument = BsonDocument>(name: string, options?: CollectionOptions): ICollection<T>;
15
+ /** Start a client session for transaction support. */
16
+ startSession(): IClientSession;
17
+ /** Run a callback within a transaction (auto-commit/abort). */
18
+ withTransaction<R>(fn: (session: IClientSession) => Promise<R>): Promise<R>;
19
+ /** List all known collection names. */
20
+ listCollections(): string[];
21
+ /** Drop a collection by name. */
22
+ dropCollection(name: string): Promise<boolean>;
23
+ /** Connect to the backing store. URI may be ignored by non-network stores. */
24
+ connect(uri?: string): Promise<void>;
25
+ /** Disconnect from the backing store. */
26
+ disconnect(): Promise<void>;
27
+ /** Whether the store is currently connected. */
28
+ isConnected(): boolean;
29
+ }
30
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/storage/database.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEnE,MAAM,WAAW,SAAS;IACxB,0CAA0C;IAC1C,UAAU,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAC9C,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,iBAAiB,GAC1B,WAAW,CAAC,CAAC,CAAC,CAAC;IAElB,sDAAsD;IACtD,YAAY,IAAI,cAAc,CAAC;IAE/B,+DAA+D;IAC/D,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5E,uCAAuC;IACvC,eAAe,IAAI,MAAM,EAAE,CAAC;IAE5B,iCAAiC;IACjC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/C,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,gDAAgD;IAChD,WAAW,IAAI,OAAO,CAAC;CACxB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/storage/database.ts"],"names":[],"mappings":""}
@@ -0,0 +1,415 @@
1
+ /**
2
+ * Shared document store types promoted from brightchain-db.
3
+ * These types define the MongoDB-compatible query/update/result contracts
4
+ * used by both brightchain-db and mongoose-based implementations.
5
+ */
6
+ import { IClientSession } from './client-session';
7
+ /** A document ID – opaque string */
8
+ export type DocumentId = string;
9
+ /** The shape of a stored document – any record with an optional _id */
10
+ export type BsonDocument = Record<string, unknown> & {
11
+ _id?: DocumentId;
12
+ };
13
+ /**
14
+ * MongoDB-style filter with query operators.
15
+ *
16
+ * Supports:
17
+ * - Exact match: `{ field: value }`
18
+ * - Comparison: `{ field: { $eq, $ne, $gt, $gte, $lt, $lte } }`
19
+ * - Set: `{ field: { $in: [...], $nin: [...] } }`
20
+ * - Pattern: `{ field: { $regex: /.../ } }`
21
+ * - Existence: `{ field: { $exists: true } }`
22
+ * - Logical: `{ $and: [...], $or: [...], $not: {...}, $nor: [...] }`
23
+ * - Array: `{ field: { $elemMatch: {...} } }`
24
+ */
25
+ export type FilterQuery<T> = {
26
+ [P in keyof T]?: T[P] | FilterOperator<T[P]>;
27
+ } & LogicalOperators<T>;
28
+ export interface FilterOperator<V> {
29
+ $eq?: V;
30
+ $ne?: V;
31
+ $gt?: V;
32
+ $gte?: V;
33
+ $lt?: V;
34
+ $lte?: V;
35
+ $in?: V[];
36
+ $nin?: V[];
37
+ $regex?: RegExp | string;
38
+ $exists?: boolean;
39
+ $not?: FilterOperator<V>;
40
+ $elemMatch?: Record<string, unknown>;
41
+ $size?: number;
42
+ $type?: string;
43
+ $all?: V[];
44
+ }
45
+ export interface LogicalOperators<T> {
46
+ $and?: FilterQuery<T>[];
47
+ $or?: FilterQuery<T>[];
48
+ $nor?: FilterQuery<T>[];
49
+ $not?: FilterQuery<T>;
50
+ }
51
+ /**
52
+ * MongoDB-style update operators
53
+ */
54
+ export interface UpdateOperators<T> {
55
+ $set?: Partial<T>;
56
+ $unset?: {
57
+ [P in keyof T]?: 1 | '' | true;
58
+ };
59
+ $inc?: {
60
+ [P in keyof T]?: number;
61
+ };
62
+ $push?: {
63
+ [P in keyof T]?: unknown;
64
+ };
65
+ $pull?: {
66
+ [P in keyof T]?: unknown;
67
+ };
68
+ $addToSet?: {
69
+ [P in keyof T]?: unknown;
70
+ };
71
+ $min?: Partial<T>;
72
+ $max?: Partial<T>;
73
+ $rename?: {
74
+ [key: string]: string;
75
+ };
76
+ $currentDate?: {
77
+ [P in keyof T]?: true | {
78
+ $type: 'date' | 'timestamp';
79
+ };
80
+ };
81
+ $mul?: {
82
+ [P in keyof T]?: number;
83
+ };
84
+ $pop?: {
85
+ [P in keyof T]?: 1 | -1;
86
+ };
87
+ }
88
+ /** The update document can be either operators or a full replacement */
89
+ export type UpdateQuery<T> = UpdateOperators<T> | Partial<T>;
90
+ /**
91
+ * Sort specification: 1 = ascending, -1 = descending
92
+ */
93
+ export type SortSpec<T = BsonDocument> = {
94
+ [P in keyof T]?: 1 | -1;
95
+ } & Record<string, 1 | -1>;
96
+ /**
97
+ * Projection specification: 1 = include, 0 = exclude
98
+ */
99
+ export type ProjectionSpec<T = BsonDocument> = {
100
+ [P in keyof T]?: 1 | 0;
101
+ } & Record<string, 1 | 0>;
102
+ /**
103
+ * Index specification: 1 = ascending, -1 = descending
104
+ */
105
+ export type IndexSpec = Record<string, 1 | -1>;
106
+ /**
107
+ * Options for index creation
108
+ */
109
+ export interface IndexOptions {
110
+ unique?: boolean;
111
+ name?: string;
112
+ sparse?: boolean;
113
+ background?: boolean;
114
+ /** TTL: automatically expire documents after this many seconds */
115
+ expireAfterSeconds?: number;
116
+ }
117
+ /**
118
+ * Client session type alias for backward compatibility.
119
+ * The canonical interface is IClientSession in ./client-session.ts.
120
+ */
121
+ export type ClientSession = IClientSession;
122
+ /**
123
+ * Options for find operations
124
+ */
125
+ export interface FindOptions<T = BsonDocument> {
126
+ projection?: ProjectionSpec<T>;
127
+ sort?: SortSpec<T>;
128
+ limit?: number;
129
+ skip?: number;
130
+ session?: IClientSession;
131
+ }
132
+ /**
133
+ * Options for write operations
134
+ */
135
+ export interface WriteOptions {
136
+ session?: IClientSession;
137
+ /** Write concern for this operation */
138
+ writeConcern?: WriteConcern;
139
+ }
140
+ /**
141
+ * Options for update operations
142
+ */
143
+ export interface UpdateOptions extends WriteOptions {
144
+ upsert?: boolean;
145
+ }
146
+ /**
147
+ * Result of an insert operation
148
+ */
149
+ export interface InsertOneResult {
150
+ acknowledged: boolean;
151
+ insertedId: DocumentId;
152
+ }
153
+ export interface InsertManyResult {
154
+ acknowledged: boolean;
155
+ insertedCount: number;
156
+ insertedIds: Record<number, DocumentId>;
157
+ }
158
+ /**
159
+ * Result of an update operation
160
+ */
161
+ export interface UpdateResult {
162
+ acknowledged: boolean;
163
+ matchedCount: number;
164
+ modifiedCount: number;
165
+ upsertedCount: number;
166
+ upsertedId?: DocumentId;
167
+ }
168
+ /**
169
+ * Result of a delete operation
170
+ */
171
+ export interface DeleteResult {
172
+ acknowledged: boolean;
173
+ deletedCount: number;
174
+ }
175
+ /**
176
+ * Result of a replace operation
177
+ */
178
+ export interface ReplaceResult {
179
+ acknowledged: boolean;
180
+ matchedCount: number;
181
+ modifiedCount: number;
182
+ upsertedCount: number;
183
+ upsertedId?: DocumentId;
184
+ }
185
+ /** Change stream event types */
186
+ export type ChangeEventType = 'insert' | 'update' | 'replace' | 'delete';
187
+ export interface ChangeEvent<T = BsonDocument> {
188
+ operationType: ChangeEventType;
189
+ documentKey: {
190
+ _id: DocumentId;
191
+ };
192
+ fullDocument?: T;
193
+ updateDescription?: {
194
+ updatedFields?: Partial<T>;
195
+ removedFields?: string[];
196
+ };
197
+ ns: {
198
+ db: string;
199
+ coll: string;
200
+ };
201
+ timestamp: Date;
202
+ }
203
+ /** Listener for change events */
204
+ export type ChangeListener<T = BsonDocument> = (event: ChangeEvent<T>) => void;
205
+ /**
206
+ * Aggregation pipeline stage types
207
+ */
208
+ export type AggregationStage = {
209
+ $match: Record<string, unknown>;
210
+ } | {
211
+ $group: Record<string, unknown>;
212
+ } | {
213
+ $sort: Record<string, 1 | -1>;
214
+ } | {
215
+ $limit: number;
216
+ } | {
217
+ $skip: number;
218
+ } | {
219
+ $project: Record<string, unknown>;
220
+ } | {
221
+ $unwind: string | {
222
+ path: string;
223
+ preserveNullAndEmptyArrays?: boolean;
224
+ };
225
+ } | {
226
+ $count: string;
227
+ } | {
228
+ $addFields: Record<string, unknown>;
229
+ } | {
230
+ $lookup: {
231
+ from: string;
232
+ localField: string;
233
+ foreignField: string;
234
+ as: string;
235
+ };
236
+ } | {
237
+ $replaceRoot: {
238
+ newRoot: string | Record<string, unknown>;
239
+ };
240
+ } | {
241
+ $out: string;
242
+ } | {
243
+ $sample: {
244
+ size: number;
245
+ };
246
+ } | {
247
+ $facet: Record<string, AggregationStage[]>;
248
+ };
249
+ /**
250
+ * Write concern – controls acknowledgment of write operations.
251
+ */
252
+ export interface WriteConcern {
253
+ /** Number of acknowledgments: 0 = fire-and-forget, 1 = primary (default), 'majority' */
254
+ w?: number | 'majority';
255
+ /** Timeout in ms for write concern acknowledgment */
256
+ wtimeoutMS?: number;
257
+ /** Whether to wait for journal commit before acknowledging */
258
+ journal?: boolean;
259
+ }
260
+ /**
261
+ * Read preference – controls which store replicas are read from.
262
+ */
263
+ export type ReadPreference = 'primary' | 'secondary' | 'nearest';
264
+ /**
265
+ * Options for creating a collection with validation and other settings.
266
+ */
267
+ export interface CollectionOptions {
268
+ /** Write concern for all operations on this collection */
269
+ writeConcern?: WriteConcern;
270
+ /** Read preference for all read operations on this collection */
271
+ readPreference?: ReadPreference;
272
+ }
273
+ export type BulkWriteOperation<T extends BsonDocument = BsonDocument> = {
274
+ insertOne: {
275
+ document: T;
276
+ };
277
+ } | {
278
+ updateOne: {
279
+ filter: FilterQuery<T>;
280
+ update: UpdateQuery<T>;
281
+ upsert?: boolean;
282
+ };
283
+ } | {
284
+ updateMany: {
285
+ filter: FilterQuery<T>;
286
+ update: UpdateQuery<T>;
287
+ };
288
+ } | {
289
+ deleteOne: {
290
+ filter: FilterQuery<T>;
291
+ };
292
+ } | {
293
+ deleteMany: {
294
+ filter: FilterQuery<T>;
295
+ };
296
+ } | {
297
+ replaceOne: {
298
+ filter: FilterQuery<T>;
299
+ replacement: T;
300
+ upsert?: boolean;
301
+ };
302
+ };
303
+ export interface BulkWriteOptions extends WriteOptions {
304
+ /** If true, stop on the first error. If false, continue and report all errors. (default: true) */
305
+ ordered?: boolean;
306
+ }
307
+ export interface BulkWriteResult {
308
+ acknowledged: boolean;
309
+ insertedCount: number;
310
+ matchedCount: number;
311
+ modifiedCount: number;
312
+ deletedCount: number;
313
+ upsertedCount: number;
314
+ insertedIds: Record<number, DocumentId>;
315
+ upsertedIds: Record<number, DocumentId>;
316
+ }
317
+ /**
318
+ * Text index options
319
+ */
320
+ export interface TextIndexOptions {
321
+ /** Fields to index for text search, with optional weights */
322
+ fields: Record<string, number>;
323
+ /** Default language for stemming (currently unused – basic tokenisation only) */
324
+ defaultLanguage?: string;
325
+ /** Name of the text index */
326
+ name?: string;
327
+ }
328
+ /**
329
+ * A server-side cursor session for paginated REST access.
330
+ */
331
+ export interface CursorSession {
332
+ /** Unique cursor ID */
333
+ id: string;
334
+ /** Collection name */
335
+ collection: string;
336
+ /** Pre-fetched document IDs (for position tracking) */
337
+ documentIds: DocumentId[];
338
+ /** Current offset position */
339
+ position: number;
340
+ /** Batch size */
341
+ batchSize: number;
342
+ /** Timestamp of last access */
343
+ lastAccessed: number;
344
+ /** Filter used to create this cursor */
345
+ filter: Record<string, unknown>;
346
+ /** Sort used */
347
+ sort?: Record<string, 1 | -1>;
348
+ /** Projection used */
349
+ projection?: Record<string, 0 | 1>;
350
+ }
351
+ /**
352
+ * Supported schema field types for collection validation.
353
+ */
354
+ export type CollectionSchemaFieldType = 'string' | 'number' | 'boolean' | 'object' | 'array' | 'null' | 'date' | 'any' | 'branded-primitive' | 'branded-interface';
355
+ /**
356
+ * Per-field schema definition for collection validation.
357
+ */
358
+ export interface FieldSchema {
359
+ /** Expected type */
360
+ type?: CollectionSchemaFieldType | CollectionSchemaFieldType[];
361
+ /** Whether this field is required (also settable at parent level via `required` array) */
362
+ required?: boolean;
363
+ /** Minimum value (number) or minimum length (string/array) */
364
+ minimum?: number;
365
+ /** Maximum value (number) or maximum length (string/array) */
366
+ maximum?: number;
367
+ /** Minimum string/array length */
368
+ minLength?: number;
369
+ /** Maximum string/array length */
370
+ maxLength?: number;
371
+ /** Regex pattern for string values */
372
+ pattern?: string;
373
+ /** Allowed values */
374
+ enum?: unknown[];
375
+ /** Schema for nested object properties */
376
+ properties?: Record<string, FieldSchema>;
377
+ /** Required fields in nested object */
378
+ requiredFields?: string[];
379
+ /** Schema for array items */
380
+ items?: FieldSchema;
381
+ /** Default value if field is missing */
382
+ default?: unknown;
383
+ /** Whether to allow extra properties (for objects) */
384
+ additionalProperties?: boolean;
385
+ /** Custom validation function */
386
+ validate?: (value: unknown) => boolean | string;
387
+ /** Branded primitive or interface ID to resolve from the Interface_Registry */
388
+ ref?: string;
389
+ }
390
+ /**
391
+ * Collection-level schema for document validation.
392
+ */
393
+ export interface CollectionSchema {
394
+ /** Name of the schema (for error messages) */
395
+ name?: string;
396
+ /** Per-field definitions */
397
+ properties: Record<string, FieldSchema>;
398
+ /** Which fields are required */
399
+ required?: string[];
400
+ /** Allow fields not defined in properties (default: true) */
401
+ additionalProperties?: boolean;
402
+ /** When to validate: 'strict' = inserts and updates, 'moderate' = inserts only */
403
+ validationLevel?: 'strict' | 'moderate' | 'off';
404
+ /** What to do on failure: 'error' = throw, 'warn' = log and continue */
405
+ validationAction?: 'error' | 'warn';
406
+ }
407
+ /**
408
+ * A field-level validation error returned by schema validation.
409
+ */
410
+ export interface ValidationFieldError {
411
+ field: string;
412
+ message: string;
413
+ value?: unknown;
414
+ }
415
+ //# sourceMappingURL=document-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-types.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/storage/document-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * Shared document store types promoted from brightchain-db.
4
+ * These types define the MongoDB-compatible query/update/result contracts
5
+ * used by both brightchain-db and mongoose-based implementations.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=document-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-types.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/storage/document-types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
@@ -0,0 +1,6 @@
1
+ export * from './document-types';
2
+ export * from './client-session';
3
+ export * from './collection';
4
+ export * from './database';
5
+ export * from './database-lifecycle-hooks';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./document-types"), exports);
5
+ tslib_1.__exportStar(require("./client-session"), exports);
6
+ tslib_1.__exportStar(require("./collection"), exports);
7
+ tslib_1.__exportStar(require("./database"), exports);
8
+ tslib_1.__exportStar(require("./database-lifecycle-hooks"), exports);
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-suite-core-lib/src/interfaces/storage/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,2DAAiC;AACjC,uDAA6B;AAC7B,qDAA2B;AAC3B,qEAA2C"}