@nymphjs/client 1.0.0-beta.13 → 1.0.0-beta.131

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 (73) hide show
  1. package/CHANGELOG.md +552 -0
  2. package/README.md +12 -8
  3. package/asyncitertest.js +53 -0
  4. package/dist/Entity.d.ts +158 -0
  5. package/dist/Entity.js +643 -0
  6. package/dist/Entity.js.map +1 -0
  7. package/dist/Entity.types.d.ts +216 -0
  8. package/dist/Entity.types.js +2 -0
  9. package/{lib → dist}/EntityWeakCache.d.ts +1 -1
  10. package/{lib → dist}/EntityWeakCache.js +5 -9
  11. package/dist/EntityWeakCache.js.map +1 -0
  12. package/{lib → dist}/HttpRequester.d.ts +18 -4
  13. package/dist/HttpRequester.js +365 -0
  14. package/dist/HttpRequester.js.map +1 -0
  15. package/{lib → dist}/Nymph.d.ts +48 -11
  16. package/{lib → dist}/Nymph.js +172 -56
  17. package/dist/Nymph.js.map +1 -0
  18. package/dist/Nymph.types.d.ts +227 -0
  19. package/dist/Nymph.types.js +45 -0
  20. package/dist/Nymph.types.js.map +1 -0
  21. package/{lib → dist}/PubSub.d.ts +16 -10
  22. package/{lib → dist}/PubSub.js +207 -135
  23. package/dist/PubSub.js.map +1 -0
  24. package/{lib → dist}/PubSub.types.d.ts +19 -6
  25. package/dist/PubSub.types.js +2 -0
  26. package/{lib → dist}/entityRefresh.d.ts +1 -1
  27. package/{lib → dist}/entityRefresh.js +21 -13
  28. package/dist/entityRefresh.js.map +1 -0
  29. package/dist/index.d.ts +13 -0
  30. package/dist/index.js +13 -2
  31. package/dist/index.js.map +1 -1
  32. package/{lib → dist}/utils.d.ts +2 -1
  33. package/dist/utils.js +145 -0
  34. package/dist/utils.js.map +1 -0
  35. package/jest.config.js +31 -5
  36. package/package.json +36 -32
  37. package/src/Entity.ts +361 -247
  38. package/src/Entity.types.ts +37 -57
  39. package/src/EntityWeakCache.ts +8 -6
  40. package/src/HttpRequester.ts +268 -31
  41. package/src/Nymph.ts +203 -96
  42. package/src/Nymph.types.ts +98 -2
  43. package/src/PubSub.ts +264 -181
  44. package/src/PubSub.types.ts +33 -19
  45. package/src/entityRefresh.ts +6 -6
  46. package/src/index.ts +10 -10
  47. package/src/utils.ts +67 -14
  48. package/tsconfig.json +7 -4
  49. package/typedoc.json +4 -0
  50. package/dist/index.js.LICENSE.txt +0 -8
  51. package/lib/Entity.d.ts +0 -51
  52. package/lib/Entity.js +0 -500
  53. package/lib/Entity.js.map +0 -1
  54. package/lib/Entity.types.d.ts +0 -65
  55. package/lib/Entity.types.js +0 -3
  56. package/lib/EntityWeakCache.js.map +0 -1
  57. package/lib/HttpRequester.js +0 -190
  58. package/lib/HttpRequester.js.map +0 -1
  59. package/lib/Nymph.js.map +0 -1
  60. package/lib/Nymph.types.d.ts +0 -98
  61. package/lib/Nymph.types.js +0 -3
  62. package/lib/Nymph.types.js.map +0 -1
  63. package/lib/PubSub.js.map +0 -1
  64. package/lib/PubSub.types.js +0 -3
  65. package/lib/entityRefresh.js.map +0 -1
  66. package/lib/index.d.ts +0 -13
  67. package/lib/index.js +0 -34
  68. package/lib/index.js.map +0 -1
  69. package/lib/utils.js +0 -86
  70. package/lib/utils.js.map +0 -1
  71. package/webpack.config.js +0 -28
  72. /package/{lib → dist}/Entity.types.js.map +0 -0
  73. /package/{lib → dist}/PubSub.types.js.map +0 -0
package/lib/Entity.js DELETED
@@ -1,500 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvalidStateError = exports.EntityIsSleepingReferenceError = void 0;
4
- const lodash_1 = require("lodash");
5
- const utils_1 = require("./utils");
6
- const sleepErr = 'This entity is in a sleeping reference state. ' +
7
- 'You must use .$ready() to wake it.';
8
- class Entity {
9
- constructor(guid) {
10
- this.guid = null;
11
- this.cdate = null;
12
- this.mdate = null;
13
- this.tags = [];
14
- this.$originalTags = [];
15
- this.$dirty = {};
16
- this.$isASleepingReference = false;
17
- this.$sleepingReference = null;
18
- this.$readyPromise = null;
19
- this.$nymph = this.constructor.nymph;
20
- this.$dataHandler = {
21
- has: (data, name) => {
22
- if (typeof name !== 'symbol' && this.$isASleepingReference) {
23
- console.error(`Tried to check data on a sleeping reference: ${name}`);
24
- return false;
25
- }
26
- return name in data;
27
- },
28
- get: (data, name) => {
29
- if (typeof name !== 'symbol' && this.$isASleepingReference) {
30
- console.error(`Tried to get data on a sleeping reference: ${name}`);
31
- return undefined;
32
- }
33
- if (data.hasOwnProperty(name)) {
34
- return data[name];
35
- }
36
- return undefined;
37
- },
38
- set: (data, name, value) => {
39
- if (typeof name !== 'symbol' && this.$isASleepingReference) {
40
- console.error(`Tried to set data on a sleeping reference: ${name}`);
41
- return false;
42
- }
43
- if (typeof name !== 'symbol') {
44
- this.$dirty[name] = true;
45
- }
46
- data[name] = value;
47
- return true;
48
- },
49
- deleteProperty: (data, name) => {
50
- if (typeof name !== 'symbol' && this.$isASleepingReference) {
51
- console.error(`Tried to delete data on a sleeping reference: ${name}`);
52
- return false;
53
- }
54
- if (data.hasOwnProperty(name)) {
55
- this.$dirty[name] = true;
56
- return delete data[name];
57
- }
58
- return true;
59
- },
60
- defineProperty: (data, name, descriptor) => {
61
- if (typeof name !== 'symbol' && this.$isASleepingReference) {
62
- console.error(`Tried to define data on a sleeping reference: ${name}`);
63
- return false;
64
- }
65
- if (typeof name !== 'symbol') {
66
- this.$dirty[name] = true;
67
- }
68
- Object.defineProperty(data, name, descriptor);
69
- return true;
70
- },
71
- getOwnPropertyDescriptor: (data, name) => {
72
- if (typeof name !== 'symbol' && this.$isASleepingReference) {
73
- console.error(`Tried to get property descriptor on a sleeping reference: ${name}`);
74
- return undefined;
75
- }
76
- return Object.getOwnPropertyDescriptor(data, name);
77
- },
78
- ownKeys: (data) => {
79
- if (this.$isASleepingReference) {
80
- console.error(`Tried to enumerate data on a sleeping reference.`);
81
- return undefined;
82
- }
83
- return Object.getOwnPropertyNames(data);
84
- },
85
- };
86
- this.$dataStore = {};
87
- this.$data = new Proxy(this.$dataStore, this.$dataHandler);
88
- if (guid != null) {
89
- this.guid = guid;
90
- this.$isASleepingReference = true;
91
- this.$sleepingReference = [
92
- 'nymph_entity_reference',
93
- this.guid,
94
- this.constructor.class,
95
- ];
96
- this.$ready();
97
- }
98
- return new Proxy(this, {
99
- has(entity, name) {
100
- if (typeof name !== 'string' ||
101
- name in entity ||
102
- name.substring(0, 1) === '$') {
103
- return name in entity;
104
- }
105
- return name in entity.$data;
106
- },
107
- get(entity, name) {
108
- if (typeof name !== 'string' ||
109
- name in entity ||
110
- name.substring(0, 1) === '$') {
111
- return entity[name];
112
- }
113
- if (name in entity.$data) {
114
- return entity.$data[name];
115
- }
116
- return undefined;
117
- },
118
- set(entity, name, value) {
119
- if (typeof name !== 'string' ||
120
- name in entity ||
121
- name.substring(0, 1) === '$') {
122
- entity[name] = value;
123
- }
124
- else {
125
- entity.$data[name] = value;
126
- }
127
- return true;
128
- },
129
- deleteProperty(entity, name) {
130
- if (name in entity) {
131
- return delete entity[name];
132
- }
133
- else if (name in entity.$data) {
134
- return delete entity.$data[name];
135
- }
136
- return true;
137
- },
138
- getPrototypeOf(entity) {
139
- return entity.constructor.prototype;
140
- },
141
- defineProperty(entity, name, descriptor) {
142
- if (typeof name !== 'string' ||
143
- name in entity ||
144
- name.substring(0, 1) === '$') {
145
- Object.defineProperty(entity, name, descriptor);
146
- }
147
- else {
148
- Object.defineProperty(entity.$data, name, descriptor);
149
- }
150
- return true;
151
- },
152
- getOwnPropertyDescriptor(entity, name) {
153
- if (typeof name !== 'string' ||
154
- name in entity ||
155
- name.substring(0, 1) === '$') {
156
- return Object.getOwnPropertyDescriptor(entity, name);
157
- }
158
- else {
159
- return Object.getOwnPropertyDescriptor(entity.$data, name);
160
- }
161
- },
162
- ownKeys(entity) {
163
- return Object.getOwnPropertyNames(entity).concat(Object.getOwnPropertyNames(entity.$data));
164
- },
165
- });
166
- }
167
- static async factory(guid) {
168
- const cacheEntity = (guid ? this.nymph.getEntityFromCache(this, guid) : null);
169
- const entity = cacheEntity || new this(guid);
170
- if (guid != null) {
171
- await entity.$ready();
172
- }
173
- return entity;
174
- }
175
- static factorySync(guid) {
176
- const cacheEntity = (guid ? this.nymph.getEntityFromCache(this, guid) : null);
177
- return cacheEntity || new this(guid);
178
- }
179
- static factoryReference(reference) {
180
- const cacheEntity = (reference[1] ? this.nymph.getEntityFromCache(this, reference[1]) : null);
181
- const entity = cacheEntity || new this();
182
- if (!cacheEntity) {
183
- entity.$referenceSleep(reference);
184
- }
185
- return entity;
186
- }
187
- static async serverCallStatic(method, params) {
188
- const data = await this.nymph.serverCallStatic(this.class, method, Array.prototype.slice.call(params));
189
- return data.return;
190
- }
191
- toJSON() {
192
- if (this.$isASleepingReference) {
193
- throw new EntityIsSleepingReferenceError(sleepErr);
194
- }
195
- const obj = {
196
- class: this.constructor.class,
197
- guid: this.guid,
198
- cdate: this.cdate,
199
- mdate: this.mdate,
200
- tags: [...this.tags],
201
- data: {},
202
- };
203
- for (let [key, value] of Object.entries(this.$dataStore)) {
204
- obj.data[key] = (0, utils_1.entitiesToReferences)(value);
205
- }
206
- return obj;
207
- }
208
- $init(entityJson) {
209
- if (entityJson == null) {
210
- return this;
211
- }
212
- this.$isASleepingReference = false;
213
- this.$sleepingReference = null;
214
- this.guid = entityJson.guid;
215
- this.cdate = entityJson.cdate;
216
- this.mdate = entityJson.mdate;
217
- this.tags = entityJson.tags;
218
- this.$originalTags = entityJson.tags.slice(0);
219
- this.$dirty = {};
220
- this.$dataStore = Object.entries(entityJson.data)
221
- .map(([key, value]) => {
222
- this.$dirty[key] = false;
223
- return { key, value: (0, utils_1.referencesToEntities)(value, this.$nymph) };
224
- })
225
- .reduce((obj, { key, value }) => Object.assign(obj, { [key]: value }), {});
226
- this.$data = new Proxy(this.$dataStore, this.$dataHandler);
227
- this.$nymph.setEntityToCache(this.constructor, this);
228
- return this;
229
- }
230
- $addTag(...tags) {
231
- if (this.$isASleepingReference) {
232
- throw new EntityIsSleepingReferenceError(sleepErr);
233
- }
234
- if (tags.length < 1) {
235
- return;
236
- }
237
- this.tags = (0, utils_1.uniqueStrings)([...this.tags, ...tags]);
238
- }
239
- $arraySearch(array, strict = false) {
240
- if (this.$isASleepingReference) {
241
- throw new EntityIsSleepingReferenceError(sleepErr);
242
- }
243
- if (!Array.isArray(array)) {
244
- return -1;
245
- }
246
- for (let i = 0; i < array.length; i++) {
247
- const curEntity = array[i];
248
- if (strict ? this.$equals(curEntity) : this.$is(curEntity)) {
249
- return i;
250
- }
251
- }
252
- return -1;
253
- }
254
- async $delete() {
255
- if (this.$isASleepingReference) {
256
- throw new EntityIsSleepingReferenceError(sleepErr);
257
- }
258
- const guid = this.guid;
259
- return (await this.$nymph.deleteEntity(this)) === guid;
260
- }
261
- $equals(object) {
262
- if (this.$isASleepingReference) {
263
- throw new EntityIsSleepingReferenceError(sleepErr);
264
- }
265
- if (!(object instanceof Entity)) {
266
- return false;
267
- }
268
- if (this.guid || object.guid) {
269
- if (this.guid !== object.guid) {
270
- return false;
271
- }
272
- }
273
- if (object.cdate !== this.cdate) {
274
- return false;
275
- }
276
- if (object.mdate !== this.mdate) {
277
- return false;
278
- }
279
- const obData = (0, utils_1.sortObj)(object.toJSON());
280
- obData.tags?.sort();
281
- const myData = (0, utils_1.sortObj)(this.toJSON());
282
- myData.tags?.sort();
283
- return (0, lodash_1.isEqual)(obData, myData);
284
- }
285
- $getPatch() {
286
- if (this.$isASleepingReference) {
287
- throw new EntityIsSleepingReferenceError(sleepErr);
288
- }
289
- if (this.guid == null) {
290
- throw new InvalidStateError("You can't make a patch from an unsaved entity.");
291
- }
292
- const patch = {
293
- guid: this.guid,
294
- mdate: this.mdate,
295
- class: this.constructor.class,
296
- addTags: this.tags.filter((tag) => this.$originalTags.indexOf(tag) === -1),
297
- removeTags: this.$originalTags.filter((tag) => this.tags.indexOf(tag) === -1),
298
- unset: [],
299
- set: {},
300
- };
301
- for (let [key, dirty] of Object.entries(this.$dirty)) {
302
- if (dirty) {
303
- if (key in this.$data) {
304
- patch.set[key] = (0, utils_1.entitiesToReferences)(this.$data[key]);
305
- }
306
- else {
307
- patch.unset.push(key);
308
- }
309
- }
310
- }
311
- return patch;
312
- }
313
- $hasTag(...tags) {
314
- if (this.$isASleepingReference) {
315
- throw new EntityIsSleepingReferenceError(sleepErr);
316
- }
317
- if (!tags.length) {
318
- return false;
319
- }
320
- for (let i = 0; i < tags.length; i++) {
321
- if (this.tags.indexOf(tags[i]) === -1) {
322
- return false;
323
- }
324
- }
325
- return true;
326
- }
327
- $inArray(array, strict = false) {
328
- return this.$arraySearch(array, strict) !== -1;
329
- }
330
- $is(object) {
331
- if (this.$isASleepingReference) {
332
- throw new EntityIsSleepingReferenceError(sleepErr);
333
- }
334
- if (!(object instanceof Entity)) {
335
- return false;
336
- }
337
- if (this.guid || object.guid) {
338
- return this.guid === object.guid;
339
- }
340
- else if (typeof object.toJSON !== 'function') {
341
- return false;
342
- }
343
- else {
344
- const obData = (0, utils_1.sortObj)(object.toJSON());
345
- obData.tags?.sort();
346
- const myData = (0, utils_1.sortObj)(this.toJSON());
347
- myData.tags?.sort();
348
- return (0, lodash_1.isEqual)(obData, myData);
349
- }
350
- }
351
- async $patch() {
352
- if (this.$isASleepingReference) {
353
- throw new EntityIsSleepingReferenceError(sleepErr);
354
- }
355
- const mdate = this.mdate;
356
- await this.$nymph.patchEntity(this);
357
- return mdate !== this.mdate;
358
- }
359
- $ready() {
360
- if (!this.$isASleepingReference) {
361
- this.$readyPromise = null;
362
- return Promise.resolve(this);
363
- }
364
- if (this.$sleepingReference?.[1] == null) {
365
- throw new InvalidStateError('Tried to ready a sleeping reference with no GUID.');
366
- }
367
- if (!this.$readyPromise) {
368
- this.$readyPromise = this.$nymph
369
- .getEntityData({ class: this.constructor }, { type: '&', guid: this.$sleepingReference[1] })
370
- .then((data) => {
371
- if (data == null) {
372
- const errObj = { data, textStatus: 'No data returned.' };
373
- return Promise.reject(errObj);
374
- }
375
- return this.$init(data);
376
- })
377
- .finally(() => {
378
- this.$readyPromise = null;
379
- });
380
- }
381
- return this.$readyPromise;
382
- }
383
- $readyAll(level) {
384
- return new Promise((resolve, reject) => {
385
- const readyProps = () => {
386
- let newLevel;
387
- if (level !== undefined) {
388
- newLevel = level - 1;
389
- }
390
- if (newLevel !== undefined && newLevel < 0) {
391
- resolve(this);
392
- return;
393
- }
394
- const promises = [];
395
- for (let [key, value] of Object.entries(this.$data)) {
396
- if (value instanceof Entity && value.$isASleepingReference) {
397
- promises.push(value.$readyAll(newLevel));
398
- }
399
- else if (Array.isArray(value)) {
400
- for (let i = 0; i < value.length; i++) {
401
- if (value[i] instanceof Entity &&
402
- value[i].$isASleepingReference) {
403
- promises.push(value[i].$readyAll(newLevel));
404
- }
405
- }
406
- }
407
- }
408
- if (promises.length) {
409
- Promise.all(promises).then(() => resolve(this), (errObj) => reject(errObj));
410
- }
411
- else {
412
- resolve(this);
413
- }
414
- };
415
- if (this.$isASleepingReference) {
416
- this.$ready().then(readyProps, (errObj) => reject(errObj));
417
- }
418
- else {
419
- readyProps();
420
- }
421
- });
422
- }
423
- $referenceSleep(reference) {
424
- this.$isASleepingReference = true;
425
- this.guid = reference[1];
426
- this.$sleepingReference = [...reference];
427
- }
428
- async $refresh() {
429
- if (this.$isASleepingReference) {
430
- await this.$ready();
431
- return true;
432
- }
433
- if (this.guid == null) {
434
- return false;
435
- }
436
- const data = await this.$nymph.getEntityData({
437
- class: this.constructor,
438
- }, {
439
- type: '&',
440
- guid: this.guid,
441
- });
442
- this.$init(data);
443
- return this.guid == null ? 0 : true;
444
- }
445
- $removeTag(...tags) {
446
- if (this.$isASleepingReference) {
447
- throw new EntityIsSleepingReferenceError(sleepErr);
448
- }
449
- this.tags = (0, lodash_1.difference)(this.tags, tags);
450
- }
451
- async $save() {
452
- if (this.$isASleepingReference) {
453
- throw new EntityIsSleepingReferenceError(sleepErr);
454
- }
455
- await this.$nymph.saveEntity(this);
456
- return !!this.guid;
457
- }
458
- async $serverCall(method, params, stateless = false) {
459
- if (this.$isASleepingReference) {
460
- throw new EntityIsSleepingReferenceError(sleepErr);
461
- }
462
- const paramArray = Array.prototype.slice.call(params);
463
- const data = await this.$nymph.serverCall(this, method, paramArray, stateless);
464
- if (!stateless && data.entity) {
465
- this.$init(data.entity);
466
- }
467
- return data.return;
468
- }
469
- $toReference() {
470
- if (this.$isASleepingReference && this.$sleepingReference) {
471
- return this.$sleepingReference;
472
- }
473
- if (this.guid == null) {
474
- return this;
475
- }
476
- return [
477
- 'nymph_entity_reference',
478
- this.guid,
479
- this.constructor.class,
480
- ];
481
- }
482
- }
483
- exports.default = Entity;
484
- Entity.nymph = {};
485
- Entity.class = 'Entity';
486
- class EntityIsSleepingReferenceError extends Error {
487
- constructor(message) {
488
- super(message);
489
- this.name = 'EntityIsSleepingReferenceError';
490
- }
491
- }
492
- exports.EntityIsSleepingReferenceError = EntityIsSleepingReferenceError;
493
- class InvalidStateError extends Error {
494
- constructor(message) {
495
- super(message);
496
- this.name = 'InvalidStateError';
497
- }
498
- }
499
- exports.InvalidStateError = InvalidStateError;
500
- //# sourceMappingURL=Entity.js.map
package/lib/Entity.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- import type Nymph from './Nymph';
2
- export type ServerCallResponse = {
3
- return: any;
4
- entity?: EntityJson;
5
- };
6
- export type ServerCallStaticResponse = any;
7
- export type EntityReference = ['nymph_entity_reference', string, string];
8
- export type EntityData = {
9
- [k: string]: any;
10
- };
11
- export type SerializedEntityData = {
12
- [k: string]: string;
13
- };
14
- export type EntityJson<T extends EntityConstructor = EntityConstructor> = {
15
- class: T['class'];
16
- guid: string | null;
17
- cdate: number | null;
18
- mdate: number | null;
19
- tags: string[];
20
- data: EntityData;
21
- };
22
- export type EntityPatch = {
23
- class: string;
24
- guid: string;
25
- mdate: number | null;
26
- set: EntityData;
27
- unset: string[];
28
- addTags: string[];
29
- removeTags: string[];
30
- };
31
- export interface DataObjectInterface {
32
- $arraySearch(array: any[], strict?: boolean): number;
33
- $delete(): Promise<boolean>;
34
- $equals(object: any): boolean;
35
- $inArray(array: any[], strict?: boolean): boolean;
36
- $is(object: any): boolean;
37
- $patch(): Promise<boolean>;
38
- $refresh(): Promise<boolean | 0>;
39
- $save(): Promise<boolean>;
40
- [k: string]: any;
41
- }
42
- export interface EntityInterface extends DataObjectInterface {
43
- $nymph: Nymph;
44
- guid: string | null;
45
- cdate: number | null;
46
- mdate: number | null;
47
- tags: string[];
48
- $addTag(...tags: string[]): void;
49
- $getPatch(): EntityPatch;
50
- $hasTag(...tags: string[]): boolean;
51
- $init(entityJson: EntityJson | null): EntityInterface;
52
- $ready(): Promise<EntityInterface>;
53
- $readyAll(level?: number): Promise<EntityInterface>;
54
- $removeTag(...tags: string[]): void;
55
- $serverCall(method: string, params: Iterable<any>, stateless: boolean): Promise<any>;
56
- $toReference(): EntityReference | EntityInterface;
57
- }
58
- export type EntityConstructor = (new (...args: any[]) => EntityInterface) & {
59
- nymph: Nymph;
60
- class: string;
61
- factory(guid?: string): Promise<EntityInterface>;
62
- factorySync(guid?: string): EntityInterface;
63
- factoryReference(reference: EntityReference): EntityInterface;
64
- serverCallStatic(method: string, params: Iterable<any>): Promise<any>;
65
- };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=Entity.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityWeakCache.js","sourceRoot":"","sources":["../src/EntityWeakCache.ts"],"names":[],"mappings":";;AAEA,MAAqB,eAAe;IAApC;QACU,eAAU,GAChB,IAAI,OAAO,EAAE,CAAC;IA2BlB,CAAC;IAzBC,GAAG,CAAC,WAA8B,EAAE,IAAY;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,EAAE;YAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE;gBACtC,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;aACxB;iBAAM;gBACL,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;aACvB;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,WAA8B,EAAE,MAAuB;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAChB,OAAO;SACR;QAGD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC3C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAClC,CAAC;CACF;AA7BD,kCA6BC"}