@quave/agenda-mongodb 1.0.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.
Files changed (52) hide show
  1. package/LICENSE.md +25 -0
  2. package/README.md +273 -0
  3. package/dist/MongoBackend.d.ts +58 -0
  4. package/dist/MongoBackend.js +82 -0
  5. package/dist/MongoBackend.js.map +1 -0
  6. package/dist/MongoChangeStreamNotificationChannel.d.ts +96 -0
  7. package/dist/MongoChangeStreamNotificationChannel.js +248 -0
  8. package/dist/MongoChangeStreamNotificationChannel.js.map +1 -0
  9. package/dist/MongoJobLogger.d.ts +46 -0
  10. package/dist/MongoJobLogger.js +142 -0
  11. package/dist/MongoJobLogger.js.map +1 -0
  12. package/dist/MongoJobRepository.d.ts +84 -0
  13. package/dist/MongoJobRepository.js +713 -0
  14. package/dist/MongoJobRepository.js.map +1 -0
  15. package/dist/cjs/MongoBackend.d.ts +58 -0
  16. package/dist/cjs/MongoBackend.js +86 -0
  17. package/dist/cjs/MongoBackend.js.map +1 -0
  18. package/dist/cjs/MongoChangeStreamNotificationChannel.d.ts +96 -0
  19. package/dist/cjs/MongoChangeStreamNotificationChannel.js +255 -0
  20. package/dist/cjs/MongoChangeStreamNotificationChannel.js.map +1 -0
  21. package/dist/cjs/MongoJobLogger.d.ts +46 -0
  22. package/dist/cjs/MongoJobLogger.js +149 -0
  23. package/dist/cjs/MongoJobLogger.js.map +1 -0
  24. package/dist/cjs/MongoJobRepository.d.ts +84 -0
  25. package/dist/cjs/MongoJobRepository.js +720 -0
  26. package/dist/cjs/MongoJobRepository.js.map +1 -0
  27. package/dist/cjs/hasMongoProtocol.d.ts +1 -0
  28. package/dist/cjs/hasMongoProtocol.js +6 -0
  29. package/dist/cjs/hasMongoProtocol.js.map +1 -0
  30. package/dist/cjs/index.d.ts +39 -0
  31. package/dist/cjs/index.js +46 -0
  32. package/dist/cjs/index.js.map +1 -0
  33. package/dist/cjs/package.json +1 -0
  34. package/dist/cjs/testing.d.ts +25 -0
  35. package/dist/cjs/testing.js +55 -0
  36. package/dist/cjs/testing.js.map +1 -0
  37. package/dist/cjs/types.d.ts +52 -0
  38. package/dist/cjs/types.js +3 -0
  39. package/dist/cjs/types.js.map +1 -0
  40. package/dist/hasMongoProtocol.d.ts +1 -0
  41. package/dist/hasMongoProtocol.js +2 -0
  42. package/dist/hasMongoProtocol.js.map +1 -0
  43. package/dist/index.d.ts +39 -0
  44. package/dist/index.js +37 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/testing.d.ts +25 -0
  47. package/dist/testing.js +49 -0
  48. package/dist/testing.js.map +1 -0
  49. package/dist/types.d.ts +52 -0
  50. package/dist/types.js +2 -0
  51. package/dist/types.js.map +1 -0
  52. package/package.json +84 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoJobRepository.js","sourceRoot":"","sources":["../../src/MongoJobRepository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const hasMongoProtocol: (url: string) => boolean;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasMongoProtocol = void 0;
4
+ const hasMongoProtocol = (url) => /mongodb(?:\+srv)?:\/\/.*/.test(url);
5
+ exports.hasMongoProtocol = hasMongoProtocol;
6
+ //# sourceMappingURL=hasMongoProtocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasMongoProtocol.js","sourceRoot":"","sources":["../../src/hasMongoProtocol.ts"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAAlF,QAAA,gBAAgB,oBAAkE"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @quave/agenda-mongodb
3
+ *
4
+ * MongoDB backend for Agenda job scheduler.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { Agenda } from '@quave/agenda';
9
+ * import { MongoBackend } from '@quave/agenda-mongodb';
10
+ *
11
+ * // Create agenda with MongoDB backend
12
+ * const agenda = new Agenda({
13
+ * backend: new MongoBackend({
14
+ * address: 'mongodb://localhost/agenda'
15
+ * })
16
+ * });
17
+ *
18
+ * // Or with existing connection
19
+ * const agenda = new Agenda({
20
+ * backend: new MongoBackend({ mongo: existingDb })
21
+ * });
22
+ *
23
+ * // Define and run jobs
24
+ * agenda.define('myJob', async (job) => {
25
+ * console.log('Running job:', job.attrs.name);
26
+ * });
27
+ *
28
+ * await agenda.start();
29
+ * await agenda.every('5 minutes', 'myJob');
30
+ * ```
31
+ */
32
+ export { MongoBackend } from './MongoBackend.js';
33
+ export { MongoJobRepository } from './MongoJobRepository.js';
34
+ export { MongoJobLogger } from './MongoJobLogger.js';
35
+ export { MongoChangeStreamNotificationChannel } from './MongoChangeStreamNotificationChannel.js';
36
+ export type { MongoBackendConfig, MongoJobRepositoryConfig, MongoDbConfig } from './types.js';
37
+ export type { MongoChangeStreamNotificationChannelConfig } from './MongoChangeStreamNotificationChannel.js';
38
+ export type { Db, MongoClientOptions } from 'mongodb';
39
+ export { MongoClient, ObjectId } from 'mongodb';
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /**
3
+ * @quave/agenda-mongodb
4
+ *
5
+ * MongoDB backend for Agenda job scheduler.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { Agenda } from '@quave/agenda';
10
+ * import { MongoBackend } from '@quave/agenda-mongodb';
11
+ *
12
+ * // Create agenda with MongoDB backend
13
+ * const agenda = new Agenda({
14
+ * backend: new MongoBackend({
15
+ * address: 'mongodb://localhost/agenda'
16
+ * })
17
+ * });
18
+ *
19
+ * // Or with existing connection
20
+ * const agenda = new Agenda({
21
+ * backend: new MongoBackend({ mongo: existingDb })
22
+ * });
23
+ *
24
+ * // Define and run jobs
25
+ * agenda.define('myJob', async (job) => {
26
+ * console.log('Running job:', job.attrs.name);
27
+ * });
28
+ *
29
+ * await agenda.start();
30
+ * await agenda.every('5 minutes', 'myJob');
31
+ * ```
32
+ */
33
+ Object.defineProperty(exports, "__esModule", { value: true });
34
+ exports.ObjectId = exports.MongoClient = exports.MongoChangeStreamNotificationChannel = exports.MongoJobLogger = exports.MongoJobRepository = exports.MongoBackend = void 0;
35
+ var MongoBackend_js_1 = require("./MongoBackend.js");
36
+ Object.defineProperty(exports, "MongoBackend", { enumerable: true, get: function () { return MongoBackend_js_1.MongoBackend; } });
37
+ var MongoJobRepository_js_1 = require("./MongoJobRepository.js");
38
+ Object.defineProperty(exports, "MongoJobRepository", { enumerable: true, get: function () { return MongoJobRepository_js_1.MongoJobRepository; } });
39
+ var MongoJobLogger_js_1 = require("./MongoJobLogger.js");
40
+ Object.defineProperty(exports, "MongoJobLogger", { enumerable: true, get: function () { return MongoJobLogger_js_1.MongoJobLogger; } });
41
+ var MongoChangeStreamNotificationChannel_js_1 = require("./MongoChangeStreamNotificationChannel.js");
42
+ Object.defineProperty(exports, "MongoChangeStreamNotificationChannel", { enumerable: true, get: function () { return MongoChangeStreamNotificationChannel_js_1.MongoChangeStreamNotificationChannel; } });
43
+ var mongodb_1 = require("mongodb");
44
+ Object.defineProperty(exports, "MongoClient", { enumerable: true, get: function () { return mongodb_1.MongoClient; } });
45
+ Object.defineProperty(exports, "ObjectId", { enumerable: true, get: function () { return mongodb_1.ObjectId; } });
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;;AAEH,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,yDAAqD;AAA5C,mHAAA,cAAc,OAAA;AACvB,qGAAiG;AAAxF,+JAAA,oCAAoC,OAAA;AAO7C,mCAAgD;AAAvC,sGAAA,WAAW,OAAA;AAAE,mGAAA,QAAQ,OAAA"}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Test utilities for @quave/agenda-mongodb
3
+ *
4
+ * @example
5
+ * ```typescript
6
+ * import { mockMongo } from '@quave/agenda-mongodb/testing';
7
+ *
8
+ * const { db, disconnect } = await mockMongo();
9
+ * // Use db for testing
10
+ * await disconnect();
11
+ * ```
12
+ */
13
+ import { Db, MongoClient } from 'mongodb';
14
+ export interface IMockMongo {
15
+ disconnect: () => Promise<void>;
16
+ mongo: MongoClient;
17
+ uri: string;
18
+ db: Db;
19
+ }
20
+ /**
21
+ * Create a mock MongoDB connection for testing.
22
+ * Requires MONGO_URI environment variable to be set (usually by mongodb-memory-server).
23
+ */
24
+ export declare function mockMongo(): Promise<IMockMongo>;
25
+ export type { Db, MongoClient } from 'mongodb';
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /**
3
+ * Test utilities for @quave/agenda-mongodb
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * import { mockMongo } from '@quave/agenda-mongodb/testing';
8
+ *
9
+ * const { db, disconnect } = await mockMongo();
10
+ * // Use db for testing
11
+ * await disconnect();
12
+ * ```
13
+ */
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.mockMongo = mockMongo;
19
+ const mongodb_1 = require("mongodb");
20
+ const debug_1 = __importDefault(require("debug"));
21
+ const log = (0, debug_1.default)('agenda:mock-mongodb');
22
+ /**
23
+ * Create a mock MongoDB connection for testing.
24
+ * Requires MONGO_URI environment variable to be set (usually by mongodb-memory-server).
25
+ */
26
+ async function mockMongo() {
27
+ const baseUri = process.env.MONGO_URI;
28
+ if (!baseUri) {
29
+ throw new Error('MONGO_URI not set. Ensure global setup is configured.');
30
+ }
31
+ // Use unique database per test suite to avoid interference.
32
+ // (Not crypto.randomUUID: that needs Node 14.17+, and uniqueness — not
33
+ // unguessability — is all that matters here.)
34
+ const dbName = `agenda_test_${Date.now().toString(36)}${Math.random().toString(36).slice(2, 12)}`;
35
+ // Insert the database name as the URI path so query strings survive
36
+ // (e.g. mongodb://host/?replicaSet=x from mongodb-memory-server).
37
+ const url = new URL(baseUri);
38
+ url.pathname = `/${dbName}`;
39
+ const uri = url.toString();
40
+ log('connecting to mongod with db', dbName);
41
+ const mongo = await mongodb_1.MongoClient.connect(uri);
42
+ const db = mongo.db(dbName);
43
+ return {
44
+ uri,
45
+ db,
46
+ mongo,
47
+ disconnect: async () => {
48
+ // Drop the test database to clean up
49
+ await db.dropDatabase();
50
+ await mongo.close();
51
+ log('mongo client closed, db dropped:', dbName);
52
+ }
53
+ };
54
+ }
55
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;AAkBH,8BA8BC;AA9CD,qCAA0C;AAC1C,kDAA0B;AAE1B,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,qBAAqB,CAAC,CAAC;AASzC;;;GAGG;AACI,KAAK,UAAU,SAAS;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC1E,CAAC;IAED,4DAA4D;IAC5D,uEAAuE;IACvE,8CAA8C;IAC9C,MAAM,MAAM,GAAG,eAAe,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAClG,oEAAoE;IACpE,kEAAkE;IAClE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,GAAG,CAAC,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC3B,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,qBAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAE5B,OAAO;QACN,GAAG;QACH,EAAE;QACF,KAAK;QACL,UAAU,EAAE,KAAK,IAAI,EAAE;YACtB,qCAAqC;YACrC,MAAM,EAAE,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,GAAG,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,52 @@
1
+ import type { Db, MongoClientOptions } from 'mongodb';
2
+ import type { SortDirection } from '@quave/agenda';
3
+ /**
4
+ * Configuration options for MongoBackend
5
+ */
6
+ export type MongoConnectionConfig = {
7
+ /** Existing MongoDB database instance */
8
+ mongo: Db;
9
+ } | {
10
+ /** MongoDB connection string */
11
+ address: string;
12
+ /** MongoDB client options */
13
+ options?: MongoClientOptions;
14
+ };
15
+ export type MongoBackendConfig = MongoConnectionConfig & {
16
+ /** Collection name for jobs (default: 'agendaJobs') */
17
+ collection?: string;
18
+ /** Whether to create indexes on connect (default: true) */
19
+ ensureIndex?: boolean;
20
+ /** Sort order for job queries */
21
+ sort?: {
22
+ [key: string]: SortDirection;
23
+ };
24
+ /** Collection name for log entries (default: 'agenda_logs'). */
25
+ logCollection?: string;
26
+ };
27
+ /**
28
+ * Database configuration options used internally by the repository
29
+ */
30
+ export interface MongoDbConfig {
31
+ ensureIndex?: boolean;
32
+ sort?: {
33
+ [key: string]: SortDirection;
34
+ };
35
+ }
36
+ /**
37
+ * Configuration options for MongoJobRepository
38
+ */
39
+ export type MongoJobRepositoryConfig = MongoDbConfig & ({
40
+ /** MongoDB connection string */
41
+ db: {
42
+ address: string;
43
+ collection?: string;
44
+ options?: MongoClientOptions;
45
+ };
46
+ } | {
47
+ /** Existing MongoDB database instance */
48
+ mongo: Db;
49
+ db?: {
50
+ collection?: string;
51
+ };
52
+ });
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export declare const hasMongoProtocol: (url: string) => boolean;
@@ -0,0 +1,2 @@
1
+ export const hasMongoProtocol = (url) => /mongodb(?:\+srv)?:\/\/.*/.test(url);
2
+ //# sourceMappingURL=hasMongoProtocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasMongoProtocol.js","sourceRoot":"","sources":["../src/hasMongoProtocol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @quave/agenda-mongodb
3
+ *
4
+ * MongoDB backend for Agenda job scheduler.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { Agenda } from '@quave/agenda';
9
+ * import { MongoBackend } from '@quave/agenda-mongodb';
10
+ *
11
+ * // Create agenda with MongoDB backend
12
+ * const agenda = new Agenda({
13
+ * backend: new MongoBackend({
14
+ * address: 'mongodb://localhost/agenda'
15
+ * })
16
+ * });
17
+ *
18
+ * // Or with existing connection
19
+ * const agenda = new Agenda({
20
+ * backend: new MongoBackend({ mongo: existingDb })
21
+ * });
22
+ *
23
+ * // Define and run jobs
24
+ * agenda.define('myJob', async (job) => {
25
+ * console.log('Running job:', job.attrs.name);
26
+ * });
27
+ *
28
+ * await agenda.start();
29
+ * await agenda.every('5 minutes', 'myJob');
30
+ * ```
31
+ */
32
+ export { MongoBackend } from './MongoBackend.js';
33
+ export { MongoJobRepository } from './MongoJobRepository.js';
34
+ export { MongoJobLogger } from './MongoJobLogger.js';
35
+ export { MongoChangeStreamNotificationChannel } from './MongoChangeStreamNotificationChannel.js';
36
+ export type { MongoBackendConfig, MongoJobRepositoryConfig, MongoDbConfig } from './types.js';
37
+ export type { MongoChangeStreamNotificationChannelConfig } from './MongoChangeStreamNotificationChannel.js';
38
+ export type { Db, MongoClientOptions } from 'mongodb';
39
+ export { MongoClient, ObjectId } from 'mongodb';
package/dist/index.js ADDED
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @quave/agenda-mongodb
3
+ *
4
+ * MongoDB backend for Agenda job scheduler.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * import { Agenda } from '@quave/agenda';
9
+ * import { MongoBackend } from '@quave/agenda-mongodb';
10
+ *
11
+ * // Create agenda with MongoDB backend
12
+ * const agenda = new Agenda({
13
+ * backend: new MongoBackend({
14
+ * address: 'mongodb://localhost/agenda'
15
+ * })
16
+ * });
17
+ *
18
+ * // Or with existing connection
19
+ * const agenda = new Agenda({
20
+ * backend: new MongoBackend({ mongo: existingDb })
21
+ * });
22
+ *
23
+ * // Define and run jobs
24
+ * agenda.define('myJob', async (job) => {
25
+ * console.log('Running job:', job.attrs.name);
26
+ * });
27
+ *
28
+ * await agenda.start();
29
+ * await agenda.every('5 minutes', 'myJob');
30
+ * ```
31
+ */
32
+ export { MongoBackend } from './MongoBackend.js';
33
+ export { MongoJobRepository } from './MongoJobRepository.js';
34
+ export { MongoJobLogger } from './MongoJobLogger.js';
35
+ export { MongoChangeStreamNotificationChannel } from './MongoChangeStreamNotificationChannel.js';
36
+ export { MongoClient, ObjectId } from 'mongodb';
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,oCAAoC,EAAE,MAAM,2CAA2C,CAAC;AAOjG,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Test utilities for @quave/agenda-mongodb
3
+ *
4
+ * @example
5
+ * ```typescript
6
+ * import { mockMongo } from '@quave/agenda-mongodb/testing';
7
+ *
8
+ * const { db, disconnect } = await mockMongo();
9
+ * // Use db for testing
10
+ * await disconnect();
11
+ * ```
12
+ */
13
+ import { Db, MongoClient } from 'mongodb';
14
+ export interface IMockMongo {
15
+ disconnect: () => Promise<void>;
16
+ mongo: MongoClient;
17
+ uri: string;
18
+ db: Db;
19
+ }
20
+ /**
21
+ * Create a mock MongoDB connection for testing.
22
+ * Requires MONGO_URI environment variable to be set (usually by mongodb-memory-server).
23
+ */
24
+ export declare function mockMongo(): Promise<IMockMongo>;
25
+ export type { Db, MongoClient } from 'mongodb';
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Test utilities for @quave/agenda-mongodb
3
+ *
4
+ * @example
5
+ * ```typescript
6
+ * import { mockMongo } from '@quave/agenda-mongodb/testing';
7
+ *
8
+ * const { db, disconnect } = await mockMongo();
9
+ * // Use db for testing
10
+ * await disconnect();
11
+ * ```
12
+ */
13
+ import { MongoClient } from 'mongodb';
14
+ import debug from 'debug';
15
+ const log = debug('agenda:mock-mongodb');
16
+ /**
17
+ * Create a mock MongoDB connection for testing.
18
+ * Requires MONGO_URI environment variable to be set (usually by mongodb-memory-server).
19
+ */
20
+ export async function mockMongo() {
21
+ const baseUri = process.env.MONGO_URI;
22
+ if (!baseUri) {
23
+ throw new Error('MONGO_URI not set. Ensure global setup is configured.');
24
+ }
25
+ // Use unique database per test suite to avoid interference.
26
+ // (Not crypto.randomUUID: that needs Node 14.17+, and uniqueness — not
27
+ // unguessability — is all that matters here.)
28
+ const dbName = `agenda_test_${Date.now().toString(36)}${Math.random().toString(36).slice(2, 12)}`;
29
+ // Insert the database name as the URI path so query strings survive
30
+ // (e.g. mongodb://host/?replicaSet=x from mongodb-memory-server).
31
+ const url = new URL(baseUri);
32
+ url.pathname = `/${dbName}`;
33
+ const uri = url.toString();
34
+ log('connecting to mongod with db', dbName);
35
+ const mongo = await MongoClient.connect(uri);
36
+ const db = mongo.db(dbName);
37
+ return {
38
+ uri,
39
+ db,
40
+ mongo,
41
+ disconnect: async () => {
42
+ // Drop the test database to clean up
43
+ await db.dropDatabase();
44
+ await mongo.close();
45
+ log('mongo client closed, db dropped:', dbName);
46
+ }
47
+ };
48
+ }
49
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAM,WAAW,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,GAAG,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAC;AASzC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC1E,CAAC;IAED,4DAA4D;IAC5D,uEAAuE;IACvE,8CAA8C;IAC9C,MAAM,MAAM,GAAG,eAAe,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAClG,oEAAoE;IACpE,kEAAkE;IAClE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,GAAG,CAAC,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC3B,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAE5B,OAAO;QACN,GAAG;QACH,EAAE;QACF,KAAK;QACL,UAAU,EAAE,KAAK,IAAI,EAAE;YACtB,qCAAqC;YACrC,MAAM,EAAE,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,GAAG,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,52 @@
1
+ import type { Db, MongoClientOptions } from 'mongodb';
2
+ import type { SortDirection } from '@quave/agenda';
3
+ /**
4
+ * Configuration options for MongoBackend
5
+ */
6
+ export type MongoConnectionConfig = {
7
+ /** Existing MongoDB database instance */
8
+ mongo: Db;
9
+ } | {
10
+ /** MongoDB connection string */
11
+ address: string;
12
+ /** MongoDB client options */
13
+ options?: MongoClientOptions;
14
+ };
15
+ export type MongoBackendConfig = MongoConnectionConfig & {
16
+ /** Collection name for jobs (default: 'agendaJobs') */
17
+ collection?: string;
18
+ /** Whether to create indexes on connect (default: true) */
19
+ ensureIndex?: boolean;
20
+ /** Sort order for job queries */
21
+ sort?: {
22
+ [key: string]: SortDirection;
23
+ };
24
+ /** Collection name for log entries (default: 'agenda_logs'). */
25
+ logCollection?: string;
26
+ };
27
+ /**
28
+ * Database configuration options used internally by the repository
29
+ */
30
+ export interface MongoDbConfig {
31
+ ensureIndex?: boolean;
32
+ sort?: {
33
+ [key: string]: SortDirection;
34
+ };
35
+ }
36
+ /**
37
+ * Configuration options for MongoJobRepository
38
+ */
39
+ export type MongoJobRepositoryConfig = MongoDbConfig & ({
40
+ /** MongoDB connection string */
41
+ db: {
42
+ address: string;
43
+ collection?: string;
44
+ options?: MongoClientOptions;
45
+ };
46
+ } | {
47
+ /** Existing MongoDB database instance */
48
+ mongo: Db;
49
+ db?: {
50
+ collection?: string;
51
+ };
52
+ });
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,84 @@
1
+ {
2
+ "name": "@quave/agenda-mongodb",
3
+ "version": "1.0.0",
4
+ "description": "MongoDB backend for @quave/agenda job scheduler",
5
+ "type": "module",
6
+ "main": "./dist/cjs/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": {
11
+ "types": "./dist/index.d.ts",
12
+ "default": "./dist/index.js"
13
+ },
14
+ "require": {
15
+ "types": "./dist/cjs/index.d.ts",
16
+ "default": "./dist/cjs/index.js"
17
+ },
18
+ "default": "./dist/index.js"
19
+ },
20
+ "./testing": {
21
+ "import": {
22
+ "types": "./dist/testing.d.ts",
23
+ "default": "./dist/testing.js"
24
+ },
25
+ "require": {
26
+ "types": "./dist/cjs/testing.d.ts",
27
+ "default": "./dist/cjs/testing.js"
28
+ },
29
+ "default": "./dist/testing.js"
30
+ }
31
+ },
32
+ "files": [
33
+ "dist"
34
+ ],
35
+ "scripts": {
36
+ "build": "tsc -b && npm run build:cjs",
37
+ "dev": "tsc -b --watch",
38
+ "typecheck": "tsc -b && tsc -p tsconfig.test.json",
39
+ "test": "vitest run",
40
+ "test:watch": "vitest",
41
+ "test:coverage": "vitest run --coverage",
42
+ "lint": "eslint src --config ../../eslint.config.js",
43
+ "clean": "rm -rf dist tsconfig.tsbuildinfo",
44
+ "prepublishOnly": "npm run clean && npm run build",
45
+ "build:cjs": "tsc -p tsconfig.cjs.json && node -e \"require('fs').writeFileSync('dist/cjs/package.json', JSON.stringify({type:'commonjs'})+'\\n')\""
46
+ },
47
+ "keywords": [
48
+ "agenda",
49
+ "job",
50
+ "scheduler",
51
+ "mongodb",
52
+ "mongo"
53
+ ],
54
+ "author": "Quave",
55
+ "license": "MIT",
56
+ "repository": {
57
+ "type": "git",
58
+ "url": "git+https://github.com/quavedev/npm-packages.git",
59
+ "directory": "packages/agenda-mongodb"
60
+ },
61
+ "publishConfig": {
62
+ "access": "public"
63
+ },
64
+ "dependencies": {
65
+ "debug": "^4.4.3"
66
+ },
67
+ "peerDependencies": {
68
+ "@quave/agenda": "^1.0.0",
69
+ "mongodb": "^4.17.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
70
+ },
71
+ "devDependencies": {
72
+ "@quave/agenda": "^1.0.0",
73
+ "@types/debug": "^4.1.13",
74
+ "@vitest/coverage-v8": "^4.1.9",
75
+ "mongodb": "^7.4.0",
76
+ "mongodb-memory-server": "^11.2.0",
77
+ "mongodb4": "npm:mongodb@^4.17.2",
78
+ "tsx": "^4.23.0",
79
+ "vitest": "^4.1.9"
80
+ },
81
+ "engines": {
82
+ "node": ">=14.13.1"
83
+ }
84
+ }