@zeeshan60/event-processor 1.0.109 → 1.0.110

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.
@@ -0,0 +1,11 @@
1
+ import { NotificationEvent, NotificationEventStore } from "../..";
2
+ export declare class IMNotificationEventStore implements NotificationEventStore {
3
+ private events;
4
+ addEvent(event: NotificationEvent): Promise<void>;
5
+ addEvents(events: NotificationEvent[]): Promise<void>;
6
+ getAllEventsByStreamId(streamId: string): Promise<NotificationEvent[]>;
7
+ deleteEventsByStreamId(streamId: string): Promise<void>;
8
+ getAll(): NotificationEvent[];
9
+ clear(): void;
10
+ }
11
+ //# sourceMappingURL=IMNotificationEventStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IMNotificationEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMNotificationEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAElE,qBAAa,wBAAyB,YAAW,sBAAsB;IACrE,OAAO,CAAC,MAAM,CAA2B;IAEnC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAItE,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,MAAM,IAAI,iBAAiB,EAAE;IAI7B,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IMNotificationEventStore = void 0;
4
+ class IMNotificationEventStore {
5
+ constructor() {
6
+ this.events = [];
7
+ }
8
+ async addEvent(event) {
9
+ this.events.push(event);
10
+ }
11
+ async addEvents(events) {
12
+ this.events.push(...events);
13
+ }
14
+ async getAllEventsByStreamId(streamId) {
15
+ return this.events.filter((event) => event.streamId === streamId);
16
+ }
17
+ async deleteEventsByStreamId(streamId) {
18
+ this.events = this.events.filter((event) => event.streamId !== streamId);
19
+ }
20
+ getAll() {
21
+ return this.events;
22
+ }
23
+ clear() {
24
+ this.events = [];
25
+ }
26
+ }
27
+ exports.IMNotificationEventStore = IMNotificationEventStore;
28
+ //# sourceMappingURL=IMNotificationEventStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IMNotificationEventStore.js","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMNotificationEventStore.ts"],"names":[],"mappings":";;;AAEA,MAAa,wBAAwB;IAArC;QACU,WAAM,GAAwB,EAAE,CAAC;IAyB3C,CAAC;IAvBC,KAAK,CAAC,QAAQ,CAAC,KAAwB;QACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAA2B;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,QAAgB;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,QAAgB;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;CACF;AA1BD,4DA0BC"}
@@ -0,0 +1,17 @@
1
+ import { NotificationModel, NotificationModelStore } from "../..";
2
+ export declare class IMNotificationModelStore implements NotificationModelStore {
3
+ private models;
4
+ getByStreamId(streamId: string): Promise<NotificationModel | undefined>;
5
+ getByStreamIdWhereDeletedIsFalse(streamId: string): Promise<NotificationModel | undefined>;
6
+ save(model: NotificationModel): Promise<void>;
7
+ findAllByUserIdWhereDeletedIsFalse(userId: string): Promise<NotificationModel[]>;
8
+ findAllUnreadByUserId(userId: string): Promise<NotificationModel[]>;
9
+ markAllAsReadByUserId(userId: string): Promise<void>;
10
+ getUnreadCount(userId: string): Promise<number>;
11
+ getLatestByUpdatedAt(): Promise<NotificationModel | undefined>;
12
+ saveAll(models: NotificationModel[]): Promise<void>;
13
+ getAll(): NotificationModel[];
14
+ getAllWhereDeletedIsFalse(): NotificationModel[];
15
+ clear(): void;
16
+ }
17
+ //# sourceMappingURL=IMNotificationModelStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IMNotificationModelStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMNotificationModelStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAElE,qBAAa,wBAAyB,YAAW,sBAAsB;IACrE,OAAO,CAAC,MAAM,CAA6C;IAErD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAIvE,gCAAgC,CACpC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAQnC,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,kCAAkC,CACtC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAUzB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAUnE,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU/C,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAU9D,OAAO,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzD,MAAM,IAAI,iBAAiB,EAAE;IAI7B,yBAAyB,IAAI,iBAAiB,EAAE;IAIhD,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IMNotificationModelStore = void 0;
4
+ class IMNotificationModelStore {
5
+ constructor() {
6
+ this.models = new Map();
7
+ }
8
+ async getByStreamId(streamId) {
9
+ return this.models.get(streamId);
10
+ }
11
+ async getByStreamIdWhereDeletedIsFalse(streamId) {
12
+ const model = this.models.get(streamId);
13
+ if (!model || model.deleted) {
14
+ return undefined;
15
+ }
16
+ return model;
17
+ }
18
+ async save(model) {
19
+ this.models.set(model.streamId, model);
20
+ }
21
+ async findAllByUserIdWhereDeletedIsFalse(userId) {
22
+ const result = [];
23
+ for (const model of this.models.values()) {
24
+ if (model.userId === userId && !model.deleted) {
25
+ result.push(model);
26
+ }
27
+ }
28
+ return result;
29
+ }
30
+ async findAllUnreadByUserId(userId) {
31
+ const result = [];
32
+ for (const model of this.models.values()) {
33
+ if (model.userId === userId && !model.deleted && !model.read) {
34
+ result.push(model);
35
+ }
36
+ }
37
+ return result;
38
+ }
39
+ async markAllAsReadByUserId(userId) {
40
+ for (const model of this.models.values()) {
41
+ if (model.userId === userId && !model.deleted && !model.read) {
42
+ model.read = true;
43
+ }
44
+ }
45
+ }
46
+ async getUnreadCount(userId) {
47
+ let count = 0;
48
+ for (const model of this.models.values()) {
49
+ if (model.userId === userId && !model.deleted && !model.read) {
50
+ count++;
51
+ }
52
+ }
53
+ return count;
54
+ }
55
+ async getLatestByUpdatedAt() {
56
+ const models = Array.from(this.models.values());
57
+ if (models.length === 0) {
58
+ return undefined;
59
+ }
60
+ return models.reduce((latest, current) => current.updatedAt > latest.updatedAt ? current : latest);
61
+ }
62
+ async saveAll(models) {
63
+ for (const model of models) {
64
+ await this.save(model);
65
+ }
66
+ }
67
+ getAll() {
68
+ return Array.from(this.models.values());
69
+ }
70
+ getAllWhereDeletedIsFalse() {
71
+ return Array.from(this.models.values()).filter((model) => !model.deleted);
72
+ }
73
+ clear() {
74
+ this.models.clear();
75
+ }
76
+ }
77
+ exports.IMNotificationModelStore = IMNotificationModelStore;
78
+ //# sourceMappingURL=IMNotificationModelStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IMNotificationModelStore.js","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMNotificationModelStore.ts"],"names":[],"mappings":";;;AAEA,MAAa,wBAAwB;IAArC;QACU,WAAM,GAAmC,IAAI,GAAG,EAAE,CAAC;IAuF7D,CAAC;IArFC,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,gCAAgC,CACpC,QAAgB;QAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAwB;QACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,kCAAkC,CACtC,MAAc;QAEd,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC9C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAc;QACxC,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAc;QACxC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7D,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7D,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACvC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CACxD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAA2B;QACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,yBAAyB;QACvB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAxFD,4DAwFC"}
@@ -4,8 +4,8 @@ exports.SortUtil = void 0;
4
4
  class SortUtil {
5
5
  static sortByAmount(items, ascending = true) {
6
6
  return [...items].sort((a, b) => {
7
- const amountA = a.isOwed() ? a.getAmount() : -a.getAmount();
8
- const amountB = b.isOwed() ? b.getAmount() : -b.getAmount();
7
+ const amountA = a.getAmount();
8
+ const amountB = b.getAmount();
9
9
  return ascending ? amountA - amountB : amountB - amountA;
10
10
  });
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sortUtil.js","sourceRoot":"","sources":["../../src/utils/sortUtil.ts"],"names":[],"mappings":";;;AAUA,MAAa,QAAQ;IACnB,MAAM,CAAC,YAAY,CACjB,KAAU,EACV,YAAqB,IAAI;QAEzB,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC5D,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,wBAAwB,CAC7B,KAAU,EACV,YAAqB,IAAI;QAEzB,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC3E,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACzE,OAAO,CAAC;gBACN,IAAI,EAAE,QAAQ;gBACd,YAAY,EAAE,kBAAkB;aACjC,CAAQ,CAAC;IACZ,CAAC;CACF;AAvBD,4BAuBC"}
1
+ {"version":3,"file":"sortUtil.js","sourceRoot":"","sources":["../../src/utils/sortUtil.ts"],"names":[],"mappings":";;;AAUA,MAAa,QAAQ;IACnB,MAAM,CAAC,YAAY,CACjB,KAAU,EACV,YAAqB,IAAI;QAEzB,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,wBAAwB,CAC7B,KAAU,EACV,YAAqB,IAAI;QAEzB,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC3E,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACzE,OAAO,CAAC;gBACN,IAAI,EAAE,QAAQ;gBACd,YAAY,EAAE,kBAAkB;aACjC,CAAQ,CAAC;IACZ,CAAC;CACF;AAvBD,4BAuBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeeshan60/event-processor",
3
- "version": "1.0.109",
3
+ "version": "1.0.110",
4
4
  "description": "Shared event sourcing infrastructure for Loan Tracker projects",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",