@zeeshan60/event-processor 1.0.10 → 1.0.11

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 (138) hide show
  1. package/README.md +42 -0
  2. package/dist/ActivityEventHandler.js +1 -1
  3. package/dist/ActivityLogEvents.d.ts +2 -2
  4. package/dist/ActivityLogEvents.d.ts.map +1 -1
  5. package/dist/EventProcessorSDK.d.ts +56 -0
  6. package/dist/EventProcessorSDK.d.ts.map +1 -0
  7. package/dist/EventProcessorSDK.js +80 -0
  8. package/dist/FriendEventHandler.d.ts +2 -2
  9. package/dist/FriendEventHandler.d.ts.map +1 -1
  10. package/dist/FriendEventHandler.js +7 -13
  11. package/dist/FriendEvents.d.ts +14 -21
  12. package/dist/FriendEvents.d.ts.map +1 -1
  13. package/dist/FriendEvents.js +1 -9
  14. package/dist/GroupEventHandler.d.ts +2 -2
  15. package/dist/GroupEventHandler.d.ts.map +1 -1
  16. package/dist/GroupEventHandler.js +10 -17
  17. package/dist/GroupEvents.d.ts +17 -25
  18. package/dist/GroupEvents.d.ts.map +1 -1
  19. package/dist/GroupEvents.js +1 -10
  20. package/dist/GroupTransactionEventHandler.d.ts +2 -2
  21. package/dist/GroupTransactionEventHandler.d.ts.map +1 -1
  22. package/dist/GroupTransactionEventHandler.js +14 -12
  23. package/dist/GroupTransactionEvents.d.ts +28 -39
  24. package/dist/GroupTransactionEvents.d.ts.map +1 -1
  25. package/dist/GroupTransactionEvents.js +1 -16
  26. package/dist/TransactionEventHandler.d.ts +2 -2
  27. package/dist/TransactionEventHandler.d.ts.map +1 -1
  28. package/dist/TransactionEventHandler.js +9 -30
  29. package/dist/TransactionEvents.d.ts +25 -16
  30. package/dist/TransactionEvents.d.ts.map +1 -1
  31. package/dist/TransactionEvents.js +8 -13
  32. package/dist/UserEventHandler.d.ts.map +1 -1
  33. package/dist/UserEventHandler.js +2 -5
  34. package/dist/UserEvents.d.ts +25 -35
  35. package/dist/UserEvents.d.ts.map +1 -1
  36. package/dist/UserEvents.js +1 -22
  37. package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts +3 -3
  38. package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts.map +1 -1
  39. package/dist/__tests__/test-helpers/IMActivityLogEventStore.js +1 -1
  40. package/dist/__tests__/test-helpers/IMFriendEventStore.d.ts +3 -3
  41. package/dist/__tests__/test-helpers/IMFriendEventStore.d.ts.map +1 -1
  42. package/dist/__tests__/test-helpers/IMFriendEventStore.js +1 -1
  43. package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts +3 -3
  44. package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts.map +1 -1
  45. package/dist/__tests__/test-helpers/IMGroupEventStore.js +1 -1
  46. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.d.ts +3 -3
  47. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.d.ts.map +1 -1
  48. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.js +3 -3
  49. package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts +4 -4
  50. package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts.map +1 -1
  51. package/dist/__tests__/test-helpers/IMTransactionEventStore.js +1 -1
  52. package/dist/__tests__/test-helpers/IMUserEventStore.d.ts +4 -4
  53. package/dist/__tests__/test-helpers/IMUserEventStore.d.ts.map +1 -1
  54. package/dist/__tests__/test-helpers/IMUserEventStore.js +1 -1
  55. package/dist/__tests__/test-helpers/MockFirebaseAdapter.d.ts +6 -0
  56. package/dist/__tests__/test-helpers/MockFirebaseAdapter.d.ts.map +1 -0
  57. package/dist/__tests__/test-helpers/MockFirebaseAdapter.js +18 -0
  58. package/dist/adapters/FirebaseAdapter.d.ts +5 -0
  59. package/dist/adapters/FirebaseAdapter.d.ts.map +1 -0
  60. package/dist/adapters/FirebaseAdapter.js +2 -0
  61. package/dist/adapters/FirebaseAdminAdapter.d.ts +8 -0
  62. package/dist/adapters/FirebaseAdminAdapter.d.ts.map +1 -0
  63. package/dist/adapters/FirebaseAdminAdapter.js +21 -0
  64. package/dist/adapters/FirebaseClientAdapter.d.ts +8 -0
  65. package/dist/adapters/FirebaseClientAdapter.d.ts.map +1 -0
  66. package/dist/adapters/FirebaseClientAdapter.js +22 -0
  67. package/dist/client/controllers/UserController.d.ts +9 -0
  68. package/dist/client/controllers/UserController.d.ts.map +1 -0
  69. package/dist/client/controllers/UserController.js +36 -0
  70. package/dist/client/handlers/UIActivityEventHandler.d.ts +12 -0
  71. package/dist/client/handlers/UIActivityEventHandler.d.ts.map +1 -0
  72. package/dist/client/handlers/UIActivityEventHandler.js +14 -0
  73. package/dist/client/handlers/UIEventHandler.d.ts +25 -0
  74. package/dist/client/handlers/UIEventHandler.d.ts.map +1 -0
  75. package/dist/client/handlers/UIEventHandler.js +50 -0
  76. package/dist/client/handlers/UIFriendEventHandler.d.ts +16 -0
  77. package/dist/client/handlers/UIFriendEventHandler.d.ts.map +1 -0
  78. package/dist/client/handlers/UIFriendEventHandler.js +27 -0
  79. package/dist/client/handlers/UIGroupEventHandler.d.ts +18 -0
  80. package/dist/client/handlers/UIGroupEventHandler.d.ts.map +1 -0
  81. package/dist/client/handlers/UIGroupEventHandler.js +28 -0
  82. package/dist/client/handlers/UIGroupTransactionEventHandler.d.ts +18 -0
  83. package/dist/client/handlers/UIGroupTransactionEventHandler.d.ts.map +1 -0
  84. package/dist/client/handlers/UIGroupTransactionEventHandler.js +28 -0
  85. package/dist/client/handlers/UITransactionEventHandler.d.ts +14 -0
  86. package/dist/client/handlers/UITransactionEventHandler.d.ts.map +1 -0
  87. package/dist/client/handlers/UITransactionEventHandler.js +26 -0
  88. package/dist/client/handlers/UIUserEventHandler.d.ts +12 -0
  89. package/dist/client/handlers/UIUserEventHandler.d.ts.map +1 -0
  90. package/dist/client/handlers/UIUserEventHandler.js +29 -0
  91. package/dist/common/DomainEvents.d.ts +87 -0
  92. package/dist/common/DomainEvents.d.ts.map +1 -0
  93. package/dist/common/DomainEvents.js +91 -0
  94. package/dist/common/Event.d.ts +1 -0
  95. package/dist/common/Event.d.ts.map +1 -1
  96. package/dist/contracts/common/index.d.ts +7 -0
  97. package/dist/contracts/common/index.d.ts.map +1 -0
  98. package/dist/contracts/common/index.js +2 -0
  99. package/dist/contracts/expenses/index.d.ts +148 -0
  100. package/dist/contracts/expenses/index.d.ts.map +1 -0
  101. package/dist/contracts/expenses/index.js +30 -0
  102. package/dist/contracts/friends/index.d.ts +82 -0
  103. package/dist/contracts/friends/index.d.ts.map +1 -0
  104. package/dist/contracts/friends/index.js +2 -0
  105. package/dist/contracts/groups/index.d.ts +139 -0
  106. package/dist/contracts/groups/index.d.ts.map +1 -0
  107. package/dist/contracts/groups/index.js +2 -0
  108. package/dist/contracts/index.d.ts +7 -0
  109. package/dist/contracts/index.d.ts.map +1 -0
  110. package/dist/contracts/index.js +22 -0
  111. package/dist/contracts/shared/index.d.ts +12 -0
  112. package/dist/contracts/shared/index.d.ts.map +1 -0
  113. package/dist/contracts/shared/index.js +2 -0
  114. package/dist/contracts/transactions/index.d.ts +154 -0
  115. package/dist/contracts/transactions/index.d.ts.map +1 -0
  116. package/dist/contracts/transactions/index.js +19 -0
  117. package/dist/converters/eventConverter.d.ts +17 -0
  118. package/dist/converters/eventConverter.d.ts.map +1 -0
  119. package/dist/converters/eventConverter.js +344 -0
  120. package/dist/events.d.ts +0 -1
  121. package/dist/events.d.ts.map +1 -1
  122. package/dist/events.js +1 -11
  123. package/dist/index.d.ts +12 -2
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +45 -3
  126. package/dist/store/ActivityLogEventStore.d.ts +2 -2
  127. package/dist/store/ActivityLogEventStore.d.ts.map +1 -1
  128. package/dist/store/FriendEventStore.d.ts +2 -2
  129. package/dist/store/FriendEventStore.d.ts.map +1 -1
  130. package/dist/store/GroupEventStore.d.ts +2 -2
  131. package/dist/store/GroupEventStore.d.ts.map +1 -1
  132. package/dist/store/GroupTransactionEventStore.d.ts +2 -2
  133. package/dist/store/GroupTransactionEventStore.d.ts.map +1 -1
  134. package/dist/store/TransactionEventStore.d.ts +2 -2
  135. package/dist/store/TransactionEventStore.d.ts.map +1 -1
  136. package/dist/store/UserEventStore.d.ts +2 -2
  137. package/dist/store/UserEventStore.d.ts.map +1 -1
  138. package/package.json +1 -1
@@ -1,20 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UserConvertedToPlaceholder = exports.PlaceholderUserMerged = exports.UserDeleted = exports.UserDisplayNameChanged = exports.UserPhoneNumberChanged = exports.UserCurrencyChanged = exports.PlaceholderUserCreated = exports.UserCreated = exports.UserEventType = void 0;
3
+ exports.UserConvertedToPlaceholder = exports.PlaceholderUserMerged = exports.UserDeleted = exports.UserDisplayNameChanged = exports.UserPhoneNumberChanged = exports.UserCurrencyChanged = exports.PlaceholderUserCreated = exports.UserCreated = void 0;
4
4
  const ActivityLogEvents_1 = require("./ActivityLogEvents");
5
5
  const uuid_1 = require("uuid");
6
- // User Event Types
7
- var UserEventType;
8
- (function (UserEventType) {
9
- UserEventType["USER_CREATED"] = "USER_CREATED";
10
- UserEventType["PLACEHOLDER_USER_CREATED"] = "PLACEHOLDER_USER_CREATED";
11
- UserEventType["USER_DELETED"] = "USER_DELETED";
12
- UserEventType["CURRENCY_CHANGED"] = "CURRENCY_CHANGED";
13
- UserEventType["PHONE_NUMBER_CHANGED"] = "PHONE_NUMBER_CHANGED";
14
- UserEventType["DISPLAY_NAME_CHANGED"] = "DISPLAY_NAME_CHANGED";
15
- UserEventType["PLACEHOLDER_USER_MERGED"] = "PLACEHOLDER_USER_MERGED";
16
- UserEventType["USER_CONVERTED_TO_PLACEHOLDER"] = "USER_CONVERTED_TO_PLACEHOLDER";
17
- })(UserEventType || (exports.UserEventType = UserEventType = {}));
18
6
  class UserCreated {
19
7
  constructor(props) {
20
8
  this.userId = props.userId;
@@ -31,9 +19,6 @@ class UserCreated {
31
19
  this.systemGenerated = props.systemGenerated;
32
20
  }
33
21
  apply(_existing) {
34
- if (!this.userId) {
35
- throw new Error('userId is required for UserModel');
36
- }
37
22
  return {
38
23
  streamId: this.streamId,
39
24
  userId: this.userId,
@@ -54,9 +39,6 @@ class UserCreated {
54
39
  };
55
40
  }
56
41
  activityLog(_existing, actorName) {
57
- if (!this.userId) {
58
- return undefined;
59
- }
60
42
  const actor = actorName ?? 'You';
61
43
  const possessive = actor === 'You' ? 'your' : `${actor}'s`;
62
44
  const logMessage = `${actor} created ${possessive} profile as "${this.displayName}"`;
@@ -89,9 +71,6 @@ class PlaceholderUserCreated {
89
71
  this.systemGenerated = props.systemGenerated;
90
72
  }
91
73
  apply(_existing) {
92
- if (!this.userId) {
93
- throw new Error('userId is required for UserModel');
94
- }
95
74
  return {
96
75
  streamId: this.streamId,
97
76
  userId: this.userId,
@@ -1,9 +1,9 @@
1
1
  import { ActivityLogEventStore } from '../..';
2
- import { Event } from '../..';
2
+ import { ActivityLogEvent } from '../..';
3
3
  export declare class IMActivityLogEventStore extends ActivityLogEventStore {
4
4
  private events;
5
- addEvent(_userId: string, event: Event): Promise<void>;
6
- getAllEvents(): Event[];
5
+ addEvent(event: ActivityLogEvent): Promise<void>;
6
+ getAllEvents(): ActivityLogEvent[];
7
7
  clear(): void;
8
8
  }
9
9
  //# sourceMappingURL=IMActivityLogEventStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IMActivityLogEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMActivityLogEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAE5B,qBAAa,uBAAwB,SAAQ,qBAAqB;IAChE,OAAO,CAAC,MAAM,CAAe;IAEvB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D,YAAY,IAAI,KAAK,EAAE;IAIvB,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"IMActivityLogEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMActivityLogEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAC,gBAAgB,EAAC,MAAM,OAAO,CAAC;AAEvC,qBAAa,uBAAwB,SAAQ,qBAAqB;IAChE,OAAO,CAAC,MAAM,CAA0B;IAElC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD,YAAY,IAAI,gBAAgB,EAAE;IAIlC,KAAK,IAAI,IAAI;CAGd"}
@@ -7,7 +7,7 @@ class IMActivityLogEventStore extends __1.ActivityLogEventStore {
7
7
  super(...arguments);
8
8
  this.events = [];
9
9
  }
10
- async addEvent(_userId, event) {
10
+ async addEvent(event) {
11
11
  this.events.push(event);
12
12
  }
13
13
  // Test helper methods
@@ -1,9 +1,9 @@
1
1
  import { FriendEventStore } from '../..';
2
- import { Event } from '../..';
2
+ import { FriendEvent } from '../..';
3
3
  export declare class IMFriendEventStore extends FriendEventStore {
4
4
  private events;
5
- addEvent(_userId: string, event: Event): Promise<void>;
6
- getAll(): Event[];
5
+ addEvent(event: FriendEvent): Promise<void>;
6
+ getAll(): FriendEvent[];
7
7
  clear(): void;
8
8
  }
9
9
  //# sourceMappingURL=IMFriendEventStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IMFriendEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMFriendEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,OAAO,CAAC;AACvC,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAE5B,qBAAa,kBAAmB,SAAQ,gBAAgB;IACpD,OAAO,CAAC,MAAM,CAAe;IAEvB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,MAAM,IAAI,KAAK,EAAE;IAIjB,KAAK,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"IMFriendEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMFriendEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,OAAO,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,OAAO,CAAC;AAElC,qBAAa,kBAAmB,SAAQ,gBAAgB;IACpD,OAAO,CAAC,MAAM,CAAqB;IAE7B,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,MAAM,IAAI,WAAW,EAAE;IAIvB,KAAK,IAAI,IAAI;CAGhB"}
@@ -7,7 +7,7 @@ class IMFriendEventStore extends __1.FriendEventStore {
7
7
  super(...arguments);
8
8
  this.events = [];
9
9
  }
10
- async addEvent(_userId, event) {
10
+ async addEvent(event) {
11
11
  this.events.push(event);
12
12
  }
13
13
  getAll() {
@@ -1,9 +1,9 @@
1
1
  import { GroupEventStore } from '../..';
2
- import { Event } from '../..';
2
+ import { GroupEvent } from '../..';
3
3
  export declare class IMGroupEventStore extends GroupEventStore {
4
4
  private events;
5
- addEvent(_userId: string, event: Event): Promise<void>;
6
- getAll(): Event[];
5
+ addEvent(event: GroupEvent): Promise<void>;
6
+ getAll(): GroupEvent[];
7
7
  clear(): void;
8
8
  }
9
9
  //# sourceMappingURL=IMGroupEventStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IMGroupEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMGroupEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,OAAO,CAAC;AACtC,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAE5B,qBAAa,iBAAkB,SAAQ,eAAe;IAClD,OAAO,CAAC,MAAM,CAAe;IAEvB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,MAAM,IAAI,KAAK,EAAE;IAIjB,KAAK,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"IMGroupEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMGroupEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,OAAO,CAAC;AACtC,OAAO,EAAC,UAAU,EAAC,MAAM,OAAO,CAAC;AAEjC,qBAAa,iBAAkB,SAAQ,eAAe;IAClD,OAAO,CAAC,MAAM,CAAoB;IAE5B,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,MAAM,IAAI,UAAU,EAAE;IAItB,KAAK,IAAI,IAAI;CAGhB"}
@@ -7,7 +7,7 @@ class IMGroupEventStore extends __1.GroupEventStore {
7
7
  super(...arguments);
8
8
  this.events = [];
9
9
  }
10
- async addEvent(_userId, event) {
10
+ async addEvent(event) {
11
11
  this.events.push(event);
12
12
  }
13
13
  getAll() {
@@ -1,9 +1,9 @@
1
1
  import { GroupTransactionEventStore } from '../..';
2
- import { Event } from '../..';
2
+ import { GroupTransactionEvent } from '../..';
3
3
  export declare class IMGroupTransactionEventStore extends GroupTransactionEventStore {
4
4
  private events;
5
- addEvent(userId: string, event: Event): Promise<void>;
6
- getEvents(userId: string): Event[];
5
+ addEvent(event: GroupTransactionEvent): Promise<void>;
6
+ getEvents(userId: string): GroupTransactionEvent[];
7
7
  clear(): void;
8
8
  }
9
9
  //# sourceMappingURL=IMGroupTransactionEventStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IMGroupTransactionEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMGroupTransactionEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,OAAO,CAAC;AACjD,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAE5B,qBAAa,4BAA6B,SAAQ,0BAA0B;IACxE,OAAO,CAAC,MAAM,CAAmC;IAE3C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE;IAIlC,KAAK,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"IMGroupTransactionEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMGroupTransactionEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,OAAO,CAAC;AACjD,OAAO,EAAC,qBAAqB,EAAC,MAAM,OAAO,CAAC;AAE5C,qBAAa,4BAA6B,SAAQ,0BAA0B;IACxE,OAAO,CAAC,MAAM,CAAmD;IAE3D,QAAQ,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAIlD,KAAK,IAAI,IAAI;CAGhB"}
@@ -7,10 +7,10 @@ class IMGroupTransactionEventStore extends __1.GroupTransactionEventStore {
7
7
  super(...arguments);
8
8
  this.events = new Map();
9
9
  }
10
- async addEvent(userId, event) {
11
- const userEvents = this.events.get(userId) || [];
10
+ async addEvent(event) {
11
+ const userEvents = this.events.get(event.userId) || [];
12
12
  userEvents.push(event);
13
- this.events.set(userId, userEvents);
13
+ this.events.set(event.userId, userEvents);
14
14
  }
15
15
  getEvents(userId) {
16
16
  return this.events.get(userId) || [];
@@ -1,10 +1,10 @@
1
1
  import { TransactionEventStore } from '../..';
2
- import { Event } from '../..';
2
+ import { TransactionEvent } from '../..';
3
3
  export declare class IMTransactionEventStore extends TransactionEventStore {
4
4
  private events;
5
- addEvent(_userId: string, event: Event): Promise<void>;
6
- getEvents(): Event[];
7
- getEventsByStreamId(streamId: string): Event[];
5
+ addEvent(event: TransactionEvent): Promise<void>;
6
+ getEvents(): TransactionEvent[];
7
+ getEventsByStreamId(streamId: string): TransactionEvent[];
8
8
  clear(): void;
9
9
  }
10
10
  //# sourceMappingURL=IMTransactionEventStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IMTransactionEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMTransactionEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAE5B,qBAAa,uBAAwB,SAAQ,qBAAqB;IAC9D,OAAO,CAAC,MAAM,CAAe;IAEvB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,SAAS,IAAI,KAAK,EAAE;IAIpB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE;IAI9C,KAAK,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"IMTransactionEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMTransactionEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,qBAAqB,EAAC,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAC,gBAAgB,EAAC,MAAM,OAAO,CAAC;AAEvC,qBAAa,uBAAwB,SAAQ,qBAAqB;IAC9D,OAAO,CAAC,MAAM,CAA0B;IAElC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,SAAS,IAAI,gBAAgB,EAAE;IAI/B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAIzD,KAAK,IAAI,IAAI;CAGhB"}
@@ -7,7 +7,7 @@ class IMTransactionEventStore extends __1.TransactionEventStore {
7
7
  super(...arguments);
8
8
  this.events = [];
9
9
  }
10
- async addEvent(_userId, event) {
10
+ async addEvent(event) {
11
11
  this.events.push(event);
12
12
  }
13
13
  getEvents() {
@@ -1,10 +1,10 @@
1
1
  import { UserEventStore } from '../..';
2
- import { Event } from '../..';
2
+ import { UserEvent } from '../..';
3
3
  export declare class IMUserEventStore extends UserEventStore {
4
4
  private events;
5
- addEvent(_userId: string, event: Event): Promise<void>;
6
- getEvents(): Event[];
7
- getEventsByStreamId(streamId: string): Event[];
5
+ addEvent(event: UserEvent): Promise<void>;
6
+ getEvents(): UserEvent[];
7
+ getEventsByStreamId(streamId: string): UserEvent[];
8
8
  clear(): void;
9
9
  }
10
10
  //# sourceMappingURL=IMUserEventStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IMUserEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMUserEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAE5B,qBAAa,gBAAiB,SAAQ,cAAc;IAChD,OAAO,CAAC,MAAM,CAAe;IAEvB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,SAAS,IAAI,KAAK,EAAE;IAIpB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE;IAI9C,KAAK,IAAI,IAAI;CAGhB"}
1
+ {"version":3,"file":"IMUserEventStore.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/IMUserEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAEhC,qBAAa,gBAAiB,SAAQ,cAAc;IAChD,OAAO,CAAC,MAAM,CAAmB;IAE3B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,SAAS,IAAI,SAAS,EAAE;IAIxB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE;IAIlD,KAAK,IAAI,IAAI;CAGhB"}
@@ -7,7 +7,7 @@ class IMUserEventStore extends __1.UserEventStore {
7
7
  super(...arguments);
8
8
  this.events = [];
9
9
  }
10
- async addEvent(_userId, event) {
10
+ async addEvent(event) {
11
11
  this.events.push(event);
12
12
  }
13
13
  getEvents() {
@@ -0,0 +1,6 @@
1
+ import { FirebaseAdapter } from '../../adapters/FirebaseAdapter';
2
+ export declare class MockFirebaseAdapter implements FirebaseAdapter {
3
+ fromDate(date: Date): any;
4
+ toDate(timestamp: any): Date;
5
+ }
6
+ //# sourceMappingURL=MockFirebaseAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockFirebaseAdapter.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/MockFirebaseAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAE/D,qBAAa,mBAAoB,YAAW,eAAe;IACvD,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;IAIzB,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;CAS/B"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockFirebaseAdapter = void 0;
4
+ class MockFirebaseAdapter {
5
+ fromDate(date) {
6
+ return { seconds: Math.floor(date.getTime() / 1000), nanoseconds: 0 };
7
+ }
8
+ toDate(timestamp) {
9
+ if (timestamp instanceof Date) {
10
+ return timestamp;
11
+ }
12
+ if (timestamp && typeof timestamp.seconds === 'number') {
13
+ return new Date(timestamp.seconds * 1000);
14
+ }
15
+ return new Date(timestamp);
16
+ }
17
+ }
18
+ exports.MockFirebaseAdapter = MockFirebaseAdapter;
@@ -0,0 +1,5 @@
1
+ export interface FirebaseAdapter {
2
+ fromDate(date: Date): any;
3
+ toDate(timestamp: any): Date;
4
+ }
5
+ //# sourceMappingURL=FirebaseAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FirebaseAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/FirebaseAdapter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG,CAAC;IAE1B,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC;CAChC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import { FirebaseAdapter } from './FirebaseAdapter';
2
+ export declare class FirebaseAdminAdapter implements FirebaseAdapter {
3
+ private admin;
4
+ constructor(admin: any);
5
+ fromDate(date: Date): any;
6
+ toDate(timestamp: any): Date;
7
+ }
8
+ //# sourceMappingURL=FirebaseAdminAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FirebaseAdminAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/FirebaseAdminAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElD,qBAAa,oBAAqB,YAAW,eAAe;IACxD,OAAO,CAAC,KAAK,CAAM;gBAEP,KAAK,EAAE,GAAG;IAItB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;IAIzB,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;CAS/B"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FirebaseAdminAdapter = void 0;
4
+ class FirebaseAdminAdapter {
5
+ constructor(admin) {
6
+ this.admin = admin;
7
+ }
8
+ fromDate(date) {
9
+ return this.admin.firestore.Timestamp.fromDate(date);
10
+ }
11
+ toDate(timestamp) {
12
+ if (timestamp && typeof timestamp.toDate === 'function') {
13
+ return timestamp.toDate();
14
+ }
15
+ if (timestamp instanceof Date) {
16
+ return timestamp;
17
+ }
18
+ return new Date(timestamp);
19
+ }
20
+ }
21
+ exports.FirebaseAdminAdapter = FirebaseAdminAdapter;
@@ -0,0 +1,8 @@
1
+ import { FirebaseAdapter } from './FirebaseAdapter';
2
+ export declare class FirebaseClientAdapter implements FirebaseAdapter {
3
+ private Timestamp;
4
+ constructor(firebaseApp: any);
5
+ fromDate(date: Date): any;
6
+ toDate(timestamp: any): Date;
7
+ }
8
+ //# sourceMappingURL=FirebaseClientAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FirebaseClientAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/FirebaseClientAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElD,qBAAa,qBAAsB,YAAW,eAAe;IACzD,OAAO,CAAC,SAAS,CAAM;gBAEX,WAAW,EAAE,GAAG;IAK5B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG;IAIzB,MAAM,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;CAS/B"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FirebaseClientAdapter = void 0;
4
+ class FirebaseClientAdapter {
5
+ constructor(firebaseApp) {
6
+ const { Timestamp } = require('firebase/firestore');
7
+ this.Timestamp = Timestamp;
8
+ }
9
+ fromDate(date) {
10
+ return this.Timestamp.fromDate(date);
11
+ }
12
+ toDate(timestamp) {
13
+ if (timestamp && typeof timestamp.toDate === 'function') {
14
+ return timestamp.toDate();
15
+ }
16
+ if (timestamp instanceof Date) {
17
+ return timestamp;
18
+ }
19
+ return new Date(timestamp);
20
+ }
21
+ }
22
+ exports.FirebaseClientAdapter = FirebaseClientAdapter;
@@ -0,0 +1,9 @@
1
+ import { UserModelStore } from '../../store/UserModelStore';
2
+ import { UserEventStore } from '../../store/UserEventStore';
3
+ export declare class UserController {
4
+ private modelStore;
5
+ private eventStore?;
6
+ constructor(modelStore: UserModelStore, eventStore?: UserEventStore | undefined);
7
+ loginUser(userFSId: string): Promise<string>;
8
+ }
9
+ //# sourceMappingURL=UserController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserController.d.ts","sourceRoot":"","sources":["../../../src/client/controllers/UserController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAG1D,qBAAa,cAAc;IAEnB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,UAAU,CAAC;gBADX,UAAU,EAAE,cAAc,EAC1B,UAAU,CAAC,EAAE,cAAc,YAAA;IAGjC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA+BrD"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserController = void 0;
4
+ const EventBusSingleton_1 = require("../../common/EventBusSingleton");
5
+ const UserEvents_1 = require("../../UserEvents");
6
+ const rxjs_1 = require("rxjs");
7
+ class UserController {
8
+ constructor(modelStore, eventStore) {
9
+ this.modelStore = modelStore;
10
+ this.eventStore = eventStore;
11
+ }
12
+ async loginUser(userFSId) {
13
+ const existingUser = await this.modelStore.findByFirebaseUid(userFSId);
14
+ if (existingUser) {
15
+ return existingUser.userId;
16
+ }
17
+ const eventBus = (0, EventBusSingleton_1.getEventBus)();
18
+ const isUserCreatedForFirebaseUid = (event) => {
19
+ return event instanceof UserEvents_1.UserCreated && event.firebaseUid === userFSId;
20
+ };
21
+ try {
22
+ const event = await (0, rxjs_1.firstValueFrom)(eventBus.observable(isUserCreatedForFirebaseUid).pipe((0, rxjs_1.timeout)(10000)));
23
+ if (!event.userId) {
24
+ throw new Error('UserCreated event missing userId');
25
+ }
26
+ return event.userId;
27
+ }
28
+ catch (error) {
29
+ if (error.name === 'TimeoutError') {
30
+ throw new Error(`Timeout waiting for UserCreated event for firebaseUid: ${userFSId}`);
31
+ }
32
+ throw error;
33
+ }
34
+ }
35
+ }
36
+ exports.UserController = UserController;
@@ -0,0 +1,12 @@
1
+ import { ActivityLogEvent } from '../..';
2
+ import { ActivityLogModelStore } from '../..';
3
+ import { ActivityLogEventStore } from '../..';
4
+ import { UserModelStore } from '../..';
5
+ export declare class UIActivityEventHandler {
6
+ private activityLogModelStore;
7
+ private activityLogEventStore;
8
+ private userModelStore;
9
+ constructor(activityLogModelStore: ActivityLogModelStore, activityLogEventStore: ActivityLogEventStore, userModelStore: UserModelStore);
10
+ handleEvent(event: ActivityLogEvent): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=UIActivityEventHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UIActivityEventHandler.d.ts","sourceRoot":"","sources":["../../../src/client/handlers/UIActivityEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAQ,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAC,qBAAqB,EAAC,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAC,qBAAqB,EAAC,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAErC,qBAAa,sBAAsB;IAE3B,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,cAAc;gBAFd,qBAAqB,EAAE,qBAAqB,EAC5C,qBAAqB,EAAE,qBAAqB,EAC5C,cAAc,EAAE,cAAc;IAGpC,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAG5D"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UIActivityEventHandler = void 0;
4
+ class UIActivityEventHandler {
5
+ constructor(activityLogModelStore, activityLogEventStore, userModelStore) {
6
+ this.activityLogModelStore = activityLogModelStore;
7
+ this.activityLogEventStore = activityLogEventStore;
8
+ this.userModelStore = userModelStore;
9
+ }
10
+ async handleEvent(event) {
11
+ // Empty stub - implement as needed
12
+ }
13
+ }
14
+ exports.UIActivityEventHandler = UIActivityEventHandler;
@@ -0,0 +1,25 @@
1
+ import { UserModelStore } from '../../store/UserModelStore';
2
+ interface FirestoreTimestamp {
3
+ toDate(): Date;
4
+ seconds: number;
5
+ nanoseconds: number;
6
+ }
7
+ interface ClientFirestoreEventData {
8
+ id: string;
9
+ eventType: string;
10
+ streamId: string;
11
+ version: number;
12
+ createdAt: FirestoreTimestamp | Date;
13
+ createdBy: string;
14
+ systemGenerated?: boolean;
15
+ [key: string]: any;
16
+ }
17
+ export declare class UIEventHandler {
18
+ private userModelStore;
19
+ constructor(userModelStore: UserModelStore);
20
+ handleFirestoreEvent(eventData: ClientFirestoreEventData): Promise<void>;
21
+ private firestoreToEvent;
22
+ private toDate;
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=UIEventHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UIEventHandler.d.ts","sourceRoot":"","sources":["../../../src/client/handlers/UIEventHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAG1D,UAAU,kBAAkB;IACxB,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,wBAAwB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,qBAAa,cAAc;IAEnB,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAGpC,oBAAoB,CAAC,SAAS,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9E,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,MAAM;CASjB"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UIEventHandler = void 0;
4
+ const index_1 = require("../../index");
5
+ const EventBusSingleton_1 = require("../../common/EventBusSingleton");
6
+ class UIEventHandler {
7
+ constructor(userModelStore) {
8
+ this.userModelStore = userModelStore;
9
+ }
10
+ async handleFirestoreEvent(eventData) {
11
+ const event = this.firestoreToEvent(eventData);
12
+ if (event instanceof index_1.UserCreated) {
13
+ const existingModel = await this.userModelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
14
+ const updatedModel = event.apply(existingModel);
15
+ await this.userModelStore.save(updatedModel);
16
+ (0, EventBusSingleton_1.getEventBus)().publish(event);
17
+ }
18
+ }
19
+ firestoreToEvent(data) {
20
+ const eventType = data.eventType;
21
+ const createdAt = this.toDate(data.createdAt);
22
+ if (eventType === 'UserCreated') {
23
+ return new index_1.UserCreated({
24
+ userId: data.userId,
25
+ firebaseUid: data.firebaseUid,
26
+ displayName: data.displayName,
27
+ phoneNumber: data.phoneNumber,
28
+ email: data.email,
29
+ photoUrl: data.photoUrl,
30
+ emailVerified: data.emailVerified,
31
+ createdAt,
32
+ createdBy: data.createdBy,
33
+ streamId: data.streamId,
34
+ version: data.version,
35
+ systemGenerated: data.systemGenerated ?? false,
36
+ });
37
+ }
38
+ throw new Error(`Unsupported event type: ${eventType}`);
39
+ }
40
+ toDate(timestamp) {
41
+ if (timestamp instanceof Date) {
42
+ return timestamp;
43
+ }
44
+ if (typeof timestamp === 'object' && 'toDate' in timestamp) {
45
+ return timestamp.toDate();
46
+ }
47
+ return new Date(timestamp);
48
+ }
49
+ }
50
+ exports.UIEventHandler = UIEventHandler;
@@ -0,0 +1,16 @@
1
+ import { FriendModel, FriendEvent } from '../..';
2
+ import { FriendModelStore } from '../..';
3
+ import { UserModelStore } from '../..';
4
+ import { FriendEventStore } from '../..';
5
+ import { UserEventStore } from '../..';
6
+ import { ActivityEventHandler } from '../../ActivityEventHandler';
7
+ export declare class UIFriendEventHandler {
8
+ private modelStore;
9
+ private userModelStore;
10
+ private friendEventStore;
11
+ private userEventStore;
12
+ private activityEventHandler?;
13
+ constructor(modelStore: FriendModelStore, userModelStore: UserModelStore, friendEventStore: FriendEventStore, userEventStore: UserEventStore, activityEventHandler?: ActivityEventHandler | undefined);
14
+ handleEvent(event: FriendEvent): Promise<FriendModel>;
15
+ }
16
+ //# sourceMappingURL=UIFriendEventHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UIFriendEventHandler.d.ts","sourceRoot":"","sources":["../../../src/client/handlers/UIFriendEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,WAAW,EACd,MAAM,OAAO,CAAC;AACf,OAAO,EAAC,gBAAgB,EAAC,MAAM,OAAO,CAAC;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,gBAAgB,EAAC,MAAM,OAAO,CAAC;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AAGhE,qBAAa,oBAAoB;IAEzB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,oBAAoB,CAAC;gBAJrB,UAAU,EAAE,gBAAgB,EAC5B,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,EAC9B,oBAAoB,CAAC,EAAE,oBAAoB,YAAA;IAGjD,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAe9D"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UIFriendEventHandler = void 0;
4
+ const DomainEvents_1 = require("../../common/DomainEvents");
5
+ class UIFriendEventHandler {
6
+ constructor(modelStore, userModelStore, friendEventStore, userEventStore, activityEventHandler) {
7
+ this.modelStore = modelStore;
8
+ this.userModelStore = userModelStore;
9
+ this.friendEventStore = friendEventStore;
10
+ this.userEventStore = userEventStore;
11
+ this.activityEventHandler = activityEventHandler;
12
+ }
13
+ async handleEvent(event) {
14
+ const eventType = event.constructor.name;
15
+ if (!(0, DomainEvents_1.isValidFriendEventType)(eventType)) {
16
+ throw new Error(`Unknown friend event type: ${eventType}`);
17
+ }
18
+ const existingModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
19
+ const updatedModel = event.apply(existingModel);
20
+ await this.modelStore.save(updatedModel);
21
+ if (this.activityEventHandler) {
22
+ await this.activityEventHandler.createActivityLog(event, existingModel, updatedModel);
23
+ }
24
+ return updatedModel;
25
+ }
26
+ }
27
+ exports.UIFriendEventHandler = UIFriendEventHandler;
@@ -0,0 +1,18 @@
1
+ import { GroupModel, GroupEvent } from '../..';
2
+ import { GroupModelStore } from '../..';
3
+ import { FriendModelStore } from '../..';
4
+ import { UserModelStore } from '../..';
5
+ import { GroupEventStore } from '../..';
6
+ import { FriendEventStore } from '../..';
7
+ import { ActivityEventHandler } from '../../ActivityEventHandler';
8
+ export declare class UIGroupEventHandler {
9
+ private modelStore;
10
+ private friendModelStore;
11
+ private userModelStore;
12
+ private groupEventStore;
13
+ private friendEventStore;
14
+ private activityEventHandler?;
15
+ constructor(modelStore: GroupModelStore, friendModelStore: FriendModelStore, userModelStore: UserModelStore, groupEventStore: GroupEventStore, friendEventStore: FriendEventStore, activityEventHandler?: ActivityEventHandler | undefined);
16
+ handleEvent(event: GroupEvent): Promise<GroupModel>;
17
+ }
18
+ //# sourceMappingURL=UIGroupEventHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UIGroupEventHandler.d.ts","sourceRoot":"","sources":["../../../src/client/handlers/UIGroupEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,UAAU,EACb,MAAM,OAAO,CAAC;AACf,OAAO,EAAC,eAAe,EAAC,MAAM,OAAO,CAAC;AACtC,OAAO,EAAC,gBAAgB,EAAC,MAAM,OAAO,CAAC;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,eAAe,EAAC,MAAM,OAAO,CAAC;AACtC,OAAO,EAAC,gBAAgB,EAAC,MAAM,OAAO,CAAC;AACvC,OAAO,EAAC,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AAGhE,qBAAa,mBAAmB;IAExB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,oBAAoB,CAAC;gBALrB,UAAU,EAAE,eAAe,EAC3B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,oBAAoB,CAAC,EAAE,oBAAoB,YAAA;IAGjD,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAe5D"}