@zeeshan60/event-processor 1.0.5 → 1.0.7

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 (99) hide show
  1. package/README.md +71 -2
  2. package/dist/ActivityLogEvents.d.ts +2 -0
  3. package/dist/ActivityLogEvents.d.ts.map +1 -1
  4. package/dist/ActivityLogEvents.js +1 -0
  5. package/dist/FriendEventHandler.d.ts.map +1 -1
  6. package/dist/FriendEventHandler.js +5 -0
  7. package/dist/FriendEvents.d.ts +10 -0
  8. package/dist/FriendEvents.d.ts.map +1 -1
  9. package/dist/FriendEvents.js +9 -0
  10. package/dist/GroupEventHandler.d.ts.map +1 -1
  11. package/dist/GroupEventHandler.js +8 -0
  12. package/dist/GroupEvents.d.ts +12 -0
  13. package/dist/GroupEvents.d.ts.map +1 -1
  14. package/dist/GroupEvents.js +12 -0
  15. package/dist/GroupTransactionEventHandler.d.ts.map +1 -1
  16. package/dist/GroupTransactionEventHandler.js +7 -0
  17. package/dist/GroupTransactionEvents.d.ts +18 -0
  18. package/dist/GroupTransactionEvents.d.ts.map +1 -1
  19. package/dist/GroupTransactionEvents.js +18 -0
  20. package/dist/TransactionEventHandler.d.ts.map +1 -1
  21. package/dist/TransactionEventHandler.js +26 -0
  22. package/dist/TransactionEvents.d.ts +16 -0
  23. package/dist/TransactionEvents.d.ts.map +1 -1
  24. package/dist/TransactionEvents.js +16 -0
  25. package/dist/UserEventHandler.d.ts.map +1 -1
  26. package/dist/UserEventHandler.js +2 -0
  27. package/dist/UserEvents.d.ts +16 -0
  28. package/dist/UserEvents.d.ts.map +1 -1
  29. package/dist/UserEvents.js +12 -0
  30. package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts +9 -0
  31. package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts.map +1 -0
  32. package/dist/__tests__/test-helpers/IMActivityLogEventStore.js +21 -0
  33. package/dist/__tests__/test-helpers/IMActivityLogModelStore.d.ts +11 -0
  34. package/dist/__tests__/test-helpers/IMActivityLogModelStore.d.ts.map +1 -0
  35. package/dist/{store/InMemoryModelStore.js → __tests__/test-helpers/IMActivityLogModelStore.js} +14 -13
  36. package/dist/__tests__/test-helpers/IMFriendEventStore.d.ts +9 -0
  37. package/dist/__tests__/test-helpers/IMFriendEventStore.d.ts.map +1 -0
  38. package/dist/__tests__/test-helpers/IMFriendEventStore.js +20 -0
  39. package/dist/__tests__/test-helpers/IMFriendModelStore.d.ts +16 -0
  40. package/dist/__tests__/test-helpers/IMFriendModelStore.d.ts.map +1 -0
  41. package/dist/__tests__/test-helpers/IMFriendModelStore.js +74 -0
  42. package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts +9 -0
  43. package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts.map +1 -0
  44. package/dist/__tests__/test-helpers/IMGroupEventStore.js +20 -0
  45. package/dist/__tests__/test-helpers/IMGroupModelStore.d.ts +14 -0
  46. package/dist/__tests__/test-helpers/IMGroupModelStore.d.ts.map +1 -0
  47. package/dist/__tests__/test-helpers/IMGroupModelStore.js +53 -0
  48. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.d.ts +9 -0
  49. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.d.ts.map +1 -0
  50. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.js +22 -0
  51. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.d.ts +14 -0
  52. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.d.ts.map +1 -0
  53. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.js +55 -0
  54. package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts +10 -0
  55. package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts.map +1 -0
  56. package/dist/__tests__/test-helpers/IMTransactionEventStore.js +23 -0
  57. package/dist/__tests__/test-helpers/IMTransactionModelStore.d.ts +14 -0
  58. package/dist/__tests__/test-helpers/IMTransactionModelStore.d.ts.map +1 -0
  59. package/dist/__tests__/test-helpers/IMTransactionModelStore.js +56 -0
  60. package/dist/__tests__/test-helpers/IMUserEventStore.d.ts +10 -0
  61. package/dist/__tests__/test-helpers/IMUserEventStore.d.ts.map +1 -0
  62. package/dist/{store/InMemoryEventStore.js → __tests__/test-helpers/IMUserEventStore.js} +5 -5
  63. package/dist/__tests__/test-helpers/IMUserModelStore.d.ts +15 -0
  64. package/dist/__tests__/test-helpers/IMUserModelStore.d.ts.map +1 -0
  65. package/dist/__tests__/test-helpers/IMUserModelStore.js +58 -0
  66. package/dist/common/Event.d.ts +1 -0
  67. package/dist/common/Event.d.ts.map +1 -1
  68. package/dist/common/EventBus.d.ts +12 -0
  69. package/dist/common/EventBus.d.ts.map +1 -0
  70. package/dist/common/EventBus.js +26 -0
  71. package/dist/common/EventBusSingleton.d.ts +4 -0
  72. package/dist/common/EventBusSingleton.d.ts.map +1 -0
  73. package/dist/common/EventBusSingleton.js +18 -0
  74. package/dist/config/Environment.d.ts +25 -0
  75. package/dist/config/Environment.d.ts.map +1 -0
  76. package/dist/config/Environment.js +70 -0
  77. package/dist/controllers/UserController.d.ts +4 -0
  78. package/dist/controllers/UserController.d.ts.map +1 -0
  79. package/dist/controllers/UserController.js +28 -0
  80. package/dist/events.d.ts +1 -0
  81. package/dist/events.d.ts.map +1 -1
  82. package/dist/events.js +11 -1
  83. package/dist/index.d.ts +2 -0
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +7 -0
  86. package/package.json +2 -1
  87. package/dist/common/EventStore.d.ts +0 -5
  88. package/dist/common/EventStore.d.ts.map +0 -1
  89. package/dist/common/EventStore.js +0 -6
  90. package/dist/common/ModelStore.d.ts +0 -6
  91. package/dist/common/ModelStore.d.ts.map +0 -1
  92. package/dist/common/ModelStore.js +0 -6
  93. package/dist/store/InMemoryEventStore.d.ts +0 -10
  94. package/dist/store/InMemoryEventStore.d.ts.map +0 -1
  95. package/dist/store/InMemoryModelStore.d.ts +0 -11
  96. package/dist/store/InMemoryModelStore.d.ts.map +0 -1
  97. package/dist/utils/eventConverter.d.ts +0 -23
  98. package/dist/utils/eventConverter.d.ts.map +0 -1
  99. package/dist/utils/eventConverter.js +0 -370
package/dist/events.d.ts CHANGED
@@ -27,4 +27,5 @@ export { GroupTransactionEventHandler } from './GroupTransactionEventHandler';
27
27
  export { ActivityEventHandler } from './ActivityEventHandler';
28
28
  export { reverseSplitType, calculateMirrorAmountAndIsOwed } from './utils/splitTypeUtils';
29
29
  export { getUserEventPath } from './utils/userPathUtils';
30
+ export { EventProcessorSource, setEventProcessorSource, getEventProcessorSource, isGCFun, isClient, isUnknown, resetEventProcessorSource, eventProcessorEnv } from './config/environment';
30
31
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAG9C,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,4BAA4B,EAAC,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAC,gBAAgB,EAAE,8BAA8B,EAAC,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAG9C,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,4BAA4B,EAAC,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAC,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EAAC,gBAAgB,EAAE,8BAA8B,EAAC,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC"}
package/dist/events.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.getUserEventPath = exports.calculateMirrorAmountAndIsOwed = exports.reverseSplitType = exports.ActivityEventHandler = exports.GroupTransactionEventHandler = exports.GroupEventHandler = exports.FriendEventHandler = exports.UserEventHandler = exports.TransactionEventHandler = void 0;
17
+ exports.eventProcessorEnv = exports.resetEventProcessorSource = exports.isUnknown = exports.isClient = exports.isGCFun = exports.getEventProcessorSource = exports.setEventProcessorSource = exports.EventProcessorSource = exports.getUserEventPath = exports.calculateMirrorAmountAndIsOwed = exports.reverseSplitType = exports.ActivityEventHandler = exports.GroupTransactionEventHandler = exports.GroupEventHandler = exports.FriendEventHandler = exports.UserEventHandler = exports.TransactionEventHandler = void 0;
18
18
  // Re-export all event types
19
19
  __exportStar(require("./TransactionEvents"), exports);
20
20
  __exportStar(require("./UserEvents"), exports);
@@ -58,3 +58,13 @@ Object.defineProperty(exports, "reverseSplitType", { enumerable: true, get: func
58
58
  Object.defineProperty(exports, "calculateMirrorAmountAndIsOwed", { enumerable: true, get: function () { return splitTypeUtils_1.calculateMirrorAmountAndIsOwed; } });
59
59
  var userPathUtils_1 = require("./utils/userPathUtils");
60
60
  Object.defineProperty(exports, "getUserEventPath", { enumerable: true, get: function () { return userPathUtils_1.getUserEventPath; } });
61
+ // Re-export environment configuration
62
+ var environment_1 = require("./config/environment");
63
+ Object.defineProperty(exports, "EventProcessorSource", { enumerable: true, get: function () { return environment_1.EventProcessorSource; } });
64
+ Object.defineProperty(exports, "setEventProcessorSource", { enumerable: true, get: function () { return environment_1.setEventProcessorSource; } });
65
+ Object.defineProperty(exports, "getEventProcessorSource", { enumerable: true, get: function () { return environment_1.getEventProcessorSource; } });
66
+ Object.defineProperty(exports, "isGCFun", { enumerable: true, get: function () { return environment_1.isGCFun; } });
67
+ Object.defineProperty(exports, "isClient", { enumerable: true, get: function () { return environment_1.isClient; } });
68
+ Object.defineProperty(exports, "isUnknown", { enumerable: true, get: function () { return environment_1.isUnknown; } });
69
+ Object.defineProperty(exports, "resetEventProcessorSource", { enumerable: true, get: function () { return environment_1.resetEventProcessorSource; } });
70
+ Object.defineProperty(exports, "eventProcessorEnv", { enumerable: true, get: function () { return environment_1.eventProcessorEnv; } });
package/dist/index.d.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  export * from './events';
2
+ export { UserController } from './controllers/UserController';
3
+ export { resetEventBus } from './common/EventBusSingleton';
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAG5D,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -14,5 +14,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.resetEventBus = exports.UserController = void 0;
17
18
  // Export all backend event definitions here
18
19
  __exportStar(require("./events"), exports);
20
+ // Export controllers
21
+ var UserController_1 = require("./controllers/UserController");
22
+ Object.defineProperty(exports, "UserController", { enumerable: true, get: function () { return UserController_1.UserController; } });
23
+ // Export singleton utilities for testing
24
+ var EventBusSingleton_1 = require("./common/EventBusSingleton");
25
+ Object.defineProperty(exports, "resetEventBus", { enumerable: true, get: function () { return EventBusSingleton_1.resetEventBus; } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeeshan60/event-processor",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "Shared event sourcing infrastructure for Loan Tracker projects",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -32,6 +32,7 @@
32
32
  "typescript": "^5.3.3"
33
33
  },
34
34
  "dependencies": {
35
+ "rxjs": "^7.8.1",
35
36
  "uuid": "^13.0.0"
36
37
  }
37
38
  }
@@ -1,5 +0,0 @@
1
- import { Event } from './Event';
2
- export declare abstract class EventStore {
3
- abstract addEvent(event: Event): Promise<void>;
4
- }
5
- //# sourceMappingURL=EventStore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EventStore.d.ts","sourceRoot":"","sources":["../../src/common/EventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,8BAAsB,UAAU;IAC9B,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;CAC/C"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventStore = void 0;
4
- class EventStore {
5
- }
6
- exports.EventStore = EventStore;
@@ -1,6 +0,0 @@
1
- import { Model } from './Model';
2
- export declare abstract class ModelStore {
3
- abstract getByStreamIdWhereDeletedIsFalse(streamId: string): Promise<Model | null>;
4
- abstract save(model: Model): Promise<void>;
5
- }
6
- //# sourceMappingURL=ModelStore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModelStore.d.ts","sourceRoot":"","sources":["../../src/common/ModelStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,8BAAsB,UAAU;IAC9B,QAAQ,CAAC,gCAAgC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAClF,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;CAC3C"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelStore = void 0;
4
- class ModelStore {
5
- }
6
- exports.ModelStore = ModelStore;
@@ -1,10 +0,0 @@
1
- import { EventStore } from '../common/EventStore';
2
- import { Event } from '../common/Event';
3
- export declare class InMemoryEventStore extends EventStore {
4
- private events;
5
- addEvent(event: Event): Promise<void>;
6
- getEvents(): Event[];
7
- getEventsByStreamId(streamId: string): Event[];
8
- clear(): void;
9
- }
10
- //# sourceMappingURL=InMemoryEventStore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InMemoryEventStore.d.ts","sourceRoot":"","sources":["../../src/store/InMemoryEventStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,qBAAa,kBAAmB,SAAQ,UAAU;IAChD,OAAO,CAAC,MAAM,CAAe;IAEvB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,SAAS,IAAI,KAAK,EAAE;IAIpB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE;IAI9C,KAAK,IAAI,IAAI;CAGd"}
@@ -1,11 +0,0 @@
1
- import { ModelStore } from '../common/ModelStore';
2
- import { Model } from '../common/Model';
3
- export declare class InMemoryModelStore extends ModelStore {
4
- private models;
5
- getByStreamIdWhereDeletedIsFalse(streamId: string): Promise<Model | null>;
6
- save(model: Model): Promise<void>;
7
- getAll(): Model[];
8
- getAllWhereDeletedIsFalse(): Model[];
9
- clear(): void;
10
- }
11
- //# sourceMappingURL=InMemoryModelStore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InMemoryModelStore.d.ts","sourceRoot":"","sources":["../../src/store/InMemoryModelStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,qBAAa,kBAAmB,SAAQ,UAAU;IAChD,OAAO,CAAC,MAAM,CAAiC;IAEzC,gCAAgC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAQzE,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,MAAM,IAAI,KAAK,EAAE;IAIjB,yBAAyB,IAAI,KAAK,EAAE;IAIpC,KAAK,IAAI,IAAI;CAGd"}
@@ -1,23 +0,0 @@
1
- import { Event } from '..';
2
- import * as admin from 'firebase-admin';
3
- export interface FirestoreEventData {
4
- eventId: string;
5
- userId?: string;
6
- streamId: string;
7
- version: number;
8
- createdAt: admin.firestore.Timestamp;
9
- createdBy: string;
10
- eventType: string;
11
- eventMainType: string;
12
- systemGenerated?: boolean;
13
- [key: string]: any;
14
- }
15
- /**
16
- * Converts a domain Event to Firestore-friendly format
17
- */
18
- export declare function eventToFirestore(event: Event, eventId: string): FirestoreEventData;
19
- /**
20
- * Converts Firestore event data to domain Event
21
- */
22
- export declare function firestoreToEvent(data: FirestoreEventData): Event;
23
- //# sourceMappingURL=eventConverter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eventConverter.d.ts","sourceRoot":"","sources":["../../src/utils/eventConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAkBN,MAAM,IAAI,CAAC;AACZ,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAExC,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAsCD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,CA8GlF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG,KAAK,CAuNhE"}
@@ -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
- }