@zeeshan60/event-processor 1.0.9 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -0
- package/dist/ActivityEventHandler.js +1 -1
- package/dist/ActivityLogEvents.d.ts +2 -2
- package/dist/ActivityLogEvents.d.ts.map +1 -1
- package/dist/EventProcessorSDK.d.ts +56 -0
- package/dist/EventProcessorSDK.d.ts.map +1 -0
- package/dist/EventProcessorSDK.js +80 -0
- package/dist/FriendEventHandler.d.ts +2 -2
- package/dist/FriendEventHandler.d.ts.map +1 -1
- package/dist/FriendEventHandler.js +7 -13
- package/dist/FriendEvents.d.ts +14 -21
- package/dist/FriendEvents.d.ts.map +1 -1
- package/dist/FriendEvents.js +1 -9
- package/dist/GroupEventHandler.d.ts +2 -2
- package/dist/GroupEventHandler.d.ts.map +1 -1
- package/dist/GroupEventHandler.js +10 -17
- package/dist/GroupEvents.d.ts +17 -25
- package/dist/GroupEvents.d.ts.map +1 -1
- package/dist/GroupEvents.js +1 -10
- package/dist/GroupTransactionEventHandler.d.ts +2 -2
- package/dist/GroupTransactionEventHandler.d.ts.map +1 -1
- package/dist/GroupTransactionEventHandler.js +14 -12
- package/dist/GroupTransactionEvents.d.ts +28 -39
- package/dist/GroupTransactionEvents.d.ts.map +1 -1
- package/dist/GroupTransactionEvents.js +1 -16
- package/dist/TransactionEventHandler.d.ts +2 -2
- package/dist/TransactionEventHandler.d.ts.map +1 -1
- package/dist/TransactionEventHandler.js +9 -30
- package/dist/TransactionEvents.d.ts +25 -16
- package/dist/TransactionEvents.d.ts.map +1 -1
- package/dist/TransactionEvents.js +8 -13
- package/dist/UserEventHandler.js +1 -1
- package/dist/UserEvents.d.ts +25 -35
- package/dist/UserEvents.d.ts.map +1 -1
- package/dist/UserEvents.js +1 -22
- package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMActivityLogEventStore.js +1 -1
- package/dist/__tests__/test-helpers/IMFriendEventStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMFriendEventStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMFriendEventStore.js +1 -1
- package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMGroupEventStore.js +1 -1
- package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.js +3 -3
- package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts +4 -4
- package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMTransactionEventStore.js +1 -1
- package/dist/__tests__/test-helpers/IMUserEventStore.d.ts +4 -4
- package/dist/__tests__/test-helpers/IMUserEventStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMUserEventStore.js +1 -1
- package/dist/__tests__/test-helpers/MockFirebaseAdapter.d.ts +6 -0
- package/dist/__tests__/test-helpers/MockFirebaseAdapter.d.ts.map +1 -0
- package/dist/__tests__/test-helpers/MockFirebaseAdapter.js +18 -0
- package/dist/adapters/FirebaseAdapter.d.ts +5 -0
- package/dist/adapters/FirebaseAdapter.d.ts.map +1 -0
- package/dist/adapters/FirebaseAdapter.js +2 -0
- package/dist/adapters/FirebaseAdminAdapter.d.ts +8 -0
- package/dist/adapters/FirebaseAdminAdapter.d.ts.map +1 -0
- package/dist/adapters/FirebaseAdminAdapter.js +21 -0
- package/dist/adapters/FirebaseClientAdapter.d.ts +8 -0
- package/dist/adapters/FirebaseClientAdapter.d.ts.map +1 -0
- package/dist/adapters/FirebaseClientAdapter.js +22 -0
- package/dist/client/controllers/UserController.d.ts +9 -0
- package/dist/client/controllers/UserController.d.ts.map +1 -0
- package/dist/client/controllers/UserController.js +36 -0
- package/dist/client/handlers/UIActivityEventHandler.d.ts +12 -0
- package/dist/client/handlers/UIActivityEventHandler.d.ts.map +1 -0
- package/dist/client/handlers/UIActivityEventHandler.js +14 -0
- package/dist/client/handlers/UIEventHandler.d.ts +25 -0
- package/dist/client/handlers/UIEventHandler.d.ts.map +1 -0
- package/dist/client/handlers/UIEventHandler.js +50 -0
- package/dist/client/handlers/UIFriendEventHandler.d.ts +16 -0
- package/dist/client/handlers/UIFriendEventHandler.d.ts.map +1 -0
- package/dist/client/handlers/UIFriendEventHandler.js +27 -0
- package/dist/client/handlers/UIGroupEventHandler.d.ts +18 -0
- package/dist/client/handlers/UIGroupEventHandler.d.ts.map +1 -0
- package/dist/client/handlers/UIGroupEventHandler.js +28 -0
- package/dist/client/handlers/UIGroupTransactionEventHandler.d.ts +18 -0
- package/dist/client/handlers/UIGroupTransactionEventHandler.d.ts.map +1 -0
- package/dist/client/handlers/UIGroupTransactionEventHandler.js +28 -0
- package/dist/client/handlers/UITransactionEventHandler.d.ts +14 -0
- package/dist/client/handlers/UITransactionEventHandler.d.ts.map +1 -0
- package/dist/client/handlers/UITransactionEventHandler.js +26 -0
- package/dist/client/handlers/UIUserEventHandler.d.ts +12 -0
- package/dist/client/handlers/UIUserEventHandler.d.ts.map +1 -0
- package/dist/client/handlers/UIUserEventHandler.js +29 -0
- package/dist/common/DomainEvents.d.ts +87 -0
- package/dist/common/DomainEvents.d.ts.map +1 -0
- package/dist/common/DomainEvents.js +91 -0
- package/dist/common/Event.d.ts +1 -0
- package/dist/common/Event.d.ts.map +1 -1
- package/dist/config/environment.d.ts.map +1 -1
- package/dist/config/environment.js +14 -7
- package/dist/contracts/common/index.d.ts +7 -0
- package/dist/contracts/common/index.d.ts.map +1 -0
- package/dist/contracts/common/index.js +2 -0
- package/dist/contracts/expenses/index.d.ts +148 -0
- package/dist/contracts/expenses/index.d.ts.map +1 -0
- package/dist/contracts/expenses/index.js +30 -0
- package/dist/contracts/friends/index.d.ts +82 -0
- package/dist/contracts/friends/index.d.ts.map +1 -0
- package/dist/contracts/friends/index.js +2 -0
- package/dist/contracts/groups/index.d.ts +139 -0
- package/dist/contracts/groups/index.d.ts.map +1 -0
- package/dist/contracts/groups/index.js +2 -0
- package/dist/contracts/index.d.ts +7 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +22 -0
- package/dist/contracts/shared/index.d.ts +12 -0
- package/dist/contracts/shared/index.d.ts.map +1 -0
- package/dist/contracts/shared/index.js +2 -0
- package/dist/contracts/transactions/index.d.ts +154 -0
- package/dist/contracts/transactions/index.d.ts.map +1 -0
- package/dist/contracts/transactions/index.js +19 -0
- package/dist/controllers/UIEventHandler.d.ts +25 -0
- package/dist/controllers/UIEventHandler.d.ts.map +1 -0
- package/dist/controllers/UIEventHandler.js +50 -0
- package/dist/controllers/UserController.d.ts +5 -0
- package/dist/controllers/UserController.d.ts.map +1 -1
- package/dist/controllers/UserController.js +8 -0
- package/dist/converters/eventConverter.d.ts +17 -0
- package/dist/converters/eventConverter.d.ts.map +1 -0
- package/dist/converters/eventConverter.js +344 -0
- package/dist/events.d.ts +0 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +1 -11
- package/dist/index.d.ts +12 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -2
- package/dist/store/ActivityLogEventStore.d.ts +2 -2
- package/dist/store/ActivityLogEventStore.d.ts.map +1 -1
- package/dist/store/FriendEventStore.d.ts +2 -2
- package/dist/store/FriendEventStore.d.ts.map +1 -1
- package/dist/store/GroupEventStore.d.ts +2 -2
- package/dist/store/GroupEventStore.d.ts.map +1 -1
- package/dist/store/GroupTransactionEventStore.d.ts +2 -2
- package/dist/store/GroupTransactionEventStore.d.ts.map +1 -1
- package/dist/store/TransactionEventStore.d.ts +2 -2
- package/dist/store/TransactionEventStore.d.ts.map +1 -1
- package/dist/store/UserEventStore.d.ts +2 -2
- package/dist/store/UserEventStore.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { SplitType } from "../transactions";
|
|
2
|
+
import { BalanceResponse } from "../shared";
|
|
3
|
+
export interface GroupCreateRequest {
|
|
4
|
+
name: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface GroupRemoveMembersRequest {
|
|
8
|
+
memberIds: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface GroupAddMembersRequest {
|
|
11
|
+
memberIds: string[];
|
|
12
|
+
}
|
|
13
|
+
export interface GroupTransactionYouPaidSplitEquallyRequest {
|
|
14
|
+
transactionId?: string;
|
|
15
|
+
description: string;
|
|
16
|
+
currency: string;
|
|
17
|
+
totalAmount: number;
|
|
18
|
+
memberIds: string[];
|
|
19
|
+
transactionDate: string;
|
|
20
|
+
}
|
|
21
|
+
export interface GroupTransactionTheyPaidSplitEquallyRequest {
|
|
22
|
+
transactionId?: string;
|
|
23
|
+
description: string;
|
|
24
|
+
currency: string;
|
|
25
|
+
totalAmount: number;
|
|
26
|
+
paidByMemberId: string;
|
|
27
|
+
memberIds: string[];
|
|
28
|
+
transactionDate: string;
|
|
29
|
+
}
|
|
30
|
+
export interface SpecificMemberAmountRequest {
|
|
31
|
+
memberId: string;
|
|
32
|
+
amountPaid: number;
|
|
33
|
+
amountSpent: number;
|
|
34
|
+
}
|
|
35
|
+
export interface GroupTransactionSpecificAmountsRequest {
|
|
36
|
+
transactionId?: string;
|
|
37
|
+
description: string;
|
|
38
|
+
currency: string;
|
|
39
|
+
totalAmount: number;
|
|
40
|
+
splitType: SplitType;
|
|
41
|
+
memberAmounts: SpecificMemberAmountRequest[];
|
|
42
|
+
transactionDate: string;
|
|
43
|
+
}
|
|
44
|
+
export interface SpecificMemberAmountDto {
|
|
45
|
+
memberId?: string;
|
|
46
|
+
amountPaid: number;
|
|
47
|
+
amountSpent: number;
|
|
48
|
+
}
|
|
49
|
+
export interface GroupMemberResponse {
|
|
50
|
+
memberId: string;
|
|
51
|
+
memberPhoneNumber?: string;
|
|
52
|
+
memberEmail?: string;
|
|
53
|
+
memberName: string;
|
|
54
|
+
userBalanceWithThisMember?: BalanceResponse;
|
|
55
|
+
}
|
|
56
|
+
export interface GroupResponse {
|
|
57
|
+
id: string;
|
|
58
|
+
name: string;
|
|
59
|
+
description?: string;
|
|
60
|
+
members: GroupMemberResponse[];
|
|
61
|
+
balance?: BalanceResponse;
|
|
62
|
+
}
|
|
63
|
+
export interface GroupSummaryResponse {
|
|
64
|
+
id: string;
|
|
65
|
+
name: string;
|
|
66
|
+
description?: string;
|
|
67
|
+
memberCount: number;
|
|
68
|
+
balance?: BalanceResponse;
|
|
69
|
+
}
|
|
70
|
+
export interface GroupSummariesResponse {
|
|
71
|
+
groups: GroupSummaryResponse[];
|
|
72
|
+
}
|
|
73
|
+
export interface WhoPaidWhoDto {
|
|
74
|
+
memberId: string;
|
|
75
|
+
amount: number;
|
|
76
|
+
isOwed: boolean;
|
|
77
|
+
}
|
|
78
|
+
export interface OriginalTransactionResponse {
|
|
79
|
+
type: "YouPaidSplitEqually" | "TheyPaidSplitEqually" | "SpecificAmounts";
|
|
80
|
+
whoPaidWhoResponse(totalAmount: number): WhoPaidWhoDto[];
|
|
81
|
+
}
|
|
82
|
+
export interface OriginalTransactionYouPaidSplitEqually extends OriginalTransactionResponse {
|
|
83
|
+
type: "YouPaidSplitEqually";
|
|
84
|
+
memberIds: string[];
|
|
85
|
+
}
|
|
86
|
+
export interface OriginalTransactionTheyPaidSplitEqually extends OriginalTransactionResponse {
|
|
87
|
+
type: "TheyPaidSplitEqually";
|
|
88
|
+
memberWhoPaid: string;
|
|
89
|
+
memberIds: string[];
|
|
90
|
+
}
|
|
91
|
+
export interface SpecificMemberAmountResponse {
|
|
92
|
+
memberId: string;
|
|
93
|
+
amountPaid: number;
|
|
94
|
+
amountSpent: number;
|
|
95
|
+
}
|
|
96
|
+
export interface OriginalTransactionSpecificAmounts extends OriginalTransactionResponse {
|
|
97
|
+
type: "SpecificAmounts";
|
|
98
|
+
members: SpecificMemberAmountResponse[];
|
|
99
|
+
}
|
|
100
|
+
export interface MemberAmountResponse {
|
|
101
|
+
memberId: string;
|
|
102
|
+
amount: number;
|
|
103
|
+
amountInDefaultCurrency: number;
|
|
104
|
+
}
|
|
105
|
+
export interface WhoOweWhoWithTotalsResponse {
|
|
106
|
+
amount: number;
|
|
107
|
+
isOwed: boolean;
|
|
108
|
+
amountInDefaultCurrency: number;
|
|
109
|
+
defaultCurrency: string;
|
|
110
|
+
whoOweYou: MemberAmountResponse[];
|
|
111
|
+
whoYouOwe: MemberAmountResponse[];
|
|
112
|
+
}
|
|
113
|
+
export interface GroupTransactionResponse {
|
|
114
|
+
id: string;
|
|
115
|
+
date: string;
|
|
116
|
+
description?: string;
|
|
117
|
+
notes?: string;
|
|
118
|
+
totalAmount: number;
|
|
119
|
+
currency: string;
|
|
120
|
+
splitType: SplitType;
|
|
121
|
+
whoOweWho: WhoOweWhoWithTotalsResponse;
|
|
122
|
+
originalTransaction: OriginalTransactionResponse;
|
|
123
|
+
createdAt: string;
|
|
124
|
+
createdBy: string;
|
|
125
|
+
}
|
|
126
|
+
export interface GroupTransactionsPerMonth {
|
|
127
|
+
date: string;
|
|
128
|
+
transactions: GroupTransactionResponse[];
|
|
129
|
+
}
|
|
130
|
+
export interface GroupTransactionsByMonthResponse {
|
|
131
|
+
perMonth: GroupTransactionsPerMonth[];
|
|
132
|
+
balance: BalanceResponse;
|
|
133
|
+
}
|
|
134
|
+
export interface WhoPaidWhoWithTotalsDto {
|
|
135
|
+
amount: number;
|
|
136
|
+
isOwed: boolean;
|
|
137
|
+
details: WhoPaidWhoDto[];
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contracts/groups/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./shared"), exports);
|
|
18
|
+
__exportStar(require("./common"), exports);
|
|
19
|
+
__exportStar(require("./friends"), exports);
|
|
20
|
+
__exportStar(require("./transactions"), exports);
|
|
21
|
+
__exportStar(require("./groups"), exports);
|
|
22
|
+
__exportStar(require("./expenses"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AmountDto as EventAmountDto } from "../../TransactionEvents";
|
|
2
|
+
export type AmountDto = EventAmountDto;
|
|
3
|
+
export type AmountResponse = EventAmountDto;
|
|
4
|
+
export interface OtherBalanceResponse {
|
|
5
|
+
amount: AmountResponse;
|
|
6
|
+
convertedAmount: AmountResponse;
|
|
7
|
+
}
|
|
8
|
+
export interface BalanceResponse {
|
|
9
|
+
main?: AmountResponse;
|
|
10
|
+
other: OtherBalanceResponse[];
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contracts/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEtE,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC;AACvC,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC;AAE5C,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,EAAE,oBAAoB,EAAE,CAAC;CAC/B"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { FriendSummaryDto } from "../friends";
|
|
2
|
+
import { AmountDto, AmountResponse, BalanceResponse } from "../shared";
|
|
3
|
+
import { SplitType as EventSplitType } from "../../TransactionEvents";
|
|
4
|
+
export type SplitType = EventSplitType;
|
|
5
|
+
export { EventSplitType as SplitTypeEnum };
|
|
6
|
+
export declare enum ActivityType {
|
|
7
|
+
CREATED = "CREATED",
|
|
8
|
+
UPDATED = "UPDATED",
|
|
9
|
+
DELETED = "DELETED"
|
|
10
|
+
}
|
|
11
|
+
export declare enum TransactionChangeType {
|
|
12
|
+
DESCRIPTION = "DESCRIPTION",
|
|
13
|
+
AMOUNT = "AMOUNT",
|
|
14
|
+
CURRENCY = "CURRENCY",
|
|
15
|
+
SPLIT_TYPE = "SPLIT_TYPE",
|
|
16
|
+
DATE = "DATE"
|
|
17
|
+
}
|
|
18
|
+
export interface UserAmount {
|
|
19
|
+
userId: string;
|
|
20
|
+
paidAmount: number;
|
|
21
|
+
owedAmount: number;
|
|
22
|
+
}
|
|
23
|
+
export interface GroupAmountSplit {
|
|
24
|
+
userAmounts: UserAmount[];
|
|
25
|
+
}
|
|
26
|
+
export interface TransactionBaseRequest {
|
|
27
|
+
transactionDate: string;
|
|
28
|
+
amount: number;
|
|
29
|
+
currency: string;
|
|
30
|
+
type: SplitType;
|
|
31
|
+
description: string;
|
|
32
|
+
groupAmountSplit?: GroupAmountSplit;
|
|
33
|
+
}
|
|
34
|
+
export interface TransactionCreateRequest extends TransactionBaseRequest {
|
|
35
|
+
recipientId?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface TransactionUpdateRequest extends TransactionBaseRequest {
|
|
38
|
+
}
|
|
39
|
+
export interface ChangeSummaryDto {
|
|
40
|
+
date: string;
|
|
41
|
+
changedBy: string;
|
|
42
|
+
changedByName: string;
|
|
43
|
+
changedByPhoto?: string;
|
|
44
|
+
oldValue: string;
|
|
45
|
+
newValue: string;
|
|
46
|
+
type: TransactionChangeType;
|
|
47
|
+
}
|
|
48
|
+
export interface TransactionDto {
|
|
49
|
+
defaultCurrency?: string;
|
|
50
|
+
amountInDefaultCurrency?: number;
|
|
51
|
+
currency: string;
|
|
52
|
+
description: string;
|
|
53
|
+
originalAmount: number;
|
|
54
|
+
specificAmount?: AmountDto;
|
|
55
|
+
splitType: SplitType;
|
|
56
|
+
friendSummaryDto: FriendSummaryDto;
|
|
57
|
+
transactionStreamId: string;
|
|
58
|
+
transactionDate: string;
|
|
59
|
+
updatedAt?: string;
|
|
60
|
+
createdAt?: string;
|
|
61
|
+
createdBy?: string;
|
|
62
|
+
createdByName?: string;
|
|
63
|
+
updatedBy?: string;
|
|
64
|
+
updatedByName?: string;
|
|
65
|
+
deleted: boolean;
|
|
66
|
+
history: ChangeSummaryDto[];
|
|
67
|
+
groupId?: string;
|
|
68
|
+
groupTransactionId?: string;
|
|
69
|
+
groupName?: string;
|
|
70
|
+
}
|
|
71
|
+
export interface TransactionUserResponse {
|
|
72
|
+
id: string;
|
|
73
|
+
name: string;
|
|
74
|
+
}
|
|
75
|
+
export interface ChangeSummaryResponse {
|
|
76
|
+
changedBy: string;
|
|
77
|
+
changedByName: string;
|
|
78
|
+
changedByPhoto?: string;
|
|
79
|
+
changes: ChangeSummaryDto[];
|
|
80
|
+
}
|
|
81
|
+
export interface TransactionResponse {
|
|
82
|
+
date: string;
|
|
83
|
+
description: string;
|
|
84
|
+
transactionId: string;
|
|
85
|
+
groupTransactionId?: string;
|
|
86
|
+
groupId?: string;
|
|
87
|
+
groupName?: string;
|
|
88
|
+
totalAmount: number;
|
|
89
|
+
splitType: SplitType;
|
|
90
|
+
amount: AmountResponse;
|
|
91
|
+
friend: FriendSummaryDto;
|
|
92
|
+
defaultCurrencyAmount?: AmountResponse;
|
|
93
|
+
history: ChangeSummaryResponse[];
|
|
94
|
+
createdAt: string;
|
|
95
|
+
updatedAt?: string;
|
|
96
|
+
createdBy: TransactionUserResponse;
|
|
97
|
+
updatedBy?: TransactionUserResponse;
|
|
98
|
+
deleted: boolean;
|
|
99
|
+
}
|
|
100
|
+
export interface TransactionsPerMonth {
|
|
101
|
+
date: string;
|
|
102
|
+
transactions: TransactionResponse[];
|
|
103
|
+
}
|
|
104
|
+
export interface TransactionsResponse {
|
|
105
|
+
balance: BalanceResponse;
|
|
106
|
+
perMonth: TransactionsPerMonth[];
|
|
107
|
+
}
|
|
108
|
+
export interface TransactionModel {
|
|
109
|
+
streamId: string;
|
|
110
|
+
userId: string;
|
|
111
|
+
description: string;
|
|
112
|
+
currency: string;
|
|
113
|
+
splitType: SplitType;
|
|
114
|
+
totalAmount: number;
|
|
115
|
+
amount?: AmountDto;
|
|
116
|
+
recipientId: string;
|
|
117
|
+
createdAt: string;
|
|
118
|
+
updatedAt?: string;
|
|
119
|
+
firstCreatedAt: string;
|
|
120
|
+
createdBy: string;
|
|
121
|
+
updatedBy?: string;
|
|
122
|
+
deleted: boolean;
|
|
123
|
+
version: number;
|
|
124
|
+
transactionDate: string;
|
|
125
|
+
historyLogId?: string;
|
|
126
|
+
groupId?: string;
|
|
127
|
+
groupTransactionId?: string;
|
|
128
|
+
}
|
|
129
|
+
export interface ActivityLog {
|
|
130
|
+
id: string;
|
|
131
|
+
userId: string;
|
|
132
|
+
activityByUid: string;
|
|
133
|
+
description: string;
|
|
134
|
+
activityType: ActivityType;
|
|
135
|
+
amount: number;
|
|
136
|
+
currency: string;
|
|
137
|
+
isOwed: boolean;
|
|
138
|
+
date: string;
|
|
139
|
+
transactionModel: TransactionModel;
|
|
140
|
+
}
|
|
141
|
+
export interface ActivityLogResponse {
|
|
142
|
+
id: string;
|
|
143
|
+
userUid: string;
|
|
144
|
+
activityByName?: string;
|
|
145
|
+
activityByPhoto?: string;
|
|
146
|
+
description: string;
|
|
147
|
+
activityType: ActivityType;
|
|
148
|
+
amount: number;
|
|
149
|
+
currency: string;
|
|
150
|
+
isOwed: boolean;
|
|
151
|
+
date: string;
|
|
152
|
+
transactionResponse: TransactionResponse;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contracts/transactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,SAAS,EACT,cAAc,EAEd,eAAe,EAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEtE,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,CAAC;AAE3C,oBAAY,YAAY;IACtB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,oBAAY,qBAAqB;IAC/B,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;CAAG;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;IACzB,qBAAqB,CAAC,EAAE,cAAc,CAAC;IACvC,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,uBAAuB,CAAC;IACnC,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,mBAAmB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TransactionChangeType = exports.ActivityType = exports.SplitTypeEnum = void 0;
|
|
4
|
+
const TransactionEvents_1 = require("../../TransactionEvents");
|
|
5
|
+
Object.defineProperty(exports, "SplitTypeEnum", { enumerable: true, get: function () { return TransactionEvents_1.SplitType; } });
|
|
6
|
+
var ActivityType;
|
|
7
|
+
(function (ActivityType) {
|
|
8
|
+
ActivityType["CREATED"] = "CREATED";
|
|
9
|
+
ActivityType["UPDATED"] = "UPDATED";
|
|
10
|
+
ActivityType["DELETED"] = "DELETED";
|
|
11
|
+
})(ActivityType || (exports.ActivityType = ActivityType = {}));
|
|
12
|
+
var TransactionChangeType;
|
|
13
|
+
(function (TransactionChangeType) {
|
|
14
|
+
TransactionChangeType["DESCRIPTION"] = "DESCRIPTION";
|
|
15
|
+
TransactionChangeType["AMOUNT"] = "AMOUNT";
|
|
16
|
+
TransactionChangeType["CURRENCY"] = "CURRENCY";
|
|
17
|
+
TransactionChangeType["SPLIT_TYPE"] = "SPLIT_TYPE";
|
|
18
|
+
TransactionChangeType["DATE"] = "DATE";
|
|
19
|
+
})(TransactionChangeType || (exports.TransactionChangeType = TransactionChangeType = {}));
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { UserModelStore } from '../store/UserModelStore';
|
|
2
|
+
interface FirestoreTimestamp {
|
|
3
|
+
toDate(): Date;
|
|
4
|
+
seconds: number;
|
|
5
|
+
nanoseconds: number;
|
|
6
|
+
}
|
|
7
|
+
interface ClientFirestoreEventData {
|
|
8
|
+
id: string;
|
|
9
|
+
eventType: string;
|
|
10
|
+
streamId: string;
|
|
11
|
+
version: number;
|
|
12
|
+
createdAt: FirestoreTimestamp | Date;
|
|
13
|
+
createdBy: string;
|
|
14
|
+
systemGenerated?: boolean;
|
|
15
|
+
[key: string]: any;
|
|
16
|
+
}
|
|
17
|
+
export declare class UIEventHandler {
|
|
18
|
+
private userModelStore;
|
|
19
|
+
constructor(userModelStore: UserModelStore);
|
|
20
|
+
handleFirestoreEvent(eventData: ClientFirestoreEventData): Promise<void>;
|
|
21
|
+
private firestoreToEvent;
|
|
22
|
+
private toDate;
|
|
23
|
+
}
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=UIEventHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UIEventHandler.d.ts","sourceRoot":"","sources":["../../src/controllers/UIEventHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAGvD,UAAU,kBAAkB;IACxB,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,wBAAwB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,qBAAa,cAAc;IAEnB,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAGpC,oBAAoB,CAAC,SAAS,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9E,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,MAAM;CASjB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UIEventHandler = void 0;
|
|
4
|
+
const __1 = require("..");
|
|
5
|
+
const EventBusSingleton_1 = require("../common/EventBusSingleton");
|
|
6
|
+
class UIEventHandler {
|
|
7
|
+
constructor(userModelStore) {
|
|
8
|
+
this.userModelStore = userModelStore;
|
|
9
|
+
}
|
|
10
|
+
async handleFirestoreEvent(eventData) {
|
|
11
|
+
const event = this.firestoreToEvent(eventData);
|
|
12
|
+
if (event instanceof __1.UserCreated) {
|
|
13
|
+
const existingModel = await this.userModelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
|
|
14
|
+
const updatedModel = event.apply(existingModel);
|
|
15
|
+
await this.userModelStore.save(updatedModel);
|
|
16
|
+
(0, EventBusSingleton_1.getEventBus)().publish(event);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
firestoreToEvent(data) {
|
|
20
|
+
const eventType = data.eventType;
|
|
21
|
+
const createdAt = this.toDate(data.createdAt);
|
|
22
|
+
if (eventType === 'UserCreated') {
|
|
23
|
+
return new __1.UserCreated({
|
|
24
|
+
userId: data.userId,
|
|
25
|
+
firebaseUid: data.firebaseUid,
|
|
26
|
+
displayName: data.displayName,
|
|
27
|
+
phoneNumber: data.phoneNumber,
|
|
28
|
+
email: data.email,
|
|
29
|
+
photoUrl: data.photoUrl,
|
|
30
|
+
emailVerified: data.emailVerified,
|
|
31
|
+
createdAt,
|
|
32
|
+
createdBy: data.createdBy,
|
|
33
|
+
streamId: data.streamId,
|
|
34
|
+
version: data.version,
|
|
35
|
+
systemGenerated: data.systemGenerated ?? false,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
throw new Error(`Unsupported event type: ${eventType}`);
|
|
39
|
+
}
|
|
40
|
+
toDate(timestamp) {
|
|
41
|
+
if (timestamp instanceof Date) {
|
|
42
|
+
return timestamp;
|
|
43
|
+
}
|
|
44
|
+
if (typeof timestamp === 'object' && 'toDate' in timestamp) {
|
|
45
|
+
return timestamp.toDate();
|
|
46
|
+
}
|
|
47
|
+
return new Date(timestamp);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.UIEventHandler = UIEventHandler;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
import { UserModelStore } from '../store/UserModelStore';
|
|
2
|
+
import { UserEventStore } from '../store/UserEventStore';
|
|
1
3
|
export declare class UserController {
|
|
4
|
+
private modelStore;
|
|
5
|
+
private eventStore?;
|
|
6
|
+
constructor(modelStore: UserModelStore, eventStore?: UserEventStore | undefined);
|
|
2
7
|
loginUser(userFSId: string): Promise<string>;
|
|
3
8
|
}
|
|
4
9
|
//# sourceMappingURL=UserController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserController.d.ts","sourceRoot":"","sources":["../../src/controllers/UserController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UserController.d.ts","sourceRoot":"","sources":["../../src/controllers/UserController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAGvD,qBAAa,cAAc;IAEnB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,UAAU,CAAC;gBADX,UAAU,EAAE,cAAc,EAC1B,UAAU,CAAC,EAAE,cAAc,YAAA;IAGjC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA+BrD"}
|
|
@@ -5,7 +5,15 @@ const EventBusSingleton_1 = require("../common/EventBusSingleton");
|
|
|
5
5
|
const UserEvents_1 = require("../UserEvents");
|
|
6
6
|
const rxjs_1 = require("rxjs");
|
|
7
7
|
class UserController {
|
|
8
|
+
constructor(modelStore, eventStore) {
|
|
9
|
+
this.modelStore = modelStore;
|
|
10
|
+
this.eventStore = eventStore;
|
|
11
|
+
}
|
|
8
12
|
async loginUser(userFSId) {
|
|
13
|
+
const existingUser = await this.modelStore.findByFirebaseUid(userFSId);
|
|
14
|
+
if (existingUser) {
|
|
15
|
+
return existingUser.userId;
|
|
16
|
+
}
|
|
9
17
|
const eventBus = (0, EventBusSingleton_1.getEventBus)();
|
|
10
18
|
const isUserCreatedForFirebaseUid = (event) => {
|
|
11
19
|
return event instanceof UserEvents_1.UserCreated && event.firebaseUid === userFSId;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Event } from '../events';
|
|
2
|
+
import { FirebaseAdapter } from '../adapters/FirebaseAdapter';
|
|
3
|
+
export interface FirestoreEventData {
|
|
4
|
+
eventId: string;
|
|
5
|
+
userId: string;
|
|
6
|
+
streamId: string;
|
|
7
|
+
version: number;
|
|
8
|
+
createdAt: any;
|
|
9
|
+
createdBy: string;
|
|
10
|
+
eventType: string;
|
|
11
|
+
eventMainType: string;
|
|
12
|
+
systemGenerated?: boolean;
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
}
|
|
15
|
+
export declare function eventToFirestore(event: Event, eventId: string, firebaseAdapter: FirebaseAdapter): FirestoreEventData;
|
|
16
|
+
export declare function firestoreToEvent(data: FirestoreEventData, firebaseAdapter: FirebaseAdapter): Event;
|
|
17
|
+
//# sourceMappingURL=eventConverter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventConverter.d.ts","sourceRoot":"","sources":["../../src/converters/eventConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,EAkBR,MAAM,WAAW,CAAC;AACnB,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,GAAG,CAAC;IACf,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;CACtB;AAsCD,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,eAAe,GACjC,kBAAkB,CAwGpB;AAED,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,kBAAkB,EACxB,eAAe,EAAE,eAAe,GACjC,KAAK,CAwOP"}
|