@prodforcode/event-forge-mongoose 1.0.4 → 1.1.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.
@@ -1,4 +1,4 @@
1
- import { CreateInboxMessageDto, IInboxRepository, RecordInboxMessageResult } from '@prodforcode/event-forge-core';
1
+ import { CreateInboxMessageDto, IInboxRepository, InboxMessage, RecordInboxMessageResult } from '@prodforcode/event-forge-core';
2
2
  import { Model } from 'mongoose';
3
3
  import { InboxMessageDocument } from '../schemas/inbox-message.schema';
4
4
  export declare class MongooseInboxRepository implements IInboxRepository {
@@ -8,7 +8,8 @@ export declare class MongooseInboxRepository implements IInboxRepository {
8
8
  exists(messageId: string, source: string): Promise<boolean>;
9
9
  markProcessing(id: string): Promise<void>;
10
10
  markProcessed(id: string): Promise<void>;
11
- markFailed(id: string, error: string): Promise<void>;
11
+ markFailed(id: string, error: string, permanent?: boolean, scheduledAt?: Date): Promise<void>;
12
+ findRetryable(limit: number): Promise<InboxMessage[]>;
12
13
  deleteOlderThan(date: Date): Promise<number>;
13
14
  private toInboxMessage;
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mongoose-inbox.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/mongoose-inbox.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAGhB,wBAAwB,EACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAMvE,qBAAa,uBAAwB,YAAW,gBAAgB;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAC;IAEzD,MAAM,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA8DrE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3D,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpD,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAYlD,OAAO,CAAC,cAAc;CAYvB"}
1
+ {"version":3,"file":"mongoose-inbox.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/mongoose-inbox.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EAEZ,wBAAwB,EACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAMvE,qBAAa,uBAAwB,YAAW,gBAAgB;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAC;IAEzD,MAAM,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAgErE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3D,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,UAAQ,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB3F,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAiCrD,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAYlD,OAAO,CAAC,cAAc;CAevB"}
@@ -25,6 +25,8 @@ class MongooseInboxRepository {
25
25
  eventType: dto.eventType,
26
26
  payload: dto.payload,
27
27
  status: event_forge_core_1.InboxMessageStatus.RECEIVED,
28
+ retryCount: 0,
29
+ maxRetries: dto.maxRetries ?? 3,
28
30
  });
29
31
  try {
30
32
  const saved = await document.save();
@@ -74,14 +76,44 @@ class MongooseInboxRepository {
74
76
  },
75
77
  });
76
78
  }
77
- async markFailed(id, error) {
79
+ async markFailed(id, error, permanent = false, scheduledAt) {
80
+ const status = permanent
81
+ ? event_forge_core_1.InboxMessageStatus.PERMANENTLY_FAILED
82
+ : event_forge_core_1.InboxMessageStatus.FAILED;
78
83
  await this.model.updateOne({ _id: id }, {
79
84
  $set: {
80
- status: event_forge_core_1.InboxMessageStatus.FAILED,
85
+ status,
81
86
  errorMessage: error,
87
+ scheduledAt: scheduledAt ?? null,
88
+ },
89
+ $inc: {
90
+ retryCount: 1,
82
91
  },
83
92
  });
84
93
  }
94
+ async findRetryable(limit) {
95
+ const now = new Date();
96
+ const messages = [];
97
+ for (let i = 0; i < limit; i++) {
98
+ const document = await this.model.findOneAndUpdate({
99
+ status: event_forge_core_1.InboxMessageStatus.FAILED,
100
+ $expr: { $lt: ['$retryCount', '$maxRetries'] },
101
+ $or: [{ scheduledAt: null }, { scheduledAt: { $lte: now } }],
102
+ }, {
103
+ $set: {
104
+ status: event_forge_core_1.InboxMessageStatus.PROCESSING,
105
+ },
106
+ }, {
107
+ sort: { createdAt: 1 },
108
+ new: true,
109
+ });
110
+ if (!document) {
111
+ break;
112
+ }
113
+ messages.push(this.toInboxMessage(document));
114
+ }
115
+ return messages;
116
+ }
85
117
  async deleteOlderThan(date) {
86
118
  const result = await this.model.deleteMany({
87
119
  status: event_forge_core_1.InboxMessageStatus.PROCESSED,
@@ -98,6 +130,9 @@ class MongooseInboxRepository {
98
130
  payload: doc.payload,
99
131
  status: doc.status,
100
132
  errorMessage: doc.errorMessage ?? undefined,
133
+ retryCount: doc.retryCount,
134
+ maxRetries: doc.maxRetries,
135
+ scheduledAt: doc.scheduledAt ?? undefined,
101
136
  createdAt: doc.createdAt,
102
137
  };
103
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mongoose-inbox.repository.js","sourceRoot":"","sources":["../../src/repositories/mongoose-inbox.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongoose-inbox.repository.js","sourceRoot":"","sources":["../../src/repositories/mongoose-inbox.repository.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export declare class MongooseOutboxRepository implements IOutboxRepository {
8
8
  create(dto: CreateOutboxMessageDto, transactionContext?: unknown): Promise<OutboxMessage>;
9
9
  fetchAndLockPending(limit: number, lockerId: string): Promise<OutboxMessage[]>;
10
10
  markPublished(id: string): Promise<void>;
11
- markFailed(id: string, error: string, permanent?: boolean): Promise<void>;
11
+ markFailed(id: string, error: string, permanent?: boolean, scheduledAt?: Date): Promise<void>;
12
12
  releaseLock(id: string): Promise<void>;
13
13
  releaseStaleLocks(olderThan: Date): Promise<number>;
14
14
  deleteOlderThan(date: Date): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"mongoose-outbox.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/mongoose-outbox.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EAEd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAiB,MAAM,UAAU,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAMzE,qBAAa,wBAAyB,YAAW,iBAAiB;IAE9D,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,CAAC,qBAAqB,CAAC;IAGhD,MAAM,CACV,GAAG,EAAE,sBAAsB,EAC3B,kBAAkB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,aAAa,CAAC;IAmBnB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAwC9E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BvE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAatC,iBAAiB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBnD,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAS5C,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmBjF,OAAO,CAAC,eAAe;CAmBxB"}
1
+ {"version":3,"file":"mongoose-outbox.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/mongoose-outbox.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EAEd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAiB,MAAM,UAAU,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAMzE,qBAAa,wBAAyB,YAAW,iBAAiB;IAE9D,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,CAAC,qBAAqB,CAAC;IAGhD,MAAM,CACV,GAAG,EAAE,sBAAsB,EAC3B,kBAAkB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,aAAa,CAAC;IAmBnB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAwC9E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,UAAQ,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B3F,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAatC,iBAAiB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBnD,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAS5C,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmBjF,OAAO,CAAC,eAAe;CAmBxB"}
@@ -62,7 +62,7 @@ class MongooseOutboxRepository {
62
62
  },
63
63
  });
64
64
  }
65
- async markFailed(id, error, permanent = false) {
65
+ async markFailed(id, error, permanent = false, scheduledAt) {
66
66
  const message = await this.model.findById(id);
67
67
  if (!message) {
68
68
  return;
@@ -74,6 +74,7 @@ class MongooseOutboxRepository {
74
74
  $set: {
75
75
  status,
76
76
  errorMessage: error,
77
+ scheduledAt: scheduledAt ?? null,
77
78
  lockedBy: null,
78
79
  lockedAt: null,
79
80
  },
@@ -1 +1 @@
1
- {"version":3,"file":"mongoose-outbox.repository.js","sourceRoot":"","sources":["../../src/repositories/mongoose-outbox.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongoose-outbox.repository.js","sourceRoot":"","sources":["../../src/repositories/mongoose-outbox.repository.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"inbox-message.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/inbox-message.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAK1D,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;IAC1F,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAKD,eAAO,MAAM,kBAAkB;;;;;;;;EAuC9B,CAAC;AA6CF,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"inbox-message.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/inbox-message.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAK1D,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;IAC1F,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAKD,eAAO,MAAM,kBAAkB;;;;;;;;EAsD9B,CAAC;AA4DF,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC"}
@@ -36,6 +36,21 @@ exports.InboxMessageSchema = new mongoose_1.Schema({
36
36
  default: null,
37
37
  index: true,
38
38
  },
39
+ retryCount: {
40
+ type: Number,
41
+ default: 0,
42
+ required: true,
43
+ },
44
+ maxRetries: {
45
+ type: Number,
46
+ default: 3,
47
+ required: true,
48
+ },
49
+ scheduledAt: {
50
+ type: Date,
51
+ default: null,
52
+ index: true,
53
+ },
39
54
  }, {
40
55
  timestamps: { createdAt: 'createdAt', updatedAt: 'updatedAt' },
41
56
  collection: 'inbox_messages',
@@ -59,4 +74,12 @@ exports.InboxMessageSchema.index({
59
74
  }, {
60
75
  name: 'idx_inbox_cleanup',
61
76
  });
77
+ exports.InboxMessageSchema.index({
78
+ status: 1,
79
+ retryCount: 1,
80
+ scheduledAt: 1,
81
+ createdAt: 1,
82
+ }, {
83
+ name: 'idx_inbox_retry',
84
+ });
62
85
  //# sourceMappingURL=inbox-message.schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inbox-message.schema.js","sourceRoot":"","sources":["../../src/schemas/inbox-message.schema.ts"],"names":[],"mappings":";;;AAAA,oEAAiF;AACjF,uCAA0D;AAc7C,QAAA,kBAAkB,GAAG,IAAI,iBAAM,CAC1C;IACE,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,MAAM,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;KACZ;IACD,OAAO,EAAE;QACP,IAAI,EAAE,iBAAM,CAAC,KAAK,CAAC,KAAK;QACxB,QAAQ,EAAE,IAAI;KACf;IACD,MAAM,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,qCAAkB,CAAC;QACvC,OAAO,EAAE,qCAAkB,CAAC,QAAQ;QACpC,KAAK,EAAE,IAAI;KACZ;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,IAAI;KACd;IACD,WAAW,EAAE;QACX,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;KACZ;CACF,EACD;IACE,UAAU,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE;IAC9D,UAAU,EAAE,gBAAgB;CAC7B,CACF,CAAC;AAKF,0BAAkB,CAAC,KAAK,CACtB;IACE,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,CAAC;CACV,EACD;IACE,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,iCAAiC;CACxC,CACF,CAAC;AAKF,0BAAkB,CAAC,KAAK,CACtB;IACE,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;CACb,EACD;IACE,IAAI,EAAE,sBAAsB;CAC7B,CACF,CAAC;AAKF,0BAAkB,CAAC,KAAK,CACtB;IACE,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;CACb,EACD;IACE,IAAI,EAAE,mBAAmB;CAC1B,CACF,CAAC"}
1
+ {"version":3,"file":"inbox-message.schema.js","sourceRoot":"","sources":["../../src/schemas/inbox-message.schema.ts"],"names":[],"mappings":";;;AAAA,oEAAiF;AACjF,uCAA0D;AAc7C,QAAA,kBAAkB,GAAG,IAAI,iBAAM,CAC1C;IACE,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,MAAM,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;KACf;IACD,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;KACZ;IACD,OAAO,EAAE;QACP,IAAI,EAAE,iBAAM,CAAC,KAAK,CAAC,KAAK;QACxB,QAAQ,EAAE,IAAI;KACf;IACD,MAAM,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,qCAAkB,CAAC;QACvC,OAAO,EAAE,qCAAkB,CAAC,QAAQ;QACpC,KAAK,EAAE,IAAI;KACZ;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,IAAI;KACd;IACD,WAAW,EAAE;QACX,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;KACZ;IACD,UAAU,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,IAAI;KACf;IACD,UAAU,EAAE;QACV,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,IAAI;KACZ;CACF,EACD;IACE,UAAU,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE;IAC9D,UAAU,EAAE,gBAAgB;CAC7B,CACF,CAAC;AAKF,0BAAkB,CAAC,KAAK,CACtB;IACE,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,CAAC;CACV,EACD;IACE,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,iCAAiC;CACxC,CACF,CAAC;AAKF,0BAAkB,CAAC,KAAK,CACtB;IACE,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;CACb,EACD;IACE,IAAI,EAAE,sBAAsB;CAC7B,CACF,CAAC;AAKF,0BAAkB,CAAC,KAAK,CACtB;IACE,MAAM,EAAE,CAAC;IACT,SAAS,EAAE,CAAC;CACb,EACD;IACE,IAAI,EAAE,mBAAmB;CAC1B,CACF,CAAC;AAKF,0BAAkB,CAAC,KAAK,CACtB;IACE,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,SAAS,EAAE,CAAC;CACb,EACD;IACE,IAAI,EAAE,iBAAiB;CACxB,CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prodforcode/event-forge-mongoose",
3
- "version": "1.0.4",
3
+ "version": "1.1.0",
4
4
  "description": "Mongoose adapter for Universal Inbox-Outbox Pattern (MongoDB)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -17,7 +17,7 @@
17
17
  "license": "MIT",
18
18
  "dependencies": {
19
19
  "mongoose": "^8.0.0",
20
- "@prodforcode/event-forge-core": "1.0.4"
20
+ "@prodforcode/event-forge-core": "1.1.0"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/jest": "^29.5.11",