@lyrolab/nest-shared 1.2.0 → 1.4.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.
package/CHANGELOG.md CHANGED
@@ -1,9 +1,9 @@
1
- # [1.2.0](https://github.com/lyrolab/nest-shared/compare/v1.1.1...v1.2.0) (2025-04-13)
1
+ # [1.4.0](https://github.com/lyrolab/nest-shared/compare/v1.3.0...v1.4.0) (2025-06-09)
2
2
 
3
3
 
4
4
  ### Features
5
5
 
6
- * add cron support ([5a1a4e0](https://github.com/lyrolab/nest-shared/commit/5a1a4e057548f34cce952ee5be774f8f26e42918))
6
+ * configure ai model ([c9ae829](https://github.com/lyrolab/nest-shared/commit/c9ae8299c0488695e53bfd91b617bd64bf26f37f))
7
7
 
8
8
  ## [1.0.1](https://github.com/lyrolab/nest-shared/compare/v1.0.0...v1.0.1) (2025-04-10)
9
9
 
@@ -1,10 +1,14 @@
1
1
  import { LanguageModelV1 } from "ai";
2
2
  import { Cache } from "cache-manager";
3
+ export type BuildModelOptions = {
4
+ model?: string;
5
+ };
3
6
  export declare class AiService {
4
7
  private cache;
5
8
  private readonly openrouter;
6
9
  private readonly openrouterChat;
7
10
  constructor(cache: Cache);
8
11
  get model(): LanguageModelV1;
12
+ buildModel({ model }?: BuildModelOptions): LanguageModelV1;
9
13
  private wrapGenerate;
10
14
  }
@@ -17,6 +17,7 @@ const cache_manager_1 = require("@nestjs/cache-manager");
17
17
  const common_1 = require("@nestjs/common");
18
18
  const ai_sdk_provider_1 = require("@openrouter/ai-sdk-provider");
19
19
  const ai_1 = require("ai");
20
+ const DEFAULT_MODEL = "google/gemini-2.0-flash-001";
20
21
  let AiService = class AiService {
21
22
  cache;
22
23
  openrouter;
@@ -26,14 +27,17 @@ let AiService = class AiService {
26
27
  this.openrouter = (0, ai_sdk_provider_1.createOpenRouter)({
27
28
  apiKey: process.env.OPENROUTER_API_KEY,
28
29
  });
29
- this.openrouterChat = (0, ai_1.wrapLanguageModel)({
30
- model: this.openrouter.chat("google/gemini-2.0-flash-001"),
31
- middleware: [{ wrapGenerate: (options) => this.wrapGenerate(options) }],
32
- });
30
+ this.openrouterChat = this.buildModel();
33
31
  }
34
32
  get model() {
35
33
  return this.openrouterChat;
36
34
  }
35
+ buildModel({ model } = {}) {
36
+ return (0, ai_1.wrapLanguageModel)({
37
+ model: this.openrouter.chat(model ?? DEFAULT_MODEL),
38
+ middleware: [{ wrapGenerate: (options) => this.wrapGenerate(options) }],
39
+ });
40
+ }
37
41
  async wrapGenerate({ doGenerate, params, }) {
38
42
  const cacheKey = "ai:" + JSON.stringify(params);
39
43
  const cachedResult = await this.cache.get(cacheKey);
@@ -1 +1 @@
1
- {"version":3,"file":"ai.service.js","sourceRoot":"","sources":["../../../src/ai/services/ai.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yDAAqD;AACrD,2CAAmD;AACnD,iEAGoC;AACpC,2BAIW;AAIJ,IAAM,SAAS,GAAf,MAAM,SAAS;IAIuB;IAH1B,UAAU,CAAoB;IAC9B,cAAc,CAAiB;IAEhD,YAA2C,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QACrD,IAAI,CAAC,UAAU,GAAG,IAAA,kCAAgB,EAAC;YACjC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;SACvC,CAAC,CAAA;QACF,IAAI,CAAC,cAAc,GAAG,IAAA,sBAAiB,EAAC;YACtC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,6BAA6B,CAAC;YAC1D,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;SACxE,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,EACzB,UAAU,EACV,MAAM,GAGJ;QACF,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAE/C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACnD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAkE,CAAA;QAC3E,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;QAEjC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACtC,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA;AApCY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;IAKE,WAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;;GAJvB,SAAS,CAoCrB"}
1
+ {"version":3,"file":"ai.service.js","sourceRoot":"","sources":["../../../src/ai/services/ai.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yDAAqD;AACrD,2CAAmD;AACnD,iEAGoC;AACpC,2BAIW;AAGX,MAAM,aAAa,GAAG,6BAA6B,CAAA;AAO5C,IAAM,SAAS,GAAf,MAAM,SAAS;IAIuB;IAH1B,UAAU,CAAoB;IAC9B,cAAc,CAAiB;IAEhD,YAA2C,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QACrD,IAAI,CAAC,UAAU,GAAG,IAAA,kCAAgB,EAAC;YACjC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;SACvC,CAAC,CAAA;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;IACzC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;IAED,UAAU,CAAC,EAAE,KAAK,KAAwB,EAAE;QAC1C,OAAO,IAAA,sBAAiB,EAAC;YACvB,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC;YACnD,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;SACxE,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,EACzB,UAAU,EACV,MAAM,GAGJ;QACF,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAE/C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACnD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAkE,CAAA;QAC3E,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;QAEjC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACtC,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA;AAxCY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;IAKE,WAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;;GAJvB,SAAS,CAwCrB"}
@@ -2,3 +2,4 @@ export * from "./shared-queue.module";
2
2
  export * from "./services/queue.service";
3
3
  export * from "./models/job-processor-interface";
4
4
  export * from "./decorators/queue.decorator";
5
+ export * from "./interfaces/queue-options.interface";
@@ -18,4 +18,5 @@ __exportStar(require("./shared-queue.module"), exports);
18
18
  __exportStar(require("./services/queue.service"), exports);
19
19
  __exportStar(require("./models/job-processor-interface"), exports);
20
20
  __exportStar(require("./decorators/queue.decorator"), exports);
21
+ __exportStar(require("./interfaces/queue-options.interface"), exports);
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,2DAAwC;AACxC,mEAAgD;AAChD,+DAA4C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC;AACrC,2DAAwC;AACxC,mEAAgD;AAChD,+DAA4C;AAC5C,uEAAoD"}
@@ -0,0 +1,13 @@
1
+ import { ModuleMetadata, Type } from "@nestjs/common";
2
+ export interface QueueModuleOptions {
3
+ concurrency?: number;
4
+ }
5
+ export interface QueueModuleAsyncOptions extends Pick<ModuleMetadata, "imports"> {
6
+ useFactory?: (...args: any[]) => Promise<QueueModuleOptions> | QueueModuleOptions;
7
+ inject?: any[];
8
+ useClass?: Type<QueueOptionsFactory>;
9
+ useExisting?: Type<QueueOptionsFactory>;
10
+ }
11
+ export interface QueueOptionsFactory {
12
+ createQueueOptions(): Promise<QueueModuleOptions> | QueueModuleOptions;
13
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=queue-options.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-options.interface.js","sourceRoot":"","sources":["../../../src/queue/interfaces/queue-options.interface.ts"],"names":[],"mappings":""}
@@ -2,10 +2,12 @@ import { WorkerHost } from "@nestjs/bullmq";
2
2
  import { DiscoveryService } from "@nestjs/core";
3
3
  import { Job, Queue } from "bullmq";
4
4
  import { OnModuleInit } from "@nestjs/common";
5
+ import { QueueModuleOptions } from "../interfaces/queue-options.interface";
5
6
  export declare class QueueProcessor extends WorkerHost implements OnModuleInit {
6
7
  private readonly discoveryService;
7
8
  private readonly queue;
8
- constructor(discoveryService: DiscoveryService, queue: Queue);
9
+ private readonly options?;
10
+ constructor(discoveryService: DiscoveryService, queue: Queue, options?: QueueModuleOptions | undefined);
9
11
  onModuleInit(): Promise<void>;
10
12
  process(job: Job): Promise<void>;
11
13
  private getJobConfigurations;
@@ -11,6 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
+ var QueueProcessor_1;
14
15
  Object.defineProperty(exports, "__esModule", { value: true });
15
16
  exports.QueueProcessor = void 0;
16
17
  const bullmq_1 = require("@nestjs/bullmq");
@@ -19,13 +20,18 @@ const bullmq_2 = require("bullmq");
19
20
  const queue_decorator_1 = require("../decorators/queue.decorator");
20
21
  const queue_constants_1 = require("../queue.constants");
21
22
  const common_1 = require("@nestjs/common");
22
- let QueueProcessor = class QueueProcessor extends bullmq_1.WorkerHost {
23
+ let QueueProcessor = QueueProcessor_1 = class QueueProcessor extends bullmq_1.WorkerHost {
23
24
  discoveryService;
24
25
  queue;
25
- constructor(discoveryService, queue) {
26
+ options;
27
+ constructor(discoveryService, queue, options) {
26
28
  super();
27
29
  this.discoveryService = discoveryService;
28
30
  this.queue = queue;
31
+ this.options = options;
32
+ if (this.options?.concurrency) {
33
+ (0, common_1.SetMetadata)("bullmq:worker_metadata", this.options)(QueueProcessor_1);
34
+ }
29
35
  }
30
36
  async onModuleInit() {
31
37
  const jobConfigs = this.getJobConfigurations();
@@ -91,11 +97,13 @@ let QueueProcessor = class QueueProcessor extends bullmq_1.WorkerHost {
91
97
  }
92
98
  };
93
99
  exports.QueueProcessor = QueueProcessor;
94
- exports.QueueProcessor = QueueProcessor = __decorate([
100
+ exports.QueueProcessor = QueueProcessor = QueueProcessor_1 = __decorate([
95
101
  (0, common_1.Injectable)(),
96
- (0, bullmq_1.Processor)(queue_constants_1.DEFAULT_QUEUE, { concurrency: 100 }),
102
+ (0, bullmq_1.Processor)(queue_constants_1.DEFAULT_QUEUE),
97
103
  __param(1, (0, bullmq_1.InjectQueue)(queue_constants_1.DEFAULT_QUEUE)),
104
+ __param(2, (0, common_1.Optional)()),
105
+ __param(2, (0, common_1.Inject)(queue_constants_1.QUEUE_MODULE_OPTIONS)),
98
106
  __metadata("design:paramtypes", [core_1.DiscoveryService,
99
- bullmq_2.Queue])
107
+ bullmq_2.Queue, Object])
100
108
  ], QueueProcessor);
101
109
  //# sourceMappingURL=queue.processor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.processor.js","sourceRoot":"","sources":["../../../src/queue/processors/queue.processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.processor.js","sourceRoot":"","sources":["../../../src/queue/processors/queue.processor.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export declare const DEFAULT_QUEUE = "default";
2
+ export declare const QUEUE_MODULE_OPTIONS = "QUEUE_MODULE_OPTIONS";
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_QUEUE = void 0;
3
+ exports.QUEUE_MODULE_OPTIONS = exports.DEFAULT_QUEUE = void 0;
4
4
  exports.DEFAULT_QUEUE = "default";
5
+ exports.QUEUE_MODULE_OPTIONS = "QUEUE_MODULE_OPTIONS";
5
6
  //# sourceMappingURL=queue.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.constants.js","sourceRoot":"","sources":["../../src/queue/queue.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,SAAS,CAAA"}
1
+ {"version":3,"file":"queue.constants.js","sourceRoot":"","sources":["../../src/queue/queue.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,SAAS,CAAA;AACzB,QAAA,oBAAoB,GAAG,sBAAsB,CAAA"}
@@ -1,2 +1,8 @@
1
+ import { DynamicModule } from "@nestjs/common";
2
+ import { QueueModuleAsyncOptions, QueueModuleOptions } from "./interfaces/queue-options.interface";
1
3
  export declare class SharedQueueModule {
4
+ static forRoot(options?: QueueModuleOptions): DynamicModule;
5
+ static forRootAsync(options: QueueModuleAsyncOptions): DynamicModule;
6
+ private static createAsyncProviders;
7
+ private static createAsyncOptionsProvider;
2
8
  }
@@ -5,24 +5,86 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  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;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var SharedQueueModule_1;
8
9
  Object.defineProperty(exports, "__esModule", { value: true });
9
10
  exports.SharedQueueModule = void 0;
10
11
  const bullmq_1 = require("@nestjs/bullmq");
11
12
  const common_1 = require("@nestjs/common");
12
13
  const core_1 = require("@nestjs/core");
14
+ const queue_controller_1 = require("./controllers/queue.controller");
13
15
  const queue_processor_1 = require("./processors/queue.processor");
14
16
  const queue_constants_1 = require("./queue.constants");
15
17
  const queue_service_1 = require("./services/queue.service");
16
- const queue_controller_1 = require("./controllers/queue.controller");
17
- let SharedQueueModule = class SharedQueueModule {
18
+ let SharedQueueModule = SharedQueueModule_1 = class SharedQueueModule {
19
+ static forRoot(options = {}) {
20
+ return {
21
+ module: SharedQueueModule_1,
22
+ global: true,
23
+ imports: [
24
+ bullmq_1.BullModule.registerQueue({ name: queue_constants_1.DEFAULT_QUEUE }),
25
+ core_1.DiscoveryModule,
26
+ ],
27
+ providers: [
28
+ {
29
+ provide: queue_constants_1.QUEUE_MODULE_OPTIONS,
30
+ useValue: options,
31
+ },
32
+ queue_service_1.QueueService,
33
+ queue_processor_1.QueueProcessor,
34
+ ],
35
+ exports: [queue_service_1.QueueService],
36
+ controllers: [queue_controller_1.QueueController],
37
+ };
38
+ }
39
+ static forRootAsync(options) {
40
+ return {
41
+ module: SharedQueueModule_1,
42
+ global: true,
43
+ imports: [
44
+ bullmq_1.BullModule.registerQueue({ name: queue_constants_1.DEFAULT_QUEUE }),
45
+ core_1.DiscoveryModule,
46
+ ...(options.imports || []),
47
+ ],
48
+ providers: [
49
+ ...this.createAsyncProviders(options),
50
+ queue_service_1.QueueService,
51
+ queue_processor_1.QueueProcessor,
52
+ ],
53
+ exports: [queue_service_1.QueueService],
54
+ controllers: [queue_controller_1.QueueController],
55
+ };
56
+ }
57
+ static createAsyncProviders(options) {
58
+ if (options.useExisting || options.useFactory) {
59
+ return [this.createAsyncOptionsProvider(options)];
60
+ }
61
+ return [
62
+ this.createAsyncOptionsProvider(options),
63
+ {
64
+ provide: options.useClass,
65
+ useClass: options.useClass,
66
+ },
67
+ ];
68
+ }
69
+ static createAsyncOptionsProvider(options) {
70
+ if (options.useFactory) {
71
+ return {
72
+ provide: queue_constants_1.QUEUE_MODULE_OPTIONS,
73
+ useFactory: options.useFactory,
74
+ inject: options.inject || [],
75
+ };
76
+ }
77
+ return {
78
+ provide: queue_constants_1.QUEUE_MODULE_OPTIONS,
79
+ useFactory: async (optionsFactory) => {
80
+ return optionsFactory.createQueueOptions();
81
+ },
82
+ inject: [options.useExisting || options.useClass],
83
+ };
84
+ }
18
85
  };
19
86
  exports.SharedQueueModule = SharedQueueModule;
20
- exports.SharedQueueModule = SharedQueueModule = __decorate([
21
- (0, common_1.Module)({
22
- imports: [bullmq_1.BullModule.registerQueue({ name: queue_constants_1.DEFAULT_QUEUE }), core_1.DiscoveryModule],
23
- providers: [queue_service_1.QueueService, queue_processor_1.QueueProcessor],
24
- exports: [queue_service_1.QueueService],
25
- controllers: [queue_controller_1.QueueController],
26
- })
87
+ exports.SharedQueueModule = SharedQueueModule = SharedQueueModule_1 = __decorate([
88
+ (0, common_1.Module)({})
27
89
  ], SharedQueueModule);
28
90
  //# sourceMappingURL=shared-queue.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared-queue.module.js","sourceRoot":"","sources":["../../src/queue/shared-queue.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA2C;AAC3C,2CAAuC;AACvC,uCAA8C;AAC9C,kEAA6D;AAC7D,uDAAiD;AACjD,4DAAuD;AACvD,qEAAgE;AAOzD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,8CAAiB;4BAAjB,iBAAiB;IAN7B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,mBAAU,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,+BAAa,EAAE,CAAC,EAAE,sBAAe,CAAC;QAC7E,SAAS,EAAE,CAAC,4BAAY,EAAE,gCAAc,CAAC;QACzC,OAAO,EAAE,CAAC,4BAAY,CAAC;QACvB,WAAW,EAAE,CAAC,kCAAe,CAAC;KAC/B,CAAC;GACW,iBAAiB,CAAG"}
1
+ {"version":3,"file":"shared-queue.module.js","sourceRoot":"","sources":["../../src/queue/shared-queue.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA2C;AAC3C,2CAAgE;AAChE,uCAA8C;AAC9C,qEAAgE;AAMhE,kEAA6D;AAC7D,uDAAuE;AACvE,4DAAuD;AAGhD,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAC5B,MAAM,CAAC,OAAO,CAAC,UAA8B,EAAE;QAC7C,OAAO;YACL,MAAM,EAAE,mBAAiB;YACzB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBACP,mBAAU,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,+BAAa,EAAE,CAAC;gBACjD,sBAAe;aAChB;YACD,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,sCAAoB;oBAC7B,QAAQ,EAAE,OAAO;iBAClB;gBACD,4BAAY;gBACZ,gCAAc;aACf;YACD,OAAO,EAAE,CAAC,4BAAY,CAAC;YACvB,WAAW,EAAE,CAAC,kCAAe,CAAC;SAC/B,CAAA;IACH,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAgC;QAClD,OAAO;YACL,MAAM,EAAE,mBAAiB;YACzB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBACP,mBAAU,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,+BAAa,EAAE,CAAC;gBACjD,sBAAe;gBACf,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;aAC3B;YACD,SAAS,EAAE;gBACT,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;gBACrC,4BAAY;gBACZ,gCAAc;aACf;YACD,OAAO,EAAE,CAAC,4BAAY,CAAC;YACvB,WAAW,EAAE,CAAC,kCAAe,CAAC;SAC/B,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,oBAAoB,CACjC,OAAgC;QAEhC,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAA;QACnD,CAAC;QAED,OAAO;YACL,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC;YACxC;gBACE,OAAO,EAAE,OAAO,CAAC,QAAS;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAS;aAC5B;SACF,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,0BAA0B,CACvC,OAAgC;QAEhC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,sCAAoB;gBAC7B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;aAC7B,CAAA;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,sCAAoB;YAC7B,UAAU,EAAE,KAAK,EAAE,cAAmC,EAAE,EAAE;gBACxD,OAAO,cAAc,CAAC,kBAAkB,EAAE,CAAA;YAC5C,CAAC;YACD,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,QAAS,CAAC;SACnD,CAAA;IACH,CAAC;CACF,CAAA;AA5EY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,iBAAiB,CA4E7B"}