@zeeshan60/event-processor 1.0.47 → 1.0.49

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 (113) hide show
  1. package/dist/ActivityEventHandler.d.ts.map +1 -1
  2. package/dist/ActivityEventHandler.js +3 -7
  3. package/dist/ActivityEventHandler.js.map +1 -1
  4. package/dist/EventProcessorSDK.d.ts +8 -0
  5. package/dist/EventProcessorSDK.d.ts.map +1 -1
  6. package/dist/EventProcessorSDK.js +24 -2
  7. package/dist/EventProcessorSDK.js.map +1 -1
  8. package/dist/GroupEventHandler.d.ts +6 -11
  9. package/dist/GroupEventHandler.d.ts.map +1 -1
  10. package/dist/GroupEventHandler.js +42 -359
  11. package/dist/GroupEventHandler.js.map +1 -1
  12. package/dist/GroupEvents.d.ts +10 -28
  13. package/dist/GroupEvents.d.ts.map +1 -1
  14. package/dist/GroupEvents.js +11 -55
  15. package/dist/GroupEvents.js.map +1 -1
  16. package/dist/GroupTransactionEventHandler.d.ts +6 -12
  17. package/dist/GroupTransactionEventHandler.d.ts.map +1 -1
  18. package/dist/GroupTransactionEventHandler.js +46 -39
  19. package/dist/GroupTransactionEventHandler.js.map +1 -1
  20. package/dist/GroupTransactionEvents.d.ts +29 -157
  21. package/dist/GroupTransactionEvents.d.ts.map +1 -1
  22. package/dist/GroupTransactionEvents.js +25 -307
  23. package/dist/GroupTransactionEvents.js.map +1 -1
  24. package/dist/TransactionEventHandler.d.ts.map +1 -1
  25. package/dist/TransactionEventHandler.js +1 -0
  26. package/dist/TransactionEventHandler.js.map +1 -1
  27. package/dist/TransactionEvents.d.ts.map +1 -1
  28. package/dist/TransactionEvents.js.map +1 -1
  29. package/dist/UserEvents.d.ts.map +1 -1
  30. package/dist/UserEvents.js +1 -0
  31. package/dist/UserEvents.js.map +1 -1
  32. package/dist/__tests__/test-helpers/IMFriendModelStore.d.ts +2 -0
  33. package/dist/__tests__/test-helpers/IMFriendModelStore.d.ts.map +1 -1
  34. package/dist/__tests__/test-helpers/IMFriendModelStore.js +20 -0
  35. package/dist/__tests__/test-helpers/IMFriendModelStore.js.map +1 -1
  36. package/dist/__tests__/test-helpers/IMGroupModelStore.d.ts +1 -0
  37. package/dist/__tests__/test-helpers/IMGroupModelStore.d.ts.map +1 -1
  38. package/dist/__tests__/test-helpers/IMGroupModelStore.js +9 -0
  39. package/dist/__tests__/test-helpers/IMGroupModelStore.js.map +1 -1
  40. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.d.ts +1 -0
  41. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.d.ts.map +1 -1
  42. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.js +11 -0
  43. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.js.map +1 -1
  44. package/dist/__tests__/test-helpers/IMUserModelStore.d.ts +1 -0
  45. package/dist/__tests__/test-helpers/IMUserModelStore.d.ts.map +1 -1
  46. package/dist/__tests__/test-helpers/IMUserModelStore.js +10 -0
  47. package/dist/__tests__/test-helpers/IMUserModelStore.js.map +1 -1
  48. package/dist/client/controllers/ExpenseAccountController.d.ts +2 -1
  49. package/dist/client/controllers/ExpenseAccountController.d.ts.map +1 -1
  50. package/dist/client/controllers/ExpenseAccountController.js +43 -51
  51. package/dist/client/controllers/ExpenseAccountController.js.map +1 -1
  52. package/dist/client/controllers/ExpenseController.d.ts.map +1 -1
  53. package/dist/client/controllers/ExpenseController.js +11 -0
  54. package/dist/client/controllers/ExpenseController.js.map +1 -1
  55. package/dist/client/controllers/FriendController.d.ts.map +1 -1
  56. package/dist/client/controllers/FriendController.js +14 -0
  57. package/dist/client/controllers/FriendController.js.map +1 -1
  58. package/dist/client/controllers/GroupController.d.ts +21 -0
  59. package/dist/client/controllers/GroupController.d.ts.map +1 -0
  60. package/dist/client/controllers/GroupController.js +262 -0
  61. package/dist/client/controllers/GroupController.js.map +1 -0
  62. package/dist/client/controllers/GroupTransactionController.d.ts +23 -0
  63. package/dist/client/controllers/GroupTransactionController.d.ts.map +1 -0
  64. package/dist/client/controllers/GroupTransactionController.js +172 -0
  65. package/dist/client/controllers/GroupTransactionController.js.map +1 -0
  66. package/dist/client/controllers/TransactionController.d.ts.map +1 -1
  67. package/dist/client/controllers/TransactionController.js +14 -2
  68. package/dist/client/controllers/TransactionController.js.map +1 -1
  69. package/dist/client/controllers/UserController.d.ts.map +1 -1
  70. package/dist/client/controllers/UserController.js +15 -1
  71. package/dist/client/controllers/UserController.js.map +1 -1
  72. package/dist/common/EventTypes.d.ts +2 -9
  73. package/dist/common/EventTypes.d.ts.map +1 -1
  74. package/dist/common/EventTypes.js +2 -9
  75. package/dist/common/EventTypes.js.map +1 -1
  76. package/dist/contracts/groups/index.d.ts +13 -1
  77. package/dist/contracts/groups/index.d.ts.map +1 -1
  78. package/dist/converters/GroupConverters.d.ts +4 -10
  79. package/dist/converters/GroupConverters.d.ts.map +1 -1
  80. package/dist/converters/GroupConverters.js +5 -28
  81. package/dist/converters/GroupConverters.js.map +1 -1
  82. package/dist/converters/GroupTransactionConverters.d.ts +4 -40
  83. package/dist/converters/GroupTransactionConverters.d.ts.map +1 -1
  84. package/dist/converters/GroupTransactionConverters.js +33 -154
  85. package/dist/converters/GroupTransactionConverters.js.map +1 -1
  86. package/dist/converters/eventConverter.d.ts.map +1 -1
  87. package/dist/converters/eventConverter.js +4 -18
  88. package/dist/converters/eventConverter.js.map +1 -1
  89. package/dist/index.d.ts +4 -2
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +6 -1
  92. package/dist/index.js.map +1 -1
  93. package/dist/store/FriendModelStore.d.ts +2 -0
  94. package/dist/store/FriendModelStore.d.ts.map +1 -1
  95. package/dist/store/GroupModelStore.d.ts +1 -0
  96. package/dist/store/GroupModelStore.d.ts.map +1 -1
  97. package/dist/store/GroupTransactionModelStore.d.ts +1 -0
  98. package/dist/store/GroupTransactionModelStore.d.ts.map +1 -1
  99. package/dist/store/UserModelStore.d.ts +1 -0
  100. package/dist/store/UserModelStore.d.ts.map +1 -1
  101. package/dist/utils/ActivityUtil.d.ts +3 -0
  102. package/dist/utils/ActivityUtil.d.ts.map +1 -0
  103. package/dist/utils/ActivityUtil.js +15 -0
  104. package/dist/utils/ActivityUtil.js.map +1 -0
  105. package/dist/utils/BalanceUtil.d.ts +1 -0
  106. package/dist/utils/BalanceUtil.d.ts.map +1 -1
  107. package/dist/utils/BalanceUtil.js +40 -0
  108. package/dist/utils/BalanceUtil.js.map +1 -1
  109. package/dist/utils/GroupUtil.d.ts +29 -0
  110. package/dist/utils/GroupUtil.d.ts.map +1 -0
  111. package/dist/utils/GroupUtil.js +735 -0
  112. package/dist/utils/GroupUtil.js.map +1 -0
  113. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BalanceUtil.d.ts","sourceRoot":"","sources":["../../src/utils/BalanceUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAEL,eAAe,EAEhB,MAAM,cAAc,CAAC;AAEtB,qBAAa,WAAW;IAEpB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;gBADb,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa;IAGhC,gBAAgB,CACpB,YAAY,EAAE,gBAAgB,EAAE,EAChC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC;IAmE3B,OAAO,CAAC,yBAAyB;IAwCjC,aAAa,CACX,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAevC,OAAO,CAAC,eAAe;CAmBxB"}
1
+ {"version":3,"file":"BalanceUtil.d.ts","sourceRoot":"","sources":["../../src/utils/BalanceUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAEL,eAAe,EAEhB,MAAM,cAAc,CAAC;AAEtB,qBAAa,WAAW;IAEpB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;gBADb,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa;IAGhC,gBAAgB,CACpB,YAAY,EAAE,gBAAgB,EAAE,EAChC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC;IAmE3B,OAAO,CAAC,yBAAyB;IAwCjC,aAAa,CACX,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAejC,iCAAiC,CACrC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC;IAuD3B,OAAO,CAAC,eAAe;CAmBxB"}
@@ -90,6 +90,46 @@ class BalanceUtil {
90
90
  const convertedAmount = this.convertCurrency(amount, fromCurrency, toCurrency, rates);
91
91
  return { amount: convertedAmount, currency: toCurrency };
92
92
  }
93
+ async convertCurrencyBalancesToResponse(currencyBalances, userId) {
94
+ const nonZeroBalances = new Map();
95
+ for (const [currency, balance] of currencyBalances.entries()) {
96
+ if (balance !== 0) {
97
+ nonZeroBalances.set(currency, balance);
98
+ }
99
+ }
100
+ if (nonZeroBalances.size === 0) {
101
+ return { main: undefined, other: [] };
102
+ }
103
+ const user = await this.userModelStore.getByStreamIdWhereDeletedIsFalse(userId);
104
+ const toCurrency = user?.currency ?? "USD";
105
+ const currencyRates = (await this.currencyStore.getCurrencyRates())?.rates ?? {};
106
+ const other = [];
107
+ let totalConvertedAmount = 0;
108
+ for (const [currency, balance] of nonZeroBalances.entries()) {
109
+ const convertedAmount = this.convertCurrency(balance, currency, toCurrency, currencyRates);
110
+ other.push({
111
+ amount: {
112
+ amount: Math.abs(balance),
113
+ currency: currency,
114
+ isOwed: balance > 0,
115
+ },
116
+ convertedAmount: {
117
+ amount: Math.abs(convertedAmount),
118
+ currency: toCurrency,
119
+ isOwed: convertedAmount > 0,
120
+ },
121
+ });
122
+ totalConvertedAmount += convertedAmount;
123
+ }
124
+ return {
125
+ main: {
126
+ amount: Math.abs(totalConvertedAmount),
127
+ currency: toCurrency,
128
+ isOwed: totalConvertedAmount > 0,
129
+ },
130
+ other,
131
+ };
132
+ }
93
133
  convertCurrency(amount, fromCurrency, toCurrency, rates) {
94
134
  if (fromCurrency === toCurrency) {
95
135
  return amount;
@@ -1 +1 @@
1
- {"version":3,"file":"BalanceUtil.js","sourceRoot":"","sources":["../../src/utils/BalanceUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BalanceUtil.js","sourceRoot":"","sources":["../../src/utils/BalanceUtil.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { FriendEvent, FriendModel, GroupEvent, GroupModel, GroupOriginalTransaction, GroupTransactionCreated, GroupTransactionEvent, GroupTransactionModel, GroupTransactionUpdated, MemberAmount, TransactionEvent, TransactionModel, UserModel } from "..";
2
+ import { GroupTransactionResponse, GroupTransactionSpecificAmountsRequest, GroupTransactionTheyPaidSplitEquallyRequest, GroupTransactionYouPaidSplitEquallyRequest } from "../contracts/groups";
3
+ export interface ProcessGroupEventResult {
4
+ groupEventsToSave: GroupEvent[];
5
+ friendEventsToSave: FriendEvent[];
6
+ groupModelsToSave: GroupModel[];
7
+ friendModelsToSave: FriendModel[];
8
+ }
9
+ export declare function processGroupEventForPerspectives(event: GroupEvent, existingGroupModels: Map<string, GroupModel>, friendModelsByUserId: Record<string, FriendModel[]>, existingUsersInGroup: UserModel[]): ProcessGroupEventResult;
10
+ export declare function generateFriendEventsForMissingFriendships(groupModel: GroupModel, friendModels: FriendModel[], existingUsersInGroup: UserModel[]): FriendEvent[];
11
+ export declare function generateGroupPerspectiveEvents(clientEvent: GroupEvent, existingGroupModels?: Map<string, GroupModel>): GroupEvent[];
12
+ export interface ProcessGroupTransactionEventResult {
13
+ groupTransactionEventsToSave: GroupTransactionEvent[];
14
+ groupTransactionModelsToSave: GroupTransactionModel[];
15
+ transactionEventsToSave: TransactionEvent[];
16
+ transactionModelsToSave: TransactionModel[];
17
+ }
18
+ export declare function processGroupTransactionEventForPerspectives(event: GroupTransactionEvent, updatedModel: GroupTransactionModel, existingPerspectiveModels: Map<string, GroupTransactionModel>, existingTransactionModels: TransactionModel[]): ProcessGroupTransactionEventResult;
19
+ export declare function calculateDebtsForMember(originalTransaction: GroupOriginalTransaction, memberId: string): {
20
+ whoYouOwe: MemberAmount[];
21
+ whoOweYou: MemberAmount[];
22
+ };
23
+ export declare function generatePerspectiveEvents(clientEvent: GroupTransactionEvent, updatedModel: GroupTransactionModel, existingPerspectiveModels?: Map<string, GroupTransactionModel>): GroupTransactionEvent[];
24
+ export declare function generateTransactionEventsForGroupTransactionModel(existingGroupTransactions: TransactionModel[], updatedModel: GroupTransactionModel): TransactionEvent[];
25
+ export declare function buildYouPaidSplitEquallyEvent(userId: string, groupId: string, request: GroupTransactionYouPaidSplitEquallyRequest, existingModel?: GroupTransactionModel): GroupTransactionCreated | GroupTransactionUpdated;
26
+ export declare function buildTheyPaidSplitEquallyEvent(userId: string, groupId: string, request: GroupTransactionTheyPaidSplitEquallyRequest, existingModel?: GroupTransactionModel): GroupTransactionCreated | GroupTransactionUpdated;
27
+ export declare function buildSpecificAmountsEvent(userId: string, groupId: string, request: GroupTransactionSpecificAmountsRequest, existingModel?: GroupTransactionModel): GroupTransactionCreated | GroupTransactionUpdated;
28
+ export declare function toGroupTransactionResponse(model: GroupTransactionModel, toCurrency: string, rates: Record<string, number>): GroupTransactionResponse;
29
+ //# sourceMappingURL=GroupUtil.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupUtil.d.ts","sourceRoot":"","sources":["../../src/utils/GroupUtil.ts"],"names":[],"mappings":"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"}