@zeeshan60/event-processor 1.0.13 → 1.0.15

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 (191) hide show
  1. package/dist/ActivityEventHandler.d.ts +5 -5
  2. package/dist/ActivityEventHandler.d.ts.map +1 -1
  3. package/dist/ActivityEventHandler.js +27 -1
  4. package/dist/ActivityLogEvents.d.ts.map +1 -1
  5. package/dist/BaseEventHandler.d.ts +6 -0
  6. package/dist/BaseEventHandler.d.ts.map +1 -0
  7. package/dist/BaseEventHandler.js +2 -0
  8. package/dist/EventProcessorSDK.d.ts +30 -1
  9. package/dist/EventProcessorSDK.d.ts.map +1 -1
  10. package/dist/EventProcessorSDK.js +88 -5
  11. package/dist/FriendEventHandler.d.ts +5 -2
  12. package/dist/FriendEventHandler.d.ts.map +1 -1
  13. package/dist/FriendEventHandler.js +49 -15
  14. package/dist/GroupEventHandler.d.ts +5 -7
  15. package/dist/GroupEventHandler.d.ts.map +1 -1
  16. package/dist/GroupEventHandler.js +96 -18
  17. package/dist/GroupEvents.d.ts.map +1 -1
  18. package/dist/GroupTransactionEventHandler.d.ts +4 -1
  19. package/dist/GroupTransactionEventHandler.d.ts.map +1 -1
  20. package/dist/GroupTransactionEventHandler.js +57 -13
  21. package/dist/GroupTransactionEvents.d.ts.map +1 -1
  22. package/dist/ModelChangeEmitter.d.ts +15 -0
  23. package/dist/ModelChangeEmitter.d.ts.map +1 -0
  24. package/dist/ModelChangeEmitter.js +31 -0
  25. package/dist/TransactionEventHandler.d.ts +6 -4
  26. package/dist/TransactionEventHandler.d.ts.map +1 -1
  27. package/dist/TransactionEventHandler.js +33 -21
  28. package/dist/TransactionEvents.d.ts.map +1 -1
  29. package/dist/UserEventHandler.d.ts +5 -2
  30. package/dist/UserEventHandler.d.ts.map +1 -1
  31. package/dist/UserEventHandler.js +32 -28
  32. package/dist/UserEvents.d.ts.map +1 -1
  33. package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts +2 -3
  34. package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts.map +1 -1
  35. package/dist/__tests__/test-helpers/IMActivityLogEventStore.js +1 -3
  36. package/dist/__tests__/test-helpers/IMActivityLogModelStore.d.ts +2 -3
  37. package/dist/__tests__/test-helpers/IMActivityLogModelStore.d.ts.map +1 -1
  38. package/dist/__tests__/test-helpers/IMActivityLogModelStore.js +1 -3
  39. package/dist/__tests__/test-helpers/IMFriendEventStore.d.ts +2 -3
  40. package/dist/__tests__/test-helpers/IMFriendEventStore.d.ts.map +1 -1
  41. package/dist/__tests__/test-helpers/IMFriendEventStore.js +1 -3
  42. package/dist/__tests__/test-helpers/IMFriendModelStore.d.ts +2 -3
  43. package/dist/__tests__/test-helpers/IMFriendModelStore.d.ts.map +1 -1
  44. package/dist/__tests__/test-helpers/IMFriendModelStore.js +1 -3
  45. package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts +2 -3
  46. package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts.map +1 -1
  47. package/dist/__tests__/test-helpers/IMGroupEventStore.js +1 -3
  48. package/dist/__tests__/test-helpers/IMGroupModelStore.d.ts +2 -3
  49. package/dist/__tests__/test-helpers/IMGroupModelStore.d.ts.map +1 -1
  50. package/dist/__tests__/test-helpers/IMGroupModelStore.js +1 -3
  51. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.d.ts +2 -3
  52. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.d.ts.map +1 -1
  53. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.js +1 -3
  54. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.d.ts +2 -3
  55. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.d.ts.map +1 -1
  56. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.js +1 -3
  57. package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts +2 -3
  58. package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts.map +1 -1
  59. package/dist/__tests__/test-helpers/IMTransactionEventStore.js +1 -3
  60. package/dist/__tests__/test-helpers/IMTransactionModelStore.d.ts +2 -3
  61. package/dist/__tests__/test-helpers/IMTransactionModelStore.d.ts.map +1 -1
  62. package/dist/__tests__/test-helpers/IMTransactionModelStore.js +1 -3
  63. package/dist/__tests__/test-helpers/IMUserEventStore.d.ts +2 -3
  64. package/dist/__tests__/test-helpers/IMUserEventStore.d.ts.map +1 -1
  65. package/dist/__tests__/test-helpers/IMUserEventStore.js +1 -3
  66. package/dist/__tests__/test-helpers/IMUserModelStore.d.ts +2 -3
  67. package/dist/__tests__/test-helpers/IMUserModelStore.d.ts.map +1 -1
  68. package/dist/__tests__/test-helpers/IMUserModelStore.js +1 -3
  69. package/dist/client/controllers/FriendController.d.ts +6 -5
  70. package/dist/client/controllers/FriendController.d.ts.map +1 -1
  71. package/dist/client/controllers/FriendController.js +23 -12
  72. package/dist/client/controllers/TransactionController.d.ts +12 -0
  73. package/dist/client/controllers/TransactionController.d.ts.map +1 -0
  74. package/dist/client/controllers/TransactionController.js +214 -0
  75. package/dist/client/controllers/UserController.d.ts.map +1 -1
  76. package/dist/client/controllers/UserController.js +3 -23
  77. package/dist/client/handlers/UIEventHandler.d.ts +3 -22
  78. package/dist/client/handlers/UIEventHandler.d.ts.map +1 -1
  79. package/dist/client/handlers/UIEventHandler.js +5 -44
  80. package/dist/common/DomainEvents.d.ts +0 -70
  81. package/dist/common/DomainEvents.d.ts.map +1 -1
  82. package/dist/common/DomainEvents.js +0 -89
  83. package/dist/contracts/expenses/index.d.ts.map +1 -1
  84. package/dist/contracts/friends/index.d.ts +1 -1
  85. package/dist/contracts/friends/index.d.ts.map +1 -1
  86. package/dist/contracts/groups/index.d.ts.map +1 -1
  87. package/dist/contracts/transactions/index.d.ts +1 -1
  88. package/dist/contracts/transactions/index.d.ts.map +1 -1
  89. package/dist/converters/ActivityLogConverters.d.ts +9 -0
  90. package/dist/converters/ActivityLogConverters.d.ts.map +1 -0
  91. package/dist/converters/ActivityLogConverters.js +39 -0
  92. package/dist/converters/EventConverterCore.d.ts +67 -0
  93. package/dist/converters/EventConverterCore.d.ts.map +1 -0
  94. package/dist/converters/EventConverterCore.js +59 -0
  95. package/dist/converters/FriendConverters.d.ts +33 -0
  96. package/dist/converters/FriendConverters.d.ts.map +1 -0
  97. package/dist/converters/FriendConverters.js +142 -0
  98. package/dist/converters/GroupConverters.d.ts +39 -0
  99. package/dist/converters/GroupConverters.d.ts.map +1 -0
  100. package/dist/converters/GroupConverters.js +160 -0
  101. package/dist/converters/GroupTransactionConverters.d.ts +57 -0
  102. package/dist/converters/GroupTransactionConverters.d.ts.map +1 -0
  103. package/dist/converters/GroupTransactionConverters.js +249 -0
  104. package/dist/converters/TransactionConverters.d.ts +51 -0
  105. package/dist/converters/TransactionConverters.d.ts.map +1 -0
  106. package/dist/converters/TransactionConverters.js +234 -0
  107. package/dist/converters/UserConverters.d.ts +51 -0
  108. package/dist/converters/UserConverters.d.ts.map +1 -0
  109. package/dist/converters/UserConverters.js +226 -0
  110. package/dist/converters/eventConverter.d.ts +10 -15
  111. package/dist/converters/eventConverter.d.ts.map +1 -1
  112. package/dist/converters/eventConverter.js +96 -352
  113. package/dist/events.d.ts +0 -1
  114. package/dist/events.d.ts.map +1 -1
  115. package/dist/events.js +1 -3
  116. package/dist/index.d.ts +6 -8
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +16 -33
  119. package/dist/store/ActivityLogEventStore.d.ts +2 -2
  120. package/dist/store/ActivityLogEventStore.d.ts.map +1 -1
  121. package/dist/store/ActivityLogEventStore.js +0 -4
  122. package/dist/store/ActivityLogModelStore.d.ts +4 -4
  123. package/dist/store/ActivityLogModelStore.d.ts.map +1 -1
  124. package/dist/store/ActivityLogModelStore.js +0 -5
  125. package/dist/store/FriendEventStore.d.ts +2 -2
  126. package/dist/store/FriendEventStore.d.ts.map +1 -1
  127. package/dist/store/FriendEventStore.js +0 -4
  128. package/dist/store/FriendModelStore.d.ts +9 -9
  129. package/dist/store/FriendModelStore.d.ts.map +1 -1
  130. package/dist/store/FriendModelStore.js +0 -5
  131. package/dist/store/GroupEventStore.d.ts +2 -2
  132. package/dist/store/GroupEventStore.d.ts.map +1 -1
  133. package/dist/store/GroupEventStore.js +0 -4
  134. package/dist/store/GroupModelStore.d.ts +6 -6
  135. package/dist/store/GroupModelStore.d.ts.map +1 -1
  136. package/dist/store/GroupModelStore.js +0 -5
  137. package/dist/store/GroupTransactionEventStore.d.ts +2 -2
  138. package/dist/store/GroupTransactionEventStore.d.ts.map +1 -1
  139. package/dist/store/GroupTransactionEventStore.js +0 -4
  140. package/dist/store/GroupTransactionModelStore.d.ts +6 -6
  141. package/dist/store/GroupTransactionModelStore.d.ts.map +1 -1
  142. package/dist/store/GroupTransactionModelStore.js +0 -5
  143. package/dist/store/ModelStore.d.ts +4 -4
  144. package/dist/store/ModelStore.d.ts.map +1 -1
  145. package/dist/store/ModelStore.js +0 -4
  146. package/dist/store/TransactionEventStore.d.ts +2 -2
  147. package/dist/store/TransactionEventStore.d.ts.map +1 -1
  148. package/dist/store/TransactionEventStore.js +0 -4
  149. package/dist/store/TransactionModelStore.d.ts +6 -6
  150. package/dist/store/TransactionModelStore.d.ts.map +1 -1
  151. package/dist/store/TransactionModelStore.js +0 -5
  152. package/dist/store/UserEventStore.d.ts +2 -2
  153. package/dist/store/UserEventStore.d.ts.map +1 -1
  154. package/dist/store/UserEventStore.js +0 -4
  155. package/dist/store/UserModelStore.d.ts +7 -7
  156. package/dist/store/UserModelStore.d.ts.map +1 -1
  157. package/dist/store/UserModelStore.js +0 -5
  158. package/package.json +1 -1
  159. package/dist/__tests__/e2e/setup/firebaseEmulator.d.ts +0 -3
  160. package/dist/__tests__/e2e/setup/firebaseEmulator.d.ts.map +0 -1
  161. package/dist/__tests__/e2e/setup/firebaseEmulator.js +0 -87
  162. package/dist/__tests__/e2e/setup/firestoreStores.d.ts +0 -28
  163. package/dist/__tests__/e2e/setup/firestoreStores.d.ts.map +0 -1
  164. package/dist/__tests__/e2e/setup/firestoreStores.js +0 -276
  165. package/dist/__tests__/e2e/setup/firestoreTestHelpers.d.ts +0 -15
  166. package/dist/__tests__/e2e/setup/firestoreTestHelpers.d.ts.map +0 -1
  167. package/dist/__tests__/e2e/setup/firestoreTestHelpers.js +0 -167
  168. package/dist/adapters/FirebaseAdminAdapter.d.ts +0 -8
  169. package/dist/adapters/FirebaseAdminAdapter.d.ts.map +0 -1
  170. package/dist/adapters/FirebaseAdminAdapter.js +0 -21
  171. package/dist/adapters/FirebaseClientAdapter.d.ts +0 -8
  172. package/dist/adapters/FirebaseClientAdapter.d.ts.map +0 -1
  173. package/dist/adapters/FirebaseClientAdapter.js +0 -22
  174. package/dist/client/handlers/UIActivityEventHandler.d.ts +0 -12
  175. package/dist/client/handlers/UIActivityEventHandler.d.ts.map +0 -1
  176. package/dist/client/handlers/UIActivityEventHandler.js +0 -14
  177. package/dist/common/EventBus.d.ts +0 -12
  178. package/dist/common/EventBus.d.ts.map +0 -1
  179. package/dist/common/EventBus.js +0 -26
  180. package/dist/common/EventBusSingleton.d.ts +0 -4
  181. package/dist/common/EventBusSingleton.d.ts.map +0 -1
  182. package/dist/common/EventBusSingleton.js +0 -18
  183. package/dist/config/environment.d.ts +0 -25
  184. package/dist/config/environment.d.ts.map +0 -1
  185. package/dist/config/environment.js +0 -77
  186. package/dist/controllers/UIEventHandler.d.ts +0 -25
  187. package/dist/controllers/UIEventHandler.d.ts.map +0 -1
  188. package/dist/controllers/UIEventHandler.js +0 -50
  189. package/dist/controllers/UserController.d.ts +0 -9
  190. package/dist/controllers/UserController.d.ts.map +0 -1
  191. package/dist/controllers/UserController.js +0 -36
@@ -1,276 +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.FSUserModelStore = exports.FSUserEventStore = exports.FSFriendModelStore = exports.FSFriendEventStore = void 0;
37
- const admin = __importStar(require("firebase-admin"));
38
- const __1 = require("../../..");
39
- const firestoreTestHelpers_1 = require("./firestoreTestHelpers");
40
- // Helper to filter undefined values
41
- function filterUndefined(obj) {
42
- return Object.fromEntries(Object.entries(obj).filter(([_, v]) => v !== undefined));
43
- }
44
- // Friend Event Store
45
- class FSFriendEventStore extends __1.FriendEventStore {
46
- async addEvent(event) {
47
- const db = (0, firestoreTestHelpers_1.getFirestore)();
48
- const eventData = filterUndefined({
49
- ...event,
50
- eventType: event.constructor.name,
51
- createdAt: admin.firestore.Timestamp.fromDate(event.createdAt),
52
- });
53
- await db
54
- .collection("users")
55
- .doc(event.userId)
56
- .collection("events")
57
- .doc(`event-${event.streamId}-${event.version}`)
58
- .set(eventData);
59
- }
60
- async getEventsByStreamId(streamId) {
61
- throw new Error("Not implemented for E2E tests");
62
- }
63
- }
64
- exports.FSFriendEventStore = FSFriendEventStore;
65
- // Friend Model Store
66
- class FSFriendModelStore extends __1.FriendModelStore {
67
- async save(model) {
68
- const db = (0, firestoreTestHelpers_1.getFirestore)();
69
- const modelData = filterUndefined({
70
- ...model,
71
- createdAt: admin.firestore.Timestamp.fromDate(model.createdAt),
72
- updatedAt: admin.firestore.Timestamp.fromDate(model.updatedAt),
73
- });
74
- await db
75
- .collection("models")
76
- .doc("friends")
77
- .collection("friendModels")
78
- .doc(model.streamId)
79
- .set(modelData);
80
- }
81
- async getByStreamId(streamId) {
82
- const db = (0, firestoreTestHelpers_1.getFirestore)();
83
- const doc = await db
84
- .collection("models")
85
- .doc("friends")
86
- .collection("friendModels")
87
- .doc(streamId)
88
- .get();
89
- if (!doc.exists) {
90
- return undefined;
91
- }
92
- return doc.data();
93
- }
94
- async getByStreamIdWhereDeletedIsFalse(streamId) {
95
- const model = await this.getByStreamId(streamId);
96
- return model && !model.deleted ? model : undefined;
97
- }
98
- async findByUserIdAndFriendIdAndDeletedIsFalse(userId, friendId) {
99
- const db = (0, firestoreTestHelpers_1.getFirestore)();
100
- const snapshot = await db
101
- .collection("models")
102
- .doc("friends")
103
- .collection("friendModels")
104
- .where("userId", "==", userId)
105
- .where("friendId", "==", friendId)
106
- .where("deleted", "==", false)
107
- .limit(1)
108
- .get();
109
- if (snapshot.empty) {
110
- return undefined;
111
- }
112
- return snapshot.docs[0].data();
113
- }
114
- async getAllByUserId(userId) {
115
- const db = (0, firestoreTestHelpers_1.getFirestore)();
116
- const snapshot = await db
117
- .collection("models")
118
- .doc("friends")
119
- .collection("friendModels")
120
- .where("userId", "==", userId)
121
- .where("deleted", "==", false)
122
- .get();
123
- return snapshot.docs.map((doc) => doc.data());
124
- }
125
- async findByUserIdAndStreamIdAndDeletedIsFalse(userId, streamId) {
126
- const db = (0, firestoreTestHelpers_1.getFirestore)();
127
- const doc = await db
128
- .collection("models")
129
- .doc("friends")
130
- .collection("friendModels")
131
- .doc(streamId)
132
- .get();
133
- if (!doc.exists) {
134
- return undefined;
135
- }
136
- const model = doc.data();
137
- if (model.userId !== userId || model.deleted) {
138
- return undefined;
139
- }
140
- return model;
141
- }
142
- async findByUserIdAndFriendEmailAndDeletedIsFalse(userId, email) {
143
- const db = (0, firestoreTestHelpers_1.getFirestore)();
144
- const snapshot = await db
145
- .collection("models")
146
- .doc("friends")
147
- .collection("friendModels")
148
- .where("userId", "==", userId)
149
- .where("friendEmail", "==", email)
150
- .where("deleted", "==", false)
151
- .limit(1)
152
- .get();
153
- if (snapshot.empty) {
154
- return undefined;
155
- }
156
- return snapshot.docs[0].data();
157
- }
158
- async findByUserIdAndFriendPhoneNumberAndDeletedIsFalse(userId, phoneNumber) {
159
- const db = (0, firestoreTestHelpers_1.getFirestore)();
160
- const snapshot = await db
161
- .collection("models")
162
- .doc("friends")
163
- .collection("friendModels")
164
- .where("userId", "==", userId)
165
- .where("friendPhoneNumber", "==", phoneNumber)
166
- .where("deleted", "==", false)
167
- .limit(1)
168
- .get();
169
- if (snapshot.empty) {
170
- return undefined;
171
- }
172
- return snapshot.docs[0].data();
173
- }
174
- }
175
- exports.FSFriendModelStore = FSFriendModelStore;
176
- // User Event Store
177
- class FSUserEventStore extends __1.UserEventStore {
178
- async addEvent(event) {
179
- const db = (0, firestoreTestHelpers_1.getFirestore)();
180
- const eventData = filterUndefined({
181
- ...event,
182
- eventType: event.constructor.name,
183
- createdAt: admin.firestore.Timestamp.fromDate(event.createdAt),
184
- });
185
- await db
186
- .collection("users")
187
- .doc(event.userId)
188
- .collection("events")
189
- .doc(`event-${event.streamId}-${event.version}`)
190
- .set(eventData);
191
- }
192
- async getEventsByStreamId(streamId) {
193
- throw new Error("Not implemented for E2E tests");
194
- }
195
- }
196
- exports.FSUserEventStore = FSUserEventStore;
197
- // User Model Store
198
- class FSUserModelStore extends __1.UserModelStore {
199
- async save(model) {
200
- const db = (0, firestoreTestHelpers_1.getFirestore)();
201
- const modelData = filterUndefined({
202
- ...model,
203
- createdAt: admin.firestore.Timestamp.fromDate(model.createdAt),
204
- updatedAt: admin.firestore.Timestamp.fromDate(model.updatedAt),
205
- });
206
- await db
207
- .collection("models")
208
- .doc("users")
209
- .collection("userModels")
210
- .doc(model.streamId)
211
- .set(modelData);
212
- }
213
- async getByStreamId(streamId) {
214
- const db = (0, firestoreTestHelpers_1.getFirestore)();
215
- const doc = await db
216
- .collection("models")
217
- .doc("users")
218
- .collection("userModels")
219
- .doc(streamId)
220
- .get();
221
- if (!doc.exists) {
222
- return undefined;
223
- }
224
- return doc.data();
225
- }
226
- async getByStreamIdWhereDeletedIsFalse(streamId) {
227
- const model = await this.getByStreamId(streamId);
228
- return model && !model.deleted ? model : undefined;
229
- }
230
- async findByEmail(email) {
231
- const db = (0, firestoreTestHelpers_1.getFirestore)();
232
- const snapshot = await db
233
- .collection("models")
234
- .doc("users")
235
- .collection("userModels")
236
- .where("email", "==", email)
237
- .where("deleted", "==", false)
238
- .limit(1)
239
- .get();
240
- if (snapshot.empty) {
241
- return undefined;
242
- }
243
- return snapshot.docs[0].data();
244
- }
245
- async findByPhone(phone) {
246
- const db = (0, firestoreTestHelpers_1.getFirestore)();
247
- const snapshot = await db
248
- .collection("models")
249
- .doc("users")
250
- .collection("userModels")
251
- .where("phoneNumber", "==", phone)
252
- .where("deleted", "==", false)
253
- .limit(1)
254
- .get();
255
- if (snapshot.empty) {
256
- return undefined;
257
- }
258
- return snapshot.docs[0].data();
259
- }
260
- async findByFirebaseUid(firebaseUid) {
261
- const db = (0, firestoreTestHelpers_1.getFirestore)();
262
- const snapshot = await db
263
- .collection("models")
264
- .doc("users")
265
- .collection("userModels")
266
- .where("uid", "==", firebaseUid)
267
- .where("deleted", "==", false)
268
- .limit(1)
269
- .get();
270
- if (snapshot.empty) {
271
- return undefined;
272
- }
273
- return snapshot.docs[0].data();
274
- }
275
- }
276
- exports.FSUserModelStore = FSUserModelStore;
@@ -1,15 +0,0 @@
1
- import * as admin from "firebase-admin";
2
- export declare function initializeFirestoreEmulator(): admin.firestore.Firestore;
3
- export declare function clearFirestore(): Promise<void>;
4
- export interface TestUser {
5
- userId: string;
6
- firebaseUid: string;
7
- email: string;
8
- displayName: string;
9
- phoneNumber: string;
10
- }
11
- export declare function createTestUser(displayName: string, email?: string, phoneNumber?: string): Promise<TestUser>;
12
- export declare function waitForDocument(collectionPath: string, docId: string, timeoutMs?: number): Promise<admin.firestore.DocumentSnapshot>;
13
- export declare function waitForTriggerCompletion(timeoutMs?: number): Promise<void>;
14
- export declare function getFirestore(): admin.firestore.Firestore;
15
- //# sourceMappingURL=firestoreTestHelpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"firestoreTestHelpers.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/e2e/setup/firestoreTestHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAOxC,wBAAgB,2BAA2B,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,CAevE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAYpD;AAuCD,MAAM,WAAW,QAAQ;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,cAAc,CAChC,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,QAAQ,CAAC,CAyDnB;AAED,wBAAsB,eAAe,CACjC,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,MAAa,GACzB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CA4B3C;AAED,wBAAsB,wBAAwB,CAC1C,SAAS,GAAE,MAAa,GACzB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAgB,YAAY,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,CAExD"}
@@ -1,167 +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.initializeFirestoreEmulator = initializeFirestoreEmulator;
37
- exports.clearFirestore = clearFirestore;
38
- exports.createTestUser = createTestUser;
39
- exports.waitForDocument = waitForDocument;
40
- exports.waitForTriggerCompletion = waitForTriggerCompletion;
41
- exports.getFirestore = getFirestore;
42
- const admin = __importStar(require("firebase-admin"));
43
- const __1 = require("../../..");
44
- // Initialize Firebase Admin for emulator
45
- let app;
46
- let db;
47
- function initializeFirestoreEmulator() {
48
- if (!app) {
49
- app = admin.initializeApp({
50
- projectId: "money-rabbit-dev2",
51
- });
52
- // Connect to Firestore emulator
53
- process.env.FIRESTORE_EMULATOR_HOST = "localhost:8080";
54
- }
55
- if (!db) {
56
- db = admin.firestore();
57
- }
58
- return db;
59
- }
60
- async function clearFirestore() {
61
- const firestore = initializeFirestoreEmulator();
62
- // Delete all collections
63
- const collections = await firestore.listCollections();
64
- const deletePromises = [];
65
- for (const collection of collections) {
66
- deletePromises.push(deleteCollection(firestore, collection.path, 100));
67
- }
68
- await Promise.all(deletePromises);
69
- }
70
- async function deleteCollection(db, collectionPath, batchSize) {
71
- const collectionRef = db.collection(collectionPath);
72
- const query = collectionRef.limit(batchSize);
73
- return new Promise((resolve, reject) => {
74
- deleteQueryBatch(db, query, resolve).catch(reject);
75
- });
76
- }
77
- async function deleteQueryBatch(db, query, resolve) {
78
- const snapshot = await query.get();
79
- const batchSize = snapshot.size;
80
- if (batchSize === 0) {
81
- resolve();
82
- return;
83
- }
84
- const batch = db.batch();
85
- snapshot.docs.forEach((doc) => {
86
- batch.delete(doc.ref);
87
- });
88
- await batch.commit();
89
- process.nextTick(() => {
90
- deleteQueryBatch(db, query, resolve);
91
- });
92
- }
93
- async function createTestUser(displayName, email, phoneNumber) {
94
- const firestore = initializeFirestoreEmulator();
95
- const userId = `stream-${Date.now()}-${Math.random().toString(36).substring(7)}`;
96
- const firebaseUid = `firebase-${userId}`;
97
- const userEvent = new __1.UserCreated({
98
- userId,
99
- firebaseUid,
100
- displayName,
101
- email: email || `${userId}@test.com`,
102
- phoneNumber: phoneNumber || `+1${Math.floor(Math.random() * 10000000000)}`,
103
- photoUrl: undefined,
104
- emailVerified: true,
105
- createdAt: new Date(),
106
- createdBy: userId,
107
- streamId: userId,
108
- version: 1,
109
- systemGenerated: true,
110
- });
111
- // Create user event in Firestore (filter out undefined values)
112
- const eventData = Object.fromEntries(Object.entries({
113
- ...userEvent,
114
- eventType: "UserCreated",
115
- }).filter(([_, v]) => v !== undefined));
116
- await firestore
117
- .collection("users")
118
- .doc(userId)
119
- .collection("events")
120
- .doc(`event-${userEvent.version}`)
121
- .set(eventData);
122
- // Create user model directly for testing (filter out undefined values)
123
- const modelData = Object.fromEntries(Object.entries(userEvent.apply(undefined)).filter(([_, v]) => v !== undefined));
124
- await firestore
125
- .collection("models")
126
- .doc("users")
127
- .collection("userModels")
128
- .doc(userId)
129
- .set(modelData);
130
- return {
131
- userId,
132
- firebaseUid,
133
- email: userEvent.email,
134
- displayName: userEvent.displayName,
135
- phoneNumber: userEvent.phoneNumber,
136
- };
137
- }
138
- async function waitForDocument(collectionPath, docId, timeoutMs = 5000) {
139
- const firestore = initializeFirestoreEmulator();
140
- const startTime = Date.now();
141
- return new Promise((resolve, reject) => {
142
- const unsubscribe = firestore
143
- .collection(collectionPath)
144
- .doc(docId)
145
- .onSnapshot((snapshot) => {
146
- if (snapshot.exists) {
147
- unsubscribe();
148
- resolve(snapshot);
149
- }
150
- else if (Date.now() - startTime > timeoutMs) {
151
- unsubscribe();
152
- reject(new Error(`Timeout waiting for document ${collectionPath}/${docId}`));
153
- }
154
- }, (error) => {
155
- unsubscribe();
156
- reject(error);
157
- });
158
- });
159
- }
160
- async function waitForTriggerCompletion(timeoutMs = 5000) {
161
- // Simple delay to allow trigger to complete
162
- // In production, you'd watch for specific document changes
163
- return new Promise((resolve) => setTimeout(resolve, timeoutMs));
164
- }
165
- function getFirestore() {
166
- return initializeFirestoreEmulator();
167
- }
@@ -1,8 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,21 +0,0 @@
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;
@@ -1,8 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,22 +0,0 @@
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;
@@ -1,12 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,14 +0,0 @@
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;
@@ -1,12 +0,0 @@
1
- import { Observable } from "rxjs";
2
- import { Event } from "./Event";
3
- export type EventFilter<T extends Event = Event> = (event: Event) => event is T;
4
- export declare class EventBus {
5
- private subject;
6
- constructor();
7
- publish(event: Event): void;
8
- subscribe<T extends Event = Event>(eventFilter: EventFilter<T>, callback: (event: T) => void): () => void;
9
- observable<T extends Event = Event>(eventFilter: EventFilter<T>): Observable<T>;
10
- complete(): void;
11
- }
12
- //# sourceMappingURL=EventBus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventBus.d.ts","sourceRoot":"","sources":["../../src/common/EventBus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,UAAU,EAAE,MAAM,MAAM,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC;AAEhF,qBAAa,QAAQ;IACjB,OAAO,CAAC,OAAO,CAAiB;;IAMhC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAI3B,SAAS,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAC7B,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,EAC3B,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAC7B,MAAM,IAAI;IAQb,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAC9B,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAC5B,UAAU,CAAC,CAAC,CAAC;IAIhB,QAAQ,IAAI,IAAI;CAGnB"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventBus = void 0;
4
- const rxjs_1 = require("rxjs");
5
- const operators_1 = require("rxjs/operators");
6
- class EventBus {
7
- constructor() {
8
- this.subject = new rxjs_1.Subject();
9
- }
10
- publish(event) {
11
- this.subject.next(event);
12
- }
13
- subscribe(eventFilter, callback) {
14
- const subscription = this.subject
15
- .pipe((0, operators_1.filter)(eventFilter))
16
- .subscribe(callback);
17
- return () => subscription.unsubscribe();
18
- }
19
- observable(eventFilter) {
20
- return this.subject.pipe((0, operators_1.filter)(eventFilter));
21
- }
22
- complete() {
23
- this.subject.complete();
24
- }
25
- }
26
- exports.EventBus = EventBus;
@@ -1,4 +0,0 @@
1
- import { EventBus } from "./EventBus";
2
- export declare function getEventBus(): EventBus;
3
- export declare function resetEventBus(): void;
4
- //# sourceMappingURL=EventBusSingleton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventBusSingleton.d.ts","sourceRoot":"","sources":["../../src/common/EventBusSingleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,wBAAgB,WAAW,IAAI,QAAQ,CAKtC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEventBus = getEventBus;
4
- exports.resetEventBus = resetEventBus;
5
- const EventBus_1 = require("./EventBus");
6
- let eventBusInstance;
7
- function getEventBus() {
8
- if (!eventBusInstance) {
9
- eventBusInstance = new EventBus_1.EventBus();
10
- }
11
- return eventBusInstance;
12
- }
13
- function resetEventBus() {
14
- if (eventBusInstance) {
15
- eventBusInstance.complete();
16
- }
17
- eventBusInstance = undefined;
18
- }
@@ -1,25 +0,0 @@
1
- export declare enum EventProcessorSource {
2
- GOOGLE_CLOUD_FUNCTION = "GOOGLE_CLOUD_FUNCTION",
3
- CLIENT = "CLIENT",
4
- UNKNOWN = "UNKNOWN"
5
- }
6
- declare class EventProcessorEnvironment {
7
- private source;
8
- constructor();
9
- private initializeFromEnv;
10
- setSource(source: EventProcessorSource): void;
11
- getSource(): EventProcessorSource;
12
- isGCFun(): boolean;
13
- isClient(): boolean;
14
- isUnknown(): boolean;
15
- reset(): void;
16
- }
17
- export declare const eventProcessorEnv: EventProcessorEnvironment;
18
- export declare function setEventProcessorSource(source: EventProcessorSource): void;
19
- export declare function getEventProcessorSource(): EventProcessorSource;
20
- export declare function isGCFun(): boolean;
21
- export declare function isClient(): boolean;
22
- export declare function isUnknown(): boolean;
23
- export declare function resetEventProcessorSource(): void;
24
- export {};
25
- //# sourceMappingURL=environment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/config/environment.ts"],"names":[],"mappings":"AAAA,oBAAY,oBAAoB;IAC9B,qBAAqB,0BAA0B;IAC/C,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,cAAM,yBAAyB;IAC7B,OAAO,CAAC,MAAM,CAAsD;;IAMpE,OAAO,CAAC,iBAAiB;IAkBzB,SAAS,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAI7C,SAAS,IAAI,oBAAoB;IAIjC,OAAO,IAAI,OAAO;IAIlB,QAAQ,IAAI,OAAO;IAInB,SAAS,IAAI,OAAO;IAIpB,KAAK,IAAI,IAAI;CAGd;AAED,eAAO,MAAM,iBAAiB,2BAAkC,CAAC;AAEjE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAE1E;AAED,wBAAgB,uBAAuB,IAAI,oBAAoB,CAE9D;AAED,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}