@zeeshan60/event-processor 1.0.5 → 1.0.6

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 (78) hide show
  1. package/dist/ActivityLogEvents.d.ts +2 -0
  2. package/dist/ActivityLogEvents.d.ts.map +1 -1
  3. package/dist/ActivityLogEvents.js +1 -0
  4. package/dist/FriendEventHandler.d.ts.map +1 -1
  5. package/dist/FriendEventHandler.js +5 -0
  6. package/dist/FriendEvents.d.ts +10 -0
  7. package/dist/FriendEvents.d.ts.map +1 -1
  8. package/dist/FriendEvents.js +9 -0
  9. package/dist/GroupEventHandler.d.ts.map +1 -1
  10. package/dist/GroupEventHandler.js +8 -0
  11. package/dist/GroupEvents.d.ts +12 -0
  12. package/dist/GroupEvents.d.ts.map +1 -1
  13. package/dist/GroupEvents.js +12 -0
  14. package/dist/GroupTransactionEventHandler.d.ts.map +1 -1
  15. package/dist/GroupTransactionEventHandler.js +7 -0
  16. package/dist/GroupTransactionEvents.d.ts +18 -0
  17. package/dist/GroupTransactionEvents.d.ts.map +1 -1
  18. package/dist/GroupTransactionEvents.js +18 -0
  19. package/dist/TransactionEventHandler.d.ts.map +1 -1
  20. package/dist/TransactionEventHandler.js +7 -0
  21. package/dist/TransactionEvents.d.ts +16 -0
  22. package/dist/TransactionEvents.d.ts.map +1 -1
  23. package/dist/TransactionEvents.js +16 -0
  24. package/dist/UserEvents.d.ts +16 -0
  25. package/dist/UserEvents.d.ts.map +1 -1
  26. package/dist/UserEvents.js +12 -0
  27. package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts +9 -0
  28. package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts.map +1 -0
  29. package/dist/__tests__/test-helpers/IMActivityLogEventStore.js +21 -0
  30. package/dist/__tests__/test-helpers/IMActivityLogModelStore.d.ts +11 -0
  31. package/dist/__tests__/test-helpers/IMActivityLogModelStore.d.ts.map +1 -0
  32. package/dist/{store/InMemoryModelStore.js → __tests__/test-helpers/IMActivityLogModelStore.js} +14 -13
  33. package/dist/__tests__/test-helpers/IMFriendEventStore.d.ts +9 -0
  34. package/dist/__tests__/test-helpers/IMFriendEventStore.d.ts.map +1 -0
  35. package/dist/__tests__/test-helpers/IMFriendEventStore.js +20 -0
  36. package/dist/__tests__/test-helpers/IMFriendModelStore.d.ts +16 -0
  37. package/dist/__tests__/test-helpers/IMFriendModelStore.d.ts.map +1 -0
  38. package/dist/__tests__/test-helpers/IMFriendModelStore.js +74 -0
  39. package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts +9 -0
  40. package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts.map +1 -0
  41. package/dist/__tests__/test-helpers/IMGroupEventStore.js +20 -0
  42. package/dist/__tests__/test-helpers/IMGroupModelStore.d.ts +14 -0
  43. package/dist/__tests__/test-helpers/IMGroupModelStore.d.ts.map +1 -0
  44. package/dist/__tests__/test-helpers/IMGroupModelStore.js +53 -0
  45. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.d.ts +9 -0
  46. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.d.ts.map +1 -0
  47. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.js +22 -0
  48. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.d.ts +14 -0
  49. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.d.ts.map +1 -0
  50. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.js +55 -0
  51. package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts +10 -0
  52. package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts.map +1 -0
  53. package/dist/__tests__/test-helpers/IMTransactionEventStore.js +23 -0
  54. package/dist/__tests__/test-helpers/IMTransactionModelStore.d.ts +14 -0
  55. package/dist/__tests__/test-helpers/IMTransactionModelStore.d.ts.map +1 -0
  56. package/dist/__tests__/test-helpers/IMTransactionModelStore.js +56 -0
  57. package/dist/__tests__/test-helpers/IMUserEventStore.d.ts +10 -0
  58. package/dist/__tests__/test-helpers/IMUserEventStore.d.ts.map +1 -0
  59. package/dist/{store/InMemoryEventStore.js → __tests__/test-helpers/IMUserEventStore.js} +5 -5
  60. package/dist/__tests__/test-helpers/IMUserModelStore.d.ts +15 -0
  61. package/dist/__tests__/test-helpers/IMUserModelStore.d.ts.map +1 -0
  62. package/dist/__tests__/test-helpers/IMUserModelStore.js +58 -0
  63. package/dist/common/Event.d.ts +1 -0
  64. package/dist/common/Event.d.ts.map +1 -1
  65. package/package.json +1 -1
  66. package/dist/common/EventStore.d.ts +0 -5
  67. package/dist/common/EventStore.d.ts.map +0 -1
  68. package/dist/common/EventStore.js +0 -6
  69. package/dist/common/ModelStore.d.ts +0 -6
  70. package/dist/common/ModelStore.d.ts.map +0 -1
  71. package/dist/common/ModelStore.js +0 -6
  72. package/dist/store/InMemoryEventStore.d.ts +0 -10
  73. package/dist/store/InMemoryEventStore.d.ts.map +0 -1
  74. package/dist/store/InMemoryModelStore.d.ts +0 -11
  75. package/dist/store/InMemoryModelStore.d.ts.map +0 -1
  76. package/dist/utils/eventConverter.d.ts +0 -23
  77. package/dist/utils/eventConverter.d.ts.map +0 -1
  78. package/dist/utils/eventConverter.js +0 -370
@@ -1,370 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.eventToFirestore = eventToFirestore;
37
- exports.firestoreToEvent = firestoreToEvent;
38
- const __1 = require("..");
39
- const admin = __importStar(require("firebase-admin"));
40
- const MAIN_TYPE_TO_EVENT_TYPES = {
41
- transaction: [
42
- 'TransactionCreated',
43
- 'TransactionDeleted',
44
- 'DescriptionChanged',
45
- 'TotalAmountChanged',
46
- 'SplitTypeChanged',
47
- ],
48
- user: [
49
- 'UserCreated',
50
- 'PlaceholderUserCreated',
51
- 'UserCurrencyChanged',
52
- 'UserPhoneNumberChanged',
53
- 'UserDisplayNameChanged',
54
- 'UserDeleted',
55
- 'UserConvertedToPlaceholder',
56
- ],
57
- friend: [
58
- 'FriendCreated',
59
- 'FriendUpdated',
60
- 'FriendDeleted',
61
- 'FriendIdAdded',
62
- 'FriendIdRemoved',
63
- ],
64
- activityLog: ['ActivityLogCreated'],
65
- };
66
- function getMainTypeForEvent(eventType) {
67
- for (const [mainType, eventTypes] of Object.entries(MAIN_TYPE_TO_EVENT_TYPES)) {
68
- if (eventTypes.includes(eventType)) {
69
- return mainType;
70
- }
71
- }
72
- throw new Error(`Unknown event type: ${eventType}`);
73
- }
74
- /**
75
- * Converts a domain Event to Firestore-friendly format
76
- */
77
- function eventToFirestore(event, eventId) {
78
- const eventWithUserId = event;
79
- const eventType = event.constructor.name;
80
- const eventMainType = getMainTypeForEvent(eventType);
81
- const eventData = {
82
- eventId,
83
- streamId: event.streamId,
84
- version: event.version,
85
- createdAt: admin.firestore.Timestamp.fromDate(event.createdAt),
86
- createdBy: event.createdBy,
87
- eventType,
88
- eventMainType,
89
- systemGenerated: true,
90
- };
91
- if (eventWithUserId.userId) {
92
- eventData.userId = eventWithUserId.userId;
93
- }
94
- if (eventType === 'TransactionCreated') {
95
- const txEvent = event;
96
- eventData.recipientUserId = txEvent.recipientUserId;
97
- eventData.logicalTransactionId = txEvent.logicalTransactionId;
98
- eventData.description = txEvent.description;
99
- eventData.currency = txEvent.currency;
100
- eventData.splitType = txEvent.splitType;
101
- eventData.totalAmount = txEvent.totalAmount;
102
- eventData.amount = txEvent.amount;
103
- eventData.isOwed = txEvent.isOwed;
104
- eventData.transactionDate = admin.firestore.Timestamp.fromDate(txEvent.transactionDate);
105
- eventData.groupId = txEvent.groupId;
106
- eventData.groupTransactionId = txEvent.groupTransactionId;
107
- }
108
- if (eventType === 'DescriptionChanged') {
109
- const txEvent = event;
110
- eventData.description = txEvent.description;
111
- }
112
- if (eventType === 'TotalAmountChanged') {
113
- const txEvent = event;
114
- eventData.totalAmount = txEvent.totalAmount;
115
- }
116
- if (eventType === 'SplitTypeChanged') {
117
- const txEvent = event;
118
- eventData.splitType = txEvent.splitType;
119
- eventData.totalAmount = txEvent.totalAmount;
120
- eventData.amount = txEvent.amount;
121
- eventData.isOwed = txEvent.isOwed;
122
- }
123
- if (eventType === 'UserCreated') {
124
- const userEvent = event;
125
- eventData.firebaseUid = userEvent.firebaseUid;
126
- eventData.displayName = userEvent.displayName;
127
- eventData.phoneNumber = userEvent.phoneNumber;
128
- eventData.email = userEvent.email;
129
- eventData.photoUrl = userEvent.photoUrl;
130
- eventData.emailVerified = userEvent.emailVerified;
131
- }
132
- if (eventType === 'PlaceholderUserCreated') {
133
- const userEvent = event;
134
- eventData.displayName = userEvent.displayName;
135
- eventData.phoneNumber = userEvent.phoneNumber;
136
- eventData.email = userEvent.email;
137
- }
138
- if (eventType === 'UserCurrencyChanged') {
139
- const userEvent = event;
140
- eventData.currency = userEvent.currency;
141
- }
142
- if (eventType === 'UserPhoneNumberChanged') {
143
- const userEvent = event;
144
- eventData.phoneNumber = userEvent.phoneNumber;
145
- }
146
- if (eventType === 'UserDisplayNameChanged') {
147
- const userEvent = event;
148
- eventData.displayName = userEvent.displayName;
149
- }
150
- if (eventType === 'FriendCreated') {
151
- const friendEvent = event;
152
- eventData.friendEmail = friendEvent.friendEmail;
153
- eventData.friendPhoneNumber = friendEvent.friendPhoneNumber;
154
- eventData.friendDisplayName = friendEvent.friendDisplayName;
155
- eventData.friendId = friendEvent.friendId;
156
- eventData.groupId = friendEvent.groupId;
157
- }
158
- if (eventType === 'FriendUpdated') {
159
- const friendEvent = event;
160
- eventData.friendEmail = friendEvent.friendEmail;
161
- eventData.friendPhoneNumber = friendEvent.friendPhoneNumber;
162
- eventData.friendDisplayName = friendEvent.friendDisplayName;
163
- }
164
- if (eventType === 'FriendIdAdded') {
165
- const friendEvent = event;
166
- eventData.friendId = friendEvent.friendId;
167
- }
168
- return eventData;
169
- }
170
- /**
171
- * Converts Firestore event data to domain Event
172
- */
173
- function firestoreToEvent(data) {
174
- const eventType = data.eventType;
175
- // Transaction Events
176
- if (eventType === 'TransactionCreated') {
177
- return new __1.TransactionCreated({
178
- userId: data.userId,
179
- recipientUserId: data.recipientUserId,
180
- logicalTransactionId: data.logicalTransactionId,
181
- description: data.description,
182
- currency: data.currency,
183
- splitType: data.splitType,
184
- totalAmount: data.totalAmount,
185
- amount: data.amount,
186
- isOwed: data.isOwed,
187
- transactionDate: data.transactionDate.toDate(),
188
- groupId: data.groupId,
189
- groupTransactionId: data.groupTransactionId,
190
- createdAt: data.createdAt.toDate(),
191
- createdBy: data.createdBy,
192
- streamId: data.streamId,
193
- version: data.version,
194
- });
195
- }
196
- if (eventType === 'TransactionDeleted') {
197
- return new __1.TransactionDeleted({
198
- createdAt: data.createdAt.toDate(),
199
- createdBy: data.createdBy,
200
- streamId: data.streamId,
201
- version: data.version,
202
- });
203
- }
204
- if (eventType === 'DescriptionChanged') {
205
- return new __1.DescriptionChanged({
206
- description: data.description,
207
- createdAt: data.createdAt.toDate(),
208
- createdBy: data.createdBy,
209
- streamId: data.streamId,
210
- version: data.version,
211
- });
212
- }
213
- if (eventType === 'TotalAmountChanged') {
214
- return new __1.TotalAmountChanged({
215
- totalAmount: data.totalAmount,
216
- createdAt: data.createdAt.toDate(),
217
- createdBy: data.createdBy,
218
- streamId: data.streamId,
219
- version: data.version,
220
- });
221
- }
222
- if (eventType === 'SplitTypeChanged') {
223
- return new __1.SplitTypeChanged({
224
- splitType: data.splitType,
225
- totalAmount: data.totalAmount,
226
- amount: data.amount,
227
- isOwed: data.isOwed,
228
- createdAt: data.createdAt.toDate(),
229
- createdBy: data.createdBy,
230
- streamId: data.streamId,
231
- version: data.version,
232
- });
233
- }
234
- // User Events
235
- if (eventType === 'UserCreated') {
236
- return new __1.UserCreated({
237
- userId: data.userId,
238
- firebaseUid: data.firebaseUid,
239
- displayName: data.displayName,
240
- phoneNumber: data.phoneNumber,
241
- email: data.email,
242
- photoUrl: data.photoUrl,
243
- emailVerified: data.emailVerified,
244
- createdAt: data.createdAt.toDate(),
245
- createdBy: data.createdBy,
246
- streamId: data.streamId,
247
- version: data.version,
248
- });
249
- }
250
- if (eventType === 'PlaceholderUserCreated') {
251
- return new __1.PlaceholderUserCreated({
252
- userId: data.userId,
253
- displayName: data.displayName,
254
- phoneNumber: data.phoneNumber,
255
- email: data.email,
256
- createdAt: data.createdAt.toDate(),
257
- createdBy: data.createdBy,
258
- streamId: data.streamId,
259
- version: data.version,
260
- });
261
- }
262
- if (eventType === 'UserCurrencyChanged') {
263
- return new __1.UserCurrencyChanged({
264
- userId: data.userId,
265
- currency: data.currency,
266
- createdAt: data.createdAt.toDate(),
267
- createdBy: data.createdBy,
268
- streamId: data.streamId,
269
- version: data.version,
270
- });
271
- }
272
- if (eventType === 'UserPhoneNumberChanged') {
273
- return new __1.UserPhoneNumberChanged({
274
- userId: data.userId,
275
- phoneNumber: data.phoneNumber,
276
- createdAt: data.createdAt.toDate(),
277
- createdBy: data.createdBy,
278
- streamId: data.streamId,
279
- version: data.version,
280
- });
281
- }
282
- if (eventType === 'UserDisplayNameChanged') {
283
- return new __1.UserDisplayNameChanged({
284
- userId: data.userId,
285
- displayName: data.displayName,
286
- createdAt: data.createdAt.toDate(),
287
- createdBy: data.createdBy,
288
- streamId: data.streamId,
289
- version: data.version,
290
- });
291
- }
292
- if (eventType === 'UserDeleted') {
293
- return new __1.UserDeleted({
294
- userId: data.userId,
295
- createdAt: data.createdAt.toDate(),
296
- createdBy: data.createdBy,
297
- streamId: data.streamId,
298
- version: data.version,
299
- });
300
- }
301
- if (eventType === 'UserConvertedToPlaceholder') {
302
- return new __1.UserConvertedToPlaceholder({
303
- userId: data.userId,
304
- createdAt: data.createdAt.toDate(),
305
- createdBy: data.createdBy,
306
- streamId: data.streamId,
307
- version: data.version,
308
- });
309
- }
310
- // Friend Events
311
- if (eventType === 'FriendCreated') {
312
- if (!data.userId) {
313
- throw new Error('userId is required for FriendCreated event');
314
- }
315
- return new __1.FriendCreated({
316
- userId: data.userId,
317
- friendEmail: data.friendEmail,
318
- friendPhoneNumber: data.friendPhoneNumber,
319
- friendDisplayName: data.friendDisplayName,
320
- friendId: data.friendId,
321
- groupId: data.groupId,
322
- createdAt: data.createdAt.toDate(),
323
- createdBy: data.createdBy,
324
- streamId: data.streamId,
325
- version: data.version,
326
- });
327
- }
328
- if (eventType === 'FriendUpdated') {
329
- return new __1.FriendUpdated({
330
- userId: data.userId,
331
- friendEmail: data.friendEmail,
332
- friendPhoneNumber: data.friendPhoneNumber,
333
- friendDisplayName: data.friendDisplayName,
334
- createdAt: data.createdAt.toDate(),
335
- createdBy: data.createdBy,
336
- streamId: data.streamId,
337
- version: data.version,
338
- });
339
- }
340
- if (eventType === 'FriendDeleted') {
341
- return new __1.FriendDeleted({
342
- userId: data.userId,
343
- createdAt: data.createdAt.toDate(),
344
- createdBy: data.createdBy,
345
- streamId: data.streamId,
346
- version: data.version,
347
- });
348
- }
349
- if (eventType === 'FriendIdAdded') {
350
- return new __1.FriendIdAdded({
351
- userId: data.userId,
352
- friendId: data.friendId,
353
- createdAt: data.createdAt.toDate(),
354
- createdBy: data.createdBy,
355
- streamId: data.streamId,
356
- version: data.version,
357
- });
358
- }
359
- if (eventType === 'FriendIdRemoved') {
360
- return new __1.FriendIdRemoved({
361
- userId: data.userId,
362
- createdAt: data.createdAt.toDate(),
363
- createdBy: data.createdBy,
364
- streamId: data.streamId,
365
- version: data.version,
366
- });
367
- }
368
- // Unknown event type
369
- throw new Error(`Unknown event type: ${eventType}`);
370
- }