@restorecommerce/chassis-srv 1.6.8 → 1.7.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 (81) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/lib/cache/index.d.ts +1 -0
  3. package/lib/cache/index.d.ts.map +1 -0
  4. package/lib/cache/index.js +10 -38
  5. package/lib/cache/index.js.map +1 -1
  6. package/lib/command-interface/index.d.ts +4 -3
  7. package/lib/command-interface/index.d.ts.map +1 -0
  8. package/lib/command-interface/index.js +67 -74
  9. package/lib/command-interface/index.js.map +1 -1
  10. package/lib/config/index.d.ts +1 -0
  11. package/lib/config/index.d.ts.map +1 -0
  12. package/lib/config/index.js +5 -10
  13. package/lib/config/index.js.map +1 -1
  14. package/lib/database/index.d.ts +3 -2
  15. package/lib/database/index.d.ts.map +1 -0
  16. package/lib/database/index.js +6 -11
  17. package/lib/database/index.js.map +1 -1
  18. package/lib/database/provider/arango/base.d.ts +4 -3
  19. package/lib/database/provider/arango/base.d.ts.map +1 -0
  20. package/lib/database/provider/arango/base.js +32 -59
  21. package/lib/database/provider/arango/base.js.map +1 -1
  22. package/lib/database/provider/arango/common.d.ts +1 -0
  23. package/lib/database/provider/arango/common.d.ts.map +1 -0
  24. package/lib/database/provider/arango/common.js +56 -98
  25. package/lib/database/provider/arango/common.js.map +1 -1
  26. package/lib/database/provider/arango/graph.d.ts +8 -7
  27. package/lib/database/provider/arango/graph.d.ts.map +1 -0
  28. package/lib/database/provider/arango/graph.js +20 -45
  29. package/lib/database/provider/arango/graph.js.map +1 -1
  30. package/lib/database/provider/arango/index.d.ts +2 -1
  31. package/lib/database/provider/arango/index.d.ts.map +1 -0
  32. package/lib/database/provider/arango/index.js +10 -40
  33. package/lib/database/provider/arango/index.js.map +1 -1
  34. package/lib/database/provider/arango/interface.d.ts +1 -0
  35. package/lib/database/provider/arango/interface.d.ts.map +1 -0
  36. package/lib/database/provider/arango/interface.js +1 -2
  37. package/lib/database/provider/arango/utils.d.ts +2 -1
  38. package/lib/database/provider/arango/utils.d.ts.map +1 -0
  39. package/lib/database/provider/arango/utils.js +56 -96
  40. package/lib/database/provider/arango/utils.js.map +1 -1
  41. package/lib/database/provider/nedb/index.d.ts +1 -0
  42. package/lib/database/provider/nedb/index.d.ts.map +1 -0
  43. package/lib/database/provider/nedb/index.js +6 -35
  44. package/lib/database/provider/nedb/index.js.map +1 -1
  45. package/lib/health/index.d.ts +5 -4
  46. package/lib/health/index.d.ts.map +1 -0
  47. package/lib/health/index.js +16 -17
  48. package/lib/health/index.js.map +1 -1
  49. package/lib/index.d.ts +17 -16
  50. package/lib/index.d.ts.map +1 -0
  51. package/lib/index.js +27 -54
  52. package/lib/index.js.map +1 -1
  53. package/lib/microservice/errors.d.ts +1 -0
  54. package/lib/microservice/errors.d.ts.map +1 -0
  55. package/lib/microservice/errors.js +60 -33
  56. package/lib/microservice/errors.js.map +1 -1
  57. package/lib/microservice/server.d.ts +3 -2
  58. package/lib/microservice/server.d.ts.map +1 -0
  59. package/lib/microservice/server.js +13 -37
  60. package/lib/microservice/server.js.map +1 -1
  61. package/lib/microservice/transport/provider/grpc/index.d.ts +3 -2
  62. package/lib/microservice/transport/provider/grpc/index.d.ts.map +1 -0
  63. package/lib/microservice/transport/provider/grpc/index.js +16 -38
  64. package/lib/microservice/transport/provider/grpc/index.js.map +1 -1
  65. package/lib/microservice/transport/provider/grpc/middlewares.d.ts +2 -1
  66. package/lib/microservice/transport/provider/grpc/middlewares.d.ts.map +1 -0
  67. package/lib/microservice/transport/provider/grpc/middlewares.js +12 -18
  68. package/lib/microservice/transport/provider/grpc/middlewares.js.map +1 -1
  69. package/lib/microservice/transport/provider/grpc/reflection.d.ts +2 -1
  70. package/lib/microservice/transport/provider/grpc/reflection.d.ts.map +1 -0
  71. package/lib/microservice/transport/provider/grpc/reflection.js +8 -12
  72. package/lib/microservice/transport/provider/grpc/reflection.js.map +1 -1
  73. package/lib/offsets/index.d.ts +14 -12
  74. package/lib/offsets/index.d.ts.map +1 -0
  75. package/lib/offsets/index.js +37 -62
  76. package/lib/offsets/index.js.map +1 -1
  77. package/lib/tsconfig.tsbuildinfo +1 -0
  78. package/package.json +18 -25
  79. package/tsconfig.json +3 -19
  80. package/tsconfig.test.json +2 -1
  81. package/vitest.config.ts +2 -0
@@ -1,18 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildReflectionService = void 0;
4
- const descriptor_pb_1 = require("google-protobuf/google/protobuf/descriptor_pb");
5
- const nice_grpc_server_reflection_1 = require("nice-grpc-server-reflection");
6
- const descriptor_1 = require("@restorecommerce/rc-grpc-clients/dist/generated/google/protobuf/descriptor");
7
- const buildReflectionService = (services) => {
8
- const set = new descriptor_pb_1.FileDescriptorSet();
1
+ import { FileDescriptorSet, FileDescriptorProto as FileDescriptorProtoGoogle } from 'google-protobuf/google/protobuf/descriptor_pb.js';
2
+ import { ServerReflection, } from 'nice-grpc-server-reflection';
3
+ import { FileDescriptorProto } from '@restorecommerce/rc-grpc-clients/dist/generated/google/protobuf/descriptor.js';
4
+ export const buildReflectionService = (services) => {
5
+ const set = new FileDescriptorSet();
9
6
  const names = [];
10
7
  services.forEach((service, i) => {
11
- const serialized = descriptor_1.FileDescriptorProto.encode(service.descriptor).finish();
12
- set.addFile(descriptor_pb_1.FileDescriptorProto.deserializeBinary(serialized), i);
8
+ const serialized = FileDescriptorProto.encode(service.descriptor).finish();
9
+ set.addFile(FileDescriptorProtoGoogle.deserializeBinary(serialized), i);
13
10
  names.push(service.name || service.descriptor.name + '.Service');
14
11
  });
15
- return (0, nice_grpc_server_reflection_1.ServerReflection)(set.serializeBinary(), names);
12
+ return ServerReflection(set.serializeBinary(), names);
16
13
  };
17
- exports.buildReflectionService = buildReflectionService;
18
14
  //# sourceMappingURL=reflection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reflection.js","sourceRoot":"","sources":["../../../../../src/microservice/transport/provider/grpc/reflection.ts"],"names":[],"mappings":";;;AACA,iFAGuD;AACvD,6EAAgE;AAChE,2GAAiH;AAK1G,MAAM,sBAAsB,GAAG,CAAC,QAGpC,EAAmD,EAAE;IACtD,MAAM,GAAG,GAAG,IAAI,iCAAiB,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,gCAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3E,GAAG,CAAC,OAAO,CAAC,mCAAyB,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IACH,OAAO,IAAA,8CAAgB,EAAC,GAAG,CAAC,eAAe,EAAE,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC,CAAC;AAZW,QAAA,sBAAsB,0BAYjC"}
1
+ {"version":3,"file":"reflection.js","sourceRoot":"","sources":["../../../../../src/microservice/transport/provider/grpc/reflection.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,mBAAmB,IAAI,yBAAyB,EACjD,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAE,gBAAgB,GAAG,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+EAA+E,CAAC;AAKpH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAGpC,EAAmD,EAAE;IACtD,MAAM,GAAG,GAAG,IAAI,iBAAiB,EAAE,CAAC;IACpC,MAAM,KAAK,GAAU,EAAE,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC;QAC3E,GAAG,CAAC,OAAO,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC,CAAC"}
@@ -1,40 +1,42 @@
1
1
  import { Events, Topic } from '@restorecommerce/kafka-client';
2
2
  import { RedisClientType } from 'redis';
3
- import { Logger } from 'winston';
3
+ import { type ServiceConfig } from '@restorecommerce/service-config';
4
+ import { type Logger } from '@restorecommerce/logger';
4
5
  /**
5
6
  * Stores the offsets of the provided topics to redis periodically
6
7
  */
7
8
  export declare class OffsetStore {
8
- logger: Logger;
9
- config: any;
10
- kafkaEvents: Events;
11
- redisClient: RedisClientType<any, any>;
12
- topics: any;
13
- timerID: any;
14
- constructor(events: Events, config: any, logger: Logger);
9
+ protected readonly kafkaEvents: Events;
10
+ protected readonly config: ServiceConfig;
11
+ protected readonly logger?: Logger;
12
+ protected readonly redisClient?: RedisClientType;
13
+ protected readonly timerID: NodeJS.Timeout[];
14
+ protected readonly prefix: string;
15
+ constructor(kafkaEvents: Events, config: ServiceConfig, logger?: Logger, redisClient?: RedisClientType);
15
16
  /**
16
17
  * updates the topic offset in redis periodically
17
18
  *
18
19
  */
19
- updateTopicOffsets(): any;
20
+ updateTopicOffsets(): Promise<void>;
20
21
  /**
21
22
  * stores the offset to redis
22
23
  * @param {object} topic Topic object
23
24
  * @param {object} redisClient
24
25
  * @return {object}
25
26
  */
26
- storeOffset(topic: Topic, topicName: string): Promise<any>;
27
+ storeOffset(topic: Topic, topicName: string): Promise<void>;
27
28
  /**
28
29
  * get the offset value for the topic from redis
29
30
  * @param {string} topic Topic name
30
31
  * @return {object}
31
32
  */
32
- getOffset(topicName: string): Promise<number>;
33
+ getOffset(topicName: string): Promise<bigint>;
33
34
  /**
34
35
  * stops the redis client
35
36
  * @param {object} topic Topic object
36
37
  * @param {object} redisClient
37
38
  * @return {object}
38
39
  */
39
- stop(): Promise<any>;
40
+ stop(): Promise<void>;
40
41
  }
42
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/offsets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAgB,eAAe,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EACL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,MAAM,EACZ,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,qBAAa,WAAW;IAMpB,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM;IACtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa;IACxC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IAClC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe;IAPlD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAM;IAClD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,eAAe;IA2BlD;;;MAGE;IACI,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBzC;;;;;OAKG;IACG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjE;;;;OAIG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAanD;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ5B"}
@@ -1,79 +1,52 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.OffsetStore = void 0;
27
- const _ = __importStar(require("lodash"));
28
- const redis_1 = require("redis");
1
+ import { createClient } from 'redis';
29
2
  /**
30
3
  * Stores the offsets of the provided topics to redis periodically
31
4
  */
32
- class OffsetStore {
33
- constructor(events, config, logger) {
34
- if (!logger) {
35
- throw new Error('Missing logger config or object');
36
- }
37
- if (_.isNil(events)) {
38
- logger.error('No Kafka client was provided, offsets will not be stored to redis');
39
- return;
40
- }
5
+ export class OffsetStore {
6
+ kafkaEvents;
7
+ config;
8
+ logger;
9
+ redisClient;
10
+ // protected readonly topics: Record<string, Topic> = {};
11
+ timerID = [];
12
+ prefix;
13
+ constructor(kafkaEvents, config, logger, redisClient) {
14
+ this.kafkaEvents = kafkaEvents;
41
15
  this.config = config;
42
16
  this.logger = logger;
43
- if (!(this.config.get('events'))
44
- || !(this.config.get('events:kafka'))
45
- || !(this.config.get('events:kafka:topics'))) {
17
+ this.redisClient = redisClient;
18
+ if (!kafkaEvents) {
19
+ logger?.error('No Kafka client was provided, offsets will not be stored to redis');
20
+ return;
21
+ }
22
+ if (!this.config.get('events:kafka:topics')) {
46
23
  throw new Error('Kafka events configuration was not provided.');
47
24
  }
48
- this.kafkaEvents = events;
49
- if (this.config.get('redis')) {
50
- const redisConfig = this.config.get('redis');
51
- if (_.has(redisConfig, 'db-indexes.db-offsetStore')) {
52
- redisConfig.database = _.get(redisConfig, 'db-indexes.db-offsetStore');
53
- }
54
- this.redisClient = (0, redis_1.createClient)(redisConfig);
55
- this.redisClient.on('error', (err) => logger.error('Redis Client Error in offsetstore', { code: err.code, message: err.message, stack: err.stack }));
56
- this.redisClient.connect().then((val) => logger.info('Redis client connection successful for offsetstore'));
25
+ this.prefix = this.config.get('events:kafka:kafka:clientId');
26
+ const redisConfig = this.config.get('redis');
27
+ if (!redisClient && redisConfig) {
28
+ redisConfig.database = this.config.get('redis:db-indexes:db-offsetStore') ?? 0;
29
+ this.redisClient = createClient(redisConfig);
30
+ this.redisClient.on('error', (err) => logger?.error('Redis Client Error in offsetstore', err));
31
+ this.redisClient.connect().then(() => logger?.info('Redis client connection successful for offsetstore'));
57
32
  }
58
- this.topics = {};
59
- this.timerID = [];
60
33
  setTimeout(this.updateTopicOffsets.bind(this), 5000);
61
34
  }
62
35
  /**
63
36
  * updates the topic offset in redis periodically
64
37
  *
65
38
  */
66
- updateTopicOffsets() {
39
+ async updateTopicOffsets() {
67
40
  // Iterate through the topics and updateOffsets periodically for each topic
68
41
  // events.topic(TopicName) - gives the topic object
69
42
  const kafkaCfg = this.config.get('events:kafka');
70
- const topicTypes = _.keys(kafkaCfg.topics);
43
+ const topicTypes = Object.keys(kafkaCfg.topics ?? {});
71
44
  for (let i = 0; i < topicTypes.length; i += 1) {
72
45
  const topicType = topicTypes[i];
73
46
  const topicName = kafkaCfg.topics[topicType].topic;
74
47
  this.kafkaEvents.topic(topicName).then(topic => {
75
- this.topics[topicType] = topic;
76
- this.timerID[i] = setInterval(this.storeOffset.bind(this), this.config.get('redis:offsetStoreInterval'), this.topics[topicType], topicName);
48
+ // this.topics[topicType] = topic;
49
+ this.timerID[i] = setInterval(this.storeOffset.bind(this), this.config.get('redis:offsetStoreInterval') ?? 1000, topic, topicName);
77
50
  });
78
51
  }
79
52
  }
@@ -85,9 +58,9 @@ class OffsetStore {
85
58
  */
86
59
  async storeOffset(topic, topicName) {
87
60
  // get the latest offset here each time and store it.
88
- const offsetValue = await topic.$offset(-1);
89
- const redisKey = this.config.get('events:kafka:kafka:clientId') + ':' + topicName;
90
- this.redisClient.set(redisKey, offsetValue);
61
+ const offsetValue = await topic.$offset(BigInt(-1));
62
+ const redisKey = `${this.prefix}:${topicName}`;
63
+ this.redisClient.set(redisKey, offsetValue.toString(10));
91
64
  }
92
65
  /**
93
66
  * get the offset value for the topic from redis
@@ -95,10 +68,13 @@ class OffsetStore {
95
68
  * @return {object}
96
69
  */
97
70
  async getOffset(topicName) {
98
- const redisKey = this.config.get('events:kafka:kafka:clientId') + ':' + topicName;
71
+ const redisKey = `${this.prefix}:${topicName}`;
99
72
  const offsetValue = await this.redisClient.get(redisKey);
100
- this.logger.info('The offset value retreived from redis for topic is:', { topicName, offsetValue });
101
- return Number(offsetValue);
73
+ this.logger?.info('The offset value retreived from redis for topic is:', { topicName, offsetValue });
74
+ if (!offsetValue) {
75
+ return BigInt(0);
76
+ }
77
+ return BigInt(offsetValue);
102
78
  }
103
79
  /**
104
80
  * stops the redis client
@@ -115,5 +91,4 @@ class OffsetStore {
115
91
  }
116
92
  }
117
93
  }
118
- exports.OffsetStore = OffsetStore;
119
94
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/offsets/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/offsets/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAmB,MAAM,OAAO,CAAC;AAQtD;;GAEG;AACH,MAAM,OAAO,WAAW;IAMD;IACA;IACA;IACA;IARrB,yDAAyD;IACtC,OAAO,GAAqB,EAAE,CAAC;IAC/B,MAAM,CAAS;IAElC,YACqB,WAAmB,EACnB,MAAqB,EACrB,MAAe,EACf,WAA6B;QAH7B,gBAAW,GAAX,WAAW,CAAQ;QACnB,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAS;QACf,gBAAW,GAAX,WAAW,CAAkB;QAEhD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,EAAE,KAAK,CAAC,mEAAmE,CAAC,CAAC;YACnF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,IAAI,WAAW,EAAE,CAAC;YAChC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,IAAI,CAAC,CAAC;YAC/E,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,CAAC,EAAE,CACjB,OAAO,EACP,CAAC,GAAU,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CACxE,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,CAC7B,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,oDAAoD,CAAC,CACzE,CAAC;QACJ,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED;;;MAGE;IACF,KAAK,CAAC,kBAAkB;QACtB,2EAA2E;QAC3E,mDAAmD;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;YAEnD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC7C,kCAAkC;gBAClC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,IAAI,EACpD,KAAK,EACL,SAAS,CACH,CAAC;YACX,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,KAAY,EAAE,SAAiB;QAC/C,qDAAqD;QACrD,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,SAAiB;QAC/B,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,qDAAqD,EACrD,EAAE,SAAS,EAAE,WAAW,EAAE,CAC3B,CAAC;QACF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI;QACR,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;CACF"}