@daiso-tech/core 0.28.0 → 0.29.0

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 (28) hide show
  1. package/README.md +8 -2
  2. package/dist/cache/implementations/derivables/cache/cache.d.ts +5 -0
  3. package/dist/cache/implementations/derivables/cache/cache.js +7 -0
  4. package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
  5. package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +37 -1
  6. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +37 -1
  7. package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
  8. package/dist/event-bus/contracts/event-bus.contract.d.ts +5 -0
  9. package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +1 -0
  10. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +28 -4
  11. package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
  12. package/dist/event-bus/implementations/derivables/event-bus/listener-store.d.ts +2 -2
  13. package/dist/event-bus/implementations/derivables/event-bus/listener-store.js +9 -7
  14. package/dist/event-bus/implementations/derivables/event-bus/listener-store.js.map +1 -1
  15. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js +453 -4
  16. package/dist/event-bus/implementations/test-utilities/event-bus.test-suite.js.map +1 -1
  17. package/dist/lock/implementations/derivables/lock-provider/lock-provider.d.ts +9 -0
  18. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js +13 -4
  19. package/dist/lock/implementations/derivables/lock-provider/lock-provider.js.map +1 -1
  20. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.d.ts +2 -0
  21. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js +8 -2
  22. package/dist/lock/implementations/derivables/lock-provider/lock-serde-transformer.js.map +1 -1
  23. package/dist/lock/implementations/derivables/lock-provider/lock.d.ts +5 -0
  24. package/dist/lock/implementations/derivables/lock-provider/lock.js +7 -0
  25. package/dist/lock/implementations/derivables/lock-provider/lock.js.map +1 -1
  26. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js +1 -0
  27. package/dist/lock/implementations/derivables/lock-provider-factory/lock-provider-factory.js.map +1 -1
  28. package/package.json +85 -25
package/README.md CHANGED
@@ -6,13 +6,17 @@ npm install @daiso-tech/core
6
6
  ```
7
7
 
8
8
  ## Description
9
- The library provides modular solutions for the essential features needed in modern web applications. Stop wasting time searching for packages or reinventing the wheel — this framework-agnostic library, built on adaptable components, works well with popular frameworks like Express.js, Fastify, Nest.js, Next.js, Nuxt.js, SvelteKit, and Remix.
9
+ The library provides modular solutions for the essential features needed in modern web applications. Stop wasting time searching for packages or reinventing the wheel — this framework-agnostic library, built on adaptable components, works well with popular frameworks like Express.js, Fastify, Next.js, Nuxt.js, SvelteKit, and Remix.
10
10
 
11
11
  ### Current Library Features:
12
12
  - Immutable collection components:
13
13
  - Immutable <i>IterableCollection</i> that simplifies working with <i>Iterable</i>.
14
14
  - Immutable <i>ListCollection</i> that simplifies working with <i>Array</i>.
15
15
  - Immutable <i>AsyncIterableCollection</i> that simplifies working with <i>AsyncIterable</i>.
16
+ - LazyPromise with support for:
17
+ - Aborting it manually by using <i>AbortSignal</i>.
18
+ - Aborting it by timeout.
19
+ - Easily retrying when it fails
16
20
  - Cache component with support for pluggable adapters.
17
21
  - Lock component with supports for pluggable adapters.
18
22
  - EventBus component with support for pluggable adapters.
@@ -28,7 +32,9 @@ The library provides modular solutions for the essential features needed in mode
28
32
  - Notification component
29
33
  - Abstract file system component
30
34
 
31
- #### NOTE: This library only supports ESM (ecmascript) module.
35
+ #### NOTE !!: This library only supports ESM (ecmascript) module.
36
+
37
+ #### NOTE !!: This library is under construction and breaking changes can occur.
32
38
 
33
39
  ### Inspiration
34
40
  This library is inspired by [Laravel](https://laravel.com/docs/11.x/readme) and built with a modular design, so you can use only the parts you need.
@@ -194,6 +194,11 @@ export declare class Cache<TType = unknown> implements IGroupableCache<TType> {
194
194
  * To understand how this method works, refer to <i>{@link IEventListenable}</i>.
195
195
  */
196
196
  asPromise<TEventClass extends EventClass<CacheEvents<TType>>>(event: TEventClass): LazyPromise<EventInstance<TEventClass>>;
197
+ /**
198
+ * You can listen to the following <i>{@link CacheEvents}</i> of the <i>{@link ICache}</i> instance.
199
+ * To understand how this method works, refer to <i>{@link IEventListenable}</i>.
200
+ */
201
+ subscribeOnce<TEventClass extends EventClass<CacheEvents<TType>>>(event: TEventClass, listener: Invokable<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
197
202
  /**
198
203
  * You can listen to the following <i>{@link CacheEvents}</i> of the <i>{@link ICache}</i> instance.
199
204
  * To understand how this method works, refer to <i>{@link IEventListenable}</i>.
@@ -200,6 +200,13 @@ export class Cache {
200
200
  asPromise(event) {
201
201
  return this.eventBus.asPromise(event);
202
202
  }
203
+ /**
204
+ * You can listen to the following <i>{@link CacheEvents}</i> of the <i>{@link ICache}</i> instance.
205
+ * To understand how this method works, refer to <i>{@link IEventListenable}</i>.
206
+ */
207
+ subscribeOnce(event, listener) {
208
+ return this.eventBus.subscribeOnce(event, listener);
209
+ }
203
210
  /**
204
211
  * You can listen to the following <i>{@link CacheEvents}</i> of the <i>{@link ICache}</i> instance.
205
212
  * To understand how this method works, refer to <i>{@link IEventListenable}</i>.
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../../src/cache/implementations/derivables/cache/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../../src/cache/implementations/derivables/cache/cache.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,43 @@ export declare class CacheFactory<TAdapters extends string = string> implements
31
31
  /**
32
32
  * @example
33
33
  * ```ts
34
- * ```
34
+ * import { CacheFactory } from "@daiso-tech/core/cache";
35
+ * import type { ICacheAdapter } from "@daiso-tech/core/cache/contracts";
36
+ * import { MemoryCacheAdapter, RedisCacheAdapter, SqliteCacheAdapter } from "@daiso-tech/core/cache/adapters";
37
+ * import { Serde } from "@daiso-tech/core/serde";
38
+ * import type { ISerde } from "@daiso-tech/core/serde/contracts";
39
+ * import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/adapters";
40
+ * import { KeyPrefixer, TimeSpan, type ISqliteDatabase, type FactoryFn } from "@daiso-tech/core/utilities";
41
+ * import Redis from "ioredis"
42
+ * import Sqlite from "better-sqlite3";
43
+ *
44
+ * function cahceAdapterFactory(database: ISqliteDatabase, serde: ISerde<string>): FactoryFn<string, ICacheAdapter> {
45
+ * return async (prefix) => {
46
+ * const cacheAdapter = new SqliteCacheAdapter({
47
+ * database,
48
+ * serde,
49
+ * tableName: `cache_${prefix}`
50
+ * });
51
+ * await cacheAdapter.init();
52
+ * return cacheAdapter;
53
+ * }
54
+ * }
55
+ *
56
+ * const database = new Sqlite("local.db");
57
+ * const serde = new Serde(new SuperJsonSerdeAdapter());
58
+ * const cacheFactory = new CacheFactory({
59
+ * serde,
60
+ * keyPrefixer: new KeyPrefixer("cache"),
61
+ * adapters: {
62
+ * sqlite: cahceAdapterFactory(database, serde),
63
+ * memory: new MemoryCacheAdapter(),
64
+ * redis: new RedisCacheAdapter({
65
+ * client: new Redis("YOUR_REDIS_CONNECTION"),
66
+ * serde,
67
+ * }),
68
+ * },
69
+ * defaultAdapter: "memory",
70
+ * });
35
71
  */
36
72
  constructor(settings: CacheFactorySettings<TAdapters>);
37
73
  setKeyPrefixer(keyPrefixer: KeyPrefixer): CacheFactory<TAdapters>;
@@ -14,7 +14,43 @@ export class CacheFactory {
14
14
  /**
15
15
  * @example
16
16
  * ```ts
17
- * ```
17
+ * import { CacheFactory } from "@daiso-tech/core/cache";
18
+ * import type { ICacheAdapter } from "@daiso-tech/core/cache/contracts";
19
+ * import { MemoryCacheAdapter, RedisCacheAdapter, SqliteCacheAdapter } from "@daiso-tech/core/cache/adapters";
20
+ * import { Serde } from "@daiso-tech/core/serde";
21
+ * import type { ISerde } from "@daiso-tech/core/serde/contracts";
22
+ * import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/adapters";
23
+ * import { KeyPrefixer, TimeSpan, type ISqliteDatabase, type FactoryFn } from "@daiso-tech/core/utilities";
24
+ * import Redis from "ioredis"
25
+ * import Sqlite from "better-sqlite3";
26
+ *
27
+ * function cahceAdapterFactory(database: ISqliteDatabase, serde: ISerde<string>): FactoryFn<string, ICacheAdapter> {
28
+ * return async (prefix) => {
29
+ * const cacheAdapter = new SqliteCacheAdapter({
30
+ * database,
31
+ * serde,
32
+ * tableName: `cache_${prefix}`
33
+ * });
34
+ * await cacheAdapter.init();
35
+ * return cacheAdapter;
36
+ * }
37
+ * }
38
+ *
39
+ * const database = new Sqlite("local.db");
40
+ * const serde = new Serde(new SuperJsonSerdeAdapter());
41
+ * const cacheFactory = new CacheFactory({
42
+ * serde,
43
+ * keyPrefixer: new KeyPrefixer("cache"),
44
+ * adapters: {
45
+ * sqlite: cahceAdapterFactory(database, serde),
46
+ * memory: new MemoryCacheAdapter(),
47
+ * redis: new RedisCacheAdapter({
48
+ * client: new Redis("YOUR_REDIS_CONNECTION"),
49
+ * serde,
50
+ * }),
51
+ * },
52
+ * defaultAdapter: "memory",
53
+ * });
18
54
  */
19
55
  constructor(settings) {
20
56
  this.settings = settings;
@@ -1 +1 @@
1
- {"version":3,"file":"cache-factory.js","sourceRoot":"","sources":["../../../../../src/cache/implementations/derivables/cache-factory/cache-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,6BAA6B,EAC7B,gBAAgB,EAChB,wBAAwB,GAC3B,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EACH,KAAK,GAGR,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAiB,MAAM,gCAAgC,CAAC;AAwB5E;;;;GAIG;AACH,MAAM,OAAO,YAAY;IAQQ;IAL7B;;;;OAIG;IACH,YAA6B,QAAyC;QAAzC,aAAQ,GAAR,QAAQ,CAAiC;IAAG,CAAC;IAE1E,cAAc,CAAC,WAAwB;QACnC,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,WAAW;SACd,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CAAC,GAAa;QACvB,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,UAAU,EAAE,GAAG;SAClB,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CAAC,QAAiC;QACzC,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC7B,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,aAAa,EAAE,QAAQ;SAC1B,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB,CAAC,MAAqB;QAClC,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,aAAa,EAAE,MAAM;SACxB,CAAC,CAAC;IACP,CAAC;IAED,cAAc,CAAC,MAAmB;QAC9B,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,WAAW,EAAE,MAAM;SACtB,CAAC,CAAC;IACP,CAAC;IAED,eAAe,CAAC,OAAiB;QAC7B,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,YAAY,EAAE,OAAO;SACxB,CAAC,CAAC;IACP,CAAC;IAED,eAAe,CAAC,OAAiB;QAC7B,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,YAAY,EAAE,OAAO;SACxB,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyEG;IACH,GAAG,CACC,cAAqC,IAAI,CAAC,QAAQ,CAAC,cAAc;QAEjE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtC,OAAO,IAAI,KAAK,CAAC;YACb,GAAG,IAAI,CAAC,QAAQ;YAChB,OAAO;YACP,WAAW,EAAE,IAAI,WAAW,CAAC;gBACzB,GAAG,gBAAgB,CAAC,WAAW,CAAC,kBAAkB,CAAC;gBACnD,WAAW;aACd,CAAC;SACL,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"cache-factory.js","sourceRoot":"","sources":["../../../../../src/cache/implementations/derivables/cache-factory/cache-factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,6BAA6B,EAC7B,gBAAgB,EAChB,wBAAwB,GAC3B,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EACH,KAAK,GAGR,MAAM,qDAAqD,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAiB,MAAM,gCAAgC,CAAC;AAwB5E;;;;GAIG;AACH,MAAM,OAAO,YAAY;IA4CQ;IAzC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,YAA6B,QAAyC;QAAzC,aAAQ,GAAR,QAAQ,CAAiC;IAAG,CAAC;IAE1E,cAAc,CAAC,WAAwB;QACnC,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,WAAW;SACd,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CAAC,GAAa;QACvB,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,UAAU,EAAE,GAAG;SAClB,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CAAC,QAAiC;QACzC,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC7B,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,aAAa,EAAE,QAAQ;SAC1B,CAAC,CAAC;IACP,CAAC;IAED,gBAAgB,CAAC,MAAqB;QAClC,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,aAAa,EAAE,MAAM;SACxB,CAAC,CAAC;IACP,CAAC;IAED,cAAc,CAAC,MAAmB;QAC9B,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,WAAW,EAAE,MAAM;SACtB,CAAC,CAAC;IACP,CAAC;IAED,eAAe,CAAC,OAAiB;QAC7B,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,YAAY,EAAE,OAAO;SACxB,CAAC,CAAC;IACP,CAAC;IAED,eAAe,CAAC,OAAiB;QAC7B,OAAO,IAAI,YAAY,CAAC;YACpB,GAAG,IAAI,CAAC,QAAQ;YAChB,YAAY,EAAE,OAAO;SACxB,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyEG;IACH,GAAG,CACC,cAAqC,IAAI,CAAC,QAAQ,CAAC,cAAc;QAEjE,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,6BAA6B,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtC,OAAO,IAAI,KAAK,CAAC;YACb,GAAG,IAAI,CAAC,QAAQ;YAChB,OAAO;YACP,WAAW,EAAE,IAAI,WAAW,CAAC;gBACzB,GAAG,gBAAgB,CAAC,WAAW,CAAC,kBAAkB,CAAC;gBACnD,WAAW;aACd,CAAC;SACL,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -67,6 +67,11 @@ export type IEventListenable<TEvents extends BaseEvent = BaseEvent> = {
67
67
  * @throws {UnableToAddListenerEventBusError} {@link UnableToAddListenerEventBusError}
68
68
  */
69
69
  asPromise<TEventClass extends EventClass<TEvents>>(event: TEventClass): LazyPromise<EventInstance<TEventClass>>;
70
+ /**
71
+ * The <i>subscribeOnce</i> method is used for listening to a <i>{@link BaseEvent}</i> once and it returns a cleanup function that removes listener when called.
72
+ * The same listener can only be added once for a specific event. Adding the same listener multiple times will have no effect and nothing will occur.
73
+ */
74
+ subscribeOnce<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Invokable<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
70
75
  /**
71
76
  * The <i>subscribe</i> method is used for listening to a <i>{@link BaseEvent}</i> and it returns a cleanup function that removes listener when called.
72
77
  * The same listener can only be added once for a specific event. Adding the same listener multiple times will have no effect and nothing will occur.
@@ -125,6 +125,7 @@ export declare class EventBus<TEvents extends BaseEvent = BaseEvent> implements
125
125
  removeListenerMany<TEventClassArr extends EventClass<TEvents>[]>(events: [...TEventClassArr], listener: Invokable<EventInstance<Items<TEventClassArr>>>): LazyPromise<void>;
126
126
  listenOnce<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Invokable<EventInstance<TEventClass>>): LazyPromise<void>;
127
127
  asPromise<TEventClass extends EventClass<TEvents>>(event: TEventClass): LazyPromise<EventInstance<TEventClass>>;
128
+ subscribeOnce<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Invokable<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
128
129
  subscribe<TEventClass extends EventClass<TEvents>>(event: TEventClass, listener: Invokable<EventInstance<TEventClass>>): LazyPromise<Unsubscribe>;
129
130
  subscribeMany<TEventClassArr extends EventClass<TEvents>[]>(events: [...TEventClassArr], listener: Invokable<EventInstance<Items<TEventClassArr>>>): LazyPromise<Unsubscribe>;
130
131
  dispatchMany(events: TEvents[]): LazyPromise<void>;
@@ -128,12 +128,13 @@ export class EventBus {
128
128
  addListener(event, listener) {
129
129
  return this.createLazyPromise(async () => {
130
130
  const eventName = this.keyPrefixer.create(event.name);
131
- const resolvedListener = this.store.getOrAdd(eventName.prefixed, listener);
131
+ const resolvedListener = this.store.getOrAdd([eventName.prefixed, listener], resolveInvokable(listener));
132
132
  try {
133
133
  const adapter = await this.adapterPromise;
134
134
  await adapter.addListener(eventName.prefixed, resolvedListener);
135
135
  }
136
136
  catch (error) {
137
+ this.store.getAndRemove([eventName.prefixed, listener]);
137
138
  throw new UnableToAddListenerEventBusError(`A listener with name of "${resolvedListener.name}" could not added for "${String(event)}" event`, error);
138
139
  }
139
140
  });
@@ -141,7 +142,10 @@ export class EventBus {
141
142
  removeListener(event, listener) {
142
143
  return this.createLazyPromise(async () => {
143
144
  const eventName = this.keyPrefixer.create(event.name);
144
- const resolvedListener = this.store.getAndRemove(eventName.prefixed, listener);
145
+ const resolvedListener = this.store.getAndRemove([
146
+ eventName.prefixed,
147
+ listener,
148
+ ]);
145
149
  if (resolvedListener === null) {
146
150
  return;
147
151
  }
@@ -186,10 +190,19 @@ export class EventBus {
186
190
  await resolvedListener(event_);
187
191
  }
188
192
  finally {
189
- await this.removeListener(event, wrappedListener);
193
+ await this.removeListener(event, listener);
190
194
  }
191
195
  };
192
- await this.addListener(event, wrappedListener);
196
+ const eventName = this.keyPrefixer.create(event.name);
197
+ const resolvedListener = this.store.getOrAdd([eventName.prefixed, listener], wrappedListener);
198
+ try {
199
+ const adapter = await this.adapterPromise;
200
+ await adapter.addListener(eventName.prefixed, resolvedListener);
201
+ }
202
+ catch (error) {
203
+ this.store.getAndRemove([eventName.prefixed, listener]);
204
+ throw new UnableToAddListenerEventBusError(`A listener with name of "${resolvedListener.name}" could not added for "${String(event)}" event`, error);
205
+ }
193
206
  });
194
207
  }
195
208
  asPromise(event) {
@@ -199,6 +212,17 @@ export class EventBus {
199
212
  reject);
200
213
  }));
201
214
  }
215
+ subscribeOnce(event, listener) {
216
+ return this.createLazyPromise(async () => {
217
+ await this.listenOnce(event, listener);
218
+ const unsubscribe = () => {
219
+ return this.createLazyPromise(async () => {
220
+ await this.removeListener(event, listener);
221
+ });
222
+ };
223
+ return unsubscribe;
224
+ });
225
+ }
202
226
  subscribe(event, listener) {
203
227
  return this.subscribeMany([event], listener);
204
228
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/derivables/event-bus/event-bus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/derivables/event-bus/event-bus.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAMzD,OAAO,EAKH,6BAA6B,EAC7B,mCAAmC,EACnC,gCAAgC,GACnC,MAAM,0CAA0C,CAAC;AAWlD,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GAGnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oEAAoE,CAAC;AA2BnG;;;;;GAKG;AACH,MAAM,OAAO,QAAQ;IAGA,kBAAkB,CAA6B;IAC/C,aAAa,CAAgB;IAC7B,aAAa,CAAuB;IACpC,WAAW,CAAqB;IAChC,YAAY,CAAkB;IAC9B,YAAY,CAAkB;IAC9B,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;IAC5B,cAAc,CAAgC;IACvD,WAAW,CAAe;IAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsEG;IACH,YAAY,QAA0B;QAClC,MAAM,EACF,WAAW,EACX,OAAO,EACP,aAAa,GAAG,IAAI,EACpB,aAAa,GAAG,IAAI,EACpB,WAAW,GAAG,IAAI,EAClB,YAAY,GAAG,IAAI,EACnB,YAAY,GAAG,IAAI,GACtB,GAAG,QAAQ,CAAC;QACb,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,CACvC,kBAAkB,CACd,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,WAAW,CAAC,SAAS,CAC7B,CACJ,CAAC;IACN,CAAC;IAEO,iBAAiB,CACrB,OAAkC;QAElC,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE;YAC5B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,KAAwB;QAC9B,OAAO,IAAI,QAAQ,CAAC;YAChB,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC;YAC9C,OAAO,EAAE,IAAI,CAAC,kBAAkB;YAChC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;IAC1C,CAAC;IAED,WAAW,CACP,KAAkB,EAClB,QAA+C;QAE/C,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CACxC,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC9B,gBAAgB,CAAC,QAAQ,CAAC,CAC7B,CAAC;YACF,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;gBAC1C,MAAM,OAAO,CAAC,WAAW,CACrB,SAAS,CAAC,QAAQ,EAClB,gBAA0C,CAC7C,CAAC;YACN,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACxD,MAAM,IAAI,gCAAgC,CACtC,4BAA4B,gBAAgB,CAAC,IAAI,0BAA0B,MAAM,CAAC,KAAK,CAAC,SAAS,EACjG,KAAK,CACR,CAAC;YACN,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,cAAc,CACV,KAAkB,EAClB,QAA+C;QAE/C,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBAC7C,SAAS,CAAC,QAAQ;gBAClB,QAAQ;aACX,CAAC,CAAC;YACH,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;gBAC5B,OAAO;YACX,CAAC;YACD,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;gBAC1C,MAAM,OAAO,CAAC,cAAc,CACxB,SAAS,CAAC,QAAQ,EAClB,gBAA0C,CAC7C,CAAC;YACN,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,MAAM,IAAI,mCAAmC,CACzC,4BAA4B,gBAAgB,CAAC,IAAI,2BAA2B,MAAM,CAAC,KAAK,CAAC,SAAS,EAClG,KAAK,CACR,CAAC;YACN,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,eAAe,CACX,MAA2B,EAC3B,QAAyD;QAEzD,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO;YACX,CAAC;YACD,MAAM,QAAQ,GAAwB,EAAE,CAAC;YACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB,CACd,MAA2B,EAC3B,QAAyD;QAEzD,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO;YACX,CAAC;YACD,MAAM,QAAQ,GAAwB,EAAE,CAAC;YACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,UAAU,CACN,KAAkB,EAClB,QAA+C;QAE/C,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,eAAe,GAAG,KAAK,EACzB,MAAkC,EACpC,EAAE;gBACA,IAAI,CAAC;oBACD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBACpD,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACnC,CAAC;wBAAS,CAAC;oBACP,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC,CAAC;YAEF,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CACxC,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC9B,eAAe,CAClB,CAAC;YACF,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;gBAC1C,MAAM,OAAO,CAAC,WAAW,CACrB,SAAS,CAAC,QAAQ,EAClB,gBAA0C,CAC7C,CAAC;YACN,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACxD,MAAM,IAAI,gCAAgC,CACtC,4BAA4B,gBAAgB,CAAC,IAAI,0BAA0B,MAAM,CAAC,KAAK,CAAC,SAAS,EACjG,KAAK,CACR,CAAC;YACN,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CACL,KAAkB;QAElB,OAAO,IAAI,WAAW,CAClB,GAAG,EAAE,CACD,IAAI,OAAO,CAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAChC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;YAChB,qFAAqF;YACrF,MAAM,CACT,CAAC;QACN,CAAC,CAAC,CACT,CAAC;IACN,CAAC;IAED,aAAa,CACT,KAAkB,EAClB,QAA+C;QAE/C,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,GAAG,EAAE;gBACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;oBACrC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC/C,CAAC,CAAC,CAAC;YACP,CAAC,CAAC;YACF,OAAO,WAAW,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CACL,KAAkB,EAClB,QAA+C;QAE/C,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED,aAAa,CACT,MAA2B,EAC3B,QAAyD;QAEzD,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7C,MAAM,WAAW,GAAG,GAAG,EAAE;gBACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;oBACrC,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACpD,CAAC,CAAC,CAAC;YACP,CAAC,CAAC;YACF,OAAO,WAAW,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,YAAY,CAAC,MAAiB;QAC1B,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YACrC,IAAI,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;gBAC1C,MAAM,QAAQ,GAAG,MAAM;qBAClB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACb,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC;oBACpC,KAAK;iBACR,CAAC,CAAC;qBACF,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC5B,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;oBAC7C,KAAK;iBACR,CAAC,CAAC;qBACF,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC5B,SAAS,EAAE,SAAS,CAAC,QAAQ;oBAC7B,KAAK;iBACR,CAAC,CAAC;qBACF,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CACrC,CAAC;gBACN,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,MAAM,IAAI,6BAA6B,CACnC,iBAAiB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAC1I,KAAK,CACR,CAAC;YACN,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ,CAAC,KAAc;QACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -8,6 +8,6 @@ import { type Invokable, type InvokableFn } from "../../../../utilities/_module-
8
8
  export declare class ListenerStore {
9
9
  private readonly store;
10
10
  constructor(store?: Map<string, Map<Invokable<any, any>, InvokableFn<any, any>>>);
11
- getOrAdd<TInput, TOutput>(eventName: string, listener: Invokable<TInput, TOutput>): InvokableFn<TInput, TOutput>;
12
- getAndRemove<TInput, TOutput>(eventName: string, listener: Invokable<TInput, TOutput>): InvokableFn<TInput, TOutput> | null;
11
+ getOrAdd<TInput, TOutput>(key: [eventName: string, listener: Invokable<TInput, TOutput>], value: InvokableFn<TInput, TOutput>): InvokableFn<TInput, TOutput>;
12
+ getAndRemove<TInput, TOutput>(key: [eventName: string, listener: Invokable<TInput, TOutput>]): InvokableFn<TInput, TOutput> | null;
13
13
  }
@@ -10,20 +10,22 @@ export class ListenerStore {
10
10
  constructor(store = new Map()) {
11
11
  this.store = store;
12
12
  }
13
- getOrAdd(eventName, listener) {
13
+ getOrAdd(key, value) {
14
+ const [eventName, listener] = key;
14
15
  let eventMap = this.store.get(eventName);
15
16
  if (eventMap === undefined) {
16
17
  eventMap = new Map();
17
18
  this.store.set(eventName, eventMap);
18
19
  }
19
- let listenerFn = eventMap.get(listener);
20
- if (listenerFn === undefined) {
21
- listenerFn = resolveInvokable(listener);
22
- eventMap.set(listener, listenerFn);
20
+ let listenerFn_ = eventMap.get(listener);
21
+ if (listenerFn_ === undefined) {
22
+ listenerFn_ = resolveInvokable(value);
23
+ eventMap.set(listener, listenerFn_);
23
24
  }
24
- return listenerFn;
25
+ return listenerFn_;
25
26
  }
26
- getAndRemove(eventName, listener) {
27
+ getAndRemove(key) {
28
+ const [eventName, listener] = key;
27
29
  const eventMap = this.store.get(eventName);
28
30
  if (eventMap === undefined) {
29
31
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"listener-store.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/derivables/event-bus/listener-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,gBAAgB,GAGnB,MAAM,gCAAgC,CAAC;AAExC;;GAEG;AACH,MAAM,OAAO,aAAa;IAED;IADrB,YACqB,QAAQ,IAAI,GAAG,EAG7B;QAHc,UAAK,GAAL,KAAK,CAGnB;IACJ,CAAC;IAEJ,QAAQ,CACJ,SAAiB,EACjB,QAAoC;QAEpC,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACxC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,YAAY,CACR,SAAiB,EACjB,QAAoC;QAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ"}
1
+ {"version":3,"file":"listener-store.js","sourceRoot":"","sources":["../../../../../src/event-bus/implementations/derivables/event-bus/listener-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,gBAAgB,GAGnB,MAAM,gCAAgC,CAAC;AAExC;;GAEG;AACH,MAAM,OAAO,aAAa;IAED;IADrB,YACqB,QAAQ,IAAI,GAAG,EAG7B;QAHc,UAAK,GAAL,KAAK,CAGnB;IACJ,CAAC;IAEJ,QAAQ,CACJ,GAA8D,EAC9D,KAAmC;QAEnC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC;QAClC,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACtC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,YAAY,CACR,GAA8D;QAE9D,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ"}