@zakodium/adonis-mongodb 0.20.2 → 0.21.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/lib/adonis-typings/odm.d.ts +7 -7
- package/lib/adonis-typings/transaction.d.ts +4 -5
- package/lib/commands/MongodbMigrate.js +2 -2
- package/lib/commands/util/transformMigrations.js +2 -1
- package/lib/src/Auth/MongodbModelAuthProvider.js +1 -1
- package/lib/src/Database/Connection.d.ts +2 -2
- package/lib/src/Database/Connection.js +11 -16
- package/lib/src/Database/TransactionEventEmitter.d.ts +2 -3
- package/lib/src/Database/TransactionEventEmitter.js +1 -1
- package/lib/src/Migration.js +11 -19
- package/lib/src/Model/Model.d.ts +8 -8
- package/lib/src/Model/Model.js +4 -3
- package/package.json +12 -12
- package/src/Auth/MongodbModelAuthProvider.ts +7 -7
- package/src/Database/Connection.ts +15 -20
- package/src/Database/TransactionEventEmitter.ts +2 -4
- package/src/Migration.ts +15 -23
- package/src/Model/Model.ts +19 -39
|
@@ -77,31 +77,31 @@ declare module '@ioc:Zakodium/Mongodb/Odm' {
|
|
|
77
77
|
/**
|
|
78
78
|
* Find a document by its id.
|
|
79
79
|
*/
|
|
80
|
-
find<ModelType extends MongodbModel<IdType>>(this: ModelType, id: InstanceType<ModelType>['_id'], options?: ModelAdapterOptions<FindOptions
|
|
80
|
+
find<ModelType extends MongodbModel<IdType>>(this: ModelType, id: InstanceType<ModelType>['_id'], options?: ModelAdapterOptions<FindOptions>): Promise<InstanceType<ModelType> | null>;
|
|
81
81
|
/**
|
|
82
82
|
* Find a document by its id. Throw if no document is found.
|
|
83
83
|
*/
|
|
84
|
-
findOrFail<ModelType extends MongodbModel<IdType>>(this: ModelType, id: InstanceType<ModelType>['_id'], options?: ModelAdapterOptions<FindOptions
|
|
84
|
+
findOrFail<ModelType extends MongodbModel<IdType>>(this: ModelType, id: InstanceType<ModelType>['_id'], options?: ModelAdapterOptions<FindOptions>): Promise<InstanceType<ModelType>>;
|
|
85
85
|
/**
|
|
86
86
|
* Find a document using a key-value pair.
|
|
87
87
|
*/
|
|
88
|
-
findBy<ModelType extends MongodbModel<IdType>>(this: ModelType, key: string, value: unknown, options?: ModelAdapterOptions<FindOptions
|
|
88
|
+
findBy<ModelType extends MongodbModel<IdType>>(this: ModelType, key: string, value: unknown, options?: ModelAdapterOptions<FindOptions>): Promise<InstanceType<ModelType> | null>;
|
|
89
89
|
/**
|
|
90
90
|
* Find a document using a key-value pair. Throw if no document is found.
|
|
91
91
|
*/
|
|
92
|
-
findByOrFail<ModelType extends MongodbModel<IdType>>(this: ModelType, key: string, value: unknown, options?: ModelAdapterOptions<FindOptions
|
|
92
|
+
findByOrFail<ModelType extends MongodbModel<IdType>>(this: ModelType, key: string, value: unknown, options?: ModelAdapterOptions<FindOptions>): Promise<InstanceType<ModelType>>;
|
|
93
93
|
/**
|
|
94
94
|
* Find many documents by their ids.
|
|
95
95
|
*/
|
|
96
|
-
findMany<ModelType extends MongodbModel<IdType>>(this: ModelType, ids: Array<InstanceType<ModelType>['_id']>, options?: ModelAdapterOptions<FindOptions
|
|
96
|
+
findMany<ModelType extends MongodbModel<IdType>>(this: ModelType, ids: Array<InstanceType<ModelType>['_id']>, options?: ModelAdapterOptions<FindOptions>): Promise<Array<InstanceType<ModelType>>>;
|
|
97
97
|
/**
|
|
98
98
|
* Fetch all documents in the collection.
|
|
99
99
|
*/
|
|
100
|
-
all<ModelType extends MongodbModel<IdType>>(this: ModelType, options?: ModelAdapterOptions<FindOptions
|
|
100
|
+
all<ModelType extends MongodbModel<IdType>>(this: ModelType, options?: ModelAdapterOptions<FindOptions>): Promise<Array<InstanceType<ModelType>>>;
|
|
101
101
|
/**
|
|
102
102
|
* Returns a query
|
|
103
103
|
*/
|
|
104
|
-
query<ModelType extends MongodbModel<IdType>>(this: ModelType, filter?: Filter<ModelAttributes<InstanceType<ModelType>>>, options?: ModelAdapterOptions<Omit<FindOptions
|
|
104
|
+
query<ModelType extends MongodbModel<IdType>>(this: ModelType, filter?: Filter<ModelAttributes<InstanceType<ModelType>>>, options?: ModelAdapterOptions<Omit<FindOptions, ForbiddenQueryOptions>>): QueryContract<InstanceType<ModelType>>;
|
|
105
105
|
/**
|
|
106
106
|
* Get the collection object from the MongoDB driver.
|
|
107
107
|
*/
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
declare module '@ioc:Zakodium/Mongodb/Database/Transaction' {
|
|
2
2
|
import { EventEmitter } from 'node:events';
|
|
3
|
-
import type { ClientSession, Db } from 'mongodb';
|
|
4
3
|
interface TransactionEvents {
|
|
5
4
|
/**
|
|
6
5
|
* The transaction commits successfully.
|
|
7
6
|
*
|
|
8
7
|
* @example
|
|
9
|
-
* Consider you have a collection of items storing metadata of
|
|
10
|
-
* Consider when you delete an item from this collection, you must delete associated file.
|
|
8
|
+
* Consider you have a collection of items storing metadata of files from the filesystem.
|
|
9
|
+
* Consider when you delete an item from this collection, you must delete the associated file.
|
|
11
10
|
*
|
|
12
11
|
* ```ts
|
|
13
12
|
* const item = await connection.transaction((session, db, tx) => {
|
|
@@ -25,14 +24,14 @@ declare module '@ioc:Zakodium/Mongodb/Database/Transaction' {
|
|
|
25
24
|
* })
|
|
26
25
|
* ```
|
|
27
26
|
*/
|
|
28
|
-
commit: [
|
|
27
|
+
commit: [];
|
|
29
28
|
/**
|
|
30
29
|
* The transaction aborted (optional error).
|
|
31
30
|
* Two cases of abortion are possible:
|
|
32
31
|
* - if from `session.abortTransaction()`, no error
|
|
33
32
|
* - if from a throw, error is set
|
|
34
33
|
*/
|
|
35
|
-
abort: [
|
|
34
|
+
abort: [error?: Error];
|
|
36
35
|
}
|
|
37
36
|
class TransactionEventEmitter extends EventEmitter<TransactionEvents> {
|
|
38
37
|
}
|
|
@@ -77,7 +77,7 @@ class MongodbMigrate extends MigrationCommand_1.default {
|
|
|
77
77
|
// Get the next incremental batch value
|
|
78
78
|
const value = await migrationColl
|
|
79
79
|
.find({})
|
|
80
|
-
.sort({ batch: -1 })
|
|
80
|
+
.sort({ batch: -1 }) // eslint-disable-line unicorn/no-array-sort
|
|
81
81
|
.project({ batch: 1 })
|
|
82
82
|
.limit(1)
|
|
83
83
|
.toArray();
|
|
@@ -168,4 +168,4 @@ __decorate([
|
|
|
168
168
|
__metadata("design:paramtypes", [Object]),
|
|
169
169
|
__metadata("design:returntype", Promise)
|
|
170
170
|
], MongodbMigrate.prototype, "run", null);
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uZ29kYk1pZ3JhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jb21tYW5kcy9Nb25nb2RiTWlncmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdFQUF5RDtBQUN6RCxxQ0FBbUM7QUFLbkMsNEVBR2lDO0FBY2pDLE1BQXFCLGNBQWUsU0FBUSwwQkFBZ0I7SUFDbkQsTUFBTSxDQUFDLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQztJQUM3QyxNQUFNLENBQUMsV0FBVyxHQUFHLDRCQUE0QixDQUFDO0lBQ2xELE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDdkIsT0FBTyxFQUFFLElBQUk7S0FDZCxDQUFDO0lBRU0sS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQW9CO1FBQ2xELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9ELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxVQUFVLENBQUMsVUFBVSxDQUNuRCw4Q0FBMkIsQ0FDNUIsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHLE1BQU0sVUFBVSxDQUFDLFVBQVUsQ0FDL0MsMENBQXVCLENBQ3hCLENBQUM7UUFFRixNQUFNLElBQUksR0FBRyxNQUFNLGlCQUFpQixDQUFDLFNBQVMsQ0FDNUM7WUFDRSxHQUFHLEVBQUUsZ0JBQWdCO1NBQ3RCLEVBQ0Q7WUFDRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1NBQ3hCLEVBQ0Q7WUFDRSxNQUFNLEVBQUUsSUFBSTtTQUNiLENBQ0YsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxDQUFDLEVB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
|
|
@@ -10,6 +10,7 @@ function transformMigrations(rawMigrations, logger) {
|
|
|
10
10
|
// Separate name and file fields
|
|
11
11
|
const migrations = rawMigrations
|
|
12
12
|
.flat()
|
|
13
|
+
// eslint-disable-next-line unicorn/no-array-sort
|
|
13
14
|
.sort((a, b) => node_path_1.default
|
|
14
15
|
.basename(a, node_path_1.default.extname(a))
|
|
15
16
|
.localeCompare(node_path_1.default.basename(b, node_path_1.default.extname(a))))
|
|
@@ -41,4 +42,4 @@ function transformMigrations(rawMigrations, logger) {
|
|
|
41
42
|
}
|
|
42
43
|
return migrations;
|
|
43
44
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtTWlncmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbW1hbmRzL3V0aWwvdHJhbnNmb3JtTWlncmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVdBLHNDQW9EQztBQS9ERCwwREFBNkI7QUFJN0IsTUFBTSxjQUFjLEdBQUcsd0JBQXdCLENBQUM7QUFPaEQsU0FBd0IsbUJBQW1CLENBQ3pDLGFBQXlCLEVBQ3pCLE1BQWU7SUFFZixnQ0FBZ0M7SUFDaEMsTUFBTSxVQUFVLEdBQTJCLGFBQWE7U0FDckQsSUFBSSxFQUFFO1FBQ1AsaURBQWlEO1NBQ2hELElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNiLG1CQUFJO1NBQ0QsUUFBUSxDQUFDLENBQUMsRUFBRSxtQkFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QixhQUFhLENBQUMsbUJBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLG1CQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDcEQ7U0FDQSxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkIsSUFBSSxFQUFFLG1CQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxtQkFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvRCxJQUFJLEVBQUUsYUFBYTtLQUNwQixDQUFDLENBQUMsQ0FBQztJQUVOLDZCQUE2QjtJQUM3QixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDdkIsS0FBSyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbkQsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxDQUFDLEtBQUssQ0FDViwyQkFBMkIsSUFBSSxvQ0FBb0MsQ0FDcEUsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FDeEIsVUFBVSxDQUFDLE1BQU0sQ0FDZixDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDbEIsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQ3hFLENBQ0YsQ0FBQztJQUNGLElBQUksVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksS0FBSyxDQUNiLHlDQUF5QyxDQUFDLEdBQUcsVUFBVSxDQUFDO2FBQ3JELEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQzthQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIn0=
|
|
@@ -100,4 +100,4 @@ class MongodbModelAuthUserProvider {
|
|
|
100
100
|
function getMongodbModelAuthProvider(auth, _mapping, config) {
|
|
101
101
|
return new MongodbModelAuthUserProvider(auth, config);
|
|
102
102
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uZ29kYk1vZGVsQXV0aFByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0F1dGgvTW9uZ29kYk1vZGVsQXV0aFByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBc0pBLGtFQU1DO0FBNUpELDJDQUE4QztBQUM5QyxxQ0FBbUM7QUFjbkMsTUFBTSw0QkFBNEI7SUFNdkI7SUFDQztJQUNBO0lBQ0E7SUFOVjtJQUNFLGdGQUFnRjtJQUNoRiw4REFBOEQ7SUFDdkQsSUFBUyxFQUNSLGFBQXFCLEVBQ3JCLGlCQUFtRCxFQUNuRCxJQUF3QjtRQUh6QixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ1Isa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQztRQUNuRCxTQUFJLEdBQUosSUFBSSxDQUFvQjtJQUMvQixDQUFDO0lBRUcsS0FBSztRQUNWLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDMUMsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGNBQWMsQ0FBQyxhQUFxQjtRQUN6QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUNiLHlFQUF5RSxDQUMxRSxDQUFDO1FB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
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ClientSession, Collection, Db, Document, TransactionOptions } from 'mongodb';
|
|
3
3
|
import { MongoClient } from 'mongodb';
|
|
4
4
|
import type { LoggerContract } from '@ioc:Adonis/Core/Logger';
|
|
5
|
-
import type {
|
|
5
|
+
import type { ConnectionContract, MongodbConnectionConfig } from '@ioc:Zakodium/Mongodb/Database';
|
|
6
6
|
import { TransactionEventEmitter } from './TransactionEventEmitter';
|
|
7
7
|
export declare interface Connection {
|
|
8
8
|
on(event: 'connect', callback: (connection: ConnectionContract) => void): this;
|
|
@@ -5,11 +5,10 @@ const node_events_1 = require("node:events");
|
|
|
5
5
|
const utils_1 = require("@poppinss/utils");
|
|
6
6
|
const mongodb_1 = require("mongodb");
|
|
7
7
|
const TransactionEventEmitter_1 = require("./TransactionEventEmitter");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
})(ConnectionStatus || (ConnectionStatus = {}));
|
|
8
|
+
const ConnectionStatus = {
|
|
9
|
+
CONNECTED: 'CONNECTED',
|
|
10
|
+
DISCONNECTED: 'DISCONNECTED',
|
|
11
|
+
};
|
|
13
12
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
|
|
14
13
|
class Connection extends node_events_1.EventEmitter {
|
|
15
14
|
client;
|
|
@@ -87,24 +86,20 @@ class Connection extends node_events_1.EventEmitter {
|
|
|
87
86
|
return handler(session, db, emitter);
|
|
88
87
|
}, options))
|
|
89
88
|
.then((result) => {
|
|
90
|
-
//
|
|
91
|
-
//
|
|
92
|
-
//
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
const isAborted =
|
|
96
|
-
// https://github.com/mongodb/node-mongodb-native/blob/v6.7.0/src/transactions.ts#L11
|
|
97
|
-
Reflect.get(session.transaction, 'state') === 'TRANSACTION_ABORTED';
|
|
98
|
-
emitter.emit(isCommitted && isAborted ? 'abort' : 'commit', session, db);
|
|
89
|
+
// Unfortunately, aborting a transaction with `session.abortTransaction` cannot be
|
|
90
|
+
// detected with the public API, as it is considered a committed state.
|
|
91
|
+
// https://github.com/mongodb/node-mongodb-native/blob/v7.0.0/src/transactions.ts#L53-L57
|
|
92
|
+
const isAborted = Reflect.get(session, 'transaction').state === 'TRANSACTION_ABORTED';
|
|
93
|
+
emitter.emit(isAborted ? 'abort' : 'commit');
|
|
99
94
|
return result;
|
|
100
95
|
// If an error occurs in this scope,
|
|
101
96
|
// it will not be caught by this then's error handler, but by the caller's catch.
|
|
102
97
|
// This is what we want, as an error in this scope should not trigger the abort event.
|
|
103
98
|
}, (error) => {
|
|
104
|
-
emitter.emit('abort',
|
|
99
|
+
emitter.emit('abort', error);
|
|
105
100
|
throw error;
|
|
106
101
|
});
|
|
107
102
|
}
|
|
108
103
|
}
|
|
109
104
|
exports.Connection = Connection;
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9EYXRhYmFzZS9Db25uZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUEyQztBQUUzQywyQ0FBNEM7QUFRNUMscUNBQXNDO0FBUXRDLHVFQUFvRTtBQUVwRSxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLFNBQVMsRUFBRSxXQUFXO0lBQ3RCLFlBQVksRUFBRSxjQUFjO0NBQ3BCLENBQUM7QUE0QlgsNEVBQTRFO0FBQzVFLE1BQWEsVUFBVyxTQUFRLDBCQUFZO0lBQzFCLE1BQU0sQ0FBYztJQUNwQixJQUFJLENBQVM7SUFDdEIsS0FBSyxDQUFVO0lBQ04sTUFBTSxDQUEwQjtJQUV4QyxNQUFNLENBQWlCO0lBQ3ZCLE1BQU0sQ0FBbUI7SUFDekIsY0FBYyxDQUFxQjtJQUUzQyxZQUNFLElBQVksRUFDWixNQUErQixFQUMvQixNQUFzQjtRQUV0QixLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxxQkFBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzdDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhO1NBQzdCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFTyxLQUFLLENBQUMsU0FBUztRQUNyQixLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1B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
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
|
-
import type { ClientSession, Db } from 'mongodb';
|
|
3
2
|
export interface TransactionEvents {
|
|
4
|
-
commit: [
|
|
5
|
-
abort: [
|
|
3
|
+
commit: [];
|
|
4
|
+
abort: [error?: Error];
|
|
6
5
|
}
|
|
7
6
|
export declare class TransactionEventEmitter extends EventEmitter<TransactionEvents> {
|
|
8
7
|
}
|
|
@@ -5,4 +5,4 @@ const node_events_1 = require("node:events");
|
|
|
5
5
|
class TransactionEventEmitter extends node_events_1.EventEmitter {
|
|
6
6
|
}
|
|
7
7
|
exports.TransactionEventEmitter = TransactionEventEmitter;
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25FdmVudEVtaXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvRGF0YWJhc2UvVHJhbnNhY3Rpb25FdmVudEVtaXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTJDO0FBTzNDLE1BQWEsdUJBQXdCLFNBQVEsMEJBQStCO0NBQUc7QUFBL0UsMERBQStFIn0=
|
package/lib/src/Migration.js
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = createMigration;
|
|
4
|
-
var MigrationType;
|
|
5
|
-
(function (MigrationType) {
|
|
6
|
-
MigrationType["DropCollection"] = "DropCollection";
|
|
7
|
-
MigrationType["CreateCollection"] = "CreateCollection";
|
|
8
|
-
MigrationType["DropIndex"] = "DropIndex";
|
|
9
|
-
MigrationType["CreateIndex"] = "CreateIndex";
|
|
10
|
-
MigrationType["Custom"] = "Custom";
|
|
11
|
-
})(MigrationType || (MigrationType = {}));
|
|
12
4
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
5
|
function createMigration(Database) {
|
|
14
6
|
class Migration {
|
|
@@ -27,19 +19,19 @@ function createMigration(Database) {
|
|
|
27
19
|
}
|
|
28
20
|
dropCollection(collectionName) {
|
|
29
21
|
this.$operations.push({
|
|
30
|
-
type:
|
|
22
|
+
type: 'DropCollection',
|
|
31
23
|
collectionName,
|
|
32
24
|
});
|
|
33
25
|
}
|
|
34
26
|
createCollection(collectionName) {
|
|
35
27
|
this.$operations.push({
|
|
36
|
-
type:
|
|
28
|
+
type: 'CreateCollection',
|
|
37
29
|
collectionName,
|
|
38
30
|
});
|
|
39
31
|
}
|
|
40
32
|
dropIndex(collectionName, indexName, options) {
|
|
41
33
|
this.$operations.push({
|
|
42
|
-
type:
|
|
34
|
+
type: 'DropIndex',
|
|
43
35
|
collectionName,
|
|
44
36
|
indexName,
|
|
45
37
|
options,
|
|
@@ -47,7 +39,7 @@ function createMigration(Database) {
|
|
|
47
39
|
}
|
|
48
40
|
createIndex(collectionName, index, options) {
|
|
49
41
|
this.$operations.push({
|
|
50
|
-
type:
|
|
42
|
+
type: 'CreateIndex',
|
|
51
43
|
collectionName,
|
|
52
44
|
index,
|
|
53
45
|
options,
|
|
@@ -55,7 +47,7 @@ function createMigration(Database) {
|
|
|
55
47
|
}
|
|
56
48
|
defer(callback) {
|
|
57
49
|
this.$operations.push({
|
|
58
|
-
type:
|
|
50
|
+
type: 'Custom',
|
|
59
51
|
callback,
|
|
60
52
|
});
|
|
61
53
|
}
|
|
@@ -128,18 +120,18 @@ function createMigration(Database) {
|
|
|
128
120
|
return Migration;
|
|
129
121
|
}
|
|
130
122
|
function isDropCollection(op) {
|
|
131
|
-
return op.type ===
|
|
123
|
+
return op.type === 'DropCollection';
|
|
132
124
|
}
|
|
133
125
|
function isCreateCollection(op) {
|
|
134
|
-
return op.type ===
|
|
126
|
+
return op.type === 'CreateCollection';
|
|
135
127
|
}
|
|
136
128
|
function isCreateIndex(op) {
|
|
137
|
-
return op.type ===
|
|
129
|
+
return op.type === 'CreateIndex';
|
|
138
130
|
}
|
|
139
131
|
function isDropIndex(op) {
|
|
140
|
-
return op.type ===
|
|
132
|
+
return op.type === 'DropIndex';
|
|
141
133
|
}
|
|
142
134
|
function isCustom(op) {
|
|
143
|
-
return op.type ===
|
|
135
|
+
return op.type === 'Custom';
|
|
144
136
|
}
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL01pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1EQSxrQ0ErSUM7QUFoSkQsOERBQThEO0FBQzlELFNBQXdCLGVBQWUsQ0FBQyxRQUEwQjtJQUNoRSxNQUFlLFNBQVM7UUFDZCxXQUFXLEdBQXlCLEVBQUUsQ0FBQztRQUN2QyxXQUFXLENBQXFCO1FBQ2hDLE9BQU8sQ0FBUztRQUNoQixlQUFlLENBQVc7UUFFbEMsWUFBbUIsVUFBOEIsRUFBRSxNQUFjO1lBQy9ELElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN4QixDQUFDO1FBRU0saUJBQWlCLENBQUMsZUFBeUI7WUFDaEQsS0FBSyxNQUFNLGNBQWMsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7UUFDSCxDQUFDO1FBRU0sY0FBYyxDQUFDLGNBQXNCO1lBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixjQUFjO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVNLGdCQUFnQixDQUFDLGNBQXNCO1lBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixjQUFjO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVNLFNBQVMsQ0FDZCxjQUFzQixFQUN0QixTQUFpQixFQUNqQixPQUE0QjtZQUU1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDcEIsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLGNBQWM7Z0JBQ2QsU0FBUztnQkFDVCxPQUFPO2FB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
|
package/lib/src/Model/Model.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ declare class Query<ModelType extends typeof BaseModel> implements QueryContract
|
|
|
8
8
|
private localCustomSort;
|
|
9
9
|
private localOptions;
|
|
10
10
|
private getDriverOptions;
|
|
11
|
-
constructor(filter: Filter<ModelAttributes<InstanceType<ModelType>>>, options: ModelAdapterOptions<Omit<FindOptions
|
|
11
|
+
constructor(filter: Filter<ModelAttributes<InstanceType<ModelType>>>, options: ModelAdapterOptions<Omit<FindOptions, ForbiddenQueryOptions>> | undefined, ModelConstructor: ModelType);
|
|
12
12
|
sort(sort: QuerySortObject): this;
|
|
13
13
|
sortBy(field: string, direction?: SortDirection): this;
|
|
14
14
|
skip(skip: number): this;
|
|
@@ -73,13 +73,13 @@ export declare class BaseModel {
|
|
|
73
73
|
static count<ModelType extends typeof BaseModel>(this: ModelType, filter: Filter<ModelAttributes<InstanceType<ModelType>>>, options?: ModelAdapterOptions<CountDocumentsOptions>): Promise<number>;
|
|
74
74
|
static create<ModelType extends typeof BaseModel>(this: ModelType, value: Partial<ModelAttributes<InstanceType<ModelType>>>, options?: ModelAdapterOptions<InsertOneOptions>): Promise<InstanceType<ModelType>>;
|
|
75
75
|
static createMany<ModelType extends typeof BaseModel>(this: ModelType, values: Array<Partial<ModelAttributes<InstanceType<ModelType>>>>, options?: ModelAdapterOptions<BulkWriteOptions>): Promise<Array<InstanceType<ModelType>>>;
|
|
76
|
-
static find<ModelType extends typeof BaseModel>(this: ModelType, id: InstanceType<ModelType>['_id'], options?: ModelAdapterOptions<FindOptions
|
|
77
|
-
static findOrFail<ModelType extends typeof BaseModel>(this: ModelType, id: InstanceType<ModelType>['_id'], options?: ModelAdapterOptions<FindOptions
|
|
78
|
-
static findBy<ModelType extends typeof BaseModel>(this: ModelType, key: string, value: unknown, options?: ModelAdapterOptions<FindOptions
|
|
79
|
-
static findByOrFail<ModelType extends typeof BaseModel>(this: ModelType, key: string, value: unknown, options?: ModelAdapterOptions<FindOptions
|
|
80
|
-
static findMany<ModelType extends typeof BaseModel>(this: ModelType, ids: Array<InstanceType<ModelType>['_id']>, options?: ModelAdapterOptions<FindOptions
|
|
81
|
-
static all<ModelType extends typeof BaseModel>(this: ModelType, options?: ModelAdapterOptions<FindOptions
|
|
82
|
-
static query<ModelType extends typeof BaseModel>(this: ModelType, filter?: Filter<ModelAttributes<InstanceType<ModelType>>>, options?: ModelAdapterOptions<Omit<FindOptions
|
|
76
|
+
static find<ModelType extends typeof BaseModel>(this: ModelType, id: InstanceType<ModelType>['_id'], options?: ModelAdapterOptions<FindOptions>): Promise<InstanceType<ModelType> | null>;
|
|
77
|
+
static findOrFail<ModelType extends typeof BaseModel>(this: ModelType, id: InstanceType<ModelType>['_id'], options?: ModelAdapterOptions<FindOptions>): Promise<InstanceType<ModelType>>;
|
|
78
|
+
static findBy<ModelType extends typeof BaseModel>(this: ModelType, key: string, value: unknown, options?: ModelAdapterOptions<FindOptions>): Promise<InstanceType<ModelType> | null>;
|
|
79
|
+
static findByOrFail<ModelType extends typeof BaseModel>(this: ModelType, key: string, value: unknown, options?: ModelAdapterOptions<FindOptions>): Promise<InstanceType<ModelType>>;
|
|
80
|
+
static findMany<ModelType extends typeof BaseModel>(this: ModelType, ids: Array<InstanceType<ModelType>['_id']>, options?: ModelAdapterOptions<FindOptions>): Promise<Array<InstanceType<ModelType>>>;
|
|
81
|
+
static all<ModelType extends typeof BaseModel>(this: ModelType, options?: ModelAdapterOptions<FindOptions>): Promise<Array<InstanceType<ModelType>>>;
|
|
82
|
+
static query<ModelType extends typeof BaseModel>(this: ModelType, filter?: Filter<ModelAttributes<InstanceType<ModelType>>>, options?: ModelAdapterOptions<Omit<FindOptions, ForbiddenQueryOptions>>): Query<ModelType>;
|
|
83
83
|
static getCollection<ModelType extends typeof BaseModel>(this: ModelType, connection?: string | undefined): Promise<Collection<ModelAttributes<InstanceType<ModelType>>>>;
|
|
84
84
|
get $isNew(): boolean;
|
|
85
85
|
get $dirty(): Partial<ModelAttributes<this>>;
|
package/lib/src/Model/Model.js
CHANGED
|
@@ -61,6 +61,7 @@ class Query {
|
|
|
61
61
|
return this;
|
|
62
62
|
}
|
|
63
63
|
sortBy(field, direction = 'ascending') {
|
|
64
|
+
// eslint-disable-next-line unicorn/no-array-sort
|
|
64
65
|
return this.sort({ [field]: direction });
|
|
65
66
|
}
|
|
66
67
|
skip(skip) {
|
|
@@ -365,7 +366,7 @@ class BaseModel {
|
|
|
365
366
|
return new Query(filter, options, this);
|
|
366
367
|
}
|
|
367
368
|
static async getCollection(connection = this.connection) {
|
|
368
|
-
|
|
369
|
+
node_assert_1.default.ok(this.$database, 'Model should only be accessed from IoC container');
|
|
369
370
|
const connectionInstance = this.$database.connection(connection);
|
|
370
371
|
return connectionInstance.collection(this.collectionName);
|
|
371
372
|
}
|
|
@@ -538,7 +539,7 @@ class BaseAutoIncrementModel extends BaseModel {
|
|
|
538
539
|
const doc = await counterCollection.findOneAndUpdate(
|
|
539
540
|
// @ts-expect-error Unavoidable error, as _id is unknown here.
|
|
540
541
|
{ _id: this.constructor.collectionName }, { $inc: { count: 1 } }, { ...driverOptions, upsert: true, returnDocument: 'after' });
|
|
541
|
-
|
|
542
|
+
node_assert_1.default.ok(doc, 'upsert should always create a document');
|
|
542
543
|
toSet._id = doc.count;
|
|
543
544
|
// @ts-expect-error Unavoidable error, as _id is unknown here.
|
|
544
545
|
await collection.insertOne(toSet, driverOptions);
|
|
@@ -555,4 +556,4 @@ class BaseAutoIncrementModel extends BaseModel {
|
|
|
555
556
|
}
|
|
556
557
|
}
|
|
557
558
|
exports.BaseAutoIncrementModel = BaseAutoIncrementModel;
|
|
558
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTW9kZWwvTW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOERBQWlDO0FBRWpDLDJDQUFrRTtBQUNsRSxtQ0FBK0Q7QUFnQi9ELDBEQUFrQztBQWdCbEMsaURBQThDO0FBRTlDLFNBQVMsa0JBQWtCLENBRXpCLE9BQStDO0lBQy9DLElBQUksQ0FBQyxPQUFPO1FBQUUsT0FBTyxFQUFzQixDQUFDO0lBQzVDLE9BQU87UUFDTCxHQUFHLE9BQU8sQ0FBQyxhQUFhO1FBQ3hCLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTTtLQUNKLENBQUM7QUFDeEIsQ0FBQztBQVFELE1BQU0scUJBQXFCLEdBQTRCO0lBQ3JELE1BQU07SUFDTixNQUFNO0lBQ04sT0FBTztJQUNQLFNBQVM7Q0FDVixDQUFDO0FBRUYsTUFBTSxLQUFLO0lBaUJDO0lBQ0E7SUFTQTtJQXhCRixlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLFlBQVksR0FBc0I7UUFDeEMsSUFBSSxFQUFFO1lBQ0osR0FBRyxFQUFFLFlBQVk7U0FDbEI7S0FDRixDQUFDO0lBRU0sZ0JBQWdCO1FBR3RCLE9BQU8sRUFBRSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBRUQsWUFDVSxNQUF3RCxFQUN4RCxPQU9LO0lBQ2IsZ0VBQWdFO0lBQ3hELGdCQUEyQjtRQVYzQixXQUFNLEdBQU4sTUFBTSxDQUFrRDtRQUN4RCxZQUFPLEdBQVAsT0FBTyxDQU9GO1FBRUwscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFXO1FBRW5DLElBQUksT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDO1lBQzNCLEtBQUssTUFBTSxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFD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
|
|
559
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTW9kZWwvTW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOERBQWlDO0FBRWpDLDJDQUFrRTtBQUNsRSxtQ0FBK0Q7QUFnQi9ELDBEQUFrQztBQWdCbEMsaURBQThDO0FBRTlDLFNBQVMsa0JBQWtCLENBRXpCLE9BQStDO0lBQy9DLElBQUksQ0FBQyxPQUFPO1FBQUUsT0FBTyxFQUFzQixDQUFDO0lBQzVDLE9BQU87UUFDTCxHQUFHLE9BQU8sQ0FBQyxhQUFhO1FBQ3hCLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTTtLQUNKLENBQUM7QUFDeEIsQ0FBQztBQVFELE1BQU0scUJBQXFCLEdBQTRCO0lBQ3JELE1BQU07SUFDTixNQUFNO0lBQ04sT0FBTztJQUNQLFNBQVM7Q0FDVixDQUFDO0FBRUYsTUFBTSxLQUFLO0lBZUM7SUFDQTtJQUlBO0lBakJGLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDeEIsWUFBWSxHQUFzQjtRQUN4QyxJQUFJLEVBQUU7WUFDSixHQUFHLEVBQUUsWUFBWTtTQUNsQjtLQUNGLENBQUM7SUFFTSxnQkFBZ0I7UUFDdEIsT0FBTyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxZQUNVLE1BQXdELEVBQ3hELE9BRUs7SUFDYixnRUFBZ0U7SUFDeEQsZ0JBQTJCO1FBTDNCLFdBQU0sR0FBTixNQUFNLENBQWtEO1FBQ3hELFlBQU8sR0FBUCxPQUFPLENBRUY7UUFFTCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVc7UUFFbkMsSUFBSSxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDM0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUMs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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zakodium/adonis-mongodb",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"description": "MongoDB provider for AdonisJs",
|
|
5
5
|
"main": "./lib/providers/MongodbProvider.js",
|
|
6
6
|
"types": "./lib/adonis-typings/index.d.ts",
|
|
@@ -63,24 +63,24 @@
|
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@adonisjs/auth": "^8.2.3",
|
|
65
65
|
"@adonisjs/core": "^5.9.0",
|
|
66
|
-
"@adonisjs/logger": "^4.1.
|
|
66
|
+
"@adonisjs/logger": "^4.1.6",
|
|
67
67
|
"@poppinss/cliui": "^3.0.5",
|
|
68
|
-
"@types/jest": "^
|
|
69
|
-
"@types/lodash": "^4.17.
|
|
68
|
+
"@types/jest": "^30.0.0",
|
|
69
|
+
"@types/lodash": "^4.17.21",
|
|
70
70
|
"@types/pluralize": "0.0.29",
|
|
71
|
-
"eslint": "^9.
|
|
72
|
-
"eslint-config-zakodium": "^
|
|
73
|
-
"jest": "^
|
|
74
|
-
"prettier": "^3.4
|
|
75
|
-
"rimraf": "^6.
|
|
76
|
-
"ts-jest": "^29.
|
|
77
|
-
"typescript": "^5.
|
|
71
|
+
"eslint": "^9.39.2",
|
|
72
|
+
"eslint-config-zakodium": "^19.0.0",
|
|
73
|
+
"jest": "^30.2.0",
|
|
74
|
+
"prettier": "^3.7.4",
|
|
75
|
+
"rimraf": "^6.1.2",
|
|
76
|
+
"ts-jest": "^29.4.6",
|
|
77
|
+
"typescript": "^5.9.3"
|
|
78
78
|
},
|
|
79
79
|
"dependencies": {
|
|
80
80
|
"@poppinss/utils": "^5.0.0",
|
|
81
81
|
"cli-table3": "^0.6.5",
|
|
82
82
|
"lodash": "^4.17.21",
|
|
83
|
-
"mongodb": "^
|
|
83
|
+
"mongodb": "^7.0.0",
|
|
84
84
|
"pluralize": "^8.0.0"
|
|
85
85
|
}
|
|
86
86
|
}
|
|
@@ -13,9 +13,9 @@ import type {
|
|
|
13
13
|
MongodbModelAuthProviderConfig,
|
|
14
14
|
} from '@ioc:Zakodium/Mongodb/Odm';
|
|
15
15
|
|
|
16
|
-
class MongodbModelAuthProviderUser
|
|
17
|
-
|
|
18
|
-
{
|
|
16
|
+
class MongodbModelAuthProviderUser implements ProviderUserContract<
|
|
17
|
+
MongodbDocument<unknown>
|
|
18
|
+
> {
|
|
19
19
|
public constructor(
|
|
20
20
|
// `this.user` can be any Model, so we use `any` to avoid indexing issues later.
|
|
21
21
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -55,9 +55,9 @@ class MongodbModelAuthProviderUser
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
class MongodbModelAuthUserProvider
|
|
59
|
-
|
|
60
|
-
{
|
|
58
|
+
class MongodbModelAuthUserProvider implements UserProviderContract<
|
|
59
|
+
MongodbDocument<unknown>
|
|
60
|
+
> {
|
|
61
61
|
private uids = ['email'];
|
|
62
62
|
private identifierKey = '_id';
|
|
63
63
|
private identifierKeyType: 'objectid' | 'string' | 'number' = 'objectid';
|
|
@@ -114,7 +114,7 @@ class MongodbModelAuthUserProvider
|
|
|
114
114
|
const Model = await this.getModel();
|
|
115
115
|
const user = await Model.findByOrFail(
|
|
116
116
|
this.identifierKey,
|
|
117
|
-
this.identifierKeyType === 'objectid' ? new ObjectId(id) : id,
|
|
117
|
+
this.identifierKeyType === 'objectid' ? new ObjectId(id as string) : id,
|
|
118
118
|
);
|
|
119
119
|
return new MongodbModelAuthProviderUser(
|
|
120
120
|
user,
|
|
@@ -2,9 +2,9 @@ import { EventEmitter } from 'node:events';
|
|
|
2
2
|
|
|
3
3
|
import { Exception } from '@poppinss/utils';
|
|
4
4
|
import type {
|
|
5
|
-
Db,
|
|
6
|
-
Collection,
|
|
7
5
|
ClientSession,
|
|
6
|
+
Collection,
|
|
7
|
+
Db,
|
|
8
8
|
Document,
|
|
9
9
|
TransactionOptions,
|
|
10
10
|
} from 'mongodb';
|
|
@@ -12,16 +12,18 @@ import { MongoClient } from 'mongodb';
|
|
|
12
12
|
|
|
13
13
|
import type { LoggerContract } from '@ioc:Adonis/Core/Logger';
|
|
14
14
|
import type {
|
|
15
|
-
MongodbConnectionConfig,
|
|
16
15
|
ConnectionContract,
|
|
16
|
+
MongodbConnectionConfig,
|
|
17
17
|
} from '@ioc:Zakodium/Mongodb/Database';
|
|
18
18
|
|
|
19
19
|
import { TransactionEventEmitter } from './TransactionEventEmitter';
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
CONNECTED
|
|
23
|
-
DISCONNECTED
|
|
24
|
-
}
|
|
21
|
+
const ConnectionStatus = {
|
|
22
|
+
CONNECTED: 'CONNECTED',
|
|
23
|
+
DISCONNECTED: 'DISCONNECTED',
|
|
24
|
+
} as const;
|
|
25
|
+
type ConnectionStatus =
|
|
26
|
+
(typeof ConnectionStatus)[keyof typeof ConnectionStatus];
|
|
25
27
|
|
|
26
28
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
|
|
27
29
|
export declare interface Connection {
|
|
@@ -154,20 +156,13 @@ export class Connection extends EventEmitter implements ConnectionContract {
|
|
|
154
156
|
)
|
|
155
157
|
.then(
|
|
156
158
|
(result) => {
|
|
157
|
-
//
|
|
158
|
-
//
|
|
159
|
-
//
|
|
160
|
-
// because it's true if transaction commits or aborts.
|
|
161
|
-
const isCommitted = session.transaction.isCommitted;
|
|
159
|
+
// Unfortunately, aborting a transaction with `session.abortTransaction` cannot be
|
|
160
|
+
// detected with the public API, as it is considered a committed state.
|
|
161
|
+
// https://github.com/mongodb/node-mongodb-native/blob/v7.0.0/src/transactions.ts#L53-L57
|
|
162
162
|
const isAborted =
|
|
163
|
-
|
|
164
|
-
Reflect.get(session.transaction, 'state') === 'TRANSACTION_ABORTED';
|
|
163
|
+
Reflect.get(session, 'transaction').state === 'TRANSACTION_ABORTED';
|
|
165
164
|
|
|
166
|
-
emitter.emit(
|
|
167
|
-
isCommitted && isAborted ? 'abort' : 'commit',
|
|
168
|
-
session,
|
|
169
|
-
db,
|
|
170
|
-
);
|
|
165
|
+
emitter.emit(isAborted ? 'abort' : 'commit');
|
|
171
166
|
|
|
172
167
|
return result;
|
|
173
168
|
// If an error occurs in this scope,
|
|
@@ -175,7 +170,7 @@ export class Connection extends EventEmitter implements ConnectionContract {
|
|
|
175
170
|
// This is what we want, as an error in this scope should not trigger the abort event.
|
|
176
171
|
},
|
|
177
172
|
(error) => {
|
|
178
|
-
emitter.emit('abort',
|
|
173
|
+
emitter.emit('abort', error);
|
|
179
174
|
throw error;
|
|
180
175
|
},
|
|
181
176
|
);
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { EventEmitter } from 'node:events';
|
|
2
2
|
|
|
3
|
-
import type { ClientSession, Db } from 'mongodb';
|
|
4
|
-
|
|
5
3
|
export interface TransactionEvents {
|
|
6
|
-
commit: [
|
|
7
|
-
abort: [
|
|
4
|
+
commit: [];
|
|
5
|
+
abort: [error?: Error];
|
|
8
6
|
}
|
|
9
7
|
|
|
10
8
|
export class TransactionEventEmitter extends EventEmitter<TransactionEvents> {}
|
package/src/Migration.ts
CHANGED
|
@@ -12,40 +12,32 @@ import type {
|
|
|
12
12
|
DatabaseContract,
|
|
13
13
|
} from '@ioc:Zakodium/Mongodb/Database';
|
|
14
14
|
|
|
15
|
-
enum MigrationType {
|
|
16
|
-
DropCollection = 'DropCollection',
|
|
17
|
-
CreateCollection = 'CreateCollection',
|
|
18
|
-
DropIndex = 'DropIndex',
|
|
19
|
-
CreateIndex = 'CreateIndex',
|
|
20
|
-
Custom = 'Custom',
|
|
21
|
-
}
|
|
22
|
-
|
|
23
15
|
interface DropCollectionOperation {
|
|
24
|
-
type:
|
|
16
|
+
type: 'DropCollection';
|
|
25
17
|
collectionName: string;
|
|
26
18
|
}
|
|
27
19
|
|
|
28
20
|
interface CreateCollectionOperation {
|
|
29
|
-
type:
|
|
21
|
+
type: 'CreateCollection';
|
|
30
22
|
collectionName: string;
|
|
31
23
|
}
|
|
32
24
|
|
|
33
25
|
interface DropIndexOperation {
|
|
34
|
-
type:
|
|
26
|
+
type: 'DropIndex';
|
|
35
27
|
collectionName: string;
|
|
36
28
|
indexName: string;
|
|
37
29
|
options?: DropIndexesOptions;
|
|
38
30
|
}
|
|
39
31
|
|
|
40
32
|
interface CreateIndexOperation {
|
|
41
|
-
type:
|
|
33
|
+
type: 'CreateIndex';
|
|
42
34
|
collectionName: string;
|
|
43
35
|
index: IndexSpecification;
|
|
44
36
|
options?: CreateIndexesOptions;
|
|
45
37
|
}
|
|
46
38
|
|
|
47
39
|
interface CustomOperation {
|
|
48
|
-
type:
|
|
40
|
+
type: 'Custom';
|
|
49
41
|
callback: (db: Db, session: ClientSession) => Promise<void>;
|
|
50
42
|
}
|
|
51
43
|
|
|
@@ -77,14 +69,14 @@ export default function createMigration(Database: DatabaseContract): any {
|
|
|
77
69
|
|
|
78
70
|
public dropCollection(collectionName: string): void {
|
|
79
71
|
this.$operations.push({
|
|
80
|
-
type:
|
|
72
|
+
type: 'DropCollection',
|
|
81
73
|
collectionName,
|
|
82
74
|
});
|
|
83
75
|
}
|
|
84
76
|
|
|
85
77
|
public createCollection(collectionName: string): void {
|
|
86
78
|
this.$operations.push({
|
|
87
|
-
type:
|
|
79
|
+
type: 'CreateCollection',
|
|
88
80
|
collectionName,
|
|
89
81
|
});
|
|
90
82
|
}
|
|
@@ -95,7 +87,7 @@ export default function createMigration(Database: DatabaseContract): any {
|
|
|
95
87
|
options?: DropIndexesOptions,
|
|
96
88
|
): void {
|
|
97
89
|
this.$operations.push({
|
|
98
|
-
type:
|
|
90
|
+
type: 'DropIndex',
|
|
99
91
|
collectionName,
|
|
100
92
|
indexName,
|
|
101
93
|
options,
|
|
@@ -108,7 +100,7 @@ export default function createMigration(Database: DatabaseContract): any {
|
|
|
108
100
|
options?: CreateIndexesOptions,
|
|
109
101
|
): void {
|
|
110
102
|
this.$operations.push({
|
|
111
|
-
type:
|
|
103
|
+
type: 'CreateIndex',
|
|
112
104
|
collectionName,
|
|
113
105
|
index,
|
|
114
106
|
options,
|
|
@@ -117,7 +109,7 @@ export default function createMigration(Database: DatabaseContract): any {
|
|
|
117
109
|
|
|
118
110
|
public defer(callback: (db: Db, session: ClientSession) => Promise<void>) {
|
|
119
111
|
this.$operations.push({
|
|
120
|
-
type:
|
|
112
|
+
type: 'Custom',
|
|
121
113
|
callback,
|
|
122
114
|
});
|
|
123
115
|
}
|
|
@@ -205,23 +197,23 @@ export default function createMigration(Database: DatabaseContract): any {
|
|
|
205
197
|
function isDropCollection(
|
|
206
198
|
op: MigrationOperation,
|
|
207
199
|
): op is DropCollectionOperation {
|
|
208
|
-
return op.type ===
|
|
200
|
+
return op.type === 'DropCollection';
|
|
209
201
|
}
|
|
210
202
|
|
|
211
203
|
function isCreateCollection(
|
|
212
204
|
op: MigrationOperation,
|
|
213
205
|
): op is CreateCollectionOperation {
|
|
214
|
-
return op.type ===
|
|
206
|
+
return op.type === 'CreateCollection';
|
|
215
207
|
}
|
|
216
208
|
|
|
217
209
|
function isCreateIndex(op: MigrationOperation): op is CreateIndexOperation {
|
|
218
|
-
return op.type ===
|
|
210
|
+
return op.type === 'CreateIndex';
|
|
219
211
|
}
|
|
220
212
|
|
|
221
213
|
function isDropIndex(op: MigrationOperation): op is DropIndexOperation {
|
|
222
|
-
return op.type ===
|
|
214
|
+
return op.type === 'DropIndex';
|
|
223
215
|
}
|
|
224
216
|
|
|
225
217
|
function isCustom(op: MigrationOperation): op is CustomOperation {
|
|
226
|
-
return op.type ===
|
|
218
|
+
return op.type === 'Custom';
|
|
227
219
|
}
|
package/src/Model/Model.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from 'node:assert';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { Exception, defineStaticProperty } from '@poppinss/utils';
|
|
4
4
|
import { cloneDeep, isEqual, pickBy, snakeCase } from 'lodash';
|
|
5
5
|
import type {
|
|
6
6
|
BulkWriteOptions,
|
|
@@ -58,9 +58,9 @@ const forbiddenQueryOptions: ForbiddenQueryOptions[] = [
|
|
|
58
58
|
'explain',
|
|
59
59
|
];
|
|
60
60
|
|
|
61
|
-
class Query<ModelType extends typeof BaseModel>
|
|
62
|
-
|
|
63
|
-
{
|
|
61
|
+
class Query<ModelType extends typeof BaseModel> implements QueryContract<
|
|
62
|
+
InstanceType<ModelType>
|
|
63
|
+
> {
|
|
64
64
|
private localCustomSort = false;
|
|
65
65
|
private localOptions: QueryLocalOptions = {
|
|
66
66
|
sort: {
|
|
@@ -68,21 +68,14 @@ class Query<ModelType extends typeof BaseModel>
|
|
|
68
68
|
},
|
|
69
69
|
};
|
|
70
70
|
|
|
71
|
-
private getDriverOptions(): FindOptions
|
|
72
|
-
ModelAttributes<InstanceType<ModelType>>
|
|
73
|
-
> {
|
|
71
|
+
private getDriverOptions(): FindOptions {
|
|
74
72
|
return { ...mergeDriverOptions(this.options), ...this.localOptions };
|
|
75
73
|
}
|
|
76
74
|
|
|
77
75
|
public constructor(
|
|
78
76
|
private filter: Filter<ModelAttributes<InstanceType<ModelType>>>,
|
|
79
77
|
private options:
|
|
80
|
-
| ModelAdapterOptions<
|
|
81
|
-
Omit<
|
|
82
|
-
FindOptions<ModelAttributes<InstanceType<ModelType>>>,
|
|
83
|
-
ForbiddenQueryOptions
|
|
84
|
-
>
|
|
85
|
-
>
|
|
78
|
+
| ModelAdapterOptions<Omit<FindOptions, ForbiddenQueryOptions>>
|
|
86
79
|
| undefined,
|
|
87
80
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
88
81
|
private ModelConstructor: ModelType,
|
|
@@ -107,6 +100,7 @@ class Query<ModelType extends typeof BaseModel>
|
|
|
107
100
|
}
|
|
108
101
|
|
|
109
102
|
public sortBy(field: string, direction: SortDirection = 'ascending'): this {
|
|
103
|
+
// eslint-disable-next-line unicorn/no-array-sort
|
|
110
104
|
return this.sort({ [field]: direction });
|
|
111
105
|
}
|
|
112
106
|
|
|
@@ -441,9 +435,7 @@ export class BaseModel {
|
|
|
441
435
|
public static async find<ModelType extends typeof BaseModel>(
|
|
442
436
|
this: ModelType,
|
|
443
437
|
id: InstanceType<ModelType>['_id'],
|
|
444
|
-
options?: ModelAdapterOptions<
|
|
445
|
-
FindOptions<ModelAttributes<InstanceType<ModelType>>>
|
|
446
|
-
>,
|
|
438
|
+
options?: ModelAdapterOptions<FindOptions>,
|
|
447
439
|
): Promise<InstanceType<ModelType> | null> {
|
|
448
440
|
const collection = await this.getCollection();
|
|
449
441
|
const driverOptions = mergeDriverOptions(options);
|
|
@@ -464,9 +456,7 @@ export class BaseModel {
|
|
|
464
456
|
public static async findOrFail<ModelType extends typeof BaseModel>(
|
|
465
457
|
this: ModelType,
|
|
466
458
|
id: InstanceType<ModelType>['_id'],
|
|
467
|
-
options?: ModelAdapterOptions<
|
|
468
|
-
FindOptions<ModelAttributes<InstanceType<ModelType>>>
|
|
469
|
-
>,
|
|
459
|
+
options?: ModelAdapterOptions<FindOptions>,
|
|
470
460
|
): Promise<InstanceType<ModelType>> {
|
|
471
461
|
const result = await this.find(id, options);
|
|
472
462
|
if (!result) {
|
|
@@ -479,9 +469,7 @@ export class BaseModel {
|
|
|
479
469
|
this: ModelType,
|
|
480
470
|
key: string,
|
|
481
471
|
value: unknown,
|
|
482
|
-
options?: ModelAdapterOptions<
|
|
483
|
-
FindOptions<ModelAttributes<InstanceType<ModelType>>>
|
|
484
|
-
>,
|
|
472
|
+
options?: ModelAdapterOptions<FindOptions>,
|
|
485
473
|
): Promise<InstanceType<ModelType> | null> {
|
|
486
474
|
const collection = await this.getCollection();
|
|
487
475
|
const driverOptions = mergeDriverOptions(options);
|
|
@@ -503,9 +491,7 @@ export class BaseModel {
|
|
|
503
491
|
this: ModelType,
|
|
504
492
|
key: string,
|
|
505
493
|
value: unknown,
|
|
506
|
-
options?: ModelAdapterOptions<
|
|
507
|
-
FindOptions<ModelAttributes<InstanceType<ModelType>>>
|
|
508
|
-
>,
|
|
494
|
+
options?: ModelAdapterOptions<FindOptions>,
|
|
509
495
|
): Promise<InstanceType<ModelType>> {
|
|
510
496
|
const result = await this.findBy(key, value, options);
|
|
511
497
|
if (!result) {
|
|
@@ -517,9 +503,7 @@ export class BaseModel {
|
|
|
517
503
|
public static async findMany<ModelType extends typeof BaseModel>(
|
|
518
504
|
this: ModelType,
|
|
519
505
|
ids: Array<InstanceType<ModelType>['_id']>,
|
|
520
|
-
options?: ModelAdapterOptions<
|
|
521
|
-
FindOptions<ModelAttributes<InstanceType<ModelType>>>
|
|
522
|
-
>,
|
|
506
|
+
options?: ModelAdapterOptions<FindOptions>,
|
|
523
507
|
): Promise<Array<InstanceType<ModelType>>> {
|
|
524
508
|
const collection = await this.getCollection();
|
|
525
509
|
const driverOptions = mergeDriverOptions(options);
|
|
@@ -540,9 +524,7 @@ export class BaseModel {
|
|
|
540
524
|
|
|
541
525
|
public static async all<ModelType extends typeof BaseModel>(
|
|
542
526
|
this: ModelType,
|
|
543
|
-
options?: ModelAdapterOptions<
|
|
544
|
-
FindOptions<ModelAttributes<InstanceType<ModelType>>>
|
|
545
|
-
>,
|
|
527
|
+
options?: ModelAdapterOptions<FindOptions>,
|
|
546
528
|
): Promise<Array<InstanceType<ModelType>>> {
|
|
547
529
|
const collection = await this.getCollection();
|
|
548
530
|
const driverOptions = mergeDriverOptions(options);
|
|
@@ -562,12 +544,7 @@ export class BaseModel {
|
|
|
562
544
|
public static query<ModelType extends typeof BaseModel>(
|
|
563
545
|
this: ModelType,
|
|
564
546
|
filter: Filter<ModelAttributes<InstanceType<ModelType>>> = {},
|
|
565
|
-
options?: ModelAdapterOptions<
|
|
566
|
-
Omit<
|
|
567
|
-
FindOptions<ModelAttributes<InstanceType<ModelType>>>,
|
|
568
|
-
ForbiddenQueryOptions
|
|
569
|
-
>
|
|
570
|
-
>,
|
|
547
|
+
options?: ModelAdapterOptions<Omit<FindOptions, ForbiddenQueryOptions>>,
|
|
571
548
|
): Query<ModelType> {
|
|
572
549
|
return new Query(filter, options, this);
|
|
573
550
|
}
|
|
@@ -576,7 +553,10 @@ export class BaseModel {
|
|
|
576
553
|
this: ModelType,
|
|
577
554
|
connection = this.connection,
|
|
578
555
|
): Promise<Collection<ModelAttributes<InstanceType<ModelType>>>> {
|
|
579
|
-
assert(
|
|
556
|
+
assert.ok(
|
|
557
|
+
this.$database,
|
|
558
|
+
'Model should only be accessed from IoC container',
|
|
559
|
+
);
|
|
580
560
|
const connectionInstance = this.$database.connection(connection);
|
|
581
561
|
return connectionInstance.collection(this.collectionName);
|
|
582
562
|
}
|
|
@@ -800,7 +780,7 @@ export class BaseAutoIncrementModel extends BaseModel {
|
|
|
800
780
|
{ $inc: { count: 1 } },
|
|
801
781
|
{ ...driverOptions, upsert: true, returnDocument: 'after' },
|
|
802
782
|
);
|
|
803
|
-
assert(doc, 'upsert should always create a document');
|
|
783
|
+
assert.ok(doc, 'upsert should always create a document');
|
|
804
784
|
toSet._id = doc.count;
|
|
805
785
|
// @ts-expect-error Unavoidable error, as _id is unknown here.
|
|
806
786
|
await collection.insertOne(toSet, driverOptions);
|