@memberjunction/server 2.20.1 → 2.20.3

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 (40) hide show
  1. package/dist/config.d.ts +5 -1
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +2 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/generated/generated.d.ts +122 -57
  6. package/dist/generated/generated.d.ts.map +1 -1
  7. package/dist/generated/generated.js +1287 -694
  8. package/dist/generated/generated.js.map +1 -1
  9. package/dist/generic/ResolverBase.d.ts.map +1 -1
  10. package/dist/generic/ResolverBase.js +8 -4
  11. package/dist/generic/ResolverBase.js.map +1 -1
  12. package/dist/index.d.ts +7 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +7 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/resolvers/AskSkipResolver.d.ts +14 -5
  17. package/dist/resolvers/AskSkipResolver.d.ts.map +1 -1
  18. package/dist/resolvers/AskSkipResolver.js +250 -61
  19. package/dist/resolvers/AskSkipResolver.js.map +1 -1
  20. package/dist/resolvers/GetDataResolver.d.ts +90 -0
  21. package/dist/resolvers/GetDataResolver.d.ts.map +1 -0
  22. package/dist/resolvers/GetDataResolver.js +294 -0
  23. package/dist/resolvers/GetDataResolver.js.map +1 -0
  24. package/dist/resolvers/SyncDataResolver.d.ts +47 -0
  25. package/dist/resolvers/SyncDataResolver.d.ts.map +1 -0
  26. package/dist/resolvers/SyncDataResolver.js +345 -0
  27. package/dist/resolvers/SyncDataResolver.js.map +1 -0
  28. package/dist/resolvers/SyncRolesUsersResolver.d.ts +46 -0
  29. package/dist/resolvers/SyncRolesUsersResolver.d.ts.map +1 -0
  30. package/dist/resolvers/SyncRolesUsersResolver.js +389 -0
  31. package/dist/resolvers/SyncRolesUsersResolver.js.map +1 -0
  32. package/package.json +23 -22
  33. package/src/config.ts +2 -0
  34. package/src/generated/generated.ts +899 -610
  35. package/src/generic/ResolverBase.ts +14 -5
  36. package/src/index.ts +12 -1
  37. package/src/resolvers/AskSkipResolver.ts +300 -66
  38. package/src/resolvers/GetDataResolver.ts +245 -0
  39. package/src/resolvers/SyncDataResolver.ts +337 -0
  40. package/src/resolvers/SyncRolesUsersResolver.ts +401 -0
@@ -0,0 +1,345 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { Arg, Ctx, Field, InputType, Mutation, ObjectType, registerEnumType } from 'type-graphql';
14
+ import { CompositeKey, LogError, Metadata, RunView } from '@memberjunction/core';
15
+ import { RequireSystemUser } from '../directives/RequireSystemUser.js';
16
+ import { CompositeKeyInputType, CompositeKeyOutputType } from '../generic/KeyInputOutputTypes.js';
17
+ export var SyncDataActionType;
18
+ (function (SyncDataActionType) {
19
+ SyncDataActionType["Create"] = "Create";
20
+ SyncDataActionType["Update"] = "Update";
21
+ SyncDataActionType["CreateOrUpdate"] = "CreateOrUpdate";
22
+ SyncDataActionType["Delete"] = "Delete";
23
+ SyncDataActionType["DeleteWithFilter"] = "DeleteWithFilter";
24
+ })(SyncDataActionType || (SyncDataActionType = {}));
25
+ registerEnumType(SyncDataActionType, {
26
+ name: "SyncDataActionType",
27
+ description: "Specifies the type of action to be taken in syncing, Create, Update, CreateOrUpdate, Delete"
28
+ });
29
+ let ActionItemInputType = class ActionItemInputType {
30
+ EntityName;
31
+ PrimaryKey;
32
+ AlternateKey;
33
+ Type;
34
+ RecordJSON;
35
+ DeleteFilter;
36
+ };
37
+ __decorate([
38
+ Field(() => String),
39
+ __metadata("design:type", String)
40
+ ], ActionItemInputType.prototype, "EntityName", void 0);
41
+ __decorate([
42
+ Field(() => CompositeKeyInputType, { nullable: true }),
43
+ __metadata("design:type", CompositeKeyInputType)
44
+ ], ActionItemInputType.prototype, "PrimaryKey", void 0);
45
+ __decorate([
46
+ Field(() => CompositeKeyInputType, { nullable: true }),
47
+ __metadata("design:type", CompositeKeyInputType)
48
+ ], ActionItemInputType.prototype, "AlternateKey", void 0);
49
+ __decorate([
50
+ Field(() => SyncDataActionType),
51
+ __metadata("design:type", String)
52
+ ], ActionItemInputType.prototype, "Type", void 0);
53
+ __decorate([
54
+ Field(() => String, { nullable: true }),
55
+ __metadata("design:type", String)
56
+ ], ActionItemInputType.prototype, "RecordJSON", void 0);
57
+ __decorate([
58
+ Field(() => String, { nullable: true }),
59
+ __metadata("design:type", String)
60
+ ], ActionItemInputType.prototype, "DeleteFilter", void 0);
61
+ ActionItemInputType = __decorate([
62
+ InputType()
63
+ ], ActionItemInputType);
64
+ export { ActionItemInputType };
65
+ let ActionItemOutputType = class ActionItemOutputType {
66
+ Success;
67
+ ErrorMessage;
68
+ EntityName;
69
+ PrimaryKey;
70
+ AlternateKey;
71
+ Type;
72
+ RecordJSON;
73
+ DeleteFilter;
74
+ };
75
+ __decorate([
76
+ Field(() => Boolean),
77
+ __metadata("design:type", Boolean)
78
+ ], ActionItemOutputType.prototype, "Success", void 0);
79
+ __decorate([
80
+ Field(() => String),
81
+ __metadata("design:type", String)
82
+ ], ActionItemOutputType.prototype, "ErrorMessage", void 0);
83
+ __decorate([
84
+ Field(() => String),
85
+ __metadata("design:type", String)
86
+ ], ActionItemOutputType.prototype, "EntityName", void 0);
87
+ __decorate([
88
+ Field(() => CompositeKeyOutputType, { nullable: true }),
89
+ __metadata("design:type", CompositeKeyOutputType)
90
+ ], ActionItemOutputType.prototype, "PrimaryKey", void 0);
91
+ __decorate([
92
+ Field(() => CompositeKeyOutputType, { nullable: true }),
93
+ __metadata("design:type", CompositeKeyOutputType)
94
+ ], ActionItemOutputType.prototype, "AlternateKey", void 0);
95
+ __decorate([
96
+ Field(() => SyncDataActionType),
97
+ __metadata("design:type", String)
98
+ ], ActionItemOutputType.prototype, "Type", void 0);
99
+ __decorate([
100
+ Field(() => String, { nullable: true }),
101
+ __metadata("design:type", String)
102
+ ], ActionItemOutputType.prototype, "RecordJSON", void 0);
103
+ __decorate([
104
+ Field(() => String, { nullable: true }),
105
+ __metadata("design:type", String)
106
+ ], ActionItemOutputType.prototype, "DeleteFilter", void 0);
107
+ ActionItemOutputType = __decorate([
108
+ ObjectType()
109
+ ], ActionItemOutputType);
110
+ export { ActionItemOutputType };
111
+ let SyncDataResultType = class SyncDataResultType {
112
+ Success;
113
+ Results = [];
114
+ };
115
+ __decorate([
116
+ Field(() => Boolean),
117
+ __metadata("design:type", Boolean)
118
+ ], SyncDataResultType.prototype, "Success", void 0);
119
+ __decorate([
120
+ Field(() => [ActionItemOutputType]),
121
+ __metadata("design:type", Array)
122
+ ], SyncDataResultType.prototype, "Results", void 0);
123
+ SyncDataResultType = __decorate([
124
+ ObjectType()
125
+ ], SyncDataResultType);
126
+ export { SyncDataResultType };
127
+ export class SyncDataResolver {
128
+ async SyncData(items, context) {
129
+ try {
130
+ const md = new Metadata();
131
+ const results = [];
132
+ for (const item of items) {
133
+ results.push(await this.SyncSingleItem(item, context, md));
134
+ }
135
+ const overallSuccess = !results.some((r) => !r.Success);
136
+ return { Success: overallSuccess, Results: results };
137
+ }
138
+ catch (err) {
139
+ LogError(err);
140
+ throw new Error('SyncDataResolver::SyncData --- Error Syncing Data\n\n' + err);
141
+ }
142
+ }
143
+ async SyncSingleItem(item, context, md) {
144
+ const result = new ActionItemOutputType();
145
+ result.AlternateKey = item.AlternateKey;
146
+ result.PrimaryKey = item.PrimaryKey;
147
+ result.DeleteFilter = item.DeleteFilter;
148
+ result.EntityName = item.EntityName;
149
+ result.RecordJSON = item.RecordJSON;
150
+ result.Type = item.Type;
151
+ result.Success = false;
152
+ result.ErrorMessage = '';
153
+ try {
154
+ const e = md.Entities.find((e) => e.Name === item.EntityName);
155
+ if (e) {
156
+ const pk = item.PrimaryKey ? new CompositeKey(item.PrimaryKey.KeyValuePairs) : null;
157
+ const ak = item.AlternateKey ? new CompositeKey(item.AlternateKey.KeyValuePairs) : null;
158
+ const entityObject = item.Type === SyncDataActionType.DeleteWithFilter ? null : await md.GetEntityObject(e.Name, context.userPayload.userRecord);
159
+ const fieldValues = item.RecordJSON ? JSON.parse(item.RecordJSON) : {};
160
+ switch (item.Type) {
161
+ case SyncDataActionType.Create:
162
+ await this.SyncSingleItemCreate(entityObject, fieldValues, result);
163
+ break;
164
+ case SyncDataActionType.Update:
165
+ await this.SyncSingleItemUpdate(entityObject, pk, ak, fieldValues, result);
166
+ break;
167
+ case SyncDataActionType.CreateOrUpdate:
168
+ await this.SyncSingleItemCreateOrUpdate(entityObject, pk, ak, fieldValues, result);
169
+ break;
170
+ case SyncDataActionType.Delete:
171
+ await this.SyncSingleItemDelete(entityObject, pk, ak, result);
172
+ break;
173
+ case SyncDataActionType.DeleteWithFilter:
174
+ await this.SyncSingleItemDeleteWithFilter(item.EntityName, item.DeleteFilter, result, context.userPayload.userRecord);
175
+ break;
176
+ default:
177
+ throw new Error('Invalid SyncDataActionType');
178
+ }
179
+ }
180
+ else {
181
+ throw new Error('Entity not found');
182
+ }
183
+ }
184
+ catch (err) {
185
+ result.ErrorMessage = typeof err === 'string' ? err : err.message;
186
+ LogError(err);
187
+ }
188
+ finally {
189
+ return result;
190
+ }
191
+ }
192
+ async SyncSingleItemDeleteWithFilter(entityName, filter, result, user) {
193
+ try {
194
+ let overallSuccess = true;
195
+ let combinedErrorMessage = "";
196
+ const rv = new RunView();
197
+ const data = await rv.RunView({
198
+ EntityName: entityName,
199
+ ExtraFilter: filter,
200
+ ResultType: 'entity_object'
201
+ }, user);
202
+ if (data && data.Success) {
203
+ for (const entityObject of data.Results) {
204
+ if (!await entityObject.Delete()) {
205
+ overallSuccess = false;
206
+ combinedErrorMessage += 'Failed to delete the item :' + entityObject.LatestResult.Message + '\n';
207
+ }
208
+ }
209
+ result.Success = overallSuccess;
210
+ if (!overallSuccess) {
211
+ result.ErrorMessage = combinedErrorMessage;
212
+ }
213
+ }
214
+ else {
215
+ result.Success = false;
216
+ result.ErrorMessage = 'Failed to run the view to get the list of items to delete for entity: ' + entityName + ' with filter: ' + filter + '\n';
217
+ }
218
+ }
219
+ catch (e) {
220
+ result.ErrorMessage = typeof e === 'string' ? e : e.message;
221
+ }
222
+ }
223
+ async LoadFromAlternateKey(entityName, alternateKey, user) {
224
+ try {
225
+ const rv = new RunView();
226
+ const md = new Metadata();
227
+ const entity = md.EntityByName(entityName);
228
+ const r = await rv.RunView({
229
+ EntityName: entityName,
230
+ ExtraFilter: alternateKey.KeyValuePairs.map((kvp) => {
231
+ const fieldInfo = entity.Fields.find((f) => f.Name === kvp.FieldName);
232
+ const quotes = fieldInfo.NeedsQuotes ? "'" : '';
233
+ return `${kvp.FieldName} = ${quotes}${kvp.Value}${quotes}`;
234
+ }).join(' AND '),
235
+ ResultType: 'entity_object'
236
+ }, user);
237
+ if (r && r.Success && r.Results.length === 1) {
238
+ return r.Results[0];
239
+ }
240
+ else {
241
+ return null;
242
+ }
243
+ }
244
+ catch (e) {
245
+ LogError(e);
246
+ return null;
247
+ }
248
+ }
249
+ async SyncSingleItemCreateOrUpdate(entityObject, pk, ak, fieldValues, result) {
250
+ if (!pk || pk.KeyValuePairs.length === 0) {
251
+ const altKeyResult = await this.LoadFromAlternateKey(entityObject.EntityInfo.Name, ak, entityObject.ContextCurrentUser);
252
+ if (!altKeyResult) {
253
+ await this.SyncSingleItemCreate(entityObject, fieldValues, result);
254
+ }
255
+ else {
256
+ await this.InnerSyncSingleItemUpdate(altKeyResult, fieldValues, result);
257
+ }
258
+ }
259
+ else {
260
+ if (await entityObject.InnerLoad(pk)) {
261
+ await this.InnerSyncSingleItemUpdate(entityObject, fieldValues, result);
262
+ }
263
+ else {
264
+ await this.SyncSingleItemCreate(entityObject, fieldValues, result);
265
+ }
266
+ }
267
+ }
268
+ async SyncSingleItemDelete(entityObject, pk, ak, result) {
269
+ if (!pk || pk.KeyValuePairs.length === 0) {
270
+ const altKeyResult = await this.LoadFromAlternateKey(entityObject.EntityInfo.Name, ak, entityObject.ContextCurrentUser);
271
+ if (!altKeyResult) {
272
+ result.ErrorMessage = 'Failed to load the item, it is possible the record with the specified primary key does not exist';
273
+ }
274
+ else {
275
+ if (await altKeyResult.Delete()) {
276
+ result.Success = true;
277
+ }
278
+ else {
279
+ result.ErrorMessage = 'Failed to delete the item :' + entityObject.LatestResult.Message;
280
+ }
281
+ }
282
+ }
283
+ else if (await entityObject.InnerLoad(pk)) {
284
+ if (await entityObject.Delete()) {
285
+ result.Success = true;
286
+ }
287
+ else {
288
+ result.ErrorMessage = 'Failed to delete the item :' + entityObject.LatestResult.Message;
289
+ }
290
+ }
291
+ else {
292
+ result.ErrorMessage = 'Failed to load the item, it is possible the record with the specified primary key does not exist';
293
+ }
294
+ }
295
+ async SyncSingleItemCreate(entityObject, fieldValues, result) {
296
+ const noPKValues = { ...fieldValues };
297
+ entityObject.EntityInfo.PrimaryKeys.forEach((pk) => {
298
+ delete noPKValues[pk.Name];
299
+ });
300
+ entityObject.SetMany(noPKValues);
301
+ if (await entityObject.Save()) {
302
+ result.Success = true;
303
+ result.PrimaryKey = new CompositeKey(entityObject.PrimaryKeys.map((pk) => ({ FieldName: pk.Name, Value: pk.Value })));
304
+ }
305
+ else {
306
+ result.ErrorMessage = 'Failed to create the item :' + entityObject.LatestResult.Message;
307
+ }
308
+ }
309
+ async SyncSingleItemUpdate(entityObject, pk, ak, fieldValues, result) {
310
+ if (!pk || pk.KeyValuePairs.length === 0) {
311
+ const altKeyResult = await this.LoadFromAlternateKey(entityObject.EntityInfo.Name, ak, entityObject.ContextCurrentUser);
312
+ if (!altKeyResult) {
313
+ result.ErrorMessage = 'Failed to load the item, it is possible the record with the specified alternate key does not exist';
314
+ }
315
+ else {
316
+ await this.InnerSyncSingleItemUpdate(altKeyResult, fieldValues, result);
317
+ }
318
+ }
319
+ else if (await entityObject.InnerLoad(pk)) {
320
+ await this.InnerSyncSingleItemUpdate(entityObject, fieldValues, result);
321
+ }
322
+ else {
323
+ result.ErrorMessage = 'Failed to load the item, it is possible the record with the specified primary key does not exist';
324
+ }
325
+ }
326
+ async InnerSyncSingleItemUpdate(entityObject, fieldValues, result) {
327
+ entityObject.SetMany(fieldValues);
328
+ if (await entityObject.Save()) {
329
+ result.Success = true;
330
+ }
331
+ else {
332
+ result.ErrorMessage = 'Failed to update the item :' + entityObject.LatestResult.Message;
333
+ }
334
+ }
335
+ }
336
+ __decorate([
337
+ RequireSystemUser(),
338
+ Mutation(() => SyncDataResultType),
339
+ __param(0, Arg('items', () => [ActionItemInputType])),
340
+ __param(1, Ctx()),
341
+ __metadata("design:type", Function),
342
+ __metadata("design:paramtypes", [Array, Object]),
343
+ __metadata("design:returntype", Promise)
344
+ ], SyncDataResolver.prototype, "SyncData", null);
345
+ //# sourceMappingURL=SyncDataResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncDataResolver.js","sourceRoot":"","sources":["../../src/resolvers/SyncDataResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { AppContext } from '../types.js';
2
+ import { RunView, UserInfo } from '@memberjunction/core';
3
+ import { RoleEntity, UserEntity } from '@memberjunction/core-entities';
4
+ export declare class SyncRolesAndUsersResultType {
5
+ Success: boolean;
6
+ }
7
+ export declare class RoleInputType {
8
+ ID: string;
9
+ Name: string;
10
+ Description: string;
11
+ }
12
+ export declare enum UserType {
13
+ Owner = "Owner",
14
+ User = "User"
15
+ }
16
+ export declare class UserInputType {
17
+ ID: string;
18
+ Name: string;
19
+ Email: string;
20
+ Type: UserType;
21
+ FirstName: string;
22
+ LastName: string;
23
+ Title: string;
24
+ Roles?: RoleInputType[];
25
+ }
26
+ export declare class RolesAndUsersInputType {
27
+ Users: UserInputType[];
28
+ Roles: RoleInputType[];
29
+ }
30
+ export declare class SyncRolesAndUsersResolver {
31
+ SyncRolesAndUsers(data: RolesAndUsersInputType, context: AppContext): Promise<SyncRolesAndUsersResultType>;
32
+ SyncRoles(roles: RoleInputType[], context: AppContext): Promise<SyncRolesAndUsersResultType>;
33
+ protected UpdateExistingRoles(currentRoles: RoleEntity[], futureRoles: RoleInputType[], user: UserInfo): Promise<SyncRolesAndUsersResultType>;
34
+ protected AddNewRoles(currentRoles: RoleEntity[], futureRoles: RoleInputType[], user: UserInfo): Promise<boolean>;
35
+ protected DeleteRemovedRoles(currentRoles: RoleEntity[], futureRoles: RoleInputType[], user: UserInfo): Promise<boolean>;
36
+ get StandardRoles(): string[];
37
+ IsStandardRole(roleName: string): boolean;
38
+ protected DeleteSingleRole(role: RoleEntity, rv: RunView, user: UserInfo): Promise<boolean>;
39
+ SyncUsers(users: UserInputType[], context: AppContext): Promise<SyncRolesAndUsersResultType>;
40
+ protected UpdateExistingUsers(currentUsers: UserEntity[], futureUsers: UserInputType[], u: UserInfo): Promise<boolean>;
41
+ protected AddNewUsers(currentUsers: UserEntity[], futureUsers: UserInputType[], u: UserInfo): Promise<boolean>;
42
+ protected DeleteRemovedUsers(currentUsers: UserEntity[], futureUsers: UserInputType[], u: UserInfo): Promise<boolean>;
43
+ protected DeleteSingleUser(user: UserEntity, rv: RunView, u: UserInfo): Promise<boolean>;
44
+ protected SyncUserRoles(users: UserInputType[], u: UserInfo): Promise<boolean>;
45
+ }
46
+ //# sourceMappingURL=SyncRolesUsersResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SyncRolesUsersResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/SyncRolesUsersResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAsB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAkB,MAAM,+BAA+B,CAAC;AAEvF,qBACa,2BAA2B;IAEtC,OAAO,EAAE,OAAO,CAAC;CAClB;AAGD,qBACa,aAAa;IAEtB,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,EAAE,MAAM,CAAC;IAGb,WAAW,EAAE,MAAM,CAAC;CACvB;AAGD,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAOD,qBACa,aAAa;IAEtB,EAAE,EAAG,MAAM,CAAC;IAGZ,IAAI,EAAG,MAAM,CAAC;IAGd,KAAK,EAAG,MAAM,CAAC;IAIf,IAAI,EAAG,QAAQ,CAAC;IAGhB,SAAS,EAAE,MAAM,CAAC;IAGlB,QAAQ,EAAE,MAAM,CAAC;IAGjB,KAAK,EAAE,MAAM,CAAC;IAGd,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3B;AAGD,qBACa,sBAAsB;IAExB,KAAK,EAAE,aAAa,EAAE,CAAC;IAGvB,KAAK,EAAE,aAAa,EAAE,CAAC;CACjC;AAGD,qBAAa,yBAAyB;IAQ5B,iBAAiB,CACqB,IAAI,EAAE,sBAAsB,EACjE,OAAO,EAAE,UAAU;IAwBpB,SAAS,CACsB,KAAK,EAAE,aAAa,EAAE,EACpD,OAAO,EAAE,UAAU,GACtB,OAAO,CAAC,2BAA2B,CAAC;cA0BxB,mBAAmB,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,2BAA2B,CAAC;cAenI,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;cAiBvG,kBAAkB,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAe9H,IAAW,aAAa,IAAI,MAAM,EAAE,CAEnC;IACM,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;cAIhC,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAwB3F,SAAS,CACsB,KAAK,EAAE,aAAa,EAAE,EACpD,OAAO,EAAE,UAAU,GACtB,OAAO,CAAC,2BAA2B,CAAC;cA8BxB,mBAAmB,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;cAgB5G,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;cA4BpG,kBAAkB,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;cAiB3G,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;cAwB9E,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;CAiEvF"}